[med-svn] [rsem] 03/05: remove included boost copy

Michael Crusoe misterc-guest at moszumanska.debian.org
Wed Feb 11 23:32:26 UTC 2015


This is an automated email from the git hooks/post-receive script.

misterc-guest pushed a commit to branch master
in repository rsem.

commit f78b8fc7b087774424ac6e7de54c0ae93b1c8eec
Author: Michael R. Crusoe <mcrusoe at msu.edu>
Date:   Wed Feb 11 18:07:36 2015 -0500

    remove included boost copy
---
 boost/aligned_storage.hpp                          |  181 --
 boost/array.hpp                                    |  446 ----
 boost/assert.hpp                                   |  141 -
 boost/blank.hpp                                    |  106 -
 boost/blank_fwd.hpp                                |   22 -
 boost/checked_delete.hpp                           |   69 -
 boost/concept/assert.hpp                           |   46 -
 boost/concept/detail/backward_compatibility.hpp    |   16 -
 boost/concept/detail/borland.hpp                   |   30 -
 boost/concept/detail/concept_def.hpp               |   51 -
 boost/concept/detail/concept_undef.hpp             |    5 -
 boost/concept/detail/general.hpp                   |   75 -
 boost/concept/detail/has_constraints.hpp           |   50 -
 boost/concept/detail/msvc.hpp                      |  114 -
 boost/concept/usage.hpp                            |   44 -
 boost/concept_check.hpp                            | 1083 --------
 boost/config.hpp                                   |   63 -
 boost/config/abi/borland_prefix.hpp                |   27 -
 boost/config/abi/borland_suffix.hpp                |   12 -
 boost/config/abi/msvc_prefix.hpp                   |   22 -
 boost/config/abi/msvc_suffix.hpp                   |    8 -
 boost/config/abi_prefix.hpp                        |   25 -
 boost/config/abi_suffix.hpp                        |   27 -
 boost/config/auto_link.hpp                         |  429 ---
 boost/config/compiler/borland.hpp                  |  287 --
 boost/config/compiler/clang.hpp                    |  180 --
 boost/config/compiler/codegear.hpp                 |  189 --
 boost/config/compiler/comeau.hpp                   |   59 -
 boost/config/compiler/common_edg.hpp               |  112 -
 boost/config/compiler/compaq_cxx.hpp               |   19 -
 boost/config/compiler/cray.hpp                     |   65 -
 boost/config/compiler/digitalmars.hpp              |   93 -
 boost/config/compiler/gcc.hpp                      |  261 --
 boost/config/compiler/gcc_xml.hpp                  |   64 -
 boost/config/compiler/greenhills.hpp               |   28 -
 boost/config/compiler/hp_acc.hpp                   |  144 -
 boost/config/compiler/intel.hpp                    |  323 ---
 boost/config/compiler/kai.hpp                      |   33 -
 boost/config/compiler/metrowerks.hpp               |  148 --
 boost/config/compiler/mpw.hpp                      |   90 -
 boost/config/compiler/nvcc.hpp                     |   16 -
 boost/config/compiler/pathscale.hpp                |   83 -
 boost/config/compiler/pgi.hpp                      |  125 -
 boost/config/compiler/sgi_mipspro.hpp              |   29 -
 boost/config/compiler/sunpro_cc.hpp                |  153 --
 boost/config/compiler/vacpp.hpp                    |  131 -
 boost/config/compiler/visualc.hpp                  |  276 --
 boost/config/no_tr1/cmath.hpp                      |   28 -
 boost/config/no_tr1/complex.hpp                    |   28 -
 boost/config/no_tr1/functional.hpp                 |   28 -
 boost/config/no_tr1/memory.hpp                     |   28 -
 boost/config/no_tr1/utility.hpp                    |   28 -
 boost/config/platform/aix.hpp                      |   33 -
 boost/config/platform/amigaos.hpp                  |   15 -
 boost/config/platform/beos.hpp                     |   26 -
 boost/config/platform/bsd.hpp                      |   86 -
 boost/config/platform/cray.hpp                     |   18 -
 boost/config/platform/cygwin.hpp                   |   58 -
 boost/config/platform/hpux.hpp                     |   87 -
 boost/config/platform/irix.hpp                     |   31 -
 boost/config/platform/linux.hpp                    |  103 -
 boost/config/platform/macos.hpp                    |   87 -
 boost/config/platform/qnxnto.hpp                   |   31 -
 boost/config/platform/solaris.hpp                  |   28 -
 boost/config/platform/symbian.hpp                  |   97 -
 boost/config/platform/vms.hpp                      |   25 -
 boost/config/platform/vxworks.hpp                  |  369 ---
 boost/config/platform/win32.hpp                    |   73 -
 boost/config/posix_features.hpp                    |   95 -
 boost/config/requires_threads.hpp                  |   92 -
 boost/config/select_compiler_config.hpp            |  114 -
 boost/config/select_platform_config.hpp            |  105 -
 boost/config/select_stdlib_config.hpp              |   85 -
 boost/config/stdlib/dinkumware.hpp                 |  157 --
 boost/config/stdlib/libcomo.hpp                    |   72 -
 boost/config/stdlib/libcpp.hpp                     |   37 -
 boost/config/stdlib/libstdcpp3.hpp                 |  166 --
 boost/config/stdlib/modena.hpp                     |   56 -
 boost/config/stdlib/msl.hpp                        |   84 -
 boost/config/stdlib/roguewave.hpp                  |  186 --
 boost/config/stdlib/sgi.hpp                        |  148 --
 boost/config/stdlib/stlport.hpp                    |  243 --
 boost/config/stdlib/vacpp.hpp                      |   54 -
 boost/config/suffix.hpp                            |  941 -------
 boost/config/user.hpp                              |  124 -
 boost/config/warning_disable.hpp                   |   47 -
 boost/container/container_fwd.hpp                  |  182 --
 boost/cstdint.hpp                                  |  545 ----
 boost/current_function.hpp                         |   68 -
 boost/detail/endian.hpp                            |   11 -
 boost/detail/fenv.hpp                              |   74 -
 boost/detail/indirect_traits.hpp                   |  487 ----
 boost/detail/interlocked.hpp                       |  210 --
 boost/detail/is_function_ref_tester.hpp            |  136 -
 boost/detail/iterator.hpp                          |  494 ----
 boost/detail/lcast_precision.hpp                   |  184 --
 boost/detail/reference_content.hpp                 |  141 -
 boost/detail/sp_typeinfo.hpp                       |  135 -
 boost/detail/templated_streams.hpp                 |   74 -
 boost/detail/workaround.hpp                        |  267 --
 boost/exception/detail/attribute_noreturn.hpp      |   17 -
 boost/exception/exception.hpp                      |  483 ----
 boost/format.hpp                                   |   59 -
 boost/format/alt_sstream.hpp                       |  176 --
 boost/format/alt_sstream_impl.hpp                  |  313 ---
 boost/format/detail/compat_workarounds.hpp         |   86 -
 boost/format/detail/config_macros.hpp              |   97 -
 boost/format/detail/msvc_disambiguater.hpp         |   56 -
 boost/format/detail/unset_macros.hpp               |   34 -
 boost/format/detail/workarounds_gcc-2_95.hpp       |  162 --
 boost/format/detail/workarounds_stlport.hpp        |   42 -
 boost/format/exceptions.hpp                        |  103 -
 boost/format/feed_args.hpp                         |  277 --
 boost/format/format_class.hpp                      |  168 --
 boost/format/format_fwd.hpp                        |   49 -
 boost/format/format_implementation.hpp             |  329 ---
 boost/format/free_funcs.hpp                        |   70 -
 boost/format/group.hpp                             |  684 -----
 boost/format/internals.hpp                         |  201 --
 boost/format/internals_fwd.hpp                     |   60 -
 boost/format/parsing.hpp                           |  504 ----
 boost/functional/hash/hash_fwd.hpp                 |   40 -
 boost/functional/hash_fwd.hpp                      |    7 -
 boost/fusion/adapted/mpl/detail/begin_impl.hpp     |   45 -
 boost/fusion/adapted/mpl/detail/end_impl.hpp       |   45 -
 boost/fusion/adapted/mpl/mpl_iterator.hpp          |  113 -
 boost/fusion/adapted/std_pair.hpp                  |   19 -
 boost/fusion/adapted/struct/adapt_struct.hpp       |   71 -
 boost/fusion/adapted/struct/detail/adapt_base.hpp  |  245 --
 boost/fusion/adapted/struct/detail/at_impl.hpp     |   38 -
 boost/fusion/adapted/struct/detail/begin_impl.hpp  |   67 -
 .../adapted/struct/detail/category_of_impl.hpp     |   42 -
 boost/fusion/adapted/struct/detail/deref_impl.hpp  |   41 -
 boost/fusion/adapted/struct/detail/end_impl.hpp    |   67 -
 boost/fusion/adapted/struct/detail/extension.hpp   |   57 -
 .../adapted/struct/detail/is_sequence_impl.hpp     |   35 -
 .../fusion/adapted/struct/detail/is_view_impl.hpp  |   33 -
 boost/fusion/adapted/struct/detail/size_impl.hpp   |   33 -
 .../fusion/adapted/struct/detail/value_at_impl.hpp |   33 -
 .../fusion/adapted/struct/detail/value_of_impl.hpp |   29 -
 .../fusion/algorithm/transformation/push_back.hpp  |   46 -
 .../fusion/algorithm/transformation/push_front.hpp |   46 -
 boost/fusion/container/generation/ignore.hpp       |   32 -
 boost/fusion/container/list/cons.hpp               |  144 -
 boost/fusion/container/list/cons_fwd.hpp           |   23 -
 boost/fusion/container/list/cons_iterator.hpp      |   89 -
 boost/fusion/container/list/detail/at_impl.hpp     |  132 -
 boost/fusion/container/list/detail/begin_impl.hpp  |   49 -
 boost/fusion/container/list/detail/deref_impl.hpp  |   52 -
 boost/fusion/container/list/detail/empty_impl.hpp  |   37 -
 boost/fusion/container/list/detail/end_impl.hpp    |   51 -
 .../fusion/container/list/detail/equal_to_impl.hpp |   39 -
 boost/fusion/container/list/detail/next_impl.hpp   |   59 -
 .../list/detail/preprocessed/list10_fwd.hpp        |   16 -
 .../list/detail/preprocessed/list20_fwd.hpp        |   16 -
 .../list/detail/preprocessed/list30_fwd.hpp        |   16 -
 .../list/detail/preprocessed/list40_fwd.hpp        |   16 -
 .../list/detail/preprocessed/list50_fwd.hpp        |   16 -
 .../list/detail/preprocessed/list_fwd.hpp          |   22 -
 .../fusion/container/list/detail/reverse_cons.hpp  |   43 -
 .../fusion/container/list/detail/value_at_impl.hpp |   42 -
 .../fusion/container/list/detail/value_of_impl.hpp |   36 -
 boost/fusion/container/list/limits.hpp             |   21 -
 boost/fusion/container/list/list_fwd.hpp           |   50 -
 .../container/vector/detail/advance_impl.hpp       |   42 -
 boost/fusion/container/vector/detail/at_impl.hpp   |   56 -
 .../fusion/container/vector/detail/begin_impl.hpp  |   39 -
 .../fusion/container/vector/detail/deref_impl.hpp  |   54 -
 .../container/vector/detail/distance_impl.hpp      |   41 -
 boost/fusion/container/vector/detail/end_impl.hpp  |   40 -
 .../container/vector/detail/equal_to_impl.hpp      |   39 -
 boost/fusion/container/vector/detail/next_impl.hpp |   43 -
 .../vector/detail/preprocessed/vector.hpp          |   22 -
 .../vector/detail/preprocessed/vector10.hpp        | 1004 -------
 .../vector/detail/preprocessed/vector10_fwd.hpp    |   33 -
 .../vector/detail/preprocessed/vector20.hpp        | 1004 -------
 .../vector/detail/preprocessed/vector20_fwd.hpp    |   33 -
 .../vector/detail/preprocessed/vector30.hpp        | 1004 -------
 .../vector/detail/preprocessed/vector30_fwd.hpp    |   33 -
 .../vector/detail/preprocessed/vector40.hpp        | 1004 -------
 .../vector/detail/preprocessed/vector40_fwd.hpp    |   33 -
 .../vector/detail/preprocessed/vector50.hpp        | 1004 -------
 .../vector/detail/preprocessed/vector50_fwd.hpp    |   33 -
 .../vector/detail/preprocessed/vector_chooser.hpp  |   21 -
 .../detail/preprocessed/vector_chooser10.hpp       |   84 -
 .../detail/preprocessed/vector_chooser20.hpp       |  154 --
 .../detail/preprocessed/vector_chooser30.hpp       |  224 --
 .../detail/preprocessed/vector_chooser40.hpp       |  294 ---
 .../detail/preprocessed/vector_chooser50.hpp       |  364 ---
 .../vector/detail/preprocessed/vector_fwd.hpp      |   22 -
 .../vector/detail/preprocessed/vvector10.hpp       |  122 -
 .../vector/detail/preprocessed/vvector10_fwd.hpp   |   16 -
 .../vector/detail/preprocessed/vvector20.hpp       |  142 -
 .../vector/detail/preprocessed/vvector20_fwd.hpp   |   16 -
 .../vector/detail/preprocessed/vvector30.hpp       |  162 --
 .../vector/detail/preprocessed/vvector30_fwd.hpp   |   16 -
 .../vector/detail/preprocessed/vvector40.hpp       |  182 --
 .../vector/detail/preprocessed/vvector40_fwd.hpp   |   16 -
 .../vector/detail/preprocessed/vvector50.hpp       |  202 --
 .../vector/detail/preprocessed/vvector50_fwd.hpp   |   16 -
 .../fusion/container/vector/detail/prior_impl.hpp  |   43 -
 .../container/vector/detail/value_at_impl.hpp      |   33 -
 .../container/vector/detail/value_of_impl.hpp      |   37 -
 .../vector/detail/vector_forward_ctor.hpp          |   51 -
 boost/fusion/container/vector/detail/vector_n.hpp  |  240 --
 .../container/vector/detail/vector_n_chooser.hpp   |  107 -
 boost/fusion/container/vector/limits.hpp           |   23 -
 boost/fusion/container/vector/vector.hpp           |  220 --
 boost/fusion/container/vector/vector10.hpp         |   97 -
 boost/fusion/container/vector/vector10_fwd.hpp     |   63 -
 boost/fusion/container/vector/vector20.hpp         |   78 -
 boost/fusion/container/vector/vector20_fwd.hpp     |   58 -
 boost/fusion/container/vector/vector30.hpp         |   77 -
 boost/fusion/container/vector/vector30_fwd.hpp     |   58 -
 boost/fusion/container/vector/vector40.hpp         |   78 -
 boost/fusion/container/vector/vector40_fwd.hpp     |   58 -
 boost/fusion/container/vector/vector50.hpp         |   77 -
 boost/fusion/container/vector/vector50_fwd.hpp     |   58 -
 boost/fusion/container/vector/vector_fwd.hpp       |   65 -
 boost/fusion/container/vector/vector_iterator.hpp  |   50 -
 boost/fusion/include/std_pair.hpp                  |   12 -
 boost/fusion/include/tuple.hpp                     |   12 -
 boost/fusion/iterator/advance.hpp                  |   92 -
 boost/fusion/iterator/basic_iterator.hpp           |  141 -
 boost/fusion/iterator/deref.hpp                    |   72 -
 boost/fusion/iterator/deref_data.hpp               |   49 -
 .../fusion/iterator/detail/adapt_deref_traits.hpp  |   34 -
 .../fusion/iterator/detail/adapt_value_traits.hpp  |   28 -
 boost/fusion/iterator/detail/advance.hpp           |  102 -
 boost/fusion/iterator/detail/distance.hpp          |   64 -
 boost/fusion/iterator/detail/segment_sequence.hpp  |   71 -
 .../fusion/iterator/detail/segmented_equal_to.hpp  |   41 -
 .../fusion/iterator/detail/segmented_iterator.hpp  |  144 -
 .../fusion/iterator/detail/segmented_next_impl.hpp |  254 --
 boost/fusion/iterator/distance.hpp                 |   78 -
 boost/fusion/iterator/equal_to.hpp                 |  103 -
 boost/fusion/iterator/iterator_facade.hpp          |   57 -
 boost/fusion/iterator/key_of.hpp                   |   42 -
 boost/fusion/iterator/mpl/convert_iterator.hpp     |   58 -
 boost/fusion/iterator/mpl/fusion_iterator.hpp      |   79 -
 boost/fusion/iterator/next.hpp                     |   63 -
 boost/fusion/iterator/prior.hpp                    |   63 -
 boost/fusion/iterator/segmented_iterator.hpp       |   15 -
 boost/fusion/iterator/value_of.hpp                 |   57 -
 boost/fusion/iterator/value_of_data.hpp            |   42 -
 boost/fusion/mpl/begin.hpp                         |   31 -
 boost/fusion/mpl/end.hpp                           |   31 -
 boost/fusion/sequence/comparison.hpp               |   17 -
 .../fusion/sequence/comparison/detail/equal_to.hpp |   61 -
 .../fusion/sequence/comparison/detail/greater.hpp  |   51 -
 .../sequence/comparison/detail/greater_equal.hpp   |   51 -
 boost/fusion/sequence/comparison/detail/less.hpp   |   51 -
 .../sequence/comparison/detail/less_equal.hpp      |   51 -
 .../sequence/comparison/detail/not_equal_to.hpp    |   61 -
 .../sequence/comparison/enable_comparison.hpp      |   34 -
 boost/fusion/sequence/comparison/equal_to.hpp      |   56 -
 boost/fusion/sequence/comparison/greater.hpp       |   52 -
 boost/fusion/sequence/comparison/greater_equal.hpp |   52 -
 boost/fusion/sequence/comparison/less.hpp          |   43 -
 boost/fusion/sequence/comparison/less_equal.hpp    |   81 -
 boost/fusion/sequence/comparison/not_equal_to.hpp  |   55 -
 boost/fusion/sequence/intrinsic/at.hpp             |  111 -
 boost/fusion/sequence/intrinsic/begin.hpp          |   95 -
 .../sequence/intrinsic/detail/segmented_begin.hpp  |   43 -
 .../intrinsic/detail/segmented_begin_impl.hpp      |   92 -
 .../sequence/intrinsic/detail/segmented_end.hpp    |   39 -
 .../intrinsic/detail/segmented_end_impl.hpp        |   59 -
 .../sequence/intrinsic/detail/segmented_size.hpp   |   54 -
 boost/fusion/sequence/intrinsic/empty.hpp          |   61 -
 boost/fusion/sequence/intrinsic/end.hpp            |   95 -
 boost/fusion/sequence/intrinsic/segments.hpp       |   76 -
 boost/fusion/sequence/intrinsic/size.hpp           |   88 -
 boost/fusion/sequence/intrinsic/value_at.hpp       |   68 -
 boost/fusion/sequence/intrinsic_fwd.hpp            |  203 --
 boost/fusion/sequence/io.hpp                       |   13 -
 boost/fusion/sequence/io/detail/in.hpp             |   85 -
 boost/fusion/sequence/io/detail/manip.hpp          |  320 ---
 boost/fusion/sequence/io/detail/out.hpp            |   85 -
 boost/fusion/sequence/io/in.hpp                    |   42 -
 boost/fusion/sequence/io/out.hpp                   |   44 -
 boost/fusion/support/as_const.hpp                  |   26 -
 boost/fusion/support/category_of.hpp               |  112 -
 boost/fusion/support/detail/access.hpp             |   64 -
 boost/fusion/support/detail/as_fusion_element.hpp  |   47 -
 boost/fusion/support/detail/category_of.hpp        |   19 -
 boost/fusion/support/detail/is_mpl_sequence.hpp    |   27 -
 boost/fusion/support/detail/is_view.hpp            |   19 -
 .../support/detail/mpl_iterator_category.hpp       |   66 -
 boost/fusion/support/detail/pp_round.hpp           |   71 -
 .../support/detail/segmented_fold_until_impl.hpp   |  389 ---
 boost/fusion/support/is_iterator.hpp               |   20 -
 boost/fusion/support/is_segmented.hpp              |   54 -
 boost/fusion/support/is_sequence.hpp               |   76 -
 boost/fusion/support/is_view.hpp                   |   66 -
 boost/fusion/support/iterator_base.hpp             |   31 -
 boost/fusion/support/sequence_base.hpp             |   54 -
 boost/fusion/support/tag_of.hpp                    |   82 -
 boost/fusion/support/tag_of_fwd.hpp                |   20 -
 boost/fusion/support/void.hpp                      |   15 -
 boost/fusion/tuple.hpp                             |   15 -
 .../tuple/detail/preprocessed/make_tuple.hpp       |   21 -
 .../tuple/detail/preprocessed/make_tuple10.hpp     |   81 -
 .../tuple/detail/preprocessed/make_tuple20.hpp     |  151 --
 .../tuple/detail/preprocessed/make_tuple30.hpp     |  221 --
 .../tuple/detail/preprocessed/make_tuple40.hpp     |  291 ---
 .../tuple/detail/preprocessed/make_tuple50.hpp     |  361 ---
 boost/fusion/tuple/detail/preprocessed/tuple.hpp   |   21 -
 boost/fusion/tuple/detail/preprocessed/tuple10.hpp |  173 --
 .../tuple/detail/preprocessed/tuple10_fwd.hpp      |   16 -
 boost/fusion/tuple/detail/preprocessed/tuple20.hpp |  283 --
 .../tuple/detail/preprocessed/tuple20_fwd.hpp      |   16 -
 boost/fusion/tuple/detail/preprocessed/tuple30.hpp |  393 ---
 .../tuple/detail/preprocessed/tuple30_fwd.hpp      |   16 -
 boost/fusion/tuple/detail/preprocessed/tuple40.hpp |  503 ----
 .../tuple/detail/preprocessed/tuple40_fwd.hpp      |   16 -
 boost/fusion/tuple/detail/preprocessed/tuple50.hpp |  613 -----
 .../tuple/detail/preprocessed/tuple50_fwd.hpp      |   16 -
 .../fusion/tuple/detail/preprocessed/tuple_fwd.hpp |   21 -
 .../fusion/tuple/detail/preprocessed/tuple_tie.hpp |   21 -
 .../tuple/detail/preprocessed/tuple_tie10.hpp      |   81 -
 .../tuple/detail/preprocessed/tuple_tie20.hpp      |  151 --
 .../tuple/detail/preprocessed/tuple_tie30.hpp      |  221 --
 .../tuple/detail/preprocessed/tuple_tie40.hpp      |  291 ---
 .../tuple/detail/preprocessed/tuple_tie50.hpp      |  361 ---
 boost/fusion/tuple/detail/tuple_expand.hpp         |   50 -
 boost/fusion/tuple/make_tuple.hpp                  |   85 -
 boost/fusion/tuple/tuple.hpp                       |  114 -
 boost/fusion/tuple/tuple_fwd.hpp                   |   50 -
 boost/fusion/tuple/tuple_tie.hpp                   |   75 -
 boost/fusion/view/iterator_range.hpp               |   12 -
 .../fusion/view/iterator_range/detail/at_impl.hpp  |   44 -
 .../view/iterator_range/detail/begin_impl.hpp      |   39 -
 .../fusion/view/iterator_range/detail/end_impl.hpp |   39 -
 .../iterator_range/detail/is_segmented_impl.hpp    |   66 -
 .../detail/segmented_iterator_range.hpp            |  532 ----
 .../view/iterator_range/detail/segments_impl.hpp   |   52 -
 .../view/iterator_range/detail/size_impl.hpp       |   37 -
 .../view/iterator_range/detail/value_at_impl.hpp   |   38 -
 .../fusion/view/iterator_range/iterator_range.hpp  |   61 -
 boost/fusion/view/joint_view/detail/begin_impl.hpp |   67 -
 .../view/joint_view/detail/deref_data_impl.hpp     |   37 -
 boost/fusion/view/joint_view/detail/deref_impl.hpp |   29 -
 boost/fusion/view/joint_view/detail/end_impl.hpp   |   40 -
 .../fusion/view/joint_view/detail/key_of_impl.hpp  |   28 -
 boost/fusion/view/joint_view/detail/next_impl.hpp  |   71 -
 .../view/joint_view/detail/value_of_data_impl.hpp  |   28 -
 .../view/joint_view/detail/value_of_impl.hpp       |   29 -
 boost/fusion/view/joint_view/joint_view.hpp        |   78 -
 boost/fusion/view/joint_view/joint_view_fwd.hpp    |   18 -
 .../fusion/view/joint_view/joint_view_iterator.hpp |   59 -
 .../view/single_view/detail/advance_impl.hpp       |   47 -
 boost/fusion/view/single_view/detail/at_impl.hpp   |   44 -
 .../fusion/view/single_view/detail/begin_impl.hpp  |   45 -
 .../fusion/view/single_view/detail/deref_impl.hpp  |   45 -
 .../view/single_view/detail/distance_impl.hpp      |   43 -
 boost/fusion/view/single_view/detail/end_impl.hpp  |   45 -
 .../view/single_view/detail/equal_to_impl.hpp      |   39 -
 boost/fusion/view/single_view/detail/next_impl.hpp |   50 -
 .../fusion/view/single_view/detail/prior_impl.hpp  |   46 -
 boost/fusion/view/single_view/detail/size_impl.hpp |   33 -
 .../view/single_view/detail/value_at_impl.hpp      |   39 -
 .../view/single_view/detail/value_of_impl.hpp      |   39 -
 boost/fusion/view/single_view/single_view.hpp      |   68 -
 .../view/single_view/single_view_iterator.hpp      |   58 -
 boost/integer.hpp                                  |  261 --
 boost/integer/integer_mask.hpp                     |  126 -
 boost/integer/static_log2.hpp                      |  127 -
 boost/integer_fwd.hpp                              |  164 --
 boost/integer_traits.hpp                           |  261 --
 boost/iterator.hpp                                 |   59 -
 boost/iterator/detail/config_def.hpp               |  137 -
 boost/iterator/detail/config_undef.hpp             |   25 -
 boost/iterator/detail/enable_if.hpp                |   86 -
 boost/iterator/detail/facade_iterator_category.hpp |  200 --
 boost/iterator/interoperable.hpp                   |   50 -
 boost/iterator/iterator_adaptor.hpp                |  365 ---
 boost/iterator/iterator_categories.hpp             |  188 --
 boost/iterator/iterator_concepts.hpp               |  284 --
 boost/iterator/iterator_facade.hpp                 |  874 -------
 boost/iterator/iterator_traits.hpp                 |   92 -
 boost/iterator/reverse_iterator.hpp                |   69 -
 boost/lexical_cast.hpp                             | 2748 -------------------
 boost/limits.hpp                                   |  146 --
 boost/math/constants/calculate_constants.hpp       |  968 -------
 boost/math/constants/constants.hpp                 |  334 ---
 boost/math/distributions/complement.hpp            |  195 --
 .../distributions/detail/common_error_handling.hpp |  194 --
 .../distributions/detail/derived_accessors.hpp     |  163 --
 boost/math/distributions/fwd.hpp                   |  146 --
 boost/math/distributions/normal.hpp                |  321 ---
 boost/math/policies/error_handling.hpp             |  719 -----
 boost/math/policies/policy.hpp                     |  992 -------
 boost/math/special_functions.hpp                   |   64 -
 boost/math/special_functions/acosh.hpp             |  115 -
 boost/math/special_functions/airy.hpp              |  437 ----
 boost/math/special_functions/asinh.hpp             |  117 -
 boost/math/special_functions/atanh.hpp             |  128 -
 boost/math/special_functions/bessel.hpp            |  766 ------
 boost/math/special_functions/beta.hpp              | 1490 -----------
 boost/math/special_functions/binomial.hpp          |   81 -
 boost/math/special_functions/cbrt.hpp              |  180 --
 boost/math/special_functions/cos_pi.hpp            |   68 -
 .../special_functions/detail/airy_ai_bi_zero.hpp   |  160 --
 boost/math/special_functions/detail/bessel_i0.hpp  |  132 -
 boost/math/special_functions/detail/bessel_i1.hpp  |  136 -
 boost/math/special_functions/detail/bessel_ik.hpp  |  445 ----
 boost/math/special_functions/detail/bessel_j0.hpp  |  193 --
 boost/math/special_functions/detail/bessel_j1.hpp  |  199 --
 boost/math/special_functions/detail/bessel_jn.hpp  |  134 -
 boost/math/special_functions/detail/bessel_jy.hpp  |  578 ----
 .../special_functions/detail/bessel_jy_asym.hpp    |  205 --
 .../special_functions/detail/bessel_jy_series.hpp  |  261 --
 .../special_functions/detail/bessel_jy_zero.hpp    |  617 -----
 boost/math/special_functions/detail/bessel_k0.hpp  |  152 --
 boost/math/special_functions/detail/bessel_k1.hpp  |  148 --
 boost/math/special_functions/detail/bessel_kn.hpp  |   85 -
 boost/math/special_functions/detail/bessel_y0.hpp  |  224 --
 boost/math/special_functions/detail/bessel_y1.hpp  |  196 --
 boost/math/special_functions/detail/bessel_yn.hpp  |  104 -
 boost/math/special_functions/detail/erf_inv.hpp    |  521 ----
 boost/math/special_functions/detail/fp_traits.hpp  |  570 ----
 boost/math/special_functions/detail/gamma_inva.hpp |  233 --
 .../math/special_functions/detail/ibeta_inv_ab.hpp |  324 ---
 .../special_functions/detail/ibeta_inverse.hpp     |  993 -------
 boost/math/special_functions/detail/iconv.hpp      |   42 -
 .../special_functions/detail/igamma_inverse.hpp    |  551 ----
 .../math/special_functions/detail/igamma_large.hpp |  768 ------
 .../math/special_functions/detail/lanczos_sse2.hpp |  204 --
 .../math/special_functions/detail/lgamma_small.hpp |  522 ----
 boost/math/special_functions/detail/round_fwd.hpp  |   93 -
 .../detail/t_distribution_inv.hpp                  |  549 ----
 .../detail/unchecked_factorial.hpp                 |  435 ---
 boost/math/special_functions/digamma.hpp           |  479 ----
 boost/math/special_functions/ellint_1.hpp          |  188 --
 boost/math/special_functions/ellint_2.hpp          |  169 --
 boost/math/special_functions/ellint_3.hpp          |  319 ---
 boost/math/special_functions/ellint_rc.hpp         |  115 -
 boost/math/special_functions/ellint_rd.hpp         |  130 -
 boost/math/special_functions/ellint_rf.hpp         |  132 -
 boost/math/special_functions/ellint_rj.hpp         |  180 --
 boost/math/special_functions/erf.hpp               | 1155 --------
 boost/math/special_functions/expint.hpp            | 1671 ------------
 boost/math/special_functions/expm1.hpp             |  343 ---
 boost/math/special_functions/factorials.hpp        |  239 --
 boost/math/special_functions/fpclassify.hpp        |  606 -----
 boost/math/special_functions/gamma.hpp             | 1704 ------------
 boost/math/special_functions/hankel.hpp            |  179 --
 boost/math/special_functions/hermite.hpp           |   76 -
 boost/math/special_functions/hypot.hpp             |   86 -
 boost/math/special_functions/jacobi_elliptic.hpp   |  320 ---
 boost/math/special_functions/laguerre.hpp          |  139 -
 boost/math/special_functions/lanczos.hpp           | 1296 ---------
 boost/math/special_functions/legendre.hpp          |  194 --
 boost/math/special_functions/log1p.hpp             |  503 ----
 boost/math/special_functions/math_fwd.hpp          | 1408 ----------
 boost/math/special_functions/modf.hpp              |   70 -
 boost/math/special_functions/next.hpp              |  490 ----
 boost/math/special_functions/owens_t.hpp           | 1061 --------
 boost/math/special_functions/pow.hpp               |  140 -
 boost/math/special_functions/powm1.hpp             |   61 -
 boost/math/special_functions/round.hpp             |   93 -
 boost/math/special_functions/sign.hpp              |  150 --
 boost/math/special_functions/sin_pi.hpp            |   70 -
 boost/math/special_functions/sinc.hpp              |  145 -
 boost/math/special_functions/sinhc.hpp             |  167 --
 .../math/special_functions/spherical_harmonic.hpp  |  204 --
 boost/math/special_functions/sqrt1pm1.hpp          |   48 -
 boost/math/special_functions/trunc.hpp             |   96 -
 boost/math/special_functions/zeta.hpp              |  995 -------
 boost/math/tools/big_constant.hpp                  |   67 -
 boost/math/tools/config.hpp                        |  352 ---
 boost/math/tools/detail/polynomial_horner1_10.hpp  |   84 -
 boost/math/tools/detail/polynomial_horner1_11.hpp  |   90 -
 boost/math/tools/detail/polynomial_horner1_12.hpp  |   96 -
 boost/math/tools/detail/polynomial_horner1_13.hpp  |  102 -
 boost/math/tools/detail/polynomial_horner1_14.hpp  |  108 -
 boost/math/tools/detail/polynomial_horner1_15.hpp  |  114 -
 boost/math/tools/detail/polynomial_horner1_16.hpp  |  120 -
 boost/math/tools/detail/polynomial_horner1_17.hpp  |  126 -
 boost/math/tools/detail/polynomial_horner1_18.hpp  |  132 -
 boost/math/tools/detail/polynomial_horner1_19.hpp  |  138 -
 boost/math/tools/detail/polynomial_horner1_2.hpp   |   36 -
 boost/math/tools/detail/polynomial_horner1_20.hpp  |  144 -
 boost/math/tools/detail/polynomial_horner1_3.hpp   |   42 -
 boost/math/tools/detail/polynomial_horner1_4.hpp   |   48 -
 boost/math/tools/detail/polynomial_horner1_5.hpp   |   54 -
 boost/math/tools/detail/polynomial_horner1_6.hpp   |   60 -
 boost/math/tools/detail/polynomial_horner1_7.hpp   |   66 -
 boost/math/tools/detail/polynomial_horner1_8.hpp   |   72 -
 boost/math/tools/detail/polynomial_horner1_9.hpp   |   78 -
 boost/math/tools/detail/polynomial_horner2_10.hpp  |   90 -
 boost/math/tools/detail/polynomial_horner2_11.hpp  |   97 -
 boost/math/tools/detail/polynomial_horner2_12.hpp  |  104 -
 boost/math/tools/detail/polynomial_horner2_13.hpp  |  111 -
 boost/math/tools/detail/polynomial_horner2_14.hpp  |  118 -
 boost/math/tools/detail/polynomial_horner2_15.hpp  |  125 -
 boost/math/tools/detail/polynomial_horner2_16.hpp  |  132 -
 boost/math/tools/detail/polynomial_horner2_17.hpp  |  139 -
 boost/math/tools/detail/polynomial_horner2_18.hpp  |  146 --
 boost/math/tools/detail/polynomial_horner2_19.hpp  |  153 --
 boost/math/tools/detail/polynomial_horner2_2.hpp   |   48 -
 boost/math/tools/detail/polynomial_horner2_20.hpp  |  160 --
 boost/math/tools/detail/polynomial_horner2_3.hpp   |   48 -
 boost/math/tools/detail/polynomial_horner2_4.hpp   |   48 -
 boost/math/tools/detail/polynomial_horner2_5.hpp   |   55 -
 boost/math/tools/detail/polynomial_horner2_6.hpp   |   62 -
 boost/math/tools/detail/polynomial_horner2_7.hpp   |   69 -
 boost/math/tools/detail/polynomial_horner2_8.hpp   |   76 -
 boost/math/tools/detail/polynomial_horner2_9.hpp   |   83 -
 boost/math/tools/detail/polynomial_horner3_10.hpp  |  156 --
 boost/math/tools/detail/polynomial_horner3_11.hpp  |  181 --
 boost/math/tools/detail/polynomial_horner3_12.hpp  |  208 --
 boost/math/tools/detail/polynomial_horner3_13.hpp  |  237 --
 boost/math/tools/detail/polynomial_horner3_14.hpp  |  268 --
 boost/math/tools/detail/polynomial_horner3_15.hpp  |  301 ---
 boost/math/tools/detail/polynomial_horner3_16.hpp  |  336 ---
 boost/math/tools/detail/polynomial_horner3_17.hpp  |  373 ---
 boost/math/tools/detail/polynomial_horner3_18.hpp  |  412 ---
 boost/math/tools/detail/polynomial_horner3_19.hpp  |  453 ----
 boost/math/tools/detail/polynomial_horner3_2.hpp   |   48 -
 boost/math/tools/detail/polynomial_horner3_20.hpp  |  496 ----
 boost/math/tools/detail/polynomial_horner3_3.hpp   |   48 -
 boost/math/tools/detail/polynomial_horner3_4.hpp   |   48 -
 boost/math/tools/detail/polynomial_horner3_5.hpp   |   61 -
 boost/math/tools/detail/polynomial_horner3_6.hpp   |   76 -
 boost/math/tools/detail/polynomial_horner3_7.hpp   |   93 -
 boost/math/tools/detail/polynomial_horner3_8.hpp   |  112 -
 boost/math/tools/detail/polynomial_horner3_9.hpp   |  133 -
 boost/math/tools/detail/rational_horner1_10.hpp    |  138 -
 boost/math/tools/detail/rational_horner1_11.hpp    |  150 --
 boost/math/tools/detail/rational_horner1_12.hpp    |  162 --
 boost/math/tools/detail/rational_horner1_13.hpp    |  174 --
 boost/math/tools/detail/rational_horner1_14.hpp    |  186 --
 boost/math/tools/detail/rational_horner1_15.hpp    |  198 --
 boost/math/tools/detail/rational_horner1_16.hpp    |  210 --
 boost/math/tools/detail/rational_horner1_17.hpp    |  222 --
 boost/math/tools/detail/rational_horner1_18.hpp    |  234 --
 boost/math/tools/detail/rational_horner1_19.hpp    |  246 --
 boost/math/tools/detail/rational_horner1_2.hpp     |   42 -
 boost/math/tools/detail/rational_horner1_20.hpp    |  258 --
 boost/math/tools/detail/rational_horner1_3.hpp     |   54 -
 boost/math/tools/detail/rational_horner1_4.hpp     |   66 -
 boost/math/tools/detail/rational_horner1_5.hpp     |   78 -
 boost/math/tools/detail/rational_horner1_6.hpp     |   90 -
 boost/math/tools/detail/rational_horner1_7.hpp     |  102 -
 boost/math/tools/detail/rational_horner1_8.hpp     |  114 -
 boost/math/tools/detail/rational_horner1_9.hpp     |  126 -
 boost/math/tools/detail/rational_horner2_10.hpp    |  144 -
 boost/math/tools/detail/rational_horner2_11.hpp    |  160 --
 boost/math/tools/detail/rational_horner2_12.hpp    |  176 --
 boost/math/tools/detail/rational_horner2_13.hpp    |  192 --
 boost/math/tools/detail/rational_horner2_14.hpp    |  208 --
 boost/math/tools/detail/rational_horner2_15.hpp    |  224 --
 boost/math/tools/detail/rational_horner2_16.hpp    |  240 --
 boost/math/tools/detail/rational_horner2_17.hpp    |  256 --
 boost/math/tools/detail/rational_horner2_18.hpp    |  272 --
 boost/math/tools/detail/rational_horner2_19.hpp    |  288 --
 boost/math/tools/detail/rational_horner2_2.hpp     |   48 -
 boost/math/tools/detail/rational_horner2_20.hpp    |  304 ---
 boost/math/tools/detail/rational_horner2_3.hpp     |   48 -
 boost/math/tools/detail/rational_horner2_4.hpp     |   48 -
 boost/math/tools/detail/rational_horner2_5.hpp     |   64 -
 boost/math/tools/detail/rational_horner2_6.hpp     |   80 -
 boost/math/tools/detail/rational_horner2_7.hpp     |   96 -
 boost/math/tools/detail/rational_horner2_8.hpp     |  112 -
 boost/math/tools/detail/rational_horner2_9.hpp     |  128 -
 boost/math/tools/detail/rational_horner3_10.hpp    |  396 ---
 boost/math/tools/detail/rational_horner3_11.hpp    |  482 ----
 boost/math/tools/detail/rational_horner3_12.hpp    |  576 ----
 boost/math/tools/detail/rational_horner3_13.hpp    |  678 -----
 boost/math/tools/detail/rational_horner3_14.hpp    |  788 ------
 boost/math/tools/detail/rational_horner3_15.hpp    |  906 -------
 boost/math/tools/detail/rational_horner3_16.hpp    | 1032 --------
 boost/math/tools/detail/rational_horner3_17.hpp    | 1166 ---------
 boost/math/tools/detail/rational_horner3_18.hpp    | 1308 ---------
 boost/math/tools/detail/rational_horner3_19.hpp    | 1458 -----------
 boost/math/tools/detail/rational_horner3_2.hpp     |   48 -
 boost/math/tools/detail/rational_horner3_20.hpp    | 1616 ------------
 boost/math/tools/detail/rational_horner3_3.hpp     |   48 -
 boost/math/tools/detail/rational_horner3_4.hpp     |   48 -
 boost/math/tools/detail/rational_horner3_5.hpp     |   86 -
 boost/math/tools/detail/rational_horner3_6.hpp     |  132 -
 boost/math/tools/detail/rational_horner3_7.hpp     |  186 --
 boost/math/tools/detail/rational_horner3_8.hpp     |  248 --
 boost/math/tools/detail/rational_horner3_9.hpp     |  318 ---
 boost/math/tools/fraction.hpp                      |  252 --
 boost/math/tools/precision.hpp                     |  335 ---
 boost/math/tools/promotion.hpp                     |  175 --
 boost/math/tools/rational.hpp                      |  333 ---
 boost/math/tools/real_cast.hpp                     |   29 -
 boost/math/tools/roots.hpp                         |  542 ----
 boost/math/tools/series.hpp                        |  158 --
 boost/math/tools/toms748_solve.hpp                 |  585 -----
 boost/math/tools/tuple.hpp                         |  112 -
 boost/math/tools/user.hpp                          |   97 -
 boost/math/tools/workaround.hpp                    |   38 -
 boost/memory_order.hpp                             |   53 -
 boost/mpl/O1_size.hpp                              |   40 -
 boost/mpl/O1_size_fwd.hpp                          |   24 -
 boost/mpl/advance.hpp                              |   76 -
 boost/mpl/advance_fwd.hpp                          |   28 -
 boost/mpl/always.hpp                               |   39 -
 boost/mpl/and.hpp                                  |   60 -
 boost/mpl/apply.hpp                                |  229 --
 boost/mpl/apply_fwd.hpp                            |  107 -
 boost/mpl/apply_wrap.hpp                           |  234 --
 boost/mpl/arg.hpp                                  |  131 -
 boost/mpl/arg_fwd.hpp                              |   28 -
 boost/mpl/assert.hpp                               |  438 ----
 boost/mpl/at.hpp                                   |   52 -
 boost/mpl/at_fwd.hpp                               |   24 -
 boost/mpl/aux_/O1_size_impl.hpp                    |   87 -
 boost/mpl/aux_/adl_barrier.hpp                     |   48 -
 boost/mpl/aux_/advance_backward.hpp                |  128 -
 boost/mpl/aux_/advance_forward.hpp                 |  127 -
 boost/mpl/aux_/arg_typedef.hpp                     |   31 -
 boost/mpl/aux_/arithmetic_op.hpp                   |   92 -
 boost/mpl/aux_/arity.hpp                           |   39 -
 boost/mpl/aux_/arity_spec.hpp                      |   67 -
 boost/mpl/aux_/at_impl.hpp                         |   45 -
 boost/mpl/aux_/begin_end_impl.hpp                  |  101 -
 boost/mpl/aux_/clear_impl.hpp                      |   35 -
 boost/mpl/aux_/common_name_wknd.hpp                |   34 -
 boost/mpl/aux_/comparison_op.hpp                   |   83 -
 boost/mpl/aux_/config/adl.hpp                      |   40 -
 boost/mpl/aux_/config/arrays.hpp                   |   30 -
 boost/mpl/aux_/config/bcc.hpp                      |   28 -
 boost/mpl/aux_/config/bind.hpp                     |   33 -
 boost/mpl/aux_/config/compiler.hpp                 |   66 -
 boost/mpl/aux_/config/ctps.hpp                     |   30 -
 boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp       |   27 -
 boost/mpl/aux_/config/dtp.hpp                      |   46 -
 boost/mpl/aux_/config/eti.hpp                      |   47 -
 boost/mpl/aux_/config/forwarding.hpp               |   27 -
 boost/mpl/aux_/config/gcc.hpp                      |   23 -
 boost/mpl/aux_/config/has_apply.hpp                |   32 -
 boost/mpl/aux_/config/has_xxx.hpp                  |   34 -
 boost/mpl/aux_/config/integral.hpp                 |   38 -
 boost/mpl/aux_/config/intel.hpp                    |   21 -
 boost/mpl/aux_/config/lambda.hpp                   |   32 -
 boost/mpl/aux_/config/msvc.hpp                     |   21 -
 boost/mpl/aux_/config/msvc_typename.hpp            |   26 -
 boost/mpl/aux_/config/nttp.hpp                     |   41 -
 boost/mpl/aux_/config/overload_resolution.hpp      |   29 -
 boost/mpl/aux_/config/pp_counter.hpp               |   26 -
 boost/mpl/aux_/config/preprocessor.hpp             |   39 -
 boost/mpl/aux_/config/static_constant.hpp          |   25 -
 boost/mpl/aux_/config/ttp.hpp                      |   41 -
 boost/mpl/aux_/config/typeof.hpp                   |   38 -
 boost/mpl/aux_/config/use_preprocessed.hpp         |   19 -
 boost/mpl/aux_/config/workaround.hpp               |   19 -
 boost/mpl/aux_/contains_impl.hpp                   |   61 -
 boost/mpl/aux_/count_args.hpp                      |  105 -
 boost/mpl/aux_/find_if_pred.hpp                    |   31 -
 boost/mpl/aux_/fold_impl.hpp                       |   43 -
 boost/mpl/aux_/fold_impl_body.hpp                  |  365 ---
 boost/mpl/aux_/full_lambda.hpp                     |  354 ---
 boost/mpl/aux_/has_apply.hpp                       |   32 -
 boost/mpl/aux_/has_begin.hpp                       |   23 -
 boost/mpl/aux_/has_rebind.hpp                      |   99 -
 boost/mpl/aux_/has_size.hpp                        |   23 -
 boost/mpl/aux_/has_tag.hpp                         |   23 -
 boost/mpl/aux_/has_type.hpp                        |   23 -
 boost/mpl/aux_/include_preprocessed.hpp            |   42 -
 boost/mpl/aux_/inserter_algorithm.hpp              |  159 --
 boost/mpl/aux_/integral_wrapper.hpp                |   93 -
 boost/mpl/aux_/is_msvc_eti_arg.hpp                 |   64 -
 boost/mpl/aux_/iter_apply.hpp                      |   47 -
 boost/mpl/aux_/iter_fold_if_impl.hpp               |  210 --
 boost/mpl/aux_/iter_fold_impl.hpp                  |   42 -
 boost/mpl/aux_/lambda_arity_param.hpp              |   25 -
 boost/mpl/aux_/lambda_no_ctps.hpp                  |  193 --
 boost/mpl/aux_/lambda_spec.hpp                     |   49 -
 boost/mpl/aux_/lambda_support.hpp                  |  169 --
 boost/mpl/aux_/largest_int.hpp                     |   63 -
 boost/mpl/aux_/logical_op.hpp                      |  165 --
 boost/mpl/aux_/msvc_dtw.hpp                        |   68 -
 boost/mpl/aux_/msvc_eti_base.hpp                   |   77 -
 boost/mpl/aux_/msvc_is_class.hpp                   |   58 -
 boost/mpl/aux_/msvc_never_true.hpp                 |   34 -
 boost/mpl/aux_/msvc_type.hpp                       |   62 -
 boost/mpl/aux_/na.hpp                              |   95 -
 boost/mpl/aux_/na_assert.hpp                       |   34 -
 boost/mpl/aux_/na_fwd.hpp                          |   31 -
 boost/mpl/aux_/na_spec.hpp                         |  175 --
 boost/mpl/aux_/nested_type_wknd.hpp                |   48 -
 boost/mpl/aux_/nttp_decl.hpp                       |   35 -
 boost/mpl/aux_/numeric_cast_utils.hpp              |   77 -
 boost/mpl/aux_/numeric_op.hpp                      |  315 ---
 .../mpl/aux_/preprocessed/bcc/advance_backward.hpp |   97 -
 .../mpl/aux_/preprocessed/bcc/advance_forward.hpp  |   97 -
 boost/mpl/aux_/preprocessed/bcc/and.hpp            |   69 -
 boost/mpl/aux_/preprocessed/bcc/apply.hpp          |  169 --
 boost/mpl/aux_/preprocessed/bcc/apply_fwd.hpp      |   52 -
 boost/mpl/aux_/preprocessed/bcc/apply_wrap.hpp     |  461 ----
 boost/mpl/aux_/preprocessed/bcc/arg.hpp            |  117 -
 boost/mpl/aux_/preprocessed/bcc/basic_bind.hpp     |  300 ---
 boost/mpl/aux_/preprocessed/bcc/bind.hpp           |  397 ---
 boost/mpl/aux_/preprocessed/bcc/bind_fwd.hpp       |   46 -
 boost/mpl/aux_/preprocessed/bcc/bitand.hpp         |  147 --
 boost/mpl/aux_/preprocessed/bcc/bitor.hpp          |  147 --
 boost/mpl/aux_/preprocessed/bcc/bitxor.hpp         |  147 --
 boost/mpl/aux_/preprocessed/bcc/deque.hpp          |  323 ---
 boost/mpl/aux_/preprocessed/bcc/divides.hpp        |  146 --
 boost/mpl/aux_/preprocessed/bcc/equal_to.hpp       |   94 -
 boost/mpl/aux_/preprocessed/bcc/fold_impl.hpp      |  180 --
 boost/mpl/aux_/preprocessed/bcc/full_lambda.hpp    |  558 ----
 boost/mpl/aux_/preprocessed/bcc/greater.hpp        |   94 -
 boost/mpl/aux_/preprocessed/bcc/greater_equal.hpp  |   94 -
 boost/mpl/aux_/preprocessed/bcc/inherit.hpp        |  139 -
 .../aux_/preprocessed/bcc/iter_fold_if_impl.hpp    |  133 -
 boost/mpl/aux_/preprocessed/bcc/iter_fold_impl.hpp |  180 --
 boost/mpl/aux_/preprocessed/bcc/lambda_no_ctps.hpp |  229 --
 boost/mpl/aux_/preprocessed/bcc/less.hpp           |   94 -
 boost/mpl/aux_/preprocessed/bcc/less_equal.hpp     |   94 -
 boost/mpl/aux_/preprocessed/bcc/list.hpp           |  323 ---
 boost/mpl/aux_/preprocessed/bcc/list_c.hpp         |  328 ---
 boost/mpl/aux_/preprocessed/bcc/map.hpp            |  323 ---
 boost/mpl/aux_/preprocessed/bcc/minus.hpp          |  146 --
 boost/mpl/aux_/preprocessed/bcc/modulus.hpp        |  101 -
 boost/mpl/aux_/preprocessed/bcc/not_equal_to.hpp   |   94 -
 boost/mpl/aux_/preprocessed/bcc/or.hpp             |   69 -
 boost/mpl/aux_/preprocessed/bcc/placeholders.hpp   |  105 -
 boost/mpl/aux_/preprocessed/bcc/plus.hpp           |  146 --
 boost/mpl/aux_/preprocessed/bcc/quote.hpp          |  119 -
 .../aux_/preprocessed/bcc/reverse_fold_impl.hpp    |  295 ---
 .../preprocessed/bcc/reverse_iter_fold_impl.hpp    |  295 ---
 boost/mpl/aux_/preprocessed/bcc/set.hpp            |  323 ---
 boost/mpl/aux_/preprocessed/bcc/set_c.hpp          |  328 ---
 boost/mpl/aux_/preprocessed/bcc/shift_left.hpp     |   99 -
 boost/mpl/aux_/preprocessed/bcc/shift_right.hpp    |   99 -
 boost/mpl/aux_/preprocessed/bcc/template_arity.hpp |   40 -
 boost/mpl/aux_/preprocessed/bcc/times.hpp          |  146 --
 boost/mpl/aux_/preprocessed/bcc/unpack_args.hpp    |   97 -
 boost/mpl/aux_/preprocessed/bcc/vector.hpp         |  323 ---
 boost/mpl/aux_/preprocessed/bcc/vector_c.hpp       |  309 ---
 .../aux_/preprocessed/bcc551/advance_backward.hpp  |   97 -
 .../aux_/preprocessed/bcc551/advance_forward.hpp   |   97 -
 boost/mpl/aux_/preprocessed/bcc551/and.hpp         |   69 -
 boost/mpl/aux_/preprocessed/bcc551/apply.hpp       |  169 --
 boost/mpl/aux_/preprocessed/bcc551/apply_fwd.hpp   |   52 -
 boost/mpl/aux_/preprocessed/bcc551/apply_wrap.hpp  |  456 ----
 boost/mpl/aux_/preprocessed/bcc551/arg.hpp         |  123 -
 boost/mpl/aux_/preprocessed/bcc551/basic_bind.hpp  |  306 ---
 boost/mpl/aux_/preprocessed/bcc551/bind.hpp        |  403 ---
 boost/mpl/aux_/preprocessed/bcc551/bind_fwd.hpp    |   46 -
 boost/mpl/aux_/preprocessed/bcc551/bitand.hpp      |  147 --
 boost/mpl/aux_/preprocessed/bcc551/bitor.hpp       |  147 --
 boost/mpl/aux_/preprocessed/bcc551/bitxor.hpp      |  147 --
 boost/mpl/aux_/preprocessed/bcc551/deque.hpp       |  323 ---
 boost/mpl/aux_/preprocessed/bcc551/divides.hpp     |  146 --
 boost/mpl/aux_/preprocessed/bcc551/equal_to.hpp    |   94 -
 boost/mpl/aux_/preprocessed/bcc551/fold_impl.hpp   |  180 --
 boost/mpl/aux_/preprocessed/bcc551/full_lambda.hpp |  558 ----
 boost/mpl/aux_/preprocessed/bcc551/greater.hpp     |   94 -
 .../mpl/aux_/preprocessed/bcc551/greater_equal.hpp |   94 -
 boost/mpl/aux_/preprocessed/bcc551/inherit.hpp     |  141 -
 .../aux_/preprocessed/bcc551/iter_fold_if_impl.hpp |  133 -
 .../aux_/preprocessed/bcc551/iter_fold_impl.hpp    |  180 --
 .../aux_/preprocessed/bcc551/lambda_no_ctps.hpp    |  229 --
 boost/mpl/aux_/preprocessed/bcc551/less.hpp        |   94 -
 boost/mpl/aux_/preprocessed/bcc551/less_equal.hpp  |   94 -
 boost/mpl/aux_/preprocessed/bcc551/list.hpp        |  323 ---
 boost/mpl/aux_/preprocessed/bcc551/list_c.hpp      |  328 ---
 boost/mpl/aux_/preprocessed/bcc551/map.hpp         |  323 ---
 boost/mpl/aux_/preprocessed/bcc551/minus.hpp       |  146 --
 boost/mpl/aux_/preprocessed/bcc551/modulus.hpp     |  101 -
 .../mpl/aux_/preprocessed/bcc551/not_equal_to.hpp  |   94 -
 boost/mpl/aux_/preprocessed/bcc551/or.hpp          |   69 -
 .../mpl/aux_/preprocessed/bcc551/placeholders.hpp  |  105 -
 boost/mpl/aux_/preprocessed/bcc551/plus.hpp        |  146 --
 boost/mpl/aux_/preprocessed/bcc551/quote.hpp       |   11 -
 .../aux_/preprocessed/bcc551/reverse_fold_impl.hpp |  295 ---
 .../preprocessed/bcc551/reverse_iter_fold_impl.hpp |  295 ---
 boost/mpl/aux_/preprocessed/bcc551/set.hpp         |  323 ---
 boost/mpl/aux_/preprocessed/bcc551/set_c.hpp       |  328 ---
 boost/mpl/aux_/preprocessed/bcc551/shift_left.hpp  |   99 -
 boost/mpl/aux_/preprocessed/bcc551/shift_right.hpp |   99 -
 .../aux_/preprocessed/bcc551/template_arity.hpp    |   40 -
 boost/mpl/aux_/preprocessed/bcc551/times.hpp       |  146 --
 boost/mpl/aux_/preprocessed/bcc551/unpack_args.hpp |   97 -
 boost/mpl/aux_/preprocessed/bcc551/vector.hpp      |  323 ---
 boost/mpl/aux_/preprocessed/bcc551/vector_c.hpp    |  309 ---
 .../preprocessed/bcc_pre590/advance_backward.hpp   |   97 -
 .../preprocessed/bcc_pre590/advance_forward.hpp    |   97 -
 boost/mpl/aux_/preprocessed/bcc_pre590/and.hpp     |   69 -
 boost/mpl/aux_/preprocessed/bcc_pre590/apply.hpp   |  169 --
 .../mpl/aux_/preprocessed/bcc_pre590/apply_fwd.hpp |   52 -
 .../aux_/preprocessed/bcc_pre590/apply_wrap.hpp    |  456 ----
 boost/mpl/aux_/preprocessed/bcc_pre590/arg.hpp     |  117 -
 .../aux_/preprocessed/bcc_pre590/basic_bind.hpp    |  300 ---
 boost/mpl/aux_/preprocessed/bcc_pre590/bind.hpp    |  397 ---
 .../mpl/aux_/preprocessed/bcc_pre590/bind_fwd.hpp  |   46 -
 boost/mpl/aux_/preprocessed/bcc_pre590/bitand.hpp  |  147 --
 boost/mpl/aux_/preprocessed/bcc_pre590/bitor.hpp   |  147 --
 boost/mpl/aux_/preprocessed/bcc_pre590/bitxor.hpp  |  147 --
 boost/mpl/aux_/preprocessed/bcc_pre590/deque.hpp   |  323 ---
 boost/mpl/aux_/preprocessed/bcc_pre590/divides.hpp |  146 --
 .../mpl/aux_/preprocessed/bcc_pre590/equal_to.hpp  |   94 -
 .../mpl/aux_/preprocessed/bcc_pre590/fold_impl.hpp |  180 --
 .../aux_/preprocessed/bcc_pre590/full_lambda.hpp   |  558 ----
 boost/mpl/aux_/preprocessed/bcc_pre590/greater.hpp |   94 -
 .../aux_/preprocessed/bcc_pre590/greater_equal.hpp |   94 -
 boost/mpl/aux_/preprocessed/bcc_pre590/inherit.hpp |  139 -
 .../preprocessed/bcc_pre590/iter_fold_if_impl.hpp  |  133 -
 .../preprocessed/bcc_pre590/iter_fold_impl.hpp     |  180 --
 .../preprocessed/bcc_pre590/lambda_no_ctps.hpp     |  229 --
 boost/mpl/aux_/preprocessed/bcc_pre590/less.hpp    |   94 -
 .../aux_/preprocessed/bcc_pre590/less_equal.hpp    |   94 -
 boost/mpl/aux_/preprocessed/bcc_pre590/list.hpp    |  323 ---
 boost/mpl/aux_/preprocessed/bcc_pre590/list_c.hpp  |  328 ---
 boost/mpl/aux_/preprocessed/bcc_pre590/map.hpp     |  323 ---
 boost/mpl/aux_/preprocessed/bcc_pre590/minus.hpp   |  146 --
 boost/mpl/aux_/preprocessed/bcc_pre590/modulus.hpp |  101 -
 .../aux_/preprocessed/bcc_pre590/not_equal_to.hpp  |   94 -
 boost/mpl/aux_/preprocessed/bcc_pre590/or.hpp      |   69 -
 .../aux_/preprocessed/bcc_pre590/placeholders.hpp  |  105 -
 boost/mpl/aux_/preprocessed/bcc_pre590/plus.hpp    |  146 --
 boost/mpl/aux_/preprocessed/bcc_pre590/quote.hpp   |   11 -
 .../preprocessed/bcc_pre590/reverse_fold_impl.hpp  |  295 ---
 .../bcc_pre590/reverse_iter_fold_impl.hpp          |  295 ---
 boost/mpl/aux_/preprocessed/bcc_pre590/set.hpp     |  323 ---
 boost/mpl/aux_/preprocessed/bcc_pre590/set_c.hpp   |  328 ---
 .../aux_/preprocessed/bcc_pre590/shift_left.hpp    |   99 -
 .../aux_/preprocessed/bcc_pre590/shift_right.hpp   |   99 -
 .../preprocessed/bcc_pre590/template_arity.hpp     |   40 -
 boost/mpl/aux_/preprocessed/bcc_pre590/times.hpp   |  146 --
 .../aux_/preprocessed/bcc_pre590/unpack_args.hpp   |   97 -
 boost/mpl/aux_/preprocessed/bcc_pre590/vector.hpp  |  323 ---
 .../mpl/aux_/preprocessed/bcc_pre590/vector_c.hpp  |  309 ---
 .../mpl/aux_/preprocessed/dmc/advance_backward.hpp |   97 -
 .../mpl/aux_/preprocessed/dmc/advance_forward.hpp  |   97 -
 boost/mpl/aux_/preprocessed/dmc/and.hpp            |   69 -
 boost/mpl/aux_/preprocessed/dmc/apply.hpp          |  169 --
 boost/mpl/aux_/preprocessed/dmc/apply_fwd.hpp      |   52 -
 boost/mpl/aux_/preprocessed/dmc/apply_wrap.hpp     |   84 -
 boost/mpl/aux_/preprocessed/dmc/arg.hpp            |  123 -
 boost/mpl/aux_/preprocessed/dmc/basic_bind.hpp     |  406 ---
 boost/mpl/aux_/preprocessed/dmc/bind.hpp           |  515 ----
 boost/mpl/aux_/preprocessed/dmc/bind_fwd.hpp       |   53 -
 boost/mpl/aux_/preprocessed/dmc/bitand.hpp         |  147 --
 boost/mpl/aux_/preprocessed/dmc/bitor.hpp          |  147 --
 boost/mpl/aux_/preprocessed/dmc/bitxor.hpp         |  147 --
 boost/mpl/aux_/preprocessed/dmc/deque.hpp          |  323 ---
 boost/mpl/aux_/preprocessed/dmc/divides.hpp        |  146 --
 boost/mpl/aux_/preprocessed/dmc/equal_to.hpp       |   94 -
 boost/mpl/aux_/preprocessed/dmc/fold_impl.hpp      |  180 --
 boost/mpl/aux_/preprocessed/dmc/full_lambda.hpp    |  536 ----
 boost/mpl/aux_/preprocessed/dmc/greater.hpp        |   94 -
 boost/mpl/aux_/preprocessed/dmc/greater_equal.hpp  |   94 -
 boost/mpl/aux_/preprocessed/dmc/inherit.hpp        |  141 -
 .../aux_/preprocessed/dmc/iter_fold_if_impl.hpp    |  133 -
 boost/mpl/aux_/preprocessed/dmc/iter_fold_impl.hpp |  180 --
 boost/mpl/aux_/preprocessed/dmc/lambda_no_ctps.hpp |  229 --
 boost/mpl/aux_/preprocessed/dmc/less.hpp           |   94 -
 boost/mpl/aux_/preprocessed/dmc/less_equal.hpp     |   94 -
 boost/mpl/aux_/preprocessed/dmc/list.hpp           |  323 ---
 boost/mpl/aux_/preprocessed/dmc/list_c.hpp         |  328 ---
 boost/mpl/aux_/preprocessed/dmc/map.hpp            |  323 ---
 boost/mpl/aux_/preprocessed/dmc/minus.hpp          |  146 --
 boost/mpl/aux_/preprocessed/dmc/modulus.hpp        |  101 -
 boost/mpl/aux_/preprocessed/dmc/not_equal_to.hpp   |   94 -
 boost/mpl/aux_/preprocessed/dmc/or.hpp             |   69 -
 boost/mpl/aux_/preprocessed/dmc/placeholders.hpp   |  105 -
 boost/mpl/aux_/preprocessed/dmc/plus.hpp           |  146 --
 boost/mpl/aux_/preprocessed/dmc/quote.hpp          |  123 -
 .../aux_/preprocessed/dmc/reverse_fold_impl.hpp    |  231 --
 .../preprocessed/dmc/reverse_iter_fold_impl.hpp    |  231 --
 boost/mpl/aux_/preprocessed/dmc/set.hpp            |  323 ---
 boost/mpl/aux_/preprocessed/dmc/set_c.hpp          |  328 ---
 boost/mpl/aux_/preprocessed/dmc/shift_left.hpp     |   99 -
 boost/mpl/aux_/preprocessed/dmc/shift_right.hpp    |   99 -
 boost/mpl/aux_/preprocessed/dmc/template_arity.hpp |   11 -
 boost/mpl/aux_/preprocessed/dmc/times.hpp          |  146 --
 boost/mpl/aux_/preprocessed/dmc/unpack_args.hpp    |   94 -
 boost/mpl/aux_/preprocessed/dmc/vector.hpp         |  323 ---
 boost/mpl/aux_/preprocessed/dmc/vector_c.hpp       |  309 ---
 .../mpl/aux_/preprocessed/gcc/advance_backward.hpp |   97 -
 .../mpl/aux_/preprocessed/gcc/advance_forward.hpp  |   97 -
 boost/mpl/aux_/preprocessed/gcc/and.hpp            |   69 -
 boost/mpl/aux_/preprocessed/gcc/apply.hpp          |  169 --
 boost/mpl/aux_/preprocessed/gcc/apply_fwd.hpp      |   52 -
 boost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp     |   84 -
 boost/mpl/aux_/preprocessed/gcc/arg.hpp            |  123 -
 boost/mpl/aux_/preprocessed/gcc/basic_bind.hpp     |  440 ----
 boost/mpl/aux_/preprocessed/gcc/bind.hpp           |  561 ----
 boost/mpl/aux_/preprocessed/gcc/bind_fwd.hpp       |   52 -
 boost/mpl/aux_/preprocessed/gcc/bitand.hpp         |  147 --
 boost/mpl/aux_/preprocessed/gcc/bitor.hpp          |  147 --
 boost/mpl/aux_/preprocessed/gcc/bitxor.hpp         |  147 --
 boost/mpl/aux_/preprocessed/gcc/deque.hpp          |  323 ---
 boost/mpl/aux_/preprocessed/gcc/divides.hpp        |  146 --
 boost/mpl/aux_/preprocessed/gcc/equal_to.hpp       |   94 -
 boost/mpl/aux_/preprocessed/gcc/fold_impl.hpp      |  180 --
 boost/mpl/aux_/preprocessed/gcc/full_lambda.hpp    |  558 ----
 boost/mpl/aux_/preprocessed/gcc/greater.hpp        |   94 -
 boost/mpl/aux_/preprocessed/gcc/greater_equal.hpp  |   94 -
 boost/mpl/aux_/preprocessed/gcc/inherit.hpp        |  141 -
 .../aux_/preprocessed/gcc/iter_fold_if_impl.hpp    |  133 -
 boost/mpl/aux_/preprocessed/gcc/iter_fold_impl.hpp |  180 --
 boost/mpl/aux_/preprocessed/gcc/lambda_no_ctps.hpp |  229 --
 boost/mpl/aux_/preprocessed/gcc/less.hpp           |   94 -
 boost/mpl/aux_/preprocessed/gcc/less_equal.hpp     |   94 -
 boost/mpl/aux_/preprocessed/gcc/list.hpp           |  323 ---
 boost/mpl/aux_/preprocessed/gcc/list_c.hpp         |  328 ---
 boost/mpl/aux_/preprocessed/gcc/map.hpp            |  323 ---
 boost/mpl/aux_/preprocessed/gcc/minus.hpp          |  146 --
 boost/mpl/aux_/preprocessed/gcc/modulus.hpp        |  101 -
 boost/mpl/aux_/preprocessed/gcc/not_equal_to.hpp   |   94 -
 boost/mpl/aux_/preprocessed/gcc/or.hpp             |   69 -
 boost/mpl/aux_/preprocessed/gcc/placeholders.hpp   |  105 -
 boost/mpl/aux_/preprocessed/gcc/plus.hpp           |  146 --
 boost/mpl/aux_/preprocessed/gcc/quote.hpp          |  123 -
 .../aux_/preprocessed/gcc/reverse_fold_impl.hpp    |  231 --
 .../preprocessed/gcc/reverse_iter_fold_impl.hpp    |  231 --
 boost/mpl/aux_/preprocessed/gcc/set.hpp            |  323 ---
 boost/mpl/aux_/preprocessed/gcc/set_c.hpp          |  328 ---
 boost/mpl/aux_/preprocessed/gcc/shift_left.hpp     |   99 -
 boost/mpl/aux_/preprocessed/gcc/shift_right.hpp    |   99 -
 boost/mpl/aux_/preprocessed/gcc/template_arity.hpp |   97 -
 boost/mpl/aux_/preprocessed/gcc/times.hpp          |  146 --
 boost/mpl/aux_/preprocessed/gcc/unpack_args.hpp    |   94 -
 boost/mpl/aux_/preprocessed/gcc/vector.hpp         |  323 ---
 boost/mpl/aux_/preprocessed/gcc/vector_c.hpp       |  309 ---
 .../aux_/preprocessed/msvc60/advance_backward.hpp  |  132 -
 .../aux_/preprocessed/msvc60/advance_forward.hpp   |  132 -
 boost/mpl/aux_/preprocessed/msvc60/and.hpp         |   73 -
 boost/mpl/aux_/preprocessed/msvc60/apply.hpp       |  166 --
 boost/mpl/aux_/preprocessed/msvc60/apply_fwd.hpp   |   46 -
 boost/mpl/aux_/preprocessed/msvc60/apply_wrap.hpp  |  247 --
 boost/mpl/aux_/preprocessed/msvc60/arg.hpp         |  123 -
 boost/mpl/aux_/preprocessed/msvc60/basic_bind.hpp  |  328 ---
 boost/mpl/aux_/preprocessed/msvc60/bind.hpp        |  432 ---
 boost/mpl/aux_/preprocessed/msvc60/bind_fwd.hpp    |   46 -
 boost/mpl/aux_/preprocessed/msvc60/bitand.hpp      |  149 --
 boost/mpl/aux_/preprocessed/msvc60/bitor.hpp       |  149 --
 boost/mpl/aux_/preprocessed/msvc60/bitxor.hpp      |  149 --
 boost/mpl/aux_/preprocessed/msvc60/deque.hpp       |  556 ----
 boost/mpl/aux_/preprocessed/msvc60/divides.hpp     |  148 --
 boost/mpl/aux_/preprocessed/msvc60/equal_to.hpp    |  102 -
 boost/mpl/aux_/preprocessed/msvc60/fold_impl.hpp   |  293 ---
 boost/mpl/aux_/preprocessed/msvc60/full_lambda.hpp |  554 ----
 boost/mpl/aux_/preprocessed/msvc60/greater.hpp     |  102 -
 .../mpl/aux_/preprocessed/msvc60/greater_equal.hpp |  102 -
 boost/mpl/aux_/preprocessed/msvc60/inherit.hpp     |  166 --
 .../aux_/preprocessed/msvc60/iter_fold_if_impl.hpp |  133 -
 .../aux_/preprocessed/msvc60/iter_fold_impl.hpp    |  293 ---
 .../aux_/preprocessed/msvc60/lambda_no_ctps.hpp    |  229 --
 boost/mpl/aux_/preprocessed/msvc60/less.hpp        |  102 -
 boost/mpl/aux_/preprocessed/msvc60/less_equal.hpp  |  102 -
 boost/mpl/aux_/preprocessed/msvc60/list.hpp        |  556 ----
 boost/mpl/aux_/preprocessed/msvc60/list_c.hpp      |  534 ----
 boost/mpl/aux_/preprocessed/msvc60/map.hpp         |  556 ----
 boost/mpl/aux_/preprocessed/msvc60/minus.hpp       |  148 --
 boost/mpl/aux_/preprocessed/msvc60/modulus.hpp     |  115 -
 .../mpl/aux_/preprocessed/msvc60/not_equal_to.hpp  |  102 -
 boost/mpl/aux_/preprocessed/msvc60/or.hpp          |   73 -
 .../mpl/aux_/preprocessed/msvc60/placeholders.hpp  |  105 -
 boost/mpl/aux_/preprocessed/msvc60/plus.hpp        |  148 --
 boost/mpl/aux_/preprocessed/msvc60/quote.hpp       |   11 -
 .../aux_/preprocessed/msvc60/reverse_fold_impl.hpp |  343 ---
 .../preprocessed/msvc60/reverse_iter_fold_impl.hpp |  343 ---
 boost/mpl/aux_/preprocessed/msvc60/set.hpp         |  556 ----
 boost/mpl/aux_/preprocessed/msvc60/set_c.hpp       |  534 ----
 boost/mpl/aux_/preprocessed/msvc60/shift_left.hpp  |  114 -
 boost/mpl/aux_/preprocessed/msvc60/shift_right.hpp |  114 -
 .../aux_/preprocessed/msvc60/template_arity.hpp    |   46 -
 boost/mpl/aux_/preprocessed/msvc60/times.hpp       |  148 --
 boost/mpl/aux_/preprocessed/msvc60/unpack_args.hpp |  109 -
 boost/mpl/aux_/preprocessed/msvc60/vector.hpp      |  556 ----
 boost/mpl/aux_/preprocessed/msvc60/vector_c.hpp    |  534 ----
 .../aux_/preprocessed/msvc70/advance_backward.hpp  |   97 -
 .../aux_/preprocessed/msvc70/advance_forward.hpp   |   97 -
 boost/mpl/aux_/preprocessed/msvc70/and.hpp         |   71 -
 boost/mpl/aux_/preprocessed/msvc70/apply.hpp       |  160 --
 boost/mpl/aux_/preprocessed/msvc70/apply_fwd.hpp   |   46 -
 boost/mpl/aux_/preprocessed/msvc70/apply_wrap.hpp  |  138 -
 boost/mpl/aux_/preprocessed/msvc70/arg.hpp         |  123 -
 boost/mpl/aux_/preprocessed/msvc70/basic_bind.hpp  |  328 ---
 boost/mpl/aux_/preprocessed/msvc70/bind.hpp        |  432 ---
 boost/mpl/aux_/preprocessed/msvc70/bind_fwd.hpp    |   46 -
 boost/mpl/aux_/preprocessed/msvc70/bitand.hpp      |  151 --
 boost/mpl/aux_/preprocessed/msvc70/bitor.hpp       |  151 --
 boost/mpl/aux_/preprocessed/msvc70/bitxor.hpp      |  151 --
 boost/mpl/aux_/preprocessed/msvc70/deque.hpp       |  556 ----
 boost/mpl/aux_/preprocessed/msvc70/divides.hpp     |  150 --
 boost/mpl/aux_/preprocessed/msvc70/equal_to.hpp    |  102 -
 boost/mpl/aux_/preprocessed/msvc70/fold_impl.hpp   |  245 --
 boost/mpl/aux_/preprocessed/msvc70/full_lambda.hpp |  554 ----
 boost/mpl/aux_/preprocessed/msvc70/greater.hpp     |  102 -
 .../mpl/aux_/preprocessed/msvc70/greater_equal.hpp |  102 -
 boost/mpl/aux_/preprocessed/msvc70/inherit.hpp     |  166 --
 .../aux_/preprocessed/msvc70/iter_fold_if_impl.hpp |  133 -
 .../aux_/preprocessed/msvc70/iter_fold_impl.hpp    |  245 --
 .../aux_/preprocessed/msvc70/lambda_no_ctps.hpp    |  229 --
 boost/mpl/aux_/preprocessed/msvc70/less.hpp        |  102 -
 boost/mpl/aux_/preprocessed/msvc70/less_equal.hpp  |  102 -
 boost/mpl/aux_/preprocessed/msvc70/list.hpp        |  556 ----
 boost/mpl/aux_/preprocessed/msvc70/list_c.hpp      |  534 ----
 boost/mpl/aux_/preprocessed/msvc70/map.hpp         |  556 ----
 boost/mpl/aux_/preprocessed/msvc70/minus.hpp       |  150 --
 boost/mpl/aux_/preprocessed/msvc70/modulus.hpp     |  115 -
 .../mpl/aux_/preprocessed/msvc70/not_equal_to.hpp  |  102 -
 boost/mpl/aux_/preprocessed/msvc70/or.hpp          |   71 -
 .../mpl/aux_/preprocessed/msvc70/placeholders.hpp  |  105 -
 boost/mpl/aux_/preprocessed/msvc70/plus.hpp        |  150 --
 boost/mpl/aux_/preprocessed/msvc70/quote.hpp       |  116 -
 .../aux_/preprocessed/msvc70/reverse_fold_impl.hpp |  295 ---
 .../preprocessed/msvc70/reverse_iter_fold_impl.hpp |  295 ---
 boost/mpl/aux_/preprocessed/msvc70/set.hpp         |  556 ----
 boost/mpl/aux_/preprocessed/msvc70/set_c.hpp       |  534 ----
 boost/mpl/aux_/preprocessed/msvc70/shift_left.hpp  |  114 -
 boost/mpl/aux_/preprocessed/msvc70/shift_right.hpp |  114 -
 .../aux_/preprocessed/msvc70/template_arity.hpp    |   46 -
 boost/mpl/aux_/preprocessed/msvc70/times.hpp       |  150 --
 boost/mpl/aux_/preprocessed/msvc70/unpack_args.hpp |  109 -
 boost/mpl/aux_/preprocessed/msvc70/vector.hpp      |  556 ----
 boost/mpl/aux_/preprocessed/msvc70/vector_c.hpp    |  534 ----
 .../aux_/preprocessed/mwcw/advance_backward.hpp    |   97 -
 .../mpl/aux_/preprocessed/mwcw/advance_forward.hpp |   97 -
 boost/mpl/aux_/preprocessed/mwcw/and.hpp           |   69 -
 boost/mpl/aux_/preprocessed/mwcw/apply.hpp         |  169 --
 boost/mpl/aux_/preprocessed/mwcw/apply_fwd.hpp     |   52 -
 boost/mpl/aux_/preprocessed/mwcw/apply_wrap.hpp    |  456 ----
 boost/mpl/aux_/preprocessed/mwcw/arg.hpp           |  123 -
 boost/mpl/aux_/preprocessed/mwcw/basic_bind.hpp    |  440 ----
 boost/mpl/aux_/preprocessed/mwcw/bind.hpp          |  561 ----
 boost/mpl/aux_/preprocessed/mwcw/bind_fwd.hpp      |   52 -
 boost/mpl/aux_/preprocessed/mwcw/bitand.hpp        |  147 --
 boost/mpl/aux_/preprocessed/mwcw/bitor.hpp         |  147 --
 boost/mpl/aux_/preprocessed/mwcw/bitxor.hpp        |  147 --
 boost/mpl/aux_/preprocessed/mwcw/deque.hpp         |  323 ---
 boost/mpl/aux_/preprocessed/mwcw/divides.hpp       |  146 --
 boost/mpl/aux_/preprocessed/mwcw/equal_to.hpp      |   94 -
 boost/mpl/aux_/preprocessed/mwcw/fold_impl.hpp     |  180 --
 boost/mpl/aux_/preprocessed/mwcw/full_lambda.hpp   |  554 ----
 boost/mpl/aux_/preprocessed/mwcw/greater.hpp       |   94 -
 boost/mpl/aux_/preprocessed/mwcw/greater_equal.hpp |   94 -
 boost/mpl/aux_/preprocessed/mwcw/inherit.hpp       |  141 -
 .../aux_/preprocessed/mwcw/iter_fold_if_impl.hpp   |  133 -
 .../mpl/aux_/preprocessed/mwcw/iter_fold_impl.hpp  |  180 --
 .../mpl/aux_/preprocessed/mwcw/lambda_no_ctps.hpp  |  229 --
 boost/mpl/aux_/preprocessed/mwcw/less.hpp          |   94 -
 boost/mpl/aux_/preprocessed/mwcw/less_equal.hpp    |   94 -
 boost/mpl/aux_/preprocessed/mwcw/list.hpp          |  323 ---
 boost/mpl/aux_/preprocessed/mwcw/list_c.hpp        |  328 ---
 boost/mpl/aux_/preprocessed/mwcw/map.hpp           |  323 ---
 boost/mpl/aux_/preprocessed/mwcw/minus.hpp         |  146 --
 boost/mpl/aux_/preprocessed/mwcw/modulus.hpp       |  101 -
 boost/mpl/aux_/preprocessed/mwcw/not_equal_to.hpp  |   94 -
 boost/mpl/aux_/preprocessed/mwcw/or.hpp            |   69 -
 boost/mpl/aux_/preprocessed/mwcw/placeholders.hpp  |  105 -
 boost/mpl/aux_/preprocessed/mwcw/plus.hpp          |  146 --
 boost/mpl/aux_/preprocessed/mwcw/quote.hpp         |  123 -
 .../aux_/preprocessed/mwcw/reverse_fold_impl.hpp   |  231 --
 .../preprocessed/mwcw/reverse_iter_fold_impl.hpp   |  231 --
 boost/mpl/aux_/preprocessed/mwcw/set.hpp           |  323 ---
 boost/mpl/aux_/preprocessed/mwcw/set_c.hpp         |  328 ---
 boost/mpl/aux_/preprocessed/mwcw/shift_left.hpp    |   99 -
 boost/mpl/aux_/preprocessed/mwcw/shift_right.hpp   |   99 -
 .../mpl/aux_/preprocessed/mwcw/template_arity.hpp  |   11 -
 boost/mpl/aux_/preprocessed/mwcw/times.hpp         |  146 --
 boost/mpl/aux_/preprocessed/mwcw/unpack_args.hpp   |   94 -
 boost/mpl/aux_/preprocessed/mwcw/vector.hpp        |  323 ---
 boost/mpl/aux_/preprocessed/mwcw/vector_c.hpp      |  309 ---
 .../aux_/preprocessed/no_ctps/advance_backward.hpp |   97 -
 .../aux_/preprocessed/no_ctps/advance_forward.hpp  |   97 -
 boost/mpl/aux_/preprocessed/no_ctps/and.hpp        |   73 -
 boost/mpl/aux_/preprocessed/no_ctps/apply.hpp      |  268 --
 boost/mpl/aux_/preprocessed/no_ctps/apply_fwd.hpp  |   50 -
 boost/mpl/aux_/preprocessed/no_ctps/apply_wrap.hpp |   78 -
 boost/mpl/aux_/preprocessed/no_ctps/arg.hpp        |  123 -
 boost/mpl/aux_/preprocessed/no_ctps/basic_bind.hpp |  486 ----
 boost/mpl/aux_/preprocessed/no_ctps/bind.hpp       |  590 -----
 boost/mpl/aux_/preprocessed/no_ctps/bind_fwd.hpp   |   52 -
 boost/mpl/aux_/preprocessed/no_ctps/bitand.hpp     |  134 -
 boost/mpl/aux_/preprocessed/no_ctps/bitor.hpp      |  134 -
 boost/mpl/aux_/preprocessed/no_ctps/bitxor.hpp     |  134 -
 boost/mpl/aux_/preprocessed/no_ctps/deque.hpp      |  556 ----
 boost/mpl/aux_/preprocessed/no_ctps/divides.hpp    |  133 -
 boost/mpl/aux_/preprocessed/no_ctps/equal_to.hpp   |   94 -
 boost/mpl/aux_/preprocessed/no_ctps/fold_impl.hpp  |  245 --
 .../mpl/aux_/preprocessed/no_ctps/full_lambda.hpp  |  554 ----
 boost/mpl/aux_/preprocessed/no_ctps/greater.hpp    |   94 -
 .../aux_/preprocessed/no_ctps/greater_equal.hpp    |   94 -
 boost/mpl/aux_/preprocessed/no_ctps/inherit.hpp    |  166 --
 .../preprocessed/no_ctps/iter_fold_if_impl.hpp     |  133 -
 .../aux_/preprocessed/no_ctps/iter_fold_impl.hpp   |  245 --
 .../aux_/preprocessed/no_ctps/lambda_no_ctps.hpp   |  229 --
 boost/mpl/aux_/preprocessed/no_ctps/less.hpp       |   94 -
 boost/mpl/aux_/preprocessed/no_ctps/less_equal.hpp |   94 -
 boost/mpl/aux_/preprocessed/no_ctps/list.hpp       |  556 ----
 boost/mpl/aux_/preprocessed/no_ctps/list_c.hpp     |  534 ----
 boost/mpl/aux_/preprocessed/no_ctps/map.hpp        |  556 ----
 boost/mpl/aux_/preprocessed/no_ctps/minus.hpp      |  133 -
 boost/mpl/aux_/preprocessed/no_ctps/modulus.hpp    |  101 -
 .../mpl/aux_/preprocessed/no_ctps/not_equal_to.hpp |   94 -
 boost/mpl/aux_/preprocessed/no_ctps/or.hpp         |   73 -
 .../mpl/aux_/preprocessed/no_ctps/placeholders.hpp |  105 -
 boost/mpl/aux_/preprocessed/no_ctps/plus.hpp       |  133 -
 boost/mpl/aux_/preprocessed/no_ctps/quote.hpp      |  116 -
 .../preprocessed/no_ctps/reverse_fold_impl.hpp     |  295 ---
 .../no_ctps/reverse_iter_fold_impl.hpp             |  295 ---
 boost/mpl/aux_/preprocessed/no_ctps/set.hpp        |  556 ----
 boost/mpl/aux_/preprocessed/no_ctps/set_c.hpp      |  534 ----
 boost/mpl/aux_/preprocessed/no_ctps/shift_left.hpp |   99 -
 .../mpl/aux_/preprocessed/no_ctps/shift_right.hpp  |   99 -
 .../aux_/preprocessed/no_ctps/template_arity.hpp   |   40 -
 boost/mpl/aux_/preprocessed/no_ctps/times.hpp      |  133 -
 .../mpl/aux_/preprocessed/no_ctps/unpack_args.hpp  |  109 -
 boost/mpl/aux_/preprocessed/no_ctps/vector.hpp     |  556 ----
 boost/mpl/aux_/preprocessed/no_ctps/vector_c.hpp   |  534 ----
 .../aux_/preprocessed/no_ttp/advance_backward.hpp  |   97 -
 .../aux_/preprocessed/no_ttp/advance_forward.hpp   |   97 -
 boost/mpl/aux_/preprocessed/no_ttp/and.hpp         |   69 -
 boost/mpl/aux_/preprocessed/no_ttp/apply.hpp       |  169 --
 boost/mpl/aux_/preprocessed/no_ttp/apply_fwd.hpp   |   52 -
 boost/mpl/aux_/preprocessed/no_ttp/apply_wrap.hpp  |   84 -
 boost/mpl/aux_/preprocessed/no_ttp/arg.hpp         |  123 -
 boost/mpl/aux_/preprocessed/no_ttp/basic_bind.hpp  |  369 ---
 boost/mpl/aux_/preprocessed/no_ttp/bind.hpp        |  466 ----
 boost/mpl/aux_/preprocessed/no_ttp/bind_fwd.hpp    |   52 -
 boost/mpl/aux_/preprocessed/no_ttp/bitand.hpp      |  157 --
 boost/mpl/aux_/preprocessed/no_ttp/bitor.hpp       |  157 --
 boost/mpl/aux_/preprocessed/no_ttp/bitxor.hpp      |  157 --
 boost/mpl/aux_/preprocessed/no_ttp/deque.hpp       |  323 ---
 boost/mpl/aux_/preprocessed/no_ttp/divides.hpp     |  156 --
 boost/mpl/aux_/preprocessed/no_ttp/equal_to.hpp    |   98 -
 boost/mpl/aux_/preprocessed/no_ttp/fold_impl.hpp   |  180 --
 boost/mpl/aux_/preprocessed/no_ttp/full_lambda.hpp |  554 ----
 boost/mpl/aux_/preprocessed/no_ttp/greater.hpp     |   98 -
 .../mpl/aux_/preprocessed/no_ttp/greater_equal.hpp |   98 -
 boost/mpl/aux_/preprocessed/no_ttp/inherit.hpp     |  141 -
 .../aux_/preprocessed/no_ttp/iter_fold_if_impl.hpp |  133 -
 .../aux_/preprocessed/no_ttp/iter_fold_impl.hpp    |  180 --
 .../aux_/preprocessed/no_ttp/lambda_no_ctps.hpp    |  229 --
 boost/mpl/aux_/preprocessed/no_ttp/less.hpp        |   98 -
 boost/mpl/aux_/preprocessed/no_ttp/less_equal.hpp  |   98 -
 boost/mpl/aux_/preprocessed/no_ttp/list.hpp        |  323 ---
 boost/mpl/aux_/preprocessed/no_ttp/list_c.hpp      |  328 ---
 boost/mpl/aux_/preprocessed/no_ttp/map.hpp         |  323 ---
 boost/mpl/aux_/preprocessed/no_ttp/minus.hpp       |  156 --
 boost/mpl/aux_/preprocessed/no_ttp/modulus.hpp     |  111 -
 .../mpl/aux_/preprocessed/no_ttp/not_equal_to.hpp  |   98 -
 boost/mpl/aux_/preprocessed/no_ttp/or.hpp          |   69 -
 .../mpl/aux_/preprocessed/no_ttp/placeholders.hpp  |  105 -
 boost/mpl/aux_/preprocessed/no_ttp/plus.hpp        |  156 --
 boost/mpl/aux_/preprocessed/no_ttp/quote.hpp       |   11 -
 .../aux_/preprocessed/no_ttp/reverse_fold_impl.hpp |  231 --
 .../preprocessed/no_ttp/reverse_iter_fold_impl.hpp |  231 --
 boost/mpl/aux_/preprocessed/no_ttp/set.hpp         |  323 ---
 boost/mpl/aux_/preprocessed/no_ttp/set_c.hpp       |  328 ---
 boost/mpl/aux_/preprocessed/no_ttp/shift_left.hpp  |  110 -
 boost/mpl/aux_/preprocessed/no_ttp/shift_right.hpp |  110 -
 .../aux_/preprocessed/no_ttp/template_arity.hpp    |   40 -
 boost/mpl/aux_/preprocessed/no_ttp/times.hpp       |  156 --
 boost/mpl/aux_/preprocessed/no_ttp/unpack_args.hpp |   94 -
 boost/mpl/aux_/preprocessed/no_ttp/vector.hpp      |  323 ---
 boost/mpl/aux_/preprocessed/no_ttp/vector_c.hpp    |  309 ---
 .../aux_/preprocessed/plain/advance_backward.hpp   |   97 -
 .../aux_/preprocessed/plain/advance_forward.hpp    |   97 -
 boost/mpl/aux_/preprocessed/plain/and.hpp          |   64 -
 boost/mpl/aux_/preprocessed/plain/apply.hpp        |  139 -
 boost/mpl/aux_/preprocessed/plain/apply_fwd.hpp    |   52 -
 boost/mpl/aux_/preprocessed/plain/apply_wrap.hpp   |   84 -
 boost/mpl/aux_/preprocessed/plain/arg.hpp          |  123 -
 boost/mpl/aux_/preprocessed/plain/basic_bind.hpp   |  440 ----
 boost/mpl/aux_/preprocessed/plain/bind.hpp         |  561 ----
 boost/mpl/aux_/preprocessed/plain/bind_fwd.hpp     |   52 -
 boost/mpl/aux_/preprocessed/plain/bitand.hpp       |  142 -
 boost/mpl/aux_/preprocessed/plain/bitor.hpp        |  142 -
 boost/mpl/aux_/preprocessed/plain/bitxor.hpp       |  142 -
 boost/mpl/aux_/preprocessed/plain/deque.hpp        |  323 ---
 boost/mpl/aux_/preprocessed/plain/divides.hpp      |  141 -
 boost/mpl/aux_/preprocessed/plain/equal_to.hpp     |   92 -
 boost/mpl/aux_/preprocessed/plain/fold_impl.hpp    |  180 --
 boost/mpl/aux_/preprocessed/plain/full_lambda.hpp  |  554 ----
 boost/mpl/aux_/preprocessed/plain/greater.hpp      |   92 -
 .../mpl/aux_/preprocessed/plain/greater_equal.hpp  |   92 -
 boost/mpl/aux_/preprocessed/plain/inherit.hpp      |  125 -
 .../aux_/preprocessed/plain/iter_fold_if_impl.hpp  |  133 -
 .../mpl/aux_/preprocessed/plain/iter_fold_impl.hpp |  180 --
 .../mpl/aux_/preprocessed/plain/lambda_no_ctps.hpp |  228 --
 boost/mpl/aux_/preprocessed/plain/less.hpp         |   92 -
 boost/mpl/aux_/preprocessed/plain/less_equal.hpp   |   92 -
 boost/mpl/aux_/preprocessed/plain/list.hpp         |  323 ---
 boost/mpl/aux_/preprocessed/plain/list_c.hpp       |  328 ---
 boost/mpl/aux_/preprocessed/plain/map.hpp          |  323 ---
 boost/mpl/aux_/preprocessed/plain/minus.hpp        |  141 -
 boost/mpl/aux_/preprocessed/plain/modulus.hpp      |   99 -
 boost/mpl/aux_/preprocessed/plain/not_equal_to.hpp |   92 -
 boost/mpl/aux_/preprocessed/plain/or.hpp           |   64 -
 boost/mpl/aux_/preprocessed/plain/placeholders.hpp |  105 -
 boost/mpl/aux_/preprocessed/plain/plus.hpp         |  141 -
 boost/mpl/aux_/preprocessed/plain/quote.hpp        |  123 -
 .../aux_/preprocessed/plain/reverse_fold_impl.hpp  |  231 --
 .../preprocessed/plain/reverse_iter_fold_impl.hpp  |  231 --
 boost/mpl/aux_/preprocessed/plain/set.hpp          |  323 ---
 boost/mpl/aux_/preprocessed/plain/set_c.hpp        |  328 ---
 boost/mpl/aux_/preprocessed/plain/shift_left.hpp   |   97 -
 boost/mpl/aux_/preprocessed/plain/shift_right.hpp  |   97 -
 .../mpl/aux_/preprocessed/plain/template_arity.hpp |   11 -
 boost/mpl/aux_/preprocessed/plain/times.hpp        |  141 -
 boost/mpl/aux_/preprocessed/plain/unpack_args.hpp  |   94 -
 boost/mpl/aux_/preprocessed/plain/vector.hpp       |  323 ---
 boost/mpl/aux_/preprocessed/plain/vector_c.hpp     |  309 ---
 boost/mpl/aux_/preprocessor/add.hpp                |   65 -
 boost/mpl/aux_/preprocessor/def_params_tail.hpp    |  105 -
 boost/mpl/aux_/preprocessor/default_params.hpp     |   67 -
 boost/mpl/aux_/preprocessor/enum.hpp               |   62 -
 boost/mpl/aux_/preprocessor/ext_params.hpp         |   78 -
 boost/mpl/aux_/preprocessor/filter_params.hpp      |   28 -
 boost/mpl/aux_/preprocessor/params.hpp             |   65 -
 .../mpl/aux_/preprocessor/partial_spec_params.hpp  |   32 -
 boost/mpl/aux_/preprocessor/range.hpp              |   23 -
 boost/mpl/aux_/preprocessor/repeat.hpp             |   51 -
 boost/mpl/aux_/preprocessor/sub.hpp                |   65 -
 boost/mpl/aux_/preprocessor/tuple.hpp              |   29 -
 boost/mpl/aux_/push_back_impl.hpp                  |   70 -
 boost/mpl/aux_/push_front_impl.hpp                 |   71 -
 boost/mpl/aux_/reverse_fold_impl.hpp               |   44 -
 boost/mpl/aux_/reverse_fold_impl_body.hpp          |  412 ---
 boost/mpl/aux_/sequence_wrapper.hpp                |  292 ---
 boost/mpl/aux_/size_impl.hpp                       |   52 -
 boost/mpl/aux_/static_cast.hpp                     |   27 -
 boost/mpl/aux_/template_arity.hpp                  |  189 --
 boost/mpl/aux_/template_arity_fwd.hpp              |   23 -
 boost/mpl/aux_/traits_lambda_spec.hpp              |   63 -
 boost/mpl/aux_/type_wrapper.hpp                    |   47 -
 boost/mpl/aux_/value_wknd.hpp                      |   89 -
 boost/mpl/aux_/yes_no.hpp                          |   58 -
 boost/mpl/back_fwd.hpp                             |   24 -
 boost/mpl/back_inserter.hpp                        |   34 -
 boost/mpl/begin.hpp                                |   19 -
 boost/mpl/begin_end.hpp                            |   57 -
 boost/mpl/begin_end_fwd.hpp                        |   27 -
 boost/mpl/bind.hpp                                 |  551 ----
 boost/mpl/bind_fwd.hpp                             |   99 -
 boost/mpl/bool.hpp                                 |   39 -
 boost/mpl/bool_fwd.hpp                             |   33 -
 boost/mpl/clear.hpp                                |   39 -
 boost/mpl/clear_fwd.hpp                            |   24 -
 boost/mpl/comparison.hpp                           |   24 -
 boost/mpl/contains.hpp                             |   41 -
 boost/mpl/contains_fwd.hpp                         |   25 -
 boost/mpl/copy.hpp                                 |   58 -
 boost/mpl/deref.hpp                                |   41 -
 boost/mpl/distance.hpp                             |   78 -
 boost/mpl/distance_fwd.hpp                         |   28 -
 boost/mpl/divides.hpp                              |   21 -
 boost/mpl/empty_base.hpp                           |   59 -
 boost/mpl/empty_fwd.hpp                            |   24 -
 boost/mpl/end.hpp                                  |   19 -
 boost/mpl/equal_to.hpp                             |   21 -
 boost/mpl/eval_if.hpp                              |   71 -
 boost/mpl/find.hpp                                 |   38 -
 boost/mpl/find_if.hpp                              |   50 -
 boost/mpl/fold.hpp                                 |   48 -
 boost/mpl/front_fwd.hpp                            |   24 -
 boost/mpl/front_inserter.hpp                       |   33 -
 boost/mpl/greater.hpp                              |   21 -
 boost/mpl/greater_equal.hpp                        |   21 -
 boost/mpl/has_xxx.hpp                              |  640 -----
 boost/mpl/identity.hpp                             |   45 -
 boost/mpl/if.hpp                                   |  135 -
 boost/mpl/inherit.hpp                              |  229 --
 boost/mpl/inserter.hpp                             |   32 -
 boost/mpl/int.hpp                                  |   22 -
 boost/mpl/int_fwd.hpp                              |   27 -
 boost/mpl/integral_c.hpp                           |   51 -
 boost/mpl/integral_c_fwd.hpp                       |   32 -
 boost/mpl/integral_c_tag.hpp                       |   26 -
 boost/mpl/is_placeholder.hpp                       |   67 -
 boost/mpl/is_sequence.hpp                          |  112 -
 boost/mpl/iter_fold.hpp                            |   49 -
 boost/mpl/iter_fold_if.hpp                         |  117 -
 boost/mpl/iterator_range.hpp                       |   42 -
 boost/mpl/iterator_tags.hpp                        |   27 -
 boost/mpl/lambda.hpp                               |   29 -
 boost/mpl/lambda_fwd.hpp                           |   57 -
 boost/mpl/less.hpp                                 |   21 -
 boost/mpl/less_equal.hpp                           |   21 -
 boost/mpl/limits/arity.hpp                         |   21 -
 boost/mpl/limits/list.hpp                          |   21 -
 boost/mpl/limits/unrolling.hpp                     |   21 -
 boost/mpl/limits/vector.hpp                        |   21 -
 boost/mpl/list.hpp                                 |   57 -
 boost/mpl/list/aux_/O1_size.hpp                    |   33 -
 boost/mpl/list/aux_/begin_end.hpp                  |   44 -
 boost/mpl/list/aux_/clear.hpp                      |   34 -
 boost/mpl/list/aux_/empty.hpp                      |   34 -
 boost/mpl/list/aux_/front.hpp                      |   33 -
 boost/mpl/list/aux_/include_preprocessed.hpp       |   35 -
 boost/mpl/list/aux_/item.hpp                       |   55 -
 boost/mpl/list/aux_/iterator.hpp                   |   76 -
 boost/mpl/list/aux_/numbered.hpp                   |   68 -
 boost/mpl/list/aux_/numbered_c.hpp                 |   71 -
 boost/mpl/list/aux_/pop_front.hpp                  |   34 -
 boost/mpl/list/aux_/preprocessed/plain/list10.hpp  |  149 --
 .../mpl/list/aux_/preprocessed/plain/list10_c.hpp  |  164 --
 boost/mpl/list/aux_/preprocessed/plain/list20.hpp  |  169 --
 .../mpl/list/aux_/preprocessed/plain/list20_c.hpp  |  173 --
 boost/mpl/list/aux_/preprocessed/plain/list30.hpp  |  189 --
 .../mpl/list/aux_/preprocessed/plain/list30_c.hpp  |  183 --
 boost/mpl/list/aux_/preprocessed/plain/list40.hpp  |  209 --
 .../mpl/list/aux_/preprocessed/plain/list40_c.hpp  |  193 --
 boost/mpl/list/aux_/preprocessed/plain/list50.hpp  |  229 --
 .../mpl/list/aux_/preprocessed/plain/list50_c.hpp  |  203 --
 boost/mpl/list/aux_/push_back.hpp                  |   36 -
 boost/mpl/list/aux_/push_front.hpp                 |   39 -
 boost/mpl/list/aux_/size.hpp                       |   33 -
 boost/mpl/list/aux_/tag.hpp                        |   24 -
 boost/mpl/list/list0.hpp                           |   42 -
 boost/mpl/list/list0_c.hpp                         |   31 -
 boost/mpl/list/list10.hpp                          |   43 -
 boost/mpl/list/list10_c.hpp                        |   43 -
 boost/mpl/list/list20.hpp                          |   43 -
 boost/mpl/list/list20_c.hpp                        |   43 -
 boost/mpl/list/list30.hpp                          |   43 -
 boost/mpl/list/list30_c.hpp                        |   43 -
 boost/mpl/list/list40.hpp                          |   43 -
 boost/mpl/list/list40_c.hpp                        |   43 -
 boost/mpl/list/list50.hpp                          |   43 -
 boost/mpl/list/list50_c.hpp                        |   43 -
 boost/mpl/logical.hpp                              |   21 -
 boost/mpl/long.hpp                                 |   22 -
 boost/mpl/long_fwd.hpp                             |   27 -
 boost/mpl/minus.hpp                                |   21 -
 boost/mpl/multiplies.hpp                           |   53 -
 boost/mpl/negate.hpp                               |   81 -
 boost/mpl/next.hpp                                 |   19 -
 boost/mpl/next_prior.hpp                           |   49 -
 boost/mpl/not.hpp                                  |   51 -
 boost/mpl/not_equal_to.hpp                         |   21 -
 boost/mpl/numeric_cast.hpp                         |   41 -
 boost/mpl/or.hpp                                   |   61 -
 boost/mpl/pair.hpp                                 |   70 -
 boost/mpl/placeholders.hpp                         |  100 -
 boost/mpl/plus.hpp                                 |   21 -
 boost/mpl/pop_back_fwd.hpp                         |   24 -
 boost/mpl/pop_front_fwd.hpp                        |   24 -
 boost/mpl/prior.hpp                                |   19 -
 boost/mpl/protect.hpp                              |   55 -
 boost/mpl/push_back.hpp                            |   53 -
 boost/mpl/push_back_fwd.hpp                        |   24 -
 boost/mpl/push_front.hpp                           |   52 -
 boost/mpl/push_front_fwd.hpp                       |   24 -
 boost/mpl/quote.hpp                                |  151 --
 boost/mpl/remove_if.hpp                            |   83 -
 boost/mpl/reverse_fold.hpp                         |   50 -
 boost/mpl/same_as.hpp                              |   55 -
 boost/mpl/sequence_tag.hpp                         |  124 -
 boost/mpl/sequence_tag_fwd.hpp                     |   26 -
 boost/mpl/size.hpp                                 |   42 -
 boost/mpl/size_fwd.hpp                             |   24 -
 boost/mpl/size_t.hpp                               |   25 -
 boost/mpl/size_t_fwd.hpp                           |   28 -
 boost/mpl/tag.hpp                                  |   52 -
 boost/mpl/times.hpp                                |   21 -
 boost/mpl/vector.hpp                               |   57 -
 boost/mpl/vector/aux_/O1_size.hpp                  |   56 -
 boost/mpl/vector/aux_/at.hpp                       |  116 -
 boost/mpl/vector/aux_/back.hpp                     |   59 -
 boost/mpl/vector/aux_/begin_end.hpp                |   49 -
 boost/mpl/vector/aux_/clear.hpp                    |   55 -
 boost/mpl/vector/aux_/empty.hpp                    |   68 -
 boost/mpl/vector/aux_/front.hpp                    |   56 -
 boost/mpl/vector/aux_/include_preprocessed.hpp     |   55 -
 boost/mpl/vector/aux_/item.hpp                     |  103 -
 boost/mpl/vector/aux_/iterator.hpp                 |  130 -
 boost/mpl/vector/aux_/numbered.hpp                 |  218 --
 boost/mpl/vector/aux_/numbered_c.hpp               |   77 -
 boost/mpl/vector/aux_/pop_back.hpp                 |   40 -
 boost/mpl/vector/aux_/pop_front.hpp                |   40 -
 .../vector/aux_/preprocessed/no_ctps/vector10.hpp  | 1528 -----------
 .../aux_/preprocessed/no_ctps/vector10_c.hpp       |  149 --
 .../vector/aux_/preprocessed/no_ctps/vector20.hpp  | 1804 -------------
 .../aux_/preprocessed/no_ctps/vector20_c.hpp       |  195 --
 .../vector/aux_/preprocessed/no_ctps/vector30.hpp  | 2124 ---------------
 .../aux_/preprocessed/no_ctps/vector30_c.hpp       |  238 --
 .../vector/aux_/preprocessed/no_ctps/vector40.hpp  | 2444 -----------------
 .../aux_/preprocessed/no_ctps/vector40_c.hpp       |  281 --
 .../vector/aux_/preprocessed/no_ctps/vector50.hpp  | 2764 --------------------
 .../aux_/preprocessed/no_ctps/vector50_c.hpp       |  325 ---
 .../vector/aux_/preprocessed/plain/vector10.hpp    |  829 ------
 .../vector/aux_/preprocessed/plain/vector10_c.hpp  |  149 --
 .../vector/aux_/preprocessed/plain/vector20.hpp    | 1144 --------
 .../vector/aux_/preprocessed/plain/vector20_c.hpp  |  195 --
 .../vector/aux_/preprocessed/plain/vector30.hpp    | 1464 -----------
 .../vector/aux_/preprocessed/plain/vector30_c.hpp  |  238 --
 .../vector/aux_/preprocessed/plain/vector40.hpp    | 1784 -------------
 .../vector/aux_/preprocessed/plain/vector40_c.hpp  |  281 --
 .../vector/aux_/preprocessed/plain/vector50.hpp    | 2104 ---------------
 .../vector/aux_/preprocessed/plain/vector50_c.hpp  |  325 ---
 .../aux_/preprocessed/typeof_based/vector10.hpp    |  139 -
 .../aux_/preprocessed/typeof_based/vector10_c.hpp  |  154 --
 .../aux_/preprocessed/typeof_based/vector20.hpp    |  159 --
 .../aux_/preprocessed/typeof_based/vector20_c.hpp  |  163 --
 .../aux_/preprocessed/typeof_based/vector30.hpp    |  179 --
 .../aux_/preprocessed/typeof_based/vector30_c.hpp  |  173 --
 .../aux_/preprocessed/typeof_based/vector40.hpp    |  199 --
 .../aux_/preprocessed/typeof_based/vector40_c.hpp  |  183 --
 .../aux_/preprocessed/typeof_based/vector50.hpp    |  219 --
 .../aux_/preprocessed/typeof_based/vector50_c.hpp  |  193 --
 boost/mpl/vector/aux_/push_back.hpp                |   40 -
 boost/mpl/vector/aux_/push_front.hpp               |   40 -
 boost/mpl/vector/aux_/size.hpp                     |   49 -
 boost/mpl/vector/aux_/tag.hpp                      |   32 -
 boost/mpl/vector/aux_/vector0.hpp                  |   52 -
 boost/mpl/vector/vector0.hpp                       |   34 -
 boost/mpl/vector/vector0_c.hpp                     |   31 -
 boost/mpl/vector/vector10.hpp                      |   45 -
 boost/mpl/vector/vector10_c.hpp                    |   46 -
 boost/mpl/vector/vector20.hpp                      |   45 -
 boost/mpl/vector/vector20_c.hpp                    |   46 -
 boost/mpl/vector/vector30.hpp                      |   45 -
 boost/mpl/vector/vector30_c.hpp                    |   47 -
 boost/mpl/vector/vector40.hpp                      |   45 -
 boost/mpl/vector/vector40_c.hpp                    |   46 -
 boost/mpl/vector/vector50.hpp                      |   45 -
 boost/mpl/vector/vector50_c.hpp                    |   46 -
 boost/mpl/void.hpp                                 |   76 -
 boost/mpl/void_fwd.hpp                             |   26 -
 boost/next_prior.hpp                               |   51 -
 boost/non_type.hpp                                 |   27 -
 boost/noncopyable.hpp                              |   48 -
 boost/none.hpp                                     |   28 -
 boost/none_t.hpp                                   |   24 -
 boost/numeric/conversion/bounds.hpp                |   24 -
 boost/numeric/conversion/cast.hpp                  |   61 -
 boost/numeric/conversion/conversion_traits.hpp     |   39 -
 boost/numeric/conversion/converter.hpp             |   68 -
 boost/numeric/conversion/converter_policies.hpp    |  194 --
 boost/numeric/conversion/detail/bounds.hpp         |   58 -
 .../conversion/detail/conversion_traits.hpp        |   97 -
 boost/numeric/conversion/detail/converter.hpp      |  602 -----
 .../conversion/detail/int_float_mixture.hpp        |   72 -
 boost/numeric/conversion/detail/is_subranged.hpp   |  234 --
 boost/numeric/conversion/detail/meta.hpp           |  120 -
 .../conversion/detail/numeric_cast_traits.hpp      |  138 -
 .../numeric/conversion/detail/old_numeric_cast.hpp |  339 ---
 .../preprocessed/numeric_cast_traits_common.hpp    | 1741 ------------
 .../preprocessed/numeric_cast_traits_long_long.hpp |  347 ---
 boost/numeric/conversion/detail/sign_mixture.hpp   |   72 -
 .../conversion/detail/udt_builtin_mixture.hpp      |   69 -
 .../numeric/conversion/int_float_mixture_enum.hpp  |   29 -
 boost/numeric/conversion/numeric_cast_traits.hpp   |   31 -
 boost/numeric/conversion/sign_mixture_enum.hpp     |   29 -
 .../conversion/udt_builtin_mixture_enum.hpp        |   26 -
 boost/optional.hpp                                 |   18 -
 boost/optional/optional.hpp                        |  991 -------
 boost/optional/optional_fwd.hpp                    |   29 -
 boost/pending/integer_log2.hpp                     |  112 -
 boost/predef/architecture.h                        |   30 -
 boost/predef/architecture/alpha.h                  |   60 -
 boost/predef/architecture/arm.h                    |   58 -
 boost/predef/architecture/blackfin.h               |   47 -
 boost/predef/architecture/convex.h                 |   67 -
 boost/predef/architecture/ia64.h                   |   49 -
 boost/predef/architecture/m68k.h                   |   83 -
 boost/predef/architecture/mips.h                   |   74 -
 boost/predef/architecture/parisc.h                 |   65 -
 boost/predef/architecture/ppc.h                    |   73 -
 boost/predef/architecture/pyramid.h                |   43 -
 boost/predef/architecture/rs6k.h                   |   56 -
 boost/predef/architecture/sparc.h                  |   55 -
 boost/predef/architecture/superh.h                 |   68 -
 boost/predef/architecture/sys370.h                 |   44 -
 boost/predef/architecture/sys390.h                 |   44 -
 boost/predef/architecture/x86.h                    |   38 -
 boost/predef/architecture/x86/32.h                 |   87 -
 boost/predef/architecture/x86/64.h                 |   50 -
 boost/predef/architecture/z.h                      |   43 -
 boost/predef/detail/_cassert.h                     |   17 -
 boost/predef/detail/endian_compat.h                |   26 -
 boost/predef/detail/os_detected.h                  |   10 -
 boost/predef/detail/test.h                         |   17 -
 boost/predef/library/c/_prefix.h                   |   13 -
 boost/predef/library/c/gnu.h                       |   62 -
 boost/predef/make.h                                |   87 -
 boost/predef/os/bsd.h                              |   95 -
 boost/predef/os/bsd/bsdi.h                         |   48 -
 boost/predef/os/bsd/dragonfly.h                    |   50 -
 boost/predef/os/bsd/free.h                         |   60 -
 boost/predef/os/bsd/net.h                          |   84 -
 boost/predef/os/bsd/open.h                         |  171 --
 boost/predef/os/macos.h                            |   58 -
 boost/predef/os/windows.h                          |   51 -
 boost/predef/other/endian.h                        |  205 --
 boost/predef/version_number.h                      |   54 -
 boost/preprocessor/arithmetic/add.hpp              |   51 -
 boost/preprocessor/arithmetic/dec.hpp              |  288 --
 boost/preprocessor/arithmetic/inc.hpp              |  288 --
 boost/preprocessor/arithmetic/sub.hpp              |   50 -
 boost/preprocessor/array/data.hpp                  |   28 -
 boost/preprocessor/array/elem.hpp                  |   29 -
 boost/preprocessor/array/size.hpp                  |   28 -
 boost/preprocessor/cat.hpp                         |   35 -
 boost/preprocessor/comma_if.hpp                    |   17 -
 boost/preprocessor/comparison/less.hpp             |   46 -
 boost/preprocessor/comparison/less_equal.hpp       |   39 -
 boost/preprocessor/comparison/not_equal.hpp        |  814 ------
 boost/preprocessor/config/config.hpp               |  105 -
 boost/preprocessor/control/detail/dmc/while.hpp    |  536 ----
 boost/preprocessor/control/detail/edg/while.hpp    |  534 ----
 boost/preprocessor/control/detail/msvc/while.hpp   |  277 --
 boost/preprocessor/control/detail/while.hpp        |  536 ----
 boost/preprocessor/control/expr_if.hpp             |   30 -
 boost/preprocessor/control/expr_iif.hpp            |   31 -
 boost/preprocessor/control/if.hpp                  |   30 -
 boost/preprocessor/control/iif.hpp                 |   34 -
 boost/preprocessor/control/while.hpp               |  312 ---
 boost/preprocessor/debug/error.hpp                 |   33 -
 boost/preprocessor/dec.hpp                         |   17 -
 boost/preprocessor/detail/auto_rec.hpp             |  293 ---
 boost/preprocessor/detail/check.hpp                |   48 -
 boost/preprocessor/detail/dmc/auto_rec.hpp         |  286 --
 boost/preprocessor/detail/is_binary.hpp            |   30 -
 boost/preprocessor/detail/is_unary.hpp             |   30 -
 boost/preprocessor/empty.hpp                       |   17 -
 boost/preprocessor/enum.hpp                        |   17 -
 boost/preprocessor/enum_params.hpp                 |   17 -
 boost/preprocessor/enum_params_with_a_default.hpp  |   17 -
 boost/preprocessor/enum_shifted_params.hpp         |   17 -
 boost/preprocessor/expr_if.hpp                     |   17 -
 boost/preprocessor/facilities/empty.hpp            |   21 -
 boost/preprocessor/facilities/identity.hpp         |   23 -
 boost/preprocessor/facilities/intercept.hpp        |  277 --
 boost/preprocessor/facilities/overload.hpp         |   25 -
 boost/preprocessor/identity.hpp                    |   17 -
 boost/preprocessor/if.hpp                          |   17 -
 boost/preprocessor/inc.hpp                         |   17 -
 boost/preprocessor/iterate.hpp                     |   17 -
 .../iteration/detail/bounds/lower1.hpp             |   99 -
 .../iteration/detail/bounds/lower2.hpp             |   99 -
 .../iteration/detail/bounds/lower3.hpp             |   99 -
 .../iteration/detail/bounds/lower4.hpp             |   99 -
 .../iteration/detail/bounds/lower5.hpp             |   99 -
 .../iteration/detail/bounds/upper1.hpp             |   99 -
 .../iteration/detail/bounds/upper2.hpp             |   99 -
 .../iteration/detail/bounds/upper3.hpp             |   99 -
 .../iteration/detail/bounds/upper4.hpp             |   99 -
 .../iteration/detail/bounds/upper5.hpp             |   99 -
 boost/preprocessor/iteration/detail/finish.hpp     |   99 -
 .../iteration/detail/iter/forward1.hpp             | 1342 ----------
 .../iteration/detail/iter/forward2.hpp             | 1338 ----------
 .../iteration/detail/iter/forward3.hpp             | 1338 ----------
 .../iteration/detail/iter/forward4.hpp             | 1338 ----------
 .../iteration/detail/iter/forward5.hpp             | 1338 ----------
 .../iteration/detail/iter/reverse1.hpp             | 1296 ---------
 .../iteration/detail/iter/reverse2.hpp             | 1296 ---------
 .../iteration/detail/iter/reverse3.hpp             | 1296 ---------
 .../iteration/detail/iter/reverse4.hpp             | 1296 ---------
 .../iteration/detail/iter/reverse5.hpp             | 1296 ---------
 boost/preprocessor/iteration/detail/local.hpp      |  812 ------
 boost/preprocessor/iteration/detail/rlocal.hpp     |  782 ------
 boost/preprocessor/iteration/detail/self.hpp       |   21 -
 boost/preprocessor/iteration/detail/start.hpp      |   99 -
 boost/preprocessor/iteration/iterate.hpp           |   82 -
 boost/preprocessor/iteration/local.hpp             |   26 -
 boost/preprocessor/iteration/self.hpp              |   19 -
 boost/preprocessor/list/adt.hpp                    |   73 -
 boost/preprocessor/list/append.hpp                 |   40 -
 boost/preprocessor/list/detail/dmc/fold_left.hpp   |  279 --
 boost/preprocessor/list/detail/edg/fold_left.hpp   |  536 ----
 boost/preprocessor/list/detail/edg/fold_right.hpp  |  794 ------
 boost/preprocessor/list/detail/fold_left.hpp       |  279 --
 boost/preprocessor/list/detail/fold_right.hpp      |  277 --
 boost/preprocessor/list/fold_left.hpp              |  303 ---
 boost/preprocessor/list/fold_right.hpp             |   40 -
 boost/preprocessor/list/for_each_i.hpp             |   65 -
 boost/preprocessor/list/reverse.hpp                |   40 -
 boost/preprocessor/list/transform.hpp              |   49 -
 boost/preprocessor/logical/and.hpp                 |   30 -
 boost/preprocessor/logical/bitand.hpp              |   38 -
 boost/preprocessor/logical/bitor.hpp               |   38 -
 boost/preprocessor/logical/bool.hpp                |  288 --
 boost/preprocessor/logical/compl.hpp               |   36 -
 boost/preprocessor/logical/not.hpp                 |   30 -
 boost/preprocessor/logical/or.hpp                  |   30 -
 boost/preprocessor/punctuation/comma.hpp           |   21 -
 boost/preprocessor/punctuation/comma_if.hpp        |   31 -
 boost/preprocessor/punctuation/paren.hpp           |   23 -
 boost/preprocessor/repeat.hpp                      |   17 -
 boost/preprocessor/repeat_from_to.hpp              |   17 -
 boost/preprocessor/repetition/detail/dmc/for.hpp   |  536 ----
 boost/preprocessor/repetition/detail/edg/for.hpp   |  534 ----
 boost/preprocessor/repetition/detail/for.hpp       |  536 ----
 boost/preprocessor/repetition/detail/msvc/for.hpp  |  277 --
 boost/preprocessor/repetition/enum.hpp             |   66 -
 .../preprocessor/repetition/enum_binary_params.hpp |   54 -
 boost/preprocessor/repetition/enum_params.hpp      |   41 -
 .../repetition/enum_params_with_a_default.hpp      |   25 -
 boost/preprocessor/repetition/enum_shifted.hpp     |   68 -
 .../repetition/enum_shifted_params.hpp             |   44 -
 boost/preprocessor/repetition/enum_trailing.hpp    |   63 -
 .../repetition/enum_trailing_params.hpp            |   38 -
 boost/preprocessor/repetition/for.hpp              |  306 ---
 boost/preprocessor/repetition/repeat.hpp           |  825 ------
 boost/preprocessor/repetition/repeat_from_to.hpp   |   87 -
 boost/preprocessor/seq/cat.hpp                     |   49 -
 boost/preprocessor/seq/detail/split.hpp            |  284 --
 boost/preprocessor/seq/elem.hpp                    |  304 ---
 boost/preprocessor/seq/enum.hpp                    |  288 --
 boost/preprocessor/seq/first_n.hpp                 |   30 -
 boost/preprocessor/seq/fold_left.hpp               | 1070 --------
 boost/preprocessor/seq/for_each.hpp                |   60 -
 boost/preprocessor/seq/for_each_i.hpp              |   61 -
 boost/preprocessor/seq/rest_n.hpp                  |   30 -
 boost/preprocessor/seq/seq.hpp                     |   44 -
 boost/preprocessor/seq/size.hpp                    |  547 ----
 boost/preprocessor/seq/subseq.hpp                  |   28 -
 boost/preprocessor/seq/transform.hpp               |   48 -
 boost/preprocessor/slot/detail/counter.hpp         |  269 --
 boost/preprocessor/slot/detail/def.hpp             |   49 -
 boost/preprocessor/slot/detail/shared.hpp          |  247 --
 boost/preprocessor/slot/detail/slot1.hpp           |  267 --
 boost/preprocessor/slot/detail/slot2.hpp           |  267 --
 boost/preprocessor/slot/detail/slot3.hpp           |  267 --
 boost/preprocessor/slot/detail/slot4.hpp           |  267 --
 boost/preprocessor/slot/detail/slot5.hpp           |  267 --
 boost/preprocessor/slot/slot.hpp                   |   32 -
 boost/preprocessor/stringize.hpp                   |   33 -
 boost/preprocessor/tuple/eat.hpp                   |  106 -
 boost/preprocessor/tuple/elem.hpp                  |  191 --
 boost/preprocessor/tuple/rem.hpp                   |  135 -
 boost/preprocessor/tuple/to_list.hpp               |  116 -
 boost/preprocessor/variadic/elem.hpp               |   94 -
 boost/preprocessor/variadic/size.hpp               |   30 -
 boost/random.hpp                                   |   85 -
 boost/random/additive_combine.hpp                  |  283 --
 boost/random/bernoulli_distribution.hpp            |  197 --
 boost/random/binomial_distribution.hpp             |  422 ---
 boost/random/cauchy_distribution.hpp               |  214 --
 boost/random/chi_squared_distribution.hpp          |  209 --
 boost/random/detail/config.hpp                     |   18 -
 boost/random/detail/const_mod.hpp                  |  216 --
 boost/random/detail/disable_warnings.hpp           |   23 -
 boost/random/detail/enable_warnings.hpp            |   18 -
 boost/random/detail/generator_bits.hpp             |   36 -
 boost/random/detail/generator_seed_seq.hpp         |   40 -
 boost/random/detail/integer_log2.hpp               |   84 -
 boost/random/detail/large_arithmetic.hpp           |  122 -
 boost/random/detail/operators.hpp                  |   84 -
 boost/random/detail/ptr_helper.hpp                 |   94 -
 boost/random/detail/seed.hpp                       |  114 -
 boost/random/detail/seed_impl.hpp                  |  397 ---
 boost/random/detail/signed_unsigned_tools.hpp      |   89 -
 boost/random/detail/uniform_int_float.hpp          |   76 -
 boost/random/detail/vector_io.hpp                  |   75 -
 boost/random/discard_block.hpp                     |  240 --
 boost/random/discrete_distribution.hpp             |  453 ----
 boost/random/exponential_distribution.hpp          |  182 --
 boost/random/extreme_value_distribution.hpp        |  177 --
 boost/random/fisher_f_distribution.hpp             |  183 --
 boost/random/gamma_distribution.hpp                |  292 ---
 boost/random/generate_canonical.hpp                |   97 -
 boost/random/geometric_distribution.hpp            |  267 --
 boost/random/independent_bits.hpp                  |  260 --
 boost/random/inversive_congruential.hpp            |  267 --
 boost/random/lagged_fibonacci.hpp                  |  536 ----
 boost/random/linear_congruential.hpp               |  466 ----
 boost/random/linear_feedback_shift.hpp             |  217 --
 boost/random/lognormal_distribution.hpp            |  254 --
 boost/random/mersenne_twister.hpp                  |  545 ----
 boost/random/negative_binomial_distribution.hpp    |  220 --
 boost/random/normal_distribution.hpp               |  223 --
 boost/random/piecewise_constant_distribution.hpp   |  466 ----
 boost/random/piecewise_linear_distribution.hpp     |  530 ----
 boost/random/poisson_distribution.hpp              |  360 ---
 boost/random/random_number_generator.hpp           |   73 -
 boost/random/ranlux.hpp                            |   99 -
 boost/random/seed_seq.hpp                          |  118 -
 boost/random/shuffle_order.hpp                     |  269 --
 boost/random/shuffle_output.hpp                    |   51 -
 boost/random/student_t_distribution.hpp            |  180 --
 boost/random/subtract_with_carry.hpp               |  613 -----
 boost/random/taus88.hpp                            |   45 -
 boost/random/triangle_distribution.hpp             |  232 --
 boost/random/uniform_01.hpp                        |  277 --
 boost/random/uniform_int.hpp                       |   99 -
 boost/random/uniform_int_distribution.hpp          |  400 ---
 boost/random/uniform_on_sphere.hpp                 |  229 --
 boost/random/uniform_real.hpp                      |   82 -
 boost/random/uniform_real_distribution.hpp         |  239 --
 boost/random/uniform_smallint.hpp                  |  288 --
 boost/random/variate_generator.hpp                 |  122 -
 boost/random/weibull_distribution.hpp              |  177 --
 boost/random/xor_combine.hpp                       |  207 --
 boost/range/algorithm/equal.hpp                    |  198 --
 boost/range/begin.hpp                              |  143 -
 boost/range/concepts.hpp                           |  366 ---
 boost/range/config.hpp                             |   54 -
 boost/range/const_iterator.hpp                     |   67 -
 boost/range/detail/begin.hpp                       |   94 -
 boost/range/detail/common.hpp                      |  117 -
 boost/range/detail/const_iterator.hpp              |   71 -
 boost/range/detail/end.hpp                         |  101 -
 boost/range/detail/extract_optional_type.hpp       |   52 -
 boost/range/detail/implementation_help.hpp         |  103 -
 boost/range/detail/iterator.hpp                    |   78 -
 boost/range/detail/misc_concept.hpp                |   33 -
 boost/range/detail/remove_extent.hpp               |  157 --
 boost/range/detail/safe_bool.hpp                   |   72 -
 boost/range/detail/sfinae.hpp                      |   77 -
 boost/range/detail/size_type.hpp                   |   55 -
 boost/range/detail/vc6/end.hpp                     |  170 --
 boost/range/difference_type.hpp                    |   29 -
 boost/range/distance.hpp                           |   34 -
 boost/range/empty.hpp                              |   34 -
 boost/range/end.hpp                                |  136 -
 boost/range/functions.hpp                          |   27 -
 boost/range/iterator.hpp                           |   72 -
 boost/range/iterator_range_core.hpp                |  653 -----
 boost/range/mutable_iterator.hpp                   |   67 -
 boost/range/rbegin.hpp                             |   65 -
 boost/range/rend.hpp                               |   65 -
 boost/range/result_iterator.hpp                    |   33 -
 boost/range/reverse_iterator.hpp                   |   40 -
 boost/range/size.hpp                               |   52 -
 boost/range/size_type.hpp                          |   89 -
 boost/range/value_type.hpp                         |   34 -
 boost/ref.hpp                                      |  189 --
 boost/shared_ptr.hpp                               |   19 -
 boost/smart_ptr/bad_weak_ptr.hpp                   |   59 -
 boost/smart_ptr/detail/atomic_count.hpp            |  119 -
 boost/smart_ptr/detail/atomic_count_gcc.hpp        |   72 -
 boost/smart_ptr/detail/atomic_count_gcc_x86.hpp    |   77 -
 boost/smart_ptr/detail/atomic_count_pthreads.hpp   |   96 -
 boost/smart_ptr/detail/atomic_count_sync.hpp       |   61 -
 boost/smart_ptr/detail/atomic_count_win32.hpp      |   63 -
 boost/smart_ptr/detail/lightweight_mutex.hpp       |   42 -
 boost/smart_ptr/detail/lwm_nop.hpp                 |   37 -
 boost/smart_ptr/detail/lwm_pthreads.hpp            |   87 -
 boost/smart_ptr/detail/lwm_win32_cs.hpp            |  108 -
 boost/smart_ptr/detail/operator_bool.hpp           |   63 -
 boost/smart_ptr/detail/quick_allocator.hpp         |  199 --
 boost/smart_ptr/detail/shared_count.hpp            |  603 -----
 boost/smart_ptr/detail/shared_ptr_nmt.hpp          |  182 --
 boost/smart_ptr/detail/sp_convertible.hpp          |   91 -
 boost/smart_ptr/detail/sp_counted_base.hpp         |   79 -
 .../smart_ptr/detail/sp_counted_base_acc_ia64.hpp  |  151 --
 boost/smart_ptr/detail/sp_counted_base_aix.hpp     |  143 -
 boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp  |  171 --
 .../smart_ptr/detail/sp_counted_base_gcc_ia64.hpp  |  158 --
 .../smart_ptr/detail/sp_counted_base_gcc_mips.hpp  |  182 --
 boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp |  182 --
 .../smart_ptr/detail/sp_counted_base_gcc_sparc.hpp |  167 --
 boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp |  174 --
 boost/smart_ptr/detail/sp_counted_base_nt.hpp      |  108 -
 boost/smart_ptr/detail/sp_counted_base_pt.hpp      |  136 -
 boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp |  162 --
 boost/smart_ptr/detail/sp_counted_base_spin.hpp    |  132 -
 boost/smart_ptr/detail/sp_counted_base_sync.hpp    |  156 --
 .../smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp |  151 --
 boost/smart_ptr/detail/sp_counted_base_w32.hpp     |  131 -
 boost/smart_ptr/detail/sp_counted_impl.hpp         |  254 --
 boost/smart_ptr/detail/sp_has_sync.hpp             |   69 -
 boost/smart_ptr/detail/sp_nullptr_t.hpp            |   45 -
 boost/smart_ptr/detail/spinlock.hpp                |   56 -
 boost/smart_ptr/detail/spinlock_gcc_arm.hpp        |  120 -
 boost/smart_ptr/detail/spinlock_nt.hpp             |   89 -
 boost/smart_ptr/detail/spinlock_pool.hpp           |   91 -
 boost/smart_ptr/detail/spinlock_pt.hpp             |   79 -
 boost/smart_ptr/detail/spinlock_sync.hpp           |   87 -
 boost/smart_ptr/detail/spinlock_w32.hpp            |  113 -
 boost/smart_ptr/detail/yield_k.hpp                 |  148 --
 boost/smart_ptr/shared_ptr.hpp                     | 1035 --------
 boost/static_assert.hpp                            |  195 --
 boost/swap.hpp                                     |   12 -
 boost/throw_exception.hpp                          |  103 -
 boost/tr1/detail/config.hpp                        |  169 --
 boost/tr1/detail/config_all.hpp                    |  168 --
 boost/tr1/tuple.hpp                                |   82 -
 boost/tuple/detail/tuple_basic.hpp                 |  980 -------
 boost/tuple/detail/tuple_basic_no_partial_spec.hpp |  865 ------
 boost/tuple/tuple.hpp                              |   90 -
 boost/tuple/tuple_comparison.hpp                   |  175 --
 boost/type.hpp                                     |   18 -
 boost/type_traits.hpp                              |  101 -
 boost/type_traits/add_const.hpp                    |   47 -
 boost/type_traits/add_cv.hpp                       |   48 -
 boost/type_traits/add_lvalue_reference.hpp         |   26 -
 boost/type_traits/add_pointer.hpp                  |   72 -
 boost/type_traits/add_reference.hpp                |  107 -
 boost/type_traits/add_rvalue_reference.hpp         |   66 -
 boost/type_traits/add_volatile.hpp                 |   47 -
 boost/type_traits/aligned_storage.hpp              |   13 -
 boost/type_traits/alignment_of.hpp                 |  128 -
 boost/type_traits/broken_compiler_spec.hpp         |  117 -
 boost/type_traits/common_type.hpp                  |  157 --
 boost/type_traits/conditional.hpp                  |   25 -
 boost/type_traits/config.hpp                       |   76 -
 boost/type_traits/conversion_traits.hpp            |   17 -
 boost/type_traits/cv_traits.hpp                    |   24 -
 boost/type_traits/decay.hpp                        |   44 -
 boost/type_traits/detail/bool_trait_def.hpp        |  196 --
 boost/type_traits/detail/bool_trait_undef.hpp      |   28 -
 boost/type_traits/detail/common_type_imp.hpp       |  333 ---
 boost/type_traits/detail/cv_traits_impl.hpp        |   97 -
 boost/type_traits/detail/false_result.hpp          |   28 -
 boost/type_traits/detail/has_binary_operator.hpp   |  229 --
 boost/type_traits/detail/has_postfix_operator.hpp  |  202 --
 boost/type_traits/detail/has_prefix_operator.hpp   |  210 --
 boost/type_traits/detail/ice_and.hpp               |   35 -
 boost/type_traits/detail/ice_eq.hpp                |   36 -
 boost/type_traits/detail/ice_not.hpp               |   31 -
 boost/type_traits/detail/ice_or.hpp                |   34 -
 .../type_traits/detail/is_function_ptr_helper.hpp  |  220 --
 .../type_traits/detail/is_function_ptr_tester.hpp  |  654 -----
 .../type_traits/detail/is_mem_fun_pointer_impl.hpp |  817 ------
 .../detail/is_mem_fun_pointer_tester.hpp           | 2759 -------------------
 boost/type_traits/detail/size_t_trait_def.hpp      |   60 -
 boost/type_traits/detail/size_t_trait_undef.hpp    |   16 -
 boost/type_traits/detail/template_arity_spec.hpp   |   31 -
 boost/type_traits/detail/type_trait_def.hpp        |   67 -
 boost/type_traits/detail/type_trait_undef.hpp      |   19 -
 boost/type_traits/detail/wrap.hpp                  |   18 -
 boost/type_traits/detail/yes_no_type.hpp           |   26 -
 boost/type_traits/extent.hpp                       |  145 -
 boost/type_traits/floating_point_promotion.hpp     |   91 -
 boost/type_traits/function_traits.hpp              |  236 --
 boost/type_traits/has_bit_and.hpp                  |   49 -
 boost/type_traits/has_bit_and_assign.hpp           |   55 -
 boost/type_traits/has_bit_or.hpp                   |   49 -
 boost/type_traits/has_bit_or_assign.hpp            |   55 -
 boost/type_traits/has_bit_xor.hpp                  |   49 -
 boost/type_traits/has_bit_xor_assign.hpp           |   55 -
 boost/type_traits/has_complement.hpp               |   32 -
 boost/type_traits/has_dereference.hpp              |   31 -
 boost/type_traits/has_divides.hpp                  |   40 -
 boost/type_traits/has_divides_assign.hpp           |   47 -
 boost/type_traits/has_equal_to.hpp                 |   49 -
 boost/type_traits/has_greater.hpp                  |   49 -
 boost/type_traits/has_greater_equal.hpp            |   49 -
 boost/type_traits/has_left_shift.hpp               |   49 -
 boost/type_traits/has_left_shift_assign.hpp        |   55 -
 boost/type_traits/has_less.hpp                     |   49 -
 boost/type_traits/has_less_equal.hpp               |   49 -
 boost/type_traits/has_logical_and.hpp              |   40 -
 boost/type_traits/has_logical_not.hpp              |   23 -
 boost/type_traits/has_logical_or.hpp               |   40 -
 boost/type_traits/has_minus.hpp                    |   60 -
 boost/type_traits/has_minus_assign.hpp             |   65 -
 boost/type_traits/has_modulus.hpp                  |   49 -
 boost/type_traits/has_modulus_assign.hpp           |   55 -
 boost/type_traits/has_multiplies.hpp               |   40 -
 boost/type_traits/has_multiplies_assign.hpp        |   47 -
 boost/type_traits/has_negate.hpp                   |   25 -
 boost/type_traits/has_new_operator.hpp             |  140 -
 boost/type_traits/has_not_equal_to.hpp             |   49 -
 boost/type_traits/has_nothrow_assign.hpp           |   44 -
 boost/type_traits/has_nothrow_constructor.hpp      |   53 -
 boost/type_traits/has_nothrow_copy.hpp             |   53 -
 boost/type_traits/has_nothrow_destructor.hpp       |   25 -
 boost/type_traits/has_operator.hpp                 |   51 -
 boost/type_traits/has_plus.hpp                     |   54 -
 boost/type_traits/has_plus_assign.hpp              |   66 -
 boost/type_traits/has_post_decrement.hpp           |   40 -
 boost/type_traits/has_post_increment.hpp           |   40 -
 boost/type_traits/has_pre_decrement.hpp            |   40 -
 boost/type_traits/has_pre_increment.hpp            |   40 -
 boost/type_traits/has_right_shift.hpp              |   49 -
 boost/type_traits/has_right_shift_assign.hpp       |   55 -
 boost/type_traits/has_trivial_assign.hpp           |   57 -
 boost/type_traits/has_trivial_constructor.hpp      |   51 -
 boost/type_traits/has_trivial_copy.hpp             |   64 -
 boost/type_traits/has_trivial_destructor.hpp       |   49 -
 boost/type_traits/has_trivial_move_assign.hpp      |   57 -
 boost/type_traits/has_trivial_move_constructor.hpp |   57 -
 boost/type_traits/has_unary_minus.hpp              |   25 -
 boost/type_traits/has_unary_plus.hpp               |   23 -
 boost/type_traits/has_virtual_destructor.hpp       |   29 -
 boost/type_traits/ice.hpp                          |   20 -
 boost/type_traits/integral_constant.hpp            |   53 -
 boost/type_traits/integral_promotion.hpp           |  195 --
 boost/type_traits/intrinsics.hpp                   |  305 ---
 boost/type_traits/is_abstract.hpp                  |  153 --
 boost/type_traits/is_arithmetic.hpp                |   51 -
 boost/type_traits/is_array.hpp                     |   91 -
 boost/type_traits/is_base_and_derived.hpp          |  254 --
 boost/type_traits/is_base_of.hpp                   |   51 -
 boost/type_traits/is_class.hpp                     |  140 -
 boost/type_traits/is_complex.hpp                   |   34 -
 boost/type_traits/is_compound.hpp                  |   46 -
 boost/type_traits/is_const.hpp                     |  165 --
 boost/type_traits/is_convertible.hpp               |  492 ----
 boost/type_traits/is_copy_constructible.hpp        |  122 -
 boost/type_traits/is_empty.hpp                     |  229 --
 boost/type_traits/is_enum.hpp                      |  189 --
 boost/type_traits/is_float.hpp                     |   27 -
 boost/type_traits/is_floating_point.hpp            |   27 -
 boost/type_traits/is_function.hpp                  |  111 -
 boost/type_traits/is_fundamental.hpp               |   45 -
 boost/type_traits/is_integral.hpp                  |   89 -
 boost/type_traits/is_lvalue_reference.hpp          |  118 -
 boost/type_traits/is_member_function_pointer.hpp   |  136 -
 boost/type_traits/is_member_object_pointer.hpp     |   46 -
 boost/type_traits/is_member_pointer.hpp            |  116 -
 boost/type_traits/is_nothrow_move_assignable.hpp   |   84 -
 .../type_traits/is_nothrow_move_constructible.hpp  |   84 -
 boost/type_traits/is_object.hpp                    |   53 -
 boost/type_traits/is_pod.hpp                       |  145 -
 boost/type_traits/is_pointer.hpp                   |  162 --
 boost/type_traits/is_polymorphic.hpp               |  114 -
 boost/type_traits/is_reference.hpp                 |   45 -
 boost/type_traits/is_rvalue_reference.hpp          |   29 -
 boost/type_traits/is_same.hpp                      |  103 -
 boost/type_traits/is_scalar.hpp                    |   55 -
 boost/type_traits/is_signed.hpp                    |  140 -
 boost/type_traits/is_stateless.hpp                 |   48 -
 boost/type_traits/is_union.hpp                     |   57 -
 boost/type_traits/is_unsigned.hpp                  |  135 -
 boost/type_traits/is_virtual_base_of.hpp           |  104 -
 boost/type_traits/is_void.hpp                      |   38 -
 boost/type_traits/is_volatile.hpp                  |  152 --
 boost/type_traits/make_signed.hpp                  |  153 --
 boost/type_traits/make_unsigned.hpp                |  153 --
 boost/type_traits/msvc/remove_all_extents.hpp      |   47 -
 boost/type_traits/msvc/remove_bounds.hpp           |   43 -
 boost/type_traits/msvc/remove_const.hpp            |  143 -
 boost/type_traits/msvc/remove_cv.hpp               |  190 --
 boost/type_traits/msvc/remove_extent.hpp           |   43 -
 boost/type_traits/msvc/remove_pointer.hpp          |   42 -
 boost/type_traits/msvc/remove_reference.hpp        |   42 -
 boost/type_traits/msvc/remove_volatile.hpp         |  143 -
 boost/type_traits/msvc/typeof.hpp                  |   50 -
 boost/type_traits/promote.hpp                      |   40 -
 boost/type_traits/rank.hpp                         |   89 -
 boost/type_traits/remove_all_extents.hpp           |   48 -
 boost/type_traits/remove_bounds.hpp                |   48 -
 boost/type_traits/remove_const.hpp                 |   90 -
 boost/type_traits/remove_cv.hpp                    |   84 -
 boost/type_traits/remove_extent.hpp                |   48 -
 boost/type_traits/remove_pointer.hpp               |   92 -
 boost/type_traits/remove_reference.hpp             |   70 -
 boost/type_traits/remove_volatile.hpp              |   88 -
 boost/type_traits/type_with_alignment.hpp          |  399 ---
 boost/typeof/dmc/typeof_impl.hpp                   |  100 -
 boost/typeof/encode_decode.hpp                     |   61 -
 boost/typeof/encode_decode_params.hpp              |   34 -
 boost/typeof/int_encoding.hpp                      |  118 -
 boost/typeof/integral_template_param.hpp           |   80 -
 boost/typeof/message.hpp                           |    8 -
 boost/typeof/modifiers.hpp                         |  121 -
 boost/typeof/msvc/typeof_impl.hpp                  |  283 --
 boost/typeof/native.hpp                            |   60 -
 boost/typeof/pointers_data_members.hpp             |   38 -
 boost/typeof/register_functions.hpp                |   50 -
 boost/typeof/register_functions_iterate.hpp        |  135 -
 boost/typeof/register_fundamental.hpp              |   62 -
 boost/typeof/register_mem_functions.hpp            |   32 -
 boost/typeof/template_encoding.hpp                 |  160 --
 boost/typeof/template_template_param.hpp           |  149 --
 boost/typeof/type_encoding.hpp                     |   27 -
 boost/typeof/type_template_param.hpp               |   37 -
 boost/typeof/typeof.hpp                            |  218 --
 boost/typeof/typeof_impl.hpp                       |  186 --
 boost/typeof/unsupported.hpp                       |   29 -
 boost/typeof/vector.hpp                            |  166 --
 boost/typeof/vector100.hpp                         |  321 ---
 boost/typeof/vector150.hpp                         |  471 ----
 boost/typeof/vector200.hpp                         |  621 -----
 boost/typeof/vector50.hpp                          |  171 --
 boost/utility/addressof.hpp                        |  102 -
 boost/utility/base_from_member.hpp                 |  158 --
 boost/utility/compare_pointees.hpp                 |   68 -
 boost/utility/declval.hpp                          |   44 -
 boost/utility/detail/in_place_factory_prefix.hpp   |   36 -
 boost/utility/detail/in_place_factory_suffix.hpp   |   23 -
 boost/utility/detail/result_of_iterate.hpp         |  221 --
 boost/utility/enable_if.hpp                        |  119 -
 boost/utility/in_place_factory.hpp                 |   88 -
 boost/utility/result_of.hpp                        |  207 --
 boost/utility/swap.hpp                             |   55 -
 boost/version.hpp                                  |   32 -
 debian/control                                     |   16 +-
 debian/copyright                                   |   22 +-
 debian/patches/fix-boost                           |   62 +
 debian/patches/series                              |    1 +
 1980 files changed, 93 insertions(+), 339652 deletions(-)

diff --git a/boost/aligned_storage.hpp b/boost/aligned_storage.hpp
deleted file mode 100644
index ce277ab..0000000
--- a/boost/aligned_storage.hpp
+++ /dev/null
@@ -1,181 +0,0 @@
-//-----------------------------------------------------------------------------
-// boost aligned_storage.hpp header file
-// See http://www.boost.org for updates, documentation, and revision history.
-//-----------------------------------------------------------------------------
-//
-// Copyright (c) 2002-2003
-// Eric Friedman, Itay Maman
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_ALIGNED_STORAGE_HPP
-#define BOOST_ALIGNED_STORAGE_HPP
-
-#include <cstddef> // for std::size_t
-
-#include "boost/config.hpp"
-#include "boost/detail/workaround.hpp"
-#include "boost/type_traits/alignment_of.hpp"
-#include "boost/type_traits/type_with_alignment.hpp"
-#include "boost/type_traits/is_pod.hpp"
-
-#include "boost/mpl/eval_if.hpp"
-#include "boost/mpl/identity.hpp"
-
-#include "boost/type_traits/detail/bool_trait_def.hpp"
-
-namespace boost {
-
-namespace detail { namespace aligned_storage {
-
-BOOST_STATIC_CONSTANT(
-      std::size_t
-    , alignment_of_max_align = ::boost::alignment_of<max_align>::value
-    );
-
-//
-// To be TR1 conforming this must be a POD type:
-//
-template <
-      std::size_t size_
-    , std::size_t alignment_
->
-struct aligned_storage_imp
-{
-    union data_t
-    {
-        char buf[size_];
-
-        typename mpl::eval_if_c<
-              alignment_ == std::size_t(-1)
-            , mpl::identity<detail::max_align>
-            , type_with_alignment<alignment_>
-            >::type align_;
-    } data_;
-    void* address() const { return const_cast<aligned_storage_imp*>(this); }
-};
-
-template< std::size_t alignment_ >
-struct aligned_storage_imp<0u,alignment_>
-{
-    /* intentionally empty */
-    void* address() const { return 0; }
-};
-
-}} // namespace detail::aligned_storage
-
-template <
-      std::size_t size_
-    , std::size_t alignment_ = std::size_t(-1)
->
-class aligned_storage : 
-#ifndef __BORLANDC__
-   private 
-#else
-   public
-#endif
-   detail::aligned_storage::aligned_storage_imp<size_, alignment_> 
-{
- 
-public: // constants
-
-    typedef detail::aligned_storage::aligned_storage_imp<size_, alignment_> type;
-
-    BOOST_STATIC_CONSTANT(
-          std::size_t
-        , size = size_
-        );
-    BOOST_STATIC_CONSTANT(
-          std::size_t
-        , alignment = (
-              alignment_ == std::size_t(-1)
-            ? ::boost::detail::aligned_storage::alignment_of_max_align
-            : alignment_
-            )
-        );
-
-#if defined(__GNUC__) &&\
-    (__GNUC__ >  3) ||\
-    (__GNUC__ == 3 && (__GNUC_MINOR__ >  2 ||\
-                      (__GNUC_MINOR__ == 2 && __GNUC_PATCHLEVEL__ >=3)))
-
-private: // noncopyable
-
-    aligned_storage(const aligned_storage&);
-    aligned_storage& operator=(const aligned_storage&);
-
-#else // gcc less than 3.2.3
-
-public: // _should_ be noncopyable, but GCC compiler emits error
-
-    aligned_storage(const aligned_storage&);
-    aligned_storage& operator=(const aligned_storage&);
-
-#endif // gcc < 3.2.3 workaround
-
-public: // structors
-
-    aligned_storage()
-    {
-    }
-
-    ~aligned_storage()
-    {
-    }
-
-public: // accessors
-
-    void* address()
-    {
-        return static_cast<type*>(this)->address();
-    }
-
-#if !BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-
-    const void* address() const
-    {
-        return static_cast<const type*>(this)->address();
-    }
-
-#else // MSVC6
-
-    const void* address() const;
-
-#endif // MSVC6 workaround
-
-};
-
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-
-// MSVC6 seems not to like inline functions with const void* returns, so we
-// declare the following here:
-
-template <std::size_t S, std::size_t A>
-const void* aligned_storage<S,A>::address() const
-{
-    return const_cast< aligned_storage<S,A>* >(this)->address();
-}
-
-#endif // MSVC6 workaround
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-//
-// Make sure that is_pod recognises aligned_storage<>::type
-// as a POD (Note that aligned_storage<> itself is not a POD):
-//
-template <std::size_t size_, std::size_t alignment_>
-struct is_pod<boost::detail::aligned_storage::aligned_storage_imp<size_,alignment_> >
-   BOOST_TT_AUX_BOOL_C_BASE(true)
-{ 
-    BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(true)
-}; 
-#endif
-
-
-} // namespace boost
-
-#include "boost/type_traits/detail/bool_trait_undef.hpp"
-
-#endif // BOOST_ALIGNED_STORAGE_HPP
diff --git a/boost/array.hpp b/boost/array.hpp
deleted file mode 100644
index fa06fa9..0000000
--- a/boost/array.hpp
+++ /dev/null
@@ -1,446 +0,0 @@
-/* The following code declares class array,
- * an STL container (as wrapper) for arrays of constant size.
- *
- * See
- *      http://www.boost.org/libs/array/
- * for documentation.
- *
- * The original author site is at: http://www.josuttis.com/
- *
- * (C) Copyright Nicolai M. Josuttis 2001.
- *
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * 14 Apr 2012 - (mtc) Added support for boost::hash
- * 28 Dec 2010 - (mtc) Added cbegin and cend (and crbegin and crend) for C++Ox compatibility.
- * 10 Mar 2010 - (mtc) fill method added, matching resolution of the standard library working group.
- *      See <http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#776> or Trac issue #3168
- *      Eventually, we should remove "assign" which is now a synonym for "fill" (Marshall Clow)
- * 10 Mar 2010 - added workaround for SUNCC and !STLPort [trac #3893] (Marshall Clow)
- * 29 Jan 2004 - c_array() added, BOOST_NO_PRIVATE_IN_AGGREGATE removed (Nico Josuttis)
- * 23 Aug 2002 - fix for Non-MSVC compilers combined with MSVC libraries.
- * 05 Aug 2001 - minor update (Nico Josuttis)
- * 20 Jan 2001 - STLport fix (Beman Dawes)
- * 29 Sep 2000 - Initial Revision (Nico Josuttis)
- *
- * Jan 29, 2004
- */
-#ifndef BOOST_ARRAY_HPP
-#define BOOST_ARRAY_HPP
-
-#include <boost/detail/workaround.hpp>
-
-#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400)  
-# pragma warning(push)  
-# pragma warning(disable:4996) // 'std::equal': Function call with parameters that may be unsafe
-# pragma warning(disable:4510) // boost::array<T,N>' : default constructor could not be generated 
-# pragma warning(disable:4610) // warning C4610: class 'boost::array<T,N>' can never be instantiated - user defined constructor required 
-#endif
-
-#include <cstddef>
-#include <stdexcept>
-#include <boost/assert.hpp>
-#include <boost/swap.hpp>
-
-// Handles broken standard libraries better than <iterator>
-#include <boost/detail/iterator.hpp>
-#include <boost/throw_exception.hpp>
-#include <boost/functional/hash_fwd.hpp>
-#include <algorithm>
-
-// FIXES for broken compilers
-#include <boost/config.hpp>
-
-
-namespace boost {
-
-    template<class T, std::size_t N>
-    class array {
-      public:
-        T elems[N];    // fixed-size array of elements of type T
-
-      public:
-        // type definitions
-        typedef T              value_type;
-        typedef T*             iterator;
-        typedef const T*       const_iterator;
-        typedef T&             reference;
-        typedef const T&       const_reference;
-        typedef std::size_t    size_type;
-        typedef std::ptrdiff_t difference_type;
-
-        // iterator support
-        iterator        begin()       { return elems; }
-        const_iterator  begin() const { return elems; }
-        const_iterator cbegin() const { return elems; }
-        
-        iterator        end()       { return elems+N; }
-        const_iterator  end() const { return elems+N; }
-        const_iterator cend() const { return elems+N; }
-
-        // reverse iterator support
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_MSVC_STD_ITERATOR) && !defined(BOOST_NO_STD_ITERATOR_TRAITS)
-        typedef std::reverse_iterator<iterator> reverse_iterator;
-        typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
-#elif defined(_MSC_VER) && (_MSC_VER == 1300) && defined(BOOST_DINKUMWARE_STDLIB) && (BOOST_DINKUMWARE_STDLIB == 310)
-        // workaround for broken reverse_iterator in VC7
-        typedef std::reverse_iterator<std::_Ptrit<value_type, difference_type, iterator,
-                                      reference, iterator, reference> > reverse_iterator;
-        typedef std::reverse_iterator<std::_Ptrit<value_type, difference_type, const_iterator,
-                                      const_reference, iterator, reference> > const_reverse_iterator;
-#elif defined(_RWSTD_NO_CLASS_PARTIAL_SPEC) 
-        typedef std::reverse_iterator<iterator, std::random_access_iterator_tag, 
-              value_type, reference, iterator, difference_type> reverse_iterator; 
-        typedef std::reverse_iterator<const_iterator, std::random_access_iterator_tag,
-              value_type, const_reference, const_iterator, difference_type> const_reverse_iterator;
-#else
-        // workaround for broken reverse_iterator implementations
-        typedef std::reverse_iterator<iterator,T> reverse_iterator;
-        typedef std::reverse_iterator<const_iterator,T> const_reverse_iterator;
-#endif
-
-        reverse_iterator rbegin() { return reverse_iterator(end()); }
-        const_reverse_iterator rbegin() const {
-            return const_reverse_iterator(end());
-        }
-        const_reverse_iterator crbegin() const {
-            return const_reverse_iterator(end());
-        }
-
-        reverse_iterator rend() { return reverse_iterator(begin()); }
-        const_reverse_iterator rend() const {
-            return const_reverse_iterator(begin());
-        }
-        const_reverse_iterator crend() const {
-            return const_reverse_iterator(begin());
-        }
-
-        // operator[]
-        reference operator[](size_type i) 
-        { 
-            BOOST_ASSERT_MSG( i < N, "out of range" );
-            return elems[i];
-        }
-        
-        const_reference operator[](size_type i) const 
-        {     
-            BOOST_ASSERT_MSG( i < N, "out of range" );
-            return elems[i]; 
-        }
-
-        // at() with range check
-        reference at(size_type i) { rangecheck(i); return elems[i]; }
-        const_reference at(size_type i) const { rangecheck(i); return elems[i]; }
-    
-        // front() and back()
-        reference front() 
-        { 
-            return elems[0]; 
-        }
-        
-        const_reference front() const 
-        {
-            return elems[0];
-        }
-        
-        reference back() 
-        { 
-            return elems[N-1]; 
-        }
-        
-        const_reference back() const 
-        { 
-            return elems[N-1]; 
-        }
-
-        // size is constant
-        static size_type size() { return N; }
-        static bool empty() { return false; }
-        static size_type max_size() { return N; }
-        enum { static_size = N };
-
-        // swap (note: linear complexity)
-        void swap (array<T,N>& y) {
-            for (size_type i = 0; i < N; ++i)
-                boost::swap(elems[i],y.elems[i]);
-        }
-
-        // direct access to data (read-only)
-        const T* data() const { return elems; }
-        T* data() { return elems; }
-
-        // use array as C array (direct read/write access to data)
-        T* c_array() { return elems; }
-
-        // assignment with type conversion
-        template <typename T2>
-        array<T,N>& operator= (const array<T2,N>& rhs) {
-            std::copy(rhs.begin(),rhs.end(), begin());
-            return *this;
-        }
-
-        // assign one value to all elements
-        void assign (const T& value) { fill ( value ); }    // A synonym for fill
-        void fill   (const T& value)
-        {
-            std::fill_n(begin(),size(),value);
-        }
-
-        // check range (may be private because it is static)
-        static void rangecheck (size_type i) {
-            if (i >= size()) {
-                std::out_of_range e("array<>: index out of range");
-                boost::throw_exception(e);
-            }
-        }
-
-    };
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-    template< class T >
-    class array< T, 0 > {
-
-      public:
-        // type definitions
-        typedef T              value_type;
-        typedef T*             iterator;
-        typedef const T*       const_iterator;
-        typedef T&             reference;
-        typedef const T&       const_reference;
-        typedef std::size_t    size_type;
-        typedef std::ptrdiff_t difference_type;
-
-        // iterator support
-        iterator        begin()       { return       iterator( reinterpret_cast<       T * >( this ) ); }
-        const_iterator  begin() const { return const_iterator( reinterpret_cast< const T * >( this ) ); }
-        const_iterator cbegin() const { return const_iterator( reinterpret_cast< const T * >( this ) ); }
-
-        iterator        end()       { return  begin(); }
-        const_iterator  end() const { return  begin(); }
-        const_iterator cend() const { return cbegin(); }
-
-        // reverse iterator support
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_MSVC_STD_ITERATOR) && !defined(BOOST_NO_STD_ITERATOR_TRAITS)
-        typedef std::reverse_iterator<iterator> reverse_iterator;
-        typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
-#elif defined(_MSC_VER) && (_MSC_VER == 1300) && defined(BOOST_DINKUMWARE_STDLIB) && (BOOST_DINKUMWARE_STDLIB == 310)
-        // workaround for broken reverse_iterator in VC7
-        typedef std::reverse_iterator<std::_Ptrit<value_type, difference_type, iterator,
-                                      reference, iterator, reference> > reverse_iterator;
-        typedef std::reverse_iterator<std::_Ptrit<value_type, difference_type, const_iterator,
-                                      const_reference, iterator, reference> > const_reverse_iterator;
-#elif defined(_RWSTD_NO_CLASS_PARTIAL_SPEC) 
-        typedef std::reverse_iterator<iterator, std::random_access_iterator_tag, 
-              value_type, reference, iterator, difference_type> reverse_iterator; 
-        typedef std::reverse_iterator<const_iterator, std::random_access_iterator_tag,
-              value_type, const_reference, const_iterator, difference_type> const_reverse_iterator;
-#else
-        // workaround for broken reverse_iterator implementations
-        typedef std::reverse_iterator<iterator,T> reverse_iterator;
-        typedef std::reverse_iterator<const_iterator,T> const_reverse_iterator;
-#endif
-
-        reverse_iterator rbegin() { return reverse_iterator(end()); }
-        const_reverse_iterator rbegin() const {
-            return const_reverse_iterator(end());
-        }
-        const_reverse_iterator crbegin() const {
-            return const_reverse_iterator(end());
-        }
-
-        reverse_iterator rend() { return reverse_iterator(begin()); }
-        const_reverse_iterator rend() const {
-            return const_reverse_iterator(begin());
-        }
-        const_reverse_iterator crend() const {
-            return const_reverse_iterator(begin());
-        }
-
-        // operator[]
-        reference operator[](size_type /*i*/)
-        {
-            return failed_rangecheck();
-        }
-
-        const_reference operator[](size_type /*i*/) const
-        {
-            return failed_rangecheck();
-        }
-
-        // at() with range check
-        reference at(size_type /*i*/)               {   return failed_rangecheck(); }
-        const_reference at(size_type /*i*/) const   {   return failed_rangecheck(); }
-
-        // front() and back()
-        reference front()
-        {
-            return failed_rangecheck();
-        }
-
-        const_reference front() const
-        {
-            return failed_rangecheck();
-        }
-
-        reference back()
-        {
-            return failed_rangecheck();
-        }
-
-        const_reference back() const
-        {
-            return failed_rangecheck();
-        }
-
-        // size is constant
-        static size_type size() { return 0; }
-        static bool empty() { return true; }
-        static size_type max_size() { return 0; }
-        enum { static_size = 0 };
-
-        void swap (array<T,0>& /*y*/) {
-        }
-
-        // direct access to data (read-only)
-        const T* data() const { return 0; }
-        T* data() { return 0; }
-
-        // use array as C array (direct read/write access to data)
-        T* c_array() { return 0; }
-
-        // assignment with type conversion
-        template <typename T2>
-        array<T,0>& operator= (const array<T2,0>& ) {
-            return *this;
-        }
-
-        // assign one value to all elements
-        void assign (const T& value) { fill ( value ); }
-        void fill   (const T& ) {}
-        
-        // check range (may be private because it is static)
-        static reference failed_rangecheck () {
-                std::out_of_range e("attempt to access element of an empty array");
-                boost::throw_exception(e);
-#if defined(BOOST_NO_EXCEPTIONS) || (!defined(BOOST_MSVC) && !defined(__PATHSCALE__))
-                //
-                // We need to return something here to keep
-                // some compilers happy: however we will never
-                // actually get here....
-                //
-                static T placeholder;
-                return placeholder;
-#endif
-            }
-    };
-#endif
-
-    // comparisons
-    template<class T, std::size_t N>
-    bool operator== (const array<T,N>& x, const array<T,N>& y) {
-        return std::equal(x.begin(), x.end(), y.begin());
-    }
-    template<class T, std::size_t N>
-    bool operator< (const array<T,N>& x, const array<T,N>& y) {
-        return std::lexicographical_compare(x.begin(),x.end(),y.begin(),y.end());
-    }
-    template<class T, std::size_t N>
-    bool operator!= (const array<T,N>& x, const array<T,N>& y) {
-        return !(x==y);
-    }
-    template<class T, std::size_t N>
-    bool operator> (const array<T,N>& x, const array<T,N>& y) {
-        return y<x;
-    }
-    template<class T, std::size_t N>
-    bool operator<= (const array<T,N>& x, const array<T,N>& y) {
-        return !(y<x);
-    }
-    template<class T, std::size_t N>
-    bool operator>= (const array<T,N>& x, const array<T,N>& y) {
-        return !(x<y);
-    }
-
-    // global swap()
-    template<class T, std::size_t N>
-    inline void swap (array<T,N>& x, array<T,N>& y) {
-        x.swap(y);
-    }
-
-#if defined(__SUNPRO_CC)
-//  Trac ticket #4757; the Sun Solaris compiler can't handle
-//  syntax like 'T(&get_c_array(boost::array<T,N>& arg))[N]'
-//  
-//  We can't just use this for all compilers, because the 
-//      borland compilers can't handle this form. 
-    namespace detail {
-       template <typename T, std::size_t N> struct c_array
-       {
-           typedef T type[N];
-       };
-    }
-    
-   // Specific for boost::array: simply returns its elems data member.
-   template <typename T, std::size_t N>
-   typename detail::c_array<T,N>::type& get_c_array(boost::array<T,N>& arg)
-   {
-       return arg.elems;
-   }
-
-   // Specific for boost::array: simply returns its elems data member.
-   template <typename T, std::size_t N>
-   typename const detail::c_array<T,N>::type& get_c_array(const boost::array<T,N>& arg)
-   {
-       return arg.elems;
-   }
-#else
-// Specific for boost::array: simply returns its elems data member.
-    template <typename T, std::size_t N>
-    T(&get_c_array(boost::array<T,N>& arg))[N]
-    {
-        return arg.elems;
-    }
-    
-    // Const version.
-    template <typename T, std::size_t N>
-    const T(&get_c_array(const boost::array<T,N>& arg))[N]
-    {
-        return arg.elems;
-    }
-#endif
-    
-#if 0
-    // Overload for std::array, assuming that std::array will have
-    // explicit conversion functions as discussed at the WG21 meeting
-    // in Summit, March 2009.
-    template <typename T, std::size_t N>
-    T(&get_c_array(std::array<T,N>& arg))[N]
-    {
-        return static_cast<T(&)[N]>(arg);
-    }
-    
-    // Const version.
-    template <typename T, std::size_t N>
-    const T(&get_c_array(const std::array<T,N>& arg))[N]
-    {
-        return static_cast<T(&)[N]>(arg);
-    }
-#endif
-
-
-    template<class T, std::size_t N>
-    std::size_t hash_value(const array<T,N>& arr)
-    {
-        return boost::hash_range(arr.begin(), arr.end());
-    }
-
-} /* namespace boost */
-
-
-#if BOOST_WORKAROUND(BOOST_MSVC, >= 1400)  
-# pragma warning(pop)  
-#endif 
-
-#endif /*BOOST_ARRAY_HPP*/
diff --git a/boost/assert.hpp b/boost/assert.hpp
deleted file mode 100644
index ccc776a..0000000
--- a/boost/assert.hpp
+++ /dev/null
@@ -1,141 +0,0 @@
-//
-//  boost/assert.hpp - BOOST_ASSERT(expr)
-//                     BOOST_ASSERT_MSG(expr, msg)
-//                     BOOST_VERIFY(expr)
-//
-//  Copyright (c) 2001, 2002 Peter Dimov and Multi Media Ltd.
-//  Copyright (c) 2007 Peter Dimov
-//  Copyright (c) Beman Dawes 2011
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-//  Note: There are no include guards. This is intentional.
-//
-//  See http://www.boost.org/libs/utility/assert.html for documentation.
-//
-
-//
-// Stop inspect complaining about use of 'assert':
-//
-// boostinspect:naassert_macro
-//
-
-//--------------------------------------------------------------------------------------//
-//                                     BOOST_ASSERT                                     //
-//--------------------------------------------------------------------------------------//
-
-#undef BOOST_ASSERT
-
-#if defined(BOOST_DISABLE_ASSERTS)
-
-# define BOOST_ASSERT(expr) ((void)0)
-
-#elif defined(BOOST_ENABLE_ASSERT_HANDLER)
-
-#include <boost/config.hpp>
-#include <boost/current_function.hpp>
-
-namespace boost
-{
-  void assertion_failed(char const * expr,
-                        char const * function, char const * file, long line); // user defined
-} // namespace boost
-
-#define BOOST_ASSERT(expr) (BOOST_LIKELY(!!(expr)) \
-  ? ((void)0) \
-  : ::boost::assertion_failed(#expr, BOOST_CURRENT_FUNCTION, __FILE__, __LINE__))
-
-#else
-# include <assert.h> // .h to support old libraries w/o <cassert> - effect is the same
-# define BOOST_ASSERT(expr) assert(expr)
-#endif
-
-//--------------------------------------------------------------------------------------//
-//                                   BOOST_ASSERT_MSG                                   //
-//--------------------------------------------------------------------------------------//
-
-# undef BOOST_ASSERT_MSG
-
-#if defined(BOOST_DISABLE_ASSERTS) || defined(NDEBUG)
-
-  #define BOOST_ASSERT_MSG(expr, msg) ((void)0)
-
-#elif defined(BOOST_ENABLE_ASSERT_HANDLER)
-
-  #include <boost/config.hpp>
-  #include <boost/current_function.hpp>
-
-  namespace boost
-  {
-    void assertion_failed_msg(char const * expr, char const * msg,
-                              char const * function, char const * file, long line); // user defined
-  } // namespace boost
-
-  #define BOOST_ASSERT_MSG(expr, msg) (BOOST_LIKELY(!!(expr)) \
-    ? ((void)0) \
-    : ::boost::assertion_failed_msg(#expr, msg, BOOST_CURRENT_FUNCTION, __FILE__, __LINE__))
-
-#else
-  #ifndef BOOST_ASSERT_HPP
-    #define BOOST_ASSERT_HPP
-    #include <cstdlib>
-    #include <iostream>
-    #include <boost/config.hpp>
-    #include <boost/current_function.hpp>
-
-    //  IDE's like Visual Studio perform better if output goes to std::cout or
-    //  some other stream, so allow user to configure output stream:
-    #ifndef BOOST_ASSERT_MSG_OSTREAM
-    # define BOOST_ASSERT_MSG_OSTREAM std::cerr
-    #endif
-
-    namespace boost
-    {
-      namespace assertion
-      {
-        namespace detail
-        {
-          // Note: The template is needed to make the function non-inline and avoid linking errors
-          template< typename CharT >
-          BOOST_NOINLINE void assertion_failed_msg(CharT const * expr, char const * msg, char const * function,
-            char const * file, long line)
-          {
-            BOOST_ASSERT_MSG_OSTREAM
-              << "***** Internal Program Error - assertion (" << expr << ") failed in "
-              << function << ":\n"
-              << file << '(' << line << "): " << msg << std::endl;
-#ifdef UNDER_CE
-            // The Windows CE CRT library does not have abort() so use exit(-1) instead.
-            std::exit(-1);
-#else
-            std::abort();
-#endif
-          }
-        } // detail
-      } // assertion
-    } // detail
-  #endif
-
-  #define BOOST_ASSERT_MSG(expr, msg) (BOOST_LIKELY(!!(expr)) \
-    ? ((void)0) \
-    : ::boost::assertion::detail::assertion_failed_msg(#expr, msg, \
-          BOOST_CURRENT_FUNCTION, __FILE__, __LINE__))
-#endif
-
-//--------------------------------------------------------------------------------------//
-//                                     BOOST_VERIFY                                     //
-//--------------------------------------------------------------------------------------//
-
-#undef BOOST_VERIFY
-
-#if defined(BOOST_DISABLE_ASSERTS) || ( !defined(BOOST_ENABLE_ASSERT_HANDLER) && defined(NDEBUG) )
-
-# define BOOST_VERIFY(expr) ((void)(expr))
-
-#else
-
-# define BOOST_VERIFY(expr) BOOST_ASSERT(expr)
-
-#endif
diff --git a/boost/blank.hpp b/boost/blank.hpp
deleted file mode 100644
index d0fe5ab..0000000
--- a/boost/blank.hpp
+++ /dev/null
@@ -1,106 +0,0 @@
-//-----------------------------------------------------------------------------
-// boost blank.hpp header file
-// See http://www.boost.org for updates, documentation, and revision history.
-//-----------------------------------------------------------------------------
-//
-// Copyright (c) 2003
-// Eric Friedman
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_BLANK_HPP
-#define BOOST_BLANK_HPP
-
-#include "boost/blank_fwd.hpp"
-
-#if !defined(BOOST_NO_IOSTREAM)
-#include <iosfwd> // for std::basic_ostream forward declare
-#include "boost/detail/templated_streams.hpp"
-#endif // BOOST_NO_IOSTREAM
-
-#include "boost/mpl/bool.hpp"
-#include "boost/type_traits/is_empty.hpp"
-#include "boost/type_traits/is_pod.hpp"
-#include "boost/type_traits/is_stateless.hpp"
-
-namespace boost {
-
-struct blank
-{
-};
-
-// type traits specializations
-//
-
-template <>
-struct is_pod< blank >
-    : mpl::true_
-{
-};
-
-template <>
-struct is_empty< blank >
-    : mpl::true_
-{
-};
-
-template <>
-struct is_stateless< blank >
-    : mpl::true_
-{
-};
-
-// relational operators
-//
-
-inline bool operator==(const blank&, const blank&)
-{
-    return true;
-}
-
-inline bool operator<=(const blank&, const blank&)
-{
-    return true;
-}
-
-inline bool operator>=(const blank&, const blank&)
-{
-    return true;
-}
-
-inline bool operator!=(const blank&, const blank&)
-{
-    return false;
-}
-
-inline bool operator<(const blank&, const blank&)
-{
-    return false;
-}
-
-inline bool operator>(const blank&, const blank&)
-{
-    return false;
-}
-
-// streaming support
-//
-#if !defined(BOOST_NO_IOSTREAM)
-
-BOOST_TEMPLATED_STREAM_TEMPLATE(E,T)
-inline BOOST_TEMPLATED_STREAM(ostream, E,T)& operator<<(
-      BOOST_TEMPLATED_STREAM(ostream, E,T)& out
-    , const blank&
-    )
-{
-    // (output nothing)
-    return out;
-}
-
-#endif // BOOST_NO_IOSTREAM
-
-} // namespace boost
-
-#endif // BOOST_BLANK_HPP
diff --git a/boost/blank_fwd.hpp b/boost/blank_fwd.hpp
deleted file mode 100644
index 8bfe97c..0000000
--- a/boost/blank_fwd.hpp
+++ /dev/null
@@ -1,22 +0,0 @@
-//-----------------------------------------------------------------------------
-// boost blank_fwd.hpp header file
-// See http://www.boost.org for updates, documentation, and revision history.
-//-----------------------------------------------------------------------------
-//
-// Copyright (c) 2003
-// Eric Friedman
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_BLANK_FWD_HPP
-#define BOOST_BLANK_FWD_HPP
-
-namespace boost {
-
-struct blank;
-
-} // namespace boost
-
-#endif // BOOST_BLANK_FWD_HPP
diff --git a/boost/checked_delete.hpp b/boost/checked_delete.hpp
deleted file mode 100644
index 9bb84e8..0000000
--- a/boost/checked_delete.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-#ifndef BOOST_CHECKED_DELETE_HPP_INCLUDED
-#define BOOST_CHECKED_DELETE_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  boost/checked_delete.hpp
-//
-//  Copyright (c) 2002, 2003 Peter Dimov
-//  Copyright (c) 2003 Daniel Frey
-//  Copyright (c) 2003 Howard Hinnant
-//
-//  Distributed under the Boost Software License, Version 1.0. (See
-//  accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-//  See http://www.boost.org/libs/utility/checked_delete.html for documentation.
-//
-
-namespace boost
-{
-
-// verify that types are complete for increased safety
-
-template<class T> inline void checked_delete(T * x)
-{
-    // intentionally complex - simplification causes regressions
-    typedef char type_must_be_complete[ sizeof(T)? 1: -1 ];
-    (void) sizeof(type_must_be_complete);
-    delete x;
-}
-
-template<class T> inline void checked_array_delete(T * x)
-{
-    typedef char type_must_be_complete[ sizeof(T)? 1: -1 ];
-    (void) sizeof(type_must_be_complete);
-    delete [] x;
-}
-
-template<class T> struct checked_deleter
-{
-    typedef void result_type;
-    typedef T * argument_type;
-
-    void operator()(T * x) const
-    {
-        // boost:: disables ADL
-        boost::checked_delete(x);
-    }
-};
-
-template<class T> struct checked_array_deleter
-{
-    typedef void result_type;
-    typedef T * argument_type;
-
-    void operator()(T * x) const
-    {
-        boost::checked_array_delete(x);
-    }
-};
-
-} // namespace boost
-
-#endif  // #ifndef BOOST_CHECKED_DELETE_HPP_INCLUDED
diff --git a/boost/concept/assert.hpp b/boost/concept/assert.hpp
deleted file mode 100644
index 80eca81..0000000
--- a/boost/concept/assert.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright David Abrahams 2006. Distributed under the Boost
-// Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-#ifndef BOOST_CONCEPT_ASSERT_DWA2006430_HPP
-# define BOOST_CONCEPT_ASSERT_DWA2006430_HPP
-
-# include <boost/config.hpp>
-# include <boost/detail/workaround.hpp>
-
-// The old protocol used a constraints() member function in concept
-// checking classes.  If the compiler supports SFINAE, we can detect
-// that function and seamlessly support the old concept checking
-// classes.  In this release, backward compatibility with the old
-// concept checking classes is enabled by default, where available.
-// The old protocol is deprecated, though, and backward compatibility
-// will no longer be the default in the next release.
-
-# if !defined(BOOST_NO_OLD_CONCEPT_SUPPORT)                                         \
-    && !defined(BOOST_NO_SFINAE)                                                    \
-                                                                                    \
-    && !(BOOST_WORKAROUND(__GNUC__, == 3) && BOOST_WORKAROUND(__GNUC_MINOR__, < 4)) \
-    && !(BOOST_WORKAROUND(__GNUC__, == 2))
-
-// Note: gcc-2.96 through 3.3.x have some SFINAE, but no ability to
-// check for the presence of particularmember functions.
-
-#  define BOOST_OLD_CONCEPT_SUPPORT
-
-# endif
-
-# ifdef BOOST_MSVC
-#  include <boost/concept/detail/msvc.hpp>
-# elif BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
-#  include <boost/concept/detail/borland.hpp>
-# else 
-#  include <boost/concept/detail/general.hpp>
-# endif
-
-  // Usage, in class or function context:
-  //
-  //     BOOST_CONCEPT_ASSERT((UnaryFunctionConcept<F,bool,int>));
-  //
-# define BOOST_CONCEPT_ASSERT(ModelInParens) \
-    BOOST_CONCEPT_ASSERT_FN(void(*)ModelInParens)
-
-#endif // BOOST_CONCEPT_ASSERT_DWA2006430_HPP
diff --git a/boost/concept/detail/backward_compatibility.hpp b/boost/concept/detail/backward_compatibility.hpp
deleted file mode 100644
index 66d573e..0000000
--- a/boost/concept/detail/backward_compatibility.hpp
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright David Abrahams 2009. Distributed under the Boost
-// Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-#ifndef BOOST_CONCEPT_BACKWARD_COMPATIBILITY_DWA200968_HPP
-# define BOOST_CONCEPT_BACKWARD_COMPATIBILITY_DWA200968_HPP
-
-namespace boost
-{
-  namespace concepts {}
-
-# if defined(BOOST_HAS_CONCEPTS) && !defined(BOOST_CONCEPT_NO_BACKWARD_KEYWORD)
-  namespace concept = concepts;
-# endif 
-} // namespace boost::concept
-
-#endif // BOOST_CONCEPT_BACKWARD_COMPATIBILITY_DWA200968_HPP
diff --git a/boost/concept/detail/borland.hpp b/boost/concept/detail/borland.hpp
deleted file mode 100644
index 300d5d4..0000000
--- a/boost/concept/detail/borland.hpp
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright David Abrahams 2006. Distributed under the Boost
-// Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-#ifndef BOOST_CONCEPT_DETAIL_BORLAND_DWA2006429_HPP
-# define BOOST_CONCEPT_DETAIL_BORLAND_DWA2006429_HPP
-
-# include <boost/preprocessor/cat.hpp>
-# include <boost/concept/detail/backward_compatibility.hpp>
-
-namespace boost { namespace concepts {
-
-template <class ModelFnPtr>
-struct require;
-
-template <class Model>
-struct require<void(*)(Model)>
-{
-    enum { instantiate = sizeof((((Model*)0)->~Model()), 3) };
-};
-
-#  define BOOST_CONCEPT_ASSERT_FN( ModelFnPtr )         \
-  enum                                                  \
-  {                                                     \
-      BOOST_PP_CAT(boost_concept_check,__LINE__) =      \
-      boost::concepts::require<ModelFnPtr>::instantiate  \
-  }
-
-}} // namespace boost::concept
-
-#endif // BOOST_CONCEPT_DETAIL_BORLAND_DWA2006429_HPP
diff --git a/boost/concept/detail/concept_def.hpp b/boost/concept/detail/concept_def.hpp
deleted file mode 100644
index 79f628e..0000000
--- a/boost/concept/detail/concept_def.hpp
+++ /dev/null
@@ -1,51 +0,0 @@
-// Copyright David Abrahams 2006. Distributed under the Boost
-// Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-#ifndef BOOST_CONCEPT_DETAIL_CONCEPT_DEF_DWA200651_HPP
-# define BOOST_CONCEPT_DETAIL_CONCEPT_DEF_DWA200651_HPP
-# include <boost/preprocessor/seq/for_each_i.hpp>
-# include <boost/preprocessor/seq/enum.hpp>
-# include <boost/preprocessor/comma_if.hpp>
-# include <boost/preprocessor/cat.hpp>
-#endif // BOOST_CONCEPT_DETAIL_CONCEPT_DEF_DWA200651_HPP
-
-// BOOST_concept(SomeName, (p1)(p2)...(pN))
-//
-// Expands to "template <class p1, class p2, ...class pN> struct SomeName"
-//
-// Also defines an equivalent SomeNameConcept for backward compatibility.
-// Maybe in the next release we can kill off the "Concept" suffix for good.
-#if BOOST_WORKAROUND(__GNUC__, <= 3)
-# define BOOST_concept(name, params)                                            \
-    template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) >       \
-    struct name; /* forward declaration */                                      \
-                                                                                \
-    template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) >       \
-    struct BOOST_PP_CAT(name,Concept)                                           \
-      : name< BOOST_PP_SEQ_ENUM(params) >                                       \
-    {                                                                           \
-        /* at least 2.96 and 3.4.3 both need this */                            \
-        BOOST_PP_CAT(name,Concept)();                                           \
-    };                                                                          \
-                                                                                \
-    template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) >       \
-    struct name                                                                
-#else
-# define BOOST_concept(name, params)                                            \
-    template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) >       \
-    struct name; /* forward declaration */                                      \
-                                                                                \
-    template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) >       \
-    struct BOOST_PP_CAT(name,Concept)                                           \
-      : name< BOOST_PP_SEQ_ENUM(params) >                                       \
-    {                                                                           \
-    };                                                                          \
-                                                                                \
-    template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) >       \
-    struct name                                                                
-#endif
-    
-// Helper for BOOST_concept, above.
-# define BOOST_CONCEPT_typename(r, ignored, index, t) \
-    BOOST_PP_COMMA_IF(index) typename t
-
diff --git a/boost/concept/detail/concept_undef.hpp b/boost/concept/detail/concept_undef.hpp
deleted file mode 100644
index 713db89..0000000
--- a/boost/concept/detail/concept_undef.hpp
+++ /dev/null
@@ -1,5 +0,0 @@
-// Copyright David Abrahams 2006. Distributed under the Boost
-// Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-# undef BOOST_concept_typename
-# undef BOOST_concept
diff --git a/boost/concept/detail/general.hpp b/boost/concept/detail/general.hpp
deleted file mode 100644
index e3014c1..0000000
--- a/boost/concept/detail/general.hpp
+++ /dev/null
@@ -1,75 +0,0 @@
-// Copyright David Abrahams 2006. Distributed under the Boost
-// Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-#ifndef BOOST_CONCEPT_DETAIL_GENERAL_DWA2006429_HPP
-# define BOOST_CONCEPT_DETAIL_GENERAL_DWA2006429_HPP
-
-# include <boost/preprocessor/cat.hpp>
-# include <boost/concept/detail/backward_compatibility.hpp>
-
-# ifdef BOOST_OLD_CONCEPT_SUPPORT
-#  include <boost/concept/detail/has_constraints.hpp>
-#  include <boost/mpl/if.hpp>
-# endif
-
-// This implementation works on Comeau and GCC, all the way back to
-// 2.95
-namespace boost { namespace concepts {
-
-template <class ModelFn>
-struct requirement_;
-
-namespace detail
-{
-  template <void(*)()> struct instantiate {};
-}
-
-template <class Model>
-struct requirement
-{
-    static void failed() { ((Model*)0)->~Model(); }
-};
-
-struct failed {};
-
-template <class Model>
-struct requirement<failed ************ Model::************>
-{
-    static void failed() { ((Model*)0)->~Model(); }
-};
-
-# ifdef BOOST_OLD_CONCEPT_SUPPORT
-
-template <class Model>
-struct constraint
-{
-    static void failed() { ((Model*)0)->constraints(); }
-};
-  
-template <class Model>
-struct requirement_<void(*)(Model)>
-  : mpl::if_<
-        concepts::not_satisfied<Model>
-      , constraint<Model>
-      , requirement<failed ************ Model::************>
-    >::type
-{};
-  
-# else
-
-// For GCC-2.x, these can't have exactly the same name
-template <class Model>
-struct requirement_<void(*)(Model)>
-    : requirement<failed ************ Model::************>
-{};
-  
-# endif
-
-#  define BOOST_CONCEPT_ASSERT_FN( ModelFnPtr )             \
-    typedef ::boost::concepts::detail::instantiate<          \
-    &::boost::concepts::requirement_<ModelFnPtr>::failed>    \
-      BOOST_PP_CAT(boost_concept_check,__LINE__)
-
-}}
-
-#endif // BOOST_CONCEPT_DETAIL_GENERAL_DWA2006429_HPP
diff --git a/boost/concept/detail/has_constraints.hpp b/boost/concept/detail/has_constraints.hpp
deleted file mode 100644
index a309db3..0000000
--- a/boost/concept/detail/has_constraints.hpp
+++ /dev/null
@@ -1,50 +0,0 @@
-// Copyright David Abrahams 2006. Distributed under the Boost
-// Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-#ifndef BOOST_CONCEPT_DETAIL_HAS_CONSTRAINTS_DWA2006429_HPP
-# define BOOST_CONCEPT_DETAIL_HAS_CONSTRAINTS_DWA2006429_HPP
-
-# include <boost/mpl/bool.hpp>
-# include <boost/detail/workaround.hpp>
-# include <boost/concept/detail/backward_compatibility.hpp>
-
-namespace boost { namespace concepts {
-
-namespace detail
-{ 
-
-// Here we implement the metafunction that detects whether a
-// constraints metafunction exists
-  typedef char yes;
-  typedef char (&no)[2];
-
-  template <class Model, void (Model::*)()>
-  struct wrap_constraints {};
-    
-#if BOOST_WORKAROUND(__SUNPRO_CC, <= 0x580) || defined(__CUDACC__)
-  // Work around the following bogus error in Sun Studio 11, by
-  // turning off the has_constraints function entirely:
-  //    Error: complex expression not allowed in dependent template
-  //    argument expression
-  inline no has_constraints_(...);
-#else
-  template <class Model>
-  inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0);
-  inline no has_constraints_(...);
-#endif
-}
-
-// This would be called "detail::has_constraints," but it has a strong
-// tendency to show up in error messages.
-template <class Model>
-struct not_satisfied
-{
-    BOOST_STATIC_CONSTANT(
-        bool
-      , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) );
-    typedef mpl::bool_<value> type;
-};
-
-}} // namespace boost::concepts::detail
-
-#endif // BOOST_CONCEPT_DETAIL_HAS_CONSTRAINTS_DWA2006429_HPP
diff --git a/boost/concept/detail/msvc.hpp b/boost/concept/detail/msvc.hpp
deleted file mode 100644
index 9fbd250..0000000
--- a/boost/concept/detail/msvc.hpp
+++ /dev/null
@@ -1,114 +0,0 @@
-// Copyright David Abrahams 2006. Distributed under the Boost
-// Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-#ifndef BOOST_CONCEPT_CHECK_MSVC_DWA2006429_HPP
-# define BOOST_CONCEPT_CHECK_MSVC_DWA2006429_HPP
-
-# include <boost/preprocessor/cat.hpp>
-# include <boost/concept/detail/backward_compatibility.hpp>
-
-# ifdef BOOST_OLD_CONCEPT_SUPPORT
-#  include <boost/concept/detail/has_constraints.hpp>
-#  include <boost/mpl/if.hpp>
-# endif
-
-
-namespace boost { namespace concepts {
-
-
-template <class Model>
-struct check
-{
-    virtual void failed(Model* x)
-    {
-        x->~Model();
-    }
-};
-
-# ifndef BOOST_NO_PARTIAL_SPECIALIZATION
-struct failed {};
-template <class Model>
-struct check<failed ************ Model::************>
-{
-    virtual void failed(Model* x)
-    {
-        x->~Model();
-    }
-};
-# endif
-
-# ifdef BOOST_OLD_CONCEPT_SUPPORT
-  
-namespace detail
-{
-  // No need for a virtual function here, since evaluating
-  // not_satisfied below will have already instantiated the
-  // constraints() member.
-  struct constraint {};
-}
-
-template <class Model>
-struct require
-  : mpl::if_c<
-        not_satisfied<Model>::value
-      , detail::constraint
-# ifndef BOOST_NO_PARTIAL_SPECIALIZATION
-      , check<Model>
-# else
-      , check<failed ************ Model::************>
-# endif 
-        >::type
-{};
-      
-# else
-  
-template <class Model>
-struct require
-# ifndef BOOST_NO_PARTIAL_SPECIALIZATION
-    : check<Model>
-# else
-    : check<failed ************ Model::************>
-# endif 
-{};
-  
-# endif
-    
-# if BOOST_WORKAROUND(BOOST_MSVC, == 1310)
-
-//
-// The iterator library sees some really strange errors unless we
-// do things this way.
-//
-template <class Model>
-struct require<void(*)(Model)>
-{
-    virtual void failed(Model*)
-    {
-        require<Model>();
-    }
-};
-
-# define BOOST_CONCEPT_ASSERT_FN( ModelFnPtr )      \
-enum                                                \
-{                                                   \
-    BOOST_PP_CAT(boost_concept_check,__LINE__) =    \
-    sizeof(::boost::concepts::require<ModelFnPtr>)    \
-}
-  
-# else // Not vc-7.1
-  
-template <class Model>
-require<Model>
-require_(void(*)(Model));
-  
-# define BOOST_CONCEPT_ASSERT_FN( ModelFnPtr )          \
-enum                                                    \
-{                                                       \
-    BOOST_PP_CAT(boost_concept_check,__LINE__) =        \
-      sizeof(::boost::concepts::require_((ModelFnPtr)0)) \
-}
-  
-# endif
-}}
-
-#endif // BOOST_CONCEPT_CHECK_MSVC_DWA2006429_HPP
diff --git a/boost/concept/usage.hpp b/boost/concept/usage.hpp
deleted file mode 100644
index 21547c3..0000000
--- a/boost/concept/usage.hpp
+++ /dev/null
@@ -1,44 +0,0 @@
-// Copyright David Abrahams 2006. Distributed under the Boost
-// Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-#ifndef BOOST_CONCEPT_USAGE_DWA2006919_HPP
-# define BOOST_CONCEPT_USAGE_DWA2006919_HPP
-
-# include <boost/concept/assert.hpp>
-# include <boost/detail/workaround.hpp>
-# include <boost/concept/detail/backward_compatibility.hpp>
-
-namespace boost { namespace concepts { 
-
-# if BOOST_WORKAROUND(__GNUC__, == 2)
-
-#  define BOOST_CONCEPT_USAGE(model) ~model()
-
-# else 
-
-template <class Model>
-struct usage_requirements
-{
-    ~usage_requirements() { ((Model*)0)->~Model(); }
-};
-
-#  if BOOST_WORKAROUND(__GNUC__, <= 3)
-
-#   define BOOST_CONCEPT_USAGE(model)                                    \
-      model(); /* at least 2.96 and 3.4.3 both need this :( */           \
-      BOOST_CONCEPT_ASSERT((boost::concepts::usage_requirements<model>)); \
-      ~model()
-
-#  else
-
-#   define BOOST_CONCEPT_USAGE(model)                                    \
-      BOOST_CONCEPT_ASSERT((boost::concepts::usage_requirements<model>)); \
-      ~model()
-
-#  endif
-
-# endif 
-
-}} // namespace boost::concepts
-
-#endif // BOOST_CONCEPT_USAGE_DWA2006919_HPP
diff --git a/boost/concept_check.hpp b/boost/concept_check.hpp
deleted file mode 100644
index bf5a2af..0000000
--- a/boost/concept_check.hpp
+++ /dev/null
@@ -1,1083 +0,0 @@
-//
-// (C) Copyright Jeremy Siek 2000.
-// Copyright 2002 The Trustees of Indiana University.
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// Revision History:
-//   05 May   2001: Workarounds for HP aCC from Thomas Matelich. (Jeremy Siek)
-//   02 April 2001: Removed limits header altogether. (Jeremy Siek)
-//   01 April 2001: Modified to use new <boost/limits.hpp> header. (JMaddock)
-//
-
-// See http://www.boost.org/libs/concept_check for documentation.
-
-#ifndef BOOST_CONCEPT_CHECKS_HPP
-# define BOOST_CONCEPT_CHECKS_HPP
-
-# include <boost/concept/assert.hpp>
-
-# include <boost/iterator.hpp>
-# include <boost/type_traits/conversion_traits.hpp>
-# include <utility>
-# include <boost/type_traits/is_same.hpp>
-# include <boost/type_traits/is_void.hpp>
-# include <boost/mpl/assert.hpp>
-# include <boost/mpl/bool.hpp>
-# include <boost/detail/workaround.hpp>
-# include <boost/detail/iterator.hpp>
-
-# include <boost/concept/usage.hpp>
-# include <boost/concept/detail/concept_def.hpp>
-
-namespace boost
-{
-
-  //
-  // Backward compatibility
-  //
-
-  template <class Model>
-  inline void function_requires(Model* = 0)
-  {
-      BOOST_CONCEPT_ASSERT((Model));
-  }
-  template <class T> inline void ignore_unused_variable_warning(T const&) {}
-
-#  define BOOST_CLASS_REQUIRE(type_var, ns, concept)    \
-    BOOST_CONCEPT_ASSERT((ns::concept<type_var>))
-
-#  define BOOST_CLASS_REQUIRE2(type_var1, type_var2, ns, concept)   \
-    BOOST_CONCEPT_ASSERT((ns::concept<type_var1,type_var2>))
-
-#  define BOOST_CLASS_REQUIRE3(tv1, tv2, tv3, ns, concept)  \
-    BOOST_CONCEPT_ASSERT((ns::concept<tv1,tv2,tv3>))
-
-#  define BOOST_CLASS_REQUIRE4(tv1, tv2, tv3, tv4, ns, concept) \
-    BOOST_CONCEPT_ASSERT((ns::concept<tv1,tv2,tv3,tv4>))
-
-
-  //
-  // Begin concept definitions
-  //
-  BOOST_concept(Integer, (T))
-  {
-      BOOST_CONCEPT_USAGE(Integer)
-        {
-            x.error_type_must_be_an_integer_type();
-        }
-   private:
-      T x;
-  };
-
-  template <> struct Integer<char> {};
-  template <> struct Integer<signed char> {};
-  template <> struct Integer<unsigned char> {};
-  template <> struct Integer<short> {};
-  template <> struct Integer<unsigned short> {};
-  template <> struct Integer<int> {};
-  template <> struct Integer<unsigned int> {};
-  template <> struct Integer<long> {};
-  template <> struct Integer<unsigned long> {};
-# if defined(BOOST_HAS_LONG_LONG)
-  template <> struct Integer< ::boost::long_long_type> {};
-  template <> struct Integer< ::boost::ulong_long_type> {};
-# elif defined(BOOST_HAS_MS_INT64)
-  template <> struct Integer<__int64> {};
-  template <> struct Integer<unsigned __int64> {};
-# endif
-
-  BOOST_concept(SignedInteger,(T)) {
-    BOOST_CONCEPT_USAGE(SignedInteger) {
-      x.error_type_must_be_a_signed_integer_type();
-    }
-   private:
-    T x;
-  };
-  template <> struct SignedInteger<signed char> { };
-  template <> struct SignedInteger<short> {};
-  template <> struct SignedInteger<int> {};
-  template <> struct SignedInteger<long> {};
-# if defined(BOOST_HAS_LONG_LONG)
-  template <> struct SignedInteger< ::boost::long_long_type> {};
-# elif defined(BOOST_HAS_MS_INT64)
-  template <> struct SignedInteger<__int64> {};
-# endif
-
-  BOOST_concept(UnsignedInteger,(T)) {
-    BOOST_CONCEPT_USAGE(UnsignedInteger) {
-      x.error_type_must_be_an_unsigned_integer_type();
-    }
-   private:
-    T x;
-  };
-
-  template <> struct UnsignedInteger<unsigned char> {};
-  template <> struct UnsignedInteger<unsigned short> {};
-  template <> struct UnsignedInteger<unsigned int> {};
-  template <> struct UnsignedInteger<unsigned long> {};
-# if defined(BOOST_HAS_LONG_LONG)
-  template <> struct UnsignedInteger< ::boost::ulong_long_type> {};
-# elif defined(BOOST_HAS_MS_INT64)
-  template <> struct UnsignedInteger<unsigned __int64> {};
-# endif
-
-  //===========================================================================
-  // Basic Concepts
-
-  BOOST_concept(DefaultConstructible,(TT))
-  {
-    BOOST_CONCEPT_USAGE(DefaultConstructible) {
-      TT a;               // require default constructor
-      ignore_unused_variable_warning(a);
-    }
-  };
-
-  BOOST_concept(Assignable,(TT))
-  {
-    BOOST_CONCEPT_USAGE(Assignable) {
-#if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL
-      a = b;             // require assignment operator
-#endif
-      const_constraints(b);
-    }
-   private:
-    void const_constraints(const TT& x) {
-#if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL
-      a = x;              // const required for argument to assignment
-#else
-      ignore_unused_variable_warning(x);
-#endif
-    }
-   private:
-    TT a;
-    TT b;
-  };
-
-
-  BOOST_concept(CopyConstructible,(TT))
-  {
-    BOOST_CONCEPT_USAGE(CopyConstructible) {
-      TT a(b);            // require copy constructor
-      TT* ptr = &a;       // require address of operator
-      const_constraints(a);
-      ignore_unused_variable_warning(ptr);
-    }
-   private:
-    void const_constraints(const TT& a) {
-      TT c(a);            // require const copy constructor
-      const TT* ptr = &a; // require const address of operator
-      ignore_unused_variable_warning(c);
-      ignore_unused_variable_warning(ptr);
-    }
-    TT b;
-  };
-
-#if (defined _MSC_VER)
-# pragma warning( push )
-# pragma warning( disable : 4510 ) // default constructor could not be generated
-# pragma warning( disable : 4610 ) // object 'class' can never be instantiated - user-defined constructor required
-#endif
-  // The SGI STL version of Assignable requires copy constructor and operator=
-  BOOST_concept(SGIAssignable,(TT))
-  {
-    BOOST_CONCEPT_USAGE(SGIAssignable) {
-      TT c(a);
-#if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL
-      a = b;              // require assignment operator
-#endif
-      const_constraints(b);
-      ignore_unused_variable_warning(c);
-    }
-   private:
-    void const_constraints(const TT& x) {
-      TT c(x);
-#if !defined(_ITERATOR_) // back_insert_iterator broken for VC++ STL
-      a = x;              // const required for argument to assignment
-#endif
-      ignore_unused_variable_warning(c);
-    }
-    TT a;
-    TT b;
-  };
-#if (defined _MSC_VER)
-# pragma warning( pop )
-#endif
-
-  BOOST_concept(Convertible,(X)(Y))
-  {
-    BOOST_CONCEPT_USAGE(Convertible) {
-      Y y = x;
-      ignore_unused_variable_warning(y);
-    }
-   private:
-    X x;
-  };
-
-  // The C++ standard requirements for many concepts talk about return
-  // types that must be "convertible to bool".  The problem with this
-  // requirement is that it leaves the door open for evil proxies that
-  // define things like operator|| with strange return types.  Two
-  // possible solutions are:
-  // 1) require the return type to be exactly bool
-  // 2) stay with convertible to bool, and also
-  //    specify stuff about all the logical operators.
-  // For now we just test for convertible to bool.
-  template <class TT>
-  void require_boolean_expr(const TT& t) {
-    bool x = t;
-    ignore_unused_variable_warning(x);
-  }
-
-  BOOST_concept(EqualityComparable,(TT))
-  {
-    BOOST_CONCEPT_USAGE(EqualityComparable) {
-      require_boolean_expr(a == b);
-      require_boolean_expr(a != b);
-    }
-   private:
-    TT a, b;
-  };
-
-  BOOST_concept(LessThanComparable,(TT))
-  {
-    BOOST_CONCEPT_USAGE(LessThanComparable) {
-      require_boolean_expr(a < b);
-    }
-   private:
-    TT a, b;
-  };
-
-  // This is equivalent to SGI STL's LessThanComparable.
-  BOOST_concept(Comparable,(TT))
-  {
-    BOOST_CONCEPT_USAGE(Comparable) {
-      require_boolean_expr(a < b);
-      require_boolean_expr(a > b);
-      require_boolean_expr(a <= b);
-      require_boolean_expr(a >= b);
-    }
-   private:
-    TT a, b;
-  };
-
-#define BOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(OP,NAME)    \
-  BOOST_concept(NAME, (First)(Second))                          \
-  {                                                             \
-      BOOST_CONCEPT_USAGE(NAME) { (void)constraints_(); }                         \
-     private:                                                   \
-        bool constraints_() { return a OP b; }                  \
-        First a;                                                \
-        Second b;                                               \
-  }
-
-#define BOOST_DEFINE_BINARY_OPERATOR_CONSTRAINT(OP,NAME)    \
-  BOOST_concept(NAME, (Ret)(First)(Second))                 \
-  {                                                         \
-      BOOST_CONCEPT_USAGE(NAME) { (void)constraints_(); }                     \
-  private:                                                  \
-      Ret constraints_() { return a OP b; }                 \
-      First a;                                              \
-      Second b;                                             \
-  }
-
-  BOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(==, EqualOp);
-  BOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(!=, NotEqualOp);
-  BOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(<, LessThanOp);
-  BOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(<=, LessEqualOp);
-  BOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(>, GreaterThanOp);
-  BOOST_DEFINE_BINARY_PREDICATE_OP_CONSTRAINT(>=, GreaterEqualOp);
-
-  BOOST_DEFINE_BINARY_OPERATOR_CONSTRAINT(+, PlusOp);
-  BOOST_DEFINE_BINARY_OPERATOR_CONSTRAINT(*, TimesOp);
-  BOOST_DEFINE_BINARY_OPERATOR_CONSTRAINT(/, DivideOp);
-  BOOST_DEFINE_BINARY_OPERATOR_CONSTRAINT(-, SubtractOp);
-  BOOST_DEFINE_BINARY_OPERATOR_CONSTRAINT(%, ModOp);
-
-  //===========================================================================
-  // Function Object Concepts
-
-  BOOST_concept(Generator,(Func)(Return))
-  {
-      BOOST_CONCEPT_USAGE(Generator) { test(is_void<Return>()); }
-
-   private:
-      void test(boost::mpl::false_)
-      {
-          // Do we really want a reference here?
-          const Return& r = f();
-          ignore_unused_variable_warning(r);
-      }
-
-      void test(boost::mpl::true_)
-      {
-          f();
-      }
-
-      Func f;
-  };
-
-  BOOST_concept(UnaryFunction,(Func)(Return)(Arg))
-  {
-      BOOST_CONCEPT_USAGE(UnaryFunction) { test(is_void<Return>()); }
-
-   private:
-      void test(boost::mpl::false_)
-      {
-          f(arg);               // "priming the pump" this way keeps msvc6 happy (ICE)
-          Return r = f(arg);
-          ignore_unused_variable_warning(r);
-      }
-
-      void test(boost::mpl::true_)
-      {
-          f(arg);
-      }
-
-#if (BOOST_WORKAROUND(__GNUC__, BOOST_TESTED_AT(4) \
-                      && BOOST_WORKAROUND(__GNUC__, > 3)))
-      // Declare a dummy construktor to make gcc happy.
-      // It seems the compiler can not generate a sensible constructor when this is instantiated with a refence type.
-      // (warning: non-static reference "const double& boost::UnaryFunction<YourClassHere>::arg"
-      // in class without a constructor [-Wuninitialized])
-      UnaryFunction();
-#endif
-
-      Func f;
-      Arg arg;
-  };
-
-  BOOST_concept(BinaryFunction,(Func)(Return)(First)(Second))
-  {
-      BOOST_CONCEPT_USAGE(BinaryFunction) { test(is_void<Return>()); }
-   private:
-      void test(boost::mpl::false_)
-      {
-          f(first,second);
-          Return r = f(first, second); // require operator()
-          (void)r;
-      }
-
-      void test(boost::mpl::true_)
-      {
-          f(first,second);
-      }
-
-#if (BOOST_WORKAROUND(__GNUC__, BOOST_TESTED_AT(4) \
-                      && BOOST_WORKAROUND(__GNUC__, > 3)))
-      // Declare a dummy constructor to make gcc happy.
-      // It seems the compiler can not generate a sensible constructor when this is instantiated with a refence type.
-      // (warning: non-static reference "const double& boost::BinaryFunction<YourClassHere>::arg"
-      // in class without a constructor [-Wuninitialized])
-      BinaryFunction();
-#endif
-
-      Func f;
-      First first;
-      Second second;
-  };
-
-  BOOST_concept(UnaryPredicate,(Func)(Arg))
-  {
-    BOOST_CONCEPT_USAGE(UnaryPredicate) {
-      require_boolean_expr(f(arg)); // require operator() returning bool
-    }
-   private:
-#if (BOOST_WORKAROUND(__GNUC__, BOOST_TESTED_AT(4) \
-                      && BOOST_WORKAROUND(__GNUC__, > 3)))
-      // Declare a dummy constructor to make gcc happy.
-      // It seems the compiler can not generate a sensible constructor when this is instantiated with a refence type.
-      // (warning: non-static reference "const double& boost::UnaryPredicate<YourClassHere>::arg"
-      // in class without a constructor [-Wuninitialized])
-      UnaryPredicate();
-#endif
-
-    Func f;
-    Arg arg;
-  };
-
-  BOOST_concept(BinaryPredicate,(Func)(First)(Second))
-  {
-    BOOST_CONCEPT_USAGE(BinaryPredicate) {
-      require_boolean_expr(f(a, b)); // require operator() returning bool
-    }
-   private:
-#if (BOOST_WORKAROUND(__GNUC__, BOOST_TESTED_AT(4) \
-                      && BOOST_WORKAROUND(__GNUC__, > 3)))
-      // Declare a dummy constructor to make gcc happy.
-      // It seems the compiler can not generate a sensible constructor when this is instantiated with a refence type.
-      // (warning: non-static reference "const double& boost::BinaryPredicate<YourClassHere>::arg"
-      // in class without a constructor [-Wuninitialized])
-      BinaryPredicate();
-#endif
-    Func f;
-    First a;
-    Second b;
-  };
-
-  // use this when functor is used inside a container class like std::set
-  BOOST_concept(Const_BinaryPredicate,(Func)(First)(Second))
-    : BinaryPredicate<Func, First, Second>
-  {
-    BOOST_CONCEPT_USAGE(Const_BinaryPredicate) {
-      const_constraints(f);
-    }
-   private:
-    void const_constraints(const Func& fun) {
-      // operator() must be a const member function
-      require_boolean_expr(fun(a, b));
-    }
-#if (BOOST_WORKAROUND(__GNUC__, BOOST_TESTED_AT(4) \
-                      && BOOST_WORKAROUND(__GNUC__, > 3)))
-      // Declare a dummy constructor to make gcc happy.
-      // It seems the compiler can not generate a sensible constructor when this is instantiated with a refence type.
-      // (warning: non-static reference "const double& boost::Const_BinaryPredicate<YourClassHere>::arg"
-      // in class without a constructor [-Wuninitialized])
-      Const_BinaryPredicate();
-#endif
-
-    Func f;
-    First a;
-    Second b;
-  };
-
-  BOOST_concept(AdaptableGenerator,(Func)(Return))
-    : Generator<Func, typename Func::result_type>
-  {
-      typedef typename Func::result_type result_type;
-
-      BOOST_CONCEPT_USAGE(AdaptableGenerator)
-      {
-          BOOST_CONCEPT_ASSERT((Convertible<result_type, Return>));
-      }
-  };
-
-  BOOST_concept(AdaptableUnaryFunction,(Func)(Return)(Arg))
-    : UnaryFunction<Func, typename Func::result_type, typename Func::argument_type>
-  {
-      typedef typename Func::argument_type argument_type;
-      typedef typename Func::result_type result_type;
-
-      ~AdaptableUnaryFunction()
-      {
-          BOOST_CONCEPT_ASSERT((Convertible<result_type, Return>));
-          BOOST_CONCEPT_ASSERT((Convertible<Arg, argument_type>));
-      }
-  };
-
-  BOOST_concept(AdaptableBinaryFunction,(Func)(Return)(First)(Second))
-    : BinaryFunction<
-          Func
-        , typename Func::result_type
-        , typename Func::first_argument_type
-        , typename Func::second_argument_type
-      >
-  {
-      typedef typename Func::first_argument_type first_argument_type;
-      typedef typename Func::second_argument_type second_argument_type;
-      typedef typename Func::result_type result_type;
-
-      ~AdaptableBinaryFunction()
-      {
-          BOOST_CONCEPT_ASSERT((Convertible<result_type, Return>));
-          BOOST_CONCEPT_ASSERT((Convertible<First, first_argument_type>));
-          BOOST_CONCEPT_ASSERT((Convertible<Second, second_argument_type>));
-      }
-  };
-
-  BOOST_concept(AdaptablePredicate,(Func)(Arg))
-    : UnaryPredicate<Func, Arg>
-    , AdaptableUnaryFunction<Func, bool, Arg>
-  {
-  };
-
-  BOOST_concept(AdaptableBinaryPredicate,(Func)(First)(Second))
-    : BinaryPredicate<Func, First, Second>
-    , AdaptableBinaryFunction<Func, bool, First, Second>
-  {
-  };
-
-  //===========================================================================
-  // Iterator Concepts
-
-  BOOST_concept(InputIterator,(TT))
-    : Assignable<TT>
-    , EqualityComparable<TT>
-  {
-      typedef typename boost::detail::iterator_traits<TT>::value_type value_type;
-      typedef typename boost::detail::iterator_traits<TT>::difference_type difference_type;
-      typedef typename boost::detail::iterator_traits<TT>::reference reference;
-      typedef typename boost::detail::iterator_traits<TT>::pointer pointer;
-      typedef typename boost::detail::iterator_traits<TT>::iterator_category iterator_category;
-
-      BOOST_CONCEPT_USAGE(InputIterator)
-      {
-        BOOST_CONCEPT_ASSERT((SignedInteger<difference_type>));
-        BOOST_CONCEPT_ASSERT((Convertible<iterator_category, std::input_iterator_tag>));
-
-        TT j(i);
-        (void)*i;           // require dereference operator
-        ++j;                // require preincrement operator
-        i++;                // require postincrement operator
-      }
-   private:
-    TT i;
-  };
-
-  BOOST_concept(OutputIterator,(TT)(ValueT))
-    : Assignable<TT>
-  {
-    BOOST_CONCEPT_USAGE(OutputIterator) {
-
-      ++i;                // require preincrement operator
-      i++;                // require postincrement operator
-      *i++ = t;           // require postincrement and assignment
-    }
-   private:
-    TT i, j;
-    ValueT t;
-  };
-
-  BOOST_concept(ForwardIterator,(TT))
-    : InputIterator<TT>
-  {
-      BOOST_CONCEPT_USAGE(ForwardIterator)
-      {
-          BOOST_CONCEPT_ASSERT((Convertible<
-              BOOST_DEDUCED_TYPENAME ForwardIterator::iterator_category
-            , std::forward_iterator_tag
-          >));
-
-          typename InputIterator<TT>::reference r = *i;
-          ignore_unused_variable_warning(r);
-      }
-
-   private:
-      TT i;
-  };
-
-  BOOST_concept(Mutable_ForwardIterator,(TT))
-    : ForwardIterator<TT>
-  {
-      BOOST_CONCEPT_USAGE(Mutable_ForwardIterator) {
-        *i++ = *i;         // require postincrement and assignment
-      }
-   private:
-      TT i;
-  };
-
-  BOOST_concept(BidirectionalIterator,(TT))
-    : ForwardIterator<TT>
-  {
-      BOOST_CONCEPT_USAGE(BidirectionalIterator)
-      {
-          BOOST_CONCEPT_ASSERT((Convertible<
-              BOOST_DEDUCED_TYPENAME BidirectionalIterator::iterator_category
-            , std::bidirectional_iterator_tag
-          >));
-
-          --i;                // require predecrement operator
-          i--;                // require postdecrement operator
-      }
-   private:
-      TT i;
-  };
-
-  BOOST_concept(Mutable_BidirectionalIterator,(TT))
-    : BidirectionalIterator<TT>
-    , Mutable_ForwardIterator<TT>
-  {
-      BOOST_CONCEPT_USAGE(Mutable_BidirectionalIterator)
-      {
-          *i-- = *i;                  // require postdecrement and assignment
-      }
-   private:
-      TT i;
-  };
-
-  BOOST_concept(RandomAccessIterator,(TT))
-    : BidirectionalIterator<TT>
-    , Comparable<TT>
-  {
-      BOOST_CONCEPT_USAGE(RandomAccessIterator)
-      {
-          BOOST_CONCEPT_ASSERT((Convertible<
-              BOOST_DEDUCED_TYPENAME BidirectionalIterator<TT>::iterator_category
-            , std::random_access_iterator_tag
-          >));
-
-          i += n;             // require assignment addition operator
-          i = i + n; i = n + i; // require addition with difference type
-          i -= n;             // require assignment subtraction operator
-          i = i - n;                  // require subtraction with difference type
-          n = i - j;                  // require difference operator
-          (void)i[n];                 // require element access operator
-      }
-
-   private:
-    TT a, b;
-    TT i, j;
-      typename boost::detail::iterator_traits<TT>::difference_type n;
-  };
-
-  BOOST_concept(Mutable_RandomAccessIterator,(TT))
-    : RandomAccessIterator<TT>
-    , Mutable_BidirectionalIterator<TT>
-  {
-      BOOST_CONCEPT_USAGE(Mutable_RandomAccessIterator)
-      {
-          i[n] = *i;                  // require element access and assignment
-      }
-   private:
-    TT i;
-    typename boost::detail::iterator_traits<TT>::difference_type n;
-  };
-
-  //===========================================================================
-  // Container s
-
-  BOOST_concept(Container,(C))
-    : Assignable<C>
-  {
-    typedef typename C::value_type value_type;
-    typedef typename C::difference_type difference_type;
-    typedef typename C::size_type size_type;
-    typedef typename C::const_reference const_reference;
-    typedef typename C::const_pointer const_pointer;
-    typedef typename C::const_iterator const_iterator;
-
-      BOOST_CONCEPT_USAGE(Container)
-      {
-          BOOST_CONCEPT_ASSERT((InputIterator<const_iterator>));
-          const_constraints(c);
-      }
-
-   private:
-      void const_constraints(const C& cc) {
-          i = cc.begin();
-          i = cc.end();
-          n = cc.size();
-          n = cc.max_size();
-          b = cc.empty();
-      }
-      C c;
-      bool b;
-      const_iterator i;
-      size_type n;
-  };
-
-  BOOST_concept(Mutable_Container,(C))
-    : Container<C>
-  {
-      typedef typename C::reference reference;
-      typedef typename C::iterator iterator;
-      typedef typename C::pointer pointer;
-
-      BOOST_CONCEPT_USAGE(Mutable_Container)
-      {
-          BOOST_CONCEPT_ASSERT((
-               Assignable<typename Mutable_Container::value_type>));
-
-          BOOST_CONCEPT_ASSERT((InputIterator<iterator>));
-
-          i = c.begin();
-          i = c.end();
-          c.swap(c2);
-      }
-
-   private:
-      iterator i;
-      C c, c2;
-  };
-
-  BOOST_concept(ForwardContainer,(C))
-    : Container<C>
-  {
-      BOOST_CONCEPT_USAGE(ForwardContainer)
-      {
-          BOOST_CONCEPT_ASSERT((
-               ForwardIterator<
-                    typename ForwardContainer::const_iterator
-               >));
-      }
-  };
-
-  BOOST_concept(Mutable_ForwardContainer,(C))
-    : ForwardContainer<C>
-    , Mutable_Container<C>
-  {
-      BOOST_CONCEPT_USAGE(Mutable_ForwardContainer)
-      {
-          BOOST_CONCEPT_ASSERT((
-               Mutable_ForwardIterator<
-                   typename Mutable_ForwardContainer::iterator
-               >));
-      }
-  };
-
-  BOOST_concept(ReversibleContainer,(C))
-    : ForwardContainer<C>
-  {
-      typedef typename
-        C::const_reverse_iterator
-      const_reverse_iterator;
-
-      BOOST_CONCEPT_USAGE(ReversibleContainer)
-      {
-          BOOST_CONCEPT_ASSERT((
-              BidirectionalIterator<
-                  typename ReversibleContainer::const_iterator>));
-
-          BOOST_CONCEPT_ASSERT((BidirectionalIterator<const_reverse_iterator>));
-
-          const_constraints(c);
-      }
-   private:
-      void const_constraints(const C& cc)
-      {
-          const_reverse_iterator i = cc.rbegin();
-          i = cc.rend();
-      }
-      C c;
-  };
-
-  BOOST_concept(Mutable_ReversibleContainer,(C))
-    : Mutable_ForwardContainer<C>
-    , ReversibleContainer<C>
-  {
-      typedef typename C::reverse_iterator reverse_iterator;
-
-      BOOST_CONCEPT_USAGE(Mutable_ReversibleContainer)
-      {
-          typedef typename Mutable_ForwardContainer<C>::iterator iterator;
-          BOOST_CONCEPT_ASSERT((Mutable_BidirectionalIterator<iterator>));
-          BOOST_CONCEPT_ASSERT((Mutable_BidirectionalIterator<reverse_iterator>));
-
-          reverse_iterator i = c.rbegin();
-          i = c.rend();
-      }
-   private:
-      C c;
-  };
-
-  BOOST_concept(RandomAccessContainer,(C))
-    : ReversibleContainer<C>
-  {
-      typedef typename C::size_type size_type;
-      typedef typename C::const_reference const_reference;
-
-      BOOST_CONCEPT_USAGE(RandomAccessContainer)
-      {
-          BOOST_CONCEPT_ASSERT((
-              RandomAccessIterator<
-                  typename RandomAccessContainer::const_iterator
-              >));
-
-          const_constraints(c);
-      }
-   private:
-      void const_constraints(const C& cc)
-      {
-          const_reference r = cc[n];
-          ignore_unused_variable_warning(r);
-      }
-
-      C c;
-      size_type n;
-  };
-
-  BOOST_concept(Mutable_RandomAccessContainer,(C))
-    : Mutable_ReversibleContainer<C>
-    , RandomAccessContainer<C>
-  {
-   private:
-      typedef Mutable_RandomAccessContainer self;
-   public:
-      BOOST_CONCEPT_USAGE(Mutable_RandomAccessContainer)
-      {
-          BOOST_CONCEPT_ASSERT((Mutable_RandomAccessIterator<typename self::iterator>));
-          BOOST_CONCEPT_ASSERT((Mutable_RandomAccessIterator<typename self::reverse_iterator>));
-
-          typename self::reference r = c[i];
-          ignore_unused_variable_warning(r);
-      }
-
-   private:
-      typename Mutable_ReversibleContainer<C>::size_type i;
-      C c;
-  };
-
-  // A Sequence is inherently mutable
-  BOOST_concept(Sequence,(S))
-    : Mutable_ForwardContainer<S>
-      // Matt Austern's book puts DefaultConstructible here, the C++
-      // standard places it in Container --JGS
-      // ... so why aren't we following the standard?  --DWA
-    , DefaultConstructible<S>
-  {
-      BOOST_CONCEPT_USAGE(Sequence)
-      {
-          S
-              c(n),
-              c2(n, t),
-              c3(first, last);
-
-          c.insert(p, t);
-          c.insert(p, n, t);
-          c.insert(p, first, last);
-
-          c.erase(p);
-          c.erase(p, q);
-
-          typename Sequence::reference r = c.front();
-
-          ignore_unused_variable_warning(c);
-          ignore_unused_variable_warning(c2);
-          ignore_unused_variable_warning(c3);
-          ignore_unused_variable_warning(r);
-          const_constraints(c);
-      }
-   private:
-      void const_constraints(const S& c) {
-          typename Sequence::const_reference r = c.front();
-          ignore_unused_variable_warning(r);
-      }
-
-      typename S::value_type t;
-      typename S::size_type n;
-      typename S::value_type* first, *last;
-      typename S::iterator p, q;
-  };
-
-  BOOST_concept(FrontInsertionSequence,(S))
-    : Sequence<S>
-  {
-      BOOST_CONCEPT_USAGE(FrontInsertionSequence)
-      {
-          c.push_front(t);
-          c.pop_front();
-      }
-   private:
-      S c;
-      typename S::value_type t;
-  };
-
-  BOOST_concept(BackInsertionSequence,(S))
-    : Sequence<S>
-  {
-      BOOST_CONCEPT_USAGE(BackInsertionSequence)
-      {
-          c.push_back(t);
-          c.pop_back();
-          typename BackInsertionSequence::reference r = c.back();
-          ignore_unused_variable_warning(r);
-          const_constraints(c);
-      }
-   private:
-      void const_constraints(const S& cc) {
-          typename BackInsertionSequence::const_reference
-              r = cc.back();
-          ignore_unused_variable_warning(r);
-      };
-      S c;
-      typename S::value_type t;
-  };
-
-  BOOST_concept(AssociativeContainer,(C))
-    : ForwardContainer<C>
-    , DefaultConstructible<C>
-  {
-      typedef typename C::key_type key_type;
-      typedef typename C::key_compare key_compare;
-      typedef typename C::value_compare value_compare;
-      typedef typename C::iterator iterator;
-
-      BOOST_CONCEPT_USAGE(AssociativeContainer)
-      {
-          i = c.find(k);
-          r = c.equal_range(k);
-          c.erase(k);
-          c.erase(i);
-          c.erase(r.first, r.second);
-          const_constraints(c);
-          BOOST_CONCEPT_ASSERT((BinaryPredicate<key_compare,key_type,key_type>));
-
-          typedef typename AssociativeContainer::value_type value_type_;
-          BOOST_CONCEPT_ASSERT((BinaryPredicate<value_compare,value_type_,value_type_>));
-      }
-
-      // Redundant with the base concept, but it helps below.
-      typedef typename C::const_iterator const_iterator;
-   private:
-      void const_constraints(const C& cc)
-      {
-          ci = cc.find(k);
-          n = cc.count(k);
-          cr = cc.equal_range(k);
-      }
-
-      C c;
-      iterator i;
-      std::pair<iterator,iterator> r;
-      const_iterator ci;
-      std::pair<const_iterator,const_iterator> cr;
-      typename C::key_type k;
-      typename C::size_type n;
-  };
-
-  BOOST_concept(UniqueAssociativeContainer,(C))
-    : AssociativeContainer<C>
-  {
-      BOOST_CONCEPT_USAGE(UniqueAssociativeContainer)
-      {
-          C c(first, last);
-
-          pos_flag = c.insert(t);
-          c.insert(first, last);
-
-          ignore_unused_variable_warning(c);
-      }
-   private:
-      std::pair<typename C::iterator, bool> pos_flag;
-      typename C::value_type t;
-      typename C::value_type* first, *last;
-  };
-
-  BOOST_concept(MultipleAssociativeContainer,(C))
-    : AssociativeContainer<C>
-  {
-      BOOST_CONCEPT_USAGE(MultipleAssociativeContainer)
-      {
-          C c(first, last);
-
-          pos = c.insert(t);
-          c.insert(first, last);
-
-          ignore_unused_variable_warning(c);
-          ignore_unused_variable_warning(pos);
-      }
-   private:
-      typename C::iterator pos;
-      typename C::value_type t;
-      typename C::value_type* first, *last;
-  };
-
-  BOOST_concept(SimpleAssociativeContainer,(C))
-    : AssociativeContainer<C>
-  {
-      BOOST_CONCEPT_USAGE(SimpleAssociativeContainer)
-      {
-          typedef typename C::key_type key_type;
-          typedef typename C::value_type value_type;
-          BOOST_MPL_ASSERT((boost::is_same<key_type,value_type>));
-      }
-  };
-
-  BOOST_concept(PairAssociativeContainer,(C))
-    : AssociativeContainer<C>
-  {
-      BOOST_CONCEPT_USAGE(PairAssociativeContainer)
-      {
-          typedef typename C::key_type key_type;
-          typedef typename C::value_type value_type;
-          typedef typename C::mapped_type mapped_type;
-          typedef std::pair<const key_type, mapped_type> required_value_type;
-          BOOST_MPL_ASSERT((boost::is_same<value_type,required_value_type>));
-      }
-  };
-
-  BOOST_concept(SortedAssociativeContainer,(C))
-    : AssociativeContainer<C>
-    , ReversibleContainer<C>
-  {
-      BOOST_CONCEPT_USAGE(SortedAssociativeContainer)
-      {
-          C
-              c(kc),
-              c2(first, last),
-              c3(first, last, kc);
-
-          p = c.upper_bound(k);
-          p = c.lower_bound(k);
-          r = c.equal_range(k);
-
-          c.insert(p, t);
-
-          ignore_unused_variable_warning(c);
-          ignore_unused_variable_warning(c2);
-          ignore_unused_variable_warning(c3);
-          const_constraints(c);
-      }
-
-      void const_constraints(const C& c)
-      {
-          kc = c.key_comp();
-          vc = c.value_comp();
-
-          cp = c.upper_bound(k);
-          cp = c.lower_bound(k);
-          cr = c.equal_range(k);
-      }
-
-   private:
-      typename C::key_compare kc;
-      typename C::value_compare vc;
-      typename C::value_type t;
-      typename C::key_type k;
-      typedef typename C::iterator iterator;
-      typedef typename C::const_iterator const_iterator;
-
-      typedef SortedAssociativeContainer self;
-      iterator p;
-      const_iterator cp;
-      std::pair<typename self::iterator,typename self::iterator> r;
-      std::pair<typename self::const_iterator,typename self::const_iterator> cr;
-      typename C::value_type* first, *last;
-  };
-
-  // HashedAssociativeContainer
-
-  BOOST_concept(Collection,(C))
-  {
-      BOOST_CONCEPT_USAGE(Collection)
-      {
-        boost::function_requires<boost::InputIteratorConcept<iterator> >();
-        boost::function_requires<boost::InputIteratorConcept<const_iterator> >();
-        boost::function_requires<boost::CopyConstructibleConcept<value_type> >();
-        const_constraints(c);
-        i = c.begin();
-        i = c.end();
-        c.swap(c);
-      }
-
-      void const_constraints(const C& cc) {
-        ci = cc.begin();
-        ci = cc.end();
-        n = cc.size();
-        b = cc.empty();
-      }
-
-    private:
-      typedef typename C::value_type value_type;
-      typedef typename C::iterator iterator;
-      typedef typename C::const_iterator const_iterator;
-      typedef typename C::reference reference;
-      typedef typename C::const_reference const_reference;
-      // typedef typename C::pointer pointer;
-      typedef typename C::difference_type difference_type;
-      typedef typename C::size_type size_type;
-
-      C c;
-      bool b;
-      iterator i;
-      const_iterator ci;
-      size_type n;
-  };
-} // namespace boost
-
-# include <boost/concept/detail/concept_undef.hpp>
-
-#endif // BOOST_CONCEPT_CHECKS_HPP
-
diff --git a/boost/config.hpp b/boost/config.hpp
deleted file mode 100644
index 6ec3645..0000000
--- a/boost/config.hpp
+++ /dev/null
@@ -1,63 +0,0 @@
-//  Boost config.hpp configuration header file  ------------------------------//
-
-//  (C) Copyright John Maddock 2002.
-//  Use, modification and distribution are subject to the 
-//  Boost Software License, Version 1.0. (See accompanying file 
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org/libs/config for most recent version.
-
-//  Boost config.hpp policy and rationale documentation has been moved to
-//  http://www.boost.org/libs/config
-//
-//  CAUTION: This file is intended to be completely stable -
-//           DO NOT MODIFY THIS FILE!
-//
-
-#ifndef BOOST_CONFIG_HPP
-#define BOOST_CONFIG_HPP
-
-// if we don't have a user config, then use the default location:
-#if !defined(BOOST_USER_CONFIG) && !defined(BOOST_NO_USER_CONFIG)
-#  define BOOST_USER_CONFIG <boost/config/user.hpp>
-#endif
-// include it first:
-#ifdef BOOST_USER_CONFIG
-#  include BOOST_USER_CONFIG
-#endif
-
-// if we don't have a compiler config set, try and find one:
-#if !defined(BOOST_COMPILER_CONFIG) && !defined(BOOST_NO_COMPILER_CONFIG) && !defined(BOOST_NO_CONFIG)
-#  include <boost/config/select_compiler_config.hpp>
-#endif
-// if we have a compiler config, include it now:
-#ifdef BOOST_COMPILER_CONFIG
-#  include BOOST_COMPILER_CONFIG
-#endif
-
-// if we don't have a std library config set, try and find one:
-#if !defined(BOOST_STDLIB_CONFIG) && !defined(BOOST_NO_STDLIB_CONFIG) && !defined(BOOST_NO_CONFIG) && defined(__cplusplus)
-#  include <boost/config/select_stdlib_config.hpp>
-#endif
-// if we have a std library config, include it now:
-#ifdef BOOST_STDLIB_CONFIG
-#  include BOOST_STDLIB_CONFIG
-#endif
-
-// if we don't have a platform config set, try and find one:
-#if !defined(BOOST_PLATFORM_CONFIG) && !defined(BOOST_NO_PLATFORM_CONFIG) && !defined(BOOST_NO_CONFIG)
-#  include <boost/config/select_platform_config.hpp>
-#endif
-// if we have a platform config, include it now:
-#ifdef BOOST_PLATFORM_CONFIG
-#  include BOOST_PLATFORM_CONFIG
-#endif
-
-// get config suffix code:
-#include <boost/config/suffix.hpp>
-
-#ifdef BOOST_HAS_PRAGMA_ONCE
-#pragma once
-#endif
-
-#endif  // BOOST_CONFIG_HPP
diff --git a/boost/config/abi/borland_prefix.hpp b/boost/config/abi/borland_prefix.hpp
deleted file mode 100644
index 3a0e5ae..0000000
--- a/boost/config/abi/borland_prefix.hpp
+++ /dev/null
@@ -1,27 +0,0 @@
-//  (C) Copyright John Maddock 2003. 
-//  Use, modification and distribution are subject to the 
-//  Boost Software License, Version 1.0. (See accompanying file 
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  for C++ Builder the following options effect the ABI:
-//
-//  -b (on or off - effect emum sizes)
-//  -Vx  (on or off - empty members)
-//  -Ve (on or off - empty base classes)
-//  -aX (alignment - 5 options).
-//  -pX (Calling convention - 4 options)
-//  -VmX (member pointer size and layout - 5 options)
-//  -VC (on or off, changes name mangling)
-//  -Vl (on or off, changes struct layout).
-
-//  In addition the following warnings are sufficiently annoying (and
-//  unfixable) to have them turned off by default:
-//
-//  8027 - functions containing [for|while] loops are not expanded inline
-//  8026 - functions taking class by value arguments are not expanded inline
-
-#pragma nopushoptwarn
-#  pragma option push -a8 -Vx- -Ve- -b- -pc -Vmv -VC- -Vl- -w-8027 -w-8026
-
-
-
diff --git a/boost/config/abi/borland_suffix.hpp b/boost/config/abi/borland_suffix.hpp
deleted file mode 100644
index 940535f..0000000
--- a/boost/config/abi/borland_suffix.hpp
+++ /dev/null
@@ -1,12 +0,0 @@
-//  (C) Copyright John Maddock 2003. 
-//  Use, modification and distribution are subject to the 
-//  Boost Software License, Version 1.0. (See accompanying file 
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#  pragma option pop
-#pragma nopushoptwarn
-
-
-
-
-
diff --git a/boost/config/abi/msvc_prefix.hpp b/boost/config/abi/msvc_prefix.hpp
deleted file mode 100644
index 97f06cd..0000000
--- a/boost/config/abi/msvc_prefix.hpp
+++ /dev/null
@@ -1,22 +0,0 @@
-//  (C) Copyright John Maddock 2003. 
-//  Use, modification and distribution are subject to the 
-//  Boost Software License, Version 1.0. (See accompanying file 
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//
-// Boost binaries are built with the compiler's default ABI settings,
-// if the user changes their default alignment in the VS IDE then their
-// code will no longer be binary compatible with the bjam built binaries
-// unless this header is included to force Boost code into a consistent ABI.
-//
-// Note that inclusion of this header is only necessary for libraries with 
-// separate source, header only libraries DO NOT need this as long as all
-// translation units are built with the same options.
-//
-#if defined(_M_X64)
-#  pragma pack(push,16)
-#else
-#  pragma pack(push,8)
-#endif
-
-
diff --git a/boost/config/abi/msvc_suffix.hpp b/boost/config/abi/msvc_suffix.hpp
deleted file mode 100644
index a64d783..0000000
--- a/boost/config/abi/msvc_suffix.hpp
+++ /dev/null
@@ -1,8 +0,0 @@
-//  (C) Copyright John Maddock 2003. 
-//  Use, modification and distribution are subject to the 
-//  Boost Software License, Version 1.0. (See accompanying file 
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#pragma pack(pop)
-
-
diff --git a/boost/config/abi_prefix.hpp b/boost/config/abi_prefix.hpp
deleted file mode 100644
index 3b13474..0000000
--- a/boost/config/abi_prefix.hpp
+++ /dev/null
@@ -1,25 +0,0 @@
-//  abi_prefix header  -------------------------------------------------------//
-
-// (c) Copyright John Maddock 2003
-   
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#ifndef BOOST_CONFIG_ABI_PREFIX_HPP
-# define BOOST_CONFIG_ABI_PREFIX_HPP
-#else
-# error double inclusion of header boost/config/abi_prefix.hpp is an error
-#endif
-
-#include <boost/config.hpp>
-
-// this must occur after all other includes and before any code appears:
-#ifdef BOOST_HAS_ABI_HEADERS
-#  include BOOST_ABI_PREFIX
-#endif
-
-#if defined( __BORLANDC__ )
-#pragma nopushoptwarn
-#endif
-
diff --git a/boost/config/abi_suffix.hpp b/boost/config/abi_suffix.hpp
deleted file mode 100644
index 9391616..0000000
--- a/boost/config/abi_suffix.hpp
+++ /dev/null
@@ -1,27 +0,0 @@
-//  abi_sufffix header  -------------------------------------------------------//
-
-// (c) Copyright John Maddock 2003
-   
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-// This header should be #included AFTER code that was preceded by a #include
-// <boost/config/abi_prefix.hpp>.
-
-#ifndef BOOST_CONFIG_ABI_PREFIX_HPP
-# error Header boost/config/abi_suffix.hpp must only be used after boost/config/abi_prefix.hpp
-#else
-# undef BOOST_CONFIG_ABI_PREFIX_HPP
-#endif
-
-// the suffix header occurs after all of our code:
-#ifdef BOOST_HAS_ABI_HEADERS
-#  include BOOST_ABI_SUFFIX
-#endif
-
-#if defined( __BORLANDC__ )
-#pragma nopushoptwarn
-#endif
-
-
diff --git a/boost/config/auto_link.hpp b/boost/config/auto_link.hpp
deleted file mode 100644
index 13cbad4..0000000
--- a/boost/config/auto_link.hpp
+++ /dev/null
@@ -1,429 +0,0 @@
-//  (C) Copyright John Maddock 2003.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
- /*
-  *   LOCATION:    see http://www.boost.org for most recent version.
-  *   FILE         auto_link.hpp
-  *   VERSION      see <boost/version.hpp>
-  *   DESCRIPTION: Automatic library inclusion for Borland/Microsoft compilers.
-  */
-
-/*************************************************************************
-
-USAGE:
-~~~~~~
-
-Before including this header you must define one or more of define the following macros:
-
-BOOST_LIB_NAME:           Required: A string containing the basename of the library,
-                          for example boost_regex.
-BOOST_LIB_TOOLSET:        Optional: the base name of the toolset.
-BOOST_DYN_LINK:           Optional: when set link to dll rather than static library.
-BOOST_LIB_DIAGNOSTIC:     Optional: when set the header will print out the name
-                          of the library selected (useful for debugging).
-BOOST_AUTO_LINK_NOMANGLE: Specifies that we should link to BOOST_LIB_NAME.lib,
-                          rather than a mangled-name version.
-BOOST_AUTO_LINK_TAGGED:   Specifies that we link to libraries built with the --layout=tagged option.
-                          This is essentially the same as the default name-mangled version, but without
-                          the compiler name and version, or the Boost version.  Just the build options.
-
-These macros will be undef'ed at the end of the header, further this header
-has no include guards - so be sure to include it only once from your library!
-
-Algorithm:
-~~~~~~~~~~
-
-Libraries for Borland and Microsoft compilers are automatically
-selected here, the name of the lib is selected according to the following
-formula:
-
-BOOST_LIB_PREFIX
-   + BOOST_LIB_NAME
-   + "_"
-   + BOOST_LIB_TOOLSET
-   + BOOST_LIB_THREAD_OPT
-   + BOOST_LIB_RT_OPT
-   "-"
-   + BOOST_LIB_VERSION
-
-These are defined as:
-
-BOOST_LIB_PREFIX:     "lib" for static libraries otherwise "".
-
-BOOST_LIB_NAME:       The base name of the lib ( for example boost_regex).
-
-BOOST_LIB_TOOLSET:    The compiler toolset name (vc6, vc7, bcb5 etc).
-
-BOOST_LIB_THREAD_OPT: "-mt" for multithread builds, otherwise nothing.
-
-BOOST_LIB_RT_OPT:     A suffix that indicates the runtime library used,
-                      contains one or more of the following letters after
-                      a hyphen:
-
-                      s      static runtime (dynamic if not present).
-                      g      debug/diagnostic runtime (release if not present).
-                      y      Python debug/diagnostic runtime (release if not present).
-                      d      debug build (release if not present).
-                      p      STLport build.
-                      n      STLport build without its IOStreams.
-
-BOOST_LIB_VERSION:    The Boost version, in the form x_y, for Boost version x.y.
-
-
-***************************************************************************/
-
-#ifdef __cplusplus
-#  ifndef BOOST_CONFIG_HPP
-#     include <boost/config.hpp>
-#  endif
-#elif defined(_MSC_VER) && !defined(__MWERKS__) && !defined(__EDG_VERSION__)
-//
-// C language compatability (no, honestly)
-//
-#  define BOOST_MSVC _MSC_VER
-#  define BOOST_STRINGIZE(X) BOOST_DO_STRINGIZE(X)
-#  define BOOST_DO_STRINGIZE(X) #X
-#endif
-//
-// Only include what follows for known and supported compilers:
-//
-#if defined(BOOST_MSVC) \
-    || defined(__BORLANDC__) \
-    || (defined(__MWERKS__) && defined(_WIN32) && (__MWERKS__ >= 0x3000)) \
-    || (defined(__ICL) && defined(_MSC_EXTENSIONS) && (_MSC_VER >= 1200))
-
-#ifndef BOOST_VERSION_HPP
-#  include <boost/version.hpp>
-#endif
-
-#ifndef BOOST_LIB_NAME
-#  error "Macro BOOST_LIB_NAME not set (internal error)"
-#endif
-
-//
-// error check:
-//
-#if defined(__MSVC_RUNTIME_CHECKS) && !defined(_DEBUG)
-#  pragma message("Using the /RTC option without specifying a debug runtime will lead to linker errors")
-#  pragma message("Hint: go to the code generation options and switch to one of the debugging runtimes")
-#  error "Incompatible build options"
-#endif
-//
-// select toolset if not defined already:
-//
-#ifndef BOOST_LIB_TOOLSET
-#  if defined(BOOST_MSVC) && (BOOST_MSVC < 1200)
-    // Note: no compilers before 1200 are supported
-#  elif defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
-
-#    ifdef UNDER_CE
-       // eVC4:
-#      define BOOST_LIB_TOOLSET "evc4"
-#    else
-       // vc6:
-#      define BOOST_LIB_TOOLSET "vc6"
-#    endif
-
-#  elif defined(BOOST_MSVC) && (BOOST_MSVC < 1310)
-
-     // vc7:
-#    define BOOST_LIB_TOOLSET "vc7"
-
-#  elif defined(BOOST_MSVC) && (BOOST_MSVC < 1400)
-
-     // vc71:
-#    define BOOST_LIB_TOOLSET "vc71"
-
-#  elif defined(BOOST_MSVC) && (BOOST_MSVC < 1500)
-
-     // vc80:
-#    define BOOST_LIB_TOOLSET "vc80"
-
-#  elif defined(BOOST_MSVC) && (BOOST_MSVC < 1600)
-
-     // vc90:
-#    define BOOST_LIB_TOOLSET "vc90"
-
-#  elif defined(BOOST_MSVC) && (BOOST_MSVC < 1700)
-
-     // vc10:
-#    define BOOST_LIB_TOOLSET "vc100"
-
-#  elif defined(BOOST_MSVC) && (BOOST_MSVC < 1800)
-
-     // vc11:
-#    define BOOST_LIB_TOOLSET "vc110"
-
-#  elif defined(BOOST_MSVC)
-
-     // vc12:
-#    define BOOST_LIB_TOOLSET "vc120"
-
-#  elif defined(__BORLANDC__)
-
-     // CBuilder 6:
-#    define BOOST_LIB_TOOLSET "bcb"
-
-#  elif defined(__ICL)
-
-     // Intel C++, no version number:
-#    define BOOST_LIB_TOOLSET "iw"
-
-#  elif defined(__MWERKS__) && (__MWERKS__ <= 0x31FF )
-
-     // Metrowerks CodeWarrior 8.x
-#    define BOOST_LIB_TOOLSET "cw8"
-
-#  elif defined(__MWERKS__) && (__MWERKS__ <= 0x32FF )
-
-     // Metrowerks CodeWarrior 9.x
-#    define BOOST_LIB_TOOLSET "cw9"
-
-#  endif
-#endif // BOOST_LIB_TOOLSET
-
-//
-// select thread opt:
-//
-#if defined(_MT) || defined(__MT__)
-#  define BOOST_LIB_THREAD_OPT "-mt"
-#else
-#  define BOOST_LIB_THREAD_OPT
-#endif
-
-#if defined(_MSC_VER) || defined(__MWERKS__)
-
-#  ifdef _DLL
-
-#     if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS))
-
-#        if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
-               && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
-#            define BOOST_LIB_RT_OPT "-gydp"
-#        elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
-#            define BOOST_LIB_RT_OPT "-gdp"
-#        elif defined(_DEBUG)\
-               && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
-#            define BOOST_LIB_RT_OPT "-gydp"
-#            pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
-#            error "Build options aren't compatible with pre-built libraries"
-#        elif defined(_DEBUG)
-#            define BOOST_LIB_RT_OPT "-gdp"
-#            pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
-#            error "Build options aren't compatible with pre-built libraries"
-#        else
-#            define BOOST_LIB_RT_OPT "-p"
-#        endif
-
-#     elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
-
-#        if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
-               && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
-#            define BOOST_LIB_RT_OPT "-gydpn"
-#        elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
-#            define BOOST_LIB_RT_OPT "-gdpn"
-#        elif defined(_DEBUG)\
-               && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
-#            define BOOST_LIB_RT_OPT "-gydpn"
-#            pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
-#            error "Build options aren't compatible with pre-built libraries"
-#        elif defined(_DEBUG)
-#            define BOOST_LIB_RT_OPT "-gdpn"
-#            pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
-#            error "Build options aren't compatible with pre-built libraries"
-#        else
-#            define BOOST_LIB_RT_OPT "-pn"
-#        endif
-
-#     else
-
-#        if defined(_DEBUG) && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
-#            define BOOST_LIB_RT_OPT "-gyd"
-#        elif defined(_DEBUG)
-#            define BOOST_LIB_RT_OPT "-gd"
-#        else
-#            define BOOST_LIB_RT_OPT
-#        endif
-
-#     endif
-
-#  else
-
-#     if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS))
-
-#        if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
-               && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
-#            define BOOST_LIB_RT_OPT "-sgydp"
-#        elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
-#            define BOOST_LIB_RT_OPT "-sgdp"
-#        elif defined(_DEBUG)\
-               && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
-#             define BOOST_LIB_RT_OPT "-sgydp"
-#            pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
-#            error "Build options aren't compatible with pre-built libraries"
-#        elif defined(_DEBUG)
-#             define BOOST_LIB_RT_OPT "-sgdp"
-#            pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
-#            error "Build options aren't compatible with pre-built libraries"
-#        else
-#            define BOOST_LIB_RT_OPT "-sp"
-#        endif
-
-#     elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
-
-#        if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
-               && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
-#            define BOOST_LIB_RT_OPT "-sgydpn"
-#        elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
-#            define BOOST_LIB_RT_OPT "-sgdpn"
-#        elif defined(_DEBUG)\
-               && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
-#             define BOOST_LIB_RT_OPT "-sgydpn"
-#            pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
-#            error "Build options aren't compatible with pre-built libraries"
-#        elif defined(_DEBUG)
-#             define BOOST_LIB_RT_OPT "-sgdpn"
-#            pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
-#            error "Build options aren't compatible with pre-built libraries"
-#        else
-#            define BOOST_LIB_RT_OPT "-spn"
-#        endif
-
-#     else
-
-#        if defined(_DEBUG)\
-               && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
-#             define BOOST_LIB_RT_OPT "-sgyd"
-#        elif defined(_DEBUG)
-#             define BOOST_LIB_RT_OPT "-sgd"
-#        else
-#            define BOOST_LIB_RT_OPT "-s"
-#        endif
-
-#     endif
-
-#  endif
-
-#elif defined(__BORLANDC__)
-
-//
-// figure out whether we want the debug builds or not:
-//
-#if __BORLANDC__ > 0x561
-#pragma defineonoption BOOST_BORLAND_DEBUG -v
-#endif
-//
-// sanity check:
-//
-#if defined(__STL_DEBUG) || defined(_STLP_DEBUG)
-#error "Pre-built versions of the Boost libraries are not provided in STLport-debug form"
-#endif
-
-#  ifdef _RTLDLL
-
-#     if defined(BOOST_BORLAND_DEBUG)\
-               && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
-#         define BOOST_LIB_RT_OPT "-yd"
-#     elif defined(BOOST_BORLAND_DEBUG)
-#         define BOOST_LIB_RT_OPT "-d"
-#     elif defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
-#         define BOOST_LIB_RT_OPT -y
-#     else
-#         define BOOST_LIB_RT_OPT
-#     endif
-
-#  else
-
-#     if defined(BOOST_BORLAND_DEBUG)\
-               && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
-#         define BOOST_LIB_RT_OPT "-syd"
-#     elif defined(BOOST_BORLAND_DEBUG)
-#         define BOOST_LIB_RT_OPT "-sd"
-#     elif defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
-#         define BOOST_LIB_RT_OPT "-sy"
-#     else
-#         define BOOST_LIB_RT_OPT "-s"
-#     endif
-
-#  endif
-
-#endif
-
-//
-// select linkage opt:
-//
-#if (defined(_DLL) || defined(_RTLDLL)) && defined(BOOST_DYN_LINK)
-#  define BOOST_LIB_PREFIX
-#elif defined(BOOST_DYN_LINK)
-#  error "Mixing a dll boost library with a static runtime is a really bad idea..."
-#else
-#  define BOOST_LIB_PREFIX "lib"
-#endif
-
-//
-// now include the lib:
-//
-#if defined(BOOST_LIB_NAME) \
-      && defined(BOOST_LIB_PREFIX) \
-      && defined(BOOST_LIB_TOOLSET) \
-      && defined(BOOST_LIB_THREAD_OPT) \
-      && defined(BOOST_LIB_RT_OPT) \
-      && defined(BOOST_LIB_VERSION)
-
-#ifdef BOOST_AUTO_LINK_TAGGED
-#  pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT ".lib")
-#  ifdef BOOST_LIB_DIAGNOSTIC
-#     pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT ".lib")
-#  endif
-#elif defined(BOOST_AUTO_LINK_NOMANGLE)
-#  pragma comment(lib, BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib")
-#  ifdef BOOST_LIB_DIAGNOSTIC
-#     pragma message ("Linking to lib file: " BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib")
-#  endif
-#else
-#  pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION ".lib")
-#  ifdef BOOST_LIB_DIAGNOSTIC
-#     pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION ".lib")
-#  endif
-#endif
-
-#else
-#  error "some required macros where not defined (internal logic error)."
-#endif
-
-
-#endif // _MSC_VER || __BORLANDC__
-
-//
-// finally undef any macros we may have set:
-//
-#ifdef BOOST_LIB_PREFIX
-#  undef BOOST_LIB_PREFIX
-#endif
-#if defined(BOOST_LIB_NAME)
-#  undef BOOST_LIB_NAME
-#endif
-// Don't undef this one: it can be set by the user and should be the 
-// same for all libraries:
-//#if defined(BOOST_LIB_TOOLSET)
-//#  undef BOOST_LIB_TOOLSET
-//#endif
-#if defined(BOOST_LIB_THREAD_OPT)
-#  undef BOOST_LIB_THREAD_OPT
-#endif
-#if defined(BOOST_LIB_RT_OPT)
-#  undef BOOST_LIB_RT_OPT
-#endif
-#if defined(BOOST_LIB_LINK_OPT)
-#  undef BOOST_LIB_LINK_OPT
-#endif
-#if defined(BOOST_LIB_DEBUG_OPT)
-#  undef BOOST_LIB_DEBUG_OPT
-#endif
-#if defined(BOOST_DYN_LINK)
-#  undef BOOST_DYN_LINK
-#endif
-
-
diff --git a/boost/config/compiler/borland.hpp b/boost/config/compiler/borland.hpp
deleted file mode 100644
index a8f5baa..0000000
--- a/boost/config/compiler/borland.hpp
+++ /dev/null
@@ -1,287 +0,0 @@
-//  (C) Copyright John Maddock 2001 - 2003.
-//  (C) Copyright David Abrahams 2002 - 2003.
-//  (C) Copyright Aleksey Gurtovoy 2002.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org for most recent version.
-
-//  Borland C++ compiler setup:
-
-//
-// versions check:
-// we don't support Borland prior to version 5.4:
-#if __BORLANDC__ < 0x540
-#  error "Compiler not supported or configured - please reconfigure"
-#endif
-
-// last known compiler version:
-#if (__BORLANDC__ > 0x613)
-//#  if defined(BOOST_ASSERT_CONFIG)
-#     error "Unknown compiler version - please run the configure tests and report the results"
-//#  else
-//#     pragma message( "Unknown compiler version - please run the configure tests and report the results")
-//#  endif
-#elif (__BORLANDC__ == 0x600)
-#  error "CBuilderX preview compiler is no longer supported"
-#endif
-
-//
-// Support macros to help with standard library detection
-#if (__BORLANDC__ < 0x560) || defined(_USE_OLD_RW_STL)
-#  define BOOST_BCB_WITH_ROGUE_WAVE
-#elif __BORLANDC__ < 0x570
-#  define BOOST_BCB_WITH_STLPORT
-#else
-#  define BOOST_BCB_WITH_DINKUMWARE
-#endif
-
-//
-// Version 5.0 and below:
-#   if __BORLANDC__ <= 0x0550
-// Borland C++Builder 4 and 5:
-#     define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
-#     if __BORLANDC__ == 0x0550
-// Borland C++Builder 5, command-line compiler 5.5:
-#       define BOOST_NO_OPERATORS_IN_NAMESPACE
-#     endif
-// Variadic macros do not exist for C++ Builder versions 5 and below
-#define BOOST_NO_CXX11_VARIADIC_MACROS
-#   endif
-
-// Version 5.51 and below:
-#if (__BORLANDC__ <= 0x551)
-#  define BOOST_NO_CV_SPECIALIZATIONS
-#  define BOOST_NO_CV_VOID_SPECIALIZATIONS
-#  define BOOST_NO_DEDUCED_TYPENAME
-// workaround for missing WCHAR_MAX/WCHAR_MIN:
-#ifdef __cplusplus
-#include <climits>
-#include <cwchar>
-#else
-#include <limits.h>
-#include <wchar.h>
-#endif // __cplusplus
-#ifndef WCHAR_MAX
-#  define WCHAR_MAX 0xffff
-#endif
-#ifndef WCHAR_MIN
-#  define WCHAR_MIN 0
-#endif
-#endif
-
-// Borland C++ Builder 6 and below:
-#if (__BORLANDC__ <= 0x564)
-
-#  if defined(NDEBUG) && defined(__cplusplus)
-      // fix broken <cstring> so that Boost.test works:
-#     include <cstring>
-#     undef strcmp
-#  endif
-   // fix broken errno declaration:
-#  include <errno.h>
-#  ifndef errno
-#     define errno errno
-#  endif
-
-#endif
-
-//
-// new bug in 5.61:
-#if (__BORLANDC__ >= 0x561) && (__BORLANDC__ <= 0x580)
-   // this seems to be needed by the command line compiler, but not the IDE:
-#  define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
-#endif
-
-// Borland C++ Builder 2006 Update 2 and below:
-#if (__BORLANDC__ <= 0x582)
-#  define BOOST_NO_SFINAE
-#  define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
-#  define BOOST_NO_TEMPLATE_TEMPLATES
-
-#  define BOOST_NO_PRIVATE_IN_AGGREGATE
-
-#  ifdef _WIN32
-#     define BOOST_NO_SWPRINTF
-#  elif defined(linux) || defined(__linux__) || defined(__linux)
-      // we should really be able to do without this
-      // but the wcs* functions aren't imported into std::
-#     define BOOST_NO_STDC_NAMESPACE
-      // _CPPUNWIND doesn't get automatically set for some reason:
-#     pragma defineonoption BOOST_CPPUNWIND -x
-#  endif
-#endif
-
-#if (__BORLANDC__ <= 0x613)  // Beman has asked Alisdair for more info
-   // we shouldn't really need this - but too many things choke
-   // without it, this needs more investigation:
-#  define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-#  define BOOST_NO_IS_ABSTRACT
-#  define BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS
-#  define BOOST_NO_USING_TEMPLATE
-#  define BOOST_SP_NO_SP_CONVERTIBLE
-
-// Temporary workaround
-#define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif
-
-// Borland C++ Builder 2008 and below:
-#  define BOOST_NO_INTEGRAL_INT64_T
-#  define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
-#  define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
-#  define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
-#  define BOOST_NO_TWO_PHASE_NAME_LOOKUP
-#  define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
-#  define BOOST_NO_NESTED_FRIENDSHIP
-#  define BOOST_NO_TYPENAME_WITH_CTOR
-#if (__BORLANDC__ < 0x600)
-#  define BOOST_ILLEGAL_CV_REFERENCES
-#endif
-
-//
-//  Positive Feature detection
-//
-// Borland C++ Builder 2008 and below:
-#if (__BORLANDC__ >= 0x599)
-#  pragma defineonoption BOOST_CODEGEAR_0X_SUPPORT -Ax
-#endif
-//
-// C++0x Macros:
-//
-#if !defined( BOOST_CODEGEAR_0X_SUPPORT ) || (__BORLANDC__ < 0x610)
-#  define BOOST_NO_CXX11_CHAR16_T
-#  define BOOST_NO_CXX11_CHAR32_T
-#  define BOOST_NO_CXX11_DECLTYPE
-#  define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
-#  define BOOST_NO_CXX11_EXTERN_TEMPLATE
-#  define BOOST_NO_CXX11_RVALUE_REFERENCES
-#  define BOOST_NO_CXX11_SCOPED_ENUMS
-#  define BOOST_NO_CXX11_STATIC_ASSERT
-#else
-#  define BOOST_HAS_ALIGNOF
-#  define BOOST_HAS_CHAR16_T
-#  define BOOST_HAS_CHAR32_T
-#  define BOOST_HAS_DECLTYPE
-#  define BOOST_HAS_EXPLICIT_CONVERSION_OPS
-#  define BOOST_HAS_REF_QUALIFIER
-#  define BOOST_HAS_RVALUE_REFS
-#  define BOOST_HAS_STATIC_ASSERT
-#endif
-
-#define BOOST_NO_CXX11_AUTO_DECLARATIONS
-#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
-#define BOOST_NO_CXX11_CONSTEXPR
-#define BOOST_NO_CXX11_DECLTYPE_N3276
-#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#define BOOST_NO_CXX11_DELETED_FUNCTIONS
-#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
-#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#define BOOST_NO_CXX11_LAMBDAS
-#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
-#define BOOST_NO_CXX11_NULLPTR
-#define BOOST_NO_CXX11_RANGE_BASED_FOR
-#define BOOST_NO_CXX11_RAW_LITERALS
-#define BOOST_NO_CXX11_RVALUE_REFERENCES
-#define BOOST_NO_CXX11_SCOPED_ENUMS
-#define BOOST_NO_SFINAE_EXPR
-#define BOOST_NO_CXX11_TEMPLATE_ALIASES
-#define BOOST_NO_CXX11_UNICODE_LITERALS    // UTF-8 still not supported
-#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
-#define BOOST_NO_CXX11_NOEXCEPT
-#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
-#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
-#define BOOST_NO_CXX11_ALIGNAS
-#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
-#define BOOST_NO_CXX11_INLINE_NAMESPACES
-
-#if __BORLANDC__ >= 0x590
-#  define BOOST_HAS_TR1_HASH
-
-#  define BOOST_HAS_MACRO_USE_FACET
-#endif
-
-//
-// Post 0x561 we have long long and stdint.h:
-#if __BORLANDC__ >= 0x561
-#  ifndef __NO_LONG_LONG
-#     define BOOST_HAS_LONG_LONG
-#  else
-#     define BOOST_NO_LONG_LONG
-#  endif
-   // On non-Win32 platforms let the platform config figure this out:
-#  ifdef _WIN32
-#      define BOOST_HAS_STDINT_H
-#  endif
-#endif
-
-// Borland C++Builder 6 defaults to using STLPort.  If _USE_OLD_RW_STL is
-// defined, then we have 0x560 or greater with the Rogue Wave implementation
-// which presumably has the std::DBL_MAX bug.
-#if defined( BOOST_BCB_WITH_ROGUE_WAVE )
-// <climits> is partly broken, some macros define symbols that are really in
-// namespace std, so you end up having to use illegal constructs like
-// std::DBL_MAX, as a fix we'll just include float.h and have done with:
-#include <float.h>
-#endif
-//
-// __int64:
-//
-#if (__BORLANDC__ >= 0x530) && !defined(__STRICT_ANSI__)
-#  define BOOST_HAS_MS_INT64
-#endif
-//
-// check for exception handling support:
-//
-#if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
-#  define BOOST_NO_EXCEPTIONS
-#endif
-//
-// all versions have a <dirent.h>:
-//
-#ifndef __STRICT_ANSI__
-#  define BOOST_HAS_DIRENT_H
-#endif
-//
-// all versions support __declspec:
-//
-#if defined(__STRICT_ANSI__)
-// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined
-#  define BOOST_SYMBOL_EXPORT
-#endif
-//
-// ABI fixing headers:
-//
-#if __BORLANDC__ != 0x600 // not implemented for version 6 compiler yet
-#ifndef BOOST_ABI_PREFIX
-#  define BOOST_ABI_PREFIX "boost/config/abi/borland_prefix.hpp"
-#endif
-#ifndef BOOST_ABI_SUFFIX
-#  define BOOST_ABI_SUFFIX "boost/config/abi/borland_suffix.hpp"
-#endif
-#endif
-//
-// Disable Win32 support in ANSI mode:
-//
-#if __BORLANDC__ < 0x600
-#  pragma defineonoption BOOST_DISABLE_WIN32 -A
-#elif defined(__STRICT_ANSI__)
-#  define BOOST_DISABLE_WIN32
-#endif
-//
-// MSVC compatibility mode does some nasty things:
-// TODO: look up if this doesn't apply to the whole 12xx range
-//
-#if defined(_MSC_VER) && (_MSC_VER <= 1200)
-#  define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
-#  define BOOST_NO_VOID_RETURNS
-#endif
-
-// Borland did not implement value-initialization completely, as I reported
-// in 2007, Borland Report 51854, "Value-initialization: POD struct should be
-// zero-initialized", http://qc.embarcadero.com/wc/qcmain.aspx?d=51854
-// See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
-// (Niels Dekker, LKEB, April 2010)
-#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
-
-#define BOOST_COMPILER "Borland C++ version " BOOST_STRINGIZE(__BORLANDC__)
diff --git a/boost/config/compiler/clang.hpp b/boost/config/compiler/clang.hpp
deleted file mode 100644
index b57e26c..0000000
--- a/boost/config/compiler/clang.hpp
+++ /dev/null
@@ -1,180 +0,0 @@
-// (C) Copyright Douglas Gregor 2010
-//
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org for most recent version.
-
-// Clang compiler setup.
-
-#define BOOST_HAS_PRAGMA_ONCE
-
-#if !__has_feature(cxx_exceptions) && !defined(BOOST_NO_EXCEPTIONS)
-#  define BOOST_NO_EXCEPTIONS
-#endif
-
-#if !__has_feature(cxx_rtti) && !defined(BOOST_NO_RTTI)
-#  define BOOST_NO_RTTI
-#endif
-
-#if !__has_feature(cxx_rtti) && !defined(BOOST_NO_TYPEID)
-#  define BOOST_NO_TYPEID
-#endif
-
-#if defined(__int64) && !defined(__GNUC__)
-#  define BOOST_HAS_MS_INT64
-#endif
-
-#define BOOST_HAS_NRVO
-
-// Branch prediction hints
-#if defined(__has_builtin)
-#if __has_builtin(__builtin_expect)
-#define BOOST_LIKELY(x) __builtin_expect(x, 1)
-#define BOOST_UNLIKELY(x) __builtin_expect(x, 0)
-#endif
-#endif
-
-// Clang supports "long long" in all compilation modes.
-#define BOOST_HAS_LONG_LONG
-
-//
-// Dynamic shared object (DSO) and dynamic-link library (DLL) support
-//
-#if !defined(_WIN32) && !defined(__WIN32__) && !defined(WIN32)
-#  define BOOST_SYMBOL_EXPORT __attribute__((__visibility__("default")))
-#  define BOOST_SYMBOL_IMPORT
-#  define BOOST_SYMBOL_VISIBLE __attribute__((__visibility__("default")))
-#endif
-
-//
-// The BOOST_FALLTHROUGH macro can be used to annotate implicit fall-through
-// between switch labels.
-//
-#if __cplusplus >= 201103L && defined(__has_warning)
-#  if __has_feature(cxx_attributes) && __has_warning("-Wimplicit-fallthrough")
-#    define BOOST_FALLTHROUGH [[clang::fallthrough]]
-#  endif
-#endif
-
-#if !__has_feature(cxx_auto_type)
-#  define BOOST_NO_CXX11_AUTO_DECLARATIONS
-#  define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
-#endif
-
-#if !(defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L)
-#  define BOOST_NO_CXX11_CHAR16_T
-#  define BOOST_NO_CXX11_CHAR32_T
-#endif
-
-#if !__has_feature(cxx_constexpr)
-#  define BOOST_NO_CXX11_CONSTEXPR
-#endif
-
-#if !__has_feature(cxx_decltype)
-#  define BOOST_NO_CXX11_DECLTYPE
-#endif
-
-#if !__has_feature(cxx_decltype_incomplete_return_types)
-#  define BOOST_NO_CXX11_DECLTYPE_N3276
-#endif
-
-#if !__has_feature(cxx_defaulted_functions)
-#  define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#endif
-
-#if !__has_feature(cxx_deleted_functions)
-#  define BOOST_NO_CXX11_DELETED_FUNCTIONS
-#endif
-
-#if !__has_feature(cxx_explicit_conversions)
-#  define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
-#endif
-
-#if !__has_feature(cxx_default_function_template_args)
-#  define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
-#endif
-
-#if !__has_feature(cxx_generalized_initializers)
-#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#endif
-
-#if !__has_feature(cxx_lambdas)
-#  define BOOST_NO_CXX11_LAMBDAS
-#endif
-
-#if !__has_feature(cxx_local_type_template_args)
-#  define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
-#endif
-
-#if !__has_feature(cxx_noexcept)
-#  define BOOST_NO_CXX11_NOEXCEPT
-#endif
-
-#if !__has_feature(cxx_nullptr)
-#  define BOOST_NO_CXX11_NULLPTR
-#endif
-
-#if !__has_feature(cxx_range_for)
-#  define BOOST_NO_CXX11_RANGE_BASED_FOR
-#endif
-
-#if !__has_feature(cxx_raw_string_literals)
-#  define BOOST_NO_CXX11_RAW_LITERALS
-#endif
-
-#if !__has_feature(cxx_generalized_initializers)
-#  define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
-#endif
-
-#if !__has_feature(cxx_rvalue_references)
-#  define BOOST_NO_CXX11_RVALUE_REFERENCES
-#endif
-
-#if !__has_feature(cxx_strong_enums)
-#  define BOOST_NO_CXX11_SCOPED_ENUMS
-#endif
-
-#if !__has_feature(cxx_static_assert)
-#  define BOOST_NO_CXX11_STATIC_ASSERT
-#endif
-
-#if !__has_feature(cxx_alias_templates)
-#  define BOOST_NO_CXX11_TEMPLATE_ALIASES
-#endif
-
-#if !__has_feature(cxx_unicode_literals)
-#  define BOOST_NO_CXX11_UNICODE_LITERALS
-#endif
-
-#if !__has_feature(cxx_variadic_templates)
-#  define BOOST_NO_CXX11_VARIADIC_TEMPLATES
-#endif
-
-#if !__has_feature(cxx_user_literals)
-#  define BOOST_NO_CXX11_USER_DEFINED_LITERALS
-#endif
-
-#if !(__has_feature(cxx_alignas) || __has_extension(cxx_alignas))
-#  define BOOST_NO_CXX11_ALIGNAS
-#endif
-
-#if !__has_feature(cxx_trailing_return)
-#  define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
-#endif
-
-#if !__has_feature(cxx_inline_namespaces)
-#  define BOOST_NO_CXX11_INLINE_NAMESPACES
-#endif
-
-// Clang always supports variadic macros
-// Clang always supports extern templates
-
-#ifndef BOOST_COMPILER
-#  define BOOST_COMPILER "Clang version " __clang_version__
-#endif
-
-// Macro used to identify the Clang compiler.
-#define BOOST_CLANG 1
-
diff --git a/boost/config/compiler/codegear.hpp b/boost/config/compiler/codegear.hpp
deleted file mode 100644
index 00e0bb9..0000000
--- a/boost/config/compiler/codegear.hpp
+++ /dev/null
@@ -1,189 +0,0 @@
-//  (C) Copyright John Maddock 2001 - 2003.
-//  (C) Copyright David Abrahams 2002 - 2003.
-//  (C) Copyright Aleksey Gurtovoy 2002.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org for most recent version.
-
-//  CodeGear C++ compiler setup:
-
-#if !defined( BOOST_WITH_CODEGEAR_WARNINGS )
-// these warnings occur frequently in optimized template code
-# pragma warn -8004 // var assigned value, but never used
-# pragma warn -8008 // condition always true/false
-# pragma warn -8066 // dead code can never execute
-# pragma warn -8104 // static members with ctors not threadsafe
-# pragma warn -8105 // reference member in class without ctors
-#endif
-//
-// versions check:
-// last known and checked version is 0x621
-#if (__CODEGEARC__ > 0x621)
-#  if defined(BOOST_ASSERT_CONFIG)
-#     error "Unknown compiler version - please run the configure tests and report the results"
-#  else
-#     pragma message( "Unknown compiler version - please run the configure tests and report the results")
-#  endif
-#endif
-
-// CodeGear C++ Builder 2009
-#if (__CODEGEARC__ <= 0x613)
-#  define BOOST_NO_INTEGRAL_INT64_T
-#  define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
-#  define BOOST_NO_PRIVATE_IN_AGGREGATE
-#  define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
-   // we shouldn't really need this - but too many things choke
-   // without it, this needs more investigation:
-#  define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-#  define BOOST_SP_NO_SP_CONVERTIBLE
-#endif
-
-// CodeGear C++ Builder 2010
-#if (__CODEGEARC__ <= 0x621)
-#  define BOOST_NO_TYPENAME_WITH_CTOR    // Cannot use typename keyword when making temporaries of a dependant type
-#  define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
-#  define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
-#  define BOOST_NO_NESTED_FRIENDSHIP     // TC1 gives nested classes access rights as any other member
-#  define BOOST_NO_USING_TEMPLATE
-#  define BOOST_NO_TWO_PHASE_NAME_LOOKUP
-// Temporary hack, until specific MPL preprocessed headers are generated
-#  define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-// CodeGear has not yet completely implemented value-initialization, for
-// example for array types, as I reported in 2010: Embarcadero Report 83751,
-// "Value-initialization: arrays should have each element value-initialized",
-// http://qc.embarcadero.com/wc/qcmain.aspx?d=83751
-// Last checked version: Embarcadero C++ 6.21
-// See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
-// (Niels Dekker, LKEB, April 2010)
-#  define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
-
-#  if defined(NDEBUG) && defined(__cplusplus)
-      // fix broken <cstring> so that Boost.test works:
-#     include <cstring>
-#     undef strcmp
-#  endif
-   // fix broken errno declaration:
-#  include <errno.h>
-#  ifndef errno
-#     define errno errno
-#  endif
-
-#endif
-
-// Reportedly, #pragma once is supported since C++ Builder 2010
-#if (__CODEGEARC__ >= 0x620)
-#  define BOOST_HAS_PRAGMA_ONCE
-#endif
-
-//
-// C++0x macros:
-//
-#if (__CODEGEARC__ <= 0x620)
-#define BOOST_NO_CXX11_STATIC_ASSERT
-#else
-#define BOOST_HAS_STATIC_ASSERT
-#endif
-#define BOOST_HAS_CHAR16_T
-#define BOOST_HAS_CHAR32_T
-#define BOOST_HAS_LONG_LONG
-// #define BOOST_HAS_ALIGNOF
-#define BOOST_HAS_DECLTYPE
-#define BOOST_HAS_EXPLICIT_CONVERSION_OPS
-// #define BOOST_HAS_RVALUE_REFS
-#define BOOST_HAS_SCOPED_ENUM
-// #define BOOST_HAS_STATIC_ASSERT
-#define BOOST_HAS_STD_TYPE_TRAITS
-
-#define BOOST_NO_CXX11_AUTO_DECLARATIONS
-#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
-#define BOOST_NO_CXX11_CONSTEXPR
-#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#define BOOST_NO_CXX11_DELETED_FUNCTIONS
-#define BOOST_NO_CXX11_EXTERN_TEMPLATE
-#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
-#define BOOST_NO_CXX11_LAMBDAS
-#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
-#define BOOST_NO_CXX11_NOEXCEPT
-#define BOOST_NO_CXX11_NULLPTR
-#define BOOST_NO_CXX11_RANGE_BASED_FOR
-#define BOOST_NO_CXX11_RAW_LITERALS
-#define BOOST_NO_CXX11_RVALUE_REFERENCES
-#define BOOST_NO_SFINAE_EXPR
-#define BOOST_NO_CXX11_TEMPLATE_ALIASES
-#define BOOST_NO_CXX11_UNICODE_LITERALS
-#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
-#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
-#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
-#define BOOST_NO_CXX11_ALIGNAS
-#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
-#define BOOST_NO_CXX11_INLINE_NAMESPACES
-
-//
-// TR1 macros:
-//
-#define BOOST_HAS_TR1_HASH
-#define BOOST_HAS_TR1_TYPE_TRAITS
-#define BOOST_HAS_TR1_UNORDERED_MAP
-#define BOOST_HAS_TR1_UNORDERED_SET
-
-#define BOOST_HAS_MACRO_USE_FACET
-
-#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-
-// On non-Win32 platforms let the platform config figure this out:
-#ifdef _WIN32
-#  define BOOST_HAS_STDINT_H
-#endif
-
-//
-// __int64:
-//
-#if !defined(__STRICT_ANSI__)
-#  define BOOST_HAS_MS_INT64
-#endif
-//
-// check for exception handling support:
-//
-#if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
-#  define BOOST_NO_EXCEPTIONS
-#endif
-//
-// all versions have a <dirent.h>:
-//
-#if !defined(__STRICT_ANSI__)
-#  define BOOST_HAS_DIRENT_H
-#endif
-//
-// all versions support __declspec:
-//
-#if defined(__STRICT_ANSI__)
-// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined
-#  define BOOST_SYMBOL_EXPORT
-#endif
-//
-// ABI fixing headers:
-//
-#ifndef BOOST_ABI_PREFIX
-#  define BOOST_ABI_PREFIX "boost/config/abi/borland_prefix.hpp"
-#endif
-#ifndef BOOST_ABI_SUFFIX
-#  define BOOST_ABI_SUFFIX "boost/config/abi/borland_suffix.hpp"
-#endif
-//
-// Disable Win32 support in ANSI mode:
-//
-#  pragma defineonoption BOOST_DISABLE_WIN32 -A
-//
-// MSVC compatibility mode does some nasty things:
-// TODO: look up if this doesn't apply to the whole 12xx range
-//
-#if defined(_MSC_VER) && (_MSC_VER <= 1200)
-#  define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
-#  define BOOST_NO_VOID_RETURNS
-#endif
-
-#define BOOST_COMPILER "CodeGear C++ version " BOOST_STRINGIZE(__CODEGEARC__)
-
diff --git a/boost/config/compiler/comeau.hpp b/boost/config/compiler/comeau.hpp
deleted file mode 100644
index 278222d..0000000
--- a/boost/config/compiler/comeau.hpp
+++ /dev/null
@@ -1,59 +0,0 @@
-//  (C) Copyright John Maddock 2001. 
-//  (C) Copyright Douglas Gregor 2001. 
-//  (C) Copyright Peter Dimov 2001. 
-//  (C) Copyright Aleksey Gurtovoy 2003. 
-//  (C) Copyright Beman Dawes 2003. 
-//  (C) Copyright Jens Maurer 2003. 
-//  Use, modification and distribution are subject to the 
-//  Boost Software License, Version 1.0. (See accompanying file 
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org for most recent version.
-
-//  Comeau C++ compiler setup:
-
-#include "boost/config/compiler/common_edg.hpp"
-
-#if (__COMO_VERSION__ <= 4245)
-
-#  if defined(_MSC_VER) && _MSC_VER <= 1300
-#     if _MSC_VER > 100
-         // only set this in non-strict mode:
-#        define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
-#     endif
-#  endif
-
-// Void returns don't work when emulating VC 6 (Peter Dimov)
-// TODO: look up if this doesn't apply to the whole 12xx range
-#  if defined(_MSC_VER) && (_MSC_VER < 1300)
-#     define BOOST_NO_VOID_RETURNS
-#  endif
-
-#endif  // version 4245
-
-//
-// enable __int64 support in VC emulation mode
-//
-#  if defined(_MSC_VER) && (_MSC_VER >= 1200)
-#     define BOOST_HAS_MS_INT64
-#  endif
-
-#define BOOST_COMPILER "Comeau compiler version " BOOST_STRINGIZE(__COMO_VERSION__)
-
-//
-// versions check:
-// we don't know Comeau prior to version 4245:
-#if __COMO_VERSION__ < 4245
-#  error "Compiler not configured - please reconfigure"
-#endif
-//
-// last known and checked version is 4245:
-#if (__COMO_VERSION__ > 4245)
-#  if defined(BOOST_ASSERT_CONFIG)
-#     error "Unknown compiler version - please run the configure tests and report the results"
-#  endif
-#endif
-
-
-
-
diff --git a/boost/config/compiler/common_edg.hpp b/boost/config/compiler/common_edg.hpp
deleted file mode 100644
index 70e7efa..0000000
--- a/boost/config/compiler/common_edg.hpp
+++ /dev/null
@@ -1,112 +0,0 @@
-//  (C) Copyright John Maddock 2001 - 2002.
-//  (C) Copyright Jens Maurer 2001.
-//  (C) Copyright David Abrahams 2002.
-//  (C) Copyright Aleksey Gurtovoy 2002.
-//  (C) Copyright Markus Schoepflin 2005.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org for most recent version.
-
-//
-// Options common to all edg based compilers.
-//
-// This is included from within the individual compiler mini-configs.
-
-#ifndef  __EDG_VERSION__
-#  error This file requires that __EDG_VERSION__ be defined.
-#endif
-
-#if (__EDG_VERSION__ <= 238)
-#   define BOOST_NO_INTEGRAL_INT64_T
-#   define BOOST_NO_SFINAE
-#endif
-
-#if (__EDG_VERSION__ <= 240)
-#   define BOOST_NO_VOID_RETURNS
-#endif
-
-#if (__EDG_VERSION__ <= 241) && !defined(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP)
-#   define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
-#endif
-
-#if (__EDG_VERSION__ <= 244) && !defined(BOOST_NO_TEMPLATE_TEMPLATES)
-#   define BOOST_NO_TEMPLATE_TEMPLATES
-#endif
-
-#if (__EDG_VERSION__ < 300) && !defined(BOOST_NO_IS_ABSTRACT)
-#   define BOOST_NO_IS_ABSTRACT
-#endif
-
-#if (__EDG_VERSION__ <= 303) && !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL)
-#   define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
-#endif
-
-// See also kai.hpp which checks a Kai-specific symbol for EH
-# if !defined(__KCC) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
-#     define BOOST_NO_EXCEPTIONS
-# endif
-
-# if !defined(__NO_LONG_LONG)
-#     define BOOST_HAS_LONG_LONG
-# else
-#     define BOOST_NO_LONG_LONG
-# endif
-
-// Not sure what version was the first to support #pragma once, but
-// different EDG-based compilers (e.g. Intel) supported it for ages.
-// Add a proper version check if it causes problems.
-#define BOOST_HAS_PRAGMA_ONCE
-
-//
-// C++0x features
-//
-//   See above for BOOST_NO_LONG_LONG
-//
-#if (__EDG_VERSION__ < 310)
-#  define BOOST_NO_CXX11_EXTERN_TEMPLATE
-#endif
-#if (__EDG_VERSION__ <= 310)
-// No support for initializer lists
-#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#endif
-#if (__EDG_VERSION__ < 400)
-#  define BOOST_NO_CXX11_VARIADIC_MACROS
-#endif
-
-#define BOOST_NO_CXX11_AUTO_DECLARATIONS
-#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
-#define BOOST_NO_CXX11_CHAR16_T
-#define BOOST_NO_CXX11_CHAR32_T
-#define BOOST_NO_CXX11_CONSTEXPR
-#define BOOST_NO_CXX11_DECLTYPE
-#define BOOST_NO_CXX11_DECLTYPE_N3276
-#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#define BOOST_NO_CXX11_DELETED_FUNCTIONS
-#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
-#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
-#define BOOST_NO_CXX11_LAMBDAS
-#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
-#define BOOST_NO_CXX11_NOEXCEPT
-#define BOOST_NO_CXX11_NULLPTR
-#define BOOST_NO_CXX11_RANGE_BASED_FOR
-#define BOOST_NO_CXX11_RAW_LITERALS
-#define BOOST_NO_CXX11_RVALUE_REFERENCES
-#define BOOST_NO_CXX11_SCOPED_ENUMS
-#define BOOST_NO_SFINAE_EXPR
-#define BOOST_NO_CXX11_STATIC_ASSERT
-#define BOOST_NO_CXX11_TEMPLATE_ALIASES
-#define BOOST_NO_CXX11_UNICODE_LITERALS
-#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
-#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
-#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
-#define BOOST_NO_CXX11_ALIGNAS
-#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
-#define BOOST_NO_CXX11_INLINE_NAMESPACES
-
-#ifdef c_plusplus
-// EDG has "long long" in non-strict mode
-// However, some libraries have insufficient "long long" support
-// #define BOOST_HAS_LONG_LONG
-#endif
diff --git a/boost/config/compiler/compaq_cxx.hpp b/boost/config/compiler/compaq_cxx.hpp
deleted file mode 100644
index b44486c..0000000
--- a/boost/config/compiler/compaq_cxx.hpp
+++ /dev/null
@@ -1,19 +0,0 @@
-//  (C) Copyright John Maddock 2001 - 2003. 
-//  Use, modification and distribution are subject to the 
-//  Boost Software License, Version 1.0. (See accompanying file 
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org for most recent version.
-
-//  Tru64 C++ compiler setup (now HP):
-
-#define BOOST_COMPILER "HP Tru64 C++ " BOOST_STRINGIZE(__DECCXX_VER)
-
-#include "boost/config/compiler/common_edg.hpp"
-
-//
-// versions check:
-// Nothing to do here?
-
-
-
diff --git a/boost/config/compiler/cray.hpp b/boost/config/compiler/cray.hpp
deleted file mode 100644
index 3ce29f0..0000000
--- a/boost/config/compiler/cray.hpp
+++ /dev/null
@@ -1,65 +0,0 @@
-//  (C) Copyright John Maddock 2011.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org for most recent version.
-
-//  Greenhills C compiler setup:
-
-#define BOOST_COMPILER "Cray C version " BOOST_STRINGIZE(_RELEASE)
-
-#if _RELEASE < 7
-#  error "Boost is not configured for Cray compilers prior to version 7, please try the configure script."
-#endif
-
-//
-// Check this is a recent EDG based compiler, otherwise we don't support it here:
-//
-#ifndef __EDG_VERSION__
-#  error "Unsupported Cray compiler, please try running the configure script."
-#endif
-
-#include "boost/config/compiler/common_edg.hpp"
-
-//
-// Cray peculiarities, probably version 7 specific:
-//
-#undef BOOST_NO_CXX11_AUTO_DECLARATIONS
-#undef BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
-#define BOOST_HAS_NRVO
-#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
-#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
-#define BOOST_NO_CXX11_UNICODE_LITERALS
-#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
-#define BOOST_HAS_NRVO
-#define BOOST_NO_CXX11_TEMPLATE_ALIASES
-#define BOOST_NO_CXX11_STATIC_ASSERT
-#define BOOST_NO_SFINAE_EXPR
-#define BOOST_NO_CXX11_SCOPED_ENUMS
-#define BOOST_NO_CXX11_RVALUE_REFERENCES
-#define BOOST_NO_CXX11_RANGE_BASED_FOR
-#define BOOST_NO_CXX11_RAW_LITERALS
-#define BOOST_NO_CXX11_NULLPTR
-#define BOOST_NO_CXX11_NOEXCEPT
-#define BOOST_NO_CXX11_LAMBDAS
-#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
-#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
-#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
-#define BOOST_NO_CXX11_DELETED_FUNCTIONS
-#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#define BOOST_NO_CXX11_DECLTYPE_N3276
-#define BOOST_NO_CXX11_DECLTYPE
-#define BOOST_NO_CXX11_CONSTEXPR
-#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
-#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
-#define BOOST_NO_CXX11_CHAR32_T
-#define BOOST_NO_CXX11_CHAR16_T
-#define BOOST_NO_CXX11_ALIGNAS
-//#define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
-#define BOOST_MATH_DISABLE_STD_FPCLASSIFY
-//#define BOOST_HAS_FPCLASSIFY
-
-#define BOOST_SP_USE_PTHREADS
-#define BOOST_AC_USE_PTHREADS
-
diff --git a/boost/config/compiler/digitalmars.hpp b/boost/config/compiler/digitalmars.hpp
deleted file mode 100644
index 7de6adb..0000000
--- a/boost/config/compiler/digitalmars.hpp
+++ /dev/null
@@ -1,93 +0,0 @@
-//  Copyright (C) Christof Meerwald 2003
-//  Copyright (C) Dan Watkins 2003
-//
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  Digital Mars C++ compiler setup:
-#define BOOST_COMPILER __DMC_VERSION_STRING__
-
-#define BOOST_HAS_LONG_LONG
-#define BOOST_HAS_PRAGMA_ONCE
-
-#if !defined(BOOST_STRICT_CONFIG)
-#define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
-#define BOOST_NO_OPERATORS_IN_NAMESPACE
-#define BOOST_NO_UNREACHABLE_RETURN_DETECTION
-#define BOOST_NO_SFINAE
-#define BOOST_NO_USING_TEMPLATE
-#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
-#endif
-
-//
-// has macros:
-#define BOOST_HAS_DIRENT_H
-#define BOOST_HAS_STDINT_H
-#define BOOST_HAS_WINTHREADS
-
-#if (__DMC__ >= 0x847)
-#define BOOST_HAS_EXPM1
-#define BOOST_HAS_LOG1P
-#endif
-
-//
-// Is this really the best way to detect whether the std lib is in namespace std?
-//
-#ifdef __cplusplus
-#include <cstddef>
-#endif
-#if !defined(__STL_IMPORT_VENDOR_CSTD) && !defined(_STLP_IMPORT_VENDOR_CSTD)
-#  define BOOST_NO_STDC_NAMESPACE
-#endif
-
-
-// check for exception handling support:
-#if !defined(_CPPUNWIND) && !defined(BOOST_NO_EXCEPTIONS)
-#  define BOOST_NO_EXCEPTIONS
-#endif
-
-//
-// C++0x features
-//
-#define BOOST_NO_CXX11_AUTO_DECLARATIONS
-#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
-#define BOOST_NO_CXX11_CHAR16_T
-#define BOOST_NO_CXX11_CHAR32_T
-#define BOOST_NO_CXX11_CONSTEXPR
-#define BOOST_NO_CXX11_DECLTYPE
-#define BOOST_NO_CXX11_DECLTYPE_N3276
-#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#define BOOST_NO_CXX11_DELETED_FUNCTIONS
-#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
-#define BOOST_NO_CXX11_EXTERN_TEMPLATE
-#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#define BOOST_NO_CXX11_LAMBDAS
-#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
-#define BOOST_NO_CXX11_NOEXCEPT
-#define BOOST_NO_CXX11_NULLPTR
-#define BOOST_NO_CXX11_RANGE_BASED_FOR
-#define BOOST_NO_CXX11_RAW_LITERALS
-#define BOOST_NO_CXX11_RVALUE_REFERENCES
-#define BOOST_NO_CXX11_SCOPED_ENUMS
-#define BOOST_NO_SFINAE_EXPR
-#define BOOST_NO_CXX11_STATIC_ASSERT
-#define BOOST_NO_CXX11_TEMPLATE_ALIASES
-#define BOOST_NO_CXX11_UNICODE_LITERALS
-#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
-#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
-#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
-#define BOOST_NO_CXX11_ALIGNAS
-#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
-#define BOOST_NO_CXX11_INLINE_NAMESPACES
-
-#if (__DMC__ <= 0x840)
-#error "Compiler not supported or configured - please reconfigure"
-#endif
-//
-// last known and checked version is ...:
-#if (__DMC__ > 0x848)
-#  if defined(BOOST_ASSERT_CONFIG)
-#     error "Unknown compiler version - please run the configure tests and report the results"
-#  endif
-#endif
diff --git a/boost/config/compiler/gcc.hpp b/boost/config/compiler/gcc.hpp
deleted file mode 100644
index aa628e5..0000000
--- a/boost/config/compiler/gcc.hpp
+++ /dev/null
@@ -1,261 +0,0 @@
-//  (C) Copyright John Maddock 2001 - 2003.
-//  (C) Copyright Darin Adler 2001 - 2002.
-//  (C) Copyright Jens Maurer 2001 - 2002.
-//  (C) Copyright Beman Dawes 2001 - 2003.
-//  (C) Copyright Douglas Gregor 2002.
-//  (C) Copyright David Abrahams 2002 - 2003.
-//  (C) Copyright Synge Todo 2003.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org for most recent version.
-
-//  GNU C++ compiler setup.
-
-//
-// Define BOOST_GCC so we know this is "real" GCC and not some pretender:
-//
-#if !defined(__CUDACC__)
-#define BOOST_GCC (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
-#endif
-
-#if __GNUC__ == 3
-#  if defined (__PATHSCALE__)
-#     define BOOST_NO_TWO_PHASE_NAME_LOOKUP
-#     define BOOST_NO_IS_ABSTRACT
-#  endif
-
-#  if __GNUC_MINOR__ < 4
-#     define BOOST_NO_IS_ABSTRACT
-#  endif
-#  define BOOST_NO_CXX11_EXTERN_TEMPLATE
-#endif
-#if __GNUC__ < 4
-//
-// All problems to gcc-3.x and earlier here:
-//
-#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
-#  ifdef __OPEN64__
-#     define BOOST_NO_IS_ABSTRACT
-#  endif
-#endif
-
-// GCC prior to 3.4 had #pragma once too but it didn't work well with filesystem links
-#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
-#define BOOST_HAS_PRAGMA_ONCE
-#endif
-
-#if __GNUC__ < 4 || ( __GNUC__ == 4 && __GNUC_MINOR__ < 4 )
-// Previous versions of GCC did not completely implement value-initialization:
-// GCC Bug 30111, "Value-initialization of POD base class doesn't initialize
-// members", reported by Jonathan Wakely in 2006,
-// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30111 (fixed for GCC 4.4)
-// GCC Bug 33916, "Default constructor fails to initialize array members",
-// reported by Michael Elizabeth Chastain in 2007,
-// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33916 (fixed for GCC 4.2.4)
-// See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
-#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
-#endif
-
-#if !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
-# define BOOST_NO_EXCEPTIONS
-#endif
-
-
-//
-// Threading support: Turn this on unconditionally here (except for
-// those platforms where we can know for sure). It will get turned off again
-// later if no threading API is detected.
-//
-#if !defined(__MINGW32__) && !defined(linux) && !defined(__linux) && !defined(__linux__)
-# define BOOST_HAS_THREADS
-#endif
-
-//
-// gcc has "long long"
-//
-#define BOOST_HAS_LONG_LONG
-
-//
-// gcc implements the named return value optimization since version 3.1
-//
-#define BOOST_HAS_NRVO
-
-// Branch prediction hints
-#define BOOST_LIKELY(x) __builtin_expect(x, 1)
-#define BOOST_UNLIKELY(x) __builtin_expect(x, 0)
-
-//
-// Dynamic shared object (DSO) and dynamic-link library (DLL) support
-//
-#if __GNUC__ >= 4
-#  if (defined(_WIN32) || defined(__WIN32__) || defined(WIN32)) && !defined(__CYGWIN__)
-     // All Win32 development environments, including 64-bit Windows and MinGW, define
-     // _WIN32 or one of its variant spellings. Note that Cygwin is a POSIX environment,
-     // so does not define _WIN32 or its variants.
-#    define BOOST_HAS_DECLSPEC
-#    define BOOST_SYMBOL_EXPORT __attribute__((__dllexport__))
-#    define BOOST_SYMBOL_IMPORT __attribute__((__dllimport__))
-#  else
-#    define BOOST_SYMBOL_EXPORT __attribute__((__visibility__("default")))
-#    define BOOST_SYMBOL_IMPORT
-#  endif
-#  define BOOST_SYMBOL_VISIBLE __attribute__((__visibility__("default")))
-#else
-// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined
-#  define BOOST_SYMBOL_EXPORT
-#endif
-
-//
-// RTTI and typeinfo detection is possible post gcc-4.3:
-//
-#if __GNUC__ * 100 + __GNUC_MINOR__ >= 403
-#  ifndef __GXX_RTTI
-#     ifndef BOOST_NO_TYPEID
-#        define BOOST_NO_TYPEID
-#     endif
-#     ifndef BOOST_NO_RTTI
-#        define BOOST_NO_RTTI
-#     endif
-#  endif
-#endif
-
-//
-// Recent GCC versions have __int128 when in 64-bit mode.
-//
-// We disable this if the compiler is really nvcc as it
-// doesn't actually support __int128 as of CUDA_VERSION=5000
-// even though it defines __SIZEOF_INT128__.
-// See https://svn.boost.org/trac/boost/ticket/8048
-// Only re-enable this for nvcc if you're absolutely sure
-// of the circumstances under which it's supported:
-//
-#if defined(__SIZEOF_INT128__) && !defined(__CUDACC__)
-#  define BOOST_HAS_INT128
-#endif
-
-// C++0x features in 4.3.n and later
-//
-#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 2)) && defined(__GXX_EXPERIMENTAL_CXX0X__)
-// C++0x features are only enabled when -std=c++0x or -std=gnu++0x are
-// passed on the command line, which in turn defines
-// __GXX_EXPERIMENTAL_CXX0X__.
-#  define BOOST_HAS_DECLTYPE
-#  define BOOST_HAS_RVALUE_REFS
-#  define BOOST_HAS_STATIC_ASSERT
-#  define BOOST_HAS_VARIADIC_TMPL
-#else
-#  define BOOST_NO_CXX11_DECLTYPE
-#  define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
-#  define BOOST_NO_CXX11_RVALUE_REFERENCES
-#  define BOOST_NO_CXX11_STATIC_ASSERT
-
-// Variadic templates compiler:
-//   http://www.generic-programming.org/~dgregor/cpp/variadic-templates.html
-#  if defined(__VARIADIC_TEMPLATES) || (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4) && defined(__GXX_EXPERIMENTAL_CXX0X__))
-#    define BOOST_HAS_VARIADIC_TMPL
-#  else
-#    define BOOST_NO_CXX11_VARIADIC_TEMPLATES
-#  endif
-#endif
-
-// C++0x features in 4.4.n and later
-//
-#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 4) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
-#  define BOOST_NO_CXX11_AUTO_DECLARATIONS
-#  define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
-#  define BOOST_NO_CXX11_CHAR16_T
-#  define BOOST_NO_CXX11_CHAR32_T
-#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#  define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#  define BOOST_NO_CXX11_DELETED_FUNCTIONS
-#  define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
-#  define BOOST_NO_CXX11_INLINE_NAMESPACES
-#endif
-
-#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5)
-#  define BOOST_NO_SFINAE_EXPR
-#endif
-
-// GCC 4.5 forbids declaration of defaulted functions in private or protected sections
-#if !defined(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS) && (__GNUC__ == 4 && __GNUC_MINOR__ <= 5)
-#  define BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS
-#endif
-
-// C++0x features in 4.5.0 and later
-//
-#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
-#  define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
-#  define BOOST_NO_CXX11_LAMBDAS
-#  define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
-#  define BOOST_NO_CXX11_RAW_LITERALS
-#  define BOOST_NO_CXX11_UNICODE_LITERALS
-#endif
-
-// C++0x features in 4.5.1 and later
-//
-#if (__GNUC__*10000 + __GNUC_MINOR__*100 + __GNUC_PATCHLEVEL__ < 40501) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
-// scoped enums have a serious bug in 4.4.0, so define BOOST_NO_CXX11_SCOPED_ENUMS before 4.5.1
-// See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38064
-#  define BOOST_NO_CXX11_SCOPED_ENUMS
-#endif
-
-// C++0x features in 4.6.n and later
-//
-#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 6) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
-#define BOOST_NO_CXX11_CONSTEXPR
-#define BOOST_NO_CXX11_NOEXCEPT
-#define BOOST_NO_CXX11_NULLPTR
-#define BOOST_NO_CXX11_RANGE_BASED_FOR
-#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
-#endif
-
-// C++0x features in 4.7.n and later
-//
-#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 7) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
-#  define BOOST_NO_CXX11_TEMPLATE_ALIASES
-#  define BOOST_NO_CXX11_USER_DEFINED_LITERALS
-#endif
-
-// C++0x features in 4.8.n and later
-//
-#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 8) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
-#  define BOOST_NO_CXX11_ALIGNAS
-#endif
-
-// C++0x features in 4.8.1 and later
-//
-#if (__GNUC__*10000 + __GNUC_MINOR__*100 + __GNUC_PATCHLEVEL__ < 40801) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
-#  define BOOST_NO_CXX11_DECLTYPE_N3276
-#endif
-
-#ifndef BOOST_COMPILER
-#  define BOOST_COMPILER "GNU C++ version " __VERSION__
-#endif
-
-// ConceptGCC compiler:
-//   http://www.generic-programming.org/software/ConceptGCC/
-#ifdef __GXX_CONCEPTS__
-#  define BOOST_HAS_CONCEPTS
-#  define BOOST_COMPILER "ConceptGCC version " __VERSION__
-#endif
-
-// versions check:
-// we don't know gcc prior to version 3.30:
-#if (__GNUC__ < 3) || (__GNUC__ == 3 && (__GNUC_MINOR__ < 3))
-#  error "Compiler not configured - please reconfigure"
-#endif
-//
-// last known and checked version is 4.6 (Pre-release):
-#if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 6))
-#  if defined(BOOST_ASSERT_CONFIG)
-#     error "Unknown compiler version - please run the configure tests and report the results"
-#  else
-// we don't emit warnings here anymore since there are no defect macros defined for
-// gcc post 3.4, so any failures are gcc regressions...
-//#     warning "Unknown compiler version - please run the configure tests and report the results"
-#  endif
-#endif
-
-
diff --git a/boost/config/compiler/gcc_xml.hpp b/boost/config/compiler/gcc_xml.hpp
deleted file mode 100644
index d2e0c74..0000000
--- a/boost/config/compiler/gcc_xml.hpp
+++ /dev/null
@@ -1,64 +0,0 @@
-//  (C) Copyright John Maddock 2006.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org for most recent version.
-
-//  GCC-XML C++ compiler setup:
-
-#  if !defined(__GCCXML_GNUC__) || ((__GCCXML_GNUC__ <= 3) && (__GCCXML_GNUC_MINOR__ <= 3))
-#     define BOOST_NO_IS_ABSTRACT
-#  endif
-
-//
-// Threading support: Turn this on unconditionally here (except for
-// those platforms where we can know for sure). It will get turned off again
-// later if no threading API is detected.
-//
-#if !defined(__MINGW32__) && !defined(_MSC_VER) && !defined(linux) && !defined(__linux) && !defined(__linux__)
-# define BOOST_HAS_THREADS
-#endif
-
-//
-// gcc has "long long"
-//
-#define BOOST_HAS_LONG_LONG
-
-// C++0x features:
-//
-#  define BOOST_NO_CXX11_CONSTEXPR
-#  define BOOST_NO_CXX11_NULLPTR
-#  define BOOST_NO_CXX11_TEMPLATE_ALIASES
-#  define BOOST_NO_CXX11_DECLTYPE
-#  define BOOST_NO_CXX11_DECLTYPE_N3276
-#  define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
-#  define BOOST_NO_CXX11_RVALUE_REFERENCES
-#  define BOOST_NO_CXX11_STATIC_ASSERT
-#  define BOOST_NO_CXX11_VARIADIC_TEMPLATES
-#  define BOOST_NO_CXX11_VARIADIC_MACROS
-#  define BOOST_NO_CXX11_AUTO_DECLARATIONS
-#  define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
-#  define BOOST_NO_CXX11_CHAR16_T
-#  define BOOST_NO_CXX11_CHAR32_T
-#  define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#  define BOOST_NO_CXX11_DELETED_FUNCTIONS
-#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#  define BOOST_NO_CXX11_SCOPED_ENUMS
-#  define BOOST_NO_SFINAE_EXPR
-#  define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
-#  define BOOST_NO_CXX11_LAMBDAS
-#  define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
-#  define BOOST_NO_CXX11_RANGE_BASED_FOR
-#  define BOOST_NO_CXX11_RAW_LITERALS
-#  define BOOST_NO_CXX11_UNICODE_LITERALS
-#  define BOOST_NO_CXX11_NOEXCEPT
-#  define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
-#  define BOOST_NO_CXX11_USER_DEFINED_LITERALS
-#  define BOOST_NO_CXX11_ALIGNAS
-#  define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
-#  define BOOST_NO_CXX11_INLINE_NAMESPACES
-
-#define BOOST_COMPILER "GCC-XML C++ version " __GCCXML__
-
-
diff --git a/boost/config/compiler/greenhills.hpp b/boost/config/compiler/greenhills.hpp
deleted file mode 100644
index 038b6b2..0000000
--- a/boost/config/compiler/greenhills.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-//  (C) Copyright John Maddock 2001. 
-//  Use, modification and distribution are subject to the 
-//  Boost Software License, Version 1.0. (See accompanying file 
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org for most recent version.
-
-//  Greenhills C++ compiler setup:
-
-#define BOOST_COMPILER "Greenhills C++ version " BOOST_STRINGIZE(__ghs)
-
-#include "boost/config/compiler/common_edg.hpp"
-
-//
-// versions check:
-// we don't support Greenhills prior to version 0:
-#if __ghs < 0
-#  error "Compiler not supported or configured - please reconfigure"
-#endif
-//
-// last known and checked version is 0:
-#if (__ghs > 0)
-#  if defined(BOOST_ASSERT_CONFIG)
-#     error "Unknown compiler version - please run the configure tests and report the results"
-#  endif
-#endif
-
-
diff --git a/boost/config/compiler/hp_acc.hpp b/boost/config/compiler/hp_acc.hpp
deleted file mode 100644
index f08dca4..0000000
--- a/boost/config/compiler/hp_acc.hpp
+++ /dev/null
@@ -1,144 +0,0 @@
-//  (C) Copyright John Maddock 2001 - 2003.
-//  (C) Copyright Jens Maurer 2001 - 2003.
-//  (C) Copyright Aleksey Gurtovoy 2002.
-//  (C) Copyright David Abrahams 2002 - 2003.
-//  (C) Copyright Toon Knapen 2003.
-//  (C) Copyright Boris Gubenko 2006 - 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org for most recent version.
-
-//  HP aCC C++ compiler setup:
-
-#if defined(__EDG__)
-#include "boost/config/compiler/common_edg.hpp"
-#endif
-
-#if (__HP_aCC <= 33100)
-#    define BOOST_NO_INTEGRAL_INT64_T
-#    define BOOST_NO_OPERATORS_IN_NAMESPACE
-#  if !defined(_NAMESPACE_STD)
-#     define BOOST_NO_STD_LOCALE
-#     define BOOST_NO_STRINGSTREAM
-#  endif
-#endif
-
-#if (__HP_aCC <= 33300)
-// member templates are sufficiently broken that we disable them for now
-#    define BOOST_NO_MEMBER_TEMPLATES
-#    define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
-#    define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
-#endif
-
-#if (__HP_aCC <= 38000)
-#  define BOOST_NO_TWO_PHASE_NAME_LOOKUP
-#endif
-
-#if (__HP_aCC > 50000) && (__HP_aCC < 60000)
-#    define BOOST_NO_UNREACHABLE_RETURN_DETECTION
-#    define BOOST_NO_TEMPLATE_TEMPLATES
-#    define BOOST_NO_SWPRINTF
-#    define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
-#    define BOOST_NO_IS_ABSTRACT
-#    define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
-#endif
-
-// optional features rather than defects:
-#if (__HP_aCC >= 33900)
-#    define BOOST_HAS_LONG_LONG
-#    define BOOST_HAS_PARTIAL_STD_ALLOCATOR
-#endif
-
-#if (__HP_aCC >= 50000 ) && (__HP_aCC <= 53800 ) || (__HP_aCC < 31300 )
-#    define BOOST_NO_MEMBER_TEMPLATE_KEYWORD
-#endif
-
-// This macro should not be defined when compiling in strict ansi
-// mode, but, currently, we don't have the ability to determine
-// what standard mode we are compiling with. Some future version
-// of aCC6 compiler will provide predefined macros reflecting the
-// compilation options, including the standard mode.
-#if (__HP_aCC >= 60000) || ((__HP_aCC > 38000) && defined(__hpxstd98))
-#    define BOOST_NO_TWO_PHASE_NAME_LOOKUP
-#endif
-
-#define BOOST_COMPILER "HP aCC version " BOOST_STRINGIZE(__HP_aCC)
-
-//
-// versions check:
-// we don't support HP aCC prior to version 33000:
-#if __HP_aCC < 33000
-#  error "Compiler not supported or configured - please reconfigure"
-#endif
-
-//
-// Extended checks for supporting aCC on PA-RISC
-#if __HP_aCC > 30000 && __HP_aCC < 50000
-#  if __HP_aCC < 38000
-      // versions prior to version A.03.80 not supported
-#     error "Compiler version not supported - version A.03.80 or higher is required"
-#  elif !defined(__hpxstd98)
-      // must compile using the option +hpxstd98 with version A.03.80 and above
-#     error "Compiler option '+hpxstd98' is required for proper support"
-#  endif //PA-RISC
-#endif
-
-//
-// C++0x features
-//
-//   See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
-//
-#if !defined(__EDG__)
-
-#define BOOST_NO_CXX11_AUTO_DECLARATIONS
-#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
-#define BOOST_NO_CXX11_CHAR16_T
-#define BOOST_NO_CXX11_CHAR32_T
-#define BOOST_NO_CXX11_CONSTEXPR
-#define BOOST_NO_CXX11_DECLTYPE
-#define BOOST_NO_CXX11_DECLTYPE_N3276
-#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#define BOOST_NO_CXX11_DELETED_FUNCTIONS
-#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
-#define BOOST_NO_CXX11_EXTERN_TEMPLATE
-#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
-#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#define BOOST_NO_CXX11_LAMBDAS
-#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
-#define BOOST_NO_CXX11_NOEXCEPT
-#define BOOST_NO_CXX11_NULLPTR
-#define BOOST_NO_CXX11_RANGE_BASED_FOR
-#define BOOST_NO_CXX11_RAW_LITERALS
-#define BOOST_NO_CXX11_RVALUE_REFERENCES
-#define BOOST_NO_CXX11_SCOPED_ENUMS
-#define BOOST_NO_SFINAE_EXPR
-#define BOOST_NO_CXX11_STATIC_ASSERT
-#define BOOST_NO_CXX11_TEMPLATE_ALIASES
-#define BOOST_NO_CXX11_UNICODE_LITERALS
-#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
-#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
-#define BOOST_NO_CXX11_ALIGNAS
-#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
-#define BOOST_NO_CXX11_INLINE_NAMESPACES
-
-/*
-  See https://forums13.itrc.hp.com/service/forums/questionanswer.do?threadId=1443331 and
-      https://forums13.itrc.hp.com/service/forums/questionanswer.do?threadId=1443436
-*/
-
-#if (__HP_aCC < 62500) || !defined(HP_CXX0x_SOURCE)
-  #define BOOST_NO_CXX11_VARIADIC_MACROS
-#endif
-
-#endif
-
-//
-// last known and checked version for HP-UX/ia64 is 61300
-// last known and checked version for PA-RISC is 38000
-#if ((__HP_aCC > 61300) || ((__HP_aCC > 38000) && defined(__hpxstd98)))
-#  if defined(BOOST_ASSERT_CONFIG)
-#     error "Unknown compiler version - please run the configure tests and report the results"
-#  endif
-#endif
diff --git a/boost/config/compiler/intel.hpp b/boost/config/compiler/intel.hpp
deleted file mode 100644
index 3f0eaa1..0000000
--- a/boost/config/compiler/intel.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-//  (C) Copyright John Maddock 2001-8.
-//  (C) Copyright Peter Dimov 2001.
-//  (C) Copyright Jens Maurer 2001.
-//  (C) Copyright David Abrahams 2002 - 2003.
-//  (C) Copyright Aleksey Gurtovoy 2002 - 2003.
-//  (C) Copyright Guillaume Melquiond 2002 - 2003.
-//  (C) Copyright Beman Dawes 2003.
-//  (C) Copyright Martin Wille 2003.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org for most recent version.
-
-//  Intel compiler setup:
-
-#include "boost/config/compiler/common_edg.hpp"
-
-#if defined(__INTEL_COMPILER)
-#  define BOOST_INTEL_CXX_VERSION __INTEL_COMPILER
-#elif defined(__ICL)
-#  define BOOST_INTEL_CXX_VERSION __ICL
-#elif defined(__ICC)
-#  define BOOST_INTEL_CXX_VERSION __ICC
-#elif defined(__ECC)
-#  define BOOST_INTEL_CXX_VERSION __ECC
-#endif
-
-// Flags determined by comparing output of 'icpc -dM -E' with and without '-std=c++0x'
-#if (!(defined(_WIN32) || defined(_WIN64)) && defined(__STDC_HOSTED__) && (__STDC_HOSTED__ && (BOOST_INTEL_CXX_VERSION <= 1200))) || defined(__GXX_EXPERIMENTAL_CPP0X__) || defined(__GXX_EXPERIMENTAL_CXX0X__)
-#  define BOOST_INTEL_STDCXX0X
-#endif
-#if defined(_MSC_VER) && (_MSC_VER >= 1600)
-#  define BOOST_INTEL_STDCXX0X
-#endif
-
-#ifdef BOOST_INTEL_STDCXX0X
-#define BOOST_COMPILER "Intel C++ C++0x mode version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION)
-#else
-#define BOOST_COMPILER "Intel C++ version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION)
-#endif
-#define BOOST_INTEL BOOST_INTEL_CXX_VERSION
-
-#if defined(_WIN32) || defined(_WIN64)
-#  define BOOST_INTEL_WIN BOOST_INTEL
-#else
-#  define BOOST_INTEL_LINUX BOOST_INTEL
-#endif
-
-#if (BOOST_INTEL_CXX_VERSION <= 600)
-
-#  if defined(_MSC_VER) && (_MSC_VER <= 1300) // added check for <= VC 7 (Peter Dimov)
-
-// Boost libraries assume strong standard conformance unless otherwise
-// indicated by a config macro. As configured by Intel, the EDG front-end
-// requires certain compiler options be set to achieve that strong conformance.
-// Particularly /Qoption,c,--arg_dep_lookup (reported by Kirk Klobe & Thomas Witt)
-// and /Zc:wchar_t,forScope. See boost-root/tools/build/intel-win32-tools.jam for
-// details as they apply to particular versions of the compiler. When the
-// compiler does not predefine a macro indicating if an option has been set,
-// this config file simply assumes the option has been set.
-// Thus BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP will not be defined, even if
-// the compiler option is not enabled.
-
-#     define BOOST_NO_SWPRINTF
-#  endif
-
-// Void returns, 64 bit integrals don't work when emulating VC 6 (Peter Dimov)
-
-#  if defined(_MSC_VER) && (_MSC_VER <= 1200)
-#     define BOOST_NO_VOID_RETURNS
-#     define BOOST_NO_INTEGRAL_INT64_T
-#  endif
-
-#endif
-
-#if (BOOST_INTEL_CXX_VERSION <= 710) && defined(_WIN32)
-#  define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
-#endif
-
-// See http://aspn.activestate.com/ASPN/Mail/Message/boost/1614864
-#if BOOST_INTEL_CXX_VERSION < 600
-#  define BOOST_NO_INTRINSIC_WCHAR_T
-#else
-// We should test the macro _WCHAR_T_DEFINED to check if the compiler
-// supports wchar_t natively. *BUT* there is a problem here: the standard
-// headers define this macro if they typedef wchar_t. Anyway, we're lucky
-// because they define it without a value, while Intel C++ defines it
-// to 1. So we can check its value to see if the macro was defined natively
-// or not.
-// Under UNIX, the situation is exactly the same, but the macro _WCHAR_T
-// is used instead.
-#  if ((_WCHAR_T_DEFINED + 0) == 0) && ((_WCHAR_T + 0) == 0)
-#    define BOOST_NO_INTRINSIC_WCHAR_T
-#  endif
-#endif
-
-#if defined(__GNUC__) && !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL)
-//
-// Figure out when Intel is emulating this gcc bug
-// (All Intel versions prior to 9.0.26, and versions
-// later than that if they are set up to emulate gcc 3.2
-// or earlier):
-//
-#  if ((__GNUC__ == 3) && (__GNUC_MINOR__ <= 2)) || (BOOST_INTEL < 900) || (__INTEL_COMPILER_BUILD_DATE < 20050912)
-#     define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
-#  endif
-#endif
-#if (defined(__GNUC__) && (__GNUC__ < 4)) || (defined(_WIN32) && (BOOST_INTEL_CXX_VERSION <= 1200)) || (BOOST_INTEL_CXX_VERSION <= 1200)
-// GCC or VC emulation:
-#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
-#endif
-//
-// Verify that we have actually got BOOST_NO_INTRINSIC_WCHAR_T
-// set correctly, if we don't do this now, we will get errors later
-// in type_traits code among other things, getting this correct
-// for the Intel compiler is actually remarkably fragile and tricky:
-//
-#ifdef __cplusplus
-#if defined(BOOST_NO_INTRINSIC_WCHAR_T)
-#include <cwchar>
-template< typename T > struct assert_no_intrinsic_wchar_t;
-template<> struct assert_no_intrinsic_wchar_t<wchar_t> { typedef void type; };
-// if you see an error here then you need to unset BOOST_NO_INTRINSIC_WCHAR_T
-// where it is defined above:
-typedef assert_no_intrinsic_wchar_t<unsigned short>::type assert_no_intrinsic_wchar_t_;
-#else
-template< typename T > struct assert_intrinsic_wchar_t;
-template<> struct assert_intrinsic_wchar_t<wchar_t> {};
-// if you see an error here then define BOOST_NO_INTRINSIC_WCHAR_T on the command line:
-template<> struct assert_intrinsic_wchar_t<unsigned short> {};
-#endif
-#endif
-
-#if defined(_MSC_VER) && (_MSC_VER+0 >= 1000)
-#  if _MSC_VER >= 1200
-#     define BOOST_HAS_MS_INT64
-#  endif
-#  define BOOST_NO_SWPRINTF
-#  define BOOST_NO_TWO_PHASE_NAME_LOOKUP
-#elif defined(_WIN32)
-#  define BOOST_DISABLE_WIN32
-#endif
-
-// I checked version 6.0 build 020312Z, it implements the NRVO.
-// Correct this as you find out which version of the compiler
-// implemented the NRVO first.  (Daniel Frey)
-#if (BOOST_INTEL_CXX_VERSION >= 600)
-#  define BOOST_HAS_NRVO
-#endif
-
-// Branch prediction hints
-// I'm not sure 8.0 was the first version to support these builtins,
-// update the condition if the version is not accurate. (Andrey Semashev)
-#if defined(__GNUC__) && BOOST_INTEL_CXX_VERSION >= 800
-#define BOOST_LIKELY(x) __builtin_expect(x, 1)
-#define BOOST_UNLIKELY(x) __builtin_expect(x, 0)
-#endif
-
-//
-// versions check:
-// we don't support Intel prior to version 6.0:
-#if BOOST_INTEL_CXX_VERSION < 600
-#  error "Compiler not supported or configured - please reconfigure"
-#endif
-
-// Intel on MacOS requires
-#if defined(__APPLE__) && defined(__INTEL_COMPILER)
-#  define BOOST_NO_TWO_PHASE_NAME_LOOKUP
-#endif
-
-// Intel on Altix Itanium
-#if defined(__itanium__) && defined(__INTEL_COMPILER)
-#  define BOOST_NO_TWO_PHASE_NAME_LOOKUP
-#endif
-
-//
-// An attempt to value-initialize a pointer-to-member may trigger an
-// internal error on Intel <= 11.1 (last checked version), as was
-// reported by John Maddock, Intel support issue 589832, May 2010.
-// Moreover, according to test results from Huang-Vista-x86_32_intel,
-// intel-vc9-win-11.1 may leave a non-POD array uninitialized, in some
-// cases when it should be value-initialized.
-// (Niels Dekker, LKEB, May 2010)
-// Apparently Intel 12.1 (compiler version number 9999 !!) has the same issue (compiler regression).
-#if defined(__INTEL_COMPILER)
-#  if (__INTEL_COMPILER <= 1110) || (__INTEL_COMPILER == 9999) || (defined(_WIN32) && (__INTEL_COMPILER < 1500))
-#    define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
-#  endif
-#endif
-
-//
-// Dynamic shared object (DSO) and dynamic-link library (DLL) support
-//
-#if defined(__GNUC__) && (__GNUC__ >= 4)
-#  define BOOST_SYMBOL_EXPORT __attribute__((visibility("default")))
-#  define BOOST_SYMBOL_IMPORT
-#  define BOOST_SYMBOL_VISIBLE __attribute__((visibility("default")))
-#endif
-//
-// C++0x features
-//     - ICC added static_assert in 11.0 (first version with C++0x support)
-//
-#if defined(BOOST_INTEL_STDCXX0X)
-#  undef  BOOST_NO_CXX11_STATIC_ASSERT
-//
-// These pass our test cases, but aren't officially supported according to:
-// http://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler/
-//
-//#  undef  BOOST_NO_CXX11_LAMBDAS
-//#  undef  BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
-//#  undef  BOOST_NO_CXX11_DECLTYPE
-//#  undef  BOOST_NO_CXX11_AUTO_DECLARATIONS
-//#  undef  BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
-#endif
-
-#if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION >= 1200)
-//#  undef  BOOST_NO_CXX11_RVALUE_REFERENCES // Enabling this breaks Filesystem and Exception libraries
-//#  undef  BOOST_NO_CXX11_SCOPED_ENUMS  // doesn't really work!!
-#  undef  BOOST_NO_CXX11_DELETED_FUNCTIONS
-#  undef  BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#  undef  BOOST_NO_CXX11_LAMBDAS
-#  undef  BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
-#  undef  BOOST_NO_CXX11_DECLTYPE
-#  undef  BOOST_NO_CXX11_AUTO_DECLARATIONS
-#  undef  BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
-#  undef  BOOST_NO_CXX11_TRAILING_RESULT_TYPES
-#endif
-
-// icl Version 12.1.0.233 Build 20110811 and possibly some other builds
-// had an incorrect __INTEL_COMPILER value of 9999. Intel say this has been fixed.
-#if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION > 1200)
-#  undef  BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
-#  undef  BOOST_NO_CXX11_NULLPTR
-#  undef  BOOST_NO_CXX11_RVALUE_REFERENCES
-#  undef  BOOST_NO_SFINAE_EXPR
-#  undef  BOOST_NO_CXX11_TEMPLATE_ALIASES
-#  undef  BOOST_NO_CXX11_VARIADIC_TEMPLATES
-
-// http://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler/
-// continues to list scoped enum support as "Partial"
-//#  undef  BOOST_NO_CXX11_SCOPED_ENUMS
-#endif
-#if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION >= 1310) && !defined(_MSC_VER)
-#  undef BOOST_NO_CXX11_INLINE_NAMESPACES
-#  undef BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
-// This one generates internal compiler errors in multiprecision, disabled for now:
-//#  undef BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS  
-// This one generates errors when used with conditional exception specifications, for example in multiprecision:
-//#  undef BOOST_NO_CXX11_NOEXCEPT
-#  undef BOOST_NO_CXX11_RANGE_BASED_FOR
-#  undef BOOST_NO_CXX11_SCOPED_ENUMS
-#  undef BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
-#endif
-#if (BOOST_INTEL_CXX_VERSION >= 1310)
-#  undef  BOOST_NO_SFINAE_EXPR
-#endif
-#if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION >= 1400) && !defined(_MSC_VER)
-#  undef BOOST_NO_CXX11_UNICODE_LITERALS 
-#  undef BOOST_NO_CXX11_RAW_LITERALS 
-// This one generates errors when used with conditional exception specifications, for example in multiprecision:
-//#  undef BOOST_NO_CXX11_NOEXCEPT 
-// This breaks multiprecision:
-//#  undef BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS 
-#  undef BOOST_NO_CXX11_HDR_THREAD 
-#  undef BOOST_NO_CXX11_CHAR32_T 
-#  undef BOOST_NO_CXX11_CHAR16_T
-#endif
-
-#if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION <= 1310)
-#  define BOOST_NO_CXX11_HDR_FUTURE
-#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#endif
-
-#if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION == 1400)
-// A regression in Intel's compiler means that <tuple> seems to be broken in this release as well as <future> :
-#  define BOOST_NO_CXX11_HDR_FUTURE
-#  define BOOST_NO_CXX11_HDR_TUPLE
-#endif
-
-#if defined(_MSC_VER) && (_MSC_VER <= 1700)
-//
-// Although the Intel compiler is capable of supporting these, it appears not to in MSVC compatibility mode:
-//
-#  define  BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#  define  BOOST_NO_CXX11_VARIADIC_TEMPLATES
-#  define  BOOST_NO_CXX11_DELETED_FUNCTIONS
-#  define  BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#  define  BOOST_NO_CXX11_TEMPLATE_ALIASES
-#  if(BOOST_INTEL_CXX_VERSION < 1310)
-#     define  BOOST_NO_CXX11_TRAILING_RESULT_TYPES
-#  endif
-#endif
-
-#if (BOOST_INTEL_CXX_VERSION < 1200)
-//
-// fenv.h appears not to work with Intel prior to 12.0:
-//
-#  define BOOST_NO_FENV_H
-#endif
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1600)
-#  define BOOST_HAS_STDINT_H
-#endif
-
-#if defined(__LP64__) && defined(__GNUC__) && (BOOST_INTEL_CXX_VERSION >= 1310)
-#  define BOOST_HAS_INT128
-#endif
-
-//
-// last known and checked version:
-#if (BOOST_INTEL_CXX_VERSION > 1310)
-#  if defined(BOOST_ASSERT_CONFIG)
-#     error "Unknown compiler version - please run the configure tests and report the results"
-#  elif defined(_MSC_VER)
-//
-//      We don't emit this warning any more, since we have so few
-//      defect macros set anyway (just the one).
-//
-//#     pragma message("Unknown compiler version - please run the configure tests and report the results")
-#  endif
-#endif
-
diff --git a/boost/config/compiler/kai.hpp b/boost/config/compiler/kai.hpp
deleted file mode 100644
index 2337e6a..0000000
--- a/boost/config/compiler/kai.hpp
+++ /dev/null
@@ -1,33 +0,0 @@
-//  (C) Copyright John Maddock 2001. 
-//  (C) Copyright David Abrahams 2002. 
-//  (C) Copyright Aleksey Gurtovoy 2002. 
-//  Use, modification and distribution are subject to the 
-//  Boost Software License, Version 1.0. (See accompanying file 
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org for most recent version.
-
-//  Kai C++ compiler setup:
-
-#include "boost/config/compiler/common_edg.hpp"
-
-#   if (__KCC_VERSION <= 4001) || !defined(BOOST_STRICT_CONFIG)
-      // at least on Sun, the contents of <cwchar> is not in namespace std
-#     define BOOST_NO_STDC_NAMESPACE
-#   endif
-
-// see also common_edg.hpp which needs a special check for __KCC
-# if !defined(_EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
-#     define BOOST_NO_EXCEPTIONS
-# endif
-
-//
-// last known and checked version is 4001:
-#if (__KCC_VERSION > 4001)
-#  if defined(BOOST_ASSERT_CONFIG)
-#     error "Unknown compiler version - please run the configure tests and report the results"
-#  endif
-#endif
-
-
-
diff --git a/boost/config/compiler/metrowerks.hpp b/boost/config/compiler/metrowerks.hpp
deleted file mode 100644
index e172786..0000000
--- a/boost/config/compiler/metrowerks.hpp
+++ /dev/null
@@ -1,148 +0,0 @@
-//  (C) Copyright John Maddock 2001.
-//  (C) Copyright Darin Adler 2001.
-//  (C) Copyright Peter Dimov 2001.
-//  (C) Copyright David Abrahams 2001 - 2002.
-//  (C) Copyright Beman Dawes 2001 - 2003.
-//  (C) Copyright Stefan Slapeta 2004.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org for most recent version.
-
-//  Metrowerks C++ compiler setup:
-
-// locale support is disabled when linking with the dynamic runtime
-#   ifdef _MSL_NO_LOCALE
-#     define BOOST_NO_STD_LOCALE
-#   endif
-
-#   if __MWERKS__ <= 0x2301  // 5.3
-#     define BOOST_NO_FUNCTION_TEMPLATE_ORDERING
-#     define BOOST_NO_POINTER_TO_MEMBER_CONST
-#     define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
-#     define BOOST_NO_MEMBER_TEMPLATE_KEYWORD
-#   endif
-
-#   if __MWERKS__ <= 0x2401  // 6.2
-//#     define BOOST_NO_FUNCTION_TEMPLATE_ORDERING
-#   endif
-
-#   if(__MWERKS__ <= 0x2407)  // 7.x
-#     define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
-#     define BOOST_NO_UNREACHABLE_RETURN_DETECTION
-#   endif
-
-#   if(__MWERKS__ <= 0x3003)  // 8.x
-#     define BOOST_NO_SFINAE
-#    endif
-
-// the "|| !defined(BOOST_STRICT_CONFIG)" part should apply to the last
-// tested version *only*:
-#   if(__MWERKS__ <= 0x3207) || !defined(BOOST_STRICT_CONFIG) // 9.6
-#     define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
-#     define BOOST_NO_IS_ABSTRACT
-#    endif
-
-#if !__option(wchar_type)
-#   define BOOST_NO_INTRINSIC_WCHAR_T
-#endif
-
-#if !__option(exceptions) && !defined(BOOST_NO_EXCEPTIONS)
-#   define BOOST_NO_EXCEPTIONS
-#endif
-
-#if (__INTEL__ && _WIN32) || (__POWERPC__ && macintosh)
-#   if __MWERKS__ == 0x3000
-#     define BOOST_COMPILER_VERSION 8.0
-#   elif __MWERKS__ == 0x3001
-#     define BOOST_COMPILER_VERSION 8.1
-#   elif __MWERKS__ == 0x3002
-#     define BOOST_COMPILER_VERSION 8.2
-#   elif __MWERKS__ == 0x3003
-#     define BOOST_COMPILER_VERSION 8.3
-#   elif __MWERKS__ == 0x3200
-#     define BOOST_COMPILER_VERSION 9.0
-#   elif __MWERKS__ == 0x3201
-#     define BOOST_COMPILER_VERSION 9.1
-#   elif __MWERKS__ == 0x3202
-#     define BOOST_COMPILER_VERSION 9.2
-#   elif __MWERKS__ == 0x3204
-#     define BOOST_COMPILER_VERSION 9.3
-#   elif __MWERKS__ == 0x3205
-#     define BOOST_COMPILER_VERSION 9.4
-#   elif __MWERKS__ == 0x3206
-#     define BOOST_COMPILER_VERSION 9.5
-#   elif __MWERKS__ == 0x3207
-#     define BOOST_COMPILER_VERSION 9.6
-#   else
-#     define BOOST_COMPILER_VERSION __MWERKS__
-#   endif
-#else
-#  define BOOST_COMPILER_VERSION __MWERKS__
-#endif
-
-//
-// C++0x features
-//
-//   See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
-//
-#if __MWERKS__ > 0x3206 && __option(rvalue_refs)
-#  define BOOST_HAS_RVALUE_REFS
-#else
-#  define BOOST_NO_CXX11_RVALUE_REFERENCES
-#endif
-#define BOOST_NO_CXX11_AUTO_DECLARATIONS
-#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
-#define BOOST_NO_CXX11_CHAR16_T
-#define BOOST_NO_CXX11_CHAR32_T
-#define BOOST_NO_CXX11_CONSTEXPR
-#define BOOST_NO_CXX11_DECLTYPE
-#define BOOST_NO_CXX11_DECLTYPE_N3276
-#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#define BOOST_NO_CXX11_DELETED_FUNCTIONS
-#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
-#define BOOST_NO_CXX11_EXTERN_TEMPLATE
-#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
-#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#define BOOST_NO_CXX11_LAMBDAS
-#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
-#define BOOST_NO_CXX11_NOEXCEPT
-#define BOOST_NO_CXX11_NULLPTR
-#define BOOST_NO_CXX11_RANGE_BASED_FOR
-#define BOOST_NO_CXX11_RAW_LITERALS
-#define BOOST_NO_CXX11_SCOPED_ENUMS
-#define BOOST_NO_SFINAE_EXPR
-#define BOOST_NO_CXX11_STATIC_ASSERT
-#define BOOST_NO_CXX11_TEMPLATE_ALIASES
-#define BOOST_NO_CXX11_UNICODE_LITERALS
-#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
-#define BOOST_NO_CXX11_VARIADIC_MACROS
-#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
-#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
-#define BOOST_NO_CXX11_ALIGNAS
-#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
-#define BOOST_NO_CXX11_INLINE_NAMESPACES
-
-#define BOOST_COMPILER "Metrowerks CodeWarrior C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
-
-//
-// versions check:
-// we don't support Metrowerks prior to version 5.3:
-#if __MWERKS__ < 0x2301
-#  error "Compiler not supported or configured - please reconfigure"
-#endif
-//
-// last known and checked version:
-#if (__MWERKS__ > 0x3205)
-#  if defined(BOOST_ASSERT_CONFIG)
-#     error "Unknown compiler version - please run the configure tests and report the results"
-#  endif
-#endif
-
-
-
-
-
-
-
diff --git a/boost/config/compiler/mpw.hpp b/boost/config/compiler/mpw.hpp
deleted file mode 100644
index 6910467..0000000
--- a/boost/config/compiler/mpw.hpp
+++ /dev/null
@@ -1,90 +0,0 @@
-//  (C) Copyright John Maddock 2001 - 2002.
-//  (C) Copyright Aleksey Gurtovoy 2002.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org for most recent version.
-
-//  MPW C++ compilers setup:
-
-#   if    defined(__SC__)
-#     define BOOST_COMPILER "MPW SCpp version " BOOST_STRINGIZE(__SC__)
-#   elif defined(__MRC__)
-#     define BOOST_COMPILER "MPW MrCpp version " BOOST_STRINGIZE(__MRC__)
-#   else
-#     error "Using MPW compiler configuration by mistake.  Please update."
-#   endif
-
-//
-// MPW 8.90:
-//
-#if (MPW_CPLUS <= 0x890) || !defined(BOOST_STRICT_CONFIG)
-#  define BOOST_NO_CV_SPECIALIZATIONS
-#  define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
-#  define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
-#  define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
-#  define BOOST_NO_INTRINSIC_WCHAR_T
-#  define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#  define BOOST_NO_USING_TEMPLATE
-
-#  define BOOST_NO_CWCHAR
-#  define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-
-#  define BOOST_NO_STD_ALLOCATOR /* actually a bug with const reference overloading */
-
-#endif
-
-//
-// C++0x features
-//
-//   See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
-//
-#define BOOST_NO_CXX11_AUTO_DECLARATIONS
-#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
-#define BOOST_NO_CXX11_CHAR16_T
-#define BOOST_NO_CXX11_CHAR32_T
-#define BOOST_NO_CXX11_CONSTEXPR
-#define BOOST_NO_CXX11_DECLTYPE
-#define BOOST_NO_CXX11_DECLTYPE_N3276
-#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#define BOOST_NO_CXX11_DELETED_FUNCTIONS
-#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
-#define BOOST_NO_CXX11_EXTERN_TEMPLATE
-#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
-#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#define BOOST_NO_CXX11_LAMBDAS
-#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
-#define BOOST_NO_CXX11_NOEXCEPT
-#define BOOST_NO_CXX11_NULLPTR
-#define BOOST_NO_CXX11_RANGE_BASED_FOR
-#define BOOST_NO_CXX11_RAW_LITERALS
-#define BOOST_NO_CXX11_RVALUE_REFERENCES
-#define BOOST_NO_CXX11_SCOPED_ENUMS
-#define BOOST_NO_SFINAE_EXPR
-#define BOOST_NO_CXX11_STATIC_ASSERT
-#define BOOST_NO_CXX11_TEMPLATE_ALIASES
-#define BOOST_NO_CXX11_UNICODE_LITERALS
-#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
-#define BOOST_NO_CXX11_VARIADIC_MACROS
-#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
-#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
-#define BOOST_NO_CXX11_ALIGNAS
-#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
-#define BOOST_NO_CXX11_INLINE_NAMESPACES
-
-//
-// versions check:
-// we don't support MPW prior to version 8.9:
-#if MPW_CPLUS < 0x890
-#  error "Compiler not supported or configured - please reconfigure"
-#endif
-//
-// last known and checked version is 0x890:
-#if (MPW_CPLUS > 0x890)
-#  if defined(BOOST_ASSERT_CONFIG)
-#     error "Unknown compiler version - please run the configure tests and report the results"
-#  endif
-#endif
-
-
diff --git a/boost/config/compiler/nvcc.hpp b/boost/config/compiler/nvcc.hpp
deleted file mode 100644
index bbe81f6..0000000
--- a/boost/config/compiler/nvcc.hpp
+++ /dev/null
@@ -1,16 +0,0 @@
-//  (C) Copyright Eric Jourdanneau, Joel Falcou 2010
-//  Use, modification and distribution are subject to the 
-//  Boost Software License, Version 1.0. (See accompanying file 
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org for most recent version.
-
-//  NVIDIA CUDA C++ compiler setup
-
-#ifndef BOOST_COMPILER
-#  define BOOST_COMPILER "NVIDIA CUDA C++ Compiler"
-#endif
-
-// NVIDIA Specific support
-// BOOST_GPU_ENABLED : Flag a function or a method as being enabled on the host and device
-#define BOOST_GPU_ENABLED __host__ __device__
diff --git a/boost/config/compiler/pathscale.hpp b/boost/config/compiler/pathscale.hpp
deleted file mode 100644
index 567d83c..0000000
--- a/boost/config/compiler/pathscale.hpp
+++ /dev/null
@@ -1,83 +0,0 @@
-//  (C) Copyright Bryce Lelbach 2011
-
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org for most recent version.
-
-// PathScale EKOPath C++ Compiler
-
-#ifndef BOOST_COMPILER
-#  define BOOST_COMPILER "PathScale EKOPath C++ Compiler version " __PATHSCALE__
-#endif
-
-#if __PATHCC__ >= 4
-#  define BOOST_MSVC6_MEMBER_TEMPLATES
-#  define BOOST_HAS_UNISTD_H
-#  define BOOST_HAS_STDINT_H
-#  define BOOST_HAS_SIGACTION
-#  define BOOST_HAS_SCHED_YIELD
-#  define BOOST_HAS_THREADS
-#  define BOOST_HAS_PTHREADS
-#  define BOOST_HAS_PTHREAD_YIELD
-#  define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
-#  define BOOST_HAS_PARTIAL_STD_ALLOCATOR
-#  define BOOST_HAS_NRVO
-#  define BOOST_HAS_NL_TYPES_H
-#  define BOOST_HAS_NANOSLEEP
-#  define BOOST_HAS_LONG_LONG
-#  define BOOST_HAS_LOG1P
-#  define BOOST_HAS_GETTIMEOFDAY
-#  define BOOST_HAS_EXPM1
-#  define BOOST_HAS_DIRENT_H
-#  define BOOST_HAS_CLOCK_GETTIME
-#  define BOOST_NO_CXX11_VARIADIC_TEMPLATES
-#  define BOOST_NO_CXX11_UNICODE_LITERALS
-#  define BOOST_NO_CXX11_TEMPLATE_ALIASES
-#  define BOOST_NO_CXX11_STATIC_ASSERT
-#  define BOOST_NO_SFINAE_EXPR
-#  define BOOST_NO_CXX11_SCOPED_ENUMS
-#  define BOOST_NO_CXX11_RVALUE_REFERENCES
-#  define BOOST_NO_CXX11_RANGE_BASED_FOR
-#  define BOOST_NO_CXX11_RAW_LITERALS
-#  define BOOST_NO_CXX11_NULLPTR
-#  define BOOST_NO_CXX11_NUMERIC_LIMITS
-#  define BOOST_NO_CXX11_NOEXCEPT
-#  define BOOST_NO_CXX11_LAMBDAS
-#  define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
-#  define BOOST_NO_MS_INT64_NUMERIC_LIMITS
-#  define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
-#  define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
-#  define BOOST_NO_CXX11_DELETED_FUNCTIONS
-#  define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#  define BOOST_NO_CXX11_DECLTYPE
-#  define BOOST_NO_CXX11_DECLTYPE_N3276
-#  define BOOST_NO_CXX11_CONSTEXPR
-#  define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
-#  define BOOST_NO_CXX11_CHAR32_T
-#  define BOOST_NO_CXX11_CHAR16_T
-#  define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
-#  define BOOST_NO_CXX11_AUTO_DECLARATIONS
-#  define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
-#  define BOOST_NO_CXX11_HDR_UNORDERED_SET
-#  define BOOST_NO_CXX11_HDR_UNORDERED_MAP
-#  define BOOST_NO_CXX11_HDR_TYPEINDEX
-#  define BOOST_NO_CXX11_HDR_TUPLE
-#  define BOOST_NO_CXX11_HDR_THREAD
-#  define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
-#  define BOOST_NO_CXX11_HDR_REGEX
-#  define BOOST_NO_CXX11_HDR_RATIO
-#  define BOOST_NO_CXX11_HDR_RANDOM
-#  define BOOST_NO_CXX11_HDR_MUTEX
-#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#  define BOOST_NO_CXX11_HDR_FUTURE
-#  define BOOST_NO_CXX11_HDR_FORWARD_LIST
-#  define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
-#  define BOOST_NO_CXX11_HDR_CODECVT
-#  define BOOST_NO_CXX11_HDR_CHRONO
-#  define BOOST_NO_CXX11_USER_DEFINED_LITERALS
-#  define BOOST_NO_CXX11_ALIGNAS
-#  define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
-#  define BOOST_NO_CXX11_INLINE_NAMESPACES
-#endif
diff --git a/boost/config/compiler/pgi.hpp b/boost/config/compiler/pgi.hpp
deleted file mode 100644
index d50cbef..0000000
--- a/boost/config/compiler/pgi.hpp
+++ /dev/null
@@ -1,125 +0,0 @@
-//  (C) Copyright Noel Belcourt 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org for most recent version.
-
-//  PGI C++ compiler setup:
-
-#define BOOST_COMPILER_VERSION __PGIC__##__PGIC_MINOR__
-#define BOOST_COMPILER "PGI compiler version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
-
-//
-// Threading support:
-// Turn this on unconditionally here, it will get turned off again later
-// if no threading API is detected.
-//
-
-#if __PGIC__ >= 11
-
-// options requested by configure --enable-test
-#define BOOST_HAS_PTHREADS
-#define BOOST_HAS_THREADS
-#define BOOST_HAS_PTHREAD_YIELD
-#define BOOST_HAS_NRVO
-#define BOOST_HAS_LONG_LONG
-
-// options --enable-test wants undefined
-#undef BOOST_NO_STDC_NAMESPACE
-#undef BOOST_NO_EXCEPTION_STD_NAMESPACE
-#undef BOOST_DEDUCED_TYPENAME
-
-#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
-#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
-#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
-#define BOOST_NO_CXX11_AUTO_DECLARATIONS
-
-#elif __PGIC__ >= 10
-
-// options requested by configure --enable-test
-#define BOOST_HAS_THREADS
-#define BOOST_HAS_NRVO
-#define BOOST_HAS_LONG_LONG
-#if defined(linux) || defined(__linux) || defined(__linux__)
-#  define BOOST_HAS_STDINT_H
-#endif
-
-// options --enable-test wants undefined
-#undef BOOST_NO_STDC_NAMESPACE
-#undef BOOST_NO_EXCEPTION_STD_NAMESPACE
-#undef BOOST_DEDUCED_TYPENAME
-
-#elif __PGIC__ >= 7
-
-#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
-#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
-#define BOOST_NO_SWPRINTF
-#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
-#define BOOST_NO_CXX11_AUTO_DECLARATIONS
-
-#else
-
-#  error "Pgi compiler not configured - please reconfigure"
-
-#endif
-//
-// C++0x features
-//
-//   See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
-//
-#define BOOST_NO_CXX11_CHAR16_T
-#define BOOST_NO_CXX11_CHAR32_T
-#define BOOST_NO_CXX11_CONSTEXPR
-#define BOOST_NO_CXX11_DECLTYPE
-#define BOOST_NO_CXX11_DECLTYPE_N3276
-#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#define BOOST_NO_CXX11_DELETED_FUNCTIONS
-#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
-#define BOOST_NO_CXX11_EXTERN_TEMPLATE
-#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
-#define BOOST_NO_CXX11_LAMBDAS
-#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
-#define BOOST_NO_CXX11_NOEXCEPT
-#define BOOST_NO_CXX11_NULLPTR
-#define BOOST_NO_CXX11_NUMERIC_LIMITS
-#define BOOST_NO_CXX11_RANGE_BASED_FOR
-#define BOOST_NO_CXX11_RAW_LITERALS
-#define BOOST_NO_CXX11_RVALUE_REFERENCES
-#define BOOST_NO_CXX11_SCOPED_ENUMS
-#define BOOST_NO_SFINAE_EXPR
-#define BOOST_NO_CXX11_STATIC_ASSERT
-#define BOOST_NO_SWPRINTF
-#define BOOST_NO_CXX11_TEMPLATE_ALIASES
-#define BOOST_NO_CXX11_UNICODE_LITERALS
-#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
-#define BOOST_NO_CXX11_VARIADIC_MACROS
-#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
-
-#define BOOST_NO_CXX11_HDR_UNORDERED_SET
-#define BOOST_NO_CXX11_HDR_UNORDERED_MAP
-#define BOOST_NO_CXX11_HDR_TYPEINDEX
-#define BOOST_NO_CXX11_HDR_TYPE_TRAITS
-#define BOOST_NO_CXX11_HDR_TUPLE
-#define BOOST_NO_CXX11_HDR_THREAD
-#define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
-#define BOOST_NO_CXX11_HDR_REGEX
-#define BOOST_NO_CXX11_HDR_RATIO
-#define BOOST_NO_CXX11_HDR_RANDOM
-#define BOOST_NO_CXX11_HDR_MUTEX
-#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#define BOOST_NO_CXX11_HDR_FUTURE
-#define BOOST_NO_CXX11_HDR_FORWARD_LIST
-#define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
-#define BOOST_NO_CXX11_HDR_CODECVT
-#define BOOST_NO_CXX11_HDR_CHRONO
-#define BOOST_NO_CXX11_HDR_ARRAY
-#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
-#define BOOST_NO_CXX11_ALIGNAS
-#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
-#define BOOST_NO_CXX11_INLINE_NAMESPACES
-
-//
-// version check:
-// probably nothing to do here?
-
diff --git a/boost/config/compiler/sgi_mipspro.hpp b/boost/config/compiler/sgi_mipspro.hpp
deleted file mode 100644
index 9068831..0000000
--- a/boost/config/compiler/sgi_mipspro.hpp
+++ /dev/null
@@ -1,29 +0,0 @@
-//  (C) Copyright John Maddock 2001 - 2002. 
-//  Use, modification and distribution are subject to the 
-//  Boost Software License, Version 1.0. (See accompanying file 
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org for most recent version.
-
-//  SGI C++ compiler setup:
-
-#define BOOST_COMPILER "SGI Irix compiler version " BOOST_STRINGIZE(_COMPILER_VERSION)
-
-#include "boost/config/compiler/common_edg.hpp"
-
-//
-// Threading support:
-// Turn this on unconditionally here, it will get turned off again later
-// if no threading API is detected.
-//
-#define BOOST_HAS_THREADS
-#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
-
-#undef BOOST_NO_SWPRINTF
-#undef BOOST_DEDUCED_TYPENAME
-
-//
-// version check:
-// probably nothing to do here?
-
-
diff --git a/boost/config/compiler/sunpro_cc.hpp b/boost/config/compiler/sunpro_cc.hpp
deleted file mode 100644
index 486d5c4..0000000
--- a/boost/config/compiler/sunpro_cc.hpp
+++ /dev/null
@@ -1,153 +0,0 @@
-//  (C) Copyright John Maddock 2001.
-//  (C) Copyright Jens Maurer 2001 - 2003.
-//  (C) Copyright Peter Dimov 2002.
-//  (C) Copyright Aleksey Gurtovoy 2002 - 2003.
-//  (C) Copyright David Abrahams 2002.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org for most recent version.
-
-//  Sun C++ compiler setup:
-
-#    if __SUNPRO_CC <= 0x500
-#      define BOOST_NO_MEMBER_TEMPLATES
-#      define BOOST_NO_FUNCTION_TEMPLATE_ORDERING
-#    endif
-
-#    if (__SUNPRO_CC <= 0x520)
-       //
-       // Sunpro 5.2 and earler:
-       //
-       // although sunpro 5.2 supports the syntax for
-       // inline initialization it often gets the value
-       // wrong, especially where the value is computed
-       // from other constants (J Maddock 6th May 2001)
-#      define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
-
-       // Although sunpro 5.2 supports the syntax for
-       // partial specialization, it often seems to
-       // bind to the wrong specialization.  Better
-       // to disable it until suppport becomes more stable
-       // (J Maddock 6th May 2001).
-#      define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#    endif
-
-#    if (__SUNPRO_CC <= 0x530)
-       // Requesting debug info (-g) with Boost.Python results
-       // in an internal compiler error for "static const"
-       // initialized in-class.
-       //    >> Assertion:   (../links/dbg_cstabs.cc, line 611)
-       //         while processing ../test.cpp at line 0.
-       // (Jens Maurer according to Gottfried Ganssauge 04 Mar 2002)
-#      define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
-
-       // SunPro 5.3 has better support for partial specialization,
-       // but breaks when compiling std::less<shared_ptr<T> >
-       // (Jens Maurer 4 Nov 2001).
-
-       // std::less specialization fixed as reported by George
-       // Heintzelman; partial specialization re-enabled
-       // (Peter Dimov 17 Jan 2002)
-
-//#      define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-       // integral constant expressions with 64 bit numbers fail
-#      define BOOST_NO_INTEGRAL_INT64_T
-#    endif
-
-#    if (__SUNPRO_CC < 0x570)
-#      define BOOST_NO_TEMPLATE_TEMPLATES
-       // see http://lists.boost.org/MailArchives/boost/msg47184.php
-       // and http://lists.boost.org/MailArchives/boost/msg47220.php
-#      define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
-#      define BOOST_NO_SFINAE
-#      define BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
-#    endif
-#    if (__SUNPRO_CC <= 0x580)
-#      define BOOST_NO_IS_ABSTRACT
-#    endif
-
-#    if (__SUNPRO_CC <= 0x5100)
-       // Sun 5.10 may not correctly value-initialize objects of
-       // some user defined types, as was reported in April 2010
-       // (CR 6947016), and confirmed by Steve Clamage.
-       // (Niels Dekker, LKEB, May 2010).
-#      define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
-#    endif
-
-//
-// Dynamic shared object (DSO) and dynamic-link library (DLL) support
-//
-#if __SUNPRO_CC > 0x500
-#  define BOOST_SYMBOL_EXPORT __global
-#  define BOOST_SYMBOL_IMPORT __global
-#  define BOOST_SYMBOL_VISIBLE __global
-#endif
-
-
-
-//
-// Issues that effect all known versions:
-//
-#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
-#define BOOST_NO_ADL_BARRIER
-
-//
-// C++0x features
-//
-#  define BOOST_HAS_LONG_LONG
-
-#define BOOST_NO_CXX11_AUTO_DECLARATIONS
-#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
-#define BOOST_NO_CXX11_CHAR16_T
-#define BOOST_NO_CXX11_CHAR32_T
-#define BOOST_NO_CXX11_CONSTEXPR
-#define BOOST_NO_CXX11_DECLTYPE
-#define BOOST_NO_CXX11_DECLTYPE_N3276
-#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#define BOOST_NO_CXX11_DELETED_FUNCTIONS
-#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
-#define BOOST_NO_CXX11_EXTERN_TEMPLATE
-#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
-#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#define BOOST_NO_CXX11_LAMBDAS
-#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
-#define BOOST_NO_CXX11_NOEXCEPT
-#define BOOST_NO_CXX11_NULLPTR
-#define BOOST_NO_CXX11_RANGE_BASED_FOR
-#define BOOST_NO_CXX11_RAW_LITERALS
-#define BOOST_NO_CXX11_RVALUE_REFERENCES
-#define BOOST_NO_CXX11_SCOPED_ENUMS
-#define BOOST_NO_SFINAE_EXPR
-#define BOOST_NO_CXX11_STATIC_ASSERT
-#define BOOST_NO_CXX11_TEMPLATE_ALIASES
-#define BOOST_NO_CXX11_UNICODE_LITERALS
-#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
-#define BOOST_NO_CXX11_VARIADIC_MACROS
-#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
-#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
-#define BOOST_NO_CXX11_ALIGNAS
-#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
-#define BOOST_NO_CXX11_INLINE_NAMESPACES
-
-//
-// Version
-//
-
-#define BOOST_COMPILER "Sun compiler version " BOOST_STRINGIZE(__SUNPRO_CC)
-
-//
-// versions check:
-// we don't support sunpro prior to version 4:
-#if __SUNPRO_CC < 0x400
-#error "Compiler not supported or configured - please reconfigure"
-#endif
-//
-// last known and checked version is 0x590:
-#if (__SUNPRO_CC > 0x590)
-#  if defined(BOOST_ASSERT_CONFIG)
-#     error "Unknown compiler version - please run the configure tests and report the results"
-#  endif
-#endif
diff --git a/boost/config/compiler/vacpp.hpp b/boost/config/compiler/vacpp.hpp
deleted file mode 100644
index 17c02f9..0000000
--- a/boost/config/compiler/vacpp.hpp
+++ /dev/null
@@ -1,131 +0,0 @@
-//  (C) Copyright John Maddock 2001 - 2003.
-//  (C) Copyright Toon Knapen 2001 - 2003.
-//  (C) Copyright Lie-Quan Lee 2001.
-//  (C) Copyright Markus Schoepflin 2002 - 2003.
-//  (C) Copyright Beman Dawes 2002 - 2003.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org for most recent version.
-
-//  Visual Age (IBM) C++ compiler setup:
-
-#if __IBMCPP__ <= 501
-#  define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
-#  define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
-#endif
-
-#if (__IBMCPP__ <= 502)
-// Actually the compiler supports inclass member initialization but it
-// requires a definition for the class member and it doesn't recognize
-// it as an integral constant expression when used as a template argument.
-#  define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
-#  define BOOST_NO_INTEGRAL_INT64_T
-#  define BOOST_NO_MEMBER_TEMPLATE_KEYWORD
-#endif
-
-#if (__IBMCPP__ <= 600) || !defined(BOOST_STRICT_CONFIG)
-#  define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
-#endif
-
-#if (__IBMCPP__ <= 1110)
-// XL C++ V11.1 and earlier versions may not always value-initialize
-// a temporary object T(), when T is a non-POD aggregate class type.
-// Michael Wong (IBM Canada Ltd) has confirmed this issue and gave it
-// high priority. -- Niels Dekker (LKEB), May 2010.
-#  define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
-#endif
-
-//
-// On AIX thread support seems to be indicated by _THREAD_SAFE:
-//
-#ifdef _THREAD_SAFE
-#  define BOOST_HAS_THREADS
-#endif
-
-#define BOOST_COMPILER "IBM Visual Age version " BOOST_STRINGIZE(__IBMCPP__)
-
-//
-// versions check:
-// we don't support Visual age prior to version 5:
-#if __IBMCPP__ < 500
-#error "Compiler not supported or configured - please reconfigure"
-#endif
-//
-// last known and checked version is 1210:
-#if (__IBMCPP__ > 1210)
-#  if defined(BOOST_ASSERT_CONFIG)
-#     error "Unknown compiler version - please run the configure tests and report the results"
-#  endif
-#endif
-
-// Some versions of the compiler have issues with default arguments on partial specializations
-#if __IBMCPP__ <= 1010
-#define BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
-#endif
-
-//
-// C++0x features
-//
-//   See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
-//
-#if ! __IBMCPP_AUTO_TYPEDEDUCTION
-#  define BOOST_NO_CXX11_AUTO_DECLARATIONS
-#  define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
-#endif
-#if ! __IBMCPP_UTF_LITERAL__
-#  define BOOST_NO_CXX11_CHAR16_T
-#  define BOOST_NO_CXX11_CHAR32_T
-#endif
-#if ! __IBMCPP_CONSTEXPR
-#  define BOOST_NO_CXX11_CONSTEXPR
-#endif
-#if ! __IBMCPP_DECLTYPE
-#  define BOOST_NO_CXX11_DECLTYPE
-#else
-#  define BOOST_HAS_DECLTYPE
-#endif
-#define BOOST_NO_CXX11_DECLTYPE_N3276
-#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#define BOOST_NO_CXX11_DELETED_FUNCTIONS
-#if ! __IBMCPP_EXPLICIT_CONVERSION_OPERATORS
-#  define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
-#endif
-#if ! __IBMCPP_EXTERN_TEMPLATE
-#  define BOOST_NO_CXX11_EXTERN_TEMPLATE
-#endif
-#if ! __IBMCPP_VARIADIC_TEMPLATES
-// not enabled separately at this time
-#  define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
-#endif
-#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#define BOOST_NO_CXX11_LAMBDAS
-#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
-#define BOOST_NO_CXX11_NOEXCEPT
-#define BOOST_NO_CXX11_NULLPTR
-#define BOOST_NO_CXX11_RANGE_BASED_FOR
-#define BOOST_NO_CXX11_RAW_LITERALS
-#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
-#if ! __IBMCPP_RVALUE_REFERENCES
-#  define BOOST_NO_CXX11_RVALUE_REFERENCES
-#endif
-#if ! __IBMCPP_SCOPED_ENUM
-#  define BOOST_NO_CXX11_SCOPED_ENUMS
-#endif
-#define BOOST_NO_SFINAE_EXPR
-#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
-#if ! __IBMCPP_STATIC_ASSERT
-#  define BOOST_NO_CXX11_STATIC_ASSERT
-#endif
-#define BOOST_NO_CXX11_TEMPLATE_ALIASES
-#define BOOST_NO_CXX11_UNICODE_LITERALS
-#if ! __IBMCPP_VARIADIC_TEMPLATES
-#  define BOOST_NO_CXX11_VARIADIC_TEMPLATES
-#endif
-#if ! __C99_MACRO_WITH_VA_ARGS
-#  define BOOST_NO_CXX11_VARIADIC_MACROS
-#endif
-#define BOOST_NO_CXX11_ALIGNAS
-#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
-#define BOOST_NO_CXX11_INLINE_NAMESPACES
diff --git a/boost/config/compiler/visualc.hpp b/boost/config/compiler/visualc.hpp
deleted file mode 100644
index 695fa94..0000000
--- a/boost/config/compiler/visualc.hpp
+++ /dev/null
@@ -1,276 +0,0 @@
-//  (C) Copyright John Maddock 2001 - 2003.
-//  (C) Copyright Darin Adler 2001 - 2002.
-//  (C) Copyright Peter Dimov 2001.
-//  (C) Copyright Aleksey Gurtovoy 2002.
-//  (C) Copyright David Abrahams 2002 - 2003.
-//  (C) Copyright Beman Dawes 2002 - 2003.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org for most recent version.
-//
-//  Microsoft Visual C++ compiler setup:
-//
-//  We need to be careful with the checks in this file, as contrary
-//  to popular belief there are versions with _MSC_VER with the final
-//  digit non-zero (mainly the MIPS cross compiler).
-//
-//  So we either test _MSC_VER >= XXXX or else _MSC_VER < XXXX.
-//  No other comparisons (==, >, or <=) are safe.
-//
-
-#define BOOST_MSVC _MSC_VER
-
-//
-// Helper macro BOOST_MSVC_FULL_VER for use in Boost code:
-//
-#if _MSC_FULL_VER > 100000000
-#  define BOOST_MSVC_FULL_VER _MSC_FULL_VER
-#else
-#  define BOOST_MSVC_FULL_VER (_MSC_FULL_VER * 10)
-#endif
-
-// Attempt to suppress VC6 warnings about the length of decorated names (obsolete):
-#pragma warning( disable : 4503 ) // warning: decorated name length exceeded
-
-#define BOOST_HAS_PRAGMA_ONCE
-
-//
-// versions check:
-// we don't support Visual C++ prior to version 7.1:
-#if _MSC_VER < 1310
-#  error "Compiler not supported or configured - please reconfigure"
-#endif
-
-#if _MSC_FULL_VER < 180020827
-#  define BOOST_NO_FENV_H
-#endif
-
-#if _MSC_VER < 1400
-// although a conforming signature for swprint exists in VC7.1
-// it appears not to actually work:
-#  define BOOST_NO_SWPRINTF
-// Our extern template tests also fail for this compiler:
-#  define BOOST_NO_CXX11_EXTERN_TEMPLATE
-// Variadic macros do not exist for VC7.1 and lower
-#  define BOOST_NO_CXX11_VARIADIC_MACROS
-#endif
-
-#if defined(UNDER_CE)
-// Windows CE does not have a conforming signature for swprintf
-#  define BOOST_NO_SWPRINTF
-#endif
-
-#if _MSC_VER < 1500  // 140X == VC++ 8.0
-#  define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
-#endif
-
-#if _MSC_VER < 1600  // 150X == VC++ 9.0
-   // A bug in VC9:
-#  define BOOST_NO_ADL_BARRIER
-#endif
-
-
-// MSVC (including the latest checked version) has not yet completely
-// implemented value-initialization, as is reported:
-// "VC++ does not value-initialize members of derived classes without
-// user-declared constructor", reported in 2009 by Sylvester Hesp:
-// https://connect.microsoft.com/VisualStudio/feedback/details/484295
-// "Presence of copy constructor breaks member class initialization",
-// reported in 2009 by Alex Vakulenko:
-// https://connect.microsoft.com/VisualStudio/feedback/details/499606
-// "Value-initialization in new-expression", reported in 2005 by
-// Pavel Kuznetsov (MetaCommunications Engineering):
-// https://connect.microsoft.com/VisualStudio/feedback/details/100744
-// See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
-// (Niels Dekker, LKEB, May 2010)
-#  define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
-
-#ifndef _NATIVE_WCHAR_T_DEFINED
-#  define BOOST_NO_INTRINSIC_WCHAR_T
-#endif
-
-#if defined(_WIN32_WCE) || defined(UNDER_CE)
-#  define BOOST_NO_SWPRINTF
-#endif
-
-// we have ThreadEx or GetSystemTimeAsFileTime unless we're running WindowsCE
-#if !defined(_WIN32_WCE) && !defined(UNDER_CE)
-#  define BOOST_HAS_THREADEX
-#  define BOOST_HAS_GETSYSTEMTIMEASFILETIME
-#endif
-
-//
-// check for exception handling support:
-#if !defined(_CPPUNWIND) && !defined(BOOST_NO_EXCEPTIONS)
-#  define BOOST_NO_EXCEPTIONS
-#endif
-
-//
-// __int64 support:
-//
-#define BOOST_HAS_MS_INT64
-#if defined(_MSC_EXTENSIONS) || (_MSC_VER >= 1400)
-#   define BOOST_HAS_LONG_LONG
-#else
-#   define BOOST_NO_LONG_LONG
-#endif
-#if (_MSC_VER >= 1400) && !defined(_DEBUG)
-#   define BOOST_HAS_NRVO
-#endif
-//
-// disable Win32 API's if compiler extentions are
-// turned off:
-//
-#if !defined(_MSC_EXTENSIONS) && !defined(BOOST_DISABLE_WIN32)
-#  define BOOST_DISABLE_WIN32
-#endif
-#if !defined(_CPPRTTI) && !defined(BOOST_NO_RTTI)
-#  define BOOST_NO_RTTI
-#endif
-
-//
-// TR1 features:
-//
-#if _MSC_VER >= 1700
-// # define BOOST_HAS_TR1_HASH			// don't know if this is true yet.
-// # define BOOST_HAS_TR1_TYPE_TRAITS	// don't know if this is true yet.
-# define BOOST_HAS_TR1_UNORDERED_MAP
-# define BOOST_HAS_TR1_UNORDERED_SET
-#endif
-
-//
-// C++0x features
-//
-//   See above for BOOST_NO_LONG_LONG
-
-// C++ features supported by VC++ 10 (aka 2010)
-//
-#if _MSC_VER < 1600
-#  define BOOST_NO_CXX11_AUTO_DECLARATIONS
-#  define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
-#  define BOOST_NO_CXX11_LAMBDAS
-#  define BOOST_NO_CXX11_RVALUE_REFERENCES
-#  define BOOST_NO_CXX11_STATIC_ASSERT
-#  define BOOST_NO_CXX11_NULLPTR
-#  define BOOST_NO_CXX11_DECLTYPE
-#endif // _MSC_VER < 1600
-
-#if _MSC_VER >= 1600
-#  define BOOST_HAS_STDINT_H
-#endif
-
-// C++11 features supported by VC++ 11 (aka 2012)
-//
-#if _MSC_VER < 1700
-#  define BOOST_NO_CXX11_RANGE_BASED_FOR
-#  define BOOST_NO_CXX11_SCOPED_ENUMS
-#endif // _MSC_VER < 1700
-
-// C++11 features supported by VC++ 12 (aka 2013).
-//
-#if _MSC_FULL_VER < 180020827
-#  define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
-#  define BOOST_NO_CXX11_DELETED_FUNCTIONS
-#  define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
-#  define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
-#  define BOOST_NO_CXX11_RAW_LITERALS
-#  define BOOST_NO_CXX11_TEMPLATE_ALIASES
-#  define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
-#  define BOOST_NO_CXX11_VARIADIC_TEMPLATES
-#  define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
-#endif
-
-// C++11 features not supported by any versions
-#define BOOST_NO_CXX11_CHAR16_T
-#define BOOST_NO_CXX11_CHAR32_T
-#define BOOST_NO_CXX11_CONSTEXPR
-#define BOOST_NO_CXX11_DECLTYPE_N3276
-#define BOOST_NO_CXX11_NOEXCEPT
-#define BOOST_NO_CXX11_UNICODE_LITERALS
-#define BOOST_NO_SFINAE_EXPR
-#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
-#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
-#define BOOST_NO_CXX11_ALIGNAS
-#define BOOST_NO_CXX11_INLINE_NAMESPACES
-
-//
-// prefix and suffix headers:
-//
-#ifndef BOOST_ABI_PREFIX
-#  define BOOST_ABI_PREFIX "boost/config/abi/msvc_prefix.hpp"
-#endif
-#ifndef BOOST_ABI_SUFFIX
-#  define BOOST_ABI_SUFFIX "boost/config/abi/msvc_suffix.hpp"
-#endif
-
-#ifndef BOOST_COMPILER
-// TODO:
-// these things are mostly bogus. 1200 means version 12.0 of the compiler. The
-// artificial versions assigned to them only refer to the versions of some IDE
-// these compilers have been shipped with, and even that is not all of it. Some
-// were shipped with freely downloadable SDKs, others as crosscompilers in eVC.
-// IOW, you can't use these 'versions' in any sensible way. Sorry.
-# if defined(UNDER_CE)
-#   if _MSC_VER < 1400
-      // Note: I'm not aware of any CE compiler with version 13xx
-#      if defined(BOOST_ASSERT_CONFIG)
-#         error "Unknown EVC++ compiler version - please run the configure tests and report the results"
-#      else
-#         pragma message("Unknown EVC++ compiler version - please run the configure tests and report the results")
-#      endif
-#   elif _MSC_VER < 1500
-#     define BOOST_COMPILER_VERSION evc8
-#   elif _MSC_VER < 1600
-#     define BOOST_COMPILER_VERSION evc9
-#   elif _MSC_VER < 1700
-#     define BOOST_COMPILER_VERSION evc10
-#   elif _MSC_VER < 1800 
-#     define BOOST_COMPILER_VERSION evc11 
-#   elif _MSC_VER < 1900 
-#     define BOOST_COMPILER_VERSION evc12
-#   else
-#      if defined(BOOST_ASSERT_CONFIG)
-#         error "Unknown EVC++ compiler version - please run the configure tests and report the results"
-#      else
-#         pragma message("Unknown EVC++ compiler version - please run the configure tests and report the results")
-#      endif
-#   endif
-# else
-#   if _MSC_VER < 1310
-      // Note: Versions up to 7.0 aren't supported.
-#     define BOOST_COMPILER_VERSION 5.0
-#   elif _MSC_VER < 1300
-#     define BOOST_COMPILER_VERSION 6.0
-#   elif _MSC_VER < 1310
-#     define BOOST_COMPILER_VERSION 7.0
-#   elif _MSC_VER < 1400
-#     define BOOST_COMPILER_VERSION 7.1
-#   elif _MSC_VER < 1500
-#     define BOOST_COMPILER_VERSION 8.0
-#   elif _MSC_VER < 1600
-#     define BOOST_COMPILER_VERSION 9.0
-#   elif _MSC_VER < 1700
-#     define BOOST_COMPILER_VERSION 10.0
-#   elif _MSC_VER < 1800 
-#     define BOOST_COMPILER_VERSION 11.0
-#   elif _MSC_VER < 1900
-#     define BOOST_COMPILER_VERSION 12.0
-#   else
-#     define BOOST_COMPILER_VERSION _MSC_VER
-#   endif
-# endif
-
-#  define BOOST_COMPILER "Microsoft Visual C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
-#endif
-
-//
-// last known and checked version is 18.00.20827.3 (VC12 RC, aka 2013 RC):
-#if (_MSC_VER > 1800 && _MSC_FULL_VER > 180020827)
-#  if defined(BOOST_ASSERT_CONFIG)
-#     error "Unknown compiler version - please run the configure tests and report the results"
-#  else
-#     pragma message("Unknown compiler version - please run the configure tests and report the results")
-#  endif
-#endif
diff --git a/boost/config/no_tr1/cmath.hpp b/boost/config/no_tr1/cmath.hpp
deleted file mode 100644
index d8268d8..0000000
--- a/boost/config/no_tr1/cmath.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-//  (C) Copyright John Maddock 2008.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-// The aim of this header is just to include <cmath> but to do
-// so in a way that does not result in recursive inclusion of
-// the Boost TR1 components if boost/tr1/tr1/cmath is in the
-// include search path.  We have to do this to avoid circular
-// dependencies:
-//
-
-#ifndef BOOST_CONFIG_CMATH
-#  define BOOST_CONFIG_CMATH
-
-#  ifndef BOOST_TR1_NO_RECURSION
-#     define BOOST_TR1_NO_RECURSION
-#     define BOOST_CONFIG_NO_CMATH_RECURSION
-#  endif
-
-#  include <cmath>
-
-#  ifdef BOOST_CONFIG_NO_CMATH_RECURSION
-#     undef BOOST_TR1_NO_RECURSION
-#     undef BOOST_CONFIG_NO_CMATH_RECURSION
-#  endif
-
-#endif
diff --git a/boost/config/no_tr1/complex.hpp b/boost/config/no_tr1/complex.hpp
deleted file mode 100644
index ca20092..0000000
--- a/boost/config/no_tr1/complex.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-//  (C) Copyright John Maddock 2005.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-// The aim of this header is just to include <complex> but to do
-// so in a way that does not result in recursive inclusion of
-// the Boost TR1 components if boost/tr1/tr1/complex is in the
-// include search path.  We have to do this to avoid circular
-// dependencies:
-//
-
-#ifndef BOOST_CONFIG_COMPLEX
-#  define BOOST_CONFIG_COMPLEX
-
-#  ifndef BOOST_TR1_NO_RECURSION
-#     define BOOST_TR1_NO_RECURSION
-#     define BOOST_CONFIG_NO_COMPLEX_RECURSION
-#  endif
-
-#  include <complex>
-
-#  ifdef BOOST_CONFIG_NO_COMPLEX_RECURSION
-#     undef BOOST_TR1_NO_RECURSION
-#     undef BOOST_CONFIG_NO_COMPLEX_RECURSION
-#  endif
-
-#endif
diff --git a/boost/config/no_tr1/functional.hpp b/boost/config/no_tr1/functional.hpp
deleted file mode 100644
index e395efc..0000000
--- a/boost/config/no_tr1/functional.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-//  (C) Copyright John Maddock 2005.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-// The aim of this header is just to include <functional> but to do
-// so in a way that does not result in recursive inclusion of
-// the Boost TR1 components if boost/tr1/tr1/functional is in the
-// include search path.  We have to do this to avoid circular
-// dependencies:
-//
-
-#ifndef BOOST_CONFIG_FUNCTIONAL
-#  define BOOST_CONFIG_FUNCTIONAL
-
-#  ifndef BOOST_TR1_NO_RECURSION
-#     define BOOST_TR1_NO_RECURSION
-#     define BOOST_CONFIG_NO_FUNCTIONAL_RECURSION
-#  endif
-
-#  include <functional>
-
-#  ifdef BOOST_CONFIG_NO_FUNCTIONAL_RECURSION
-#     undef BOOST_TR1_NO_RECURSION
-#     undef BOOST_CONFIG_NO_FUNCTIONAL_RECURSION
-#  endif
-
-#endif
diff --git a/boost/config/no_tr1/memory.hpp b/boost/config/no_tr1/memory.hpp
deleted file mode 100644
index 2b5d208..0000000
--- a/boost/config/no_tr1/memory.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-//  (C) Copyright John Maddock 2005.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-// The aim of this header is just to include <memory> but to do
-// so in a way that does not result in recursive inclusion of
-// the Boost TR1 components if boost/tr1/tr1/memory is in the
-// include search path.  We have to do this to avoid circular
-// dependencies:
-//
-
-#ifndef BOOST_CONFIG_MEMORY
-#  define BOOST_CONFIG_MEMORY
-
-#  ifndef BOOST_TR1_NO_RECURSION
-#     define BOOST_TR1_NO_RECURSION
-#     define BOOST_CONFIG_NO_MEMORY_RECURSION
-#  endif
-
-#  include <memory>
-
-#  ifdef BOOST_CONFIG_NO_MEMORY_RECURSION
-#     undef BOOST_TR1_NO_RECURSION
-#     undef BOOST_CONFIG_NO_MEMORY_RECURSION
-#  endif
-
-#endif
diff --git a/boost/config/no_tr1/utility.hpp b/boost/config/no_tr1/utility.hpp
deleted file mode 100644
index dea8f11..0000000
--- a/boost/config/no_tr1/utility.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-//  (C) Copyright John Maddock 2005.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-// The aim of this header is just to include <utility> but to do
-// so in a way that does not result in recursive inclusion of
-// the Boost TR1 components if boost/tr1/tr1/utility is in the
-// include search path.  We have to do this to avoid circular
-// dependencies:
-//
-
-#ifndef BOOST_CONFIG_UTILITY
-#  define BOOST_CONFIG_UTILITY
-
-#  ifndef BOOST_TR1_NO_RECURSION
-#     define BOOST_TR1_NO_RECURSION
-#     define BOOST_CONFIG_NO_UTILITY_RECURSION
-#  endif
-
-#  include <utility>
-
-#  ifdef BOOST_CONFIG_NO_UTILITY_RECURSION
-#     undef BOOST_TR1_NO_RECURSION
-#     undef BOOST_CONFIG_NO_UTILITY_RECURSION
-#  endif
-
-#endif
diff --git a/boost/config/platform/aix.hpp b/boost/config/platform/aix.hpp
deleted file mode 100644
index 894ef42..0000000
--- a/boost/config/platform/aix.hpp
+++ /dev/null
@@ -1,33 +0,0 @@
-//  (C) Copyright John Maddock 2001 - 2002. 
-//  Use, modification and distribution are subject to the 
-//  Boost Software License, Version 1.0. (See accompanying file 
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org for most recent version.
-
-//  IBM/Aix specific config options:
-
-#define BOOST_PLATFORM "IBM Aix"
-
-#define BOOST_HAS_UNISTD_H
-#define BOOST_HAS_NL_TYPES_H
-#define BOOST_HAS_NANOSLEEP
-#define BOOST_HAS_CLOCK_GETTIME
-
-// This needs support in "boost/cstdint.hpp" exactly like FreeBSD.
-// This platform has header named <inttypes.h> which includes all
-// the things needed.
-#define BOOST_HAS_STDINT_H
-
-// Threading API's:
-#define BOOST_HAS_PTHREADS
-#define BOOST_HAS_PTHREAD_DELAY_NP
-#define BOOST_HAS_SCHED_YIELD
-//#define BOOST_HAS_PTHREAD_YIELD
-
-// boilerplate code:
-#include <boost/config/posix_features.hpp>
-
-
-
-
diff --git a/boost/config/platform/amigaos.hpp b/boost/config/platform/amigaos.hpp
deleted file mode 100644
index 34bcf41..0000000
--- a/boost/config/platform/amigaos.hpp
+++ /dev/null
@@ -1,15 +0,0 @@
-//  (C) Copyright John Maddock 2002. 
-//  Use, modification and distribution are subject to the 
-//  Boost Software License, Version 1.0. (See accompanying file 
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org for most recent version.
-
-#define BOOST_PLATFORM "AmigaOS"
-
-#define BOOST_DISABLE_THREADS
-#define BOOST_NO_CWCHAR
-#define BOOST_NO_STD_WSTRING
-#define BOOST_NO_INTRINSIC_WCHAR_T
- 
-
diff --git a/boost/config/platform/beos.hpp b/boost/config/platform/beos.hpp
deleted file mode 100644
index 48c3d8d..0000000
--- a/boost/config/platform/beos.hpp
+++ /dev/null
@@ -1,26 +0,0 @@
-//  (C) Copyright John Maddock 2001. 
-//  Use, modification and distribution are subject to the 
-//  Boost Software License, Version 1.0. (See accompanying file 
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org for most recent version.
-
-//  BeOS specific config options:
-
-#define BOOST_PLATFORM "BeOS"
-
-#define BOOST_NO_CWCHAR
-#define BOOST_NO_CWCTYPE
-#define BOOST_HAS_UNISTD_H
-
-#define BOOST_HAS_BETHREADS
-
-#ifndef BOOST_DISABLE_THREADS
-#  define BOOST_HAS_THREADS
-#endif
-
-// boilerplate code:
-#include <boost/config/posix_features.hpp>
- 
-
-
diff --git a/boost/config/platform/bsd.hpp b/boost/config/platform/bsd.hpp
deleted file mode 100644
index a014297..0000000
--- a/boost/config/platform/bsd.hpp
+++ /dev/null
@@ -1,86 +0,0 @@
-//  (C) Copyright John Maddock 2001 - 2003. 
-//  (C) Copyright Darin Adler 2001. 
-//  (C) Copyright Douglas Gregor 2002. 
-//  Use, modification and distribution are subject to the 
-//  Boost Software License, Version 1.0. (See accompanying file 
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org for most recent version.
-
-//  generic BSD config options:
-
-#if !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__) && !defined(__DragonFly__)
-#error "This platform is not BSD"
-#endif
-
-#ifdef __FreeBSD__
-#define BOOST_PLATFORM "FreeBSD " BOOST_STRINGIZE(__FreeBSD__)
-#elif defined(__NetBSD__)
-#define BOOST_PLATFORM "NetBSD " BOOST_STRINGIZE(__NetBSD__)
-#elif defined(__OpenBSD__)
-#define BOOST_PLATFORM "OpenBSD " BOOST_STRINGIZE(__OpenBSD__)
-#elif defined(__DragonFly__)
-#define BOOST_PLATFORM "DragonFly " BOOST_STRINGIZE(__DragonFly__)
-#endif
-
-//
-// is this the correct version check?
-// FreeBSD has <nl_types.h> but does not
-// advertise the fact in <unistd.h>:
-//
-#if (defined(__FreeBSD__) && (__FreeBSD__ >= 3)) || defined(__DragonFly__)
-#  define BOOST_HAS_NL_TYPES_H
-#endif
-
-//
-// FreeBSD 3.x has pthreads support, but defines _POSIX_THREADS in <pthread.h>
-// and not in <unistd.h>
-//
-#if (defined(__FreeBSD__) && (__FreeBSD__ <= 3))\
-   || defined(__OpenBSD__) || defined(__DragonFly__) 
-#  define BOOST_HAS_PTHREADS
-#endif
-
-//
-// No wide character support in the BSD header files:
-//
-#if defined(__NetBSD__)
-#define __NetBSD_GCC__ (__GNUC__         * 1000000 \
-                       + __GNUC_MINOR__ *    1000 \
-                       + __GNUC_PATCHLEVEL__)
-// XXX - the following is required until c++config.h
-//       defines _GLIBCXX_HAVE_SWPRINTF and friends
-//       or the preprocessor conditionals are removed
-//       from the cwchar header.
-#define _GLIBCXX_HAVE_SWPRINTF 1
-#endif
-
-#if !((defined(__FreeBSD__) && (__FreeBSD__ >= 5)) \
-      || (defined(__NetBSD_GCC__) && (__NetBSD_GCC__ >= 2095003)) || defined(__DragonFly__))
-#  define BOOST_NO_CWCHAR
-#endif
-//
-// The BSD <ctype.h> has macros only, no functions:
-//
-#if !defined(__OpenBSD__) || defined(__DragonFly__)
-#  define BOOST_NO_CTYPE_FUNCTIONS
-#endif
-
-//
-// thread API's not auto detected:
-//
-#define BOOST_HAS_SCHED_YIELD
-#define BOOST_HAS_NANOSLEEP
-#define BOOST_HAS_GETTIMEOFDAY
-#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
-#define BOOST_HAS_SIGACTION
-
-// boilerplate code:
-#define BOOST_HAS_UNISTD_H
-#include <boost/config/posix_features.hpp>
-
-
-
-
-
-
diff --git a/boost/config/platform/cray.hpp b/boost/config/platform/cray.hpp
deleted file mode 100644
index 5c476e4..0000000
--- a/boost/config/platform/cray.hpp
+++ /dev/null
@@ -1,18 +0,0 @@
-//  (C) Copyright John Maddock 2011.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-
-//  See http://www.boost.org for most recent version.
-
-//  SGI Irix specific config options:
-
-#define BOOST_PLATFORM "Cray"
-
-// boilerplate code:
-#define BOOST_HAS_UNISTD_H
-#include <boost/config/posix_features.hpp>
-
-
-
diff --git a/boost/config/platform/cygwin.hpp b/boost/config/platform/cygwin.hpp
deleted file mode 100644
index b7ef572..0000000
--- a/boost/config/platform/cygwin.hpp
+++ /dev/null
@@ -1,58 +0,0 @@
-//  (C) Copyright John Maddock 2001 - 2003. 
-//  Use, modification and distribution are subject to the 
-//  Boost Software License, Version 1.0. (See accompanying file 
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org for most recent version.
-
-//  cygwin specific config options:
-
-#define BOOST_PLATFORM "Cygwin"
-#define BOOST_HAS_DIRENT_H
-#define BOOST_HAS_LOG1P
-#define BOOST_HAS_EXPM1
-
-//
-// Threading API:
-// See if we have POSIX threads, if we do use them, otherwise
-// revert to native Win threads.
-#define BOOST_HAS_UNISTD_H
-#include <unistd.h>
-#if defined(_POSIX_THREADS) && (_POSIX_THREADS+0 >= 0) && !defined(BOOST_HAS_WINTHREADS)
-#  define BOOST_HAS_PTHREADS
-#  define BOOST_HAS_SCHED_YIELD
-#  define BOOST_HAS_GETTIMEOFDAY
-#  define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
-#  define BOOST_HAS_SIGACTION
-#else
-#  if !defined(BOOST_HAS_WINTHREADS)
-#     define BOOST_HAS_WINTHREADS
-#  endif
-#  define BOOST_HAS_FTIME
-#endif
-
-//
-// find out if we have a stdint.h, there should be a better way to do this:
-//
-#include <sys/types.h>
-#ifdef _STDINT_H
-#define BOOST_HAS_STDINT_H
-#endif
-
-/// Cygwin has no fenv.h
-#define BOOST_NO_FENV_H
-
-// boilerplate code:
-#include <boost/config/posix_features.hpp>
-
-//
-// Cygwin lies about XSI conformance, there is no nl_types.h:
-//
-#ifdef BOOST_HAS_NL_TYPES_H
-#  undef BOOST_HAS_NL_TYPES_H
-#endif
- 
-
-
-
-
diff --git a/boost/config/platform/hpux.hpp b/boost/config/platform/hpux.hpp
deleted file mode 100644
index 19ce68e..0000000
--- a/boost/config/platform/hpux.hpp
+++ /dev/null
@@ -1,87 +0,0 @@
-//  (C) Copyright John Maddock 2001 - 2003. 
-//  (C) Copyright Jens Maurer 2001 - 2003. 
-//  (C) Copyright David Abrahams 2002. 
-//  (C) Copyright Toon Knapen 2003. 
-//  (C) Copyright Boris Gubenko 2006 - 2007.
-//  Use, modification and distribution are subject to the 
-//  Boost Software License, Version 1.0. (See accompanying file 
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org for most recent version.
-
-//  hpux specific config options:
-
-#define BOOST_PLATFORM "HP-UX"
-
-// In principle, HP-UX has a nice <stdint.h> under the name <inttypes.h>
-// However, it has the following problem:
-// Use of UINT32_C(0) results in "0u l" for the preprocessed source
-// (verifyable with gcc 2.95.3)
-#if (defined(__GNUC__) && (__GNUC__ >= 3)) || defined(__HP_aCC)
-#  define BOOST_HAS_STDINT_H
-#endif
-
-#if !(defined(__HP_aCC) || !defined(_INCLUDE__STDC_A1_SOURCE))
-#  define BOOST_NO_SWPRINTF
-#endif
-#if defined(__HP_aCC) && !defined(_INCLUDE__STDC_A1_SOURCE)
-#  define BOOST_NO_CWCTYPE
-#endif
-
-#if defined(__GNUC__)
-#  if (__GNUC__ < 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ < 3))
-      // GNU C on HP-UX does not support threads (checked up to gcc 3.3)
-#     define BOOST_DISABLE_THREADS
-#  elif !defined(BOOST_DISABLE_THREADS)
-      // threads supported from gcc-3.3 onwards:
-#     define BOOST_HAS_THREADS
-#     define BOOST_HAS_PTHREADS
-#  endif
-#elif defined(__HP_aCC) && !defined(BOOST_DISABLE_THREADS)
-#  define BOOST_HAS_PTHREADS
-#endif
-
-// boilerplate code:
-#define BOOST_HAS_UNISTD_H
-#include <boost/config/posix_features.hpp>
-
-// the following are always available:
-#ifndef BOOST_HAS_GETTIMEOFDAY
-#  define BOOST_HAS_GETTIMEOFDAY
-#endif
-#ifndef BOOST_HAS_SCHED_YIELD
-#    define BOOST_HAS_SCHED_YIELD
-#endif
-#ifndef BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
-#    define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
-#endif
-#ifndef BOOST_HAS_NL_TYPES_H
-#    define BOOST_HAS_NL_TYPES_H
-#endif
-#ifndef BOOST_HAS_NANOSLEEP
-#    define BOOST_HAS_NANOSLEEP
-#endif
-#ifndef BOOST_HAS_GETTIMEOFDAY
-#    define BOOST_HAS_GETTIMEOFDAY
-#endif
-#ifndef BOOST_HAS_DIRENT_H
-#    define BOOST_HAS_DIRENT_H
-#endif
-#ifndef BOOST_HAS_CLOCK_GETTIME
-#    define BOOST_HAS_CLOCK_GETTIME
-#endif
-#ifndef BOOST_HAS_SIGACTION
-#  define BOOST_HAS_SIGACTION
-#endif
-#ifndef BOOST_HAS_NRVO 
-#  ifndef __parisc
-#    define BOOST_HAS_NRVO
-#  endif
-#endif
-#ifndef BOOST_HAS_LOG1P 
-#  define BOOST_HAS_LOG1P
-#endif
-#ifndef BOOST_HAS_EXPM1
-#  define BOOST_HAS_EXPM1
-#endif
-
diff --git a/boost/config/platform/irix.hpp b/boost/config/platform/irix.hpp
deleted file mode 100644
index aeae49c..0000000
--- a/boost/config/platform/irix.hpp
+++ /dev/null
@@ -1,31 +0,0 @@
-//  (C) Copyright John Maddock 2001 - 2003. 
-//  (C) Copyright Jens Maurer 2003. 
-//  Use, modification and distribution are subject to the 
-//  Boost Software License, Version 1.0. (See accompanying file 
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-
-//  See http://www.boost.org for most recent version.
-
-//  SGI Irix specific config options:
-
-#define BOOST_PLATFORM "SGI Irix"
-
-#define BOOST_NO_SWPRINTF 
-//
-// these are not auto detected by POSIX feature tests:
-//
-#define BOOST_HAS_GETTIMEOFDAY
-#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
-
-#ifdef __GNUC__
-   // GNU C on IRIX does not support threads (checked up to gcc 3.3)
-#  define BOOST_DISABLE_THREADS
-#endif
-
-// boilerplate code:
-#define BOOST_HAS_UNISTD_H
-#include <boost/config/posix_features.hpp>
-
-
-
diff --git a/boost/config/platform/linux.hpp b/boost/config/platform/linux.hpp
deleted file mode 100644
index a02aff7..0000000
--- a/boost/config/platform/linux.hpp
+++ /dev/null
@@ -1,103 +0,0 @@
-//  (C) Copyright John Maddock 2001 - 2003. 
-//  (C) Copyright Jens Maurer 2001 - 2003. 
-//  Use, modification and distribution are subject to the 
-//  Boost Software License, Version 1.0. (See accompanying file 
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org for most recent version.
-
-//  linux specific config options:
-
-#define BOOST_PLATFORM "linux"
-
-// make sure we have __GLIBC_PREREQ if available at all
-#ifdef __cplusplus
-#include <cstdlib>
-#else
-#include <stdlib.h>
-#endif
-
-//
-// <stdint.h> added to glibc 2.1.1
-// We can only test for 2.1 though:
-//
-#if defined(__GLIBC__) && ((__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 1)))
-   // <stdint.h> defines int64_t unconditionally, but <sys/types.h> defines
-   // int64_t only if __GNUC__.  Thus, assume a fully usable <stdint.h>
-   // only when using GCC.
-#  if defined __GNUC__
-#    define BOOST_HAS_STDINT_H
-#  endif
-#endif
-
-#if defined(__LIBCOMO__)
-   //
-   // como on linux doesn't have std:: c functions:
-   // NOTE: versions of libcomo prior to beta28 have octal version numbering,
-   // e.g. version 25 is 21 (dec)
-   //
-#  if __LIBCOMO_VERSION__ <= 20
-#    define BOOST_NO_STDC_NAMESPACE
-#  endif
-
-#  if __LIBCOMO_VERSION__ <= 21
-#    define BOOST_NO_SWPRINTF
-#  endif
-
-#endif
-
-//
-// If glibc is past version 2 then we definitely have
-// gettimeofday, earlier versions may or may not have it:
-//
-#if defined(__GLIBC__) && (__GLIBC__ >= 2)
-#  define BOOST_HAS_GETTIMEOFDAY
-#endif
-
-#ifdef __USE_POSIX199309
-#  define BOOST_HAS_NANOSLEEP
-#endif
-
-#if defined(__GLIBC__) && defined(__GLIBC_PREREQ)
-// __GLIBC_PREREQ is available since 2.1.2
-
-   // swprintf is available since glibc 2.2.0
-#  if !__GLIBC_PREREQ(2,2) || (!defined(__USE_ISOC99) && !defined(__USE_UNIX98))
-#    define BOOST_NO_SWPRINTF
-#  endif
-#else
-#  define BOOST_NO_SWPRINTF
-#endif
-
-// boilerplate code:
-#define BOOST_HAS_UNISTD_H
-#include <boost/config/posix_features.hpp>
-#define BOOST_HAS_PTHREAD_YIELD
-
-#ifndef __GNUC__
-//
-// if the compiler is not gcc we still need to be able to parse
-// the GNU system headers, some of which (mainly <stdint.h>)
-// use GNU specific extensions:
-//
-#  ifndef __extension__
-#     define __extension__
-#  endif
-#  ifndef __const__
-#     define __const__ const
-#  endif
-#  ifndef __volatile__
-#     define __volatile__ volatile
-#  endif
-#  ifndef __signed__
-#     define __signed__ signed
-#  endif
-#  ifndef __typeof__
-#     define __typeof__ typeof
-#  endif
-#  ifndef __inline__
-#     define __inline__ inline
-#  endif
-#endif
-
-
diff --git a/boost/config/platform/macos.hpp b/boost/config/platform/macos.hpp
deleted file mode 100644
index 6d876b1..0000000
--- a/boost/config/platform/macos.hpp
+++ /dev/null
@@ -1,87 +0,0 @@
-//  (C) Copyright John Maddock 2001 - 2003. 
-//  (C) Copyright Darin Adler 2001 - 2002. 
-//  (C) Copyright Bill Kempf 2002. 
-//  Use, modification and distribution are subject to the 
-//  Boost Software License, Version 1.0. (See accompanying file 
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org for most recent version.
-
-//  Mac OS specific config options:
-
-#define BOOST_PLATFORM "Mac OS"
-
-#if __MACH__ && !defined(_MSL_USING_MSL_C)
-
-// Using the Mac OS X system BSD-style C library.
-
-#  ifndef BOOST_HAS_UNISTD_H
-#    define BOOST_HAS_UNISTD_H
-#  endif
-//
-// Begin by including our boilerplate code for POSIX
-// feature detection, this is safe even when using
-// the MSL as Metrowerks supply their own <unistd.h>
-// to replace the platform-native BSD one. G++ users
-// should also always be able to do this on MaxOS X.
-//
-#  include <boost/config/posix_features.hpp>
-#  ifndef BOOST_HAS_STDINT_H
-#     define BOOST_HAS_STDINT_H
-#  endif
-
-//
-// BSD runtime has pthreads, sigaction, sched_yield and gettimeofday,
-// of these only pthreads are advertised in <unistd.h>, so set the 
-// other options explicitly:
-//
-#  define BOOST_HAS_SCHED_YIELD
-#  define BOOST_HAS_GETTIMEOFDAY
-#  define BOOST_HAS_SIGACTION
-
-#  if (__GNUC__ < 3) && !defined( __APPLE_CC__)
-
-// GCC strange "ignore std" mode works better if you pretend everything
-// is in the std namespace, for the most part.
-
-#    define BOOST_NO_STDC_NAMESPACE
-#  endif
-
-#  if (__GNUC__ == 4)
-
-// Both gcc and intel require these.  
-#    define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
-#    define BOOST_HAS_NANOSLEEP
-
-#  endif
-
-#else
-
-// Using the MSL C library.
-
-// We will eventually support threads in non-Carbon builds, but we do
-// not support this yet.
-#  if ( defined(TARGET_API_MAC_CARBON) && TARGET_API_MAC_CARBON ) || ( defined(TARGET_CARBON) && TARGET_CARBON )
-
-#  if !defined(BOOST_HAS_PTHREADS)
-// MPTasks support is deprecated/removed from Boost:
-//#    define BOOST_HAS_MPTASKS
-#  elif ( __dest_os == __mac_os_x )
-// We are doing a Carbon/Mach-O/MSL build which has pthreads, but only the
-// gettimeofday and no posix.
-#  define BOOST_HAS_GETTIMEOFDAY
-#  endif
-
-#ifdef BOOST_HAS_PTHREADS
-#  define BOOST_HAS_THREADS
-#endif
-
-// The remote call manager depends on this.
-#    define BOOST_BIND_ENABLE_PASCAL
-
-#  endif
-
-#endif
-
-
-
diff --git a/boost/config/platform/qnxnto.hpp b/boost/config/platform/qnxnto.hpp
deleted file mode 100644
index b1377c8..0000000
--- a/boost/config/platform/qnxnto.hpp
+++ /dev/null
@@ -1,31 +0,0 @@
-//  (C) Copyright Jim Douglas 2005. 
-//  Use, modification and distribution are subject to the 
-//  Boost Software License, Version 1.0. (See accompanying file 
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org for most recent version.
-
-//  QNX specific config options:
-
-#define BOOST_PLATFORM "QNX"
-
-#define BOOST_HAS_UNISTD_H
-#include <boost/config/posix_features.hpp>
-
-// QNX claims XOpen version 5 compatibility, but doesn't have an nl_types.h
-// or log1p and expm1:
-#undef  BOOST_HAS_NL_TYPES_H
-#undef  BOOST_HAS_LOG1P
-#undef  BOOST_HAS_EXPM1
-
-#define BOOST_HAS_PTHREADS
-#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
-
-#define BOOST_HAS_GETTIMEOFDAY
-#define BOOST_HAS_CLOCK_GETTIME
-#define BOOST_HAS_NANOSLEEP
-
-
-
-
-
diff --git a/boost/config/platform/solaris.hpp b/boost/config/platform/solaris.hpp
deleted file mode 100644
index 9f92566..0000000
--- a/boost/config/platform/solaris.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-//  (C) Copyright John Maddock 2001 - 2003. 
-//  (C) Copyright Jens Maurer 2003. 
-//  Use, modification and distribution are subject to the 
-//  Boost Software License, Version 1.0. (See accompanying file 
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org for most recent version.
-
-//  sun specific config options:
-
-#define BOOST_PLATFORM "Sun Solaris"
-
-#define BOOST_HAS_GETTIMEOFDAY
-
-// boilerplate code:
-#define BOOST_HAS_UNISTD_H
-#include <boost/config/posix_features.hpp>
-
-//
-// pthreads don't actually work with gcc unless _PTHREADS is defined:
-//
-#if defined(__GNUC__) && defined(_POSIX_THREADS) && !defined(_PTHREADS)
-# undef BOOST_HAS_PTHREADS
-#endif
-
-
-
-
diff --git a/boost/config/platform/symbian.hpp b/boost/config/platform/symbian.hpp
deleted file mode 100644
index e02a778..0000000
--- a/boost/config/platform/symbian.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-//  (C) Copyright Yuriy Krasnoschek 2009. 
-//  (C) Copyright John Maddock 2001 - 2003. 
-//  (C) Copyright Jens Maurer 2001 - 2003. 
-//  Use, modification and distribution are subject to the 
-//  Boost Software License, Version 1.0. (See accompanying file 
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org for most recent version.
-
-//  symbian specific config options:
-
-
-#define BOOST_PLATFORM "Symbian"
-#define BOOST_SYMBIAN 1
-
-
-#if defined(__S60_3X__)
-// Open C / C++ plugin was introdused in this SDK, earlier versions don't have CRT / STL
-#  define BOOST_S60_3rd_EDITION_FP2_OR_LATER_SDK
-// make sure we have __GLIBC_PREREQ if available at all
-#ifdef __cplusplus
-#include <cstdlib>
-#else
-#include <stdlib.h>
-#endif// boilerplate code:
-#  define BOOST_HAS_UNISTD_H
-#  include <boost/config/posix_features.hpp>
-// S60 SDK defines _POSIX_VERSION as POSIX.1
-#  ifndef BOOST_HAS_STDINT_H
-#    define BOOST_HAS_STDINT_H
-#  endif
-#  ifndef BOOST_HAS_GETTIMEOFDAY
-#    define BOOST_HAS_GETTIMEOFDAY
-#  endif
-#  ifndef BOOST_HAS_DIRENT_H
-#    define BOOST_HAS_DIRENT_H
-#  endif
-#  ifndef BOOST_HAS_SIGACTION
-#    define BOOST_HAS_SIGACTION
-#  endif
-#  ifndef BOOST_HAS_PTHREADS
-#    define BOOST_HAS_PTHREADS
-#  endif
-#  ifndef BOOST_HAS_NANOSLEEP
-#    define BOOST_HAS_NANOSLEEP
-#  endif
-#  ifndef BOOST_HAS_SCHED_YIELD
-#    define BOOST_HAS_SCHED_YIELD
-#  endif
-#  ifndef BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
-#    define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
-#  endif
-#  ifndef BOOST_HAS_LOG1P
-#    define BOOST_HAS_LOG1P
-#  endif
-#  ifndef BOOST_HAS_EXPM1
-#    define BOOST_HAS_EXPM1
-#  endif
-#  ifndef BOOST_POSIX_API
-#    define BOOST_POSIX_API
-#  endif
-// endianess support
-#  include <sys/endian.h>
-// Symbian SDK provides _BYTE_ORDER instead of __BYTE_ORDER
-#  ifndef __LITTLE_ENDIAN
-#    ifdef _LITTLE_ENDIAN
-#      define __LITTLE_ENDIAN _LITTLE_ENDIAN
-#    else
-#      define __LITTLE_ENDIAN 1234
-#    endif
-#  endif
-#  ifndef __BIG_ENDIAN
-#    ifdef _BIG_ENDIAN
-#      define __BIG_ENDIAN _BIG_ENDIAN
-#    else
-#      define __BIG_ENDIAN 4321
-#    endif
-#  endif
-#  ifndef __BYTE_ORDER
-#    define __BYTE_ORDER __LITTLE_ENDIAN // Symbian is LE
-#  endif
-// Known limitations
-#  define BOOST_ASIO_DISABLE_SERIAL_PORT
-#  define BOOST_DATE_TIME_NO_LOCALE
-#  define BOOST_NO_STD_WSTRING
-#  define BOOST_EXCEPTION_DISABLE
-#  define BOOST_NO_EXCEPTIONS
-
-#else // TODO: More platform support e.g. UIQ
-#  error "Unsuppoted Symbian SDK"
-#endif
-
-#if defined(__WINSCW__) && !defined(BOOST_DISABLE_WIN32)
-#  define BOOST_DISABLE_WIN32 // winscw defines WIN32 macro
-#endif
-
-
diff --git a/boost/config/platform/vms.hpp b/boost/config/platform/vms.hpp
deleted file mode 100644
index f70efcf..0000000
--- a/boost/config/platform/vms.hpp
+++ /dev/null
@@ -1,25 +0,0 @@
-//  (C) Copyright Artyom Beilis 2010.  
-//  Use, modification and distribution are subject to the  
-//  Boost Software License, Version 1.0. (See accompanying file  
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 
-
-#ifndef BOOST_CONFIG_PLATFORM_VMS_HPP 
-#define BOOST_CONFIG_PLATFORM_VMS_HPP 
-
-#define BOOST_PLATFORM "OpenVMS" 
-
-#undef  BOOST_HAS_STDINT_H 
-#define BOOST_HAS_UNISTD_H 
-#define BOOST_HAS_NL_TYPES_H 
-#define BOOST_HAS_GETTIMEOFDAY 
-#define BOOST_HAS_DIRENT_H 
-#define BOOST_HAS_PTHREADS 
-#define BOOST_HAS_NANOSLEEP 
-#define BOOST_HAS_CLOCK_GETTIME 
-#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE 
-#define BOOST_HAS_LOG1P 
-#define BOOST_HAS_EXPM1 
-#define BOOST_HAS_THREADS 
-#undef  BOOST_HAS_SCHED_YIELD 
-
-#endif 
diff --git a/boost/config/platform/vxworks.hpp b/boost/config/platform/vxworks.hpp
deleted file mode 100644
index cdda015..0000000
--- a/boost/config/platform/vxworks.hpp
+++ /dev/null
@@ -1,369 +0,0 @@
-//  (C) Copyright Dustin Spicuzza 2009.
-//      Adapted to vxWorks 6.9 by Peter Brockamp 2012.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org for most recent version.
-
-//  Since WRS does not yet properly support boost under vxWorks
-//  and this file was badly outdated, but I was keen on using it,
-//  I patched boost myself to make things work. This has been tested
-//  and adapted by me for vxWorks 6.9 *only*, as I'm lacking access
-//  to earlier 6.X versions! The only thing I know for sure is that
-//  very old versions of vxWorks (namely everything below 6.x) are
-//  absolutely unable to use boost. This is mainly due to the completely
-//  outdated libraries and ancient compiler (GCC 2.96 or worse). Do
-//  not even think of getting this to work, a miserable failure will
-//  be guaranteed!
-//  Equally, this file has been tested for RTPs (Real Time Processes)
-//  only, not for DKMs (Downloadable Kernel Modules). These two types
-//  of executables differ largely in the available functionality of
-//  the C-library, STL, and so on. A DKM uses a library similar to those
-//  of vxWorks 5.X - with all its limitations and incompatibilities
-//  with respect to ANSI C++ and STL. So probably there might be problems
-//  with the usage of boost from DKMs. WRS or any voluteers are free to
-//  prove the opposite!
-
-// ====================================================================
-//
-// Some important information regarding the usage of POSIX semaphores:
-// -------------------------------------------------------------------
-//
-// VxWorks as a real time operating system handles threads somewhat
-// different from what "normal" OSes do, regarding their scheduling!
-// This could lead to a scenario called "priority inversion" when using
-// semaphores, see http://en.wikipedia.org/wiki/Priority_inversion.
-//
-// Now, VxWorks POSIX-semaphores for DKM's default to the usage of
-// priority inverting semaphores, which is fine. On the other hand,
-// for RTP's it defaults to using non priority inverting semaphores,
-// which could easily pose a serious problem for a real time process,
-// i.e. deadlocks! To overcome this two possibilities do exist:
-//
-// a) Patch every piece of boost that uses semaphores to instanciate
-//    the proper type of semaphores. This is non-intrusive with respect
-//    to the OS and could relatively easy been done by giving all
-//    semaphores attributes deviating from the default (for in-depth
-//    information see the POSIX functions pthread_mutexattr_init()
-//    and pthread_mutexattr_setprotocol()). However this breaks all
-//    too easily, as with every new version some boost library could
-//    all in a sudden start using semaphores, resurrecting the very
-//    same, hard to locate problem over and over again!
-//
-// b) We could change the default properties for POSIX-semaphores
-//    that VxWorks uses for RTP's and this is being suggested here,
-//    as it will more or less seamlessly integrate with boost. I got
-//    the following information from WRS how to do this, compare
-//    Wind River TSR# 1209768:
-//
-// Instructions for changing the default properties of POSIX-
-// semaphores for RTP's in VxWorks 6.9:
-// - Edit the file /vxworks-6.9/target/usr/src/posix/pthreadLib.c
-//   in the root of your Workbench-installation.
-// - Around line 917 there should be the definition of the default
-//   mutex attributes:
-//
-//   LOCAL pthread_mutexattr_t defaultMutexAttr =
-//       {
-//       PTHREAD_INITIALIZED_OBJ, PTHREAD_PRIO_NONE, 0,
-//       PTHREAD_MUTEX_DEFAULT
-//       };
-//
-//   Here, replace PTHREAD_PRIO_NONE by PTHREAD_PRIO_INHERIT.
-// - Around line 1236 there should be a definition for the function
-//   pthread_mutexattr_init(). A couple of lines below you should
-//   find a block of code like this:
-//
-//   pAttr->mutexAttrStatus      = PTHREAD_INITIALIZED_OBJ;
-//   pAttr->mutexAttrProtocol    = PTHREAD_PRIO_NONE;
-//   pAttr->mutexAttrPrioceiling = 0;
-//   pAttr->mutexAttrType        = PTHREAD_MUTEX_DEFAULT;
-//
-//   Here again, replace PTHREAD_PRIO_NONE by PTHREAD_PRIO_INHERIT.
-// - Finally, rebuild your VSB. This will create a new VxWorks kernel
-//   with the changed properties. That's it! Now, using boost should
-//   no longer cause any problems with task deadlocks!
-//
-// And here's another useful piece of information concerning VxWorks'
-// POSIX-functionality in general:
-// VxWorks is not a genuine POSIX-OS in itself, rather it is using a
-// kind of compatibility layer (sort of a wrapper) to emulate the
-// POSIX-functionality by using its own resources and functions.
-// At the time a task (thread) calls it's first POSIX-function during
-// runtime it is being transformed by the OS into a POSIX-thread.
-// This transformation does include a call to malloc() to allocate the
-// memory required for the housekeeping of POSIX-threads. In a high
-// priority RTP this malloc() call may be highly undesirable, as its
-// timing is more or less unpredictable (depending on what your actual
-// heap looks like). You can circumvent this problem by calling the
-// function thread_self() at a well defined point in the code of the
-// task, e.g. shortly after the task spawns up. Thereby you are able
-// to define the time when the task-transformation will take place and
-// you could shift it to an uncritical point where a malloc() call is
-// tolerable. So, if this could pose a problem for your code, remember
-// to call thread_self() from the affected task at an early stage.
-//
-// ====================================================================
-
-// Block out all versions before vxWorks 6.x, as these don't work:
-// Include header with the vxWorks version information and query them
-#include <version.h>
-#if !defined(_WRS_VXWORKS_MAJOR) || (_WRS_VXWORKS_MAJOR < 6)
-#  error "The vxWorks version you're using is so badly outdated,\
-          it doesn't work at all with boost, sorry, no chance!"
-#endif
-
-// Handle versions above 5.X but below 6.9
-#if (_WRS_VXWORKS_MAJOR == 6) && (_WRS_VXWORKS_MINOR < 9)
-// TODO: Starting from what version does vxWorks work with boost?
-// We can't reasonably insert a #warning "" as a user hint here,
-// as this will show up with every file including some boost header,
-// badly bugging the user... So for the time being we just leave it.
-#endif
-
-// vxWorks specific config options:
-// --------------------------------
-#define BOOST_PLATFORM "vxWorks"
-
-// Special behaviour for DKMs:
-#ifdef _WRS_KERNEL
-  // DKMs do not have the <cwchar>-header,
-  // but apparently they do have an intrinsic wchar_t meanwhile!
-#  define BOOST_NO_CWCHAR
-
-  // Lots of wide-functions and -headers are unavailable for DKMs as well:
-#  define BOOST_NO_CWCTYPE
-#  define BOOST_NO_SWPRINTF
-#  define BOOST_NO_STD_WSTRING
-#  define BOOST_NO_STD_WSTREAMBUF
-#endif
-
-// Generally available headers:
-#define BOOST_HAS_UNISTD_H
-#define BOOST_HAS_STDINT_H
-#define BOOST_HAS_DIRENT_H
-#define BOOST_HAS_SLIST
-
-// vxWorks does not have installed an iconv-library by default,
-// so unfortunately no Unicode support from scratch is available!
-// Thus, instead it is suggested to switch to ICU, as this seems
-// to be the most complete and portable option...
-#define BOOST_LOCALE_WITH_ICU
-
-// Generally available functionality:
-#define BOOST_HAS_THREADS
-#define BOOST_HAS_NANOSLEEP
-#define BOOST_HAS_GETTIMEOFDAY
-#define BOOST_HAS_CLOCK_GETTIME
-#define BOOST_HAS_MACRO_USE_FACET
-
-// Generally unavailable functionality, delivered by boost's test function:
-//#define BOOST_NO_DEDUCED_TYPENAME // Commented this out, boost's test gives an errorneous result!
-#define BOOST_NO_CXX11_EXTERN_TEMPLATE
-#define BOOST_NO_CXX11_VARIADIC_MACROS
-
-// Generally available threading API's:
-#define BOOST_HAS_PTHREADS
-#define BOOST_HAS_SCHED_YIELD
-#define BOOST_HAS_SIGACTION
-
-// Functionality available for RTPs only:
-#ifdef __RTP__
-#  define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
-#  define BOOST_HAS_LOG1P
-#  define BOOST_HAS_EXPM1
-#endif
-
-// Functionality available for DKMs only:
-#ifdef _WRS_KERNEL
-  // Luckily, at the moment there seems to be none!
-#endif
-
-// These #defines allow posix_features to work, since vxWorks doesn't
-// #define them itself for DKMs (for RTPs on the contrary it does):
-#ifdef _WRS_KERNEL
-#  ifndef _POSIX_TIMERS
-#    define _POSIX_TIMERS  1
-#  endif
-#  ifndef _POSIX_THREADS
-#    define _POSIX_THREADS 1
-#  endif
-#endif
-
-// vxWorks doesn't work with asio serial ports:
-#define BOOST_ASIO_DISABLE_SERIAL_PORT
-// TODO: The problem here seems to bee that vxWorks uses its own, very specific
-//       ways to handle serial ports, incompatible with POSIX or anything...
-//       Maybe a specific implementation would be possible, but until the
-//       straight need arises... This implementation would presumably consist
-//       of some vxWorks specific ioctl-calls, etc. Any voluteers?
-
-// vxWorks-around: <time.h> #defines CLOCKS_PER_SEC as sysClkRateGet() but
-//                 miserably fails to #include the required <sysLib.h> to make
-//                 sysClkRateGet() available! So we manually include it here.
-#ifdef __RTP__
-#  include <time.h>
-#  include <sysLib.h>
-#endif
-
-// vxWorks-around: In <stdint.h> the macros INT32_C(), UINT32_C(), INT64_C() and
-//                 UINT64_C() are defined errorneously, yielding not a signed/
-//                 unsigned long/long long type, but a signed/unsigned int/long
-//                 type. Eventually this leads to compile errors in ratio_fwd.hpp,
-//                 when trying to define several constants which do not fit into a
-//                 long type! We correct them here by redefining.
-#include <cstdint>
-
-// Some macro-magic to do the job
-#define VX_JOIN(X, Y)     VX_DO_JOIN(X, Y)
-#define VX_DO_JOIN(X, Y)  VX_DO_JOIN2(X, Y)
-#define VX_DO_JOIN2(X, Y) X##Y
-
-// Correctly setup the macros
-#undef  INT32_C
-#undef  UINT32_C
-#undef  INT64_C
-#undef  UINT64_C
-#define INT32_C(x)  VX_JOIN(x, L)
-#define UINT32_C(x) VX_JOIN(x, UL)
-#define INT64_C(x)  VX_JOIN(x, LL)
-#define UINT64_C(x) VX_JOIN(x, ULL)
-
-// #include Libraries required for the following function adaption
-#include <ioLib.h>
-#include <tickLib.h>
-#include <sys/time.h>
-
-// Use C-linkage for the following helper functions
-extern "C" {
-
-// vxWorks-around: The required functions getrlimit() and getrlimit() are missing.
-//                 But we have the similar functions getprlimit() and setprlimit(),
-//                 which may serve the purpose.
-//                 Problem: The vxWorks-documentation regarding these functions
-//                 doesn't deserve its name! It isn't documented what the first two
-//                 parameters idtype and id mean, so we must fall back to an educated
-//                 guess - null, argh... :-/
-
-// TODO: getprlimit() and setprlimit() do exist for RTPs only, for whatever reason.
-//       Thus for DKMs there would have to be another implementation.
-#ifdef __RTP__
-  inline int getrlimit(int resource, struct rlimit *rlp){
-    return getprlimit(0, 0, resource, rlp);
-  }
-
-  inline int setrlimit(int resource, const struct rlimit *rlp){
-    return setprlimit(0, 0, resource, const_cast<struct rlimit*>(rlp));
-  }
-#endif
-
-// vxWorks has ftruncate() only, so we do simulate truncate():
-inline int truncate(const char *p, off_t l){
-  int fd = open(p, O_WRONLY);
-  if (fd == -1){
-    errno = EACCES;
-    return -1;
-  }
-  if (ftruncate(fd, l) == -1){
-    close(fd);
-    errno = EACCES;
-    return -1;
-  }
-  return close(fd);
-}
-
-// Fake symlink handling by dummy functions:
-inline int symlink(const char*, const char*){
-  // vxWorks has no symlinks -> always return an error!
-  errno = EACCES;
-  return -1;
-}
-
-inline ssize_t readlink(const char*, char*, size_t){
-  // vxWorks has no symlinks -> always return an error!
-  errno = EACCES;
-  return -1;
-}
-
-// vxWorks claims to implement gettimeofday in sys/time.h
-// but nevertheless does not provide it! See
-// https://support.windriver.com/olsPortal/faces/maintenance/techtipDetail_noHeader.jspx?docId=16442&contentId=WR_TECHTIP_006256
-// We implement a surrogate version here via clock_gettime:
-inline int gettimeofday(struct timeval *tv, void * /*tzv*/) {
-  struct timespec ts;
-  clock_gettime(CLOCK_MONOTONIC, &ts);
-  tv->tv_sec  = ts.tv_sec;
-  tv->tv_usec = ts.tv_nsec / 1000;
-  return 0;
-}
-
-// vxWorks does provide neither struct tms nor function times()!
-// We implement an empty dummy-function, simply setting the user
-// and system time to the half of thew actual system ticks-value
-// and the child user and system time to 0.
-// Rather ugly but at least it suppresses compiler errors...
-// Unfortunately, this of course *does* have an severe impact on
-// dependant libraries, actually this is chrono only! Here it will
-// not be possible to correctly use user and system times! But
-// as vxWorks is lacking the ability to calculate user and system
-// process times there seems to be no other possible solution.
-struct tms{
-  clock_t tms_utime;  // User CPU time
-  clock_t tms_stime;  // System CPU time
-  clock_t tms_cutime; // User CPU time of terminated child processes
-  clock_t tms_cstime; // System CPU time of terminated child processes
-};
-
-inline clock_t times(struct tms *t){
-  struct timespec ts;
-  clock_gettime(CLOCK_THREAD_CPUTIME_ID, &ts);
-  clock_t ticks(static_cast<clock_t>(static_cast<double>(ts.tv_sec)  * CLOCKS_PER_SEC +
-                                     static_cast<double>(ts.tv_nsec) * CLOCKS_PER_SEC / 1000000.0));
-  t->tms_utime  = ticks/2U;
-  t->tms_stime  = ticks/2U;
-  t->tms_cutime = 0; // vxWorks is lacking the concept of a child process!
-  t->tms_cstime = 0; // -> Set the wait times for childs to 0
-  return ticks;
-}
-
-} // extern "C"
-
-// Put the selfmade functions into the std-namespace, just in case
-namespace std {
-# ifdef __RTP__
-    using ::getrlimit;
-    using ::setrlimit;
-# endif
-  using ::truncate;
-  using ::symlink;
-  using ::readlink;
-  using ::times;
-  using ::gettimeofday;
-}
-
-// Some more macro-magic:
-// vxWorks-around: Some functions are not present or broken in vxWorks
-//                 but may be patched to life via helper macros...
-
-// Include signal.h which might contain a typo to be corrected here
-#include <signal.h>
-
-#define getpagesize()    sysconf(_SC_PAGESIZE)         // getpagesize is deprecated anyway!
-#ifndef S_ISSOCK
-#  define S_ISSOCK(mode) ((mode & S_IFMT) == S_IFSOCK) // Is file a socket?
-#endif
-#define lstat(p, b)      stat(p, b)                    // lstat() == stat(), as vxWorks has no symlinks!
-#ifndef FPE_FLTINV
-#  define FPE_FLTINV     (FPE_FLTSUB+1)                // vxWorks has no FPE_FLTINV, so define one as a dummy
-#endif
-#if !defined(BUS_ADRALN) && defined(BUS_ADRALNR)
-#  define BUS_ADRALN     BUS_ADRALNR                   // Correct a supposed typo in vxWorks' <signal.h>
-#endif
-//typedef int              locale_t;                     // locale_t is a POSIX-extension, currently unpresent in vxWorks!
-
-// #include boilerplate code:
-#include <boost/config/posix_features.hpp>
-
-// vxWorks lies about XSI conformance, there is no nl_types.h:
-#undef BOOST_HAS_NL_TYPES_H
diff --git a/boost/config/platform/win32.hpp b/boost/config/platform/win32.hpp
deleted file mode 100644
index 6ab59f4..0000000
--- a/boost/config/platform/win32.hpp
+++ /dev/null
@@ -1,73 +0,0 @@
-//  (C) Copyright John Maddock 2001 - 2003. 
-//  (C) Copyright Bill Kempf 2001. 
-//  (C) Copyright Aleksey Gurtovoy 2003. 
-//  (C) Copyright Rene Rivera 2005.
-//  Use, modification and distribution are subject to the 
-//  Boost Software License, Version 1.0. (See accompanying file 
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org for most recent version.
-
-//  Win32 specific config options:
-
-#define BOOST_PLATFORM "Win32"
-
-//  Get the information about the MinGW runtime, i.e. __MINGW32_*VERSION.
-#if defined(__MINGW32__)
-#  include <_mingw.h>
-#endif
-
-#if defined(__GNUC__) && !defined(BOOST_NO_SWPRINTF)
-#  define BOOST_NO_SWPRINTF
-#endif
-
-//  Default defines for BOOST_SYMBOL_EXPORT and BOOST_SYMBOL_IMPORT
-//  If a compiler doesn't support __declspec(dllexport)/__declspec(dllimport),
-//  its boost/config/compiler/ file must define BOOST_SYMBOL_EXPORT and
-//  BOOST_SYMBOL_IMPORT
-#ifndef BOOST_SYMBOL_EXPORT
-#  define BOOST_HAS_DECLSPEC
-#  define BOOST_SYMBOL_EXPORT __declspec(dllexport)
-#  define BOOST_SYMBOL_IMPORT __declspec(dllimport)
-#endif
-
-#if defined(__MINGW32__) && ((__MINGW32_MAJOR_VERSION > 2) || ((__MINGW32_MAJOR_VERSION == 2) && (__MINGW32_MINOR_VERSION >= 0)))
-#  define BOOST_HAS_STDINT_H
-#  ifndef __STDC_LIMIT_MACROS
-#     define __STDC_LIMIT_MACROS
-#  endif
-#  define BOOST_HAS_DIRENT_H
-#  define BOOST_HAS_UNISTD_H
-#endif
-
-#if defined(__MINGW32__) && (__GNUC__ >= 4)
-#  define BOOST_HAS_EXPM1
-#  define BOOST_HAS_LOG1P
-#  define BOOST_HAS_GETTIMEOFDAY
-#endif
-//
-// Win32 will normally be using native Win32 threads,
-// but there is a pthread library avaliable as an option,
-// we used to disable this when BOOST_DISABLE_WIN32 was 
-// defined but no longer - this should allow some
-// files to be compiled in strict mode - while maintaining
-// a consistent setting of BOOST_HAS_THREADS across
-// all translation units (needed for shared_ptr etc).
-//
-
-#ifdef _WIN32_WCE
-#  define BOOST_NO_ANSI_APIS
-#else
-#  define BOOST_HAS_GETSYSTEMTIMEASFILETIME
-#endif
-
-#ifndef BOOST_HAS_PTHREADS
-#  define BOOST_HAS_WINTHREADS
-#endif
-
-#ifndef BOOST_DISABLE_WIN32
-// WEK: Added
-#define BOOST_HAS_FTIME
-#define BOOST_WINDOWS 1
-
-#endif
diff --git a/boost/config/posix_features.hpp b/boost/config/posix_features.hpp
deleted file mode 100644
index d129547..0000000
--- a/boost/config/posix_features.hpp
+++ /dev/null
@@ -1,95 +0,0 @@
-//  (C) Copyright John Maddock 2001 - 2003. 
-//  Use, modification and distribution are subject to the 
-//  Boost Software License, Version 1.0. (See accompanying file 
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-
-//  See http://www.boost.org for most recent version.
-
-// All POSIX feature tests go in this file,
-// Note that we test _POSIX_C_SOURCE and _XOPEN_SOURCE as well
-// _POSIX_VERSION and _XOPEN_VERSION: on some systems POSIX API's
-// may be present but none-functional unless _POSIX_C_SOURCE and
-// _XOPEN_SOURCE have been defined to the right value (it's up
-// to the user to do this *before* including any header, although
-// in most cases the compiler will do this for you).
-
-#  if defined(BOOST_HAS_UNISTD_H)
-#     include <unistd.h>
-
-      // XOpen has <nl_types.h>, but is this the correct version check?
-#     if defined(_XOPEN_VERSION) && (_XOPEN_VERSION >= 3)
-#        define BOOST_HAS_NL_TYPES_H
-#     endif
-
-      // POSIX version 6 requires <stdint.h>
-#     if defined(_POSIX_VERSION) && (_POSIX_VERSION >= 200100)
-#        define BOOST_HAS_STDINT_H
-#     endif
-
-      // POSIX version 2 requires <dirent.h>
-#     if defined(_POSIX_VERSION) && (_POSIX_VERSION >= 199009L)
-#        define BOOST_HAS_DIRENT_H
-#     endif
-
-      // POSIX version 3 requires <signal.h> to have sigaction:
-#     if defined(_POSIX_VERSION) && (_POSIX_VERSION >= 199506L)
-#        define BOOST_HAS_SIGACTION
-#     endif
-      // POSIX defines _POSIX_THREADS > 0 for pthread support,
-      // however some platforms define _POSIX_THREADS without
-      // a value, hence the (_POSIX_THREADS+0 >= 0) check.
-      // Strictly speaking this may catch platforms with a
-      // non-functioning stub <pthreads.h>, but such occurrences should
-      // occur very rarely if at all.
-#     if defined(_POSIX_THREADS) && (_POSIX_THREADS+0 >= 0) && !defined(BOOST_HAS_WINTHREADS) && !defined(BOOST_HAS_MPTASKS)
-#        define BOOST_HAS_PTHREADS
-#     endif
-
-      // BOOST_HAS_NANOSLEEP:
-      // This is predicated on _POSIX_TIMERS or _XOPEN_REALTIME:
-#     if (defined(_POSIX_TIMERS) && (_POSIX_TIMERS+0 >= 0)) \
-             || (defined(_XOPEN_REALTIME) && (_XOPEN_REALTIME+0 >= 0))
-#        define BOOST_HAS_NANOSLEEP
-#     endif
-
-      // BOOST_HAS_CLOCK_GETTIME:
-      // This is predicated on _POSIX_TIMERS (also on _XOPEN_REALTIME
-      // but at least one platform - linux - defines that flag without
-      // defining clock_gettime):
-#     if (defined(_POSIX_TIMERS) && (_POSIX_TIMERS+0 >= 0))
-#        define BOOST_HAS_CLOCK_GETTIME
-#     endif
-
-      // BOOST_HAS_SCHED_YIELD:
-      // This is predicated on _POSIX_PRIORITY_SCHEDULING or
-      // on _POSIX_THREAD_PRIORITY_SCHEDULING or on _XOPEN_REALTIME.
-#     if defined(_POSIX_PRIORITY_SCHEDULING) && (_POSIX_PRIORITY_SCHEDULING+0 > 0)\
-            || (defined(_POSIX_THREAD_PRIORITY_SCHEDULING) && (_POSIX_THREAD_PRIORITY_SCHEDULING+0 > 0))\
-            || (defined(_XOPEN_REALTIME) && (_XOPEN_REALTIME+0 >= 0))
-#        define BOOST_HAS_SCHED_YIELD
-#     endif
-
-      // BOOST_HAS_GETTIMEOFDAY:
-      // BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE:
-      // These are predicated on _XOPEN_VERSION, and appears to be first released
-      // in issue 4, version 2 (_XOPEN_VERSION > 500).
-      // Likewise for the functions log1p and expm1.
-#     if defined(_XOPEN_VERSION) && (_XOPEN_VERSION+0 >= 500)
-#        define BOOST_HAS_GETTIMEOFDAY
-#        if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE+0 >= 500)
-#           define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
-#        endif
-#        ifndef BOOST_HAS_LOG1P
-#           define BOOST_HAS_LOG1P
-#        endif
-#        ifndef BOOST_HAS_EXPM1
-#           define BOOST_HAS_EXPM1
-#        endif
-#     endif
-
-#  endif
-
-
-
-
diff --git a/boost/config/requires_threads.hpp b/boost/config/requires_threads.hpp
deleted file mode 100644
index cfaff23..0000000
--- a/boost/config/requires_threads.hpp
+++ /dev/null
@@ -1,92 +0,0 @@
-//  (C) Copyright John Maddock 2003. 
-//  Use, modification and distribution are subject to the 
-//  Boost Software License, Version 1.0. (See accompanying file 
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-
-#ifndef BOOST_CONFIG_REQUIRES_THREADS_HPP
-#define BOOST_CONFIG_REQUIRES_THREADS_HPP
-
-#ifndef BOOST_CONFIG_HPP
-#  include <boost/config.hpp>
-#endif
-
-#if defined(BOOST_DISABLE_THREADS)
-
-//
-// special case to handle versions of gcc which don't currently support threads:
-//
-#if defined(__GNUC__) && ((__GNUC__ < 3) || (__GNUC_MINOR__ <= 3) || !defined(BOOST_STRICT_CONFIG))
-//
-// this is checked up to gcc 3.3:
-//
-#if defined(__sgi) || defined(__hpux)
-#  error "Multi-threaded programs are not supported by gcc on HPUX or Irix (last checked with gcc 3.3)"
-#endif
-
-#endif
-
-#  error "Threading support unavaliable: it has been explicitly disabled with BOOST_DISABLE_THREADS"
-
-#elif !defined(BOOST_HAS_THREADS)
-
-# if defined __COMO__
-//  Comeau C++
-#   error "Compiler threading support is not turned on. Please set the correct command line options for threading: -D_MT (Windows) or -D_REENTRANT (Unix)"
-
-#elif defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC)
-//  Intel
-#ifdef _WIN32
-#  error "Compiler threading support is not turned on. Please set the correct command line options for threading: either /MT /MTd /MD or /MDd"
-#else
-#   error "Compiler threading support is not turned on. Please set the correct command line options for threading: -openmp"
-#endif
-
-# elif defined __GNUC__
-//  GNU C++:
-#   error "Compiler threading support is not turned on. Please set the correct command line options for threading: -pthread (Linux), -pthreads (Solaris) or -mthreads (Mingw32)"
-
-#elif defined __sgi
-//  SGI MIPSpro C++
-#   error "Compiler threading support is not turned on. Please set the correct command line options for threading: -D_SGI_MP_SOURCE"
-
-#elif defined __DECCXX
-//  Compaq Tru64 Unix cxx
-#   error "Compiler threading support is not turned on. Please set the correct command line options for threading: -pthread"
-
-#elif defined __BORLANDC__
-//  Borland
-#   error "Compiler threading support is not turned on. Please set the correct command line options for threading: -tWM"
-
-#elif defined  __MWERKS__
-//  Metrowerks CodeWarrior
-#   error "Compiler threading support is not turned on. Please set the correct command line options for threading: either -runtime sm, -runtime smd, -runtime dm, or -runtime dmd"
-
-#elif defined  __SUNPRO_CC
-//  Sun Workshop Compiler C++
-#   error "Compiler threading support is not turned on. Please set the correct command line options for threading: -mt"
-
-#elif defined __HP_aCC
-//  HP aCC
-#   error "Compiler threading support is not turned on. Please set the correct command line options for threading: -mt"
-
-#elif defined(__IBMCPP__)
-//  IBM Visual Age
-#   error "Compiler threading support is not turned on. Please compile the code with the xlC_r compiler"
-
-#elif defined _MSC_VER
-//  Microsoft Visual C++
-//
-//  Must remain the last #elif since some other vendors (Metrowerks, for
-//  example) also #define _MSC_VER
-#  error "Compiler threading support is not turned on. Please set the correct command line options for threading: either /MT /MTd /MD or /MDd"
-
-#else
-
-#  error "Compiler threading support is not turned on.  Please consult your compiler's documentation for the appropriate options to use"
-
-#endif // compilers
-
-#endif // BOOST_HAS_THREADS
-
-#endif // BOOST_CONFIG_REQUIRES_THREADS_HPP
diff --git a/boost/config/select_compiler_config.hpp b/boost/config/select_compiler_config.hpp
deleted file mode 100644
index 0eeb7ad..0000000
--- a/boost/config/select_compiler_config.hpp
+++ /dev/null
@@ -1,114 +0,0 @@
-//  Boost compiler configuration selection header file
-
-//  (C) Copyright John Maddock 2001 - 2003. 
-//  (C) Copyright Martin Wille 2003.
-//  (C) Copyright Guillaume Melquiond 2003.
-//
-//  Distributed under the Boost Software License, Version 1.0.
-//  (See accompanying file LICENSE_1_0.txt or copy at
-//   http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org/ for most recent version.
-
-// locate which compiler we are using and define
-// BOOST_COMPILER_CONFIG as needed: 
-
-#if defined __CUDACC__
-//  NVIDIA CUDA C++ compiler for GPU
-#   include "boost/config/compiler/nvcc.hpp"
-
-#endif
-
-#if defined(__GCCXML__)
-// GCC-XML emulates other compilers, it has to appear first here!
-#   define BOOST_COMPILER_CONFIG "boost/config/compiler/gcc_xml.hpp"
-
-#elif defined(_CRAYC)
-// EDG based Cray compiler:
-#   define BOOST_COMPILER_CONFIG "boost/config/compiler/cray.hpp"
-
-#elif defined __COMO__
-//  Comeau C++
-#   define BOOST_COMPILER_CONFIG "boost/config/compiler/comeau.hpp"
-
-#elif defined(__PATHSCALE__) && (__PATHCC__ >= 4)
-// PathScale EKOPath compiler (has to come before clang and gcc)
-#   define BOOST_COMPILER_CONFIG "boost/config/compiler/pathscale.hpp"
-
-#elif defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC)
-//  Intel
-#   define BOOST_COMPILER_CONFIG "boost/config/compiler/intel.hpp"
-
-#elif defined __clang__
-//  Clang C++ emulates GCC, so it has to appear early.
-#   define BOOST_COMPILER_CONFIG "boost/config/compiler/clang.hpp"
-
-#elif defined __DMC__
-//  Digital Mars C++
-#   define BOOST_COMPILER_CONFIG "boost/config/compiler/digitalmars.hpp"
-
-# elif defined __GNUC__
-//  GNU C++:
-#   define BOOST_COMPILER_CONFIG "boost/config/compiler/gcc.hpp"
-
-#elif defined __KCC
-//  Kai C++
-#   define BOOST_COMPILER_CONFIG "boost/config/compiler/kai.hpp"
-
-#elif defined __sgi
-//  SGI MIPSpro C++
-#   define BOOST_COMPILER_CONFIG "boost/config/compiler/sgi_mipspro.hpp"
-
-#elif defined __DECCXX
-//  Compaq Tru64 Unix cxx
-#   define BOOST_COMPILER_CONFIG "boost/config/compiler/compaq_cxx.hpp"
-
-#elif defined __ghs
-//  Greenhills C++
-#   define BOOST_COMPILER_CONFIG "boost/config/compiler/greenhills.hpp"
-
-#elif defined __CODEGEARC__
-//  CodeGear - must be checked for before Borland
-#   define BOOST_COMPILER_CONFIG "boost/config/compiler/codegear.hpp"
-
-#elif defined __BORLANDC__
-//  Borland
-#   define BOOST_COMPILER_CONFIG "boost/config/compiler/borland.hpp"
-
-#elif defined  __MWERKS__
-//  Metrowerks CodeWarrior
-#   define BOOST_COMPILER_CONFIG "boost/config/compiler/metrowerks.hpp"
-
-#elif defined  __SUNPRO_CC
-//  Sun Workshop Compiler C++
-#   define BOOST_COMPILER_CONFIG "boost/config/compiler/sunpro_cc.hpp"
-
-#elif defined __HP_aCC
-//  HP aCC
-#   define BOOST_COMPILER_CONFIG "boost/config/compiler/hp_acc.hpp"
-
-#elif defined(__MRC__) || defined(__SC__)
-//  MPW MrCpp or SCpp
-#   define BOOST_COMPILER_CONFIG "boost/config/compiler/mpw.hpp"
-
-#elif defined(__IBMCPP__)
-//  IBM Visual Age
-#   define BOOST_COMPILER_CONFIG "boost/config/compiler/vacpp.hpp"
-
-#elif defined(__PGI)
-//  Portland Group Inc.
-#   define BOOST_COMPILER_CONFIG "boost/config/compiler/pgi.hpp"
-
-#elif defined _MSC_VER
-//  Microsoft Visual C++
-//
-//  Must remain the last #elif since some other vendors (Metrowerks, for
-//  example) also #define _MSC_VER
-#   define BOOST_COMPILER_CONFIG "boost/config/compiler/visualc.hpp"
-
-#elif defined (BOOST_ASSERT_CONFIG)
-// this must come last - generate an error if we don't
-// recognise the compiler:
-#  error "Unknown compiler - please configure (http://www.boost.org/libs/config/config.htm#configuring) and report the results to the main boost mailing list (http://www.boost.org/more/mailing_lists.htm#main)"
-
-#endif
diff --git a/boost/config/select_platform_config.hpp b/boost/config/select_platform_config.hpp
deleted file mode 100644
index 2af61d2..0000000
--- a/boost/config/select_platform_config.hpp
+++ /dev/null
@@ -1,105 +0,0 @@
-//  Boost compiler configuration selection header file
-
-//  (C) Copyright John Maddock 2001 - 2002. 
-//  (C) Copyright Jens Maurer 2001. 
-//  Use, modification and distribution are subject to the 
-//  Boost Software License, Version 1.0. (See accompanying file 
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org for most recent version.
-
-// locate which platform we are on and define BOOST_PLATFORM_CONFIG as needed.
-// Note that we define the headers to include using "header_name" not
-// <header_name> in order to prevent macro expansion within the header
-// name (for example "linux" is a macro on linux systems).
-
-#if (defined(linux) || defined(__linux) || defined(__linux__) || defined(__GNU__) || defined(__GLIBC__)) && !defined(_CRAYC)
-// linux, also other platforms (Hurd etc) that use GLIBC, should these really have their own config headers though?
-#  define BOOST_PLATFORM_CONFIG "boost/config/platform/linux.hpp"
-
-#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
-// BSD:
-#  define BOOST_PLATFORM_CONFIG "boost/config/platform/bsd.hpp"
-
-#elif defined(sun) || defined(__sun)
-// solaris:
-#  define BOOST_PLATFORM_CONFIG "boost/config/platform/solaris.hpp"
-
-#elif defined(__sgi)
-// SGI Irix:
-#  define BOOST_PLATFORM_CONFIG "boost/config/platform/irix.hpp"
-
-#elif defined(__hpux)
-// hp unix:
-#  define BOOST_PLATFORM_CONFIG "boost/config/platform/hpux.hpp"
-
-#elif defined(__CYGWIN__)
-// cygwin is not win32:
-#  define BOOST_PLATFORM_CONFIG "boost/config/platform/cygwin.hpp"
-
-#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
-// win32:
-#  define BOOST_PLATFORM_CONFIG "boost/config/platform/win32.hpp"
-
-#elif defined(__BEOS__)
-// BeOS
-#  define BOOST_PLATFORM_CONFIG "boost/config/platform/beos.hpp"
-
-#elif defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__)
-// MacOS
-#  define BOOST_PLATFORM_CONFIG "boost/config/platform/macos.hpp"
-
-#elif defined(__IBMCPP__) || defined(_AIX)
-// IBM
-#  define BOOST_PLATFORM_CONFIG "boost/config/platform/aix.hpp"
-
-#elif defined(__amigaos__)
-// AmigaOS
-#  define BOOST_PLATFORM_CONFIG "boost/config/platform/amigaos.hpp"
-
-#elif defined(__QNXNTO__)
-// QNX:
-#  define BOOST_PLATFORM_CONFIG "boost/config/platform/qnxnto.hpp"
-
-#elif defined(__VXWORKS__)
-// vxWorks:
-#  define BOOST_PLATFORM_CONFIG "boost/config/platform/vxworks.hpp"
-
-#elif defined(__SYMBIAN32__) 
-// Symbian: 
-#  define BOOST_PLATFORM_CONFIG "boost/config/platform/symbian.hpp" 
-
-#elif defined(_CRAYC)
-// Cray:
-#  define BOOST_PLATFORM_CONFIG "boost/config/platform/cray.hpp" 
-
-#elif defined(__VMS) 
-// VMS:
-#  define BOOST_PLATFORM_CONFIG "boost/config/platform/vms.hpp" 
-#else
-
-#  if defined(unix) \
-      || defined(__unix) \
-      || defined(_XOPEN_SOURCE) \
-      || defined(_POSIX_SOURCE)
-
-   // generic unix platform:
-
-#  ifndef BOOST_HAS_UNISTD_H
-#     define BOOST_HAS_UNISTD_H
-#  endif
-
-#  include <boost/config/posix_features.hpp>
-
-#  endif
-
-#  if defined (BOOST_ASSERT_CONFIG)
-      // this must come last - generate an error if we don't
-      // recognise the platform:
-#     error "Unknown platform - please configure and report the results to boost.org"
-#  endif
-
-#endif
-
-
-
diff --git a/boost/config/select_stdlib_config.hpp b/boost/config/select_stdlib_config.hpp
deleted file mode 100644
index 96ede00..0000000
--- a/boost/config/select_stdlib_config.hpp
+++ /dev/null
@@ -1,85 +0,0 @@
-//  Boost compiler configuration selection header file
-
-//  (C) Copyright John Maddock 2001 - 2003. 
-//  (C) Copyright Jens Maurer 2001 - 2002. 
-//  Use, modification and distribution are subject to the 
-//  Boost Software License, Version 1.0. (See accompanying file 
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-
-//  See http://www.boost.org for most recent version.
-
-// locate which std lib we are using and define BOOST_STDLIB_CONFIG as needed:
-
-// First include <cstddef> to determine if some version of STLport is in use as the std lib
-// (do not rely on this header being included since users can short-circuit this header 
-//  if they know whose std lib they are using.)
-#ifdef __cplusplus
-#  include <cstddef>
-#else
-#  include <stddef.h>
-#endif
-
-#if defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
-// STLPort library; this _must_ come first, otherwise since
-// STLport typically sits on top of some other library, we
-// can end up detecting that first rather than STLport:
-#  define BOOST_STDLIB_CONFIG "boost/config/stdlib/stlport.hpp"
-
-#else
-
-// If our std lib was not some version of STLport, then include <utility> as it is about 
-// the smallest of the std lib headers that includes real C++ stuff.  (Some std libs do not
-// include their C++-related macros in <cstddef> so this additional include makes sure
-// we get those definitions)
-// (again do not rely on this header being included since users can short-circuit this 
-//  header if they know whose std lib they are using.)
-#include <boost/config/no_tr1/utility.hpp>
-
-#if defined(__LIBCOMO__)
-// Comeau STL:
-#define BOOST_STDLIB_CONFIG "boost/config/stdlib/libcomo.hpp"
-
-#elif defined(__STD_RWCOMPILER_H__) || defined(_RWSTD_VER)
-// Rogue Wave library:
-#  define BOOST_STDLIB_CONFIG "boost/config/stdlib/roguewave.hpp"
-
-#elif defined(_LIBCPP_VERSION)
-// libc++
-#  define BOOST_STDLIB_CONFIG "boost/config/stdlib/libcpp.hpp"
-
-#elif defined(__GLIBCPP__) || defined(__GLIBCXX__)
-// GNU libstdc++ 3
-#  define BOOST_STDLIB_CONFIG "boost/config/stdlib/libstdcpp3.hpp"
-
-#elif defined(__STL_CONFIG_H)
-// generic SGI STL
-#  define BOOST_STDLIB_CONFIG "boost/config/stdlib/sgi.hpp"
-
-#elif defined(__MSL_CPP__)
-// MSL standard lib:
-#  define BOOST_STDLIB_CONFIG "boost/config/stdlib/msl.hpp"
-
-#elif defined(__IBMCPP__)
-// take the default VACPP std lib
-#  define BOOST_STDLIB_CONFIG "boost/config/stdlib/vacpp.hpp"
-
-#elif defined(MSIPL_COMPILE_H)
-// Modena C++ standard library
-#  define BOOST_STDLIB_CONFIG "boost/config/stdlib/modena.hpp"
-
-#elif (defined(_YVALS) && !defined(__IBMCPP__)) || defined(_CPPLIB_VER)
-// Dinkumware Library (this has to appear after any possible replacement libraries):
-#  define BOOST_STDLIB_CONFIG "boost/config/stdlib/dinkumware.hpp"
-
-#elif defined (BOOST_ASSERT_CONFIG)
-// this must come last - generate an error if we don't
-// recognise the library:
-#  error "Unknown standard library - please configure and report the results to boost.org"
-
-#endif
-
-#endif
-
-
-
diff --git a/boost/config/stdlib/dinkumware.hpp b/boost/config/stdlib/dinkumware.hpp
deleted file mode 100644
index a8b68be..0000000
--- a/boost/config/stdlib/dinkumware.hpp
+++ /dev/null
@@ -1,157 +0,0 @@
-//  (C) Copyright John Maddock 2001 - 2003.
-//  (C) Copyright Jens Maurer 2001.
-//  (C) Copyright Peter Dimov 2001.
-//  (C) Copyright David Abrahams 2002.
-//  (C) Copyright Guillaume Melquiond 2003.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org for most recent version.
-
-//  Dinkumware standard library config:
-
-#if !defined(_YVALS) && !defined(_CPPLIB_VER)
-#include <boost/config/no_tr1/utility.hpp>
-#if !defined(_YVALS) && !defined(_CPPLIB_VER)
-#error This is not the Dinkumware lib!
-#endif
-#endif
-
-
-#if defined(_CPPLIB_VER) && (_CPPLIB_VER >= 306)
-   // full dinkumware 3.06 and above
-   // fully conforming provided the compiler supports it:
-#  if !(defined(_GLOBAL_USING) && (_GLOBAL_USING+0 > 0)) && !defined(__BORLANDC__) && !defined(_STD) && !(defined(__ICC) && (__ICC >= 700))   // can be defined in yvals.h
-#     define BOOST_NO_STDC_NAMESPACE
-#  endif
-#  if !(defined(_HAS_MEMBER_TEMPLATES_REBIND) && (_HAS_MEMBER_TEMPLATES_REBIND+0 > 0)) && !(defined(_MSC_VER) && (_MSC_VER > 1300)) && defined(BOOST_MSVC)
-#     define BOOST_NO_STD_ALLOCATOR
-#  endif
-#  define BOOST_HAS_PARTIAL_STD_ALLOCATOR
-#  if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
-      // if this lib version is set up for vc6 then there is no std::use_facet:
-#     define BOOST_NO_STD_USE_FACET
-#     define BOOST_HAS_TWO_ARG_USE_FACET
-      // C lib functions aren't in namespace std either:
-#     define BOOST_NO_STDC_NAMESPACE
-      // and nor is <exception>
-#     define BOOST_NO_EXCEPTION_STD_NAMESPACE
-#  endif
-// There's no numeric_limits<long long> support unless _LONGLONG is defined:
-#  if !defined(_LONGLONG) && (_CPPLIB_VER <= 310)
-#     define BOOST_NO_MS_INT64_NUMERIC_LIMITS
-#  endif
-// 3.06 appears to have (non-sgi versions of) <hash_set> & <hash_map>,
-// and no <slist> at all
-#else
-#  define BOOST_MSVC_STD_ITERATOR 1
-#  define BOOST_NO_STD_ITERATOR
-#  define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
-#  define BOOST_NO_STD_ALLOCATOR
-#  define BOOST_NO_STDC_NAMESPACE
-#  define BOOST_NO_STD_USE_FACET
-#  define BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN
-#  define BOOST_HAS_MACRO_USE_FACET
-#  ifndef _CPPLIB_VER
-      // Updated Dinkum library defines this, and provides
-      // its own min and max definitions, as does MTA version.
-#     ifndef __MTA__ 
-#        define BOOST_NO_STD_MIN_MAX
-#     endif
-#     define BOOST_NO_MS_INT64_NUMERIC_LIMITS
-#  endif
-#endif
-
-//
-// std extension namespace is stdext for vc7.1 and later, 
-// the same applies to other compilers that sit on top
-// of vc7.1 (Intel and Comeau):
-//
-#if defined(_MSC_VER) && (_MSC_VER >= 1310) && !defined(__BORLANDC__)
-#  define BOOST_STD_EXTENSION_NAMESPACE stdext
-#endif
-
-
-#if (defined(_MSC_VER) && (_MSC_VER <= 1300) && !defined(__BORLANDC__)) || !defined(_CPPLIB_VER) || (_CPPLIB_VER < 306)
-   // if we're using a dinkum lib that's
-   // been configured for VC6/7 then there is
-   // no iterator traits (true even for icl)
-#  define BOOST_NO_STD_ITERATOR_TRAITS
-#endif
-
-#if defined(__ICL) && (__ICL < 800) && defined(_CPPLIB_VER) && (_CPPLIB_VER <= 310)
-// Intel C++ chokes over any non-trivial use of <locale>
-// this may be an overly restrictive define, but regex fails without it:
-#  define BOOST_NO_STD_LOCALE
-#endif
-
-#include <typeinfo>
-#if ( (!_HAS_EXCEPTIONS && !defined(__ghs__)) || (!_HAS_NAMESPACE && defined(__ghs__)) ) && !defined(__TI_COMPILER_VERSION__)
-#  define BOOST_NO_STD_TYPEINFO    
-#endif  
-
-//  C++0x headers implemented in 520 (as shipped by Microsoft)
-//
-#if !defined(_CPPLIB_VER) || _CPPLIB_VER < 520
-#  define BOOST_NO_CXX11_HDR_ARRAY
-#  define BOOST_NO_CXX11_HDR_CODECVT
-#  define BOOST_NO_CXX11_HDR_FORWARD_LIST
-#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#  define BOOST_NO_CXX11_HDR_RANDOM
-#  define BOOST_NO_CXX11_HDR_REGEX
-#  define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
-#  define BOOST_NO_CXX11_HDR_UNORDERED_MAP
-#  define BOOST_NO_CXX11_HDR_UNORDERED_SET
-#  define BOOST_NO_CXX11_HDR_TUPLE
-#  define BOOST_NO_CXX11_HDR_TYPEINDEX
-#  define BOOST_NO_CXX11_HDR_FUNCTIONAL
-#  define BOOST_NO_CXX11_NUMERIC_LIMITS
-#  define BOOST_NO_CXX11_SMART_PTR
-#endif
-
-#if ((!defined(_HAS_TR1_IMPORTS) || (_HAS_TR1_IMPORTS+0 == 0)) && !defined(BOOST_NO_CXX11_HDR_TUPLE)) \
-  && (!defined(_CPPLIB_VER) || _CPPLIB_VER < 610)
-#  define BOOST_NO_CXX11_HDR_TUPLE
-#endif
-
-//  C++0x headers implemented in 540 (as shipped by Microsoft)
-//
-#if !defined(_CPPLIB_VER) || _CPPLIB_VER < 540
-#  define BOOST_NO_CXX11_HDR_TYPE_TRAITS
-#  define BOOST_NO_CXX11_HDR_CHRONO
-#  define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
-#  define BOOST_NO_CXX11_HDR_FUTURE
-#  define BOOST_NO_CXX11_HDR_MUTEX
-#  define BOOST_NO_CXX11_HDR_RATIO
-#  define BOOST_NO_CXX11_HDR_THREAD
-#  define BOOST_NO_CXX11_ALLOCATOR
-#  define BOOST_NO_CXX11_ATOMIC_SMART_PTR
-#endif
-
-//  C++0x headers implemented in 610 (as shipped by Microsoft)
-//
-#if !defined(_CPPLIB_VER) || _CPPLIB_VER < 610
-#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#endif
-
-#ifdef _CPPLIB_VER
-#  define BOOST_DINKUMWARE_STDLIB _CPPLIB_VER
-#else
-#  define BOOST_DINKUMWARE_STDLIB 1
-#endif
-
-#ifdef _CPPLIB_VER
-#  define BOOST_STDLIB "Dinkumware standard library version " BOOST_STRINGIZE(_CPPLIB_VER)
-#else
-#  define BOOST_STDLIB "Dinkumware standard library version 1.x"
-#endif
-
-
-
-
-
-
-
-
-
diff --git a/boost/config/stdlib/libcomo.hpp b/boost/config/stdlib/libcomo.hpp
deleted file mode 100644
index 29490f1..0000000
--- a/boost/config/stdlib/libcomo.hpp
+++ /dev/null
@@ -1,72 +0,0 @@
-//  (C) Copyright John Maddock 2002 - 2003. 
-//  (C) Copyright Jens Maurer 2002 - 2003. 
-//  (C) Copyright Beman Dawes 2002 - 2003. 
-//  Use, modification and distribution are subject to the 
-//  Boost Software License, Version 1.0. (See accompanying file 
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org for most recent version.
-
-//  Comeau STL:
-
-#if !defined(__LIBCOMO__)
-#  include <boost/config/no_tr1/utility.hpp>
-#  if !defined(__LIBCOMO__)
-#      error "This is not the Comeau STL!"
-#  endif
-#endif
-
-//
-// std::streambuf<wchar_t> is non-standard
-// NOTE: versions of libcomo prior to beta28 have octal version numbering,
-// e.g. version 25 is 21 (dec)
-#if __LIBCOMO_VERSION__ <= 22
-#  define BOOST_NO_STD_WSTREAMBUF
-#endif
-
-#if (__LIBCOMO_VERSION__ <= 31) && defined(_WIN32)
-#define BOOST_NO_SWPRINTF
-#endif
-
-#if __LIBCOMO_VERSION__ >= 31
-#  define BOOST_HAS_HASH
-#  define BOOST_HAS_SLIST
-#endif
-
-//  C++0x headers not yet implemented
-//
-#  define BOOST_NO_CXX11_HDR_ARRAY
-#  define BOOST_NO_CXX11_HDR_CHRONO
-#  define BOOST_NO_CXX11_HDR_CODECVT
-#  define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
-#  define BOOST_NO_CXX11_HDR_FORWARD_LIST
-#  define BOOST_NO_CXX11_HDR_FUTURE
-#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#  define BOOST_NO_CXX11_HDR_MUTEX
-#  define BOOST_NO_CXX11_HDR_RANDOM
-#  define BOOST_NO_CXX11_HDR_RATIO
-#  define BOOST_NO_CXX11_HDR_REGEX
-#  define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
-#  define BOOST_NO_CXX11_HDR_THREAD
-#  define BOOST_NO_CXX11_HDR_TUPLE
-#  define BOOST_NO_CXX11_HDR_TYPE_TRAITS
-#  define BOOST_NO_CXX11_HDR_TYPEINDEX
-#  define BOOST_NO_CXX11_HDR_UNORDERED_MAP
-#  define BOOST_NO_CXX11_HDR_UNORDERED_SET
-#  define BOOST_NO_CXX11_NUMERIC_LIMITS
-#  define BOOST_NO_CXX11_ALLOCATOR
-#  define BOOST_NO_CXX11_ATOMIC_SMART_PTR
-#  define BOOST_NO_CXX11_SMART_PTR
-#  define BOOST_NO_CXX11_HDR_FUNCTIONAL
-
-//
-// Intrinsic type_traits support.
-// The SGI STL has it's own __type_traits class, which
-// has intrinsic compiler support with SGI's compilers.
-// Whatever map SGI style type traits to boost equivalents:
-//
-#define BOOST_HAS_SGI_TYPE_TRAITS
-
-#define BOOST_STDLIB "Comeau standard library " BOOST_STRINGIZE(__LIBCOMO_VERSION__)
-
-
diff --git a/boost/config/stdlib/libcpp.hpp b/boost/config/stdlib/libcpp.hpp
deleted file mode 100644
index 3d57440..0000000
--- a/boost/config/stdlib/libcpp.hpp
+++ /dev/null
@@ -1,37 +0,0 @@
-//  (C) Copyright Christopher Jefferson 2011.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org for most recent version.
-
-//  config for libc++
-//  Might need more in here later.
-
-#if !defined(_LIBCPP_VERSION)
-#  include <ciso646>
-#  if !defined(_LIBCPP_VERSION)
-#      error "This is not libc++!"
-#  endif
-#endif
-
-#define BOOST_STDLIB "libc++ version " BOOST_STRINGIZE(_LIBCPP_VERSION)
-
-#define BOOST_HAS_THREADS
-
-#ifdef _LIBCPP_HAS_NO_VARIADICS
-#    define BOOST_NO_CXX11_HDR_TUPLE
-#endif
-
-//
-// These appear to be unusable/incomplete so far:
-//
-#  define BOOST_NO_CXX11_HDR_CHRONO
-#  define BOOST_NO_CXX11_HDR_FUTURE
-#  define BOOST_NO_CXX11_HDR_TYPE_TRAITS
-#  define BOOST_NO_CXX11_ATOMIC_SMART_PTR
-
-// libc++ uses a non-standard messages_base
-#define BOOST_NO_STD_MESSAGES
-
-//  --- end ---
diff --git a/boost/config/stdlib/libstdcpp3.hpp b/boost/config/stdlib/libstdcpp3.hpp
deleted file mode 100644
index 976ab76..0000000
--- a/boost/config/stdlib/libstdcpp3.hpp
+++ /dev/null
@@ -1,166 +0,0 @@
-//  (C) Copyright John Maddock 2001.
-//  (C) Copyright Jens Maurer 2001.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org for most recent version.
-
-//  config for libstdc++ v3
-//  not much to go in here:
-
-#define BOOST_GNU_STDLIB 1
-
-#ifdef __GLIBCXX__
-#define BOOST_STDLIB "GNU libstdc++ version " BOOST_STRINGIZE(__GLIBCXX__)
-#else
-#define BOOST_STDLIB "GNU libstdc++ version " BOOST_STRINGIZE(__GLIBCPP__)
-#endif
-
-#if !defined(_GLIBCPP_USE_WCHAR_T) && !defined(_GLIBCXX_USE_WCHAR_T)
-#  define BOOST_NO_CWCHAR
-#  define BOOST_NO_CWCTYPE
-#  define BOOST_NO_STD_WSTRING
-#  define BOOST_NO_STD_WSTREAMBUF
-#endif
-
-#if defined(__osf__) && !defined(_REENTRANT) \
-  && ( defined(_GLIBCXX_HAVE_GTHR_DEFAULT) || defined(_GLIBCPP_HAVE_GTHR_DEFAULT) )
-// GCC 3 on Tru64 forces the definition of _REENTRANT when any std lib header
-// file is included, therefore for consistency we define it here as well.
-#  define _REENTRANT
-#endif
-
-#ifdef __GLIBCXX__ // gcc 3.4 and greater:
-#  if defined(_GLIBCXX_HAVE_GTHR_DEFAULT) \
-        || defined(_GLIBCXX__PTHREADS) \
-        || defined(_GLIBCXX_HAS_GTHREADS) \
-        || defined(_WIN32) \
-        || defined(_AIX)
-      //
-      // If the std lib has thread support turned on, then turn it on in Boost
-      // as well.  We do this because some gcc-3.4 std lib headers define _REENTANT
-      // while others do not...
-      //
-#     define BOOST_HAS_THREADS
-#  else
-#     define BOOST_DISABLE_THREADS
-#  endif
-#elif defined(__GLIBCPP__) \
-        && !defined(_GLIBCPP_HAVE_GTHR_DEFAULT) \
-        && !defined(_GLIBCPP__PTHREADS)
-   // disable thread support if the std lib was built single threaded:
-#  define BOOST_DISABLE_THREADS
-#endif
-
-#if (defined(linux) || defined(__linux) || defined(__linux__)) && defined(__arm__) && defined(_GLIBCPP_HAVE_GTHR_DEFAULT)
-// linux on arm apparently doesn't define _REENTRANT
-// so just turn on threading support whenever the std lib is thread safe:
-#  define BOOST_HAS_THREADS
-#endif
-
-#if !defined(_GLIBCPP_USE_LONG_LONG) \
-    && !defined(_GLIBCXX_USE_LONG_LONG)\
-    && defined(BOOST_HAS_LONG_LONG)
-// May have been set by compiler/*.hpp, but "long long" without library
-// support is useless.
-#  undef BOOST_HAS_LONG_LONG
-#endif
-
-// Apple doesn't seem to reliably defined a *unix* macro
-#if !defined(CYGWIN) && (  defined(__unix__)  \
-                        || defined(__unix)    \
-                        || defined(unix)      \
-                        || defined(__APPLE__) \
-                        || defined(__APPLE)   \
-                        || defined(APPLE))
-#  include <unistd.h>
-#endif
-
-#if defined(__GLIBCXX__) || (defined(__GLIBCPP__) && __GLIBCPP__>=20020514) // GCC >= 3.1.0
-#  define BOOST_STD_EXTENSION_NAMESPACE __gnu_cxx
-#  define BOOST_HAS_SLIST
-#  define BOOST_HAS_HASH
-#  define BOOST_SLIST_HEADER <ext/slist>
-# if !defined(__GNUC__) || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 3)
-#   define BOOST_HASH_SET_HEADER <ext/hash_set>
-#   define BOOST_HASH_MAP_HEADER <ext/hash_map>
-# else
-#   define BOOST_HASH_SET_HEADER <backward/hash_set>
-#   define BOOST_HASH_MAP_HEADER <backward/hash_map>
-# endif
-#endif
-
-//  stdlibc++ C++0x support is detected via __GNUC__, __GNUC_MINOR__, and possibly
-//  __GNUC_PATCHLEVEL__ at the suggestion of Jonathan Wakely, one of the stdlibc++
-//  developers. He also commented:
-//
-//       "I'm not sure how useful __GLIBCXX__ is for your purposes, for instance in
-//       GCC 4.2.4 it is set to 20080519 but in GCC 4.3.0 it is set to 20080305.
-//       Although 4.3.0 was released earlier than 4.2.4, it has better C++0x support
-//       than any release in the 4.2 series."
-//
-//  Another resource for understanding stdlibc++ features is:
-//  http://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#manual.intro.status.standard.200x
-
-//  C++0x headers in GCC 4.3.0 and later
-//
-#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 3) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
-#  define BOOST_NO_CXX11_HDR_ARRAY
-#  define BOOST_NO_CXX11_HDR_REGEX
-#  define BOOST_NO_CXX11_HDR_TUPLE
-#  define BOOST_NO_CXX11_HDR_UNORDERED_MAP
-#  define BOOST_NO_CXX11_HDR_UNORDERED_SET
-#  define BOOST_NO_CXX11_HDR_FUNCTIONAL
-#endif
-
-//  C++0x headers in GCC 4.4.0 and later
-//
-#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 4) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
-#  define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
-#  define BOOST_NO_CXX11_HDR_FORWARD_LIST
-#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#  define BOOST_NO_CXX11_HDR_MUTEX
-#  define BOOST_NO_CXX11_HDR_RATIO
-#  define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
-#  define BOOST_NO_CXX11_SMART_PTR
-#else
-#  define BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG 
-#  define BOOST_HAS_TR1_COMPLEX_OVERLOADS 
-#endif
-
-#if (!defined(_GLIBCXX_HAS_GTHREADS) || !defined(_GLIBCXX_USE_C99_STDINT_TR1)) && (!defined(BOOST_NO_CXX11_HDR_CONDITION_VARIABLE) || !defined(BOOST_NO_CXX11_HDR_MUTEX))
-#  define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
-#  define BOOST_NO_CXX11_HDR_MUTEX
-#endif
-
-//  C++0x features in GCC 4.5.0 and later
-//
-#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
-#  define BOOST_NO_CXX11_NUMERIC_LIMITS
-#  define BOOST_NO_CXX11_HDR_FUTURE
-#  define BOOST_NO_CXX11_HDR_RANDOM
-#endif
-
-//  C++0x features in GCC 4.6.0 and later
-//
-#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 6) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
-#  define BOOST_NO_CXX11_HDR_TYPEINDEX
-#endif
-
-//  C++0x features in GCC 4.7.0 and later
-//
-#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 7) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
-// Note that although <chrono> existed prior to 4.7, "stead_clock" is spelled "monotonic_clock"
-// so 4.7.0 is the first truely conforming one.
-#  define BOOST_NO_CXX11_HDR_CHRONO
-#  define BOOST_NO_CXX11_ALLOCATOR
-#endif
-//  C++0x headers not yet (fully!) implemented
-//
-#  define BOOST_NO_CXX11_HDR_THREAD
-#  define BOOST_NO_CXX11_HDR_TYPE_TRAITS
-#  define BOOST_NO_CXX11_HDR_CODECVT
-#  define BOOST_NO_CXX11_ATOMIC_SMART_PTR
-
-//  --- end ---
diff --git a/boost/config/stdlib/modena.hpp b/boost/config/stdlib/modena.hpp
deleted file mode 100644
index b483b6e..0000000
--- a/boost/config/stdlib/modena.hpp
+++ /dev/null
@@ -1,56 +0,0 @@
-//  (C) Copyright Jens Maurer 2001. 
-//  Use, modification and distribution are subject to the 
-//  Boost Software License, Version 1.0. (See accompanying file 
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org for most recent version.
-
-//  Modena C++ standard library (comes with KAI C++)
-
-#if !defined(MSIPL_COMPILE_H)
-#  include <boost/config/no_tr1/utility.hpp>
-#  if !defined(__MSIPL_COMPILE_H)
-#      error "This is not the Modena C++ library!"
-#  endif
-#endif
-
-#ifndef MSIPL_NL_TYPES
-#define BOOST_NO_STD_MESSAGES
-#endif
-
-#ifndef MSIPL_WCHART
-#define BOOST_NO_STD_WSTRING
-#endif
-
-//  C++0x headers not yet implemented
-//
-#  define BOOST_NO_CXX11_HDR_ARRAY
-#  define BOOST_NO_CXX11_HDR_CHRONO
-#  define BOOST_NO_CXX11_HDR_CODECVT
-#  define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
-#  define BOOST_NO_CXX11_HDR_FORWARD_LIST
-#  define BOOST_NO_CXX11_HDR_FUTURE
-#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#  define BOOST_NO_CXX11_HDR_MUTEX
-#  define BOOST_NO_CXX11_HDR_RANDOM
-#  define BOOST_NO_CXX11_HDR_RATIO
-#  define BOOST_NO_CXX11_HDR_REGEX
-#  define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
-#  define BOOST_NO_CXX11_HDR_THREAD
-#  define BOOST_NO_CXX11_HDR_TUPLE
-#  define BOOST_NO_CXX11_HDR_TYPE_TRAITS
-#  define BOOST_NO_CXX11_HDR_TYPEINDEX
-#  define BOOST_NO_CXX11_HDR_UNORDERED_MAP
-#  define BOOST_NO_CXX11_HDR_UNORDERED_SET
-#  define BOOST_NO_CXX11_NUMERIC_LIMITS
-#  define BOOST_NO_CXX11_ALLOCATOR
-#  define BOOST_NO_CXX11_ATOMIC_SMART_PTR
-#  define BOOST_NO_CXX11_SMART_PTR
-#  define BOOST_NO_CXX11_HDR_FUNCTIONAL
-
-#define BOOST_STDLIB "Modena C++ standard library"
-
-
-
-
-
diff --git a/boost/config/stdlib/msl.hpp b/boost/config/stdlib/msl.hpp
deleted file mode 100644
index 4f9a2da..0000000
--- a/boost/config/stdlib/msl.hpp
+++ /dev/null
@@ -1,84 +0,0 @@
-//  (C) Copyright John Maddock 2001. 
-//  (C) Copyright Darin Adler 2001. 
-//  Use, modification and distribution are subject to the 
-//  Boost Software License, Version 1.0. (See accompanying file 
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org for most recent version.
-
-//  Metrowerks standard library:
-
-#ifndef __MSL_CPP__
-#  include <boost/config/no_tr1/utility.hpp>
-#  ifndef __MSL_CPP__
-#     error This is not the MSL standard library!
-#  endif
-#endif
-
-#if __MSL_CPP__ >= 0x6000  // Pro 6
-#  define BOOST_HAS_HASH
-#  define BOOST_STD_EXTENSION_NAMESPACE Metrowerks
-#endif
-#define BOOST_HAS_SLIST
-
-#if __MSL_CPP__ < 0x6209
-#  define BOOST_NO_STD_MESSAGES
-#endif
-
-// check C lib version for <stdint.h>
-#include <cstddef>
-
-#if defined(__MSL__) && (__MSL__ >= 0x5000)
-#  define BOOST_HAS_STDINT_H
-#  if !defined(__PALMOS_TRAPS__)
-#    define BOOST_HAS_UNISTD_H
-#  endif
-   // boilerplate code:
-#  include <boost/config/posix_features.hpp>
-#endif
-
-#if defined(_MWMT) || _MSL_THREADSAFE
-#  define BOOST_HAS_THREADS
-#endif
-
-#ifdef _MSL_NO_EXPLICIT_FUNC_TEMPLATE_ARG
-#  define BOOST_NO_STD_USE_FACET
-#  define BOOST_HAS_TWO_ARG_USE_FACET
-#endif
-
-//  C++0x headers not yet implemented
-//
-#  define BOOST_NO_CXX11_HDR_ARRAY
-#  define BOOST_NO_CXX11_HDR_CHRONO
-#  define BOOST_NO_CXX11_HDR_CODECVT
-#  define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
-#  define BOOST_NO_CXX11_HDR_FORWARD_LIST
-#  define BOOST_NO_CXX11_HDR_FUTURE
-#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#  define BOOST_NO_CXX11_HDR_MUTEX
-#  define BOOST_NO_CXX11_HDR_RANDOM
-#  define BOOST_NO_CXX11_HDR_RATIO
-#  define BOOST_NO_CXX11_HDR_REGEX
-#  define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
-#  define BOOST_NO_CXX11_HDR_THREAD
-#  define BOOST_NO_CXX11_HDR_TUPLE
-#  define BOOST_NO_CXX11_HDR_TYPE_TRAITS
-#  define BOOST_NO_CXX11_HDR_TYPEINDEX
-#  define BOOST_NO_CXX11_HDR_UNORDERED_MAP
-#  define BOOST_NO_CXX11_HDR_UNORDERED_SET
-#  define BOOST_NO_CXX11_NUMERIC_LIMITS
-#  define BOOST_NO_CXX11_ALLOCATOR
-#  define BOOST_NO_CXX11_ATOMIC_SMART_PTR
-#  define BOOST_NO_CXX11_SMART_PTR
-#  define BOOST_NO_CXX11_HDR_FUNCTIONAL
-
-#define BOOST_STDLIB "Metrowerks Standard Library version " BOOST_STRINGIZE(__MSL_CPP__)
-
-
-
-
-
-
-
-
-
diff --git a/boost/config/stdlib/roguewave.hpp b/boost/config/stdlib/roguewave.hpp
deleted file mode 100644
index cb80f57..0000000
--- a/boost/config/stdlib/roguewave.hpp
+++ /dev/null
@@ -1,186 +0,0 @@
-//  (C) Copyright John Maddock 2001 - 2003. 
-//  (C) Copyright Jens Maurer 2001. 
-//  (C) Copyright David Abrahams 2003. 
-//  (C) Copyright Boris Gubenko 2007. 
-//  Use, modification and distribution are subject to the 
-//  Boost Software License, Version 1.0. (See accompanying file 
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org for most recent version.
-
-//  Rogue Wave std lib:
-
-#define BOOST_RW_STDLIB 1 
-
-#if !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER)
-#  include <boost/config/no_tr1/utility.hpp>
-#  if !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER)
-#     error This is not the Rogue Wave standard library
-#  endif
-#endif
-//
-// figure out a consistent version number:
-//
-#ifndef _RWSTD_VER
-#  define BOOST_RWSTD_VER 0x010000
-#elif _RWSTD_VER < 0x010000
-#  define BOOST_RWSTD_VER (_RWSTD_VER << 8)
-#else
-#  define BOOST_RWSTD_VER _RWSTD_VER
-#endif
-
-#ifndef _RWSTD_VER
-#  define BOOST_STDLIB "Rogue Wave standard library version (Unknown version)"
-#elif _RWSTD_VER < 0x04010200
- #  define BOOST_STDLIB "Rogue Wave standard library version " BOOST_STRINGIZE(_RWSTD_VER)
-#else
-#  ifdef _RWSTD_VER_STR
-#    define BOOST_STDLIB "Apache STDCXX standard library version " _RWSTD_VER_STR
-#  else
-#    define BOOST_STDLIB "Apache STDCXX standard library version " BOOST_STRINGIZE(_RWSTD_VER)
-#  endif
-#endif
-
-//
-// Prior to version 2.2.0 the primary template for std::numeric_limits
-// does not have compile time constants, even though specializations of that
-// template do:
-//
-#if BOOST_RWSTD_VER < 0x020200
-#  define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-#endif
-
-// Sun CC 5.5 patch 113817-07 adds long long specialization, but does not change the
-// library version number (http://sunsolve6.sun.com/search/document.do?assetkey=1-21-113817):
-#if BOOST_RWSTD_VER <= 0x020101 && (!defined(__SUNPRO_CC) || (__SUNPRO_CC < 0x550))
-#  define BOOST_NO_LONG_LONG_NUMERIC_LIMITS
-# endif
-
-//
-// Borland version of numeric_limits lacks __int64 specialisation:
-//
-#ifdef __BORLANDC__
-#  define BOOST_NO_MS_INT64_NUMERIC_LIMITS
-#endif
-
-//
-// No std::iterator if it can't figure out default template args:
-//
-#if defined(_RWSTD_NO_SIMPLE_DEFAULT_TEMPLATES) || defined(RWSTD_NO_SIMPLE_DEFAULT_TEMPLATES) || (BOOST_RWSTD_VER < 0x020000)
-#  define BOOST_NO_STD_ITERATOR
-#endif
-
-//
-// No iterator traits without partial specialization:
-//
-#if defined(_RWSTD_NO_CLASS_PARTIAL_SPEC) || defined(RWSTD_NO_CLASS_PARTIAL_SPEC)
-#  define BOOST_NO_STD_ITERATOR_TRAITS
-#endif
-
-//
-// Prior to version 2.0, std::auto_ptr was buggy, and there were no
-// new-style iostreams, and no conformant std::allocator:
-//
-#if (BOOST_RWSTD_VER < 0x020000)
-#  define BOOST_NO_AUTO_PTR
-#  define BOOST_NO_STRINGSTREAM
-#  define BOOST_NO_STD_ALLOCATOR
-#  define BOOST_NO_STD_LOCALE
-#endif
-
-//
-// No template iterator constructors without member template support:
-//
-#if defined(RWSTD_NO_MEMBER_TEMPLATES) || defined(_RWSTD_NO_MEMBER_TEMPLATES)
-#  define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
-#endif
-
-//
-// RW defines _RWSTD_ALLOCATOR if the allocator is conformant and in use
-// (the or _HPACC_ part is a hack - the library seems to define _RWSTD_ALLOCATOR
-// on HP aCC systems even though the allocator is in fact broken):
-//
-#if !defined(_RWSTD_ALLOCATOR) || (defined(__HP_aCC) && __HP_aCC <= 33100)
-#  define BOOST_NO_STD_ALLOCATOR
-#endif
-
-//
-// If we have a std::locale, we still may not have std::use_facet:
-//
-#if defined(_RWSTD_NO_TEMPLATE_ON_RETURN_TYPE) && !defined(BOOST_NO_STD_LOCALE)
-#  define BOOST_NO_STD_USE_FACET
-#  define BOOST_HAS_TWO_ARG_USE_FACET
-#endif
-
-//
-// There's no std::distance prior to version 2, or without
-// partial specialization support:
-//
-#if (BOOST_RWSTD_VER < 0x020000) || defined(_RWSTD_NO_CLASS_PARTIAL_SPEC)
-    #define BOOST_NO_STD_DISTANCE
-#endif
-
-//
-// Some versions of the rogue wave library don't have assignable
-// OutputIterators:
-//
-#if BOOST_RWSTD_VER < 0x020100
-#  define BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN
-#endif
-
-//
-// Disable BOOST_HAS_LONG_LONG when the library has no support for it.
-//
-#if !defined(_RWSTD_LONG_LONG) && defined(BOOST_HAS_LONG_LONG)
-#  undef BOOST_HAS_LONG_LONG
-#endif
-
-//
-// check that on HP-UX, the proper RW library is used
-//
-#if defined(__HP_aCC) && !defined(_HP_NAMESPACE_STD)
-#  error "Boost requires Standard RW library. Please compile and link with -AA"
-#endif
-
-//
-// Define macros specific to RW V2.2 on HP-UX
-//
-#if defined(__HP_aCC) && (BOOST_RWSTD_VER == 0x02020100)
-#  ifndef __HP_TC1_MAKE_PAIR
-#    define __HP_TC1_MAKE_PAIR
-#  endif
-#  ifndef _HP_INSTANTIATE_STD2_VL
-#    define _HP_INSTANTIATE_STD2_VL
-#  endif
-#endif
-
-#if _RWSTD_VER < 0x05000000
-#  define BOOST_NO_CXX11_HDR_ARRAY
-#endif
-// type_traits header is incomplete:
-#  define BOOST_NO_CXX11_HDR_TYPE_TRAITS
-//
-//  C++0x headers not yet implemented
-//
-#  define BOOST_NO_CXX11_HDR_CHRONO
-#  define BOOST_NO_CXX11_HDR_CODECVT
-#  define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
-#  define BOOST_NO_CXX11_HDR_FORWARD_LIST
-#  define BOOST_NO_CXX11_HDR_FUTURE
-#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#  define BOOST_NO_CXX11_HDR_MUTEX
-#  define BOOST_NO_CXX11_HDR_RANDOM
-#  define BOOST_NO_CXX11_HDR_RATIO
-#  define BOOST_NO_CXX11_HDR_REGEX
-#  define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
-#  define BOOST_NO_CXX11_HDR_THREAD
-#  define BOOST_NO_CXX11_HDR_TUPLE
-#  define BOOST_NO_CXX11_HDR_TYPEINDEX
-#  define BOOST_NO_CXX11_HDR_UNORDERED_MAP
-#  define BOOST_NO_CXX11_HDR_UNORDERED_SET
-#  define BOOST_NO_CXX11_NUMERIC_LIMITS
-#  define BOOST_NO_CXX11_ALLOCATOR
-#  define BOOST_NO_CXX11_ATOMIC_SMART_PTR
-#  define BOOST_NO_CXX11_SMART_PTR
-#  define BOOST_NO_CXX11_HDR_FUNCTIONAL
-
diff --git a/boost/config/stdlib/sgi.hpp b/boost/config/stdlib/sgi.hpp
deleted file mode 100644
index ae9b6ad..0000000
--- a/boost/config/stdlib/sgi.hpp
+++ /dev/null
@@ -1,148 +0,0 @@
-//  (C) Copyright John Maddock 2001 - 2003. 
-//  (C) Copyright Darin Adler 2001. 
-//  (C) Copyright Jens Maurer 2001 - 2003. 
-//  Use, modification and distribution are subject to the 
-//  Boost Software License, Version 1.0. (See accompanying file 
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org for most recent version.
-
-//  generic SGI STL:
-
-#if !defined(__STL_CONFIG_H)
-#  include <boost/config/no_tr1/utility.hpp>
-#  if !defined(__STL_CONFIG_H)
-#      error "This is not the SGI STL!"
-#  endif
-#endif
-
-//
-// No std::iterator traits without partial specialisation:
-//
-#if !defined(__STL_CLASS_PARTIAL_SPECIALIZATION)
-#  define BOOST_NO_STD_ITERATOR_TRAITS
-#endif
-
-//
-// No std::stringstream with gcc < 3
-//
-#if defined(__GNUC__) && (__GNUC__ < 3) && \
-     ((__GNUC_MINOR__ < 95) || (__GNUC_MINOR__ == 96)) && \
-     !defined(__STL_USE_NEW_IOSTREAMS) || \
-   defined(__APPLE_CC__)
-   // Note that we only set this for GNU C++ prior to 2.95 since the
-   // latest patches for that release do contain a minimal <sstream>
-   // If you are running a 2.95 release prior to 2.95.3 then this will need
-   // setting, but there is no way to detect that automatically (other
-   // than by running the configure script).
-   // Also, the unofficial GNU C++ 2.96 included in RedHat 7.1 doesn't
-   // have <sstream>.
-#  define BOOST_NO_STRINGSTREAM
-#endif
-
-// Apple doesn't seem to reliably defined a *unix* macro
-#if !defined(CYGWIN) && (  defined(__unix__)  \
-                        || defined(__unix)    \
-                        || defined(unix)      \
-                        || defined(__APPLE__) \
-                        || defined(__APPLE)   \
-                        || defined(APPLE))
-#  include <unistd.h>
-#endif
-
-
-//
-// Assume no std::locale without own iostreams (this may be an
-// incorrect assumption in some cases):
-//
-#if !defined(__SGI_STL_OWN_IOSTREAMS) && !defined(__STL_USE_NEW_IOSTREAMS)
-#  define BOOST_NO_STD_LOCALE
-#endif
-
-//
-// Original native SGI streams have non-standard std::messages facet:
-//
-#if defined(__sgi) && (_COMPILER_VERSION <= 650) && !defined(__SGI_STL_OWN_IOSTREAMS)
-#  define BOOST_NO_STD_LOCALE
-#endif
-
-//
-// SGI's new iostreams have missing "const" in messages<>::open
-//
-#if defined(__sgi) && (_COMPILER_VERSION <= 740) && defined(__STL_USE_NEW_IOSTREAMS)
-#  define BOOST_NO_STD_MESSAGES
-#endif
-
-//
-// No template iterator constructors, or std::allocator
-// without member templates:
-//
-#if !defined(__STL_MEMBER_TEMPLATES)
-#  define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
-#  define BOOST_NO_STD_ALLOCATOR
-#endif
-
-//
-// We always have SGI style hash_set, hash_map, and slist:
-//
-#define BOOST_HAS_HASH
-#define BOOST_HAS_SLIST
-
-//
-// If this is GNU libstdc++2, then no <limits> and no std::wstring:
-//
-#if (defined(__GNUC__) && (__GNUC__ < 3))
-#  include <string>
-#  if defined(__BASTRING__)
-#     define BOOST_NO_LIMITS
-// Note: <boost/limits.hpp> will provide compile-time constants
-#     undef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-#     define BOOST_NO_STD_WSTRING
-#  endif
-#endif
-
-//
-// There is no standard iterator unless we have namespace support:
-//
-#if !defined(__STL_USE_NAMESPACES)
-#  define BOOST_NO_STD_ITERATOR
-#endif
-
-//
-// Intrinsic type_traits support.
-// The SGI STL has it's own __type_traits class, which
-// has intrinsic compiler support with SGI's compilers.
-// Whatever map SGI style type traits to boost equivalents:
-//
-#define BOOST_HAS_SGI_TYPE_TRAITS
-
-//  C++0x headers not yet implemented
-//
-#  define BOOST_NO_CXX11_HDR_ARRAY
-#  define BOOST_NO_CXX11_HDR_CHRONO
-#  define BOOST_NO_CXX11_HDR_CODECVT
-#  define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
-#  define BOOST_NO_CXX11_HDR_FORWARD_LIST
-#  define BOOST_NO_CXX11_HDR_FUTURE
-#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#  define BOOST_NO_CXX11_HDR_MUTEX
-#  define BOOST_NO_CXX11_HDR_RANDOM
-#  define BOOST_NO_CXX11_HDR_RATIO
-#  define BOOST_NO_CXX11_HDR_REGEX
-#  define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
-#  define BOOST_NO_CXX11_HDR_THREAD
-#  define BOOST_NO_CXX11_HDR_TUPLE
-#  define BOOST_NO_CXX11_HDR_TYPE_TRAITS
-#  define BOOST_NO_CXX11_HDR_TYPEINDEX
-#  define BOOST_NO_CXX11_HDR_UNORDERED_MAP
-#  define BOOST_NO_CXX11_HDR_UNORDERED_SET
-#  define BOOST_NO_CXX11_NUMERIC_LIMITS
-#  define BOOST_NO_CXX11_ALLOCATOR
-#  define BOOST_NO_CXX11_ATOMIC_SMART_PTR
-#  define BOOST_NO_CXX11_SMART_PTR
-#  define BOOST_NO_CXX11_HDR_FUNCTIONAL
-
-#define BOOST_STDLIB "SGI standard library"
-
-
-
diff --git a/boost/config/stdlib/stlport.hpp b/boost/config/stdlib/stlport.hpp
deleted file mode 100644
index bcc30b9..0000000
--- a/boost/config/stdlib/stlport.hpp
+++ /dev/null
@@ -1,243 +0,0 @@
-//  (C) Copyright John Maddock 2001 - 2002. 
-//  (C) Copyright Darin Adler 2001. 
-//  (C) Copyright Jens Maurer 2001. 
-//  Use, modification and distribution are subject to the 
-//  Boost Software License, Version 1.0. (See accompanying file 
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org for most recent version.
-
-//  STLPort standard library config:
-
-#if !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)
-#  include <cstddef>
-#  if !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)
-#      error "This is not STLPort!"
-#  endif
-#endif
-
-// Apple doesn't seem to reliably defined a *unix* macro
-#if !defined(CYGWIN) && (  defined(__unix__)  \
-                        || defined(__unix)    \
-                        || defined(unix)      \
-                        || defined(__APPLE__) \
-                        || defined(__APPLE)   \
-                        || defined(APPLE))
-#  include <unistd.h>
-#endif
-
-//
-// __STL_STATIC_CONST_INIT_BUG implies BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-// for versions prior to 4.1(beta)
-//
-#if (defined(__STL_STATIC_CONST_INIT_BUG) || defined(_STLP_STATIC_CONST_INIT_BUG)) && (__SGI_STL_PORT <= 0x400)
-#  define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-#endif
-
-//
-// If STLport thinks that there is no partial specialisation, then there is no
-// std::iterator traits:
-//
-#if !(defined(_STLP_CLASS_PARTIAL_SPECIALIZATION) || defined(__STL_CLASS_PARTIAL_SPECIALIZATION))
-#  define BOOST_NO_STD_ITERATOR_TRAITS
-#endif
-
-//
-// No new style iostreams on GCC without STLport's iostreams enabled:
-//
-#if (defined(__GNUC__) && (__GNUC__ < 3)) && !(defined(__SGI_STL_OWN_IOSTREAMS) || defined(_STLP_OWN_IOSTREAMS))
-#  define BOOST_NO_STRINGSTREAM
-#endif
-
-//
-// No new iostreams implies no std::locale, and no std::stringstream:
-//
-#if defined(__STL_NO_IOSTREAMS) || defined(__STL_NO_NEW_IOSTREAMS) || defined(_STLP_NO_IOSTREAMS) || defined(_STLP_NO_NEW_IOSTREAMS)
-#  define BOOST_NO_STD_LOCALE
-#  define BOOST_NO_STRINGSTREAM
-#endif
-
-//
-// If the streams are not native, and we have a "using ::x" compiler bug
-// then the io stream facets are not available in namespace std::
-//
-#ifdef _STLPORT_VERSION
-#  if !(_STLPORT_VERSION >= 0x500) && !defined(_STLP_OWN_IOSTREAMS) && defined(_STLP_USE_NAMESPACES) && defined(BOOST_NO_USING_TEMPLATE) && !defined(__BORLANDC__)
-#     define BOOST_NO_STD_LOCALE
-#  endif
-#else
-#  if !defined(__SGI_STL_OWN_IOSTREAMS) && defined(__STL_USE_NAMESPACES) && defined(BOOST_NO_USING_TEMPLATE) && !defined(__BORLANDC__)
-#     define BOOST_NO_STD_LOCALE
-#  endif
-#endif
-
-#if defined(_STLPORT_VERSION) && (_STLPORT_VERSION >= 0x520)
-#  define BOOST_HAS_TR1_UNORDERED_SET
-#  define BOOST_HAS_TR1_UNORDERED_MAP
-#endif
-//
-// Without member template support enabled, their are no template
-// iterate constructors, and no std::allocator:
-//
-#if !(defined(__STL_MEMBER_TEMPLATES) || defined(_STLP_MEMBER_TEMPLATES))
-#  define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
-#  define BOOST_NO_STD_ALLOCATOR
-#endif
-//
-// however we always have at least a partial allocator:
-//
-#define BOOST_HAS_PARTIAL_STD_ALLOCATOR
-
-#if !defined(_STLP_MEMBER_TEMPLATE_CLASSES) || defined(_STLP_DONT_SUPPORT_REBIND_MEMBER_TEMPLATE)
-#  define BOOST_NO_STD_ALLOCATOR
-#endif
-
-#if defined(_STLP_NO_MEMBER_TEMPLATE_KEYWORD) && defined(BOOST_MSVC) && (BOOST_MSVC <= 1300)
-#  define BOOST_NO_STD_ALLOCATOR
-#endif
-
-//
-// If STLport thinks there is no wchar_t at all, then we have to disable
-// the support for the relevant specilazations of std:: templates.
-//
-#if !defined(_STLP_HAS_WCHAR_T) && !defined(_STLP_WCHAR_T_IS_USHORT)
-#  ifndef  BOOST_NO_STD_WSTRING
-#     define BOOST_NO_STD_WSTRING
-#  endif
-#  ifndef  BOOST_NO_STD_WSTREAMBUF
-#     define BOOST_NO_STD_WSTREAMBUF
-#  endif
-#endif
-
-//
-// We always have SGI style hash_set, hash_map, and slist:
-//
-#ifndef _STLP_NO_EXTENSIONS
-#define BOOST_HAS_HASH
-#define BOOST_HAS_SLIST
-#endif
-
-//
-// STLport does a good job of importing names into namespace std::,
-// but doesn't always get them all, define BOOST_NO_STDC_NAMESPACE, since our
-// workaround does not conflict with STLports:
-//
-//
-// Harold Howe says:
-// Borland switched to STLport in BCB6. Defining BOOST_NO_STDC_NAMESPACE with
-// BCB6 does cause problems. If we detect C++ Builder, then don't define 
-// BOOST_NO_STDC_NAMESPACE
-//
-#if !defined(__BORLANDC__) && !defined(__DMC__)
-//
-// If STLport is using it's own namespace, and the real names are in
-// the global namespace, then we duplicate STLport's using declarations
-// (by defining BOOST_NO_STDC_NAMESPACE), we do this because STLport doesn't
-// necessarily import all the names we need into namespace std::
-// 
-#  if (defined(__STL_IMPORT_VENDOR_CSTD) \
-         || defined(__STL_USE_OWN_NAMESPACE) \
-         || defined(_STLP_IMPORT_VENDOR_CSTD) \
-         || defined(_STLP_USE_OWN_NAMESPACE)) \
-      && (defined(__STL_VENDOR_GLOBAL_CSTD) || defined (_STLP_VENDOR_GLOBAL_CSTD))
-#     define BOOST_NO_STDC_NAMESPACE
-#     define BOOST_NO_EXCEPTION_STD_NAMESPACE
-#  endif
-#elif defined(__BORLANDC__) && __BORLANDC__ < 0x560
-// STLport doesn't import std::abs correctly:
-#include <stdlib.h>
-namespace std { using ::abs; }
-// and strcmp/strcpy don't get imported either ('cos they are macros)
-#include <string.h>
-#ifdef strcpy
-#  undef strcpy
-#endif
-#ifdef strcmp
-#  undef strcmp
-#endif
-#ifdef _STLP_VENDOR_CSTD
-namespace std{ using _STLP_VENDOR_CSTD::strcmp; using _STLP_VENDOR_CSTD::strcpy; }
-#endif
-#endif
-
-//
-// std::use_facet may be non-standard, uses a class instead:
-//
-#if defined(__STL_NO_EXPLICIT_FUNCTION_TMPL_ARGS) || defined(_STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS)
-#  define BOOST_NO_STD_USE_FACET
-#  define BOOST_HAS_STLP_USE_FACET
-#endif
-
-//
-// If STLport thinks there are no wide functions, <cwchar> etc. is not working; but
-// only if BOOST_NO_STDC_NAMESPACE is not defined (if it is then we do the import 
-// into std:: ourselves).
-//
-#if defined(_STLP_NO_NATIVE_WIDE_FUNCTIONS) && !defined(BOOST_NO_STDC_NAMESPACE)
-#  define BOOST_NO_CWCHAR
-#  define BOOST_NO_CWCTYPE
-#endif
-
-//
-// If STLport for some reason was configured so that it thinks that wchar_t
-// is not an intrinsic type, then we have to disable the support for it as
-// well (we would be missing required specializations otherwise).
-//
-#if !defined( _STLP_HAS_WCHAR_T) || defined(_STLP_WCHAR_T_IS_USHORT)
-#  undef  BOOST_NO_INTRINSIC_WCHAR_T
-#  define BOOST_NO_INTRINSIC_WCHAR_T
-#endif
-
-//
-// Borland ships a version of STLport with C++ Builder 6 that lacks
-// hashtables and the like:
-//
-#if defined(__BORLANDC__) && (__BORLANDC__ == 0x560)
-#  undef BOOST_HAS_HASH
-#endif
-
-//
-// gcc-2.95.3/STLPort does not like the using declarations we use to get ADL with std::min/max
-//
-#if defined(__GNUC__) && (__GNUC__ < 3)
-#  include <algorithm> // for std::min and std::max
-#  define BOOST_USING_STD_MIN() ((void)0)
-#  define BOOST_USING_STD_MAX() ((void)0)
-namespace boost { using std::min; using std::max; }
-#endif
-
-//  C++0x headers not yet implemented
-//
-#  define BOOST_NO_CXX11_HDR_ARRAY
-#  define BOOST_NO_CXX11_HDR_CHRONO
-#  define BOOST_NO_CXX11_HDR_CODECVT
-#  define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
-#  define BOOST_NO_CXX11_HDR_FORWARD_LIST
-#  define BOOST_NO_CXX11_HDR_FUTURE
-#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#  define BOOST_NO_CXX11_HDR_MUTEX
-#  define BOOST_NO_CXX11_HDR_RANDOM
-#  define BOOST_NO_CXX11_HDR_RATIO
-#  define BOOST_NO_CXX11_HDR_REGEX
-#  define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
-#  define BOOST_NO_CXX11_HDR_THREAD
-#  define BOOST_NO_CXX11_HDR_TUPLE
-#  define BOOST_NO_CXX11_HDR_TYPE_TRAITS
-#  define BOOST_NO_CXX11_HDR_TYPEINDEX
-#  define BOOST_NO_CXX11_HDR_UNORDERED_MAP
-#  define BOOST_NO_CXX11_HDR_UNORDERED_SET
-#  define BOOST_NO_CXX11_NUMERIC_LIMITS
-#  define BOOST_NO_CXX11_ALLOCATOR
-#  define BOOST_NO_CXX11_ATOMIC_SMART_PTR
-#  define BOOST_NO_CXX11_SMART_PTR
-#  define BOOST_NO_CXX11_HDR_FUNCTIONAL
-
-#define BOOST_STDLIB "STLPort standard library version " BOOST_STRINGIZE(__SGI_STL_PORT)
-
-
-
-
-
-
-
-
diff --git a/boost/config/stdlib/vacpp.hpp b/boost/config/stdlib/vacpp.hpp
deleted file mode 100644
index 9d16946..0000000
--- a/boost/config/stdlib/vacpp.hpp
+++ /dev/null
@@ -1,54 +0,0 @@
-//  (C) Copyright John Maddock 2001 - 2002. 
-//  Use, modification and distribution are subject to the 
-//  Boost Software License, Version 1.0. (See accompanying file 
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org for most recent version.
-
-#if __IBMCPP__ <= 501
-#  define BOOST_NO_STD_ALLOCATOR
-#endif
-
-#define BOOST_HAS_MACRO_USE_FACET
-#define BOOST_NO_STD_MESSAGES
-
-// Apple doesn't seem to reliably defined a *unix* macro
-#if !defined(CYGWIN) && (  defined(__unix__)  \
-                        || defined(__unix)    \
-                        || defined(unix)      \
-                        || defined(__APPLE__) \
-                        || defined(__APPLE)   \
-                        || defined(APPLE))
-#  include <unistd.h>
-#endif
-
-//  C++0x headers not yet implemented
-//
-#  define BOOST_NO_CXX11_HDR_ARRAY
-#  define BOOST_NO_CXX11_HDR_CHRONO
-#  define BOOST_NO_CXX11_HDR_CODECVT
-#  define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
-#  define BOOST_NO_CXX11_HDR_FORWARD_LIST
-#  define BOOST_NO_CXX11_HDR_FUTURE
-#  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#  define BOOST_NO_CXX11_HDR_MUTEX
-#  define BOOST_NO_CXX11_HDR_RANDOM
-#  define BOOST_NO_CXX11_HDR_RATIO
-#  define BOOST_NO_CXX11_HDR_REGEX
-#  define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
-#  define BOOST_NO_CXX11_HDR_THREAD
-#  define BOOST_NO_CXX11_HDR_TUPLE
-#  define BOOST_NO_CXX11_HDR_TYPE_TRAITS
-#  define BOOST_NO_CXX11_HDR_TYPEINDEX
-#  define BOOST_NO_CXX11_HDR_UNORDERED_MAP
-#  define BOOST_NO_CXX11_HDR_UNORDERED_SET
-#  define BOOST_NO_CXX11_NUMERIC_LIMITS
-#  define BOOST_NO_CXX11_ALLOCATOR
-#  define BOOST_NO_CXX11_ATOMIC_SMART_PTR
-#  define BOOST_NO_CXX11_SMART_PTR
-#  define BOOST_NO_CXX11_HDR_FUNCTIONAL
-
-#define BOOST_STDLIB "Visual Age default standard library"
-
-
-
diff --git a/boost/config/suffix.hpp b/boost/config/suffix.hpp
deleted file mode 100644
index c55579e..0000000
--- a/boost/config/suffix.hpp
+++ /dev/null
@@ -1,941 +0,0 @@
-//  Boost config.hpp configuration header file  ------------------------------//
-//	boostinspect:ndprecated_macros	-- tell the inspect tool to ignore this file
-
-//  Copyright (c) 2001-2003 John Maddock
-//  Copyright (c) 2001 Darin Adler
-//  Copyright (c) 2001 Peter Dimov
-//  Copyright (c) 2002 Bill Kempf
-//  Copyright (c) 2002 Jens Maurer
-//  Copyright (c) 2002-2003 David Abrahams
-//  Copyright (c) 2003 Gennaro Prota
-//  Copyright (c) 2003 Eric Friedman
-//  Copyright (c) 2010 Eric Jourdanneau, Joel Falcou
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org/ for most recent version.
-
-//  Boost config.hpp policy and rationale documentation has been moved to
-//  http://www.boost.org/libs/config/
-//
-//  This file is intended to be stable, and relatively unchanging.
-//  It should contain boilerplate code only - no compiler specific
-//  code unless it is unavoidable - no changes unless unavoidable.
-
-#ifndef BOOST_CONFIG_SUFFIX_HPP
-#define BOOST_CONFIG_SUFFIX_HPP
-
-#if defined(__GNUC__) && (__GNUC__ >= 4)
-//
-// Some GCC-4.x versions issue warnings even when __extension__ is used,
-// so use this as a workaround:
-//
-#pragma GCC system_header
-#endif
-
-//
-// ensure that visibility macros are always defined, thus symplifying use
-//
-#ifndef BOOST_SYMBOL_EXPORT
-# define BOOST_SYMBOL_EXPORT
-#endif
-#ifndef BOOST_SYMBOL_IMPORT
-# define BOOST_SYMBOL_IMPORT
-#endif
-#ifndef BOOST_SYMBOL_VISIBLE
-# define BOOST_SYMBOL_VISIBLE
-#endif
-
-//
-// look for long long by looking for the appropriate macros in <limits.h>.
-// Note that we use limits.h rather than climits for maximal portability,
-// remember that since these just declare a bunch of macros, there should be
-// no namespace issues from this.
-//
-#if !defined(BOOST_HAS_LONG_LONG) && !defined(BOOST_NO_LONG_LONG)                                              \
-   && !defined(BOOST_MSVC) && !defined(__BORLANDC__)
-# include <limits.h>
-# if (defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX))
-#   define BOOST_HAS_LONG_LONG
-# else
-#   define BOOST_NO_LONG_LONG
-# endif
-#endif
-
-// GCC 3.x will clean up all of those nasty macro definitions that
-// BOOST_NO_CTYPE_FUNCTIONS is intended to help work around, so undefine
-// it under GCC 3.x.
-#if defined(__GNUC__) && (__GNUC__ >= 3) && defined(BOOST_NO_CTYPE_FUNCTIONS)
-#  undef BOOST_NO_CTYPE_FUNCTIONS
-#endif
-
-//
-// Assume any extensions are in namespace std:: unless stated otherwise:
-//
-#  ifndef BOOST_STD_EXTENSION_NAMESPACE
-#    define BOOST_STD_EXTENSION_NAMESPACE std
-#  endif
-
-//
-// If cv-qualified specializations are not allowed, then neither are cv-void ones:
-//
-#  if defined(BOOST_NO_CV_SPECIALIZATIONS) \
-      && !defined(BOOST_NO_CV_VOID_SPECIALIZATIONS)
-#     define BOOST_NO_CV_VOID_SPECIALIZATIONS
-#  endif
-
-//
-// If there is no numeric_limits template, then it can't have any compile time
-// constants either!
-//
-#  if defined(BOOST_NO_LIMITS) \
-      && !defined(BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS)
-#     define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-#     define BOOST_NO_MS_INT64_NUMERIC_LIMITS
-#     define BOOST_NO_LONG_LONG_NUMERIC_LIMITS
-#  endif
-
-//
-// if there is no long long then there is no specialisation
-// for numeric_limits<long long> either:
-//
-#if !defined(BOOST_HAS_LONG_LONG) && !defined(BOOST_NO_LONG_LONG_NUMERIC_LIMITS)
-#  define BOOST_NO_LONG_LONG_NUMERIC_LIMITS
-#endif
-
-//
-// if there is no __int64 then there is no specialisation
-// for numeric_limits<__int64> either:
-//
-#if !defined(BOOST_HAS_MS_INT64) && !defined(BOOST_NO_MS_INT64_NUMERIC_LIMITS)
-#  define BOOST_NO_MS_INT64_NUMERIC_LIMITS
-#endif
-
-//
-// if member templates are supported then so is the
-// VC6 subset of member templates:
-//
-#  if !defined(BOOST_NO_MEMBER_TEMPLATES) \
-       && !defined(BOOST_MSVC6_MEMBER_TEMPLATES)
-#     define BOOST_MSVC6_MEMBER_TEMPLATES
-#  endif
-
-//
-// Without partial specialization, can't test for partial specialisation bugs:
-//
-#  if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
-      && !defined(BOOST_BCB_PARTIAL_SPECIALIZATION_BUG)
-#     define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
-#  endif
-
-//
-// Without partial specialization, we can't have array-type partial specialisations:
-//
-#  if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
-      && !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
-#     define BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
-#  endif
-
-//
-// Without partial specialization, std::iterator_traits can't work:
-//
-#  if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
-      && !defined(BOOST_NO_STD_ITERATOR_TRAITS)
-#     define BOOST_NO_STD_ITERATOR_TRAITS
-#  endif
-
-//
-// Without partial specialization, partial
-// specialization with default args won't work either:
-//
-#  if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
-      && !defined(BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS)
-#     define BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
-#  endif
-
-//
-// Without member template support, we can't have template constructors
-// in the standard library either:
-//
-#  if defined(BOOST_NO_MEMBER_TEMPLATES) \
-      && !defined(BOOST_MSVC6_MEMBER_TEMPLATES) \
-      && !defined(BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS)
-#     define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
-#  endif
-
-//
-// Without member template support, we can't have a conforming
-// std::allocator template either:
-//
-#  if defined(BOOST_NO_MEMBER_TEMPLATES) \
-      && !defined(BOOST_MSVC6_MEMBER_TEMPLATES) \
-      && !defined(BOOST_NO_STD_ALLOCATOR)
-#     define BOOST_NO_STD_ALLOCATOR
-#  endif
-
-//
-// without ADL support then using declarations will break ADL as well:
-//
-#if defined(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP) && !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL)
-#  define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
-#endif
-
-//
-// Without typeid support we have no dynamic RTTI either:
-//
-#if defined(BOOST_NO_TYPEID) && !defined(BOOST_NO_RTTI)
-#  define BOOST_NO_RTTI
-#endif
-
-//
-// If we have a standard allocator, then we have a partial one as well:
-//
-#if !defined(BOOST_NO_STD_ALLOCATOR)
-#  define BOOST_HAS_PARTIAL_STD_ALLOCATOR
-#endif
-
-//
-// We can't have a working std::use_facet if there is no std::locale:
-//
-#  if defined(BOOST_NO_STD_LOCALE) && !defined(BOOST_NO_STD_USE_FACET)
-#     define BOOST_NO_STD_USE_FACET
-#  endif
-
-//
-// We can't have a std::messages facet if there is no std::locale:
-//
-#  if defined(BOOST_NO_STD_LOCALE) && !defined(BOOST_NO_STD_MESSAGES)
-#     define BOOST_NO_STD_MESSAGES
-#  endif
-
-//
-// We can't have a working std::wstreambuf if there is no std::locale:
-//
-#  if defined(BOOST_NO_STD_LOCALE) && !defined(BOOST_NO_STD_WSTREAMBUF)
-#     define BOOST_NO_STD_WSTREAMBUF
-#  endif
-
-//
-// We can't have a <cwctype> if there is no <cwchar>:
-//
-#  if defined(BOOST_NO_CWCHAR) && !defined(BOOST_NO_CWCTYPE)
-#     define BOOST_NO_CWCTYPE
-#  endif
-
-//
-// We can't have a swprintf if there is no <cwchar>:
-//
-#  if defined(BOOST_NO_CWCHAR) && !defined(BOOST_NO_SWPRINTF)
-#     define BOOST_NO_SWPRINTF
-#  endif
-
-//
-// If Win32 support is turned off, then we must turn off
-// threading support also, unless there is some other
-// thread API enabled:
-//
-#if defined(BOOST_DISABLE_WIN32) && defined(_WIN32) \
-   && !defined(BOOST_DISABLE_THREADS) && !defined(BOOST_HAS_PTHREADS)
-#  define BOOST_DISABLE_THREADS
-#endif
-
-//
-// Turn on threading support if the compiler thinks that it's in
-// multithreaded mode.  We put this here because there are only a
-// limited number of macros that identify this (if there's any missing
-// from here then add to the appropriate compiler section):
-//
-#if (defined(__MT__) || defined(_MT) || defined(_REENTRANT) \
-    || defined(_PTHREADS) || defined(__APPLE__) || defined(__DragonFly__)) \
-    && !defined(BOOST_HAS_THREADS)
-#  define BOOST_HAS_THREADS
-#endif
-
-//
-// Turn threading support off if BOOST_DISABLE_THREADS is defined:
-//
-#if defined(BOOST_DISABLE_THREADS) && defined(BOOST_HAS_THREADS)
-#  undef BOOST_HAS_THREADS
-#endif
-
-//
-// Turn threading support off if we don't recognise the threading API:
-//
-#if defined(BOOST_HAS_THREADS) && !defined(BOOST_HAS_PTHREADS)\
-      && !defined(BOOST_HAS_WINTHREADS) && !defined(BOOST_HAS_BETHREADS)\
-      && !defined(BOOST_HAS_MPTASKS)
-#  undef BOOST_HAS_THREADS
-#endif
-
-//
-// Turn threading detail macros off if we don't (want to) use threading
-//
-#ifndef BOOST_HAS_THREADS
-#  undef BOOST_HAS_PTHREADS
-#  undef BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
-#  undef BOOST_HAS_PTHREAD_YIELD
-#  undef BOOST_HAS_PTHREAD_DELAY_NP
-#  undef BOOST_HAS_WINTHREADS
-#  undef BOOST_HAS_BETHREADS
-#  undef BOOST_HAS_MPTASKS
-#endif
-
-//
-// If the compiler claims to be C99 conformant, then it had better
-// have a <stdint.h>:
-//
-#  if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901)
-#     define BOOST_HAS_STDINT_H
-#     ifndef BOOST_HAS_LOG1P
-#        define BOOST_HAS_LOG1P
-#     endif
-#     ifndef BOOST_HAS_EXPM1
-#        define BOOST_HAS_EXPM1
-#     endif
-#  endif
-
-//
-// Define BOOST_NO_SLIST and BOOST_NO_HASH if required.
-// Note that this is for backwards compatibility only.
-//
-#  if !defined(BOOST_HAS_SLIST) && !defined(BOOST_NO_SLIST)
-#     define BOOST_NO_SLIST
-#  endif
-
-#  if !defined(BOOST_HAS_HASH) && !defined(BOOST_NO_HASH)
-#     define BOOST_NO_HASH
-#  endif
-
-//
-// Set BOOST_SLIST_HEADER if not set already:
-//
-#if defined(BOOST_HAS_SLIST) && !defined(BOOST_SLIST_HEADER)
-#  define BOOST_SLIST_HEADER <slist>
-#endif
-
-//
-// Set BOOST_HASH_SET_HEADER if not set already:
-//
-#if defined(BOOST_HAS_HASH) && !defined(BOOST_HASH_SET_HEADER)
-#  define BOOST_HASH_SET_HEADER <hash_set>
-#endif
-
-//
-// Set BOOST_HASH_MAP_HEADER if not set already:
-//
-#if defined(BOOST_HAS_HASH) && !defined(BOOST_HASH_MAP_HEADER)
-#  define BOOST_HASH_MAP_HEADER <hash_map>
-#endif
-
-//  BOOST_HAS_ABI_HEADERS
-//  This macro gets set if we have headers that fix the ABI,
-//  and prevent ODR violations when linking to external libraries:
-#if defined(BOOST_ABI_PREFIX) && defined(BOOST_ABI_SUFFIX) && !defined(BOOST_HAS_ABI_HEADERS)
-#  define BOOST_HAS_ABI_HEADERS
-#endif
-
-#if defined(BOOST_HAS_ABI_HEADERS) && defined(BOOST_DISABLE_ABI_HEADERS)
-#  undef BOOST_HAS_ABI_HEADERS
-#endif
-
-//  BOOST_NO_STDC_NAMESPACE workaround  --------------------------------------//
-//  Because std::size_t usage is so common, even in boost headers which do not
-//  otherwise use the C library, the <cstddef> workaround is included here so
-//  that ugly workaround code need not appear in many other boost headers.
-//  NOTE WELL: This is a workaround for non-conforming compilers; <cstddef>
-//  must still be #included in the usual places so that <cstddef> inclusion
-//  works as expected with standard conforming compilers.  The resulting
-//  double inclusion of <cstddef> is harmless.
-
-# if defined(BOOST_NO_STDC_NAMESPACE) && defined(__cplusplus)
-#   include <cstddef>
-    namespace std { using ::ptrdiff_t; using ::size_t; }
-# endif
-
-//  Workaround for the unfortunate min/max macros defined by some platform headers
-
-#define BOOST_PREVENT_MACRO_SUBSTITUTION
-
-#ifndef BOOST_USING_STD_MIN
-#  define BOOST_USING_STD_MIN() using std::min
-#endif
-
-#ifndef BOOST_USING_STD_MAX
-#  define BOOST_USING_STD_MAX() using std::max
-#endif
-
-//  BOOST_NO_STD_MIN_MAX workaround  -----------------------------------------//
-
-#  if defined(BOOST_NO_STD_MIN_MAX) && defined(__cplusplus)
-
-namespace std {
-  template <class _Tp>
-  inline const _Tp& min BOOST_PREVENT_MACRO_SUBSTITUTION (const _Tp& __a, const _Tp& __b) {
-    return __b < __a ? __b : __a;
-  }
-  template <class _Tp>
-  inline const _Tp& max BOOST_PREVENT_MACRO_SUBSTITUTION (const _Tp& __a, const _Tp& __b) {
-    return  __a < __b ? __b : __a;
-  }
-}
-
-#  endif
-
-// BOOST_STATIC_CONSTANT workaround --------------------------------------- //
-// On compilers which don't allow in-class initialization of static integral
-// constant members, we must use enums as a workaround if we want the constants
-// to be available at compile-time. This macro gives us a convenient way to
-// declare such constants.
-
-#  ifdef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
-#       define BOOST_STATIC_CONSTANT(type, assignment) enum { assignment }
-#  else
-#     define BOOST_STATIC_CONSTANT(type, assignment) static const type assignment
-#  endif
-
-// BOOST_USE_FACET / HAS_FACET workaround ----------------------------------//
-// When the standard library does not have a conforming std::use_facet there
-// are various workarounds available, but they differ from library to library.
-// The same problem occurs with has_facet.
-// These macros provide a consistent way to access a locale's facets.
-// Usage:
-//    replace
-//       std::use_facet<Type>(loc);
-//    with
-//       BOOST_USE_FACET(Type, loc);
-//    Note do not add a std:: prefix to the front of BOOST_USE_FACET!
-//  Use for BOOST_HAS_FACET is analogous.
-
-#if defined(BOOST_NO_STD_USE_FACET)
-#  ifdef BOOST_HAS_TWO_ARG_USE_FACET
-#     define BOOST_USE_FACET(Type, loc) std::use_facet(loc, static_cast<Type*>(0))
-#     define BOOST_HAS_FACET(Type, loc) std::has_facet(loc, static_cast<Type*>(0))
-#  elif defined(BOOST_HAS_MACRO_USE_FACET)
-#     define BOOST_USE_FACET(Type, loc) std::_USE(loc, Type)
-#     define BOOST_HAS_FACET(Type, loc) std::_HAS(loc, Type)
-#  elif defined(BOOST_HAS_STLP_USE_FACET)
-#     define BOOST_USE_FACET(Type, loc) (*std::_Use_facet<Type >(loc))
-#     define BOOST_HAS_FACET(Type, loc) std::has_facet< Type >(loc)
-#  endif
-#else
-#  define BOOST_USE_FACET(Type, loc) std::use_facet< Type >(loc)
-#  define BOOST_HAS_FACET(Type, loc) std::has_facet< Type >(loc)
-#endif
-
-// BOOST_NESTED_TEMPLATE workaround ------------------------------------------//
-// Member templates are supported by some compilers even though they can't use
-// the A::template member<U> syntax, as a workaround replace:
-//
-// typedef typename A::template rebind<U> binder;
-//
-// with:
-//
-// typedef typename A::BOOST_NESTED_TEMPLATE rebind<U> binder;
-
-#ifndef BOOST_NO_MEMBER_TEMPLATE_KEYWORD
-#  define BOOST_NESTED_TEMPLATE template
-#else
-#  define BOOST_NESTED_TEMPLATE
-#endif
-
-// BOOST_UNREACHABLE_RETURN(x) workaround -------------------------------------//
-// Normally evaluates to nothing, unless BOOST_NO_UNREACHABLE_RETURN_DETECTION
-// is defined, in which case it evaluates to return x; Use when you have a return
-// statement that can never be reached.
-
-#ifdef BOOST_NO_UNREACHABLE_RETURN_DETECTION
-#  define BOOST_UNREACHABLE_RETURN(x) return x;
-#else
-#  define BOOST_UNREACHABLE_RETURN(x)
-#endif
-
-// BOOST_DEDUCED_TYPENAME workaround ------------------------------------------//
-//
-// Some compilers don't support the use of `typename' for dependent
-// types in deduced contexts, e.g.
-//
-//     template <class T> void f(T, typename T::type);
-//                                  ^^^^^^^^
-// Replace these declarations with:
-//
-//     template <class T> void f(T, BOOST_DEDUCED_TYPENAME T::type);
-
-#ifndef BOOST_NO_DEDUCED_TYPENAME
-#  define BOOST_DEDUCED_TYPENAME typename
-#else
-#  define BOOST_DEDUCED_TYPENAME
-#endif
-
-#ifndef BOOST_NO_TYPENAME_WITH_CTOR
-#  define BOOST_CTOR_TYPENAME typename
-#else
-#  define BOOST_CTOR_TYPENAME
-#endif
-
-// long long workaround ------------------------------------------//
-// On gcc (and maybe other compilers?) long long is alway supported
-// but it's use may generate either warnings (with -ansi), or errors
-// (with -pedantic -ansi) unless it's use is prefixed by __extension__
-//
-#if defined(BOOST_HAS_LONG_LONG) && defined(__cplusplus)
-namespace boost{
-#  ifdef __GNUC__
-   __extension__ typedef long long long_long_type;
-   __extension__ typedef unsigned long long ulong_long_type;
-#  else
-   typedef long long long_long_type;
-   typedef unsigned long long ulong_long_type;
-#  endif
-}
-#endif
-// same again for __int128:
-#if defined(BOOST_HAS_INT128) && defined(__cplusplus)
-namespace boost{
-#  ifdef __GNUC__
-   __extension__ typedef __int128 int128_type;
-   __extension__ typedef unsigned __int128 uint128_type;
-#  else
-   typedef __int128 int128_type;
-   typedef unsigned __int128 uint128_type;
-#  endif
-}
-#endif
-
-// BOOST_[APPEND_]EXPLICIT_TEMPLATE_[NON_]TYPE macros --------------------------//
-
-// These macros are obsolete. Port away and remove.
-
-#  define BOOST_EXPLICIT_TEMPLATE_TYPE(t)
-#  define BOOST_EXPLICIT_TEMPLATE_TYPE_SPEC(t)
-#  define BOOST_EXPLICIT_TEMPLATE_NON_TYPE(t, v)
-#  define BOOST_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)
-
-#  define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(t)
-#  define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC(t)
-#  define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(t, v)
-#  define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)
-
-// When BOOST_NO_STD_TYPEINFO is defined, we can just import
-// the global definition into std namespace:
-#if defined(BOOST_NO_STD_TYPEINFO) && defined(__cplusplus)
-#include <typeinfo>
-namespace std{ using ::type_info; }
-#endif
-
-// ---------------------------------------------------------------------------//
-
-//
-// Helper macro BOOST_STRINGIZE:
-// Converts the parameter X to a string after macro replacement
-// on X has been performed.
-//
-#define BOOST_STRINGIZE(X) BOOST_DO_STRINGIZE(X)
-#define BOOST_DO_STRINGIZE(X) #X
-
-//
-// Helper macro BOOST_JOIN:
-// The following piece of macro magic joins the two
-// arguments together, even when one of the arguments is
-// itself a macro (see 16.3.1 in C++ standard).  The key
-// is that macro expansion of macro arguments does not
-// occur in BOOST_DO_JOIN2 but does in BOOST_DO_JOIN.
-//
-#define BOOST_JOIN( X, Y ) BOOST_DO_JOIN( X, Y )
-#define BOOST_DO_JOIN( X, Y ) BOOST_DO_JOIN2(X,Y)
-#define BOOST_DO_JOIN2( X, Y ) X##Y
-
-//
-// Set some default values for compiler/library/platform names.
-// These are for debugging config setup only:
-//
-#  ifndef BOOST_COMPILER
-#     define BOOST_COMPILER "Unknown ISO C++ Compiler"
-#  endif
-#  ifndef BOOST_STDLIB
-#     define BOOST_STDLIB "Unknown ISO standard library"
-#  endif
-#  ifndef BOOST_PLATFORM
-#     if defined(unix) || defined(__unix) || defined(_XOPEN_SOURCE) \
-         || defined(_POSIX_SOURCE)
-#        define BOOST_PLATFORM "Generic Unix"
-#     else
-#        define BOOST_PLATFORM "Unknown"
-#     endif
-#  endif
-
-//
-// Set some default values GPU support
-//
-#  ifndef BOOST_GPU_ENABLED
-#  define BOOST_GPU_ENABLED
-#  endif
-
-// BOOST_FORCEINLINE ---------------------------------------------//
-// Macro to use in place of 'inline' to force a function to be inline
-#if !defined(BOOST_FORCEINLINE)
-#  if defined(_MSC_VER)
-#    define BOOST_FORCEINLINE __forceinline
-#  elif defined(__GNUC__) && __GNUC__ > 3
-     // Clang also defines __GNUC__ (as 4)
-#    define BOOST_FORCEINLINE inline __attribute__ ((__always_inline__))
-#  else
-#    define BOOST_FORCEINLINE inline
-#  endif
-#endif
-
-// BOOST_NOINLINE ---------------------------------------------//
-// Macro to use in place of 'inline' to prevent a function to be inlined
-#if !defined(BOOST_NOINLINE)
-#  if defined(_MSC_VER)
-#    define BOOST_NOINLINE __declspec(noinline)
-#  elif defined(__GNUC__) && __GNUC__ > 3
-     // Clang also defines __GNUC__ (as 4)
-#    define BOOST_NOINLINE __attribute__ ((__noinline__))
-#  else
-#    define BOOST_NOINLINE
-#  endif
-#endif
-
-// Branch prediction hints
-// These macros are intended to wrap conditional expressions that yield true or false
-//
-//  if (BOOST_LIKELY(var == 10))
-//  {
-//     // the most probable code here
-//  }
-//
-#if !defined(BOOST_LIKELY)
-#  define BOOST_LIKELY(x) x
-#endif
-#if !defined(BOOST_UNLIKELY)
-#  define BOOST_UNLIKELY(x) x
-#endif
-
-// Type and data alignment specification
-//
-#if !defined(BOOST_NO_CXX11_ALIGNAS)
-#  define BOOST_ALIGNMENT(x) alignas(x)
-#elif defined(_MSC_VER)
-#  define BOOST_ALIGNMENT(x) __declspec(align(x))
-#elif defined(__GNUC__)
-#  define BOOST_ALIGNMENT(x) __attribute__ ((__aligned__(x)))
-#else
-#  define BOOST_NO_ALIGNMENT
-#  define BOOST_ALIGNMENT(x)
-#endif
-
-// Defaulted and deleted function declaration helpers
-// These macros are intended to be inside a class definition.
-// BOOST_DEFAULTED_FUNCTION accepts the function declaration and its
-// body, which will be used if the compiler doesn't support defaulted functions.
-// BOOST_DELETED_FUNCTION only accepts the function declaration. It
-// will expand to a private function declaration, if the compiler doesn't support
-// deleted functions. Because of this it is recommended to use BOOST_DELETED_FUNCTION
-// in the end of the class definition.
-//
-//  class my_class
-//  {
-//  public:
-//      // Default-constructible
-//      BOOST_DEFAULTED_FUNCTION(my_class(), {})
-//      // Copying prohibited
-//      BOOST_DELETED_FUNCTION(my_class(my_class const&))
-//      BOOST_DELETED_FUNCTION(my_class& operator= (my_class const&))
-//  };
-//
-#if !(defined(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS) || defined(BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS))
-#   define BOOST_DEFAULTED_FUNCTION(fun, body) fun = default;
-#else
-#   define BOOST_DEFAULTED_FUNCTION(fun, body) fun body
-#endif
-
-#if !defined(BOOST_NO_CXX11_DELETED_FUNCTIONS)
-#   define BOOST_DELETED_FUNCTION(fun) fun = delete;
-#else
-#   define BOOST_DELETED_FUNCTION(fun) private: fun;
-#endif
-
-//
-// Set BOOST_NO_DECLTYPE_N3276 when BOOST_NO_DECLTYPE is defined
-//
-#if defined(BOOST_NO_CXX11_DECLTYPE) && !defined(BOOST_NO_CXX11_DECLTYPE_N3276)
-#define	BOOST_NO_CXX11_DECLTYPE_N3276 BOOST_NO_CXX11_DECLTYPE
-#endif
-
-//  -------------------- Deprecated macros for 1.50 ---------------------------
-//  These will go away in a future release
-
-//  Use BOOST_NO_CXX11_HDR_UNORDERED_SET or BOOST_NO_CXX11_HDR_UNORDERED_MAP
-//           instead of BOOST_NO_STD_UNORDERED
-#if defined(BOOST_NO_CXX11_HDR_UNORDERED_MAP) || defined (BOOST_NO_CXX11_HDR_UNORDERED_SET)
-# ifndef BOOST_NO_CXX11_STD_UNORDERED
-#  define BOOST_NO_CXX11_STD_UNORDERED
-# endif
-#endif
-
-//  Use BOOST_NO_CXX11_HDR_INITIALIZER_LIST instead of BOOST_NO_INITIALIZER_LISTS
-#if defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST) && !defined(BOOST_NO_INITIALIZER_LISTS)
-#  define BOOST_NO_INITIALIZER_LISTS
-#endif
-
-//  Use BOOST_NO_CXX11_HDR_ARRAY instead of BOOST_NO_0X_HDR_ARRAY
-#if defined(BOOST_NO_CXX11_HDR_ARRAY) && !defined(BOOST_NO_0X_HDR_ARRAY)
-#  define BOOST_NO_0X_HDR_ARRAY
-#endif
-//  Use BOOST_NO_CXX11_HDR_CHRONO instead of BOOST_NO_0X_HDR_CHRONO
-#if defined(BOOST_NO_CXX11_HDR_CHRONO) && !defined(BOOST_NO_0X_HDR_CHRONO)
-#  define BOOST_NO_0X_HDR_CHRONO
-#endif
-//  Use BOOST_NO_CXX11_HDR_CODECVT instead of BOOST_NO_0X_HDR_CODECVT
-#if defined(BOOST_NO_CXX11_HDR_CODECVT) && !defined(BOOST_NO_0X_HDR_CODECVT)
-#  define BOOST_NO_0X_HDR_CODECVT
-#endif
-//  Use BOOST_NO_CXX11_HDR_CONDITION_VARIABLE instead of BOOST_NO_0X_HDR_CONDITION_VARIABLE
-#if defined(BOOST_NO_CXX11_HDR_CONDITION_VARIABLE) && !defined(BOOST_NO_0X_HDR_CONDITION_VARIABLE)
-#  define BOOST_NO_0X_HDR_CONDITION_VARIABLE
-#endif
-//  Use BOOST_NO_CXX11_HDR_FORWARD_LIST instead of BOOST_NO_0X_HDR_FORWARD_LIST
-#if defined(BOOST_NO_CXX11_HDR_FORWARD_LIST) && !defined(BOOST_NO_0X_HDR_FORWARD_LIST)
-#  define BOOST_NO_0X_HDR_FORWARD_LIST
-#endif
-//  Use BOOST_NO_CXX11_HDR_FUTURE instead of BOOST_NO_0X_HDR_FUTURE
-#if defined(BOOST_NO_CXX11_HDR_FUTURE) && !defined(BOOST_NO_0X_HDR_FUTURE)
-#  define BOOST_NO_0X_HDR_FUTURE
-#endif
-
-//  Use BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-//  instead of BOOST_NO_0X_HDR_INITIALIZER_LIST or BOOST_NO_INITIALIZER_LISTS
-#ifdef BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-# ifndef BOOST_NO_0X_HDR_INITIALIZER_LIST
-#  define BOOST_NO_0X_HDR_INITIALIZER_LIST
-# endif
-# ifndef BOOST_NO_INITIALIZER_LISTS
-#  define BOOST_NO_INITIALIZER_LISTS
-# endif
-#endif
-
-//  Use BOOST_NO_CXX11_HDR_MUTEX instead of BOOST_NO_0X_HDR_MUTEX
-#if defined(BOOST_NO_CXX11_HDR_MUTEX) && !defined(BOOST_NO_0X_HDR_MUTEX)
-#  define BOOST_NO_0X_HDR_MUTEX
-#endif
-//  Use BOOST_NO_CXX11_HDR_RANDOM instead of BOOST_NO_0X_HDR_RANDOM
-#if defined(BOOST_NO_CXX11_HDR_RANDOM) && !defined(BOOST_NO_0X_HDR_RANDOM)
-#  define BOOST_NO_0X_HDR_RANDOM
-#endif
-//  Use BOOST_NO_CXX11_HDR_RATIO instead of BOOST_NO_0X_HDR_RATIO
-#if defined(BOOST_NO_CXX11_HDR_RATIO) && !defined(BOOST_NO_0X_HDR_RATIO)
-#  define BOOST_NO_0X_HDR_RATIO
-#endif
-//  Use BOOST_NO_CXX11_HDR_REGEX instead of BOOST_NO_0X_HDR_REGEX
-#if defined(BOOST_NO_CXX11_HDR_REGEX) && !defined(BOOST_NO_0X_HDR_REGEX)
-#  define BOOST_NO_0X_HDR_REGEX
-#endif
-//  Use BOOST_NO_CXX11_HDR_SYSTEM_ERROR instead of BOOST_NO_0X_HDR_SYSTEM_ERROR
-#if defined(BOOST_NO_CXX11_HDR_SYSTEM_ERROR) && !defined(BOOST_NO_0X_HDR_SYSTEM_ERROR)
-#  define BOOST_NO_0X_HDR_SYSTEM_ERROR
-#endif
-//  Use BOOST_NO_CXX11_HDR_THREAD instead of BOOST_NO_0X_HDR_THREAD
-#if defined(BOOST_NO_CXX11_HDR_THREAD) && !defined(BOOST_NO_0X_HDR_THREAD)
-#  define BOOST_NO_0X_HDR_THREAD
-#endif
-//  Use BOOST_NO_CXX11_HDR_TUPLE instead of BOOST_NO_0X_HDR_TUPLE
-#if defined(BOOST_NO_CXX11_HDR_TUPLE) && !defined(BOOST_NO_0X_HDR_TUPLE)
-#  define BOOST_NO_0X_HDR_TUPLE
-#endif
-//  Use BOOST_NO_CXX11_HDR_TYPE_TRAITS instead of BOOST_NO_0X_HDR_TYPE_TRAITS
-#if defined(BOOST_NO_CXX11_HDR_TYPE_TRAITS) && !defined(BOOST_NO_0X_HDR_TYPE_TRAITS)
-#  define BOOST_NO_0X_HDR_TYPE_TRAITS
-#endif
-//  Use BOOST_NO_CXX11_HDR_TYPEINDEX instead of BOOST_NO_0X_HDR_TYPEINDEX
-#if defined(BOOST_NO_CXX11_HDR_TYPEINDEX) && !defined(BOOST_NO_0X_HDR_TYPEINDEX)
-#  define BOOST_NO_0X_HDR_TYPEINDEX
-#endif
-//  Use BOOST_NO_CXX11_HDR_UNORDERED_MAP instead of BOOST_NO_0X_HDR_UNORDERED_MAP
-#if defined(BOOST_NO_CXX11_HDR_UNORDERED_MAP) && !defined(BOOST_NO_0X_HDR_UNORDERED_MAP)
-#  define BOOST_NO_0X_HDR_UNORDERED_MAP
-#endif
-//  Use BOOST_NO_CXX11_HDR_UNORDERED_SET instead of BOOST_NO_0X_HDR_UNORDERED_SET
-#if defined(BOOST_NO_CXX11_HDR_UNORDERED_SET) && !defined(BOOST_NO_0X_HDR_UNORDERED_SET)
-#  define BOOST_NO_0X_HDR_UNORDERED_SET
-#endif
-
-//  ------------------ End of deprecated macros for 1.50 ---------------------------
-
-//  -------------------- Deprecated macros for 1.51 ---------------------------
-//  These will go away in a future release
-
-//  Use     BOOST_NO_CXX11_AUTO_DECLARATIONS instead of   BOOST_NO_AUTO_DECLARATIONS
-#if defined(BOOST_NO_CXX11_AUTO_DECLARATIONS) && !defined(BOOST_NO_AUTO_DECLARATIONS)
-#  define BOOST_NO_AUTO_DECLARATIONS
-#endif
-//  Use     BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS instead of   BOOST_NO_AUTO_MULTIDECLARATIONS
-#if defined(BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS) && !defined(BOOST_NO_AUTO_MULTIDECLARATIONS)
-#  define BOOST_NO_AUTO_MULTIDECLARATIONS
-#endif
-//  Use     BOOST_NO_CXX11_CHAR16_T instead of   BOOST_NO_CHAR16_T
-#if defined(BOOST_NO_CXX11_CHAR16_T) && !defined(BOOST_NO_CHAR16_T)
-#  define BOOST_NO_CHAR16_T
-#endif
-//  Use     BOOST_NO_CXX11_CHAR32_T instead of   BOOST_NO_CHAR32_T
-#if defined(BOOST_NO_CXX11_CHAR32_T) && !defined(BOOST_NO_CHAR32_T)
-#  define BOOST_NO_CHAR32_T
-#endif
-//  Use     BOOST_NO_CXX11_TEMPLATE_ALIASES instead of   BOOST_NO_TEMPLATE_ALIASES
-#if defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) && !defined(BOOST_NO_TEMPLATE_ALIASES)
-#  define BOOST_NO_TEMPLATE_ALIASES
-#endif
-//  Use     BOOST_NO_CXX11_CONSTEXPR instead of   BOOST_NO_CONSTEXPR
-#if defined(BOOST_NO_CXX11_CONSTEXPR) && !defined(BOOST_NO_CONSTEXPR)
-#  define BOOST_NO_CONSTEXPR
-#endif
-//  Use     BOOST_NO_CXX11_DECLTYPE_N3276 instead of   BOOST_NO_DECLTYPE_N3276
-#if defined(BOOST_NO_CXX11_DECLTYPE_N3276) && !defined(BOOST_NO_DECLTYPE_N3276)
-#  define BOOST_NO_DECLTYPE_N3276
-#endif
-//  Use     BOOST_NO_CXX11_DECLTYPE instead of   BOOST_NO_DECLTYPE
-#if defined(BOOST_NO_CXX11_DECLTYPE) && !defined(BOOST_NO_DECLTYPE)
-#  define BOOST_NO_DECLTYPE
-#endif
-//  Use     BOOST_NO_CXX11_DEFAULTED_FUNCTIONS instead of   BOOST_NO_DEFAULTED_FUNCTIONS
-#if defined(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS) && !defined(BOOST_NO_DEFAULTED_FUNCTIONS)
-#  define BOOST_NO_DEFAULTED_FUNCTIONS
-#endif
-//  Use     BOOST_NO_CXX11_DELETED_FUNCTIONS instead of   BOOST_NO_DELETED_FUNCTIONS
-#if defined(BOOST_NO_CXX11_DELETED_FUNCTIONS) && !defined(BOOST_NO_DELETED_FUNCTIONS)
-#  define BOOST_NO_DELETED_FUNCTIONS
-#endif
-//  Use     BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS instead of   BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
-#if defined(BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS) && !defined(BOOST_NO_EXPLICIT_CONVERSION_OPERATORS)
-#  define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
-#endif
-//  Use     BOOST_NO_CXX11_EXTERN_TEMPLATE instead of   BOOST_NO_EXTERN_TEMPLATE
-#if defined(BOOST_NO_CXX11_EXTERN_TEMPLATE) && !defined(BOOST_NO_EXTERN_TEMPLATE)
-#  define BOOST_NO_EXTERN_TEMPLATE
-#endif
-//  Use     BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS instead of   BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
-#if defined(BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS) && !defined(BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS)
-#  define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
-#endif
-//  Use     BOOST_NO_CXX11_LAMBDAS instead of   BOOST_NO_LAMBDAS
-#if defined(BOOST_NO_CXX11_LAMBDAS) && !defined(BOOST_NO_LAMBDAS)
-#  define BOOST_NO_LAMBDAS
-#endif
-//  Use     BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS instead of   BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS
-#if defined(BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS) && !defined(BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS)
-#  define BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS
-#endif
-//  Use     BOOST_NO_CXX11_NOEXCEPT instead of   BOOST_NO_NOEXCEPT
-#if defined(BOOST_NO_CXX11_NOEXCEPT) && !defined(BOOST_NO_NOEXCEPT)
-#  define BOOST_NO_NOEXCEPT
-#endif
-//  Use     BOOST_NO_CXX11_NULLPTR instead of   BOOST_NO_NULLPTR
-#if defined(BOOST_NO_CXX11_NULLPTR) && !defined(BOOST_NO_NULLPTR)
-#  define BOOST_NO_NULLPTR
-#endif
-//  Use     BOOST_NO_CXX11_RAW_LITERALS instead of   BOOST_NO_RAW_LITERALS
-#if defined(BOOST_NO_CXX11_RAW_LITERALS) && !defined(BOOST_NO_RAW_LITERALS)
-#  define BOOST_NO_RAW_LITERALS
-#endif
-//  Use     BOOST_NO_CXX11_RVALUE_REFERENCES instead of   BOOST_NO_RVALUE_REFERENCES
-#if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(BOOST_NO_RVALUE_REFERENCES)
-#  define BOOST_NO_RVALUE_REFERENCES
-#endif
-//  Use     BOOST_NO_CXX11_SCOPED_ENUMS instead of   BOOST_NO_SCOPED_ENUMS
-#if defined(BOOST_NO_CXX11_SCOPED_ENUMS) && !defined(BOOST_NO_SCOPED_ENUMS)
-#  define BOOST_NO_SCOPED_ENUMS
-#endif
-//  Use     BOOST_NO_CXX11_STATIC_ASSERT instead of   BOOST_NO_STATIC_ASSERT
-#if defined(BOOST_NO_CXX11_STATIC_ASSERT) && !defined(BOOST_NO_STATIC_ASSERT)
-#  define BOOST_NO_STATIC_ASSERT
-#endif
-//  Use     BOOST_NO_CXX11_STD_UNORDERED instead of   BOOST_NO_STD_UNORDERED
-#if defined(BOOST_NO_CXX11_STD_UNORDERED) && !defined(BOOST_NO_STD_UNORDERED)
-#  define BOOST_NO_STD_UNORDERED
-#endif
-//  Use     BOOST_NO_CXX11_UNICODE_LITERALS instead of   BOOST_NO_UNICODE_LITERALS
-#if defined(BOOST_NO_CXX11_UNICODE_LITERALS) && !defined(BOOST_NO_UNICODE_LITERALS)
-#  define BOOST_NO_UNICODE_LITERALS
-#endif
-//  Use     BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX instead of   BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
-#if defined(BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX) && !defined(BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX)
-#  define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
-#endif
-//  Use     BOOST_NO_CXX11_VARIADIC_TEMPLATES instead of   BOOST_NO_VARIADIC_TEMPLATES
-#if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_NO_VARIADIC_TEMPLATES)
-#  define BOOST_NO_VARIADIC_TEMPLATES
-#endif
-//  Use     BOOST_NO_CXX11_VARIADIC_MACROS instead of   BOOST_NO_VARIADIC_MACROS
-#if defined(BOOST_NO_CXX11_VARIADIC_MACROS) && !defined(BOOST_NO_VARIADIC_MACROS)
-#  define BOOST_NO_VARIADIC_MACROS
-#endif
-//  Use     BOOST_NO_CXX11_NUMERIC_LIMITS instead of   BOOST_NO_NUMERIC_LIMITS_LOWEST
-#if defined(BOOST_NO_CXX11_NUMERIC_LIMITS) && !defined(BOOST_NO_NUMERIC_LIMITS_LOWEST)
-#  define BOOST_NO_NUMERIC_LIMITS_LOWEST
-#endif
-//  ------------------ End of deprecated macros for 1.51 ---------------------------
-
-
-
-//
-// Helper macros BOOST_NOEXCEPT, BOOST_NOEXCEPT_IF, BOOST_NOEXCEPT_EXPR
-// These aid the transition to C++11 while still supporting C++03 compilers
-//
-#ifdef BOOST_NO_CXX11_NOEXCEPT
-#  define BOOST_NOEXCEPT
-#  define BOOST_NOEXCEPT_OR_NOTHROW throw()
-#  define BOOST_NOEXCEPT_IF(Predicate)
-#  define BOOST_NOEXCEPT_EXPR(Expression) false
-#else
-#  define BOOST_NOEXCEPT noexcept
-#  define BOOST_NOEXCEPT_OR_NOTHROW noexcept
-#  define BOOST_NOEXCEPT_IF(Predicate) noexcept((Predicate))
-#  define BOOST_NOEXCEPT_EXPR(Expression) noexcept((Expression))
-#endif
-//
-// Helper macro BOOST_FALLTHROUGH
-// Fallback definition of BOOST_FALLTHROUGH macro used to mark intended
-// fall-through between case labels in a switch statement. We use a definition
-// that requires a semicolon after it to avoid at least one type of misuse even
-// on unsupported compilers.
-//
-#ifndef BOOST_FALLTHROUGH
-#  define BOOST_FALLTHROUGH ((void)0)
-#endif
-
-//
-// constexpr workarounds
-//
-#if defined(BOOST_NO_CXX11_CONSTEXPR)
-#define BOOST_CONSTEXPR
-#define BOOST_CONSTEXPR_OR_CONST const
-#else
-#define BOOST_CONSTEXPR constexpr
-#define BOOST_CONSTEXPR_OR_CONST constexpr
-#endif
-
-#define BOOST_STATIC_CONSTEXPR  static BOOST_CONSTEXPR_OR_CONST
-
-//
-// Set BOOST_HAS_STATIC_ASSERT when BOOST_NO_CXX11_STATIC_ASSERT is not defined
-//
-#if !defined(BOOST_NO_CXX11_STATIC_ASSERT) && !defined(BOOST_HAS_STATIC_ASSERT)
-#  define BOOST_HAS_STATIC_ASSERT
-#endif
-
-//
-// Set BOOST_HAS_RVALUE_REFS when BOOST_NO_CXX11_RVALUE_REFERENCES is not defined
-//
-#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(BOOST_HAS_RVALUE_REFS)
-#define BOOST_HAS_RVALUE_REFS
-#endif
-
-//
-// Set BOOST_HAS_VARIADIC_TMPL when BOOST_NO_CXX11_VARIADIC_TEMPLATES is not defined
-//
-#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_HAS_VARIADIC_TMPL)
-#define BOOST_HAS_VARIADIC_TMPL
-#endif
-
-
-#endif
diff --git a/boost/config/user.hpp b/boost/config/user.hpp
deleted file mode 100644
index 5a4a9d4..0000000
--- a/boost/config/user.hpp
+++ /dev/null
@@ -1,124 +0,0 @@
-//  boost/config/user.hpp  ---------------------------------------------------//
-
-//  (C) Copyright John Maddock 2001. 
-//  Use, modification and distribution are subject to the 
-//  Boost Software License, Version 1.0. (See accompanying file 
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  Do not check in modified versions of this file,
-//  This file may be customized by the end user, but not by boost.
-
-//
-//  Use this file to define a site and compiler specific
-//  configuration policy:
-//
-
-// define this to locate a compiler config file:
-// #define BOOST_COMPILER_CONFIG <myheader>
-
-// define this to locate a stdlib config file:
-// #define BOOST_STDLIB_CONFIG   <myheader>
-
-// define this to locate a platform config file:
-// #define BOOST_PLATFORM_CONFIG <myheader>
-
-// define this to disable compiler config,
-// use if your compiler config has nothing to set:
-// #define BOOST_NO_COMPILER_CONFIG
-
-// define this to disable stdlib config,
-// use if your stdlib config has nothing to set:
-// #define BOOST_NO_STDLIB_CONFIG
-
-// define this to disable platform config,
-// use if your platform config has nothing to set:
-// #define BOOST_NO_PLATFORM_CONFIG
-
-// define this to disable all config options,
-// excluding the user config.  Use if your
-// setup is fully ISO compliant, and has no
-// useful extensions, or for autoconf generated
-// setups:
-// #define BOOST_NO_CONFIG
-
-// define this to make the config "optimistic"
-// about unknown compiler versions.  Normally
-// unknown compiler versions are assumed to have
-// all the defects of the last known version, however
-// setting this flag, causes the config to assume
-// that unknown compiler versions are fully conformant
-// with the standard:
-// #define BOOST_STRICT_CONFIG
-
-// define this to cause the config to halt compilation
-// with an #error if it encounters anything unknown --
-// either an unknown compiler version or an unknown
-// compiler/platform/library:
-// #define BOOST_ASSERT_CONFIG
-
-
-// define if you want to disable threading support, even
-// when available:
-// #define BOOST_DISABLE_THREADS
-
-// define when you want to disable Win32 specific features
-// even when available:
-// #define BOOST_DISABLE_WIN32
-
-// BOOST_DISABLE_ABI_HEADERS: Stops boost headers from including any 
-// prefix/suffix headers that normally control things like struct 
-// packing and alignment. 
-// #define BOOST_DISABLE_ABI_HEADERS
-
-// BOOST_ABI_PREFIX: A prefix header to include in place of whatever
-// boost.config would normally select, any replacement should set up 
-// struct packing and alignment options as required. 
-// #define BOOST_ABI_PREFIX my-header-name
-
-// BOOST_ABI_SUFFIX: A suffix header to include in place of whatever 
-// boost.config would normally select, any replacement should undo 
-// the effects of the prefix header. 
-// #define BOOST_ABI_SUFFIX my-header-name
-
-// BOOST_ALL_DYN_LINK: Forces all libraries that have separate source, 
-// to be linked as dll's rather than static libraries on Microsoft Windows 
-// (this macro is used to turn on __declspec(dllimport) modifiers, so that 
-// the compiler knows which symbols to look for in a dll rather than in a 
-// static library).  Note that there may be some libraries that can only 
-// be statically linked (Boost.Test for example) and others which may only 
-// be dynamically linked (Boost.Threads for example), in these cases this 
-// macro has no effect.
-// #define BOOST_ALL_DYN_LINK
- 
-// BOOST_WHATEVER_DYN_LINK: Forces library "whatever" to be linked as a dll 
-// rather than a static library on Microsoft Windows: replace the WHATEVER 
-// part of the macro name with the name of the library that you want to 
-// dynamically link to, for example use BOOST_DATE_TIME_DYN_LINK or 
-// BOOST_REGEX_DYN_LINK etc (this macro is used to turn on __declspec(dllimport) 
-// modifiers, so that the compiler knows which symbols to look for in a dll 
-// rather than in a static library).  
-// Note that there may be some libraries that can only be statically linked 
-// (Boost.Test for example) and others which may only be dynamically linked 
-// (Boost.Threads for example), in these cases this macro is unsupported.
-// #define BOOST_WHATEVER_DYN_LINK
- 
-// BOOST_ALL_NO_LIB: Tells the config system not to automatically select 
-// which libraries to link against.  
-// Normally if a compiler supports #pragma lib, then the correct library 
-// build variant will be automatically selected and linked against, 
-// simply by the act of including one of that library's headers.  
-// This macro turns that feature off.
-// #define BOOST_ALL_NO_LIB
- 
-// BOOST_WHATEVER_NO_LIB: Tells the config system not to automatically 
-// select which library to link against for library "whatever", 
-// replace WHATEVER in the macro name with the name of the library; 
-// for example BOOST_DATE_TIME_NO_LIB or BOOST_REGEX_NO_LIB.  
-// Normally if a compiler supports #pragma lib, then the correct library 
-// build variant will be automatically selected and linked against, simply 
-// by the act of including one of that library's headers.  This macro turns 
-// that feature off.
-// #define BOOST_WHATEVER_NO_LIB
- 
-
-
diff --git a/boost/config/warning_disable.hpp b/boost/config/warning_disable.hpp
deleted file mode 100644
index fea8e82..0000000
--- a/boost/config/warning_disable.hpp
+++ /dev/null
@@ -1,47 +0,0 @@
-//  Copyright John Maddock 2008
-//  Use, modification, and distribution is subject to the Boost Software
-//  License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file exists to turn off some overly-pedantic warning emitted
-//  by certain compilers.  You should include this header only in:
-//
-//  * A test case, before any other headers, or,
-//  * A library source file before any other headers.
-//
-//  IT SHOULD NOT BE INCLUDED BY ANY BOOST HEADER.
-//
-//  YOU SHOULD NOT INCLUDE IT IF YOU CAN REASONABLY FIX THE WARNING.
-//
-//  The only warnings disabled here are those that are:
-//
-//  * Quite unreasonably pedantic.
-//  * Generally only emitted by a single compiler.
-//  * Can't easily be fixed: for example if the vendors own std lib 
-//    code emits these warnings!
-//
-//  Note that THIS HEADER MUST NOT INCLUDE ANY OTHER HEADERS:
-//  not even std library ones!  Doing so may turn the warning
-//  off too late to be of any use.  For example the VC++ C4996
-//  warning can be emitted from <iosfwd> if that header is included
-//  before or by this one :-(
-//
-
-#ifndef BOOST_CONFIG_WARNING_DISABLE_HPP
-#define BOOST_CONFIG_WARNING_DISABLE_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1400) 
-   // Error 'function': was declared deprecated
-   // http://msdn2.microsoft.com/en-us/library/ttcz0bys(VS.80).aspx
-   // This error is emitted when you use some perfectly conforming
-   // std lib functions in a perfectly correct way, and also by
-   // some of Microsoft's own std lib code !
-#  pragma warning(disable:4996)
-#endif
-#if defined(__INTEL_COMPILER) || defined(__ICL)
-   // As above: gives warning when a "deprecated"
-   // std library function is encountered.
-#  pragma warning(disable:1786)
-#endif
-
-#endif // BOOST_CONFIG_WARNING_DISABLE_HPP
diff --git a/boost/container/container_fwd.hpp b/boost/container/container_fwd.hpp
deleted file mode 100644
index 271cc8b..0000000
--- a/boost/container/container_fwd.hpp
+++ /dev/null
@@ -1,182 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-//
-// (C) Copyright Ion Gaztanaga 2005-2012. Distributed under the Boost
-// Software License, Version 1.0. (See accompanying file
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/container for documentation.
-//
-//////////////////////////////////////////////////////////////////////////////
-
-#ifndef BOOST_CONTAINER_CONTAINER_FWD_HPP
-#define BOOST_CONTAINER_CONTAINER_FWD_HPP
-
-#if defined(_MSC_VER)
-#  pragma once
-#endif
-
-//////////////////////////////////////////////////////////////////////////////
-//                        Standard predeclarations
-//////////////////////////////////////////////////////////////////////////////
-
-/// @cond
-
-namespace boost{
-namespace intrusive{
-   //Create namespace to avoid compilation errors
-}}
-
-namespace boost{ namespace container{ namespace container_detail{
-
-namespace bi = boost::intrusive;
-
-}}}
-
-#include <utility>
-#include <memory>
-#include <functional>
-#include <iosfwd>
-#include <string>
-
-/// @endcond
-
-//////////////////////////////////////////////////////////////////////////////
-//                             Containers
-//////////////////////////////////////////////////////////////////////////////
-
-namespace boost {
-namespace container {
-
-//vector class
-template <class T
-         ,class Allocator = std::allocator<T> >
-class vector;
-
-//vector class
-template <class T
-         ,class Allocator = std::allocator<T> >
-class stable_vector;
-
-//vector class
-template <class T
-         ,class Allocator = std::allocator<T> >
-class deque;
-
-//list class
-template <class T
-         ,class Allocator = std::allocator<T> >
-class list;
-
-//slist class
-template <class T
-         ,class Allocator = std::allocator<T> >
-class slist;
-
-//set class
-template <class Key
-         ,class Compare  = std::less<Key>
-         ,class Allocator = std::allocator<Key> >
-class set;
-
-//multiset class
-template <class Key
-         ,class Compare  = std::less<Key>
-         ,class Allocator = std::allocator<Key> >
-class multiset;
-
-//map class
-template <class Key
-         ,class T
-         ,class Compare  = std::less<Key>
-         ,class Allocator = std::allocator<std::pair<const Key, T> > >
-class map;
-
-//multimap class
-template <class Key
-         ,class T
-         ,class Compare  = std::less<Key>
-         ,class Allocator = std::allocator<std::pair<const Key, T> > >
-class multimap;
-
-//flat_set class
-template <class Key
-         ,class Compare  = std::less<Key>
-         ,class Allocator = std::allocator<Key> >
-class flat_set;
-
-//flat_multiset class
-template <class Key
-         ,class Compare  = std::less<Key>
-         ,class Allocator = std::allocator<Key> >
-class flat_multiset;
-
-//flat_map class
-template <class Key
-         ,class T
-         ,class Compare  = std::less<Key>
-         ,class Allocator = std::allocator<std::pair<Key, T> > >
-class flat_map;
-
-//flat_multimap class
-template <class Key
-         ,class T
-         ,class Compare  = std::less<Key>
-         ,class Allocator = std::allocator<std::pair<Key, T> > >
-class flat_multimap;
-
-//basic_string class
-template <class CharT
-         ,class Traits = std::char_traits<CharT>
-         ,class Allocator  = std::allocator<CharT> >
-class basic_string;
-
-//! Type used to tag that the input range is
-//! guaranteed to be ordered
-struct ordered_range_t
-{};
-
-//! Value used to tag that the input range is
-//! guaranteed to be ordered
-static const ordered_range_t ordered_range = ordered_range_t();
-
-//! Type used to tag that the input range is
-//! guaranteed to be ordered and unique
-struct ordered_unique_range_t
-   : public ordered_range_t
-{};
-
-//! Value used to tag that the input range is
-//! guaranteed to be ordered and unique
-static const ordered_unique_range_t ordered_unique_range = ordered_unique_range_t();
-
-//! Type used to tag that the input range is
-//! guaranteed to be ordered and unique
-struct default_init_t
-{};
-
-//! Value used to tag that the input range is
-//! guaranteed to be ordered and unique
-static const default_init_t default_init = default_init_t();
-/// @cond
-
-namespace detail_really_deep_namespace {
-
-//Otherwise, gcc issues a warning of previously defined
-//anonymous_instance and unique_instance
-struct dummy
-{
-   dummy()
-   {
-      (void)ordered_range;
-      (void)ordered_unique_range;
-      (void)default_init;
-   }
-};
-
-}  //detail_really_deep_namespace {
-
-/// @endcond
-
-}}  //namespace boost { namespace container {
-
-#endif //#ifndef BOOST_CONTAINER_CONTAINER_FWD_HPP
diff --git a/boost/cstdint.hpp b/boost/cstdint.hpp
deleted file mode 100644
index 98faeae..0000000
--- a/boost/cstdint.hpp
+++ /dev/null
@@ -1,545 +0,0 @@
-//  boost cstdint.hpp header file  ------------------------------------------//
-
-//  (C) Copyright Beman Dawes 1999.
-//  (C) Copyright Jens Mauer 2001
-//  (C) Copyright John Maddock 2001
-//  Distributed under the Boost
-//  Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org/libs/integer for documentation.
-
-//  Revision History
-//   31 Oct 01  use BOOST_HAS_LONG_LONG to check for "long long" (Jens M.)
-//   16 Apr 01  check LONGLONG_MAX when looking for "long long" (Jens Maurer)
-//   23 Jan 01  prefer "long" over "int" for int32_t and intmax_t (Jens Maurer)
-//   12 Nov 00  Merged <boost/stdint.h> (Jens Maurer)
-//   23 Sep 00  Added INTXX_C macro support (John Maddock).
-//   22 Sep 00  Better 64-bit support (John Maddock)
-//   29 Jun 00  Reimplement to avoid including stdint.h within namespace boost
-//    8 Aug 99  Initial version (Beman Dawes)
-
-
-#ifndef BOOST_CSTDINT_HPP
-#define BOOST_CSTDINT_HPP
-
-//
-// Since we always define the INT#_C macros as per C++0x,
-// define __STDC_CONSTANT_MACROS so that <stdint.h> does the right
-// thing if possible, and so that the user knows that the macros
-// are actually defined as per C99.
-//
-#ifndef __STDC_CONSTANT_MACROS
-#  define __STDC_CONSTANT_MACROS
-#endif
-
-#include <boost/config.hpp>
-
-//
-// Note that GLIBC is a bit inconsistent about whether int64_t is defined or not
-// depending upon what headers happen to have been included first...
-// so we disable use of stdint.h when GLIBC does not define __GLIBC_HAVE_LONG_LONG.
-// See https://svn.boost.org/trac/boost/ticket/3548 and http://sources.redhat.com/bugzilla/show_bug.cgi?id=10990
-//
-#if defined(BOOST_HAS_STDINT_H)					\
-  && (!defined(__GLIBC__)					\
-      || defined(__GLIBC_HAVE_LONG_LONG)			\
-      || (defined(__GLIBC__) && ((__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 17)))))
-
-// The following #include is an implementation artifact; not part of interface.
-# ifdef __hpux
-// HP-UX has a vaguely nice <stdint.h> in a non-standard location
-#   include <inttypes.h>
-#   ifdef __STDC_32_MODE__
-      // this is triggered with GCC, because it defines __cplusplus < 199707L
-#     define BOOST_NO_INT64_T
-#   endif
-# elif defined(__FreeBSD__) || defined(__IBMCPP__) || defined(_AIX)
-#   include <inttypes.h>
-# else
-#   include <stdint.h>
-
-// There is a bug in Cygwin two _C macros
-#   if defined(__STDC_CONSTANT_MACROS) && defined(__CYGWIN__)
-#     undef INTMAX_C
-#     undef UINTMAX_C
-#     define INTMAX_C(c) c##LL
-#     define UINTMAX_C(c) c##ULL
-#   endif
-
-# endif
-
-#ifdef __QNX__
-
-// QNX (Dinkumware stdlib) defines these as non-standard names.
-// Reflect to the standard names.
-
-typedef ::intleast8_t int_least8_t;
-typedef ::intfast8_t int_fast8_t;
-typedef ::uintleast8_t uint_least8_t;
-typedef ::uintfast8_t uint_fast8_t;
-
-typedef ::intleast16_t int_least16_t;
-typedef ::intfast16_t int_fast16_t;
-typedef ::uintleast16_t uint_least16_t;
-typedef ::uintfast16_t uint_fast16_t;
-
-typedef ::intleast32_t int_least32_t;
-typedef ::intfast32_t int_fast32_t;
-typedef ::uintleast32_t uint_least32_t;
-typedef ::uintfast32_t uint_fast32_t;
-
-# ifndef BOOST_NO_INT64_T
-
-typedef ::intleast64_t int_least64_t;
-typedef ::intfast64_t int_fast64_t;
-typedef ::uintleast64_t uint_least64_t;
-typedef ::uintfast64_t uint_fast64_t;
-
-# endif
-
-#endif
-
-namespace boost
-{
-
-  using ::int8_t;
-  using ::int_least8_t;
-  using ::int_fast8_t;
-  using ::uint8_t;
-  using ::uint_least8_t;
-  using ::uint_fast8_t;
-
-  using ::int16_t;
-  using ::int_least16_t;
-  using ::int_fast16_t;
-  using ::uint16_t;
-  using ::uint_least16_t;
-  using ::uint_fast16_t;
-
-  using ::int32_t;
-  using ::int_least32_t;
-  using ::int_fast32_t;
-  using ::uint32_t;
-  using ::uint_least32_t;
-  using ::uint_fast32_t;
-
-# ifndef BOOST_NO_INT64_T
-
-  using ::int64_t;
-  using ::int_least64_t;
-  using ::int_fast64_t;
-  using ::uint64_t;
-  using ::uint_least64_t;
-  using ::uint_fast64_t;
-
-# endif
-
-  using ::intmax_t;
-  using ::uintmax_t;
-
-} // namespace boost
-
-#elif defined(__FreeBSD__) && (__FreeBSD__ <= 4) || defined(__osf__) || defined(__VMS)
-// FreeBSD and Tru64 have an <inttypes.h> that contains much of what we need.
-# include <inttypes.h>
-
-namespace boost {
-
-  using ::int8_t;
-  typedef int8_t int_least8_t;
-  typedef int8_t int_fast8_t;
-  using ::uint8_t;
-  typedef uint8_t uint_least8_t;
-  typedef uint8_t uint_fast8_t;
-
-  using ::int16_t;
-  typedef int16_t int_least16_t;
-  typedef int16_t int_fast16_t;
-  using ::uint16_t;
-  typedef uint16_t uint_least16_t;
-  typedef uint16_t uint_fast16_t;
-
-  using ::int32_t;
-  typedef int32_t int_least32_t;
-  typedef int32_t int_fast32_t;
-  using ::uint32_t;
-  typedef uint32_t uint_least32_t;
-  typedef uint32_t uint_fast32_t;
-
-# ifndef BOOST_NO_INT64_T
-
-  using ::int64_t;
-  typedef int64_t int_least64_t;
-  typedef int64_t int_fast64_t;
-  using ::uint64_t;
-  typedef uint64_t uint_least64_t;
-  typedef uint64_t uint_fast64_t;
-
-  typedef int64_t intmax_t;
-  typedef uint64_t uintmax_t;
-
-# else
-
-  typedef int32_t intmax_t;
-  typedef uint32_t uintmax_t;
-
-# endif
-
-} // namespace boost
-
-#else  // BOOST_HAS_STDINT_H
-
-# include <boost/limits.hpp> // implementation artifact; not part of interface
-# include <limits.h>         // needed for limits macros
-
-
-namespace boost
-{
-
-//  These are fairly safe guesses for some 16-bit, and most 32-bit and 64-bit
-//  platforms.  For other systems, they will have to be hand tailored.
-//
-//  Because the fast types are assumed to be the same as the undecorated types,
-//  it may be possible to hand tailor a more efficient implementation.  Such
-//  an optimization may be illusionary; on the Intel x86-family 386 on, for
-//  example, byte arithmetic and load/stores are as fast as "int" sized ones.
-
-//  8-bit types  ------------------------------------------------------------//
-
-# if UCHAR_MAX == 0xff
-     typedef signed char     int8_t;
-     typedef signed char     int_least8_t;
-     typedef signed char     int_fast8_t;
-     typedef unsigned char   uint8_t;
-     typedef unsigned char   uint_least8_t;
-     typedef unsigned char   uint_fast8_t;
-# else
-#    error defaults not correct; you must hand modify boost/cstdint.hpp
-# endif
-
-//  16-bit types  -----------------------------------------------------------//
-
-# if USHRT_MAX == 0xffff
-#  if defined(__crayx1)
-     // The Cray X1 has a 16-bit short, however it is not recommend
-     // for use in performance critical code.
-     typedef short           int16_t;
-     typedef short           int_least16_t;
-     typedef int             int_fast16_t;
-     typedef unsigned short  uint16_t;
-     typedef unsigned short  uint_least16_t;
-     typedef unsigned int    uint_fast16_t;
-#  else
-     typedef short           int16_t;
-     typedef short           int_least16_t;
-     typedef short           int_fast16_t;
-     typedef unsigned short  uint16_t;
-     typedef unsigned short  uint_least16_t;
-     typedef unsigned short  uint_fast16_t;
-#  endif
-# elif (USHRT_MAX == 0xffffffff) && defined(__MTA__)
-      // On MTA / XMT short is 32 bits unless the -short16 compiler flag is specified
-      // MTA / XMT does support the following non-standard integer types
-      typedef __short16           int16_t;
-      typedef __short16           int_least16_t;
-      typedef __short16           int_fast16_t;
-      typedef unsigned __short16  uint16_t;
-      typedef unsigned __short16  uint_least16_t;
-      typedef unsigned __short16  uint_fast16_t;
-# elif (USHRT_MAX == 0xffffffff) && defined(CRAY)
-     // no 16-bit types on Cray:
-     typedef short           int_least16_t;
-     typedef short           int_fast16_t;
-     typedef unsigned short  uint_least16_t;
-     typedef unsigned short  uint_fast16_t;
-# else
-#    error defaults not correct; you must hand modify boost/cstdint.hpp
-# endif
-
-//  32-bit types  -----------------------------------------------------------//
-
-# if UINT_MAX == 0xffffffff
-     typedef int             int32_t;
-     typedef int             int_least32_t;
-     typedef int             int_fast32_t;
-     typedef unsigned int    uint32_t;
-     typedef unsigned int    uint_least32_t;
-     typedef unsigned int    uint_fast32_t;
-# elif (USHRT_MAX == 0xffffffff)
-     typedef short             int32_t;
-     typedef short             int_least32_t;
-     typedef short             int_fast32_t;
-     typedef unsigned short    uint32_t;
-     typedef unsigned short    uint_least32_t;
-     typedef unsigned short    uint_fast32_t;
-# elif ULONG_MAX == 0xffffffff
-     typedef long            int32_t;
-     typedef long            int_least32_t;
-     typedef long            int_fast32_t;
-     typedef unsigned long   uint32_t;
-     typedef unsigned long   uint_least32_t;
-     typedef unsigned long   uint_fast32_t;
-# elif (UINT_MAX == 0xffffffffffffffff) && defined(__MTA__)
-      // Integers are 64 bits on the MTA / XMT
-      typedef __int32           int32_t;
-      typedef __int32           int_least32_t;
-      typedef __int32           int_fast32_t;
-      typedef unsigned __int32  uint32_t;
-      typedef unsigned __int32  uint_least32_t;
-      typedef unsigned __int32  uint_fast32_t;
-# else
-#    error defaults not correct; you must hand modify boost/cstdint.hpp
-# endif
-
-//  64-bit types + intmax_t and uintmax_t  ----------------------------------//
-
-# if defined(BOOST_HAS_LONG_LONG) && \
-   !defined(BOOST_MSVC) && !defined(__BORLANDC__) && \
-   (!defined(__GLIBCPP__) || defined(_GLIBCPP_USE_LONG_LONG)) && \
-   (defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX))
-#    if defined(__hpux)
-     // HP-UX's value of ULONG_LONG_MAX is unusable in preprocessor expressions
-#    elif (defined(ULLONG_MAX) && ULLONG_MAX == 18446744073709551615ULL) || (defined(ULONG_LONG_MAX) && ULONG_LONG_MAX == 18446744073709551615ULL) || (defined(ULONGLONG_MAX) && ULONGLONG_MAX == 18446744073709551615ULL)
-                                                                 // 2**64 - 1
-#    else
-#       error defaults not correct; you must hand modify boost/cstdint.hpp
-#    endif
-
-     typedef  ::boost::long_long_type            intmax_t;
-     typedef  ::boost::ulong_long_type   uintmax_t;
-     typedef  ::boost::long_long_type            int64_t;
-     typedef  ::boost::long_long_type            int_least64_t;
-     typedef  ::boost::long_long_type            int_fast64_t;
-     typedef  ::boost::ulong_long_type   uint64_t;
-     typedef  ::boost::ulong_long_type   uint_least64_t;
-     typedef  ::boost::ulong_long_type   uint_fast64_t;
-
-# elif ULONG_MAX != 0xffffffff
-
-#    if ULONG_MAX == 18446744073709551615 // 2**64 - 1
-     typedef long                 intmax_t;
-     typedef unsigned long        uintmax_t;
-     typedef long                 int64_t;
-     typedef long                 int_least64_t;
-     typedef long                 int_fast64_t;
-     typedef unsigned long        uint64_t;
-     typedef unsigned long        uint_least64_t;
-     typedef unsigned long        uint_fast64_t;
-#    else
-#       error defaults not correct; you must hand modify boost/cstdint.hpp
-#    endif
-# elif defined(__GNUC__) && defined(BOOST_HAS_LONG_LONG)
-     __extension__ typedef long long            intmax_t;
-     __extension__ typedef unsigned long long   uintmax_t;
-     __extension__ typedef long long            int64_t;
-     __extension__ typedef long long            int_least64_t;
-     __extension__ typedef long long            int_fast64_t;
-     __extension__ typedef unsigned long long   uint64_t;
-     __extension__ typedef unsigned long long   uint_least64_t;
-     __extension__ typedef unsigned long long   uint_fast64_t;
-# elif defined(BOOST_HAS_MS_INT64)
-     //
-     // we have Borland/Intel/Microsoft __int64:
-     //
-     typedef __int64             intmax_t;
-     typedef unsigned __int64    uintmax_t;
-     typedef __int64             int64_t;
-     typedef __int64             int_least64_t;
-     typedef __int64             int_fast64_t;
-     typedef unsigned __int64    uint64_t;
-     typedef unsigned __int64    uint_least64_t;
-     typedef unsigned __int64    uint_fast64_t;
-# else // assume no 64-bit integers
-#  define BOOST_NO_INT64_T
-     typedef int32_t              intmax_t;
-     typedef uint32_t             uintmax_t;
-# endif
-
-} // namespace boost
-
-
-#endif // BOOST_HAS_STDINT_H
-
-// intptr_t/uintptr_t are defined separately because they are optional and not universally available
-#if defined(BOOST_WINDOWS) && !defined(_WIN32_WCE) && !defined(BOOST_HAS_STDINT_H)
-// Older MSVC don't have stdint.h and have intptr_t/uintptr_t defined in stddef.h
-#include <stddef.h>
-#endif
-
-// PGI seems to not support intptr_t/uintptr_t properly. BOOST_HAS_STDINT_H is not defined for this compiler by Boost.Config.
-#if !defined(__PGIC__)
-
-#if (defined(BOOST_WINDOWS) && !defined(_WIN32_WCE)) \
-    || (defined(_XOPEN_UNIX) && (_XOPEN_UNIX+0 > 0) && !defined(__UCLIBC__)) \
-    || defined(__CYGWIN__) \
-    || defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__) \
-    || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
-
-namespace boost {
-    using ::intptr_t;
-    using ::uintptr_t;
-}
-#define BOOST_HAS_INTPTR_T
-
-// Clang pretends to be GCC, so it'll match this condition
-#elif defined(__GNUC__) && defined(__INTPTR_TYPE__) && defined(__UINTPTR_TYPE__)
-
-namespace boost {
-    typedef __INTPTR_TYPE__ intptr_t;
-    typedef __UINTPTR_TYPE__ uintptr_t;
-}
-#define BOOST_HAS_INTPTR_T
-
-#endif
-
-#endif // !defined(__PGIC__)
-
-#endif // BOOST_CSTDINT_HPP
-
-
-/****************************************************
-
-Macro definition section:
-
-Added 23rd September 2000 (John Maddock).
-Modified 11th September 2001 to be excluded when
-BOOST_HAS_STDINT_H is defined (John Maddock).
-Modified 11th Dec 2009 to always define the
-INT#_C macros if they're not already defined (John Maddock).
-
-******************************************************/
-
-#if !defined(BOOST__STDC_CONSTANT_MACROS_DEFINED) && \
-   (!defined(INT8_C) || !defined(INT16_C) || !defined(INT32_C) || !defined(INT64_C))
-//
-// For the following code we get several warnings along the lines of:
-//
-// boost/cstdint.hpp:428:35: error: use of C99 long long integer constant
-//
-// So we declare this a system header to suppress these warnings.
-//
-#if defined(__GNUC__) && (__GNUC__ >= 4)
-#pragma GCC system_header
-#endif
-
-#include <limits.h>
-# define BOOST__STDC_CONSTANT_MACROS_DEFINED
-# if defined(BOOST_HAS_MS_INT64)
-//
-// Borland/Intel/Microsoft compilers have width specific suffixes:
-//
-#ifndef INT8_C
-#  define INT8_C(value)     value##i8
-#endif
-#ifndef INT16_C
-#  define INT16_C(value)    value##i16
-#endif
-#ifndef INT32_C
-#  define INT32_C(value)    value##i32
-#endif
-#ifndef INT64_C
-#  define INT64_C(value)    value##i64
-#endif
-#  ifdef __BORLANDC__
-    // Borland bug: appending ui8 makes the type a signed char
-#   define UINT8_C(value)    static_cast<unsigned char>(value##u)
-#  else
-#   define UINT8_C(value)    value##ui8
-#  endif
-#ifndef UINT16_C
-#  define UINT16_C(value)   value##ui16
-#endif
-#ifndef UINT32_C
-#  define UINT32_C(value)   value##ui32
-#endif
-#ifndef UINT64_C
-#  define UINT64_C(value)   value##ui64
-#endif
-#ifndef INTMAX_C
-#  define INTMAX_C(value)   value##i64
-#  define UINTMAX_C(value)  value##ui64
-#endif
-
-# else
-//  do it the old fashioned way:
-
-//  8-bit types  ------------------------------------------------------------//
-
-#  if (UCHAR_MAX == 0xff) && !defined(INT8_C)
-#   define INT8_C(value) static_cast<boost::int8_t>(value)
-#   define UINT8_C(value) static_cast<boost::uint8_t>(value##u)
-#  endif
-
-//  16-bit types  -----------------------------------------------------------//
-
-#  if (USHRT_MAX == 0xffff) && !defined(INT16_C)
-#   define INT16_C(value) static_cast<boost::int16_t>(value)
-#   define UINT16_C(value) static_cast<boost::uint16_t>(value##u)
-#  endif
-
-//  32-bit types  -----------------------------------------------------------//
-#ifndef INT32_C
-#  if (UINT_MAX == 0xffffffff)
-#   define INT32_C(value) value
-#   define UINT32_C(value) value##u
-#  elif ULONG_MAX == 0xffffffff
-#   define INT32_C(value) value##L
-#   define UINT32_C(value) value##uL
-#  endif
-#endif
-
-//  64-bit types + intmax_t and uintmax_t  ----------------------------------//
-#ifndef INT64_C
-#  if defined(BOOST_HAS_LONG_LONG) && \
-    (defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX) || defined(_LLONG_MAX))
-
-#    if defined(__hpux)
-        // HP-UX's value of ULONG_LONG_MAX is unusable in preprocessor expressions
-#       define INT64_C(value) value##LL
-#       define UINT64_C(value) value##uLL
-#    elif (defined(ULLONG_MAX) && ULLONG_MAX == 18446744073709551615ULL) ||  \
-        (defined(ULONG_LONG_MAX) && ULONG_LONG_MAX == 18446744073709551615ULL) ||  \
-        (defined(ULONGLONG_MAX) && ULONGLONG_MAX == 18446744073709551615ULL) || \
-        (defined(_LLONG_MAX) && _LLONG_MAX == 18446744073709551615ULL)
-
-#       define INT64_C(value) value##LL
-#       define UINT64_C(value) value##uLL
-#    else
-#       error defaults not correct; you must hand modify boost/cstdint.hpp
-#    endif
-#  elif ULONG_MAX != 0xffffffff
-
-#    if ULONG_MAX == 18446744073709551615U // 2**64 - 1
-#       define INT64_C(value) value##L
-#       define UINT64_C(value) value##uL
-#    else
-#       error defaults not correct; you must hand modify boost/cstdint.hpp
-#    endif
-#  elif defined(BOOST_HAS_LONG_LONG)
-     // Usual macros not defined, work things out for ourselves:
-#    if(~0uLL == 18446744073709551615ULL)
-#       define INT64_C(value) value##LL
-#       define UINT64_C(value) value##uLL
-#    else
-#       error defaults not correct; you must hand modify boost/cstdint.hpp
-#    endif
-#  else
-#    error defaults not correct; you must hand modify boost/cstdint.hpp
-#  endif
-
-#  ifdef BOOST_NO_INT64_T
-#   define INTMAX_C(value) INT32_C(value)
-#   define UINTMAX_C(value) UINT32_C(value)
-#  else
-#   define INTMAX_C(value) INT64_C(value)
-#   define UINTMAX_C(value) UINT64_C(value)
-#  endif
-#endif
-# endif // Borland/Microsoft specific width suffixes
-
-#endif // INT#_C macros.
-
-
-
-
diff --git a/boost/current_function.hpp b/boost/current_function.hpp
deleted file mode 100644
index cb36e35..0000000
--- a/boost/current_function.hpp
+++ /dev/null
@@ -1,68 +0,0 @@
-#ifndef BOOST_CURRENT_FUNCTION_HPP_INCLUDED
-#define BOOST_CURRENT_FUNCTION_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  boost/current_function.hpp - BOOST_CURRENT_FUNCTION
-//
-//  Copyright (c) 2002 Peter Dimov and Multi Media Ltd.
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-//  http://www.boost.org/libs/utility/current_function.html
-//
-
-namespace boost
-{
-
-namespace detail
-{
-
-inline void current_function_helper()
-{
-
-#if defined(__GNUC__) || (defined(__MWERKS__) && (__MWERKS__ >= 0x3000)) || (defined(__ICC) && (__ICC >= 600)) || defined(__ghs__)
-
-# define BOOST_CURRENT_FUNCTION __PRETTY_FUNCTION__
-
-#elif defined(__DMC__) && (__DMC__ >= 0x810)
-
-# define BOOST_CURRENT_FUNCTION __PRETTY_FUNCTION__
-
-#elif defined(__FUNCSIG__)
-
-# define BOOST_CURRENT_FUNCTION __FUNCSIG__
-
-#elif (defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 600)) || (defined(__IBMCPP__) && (__IBMCPP__ >= 500))
-
-# define BOOST_CURRENT_FUNCTION __FUNCTION__
-
-#elif defined(__BORLANDC__) && (__BORLANDC__ >= 0x550)
-
-# define BOOST_CURRENT_FUNCTION __FUNC__
-
-#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901)
-
-# define BOOST_CURRENT_FUNCTION __func__
-
-#else
-
-# define BOOST_CURRENT_FUNCTION "(unknown)"
-
-#endif
-
-}
-
-} // namespace detail
-
-} // namespace boost
-
-#endif // #ifndef BOOST_CURRENT_FUNCTION_HPP_INCLUDED
-
diff --git a/boost/detail/endian.hpp b/boost/detail/endian.hpp
deleted file mode 100644
index 3e37db9..0000000
--- a/boost/detail/endian.hpp
+++ /dev/null
@@ -1,11 +0,0 @@
-// Copyright 2013 Redshift Software Inc
-// Distributed under the Boost Software License, Version 1.0. (See accompany-
-// ing file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_DETAIL_ENDIAN_HPP
-#define BOOST_DETAIL_ENDIAN_HPP
-
-// Use the Predef library for the detection of endianess.
-#include <boost/predef/detail/endian_compat.h>
-
-#endif
diff --git a/boost/detail/fenv.hpp b/boost/detail/fenv.hpp
deleted file mode 100644
index f048706..0000000
--- a/boost/detail/fenv.hpp
+++ /dev/null
@@ -1,74 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2010      Bryce Lelbach
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-=============================================================================*/
-
-#include <boost/config.hpp>
-
-#if defined(BOOST_NO_FENV_H)
-  #error This platform does not have a floating point environment
-#endif
-
-#if !defined(BOOST_DETAIL_FENV_HPP)
-#define BOOST_DETAIL_FENV_HPP
-
-/* If we're using clang + glibc, we have to get hacky. 
- * See http://llvm.org/bugs/show_bug.cgi?id=6907 */
-#if defined(__clang__)       &&  (__clang_major__ < 3) &&    \
-    defined(__GNU_LIBRARY__) && /* up to version 5 */ \
-    defined(__GLIBC__) &&         /* version 6 + */ \
-    !defined(_FENV_H)
-  #define _FENV_H
-
-  #include <features.h>
-  #include <bits/fenv.h>
-
-  extern "C" {
-    extern int fegetexceptflag (fexcept_t*, int) __THROW;
-    extern int fesetexceptflag (__const fexcept_t*, int) __THROW;
-    extern int feclearexcept (int) __THROW;
-    extern int feraiseexcept (int) __THROW;
-    extern int fetestexcept (int) __THROW;
-    extern int fegetround (void) __THROW;
-    extern int fesetround (int) __THROW;
-    extern int fegetenv (fenv_t*) __THROW;
-    extern int fesetenv (__const fenv_t*) __THROW;
-    extern int feupdateenv (__const fenv_t*) __THROW;
-    extern int feholdexcept (fenv_t*) __THROW;
-
-    #ifdef __USE_GNU
-      extern int feenableexcept (int) __THROW;
-      extern int fedisableexcept (int) __THROW;
-      extern int fegetexcept (void) __THROW;
-    #endif
-  }
-
-  namespace std { namespace tr1 {
-    using ::fenv_t;
-    using ::fexcept_t;
-    using ::fegetexceptflag;
-    using ::fesetexceptflag;
-    using ::feclearexcept;
-    using ::feraiseexcept;
-    using ::fetestexcept;
-    using ::fegetround;
-    using ::fesetround;
-    using ::fegetenv;
-    using ::fesetenv;
-    using ::feupdateenv;
-    using ::feholdexcept;
-  } }
-
-#else /* if we're not using GNU's C stdlib, fenv.h should work with clang */
-  #if defined(__SUNPRO_CC) /* lol suncc */
-    #include <stdio.h>
-  #endif
-  
-  #include <fenv.h>
-
-#endif
-
-#endif /* BOOST_DETAIL_FENV_HPP */
- 
diff --git a/boost/detail/indirect_traits.hpp b/boost/detail/indirect_traits.hpp
deleted file mode 100644
index f9c0cd6..0000000
--- a/boost/detail/indirect_traits.hpp
+++ /dev/null
@@ -1,487 +0,0 @@
-// Copyright David Abrahams 2002.
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-#ifndef INDIRECT_TRAITS_DWA2002131_HPP
-# define INDIRECT_TRAITS_DWA2002131_HPP
-# include <boost/type_traits/is_function.hpp>
-# include <boost/type_traits/is_reference.hpp>
-# include <boost/type_traits/is_pointer.hpp>
-# include <boost/type_traits/is_class.hpp>
-# include <boost/type_traits/is_const.hpp>
-# include <boost/type_traits/is_volatile.hpp>
-# include <boost/type_traits/is_member_function_pointer.hpp>
-# include <boost/type_traits/is_member_pointer.hpp>
-# include <boost/type_traits/remove_cv.hpp>
-# include <boost/type_traits/remove_reference.hpp>
-# include <boost/type_traits/remove_pointer.hpp>
-
-# include <boost/type_traits/detail/ice_and.hpp>
-# include <boost/detail/workaround.hpp>
-
-# include <boost/mpl/eval_if.hpp>
-# include <boost/mpl/if.hpp>
-# include <boost/mpl/bool.hpp>
-# include <boost/mpl/and.hpp>
-# include <boost/mpl/not.hpp>
-# include <boost/mpl/aux_/lambda_support.hpp>
-
-#  ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#   include <boost/detail/is_function_ref_tester.hpp>
-#  endif 
-
-namespace boost { namespace detail {
-
-namespace indirect_traits {
-
-#  ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-template <class T>
-struct is_reference_to_const : mpl::false_
-{
-};
-
-template <class T>
-struct is_reference_to_const<T const&> : mpl::true_
-{
-};
-
-#   if defined(BOOST_MSVC) && _MSC_FULL_VER <= 13102140 // vc7.01 alpha workaround
-template<class T>
-struct is_reference_to_const<T const volatile&> : mpl::true_
-{
-};
-#   endif 
-
-template <class T>
-struct is_reference_to_function : mpl::false_
-{
-};
-
-template <class T>
-struct is_reference_to_function<T&> : is_function<T>
-{
-};
-
-template <class T>
-struct is_pointer_to_function : mpl::false_
-{
-};
-
-// There's no such thing as a pointer-to-cv-function, so we don't need
-// specializations for those
-template <class T>
-struct is_pointer_to_function<T*> : is_function<T>
-{
-};
-
-template <class T>
-struct is_reference_to_member_function_pointer_impl : mpl::false_
-{
-};
-
-template <class T>
-struct is_reference_to_member_function_pointer_impl<T&>
-    : is_member_function_pointer<typename remove_cv<T>::type>
-{
-};
-
-
-template <class T>
-struct is_reference_to_member_function_pointer
-    : is_reference_to_member_function_pointer_impl<T>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_member_function_pointer,(T))
-};
-
-template <class T>
-struct is_reference_to_function_pointer_aux
-    : mpl::and_<
-          is_reference<T>
-        , is_pointer_to_function<
-              typename remove_cv<
-                  typename remove_reference<T>::type
-              >::type
-          >
-      >
-{
-    // There's no such thing as a pointer-to-cv-function, so we don't need specializations for those
-};
-
-template <class T>
-struct is_reference_to_function_pointer
-    : mpl::if_<
-          is_reference_to_function<T>
-        , mpl::false_
-        , is_reference_to_function_pointer_aux<T>
-     >::type
-{
-};
-
-template <class T>
-struct is_reference_to_non_const
-    : mpl::and_<
-          is_reference<T>
-        , mpl::not_<
-             is_reference_to_const<T>
-          >
-      >
-{
-};
-
-template <class T>
-struct is_reference_to_volatile : mpl::false_
-{
-};
-
-template <class T>
-struct is_reference_to_volatile<T volatile&> : mpl::true_
-{
-};
-
-#   if defined(BOOST_MSVC) && _MSC_FULL_VER <= 13102140 // vc7.01 alpha workaround
-template <class T>
-struct is_reference_to_volatile<T const volatile&> : mpl::true_
-{
-};
-#   endif 
-
-
-template <class T>
-struct is_reference_to_pointer : mpl::false_
-{
-};
-
-template <class T>
-struct is_reference_to_pointer<T*&> : mpl::true_
-{
-};
-
-template <class T>
-struct is_reference_to_pointer<T* const&> : mpl::true_
-{
-};
-
-template <class T>
-struct is_reference_to_pointer<T* volatile&> : mpl::true_
-{
-};
-
-template <class T>
-struct is_reference_to_pointer<T* const volatile&> : mpl::true_
-{
-};
-
-template <class T>
-struct is_reference_to_class
-    : mpl::and_<
-          is_reference<T>
-        , is_class<
-              typename remove_cv<
-                  typename remove_reference<T>::type
-              >::type
-          >
-      >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_class,(T))
-};
-
-template <class T>
-struct is_pointer_to_class
-    : mpl::and_<
-          is_pointer<T>
-        , is_class<
-              typename remove_cv<
-                  typename remove_pointer<T>::type
-              >::type
-          >
-      >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_pointer_to_class,(T))
-};
-
-#  else
-
-using namespace boost::detail::is_function_ref_tester_;
-
-typedef char (&inner_yes_type)[3];
-typedef char (&inner_no_type)[2];
-typedef char (&outer_no_type)[1];
-
-template <typename V>
-struct is_const_help
-{
-    typedef typename mpl::if_<
-          is_const<V>
-        , inner_yes_type
-        , inner_no_type
-        >::type type;
-};
-
-template <typename V>
-struct is_volatile_help
-{
-    typedef typename mpl::if_<
-          is_volatile<V>
-        , inner_yes_type
-        , inner_no_type
-        >::type type;
-};
-
-template <typename V>
-struct is_pointer_help
-{
-    typedef typename mpl::if_<
-          is_pointer<V>
-        , inner_yes_type
-        , inner_no_type
-        >::type type;
-};
-
-template <typename V>
-struct is_class_help
-{
-    typedef typename mpl::if_<
-          is_class<V>
-        , inner_yes_type
-        , inner_no_type
-        >::type type;
-};
-
-template <class T>
-struct is_reference_to_function_aux
-{
-    static T t;
-    BOOST_STATIC_CONSTANT(
-        bool, value = sizeof(detail::is_function_ref_tester(t,0)) == sizeof(::boost::type_traits::yes_type));
-    typedef mpl::bool_<value> type;
- };
-
-template <class T>
-struct is_reference_to_function
-    : mpl::if_<is_reference<T>, is_reference_to_function_aux<T>, mpl::bool_<false> >::type
-{
-};
-
-template <class T>
-struct is_pointer_to_function_aux
-{
-    static T t;
-    BOOST_STATIC_CONSTANT(
-        bool, value
-        = sizeof(::boost::type_traits::is_function_ptr_tester(t)) == sizeof(::boost::type_traits::yes_type));
-    typedef mpl::bool_<value> type;
-};
-
-template <class T>
-struct is_pointer_to_function
-    : mpl::if_<is_pointer<T>, is_pointer_to_function_aux<T>, mpl::bool_<false> >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_pointer_to_function,(T))
-};
-
-struct false_helper1
-{
-    template <class T>
-    struct apply : mpl::false_
-    {
-    };
-};
-
-template <typename V>
-typename is_const_help<V>::type reference_to_const_helper(V&);    
-outer_no_type
-reference_to_const_helper(...);
-
-struct true_helper1
-{
-    template <class T>
-    struct apply
-    {
-        static T t;
-        BOOST_STATIC_CONSTANT(
-            bool, value
-            = sizeof(reference_to_const_helper(t)) == sizeof(inner_yes_type));
-        typedef mpl::bool_<value> type;
-    };
-};
-
-template <bool ref = true>
-struct is_reference_to_const_helper1 : true_helper1
-{
-};
-
-template <>
-struct is_reference_to_const_helper1<false> : false_helper1
-{
-};
-
-
-template <class T>
-struct is_reference_to_const
-    : is_reference_to_const_helper1<is_reference<T>::value>::template apply<T>
-{
-};
-
-
-template <bool ref = true>
-struct is_reference_to_non_const_helper1
-{
-    template <class T>
-    struct apply
-    {
-        static T t;
-        BOOST_STATIC_CONSTANT(
-            bool, value
-            = sizeof(reference_to_const_helper(t)) == sizeof(inner_no_type));
-        
-        typedef mpl::bool_<value> type;
-    };
-};
-
-template <>
-struct is_reference_to_non_const_helper1<false> : false_helper1
-{
-};
-
-
-template <class T>
-struct is_reference_to_non_const
-    : is_reference_to_non_const_helper1<is_reference<T>::value>::template apply<T>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_non_const,(T))
-};
-
-
-template <typename V>
-typename is_volatile_help<V>::type reference_to_volatile_helper(V&);    
-outer_no_type
-reference_to_volatile_helper(...);
-
-template <bool ref = true>
-struct is_reference_to_volatile_helper1
-{
-    template <class T>
-    struct apply
-    {
-        static T t;
-        BOOST_STATIC_CONSTANT(
-            bool, value
-            = sizeof(reference_to_volatile_helper(t)) == sizeof(inner_yes_type));
-        typedef mpl::bool_<value> type;
-    };
-};
-
-template <>
-struct is_reference_to_volatile_helper1<false> : false_helper1
-{
-};
-
-
-template <class T>
-struct is_reference_to_volatile
-    : is_reference_to_volatile_helper1<is_reference<T>::value>::template apply<T>
-{
-};
-
-template <typename V>
-typename is_pointer_help<V>::type reference_to_pointer_helper(V&);
-outer_no_type reference_to_pointer_helper(...);
-
-template <class T>
-struct reference_to_pointer_impl
-{
-    static T t;
-    BOOST_STATIC_CONSTANT(
-        bool, value
-        = (sizeof((reference_to_pointer_helper)(t)) == sizeof(inner_yes_type))
-        );
-    
-    typedef mpl::bool_<value> type;
-};
-    
-template <class T>
-struct is_reference_to_pointer
-  : mpl::eval_if<is_reference<T>, reference_to_pointer_impl<T>, mpl::false_>::type
-{   
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_pointer,(T))
-};
-
-template <class T>
-struct is_reference_to_function_pointer
-  : mpl::eval_if<is_reference<T>, is_pointer_to_function_aux<T>, mpl::false_>::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_function_pointer,(T))
-};
-
-
-template <class T>
-struct is_member_function_pointer_help
-    : mpl::if_<is_member_function_pointer<T>, inner_yes_type, inner_no_type>
-{};
-
-template <typename V>
-typename is_member_function_pointer_help<V>::type member_function_pointer_helper(V&);
-outer_no_type member_function_pointer_helper(...);
-
-template <class T>
-struct is_pointer_to_member_function_aux
-{
-    static T t;
-    BOOST_STATIC_CONSTANT(
-        bool, value
-        = sizeof((member_function_pointer_helper)(t)) == sizeof(inner_yes_type));
-    typedef mpl::bool_<value> type;
-};
-
-template <class T>
-struct is_reference_to_member_function_pointer
-    : mpl::if_<
-        is_reference<T>
-        , is_pointer_to_member_function_aux<T>
-        , mpl::bool_<false>
-     >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_member_function_pointer,(T))
-};
-
-template <typename V>
-typename is_class_help<V>::type reference_to_class_helper(V const volatile&);
-outer_no_type reference_to_class_helper(...);
-
-template <class T>
-struct is_reference_to_class
-{
-    static T t;
-    BOOST_STATIC_CONSTANT(
-        bool, value
-        = (is_reference<T>::value
-           & (sizeof(reference_to_class_helper(t)) == sizeof(inner_yes_type)))
-        );
-    typedef mpl::bool_<value> type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_reference_to_class,(T))
-};
-
-template <typename V>
-typename is_class_help<V>::type pointer_to_class_helper(V const volatile*);
-outer_no_type pointer_to_class_helper(...);
-
-template <class T>
-struct is_pointer_to_class
-{
-    static T t;
-    BOOST_STATIC_CONSTANT(
-        bool, value
-        = (is_pointer<T>::value
-           && sizeof(pointer_to_class_helper(t)) == sizeof(inner_yes_type))
-        );
-    typedef mpl::bool_<value> type;
-};
-#  endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION 
-
-}
-
-using namespace indirect_traits;
-
-}} // namespace boost::python::detail
-
-#endif // INDIRECT_TRAITS_DWA2002131_HPP
diff --git a/boost/detail/interlocked.hpp b/boost/detail/interlocked.hpp
deleted file mode 100644
index 1152f71..0000000
--- a/boost/detail/interlocked.hpp
+++ /dev/null
@@ -1,210 +0,0 @@
-#ifndef BOOST_DETAIL_INTERLOCKED_HPP_INCLUDED
-#define BOOST_DETAIL_INTERLOCKED_HPP_INCLUDED
-
-//
-//  boost/detail/interlocked.hpp
-//
-//  Copyright 2005 Peter Dimov
-//
-//  Distributed under the Boost Software License, Version 1.0. (See
-//  accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-
-#include <boost/config.hpp>
-
-// MS compatible compilers support #pragma once
-#ifdef BOOST_HAS_PRAGMA_ONCE
-#pragma once
-#endif
-
-#if defined( BOOST_USE_WINDOWS_H )
-
-# include <windows.h>
-
-# define BOOST_INTERLOCKED_INCREMENT InterlockedIncrement
-# define BOOST_INTERLOCKED_DECREMENT InterlockedDecrement
-# define BOOST_INTERLOCKED_COMPARE_EXCHANGE InterlockedCompareExchange
-# define BOOST_INTERLOCKED_EXCHANGE InterlockedExchange
-# define BOOST_INTERLOCKED_EXCHANGE_ADD InterlockedExchangeAdd
-# define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER InterlockedCompareExchangePointer
-# define BOOST_INTERLOCKED_EXCHANGE_POINTER InterlockedExchangePointer
-
-#elif defined( BOOST_USE_INTRIN_H )
-
-#include <intrin.h>
-
-# define BOOST_INTERLOCKED_INCREMENT _InterlockedIncrement
-# define BOOST_INTERLOCKED_DECREMENT _InterlockedDecrement
-# define BOOST_INTERLOCKED_COMPARE_EXCHANGE _InterlockedCompareExchange
-# define BOOST_INTERLOCKED_EXCHANGE _InterlockedExchange
-# define BOOST_INTERLOCKED_EXCHANGE_ADD _InterlockedExchangeAdd
-
-# if defined(_M_IA64) || defined(_M_AMD64) || defined(__x86_64__) || defined(__x86_64)
-
-#  define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER _InterlockedCompareExchangePointer
-#  define BOOST_INTERLOCKED_EXCHANGE_POINTER _InterlockedExchangePointer
-
-# else
-
-#  define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER(dest,exchange,compare) \
-    ((void*)BOOST_INTERLOCKED_COMPARE_EXCHANGE((long volatile*)(dest),(long)(exchange),(long)(compare)))
-#  define BOOST_INTERLOCKED_EXCHANGE_POINTER(dest,exchange) \
-    ((void*)BOOST_INTERLOCKED_EXCHANGE((long volatile*)(dest),(long)(exchange)))
-
-# endif
-
-#elif defined(_WIN32_WCE)
-
-#if _WIN32_WCE >= 0x600
-
-extern "C" long __cdecl _InterlockedIncrement( long volatile * );
-extern "C" long __cdecl _InterlockedDecrement( long volatile * );
-extern "C" long __cdecl _InterlockedCompareExchange( long volatile *, long, long );
-extern "C" long __cdecl _InterlockedExchange( long volatile *, long );
-extern "C" long __cdecl _InterlockedExchangeAdd( long volatile *, long );
-
-# define BOOST_INTERLOCKED_INCREMENT _InterlockedIncrement
-# define BOOST_INTERLOCKED_DECREMENT _InterlockedDecrement
-# define BOOST_INTERLOCKED_COMPARE_EXCHANGE _InterlockedCompareExchange
-# define BOOST_INTERLOCKED_EXCHANGE _InterlockedExchange
-# define BOOST_INTERLOCKED_EXCHANGE_ADD _InterlockedExchangeAdd
-
-#else
-// under Windows CE we still have old-style Interlocked* functions
-
-extern "C" long __cdecl InterlockedIncrement( long* );
-extern "C" long __cdecl InterlockedDecrement( long* );
-extern "C" long __cdecl InterlockedCompareExchange( long*, long, long );
-extern "C" long __cdecl InterlockedExchange( long*, long );
-extern "C" long __cdecl InterlockedExchangeAdd( long*, long );
-
-# define BOOST_INTERLOCKED_INCREMENT InterlockedIncrement
-# define BOOST_INTERLOCKED_DECREMENT InterlockedDecrement
-# define BOOST_INTERLOCKED_COMPARE_EXCHANGE InterlockedCompareExchange
-# define BOOST_INTERLOCKED_EXCHANGE InterlockedExchange
-# define BOOST_INTERLOCKED_EXCHANGE_ADD InterlockedExchangeAdd
-
-#endif
-
-# define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER(dest,exchange,compare) \
-    ((void*)BOOST_INTERLOCKED_COMPARE_EXCHANGE((long*)(dest),(long)(exchange),(long)(compare)))
-# define BOOST_INTERLOCKED_EXCHANGE_POINTER(dest,exchange) \
-    ((void*)BOOST_INTERLOCKED_EXCHANGE((long*)(dest),(long)(exchange)))
-
-#elif defined( BOOST_MSVC ) || defined( BOOST_INTEL_WIN )
-
-#if defined( BOOST_MSVC ) && BOOST_MSVC >= 1500
-
-#include <intrin.h>
-
-#elif defined( __CLRCALL_PURE_OR_CDECL )
-
-extern "C" long __CLRCALL_PURE_OR_CDECL _InterlockedIncrement( long volatile * );
-extern "C" long __CLRCALL_PURE_OR_CDECL _InterlockedDecrement( long volatile * );
-extern "C" long __CLRCALL_PURE_OR_CDECL _InterlockedCompareExchange( long volatile *, long, long );
-extern "C" long __CLRCALL_PURE_OR_CDECL _InterlockedExchange( long volatile *, long );
-extern "C" long __CLRCALL_PURE_OR_CDECL _InterlockedExchangeAdd( long volatile *, long );
-
-#else
-
-extern "C" long __cdecl _InterlockedIncrement( long volatile * );
-extern "C" long __cdecl _InterlockedDecrement( long volatile * );
-extern "C" long __cdecl _InterlockedCompareExchange( long volatile *, long, long );
-extern "C" long __cdecl _InterlockedExchange( long volatile *, long );
-extern "C" long __cdecl _InterlockedExchangeAdd( long volatile *, long );
-
-#endif
-
-# if defined(_M_IA64) || defined(_M_AMD64)
-
-extern "C" void* __cdecl _InterlockedCompareExchangePointer( void* volatile *, void*, void* );
-extern "C" void* __cdecl _InterlockedExchangePointer( void* volatile *, void* );
-
-#  define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER _InterlockedCompareExchangePointer
-#  define BOOST_INTERLOCKED_EXCHANGE_POINTER _InterlockedExchangePointer
-
-# else
-
-#  define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER(dest,exchange,compare) \
-    ((void*)BOOST_INTERLOCKED_COMPARE_EXCHANGE((long volatile*)(dest),(long)(exchange),(long)(compare)))
-#  define BOOST_INTERLOCKED_EXCHANGE_POINTER(dest,exchange) \
-    ((void*)BOOST_INTERLOCKED_EXCHANGE((long volatile*)(dest),(long)(exchange)))
-
-# endif
-
-# define BOOST_INTERLOCKED_INCREMENT _InterlockedIncrement
-# define BOOST_INTERLOCKED_DECREMENT _InterlockedDecrement
-# define BOOST_INTERLOCKED_COMPARE_EXCHANGE _InterlockedCompareExchange
-# define BOOST_INTERLOCKED_EXCHANGE _InterlockedExchange
-# define BOOST_INTERLOCKED_EXCHANGE_ADD _InterlockedExchangeAdd
-
-// Unlike __MINGW64__, __MINGW64_VERSION_MAJOR is defined by MinGW-w64 for both 32 and 64-bit targets.
-#elif defined(__MINGW64_VERSION_MAJOR)
-
-// MinGW-w64 provides intrin.h for both 32 and 64-bit targets.
-#include <intrin.h>
-
-# define BOOST_INTERLOCKED_INCREMENT _InterlockedIncrement
-# define BOOST_INTERLOCKED_DECREMENT _InterlockedDecrement
-# define BOOST_INTERLOCKED_COMPARE_EXCHANGE _InterlockedCompareExchange
-# define BOOST_INTERLOCKED_EXCHANGE _InterlockedExchange
-# define BOOST_INTERLOCKED_EXCHANGE_ADD _InterlockedExchangeAdd
-# if defined(__x86_64__) || defined(__x86_64)
-#  define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER _InterlockedCompareExchangePointer
-#  define BOOST_INTERLOCKED_EXCHANGE_POINTER _InterlockedExchangePointer
-# else
-#  define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER(dest,exchange,compare) \
-    ((void*)BOOST_INTERLOCKED_COMPARE_EXCHANGE((long volatile*)(dest),(long)(exchange),(long)(compare)))
-#  define BOOST_INTERLOCKED_EXCHANGE_POINTER(dest,exchange) \
-    ((void*)BOOST_INTERLOCKED_EXCHANGE((long volatile*)(dest),(long)(exchange)))
-# endif
-
-#elif defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ ) || defined( __CYGWIN__ )
-
-#define BOOST_INTERLOCKED_IMPORT __declspec(dllimport)
-
-namespace boost
-{
-
-namespace detail
-{
-
-extern "C" BOOST_INTERLOCKED_IMPORT long __stdcall InterlockedIncrement( long volatile * );
-extern "C" BOOST_INTERLOCKED_IMPORT long __stdcall InterlockedDecrement( long volatile * );
-extern "C" BOOST_INTERLOCKED_IMPORT long __stdcall InterlockedCompareExchange( long volatile *, long, long );
-extern "C" BOOST_INTERLOCKED_IMPORT long __stdcall InterlockedExchange( long volatile *, long );
-extern "C" BOOST_INTERLOCKED_IMPORT long __stdcall InterlockedExchangeAdd( long volatile *, long );
-
-# if defined(_M_IA64) || defined(_M_AMD64)
-extern "C" BOOST_INTERLOCKED_IMPORT void* __stdcall InterlockedCompareExchangePointer( void* volatile *, void*, void* );
-extern "C" BOOST_INTERLOCKED_IMPORT void* __stdcall InterlockedExchangePointer( void* volatile *, void* );
-# endif
-
-} // namespace detail
-
-} // namespace boost
-
-# define BOOST_INTERLOCKED_INCREMENT ::boost::detail::InterlockedIncrement
-# define BOOST_INTERLOCKED_DECREMENT ::boost::detail::InterlockedDecrement
-# define BOOST_INTERLOCKED_COMPARE_EXCHANGE ::boost::detail::InterlockedCompareExchange
-# define BOOST_INTERLOCKED_EXCHANGE ::boost::detail::InterlockedExchange
-# define BOOST_INTERLOCKED_EXCHANGE_ADD ::boost::detail::InterlockedExchangeAdd
-
-# if defined(_M_IA64) || defined(_M_AMD64)
-#  define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER ::boost::detail::InterlockedCompareExchangePointer
-#  define BOOST_INTERLOCKED_EXCHANGE_POINTER ::boost::detail::InterlockedExchangePointer
-# else
-#  define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER(dest,exchange,compare) \
-    ((void*)BOOST_INTERLOCKED_COMPARE_EXCHANGE((long volatile*)(dest),(long)(exchange),(long)(compare)))
-#  define BOOST_INTERLOCKED_EXCHANGE_POINTER(dest,exchange) \
-    ((void*)BOOST_INTERLOCKED_EXCHANGE((long volatile*)(dest),(long)(exchange)))
-# endif
-
-#else
-
-# error "Interlocked intrinsics not available"
-
-#endif
-
-#endif // #ifndef BOOST_DETAIL_INTERLOCKED_HPP_INCLUDED
diff --git a/boost/detail/is_function_ref_tester.hpp b/boost/detail/is_function_ref_tester.hpp
deleted file mode 100644
index 8e7d1d7..0000000
--- a/boost/detail/is_function_ref_tester.hpp
+++ /dev/null
@@ -1,136 +0,0 @@
-
-// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, 
-// Aleksey Gurtovoy, Howard Hinnant & John Maddock 2000.  
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#if !defined(BOOST_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef BOOST_DETAIL_IS_FUNCTION_REF_TESTER_HPP_INCLUDED
-#define BOOST_DETAIL_IS_FUNCTION_REF_TESTER_HPP_INCLUDED
-
-#include "boost/type_traits/detail/yes_no_type.hpp"
-#include "boost/type_traits/config.hpp"
-
-#if defined(BOOST_TT_PREPROCESSING_MODE)
-#   include "boost/preprocessor/iterate.hpp"
-#   include "boost/preprocessor/enum_params.hpp"
-#   include "boost/preprocessor/comma_if.hpp"
-#endif
-
-namespace boost {
-namespace detail {
-namespace is_function_ref_tester_ {
-
-template <class T>
-boost::type_traits::no_type BOOST_TT_DECL is_function_ref_tester(T& ...);
-
-#if !defined(BOOST_TT_PREPROCESSING_MODE)
-// preprocessor-generated part, don't edit by hand!
-
-template <class R>
-boost::type_traits::yes_type is_function_ref_tester(R (&)(), int);
-
-template <class R,class T0 >
-boost::type_traits::yes_type is_function_ref_tester(R (&)(T0), int);
-
-template <class R,class T0,class T1 >
-boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1), int);
-
-template <class R,class T0,class T1,class T2 >
-boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2), int);
-
-template <class R,class T0,class T1,class T2,class T3 >
-boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3), int);
-
-template <class R,class T0,class T1,class T2,class T3,class T4 >
-boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4), int);
-
-template <class R,class T0,class T1,class T2,class T3,class T4,class T5 >
-boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5), int);
-
-template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6 >
-boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6), int);
-
-template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7 >
-boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7), int);
-
-template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8 >
-boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8), int);
-
-template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9 >
-boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9), int);
-
-template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10 >
-boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10), int);
-
-template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10,class T11 >
-boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11), int);
-
-template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10,class T11,class T12 >
-boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12), int);
-
-template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10,class T11,class T12,class T13 >
-boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13), int);
-
-template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10,class T11,class T12,class T13,class T14 >
-boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14), int);
-
-template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10,class T11,class T12,class T13,class T14,class T15 >
-boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15), int);
-
-template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10,class T11,class T12,class T13,class T14,class T15,class T16 >
-boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16), int);
-
-template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10,class T11,class T12,class T13,class T14,class T15,class T16,class T17 >
-boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17), int);
-
-template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10,class T11,class T12,class T13,class T14,class T15,class T16,class T17,class T18 >
-boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18), int);
-
-template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10,class T11,class T12,class T13,class T14,class T15,class T16,class T17,class T18,class T19 >
-boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19), int);
-
-template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10,class T11,class T12,class T13,class T14,class T15,class T16,class T17,class T18,class T19,class T20 >
-boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20), int);
-
-template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10,class T11,class T12,class T13,class T14,class T15,class T16,class T17,class T18,class T19,class T20,class T21 >
-boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21), int);
-
-template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10,class T11,class T12,class T13,class T14,class T15,class T16,class T17,class T18,class T19,class T20,class T21,class T22 >
-boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22), int);
-
-template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10,class T11,class T12,class T13,class T14,class T15,class T16,class T17,class T18,class T19,class T20,class T21,class T22,class T23 >
-boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23), int);
-
-template <class R,class T0,class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10,class T11,class T12,class T13,class T14,class T15,class T16,class T17,class T18,class T19,class T20,class T21,class T22,class T23,class T24 >
-boost::type_traits::yes_type is_function_ref_tester(R (&)(T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24), int);
-
-#else
-
-#define BOOST_PP_ITERATION_PARAMS_1 \
-    (3, (0, 25, "boost/detail/is_function_ref_tester.hpp"))
-#include BOOST_PP_ITERATE()
-
-#endif // BOOST_TT_PREPROCESSING_MODE
-
-} // namespace detail
-} // namespace python
-} // namespace boost
-
-#endif // BOOST_DETAIL_IS_FUNCTION_REF_TESTER_HPP_INCLUDED
-
-///// iteration
-
-#else
-#define i BOOST_PP_FRAME_ITERATION(1)
-
-template <class R BOOST_PP_COMMA_IF(i) BOOST_PP_ENUM_PARAMS(i,class T) >
-boost::type_traits::yes_type is_function_ref_tester(R (&)(BOOST_PP_ENUM_PARAMS(i,T)), int);
-
-#undef i
-#endif // BOOST_PP_IS_ITERATING
-
diff --git a/boost/detail/iterator.hpp b/boost/detail/iterator.hpp
deleted file mode 100644
index 5bb9c62..0000000
--- a/boost/detail/iterator.hpp
+++ /dev/null
@@ -1,494 +0,0 @@
-// (C) Copyright David Abrahams 2002.
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-// Boost versions of
-//
-//    std::iterator_traits<>::iterator_category
-//    std::iterator_traits<>::difference_type
-//    std::distance()
-//
-// ...for all compilers and iterators
-//
-// Additionally, if X is a pointer
-//    std::iterator_traits<X>::pointer
-
-// Otherwise, if partial specialization is supported or X is not a pointer
-//    std::iterator_traits<X>::value_type
-//    std::iterator_traits<X>::pointer
-//    std::iterator_traits<X>::reference
-//
-// See http://www.boost.org for most recent version including documentation.
-
-// Revision History
-// 04 Mar 2001 - More attempted fixes for Intel C++ (David Abrahams)
-// 03 Mar 2001 - Put all implementation into namespace
-//               boost::detail::iterator_traits_. Some progress made on fixes
-//               for Intel compiler. (David Abrahams)
-// 02 Mar 2001 - Changed BOOST_MSVC to BOOST_MSVC_STD_ITERATOR in a few
-//               places. (Jeremy Siek)
-// 19 Feb 2001 - Improved workarounds for stock MSVC6; use yes_type and
-//               no_type from type_traits.hpp; stopped trying to remove_cv
-//               before detecting is_pointer, in honor of the new type_traits
-//               semantics. (David Abrahams)
-// 13 Feb 2001 - Make it work with nearly all standard-conforming iterators
-//               under raw VC6. The one category remaining which will fail is
-//               that of iterators derived from std::iterator but not
-//               boost::iterator and which redefine difference_type.
-// 11 Feb 2001 - Clean away code which can never be used (David Abrahams)
-// 09 Feb 2001 - Always have a definition for each traits member, even if it
-//               can't be properly deduced. These will be incomplete types in
-//               some cases (undefined<void>), but it helps suppress MSVC errors
-//               elsewhere (David Abrahams)
-// 07 Feb 2001 - Support for more of the traits members where possible, making
-//               this useful as a replacement for std::iterator_traits<T> when
-//               used as a default template parameter.
-// 06 Feb 2001 - Removed useless #includes of standard library headers
-//               (David Abrahams)
-
-#ifndef ITERATOR_DWA122600_HPP_
-# define ITERATOR_DWA122600_HPP_
-
-# include <boost/config.hpp>
-# include <iterator>
-
-// STLPort 4.0 and betas have a bug when debugging is enabled and there is no
-// partial specialization: instead of an iterator_category typedef, the standard
-// container iterators have _Iterator_category.
-//
-// Also, whether debugging is enabled or not, there is a broken specialization
-// of std::iterator<output_iterator_tag,void,void,void,void> which has no
-// typedefs but iterator_category.
-# if defined(__SGI_STL_PORT)
-
-#  if (__SGI_STL_PORT <= 0x410) && !defined(__STL_CLASS_PARTIAL_SPECIALIZATION) && defined(__STL_DEBUG)
-#   define BOOST_BAD_CONTAINER_ITERATOR_CATEGORY_TYPEDEF
-#  endif
-
-#  define BOOST_BAD_OUTPUT_ITERATOR_SPECIALIZATION
-
-# endif // STLPort <= 4.1b4 && no partial specialization
-
-# if !defined(BOOST_NO_STD_ITERATOR_TRAITS)             \
-  && !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
-  && !defined(BOOST_MSVC_STD_ITERATOR)
-    
-namespace boost { namespace detail {
-
-// Define a new template so it can be specialized
-template <class Iterator>
-struct iterator_traits
-    : std::iterator_traits<Iterator>
-{};
-using std::distance;
-
-}} // namespace boost::detail
-
-# else
-
-#  if  !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)  \
-    && !defined(BOOST_MSVC_STD_ITERATOR)
-
-// This is the case where everything conforms except BOOST_NO_STD_ITERATOR_TRAITS
-
-namespace boost { namespace detail {
-
-// Rogue Wave Standard Library fools itself into thinking partial
-// specialization is missing on some platforms (e.g. Sun), so fails to
-// supply iterator_traits!
-template <class Iterator>
-struct iterator_traits
-{
-    typedef typename Iterator::value_type value_type;
-    typedef typename Iterator::reference reference;
-    typedef typename Iterator::pointer pointer;
-    typedef typename Iterator::difference_type difference_type;
-    typedef typename Iterator::iterator_category iterator_category;
-};
-
-template <class T>
-struct iterator_traits<T*>
-{
-    typedef T value_type;
-    typedef T& reference;
-    typedef T* pointer;
-    typedef std::ptrdiff_t difference_type;
-    typedef std::random_access_iterator_tag iterator_category;
-};
-
-template <class T>
-struct iterator_traits<T const*>
-{
-    typedef T value_type;
-    typedef T const& reference;
-    typedef T const* pointer;
-    typedef std::ptrdiff_t difference_type;
-    typedef std::random_access_iterator_tag iterator_category;
-};
-
-}} // namespace boost::detail
-
-#  else
-
-# include <boost/type_traits/remove_const.hpp>
-# include <boost/type_traits/detail/yes_no_type.hpp>
-# include <boost/type_traits/is_pointer.hpp>
-
-# ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#  include <boost/type_traits/is_same.hpp>
-#  include <boost/type_traits/remove_pointer.hpp>
-# endif
-# ifdef BOOST_BAD_OUTPUT_ITERATOR_SPECIALIZATION
-#  include <boost/type_traits/is_base_and_derived.hpp>
-# endif
-
-# include <boost/mpl/if.hpp>
-# include <boost/mpl/has_xxx.hpp>
-# include <cstddef>
-
-// should be the last #include
-# include "boost/type_traits/detail/bool_trait_def.hpp"
-
-namespace boost { namespace detail {
-
-BOOST_MPL_HAS_XXX_TRAIT_DEF(value_type)
-BOOST_MPL_HAS_XXX_TRAIT_DEF(reference)
-BOOST_MPL_HAS_XXX_TRAIT_DEF(pointer)
-BOOST_MPL_HAS_XXX_TRAIT_DEF(difference_type)
-BOOST_MPL_HAS_XXX_TRAIT_DEF(iterator_category)
-
-// is_mutable_iterator --
-//
-//   A metafunction returning true iff T is a mutable iterator type
-//   with a nested value_type. Will only work portably with iterators
-//   whose operator* returns a reference, but that seems to be OK for
-//   the iterators supplied by Dinkumware. Some input iterators may
-//   compile-time if they arrive here, and if the compiler is strict
-//   about not taking the address of an rvalue.
-
-// This one detects ordinary mutable iterators - the result of
-// operator* is convertible to the value_type.
-template <class T>
-type_traits::yes_type is_mutable_iterator_helper(T const*, BOOST_DEDUCED_TYPENAME T::value_type*);
-
-// Since you can't take the address of an rvalue, the guts of
-// is_mutable_iterator_impl will fail if we use &*t directly.  This
-// makes sure we can still work with non-lvalue iterators.
-template <class T> T* mutable_iterator_lvalue_helper(T& x);
-int mutable_iterator_lvalue_helper(...);
-
-
-// This one detects output iterators such as ostream_iterator which
-// return references to themselves.
-template <class T>
-type_traits::yes_type is_mutable_iterator_helper(T const*, T const*);
-
-type_traits::no_type is_mutable_iterator_helper(...);
-
-template <class T>
-struct is_mutable_iterator_impl
-{
-    static T t;
-    
-    BOOST_STATIC_CONSTANT(
-        bool, value = sizeof(
-            detail::is_mutable_iterator_helper(
-                (T*)0
-              , mutable_iterator_lvalue_helper(*t) // like &*t
-            ))
-        == sizeof(type_traits::yes_type)
-    );
-};
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(
-    is_mutable_iterator,T,::boost::detail::is_mutable_iterator_impl<T>::value)
-
-
-// is_full_iterator_traits --
-//
-//   A metafunction returning true iff T has all the requisite nested
-//   types to satisfy the requirements for a fully-conforming
-//   iterator_traits implementation.
-template <class T>
-struct is_full_iterator_traits_impl
-{
-    enum { value = 
-           has_value_type<T>::value 
-           & has_reference<T>::value 
-           & has_pointer<T>::value 
-           & has_difference_type<T>::value
-           & has_iterator_category<T>::value
-    };
-};
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(
-    is_full_iterator_traits,T,::boost::detail::is_full_iterator_traits_impl<T>::value)
-
-
-#   ifdef BOOST_BAD_CONTAINER_ITERATOR_CATEGORY_TYPEDEF
-BOOST_MPL_HAS_XXX_TRAIT_DEF(_Iterator_category)
-    
-// is_stlport_40_debug_iterator --
-//
-//   A metafunction returning true iff T has all the requisite nested
-//   types to satisfy the requirements of an STLPort 4.0 debug iterator
-//   iterator_traits implementation.
-template <class T>
-struct is_stlport_40_debug_iterator_impl
-{
-    enum { value = 
-           has_value_type<T>::value 
-           & has_reference<T>::value 
-           & has_pointer<T>::value 
-           & has_difference_type<T>::value
-           & has__Iterator_category<T>::value
-    };
-};
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(
-    is_stlport_40_debug_iterator,T,::boost::detail::is_stlport_40_debug_iterator_impl<T>::value)
-
-template <class T>
-struct stlport_40_debug_iterator_traits
-{
-    typedef typename T::value_type value_type;
-    typedef typename T::reference reference;
-    typedef typename T::pointer pointer;
-    typedef typename T::difference_type difference_type;
-    typedef typename T::_Iterator_category iterator_category;
-};
-#   endif // BOOST_BAD_CONTAINER_ITERATOR_CATEGORY_TYPEDEF 
-
-template <class T> struct pointer_iterator_traits;
-
-#   ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-template <class T>
-struct pointer_iterator_traits<T*>
-{
-    typedef typename remove_const<T>::type value_type;
-    typedef T* pointer;
-    typedef T& reference;
-    typedef std::random_access_iterator_tag iterator_category;
-    typedef std::ptrdiff_t difference_type;
-};
-#   else
-
-// In case of no template partial specialization, and if T is a
-// pointer, iterator_traits<T>::value_type can still be computed.  For
-// some basic types, remove_pointer is manually defined in
-// type_traits/broken_compiler_spec.hpp. For others, do it yourself.
-
-template<class P> class please_invoke_BOOST_TT_BROKEN_COMPILER_SPEC_on_cv_unqualified_pointee;
-
-template<class P>
-struct pointer_value_type
-  : mpl::if_<
-        is_same<P, typename remove_pointer<P>::type>
-      , please_invoke_BOOST_TT_BROKEN_COMPILER_SPEC_on_cv_unqualified_pointee<P>
-      , typename remove_const<
-            typename remove_pointer<P>::type
-        >::type
-    >
-{
-};
-
-
-template<class P>
-struct pointer_reference
-  : mpl::if_<
-        is_same<P, typename remove_pointer<P>::type>
-      , please_invoke_BOOST_TT_BROKEN_COMPILER_SPEC_on_cv_unqualified_pointee<P>
-      , typename remove_pointer<P>::type&
-    >
-{
-};
-
-template <class T>
-struct pointer_iterator_traits
-{
-    typedef T pointer;
-    typedef std::random_access_iterator_tag iterator_category;
-    typedef std::ptrdiff_t difference_type;
-
-    typedef typename pointer_value_type<T>::type value_type;
-    typedef typename pointer_reference<T>::type reference;
-};
-
-#   endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-// We'll sort iterator types into one of these classifications, from which we
-// can determine the difference_type, pointer, reference, and value_type
-template <class Iterator>
-struct standard_iterator_traits
-{
-    typedef typename Iterator::difference_type difference_type;
-    typedef typename Iterator::value_type value_type;
-    typedef typename Iterator::pointer pointer;
-    typedef typename Iterator::reference reference;
-    typedef typename Iterator::iterator_category iterator_category;
-};
-
-template <class Iterator>
-struct msvc_stdlib_mutable_traits
-    : std::iterator_traits<Iterator>
-{
-    typedef typename std::iterator_traits<Iterator>::distance_type difference_type;
-    typedef typename std::iterator_traits<Iterator>::value_type* pointer;
-    typedef typename std::iterator_traits<Iterator>::value_type& reference;
-};
-
-template <class Iterator>
-struct msvc_stdlib_const_traits
-    : std::iterator_traits<Iterator>
-{
-    typedef typename std::iterator_traits<Iterator>::distance_type difference_type;
-    typedef const typename std::iterator_traits<Iterator>::value_type* pointer;
-    typedef const typename std::iterator_traits<Iterator>::value_type& reference;
-};
-
-#   ifdef BOOST_BAD_OUTPUT_ITERATOR_SPECIALIZATION
-template <class Iterator>
-struct is_bad_output_iterator
-    : is_base_and_derived<
-        std::iterator<std::output_iterator_tag,void,void,void,void>
-        , Iterator>
-{
-};
-
-struct bad_output_iterator_traits
-{
-    typedef void value_type;
-    typedef void difference_type;
-    typedef std::output_iterator_tag iterator_category;
-    typedef void pointer;
-    typedef void reference;
-};
-#   endif
-
-// If we're looking at an MSVC6 (old Dinkumware) ``standard''
-// iterator, this will generate an appropriate traits class. 
-template <class Iterator>
-struct msvc_stdlib_iterator_traits
-    : mpl::if_<
-       is_mutable_iterator<Iterator>
-       , msvc_stdlib_mutable_traits<Iterator>
-       , msvc_stdlib_const_traits<Iterator>
-      >::type
-{};
-
-template <class Iterator>
-struct non_pointer_iterator_traits
-    : mpl::if_<
-        // if the iterator contains all the right nested types...
-        is_full_iterator_traits<Iterator>
-        // Use a standard iterator_traits implementation
-        , standard_iterator_traits<Iterator>
-#   ifdef BOOST_BAD_CONTAINER_ITERATOR_CATEGORY_TYPEDEF
-        // Check for STLPort 4.0 broken _Iterator_category type
-        , mpl::if_<
-             is_stlport_40_debug_iterator<Iterator>
-             , stlport_40_debug_iterator_traits<Iterator>
-#   endif
-        // Otherwise, assume it's a Dinkum iterator
-        , msvc_stdlib_iterator_traits<Iterator>
-#   ifdef BOOST_BAD_CONTAINER_ITERATOR_CATEGORY_TYPEDEF
-        >::type
-#   endif 
-    >::type
-{
-};
-
-template <class Iterator>
-struct iterator_traits_aux
-    : mpl::if_<
-        is_pointer<Iterator>
-        , pointer_iterator_traits<Iterator>
-        , non_pointer_iterator_traits<Iterator>
-    >::type
-{
-};
-
-template <class Iterator>
-struct iterator_traits
-{
-    // Explicit forwarding from base class needed to keep MSVC6 happy
-    // under some circumstances.
- private:
-#   ifdef BOOST_BAD_OUTPUT_ITERATOR_SPECIALIZATION
-    typedef 
-    typename mpl::if_<
-        is_bad_output_iterator<Iterator>
-        , bad_output_iterator_traits
-        , iterator_traits_aux<Iterator>
-    >::type base;
-#   else
-    typedef iterator_traits_aux<Iterator> base;
-#   endif
- public:
-    typedef typename base::value_type value_type;
-    typedef typename base::pointer pointer;
-    typedef typename base::reference reference;
-    typedef typename base::difference_type difference_type;
-    typedef typename base::iterator_category iterator_category;
-};
-
-// This specialization cuts off ETI (Early Template Instantiation) for MSVC.
-template <> struct iterator_traits<int>
-{
-    typedef int value_type;
-    typedef int pointer;
-    typedef int reference;
-    typedef int difference_type;
-    typedef int iterator_category;
-};
-
-}} // namespace boost::detail
-
-#  endif // workarounds
-
-namespace boost { namespace detail {
-
-namespace iterator_traits_
-{
-  template <class Iterator, class Difference>
-  struct distance_select
-  {
-      static Difference execute(Iterator i1, const Iterator i2, ...)
-      {
-          Difference result = 0;
-          while (i1 != i2)
-          {
-              ++i1;
-              ++result;
-          }
-          return result;
-      }
-
-      static Difference execute(Iterator i1, const Iterator i2, std::random_access_iterator_tag*)
-      {
-          return i2 - i1;
-      }
-  };
-} // namespace boost::detail::iterator_traits_
-
-template <class Iterator>
-inline typename iterator_traits<Iterator>::difference_type
-distance(Iterator first, Iterator last)
-{
-    typedef typename iterator_traits<Iterator>::difference_type diff_t;
-    typedef typename ::boost::detail::iterator_traits<Iterator>::iterator_category iterator_category;
-    
-    return iterator_traits_::distance_select<Iterator,diff_t>::execute(
-        first, last, (iterator_category*)0);
-}
-
-}}
-
-# endif
-
-
-# undef BOOST_BAD_CONTAINER_ITERATOR_CATEGORY_TYPEDEF
-# undef BOOST_BAD_OUTPUT_ITERATOR_SPECIALIZATION
-
-#endif // ITERATOR_DWA122600_HPP_
diff --git a/boost/detail/lcast_precision.hpp b/boost/detail/lcast_precision.hpp
deleted file mode 100644
index 93abce1..0000000
--- a/boost/detail/lcast_precision.hpp
+++ /dev/null
@@ -1,184 +0,0 @@
-// Copyright Alexander Nasonov & Paul A. Bristow 2006.
-
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt
-// or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_DETAIL_LCAST_PRECISION_HPP_INCLUDED
-#define BOOST_DETAIL_LCAST_PRECISION_HPP_INCLUDED
-
-#include <climits>
-#include <ios>
-#include <limits>
-
-#include <boost/config.hpp>
-#include <boost/integer_traits.hpp>
-
-#ifndef BOOST_NO_IS_ABSTRACT
-// Fix for SF:1358600 - lexical_cast & pure virtual functions & VC 8 STL
-#include <boost/mpl/if.hpp>
-#include <boost/type_traits/is_abstract.hpp>
-#endif
-
-#if defined(BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS) || \
-  (defined(BOOST_MSVC) && (BOOST_MSVC<1310))
-
-#define BOOST_LCAST_NO_COMPILE_TIME_PRECISION
-#endif
-
-#ifdef BOOST_LCAST_NO_COMPILE_TIME_PRECISION
-#include <boost/assert.hpp>
-#else
-#include <boost/static_assert.hpp>
-#endif
-
-namespace boost { namespace detail {
-
-class lcast_abstract_stub {};
-
-#ifndef BOOST_LCAST_NO_COMPILE_TIME_PRECISION
-// Calculate an argument to pass to std::ios_base::precision from
-// lexical_cast. See alternative implementation for broken standard
-// libraries in lcast_get_precision below. Keep them in sync, please.
-template<class T>
-struct lcast_precision
-{
-#ifdef BOOST_NO_IS_ABSTRACT
-    typedef std::numeric_limits<T> limits; // No fix for SF:1358600.
-#else
-    typedef BOOST_DEDUCED_TYPENAME boost::mpl::if_<
-        boost::is_abstract<T>
-      , std::numeric_limits<lcast_abstract_stub>
-      , std::numeric_limits<T>
-      >::type limits;
-#endif
-
-    BOOST_STATIC_CONSTANT(bool, use_default_precision =
-            !limits::is_specialized || limits::is_exact
-        );
-
-    BOOST_STATIC_CONSTANT(bool, is_specialized_bin =
-            !use_default_precision &&
-            limits::radix == 2 && limits::digits > 0
-        );
-
-    BOOST_STATIC_CONSTANT(bool, is_specialized_dec =
-            !use_default_precision &&
-            limits::radix == 10 && limits::digits10 > 0
-        );
-
-    BOOST_STATIC_CONSTANT(std::streamsize, streamsize_max =
-            boost::integer_traits<std::streamsize>::const_max
-        );
-
-    BOOST_STATIC_CONSTANT(unsigned int, precision_dec = limits::digits10 + 1U);
-
-    BOOST_STATIC_ASSERT(!is_specialized_dec ||
-            precision_dec <= streamsize_max + 0UL
-        );
-
-    BOOST_STATIC_CONSTANT(unsigned long, precision_bin =
-            2UL + limits::digits * 30103UL / 100000UL
-        );
-
-    BOOST_STATIC_ASSERT(!is_specialized_bin ||
-            (limits::digits + 0UL < ULONG_MAX / 30103UL &&
-            precision_bin > limits::digits10 + 0UL &&
-            precision_bin <= streamsize_max + 0UL)
-        );
-
-    BOOST_STATIC_CONSTANT(std::streamsize, value =
-            is_specialized_bin ? precision_bin
-                               : is_specialized_dec ? precision_dec : 6
-        );
-};
-#endif
-
-template<class T>
-inline std::streamsize lcast_get_precision(T* = 0)
-{
-#ifndef BOOST_LCAST_NO_COMPILE_TIME_PRECISION
-    return lcast_precision<T>::value;
-#else // Follow lcast_precision algorithm at run-time:
-
-#ifdef BOOST_NO_IS_ABSTRACT
-    typedef std::numeric_limits<T> limits; // No fix for SF:1358600.
-#else
-    typedef BOOST_DEDUCED_TYPENAME boost::mpl::if_<
-        boost::is_abstract<T>
-      , std::numeric_limits<lcast_abstract_stub>
-      , std::numeric_limits<T>
-      >::type limits;
-#endif
-
-    bool const use_default_precision =
-        !limits::is_specialized || limits::is_exact;
-
-    if(!use_default_precision)
-    { // Includes all built-in floating-point types, float, double ...
-      // and UDT types for which digits (significand bits) is defined (not zero)
-
-        bool const is_specialized_bin =
-            limits::radix == 2 && limits::digits > 0;
-        bool const is_specialized_dec =
-            limits::radix == 10 && limits::digits10 > 0;
-        std::streamsize const streamsize_max =
-            (boost::integer_traits<std::streamsize>::max)();
-
-        if(is_specialized_bin)
-        { // Floating-point types with
-          // limits::digits defined by the specialization.
-
-            unsigned long const digits = limits::digits;
-            unsigned long const precision = 2UL + digits * 30103UL / 100000UL;
-            // unsigned long is selected because it is at least 32-bits
-            // and thus ULONG_MAX / 30103UL is big enough for all types.
-            BOOST_ASSERT(
-                    digits < ULONG_MAX / 30103UL &&
-                    precision > limits::digits10 + 0UL &&
-                    precision <= streamsize_max + 0UL
-                );
-            return precision;
-        }
-        else if(is_specialized_dec)
-        {   // Decimal Floating-point type, most likely a User Defined Type
-            // rather than a real floating-point hardware type.
-            unsigned int const precision = limits::digits10 + 1U;
-            BOOST_ASSERT(precision <= streamsize_max + 0UL);
-            return precision;
-        }
-    }
-
-    // Integral type (for which precision has no effect)
-    // or type T for which limits is NOT specialized,
-    // so assume stream precision remains the default 6 decimal digits.
-    // Warning: if your User-defined Floating-point type T is NOT specialized,
-    // then you may lose accuracy by only using 6 decimal digits.
-    // To avoid this, you need to specialize T with either
-    // radix == 2 and digits == the number of significand bits,
-    // OR
-    // radix = 10 and digits10 == the number of decimal digits.
-
-    return 6;
-#endif
-}
-
-template<class T>
-inline void lcast_set_precision(std::ios_base& stream, T*)
-{
-    stream.precision(lcast_get_precision<T>());
-}
-
-template<class Source, class Target>
-inline void lcast_set_precision(std::ios_base& stream, Source*, Target*)
-{
-    std::streamsize const s = lcast_get_precision(static_cast<Source*>(0));
-    std::streamsize const t = lcast_get_precision(static_cast<Target*>(0));
-    stream.precision(s > t ? s : t);
-}
-
-}}
-
-#endif //  BOOST_DETAIL_LCAST_PRECISION_HPP_INCLUDED
-
diff --git a/boost/detail/reference_content.hpp b/boost/detail/reference_content.hpp
deleted file mode 100644
index daf56a8..0000000
--- a/boost/detail/reference_content.hpp
+++ /dev/null
@@ -1,141 +0,0 @@
-//-----------------------------------------------------------------------------
-// boost detail/reference_content.hpp header file
-// See http://www.boost.org for updates, documentation, and revision history.
-//-----------------------------------------------------------------------------
-//
-// Copyright (c) 2003
-// Eric Friedman
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_DETAIL_REFERENCE_CONTENT_HPP
-#define BOOST_DETAIL_REFERENCE_CONTENT_HPP
-
-#include "boost/config.hpp"
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-#   include "boost/mpl/bool.hpp"
-#   include "boost/type_traits/has_nothrow_copy.hpp"
-#else
-#   include "boost/mpl/if.hpp"
-#   include "boost/type_traits/is_reference.hpp"
-#endif
-
-#include "boost/mpl/void.hpp"
-
-namespace boost {
-
-namespace detail {
-
-///////////////////////////////////////////////////////////////////////////////
-// (detail) class template reference_content
-//
-// Non-Assignable wrapper for references.
-//
-template <typename RefT>
-class reference_content
-{
-private: // representation
-
-    RefT content_;
-
-public: // structors
-
-    ~reference_content()
-    {
-    }
-
-    reference_content(RefT r)
-        : content_( r )
-    {
-    }
-
-    reference_content(const reference_content& operand)
-        : content_( operand.content_ )
-    {
-    }
-
-private: // non-Assignable
-
-    reference_content& operator=(const reference_content&);
-
-public: // queries
-
-    RefT get() const
-    {
-        return content_;
-    }
-
-};
-
-///////////////////////////////////////////////////////////////////////////////
-// (detail) metafunction make_reference_content
-//
-// Wraps with reference_content if specified type is reference.
-//
-
-template <typename T = mpl::void_> struct make_reference_content;
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template <typename T>
-struct make_reference_content
-{
-    typedef T type;
-};
-
-template <typename T>
-struct make_reference_content< T& >
-{
-    typedef reference_content<T&> type;
-};
-
-#else // defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template <typename T>
-struct make_reference_content
-    : mpl::if_<
-          is_reference<T>
-        , reference_content<T>
-        , T
-        >
-{
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION workaround
-
-template <>
-struct make_reference_content< mpl::void_ >
-{
-    template <typename T>
-    struct apply
-        : make_reference_content<T>
-    {
-    };
-
-    typedef mpl::void_ type;
-};
-
-} // namespace detail
-
-///////////////////////////////////////////////////////////////////////////////
-// reference_content<T&> type traits specializations
-//
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template <typename T>
-struct has_nothrow_copy<
-      ::boost::detail::reference_content< T& >
-    >
-    : mpl::true_
-{
-};
-
-#endif // !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-} // namespace boost
-
-#endif // BOOST_DETAIL_REFERENCE_CONTENT_HPP
diff --git a/boost/detail/sp_typeinfo.hpp b/boost/detail/sp_typeinfo.hpp
deleted file mode 100644
index 43fae78..0000000
--- a/boost/detail/sp_typeinfo.hpp
+++ /dev/null
@@ -1,135 +0,0 @@
-#ifndef BOOST_DETAIL_SP_TYPEINFO_HPP_INCLUDED
-#define BOOST_DETAIL_SP_TYPEINFO_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//  detail/sp_typeinfo.hpp
-//
-//  Copyright 2007 Peter Dimov
-//
-// Distributed under the Boost Software License, Version 1.0.
-// See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#include <boost/config.hpp>
-
-#if defined( BOOST_NO_TYPEID )
-
-#include <boost/current_function.hpp>
-#include <functional>
-
-namespace boost
-{
-
-namespace detail
-{
-
-class sp_typeinfo
-{
-private:
-
-    sp_typeinfo( sp_typeinfo const& );
-    sp_typeinfo& operator=( sp_typeinfo const& );
-
-    char const * name_;
-
-public:
-
-    explicit sp_typeinfo( char const * name ): name_( name )
-    {
-    }
-
-    bool operator==( sp_typeinfo const& rhs ) const
-    {
-        return this == &rhs;
-    }
-
-    bool operator!=( sp_typeinfo const& rhs ) const
-    {
-        return this != &rhs;
-    }
-
-    bool before( sp_typeinfo const& rhs ) const
-    {
-        return std::less< sp_typeinfo const* >()( this, &rhs );
-    }
-
-    char const* name() const
-    {
-        return name_;
-    }
-};
-
-template<class T> struct sp_typeid_
-{
-    static sp_typeinfo ti_;
-
-    static char const * name()
-    {
-        return BOOST_CURRENT_FUNCTION;
-    }
-};
-
-#if defined(__SUNPRO_CC)
-// see #4199, the Sun Studio compiler gets confused about static initialization 
-// constructor arguments. But an assignment works just fine. 
-template<class T> sp_typeinfo sp_typeid_< T >::ti_ = sp_typeid_< T >::name();
-#else
-template<class T> sp_typeinfo sp_typeid_< T >::ti_(sp_typeid_< T >::name());
-#endif
-
-template<class T> struct sp_typeid_< T & >: sp_typeid_< T >
-{
-};
-
-template<class T> struct sp_typeid_< T const >: sp_typeid_< T >
-{
-};
-
-template<class T> struct sp_typeid_< T volatile >: sp_typeid_< T >
-{
-};
-
-template<class T> struct sp_typeid_< T const volatile >: sp_typeid_< T >
-{
-};
-
-} // namespace detail
-
-} // namespace boost
-
-#define BOOST_SP_TYPEID(T) (boost::detail::sp_typeid_<T>::ti_)
-
-#else
-
-#include <typeinfo>
-
-namespace boost
-{
-
-namespace detail
-{
-
-#if defined( BOOST_NO_STD_TYPEINFO )
-
-typedef ::type_info sp_typeinfo;
-
-#else
-
-typedef std::type_info sp_typeinfo;
-
-#endif
-
-} // namespace detail
-
-} // namespace boost
-
-#define BOOST_SP_TYPEID(T) typeid(T)
-
-#endif
-
-#endif  // #ifndef BOOST_DETAIL_SP_TYPEINFO_HPP_INCLUDED
diff --git a/boost/detail/templated_streams.hpp b/boost/detail/templated_streams.hpp
deleted file mode 100644
index 1fa6ee3..0000000
--- a/boost/detail/templated_streams.hpp
+++ /dev/null
@@ -1,74 +0,0 @@
-//-----------------------------------------------------------------------------
-// boost detail/templated_streams.hpp header file
-// See http://www.boost.org for updates, documentation, and revision history.
-//-----------------------------------------------------------------------------
-//
-// Copyright (c) 2003
-// Eric Friedman
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_DETAIL_TEMPLATED_STREAMS_HPP
-#define BOOST_DETAIL_TEMPLATED_STREAMS_HPP
-
-#include "boost/config.hpp"
-
-///////////////////////////////////////////////////////////////////////////////
-// (detail) BOOST_TEMPLATED_STREAM_* macros
-//
-// Provides workaround platforms without stream class templates.
-//
-
-#if !defined(BOOST_NO_STD_LOCALE)
-
-#define BOOST_TEMPLATED_STREAM_TEMPLATE(E,T) \
-    template < typename E , typename T >
-
-#define BOOST_TEMPLATED_STREAM_TEMPLATE_ALLOC(E,T,A) \
-    template < typename E , typename T , typename A >
-
-#define BOOST_TEMPLATED_STREAM_ARGS(E,T) \
-    typename E , typename T 
-
-#define BOOST_TEMPLATED_STREAM_ARGS_ALLOC(E,T,A) \
-    typename E , typename T , typename A 
-
-#define BOOST_TEMPLATED_STREAM_COMMA        ,
-
-#define BOOST_TEMPLATED_STREAM_ELEM(E)      E
-#define BOOST_TEMPLATED_STREAM_TRAITS(T)    T
-#define BOOST_TEMPLATED_STREAM_ALLOC(A)     A
-
-#define BOOST_TEMPLATED_STREAM(X,E,T) \
-    BOOST_JOIN(std::basic_,X)< E , T >
-
-#define BOOST_TEMPLATED_STREAM_WITH_ALLOC(X,E,T,A) \
-    BOOST_JOIN(std::basic_,X)< E , T , A >
-
-#else // defined(BOOST_NO_STD_LOCALE)
-
-#define BOOST_TEMPLATED_STREAM_TEMPLATE(E,T) /**/
-
-#define BOOST_TEMPLATED_STREAM_TEMPLATE_ALLOC(E,T,A) /**/
-
-#define BOOST_TEMPLATED_STREAM_ARGS(E,T) /**/
-
-#define BOOST_TEMPLATED_STREAM_ARGS_ALLOC(E,T,A) /**/
-
-#define BOOST_TEMPLATED_STREAM_COMMA        /**/
-
-#define BOOST_TEMPLATED_STREAM_ELEM(E)      char
-#define BOOST_TEMPLATED_STREAM_TRAITS(T)    std::char_traits<char>
-#define BOOST_TEMPLATED_STREAM_ALLOC(A)     std::allocator<char>
-
-#define BOOST_TEMPLATED_STREAM(X,E,T) \
-    std::X
-
-#define BOOST_TEMPLATED_STREAM_WITH_ALLOC(X,E,T,A) \
-    std::X
-
-#endif // BOOST_NO_STD_LOCALE
-
-#endif // BOOST_DETAIL_TEMPLATED_STREAMS_HPP
diff --git a/boost/detail/workaround.hpp b/boost/detail/workaround.hpp
deleted file mode 100644
index 40b3423..0000000
--- a/boost/detail/workaround.hpp
+++ /dev/null
@@ -1,267 +0,0 @@
-// Copyright David Abrahams 2002.
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-#ifndef WORKAROUND_DWA2002126_HPP
-# define WORKAROUND_DWA2002126_HPP
-
-// Compiler/library version workaround macro
-//
-// Usage:
-//
-//     #if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-//        // workaround for eVC4 and VC6
-//        ... // workaround code here
-//     #endif
-//
-// When BOOST_STRICT_CONFIG is defined, expands to 0. Otherwise, the
-// first argument must be undefined or expand to a numeric
-// value. The above expands to:
-//
-//     (BOOST_MSVC) != 0 && (BOOST_MSVC) < 1300
-//
-// When used for workarounds that apply to the latest known version 
-// and all earlier versions of a compiler, the following convention 
-// should be observed:
-//
-//     #if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1301))
-//
-// The version number in this case corresponds to the last version in
-// which the workaround was known to have been required. When
-// BOOST_DETECT_OUTDATED_WORKAROUNDS is not the defined, the macro
-// BOOST_TESTED_AT(x) expands to "!= 0", which effectively activates
-// the workaround for any version of the compiler. When
-// BOOST_DETECT_OUTDATED_WORKAROUNDS is defined, a compiler warning or
-// error will be issued if the compiler version exceeds the argument
-// to BOOST_TESTED_AT().  This can be used to locate workarounds which
-// may be obsoleted by newer versions.
-
-# ifndef BOOST_STRICT_CONFIG
-
-#include <boost/config.hpp>
-
-#ifndef __BORLANDC__
-#define __BORLANDC___WORKAROUND_GUARD 1
-#else
-#define __BORLANDC___WORKAROUND_GUARD 0
-#endif
-#ifndef __CODEGEARC__
-#define __CODEGEARC___WORKAROUND_GUARD 1
-#else
-#define __CODEGEARC___WORKAROUND_GUARD 0
-#endif
-#ifndef _MSC_VER
-#define _MSC_VER_WORKAROUND_GUARD 1
-#else
-#define _MSC_VER_WORKAROUND_GUARD 0
-#endif
-#ifndef _MSC_FULL_VER
-#define _MSC_FULL_VER_WORKAROUND_GUARD 1
-#else
-#define _MSC_FULL_VER_WORKAROUND_GUARD 0
-#endif
-#ifndef BOOST_MSVC
-#define BOOST_MSVC_WORKAROUND_GUARD 1
-#else
-#define BOOST_MSVC_WORKAROUND_GUARD 0
-#endif
-#ifndef BOOST_MSVC_FULL_VER
-#define BOOST_MSVC_FULL_VER_WORKAROUND_GUARD 1
-#else
-#define BOOST_MSVC_FULL_VER_WORKAROUND_GUARD 0
-#endif
-#ifndef __GNUC__
-#define __GNUC___WORKAROUND_GUARD 1
-#else
-#define __GNUC___WORKAROUND_GUARD 0
-#endif
-#ifndef __GNUC_MINOR__
-#define __GNUC_MINOR___WORKAROUND_GUARD 1
-#else
-#define __GNUC_MINOR___WORKAROUND_GUARD 0
-#endif
-#ifndef __GNUC_PATCHLEVEL__
-#define __GNUC_PATCHLEVEL___WORKAROUND_GUARD 1
-#else
-#define __GNUC_PATCHLEVEL___WORKAROUND_GUARD 0
-#endif
-#ifndef __IBMCPP__
-#define __IBMCPP___WORKAROUND_GUARD 1
-#else
-#define __IBMCPP___WORKAROUND_GUARD 0
-#endif
-#ifndef __SUNPRO_CC
-#define __SUNPRO_CC_WORKAROUND_GUARD 1
-#else
-#define __SUNPRO_CC_WORKAROUND_GUARD 0
-#endif
-#ifndef __DECCXX_VER
-#define __DECCXX_VER_WORKAROUND_GUARD 1
-#else
-#define __DECCXX_VER_WORKAROUND_GUARD 0
-#endif
-#ifndef __MWERKS__
-#define __MWERKS___WORKAROUND_GUARD 1
-#else
-#define __MWERKS___WORKAROUND_GUARD 0
-#endif
-#ifndef __EDG__
-#define __EDG___WORKAROUND_GUARD 1
-#else
-#define __EDG___WORKAROUND_GUARD 0
-#endif
-#ifndef __EDG_VERSION__
-#define __EDG_VERSION___WORKAROUND_GUARD 1
-#else
-#define __EDG_VERSION___WORKAROUND_GUARD 0
-#endif
-#ifndef __HP_aCC
-#define __HP_aCC_WORKAROUND_GUARD 1
-#else
-#define __HP_aCC_WORKAROUND_GUARD 0
-#endif
-#ifndef __hpxstd98
-#define __hpxstd98_WORKAROUND_GUARD 1
-#else
-#define __hpxstd98_WORKAROUND_GUARD 0
-#endif
-#ifndef _CRAYC
-#define _CRAYC_WORKAROUND_GUARD 1
-#else
-#define _CRAYC_WORKAROUND_GUARD 0
-#endif
-#ifndef __DMC__
-#define __DMC___WORKAROUND_GUARD 1
-#else
-#define __DMC___WORKAROUND_GUARD 0
-#endif
-#ifndef MPW_CPLUS
-#define MPW_CPLUS_WORKAROUND_GUARD 1
-#else
-#define MPW_CPLUS_WORKAROUND_GUARD 0
-#endif
-#ifndef __COMO__
-#define __COMO___WORKAROUND_GUARD 1
-#else
-#define __COMO___WORKAROUND_GUARD 0
-#endif
-#ifndef __COMO_VERSION__
-#define __COMO_VERSION___WORKAROUND_GUARD 1
-#else
-#define __COMO_VERSION___WORKAROUND_GUARD 0
-#endif
-#ifndef __INTEL_COMPILER
-#define __INTEL_COMPILER_WORKAROUND_GUARD 1
-#else
-#define __INTEL_COMPILER_WORKAROUND_GUARD 0
-#endif
-#ifndef __ICL
-#define __ICL_WORKAROUND_GUARD 1
-#else
-#define __ICL_WORKAROUND_GUARD 0
-#endif
-#ifndef _COMPILER_VERSION
-#define _COMPILER_VERSION_WORKAROUND_GUARD 1
-#else
-#define _COMPILER_VERSION_WORKAROUND_GUARD 0
-#endif
-
-#ifndef _RWSTD_VER
-#define _RWSTD_VER_WORKAROUND_GUARD 1
-#else
-#define _RWSTD_VER_WORKAROUND_GUARD 0
-#endif
-#ifndef BOOST_RWSTD_VER
-#define BOOST_RWSTD_VER_WORKAROUND_GUARD 1
-#else
-#define BOOST_RWSTD_VER_WORKAROUND_GUARD 0
-#endif
-#ifndef __GLIBCPP__
-#define __GLIBCPP___WORKAROUND_GUARD 1
-#else
-#define __GLIBCPP___WORKAROUND_GUARD 0
-#endif
-#ifndef _GLIBCXX_USE_C99_FP_MACROS_DYNAMIC
-#define _GLIBCXX_USE_C99_FP_MACROS_DYNAMIC_WORKAROUND_GUARD 1
-#else
-#define _GLIBCXX_USE_C99_FP_MACROS_DYNAMIC_WORKAROUND_GUARD 0
-#endif
-#ifndef __SGI_STL_PORT
-#define __SGI_STL_PORT_WORKAROUND_GUARD 1
-#else
-#define __SGI_STL_PORT_WORKAROUND_GUARD 0
-#endif
-#ifndef _STLPORT_VERSION
-#define _STLPORT_VERSION_WORKAROUND_GUARD 1
-#else
-#define _STLPORT_VERSION_WORKAROUND_GUARD 0
-#endif
-#ifndef __LIBCOMO_VERSION__
-#define __LIBCOMO_VERSION___WORKAROUND_GUARD 1
-#else
-#define __LIBCOMO_VERSION___WORKAROUND_GUARD 0
-#endif
-#ifndef _CPPLIB_VER
-#define _CPPLIB_VER_WORKAROUND_GUARD 1
-#else
-#define _CPPLIB_VER_WORKAROUND_GUARD 0
-#endif
-
-#ifndef BOOST_INTEL_CXX_VERSION
-#define BOOST_INTEL_CXX_VERSION_WORKAROUND_GUARD 1
-#else
-#define BOOST_INTEL_CXX_VERSION_WORKAROUND_GUARD 0
-#endif
-#ifndef BOOST_INTEL_WIN
-#define BOOST_INTEL_WIN_WORKAROUND_GUARD 1
-#else
-#define BOOST_INTEL_WIN_WORKAROUND_GUARD 0
-#endif
-#ifndef BOOST_DINKUMWARE_STDLIB
-#define BOOST_DINKUMWARE_STDLIB_WORKAROUND_GUARD 1
-#else
-#define BOOST_DINKUMWARE_STDLIB_WORKAROUND_GUARD 0
-#endif
-#ifndef BOOST_INTEL
-#define BOOST_INTEL_WORKAROUND_GUARD 1
-#else
-#define BOOST_INTEL_WORKAROUND_GUARD 0
-#endif
-// Always define to zero, if it's used it'll be defined my MPL:
-#define BOOST_MPL_CFG_GCC_WORKAROUND_GUARD 0
-
-#  define BOOST_WORKAROUND(symbol, test)                \
-         ((symbol ## _WORKAROUND_GUARD + 0 == 0) &&     \
-         (symbol != 0) && (1 % (( (symbol test) ) + 1)))
-//                              ^ ^           ^ ^
-// The extra level of parenthesis nesting above, along with the
-// BOOST_OPEN_PAREN indirection below, is required to satisfy the
-// broken preprocessor in MWCW 8.3 and earlier.
-//
-// The basic mechanism works as follows:
-//      (symbol test) + 1        =>   if (symbol test) then 2 else 1
-//      1 % ((symbol test) + 1)  =>   if (symbol test) then 1 else 0
-//
-// The complication with % is for cooperation with BOOST_TESTED_AT().
-// When "test" is BOOST_TESTED_AT(x) and
-// BOOST_DETECT_OUTDATED_WORKAROUNDS is #defined,
-//
-//      symbol test              =>   if (symbol <= x) then 1 else -1
-//      (symbol test) + 1        =>   if (symbol <= x) then 2 else 0
-//      1 % ((symbol test) + 1)  =>   if (symbol <= x) then 1 else divide-by-zero
-//
-
-#  ifdef BOOST_DETECT_OUTDATED_WORKAROUNDS
-#   define BOOST_OPEN_PAREN (
-#   define BOOST_TESTED_AT(value)  > value) ?(-1): BOOST_OPEN_PAREN 1
-#  else
-#   define BOOST_TESTED_AT(value) != ((value)-(value))
-#  endif
-
-# else
-
-#  define BOOST_WORKAROUND(symbol, test) 0
-
-# endif 
-
-#endif // WORKAROUND_DWA2002126_HPP
diff --git a/boost/exception/detail/attribute_noreturn.hpp b/boost/exception/detail/attribute_noreturn.hpp
deleted file mode 100644
index ae9f031..0000000
--- a/boost/exception/detail/attribute_noreturn.hpp
+++ /dev/null
@@ -1,17 +0,0 @@
-//Copyright (c) 2009 Emil Dotchevski and Reverge Studios, Inc.
-
-//Distributed under the Boost Software License, Version 1.0. (See accompanying
-//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef UUID_61531AB0680611DEADD5846855D89593
-#define UUID_61531AB0680611DEADD5846855D89593
-
-#if defined(_MSC_VER)
-#define BOOST_ATTRIBUTE_NORETURN __declspec(noreturn)
-#elif defined(__GNUC__)
-#define BOOST_ATTRIBUTE_NORETURN __attribute__((__noreturn__))
-#else
-#define BOOST_ATTRIBUTE_NORETURN
-#endif
-
-#endif
diff --git a/boost/exception/exception.hpp b/boost/exception/exception.hpp
deleted file mode 100644
index 31d4317..0000000
--- a/boost/exception/exception.hpp
+++ /dev/null
@@ -1,483 +0,0 @@
-//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc.
-
-//Distributed under the Boost Software License, Version 1.0. (See accompanying
-//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef UUID_274DA366004E11DCB1DDFE2E56D89593
-#define UUID_274DA366004E11DCB1DDFE2E56D89593
-#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
-#pragma GCC system_header
-#endif
-#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
-#pragma warning(push,1)
-#endif
-
-namespace
-boost
-    {
-    namespace
-    exception_detail
-        {
-        template <class T>
-        class
-        refcount_ptr
-            {
-            public:
-
-            refcount_ptr():
-                px_(0)
-                {
-                }
-
-            ~refcount_ptr()
-                {
-                release();
-                }
-
-            refcount_ptr( refcount_ptr const & x ):
-                px_(x.px_)
-                {
-                add_ref();
-                }
-
-            refcount_ptr &
-            operator=( refcount_ptr const & x )
-                {
-                adopt(x.px_);
-                return *this;
-                }
-
-            void
-            adopt( T * px )
-                {
-                release();
-                px_=px;
-                add_ref();
-                }
-
-            T *
-            get() const
-                {
-                return px_;
-                }
-
-            private:
-
-            T * px_;
-
-            void
-            add_ref()
-                {
-                if( px_ )
-                    px_->add_ref();
-                }
-
-            void
-            release()
-                {
-                if( px_ && px_->release() )
-                    px_=0;
-                }
-            };
-        }
-
-    ////////////////////////////////////////////////////////////////////////
-
-    template <class Tag,class T>
-    class error_info;
-
-    typedef error_info<struct throw_function_,char const *> throw_function;
-    typedef error_info<struct throw_file_,char const *> throw_file;
-    typedef error_info<struct throw_line_,int> throw_line;
-
-    template <>
-    class
-    error_info<throw_function_,char const *>
-        {
-        public:
-        typedef char const * value_type;
-        value_type v_;
-        explicit
-        error_info( value_type v ):
-            v_(v)
-            {
-            }
-        };
-
-    template <>
-    class
-    error_info<throw_file_,char const *>
-        {
-        public:
-        typedef char const * value_type;
-        value_type v_;
-        explicit
-        error_info( value_type v ):
-            v_(v)
-            {
-            }
-        };
-
-    template <>
-    class
-    error_info<throw_line_,int>
-        {
-        public:
-        typedef int value_type;
-        value_type v_;
-        explicit
-        error_info( value_type v ):
-            v_(v)
-            {
-            }
-        };
-
-#if defined(__GNUC__)
-# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
-#  pragma GCC visibility push (default)
-# endif
-#endif
-    class exception;
-#if defined(__GNUC__)
-# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
-#  pragma GCC visibility pop
-# endif
-#endif
-
-    template <class T>
-    class shared_ptr;
-
-    namespace
-    exception_detail
-        {
-        class error_info_base;
-        struct type_info_;
-
-        struct
-        error_info_container
-            {
-            virtual char const * diagnostic_information( char const * ) const = 0;
-            virtual shared_ptr<error_info_base> get( type_info_ const & ) const = 0;
-            virtual void set( shared_ptr<error_info_base> const &, type_info_ const & ) = 0;
-            virtual void add_ref() const = 0;
-            virtual bool release() const = 0;
-            virtual refcount_ptr<exception_detail::error_info_container> clone() const = 0;
-
-            protected:
-
-            ~error_info_container() throw()
-                {
-                }
-            };
-
-        template <class>
-        struct get_info;
-
-        template <>
-        struct get_info<throw_function>;
-
-        template <>
-        struct get_info<throw_file>;
-
-        template <>
-        struct get_info<throw_line>;
-
-        char const * get_diagnostic_information( exception const &, char const * );
-
-        void copy_boost_exception( exception *, exception const * );
-
-        template <class E,class Tag,class T>
-        E const & set_info( E const &, error_info<Tag,T> const & );
-
-        template <class E>
-        E const & set_info( E const &, throw_function const & );
-
-        template <class E>
-        E const & set_info( E const &, throw_file const & );
-
-        template <class E>
-        E const & set_info( E const &, throw_line const & );
-        }
-
-#if defined(__GNUC__)
-# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
-#  pragma GCC visibility push (default)
-# endif
-#endif
-    class
-    exception
-        {
-        protected:
-
-        exception():
-            throw_function_(0),
-            throw_file_(0),
-            throw_line_(-1)
-            {
-            }
-
-#ifdef __HP_aCC
-        //On HP aCC, this protected copy constructor prevents throwing boost::exception.
-        //On all other platforms, the same effect is achieved by the pure virtual destructor.
-        exception( exception const & x ) throw():
-            data_(x.data_),
-            throw_function_(x.throw_function_),
-            throw_file_(x.throw_file_),
-            throw_line_(x.throw_line_)
-            {
-            }
-#endif
-
-        virtual ~exception() throw()
-#ifndef __HP_aCC
-            = 0 //Workaround for HP aCC, =0 incorrectly leads to link errors.
-#endif
-            ;
-
-#if (defined(__MWERKS__) && __MWERKS__<=0x3207) || (defined(_MSC_VER) && _MSC_VER<=1310)
-        public:
-#else
-        private:
-
-        template <class E>
-        friend E const & exception_detail::set_info( E const &, throw_function const & );
-
-        template <class E>
-        friend E const & exception_detail::set_info( E const &, throw_file const & );
-
-        template <class E>
-        friend E const & exception_detail::set_info( E const &, throw_line const & );
-
-        template <class E,class Tag,class T>
-        friend E const & exception_detail::set_info( E const &, error_info<Tag,T> const & );
-
-        friend char const * exception_detail::get_diagnostic_information( exception const &, char const * );
-
-        template <class>
-        friend struct exception_detail::get_info;
-        friend struct exception_detail::get_info<throw_function>;
-        friend struct exception_detail::get_info<throw_file>;
-        friend struct exception_detail::get_info<throw_line>;
-        friend void exception_detail::copy_boost_exception( exception *, exception const * );
-#endif
-        mutable exception_detail::refcount_ptr<exception_detail::error_info_container> data_;
-        mutable char const * throw_function_;
-        mutable char const * throw_file_;
-        mutable int throw_line_;
-        };
-#if defined(__GNUC__)
-# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
-#  pragma GCC visibility pop
-# endif
-#endif
-
-    inline
-    exception::
-    ~exception() throw()
-        {
-        }
-
-    namespace
-    exception_detail
-        {
-        template <class E>
-        E const &
-        set_info( E const & x, throw_function const & y )
-            {
-            x.throw_function_=y.v_;
-            return x;
-            }
-
-        template <class E>
-        E const &
-        set_info( E const & x, throw_file const & y )
-            {
-            x.throw_file_=y.v_;
-            return x;
-            }
-
-        template <class E>
-        E const &
-        set_info( E const & x, throw_line const & y )
-            {
-            x.throw_line_=y.v_;
-            return x;
-            }
-        }
-
-    ////////////////////////////////////////////////////////////////////////
-
-    namespace
-    exception_detail
-        {
-#if defined(__GNUC__)
-# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
-#  pragma GCC visibility push (default)
-# endif
-#endif
-        template <class T>
-        struct
-        error_info_injector:
-            public T,
-            public exception
-            {
-            explicit
-            error_info_injector( T const & x ):
-                T(x)
-                {
-                }
-
-            ~error_info_injector() throw()
-                {
-                }
-            };
-#if defined(__GNUC__)
-# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
-#  pragma GCC visibility pop
-# endif
-#endif
-
-        struct large_size { char c[256]; };
-        large_size dispatch_boost_exception( exception const * );
-
-        struct small_size { };
-        small_size dispatch_boost_exception( void const * );
-
-        template <class,int>
-        struct enable_error_info_helper;
-
-        template <class T>
-        struct
-        enable_error_info_helper<T,sizeof(large_size)>
-            {
-            typedef T type;
-            };
-
-        template <class T>
-        struct
-        enable_error_info_helper<T,sizeof(small_size)>
-            {
-            typedef error_info_injector<T> type;
-            };
-
-        template <class T>
-        struct
-        enable_error_info_return_type
-            {
-            typedef typename enable_error_info_helper<T,sizeof(exception_detail::dispatch_boost_exception(static_cast<T *>(0)))>::type type;
-            };
-        }
-
-    template <class T>
-    inline
-    typename
-    exception_detail::enable_error_info_return_type<T>::type
-    enable_error_info( T const & x )
-        {
-        typedef typename exception_detail::enable_error_info_return_type<T>::type rt;
-        return rt(x);
-        }
-
-    ////////////////////////////////////////////////////////////////////////
-
-    namespace
-    exception_detail
-        {
-#if defined(__GNUC__)
-# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
-#  pragma GCC visibility push (default)
-# endif
-#endif
-        class
-        clone_base
-            {
-            public:
-
-            virtual clone_base const * clone() const = 0;
-            virtual void rethrow() const = 0;
-
-            virtual
-            ~clone_base() throw()
-                {
-                }
-            };
-#if defined(__GNUC__)
-# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
-#  pragma GCC visibility pop
-# endif
-#endif
-
-        inline
-        void
-        copy_boost_exception( exception * a, exception const * b )
-            {
-            refcount_ptr<error_info_container> data;
-            if( error_info_container * d=b->data_.get() )
-                data = d->clone();
-            a->throw_file_ = b->throw_file_;
-            a->throw_line_ = b->throw_line_;
-            a->throw_function_ = b->throw_function_;
-            a->data_ = data;
-            }
-
-        inline
-        void
-        copy_boost_exception( void *, void const * )
-            {
-            }
-
-        template <class T>
-        class
-        clone_impl:
-            public T,
-            public virtual clone_base
-            {
-            struct clone_tag { };
-            clone_impl( clone_impl const & x, clone_tag ):
-                T(x)
-                {
-                copy_boost_exception(this,&x);
-                }
-
-            public:
-
-            explicit
-            clone_impl( T const & x ):
-                T(x)
-                {
-                copy_boost_exception(this,&x);
-                }
-
-            ~clone_impl() throw()
-                {
-                }
-
-            private:
-
-            clone_base const *
-            clone() const
-                {
-                return new clone_impl(*this,clone_tag());
-                }
-
-            void
-            rethrow() const
-                {
-                throw*this;
-                }
-            };
-        }
-
-    template <class T>
-    inline
-    exception_detail::clone_impl<T>
-    enable_current_exception( T const & x )
-        {
-        return exception_detail::clone_impl<T>(x);
-        }
-    }
-
-#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
-#pragma warning(pop)
-#endif
-#endif
diff --git a/boost/format.hpp b/boost/format.hpp
deleted file mode 100644
index 73464a8..0000000
--- a/boost/format.hpp
+++ /dev/null
@@ -1,59 +0,0 @@
-// ----------------------------------------------------------------------------
-// format.hpp :  primary header
-// ----------------------------------------------------------------------------
-
-//  Copyright Samuel Krempp 2003. Use, modification, and distribution are
-//  subject to the Boost Software License, Version 1.0. (See accompanying
-//  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org/libs/format for library home page
-
-
-// ----------------------------------------------------------------------------
-
-#ifndef BOOST_FORMAT_HPP
-#define BOOST_FORMAT_HPP
-
-#include <vector>
-#include <string>
-#include <boost/detail/workaround.hpp>
-#include <boost/config.hpp>
-
-#ifndef BOOST_NO_STD_LOCALE
-#include <locale>
-#endif
-
-// ***   Compatibility framework
-#include <boost/format/detail/compat_workarounds.hpp>
-
-#ifdef BOOST_NO_LOCALE_ISIDIGIT
-#include <cctype>  // we'll use the non-locale  <cctype>'s std::isdigit(int)
-#endif
-
-// ****  Forward declarations ----------------------------------
-#include <boost/format/format_fwd.hpp>     // basic_format<Ch,Tr>, and other frontends
-#include <boost/format/internals_fwd.hpp>  // misc forward declarations for internal use
-
-// ****  Auxiliary structs (stream_format_state<Ch,Tr> , and format_item<Ch,Tr> )
-#include <boost/format/internals.hpp>    
-
-// ****  Format  class  interface --------------------------------
-#include <boost/format/format_class.hpp>
-
-// **** Exceptions -----------------------------------------------
-#include <boost/format/exceptions.hpp>
-
-// **** Implementation -------------------------------------------
-#include <boost/format/format_implementation.hpp>   // member functions
-#include <boost/format/group.hpp>                   // class for grouping arguments
-#include <boost/format/feed_args.hpp>               // argument-feeding functions
-#include <boost/format/parsing.hpp>                 // format-string parsing (member-)functions
-
-// **** Implementation of the free functions ----------------------
-#include <boost/format/free_funcs.hpp>
-
-
-// *** Undefine 'local' macros :
-#include <boost/format/detail/unset_macros.hpp>
-
-#endif // BOOST_FORMAT_HPP
diff --git a/boost/format/alt_sstream.hpp b/boost/format/alt_sstream.hpp
deleted file mode 100644
index e236be3..0000000
--- a/boost/format/alt_sstream.hpp
+++ /dev/null
@@ -1,176 +0,0 @@
-// ----------------------------------------------------------------------------
-//  alt_sstream.hpp : alternative stringstream 
-// ----------------------------------------------------------------------------
-
-//  Copyright Samuel Krempp 2003. Use, modification, and distribution are
-//  subject to the Boost Software License, Version 1.0. (See accompanying
-//  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org/libs/format for library home page
-
-// ----------------------------------------------------------------------------
-
-
-
-#ifndef BOOST_SK_ALT_SSTREAM_HPP
-#define BOOST_SK_ALT_SSTREAM_HPP
-
-#include <string>
-#include <boost/format/detail/compat_workarounds.hpp>
-#include <boost/utility/base_from_member.hpp>
-#include <boost/shared_ptr.hpp>
-#include <boost/assert.hpp>
-
-namespace boost {
-    namespace io {
-
-        template<class Ch, class Tr=::std::char_traits<Ch>, 
-                 class Alloc=::std::allocator<Ch> >
-        class basic_altstringbuf;
-
-        template<class Ch, class Tr =::std::char_traits<Ch>, 
-                 class Alloc=::std::allocator<Ch> >
-        class basic_oaltstringstream;
-
-
-        template<class Ch, class Tr, class Alloc>
-        class basic_altstringbuf 
-            : public ::std::basic_streambuf<Ch, Tr>
-        {
-            typedef ::std::basic_streambuf<Ch, Tr>  streambuf_t;
-            typedef typename CompatAlloc<Alloc>::compatible_type compat_allocator_type;
-            typedef typename CompatTraits<Tr>::compatible_type   compat_traits_type;
-        public:
-            typedef Ch     char_type;
-            typedef Tr     traits_type;
-            typedef typename compat_traits_type::int_type     int_type;
-            typedef typename compat_traits_type::pos_type     pos_type;
-            typedef typename compat_traits_type::off_type     off_type;
-            typedef Alloc                     allocator_type;
-            typedef ::std::basic_string<Ch, Tr, Alloc> string_type;
-            typedef typename string_type::size_type    size_type;
-
-            typedef ::std::streamsize streamsize;
-
-
-            explicit basic_altstringbuf(std::ios_base::openmode mode
-                                        = std::ios_base::in | std::ios_base::out)
-                : putend_(NULL), is_allocated_(false), mode_(mode) 
-                {}
-            explicit basic_altstringbuf(const string_type& s,
-                                        ::std::ios_base::openmode mode
-                                        = ::std::ios_base::in | ::std::ios_base::out)
-                : putend_(NULL), is_allocated_(false), mode_(mode) 
-                { dealloc(); str(s); }
-            virtual ~basic_altstringbuf() 
-                { dealloc(); }
-            using streambuf_t::pbase;
-            using streambuf_t::pptr;
-            using streambuf_t::epptr;
-            using streambuf_t::eback;
-            using streambuf_t::gptr;
-            using streambuf_t::egptr;
-    
-            void clear_buffer();
-            void str(const string_type& s);
-
-            // 0-copy access :
-            Ch * begin() const; 
-            size_type size() const;
-            size_type cur_size() const; // stop at current pointer
-            Ch * pend() const // the highest position reached by pptr() since creation
-                { return ((putend_ < pptr()) ? pptr() : putend_); }
-            size_type pcount() const 
-                { return static_cast<size_type>( pptr() - pbase()) ;}
-
-            // copy buffer to string :
-            string_type str() const 
-                { return string_type(begin(), size()); }
-            string_type cur_str() const 
-                { return string_type(begin(), cur_size()); }
-        protected:
-            explicit basic_altstringbuf (basic_altstringbuf * s,
-                                         ::std::ios_base::openmode mode 
-                                         = ::std::ios_base::in | ::std::ios_base::out)
-                : putend_(NULL), is_allocated_(false), mode_(mode) 
-                { dealloc(); str(s); }
-
-            virtual pos_type seekoff(off_type off, ::std::ios_base::seekdir way, 
-                                     ::std::ios_base::openmode which 
-                                     = ::std::ios_base::in | ::std::ios_base::out);
-            virtual pos_type seekpos (pos_type pos, 
-                                      ::std::ios_base::openmode which 
-                                      = ::std::ios_base::in | ::std::ios_base::out);
-            virtual int_type underflow();
-            virtual int_type pbackfail(int_type meta = compat_traits_type::eof());
-            virtual int_type overflow(int_type meta = compat_traits_type::eof());
-            void dealloc();
-        private:
-            enum { alloc_min = 256}; // minimum size of allocations
-
-            Ch *putend_;  // remembers (over seeks) the highest value of pptr()
-            bool is_allocated_;
-            ::std::ios_base::openmode mode_;
-            compat_allocator_type alloc_;  // the allocator object
-        };
-
-
-// ---   class basic_oaltstringstream ----------------------------------------
-        template <class Ch, class Tr, class Alloc>
-        class basic_oaltstringstream 
-            : private base_from_member< shared_ptr< basic_altstringbuf< Ch, Tr, Alloc> > >,
-              public ::std::basic_ostream<Ch, Tr>
-        {
-            class No_Op { 
-                // used as no-op deleter for (not-owner) shared_pointers
-            public: 
-                template<class T>
-                const T & operator()(const T & arg) { return arg; }
-            };
-            typedef ::std::basic_ostream<Ch, Tr> stream_t;
-            typedef boost::base_from_member<boost::shared_ptr<
-                basic_altstringbuf<Ch,Tr, Alloc> > > 
-                pbase_type;
-            typedef ::std::basic_string<Ch, Tr, Alloc>  string_type;
-            typedef typename string_type::size_type     size_type;
-            typedef basic_altstringbuf<Ch, Tr, Alloc>   stringbuf_t;
-        public:
-            typedef Alloc  allocator_type;
-            basic_oaltstringstream() 
-                : pbase_type(new stringbuf_t), stream_t(rdbuf()) 
-                { }
-            basic_oaltstringstream(::boost::shared_ptr<stringbuf_t> buf) 
-                : pbase_type(buf), stream_t(rdbuf()) 
-                { }
-            basic_oaltstringstream(stringbuf_t * buf) 
-                : pbase_type(buf, No_Op() ), stream_t(rdbuf()) 
-                { }
-            stringbuf_t * rdbuf() const 
-                { return pbase_type::member.get(); }
-            void clear_buffer() 
-                { rdbuf()->clear_buffer(); }
-
-            // 0-copy access :
-            Ch * begin() const 
-                { return rdbuf()->begin(); }
-            size_type size() const 
-                { return rdbuf()->size(); }
-            size_type cur_size() const // stops at current position
-                { return rdbuf()->cur_size(); }
-
-            // copy buffer to string :
-            string_type str()     const   // [pbase, epptr[
-                { return rdbuf()->str(); } 
-            string_type cur_str() const   // [pbase, pptr[
-                { return rdbuf()->cur_str(); }
-            void str(const string_type& s) 
-                { rdbuf()->str(s); }
-        };
-
-    } // N.S. io
-} // N.S. boost
-
-#include <boost/format/alt_sstream_impl.hpp>
-
-#endif // include guard
-
diff --git a/boost/format/alt_sstream_impl.hpp b/boost/format/alt_sstream_impl.hpp
deleted file mode 100644
index 9975e4f..0000000
--- a/boost/format/alt_sstream_impl.hpp
+++ /dev/null
@@ -1,313 +0,0 @@
-// ----------------------------------------------------------------------------
-//  alt_sstream_impl.hpp : alternative stringstream, templates implementation 
-// ----------------------------------------------------------------------------
-
-//  Copyright Samuel Krempp 2003. Use, modification, and distribution are
-//  subject to the Boost Software License, Version 1.0. (See accompanying
-//  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org/libs/format for library home page
-
-// ----------------------------------------------------------------------------
-
-#ifndef BOOST_SK_ALT_SSTREAM_IMPL_HPP
-#define BOOST_SK_ALT_SSTREAM_IMPL_HPP
-
-namespace boost {
-    namespace io {
-// --- Implementation  ------------------------------------------------------//
-
-        template<class Ch, class Tr, class Alloc>
-        void basic_altstringbuf<Ch, Tr, Alloc>:: 
-        clear_buffer () {
-            const Ch * p = pptr();
-            const Ch * b = pbase();
-            if(p != NULL && p != b) {
-                seekpos(0, ::std::ios_base::out); 
-            }
-            p = gptr();
-            b = eback();
-            if(p != NULL && p != b) {
-                seekpos(0, ::std::ios_base::in); 
-            }
-        }
-
-        template<class Ch, class Tr, class Alloc>
-        void basic_altstringbuf<Ch, Tr, Alloc>:: 
-        str (const string_type& s) {
-            size_type sz=s.size();
-            if(sz != 0 && mode_ & (::std::ios_base::in | ::std::ios_base::out) ) {
-#ifdef _RWSTD_NO_CLASS_PARTIAL_SPEC
-                void *vd_ptr = alloc_.allocate(sz, is_allocated_? eback() : 0);
-                Ch *new_ptr = static_cast<Ch *>(vd_ptr);
-#else
-                Ch *new_ptr = alloc_.allocate(sz, is_allocated_? eback() : 0);
-#endif
-                // if this didnt throw, we're safe, update the buffer
-                dealloc();
-                sz = s.copy(new_ptr, sz);
-                putend_ = new_ptr + sz;
-                if(mode_ & ::std::ios_base::in)
-                    streambuf_t::setg(new_ptr, new_ptr, new_ptr + sz);
-                if(mode_ & ::std::ios_base::out) {
-                    streambuf_t::setp(new_ptr, new_ptr + sz);
-                    if(mode_ & (::std::ios_base::app | ::std::ios_base::ate))
-                        streambuf_t::pbump(static_cast<int>(sz));
-                    if(gptr() == NULL)
-                        streambuf_t::setg(new_ptr, NULL, new_ptr);
-                }
-                is_allocated_ = true;
-            }
-            else 
-                dealloc();
-        }
-        template<class Ch, class Tr, class Alloc>
-        Ch*   basic_altstringbuf<Ch, Tr, Alloc>:: 
-        begin () const {
-            if(mode_ & ::std::ios_base::out && pptr() != NULL)
-                return pbase();
-            else if(mode_ & ::std::ios_base::in && gptr() != NULL)
-                return eback();
-            return NULL;
-        }
-
-        template<class Ch, class Tr, class Alloc>
-        typename std::basic_string<Ch,Tr,Alloc>::size_type
-        basic_altstringbuf<Ch, Tr, Alloc>:: 
-        size () const { 
-            if(mode_ & ::std::ios_base::out && pptr())
-                return static_cast<size_type>(pend() - pbase());
-            else if(mode_ & ::std::ios_base::in && gptr())
-                return static_cast<size_type>(egptr() - eback());
-            else 
-                return 0;
-        }
-
-        template<class Ch, class Tr, class Alloc>
-        typename std::basic_string<Ch,Tr,Alloc>::size_type
-        basic_altstringbuf<Ch, Tr, Alloc>:: 
-        cur_size () const { 
-            if(mode_ & ::std::ios_base::out && pptr())
-                return static_cast<streamsize>( pptr() - pbase());
-            else if(mode_ & ::std::ios_base::in && gptr())
-                return static_cast<streamsize>( gptr() - eback());
-            else 
-                return 0;
-        }
-
-        template<class Ch, class Tr, class Alloc>
-        typename basic_altstringbuf<Ch, Tr, Alloc>::pos_type  
-        basic_altstringbuf<Ch, Tr, Alloc>:: 
-        seekoff (off_type off, ::std::ios_base::seekdir way, ::std::ios_base::openmode which) {
-            if(pptr() != NULL && putend_ < pptr())
-                putend_ = pptr();
-            if(which & ::std::ios_base::in && gptr() != NULL) {
-                // get area
-                if(way == ::std::ios_base::end)
-                    off += static_cast<off_type>(putend_ - gptr());
-                else if(way == ::std::ios_base::beg)
-                    off += static_cast<off_type>(eback() - gptr());
-                else if(way != ::std::ios_base::cur || (which & ::std::ios_base::out) )
-                    // (altering in&out is only supported if way is beg or end, not cur)
-                    return pos_type(off_type(-1));
-                if(eback() <= off+gptr() && off+gptr() <= putend_ ) {
-                    // set gptr
-                    streambuf_t::gbump(static_cast<int>(off));
-                    if(which & ::std::ios_base::out && pptr() != NULL)
-                        // update pptr to match gptr
-                        streambuf_t::pbump(static_cast<int>(gptr()-pptr()));
-                }
-                else
-                    off = off_type(-1);
-            }
-            else if(which & ::std::ios_base::out && pptr() != NULL) {
-                // put area
-                if(way == ::std::ios_base::end)
-                    off += static_cast<off_type>(putend_ - pptr());
-                else if(way == ::std::ios_base::beg)
-                    off += static_cast<off_type>(pbase() - pptr());
-                else if(way != ::std::ios_base::beg)
-                    return pos_type(off_type(-1));                    
-                if(pbase() <= off+pptr() && off+pptr() <= putend_)
-                    // set pptr
-                    streambuf_t::pbump(static_cast<int>(off)); 
-                else
-                    off = off_type(-1);
-            }
-            else // neither in nor out
-                off = off_type(-1);
-            return (pos_type(off));
-        }
-        //- end seekoff(..)
-
-        
-        template<class Ch, class Tr, class Alloc>
-        typename basic_altstringbuf<Ch, Tr, Alloc>::pos_type 
-        basic_altstringbuf<Ch, Tr, Alloc>:: 
-        seekpos (pos_type pos, ::std::ios_base::openmode which) {
-            off_type off = off_type(pos); // operation guaranteed by 27.4.3.2 table 88
-            if(pptr() != NULL && putend_ < pptr())
-                putend_ = pptr();
-            if(off != off_type(-1)) {
-                if(which & ::std::ios_base::in && gptr() != NULL) {
-                    // get area
-                    if(0 <= off && off <= putend_ - eback()) {
-                        streambuf_t::gbump(static_cast<int>(eback() - gptr() + off));
-                        if(which & ::std::ios_base::out && pptr() != NULL) {
-                            // update pptr to match gptr
-                            streambuf_t::pbump(static_cast<int>(gptr()-pptr()));
-                        }
-                    }
-                    else
-                        off = off_type(-1);
-                }
-                else if(which & ::std::ios_base::out && pptr() != NULL) {
-                    // put area
-                    if(0 <= off && off <= putend_ - eback())
-                        streambuf_t::pbump(static_cast<int>(eback() - pptr() + off));
-                    else
-                        off = off_type(-1);
-                }
-                else // neither in nor out
-                    off = off_type(-1);
-                return (pos_type(off));
-            }
-            else {
-                BOOST_ASSERT(0); // �27.4.3.2 allows undefined-behaviour here
-                return pos_type(off_type(-1));
-            }
-        }
-        // -end seekpos(..)
-
-
-        template<class Ch, class Tr, class Alloc>
-        typename basic_altstringbuf<Ch, Tr, Alloc>::int_type
-        basic_altstringbuf<Ch, Tr, Alloc>:: 
-        underflow () {
-            if(gptr() == NULL) // no get area -> nothing to get.
-                return (compat_traits_type::eof()); 
-            else if(gptr() < egptr())  // ok, in buffer
-                return (compat_traits_type::to_int_type(*gptr())); 
-            else if(mode_ & ::std::ios_base::in && pptr() != NULL
-                    && (gptr() < pptr() || gptr() < putend_) )
-                {  // expand get area 
-                    if(putend_ < pptr()) 
-                        putend_ = pptr(); // remember pptr reached this far
-                    streambuf_t::setg(eback(), gptr(), putend_);
-                    return (compat_traits_type::to_int_type(*gptr()));
-                }
-            else // couldnt get anything. EOF.
-                return (compat_traits_type::eof());
-        }
-        // -end underflow(..)
-
-
-        template<class Ch, class Tr, class Alloc>
-        typename basic_altstringbuf<Ch, Tr, Alloc>::int_type 
-        basic_altstringbuf<Ch, Tr, Alloc>:: 
-        pbackfail (int_type meta) {
-            if(gptr() != NULL  &&  (eback() < gptr()) 
-               && (mode_ & (::std::ios_base::out)
-                   || compat_traits_type::eq_int_type(compat_traits_type::eof(), meta)
-                   || compat_traits_type::eq(compat_traits_type::to_char_type(meta), gptr()[-1]) ) ) { 
-                streambuf_t::gbump(-1); // back one character
-                if(!compat_traits_type::eq_int_type(compat_traits_type::eof(), meta))
-                    //  put-back meta into get area
-                    *gptr() = compat_traits_type::to_char_type(meta);
-                return (compat_traits_type::not_eof(meta));
-            }
-            else
-                return (compat_traits_type::eof());  // failed putback
-        }
-        // -end pbackfail(..)
-
-
-        template<class Ch, class Tr, class Alloc>
-        typename basic_altstringbuf<Ch, Tr, Alloc>::int_type 
-        basic_altstringbuf<Ch, Tr, Alloc>:: 
-        overflow (int_type meta) {
-#ifdef BOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable:4996)
-#endif
-            if(compat_traits_type::eq_int_type(compat_traits_type::eof(), meta))
-                return compat_traits_type::not_eof(meta); // nothing to do
-            else if(pptr() != NULL && pptr() < epptr()) {
-                streambuf_t::sputc(compat_traits_type::to_char_type(meta));
-                return meta;
-            }
-            else if(! (mode_ & ::std::ios_base::out)) 
-                // no write position, and cant make one
-                return compat_traits_type::eof(); 
-            else { // make a write position available
-                std::size_t prev_size = pptr() == NULL ? 0 : epptr() - eback();
-                std::size_t new_size = prev_size;
-                // exponential growth : size *= 1.5
-                std::size_t add_size = new_size / 2;
-                if(add_size < alloc_min)
-                    add_size = alloc_min;
-                Ch * newptr = NULL,  *oldptr = eback();
-
-                // make sure adding add_size wont overflow size_t
-                while (0 < add_size && ((std::numeric_limits<std::size_t>::max)()
-                                        - add_size < new_size) )
-                    add_size /= 2;
-                if(0 < add_size) {
-                    new_size += add_size;
-#ifdef _RWSTD_NO_CLASS_PARTIAL_SPEC
-                    void *vdptr = alloc_.allocate(new_size, is_allocated_? oldptr : 0);
-                    newptr = static_cast<Ch *>(vdptr);
-#else
-                    newptr = alloc_.allocate(new_size, is_allocated_? oldptr : 0);
-#endif
-                }
-
-                if(0 < prev_size)
-                    compat_traits_type::copy(newptr, oldptr, prev_size);
-                if(is_allocated_)
-                    alloc_.deallocate(oldptr, prev_size);
-                is_allocated_=true;
-
-                if(prev_size == 0) { // first allocation
-                    putend_ = newptr;
-                    streambuf_t::setp(newptr, newptr + new_size);
-                    if(mode_ & ::std::ios_base::in)
-                        streambuf_t::setg(newptr, newptr, newptr + 1);
-                    else
-                        streambuf_t::setg(newptr, 0, newptr);
-                }
-                else { // update pointers
-                    putend_ = putend_ - oldptr + newptr;
-                    int pptr_count = static_cast<int>(pptr()-pbase());
-                    int gptr_count = static_cast<int>(gptr()-eback());
-                    streambuf_t::setp(pbase() - oldptr + newptr, newptr + new_size);
-                    streambuf_t::pbump(pptr_count);
-                    if(mode_ & ::std::ios_base::in)
-                        streambuf_t::setg(newptr, newptr + gptr_count, pptr() + 1);
-                    else
-                        streambuf_t::setg(newptr, 0, newptr);
-                }
-                streambuf_t::sputc(compat_traits_type::to_char_type(meta));
-                return meta;
-            }
-#ifdef BOOST_MSVC
-#pragma warning(pop)
-#endif
-        }
-        // -end overflow(..)
-
-        template<class Ch, class Tr, class Alloc>
-        void basic_altstringbuf<Ch, Tr, Alloc>:: dealloc() {
-            if(is_allocated_)
-                alloc_.deallocate(eback(), (pptr() != NULL ? epptr() : egptr()) - eback());
-            is_allocated_ = false;
-            streambuf_t::setg(0, 0, 0);
-            streambuf_t::setp(0, 0);
-            putend_ = NULL;
-        }
-
-    }// N.S. io
-} // N.S. boost
-
-#endif // include guard
-
diff --git a/boost/format/detail/compat_workarounds.hpp b/boost/format/detail/compat_workarounds.hpp
deleted file mode 100644
index 8e51514..0000000
--- a/boost/format/detail/compat_workarounds.hpp
+++ /dev/null
@@ -1,86 +0,0 @@
-// ----------------------------------------------------------------------------
-//  compat_workarounds : general framework for non-conformance workarounds
-// ----------------------------------------------------------------------------
-
-//  Copyright Samuel Krempp 2003. Use, modification, and distribution are
-//  subject to the Boost Software License, Version 1.0. (See accompanying
-//  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// see http://www.boost.org/libs/format for library home page
-
-// ----------------------------------------------------------------------------
-
-
-//  this file defines  wrapper classes to hide non-conforming 
-// std::char_traits<>  and std::allocator<> traits
-//  and Includes : config_macros.hpp (defines config macros
-//  and compiler-specific switches)
-
-// Non-conformant Std-libs fail to supply conformant traits (std::char_traits,
-//  std::allocator) and/or  the std::string doesnt support them.
-// We don't want to have hundreds of #ifdef workarounds, so we define 
-// replacement traits.
-// But both char_traits and allocator traits are visible in the interface, 
-// (inside the final string type),  thus we need to keep both 
-// the replacement type (typedefed to 'compatible_type') for real use,
-// and the original stdlib type (typedef to 'type_for_string') for interface
-//  visibility. This is what Compat* classes do (as well as be transparent 
-// when good allocator and char traits are present)
-
-#ifndef BOOST_FORMAT_COMPAT_WORKAROUNDS_HPP
-#define BOOST_FORMAT_COMPAT_WORKAROUNDS_HPP
-
-namespace boost {
-    namespace io {
-
-        // gcc-2.95 char traits (non-conformantly named string_char_traits) 
-        // lack several functions so we extend them in a replacement class.
-        template<class Tr>
-        class CompatTraits; 
-
-        // std::allocator<Ch> in gcc-2.95 is ok, but basic_string only works 
-        // with plain 'std::alloc' still, alt_stringbuf requires a functionnal
-        // alloc template argument, so we need a replacement allocator
-        template<class Alloc>
-        class CompatAlloc; 
-    } // N.S. io
-}// N.S. boost
-
-
-#include <boost/format/detail/config_macros.hpp>
-   // sets-up macros and load compiler-specific workarounds headers.
-
-#if !defined(BOOST_FORMAT_STREAMBUF_DEFINED)
-// workarounds-gcc-2.95 might have defined own streambuf
-#include <streambuf>
-#endif
-
-#if !defined(BOOST_FORMAT_OSTREAM_DEFINED)
-// workarounds-gcc-2.95 might already have included <iostream>
-#include <ostream>
-#endif
-
-
-
-namespace boost {
-    namespace io {
-
-        // **** CompatTraits general definitions : ----------------------------
-        template<class Tr>
-        class CompatTraits
-        {        // general case : be transparent
-        public:
-            typedef Tr  compatible_type;
-        };
-
-        // **** CompatAlloc general definitions : -----------------------------
-        template<class Alloc>
-        class CompatAlloc
-        {        // general case : be transparent
-        public:
-            typedef Alloc  compatible_type;
-        };
-
-    } //N.S. io
-} // N.S. boost
-#endif // include guard
diff --git a/boost/format/detail/config_macros.hpp b/boost/format/detail/config_macros.hpp
deleted file mode 100644
index 1f01b17..0000000
--- a/boost/format/detail/config_macros.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-// -*- C++ -*-
-// ----------------------------------------------------------------------------
-// config_macros.hpp : configuration macros for the format library
-// only BOOST_IO_STD is absolutely needed (it should be 'std::' in general)
-// others are compiler-specific workaround macros used in #ifdef switches
-// ----------------------------------------------------------------------------
-
-//  Copyright Samuel Krempp 2003. Use, modification, and distribution are
-//  subject to the Boost Software License, Version 1.0. (See accompanying
-//  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// see http://www.boost.org/libs/format for library home page
-
-
-// ----------------------------------------------------------------------------
-
-#ifndef BOOST_FORMAT_CONFIG_MACROS_HPP
-#define BOOST_FORMAT_CONFIG_MACROS_HPP
-
-#include <boost/config.hpp>
-#include <boost/detail/workaround.hpp>
-
-// make sure our local macros wont override something :
-#if defined(BOOST_NO_LOCALE_ISDIGIT) || defined(BOOST_OVERLOAD_FOR_NON_CONST) \
-  || defined(BOOST_IO_STD) || defined( BOOST_IO_NEEDS_USING_DECLARATION ) \
-    || defined(BOOST_NO_TEMPLATE_STD_STREAM) \
-    || defined(BOOST_FORMAT_STREAMBUF_DEFINED) || defined(BOOST_FORMAT_OSTREAM_DEFINED)
-#error "boost::format uses a local macro that is already defined."
-#endif
-
-// specific workarounds. each header can define BOOS_IO_STD if it 
-// needs. (e.g. because of IO_NEEDS_USING_DECLARATION)
-#include <boost/format/detail/workarounds_gcc-2_95.hpp>
-#include <boost/format/detail/workarounds_stlport.hpp>
-
-#ifndef BOOST_IO_STD
-#  define BOOST_IO_STD ::std::
-#endif
-
-#if defined(BOOST_NO_STD_LOCALE) || \
- ( BOOST_WORKAROUND(__BORLANDC__, <= 0x564) \
-   || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT( 0x570 ) )  )
-// some future __BORLANDC__ >0x564  versions might not need this
-// 0x570 is Borland's kylix branch
-#define BOOST_NO_LOCALE_ISDIGIT
-#endif
-
-#if  BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x570) ) || BOOST_WORKAROUND( BOOST_MSVC, BOOST_TESTED_AT(1300))
-#define BOOST_NO_OVERLOAD_FOR_NON_CONST
-#endif
-
-// gcc-2.95's native stringstream is not usable
-#if BOOST_WORKAROUND(__GNUC__, < 3) && !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)
-#define BOOST_FORMAT_IGNORE_STRINGSTREAM  
-#endif
-
-
-// **** Workaround for io streams, stlport and msvc.
-#ifdef BOOST_IO_NEEDS_USING_DECLARATION
-namespace boost {
-  using std::char_traits;
-  using std::basic_ostream;
-  namespace io {
-    using std::basic_ostream;
-    namespace detail {
-      using std::basic_ios;
-      using std::basic_ostream;
-    }
-  }
-#if ! defined(BOOST_NO_STD_LOCALE)
-    using std::locale;
-    namespace io {
-        using std::locale;
-        namespace detail {
-            using std::locale;
-        }
-    }
-#endif // locale
-}
-  // -end N.S. boost
-#endif // needs_using_declaration
-
-
-// ***  hide std::locale if it doesnt exist. 
-// this typedef is either std::locale or int, avoids placing ifdefs everywhere
-namespace boost { namespace io { namespace detail {
-#if ! defined(BOOST_NO_STD_LOCALE)
-    typedef BOOST_IO_STD locale locale_t;
-#else 
-    typedef int          locale_t;
-#endif
-} } }
-
-
-// ----------------------------------------------------------------------------
-
-#endif // BOOST_FORMAT_MACROS_DEFAULT_HPP
diff --git a/boost/format/detail/msvc_disambiguater.hpp b/boost/format/detail/msvc_disambiguater.hpp
deleted file mode 100644
index f12e5e9..0000000
--- a/boost/format/detail/msvc_disambiguater.hpp
+++ /dev/null
@@ -1,56 +0,0 @@
-// ----------------------------------------------------------------------------
-// msvc_disambiguater.hpp : msvc workarounds. (for put_{head|last} overloads)
-//               the trick was described in boost's list  by Aleksey Gurtovoy
-// ----------------------------------------------------------------------------
-
-//  Copyright Samuel Krempp 2003. Use, modification, and distribution are
-//  subject to the Boost Software License, Version 1.0. (See accompanying
-//  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// see http://www.boost.org/libs/format for library home page
-
-// ----------------------------------------------------------------------------
-
-#ifndef BOOST_MSVC_DISAMBIGUATER_HPP
-#define BOOST_MSVC_DISAMBIGUATER_HPP
-
-#if BOOST_WORKAROUND( BOOST_MSVC, <= 1300) || \
-    BOOST_WORKAROUND(__DECCXX_VER, BOOST_TESTED_AT(60590042))
-   // this whole header is specifically for msvc up to 7.0
-
-#include <boost/format/group.hpp>
-#include <ostream>
-
-namespace boost {
-namespace io {
-namespace detail {
-
-template< class Ch, class Tr, class T >
-struct disambiguater
-{
-   template< typename U >
-   static void put_head(BOOST_IO_STD basic_ostream<Ch, Tr>& os, group1<U> const& x, long)
-   {
-       os << group_head(x.a1_); 
-   }
-   static void put_head(BOOST_IO_STD basic_ostream<Ch, Tr>& os, T const& x, int)
-   {
-   }
-   template< typename U >
-   static void put_last(BOOST_IO_STD basic_ostream<Ch, Tr>& os, group1<U> const& x, long)
-   {
-       os << group_last(x.a1_); 
-   }
-   static void put_last(BOOST_IO_STD basic_ostream<Ch, Tr>& os, T const& x, int)
-   {
-     os << x;
-   }
-};
-
-} // namespace detail
-} // namespace io
-} // namespace boost
-
-#endif // -BOOST_MSVC
-
-#endif // -BOOST_MSVC_DISAMBIGUATER_HPP
diff --git a/boost/format/detail/unset_macros.hpp b/boost/format/detail/unset_macros.hpp
deleted file mode 100644
index b3ac47b..0000000
--- a/boost/format/detail/unset_macros.hpp
+++ /dev/null
@@ -1,34 +0,0 @@
-// ----------------------------------------------------------------------------
-// unset_macros.hpp
-// ----------------------------------------------------------------------------
-
-//  Copyright Samuel Krempp 2003. Use, modification, and distribution are
-//  subject to the Boost Software License, Version 1.0. (See accompanying
-//  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org/libs/format for library home page
-
-// ----------------------------------------------------------------------------
-
-// *** Undefine 'local' macros :
-#ifdef BOOST_NO_OVERLOAD_FOR_NON_CONST
-#undef BOOST_NO_OVERLOAD_FOR_NON_CONST
-#endif
-#ifdef BOOST_NO_LOCALE_ISDIGIT
-#undef BOOST_NO_LOCALE_ISDIGIT
-#endif
-#ifdef BOOST_IO_STD
-#undef BOOST_IO_STD
-#endif
-#ifdef BOOST_IO_NEEDS_USING_DECLARATION
-#undef BOOST_IO_NEEDS_USING_DECLARATION
-#endif
-#ifdef BOOST_NO_TEMPLATE_STD_STREAM
-#undef BOOST_NO_TEMPLATE_STD_STREAM
-#endif
-#ifdef BOOST_FORMAT_STREAMBUF_DEFINED
-#undef BOOST_FORMAT_STREAMBUF_DEFINED
-#endif
-#ifdef BOOST_FORMAT_OSTREAM_DEFINED
-#undef BOOST_FORMAT_OSTREAM_DEFINED
-#endif
diff --git a/boost/format/detail/workarounds_gcc-2_95.hpp b/boost/format/detail/workarounds_gcc-2_95.hpp
deleted file mode 100644
index 8c49d42..0000000
--- a/boost/format/detail/workarounds_gcc-2_95.hpp
+++ /dev/null
@@ -1,162 +0,0 @@
-// ----------------------------------------------------------------------------
-//  workarounds for gcc < 3.0. 
-// ----------------------------------------------------------------------------
-
-//  Copyright Samuel Krempp 2003. Use, modification, and distribution are
-//  subject to the Boost Software License, Version 1.0. (See accompanying
-//  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org/libs/format for library home page
-
-
-// ----------------------------------------------------------------------------
-
-// There's a lot to do, the stdlib shipped with gcc prior to 3.x 
-// was terribly non-conforming. 
-// . defines macros switches
-// . supplies template classes basic_foo<char,Tr> where gcc only supplies foo.
-//  i.e :
-//     -  basic_ios<char, Tr>        from ios
-//     -  basic_ostream<char, Tr>    from ostream
-//     -  basic_srteambuf<char, Tr>  from streambuf
-// these can be used transparently. (it obviously does not work for wchar_t)
-// . specialise CompatAlloc and CompatTraits to wrap gcc-2.95's 
-//    string_char_traits and std::alloc 
-
-#if  BOOST_WORKAROUND(__GNUC__, < 3) && !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)
-   // only for gcc-2.95's native stdlib
-
-#ifndef BOOST_FORMAT_WORKAROUNDS_GCC295_H
-#define BOOST_FORMAT_WORKAROUNDS_GCC295_H
-
-// SGI STL doesnt have <ostream> and others, so we need iostream.
-#include <iostream> 
-#define BOOST_FORMAT_OSTREAM_DEFINED
-
-#include <streambuf.h>
-#define BOOST_FORMAT_STREAMBUF_DEFINED
-
-#define BOOST_NO_TEMPLATE_STD_STREAM
-
-#ifndef BOOST_IO_STD
-#  define BOOST_IO_STD std::
-#endif
-
-
-
-// *** 
-// gcc's simple classes turned into standard-like template classes :
-
-namespace std {
-
-
-    // gcc has string_char_traits, it's incomplete.
-    // we declare a std::char_traits, and specialize CompatTraits<..> on it
-    // to do what is required
-    template<class Ch>
-    class char_traits; // no definition here, we will just use it as a tag.
-
-    template <class Ch, class Tr>
-    class basic_streambuf;
-
-    template <class Tr> 
-    class basic_streambuf<char, Tr> : public streambuf {
-    };
-
-    template <class Ch, class Tr=::std::char_traits<Ch> >
-    class basic_ios;
-
-    template <class Tr>
-    class basic_ios<char, Tr> : public ostream {
-    public:
-        basic_ios(streambuf * p) : ostream(p) {};
-         char fill()  const { return ios::fill(); } // gcc returns wchar..
-         char fill(char c)  { return ios::fill(c); } // gcc takes wchar..
-         char widen(char c) { return c; }
-         char narrow(char c, char def) { return c; }
-        basic_ios& copyfmt(const ios& right) {
-            fill(right.fill());
-            flags(right.flags() );
-            exceptions(right.exceptions());
-            width(right.width());
-            precision(right.precision());
-            return *this;
-        }
-     };
-
-
-    typedef ios ios_base;
-
-    template <class Ch, class Tr>
-    class basic_ostream;
-
-     template <class Tr> 
-     class basic_ostream<char, Tr> : public basic_ios<char, Tr>
-     {
-     public:
-         basic_ostream(streambuf * p) : basic_ios<char,Tr> (p) {}
-     };
-
-} // namespace std
-
-
-namespace boost {
-    namespace io {
-
-
-        // ** CompatTraits gcc2.95 specialisations ----------------------------
-        template<class Ch>
-        class CompatTraits< ::std::string_char_traits<Ch> >
-            : public ::std::string_char_traits<Ch> 
-        {
-        public:
-            typedef CompatTraits                compatible_type;
-
-            typedef Ch char_type;
-            typedef int int_type;
-            typedef ::std::streampos pos_type;
-            typedef ::std::streamoff off_type;
-        
-            static char_type 
-            to_char_type(const int_type& meta) {
-                return static_cast<char_type>(meta); }
-            static int_type 
-            to_int_type(const char_type& ch) {
-                return static_cast<int_type>(static_cast<unsigned char>(ch) );}
-            static bool 
-            eq_int_type(const int_type& left, const int_type& right) {
-                return left == right; }
-            static int_type 
-            eof() {
-                return static_cast<int_type>(EOF);
-            }
-            static int_type 
-            not_eof(const int_type& meta) {
-                return (meta == eof()) ? 0 : meta;
-            }
-        };
-
-        template<class Ch>
-        class CompatTraits< ::std::char_traits<Ch> > {
-        public:
-            typedef CompatTraits< ::std::string_char_traits<Ch> >  compatible_type;
-        };
-
-        // ** CompatAlloc gcc-2.95  specialisations ---------------------------
-        template<>
-        class CompatAlloc< ::std::alloc>
-        {
-        public:
-            typedef ::std::allocator<char> compatible_type;
-        };
-
-    } // N.S. io
-} // N.S. boost
-
-
-
-
-
-#endif // include guard
-
-#endif // if workaround
diff --git a/boost/format/detail/workarounds_stlport.hpp b/boost/format/detail/workarounds_stlport.hpp
deleted file mode 100644
index eb35dc1..0000000
--- a/boost/format/detail/workarounds_stlport.hpp
+++ /dev/null
@@ -1,42 +0,0 @@
-// ----------------------------------------------------------------------------
-// workarounds_stlport.hpp : workaround STLport issues
-// ----------------------------------------------------------------------------
-
-//  Copyright Samuel Krempp 2003. Use, modification, and distribution are
-//  subject to the Boost Software License, Version 1.0. (See accompanying
-//  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// see http://www.boost.org/libs/format for library home page
-
-// ----------------------------------------------------------------------------
-
-#ifndef BOOST_MACROS_STLPORT_HPP
-#define BOOST_MACROS_STLPORT_HPP
-
-#if defined(_STLPORT_VERSION) && BOOST_WORKAROUND( BOOST_MSVC, <= 1300)
-// msvc-6-stlport fails to find basic_string::append( iterator, iterator) when linking
-// might affect other MSwindows compilers 
-#define BOOST_NO_STRING_APPEND
-#endif
-
-// *** This should go to "boost/config/stdlib/stlport.hpp".
-
-// If the streams are not native and there are problems with using templates
-// accross namespaces, we define some macros to enable a workaround for this.
-
-// STLport 4.5
-#if !defined(_STLP_OWN_IOSTREAMS) && defined(_STLP_USE_NAMESPACES) && defined(BOOST_NO_USING_TEMPLATE)
-#  define BOOST_IO_STD 
-#  define BOOST_IO_NEEDS_USING_DECLARATION
-#endif
-
-// STLport 4.0
-#if !defined(__SGI_STL_OWN_IOSTREAMS) && defined(__STL_USE_OWN_NAMESPACE) && defined(BOOST_NO_USING_TEMPLATE)
-#  define BOOST_IO_STD 
-#  define BOOST_IO_NEEDS_USING_DECLARATION
-#endif
-
-
-// ----------------------------------------------------------------------------
-
-#endif // BOOST_MACROS_STLPORT_HPP
diff --git a/boost/format/exceptions.hpp b/boost/format/exceptions.hpp
deleted file mode 100644
index 9b2de83..0000000
--- a/boost/format/exceptions.hpp
+++ /dev/null
@@ -1,103 +0,0 @@
-// ----------------------------------------------------------------------------
-// boost/format/exceptions.hpp 
-// ----------------------------------------------------------------------------
-
-//  Copyright Samuel Krempp 2003.
-//
-// Distributed under the Boost Software License, Version 1.0.
-//    (See accompanying file LICENSE_1_0.txt or copy at
-//          http://www.boost.org/LICENSE_1_0.txt)
-//
-//
-//  See http://www.boost.org/libs/format/ for library home page
-
-// ----------------------------------------------------------------------------
-
-#ifndef BOOST_FORMAT_EXCEPTIONS_HPP
-#define BOOST_FORMAT_EXCEPTIONS_HPP
-
-
-#include <stdexcept>
-
-
-namespace boost {
-
-    namespace io {
-
-// **** exceptions -----------------------------------------------
-
-        class format_error : public std::exception
-        {
-        public:
-            format_error()  {}
-            virtual const char *what() const throw() {
-                return "boost::format_error: "
-                    "format generic failure";
-            }
-        };
-
-        class bad_format_string : public format_error
-        {
-            std::size_t pos_, next_;
-        public:
-            bad_format_string(std::size_t pos, std::size_t size) 
-                : pos_(pos), next_(size) {}
-            std::size_t get_pos() const { return pos_; }
-            std::size_t get_next() const { return next_; }
-            virtual const char *what() const throw() {
-                return "boost::bad_format_string: format-string is ill-formed";
-            }
-        };
-
-        class too_few_args : public format_error
-        {
-            std::size_t cur_, expected_;
-        public:
-            too_few_args(std::size_t cur, std::size_t expected) 
-                : cur_(cur), expected_(expected) {}
-            std::size_t get_cur() const { return cur_; }
-            std::size_t get_expected() const { return expected_; }
-            virtual const char *what() const throw() {
-                return "boost::too_few_args: "
-                    "format-string referred to more arguments than were passed";
-            }
-        };
-
-        class too_many_args : public format_error
-        {
-            std::size_t cur_, expected_;
-        public:
-            too_many_args(std::size_t cur, std::size_t expected) 
-                : cur_(cur), expected_(expected) {}
-            std::size_t get_cur() const { return cur_; }
-            std::size_t get_expected() const { return expected_; }
-            virtual const char *what() const throw() {
-                return "boost::too_many_args: "
-                    "format-string referred to less arguments than were passed";
-            }
-        };
-
-
-        class  out_of_range : public format_error
-        {
-            int index_, beg_, end_;    // range is [ beg, end [
-        public:
-            out_of_range(int index, int beg, int end) 
-                : index_(index), beg_(beg), end_(end) {}
-            int get_index() const { return index_; }
-            int get_beg() const { return beg_; }
-            int get_end() const { return end_; }
-            virtual const char *what() const throw() {
-                return "boost::out_of_range: "
-                    "tried to refer to an argument (or item) number which"
-                    " is out of range, according to the format string";
-            }
-        };
-
-
-    } // namespace io
-
-} // namespace boost
-
-
-#endif // BOOST_FORMAT_EXCEPTIONS_HPP
diff --git a/boost/format/feed_args.hpp b/boost/format/feed_args.hpp
deleted file mode 100644
index 53243dc..0000000
--- a/boost/format/feed_args.hpp
+++ /dev/null
@@ -1,277 +0,0 @@
-// ----------------------------------------------------------------------------
-//  feed_args.hpp :  functions for processing each argument 
-//                      (feed, feed_manip, and distribute)
-// ----------------------------------------------------------------------------
-
-//  Copyright Samuel Krempp 2003. Use, modification, and distribution are
-//  subject to the Boost Software License, Version 1.0. (See accompanying
-//  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org/libs/format for library home page
-
-// ----------------------------------------------------------------------------
-
-#ifndef BOOST_FORMAT_FEED_ARGS_HPP
-#define BOOST_FORMAT_FEED_ARGS_HPP
-
-#include <boost/config.hpp>
-#include <boost/assert.hpp>
-#include <boost/throw_exception.hpp>
-
-#include <boost/format/format_class.hpp>
-#include <boost/format/group.hpp>
-#include <boost/format/detail/msvc_disambiguater.hpp>
-
-namespace boost {
-namespace io {
-namespace detail {
-
-    template<class Ch, class Tr, class Alloc>
-    void mk_str( std::basic_string<Ch,Tr, Alloc> & res, 
-                 const Ch * beg,
-                 typename std::basic_string<Ch,Tr,Alloc>::size_type size,
-                 std::streamsize w, 
-                 const Ch fill_char,
-                 std::ios_base::fmtflags f, 
-                 const Ch prefix_space, // 0 if no space-padding
-                 bool center) 
-    // applies centered/left/right  padding  to the string  [beg, beg+size[
-    // Effects : the result is placed in res.
-    {
-        typedef typename std::basic_string<Ch,Tr,Alloc>::size_type size_type;
-        res.resize(0);
-        if(w<=0 || static_cast<size_type>(w) <=size) {
-            // no need to pad.
-            res.reserve(size + !!prefix_space);
-            if(prefix_space) 
-              res.append(1, prefix_space);
-            if (size)
-              res.append(beg, size);
-        }
-        else { 
-            std::streamsize n=static_cast<std::streamsize>(w-size-!!prefix_space);
-            std::streamsize n_after = 0, n_before = 0; 
-            res.reserve(static_cast<size_type>(w)); // allocate once for the 2 inserts
-            if(center) 
-                n_after = n/2, n_before = n - n_after; 
-            else 
-                if(f & std::ios_base::left)
-                    n_after = n;
-                else
-                    n_before = n;
-            // now make the res string :
-            if(n_before) res.append(static_cast<size_type>(n_before), fill_char);
-            if(prefix_space) 
-              res.append(1, prefix_space);
-            if (size)  
-              res.append(beg, size);
-            if(n_after) res.append(static_cast<size_type>(n_after), fill_char);
-        }
-    } // -mk_str(..) 
-
-
-#if BOOST_WORKAROUND( BOOST_MSVC, <= 1300) || \
-    BOOST_WORKAROUND(__DECCXX_VER, BOOST_TESTED_AT(60590042))
-// MSVC needs to be tricked to disambiguate this simple overload..
-// the trick is in "boost/format/msvc_disambiguater.hpp"
-  
-    template< class Ch, class Tr, class T> inline
-    void put_head (BOOST_IO_STD basic_ostream<Ch, Tr> & os, const T& x ) {
-        disambiguater<Ch, Tr, T>::put_head(os, x, 1L);
-    }
-    template< class Ch, class Tr, class T> inline
-    void put_last (BOOST_IO_STD basic_ostream<Ch, Tr> & os, const T& x ) {
-        disambiguater<Ch, Tr, T>::put_last(os, x, 1L);
-    }
-
-#else  
-
-    template< class Ch, class Tr, class T> inline
-    void put_head (BOOST_IO_STD basic_ostream<Ch, Tr> &, const T& ) {
-    }
-
-    template< class Ch, class Tr, class T> inline
-    void put_head( BOOST_IO_STD basic_ostream<Ch, Tr> & os, const group1<T>& x ) {
-        os << group_head(x.a1_); // send the first N-1 items, not the last
-    }
-
-    template< class Ch, class Tr, class T> inline
-    void put_last( BOOST_IO_STD basic_ostream<Ch, Tr> & os, const T& x ) {
-        os << x ;
-    }
-
-    template< class Ch, class Tr, class T> inline
-    void put_last( BOOST_IO_STD basic_ostream<Ch, Tr> & os, const group1<T>& x ) {
-        os << group_last(x.a1_); // this selects the last element
-    }
-
-#ifndef BOOST_NO_OVERLOAD_FOR_NON_CONST 
-    template< class Ch, class Tr, class T> inline
-    void put_head( BOOST_IO_STD basic_ostream<Ch, Tr> &, T& ) {
-    }
-
-    template< class Ch, class Tr, class T> inline
-    void put_last( BOOST_IO_STD basic_ostream<Ch, Tr> & os, T& x) {
-        os << x ;
-    }
-#endif
-#endif  // -msvc workaround
-
-
-    template< class Ch, class Tr, class Alloc, class T> 
-    void put( T x, 
-              const format_item<Ch, Tr, Alloc>& specs, 
-              typename basic_format<Ch, Tr, Alloc>::string_type& res, 
-              typename basic_format<Ch, Tr, Alloc>::internal_streambuf_t & buf,
-              io::detail::locale_t *loc_p = NULL)
-    {
-#ifdef BOOST_MSVC
-       // If std::min<unsigned> or std::max<unsigned> are already instantiated
-       // at this point then we get a blizzard of warning messages when we call
-       // those templates with std::size_t as arguments.  Weird and very annoyning...
-#pragma warning(push)
-#pragma warning(disable:4267)
-#endif
-        // does the actual conversion of x, with given params, into a string
-        // using the supplied stringbuf.
-
-        typedef typename basic_format<Ch, Tr, Alloc>::string_type   string_type;
-        typedef typename basic_format<Ch, Tr, Alloc>::format_item_t format_item_t;
-        typedef typename string_type::size_type size_type;
-
-        basic_oaltstringstream<Ch, Tr, Alloc>  oss( &buf);
-        specs.fmtstate_.apply_on(oss, loc_p);
-
-        // the stream format state can be modified by manipulators in the argument :
-        put_head( oss, x );
-        // in case x is a group, apply the manip part of it, 
-        // in order to find width
-
-        const std::ios_base::fmtflags fl=oss.flags();
-        const bool internal = (fl & std::ios_base::internal) != 0;
-        const std::streamsize w = oss.width();
-        const bool two_stepped_padding= internal && (w!=0);
-      
-        res.resize(0);
-        if(! two_stepped_padding) {
-            if(w>0) // handle padding via mk_str, not natively in stream 
-                oss.width(0);
-            put_last( oss, x);
-            const Ch * res_beg = buf.pbase();
-            Ch prefix_space = 0;
-            if(specs.pad_scheme_ & format_item_t::spacepad)
-                if(buf.pcount()== 0 || 
-                   (res_beg[0] !=oss.widen('+') && res_beg[0] !=oss.widen('-')  ))
-                    prefix_space = oss.widen(' ');
-            size_type res_size = (std::min)(
-                static_cast<size_type>(specs.truncate_ - !!prefix_space), 
-                buf.pcount() );
-            mk_str(res, res_beg, res_size, w, oss.fill(), fl, 
-                   prefix_space, (specs.pad_scheme_ & format_item_t::centered) !=0 );
-        }
-        else  { // 2-stepped padding
-            // internal can be implied by zeropad, or user-set.
-            // left, right, and centered alignment overrule internal,
-            // but spacepad or truncate might be mixed with internal (using manipulator)
-            put_last( oss, x); // may pad
-            const Ch * res_beg = buf.pbase();
-            size_type res_size = buf.pcount();
-            bool prefix_space=false;
-            if(specs.pad_scheme_ & format_item_t::spacepad)
-                if(buf.pcount()== 0 || 
-                   (res_beg[0] !=oss.widen('+') && res_beg[0] !=oss.widen('-')  ))
-                    prefix_space = true;
-            if(res_size == static_cast<size_type>(w) && w<=specs.truncate_ && !prefix_space) {
-                // okay, only one thing was printed and padded, so res is fine
-                res.assign(res_beg, res_size);
-            }
-            else { //   length w exceeded
-                // either it was multi-output with first output padding up all width..
-                // either it was one big arg and we are fine.
-                // Note that res_size<w is possible  (in case of bad user-defined formatting)
-                res.assign(res_beg, res_size);
-                res_beg=NULL;  // invalidate pointers.
-                
-                // make a new stream, to start re-formatting from scratch :
-                buf.clear_buffer();
-                basic_oaltstringstream<Ch, Tr, Alloc>  oss2( &buf);
-                specs.fmtstate_.apply_on(oss2, loc_p);
-                put_head( oss2, x );
-
-                oss2.width(0);
-                if(prefix_space)
-                    oss2 << ' ';
-                put_last(oss2, x );
-                if(buf.pcount()==0 && specs.pad_scheme_ & format_item_t::spacepad) {
-                    prefix_space =true;
-                    oss2 << ' ';
-                }
-                // we now have the minimal-length output
-                const Ch * tmp_beg = buf.pbase();
-                size_type tmp_size = (std::min)(static_cast<size_type>(specs.truncate_),
-                                                buf.pcount() );
-                                                    
-                
-                if(static_cast<size_type>(w) <= tmp_size) { 
-                    // minimal length is already >= w, so no padding (cool!)
-                        res.assign(tmp_beg, tmp_size);
-                }
-                else { // hum..  we need to pad (multi_output, or spacepad present)
-                    //find where we should pad
-                    size_type sz = (std::min)(res_size + (prefix_space ? 1 : 0), tmp_size);
-                    size_type i = prefix_space;
-                    for(; i<sz && tmp_beg[i] == res[i - (prefix_space ? 1 : 0)]; ++i) {}
-                    if(i>=tmp_size) i=prefix_space;
-                    res.assign(tmp_beg, i);
-                                        std::streamsize d = w - static_cast<std::streamsize>(tmp_size);
-                                        BOOST_ASSERT(d>0);
-                    res.append(static_cast<size_type>( d ), oss2.fill());
-                    res.append(tmp_beg+i, tmp_size-i);
-                    BOOST_ASSERT(i+(tmp_size-i)+(std::max)(d,(std::streamsize)0) 
-                                 == static_cast<size_type>(w));
-                    BOOST_ASSERT(res.size() == static_cast<size_type>(w));
-                }
-            }
-        }
-        buf.clear_buffer();
-#ifdef BOOST_MSVC
-#pragma warning(pop)
-#endif
-    } // end- put(..)
-
-
-    template< class Ch, class Tr, class Alloc, class T> 
-    void distribute (basic_format<Ch,Tr, Alloc>& self, T x) {
-        // call put(x, ..) on every occurence of the current argument :
-        if(self.cur_arg_ >= self.num_args_)  {
-            if( self.exceptions() & too_many_args_bit )
-                boost::throw_exception(too_many_args(self.cur_arg_, self.num_args_)); 
-            else return;
-        }
-        for(unsigned long i=0; i < self.items_.size(); ++i) {
-            if(self.items_[i].argN_ == self.cur_arg_) {
-                put<Ch, Tr, Alloc, T> (x, self.items_[i], self.items_[i].res_, 
-                                self.buf_, boost::get_pointer(self.loc_) );
-            }
-        }
-    }
-
-    template<class Ch, class Tr, class Alloc, class T> 
-    basic_format<Ch, Tr, Alloc>&  
-    feed (basic_format<Ch,Tr, Alloc>& self, T x) {
-        if(self.dumped_) self.clear();
-        distribute<Ch, Tr, Alloc, T> (self, x);
-        ++self.cur_arg_;
-        if(self.bound_.size() != 0) {
-                while( self.cur_arg_ < self.num_args_ && self.bound_[self.cur_arg_] )
-                    ++self.cur_arg_;
-        }
-        return self;
-    }
-    
-} // namespace detail
-} // namespace io
-} // namespace boost
-
-
-#endif //  BOOST_FORMAT_FEED_ARGS_HPP
diff --git a/boost/format/format_class.hpp b/boost/format/format_class.hpp
deleted file mode 100644
index 4555e56..0000000
--- a/boost/format/format_class.hpp
+++ /dev/null
@@ -1,168 +0,0 @@
-// ----------------------------------------------------------------------------
-//  format_class.hpp :  class interface
-// ----------------------------------------------------------------------------
-
-//  Copyright Samuel Krempp 2003. Use, modification, and distribution are
-//  subject to the Boost Software License, Version 1.0. (See accompanying
-//  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org/libs/format for library home page
-
-// ----------------------------------------------------------------------------
-
-#ifndef BOOST_FORMAT_CLASS_HPP
-#define BOOST_FORMAT_CLASS_HPP
-
-
-#include <vector>
-#include <string>
-
-#include <boost/optional.hpp> // to store locale when needed
-
-#include <boost/format/format_fwd.hpp>
-#include <boost/format/internals_fwd.hpp>
-#include <boost/format/internals.hpp>
-#include <boost/format/alt_sstream.hpp>
-
-namespace boost {
-
-    template<class Ch, class Tr, class Alloc>
-    class basic_format 
-    {
-        typedef typename io::CompatTraits<Tr>::compatible_type compat_traits;  
-    public:
-        typedef Ch  CharT;   // borland fails in operator% if we use Ch and Tr directly
-        typedef std::basic_string<Ch, Tr, Alloc>              string_type;
-        typedef typename string_type::size_type               size_type;
-        typedef io::detail::format_item<Ch, Tr, Alloc>        format_item_t;
-        typedef io::basic_altstringbuf<Ch, Tr, Alloc>         internal_streambuf_t;
-        
-
-        explicit basic_format(const Ch* str=NULL);
-        explicit basic_format(const string_type& s);
-        basic_format(const basic_format& x);
-        basic_format& operator= (const basic_format& x);
-        void swap(basic_format& x);
-
-#if !defined(BOOST_NO_STD_LOCALE)
-        explicit basic_format(const Ch* str, const std::locale & loc);
-        explicit basic_format(const string_type& s, const std::locale & loc);
-#endif
-        io::detail::locale_t  getloc() const;
-
-        basic_format& clear();       // empty all converted string buffers (except bound items)
-        basic_format& clear_binds(); // unbind all bound items, and call clear()
-        basic_format& parse(const string_type&); // resets buffers and parse a new format string
-
-        // ** formatted result ** //
-        size_type   size() const;    // sum of the current string pieces sizes
-        string_type str()  const;    // final string 
-
-        // ** arguments passing ** //
-        template<class T>  
-        basic_format&   operator%(const T& x)
-            { return io::detail::feed<CharT, Tr, Alloc, const T&>(*this,x); }
-
-#ifndef BOOST_NO_OVERLOAD_FOR_NON_CONST
-        template<class T>  basic_format&   operator%(T& x) 
-            { return io::detail::feed<CharT, Tr, Alloc, T&>(*this,x); }
-#endif
-
-#if defined(__GNUC__)
-        // GCC can't handle anonymous enums without some help
-        // ** arguments passing ** //
-        basic_format&   operator%(const int& x)
-            { return io::detail::feed<CharT, Tr, Alloc, const int&>(*this,x); }
-
-#ifndef BOOST_NO_OVERLOAD_FOR_NON_CONST
-        basic_format&   operator%(int& x)
-            { return io::detail::feed<CharT, Tr, Alloc, int&>(*this,x); }
-#endif
-#endif
-
-        // The total number of arguments expected to be passed to the format objectt
-        int expected_args() const
-            { return num_args_; }
-        // The number of arguments currently bound (see bind_arg(..) )
-        int bound_args() const;
-        // The number of arguments currently fed to the format object
-        int fed_args() const;
-        // The index (1-based) of the current argument (i.e. next to be formatted)
-        int cur_arg() const;
-        // The number of arguments still required to be fed
-        int remaining_args() const; // same as expected_args() - bound_args() - fed_args()
-
-
-        // ** object modifying **//
-        template<class T>
-        basic_format&  bind_arg(int argN, const T& val) 
-            { return io::detail::bind_arg_body(*this, argN, val); }
-        basic_format&  clear_bind(int argN);
-        template<class T> 
-        basic_format&  modify_item(int itemN, T manipulator) 
-            { return io::detail::modify_item_body<Ch,Tr, Alloc, T> (*this, itemN, manipulator);}
-
-        // Choosing which errors will throw exceptions :
-        unsigned char exceptions() const;
-        unsigned char exceptions(unsigned char newexcept);
-
-#if !defined( BOOST_NO_MEMBER_TEMPLATE_FRIENDS )  \
-    && !BOOST_WORKAROUND(__BORLANDC__, <= 0x570) \
-    && !BOOST_WORKAROUND( _CRAYC, != 0) \
-    && !BOOST_WORKAROUND(__DECCXX_VER, BOOST_TESTED_AT(60590042))
-        // use friend templates and private members only if supported
-
-#ifndef  BOOST_NO_TEMPLATE_STD_STREAM
-        template<class Ch2, class Tr2, class Alloc2>
-        friend std::basic_ostream<Ch2, Tr2> & 
-        operator<<( std::basic_ostream<Ch2, Tr2> & ,
-                    const basic_format<Ch2, Tr2, Alloc2>& );
-#else
-        template<class Ch2, class Tr2, class Alloc2>
-        friend std::ostream & 
-        operator<<( std::ostream & ,
-                    const basic_format<Ch2, Tr2, Alloc2>& );
-#endif
-
-        template<class Ch2, class Tr2, class Alloc2, class T>  
-        friend basic_format<Ch2, Tr2, Alloc2>&  
-        io::detail::feed (basic_format<Ch2, Tr2, Alloc2>&, T);
-
-        template<class Ch2, class Tr2, class Alloc2, class T>  friend   
-        void io::detail::distribute (basic_format<Ch2, Tr2, Alloc2>&, T);
-        
-        template<class Ch2, class Tr2, class Alloc2, class T>  friend
-        basic_format<Ch2, Tr2, Alloc2>& 
-        io::detail::modify_item_body (basic_format<Ch2, Tr2, Alloc2>&, int, T);
-        
-        template<class Ch2, class Tr2, class Alloc2, class T> friend
-        basic_format<Ch2, Tr2, Alloc2>&  
-        io::detail::bind_arg_body (basic_format<Ch2, Tr2, Alloc2>&, int, const T&);
-
-    private:
-#endif
-        typedef io::detail::stream_format_state<Ch, Tr>  stream_format_state;
-        // flag bits, used for style_
-        enum style_values  { ordered = 1, // set only if all directives are  positional
-                             special_needs = 4 };     
-
-        void make_or_reuse_data(std::size_t nbitems);// used for (re-)initialisation
-
-        // member data --------------------------------------------//
-        std::vector<format_item_t>  items_; // each '%..' directive leads to a format_item
-        std::vector<bool> bound_; // stores which arguments were bound. size() == 0 || num_args
-
-        int              style_; // style of format-string :  positional or not, etc
-        int             cur_arg_; // keep track of wich argument is current
-        int            num_args_; // number of expected arguments
-        mutable bool     dumped_; // true only after call to str() or <<
-        string_type      prefix_; // piece of string to insert before first item
-        unsigned char exceptions_;
-        internal_streambuf_t   buf_; // the internal stream buffer.
-        boost::optional<io::detail::locale_t>     loc_;
-    }; // class basic_format
-
-} // namespace boost
-
-
-#endif // BOOST_FORMAT_CLASS_HPP
diff --git a/boost/format/format_fwd.hpp b/boost/format/format_fwd.hpp
deleted file mode 100644
index be3228a..0000000
--- a/boost/format/format_fwd.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-// ----------------------------------------------------------------------------
-//  format_fwd.hpp :  forward declarations
-// ----------------------------------------------------------------------------
-
-//  Copyright Samuel Krempp 2003. Use, modification, and distribution are
-//  subject to the Boost Software License, Version 1.0. (See accompanying
-//  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org/libs/format for library home page
-
-// ----------------------------------------------------------------------------
-
-#ifndef BOOST_FORMAT_FWD_HPP
-#define BOOST_FORMAT_FWD_HPP
-
-#include <string>
-#include <iosfwd>
-
-#include <boost/format/detail/compat_workarounds.hpp> 
-
-namespace boost {
-
-    template <class Ch, 
-#if !( BOOST_WORKAROUND(__GNUC__, <3) && !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION) )
-    // gcc-2.95's native  stdlid needs special treatment
-        class Tr = BOOST_IO_STD char_traits<Ch>, class Alloc = std::allocator<Ch> > 
-#else
-        class Tr = std::string_char_traits<Ch>, class Alloc = std::alloc > 
-#endif
-    class basic_format;
-
-    typedef basic_format<char >     format;
-
-#if !defined(BOOST_NO_STD_WSTRING)  && !defined(BOOST_NO_STD_WSTREAMBUF) \
-    && !defined(BOOST_FORMAT_IGNORE_STRINGSTREAM)
-    typedef basic_format<wchar_t >  wformat;
-#endif
-
-    namespace io {
-        enum format_error_bits { bad_format_string_bit = 1, 
-                                 too_few_args_bit = 2, too_many_args_bit = 4,
-                                 out_of_range_bit = 8,
-                                 all_error_bits = 255, no_error_bits=0 };
-                  
-    } // namespace io
-
-} // namespace boost
-
-#endif // BOOST_FORMAT_FWD_HPP
diff --git a/boost/format/format_implementation.hpp b/boost/format/format_implementation.hpp
deleted file mode 100644
index 2abb5c4..0000000
--- a/boost/format/format_implementation.hpp
+++ /dev/null
@@ -1,329 +0,0 @@
-// ----------------------------------------------------------------------------
-// format_implementation.hpp  Implementation of the basic_format class
-// ----------------------------------------------------------------------------
-
-//  Copyright Samuel Krempp 2003. Use, modification, and distribution are
-//  subject to the Boost Software License, Version 1.0. (See accompanying
-//  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org/libs/format for library home page
-
-
-// ----------------------------------------------------------------------------
-
-#ifndef BOOST_FORMAT_IMPLEMENTATION_HPP
-#define BOOST_FORMAT_IMPLEMENTATION_HPP
-
-#include <boost/config.hpp>
-#include <boost/throw_exception.hpp>
-#include <boost/assert.hpp>
-#include <boost/format/format_class.hpp>
-#include <algorithm> // std::swap
-
-namespace boost {
-
-// ---  basic_format implementation -----------------------------------------//
-
-    template< class Ch, class Tr, class Alloc>
-    basic_format<Ch, Tr, Alloc>:: basic_format(const Ch* s)
-        : style_(0), cur_arg_(0), num_args_(0), dumped_(false),
-          exceptions_(io::all_error_bits)
-    {
-        if( s)
-            parse( s );
-    }
-
-#if !defined(BOOST_NO_STD_LOCALE)
-    template< class Ch, class Tr, class Alloc>
-    basic_format<Ch, Tr, Alloc>:: basic_format(const Ch* s, const std::locale & loc)
-        : style_(0), cur_arg_(0), num_args_(0), dumped_(false),
-          exceptions_(io::all_error_bits), loc_(loc)
-    {
-        if(s) parse( s );
-    }
-
-    template< class Ch, class Tr, class Alloc>
-    basic_format<Ch, Tr, Alloc>:: basic_format(const string_type& s, const std::locale & loc)
-        : style_(0), cur_arg_(0), num_args_(0), dumped_(false),
-          exceptions_(io::all_error_bits), loc_(loc)
-    {
-        parse(s);  
-    }
-#endif // ! BOOST_NO_STD_LOCALE
-    template< class Ch, class Tr, class Alloc>
-    io::detail::locale_t basic_format<Ch, Tr, Alloc>:: 
-    getloc() const {
-        return loc_ ? loc_.get() : io::detail::locale_t(); 
-    }
-
-    template< class Ch, class Tr, class Alloc>
-    basic_format<Ch, Tr, Alloc>:: basic_format(const string_type& s)
-        : style_(0), cur_arg_(0), num_args_(0), dumped_(false),
-          exceptions_(io::all_error_bits)
-    {
-        parse(s);  
-    }
-
-    template< class Ch, class Tr, class Alloc> // just don't copy the buf_ member
-    basic_format<Ch, Tr, Alloc>:: basic_format(const basic_format& x)
-        : items_(x.items_), bound_(x.bound_), style_(x.style_),
-          cur_arg_(x.cur_arg_), num_args_(x.num_args_), dumped_(x.dumped_),
-          prefix_(x.prefix_), exceptions_(x.exceptions_), loc_(x.loc_)
-    {
-    }
-
-    template< class Ch, class Tr, class Alloc>  // just don't copy the buf_ member
-    basic_format<Ch, Tr, Alloc>& basic_format<Ch, Tr, Alloc>:: 
-    operator= (const basic_format& x) {
-        if(this == &x)
-            return *this;
-        (basic_format<Ch, Tr, Alloc>(x)).swap(*this);
-        return *this;
-    }
-    template< class Ch, class Tr, class Alloc>
-    void  basic_format<Ch, Tr, Alloc>:: 
-    swap (basic_format & x) {
-        std::swap(exceptions_, x.exceptions_);
-        std::swap(style_, x.style_); 
-        std::swap(cur_arg_, x.cur_arg_); 
-        std::swap(num_args_, x.num_args_);
-        std::swap(dumped_, x.dumped_);
-
-        items_.swap(x.items_);
-        prefix_.swap(x.prefix_);
-        bound_.swap(x.bound_);
-    }
-
-    template< class Ch, class Tr, class Alloc>
-    unsigned char basic_format<Ch,Tr, Alloc>:: exceptions() const {
-        return exceptions_; 
-    }
-
-    template< class Ch, class Tr, class Alloc>
-    unsigned char basic_format<Ch,Tr, Alloc>:: exceptions(unsigned char newexcept) { 
-        unsigned char swp = exceptions_; 
-        exceptions_ = newexcept; 
-        return swp; 
-    }
-
-    template<class Ch, class Tr, class Alloc>
-    void basic_format<Ch, Tr, Alloc>:: 
-    make_or_reuse_data (std::size_t nbitems) {
-#if !defined(BOOST_NO_STD_LOCALE)
-        Ch fill = ( BOOST_USE_FACET(std::ctype<Ch>, getloc()) ). widen(' ');
-#else
-        Ch fill = ' ';
-#endif
-        if(items_.size() == 0)
-            items_.assign( nbitems, format_item_t(fill) );
-        else {
-            if(nbitems>items_.size())
-                items_.resize(nbitems, format_item_t(fill));
-            bound_.resize(0);
-            for(std::size_t i=0; i < nbitems; ++i)
-                items_[i].reset(fill); //  strings are resized, instead of reallocated
-        }
-        prefix_.resize(0);
-    }
-
-    template< class Ch, class Tr, class Alloc>
-    basic_format<Ch,Tr, Alloc>& basic_format<Ch,Tr, Alloc>:: 
-    clear () {
-        // empty the string buffers (except bound arguments)
-        // and make the format object ready for formatting a new set of arguments
-
-        BOOST_ASSERT( bound_.size()==0 || num_args_ == static_cast<int>(bound_.size()) );
-
-        for(unsigned long i=0; i<items_.size(); ++i) {
-            // clear converted strings only if the corresponding argument is not  bound :
-            if( bound_.size()==0 || items_[i].argN_<0 || !bound_[ items_[i].argN_ ] )
-                items_[i].res_.resize(0);
-        }
-        cur_arg_=0; dumped_=false;
-        // maybe first arg is bound:
-        if(bound_.size() != 0) {
-            for(; cur_arg_ < num_args_ && bound_[cur_arg_]; ++cur_arg_)
-                {}
-        }
-        return *this;
-    }
-
-    template< class Ch, class Tr, class Alloc>
-    basic_format<Ch,Tr, Alloc>& basic_format<Ch,Tr, Alloc>:: 
-    clear_binds () {
-        // remove all binds, then clear()
-        bound_.resize(0);
-        clear();
-        return *this;
-    }
-
-    template< class Ch, class Tr, class Alloc>
-    basic_format<Ch,Tr, Alloc>& basic_format<Ch,Tr, Alloc>:: 
-    clear_bind (int argN) {
-        // remove the bind of ONE argument then clear()
-        if(argN<1 || argN > num_args_ || bound_.size()==0 || !bound_[argN-1] ) {
-            if( exceptions() & io::out_of_range_bit)
-                boost::throw_exception(io::out_of_range(argN, 1, num_args_+1 ) ); 
-            else return *this;
-        }
-        bound_[argN-1]=false;
-        clear();
-        return *this;
-    }
-
-    template< class Ch, class Tr, class Alloc>
-    int basic_format<Ch,Tr, Alloc>::
-    bound_args() const {
-        if(bound_.size()==0)
-            return 0;
-        int n=0;
-        for(int i=0; i<num_args_ ; ++i)
-            if(bound_[i])
-                ++n;
-        return n;
-    }
-
-    template< class Ch, class Tr, class Alloc>
-    int basic_format<Ch,Tr, Alloc>::
-    fed_args() const {
-        if(bound_.size()==0)
-            return cur_arg_;
-        int n=0;
-        for(int i=0; i<cur_arg_ ; ++i)
-            if(!bound_[i])
-                ++n;
-        return n;
-    }
-
-    template< class Ch, class Tr, class Alloc>
-    int basic_format<Ch,Tr, Alloc>::
-    cur_arg() const {
-      return cur_arg_+1; }
-
-    template< class Ch, class Tr, class Alloc>
-    int basic_format<Ch,Tr, Alloc>::
-    remaining_args() const {
-        if(bound_.size()==0)
-            return num_args_-cur_arg_;
-        int n=0;
-        for(int i=cur_arg_; i<num_args_ ; ++i)
-            if(!bound_[i])
-                ++n;
-        return n;
-    }
-
-    template< class Ch, class Tr, class Alloc>
-    typename basic_format<Ch, Tr, Alloc>::string_type 
-    basic_format<Ch,Tr, Alloc>:: 
-    str () const {
-        if(items_.size()==0)
-            return prefix_;
-        if( cur_arg_ < num_args_)
-            if( exceptions() & io::too_few_args_bit )
-                // not enough variables supplied
-                boost::throw_exception(io::too_few_args(cur_arg_, num_args_)); 
-
-        unsigned long i;
-        string_type res;
-        res.reserve(size());
-        res += prefix_;
-        for(i=0; i < items_.size(); ++i) {
-            const format_item_t& item = items_[i];
-            res += item.res_;
-            if( item.argN_ == format_item_t::argN_tabulation) { 
-                BOOST_ASSERT( item.pad_scheme_ & format_item_t::tabulation);
-                if( static_cast<size_type>(item.fmtstate_.width_) > res.size() )
-                    res.append( static_cast<size_type>(item.fmtstate_.width_) - res.size(),
-                                        item.fmtstate_.fill_ );
-            }
-            res += item.appendix_;
-        }
-        dumped_=true;
-        return res;
-    }
-    template< class Ch, class Tr, class Alloc>
-    typename std::basic_string<Ch, Tr, Alloc>::size_type  basic_format<Ch,Tr, Alloc>:: 
-    size () const {
-#ifdef BOOST_MSVC
-       // If std::min<unsigned> or std::max<unsigned> are already instantiated
-       // at this point then we get a blizzard of warning messages when we call
-       // those templates with std::size_t as arguments.  Weird and very annoyning...
-#pragma warning(push)
-#pragma warning(disable:4267)
-#endif
-        BOOST_USING_STD_MAX();
-        size_type sz = prefix_.size();
-        unsigned long i;
-        for(i=0; i < items_.size(); ++i) {
-            const format_item_t& item = items_[i];
-            sz += item.res_.size();
-            if( item.argN_ == format_item_t::argN_tabulation)
-                sz = max BOOST_PREVENT_MACRO_SUBSTITUTION (sz,
-                                        static_cast<size_type>(item.fmtstate_.width_) );
-            sz += item.appendix_.size();
-        }
-        return sz;
-#ifdef BOOST_MSVC
-#pragma warning(pop)
-#endif
-    }
-
-namespace io {
-namespace detail {
-
-    template<class Ch, class Tr, class Alloc, class T> 
-    basic_format<Ch, Tr, Alloc>&  
-    bind_arg_body (basic_format<Ch, Tr, Alloc>& self, int argN, const T& val) {
-        // bind one argument to a fixed value
-        // this is persistent over clear() calls, thus also over str() and <<
-        if(self.dumped_) 
-            self.clear(); // needed because we will modify cur_arg_
-        if(argN<1 || argN > self.num_args_) {
-            if( self.exceptions() & io::out_of_range_bit )
-                boost::throw_exception(io::out_of_range(argN, 1, self.num_args_+1 ) );
-            else return self;
-        }
-        if(self.bound_.size()==0) 
-            self.bound_.assign(self.num_args_,false);
-        else 
-            BOOST_ASSERT( self.num_args_ == static_cast<signed int>(self.bound_.size()) );
-        int o_cur_arg = self.cur_arg_;
-        self.cur_arg_ = argN-1; // arrays begin at 0
-
-        self.bound_[self.cur_arg_]=false; // if already set, we unset and re-sets..
-        self.operator%(val); // put val at the right place, because cur_arg is set
-    
-
-        // Now re-position cur_arg before leaving :
-        self.cur_arg_ = o_cur_arg; 
-        self.bound_[argN-1]=true;
-        if(self.cur_arg_ == argN-1 ) {
-            // hum, now this arg is bound, so move to next free arg
-            while(self.cur_arg_ < self.num_args_ && self.bound_[self.cur_arg_])   
-                ++self.cur_arg_;
-        }
-        // In any case, we either have all args, or are on an unbound arg :
-        BOOST_ASSERT( self.cur_arg_ >= self.num_args_ || ! self.bound_[self.cur_arg_]);
-        return self;
-    }
-
-    template<class Ch, class Tr, class Alloc, class T> basic_format<Ch, Tr, Alloc>&
-    modify_item_body (basic_format<Ch, Tr, Alloc>& self, int itemN, T manipulator) {
-        // applies a manipulator to the format_item describing a given directive.
-        // this is a permanent change, clear or reset won't cancel that.
-        if(itemN<1 || itemN > static_cast<signed int>(self.items_.size() )) {
-            if( self.exceptions() & io::out_of_range_bit ) 
-                boost::throw_exception(io::out_of_range(itemN, 1, static_cast<int>(self.items_.size()) ));
-            else return self;
-        }
-        self.items_[itemN-1].fmtstate_. template apply_manip<T> ( manipulator );
-        return self;
-    }
-
-} // namespace detail
-} // namespace io
-} // namespace boost
-
-
-
-#endif  // BOOST_FORMAT_IMPLEMENTATION_HPP
diff --git a/boost/format/free_funcs.hpp b/boost/format/free_funcs.hpp
deleted file mode 100644
index 3a51545..0000000
--- a/boost/format/free_funcs.hpp
+++ /dev/null
@@ -1,70 +0,0 @@
-// ----------------------------------------------------------------------------
-// free_funcs.hpp :  implementation of the free functions of boost::format
-// ----------------------------------------------------------------------------
-
-//  Copyright Samuel Krempp 2003. Use, modification, and distribution are
-//  subject to the Boost Software License, Version 1.0. (See accompanying
-//  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org/libs/format for library home page
-
-// ----------------------------------------------------------------------------
-
-#ifndef BOOST_FORMAT_FUNCS_HPP
-#define BOOST_FORMAT_FUNCS_HPP
-
-#include <boost/format/format_class.hpp>
-#include <boost/throw_exception.hpp>
-
-namespace boost {
-
-    template<class Ch, class Tr, class Alloc> inline 
-    std::basic_string<Ch, Tr, Alloc> str(const basic_format<Ch, Tr, Alloc>& f) {
-        // adds up all pieces of strings and converted items, and return the formatted string
-        return f.str();
-    }
-    namespace io {
-         using ::boost::str; // keep compatibility with when it was defined in this N.S.
-    }   // - namespace io
-
-#ifndef  BOOST_NO_TEMPLATE_STD_STREAM
-        template<class Ch, class Tr, class Alloc>
-        std::basic_ostream<Ch, Tr> & 
-        operator<<( std::basic_ostream<Ch, Tr> & os,
-                    const basic_format<Ch, Tr, Alloc>& f)
-#else
-        template<class Ch, class Tr, class Alloc>
-        std::ostream & 
-        operator<<( std::ostream & os,
-                    const basic_format<Ch, Tr, Alloc>& f)
-#endif
-        // effect: "return os << str(f);" but we can do it faster
-    {
-        typedef boost::basic_format<Ch, Tr, Alloc>   format_t;
-        if(f.items_.size()==0) 
-            os << f.prefix_;
-        else {
-            if(f.cur_arg_ < f.num_args_)
-                if( f.exceptions() & io::too_few_args_bit )
-                    // not enough variables supplied
-                    boost::throw_exception(io::too_few_args(f.cur_arg_, f.num_args_)); 
-            if(f.style_ & format_t::special_needs) 
-                os << f.str();
-            else {
-                // else we dont have to count chars output, so we dump directly to os :
-                os << f.prefix_;
-                for(unsigned long i=0; i<f.items_.size(); ++i) {
-                    const typename format_t::format_item_t& item = f.items_[i];
-                    os << item.res_;
-                    os << item.appendix_;
-                }
-            }
-        }
-        f.dumped_=true;
-        return os;
-    }
-
-} // namespace boost
-
-
-#endif // BOOST_FORMAT_FUNCS_HPP
diff --git a/boost/format/group.hpp b/boost/format/group.hpp
deleted file mode 100644
index c586b2a..0000000
--- a/boost/format/group.hpp
+++ /dev/null
@@ -1,684 +0,0 @@
-
-// ----------------------------------------------------------------------------
-// group.hpp :  encapsulates a group of manipulators along with an argument
-// ----------------------------------------------------------------------------
-
-//  Copyright Samuel Krempp 2003. Use, modification, and distribution are
-//  subject to the Boost Software License, Version 1.0. (See accompanying
-//  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org/libs/format for library home page
-
-// ----------------------------------------------------------------------------
-
-                      
-// group_head : cut the last element of a group out.
-// (is overloaded below on each type of group)
-
-// group_last : returns the last element of a group
-// (is overloaded below on each type of group)
-// ----------------------------------------------------------------------------
-
-
-#ifndef BOOST_FORMAT_GROUP_HPP
-#define BOOST_FORMAT_GROUP_HPP
-
-#include <boost/config.hpp>
-
-
-namespace boost {
-namespace io {
-
-
-namespace detail {
-
-
-// empty group, but useful even though.
-struct group0 
-{
-    group0()      {}
-};
-
-template <class Ch, class Tr>
-inline
-BOOST_IO_STD basic_ostream<Ch, Tr>&
-operator << ( BOOST_IO_STD basic_ostream<Ch, Tr>& os,
-             const group0& )
-{ 
-   return os; 
-}
-
-template <class T1>
-struct group1
-{
-    T1 a1_;
-    group1(T1 a1)
-      : a1_(a1)
-      {}
-private:
-   group1& operator=(const group1&);
-};
-
-template <class Ch, class Tr, class T1>
-inline
-BOOST_IO_STD basic_ostream<Ch, Tr>&
-operator << (BOOST_IO_STD basic_ostream<Ch, Tr>& os,
-             const group1<T1>& x)
-{ 
-   os << x.a1_;  
-   return os; 
-}
-
-
-
-
-template <class T1,class T2>
-struct group2
-{
-    T1 a1_;
-    T2 a2_;
-    group2(T1 a1,T2 a2)
-      : a1_(a1),a2_(a2)
-      {}
-private:
-   group2& operator=(const group2&);
-};
-
-template <class Ch, class Tr, class T1,class T2>
-inline
-BOOST_IO_STD basic_ostream<Ch, Tr>&
-operator << (BOOST_IO_STD basic_ostream<Ch, Tr>& os,
-             const group2<T1,T2>& x)
-{ 
-   os << x.a1_<< x.a2_;  
-   return os; 
-}
-
-template <class T1,class T2,class T3>
-struct group3
-{
-    T1 a1_;
-    T2 a2_;
-    T3 a3_;
-    group3(T1 a1,T2 a2,T3 a3)
-      : a1_(a1),a2_(a2),a3_(a3)
-      {}
-private:
-   group3& operator=(const group3&);
-};
-
-template <class Ch, class Tr, class T1,class T2,class T3>
-inline
-BOOST_IO_STD basic_ostream<Ch, Tr>&
-operator << (BOOST_IO_STD basic_ostream<Ch, Tr>& os,
-             const group3<T1,T2,T3>& x)
-{ 
-   os << x.a1_<< x.a2_<< x.a3_;  
-   return os; 
-}
-
-template <class T1,class T2,class T3,class T4>
-struct group4
-{
-    T1 a1_;
-    T2 a2_;
-    T3 a3_;
-    T4 a4_;
-    group4(T1 a1,T2 a2,T3 a3,T4 a4)
-      : a1_(a1),a2_(a2),a3_(a3),a4_(a4)
-      {}
-private:
-   group4& operator=(const group4&);
-};
-
-template <class Ch, class Tr, class T1,class T2,class T3,class T4>
-inline
-BOOST_IO_STD basic_ostream<Ch, Tr>&
-operator << (BOOST_IO_STD basic_ostream<Ch, Tr>& os,
-             const group4<T1,T2,T3,T4>& x)
-{ 
-   os << x.a1_<< x.a2_<< x.a3_<< x.a4_;  
-   return os; 
-}
-
-template <class T1,class T2,class T3,class T4,class T5>
-struct group5
-{
-    T1 a1_;
-    T2 a2_;
-    T3 a3_;
-    T4 a4_;
-    T5 a5_;
-    group5(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5)
-      : a1_(a1),a2_(a2),a3_(a3),a4_(a4),a5_(a5)
-      {}
-};
-
-template <class Ch, class Tr, class T1,class T2,class T3,class T4,class T5>
-inline
-BOOST_IO_STD basic_ostream<Ch, Tr>&
-operator << (BOOST_IO_STD basic_ostream<Ch, Tr>& os,
-             const group5<T1,T2,T3,T4,T5>& x)
-{ 
-   os << x.a1_<< x.a2_<< x.a3_<< x.a4_<< x.a5_;  
-   return os; 
-}
-
-template <class T1,class T2,class T3,class T4,class T5,class T6>
-struct group6
-{
-    T1 a1_;
-    T2 a2_;
-    T3 a3_;
-    T4 a4_;
-    T5 a5_;
-    T6 a6_;
-    group6(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6)
-      : a1_(a1),a2_(a2),a3_(a3),a4_(a4),a5_(a5),a6_(a6)
-      {}
-};
-
-template <class Ch, class Tr, class T1,class T2,class T3,class T4,class T5,class T6>
-inline
-BOOST_IO_STD basic_ostream<Ch, Tr>&
-operator << (BOOST_IO_STD basic_ostream<Ch, Tr>& os,
-             const group6<T1,T2,T3,T4,T5,T6>& x)
-{ 
-   os << x.a1_<< x.a2_<< x.a3_<< x.a4_<< x.a5_<< x.a6_;  
-   return os; 
-}
-
-template <class T1,class T2,class T3,class T4,class T5,class T6,class T7>
-struct group7
-{
-    T1 a1_;
-    T2 a2_;
-    T3 a3_;
-    T4 a4_;
-    T5 a5_;
-    T6 a6_;
-    T7 a7_;
-    group7(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7)
-      : a1_(a1),a2_(a2),a3_(a3),a4_(a4),a5_(a5),a6_(a6),a7_(a7)
-      {}
-};
-
-template <class Ch, class Tr, class T1,class T2,class T3,class T4,class T5,class T6,class T7>
-inline
-BOOST_IO_STD basic_ostream<Ch, Tr>&
-operator << (BOOST_IO_STD basic_ostream<Ch, Tr>& os,
-             const group7<T1,T2,T3,T4,T5,T6,T7>& x)
-{ 
-   os << x.a1_<< x.a2_<< x.a3_<< x.a4_<< x.a5_<< x.a6_<< x.a7_;  
-   return os; 
-}
-
-template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8>
-struct group8
-{
-    T1 a1_;
-    T2 a2_;
-    T3 a3_;
-    T4 a4_;
-    T5 a5_;
-    T6 a6_;
-    T7 a7_;
-    T8 a8_;
-    group8(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7,T8 a8)
-      : a1_(a1),a2_(a2),a3_(a3),a4_(a4),a5_(a5),a6_(a6),a7_(a7),a8_(a8)
-      {}
-};
-
-template <class Ch, class Tr, class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8>
-inline
-BOOST_IO_STD basic_ostream<Ch, Tr>&
-operator << (BOOST_IO_STD basic_ostream<Ch, Tr>& os,
-             const group8<T1,T2,T3,T4,T5,T6,T7,T8>& x)
-{ 
-   os << x.a1_<< x.a2_<< x.a3_<< x.a4_<< x.a5_<< x.a6_<< x.a7_<< x.a8_;  
-   return os; 
-}
-
-template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9>
-struct group9
-{
-    T1 a1_;
-    T2 a2_;
-    T3 a3_;
-    T4 a4_;
-    T5 a5_;
-    T6 a6_;
-    T7 a7_;
-    T8 a8_;
-    T9 a9_;
-    group9(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7,T8 a8,T9 a9)
-      : a1_(a1),a2_(a2),a3_(a3),a4_(a4),a5_(a5),a6_(a6),a7_(a7),a8_(a8),a9_(a9)
-      {}
-};
-
-template <class Ch, class Tr, class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9>
-inline
-BOOST_IO_STD basic_ostream<Ch, Tr>&
-operator << (BOOST_IO_STD basic_ostream<Ch, Tr>& os,
-             const group9<T1,T2,T3,T4,T5,T6,T7,T8,T9>& x)
-{ 
-   os << x.a1_<< x.a2_<< x.a3_<< x.a4_<< x.a5_<< x.a6_<< x.a7_<< x.a8_<< x.a9_;  
-   return os; 
-}
-
-template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10>
-struct group10
-{
-    T1 a1_;
-    T2 a2_;
-    T3 a3_;
-    T4 a4_;
-    T5 a5_;
-    T6 a6_;
-    T7 a7_;
-    T8 a8_;
-    T9 a9_;
-    T10 a10_;
-    group10(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7,T8 a8,T9 a9,T10 a10)
-      : a1_(a1),a2_(a2),a3_(a3),a4_(a4),a5_(a5),a6_(a6),a7_(a7),a8_(a8),a9_(a9),a10_(a10)
-      {}
-};
-
-template <class Ch, class Tr, class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10>
-inline
-BOOST_IO_STD basic_ostream<Ch, Tr>&
-operator << (BOOST_IO_STD basic_ostream<Ch, Tr>& os,
-             const group10<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10>& x)
-{ 
-   os << x.a1_<< x.a2_<< x.a3_<< x.a4_<< x.a5_<< x.a6_<< x.a7_<< x.a8_<< x.a9_<< x.a10_;  
-   return os; 
-}
-
-
-
-
-template <class T1,class T2>
-inline
-group1<T1> 
-group_head( group2<T1,T2> const& x)
-{
-   return group1<T1> (x.a1_); 
-}
-
-template <class T1,class T2>
-inline
-group1<T2> 
-group_last( group2<T1,T2> const& x)
-{
-   return group1<T2> (x.a2_); 
-}
-
-
-
-template <class T1,class T2,class T3>
-inline
-group2<T1,T2> 
-group_head( group3<T1,T2,T3> const& x)
-{
-   return group2<T1,T2> (x.a1_,x.a2_); 
-}
-
-template <class T1,class T2,class T3>
-inline
-group1<T3> 
-group_last( group3<T1,T2,T3> const& x)
-{
-   return group1<T3> (x.a3_); 
-}
-
-
-
-template <class T1,class T2,class T3,class T4>
-inline
-group3<T1,T2,T3> 
-group_head( group4<T1,T2,T3,T4> const& x)
-{
-   return group3<T1,T2,T3> (x.a1_,x.a2_,x.a3_); 
-}
-
-template <class T1,class T2,class T3,class T4>
-inline
-group1<T4> 
-group_last( group4<T1,T2,T3,T4> const& x)
-{
-   return group1<T4> (x.a4_); 
-}
-
-
-
-template <class T1,class T2,class T3,class T4,class T5>
-inline
-group4<T1,T2,T3,T4> 
-group_head( group5<T1,T2,T3,T4,T5> const& x)
-{
-   return group4<T1,T2,T3,T4> (x.a1_,x.a2_,x.a3_,x.a4_); 
-}
-
-template <class T1,class T2,class T3,class T4,class T5>
-inline
-group1<T5> 
-group_last( group5<T1,T2,T3,T4,T5> const& x)
-{
-   return group1<T5> (x.a5_); 
-}
-
-
-
-template <class T1,class T2,class T3,class T4,class T5,class T6>
-inline
-group5<T1,T2,T3,T4,T5> 
-group_head( group6<T1,T2,T3,T4,T5,T6> const& x)
-{
-   return group5<T1,T2,T3,T4,T5> (x.a1_,x.a2_,x.a3_,x.a4_,x.a5_); 
-}
-
-template <class T1,class T2,class T3,class T4,class T5,class T6>
-inline
-group1<T6> 
-group_last( group6<T1,T2,T3,T4,T5,T6> const& x)
-{
-   return group1<T6> (x.a6_); 
-}
-
-
-
-template <class T1,class T2,class T3,class T4,class T5,class T6,class T7>
-inline
-group6<T1,T2,T3,T4,T5,T6> 
-group_head( group7<T1,T2,T3,T4,T5,T6,T7> const& x)
-{
-   return group6<T1,T2,T3,T4,T5,T6> (x.a1_,x.a2_,x.a3_,x.a4_,x.a5_,x.a6_); 
-}
-
-template <class T1,class T2,class T3,class T4,class T5,class T6,class T7>
-inline
-group1<T7> 
-group_last( group7<T1,T2,T3,T4,T5,T6,T7> const& x)
-{
-   return group1<T7> (x.a7_); 
-}
-
-
-
-template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8>
-inline
-group7<T1,T2,T3,T4,T5,T6,T7> 
-group_head( group8<T1,T2,T3,T4,T5,T6,T7,T8> const& x)
-{
-   return group7<T1,T2,T3,T4,T5,T6,T7> (x.a1_,x.a2_,x.a3_,x.a4_,x.a5_,x.a6_,x.a7_); 
-}
-
-template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8>
-inline
-group1<T8> 
-group_last( group8<T1,T2,T3,T4,T5,T6,T7,T8> const& x)
-{
-   return group1<T8> (x.a8_); 
-}
-
-
-
-template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9>
-inline
-group8<T1,T2,T3,T4,T5,T6,T7,T8> 
-group_head( group9<T1,T2,T3,T4,T5,T6,T7,T8,T9> const& x)
-{
-   return group8<T1,T2,T3,T4,T5,T6,T7,T8> (x.a1_,x.a2_,x.a3_,x.a4_,x.a5_,x.a6_,x.a7_,x.a8_); 
-}
-
-template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9>
-inline
-group1<T9> 
-group_last( group9<T1,T2,T3,T4,T5,T6,T7,T8,T9> const& x)
-{
-   return group1<T9> (x.a9_); 
-}
-
-
-
-template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10>
-inline
-group9<T1,T2,T3,T4,T5,T6,T7,T8,T9> 
-group_head( group10<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10> const& x)
-{
-   return group9<T1,T2,T3,T4,T5,T6,T7,T8,T9> (x.a1_,x.a2_,x.a3_,x.a4_,x.a5_,x.a6_,x.a7_,x.a8_,x.a9_); 
-}
-
-template <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9,class T10>
-inline
-group1<T10> 
-group_last( group10<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10> const& x)
-{
-   return group1<T10> (x.a10_); 
-}
-
-
-
-
-
-} // namespace detail
-
-
-
-// helper functions
-
-
-inline detail::group1< detail::group0 >  
-group() { return detail::group1< detail::group0 > ( detail::group0() ); }
-
-template  <class T1, class Var> 
-inline
-detail::group1< detail::group2<T1, Var const&> >
-  group(T1 a1, Var const& var)
-{ 
-   return detail::group1< detail::group2<T1, Var const&> >
-                   ( detail::group2<T1, Var const&> 
-                        (a1, var) 
-                  );
-}
-
-template  <class T1,class T2, class Var> 
-inline
-detail::group1< detail::group3<T1,T2, Var const&> >
-  group(T1 a1,T2 a2, Var const& var)
-{ 
-   return detail::group1< detail::group3<T1,T2, Var const&> >
-                   ( detail::group3<T1,T2, Var const&> 
-                        (a1,a2, var) 
-                  );
-}
-
-template  <class T1,class T2,class T3, class Var> 
-inline
-detail::group1< detail::group4<T1,T2,T3, Var const&> >
-  group(T1 a1,T2 a2,T3 a3, Var const& var)
-{ 
-   return detail::group1< detail::group4<T1,T2,T3, Var const&> >
-                   ( detail::group4<T1,T2,T3, Var const&> 
-                        (a1,a2,a3, var) 
-                  );
-}
-
-template  <class T1,class T2,class T3,class T4, class Var> 
-inline
-detail::group1< detail::group5<T1,T2,T3,T4, Var const&> >
-  group(T1 a1,T2 a2,T3 a3,T4 a4, Var const& var)
-{ 
-   return detail::group1< detail::group5<T1,T2,T3,T4, Var const&> >
-                   ( detail::group5<T1,T2,T3,T4, Var const&> 
-                        (a1,a2,a3,a4, var) 
-                  );
-}
-
-template  <class T1,class T2,class T3,class T4,class T5, class Var> 
-inline
-detail::group1< detail::group6<T1,T2,T3,T4,T5, Var const&> >
-  group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5, Var const& var)
-{ 
-   return detail::group1< detail::group6<T1,T2,T3,T4,T5, Var const&> >
-                   ( detail::group6<T1,T2,T3,T4,T5, Var const&> 
-                        (a1,a2,a3,a4,a5, var) 
-                  );
-}
-
-template  <class T1,class T2,class T3,class T4,class T5,class T6, class Var> 
-inline
-detail::group1< detail::group7<T1,T2,T3,T4,T5,T6, Var const&> >
-  group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6, Var const& var)
-{ 
-   return detail::group1< detail::group7<T1,T2,T3,T4,T5,T6, Var const&> >
-                   ( detail::group7<T1,T2,T3,T4,T5,T6, Var const&> 
-                        (a1,a2,a3,a4,a5,a6, var) 
-                  );
-}
-
-template  <class T1,class T2,class T3,class T4,class T5,class T6,class T7, class Var> 
-inline
-detail::group1< detail::group8<T1,T2,T3,T4,T5,T6,T7, Var const&> >
-  group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7, Var const& var)
-{ 
-   return detail::group1< detail::group8<T1,T2,T3,T4,T5,T6,T7, Var const&> >
-                   ( detail::group8<T1,T2,T3,T4,T5,T6,T7, Var const&> 
-                        (a1,a2,a3,a4,a5,a6,a7, var) 
-                  );
-}
-
-template  <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8, class Var> 
-inline
-detail::group1< detail::group9<T1,T2,T3,T4,T5,T6,T7,T8, Var const&> >
-  group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7,T8 a8, Var const& var)
-{ 
-   return detail::group1< detail::group9<T1,T2,T3,T4,T5,T6,T7,T8, Var const&> >
-                   ( detail::group9<T1,T2,T3,T4,T5,T6,T7,T8, Var const&> 
-                        (a1,a2,a3,a4,a5,a6,a7,a8, var) 
-                  );
-}
-
-template  <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9, class Var> 
-inline
-detail::group1< detail::group10<T1,T2,T3,T4,T5,T6,T7,T8,T9, Var const&> >
-  group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7,T8 a8,T9 a9, Var const& var)
-{ 
-   return detail::group1< detail::group10<T1,T2,T3,T4,T5,T6,T7,T8,T9, Var const&> >
-                   ( detail::group10<T1,T2,T3,T4,T5,T6,T7,T8,T9, Var const&> 
-                        (a1,a2,a3,a4,a5,a6,a7,a8,a9, var) 
-                  );
-}
-
-
-#ifndef BOOST_NO_OVERLOAD_FOR_NON_CONST
-
-template  <class T1, class Var> 
-inline
-detail::group1< detail::group2<T1, Var&> >
-  group(T1 a1, Var& var)
-{ 
-   return detail::group1< detail::group2<T1, Var&> >
-                   ( detail::group2<T1, Var&> 
-                        (a1, var) 
-                  );
-}
-
-template  <class T1,class T2, class Var> 
-inline
-detail::group1< detail::group3<T1,T2, Var&> >
-  group(T1 a1,T2 a2, Var& var)
-{ 
-   return detail::group1< detail::group3<T1,T2, Var&> >
-                   ( detail::group3<T1,T2, Var&> 
-                        (a1,a2, var) 
-                  );
-}
-
-template  <class T1,class T2,class T3, class Var> 
-inline
-detail::group1< detail::group4<T1,T2,T3, Var&> >
-  group(T1 a1,T2 a2,T3 a3, Var& var)
-{ 
-   return detail::group1< detail::group4<T1,T2,T3, Var&> >
-                   ( detail::group4<T1,T2,T3, Var&> 
-                        (a1,a2,a3, var) 
-                  );
-}
-
-template  <class T1,class T2,class T3,class T4, class Var> 
-inline
-detail::group1< detail::group5<T1,T2,T3,T4, Var&> >
-  group(T1 a1,T2 a2,T3 a3,T4 a4, Var& var)
-{ 
-   return detail::group1< detail::group5<T1,T2,T3,T4, Var&> >
-                   ( detail::group5<T1,T2,T3,T4, Var&> 
-                        (a1,a2,a3,a4, var) 
-                  );
-}
-
-template  <class T1,class T2,class T3,class T4,class T5, class Var> 
-inline
-detail::group1< detail::group6<T1,T2,T3,T4,T5, Var&> >
-  group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5, Var& var)
-{ 
-   return detail::group1< detail::group6<T1,T2,T3,T4,T5, Var&> >
-                   ( detail::group6<T1,T2,T3,T4,T5, Var&> 
-                        (a1,a2,a3,a4,a5, var) 
-                  );
-}
-
-template  <class T1,class T2,class T3,class T4,class T5,class T6, class Var> 
-inline
-detail::group1< detail::group7<T1,T2,T3,T4,T5,T6, Var&> >
-  group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6, Var& var)
-{ 
-   return detail::group1< detail::group7<T1,T2,T3,T4,T5,T6, Var&> >
-                   ( detail::group7<T1,T2,T3,T4,T5,T6, Var&> 
-                        (a1,a2,a3,a4,a5,a6, var) 
-                  );
-}
-
-template  <class T1,class T2,class T3,class T4,class T5,class T6,class T7, class Var> 
-inline
-detail::group1< detail::group8<T1,T2,T3,T4,T5,T6,T7, Var&> >
-  group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7, Var& var)
-{ 
-   return detail::group1< detail::group8<T1,T2,T3,T4,T5,T6,T7, Var&> >
-                   ( detail::group8<T1,T2,T3,T4,T5,T6,T7, Var&> 
-                        (a1,a2,a3,a4,a5,a6,a7, var) 
-                  );
-}
-
-template  <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8, class Var> 
-inline
-detail::group1< detail::group9<T1,T2,T3,T4,T5,T6,T7,T8, Var&> >
-  group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7,T8 a8, Var& var)
-{ 
-   return detail::group1< detail::group9<T1,T2,T3,T4,T5,T6,T7,T8, Var&> >
-                   ( detail::group9<T1,T2,T3,T4,T5,T6,T7,T8, Var&> 
-                        (a1,a2,a3,a4,a5,a6,a7,a8, var) 
-                  );
-}
-
-template  <class T1,class T2,class T3,class T4,class T5,class T6,class T7,class T8,class T9, class Var> 
-inline
-detail::group1< detail::group10<T1,T2,T3,T4,T5,T6,T7,T8,T9, Var&> >
-  group(T1 a1,T2 a2,T3 a3,T4 a4,T5 a5,T6 a6,T7 a7,T8 a8,T9 a9, Var& var)
-{ 
-   return detail::group1< detail::group10<T1,T2,T3,T4,T5,T6,T7,T8,T9, Var&> >
-                   ( detail::group10<T1,T2,T3,T4,T5,T6,T7,T8,T9, Var&> 
-                        (a1,a2,a3,a4,a5,a6,a7,a8,a9, var) 
-                  );
-}
-
-
-#endif  // - BOOST_NO_OVERLOAD_FOR_NON_CONST
-
-
-} // namespace io
-
-} // namespace boost
-
-
-#endif   // BOOST_FORMAT_GROUP_HPP
diff --git a/boost/format/internals.hpp b/boost/format/internals.hpp
deleted file mode 100644
index b0d874a..0000000
--- a/boost/format/internals.hpp
+++ /dev/null
@@ -1,201 +0,0 @@
-// ----------------------------------------------------------------------------
-// internals.hpp :  internal structs : stream_format_state, format_item. 
-//                  included by format.hpp
-// ----------------------------------------------------------------------------
-
-//  Copyright Samuel Krempp 2003. Use, modification, and distribution are
-//  subject to the Boost Software License, Version 1.0. (See accompanying
-//  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org/libs/format for library home page
-
-// ----------------------------------------------------------------------------
-
-#ifndef BOOST_FORMAT_INTERNALS_HPP
-#define BOOST_FORMAT_INTERNALS_HPP
-
-
-#include <string>
-#include <boost/assert.hpp>
-#include <boost/optional.hpp>
-#include <boost/limits.hpp>
-#include <boost/format/detail/compat_workarounds.hpp>
-#include <boost/format/alt_sstream.hpp> // used as a dummy stream
-
-namespace boost {
-namespace io {
-namespace detail {
-
-
-//---- stream_format_state --------------------------------------------------//
-
-//   set of params that define the format state of a stream
-    template<class Ch, class Tr> 
-    struct stream_format_state 
-    {
-        typedef BOOST_IO_STD basic_ios<Ch, Tr>   basic_ios;
-
-        stream_format_state(Ch fill)                 { reset(fill); }
-//        stream_format_state(const basic_ios& os)     { set_by_stream(os); }
-
-        void reset(Ch fill);                     //- sets to default state.
-        void set_by_stream(const basic_ios& os); //- sets to os's state.
-        void apply_on(basic_ios & os,            //- applies format_state to the stream
-                      boost::io::detail::locale_t * loc_default = 0) const;
-        template<class T> 
-        void apply_manip(T manipulator)          //- modifies state by applying manipulator
-            { apply_manip_body<Ch, Tr, T>( *this, manipulator) ; }
-
-        // --- data ---
-        std::streamsize width_;
-        std::streamsize precision_;
-        Ch fill_; 
-        std::ios_base::fmtflags flags_;
-        std::ios_base::iostate  rdstate_;
-        std::ios_base::iostate  exceptions_;
-        boost::optional<boost::io::detail::locale_t>  loc_;
-    };  
-
-
-//---- format_item  ---------------------------------------------------------//
-
-//   stores all parameters that can be specified in format strings
-    template<class Ch, class Tr, class Alloc>  
-    struct format_item 
-    {     
-        enum pad_values { zeropad = 1, spacepad =2, centered=4, tabulation = 8 };
-                         // 1. if zeropad is set, all other bits are not, 
-                         // 2. if tabulation is set, all others are not.
-                         // centered and spacepad can be mixed freely.
-        enum arg_values { argN_no_posit   = -1, // non-positional directive. will set argN later
-                          argN_tabulation = -2, // tabulation directive. (no argument read) 
-                          argN_ignored    = -3  // ignored directive. (no argument read)
-        };
-        typedef BOOST_IO_STD basic_ios<Ch, Tr>                    basic_ios;
-        typedef detail::stream_format_state<Ch, Tr>               stream_format_state;
-        typedef ::std::basic_string<Ch, Tr, Alloc>                string_type;
-
-        format_item(Ch fill) :argN_(argN_no_posit), fmtstate_(fill), 
-                              truncate_(max_streamsize()), pad_scheme_(0)  {}
-        void reset(Ch fill);
-        void compute_states(); // sets states  according to truncate and pad_scheme.
-
-        static std::streamsize max_streamsize() { 
-            return (std::numeric_limits<std::streamsize>::max)();
-        }
-
-        // --- data ---
-        int         argN_;  //- argument number (starts at 0,  eg : %1 => argN=0)
-                            //  negative values for items that don't process an argument
-        string_type  res_;      //- result of the formatting of this item
-        string_type  appendix_; //- piece of string between this item and the next
-
-        stream_format_state fmtstate_;// set by parsing, is only affected by modify_item
-
-        std::streamsize truncate_;//- is set for directives like %.5s that ask truncation
-        unsigned int pad_scheme_;//- several possible padding schemes can mix. see pad_values
-    }; 
-
-
-
-//--- Definitions  ------------------------------------------------------------
-
-// -   stream_format_state:: -------------------------------------------------
-    template<class Ch, class Tr>
-    void stream_format_state<Ch,Tr>:: apply_on (basic_ios & os,
-                      boost::io::detail::locale_t * loc_default) const {
-        // set the state of this stream according to our params
-        if(width_ != -1)
-            os.width(width_);
-        if(precision_ != -1)
-            os.precision(precision_);
-        if(fill_ != 0)
-            os.fill(fill_);
-        os.flags(flags_);
-        os.clear(rdstate_);
-        os.exceptions(exceptions_);
-#if !defined(BOOST_NO_STD_LOCALE)
-        if(loc_)
-            os.imbue(loc_.get());
-        else if(loc_default)
-            os.imbue(*loc_default);
-#else
-        (void) loc_default; // keep compiler quiet if we don't support locales
-#endif        
-    }
-
-    template<class Ch, class Tr>
-    void stream_format_state<Ch,Tr>:: set_by_stream(const basic_ios& os) {
-        // set our params according to the state of this stream
-        flags_ = os.flags();
-        width_ = os.width();
-        precision_ = os.precision();
-        fill_ = os.fill();
-        rdstate_ = os.rdstate();
-        exceptions_ = os.exceptions();
-    }
-
-
-    template<class Ch, class Tr, class T>
-    void apply_manip_body( stream_format_state<Ch, Tr>& self,
-                           T manipulator) {
-        // modify our params according to the manipulator
-        basic_oaltstringstream<Ch, Tr>  ss;
-        self.apply_on( ss );
-        ss << manipulator;
-        self.set_by_stream( ss );
-    }
-
-    template<class Ch, class Tr> inline
-    void stream_format_state<Ch,Tr>:: reset(Ch fill) {
-        // set our params to standard's default state.   cf 27.4.4.1 of the C++ norm
-        width_=0; precision_=6; 
-        fill_=fill; // default is widen(' '), but we cant compute it without the locale
-        flags_ = std::ios_base::dec | std::ios_base::skipws; 
-        // the adjust_field part is left equal to 0, which means right.
-        exceptions_ = std::ios_base::goodbit;
-        rdstate_ = std::ios_base::goodbit;
-    }
-
-
-// ---   format_item:: --------------------------------------------------------
-
-    template<class Ch, class Tr, class Alloc> 
-    void format_item<Ch, Tr, Alloc>:: 
-    reset (Ch fill) { 
-        argN_=argN_no_posit; truncate_ = max_streamsize(); pad_scheme_ =0; 
-        res_.resize(0); appendix_.resize(0);
-        fmtstate_.reset(fill);
-    }
-
-    template<class Ch, class Tr, class Alloc> 
-    void format_item<Ch, Tr, Alloc>:: 
-    compute_states() {
-        // reflect pad_scheme_   on  fmt_state_
-        //   because some pad_schemes has complex consequences on several state params.
-        if(pad_scheme_ & zeropad) {
-            // ignore zeropad in left alignment :
-            if(fmtstate_.flags_ & std::ios_base::left) {
-              BOOST_ASSERT(!(fmtstate_.flags_ &(std::ios_base::adjustfield ^std::ios_base::left)));
-              // only left bit might be set. (not right, nor internal)
-              pad_scheme_ = pad_scheme_ & (~zeropad); 
-            }
-            else { 
-                pad_scheme_ &= ~spacepad; // printf ignores spacepad when zeropadding
-                fmtstate_.fill_='0'; 
-                fmtstate_.flags_ = (fmtstate_.flags_ & ~std::ios_base::adjustfield) 
-                    | std::ios_base::internal;
-                // removes all adjustfield bits, and adds internal.
-            }
-        }
-        if(pad_scheme_ & spacepad) {
-            if(fmtstate_.flags_ & std::ios_base::showpos)
-                pad_scheme_ &= ~spacepad;
-        }
-    }
-
-
-} } } // namespaces boost :: io :: detail
-
-
-#endif // BOOST_FORMAT_INTERNALS_HPP
diff --git a/boost/format/internals_fwd.hpp b/boost/format/internals_fwd.hpp
deleted file mode 100644
index e44eb3c..0000000
--- a/boost/format/internals_fwd.hpp
+++ /dev/null
@@ -1,60 +0,0 @@
-// ----------------------------------------------------------------------------
-// internals_fwd.hpp :  forward declarations, for internal headers
-// ----------------------------------------------------------------------------
-
-//  Copyright Samuel Krempp 2003. Use, modification, and distribution are
-//  subject to the Boost Software License, Version 1.0. (See accompanying
-//  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org/libs/format for library home page
-
-// ----------------------------------------------------------------------------
-
-#ifndef BOOST_FORMAT_INTERNAL_FWD_HPP
-#define BOOST_FORMAT_INTERNAL_FWD_HPP
-
-#include <boost/format/format_fwd.hpp>
-#include <boost/config.hpp>
-
-
-namespace boost {
-namespace io {
-
-namespace detail {
-  template<class Ch, class Tr> struct stream_format_state;
-    template<class Ch, class Tr, class Alloc> struct format_item;
-
-
-  // these functions were intended as methods, 
-  // but MSVC have problems with template member functions :
-  // defined in format_implementation.hpp :
-    template<class Ch, class Tr, class Alloc, class T> 
-    basic_format<Ch, Tr, Alloc>&  
-    modify_item_body (basic_format<Ch, Tr, Alloc>& self, 
-                      int itemN, T manipulator);
-
-    template<class Ch, class Tr, class Alloc, class T> 
-    basic_format<Ch, Tr, Alloc>&  
-    bind_arg_body (basic_format<Ch, Tr, Alloc>& self,
-                   int argN, const T& val);
-
-    // in internals.hpp :
-    template<class Ch, class Tr, class T> 
-    void apply_manip_body (stream_format_state<Ch, Tr>& self,
-                           T manipulator);
-
-    // argument feeding (defined in feed_args.hpp ) :
-    template<class Ch, class Tr, class Alloc, class T> 
-    void distribute (basic_format<Ch,Tr, Alloc>& self, T x);
-
-    template<class Ch, class Tr, class Alloc, class T> 
-    basic_format<Ch, Tr, Alloc>& 
-    feed (basic_format<Ch,Tr, Alloc>& self, T x);
- 
-} // namespace detail
-
-} // namespace io
-} // namespace boost
-
-
-#endif //  BOOST_FORMAT_INTERNAL_FWD_HPP
diff --git a/boost/format/parsing.hpp b/boost/format/parsing.hpp
deleted file mode 100644
index b14ca82..0000000
--- a/boost/format/parsing.hpp
+++ /dev/null
@@ -1,504 +0,0 @@
-// ----------------------------------------------------------------------------
-// parsing.hpp :  implementation of the parsing member functions
-//                      ( parse, parse_printf_directive)
-// ----------------------------------------------------------------------------
-
-//  Copyright Samuel Krempp 2003. Use, modification, and distribution are
-//  subject to the Boost Software License, Version 1.0. (See accompanying
-//  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// see http://www.boost.org/libs/format for library home page
-
-// ----------------------------------------------------------------------------
-
-#ifndef BOOST_FORMAT_PARSING_HPP
-#define BOOST_FORMAT_PARSING_HPP
-
-
-#include <boost/format/format_class.hpp>
-#include <boost/format/exceptions.hpp>
-#include <boost/throw_exception.hpp>
-#include <boost/assert.hpp>
-
-
-namespace boost {
-namespace io {
-namespace detail {
-
-#if defined(BOOST_NO_STD_LOCALE)
-    // streams will be used for narrow / widen. but these methods are not const
-    template<class T>
-    T& const_or_not(const T& x) { 
-        return const_cast<T&> (x);
-    }
-#else
-    template<class T>
-    const T& const_or_not(const T& x) { 
-        return x;
-    }
-#endif
-
-    template<class Ch, class Facet> inline
-    char wrap_narrow(const Facet& fac, Ch c, char deflt) {
-        return const_or_not(fac).narrow(c, deflt);
-    }
-
-    template<class Ch, class Facet> inline
-    bool wrap_isdigit(const Facet& fac, Ch c) {
-#if ! defined( BOOST_NO_LOCALE_ISDIGIT )
-        return fac.is(std::ctype<Ch>::digit, c);
-# else
-        (void) fac;     // remove "unused parameter" warning
-        using namespace std;
-        return isdigit(c); 
-#endif 
-    }
- 
-    template<class Iter, class Facet> 
-    Iter wrap_scan_notdigit(const Facet & fac, Iter beg, Iter end) {
-        using namespace std;
-        for( ; beg!=end && wrap_isdigit(fac, *beg); ++beg) ;
-        return beg;
-    }
-
-
-    // Input : [start, last) iterators range and a
-    //          a Facet to use its widen/narrow member function
-    // Effects : read sequence and convert digits into integral n, of type Res
-    // Returns : n
-    template<class Res, class Iter, class Facet>
-    Iter str2int (const Iter & start, const Iter & last, Res & res, 
-                 const Facet& fac) 
-    {
-        using namespace std;
-        Iter it;
-        res=0;
-        for(it=start; it != last && wrap_isdigit(fac, *it); ++it ) {
-            char cur_ch = wrap_narrow(fac, *it, 0); // cant fail.
-            res *= 10;
-            res += cur_ch - '0'; // 22.2.1.1.2.13 of the C++ standard
-        }
-        return it;
-    }
-
-    // skip printf's "asterisk-fields" directives in the format-string buf
-    // Input : char string, with starting index *pos_p
-    //         a Facet merely to use its widen/narrow member function
-    // Effects : advance *pos_p by skipping printf's asterisk fields.
-    // Returns : nothing
-    template<class Iter, class Facet>
-    Iter skip_asterisk(Iter start, Iter last, const Facet& fac) 
-    {
-        using namespace std;
-        ++ start;
-        start = wrap_scan_notdigit(fac, start, last);
-        if(start!=last && *start== const_or_not(fac).widen( '$') )
-            ++start;
-        return start;
-    }
-
-
-    // auxiliary func called by parse_printf_directive
-    // for centralising error handling
-    // it either throws if user sets the corresponding flag, or does nothing.
-    inline void maybe_throw_exception(unsigned char exceptions, 
-                                      std::size_t pos, std::size_t size)
-    {
-        if(exceptions & io::bad_format_string_bit)
-            boost::throw_exception(io::bad_format_string(pos, size) );
-    }
-    
-
-    // Input: the position of a printf-directive in the format-string
-    //    a basic_ios& merely to use its widen/narrow member function
-    //    a bitset'exceptions' telling whether to throw exceptions on errors.
-    // Returns:
-    //  true if parse succeeded (ignore some errors if exceptions disabled)
-    //  false if it failed so bad that the directive should be printed verbatim
-    // Effects:
-    //  start is incremented so that *start is the first char after
-    //     this directive
-    //  *fpar is set with the parameters read in the directive
-    template<class Ch, class Tr, class Alloc, class Iter, class Facet>
-    bool parse_printf_directive(Iter & start, const Iter& last, 
-                                detail::format_item<Ch, Tr, Alloc> * fpar,
-                                const Facet& fac,
-                                std::size_t offset, unsigned char exceptions)
-    {
-        typedef typename basic_format<Ch, Tr, Alloc>::format_item_t format_item_t;
-
-        fpar->argN_ = format_item_t::argN_no_posit;  // if no positional-directive
-        bool precision_set = false;
-        bool in_brackets=false;
-        Iter start0 = start;
-        std::size_t fstring_size = last-start0+offset;
-
-        if(start>= last) { // empty directive : this is a trailing %
-                maybe_throw_exception(exceptions, start-start0 + offset, fstring_size);
-                return false;
-        }          
-          
-        if(*start== const_or_not(fac).widen( '|')) {
-            in_brackets=true;
-            if( ++start >= last ) {
-                maybe_throw_exception(exceptions, start-start0 + offset, fstring_size);
-                return false;
-            }
-        }
-
-        // the flag '0' would be picked as a digit for argument order, but here it's a flag :
-        if(*start== const_or_not(fac).widen( '0')) 
-            goto parse_flags;
-
-        // handle argument order (%2$d)  or possibly width specification: %2d
-        if(wrap_isdigit(fac, *start)) {
-            int n;
-            start = str2int(start, last, n, fac);
-            if( start >= last ) {
-                maybe_throw_exception(exceptions, start-start0+offset, fstring_size);
-                return false;
-            }
-            
-            // %N% case : this is already the end of the directive
-            if( *start ==  const_or_not(fac).widen( '%') ) {
-                fpar->argN_ = n-1;
-                ++start;
-                if( in_brackets) 
-                    maybe_throw_exception(exceptions, start-start0+offset, fstring_size); 
-                // but don't return.  maybe "%" was used in lieu of '$', so we go on.
-                else
-                    return true;
-            }
-
-            if ( *start== const_or_not(fac).widen( '$') ) {
-                fpar->argN_ = n-1;
-                ++start;
-            } 
-            else {
-                // non-positionnal directive
-                fpar->fmtstate_.width_ = n;
-                fpar->argN_  = format_item_t::argN_no_posit;
-                goto parse_precision;
-            }
-        }
-    
-      parse_flags: 
-        // handle flags
-        while ( start != last) { // as long as char is one of + - = _ # 0 l h   or ' '
-            // misc switches
-            switch ( wrap_narrow(fac, *start, 0)) {
-            case '\'' : break; // no effect yet. (painful to implement)
-            case 'l':
-            case 'h':  // short/long modifier : for printf-comaptibility (no action needed)
-                break;
-            case '-':
-                fpar->fmtstate_.flags_ |= std::ios_base::left;
-                break;
-            case '=':
-                fpar->pad_scheme_ |= format_item_t::centered;
-                break;
-            case '_':
-                fpar->fmtstate_.flags_ |= std::ios_base::internal;
-                break;
-            case ' ':
-                fpar->pad_scheme_ |= format_item_t::spacepad;
-                break;
-            case '+':
-                fpar->fmtstate_.flags_ |= std::ios_base::showpos;
-                break;
-            case '0':
-                fpar->pad_scheme_ |= format_item_t::zeropad;
-                // need to know alignment before really setting flags,
-                // so just add 'zeropad' flag for now, it will be processed later.
-                break;
-            case '#':
-                fpar->fmtstate_.flags_ |= std::ios_base::showpoint | std::ios_base::showbase;
-                break;
-            default:
-                goto parse_width;
-            }
-            ++start;
-        } // loop on flag.
-
-        if( start>=last) {
-            maybe_throw_exception(exceptions, start-start0+offset, fstring_size);
-            return true; 
-        }
-      parse_width:
-        // handle width spec
-        // first skip 'asterisk fields' :  *, or *N$
-        if(*start == const_or_not(fac).widen( '*') )
-            start = skip_asterisk(start, last, fac); 
-        if(start!=last && wrap_isdigit(fac, *start))
-            start = str2int(start, last, fpar->fmtstate_.width_, fac);
-
-      parse_precision:
-        if( start>= last) { 
-            maybe_throw_exception(exceptions, start-start0+offset, fstring_size);
-            return true;
-        }
-        // handle precision spec
-        if (*start== const_or_not(fac).widen( '.')) {
-            ++start;
-            if(start != last && *start == const_or_not(fac).widen( '*') )
-                start = skip_asterisk(start, last, fac); 
-            if(start != last && wrap_isdigit(fac, *start)) {
-                start = str2int(start, last, fpar->fmtstate_.precision_, fac);
-                precision_set = true;
-            }
-            else
-                fpar->fmtstate_.precision_ =0;
-        }
-    
-        // handle  formatting-type flags :
-        while( start != last && ( *start== const_or_not(fac).widen( 'l') 
-                                  || *start== const_or_not(fac).widen( 'L') 
-                                  || *start== const_or_not(fac).widen( 'h')) )
-            ++start;
-        if( start>=last) {
-            maybe_throw_exception(exceptions, start-start0+offset, fstring_size);
-            return true;
-        }
-
-        if( in_brackets && *start== const_or_not(fac).widen( '|') ) {
-            ++start;
-            return true;
-        }
-        switch ( wrap_narrow(fac, *start, 0) ) {
-        case 'X':
-            fpar->fmtstate_.flags_ |= std::ios_base::uppercase;
-        case 'p': // pointer => set hex.
-        case 'x':
-            fpar->fmtstate_.flags_ &= ~std::ios_base::basefield;
-            fpar->fmtstate_.flags_ |= std::ios_base::hex;
-            break;
-
-        case 'o':
-            fpar->fmtstate_.flags_ &= ~std::ios_base::basefield;
-            fpar->fmtstate_.flags_ |=  std::ios_base::oct;
-            break;
-
-        case 'E':
-            fpar->fmtstate_.flags_ |=  std::ios_base::uppercase;
-        case 'e':
-            fpar->fmtstate_.flags_ &= ~std::ios_base::floatfield;
-            fpar->fmtstate_.flags_ |=  std::ios_base::scientific;
-
-            fpar->fmtstate_.flags_ &= ~std::ios_base::basefield;
-            fpar->fmtstate_.flags_ |=  std::ios_base::dec;
-            break;
-      
-        case 'f':
-            fpar->fmtstate_.flags_ &= ~std::ios_base::floatfield;
-            fpar->fmtstate_.flags_ |=  std::ios_base::fixed;
-        case 'u':
-        case 'd':
-        case 'i':
-            fpar->fmtstate_.flags_ &= ~std::ios_base::basefield;
-            fpar->fmtstate_.flags_ |=  std::ios_base::dec;
-            break;
-
-        case 'T':
-            ++start;
-            if( start >= last)
-                maybe_throw_exception(exceptions, start-start0+offset, fstring_size);
-            else
-                fpar->fmtstate_.fill_ = *start;
-            fpar->pad_scheme_ |= format_item_t::tabulation;
-            fpar->argN_ = format_item_t::argN_tabulation; 
-            break;
-        case 't': 
-            fpar->fmtstate_.fill_ = const_or_not(fac).widen( ' ');
-            fpar->pad_scheme_ |= format_item_t::tabulation;
-            fpar->argN_ = format_item_t::argN_tabulation; 
-            break;
-
-        case 'G':
-            fpar->fmtstate_.flags_ |= std::ios_base::uppercase;
-            break;
-        case 'g': // 'g' conversion is default for floats.
-            fpar->fmtstate_.flags_ &= ~std::ios_base::basefield;
-            fpar->fmtstate_.flags_ |=  std::ios_base::dec;
-
-            // CLEAR all floatield flags, so stream will CHOOSE
-            fpar->fmtstate_.flags_ &= ~std::ios_base::floatfield; 
-            break;
-
-        case 'C':
-        case 'c': 
-            fpar->truncate_ = 1;
-            break;
-        case 'S':
-        case 's': 
-            if(precision_set) // handle truncation manually, with own parameter.
-                fpar->truncate_ = fpar->fmtstate_.precision_;
-            fpar->fmtstate_.precision_ = 6; // default stream precision.
-            break;
-        case 'n' :  
-            fpar->argN_ = format_item_t::argN_ignored;
-            break;
-        default: 
-            maybe_throw_exception(exceptions, start-start0+offset, fstring_size);
-        }
-        ++start;
-
-        if( in_brackets ) {
-            if( start != last && *start== const_or_not(fac).widen( '|') ) {
-                ++start;
-                return true;
-            }
-            else  maybe_throw_exception(exceptions, start-start0+offset, fstring_size);
-        }
-        return true;
-    }
-    // -end parse_printf_directive()
-
-    template<class String, class Facet>
-    int upper_bound_from_fstring(const String& buf, 
-                                 const typename String::value_type arg_mark,
-                                 const Facet& fac, 
-                                 unsigned char exceptions) 
-    {
-        // quick-parsing of the format-string to count arguments mark (arg_mark, '%')
-        // returns : upper bound on the number of format items in the format strings
-        using namespace boost::io;
-        typename String::size_type i1=0;
-        int num_items=0;
-        while( (i1=buf.find(arg_mark,i1)) != String::npos ) {
-            if( i1+1 >= buf.size() ) {
-                if(exceptions & bad_format_string_bit)
-                    boost::throw_exception(bad_format_string(i1, buf.size() )); // must not end in ".. %"
-                else {
-                  ++num_items;
-                  break;
-                }
-            }
-            if(buf[i1+1] == buf[i1] ) {// escaped "%%"
-                i1+=2; continue; 
-            }
-
-            ++i1;
-            // in case of %N% directives, dont count it double (wastes allocations..) :
-            i1 = detail::wrap_scan_notdigit(fac, buf.begin()+i1, buf.end()) - buf.begin();
-            if( i1 < buf.size() && buf[i1] == arg_mark )
-                ++i1;
-            ++num_items;
-        }
-        return num_items;
-    }
-    template<class String> inline
-    void append_string(String& dst, const String& src, 
-                       const typename String::size_type beg, 
-                       const typename String::size_type end) {
-#if !defined(BOOST_NO_STRING_APPEND)
-        dst.append(src.begin()+beg, src.begin()+end);
-#else
-        dst += src.substr(beg, end-beg);
-#endif
-    }
-
-} // detail namespace
-} // io namespace
-
-
-
-// -----------------------------------------------
-//  format :: parse(..)
-
-    template<class Ch, class Tr, class Alloc>
-    basic_format<Ch, Tr, Alloc>& basic_format<Ch, Tr, Alloc>:: 
-    parse (const string_type& buf) {
-        // parse the format-string 
-        using namespace std;
-#if !defined(BOOST_NO_STD_LOCALE)
-        const std::ctype<Ch> & fac = BOOST_USE_FACET( std::ctype<Ch>, getloc());
-#else
-        io::basic_oaltstringstream<Ch, Tr, Alloc> fac; 
-        //has widen and narrow even on compilers without locale
-#endif
-
-        const Ch arg_mark = io::detail::const_or_not(fac).widen( '%');
-        bool ordered_args=true; 
-        int max_argN=-1;
-
-        // A: find upper_bound on num_items and allocates arrays
-        int num_items = io::detail::upper_bound_from_fstring(buf, arg_mark, fac, exceptions());
-        make_or_reuse_data(num_items);
-
-        // B: Now the real parsing of the format string :
-        num_items=0;
-        typename string_type::size_type i0=0, i1=0;
-        typename string_type::const_iterator it;
-        bool special_things=false;
-        int cur_item=0;
-        while( (i1=buf.find(arg_mark,i1)) != string_type::npos ) {
-            string_type & piece = (cur_item==0) ? prefix_ : items_[cur_item-1].appendix_;
-            if( buf[i1+1] == buf[i1] ) { // escaped mark, '%%' 
-                io::detail::append_string(piece, buf, i0, i1+1);
-                i1+=2; i0=i1;
-                continue; 
-            }
-            BOOST_ASSERT(  static_cast<unsigned int>(cur_item) < items_.size() || cur_item==0);
-
-            if(i1!=i0) {
-                io::detail::append_string(piece, buf, i0, i1);
-                i0=i1;
-            }
-            ++i1;
-            it = buf.begin()+i1;
-            bool parse_ok = io::detail::parse_printf_directive(
-                it, buf.end(), &items_[cur_item], fac, i1, exceptions());
-            i1 = it - buf.begin();
-            if( ! parse_ok ) // the directive will be printed verbatim
-                continue; 
-            i0=i1;
-            items_[cur_item].compute_states(); // process complex options, like zeropad, into params
-
-            int argN=items_[cur_item].argN_;
-            if(argN == format_item_t::argN_ignored)
-                continue;
-            if(argN ==format_item_t::argN_no_posit)
-                ordered_args=false;
-            else if(argN == format_item_t::argN_tabulation) special_things=true;
-            else if(argN > max_argN) max_argN = argN;
-            ++num_items;
-            ++cur_item;
-        } // loop on %'s
-        BOOST_ASSERT(cur_item == num_items);
-    
-        // store the final piece of string
-        {
-            string_type & piece = (cur_item==0) ? prefix_ : items_[cur_item-1].appendix_;
-            io::detail::append_string(piece, buf, i0, buf.size());
-        }
-    
-        if( !ordered_args) {
-            if(max_argN >= 0 ) {  // dont mix positional with non-positionnal directives
-                if(exceptions() & io::bad_format_string_bit)
-                    boost::throw_exception(io::bad_format_string(max_argN, 0));
-                // else do nothing. => positionnal arguments are processed as non-positionnal
-            }
-            // set things like it would have been with positional directives :
-            int non_ordered_items = 0;
-            for(int i=0; i< num_items; ++i)
-                if(items_[i].argN_ == format_item_t::argN_no_posit) {
-                    items_[i].argN_ = non_ordered_items;
-                    ++non_ordered_items;
-                }
-            max_argN = non_ordered_items-1;
-        }
-    
-        // C: set some member data :
-        items_.resize(num_items, format_item_t(io::detail::const_or_not(fac).widen( ' ')) );
-
-        if(special_things) style_ |= special_needs;
-        num_args_ = max_argN + 1;
-        if(ordered_args) style_ |=  ordered;
-        else style_ &= ~ordered;
-        return *this;
-    }
-
-} // namespace boost
-
-
-#endif //  BOOST_FORMAT_PARSING_HPP
diff --git a/boost/functional/hash/hash_fwd.hpp b/boost/functional/hash/hash_fwd.hpp
deleted file mode 100644
index 1d51b07..0000000
--- a/boost/functional/hash/hash_fwd.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-
-// Copyright 2005-2009 Daniel James.
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  Based on Peter Dimov's proposal
-//  http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2005/n1756.pdf
-//  issue 6.18. 
-
-#if !defined(BOOST_FUNCTIONAL_HASH_FWD_HPP)
-#define BOOST_FUNCTIONAL_HASH_FWD_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <boost/config.hpp>
-#include <cstddef>
-#include <boost/detail/workaround.hpp>
-
-namespace boost
-{
-    template <class T> struct hash;
-
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-    template <class T> void hash_combine(std::size_t& seed, T& v);
-#else
-    template <class T> void hash_combine(std::size_t& seed, T const& v);
-#endif
-
-    template <class It> std::size_t hash_range(It, It);
-    template <class It> void hash_range(std::size_t&, It, It);
-
-#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x551))
-    template <class T> inline std::size_t hash_range(T*, T*);
-    template <class T> inline void hash_range(std::size_t&, T*, T*);
-#endif
-}
-
-#endif
diff --git a/boost/functional/hash_fwd.hpp b/boost/functional/hash_fwd.hpp
deleted file mode 100644
index b640988..0000000
--- a/boost/functional/hash_fwd.hpp
+++ /dev/null
@@ -1,7 +0,0 @@
-
-// Copyright 2005-2009 Daniel James.
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#include <boost/functional/hash/hash_fwd.hpp>
-
diff --git a/boost/fusion/adapted/mpl/detail/begin_impl.hpp b/boost/fusion/adapted/mpl/detail/begin_impl.hpp
deleted file mode 100644
index ef274ba..0000000
--- a/boost/fusion/adapted/mpl/detail/begin_impl.hpp
+++ /dev/null
@@ -1,45 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-    Copyright (c) 2005-2006 Dan Marsden
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(BOOST_FUSION_BEGIN_IMPL_31122005_1209)
-#define BOOST_FUSION_BEGIN_IMPL_31122005_1209
-
-#include <boost/fusion/adapted/mpl/mpl_iterator.hpp>
-#include <boost/mpl/begin.hpp>
-#include <boost/type_traits/remove_const.hpp>
-
-namespace boost { namespace fusion {
-    
-    struct mpl_sequence_tag;
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct begin_impl;
-
-        template <>
-        struct begin_impl<mpl_sequence_tag>
-        {
-            template <typename Sequence>
-            struct apply 
-            {
-                typedef typename mpl::begin<
-                    typename remove_const<Sequence>::type
-                >::type iterator;
-                typedef mpl_iterator<iterator> type;
-                
-                static type
-                call(Sequence)
-                {
-                    return type();
-                }
-            };
-        };
-    }
-}}
-
-#endif
diff --git a/boost/fusion/adapted/mpl/detail/end_impl.hpp b/boost/fusion/adapted/mpl/detail/end_impl.hpp
deleted file mode 100644
index 613ab63..0000000
--- a/boost/fusion/adapted/mpl/detail/end_impl.hpp
+++ /dev/null
@@ -1,45 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-    Copyright (c) 2005-2006 Dan Marsden
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(BOOST_FUSION_END_IMPL_31122005_1237)
-#define BOOST_FUSION_END_IMPL_31122005_1237
-
-#include <boost/fusion/adapted/mpl/mpl_iterator.hpp>
-#include <boost/mpl/end.hpp>
-#include <boost/type_traits/add_const.hpp>
-
-namespace boost { namespace fusion
-{
-    struct mpl_sequence_tag;
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct end_impl;
-
-        template <>
-        struct end_impl<mpl_sequence_tag>
-        {
-            template <typename Sequence>
-            struct apply
-            {
-                typedef typename mpl::end<
-                    typename remove_const<Sequence>::type
-                >::type iterator;
-                typedef mpl_iterator<iterator> type;
-                
-                static type
-                call(Sequence)
-                {
-                    return type();
-                }
-            };
-        };
-    }
-}}
-
-#endif
diff --git a/boost/fusion/adapted/mpl/mpl_iterator.hpp b/boost/fusion/adapted/mpl/mpl_iterator.hpp
deleted file mode 100644
index 7caa8ea..0000000
--- a/boost/fusion/adapted/mpl/mpl_iterator.hpp
+++ /dev/null
@@ -1,113 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_MPL_ITERATOR_05052005_0731)
-#define FUSION_MPL_ITERATOR_05052005_0731
-
-#include <boost/fusion/support/detail/mpl_iterator_category.hpp>
-#include <boost/fusion/iterator/iterator_facade.hpp>
-#include <boost/type_traits/remove_const.hpp>
-#include <boost/mpl/deref.hpp>
-#include <boost/mpl/next.hpp>
-#include <boost/mpl/prior.hpp>
-#include <boost/mpl/advance.hpp>
-#include <boost/mpl/distance.hpp>
-
-namespace boost { namespace fusion
-{
-    template <typename Iterator_>
-    struct mpl_iterator
-        : iterator_facade<
-            mpl_iterator<Iterator_>
-          , typename detail::mpl_iterator_category<typename Iterator_::category>::type
-        >
-    {
-        typedef typename remove_const<Iterator_>::type iterator_type;
-
-        template <typename Iterator>
-        struct value_of : mpl::deref<typename Iterator::iterator_type> {};
-
-        template <typename Iterator>
-        struct deref
-        {
-            typedef typename mpl::deref<
-                typename Iterator::iterator_type>::type
-            type;
-
-            static type
-            call(Iterator)
-            {
-                return type();
-            }
-        };
-
-        template <typename Iterator>
-        struct next
-        {
-            typedef mpl_iterator<
-                typename mpl::next<typename Iterator::iterator_type>::type> 
-            type;
-
-            static type
-            call(Iterator)
-            {
-                return type();
-            }
-        };
-
-        template <typename Iterator>
-        struct prior
-        {
-            typedef mpl_iterator<
-                typename mpl::prior<typename Iterator::iterator_type>::type> 
-            type;
-
-            static type
-            call(Iterator)
-            {
-                return type();
-            }
-        };
-
-        template <typename Iterator, typename N>
-        struct advance
-        {
-            typedef mpl_iterator<
-                typename mpl::advance<typename Iterator::iterator_type, N>::type>
-            type;
-
-            static type
-            call(Iterator const& /*i*/)
-            {
-                return type();
-            }
-        };
-
-        template <typename I1, typename I2>
-        struct distance : 
-            mpl::distance<
-                typename I1::iterator_type
-              , typename I2::iterator_type>
-        {
-            typedef typename 
-                mpl::distance<
-                    typename I1::iterator_type
-                  , typename I2::iterator_type
-                >::type
-            type;
-            
-            static type
-            call(I1 const&, I2 const&)
-            {
-                return type();
-            }
-        };
-    };
-}}
-
-#endif
-
-
diff --git a/boost/fusion/adapted/std_pair.hpp b/boost/fusion/adapted/std_pair.hpp
deleted file mode 100644
index 4263e00..0000000
--- a/boost/fusion/adapted/std_pair.hpp
+++ /dev/null
@@ -1,19 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-    Copyright (c) 2005-2006 Dan Marsden
-    Copyright (c) 2009-2010 Christopher Schmidt
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-
-#ifndef BOOST_FUSION_ADAPTED_STD_PAIR_HPP
-#define BOOST_FUSION_ADAPTED_STD_PAIR_HPP
-
-#include <boost/fusion/adapted/struct/adapt_struct.hpp>
-#include <utility>
-
-BOOST_FUSION_ADAPT_TPL_STRUCT(
-    (T1)(T2),(std::pair)(T1)(T2),(T1, first)(T2, second))
-
-#endif
diff --git a/boost/fusion/adapted/struct/adapt_struct.hpp b/boost/fusion/adapted/struct/adapt_struct.hpp
deleted file mode 100644
index f20533c..0000000
--- a/boost/fusion/adapted/struct/adapt_struct.hpp
+++ /dev/null
@@ -1,71 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2007 Joel de Guzman
-    Copyright (c) 2009-2011 Christopher Schmidt
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-
-#ifndef BOOST_FUSION_ADAPTED_STRUCT_ADAPT_STRUCT_HPP
-#define BOOST_FUSION_ADAPTED_STRUCT_ADAPT_STRUCT_HPP
-
-#include <boost/preprocessor/cat.hpp>
-#include <boost/preprocessor/empty.hpp>
-#include <boost/type_traits/add_reference.hpp>
-#include <boost/type_traits/is_const.hpp>
-#include <boost/type_traits/add_const.hpp>
-#include <boost/type_traits/remove_const.hpp>
-
-#include <boost/fusion/adapted/struct/detail/extension.hpp>
-#include <boost/fusion/adapted/struct/detail/adapt_base.hpp>
-#include <boost/fusion/adapted/struct/detail/at_impl.hpp>
-#include <boost/fusion/adapted/struct/detail/is_view_impl.hpp>
-#include <boost/fusion/adapted/struct/detail/is_sequence_impl.hpp>
-#include <boost/fusion/adapted/struct/detail/value_at_impl.hpp>
-#include <boost/fusion/adapted/struct/detail/category_of_impl.hpp>
-#include <boost/fusion/adapted/struct/detail/size_impl.hpp>
-#include <boost/fusion/adapted/struct/detail/begin_impl.hpp>
-#include <boost/fusion/adapted/struct/detail/end_impl.hpp>
-#include <boost/fusion/adapted/struct/detail/value_of_impl.hpp>
-#include <boost/fusion/adapted/struct/detail/deref_impl.hpp>
-
-#define BOOST_FUSION_ADAPT_STRUCT_FILLER_0(X, Y)                                \
-    ((X, Y)) BOOST_FUSION_ADAPT_STRUCT_FILLER_1
-#define BOOST_FUSION_ADAPT_STRUCT_FILLER_1(X, Y)                                \
-    ((X, Y)) BOOST_FUSION_ADAPT_STRUCT_FILLER_0
-#define BOOST_FUSION_ADAPT_STRUCT_FILLER_0_END
-#define BOOST_FUSION_ADAPT_STRUCT_FILLER_1_END
-
-#define BOOST_FUSION_ADAPT_STRUCT_C(TEMPLATE_PARAMS_SEQ, NAME_SEQ, I, ATTRIBUTE)\
-    BOOST_FUSION_ADAPT_STRUCT_C_BASE(                                           \
-        TEMPLATE_PARAMS_SEQ,NAME_SEQ,I,BOOST_PP_EMPTY,ATTRIBUTE,2)
-
-#define BOOST_FUSION_ADAPT_TPL_STRUCT(TEMPLATE_PARAMS_SEQ,NAME_SEQ, ATTRIBUTES) \
-    BOOST_FUSION_ADAPT_STRUCT_BASE(                                             \
-        (1)TEMPLATE_PARAMS_SEQ,                                                 \
-        (1)NAME_SEQ,                                                            \
-        struct_tag,                                                             \
-        0,                                                                      \
-        ((0,0)) BOOST_PP_CAT(                                                   \
-            BOOST_FUSION_ADAPT_STRUCT_FILLER_0 ATTRIBUTES,_END),                \
-        BOOST_FUSION_ADAPT_STRUCT_C)
-
-#define BOOST_FUSION_ADAPT_STRUCT(NAME, ATTRIBUTES)                             \
-    BOOST_FUSION_ADAPT_STRUCT_BASE(                                             \
-        (0),                                                                    \
-        (0)(NAME),                                                              \
-        struct_tag,                                                             \
-        0,                                                                      \
-        BOOST_PP_CAT(BOOST_FUSION_ADAPT_STRUCT_FILLER_0(0,0)ATTRIBUTES,_END),   \
-        BOOST_FUSION_ADAPT_STRUCT_C)
-
-#define BOOST_FUSION_ADAPT_STRUCT_AS_VIEW(NAME, ATTRIBUTES)                     \
-    BOOST_FUSION_ADAPT_STRUCT_BASE(                                             \
-        (0),                                                                    \
-        (0)(NAME),                                                              \
-        struct_tag,                                                             \
-        1,                                                                      \
-        BOOST_PP_CAT(BOOST_FUSION_ADAPT_STRUCT_FILLER_0(0,0)ATTRIBUTES,_END),   \
-        BOOST_FUSION_ADAPT_STRUCT_C)
-
-#endif
diff --git a/boost/fusion/adapted/struct/detail/adapt_base.hpp b/boost/fusion/adapted/struct/detail/adapt_base.hpp
deleted file mode 100644
index 1c8f040..0000000
--- a/boost/fusion/adapted/struct/detail/adapt_base.hpp
+++ /dev/null
@@ -1,245 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2009 Joel de Guzman
-    Copyright (c) 2005-2006 Dan Marsden
-    Copyright (c) 2009-2011 Christopher Schmidt
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-
-#ifndef BOOST_FUSION_ADAPTED_STRUCT_DETAIL_ADAPT_BASE_HPP
-#define BOOST_FUSION_ADAPTED_STRUCT_DETAIL_ADAPT_BASE_HPP
-
-#include <boost/config.hpp>
-#include <boost/fusion/support/tag_of_fwd.hpp>
-
-#include <boost/preprocessor/empty.hpp>
-#include <boost/preprocessor/stringize.hpp>
-#include <boost/preprocessor/control/if.hpp>
-#include <boost/preprocessor/seq/size.hpp>
-#include <boost/preprocessor/seq/for_each.hpp>
-#include <boost/preprocessor/seq/for_each_i.hpp>
-#include <boost/preprocessor/seq/enum.hpp>
-#include <boost/preprocessor/seq/seq.hpp>
-#include <boost/preprocessor/tuple/eat.hpp>
-#include <boost/preprocessor/tuple/elem.hpp>
-#include <boost/preprocessor/arithmetic/dec.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/tag.hpp>
-#include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/type_traits/add_const.hpp>
-
-#define BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME_TEMPLATE_PARAMS(SEQ)              \
-    BOOST_PP_SEQ_HEAD(SEQ)<BOOST_PP_SEQ_ENUM(BOOST_PP_SEQ_TAIL(SEQ))>           \
-    BOOST_PP_EMPTY()
-
-#define BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(SEQ)                              \
-    BOOST_PP_IF(                                                                \
-        BOOST_PP_SEQ_HEAD(SEQ),                                                 \
-        BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME_TEMPLATE_PARAMS,                  \
-        BOOST_PP_SEQ_HEAD)(BOOST_PP_SEQ_TAIL(SEQ))
-
-#define BOOST_FUSION_ADAPT_STRUCT_UNPACK_TEMPLATE_PARAMS_IMPL_C(R, _, ELEM)     \
-    (typename ELEM)
-#define BOOST_FUSION_ADAPT_STRUCT_UNPACK_TEMPLATE_PARAMS_IMPL(SEQ)              \
-    BOOST_PP_SEQ_ENUM(                                                          \
-        BOOST_PP_SEQ_FOR_EACH(                                                  \
-            BOOST_FUSION_ADAPT_STRUCT_UNPACK_TEMPLATE_PARAMS_IMPL_C,            \
-            _,                                                                  \
-            BOOST_PP_SEQ_TAIL(SEQ)))
-#define BOOST_FUSION_ADAPT_STRUCT_UNPACK_TEMPLATE_PARAMS(SEQ)                   \
-    BOOST_PP_IF(                                                                \
-        BOOST_PP_SEQ_HEAD(SEQ),                                                 \
-        BOOST_FUSION_ADAPT_STRUCT_UNPACK_TEMPLATE_PARAMS_IMPL,                  \
-        BOOST_PP_TUPLE_EAT(1))(SEQ)
-
-#ifdef BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
-#   define BOOST_FUSION_ADAPT_STRUCT_TAG_OF_SPECIALIZATION(                     \
-        MODIFIER, TEMPLATE_PARAMS_SEQ, NAME_SEQ, TAG)                           \
-                                                                                \
-    template<                                                                   \
-        BOOST_FUSION_ADAPT_STRUCT_UNPACK_TEMPLATE_PARAMS(TEMPLATE_PARAMS_SEQ)   \
-    >                                                                           \
-    struct tag_of<                                                              \
-        BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(NAME_SEQ) MODIFIER                \
-      , void                                                                    \
-    >                                                                           \
-    {                                                                           \
-        typedef TAG type;                                                       \
-    };
-#else
-#   define BOOST_FUSION_ADAPT_STRUCT_TAG_OF_SPECIALIZATION(                     \
-        MODIFIER, TEMPLATE_PARAMS_SEQ, NAME_SEQ, TAG)                           \
-                                                                                \
-    template<                                                                   \
-        BOOST_FUSION_ADAPT_STRUCT_UNPACK_TEMPLATE_PARAMS(TEMPLATE_PARAMS_SEQ)   \
-    >                                                                           \
-    struct tag_of<BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(NAME_SEQ) MODIFIER>     \
-    {                                                                           \
-        typedef TAG type;                                                       \
-    };
-#endif
-
-#define BOOST_FUSION_ADAPT_STRUCT_BASE_UNPACK_AND_CALL(R,DATA,I,ATTRIBUTE)      \
-    BOOST_PP_TUPLE_ELEM(3,0,DATA)(                                              \
-        BOOST_PP_TUPLE_ELEM(3,1,DATA),                                          \
-        BOOST_PP_TUPLE_ELEM(3,2,DATA),                                          \
-        I,                                                                      \
-        ATTRIBUTE)
-
-#ifdef BOOST_MSVC
-#   define BOOST_FUSION_ADAPT_STRUCT_MSVC_REDEFINE_TEMPLATE_PARAM(R,_,ELEM)     \
-        typedef ELEM ELEM;
-#   define BOOST_FUSION_ADAPT_STRUCT_MSVC_REDEFINE_TEMPLATE_PARAMS_IMPL(SEQ)    \
-        BOOST_PP_SEQ_FOR_EACH(                                                  \
-            BOOST_FUSION_ADAPT_STRUCT_MSVC_REDEFINE_TEMPLATE_PARAM,             \
-            _,                                                                  \
-            BOOST_PP_SEQ_TAIL(SEQ))
-#   define BOOST_FUSION_ADAPT_STRUCT_MSVC_REDEFINE_TEMPLATE_PARAMS(SEQ)         \
-        BOOST_PP_IF(                                                            \
-            BOOST_PP_SEQ_HEAD(SEQ),                                             \
-            BOOST_FUSION_ADAPT_STRUCT_MSVC_REDEFINE_TEMPLATE_PARAMS_IMPL,       \
-            BOOST_PP_TUPLE_EAT(1))(SEQ)
-#else
-#   define BOOST_FUSION_ADAPT_STRUCT_MSVC_REDEFINE_TEMPLATE_PARAMS(SEQ)
-#endif
-
-#define BOOST_FUSION_ADAPT_STRUCT_C_BASE(                                       \
-    TEMPLATE_PARAMS_SEQ,NAME_SEQ,I,PREFIX,ATTRIBUTE,ATTRIBUTE_TUPEL_SIZE)       \
-                                                                                \
-    template<                                                                   \
-        BOOST_FUSION_ADAPT_STRUCT_UNPACK_TEMPLATE_PARAMS(TEMPLATE_PARAMS_SEQ)   \
-    >                                                                           \
-    struct access::struct_member<                                               \
-        BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(NAME_SEQ)                         \
-      , I                                                                       \
-    >                                                                           \
-    {                                                                           \
-        typedef                                                                 \
-            BOOST_PP_TUPLE_ELEM(ATTRIBUTE_TUPEL_SIZE, 0, ATTRIBUTE)             \
-        attribute_type;                                                         \
-        BOOST_FUSION_ADAPT_STRUCT_MSVC_REDEFINE_TEMPLATE_PARAMS(                \
-            TEMPLATE_PARAMS_SEQ)                                                \
-                                                                                \
-        typedef attribute_type type;                                            \
-                                                                                \
-        template<typename Seq>                                                  \
-        struct apply                                                            \
-        {                                                                       \
-            typedef typename                                                    \
-                add_reference<                                                  \
-                    typename mpl::eval_if<                                      \
-                        is_const<Seq>                                           \
-                      , add_const<attribute_type>                               \
-                      , mpl::identity<attribute_type>                           \
-                    >::type                                                     \
-                >::type                                                         \
-            type;                                                               \
-                                                                                \
-            static type                                                         \
-            call(Seq& seq)                                                      \
-            {                                                                   \
-                return seq.PREFIX()                                             \
-                    BOOST_PP_TUPLE_ELEM(ATTRIBUTE_TUPEL_SIZE, 1, ATTRIBUTE);    \
-            }                                                                   \
-        };                                                                      \
-    };                                                                          \
-                                                                                \
-    template<                                                                   \
-        BOOST_FUSION_ADAPT_STRUCT_UNPACK_TEMPLATE_PARAMS(TEMPLATE_PARAMS_SEQ)   \
-    >                                                                           \
-    struct struct_member_name<                                                  \
-        BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(NAME_SEQ)                         \
-      , I                                                                       \
-    >                                                                           \
-    {                                                                           \
-        typedef char const* type;                                               \
-                                                                                \
-        static type                                                             \
-        call()                                                                  \
-        {                                                                       \
-            return BOOST_PP_STRINGIZE(                                          \
-                BOOST_PP_TUPLE_ELEM(ATTRIBUTE_TUPEL_SIZE,1,ATTRIBUTE));         \
-        }                                                                       \
-    };
-
-#define BOOST_FUSION_ADAPT_STRUCT_BASE(                                         \
-    TEMPLATE_PARAMS_SEQ,                                                        \
-    NAME_SEQ,                                                                   \
-    TAG,                                                                        \
-    IS_VIEW,                                                                    \
-    ATTRIBUTES_SEQ,                                                             \
-    ATTRIBUTES_CALLBACK)                                                        \
-                                                                                \
-namespace boost                                                                 \
-{                                                                               \
-    namespace fusion                                                            \
-    {                                                                           \
-        namespace traits                                                        \
-        {                                                                       \
-            BOOST_FUSION_ADAPT_STRUCT_TAG_OF_SPECIALIZATION(                    \
-                BOOST_PP_EMPTY(), TEMPLATE_PARAMS_SEQ, NAME_SEQ, TAG)           \
-            BOOST_FUSION_ADAPT_STRUCT_TAG_OF_SPECIALIZATION(                    \
-                const, TEMPLATE_PARAMS_SEQ, NAME_SEQ, TAG)                      \
-        }                                                                       \
-                                                                                \
-        namespace extension                                                     \
-        {                                                                       \
-            BOOST_PP_IF(                                                        \
-                BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(ATTRIBUTES_SEQ)),                \
-                BOOST_PP_SEQ_FOR_EACH_I_R,                                      \
-                BOOST_PP_TUPLE_EAT(4))(                                         \
-                    1,                                                          \
-                    BOOST_FUSION_ADAPT_STRUCT_BASE_UNPACK_AND_CALL,             \
-                    (ATTRIBUTES_CALLBACK,TEMPLATE_PARAMS_SEQ,NAME_SEQ),         \
-                    BOOST_PP_SEQ_TAIL(ATTRIBUTES_SEQ))                          \
-                                                                                \
-            template<                                                           \
-                BOOST_FUSION_ADAPT_STRUCT_UNPACK_TEMPLATE_PARAMS(               \
-                    TEMPLATE_PARAMS_SEQ)                                        \
-            >                                                                   \
-            struct struct_size<BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(NAME_SEQ)> \
-              : mpl::int_<BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(ATTRIBUTES_SEQ))>      \
-            {};                                                                 \
-                                                                                \
-            template<                                                           \
-                BOOST_FUSION_ADAPT_STRUCT_UNPACK_TEMPLATE_PARAMS(               \
-                    TEMPLATE_PARAMS_SEQ)                                        \
-            >                                                                   \
-            struct struct_is_view<                                              \
-                BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(NAME_SEQ)                 \
-            >                                                                   \
-              : mpl::BOOST_PP_IF(IS_VIEW,true_,false_)                          \
-            {};                                                                 \
-        }                                                                       \
-    }                                                                           \
-                                                                                \
-    namespace mpl                                                               \
-    {                                                                           \
-        template<typename>                                                      \
-        struct sequence_tag;                                                    \
-                                                                                \
-        template<                                                               \
-            BOOST_FUSION_ADAPT_STRUCT_UNPACK_TEMPLATE_PARAMS(                   \
-                TEMPLATE_PARAMS_SEQ)                                            \
-        >                                                                       \
-        struct sequence_tag<BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(NAME_SEQ)>    \
-        {                                                                       \
-            typedef fusion::fusion_sequence_tag type;                           \
-        };                                                                      \
-                                                                                \
-        template<                                                               \
-            BOOST_FUSION_ADAPT_STRUCT_UNPACK_TEMPLATE_PARAMS(                   \
-                TEMPLATE_PARAMS_SEQ)                                            \
-        >                                                                       \
-        struct sequence_tag<                                                    \
-            BOOST_FUSION_ADAPT_STRUCT_UNPACK_NAME(NAME_SEQ) const               \
-        >                                                                       \
-        {                                                                       \
-            typedef fusion::fusion_sequence_tag type;                           \
-        };                                                                      \
-    }                                                                           \
-}
-
-#endif
diff --git a/boost/fusion/adapted/struct/detail/at_impl.hpp b/boost/fusion/adapted/struct/detail/at_impl.hpp
deleted file mode 100644
index 68fd241..0000000
--- a/boost/fusion/adapted/struct/detail/at_impl.hpp
+++ /dev/null
@@ -1,38 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-    Copyright (c) 2005-2006 Dan Marsden
-    Copyright (c) 2009-2010 Christopher Schmidt
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-
-#ifndef BOOST_FUSION_ADAPTED_STRUCT_DETAIL_AT_IMPL_HPP
-#define BOOST_FUSION_ADAPTED_STRUCT_DETAIL_AT_IMPL_HPP
-
-#include <boost/mpl/int.hpp>
-
-namespace boost { namespace fusion { namespace extension
-{
-    template<typename>
-    struct at_impl;
-
-    template <>
-    struct at_impl<struct_tag>
-    {
-        template <typename Seq, typename N>
-        struct apply
-          : access::struct_member<
-                typename remove_const<Seq>::type
-              , N::value
-            >::template apply<Seq>
-        {};
-    };
-
-    template <>
-    struct at_impl<assoc_struct_tag>
-      : at_impl<struct_tag>
-    {};
-}}}
-
-#endif
diff --git a/boost/fusion/adapted/struct/detail/begin_impl.hpp b/boost/fusion/adapted/struct/detail/begin_impl.hpp
deleted file mode 100644
index a7901fc..0000000
--- a/boost/fusion/adapted/struct/detail/begin_impl.hpp
+++ /dev/null
@@ -1,67 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-    Copyright (c) 2005-2006 Dan Marsden
-    Copyright (c) 2009-2010 Christopher Schmidt
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-
-#ifndef BOOST_FUSION_ADAPTED_STRUCT_DETAIL_BEGIN_IMPL_HPP
-#define BOOST_FUSION_ADAPTED_STRUCT_DETAIL_BEGIN_IMPL_HPP
-
-#include <boost/fusion/iterator/basic_iterator.hpp>
-
-namespace boost { namespace fusion { namespace extension
-{
-    template<typename>
-    struct begin_impl;
-
-    template <>
-    struct begin_impl<struct_tag>
-    {
-        template <typename Seq>
-        struct apply
-        {
-            typedef
-                basic_iterator<
-                    struct_iterator_tag
-                  , random_access_traversal_tag
-                  , Seq
-                  , 0
-                >
-            type;
-
-            static type
-            call(Seq& seq)
-            {
-                return type(seq,0);
-            }
-        };
-    };
-
-    template <>
-    struct begin_impl<assoc_struct_tag>
-    {
-        template <typename Seq>
-        struct apply
-        {
-            typedef
-                basic_iterator<
-                    struct_iterator_tag
-                  , assoc_struct_category
-                  , Seq
-                  , 0
-                >
-            type;
-
-            static type
-            call(Seq& seq)
-            {
-                return type(seq,0);
-            }
-        };
-    };
-}}}
-
-#endif
diff --git a/boost/fusion/adapted/struct/detail/category_of_impl.hpp b/boost/fusion/adapted/struct/detail/category_of_impl.hpp
deleted file mode 100644
index b98e824..0000000
--- a/boost/fusion/adapted/struct/detail/category_of_impl.hpp
+++ /dev/null
@@ -1,42 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-    Copyright (c) 2005-2006 Dan Marsden
-    Copyright (c) 2009-2010 Christopher Schmidt
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-
-#ifndef BOOST_FUSION_ADAPTED_STRUCT_DETAIL_CATEGORY_OF_IMPL_HPP
-#define BOOST_FUSION_ADAPTED_STRUCT_DETAIL_CATEGORY_OF_IMPL_HPP
-
-namespace boost { namespace fusion
-{
-    namespace extension
-    {
-        template<typename>
-        struct category_of_impl;
-
-        template<>
-        struct category_of_impl<struct_tag>
-        {
-            template<typename Seq>
-            struct apply
-            {
-                typedef random_access_traversal_tag type;
-            };
-        };
-
-        template<>
-        struct category_of_impl<assoc_struct_tag>
-        {
-            template<typename Seq>
-            struct apply
-            {
-                typedef assoc_struct_category type;
-            };
-        };
-    }
-}}
-
-#endif
diff --git a/boost/fusion/adapted/struct/detail/deref_impl.hpp b/boost/fusion/adapted/struct/detail/deref_impl.hpp
deleted file mode 100644
index 3f25efe..0000000
--- a/boost/fusion/adapted/struct/detail/deref_impl.hpp
+++ /dev/null
@@ -1,41 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2009-2010 Christopher Schmidt
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-
-#ifndef BOOST_FUSION_ADAPTED_STRUCT_DETAIL_DEREF_IMPL_HPP
-#define BOOST_FUSION_ADAPTED_STRUCT_DETAIL_DEREF_IMPL_HPP
-
-namespace boost { namespace fusion { namespace extension
-{
-    template <typename>
-    struct deref_impl;
-
-    template <>
-    struct deref_impl<struct_iterator_tag>
-    {
-        template <typename It>
-        struct apply
-        {
-           typedef typename
-               access::struct_member<
-                   typename remove_const<typename It::seq_type>::type
-                 , It::index::value
-               >::template apply<typename It::seq_type>
-           impl;
-
-           typedef typename impl::type type;
-
-           static
-           type
-           call(It const& it)
-           {
-               return impl::call(*it.seq);
-           }
-        };
-    };
-}}}
-
-#endif
diff --git a/boost/fusion/adapted/struct/detail/end_impl.hpp b/boost/fusion/adapted/struct/detail/end_impl.hpp
deleted file mode 100644
index 0d09092..0000000
--- a/boost/fusion/adapted/struct/detail/end_impl.hpp
+++ /dev/null
@@ -1,67 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-    Copyright (c) 2005-2006 Dan Marsden
-    Copyright (c) 2009-2010 Christopher Schmidt
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-
-#ifndef BOOST_FUSION_ADAPTED_STRUCT_DETAIL_END_IMPL_HPP
-#define BOOST_FUSION_ADAPTED_STRUCT_DETAIL_END_IMPL_HPP
-
-#include <boost/fusion/iterator/basic_iterator.hpp>
-
-namespace boost { namespace fusion { namespace extension
-{
-    template <typename>
-    struct end_impl;
-
-    template <>
-    struct end_impl<struct_tag>
-    {
-        template <typename Seq>
-        struct apply
-        {
-            typedef
-                basic_iterator<
-                    struct_iterator_tag
-                  , random_access_traversal_tag
-                  , Seq
-                  , struct_size<typename remove_const<Seq>::type>::value
-                >
-            type;
-
-            static type
-            call(Seq& seq)
-            {
-                return type(seq,0);
-            }
-        };
-    };
-
-    template <>
-    struct end_impl<assoc_struct_tag>
-    {
-        template <typename Seq>
-        struct apply
-        {
-            typedef
-                basic_iterator<
-                    struct_iterator_tag
-                  , assoc_struct_category
-                  , Seq
-                  , struct_size<typename remove_const<Seq>::type>::value
-                >
-            type;
-
-            static type
-            call(Seq& seq)
-            {
-                return type(seq,0);
-            }
-        };
-    };
-}}}
-
-#endif
diff --git a/boost/fusion/adapted/struct/detail/extension.hpp b/boost/fusion/adapted/struct/detail/extension.hpp
deleted file mode 100644
index 17edb89..0000000
--- a/boost/fusion/adapted/struct/detail/extension.hpp
+++ /dev/null
@@ -1,57 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2007 Joel de Guzman
-    Copyright (c) 2005-2006 Dan Marsden
-    Copyright (c) 2009-2010 Christopher Schmidt
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-
-#ifndef BOOST_FUSION_ADAPTED_STRUCT_DETAIL_EXTENSION_HPP
-#define BOOST_FUSION_ADAPTED_STRUCT_DETAIL_EXTENSION_HPP
-
-#include <boost/fusion/support/category_of.hpp>
-
-namespace boost { namespace fusion
-{
-    struct struct_tag;
-    struct struct_iterator_tag;
-    struct assoc_struct_tag;
-    struct fusion_sequence_tag;
-
-    struct assoc_struct_category
-      : random_access_traversal_tag, associative_tag
-    {};
-
-    namespace extension
-    {
-        struct no_such_member;
-
-        struct access
-        {
-            template<typename Seq, int N>
-            struct struct_member;
-
-            template<typename Seq, int N>
-            struct adt_attribute_access;
-        };
-
-        template <typename T, int N, bool Const>
-        struct adt_attribute_proxy;
-
-        template<typename Seq, int N>
-        struct struct_member_name;
-
-        template<typename Seq>
-        struct struct_size;
-
-        template<typename Seq>
-        struct struct_is_view;
-
-        template<typename Seq, int N>
-        struct struct_assoc_key;
-
-    }
-}}
-
-#endif
diff --git a/boost/fusion/adapted/struct/detail/is_sequence_impl.hpp b/boost/fusion/adapted/struct/detail/is_sequence_impl.hpp
deleted file mode 100644
index c32222f..0000000
--- a/boost/fusion/adapted/struct/detail/is_sequence_impl.hpp
+++ /dev/null
@@ -1,35 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-    Copyright (c) 2005-2006 Dan Marsden
-    Copyright (c) 2009-2010 Christopher Schmidt
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-
-#ifndef BOOST_FUSION_ADAPTED_STRUCT_DETAIL_IS_SEQUENCE_IMPL_HPP
-#define BOOST_FUSION_ADAPTED_STRUCT_DETAIL_IS_SEQUENCE_IMPL_HPP
-
-#include <boost/mpl/bool.hpp>
-
-namespace boost { namespace fusion { namespace extension
-{
-    template<typename>
-    struct is_sequence_impl;
-
-    template<>
-    struct is_sequence_impl<struct_tag>
-    {
-        template<typename Seq>
-        struct apply
-          : mpl::true_
-        {};
-    };
-
-    template <>
-    struct is_sequence_impl<assoc_struct_tag>
-      : is_sequence_impl<struct_tag>
-    {};
-}}}
-
-#endif
diff --git a/boost/fusion/adapted/struct/detail/is_view_impl.hpp b/boost/fusion/adapted/struct/detail/is_view_impl.hpp
deleted file mode 100644
index 71d2840..0000000
--- a/boost/fusion/adapted/struct/detail/is_view_impl.hpp
+++ /dev/null
@@ -1,33 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-    Copyright (c) 2005-2006 Dan Marsden
-    Copyright (c) 2009-2010 Christopher Schmidt
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-
-#ifndef BOOST_FUSION_ADAPTED_STRUCT_DETAIL_IS_VIEW_IMPL_HPP
-#define BOOST_FUSION_ADAPTED_STRUCT_DETAIL_IS_VIEW_IMPL_HPP
-
-namespace boost { namespace fusion { namespace extension
-{
-    template<typename>
-    struct is_view_impl;
-
-    template<>
-    struct is_view_impl<struct_tag>
-    {
-        template<typename Seq>
-        struct apply
-          : struct_is_view<typename remove_const<Seq>::type>
-        {};
-    };
-
-    template <>
-    struct is_view_impl<assoc_struct_tag>
-      : is_view_impl<struct_tag>
-    {};
-}}}
-
-#endif
diff --git a/boost/fusion/adapted/struct/detail/size_impl.hpp b/boost/fusion/adapted/struct/detail/size_impl.hpp
deleted file mode 100644
index baf411b..0000000
--- a/boost/fusion/adapted/struct/detail/size_impl.hpp
+++ /dev/null
@@ -1,33 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-    Copyright (c) 2005-2006 Dan Marsden
-    Copyright (c) 2009-2010 Christopher Schmidt
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-
-#ifndef BOOST_FUSION_ADAPTED_STRUCT_DETAIL_SIZE_IMPL_HPP
-#define BOOST_FUSION_ADAPTED_STRUCT_DETAIL_SIZE_IMPL_HPP
-
-namespace boost { namespace fusion { namespace extension
-{
-    template<typename>
-    struct size_impl;
-
-    template <>
-    struct size_impl<struct_tag>
-    {
-        template <typename Seq>
-        struct apply
-          : struct_size<typename remove_const<Seq>::type>
-        {};
-    };
-
-    template <>
-    struct size_impl<assoc_struct_tag>
-      : size_impl<struct_tag>
-    {};
-}}}
-
-#endif
diff --git a/boost/fusion/adapted/struct/detail/value_at_impl.hpp b/boost/fusion/adapted/struct/detail/value_at_impl.hpp
deleted file mode 100644
index f820475..0000000
--- a/boost/fusion/adapted/struct/detail/value_at_impl.hpp
+++ /dev/null
@@ -1,33 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-    Copyright (c) 2005-2006 Dan Marsden
-    Copyright (c) 2009-2010 Christopher Schmidt
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-
-#ifndef BOOST_FUSION_ADAPTED_STRUCT_DETAIL_VALUE_AT_IMPL_HPP
-#define BOOST_FUSION_ADAPTED_STRUCT_DETAIL_VALUE_AT_IMPL_HPP
-
-namespace boost { namespace fusion { namespace extension
-{
-    template<typename>
-    struct value_at_impl;
-
-    template <>
-    struct value_at_impl<struct_tag>
-    {
-        template <typename Seq, typename N>
-        struct apply
-          : access::struct_member<typename remove_const<Seq>::type, N::value>
-        {};
-    };
-
-    template <>
-    struct value_at_impl<assoc_struct_tag>
-      : value_at_impl<struct_tag>
-    {};
-}}}
-
-#endif
diff --git a/boost/fusion/adapted/struct/detail/value_of_impl.hpp b/boost/fusion/adapted/struct/detail/value_of_impl.hpp
deleted file mode 100644
index 63dcbe5..0000000
--- a/boost/fusion/adapted/struct/detail/value_of_impl.hpp
+++ /dev/null
@@ -1,29 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2009-2010 Christopher Schmidt
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-
-#ifndef BOOST_FUSION_ADAPTED_STRUCT_DETAIL_VALUE_OF_IMPL_HPP
-#define BOOST_FUSION_ADAPTED_STRUCT_DETAIL_VALUE_OF_IMPL_HPP
-
-namespace boost { namespace fusion { namespace extension
-{
-    template <typename>
-    struct value_of_impl;
-
-    template <>
-    struct value_of_impl<struct_iterator_tag>
-    {
-        template <typename It>
-        struct apply
-          : access::struct_member<
-                typename remove_const<typename It::seq_type>::type
-              , It::index::value
-            >
-        {};
-    };
-}}}
-
-#endif
diff --git a/boost/fusion/algorithm/transformation/push_back.hpp b/boost/fusion/algorithm/transformation/push_back.hpp
deleted file mode 100644
index 9afe538..0000000
--- a/boost/fusion/algorithm/transformation/push_back.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_PUSH_BACK_07162005_0235)
-#define FUSION_PUSH_BACK_07162005_0235
-
-#include <boost/fusion/support/detail/as_fusion_element.hpp>
-#include <boost/fusion/view/joint_view/joint_view.hpp>
-#include <boost/fusion/view/single_view/single_view.hpp>
-#include <boost/fusion/support/is_sequence.hpp>
-#include <boost/utility/enable_if.hpp>
-
-namespace boost { namespace fusion
-{
-    namespace result_of
-    {
-        template <typename Sequence, typename T>
-        struct push_back
-        {
-            typedef fusion::single_view<typename detail::as_fusion_element<T>::type> single_view;
-            typedef joint_view<Sequence, single_view const> type;
-        };
-    }
-
-    template <typename Sequence, typename T>
-    inline 
-    typename
-        lazy_enable_if<
-            traits::is_sequence<Sequence>
-          , result_of::push_back<Sequence const, T>
-        >::type
-    push_back(Sequence const& seq, T const& x)
-    {
-        typedef typename result_of::push_back<Sequence const, T> push_back;
-        typedef typename push_back::single_view single_view; 
-        typedef typename push_back::type result; 
-        single_view x_(x);
-        return result(seq, x_);
-    }
-}}
-
-#endif
-
diff --git a/boost/fusion/algorithm/transformation/push_front.hpp b/boost/fusion/algorithm/transformation/push_front.hpp
deleted file mode 100644
index abe7faa..0000000
--- a/boost/fusion/algorithm/transformation/push_front.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_PUSH_FRONT_07162005_0749)
-#define FUSION_PUSH_FRONT_07162005_0749
-
-#include <boost/fusion/support/detail/as_fusion_element.hpp>
-#include <boost/fusion/view/joint_view/joint_view.hpp>
-#include <boost/fusion/view/single_view/single_view.hpp>
-#include <boost/fusion/support/is_sequence.hpp>
-#include <boost/utility/enable_if.hpp>
-
-namespace boost { namespace fusion
-{
-    namespace result_of
-    {
-        template <typename Sequence, typename T>
-        struct push_front
-        {
-            typedef fusion::single_view<typename detail::as_fusion_element<T>::type> single_view;
-            typedef joint_view<single_view const, Sequence> type;
-        };
-    }
-
-    template <typename Sequence, typename T>
-    inline 
-    typename
-        lazy_enable_if<
-            traits::is_sequence<Sequence>
-          , result_of::push_front<Sequence const, T>
-        >::type
-    push_front(Sequence const& seq, T const& x)
-    {
-        typedef typename result_of::push_front<Sequence const, T> push_front;
-        typedef typename push_front::single_view single_view; 
-        typedef typename push_front::type result; 
-        single_view x_(x);
-        return result(x_, seq);
-    }
-}}
-
-#endif
-
diff --git a/boost/fusion/container/generation/ignore.hpp b/boost/fusion/container/generation/ignore.hpp
deleted file mode 100644
index 8e1b00c..0000000
--- a/boost/fusion/container/generation/ignore.hpp
+++ /dev/null
@@ -1,32 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001 Doug Gregor
-    Copyright (c) 1999-2003 Jaakko Jarvi
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_IGNORE_07192005_0329)
-#define FUSION_IGNORE_07192005_0329
-
-namespace boost { namespace fusion
-{
-    //  Swallows any assignment (by Doug Gregor)
-    namespace detail
-    {
-        struct swallow_assign
-        {
-            template<typename T>
-            swallow_assign const&
-            operator=(const T&) const
-            {
-                return *this;
-            }
-        };
-    }
-
-    //  "ignore" allows tuple positions to be ignored when using "tie".
-    detail::swallow_assign const ignore = detail::swallow_assign();
-}}
-
-#endif
diff --git a/boost/fusion/container/list/cons.hpp b/boost/fusion/container/list/cons.hpp
deleted file mode 100644
index 8a04049..0000000
--- a/boost/fusion/container/list/cons.hpp
+++ /dev/null
@@ -1,144 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-    Copyright (c) 2005 Eric Niebler
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_CONS_07172005_0843)
-#define FUSION_CONS_07172005_0843
-
-#include <boost/fusion/container/list/cons_fwd.hpp>
-#include <boost/fusion/support/detail/access.hpp>
-#include <boost/fusion/sequence/intrinsic/begin.hpp>
-#include <boost/fusion/sequence/intrinsic/end.hpp>
-#include <boost/fusion/iterator/next.hpp>
-#include <boost/fusion/iterator/deref.hpp>
-#include <boost/fusion/container/list/cons_iterator.hpp>
-#include <boost/fusion/container/list/detail/begin_impl.hpp>
-#include <boost/fusion/container/list/detail/end_impl.hpp>
-#include <boost/fusion/container/list/detail/at_impl.hpp>
-#include <boost/fusion/container/list/detail/value_at_impl.hpp>
-#include <boost/fusion/container/list/detail/empty_impl.hpp>
-#include <boost/type_traits/is_convertible.hpp>
-#include <boost/utility/enable_if.hpp>
-#include <boost/fusion/support/sequence_base.hpp>
-#include <boost/mpl/int.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/or.hpp>
-
-namespace boost { namespace fusion
-{
-    struct void_;
-    struct cons_tag;
-    struct forward_traversal_tag;
-    struct fusion_sequence_tag;
-
-    struct nil_ : sequence_base<nil_>
-    {
-        typedef mpl::int_<0> size;
-        typedef cons_tag fusion_tag;
-        typedef fusion_sequence_tag tag; // this gets picked up by MPL
-        typedef mpl::false_ is_view;
-        typedef forward_traversal_tag category;
-        typedef void_ car_type;
-        typedef void_ cdr_type;
-
-        nil_() {}
-
-        template <typename Iterator>
-        nil_(Iterator const& /*iter*/, mpl::true_ /*this_is_an_iterator*/)
-        {}
-
-        template <typename Iterator>
-        void assign_from_iter(Iterator const& /*iter*/)
-        {
-        }
-    };
-
-    template <typename Car, typename Cdr /*= nil_*/>
-    struct cons : sequence_base<cons<Car, Cdr> >
-    {
-        typedef mpl::int_<Cdr::size::value+1> size;
-        typedef cons_tag fusion_tag;
-        typedef fusion_sequence_tag tag; // this gets picked up by MPL
-        typedef mpl::false_ is_view;
-        typedef forward_traversal_tag category;
-        typedef Car car_type;
-        typedef Cdr cdr_type;
-
-        cons()
-            : car(), cdr() {}
-
-        explicit cons(typename detail::call_param<Car>::type in_car)
-            : car(in_car), cdr() {}
-
-        cons(
-            typename detail::call_param<Car>::type in_car
-          , typename detail::call_param<Cdr>::type in_cdr)
-            : car(in_car), cdr(in_cdr) {}
-        
-        template <typename Car2, typename Cdr2>
-        cons(cons<Car2, Cdr2> const& rhs)
-            : car(rhs.car), cdr(rhs.cdr) {}
-
-        cons(cons const& rhs)
-            : car(rhs.car), cdr(rhs.cdr) {}
-
-        template <typename Sequence>
-        cons(
-            Sequence const& seq
-          , typename boost::disable_if<
-                mpl::or_<
-                    is_convertible<Sequence, cons> // use copy ctor instead
-                  , is_convertible<Sequence, Car>  // use copy to car instead
-                > 
-            >::type* /*dummy*/ = 0
-        )
-            : car(*fusion::begin(seq))
-            , cdr(fusion::next(fusion::begin(seq)), mpl::true_()) {}
-
-        template <typename Iterator>
-        cons(Iterator const& iter, mpl::true_ /*this_is_an_iterator*/)
-            : car(*iter)
-            , cdr(fusion::next(iter), mpl::true_()) {}
-
-        template <typename Car2, typename Cdr2>
-        cons& operator=(cons<Car2, Cdr2> const& rhs)
-        {
-            car = rhs.car;
-            cdr = rhs.cdr;
-            return *this;
-        }
-
-        cons& operator=(cons const& rhs)
-        {
-            car = rhs.car;
-            cdr = rhs.cdr;
-            return *this;
-        }
-
-        template <typename Sequence>
-        typename boost::disable_if<is_convertible<Sequence, Car>, cons&>::type
-        operator=(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type Iterator;
-            Iterator iter = fusion::begin(seq);
-            this->assign_from_iter(iter);
-            return *this;
-        }
-
-        template <typename Iterator>
-        void assign_from_iter(Iterator const& iter)
-        {
-            car = *iter;
-            cdr.assign_from_iter(fusion::next(iter));
-        }
-
-        car_type car;
-        cdr_type cdr;
-    };
-}}
-
-#endif
-
diff --git a/boost/fusion/container/list/cons_fwd.hpp b/boost/fusion/container/list/cons_fwd.hpp
deleted file mode 100644
index 4ec558f..0000000
--- a/boost/fusion/container/list/cons_fwd.hpp
+++ /dev/null
@@ -1,23 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-    Copyright (c) 2005 Eric Niebler
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(BOOST_FUSION_CONS_FWD_HPP_INCLUDED)
-#define BOOST_FUSION_CONS_FWD_HPP_INCLUDED
-
-namespace boost { namespace fusion
-{
-    struct nil_;
-    #ifndef nil
-    typedef nil_ nil;
-    #endif
-
-    template <typename Car, typename Cdr = nil_>
-    struct cons;
-}}
-
-#endif
-
diff --git a/boost/fusion/container/list/cons_iterator.hpp b/boost/fusion/container/list/cons_iterator.hpp
deleted file mode 100644
index 834651d..0000000
--- a/boost/fusion/container/list/cons_iterator.hpp
+++ /dev/null
@@ -1,89 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-    Copyright (c) 2005 Eric Niebler
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_CONS_ITERATOR_07172005_0849)
-#define FUSION_CONS_ITERATOR_07172005_0849
-
-#include <boost/type_traits/add_const.hpp>
-#include <boost/fusion/support/iterator_base.hpp>
-#include <boost/fusion/container/list/detail/deref_impl.hpp>
-#include <boost/fusion/container/list/detail/next_impl.hpp>
-#include <boost/fusion/container/list/detail/value_of_impl.hpp>
-#include <boost/fusion/container/list/detail/equal_to_impl.hpp>
-#include <boost/fusion/container/list/list_fwd.hpp>
-
-namespace boost { namespace fusion
-{
-    struct nil_;
-    struct cons_iterator_tag;
-    struct forward_traversal_tag;
-
-    template <typename Cons>
-    struct cons_iterator_identity;
-
-    template <typename Cons = nil_>
-    struct cons_iterator : iterator_base<cons_iterator<Cons> >
-    {
-        typedef cons_iterator_tag fusion_tag;
-        typedef forward_traversal_tag category;
-        typedef Cons cons_type;
-        typedef cons_iterator_identity<
-            typename add_const<Cons>::type> 
-        identity;
-
-        explicit cons_iterator(cons_type& in_cons)
-            : cons(in_cons) {}
-
-        cons_type& cons;
-
-    private:
-        // silence MSVC warning C4512: assignment operator could not be generated
-        cons_iterator& operator= (cons_iterator const&);
-    };
-
-    struct nil_iterator : iterator_base<nil_iterator>
-    {
-        typedef forward_traversal_tag category;
-        typedef cons_iterator_tag fusion_tag;
-        typedef nil_ cons_type;
-        typedef cons_iterator_identity<
-            add_const<nil_>::type> 
-        identity;
-        nil_iterator() {}
-        explicit nil_iterator(nil_ const&) {}
-    };
-
-    template <>
-    struct cons_iterator<nil_> : nil_iterator 
-    {
-        cons_iterator() {}
-        explicit cons_iterator(nil_ const&) {}
-    };
-
-    template <>
-    struct cons_iterator<nil_ const> : nil_iterator 
-    {
-        cons_iterator() {}
-        explicit cons_iterator(nil_ const&) {}
-    };
-
-    template <>
-    struct cons_iterator<list<> > : nil_iterator 
-    {
-        cons_iterator() {}
-        explicit cons_iterator(nil_ const&) {}
-    };
-
-    template <>
-    struct cons_iterator<list<> const> : nil_iterator 
-    {
-        cons_iterator() {}
-        explicit cons_iterator(nil_ const&) {}
-    };
-}}
-
-#endif
diff --git a/boost/fusion/container/list/detail/at_impl.hpp b/boost/fusion/container/list/detail/at_impl.hpp
deleted file mode 100644
index 7574639..0000000
--- a/boost/fusion/container/list/detail/at_impl.hpp
+++ /dev/null
@@ -1,132 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_AT_IMPL_07172005_0726)
-#define FUSION_AT_IMPL_07172005_0726
-
-#include <boost/fusion/support/detail/access.hpp>
-#include <boost/type_traits/is_const.hpp>
-#include <boost/type_traits/add_const.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/bool.hpp>
-
-namespace boost { namespace fusion
-{
-    namespace detail
-    {
-        template <typename Cons>
-        struct cons_deref
-        {
-            typedef typename Cons::car_type type;
-        };
-
-        template <typename Cons, int I>
-        struct cons_advance
-        {
-            typedef typename
-                cons_advance<Cons, I-1>::type::cdr_type
-            type;
-        };
-
-        template <typename Cons>
-        struct cons_advance<Cons, 0>
-        {
-            typedef Cons type;
-        };
-
-        template <typename Cons>
-        struct cons_advance<Cons, 1>
-        {
-            typedef typename Cons::cdr_type type;
-        };
-
-        template <typename Cons>
-        struct cons_advance<Cons, 2>
-        {
-#if BOOST_WORKAROUND(BOOST_MSVC, > 1400) // VC8 and above
-            typedef typename Cons::cdr_type::cdr_type type;
-#else
-            typedef typename Cons::cdr_type _a;
-            typedef typename _a::cdr_type type;
-#endif
-        };
-
-        template <typename Cons>
-        struct cons_advance<Cons, 3>
-        {
-#if BOOST_WORKAROUND(BOOST_MSVC, > 1400) // VC8 and above
-            typedef typename Cons::cdr_type::cdr_type::cdr_type type;
-#else
-            typedef typename Cons::cdr_type _a;
-            typedef typename _a::cdr_type _b;
-            typedef typename _b::cdr_type type;
-#endif
-        };
-
-        template <typename Cons>
-        struct cons_advance<Cons, 4>
-        {
-#if BOOST_WORKAROUND(BOOST_MSVC, > 1400) // VC8 and above
-            typedef typename Cons::cdr_type::cdr_type::cdr_type::cdr_type type;
-#else
-            typedef typename Cons::cdr_type _a;
-            typedef typename _a::cdr_type _b;
-            typedef typename _b::cdr_type _c;
-            typedef typename _c::cdr_type type;
-#endif
-        };
-    }
-
-    struct cons_tag;
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct at_impl;
-
-        template <>
-        struct at_impl<cons_tag>
-        {
-            template <typename Sequence, typename N>
-            struct apply
-            {
-                typedef typename detail::cons_deref<
-                    typename detail::cons_advance<Sequence, N::value>::type>::type
-                element;
-
-                typedef typename
-                    mpl::if_<
-                        is_const<Sequence>
-                      , typename detail::cref_result<element>::type
-                      , typename detail::ref_result<element>::type
-                    >::type
-                type;
-
-                template <typename Cons, int N2>
-                static type
-                call(Cons& s, mpl::int_<N2>)
-                {
-                    return call(s.cdr, mpl::int_<N2-1>());
-                }
-
-                template <typename Cons>
-                static type
-                call(Cons& s, mpl::int_<0>)
-                {
-                    return s.car;
-                }
-
-                static type
-                call(Sequence& s)
-                {
-                    return call(s, mpl::int_<N::value>());
-                }
-            };
-        };
-    }
-}}
-
-#endif
diff --git a/boost/fusion/container/list/detail/begin_impl.hpp b/boost/fusion/container/list/detail/begin_impl.hpp
deleted file mode 100644
index 27a7342..0000000
--- a/boost/fusion/container/list/detail/begin_impl.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-    Copyright (c) 2005 Eric Niebler
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_BEGIN_IMPL_07172005_0824)
-#define FUSION_BEGIN_IMPL_07172005_0824
-
-#include <boost/mpl/if.hpp>
-#include <boost/type_traits/is_const.hpp>
-
-namespace boost { namespace fusion
-{
-    struct nil_;
-
-    struct cons_tag;
-
-    template <typename Car, typename Cdr>
-    struct cons;
-
-    template <typename Cons>
-    struct cons_iterator;
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct begin_impl;
-
-        template <>
-        struct begin_impl<cons_tag>
-        {
-            template <typename Sequence>
-            struct apply
-            {
-                typedef cons_iterator<Sequence> type;
-    
-                static type
-                call(Sequence& t)
-                {
-                    return type(t);
-                }
-            };
-        };
-    }
-}}
-
-#endif
diff --git a/boost/fusion/container/list/detail/deref_impl.hpp b/boost/fusion/container/list/detail/deref_impl.hpp
deleted file mode 100644
index a5f75ea..0000000
--- a/boost/fusion/container/list/detail/deref_impl.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-    Copyright (c) 2005 Eric Niebler
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_DEREF_IMPL_07172005_0831)
-#define FUSION_DEREF_IMPL_07172005_0831
-
-#include <boost/mpl/eval_if.hpp>
-#include <boost/type_traits/is_const.hpp>
-#include <boost/type_traits/add_const.hpp>
-#include <boost/type_traits/add_reference.hpp>
-
-namespace boost { namespace fusion
-{
-    struct cons_iterator_tag;
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct deref_impl;
-
-        template <>
-        struct deref_impl<cons_iterator_tag>
-        {
-            template <typename Iterator>
-            struct apply 
-            {
-                typedef typename Iterator::cons_type cons_type;
-                typedef typename cons_type::car_type value_type;
-    
-                typedef typename mpl::eval_if<
-                    is_const<cons_type>
-                  , add_reference<typename add_const<value_type>::type>
-                  , add_reference<value_type> >::type
-                type;
-    
-                static type
-                call(Iterator const& i)
-                {
-                    return i.cons.car;
-                }
-            };
-        };
-    }
-}}
-
-#endif
-
-
diff --git a/boost/fusion/container/list/detail/empty_impl.hpp b/boost/fusion/container/list/detail/empty_impl.hpp
deleted file mode 100644
index 2392dd7..0000000
--- a/boost/fusion/container/list/detail/empty_impl.hpp
+++ /dev/null
@@ -1,37 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2007 Tobias Schwinger
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(BOOST_FUSION_SEQUENCE_EMPTY_IMPL_HPP_INCLUDED)
-#define BOOST_FUSION_SEQUENCE_EMPTY_IMPL_HPP_INCLUDED
-
-#include <boost/type_traits/is_convertible.hpp>
-
-namespace boost { namespace fusion
-{
-    struct cons_tag;
-
-    struct nil_;
-
-    template <typename Car, typename Cdr>
-    struct cons;
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct empty_impl;
-
-        template <>
-        struct empty_impl<cons_tag>
-        {
-            template <typename Sequence>
-            struct apply
-                : boost::is_convertible<Sequence, nil_>
-            {};
-        };
-    }
-}}
-
-#endif
diff --git a/boost/fusion/container/list/detail/end_impl.hpp b/boost/fusion/container/list/detail/end_impl.hpp
deleted file mode 100644
index a2eafba..0000000
--- a/boost/fusion/container/list/detail/end_impl.hpp
+++ /dev/null
@@ -1,51 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-    Copyright (c) 2005 Eric Niebler
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_END_IMPL_07172005_0828)
-#define FUSION_END_IMPL_07172005_0828
-
-#include <boost/mpl/if.hpp>
-#include <boost/type_traits/is_const.hpp>
-
-namespace boost { namespace fusion
-{
-    struct nil_;
-
-    struct cons_tag;
-
-    template <typename Car, typename Cdr>
-    struct cons;
-
-    template <typename Cons>
-    struct cons_iterator;
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct end_impl;
-
-        template <>
-        struct end_impl<cons_tag>
-        {
-            template <typename Sequence>
-            struct apply 
-            {
-                typedef cons_iterator<
-                    typename mpl::if_<is_const<Sequence>, nil_ const, nil_>::type>
-                type;
-    
-                static type
-                call(Sequence&)
-                {
-                    return type();
-                }
-            };
-        };
-    }
-}}
-
-#endif
diff --git a/boost/fusion/container/list/detail/equal_to_impl.hpp b/boost/fusion/container/list/detail/equal_to_impl.hpp
deleted file mode 100644
index a4d5929..0000000
--- a/boost/fusion/container/list/detail/equal_to_impl.hpp
+++ /dev/null
@@ -1,39 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_EQUAL_TO_IMPL_09172005_1120)
-#define FUSION_EQUAL_TO_IMPL_09172005_1120
-
-#include <boost/type_traits/is_same.hpp>
-#include <boost/mpl/equal_to.hpp>
-#include <boost/mpl/and.hpp>
-
-namespace boost { namespace fusion
-{
-    struct cons_iterator_tag;
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct equal_to_impl;
-
-        template <>
-        struct equal_to_impl<cons_iterator_tag>
-        {
-            template <typename I1, typename I2>
-            struct apply             
-                : is_same<
-                    typename I1::identity
-                  , typename I2::identity
-                >
-            {
-            };
-        };
-    }
-}}
-
-#endif
-
diff --git a/boost/fusion/container/list/detail/next_impl.hpp b/boost/fusion/container/list/detail/next_impl.hpp
deleted file mode 100644
index 71006e5..0000000
--- a/boost/fusion/container/list/detail/next_impl.hpp
+++ /dev/null
@@ -1,59 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-    Copyright (c) 2005 Eric Niebler
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_NEXT_IMPL_07172005_0836)
-#define FUSION_NEXT_IMPL_07172005_0836
-
-#include <boost/fusion/iterator/next.hpp>
-#include <boost/fusion/iterator/equal_to.hpp>
-#include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/type_traits/is_const.hpp>
-#include <boost/type_traits/add_const.hpp>
-
-namespace boost { namespace fusion
-{
-    struct cons_iterator_tag;
-
-    template <typename Cons>
-    struct cons_iterator;
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct next_impl;
-
-        template <>
-        struct next_impl<cons_iterator_tag>
-        {
-            template <typename Iterator>
-            struct apply
-            {
-                typedef typename Iterator::cons_type cons_type;
-                typedef typename cons_type::cdr_type cdr_type;
-    
-                typedef cons_iterator<
-                    typename mpl::eval_if<
-                        is_const<cons_type>
-                      , add_const<cdr_type>
-                      , mpl::identity<cdr_type>
-                    >::type>
-                type;
-    
-                static type
-                call(Iterator const& i)
-                {
-                    return type(i.cons.cdr);
-                }
-            };
-        };
-    }
-}}
-
-#endif
-
-
diff --git a/boost/fusion/container/list/detail/preprocessed/list10_fwd.hpp b/boost/fusion/container/list/detail/preprocessed/list10_fwd.hpp
deleted file mode 100644
index f513a99..0000000
--- a/boost/fusion/container/list/detail/preprocessed/list10_fwd.hpp
+++ /dev/null
@@ -1,16 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-namespace boost { namespace fusion
-{
-    struct void_;
-    template <
-        typename T0 = void_ , typename T1 = void_ , typename T2 = void_ , typename T3 = void_ , typename T4 = void_ , typename T5 = void_ , typename T6 = void_ , typename T7 = void_ , typename T8 = void_ , typename T9 = void_
-    >
-    struct list;
-}}
diff --git a/boost/fusion/container/list/detail/preprocessed/list20_fwd.hpp b/boost/fusion/container/list/detail/preprocessed/list20_fwd.hpp
deleted file mode 100644
index 2eedc8b..0000000
--- a/boost/fusion/container/list/detail/preprocessed/list20_fwd.hpp
+++ /dev/null
@@ -1,16 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-namespace boost { namespace fusion
-{
-    struct void_;
-    template <
-        typename T0 = void_ , typename T1 = void_ , typename T2 = void_ , typename T3 = void_ , typename T4 = void_ , typename T5 = void_ , typename T6 = void_ , typename T7 = void_ , typename T8 = void_ , typename T9 = void_ , typename T10 = void_ , typename T11 = void_ , typename T12 = void_ , typename T13 = void_ , typename T14 = void_ , typename T15 = void_ , typename T16 = void_ , typename T17 = void_ , typename T18 = void_ , typename T19 = void_
-    >
-    struct list;
-}}
diff --git a/boost/fusion/container/list/detail/preprocessed/list30_fwd.hpp b/boost/fusion/container/list/detail/preprocessed/list30_fwd.hpp
deleted file mode 100644
index 32bfc60..0000000
--- a/boost/fusion/container/list/detail/preprocessed/list30_fwd.hpp
+++ /dev/null
@@ -1,16 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-namespace boost { namespace fusion
-{
-    struct void_;
-    template <
-        typename T0 = void_ , typename T1 = void_ , typename T2 = void_ , typename T3 = void_ , typename T4 = void_ , typename T5 = void_ , typename T6 = void_ , typename T7 = void_ , typename T8 = void_ , typename T9 = void_ , typename T10 = void_ , typename T11 = void_ , typename T12 = void_ , typename T13 = void_ , typename T14 = void_ , typename T15 = void_ , typename T16 = void_ , typename T17 = void_ , typename T18 = void_ , typename T19 = void_ , typename T20 = void_ , typename T2 [...]
-    >
-    struct list;
-}}
diff --git a/boost/fusion/container/list/detail/preprocessed/list40_fwd.hpp b/boost/fusion/container/list/detail/preprocessed/list40_fwd.hpp
deleted file mode 100644
index 5d0da6d..0000000
--- a/boost/fusion/container/list/detail/preprocessed/list40_fwd.hpp
+++ /dev/null
@@ -1,16 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-namespace boost { namespace fusion
-{
-    struct void_;
-    template <
-        typename T0 = void_ , typename T1 = void_ , typename T2 = void_ , typename T3 = void_ , typename T4 = void_ , typename T5 = void_ , typename T6 = void_ , typename T7 = void_ , typename T8 = void_ , typename T9 = void_ , typename T10 = void_ , typename T11 = void_ , typename T12 = void_ , typename T13 = void_ , typename T14 = void_ , typename T15 = void_ , typename T16 = void_ , typename T17 = void_ , typename T18 = void_ , typename T19 = void_ , typename T20 = void_ , typename T2 [...]
-    >
-    struct list;
-}}
diff --git a/boost/fusion/container/list/detail/preprocessed/list50_fwd.hpp b/boost/fusion/container/list/detail/preprocessed/list50_fwd.hpp
deleted file mode 100644
index 2b3ae66..0000000
--- a/boost/fusion/container/list/detail/preprocessed/list50_fwd.hpp
+++ /dev/null
@@ -1,16 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-namespace boost { namespace fusion
-{
-    struct void_;
-    template <
-        typename T0 = void_ , typename T1 = void_ , typename T2 = void_ , typename T3 = void_ , typename T4 = void_ , typename T5 = void_ , typename T6 = void_ , typename T7 = void_ , typename T8 = void_ , typename T9 = void_ , typename T10 = void_ , typename T11 = void_ , typename T12 = void_ , typename T13 = void_ , typename T14 = void_ , typename T15 = void_ , typename T16 = void_ , typename T17 = void_ , typename T18 = void_ , typename T19 = void_ , typename T20 = void_ , typename T2 [...]
-    >
-    struct list;
-}}
diff --git a/boost/fusion/container/list/detail/preprocessed/list_fwd.hpp b/boost/fusion/container/list/detail/preprocessed/list_fwd.hpp
deleted file mode 100644
index b9be347..0000000
--- a/boost/fusion/container/list/detail/preprocessed/list_fwd.hpp
+++ /dev/null
@@ -1,22 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-
-#if FUSION_MAX_LIST_SIZE <= 10
-#include <boost/fusion/container/list/detail/preprocessed/list10_fwd.hpp>
-#elif FUSION_MAX_LIST_SIZE <= 20
-#include <boost/fusion/container/list/detail/preprocessed/list20_fwd.hpp>
-#elif FUSION_MAX_LIST_SIZE <= 30
-#include <boost/fusion/container/list/detail/preprocessed/list30_fwd.hpp>
-#elif FUSION_MAX_LIST_SIZE <= 40
-#include <boost/fusion/container/list/detail/preprocessed/list40_fwd.hpp>
-#elif FUSION_MAX_LIST_SIZE <= 50
-#include <boost/fusion/container/list/detail/preprocessed/list50_fwd.hpp>
-#else
-#error "FUSION_MAX_LIST_SIZE out of bounds for preprocessed headers"
-#endif
diff --git a/boost/fusion/container/list/detail/reverse_cons.hpp b/boost/fusion/container/list/detail/reverse_cons.hpp
deleted file mode 100644
index 5083e0c..0000000
--- a/boost/fusion/container/list/detail/reverse_cons.hpp
+++ /dev/null
@@ -1,43 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2011 Eric Niebler
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(BOOST_FUSION_REVERSE_CONS_HPP_INCLUDED)
-#define BOOST_FUSION_REVERSE_CONS_HPP_INCLUDED
-
-#include <boost/fusion/container/list/cons_fwd.hpp>
-
-namespace boost { namespace fusion { namespace detail
-{
-    ////////////////////////////////////////////////////////////////////////////
-    template<typename Cons, typename State = nil_>
-    struct reverse_cons;
-
-    template<typename Car, typename Cdr, typename State>
-    struct reverse_cons<cons<Car, Cdr>, State>
-    {
-        typedef reverse_cons<Cdr, cons<Car, State> > impl;
-        typedef typename impl::type type;
-
-        static type call(cons<Car, Cdr> const &cons, State const &state = State())
-        {
-            typedef fusion::cons<Car, State> cdr_type;
-            return impl::call(cons.cdr, cdr_type(cons.car, state));
-        }
-    };
-
-    template<typename State>
-    struct reverse_cons<nil_, State>
-    {
-        typedef State type;
-
-        static State const &call(nil_ const &, State const &state = State())
-        {
-            return state;
-        }
-    };
-}}}
-
-#endif
diff --git a/boost/fusion/container/list/detail/value_at_impl.hpp b/boost/fusion/container/list/detail/value_at_impl.hpp
deleted file mode 100644
index 353f8d5..0000000
--- a/boost/fusion/container/list/detail/value_at_impl.hpp
+++ /dev/null
@@ -1,42 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_VALUE_AT_IMPL_07172005_0952)
-#define FUSION_VALUE_AT_IMPL_07172005_0952
-
-#include <boost/fusion/support/detail/access.hpp>
-#include <boost/type_traits/is_const.hpp>
-#include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/bool.hpp>
-
-namespace boost { namespace fusion
-{
-    struct cons_tag;
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct value_at_impl;
-
-        template <>
-        struct value_at_impl<cons_tag>
-        {
-            template <typename Sequence, typename N>
-            struct apply 
-            {
-                typedef typename 
-                    mpl::eval_if<
-                        mpl::bool_<N::value == 0>
-                      , mpl::identity<typename Sequence::car_type>
-                      , apply<typename Sequence::cdr_type, mpl::int_<N::value-1> >
-                    >::type
-                type;
-            };
-        };
-    }
-}}
-
-#endif
diff --git a/boost/fusion/container/list/detail/value_of_impl.hpp b/boost/fusion/container/list/detail/value_of_impl.hpp
deleted file mode 100644
index daabe41..0000000
--- a/boost/fusion/container/list/detail/value_of_impl.hpp
+++ /dev/null
@@ -1,36 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-    Copyright (c) 2005 Eric Niebler
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_VALUE_OF_IMPL_07172005_0838)
-#define FUSION_VALUE_OF_IMPL_07172005_0838
-
-namespace boost { namespace fusion
-{
-    struct cons_iterator_tag;
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct value_of_impl;
-
-        template <>
-        struct value_of_impl<cons_iterator_tag>
-        {
-            template <typename Iterator>
-            struct apply 
-            {
-                typedef typename Iterator::cons_type cons_type;
-                typedef typename cons_type::car_type type;
-            };
-        };
-    }
-
-}}
-
-#endif
-
-
diff --git a/boost/fusion/container/list/limits.hpp b/boost/fusion/container/list/limits.hpp
deleted file mode 100644
index 1d545ba..0000000
--- a/boost/fusion/container/list/limits.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_LIST_LIMITS_07172005_0112)
-#define FUSION_LIST_LIMITS_07172005_0112
-
-#if !defined(FUSION_MAX_LIST_SIZE)
-# define FUSION_MAX_LIST_SIZE 10
-#else
-# if FUSION_MAX_LIST_SIZE < 3
-#   undef FUSION_MAX_LIST_SIZE
-#   define FUSION_MAX_LIST_SIZE 10
-# endif
-#endif
-
-#define FUSION_MAX_LIST_SIZE_STR BOOST_PP_STRINGIZE(BOOST_FUSION_PP_ROUND_UP(FUSION_MAX_LIST_SIZE))
-
-#endif
diff --git a/boost/fusion/container/list/list_fwd.hpp b/boost/fusion/container/list/list_fwd.hpp
deleted file mode 100644
index a142689..0000000
--- a/boost/fusion/container/list/list_fwd.hpp
+++ /dev/null
@@ -1,50 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_LIST_FORWARD_07172005_0224)
-#define FUSION_LIST_FORWARD_07172005_0224
-
-#include <boost/fusion/container/list/limits.hpp>
-#include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
-
-#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
-#include <boost/fusion/container/list/detail/preprocessed/list_fwd.hpp>
-#else
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(preserve: 2, line: 0, output: "detail/preprocessed/list" FUSION_MAX_LIST_SIZE_STR "_fwd.hpp")
-#endif
-
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(preserve: 1)
-#endif
-
-namespace boost { namespace fusion
-{
-    struct void_;
-
-    template <
-        BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(
-            FUSION_MAX_LIST_SIZE, typename T, void_)
-    >
-    struct list;
-}}
-
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(output: null)
-#endif
-
-#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
-
-#endif
diff --git a/boost/fusion/container/vector/detail/advance_impl.hpp b/boost/fusion/container/vector/detail/advance_impl.hpp
deleted file mode 100644
index cded8f4..0000000
--- a/boost/fusion/container/vector/detail/advance_impl.hpp
+++ /dev/null
@@ -1,42 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_ADVANCE_IMPL_09172005_1156)
-#define FUSION_ADVANCE_IMPL_09172005_1156
-
-namespace boost { namespace fusion
-{
-    struct vector_iterator_tag;
-
-    template <typename Vector, int N>
-    struct vector_iterator;
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct advance_impl;
-    
-        template <>
-        struct advance_impl<vector_iterator_tag>
-        {
-            template <typename Iterator, typename N>
-            struct apply
-            {
-                typedef typename Iterator::index index;
-                typedef typename Iterator::vector vector;
-                typedef vector_iterator<vector, index::value+N::value> type;
-    
-                static type
-                call(Iterator const& i)
-                {
-                    return type(i.vec);
-                }
-            };
-        };
-    }
-}}
-
-#endif
diff --git a/boost/fusion/container/vector/detail/at_impl.hpp b/boost/fusion/container/vector/detail/at_impl.hpp
deleted file mode 100644
index 0017d9c..0000000
--- a/boost/fusion/container/vector/detail/at_impl.hpp
+++ /dev/null
@@ -1,56 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_AT_IMPL_05042005_0741)
-#define FUSION_AT_IMPL_05042005_0741
-
-#include <boost/fusion/support/detail/access.hpp>
-#include <boost/type_traits/is_const.hpp>
-#include <boost/mpl/at.hpp>
-#include <boost/mpl/int.hpp>
-
-namespace boost { namespace fusion
-{
-    struct vector_tag;
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct at_impl;
-
-        template <>
-        struct at_impl<vector_tag>
-        {
-            template <typename Sequence, typename N>
-            struct apply 
-            {
-                typedef typename mpl::at<typename Sequence::types, N>::type element;
-                typedef typename detail::ref_result<element>::type type;
-    
-                static type
-                call(Sequence& v)
-                {
-                    return v.at_impl(N());
-                }
-            };
-
-            template <typename Sequence, typename N>
-            struct apply <Sequence const, N>
-            {
-                typedef typename mpl::at<typename Sequence::types, N>::type element;
-                typedef typename detail::cref_result<element>::type type;
-    
-                static type
-                call(Sequence const& v)
-                {
-                    return v.at_impl(N());
-                }
-            };
-        };
-    }
-}}
-
-#endif
diff --git a/boost/fusion/container/vector/detail/begin_impl.hpp b/boost/fusion/container/vector/detail/begin_impl.hpp
deleted file mode 100644
index f5583ba..0000000
--- a/boost/fusion/container/vector/detail/begin_impl.hpp
+++ /dev/null
@@ -1,39 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_BEGIN_IMPL_05042005_1136)
-#define FUSION_BEGIN_IMPL_05042005_1136
-
-#include <boost/fusion/container/vector/vector_iterator.hpp>
-
-namespace boost { namespace fusion
-{
-    struct vector_tag;
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct begin_impl;
-
-        template <>
-        struct begin_impl<vector_tag>
-        {
-            template <typename Sequence>
-            struct apply 
-            {
-                typedef vector_iterator<Sequence, 0> type;
-    
-                static type
-                call(Sequence& v)
-                {
-                    return type(v);
-                }
-            };
-        };
-    }
-}}
-
-#endif
diff --git a/boost/fusion/container/vector/detail/deref_impl.hpp b/boost/fusion/container/vector/detail/deref_impl.hpp
deleted file mode 100644
index 8c5fb94..0000000
--- a/boost/fusion/container/vector/detail/deref_impl.hpp
+++ /dev/null
@@ -1,54 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_DEREF_IMPL_05042005_1037)
-#define FUSION_DEREF_IMPL_05042005_1037
-
-#include <boost/mpl/at.hpp>
-#include <boost/fusion/support/detail/access.hpp>
-#include <boost/type_traits/is_const.hpp>
-#include <boost/mpl/if.hpp>
-
-namespace boost { namespace fusion
-{
-    struct vector_iterator_tag;
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct deref_impl;
-
-        template <>
-        struct deref_impl<vector_iterator_tag>
-        {
-            template <typename Iterator>
-            struct apply 
-            {
-                typedef typename Iterator::vector vector;
-                typedef typename Iterator::index index;
-                typedef typename mpl::at<
-                    typename vector::types, index>::type
-                element;
-                
-                typedef typename
-                    mpl::if_<
-                        is_const<vector>
-                      , typename fusion::detail::cref_result<element>::type
-                      , typename fusion::detail::ref_result<element>::type
-                    >::type
-                type;
-
-                static type
-                call(Iterator const& i)
-                {
-                    return i.vec.at_impl(index());
-                }
-            };
-        };
-    }
-}}
-
-#endif
diff --git a/boost/fusion/container/vector/detail/distance_impl.hpp b/boost/fusion/container/vector/detail/distance_impl.hpp
deleted file mode 100644
index 146d5ba..0000000
--- a/boost/fusion/container/vector/detail/distance_impl.hpp
+++ /dev/null
@@ -1,41 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_DISTANCE_IMPL_09172005_0751)
-#define FUSION_DISTANCE_IMPL_09172005_0751
-
-#include <boost/mpl/minus.hpp>
-
-namespace boost { namespace fusion
-{
-    struct vector_iterator_tag;
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct distance_impl;
-
-        template <>
-        struct distance_impl<vector_iterator_tag>
-        {
-            template <typename First, typename Last>
-            struct apply : mpl::minus<typename Last::index, typename First::index>
-            {    
-                static typename mpl::minus<
-                    typename Last::index, typename First::index>::type
-                call(First const&, Last const&)
-                {
-                    typedef typename mpl::minus<
-                        typename Last::index, typename First::index>::type 
-                    result;
-                    return result();
-                }
-            };
-        };
-    }
-}}
-
-#endif
diff --git a/boost/fusion/container/vector/detail/end_impl.hpp b/boost/fusion/container/vector/detail/end_impl.hpp
deleted file mode 100644
index fde365c..0000000
--- a/boost/fusion/container/vector/detail/end_impl.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_END_IMPL_05042005_1142)
-#define FUSION_END_IMPL_05042005_1142
-
-#include <boost/fusion/container/vector/vector_iterator.hpp>
-
-namespace boost { namespace fusion
-{
-    struct vector_tag;
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct end_impl;
-
-        template <>
-        struct end_impl<vector_tag>
-        {
-            template <typename Sequence>
-            struct apply 
-            {
-                typedef typename Sequence::size size;
-                typedef vector_iterator<Sequence, size::value> type;
-    
-                static type
-                call(Sequence& v)
-                {
-                    return type(v);
-                }
-            };
-        };
-    }
-}}
-
-#endif
diff --git a/boost/fusion/container/vector/detail/equal_to_impl.hpp b/boost/fusion/container/vector/detail/equal_to_impl.hpp
deleted file mode 100644
index 3c6fcbd..0000000
--- a/boost/fusion/container/vector/detail/equal_to_impl.hpp
+++ /dev/null
@@ -1,39 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_EQUAL_TO_IMPL_05052005_1215)
-#define FUSION_EQUAL_TO_IMPL_05052005_1215
-
-#include <boost/type_traits/is_same.hpp>
-#include <boost/mpl/equal_to.hpp>
-#include <boost/mpl/and.hpp>
-
-namespace boost { namespace fusion
-{
-    struct vector_iterator_tag;
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct equal_to_impl;
-
-        template <>
-        struct equal_to_impl<vector_iterator_tag>
-        {
-            template <typename I1, typename I2>
-            struct apply             
-                : is_same<
-                    typename I1::identity
-                  , typename I2::identity
-                >
-            {
-            };
-        };
-    }
-}}
-
-#endif
-
diff --git a/boost/fusion/container/vector/detail/next_impl.hpp b/boost/fusion/container/vector/detail/next_impl.hpp
deleted file mode 100644
index 169297d..0000000
--- a/boost/fusion/container/vector/detail/next_impl.hpp
+++ /dev/null
@@ -1,43 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_NEXT_IMPL_05042005_1058)
-#define FUSION_NEXT_IMPL_05042005_1058
-
-#include <boost/fusion/container/vector/vector_iterator.hpp>
-
-namespace boost { namespace fusion
-{
-    struct vector_iterator_tag;
-    template <typename Vector, int N>
-    struct vector_iterator;
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct next_impl;
-
-        template <>
-        struct next_impl<vector_iterator_tag>
-        {
-            template <typename Iterator>
-            struct apply 
-            {
-                typedef typename Iterator::vector vector;
-                typedef typename Iterator::index index;
-                typedef vector_iterator<vector, index::value+1> type;
-
-                static type
-                call(Iterator const& i)
-                {
-                    return type(i.vec);
-                }
-            };
-        };
-    }
-}}
-
-#endif
diff --git a/boost/fusion/container/vector/detail/preprocessed/vector.hpp b/boost/fusion/container/vector/detail/preprocessed/vector.hpp
deleted file mode 100644
index 040fff9..0000000
--- a/boost/fusion/container/vector/detail/preprocessed/vector.hpp
+++ /dev/null
@@ -1,22 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-
-#if FUSION_MAX_VECTOR_SIZE <= 10
-#include <boost/fusion/container/vector/detail/preprocessed/vvector10.hpp>
-#elif FUSION_MAX_VECTOR_SIZE <= 20
-#include <boost/fusion/container/vector/detail/preprocessed/vvector20.hpp>
-#elif FUSION_MAX_VECTOR_SIZE <= 30
-#include <boost/fusion/container/vector/detail/preprocessed/vvector30.hpp>
-#elif FUSION_MAX_VECTOR_SIZE <= 40
-#include <boost/fusion/container/vector/detail/preprocessed/vvector40.hpp>
-#elif FUSION_MAX_VECTOR_SIZE <= 50
-#include <boost/fusion/container/vector/detail/preprocessed/vvector50.hpp>
-#else
-#error "FUSION_MAX_VECTOR_SIZE out of bounds for preprocessed headers"
-#endif
diff --git a/boost/fusion/container/vector/detail/preprocessed/vector10.hpp b/boost/fusion/container/vector/detail/preprocessed/vector10.hpp
deleted file mode 100644
index 8ef9947..0000000
--- a/boost/fusion/container/vector/detail/preprocessed/vector10.hpp
+++ /dev/null
@@ -1,1004 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-namespace boost { namespace fusion
-{
-    template <typename T0>
-    struct vector_data1
-    {
-        vector_data1()
-            : m0() {}
-        vector_data1(
-            typename detail::call_param<T0 >::type _0)
-            : m0(_0) {}
-        vector_data1(
-            vector_data1 const& other)
-            : m0(other.m0) {}
-        vector_data1&
-        operator=(vector_data1 const& vec)
-        {
-            this->m0 = vec.m0;
-            return *this;
-        }
-        template <typename Sequence>
-        static vector_data1
-        init_from_sequence(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            
-            return vector_data1(*i0);
-        }
-        template <typename Sequence>
-        static vector_data1
-        init_from_sequence(Sequence& seq)
-        {
-            typedef typename result_of::begin<Sequence>::type I0;
-            I0 i0 = fusion::begin(seq);
-            
-            return vector_data1(*i0);
-        }
-        T0 m0;
-    };
-    template <typename T0>
-    struct vector1
-      : vector_data1<T0>
-      , sequence_base<vector1<T0> >
-    {
-        typedef vector1<T0> this_type;
-        typedef vector_data1<T0> base_type;
-        typedef mpl::vector1<T0> types;
-        typedef vector_tag fusion_tag;
-        typedef fusion_sequence_tag tag; 
-        typedef mpl::false_ is_view;
-        typedef random_access_traversal_tag category;
-        typedef mpl::int_<1> size;
-        vector1() {}
-        explicit
-        vector1(
-            typename detail::call_param<T0 >::type _0)
-            : base_type(_0) {}
-        template <typename U0>
-        vector1(
-            vector1<U0> const& vec)
-            : base_type(vec.m0) {}
-        template <typename Sequence>
-        vector1(
-            Sequence const& seq
-          , typename boost::disable_if<is_convertible<Sequence, T0> >::type* = 0
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename Sequence>
-        vector1(
-            Sequence& seq
-          , typename boost::disable_if<is_convertible<Sequence, T0> >::type* = 0
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename U0>
-        vector1&
-        operator=(vector1<U0> const& vec)
-        {
-            this->m0 = vec.m0;
-            return *this;
-        }
-        template <typename Sequence>
-        typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
-        operator=(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            
-            this->m0 = *i0;
-            return *this;
-        }
-        typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; }
-        template<typename I>
-        typename add_reference<typename mpl::at<types, I>::type>::type
-        at_impl(I)
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
-        at_impl(I) const
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-    };
-    template <typename T0 , typename T1>
-    struct vector_data2
-    {
-        vector_data2()
-            : m0() , m1() {}
-        vector_data2(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1)
-            : m0(_0) , m1(_1) {}
-        vector_data2(
-            vector_data2 const& other)
-            : m0(other.m0) , m1(other.m1) {}
-        vector_data2&
-        operator=(vector_data2 const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1;
-            return *this;
-        }
-        template <typename Sequence>
-        static vector_data2
-        init_from_sequence(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0);
-            return vector_data2(*i0 , *i1);
-        }
-        template <typename Sequence>
-        static vector_data2
-        init_from_sequence(Sequence& seq)
-        {
-            typedef typename result_of::begin<Sequence>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0);
-            return vector_data2(*i0 , *i1);
-        }
-        T0 m0; T1 m1;
-    };
-    template <typename T0 , typename T1>
-    struct vector2
-      : vector_data2<T0 , T1>
-      , sequence_base<vector2<T0 , T1> >
-    {
-        typedef vector2<T0 , T1> this_type;
-        typedef vector_data2<T0 , T1> base_type;
-        typedef mpl::vector2<T0 , T1> types;
-        typedef vector_tag fusion_tag;
-        typedef fusion_sequence_tag tag; 
-        typedef mpl::false_ is_view;
-        typedef random_access_traversal_tag category;
-        typedef mpl::int_<2> size;
-        vector2() {}
-        vector2(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1)
-            : base_type(_0 , _1) {}
-        template <typename U0 , typename U1>
-        vector2(
-            vector2<U0 , U1> const& vec)
-            : base_type(vec.m0 , vec.m1) {}
-        template <typename Sequence>
-        vector2(
-            Sequence const& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename Sequence>
-        vector2(
-            Sequence& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename U0 , typename U1>
-        vector2&
-        operator=(vector2<U0 , U1> const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1;
-            return *this;
-        }
-        template <typename Sequence>
-        typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
-        operator=(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0);
-            this->m0 = *i0; this->m1 = *i1;
-            return *this;
-        }
-        typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; }
-        template<typename I>
-        typename add_reference<typename mpl::at<types, I>::type>::type
-        at_impl(I)
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
-        at_impl(I) const
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-    };
-    template <typename T0 , typename T1 , typename T2>
-    struct vector_data3
-    {
-        vector_data3()
-            : m0() , m1() , m2() {}
-        vector_data3(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2)
-            : m0(_0) , m1(_1) , m2(_2) {}
-        vector_data3(
-            vector_data3 const& other)
-            : m0(other.m0) , m1(other.m1) , m2(other.m2) {}
-        vector_data3&
-        operator=(vector_data3 const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2;
-            return *this;
-        }
-        template <typename Sequence>
-        static vector_data3
-        init_from_sequence(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1);
-            return vector_data3(*i0 , *i1 , *i2);
-        }
-        template <typename Sequence>
-        static vector_data3
-        init_from_sequence(Sequence& seq)
-        {
-            typedef typename result_of::begin<Sequence>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1);
-            return vector_data3(*i0 , *i1 , *i2);
-        }
-        T0 m0; T1 m1; T2 m2;
-    };
-    template <typename T0 , typename T1 , typename T2>
-    struct vector3
-      : vector_data3<T0 , T1 , T2>
-      , sequence_base<vector3<T0 , T1 , T2> >
-    {
-        typedef vector3<T0 , T1 , T2> this_type;
-        typedef vector_data3<T0 , T1 , T2> base_type;
-        typedef mpl::vector3<T0 , T1 , T2> types;
-        typedef vector_tag fusion_tag;
-        typedef fusion_sequence_tag tag; 
-        typedef mpl::false_ is_view;
-        typedef random_access_traversal_tag category;
-        typedef mpl::int_<3> size;
-        vector3() {}
-        vector3(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2)
-            : base_type(_0 , _1 , _2) {}
-        template <typename U0 , typename U1 , typename U2>
-        vector3(
-            vector3<U0 , U1 , U2> const& vec)
-            : base_type(vec.m0 , vec.m1 , vec.m2) {}
-        template <typename Sequence>
-        vector3(
-            Sequence const& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename Sequence>
-        vector3(
-            Sequence& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename U0 , typename U1 , typename U2>
-        vector3&
-        operator=(vector3<U0 , U1 , U2> const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2;
-            return *this;
-        }
-        template <typename Sequence>
-        typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
-        operator=(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1);
-            this->m0 = *i0; this->m1 = *i1; this->m2 = *i2;
-            return *this;
-        }
-        typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_cons [...]
-        template<typename I>
-        typename add_reference<typename mpl::at<types, I>::type>::type
-        at_impl(I)
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
-        at_impl(I) const
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3>
-    struct vector_data4
-    {
-        vector_data4()
-            : m0() , m1() , m2() , m3() {}
-        vector_data4(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3)
-            : m0(_0) , m1(_1) , m2(_2) , m3(_3) {}
-        vector_data4(
-            vector_data4 const& other)
-            : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) {}
-        vector_data4&
-        operator=(vector_data4 const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3;
-            return *this;
-        }
-        template <typename Sequence>
-        static vector_data4
-        init_from_sequence(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2);
-            return vector_data4(*i0 , *i1 , *i2 , *i3);
-        }
-        template <typename Sequence>
-        static vector_data4
-        init_from_sequence(Sequence& seq)
-        {
-            typedef typename result_of::begin<Sequence>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2);
-            return vector_data4(*i0 , *i1 , *i2 , *i3);
-        }
-        T0 m0; T1 m1; T2 m2; T3 m3;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3>
-    struct vector4
-      : vector_data4<T0 , T1 , T2 , T3>
-      , sequence_base<vector4<T0 , T1 , T2 , T3> >
-    {
-        typedef vector4<T0 , T1 , T2 , T3> this_type;
-        typedef vector_data4<T0 , T1 , T2 , T3> base_type;
-        typedef mpl::vector4<T0 , T1 , T2 , T3> types;
-        typedef vector_tag fusion_tag;
-        typedef fusion_sequence_tag tag; 
-        typedef mpl::false_ is_view;
-        typedef random_access_traversal_tag category;
-        typedef mpl::int_<4> size;
-        vector4() {}
-        vector4(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3)
-            : base_type(_0 , _1 , _2 , _3) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3>
-        vector4(
-            vector4<U0 , U1 , U2 , U3> const& vec)
-            : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3) {}
-        template <typename Sequence>
-        vector4(
-            Sequence const& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename Sequence>
-        vector4(
-            Sequence& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3>
-        vector4&
-        operator=(vector4<U0 , U1 , U2 , U3> const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3;
-            return *this;
-        }
-        template <typename Sequence>
-        typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
-        operator=(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2);
-            this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3;
-            return *this;
-        }
-        typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_cons [...]
-        template<typename I>
-        typename add_reference<typename mpl::at<types, I>::type>::type
-        at_impl(I)
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
-        at_impl(I) const
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4>
-    struct vector_data5
-    {
-        vector_data5()
-            : m0() , m1() , m2() , m3() , m4() {}
-        vector_data5(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4)
-            : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) {}
-        vector_data5(
-            vector_data5 const& other)
-            : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) {}
-        vector_data5&
-        operator=(vector_data5 const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4;
-            return *this;
-        }
-        template <typename Sequence>
-        static vector_data5
-        init_from_sequence(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3);
-            return vector_data5(*i0 , *i1 , *i2 , *i3 , *i4);
-        }
-        template <typename Sequence>
-        static vector_data5
-        init_from_sequence(Sequence& seq)
-        {
-            typedef typename result_of::begin<Sequence>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3);
-            return vector_data5(*i0 , *i1 , *i2 , *i3 , *i4);
-        }
-        T0 m0; T1 m1; T2 m2; T3 m3; T4 m4;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4>
-    struct vector5
-      : vector_data5<T0 , T1 , T2 , T3 , T4>
-      , sequence_base<vector5<T0 , T1 , T2 , T3 , T4> >
-    {
-        typedef vector5<T0 , T1 , T2 , T3 , T4> this_type;
-        typedef vector_data5<T0 , T1 , T2 , T3 , T4> base_type;
-        typedef mpl::vector5<T0 , T1 , T2 , T3 , T4> types;
-        typedef vector_tag fusion_tag;
-        typedef fusion_sequence_tag tag; 
-        typedef mpl::false_ is_view;
-        typedef random_access_traversal_tag category;
-        typedef mpl::int_<5> size;
-        vector5() {}
-        vector5(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4)
-            : base_type(_0 , _1 , _2 , _3 , _4) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4>
-        vector5(
-            vector5<U0 , U1 , U2 , U3 , U4> const& vec)
-            : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4) {}
-        template <typename Sequence>
-        vector5(
-            Sequence const& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename Sequence>
-        vector5(
-            Sequence& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4>
-        vector5&
-        operator=(vector5<U0 , U1 , U2 , U3 , U4> const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4;
-            return *this;
-        }
-        template <typename Sequence>
-        typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
-        operator=(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3);
-            this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4;
-            return *this;
-        }
-        typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_cons [...]
-        template<typename I>
-        typename add_reference<typename mpl::at<types, I>::type>::type
-        at_impl(I)
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
-        at_impl(I) const
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5>
-    struct vector_data6
-    {
-        vector_data6()
-            : m0() , m1() , m2() , m3() , m4() , m5() {}
-        vector_data6(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5)
-            : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) {}
-        vector_data6(
-            vector_data6 const& other)
-            : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) {}
-        vector_data6&
-        operator=(vector_data6 const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5;
-            return *this;
-        }
-        template <typename Sequence>
-        static vector_data6
-        init_from_sequence(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4);
-            return vector_data6(*i0 , *i1 , *i2 , *i3 , *i4 , *i5);
-        }
-        template <typename Sequence>
-        static vector_data6
-        init_from_sequence(Sequence& seq)
-        {
-            typedef typename result_of::begin<Sequence>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4);
-            return vector_data6(*i0 , *i1 , *i2 , *i3 , *i4 , *i5);
-        }
-        T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5>
-    struct vector6
-      : vector_data6<T0 , T1 , T2 , T3 , T4 , T5>
-      , sequence_base<vector6<T0 , T1 , T2 , T3 , T4 , T5> >
-    {
-        typedef vector6<T0 , T1 , T2 , T3 , T4 , T5> this_type;
-        typedef vector_data6<T0 , T1 , T2 , T3 , T4 , T5> base_type;
-        typedef mpl::vector6<T0 , T1 , T2 , T3 , T4 , T5> types;
-        typedef vector_tag fusion_tag;
-        typedef fusion_sequence_tag tag; 
-        typedef mpl::false_ is_view;
-        typedef random_access_traversal_tag category;
-        typedef mpl::int_<6> size;
-        vector6() {}
-        vector6(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5)
-            : base_type(_0 , _1 , _2 , _3 , _4 , _5) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5>
-        vector6(
-            vector6<U0 , U1 , U2 , U3 , U4 , U5> const& vec)
-            : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5) {}
-        template <typename Sequence>
-        vector6(
-            Sequence const& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename Sequence>
-        vector6(
-            Sequence& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5>
-        vector6&
-        operator=(vector6<U0 , U1 , U2 , U3 , U4 , U5> const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5;
-            return *this;
-        }
-        template <typename Sequence>
-        typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
-        operator=(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4);
-            this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5;
-            return *this;
-        }
-        typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_cons [...]
-        template<typename I>
-        typename add_reference<typename mpl::at<types, I>::type>::type
-        at_impl(I)
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
-        at_impl(I) const
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6>
-    struct vector_data7
-    {
-        vector_data7()
-            : m0() , m1() , m2() , m3() , m4() , m5() , m6() {}
-        vector_data7(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6)
-            : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) {}
-        vector_data7(
-            vector_data7 const& other)
-            : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) {}
-        vector_data7&
-        operator=(vector_data7 const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6;
-            return *this;
-        }
-        template <typename Sequence>
-        static vector_data7
-        init_from_sequence(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5);
-            return vector_data7(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6);
-        }
-        template <typename Sequence>
-        static vector_data7
-        init_from_sequence(Sequence& seq)
-        {
-            typedef typename result_of::begin<Sequence>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5);
-            return vector_data7(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6);
-        }
-        T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6>
-    struct vector7
-      : vector_data7<T0 , T1 , T2 , T3 , T4 , T5 , T6>
-      , sequence_base<vector7<T0 , T1 , T2 , T3 , T4 , T5 , T6> >
-    {
-        typedef vector7<T0 , T1 , T2 , T3 , T4 , T5 , T6> this_type;
-        typedef vector_data7<T0 , T1 , T2 , T3 , T4 , T5 , T6> base_type;
-        typedef mpl::vector7<T0 , T1 , T2 , T3 , T4 , T5 , T6> types;
-        typedef vector_tag fusion_tag;
-        typedef fusion_sequence_tag tag; 
-        typedef mpl::false_ is_view;
-        typedef random_access_traversal_tag category;
-        typedef mpl::int_<7> size;
-        vector7() {}
-        vector7(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6)
-            : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6>
-        vector7(
-            vector7<U0 , U1 , U2 , U3 , U4 , U5 , U6> const& vec)
-            : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6) {}
-        template <typename Sequence>
-        vector7(
-            Sequence const& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename Sequence>
-        vector7(
-            Sequence& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6>
-        vector7&
-        operator=(vector7<U0 , U1 , U2 , U3 , U4 , U5 , U6> const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6;
-            return *this;
-        }
-        template <typename Sequence>
-        typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
-        operator=(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5);
-            this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6;
-            return *this;
-        }
-        typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_cons [...]
-        template<typename I>
-        typename add_reference<typename mpl::at<types, I>::type>::type
-        at_impl(I)
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
-        at_impl(I) const
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7>
-    struct vector_data8
-    {
-        vector_data8()
-            : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() {}
-        vector_data8(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7)
-            : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) {}
-        vector_data8(
-            vector_data8 const& other)
-            : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) {}
-        vector_data8&
-        operator=(vector_data8 const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7;
-            return *this;
-        }
-        template <typename Sequence>
-        static vector_data8
-        init_from_sequence(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data8(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7);
-        }
-        template <typename Sequence>
-        static vector_data8
-        init_from_sequence(Sequence& seq)
-        {
-            typedef typename result_of::begin<Sequence>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data8(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7);
-        }
-        T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7>
-    struct vector8
-      : vector_data8<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7>
-      , sequence_base<vector8<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7> >
-    {
-        typedef vector8<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7> this_type;
-        typedef vector_data8<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7> base_type;
-        typedef mpl::vector8<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7> types;
-        typedef vector_tag fusion_tag;
-        typedef fusion_sequence_tag tag; 
-        typedef mpl::false_ is_view;
-        typedef random_access_traversal_tag category;
-        typedef mpl::int_<8> size;
-        vector8() {}
-        vector8(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7)
-            : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7>
-        vector8(
-            vector8<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7> const& vec)
-            : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7) {}
-        template <typename Sequence>
-        vector8(
-            Sequence const& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename Sequence>
-        vector8(
-            Sequence& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7>
-        vector8&
-        operator=(vector8<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7> const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7;
-            return *this;
-        }
-        template <typename Sequence>
-        typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
-        operator=(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7;
-            return *this;
-        }
-        typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_cons [...]
-        template<typename I>
-        typename add_reference<typename mpl::at<types, I>::type>::type
-        at_impl(I)
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
-        at_impl(I) const
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8>
-    struct vector_data9
-    {
-        vector_data9()
-            : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() {}
-        vector_data9(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8)
-            : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) {}
-        vector_data9(
-            vector_data9 const& other)
-            : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) {}
-        vector_data9&
-        operator=(vector_data9 const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8;
-            return *this;
-        }
-        template <typename Sequence>
-        static vector_data9
-        init_from_sequence(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data9(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8);
-        }
-        template <typename Sequence>
-        static vector_data9
-        init_from_sequence(Sequence& seq)
-        {
-            typedef typename result_of::begin<Sequence>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data9(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8);
-        }
-        T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8>
-    struct vector9
-      : vector_data9<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8>
-      , sequence_base<vector9<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8> >
-    {
-        typedef vector9<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8> this_type;
-        typedef vector_data9<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8> base_type;
-        typedef mpl::vector9<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8> types;
-        typedef vector_tag fusion_tag;
-        typedef fusion_sequence_tag tag; 
-        typedef mpl::false_ is_view;
-        typedef random_access_traversal_tag category;
-        typedef mpl::int_<9> size;
-        vector9() {}
-        vector9(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8)
-            : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8>
-        vector9(
-            vector9<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8> const& vec)
-            : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8) {}
-        template <typename Sequence>
-        vector9(
-            Sequence const& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename Sequence>
-        vector9(
-            Sequence& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8>
-        vector9&
-        operator=(vector9<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8> const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8;
-            return *this;
-        }
-        template <typename Sequence>
-        typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
-        operator=(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8;
-            return *this;
-        }
-        typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_cons [...]
-        template<typename I>
-        typename add_reference<typename mpl::at<types, I>::type>::type
-        at_impl(I)
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
-        at_impl(I) const
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9>
-    struct vector_data10
-    {
-        vector_data10()
-            : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() {}
-        vector_data10(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9)
-            : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) {}
-        vector_data10(
-            vector_data10 const& other)
-            : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) {}
-        vector_data10&
-        operator=(vector_data10 const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9;
-            return *this;
-        }
-        template <typename Sequence>
-        static vector_data10
-        init_from_sequence(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data10(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9);
-        }
-        template <typename Sequence>
-        static vector_data10
-        init_from_sequence(Sequence& seq)
-        {
-            typedef typename result_of::begin<Sequence>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data10(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9);
-        }
-        T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9>
-    struct vector10
-      : vector_data10<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9>
-      , sequence_base<vector10<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9> >
-    {
-        typedef vector10<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9> this_type;
-        typedef vector_data10<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9> base_type;
-        typedef mpl::vector10<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9> types;
-        typedef vector_tag fusion_tag;
-        typedef fusion_sequence_tag tag; 
-        typedef mpl::false_ is_view;
-        typedef random_access_traversal_tag category;
-        typedef mpl::int_<10> size;
-        vector10() {}
-        vector10(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9)
-            : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9>
-        vector10(
-            vector10<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9> const& vec)
-            : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9) {}
-        template <typename Sequence>
-        vector10(
-            Sequence const& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename Sequence>
-        vector10(
-            Sequence& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9>
-        vector10&
-        operator=(vector10<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9> const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9;
-            return *this;
-        }
-        template <typename Sequence>
-        typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
-        operator=(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9;
-            return *this;
-        }
-        typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_cons [...]
-        template<typename I>
-        typename add_reference<typename mpl::at<types, I>::type>::type
-        at_impl(I)
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
-        at_impl(I) const
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-    };
-}}
diff --git a/boost/fusion/container/vector/detail/preprocessed/vector10_fwd.hpp b/boost/fusion/container/vector/detail/preprocessed/vector10_fwd.hpp
deleted file mode 100644
index 33f817f..0000000
--- a/boost/fusion/container/vector/detail/preprocessed/vector10_fwd.hpp
+++ /dev/null
@@ -1,33 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2011 Eric Niebler
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-namespace boost { namespace fusion
-{
-    
-    template <typename T0>
-    struct vector1;
-    template <typename T0 , typename T1>
-    struct vector2;
-    template <typename T0 , typename T1 , typename T2>
-    struct vector3;
-    template <typename T0 , typename T1 , typename T2 , typename T3>
-    struct vector4;
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4>
-    struct vector5;
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5>
-    struct vector6;
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6>
-    struct vector7;
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7>
-    struct vector8;
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8>
-    struct vector9;
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9>
-    struct vector10;
-}}
diff --git a/boost/fusion/container/vector/detail/preprocessed/vector20.hpp b/boost/fusion/container/vector/detail/preprocessed/vector20.hpp
deleted file mode 100644
index 151acbb..0000000
--- a/boost/fusion/container/vector/detail/preprocessed/vector20.hpp
+++ /dev/null
@@ -1,1004 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-namespace boost { namespace fusion
-{
-    struct vector_tag;
-    struct fusion_sequence_tag;
-    struct random_access_traversal_tag;
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10>
-    struct vector_data11
-    {
-        vector_data11()
-            : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() {}
-        vector_data11(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _10)
-            : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) {}
-        vector_data11(
-            vector_data11 const& other)
-            : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) {}
-        vector_data11&
-        operator=(vector_data11 const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10;
-            return *this;
-        }
-        template <typename Sequence>
-        static vector_data11
-        init_from_sequence(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data11(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10);
-        }
-        template <typename Sequence>
-        static vector_data11
-        init_from_sequence(Sequence& seq)
-        {
-            typedef typename result_of::begin<Sequence>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data11(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10);
-        }
-        T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10>
-    struct vector11
-      : vector_data11<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10>
-      , sequence_base<vector11<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10> >
-    {
-        typedef vector11<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10> this_type;
-        typedef vector_data11<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10> base_type;
-        typedef mpl::vector11<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10> types;
-        typedef vector_tag fusion_tag;
-        typedef fusion_sequence_tag tag; 
-        typedef mpl::false_ is_view;
-        typedef random_access_traversal_tag category;
-        typedef mpl::int_<11> size;
-        vector11() {}
-        vector11(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _10)
-            : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10>
-        vector11(
-            vector11<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10> const& vec)
-            : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10) {}
-        template <typename Sequence>
-        vector11(
-            Sequence const& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename Sequence>
-        vector11(
-            Sequence& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10>
-        vector11&
-        operator=(vector11<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10> const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10;
-            return *this;
-        }
-        template <typename Sequence>
-        typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
-        operator=(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10;
-            return *this;
-        }
-        typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_cons [...]
-        template<typename I>
-        typename add_reference<typename mpl::at<types, I>::type>::type
-        at_impl(I)
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
-        at_impl(I) const
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11>
-    struct vector_data12
-    {
-        vector_data12()
-            : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() {}
-        vector_data12(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) {}
-        vector_data12(
-            vector_data12 const& other)
-            : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) {}
-        vector_data12&
-        operator=(vector_data12 const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11;
-            return *this;
-        }
-        template <typename Sequence>
-        static vector_data12
-        init_from_sequence(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data12(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11);
-        }
-        template <typename Sequence>
-        static vector_data12
-        init_from_sequence(Sequence& seq)
-        {
-            typedef typename result_of::begin<Sequence>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data12(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11);
-        }
-        T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11>
-    struct vector12
-      : vector_data12<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11>
-      , sequence_base<vector12<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11> >
-    {
-        typedef vector12<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11> this_type;
-        typedef vector_data12<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11> base_type;
-        typedef mpl::vector12<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11> types;
-        typedef vector_tag fusion_tag;
-        typedef fusion_sequence_tag tag; 
-        typedef mpl::false_ is_view;
-        typedef random_access_traversal_tag category;
-        typedef mpl::int_<12> size;
-        vector12() {}
-        vector12(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11>
-        vector12(
-            vector12<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11> const& vec)
-            : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11) {}
-        template <typename Sequence>
-        vector12(
-            Sequence const& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename Sequence>
-        vector12(
-            Sequence& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11>
-        vector12&
-        operator=(vector12<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11> const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11;
-            return *this;
-        }
-        template <typename Sequence>
-        typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
-        operator=(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11;
-            return *this;
-        }
-        typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_cons [...]
-        template<typename I>
-        typename add_reference<typename mpl::at<types, I>::type>::type
-        at_impl(I)
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
-        at_impl(I) const
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12>
-    struct vector_data13
-    {
-        vector_data13()
-            : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() {}
-        vector_data13(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) {}
-        vector_data13(
-            vector_data13 const& other)
-            : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) {}
-        vector_data13&
-        operator=(vector_data13 const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12;
-            return *this;
-        }
-        template <typename Sequence>
-        static vector_data13
-        init_from_sequence(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data13(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12);
-        }
-        template <typename Sequence>
-        static vector_data13
-        init_from_sequence(Sequence& seq)
-        {
-            typedef typename result_of::begin<Sequence>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data13(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12);
-        }
-        T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12>
-    struct vector13
-      : vector_data13<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12>
-      , sequence_base<vector13<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12> >
-    {
-        typedef vector13<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12> this_type;
-        typedef vector_data13<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12> base_type;
-        typedef mpl::vector13<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12> types;
-        typedef vector_tag fusion_tag;
-        typedef fusion_sequence_tag tag; 
-        typedef mpl::false_ is_view;
-        typedef random_access_traversal_tag category;
-        typedef mpl::int_<13> size;
-        vector13() {}
-        vector13(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12>
-        vector13(
-            vector13<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12> const& vec)
-            : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12) {}
-        template <typename Sequence>
-        vector13(
-            Sequence const& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename Sequence>
-        vector13(
-            Sequence& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12>
-        vector13&
-        operator=(vector13<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12> const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12;
-            return *this;
-        }
-        template <typename Sequence>
-        typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
-        operator=(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12;
-            return *this;
-        }
-        typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_cons [...]
-        template<typename I>
-        typename add_reference<typename mpl::at<types, I>::type>::type
-        at_impl(I)
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
-        at_impl(I) const
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13>
-    struct vector_data14
-    {
-        vector_data14()
-            : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() {}
-        vector_data14(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) {}
-        vector_data14(
-            vector_data14 const& other)
-            : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) {}
-        vector_data14&
-        operator=(vector_data14 const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13;
-            return *this;
-        }
-        template <typename Sequence>
-        static vector_data14
-        init_from_sequence(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data14(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13);
-        }
-        template <typename Sequence>
-        static vector_data14
-        init_from_sequence(Sequence& seq)
-        {
-            typedef typename result_of::begin<Sequence>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data14(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13);
-        }
-        T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13>
-    struct vector14
-      : vector_data14<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13>
-      , sequence_base<vector14<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13> >
-    {
-        typedef vector14<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13> this_type;
-        typedef vector_data14<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13> base_type;
-        typedef mpl::vector14<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13> types;
-        typedef vector_tag fusion_tag;
-        typedef fusion_sequence_tag tag; 
-        typedef mpl::false_ is_view;
-        typedef random_access_traversal_tag category;
-        typedef mpl::int_<14> size;
-        vector14() {}
-        vector14(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13>
-        vector14(
-            vector14<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13> const& vec)
-            : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13) {}
-        template <typename Sequence>
-        vector14(
-            Sequence const& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename Sequence>
-        vector14(
-            Sequence& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13>
-        vector14&
-        operator=(vector14<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13> const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13;
-            return *this;
-        }
-        template <typename Sequence>
-        typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
-        operator=(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13;
-            return *this;
-        }
-        typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_cons [...]
-        template<typename I>
-        typename add_reference<typename mpl::at<types, I>::type>::type
-        at_impl(I)
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
-        at_impl(I) const
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14>
-    struct vector_data15
-    {
-        vector_data15()
-            : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() {}
-        vector_data15(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) {}
-        vector_data15(
-            vector_data15 const& other)
-            : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) {}
-        vector_data15&
-        operator=(vector_data15 const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14;
-            return *this;
-        }
-        template <typename Sequence>
-        static vector_data15
-        init_from_sequence(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data15(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14);
-        }
-        template <typename Sequence>
-        static vector_data15
-        init_from_sequence(Sequence& seq)
-        {
-            typedef typename result_of::begin<Sequence>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data15(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14);
-        }
-        T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14>
-    struct vector15
-      : vector_data15<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14>
-      , sequence_base<vector15<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14> >
-    {
-        typedef vector15<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14> this_type;
-        typedef vector_data15<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14> base_type;
-        typedef mpl::vector15<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14> types;
-        typedef vector_tag fusion_tag;
-        typedef fusion_sequence_tag tag; 
-        typedef mpl::false_ is_view;
-        typedef random_access_traversal_tag category;
-        typedef mpl::int_<15> size;
-        vector15() {}
-        vector15(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14>
-        vector15(
-            vector15<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14> const& vec)
-            : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14) {}
-        template <typename Sequence>
-        vector15(
-            Sequence const& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename Sequence>
-        vector15(
-            Sequence& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14>
-        vector15&
-        operator=(vector15<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14> const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14;
-            return *this;
-        }
-        template <typename Sequence>
-        typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
-        operator=(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14;
-            return *this;
-        }
-        typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_cons [...]
-        template<typename I>
-        typename add_reference<typename mpl::at<types, I>::type>::type
-        at_impl(I)
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
-        at_impl(I) const
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15>
-    struct vector_data16
-    {
-        vector_data16()
-            : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() {}
-        vector_data16(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) {}
-        vector_data16(
-            vector_data16 const& other)
-            : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) {}
-        vector_data16&
-        operator=(vector_data16 const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15;
-            return *this;
-        }
-        template <typename Sequence>
-        static vector_data16
-        init_from_sequence(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data16(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15);
-        }
-        template <typename Sequence>
-        static vector_data16
-        init_from_sequence(Sequence& seq)
-        {
-            typedef typename result_of::begin<Sequence>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data16(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15);
-        }
-        T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15>
-    struct vector16
-      : vector_data16<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15>
-      , sequence_base<vector16<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15> >
-    {
-        typedef vector16<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15> this_type;
-        typedef vector_data16<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15> base_type;
-        typedef mpl::vector16<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15> types;
-        typedef vector_tag fusion_tag;
-        typedef fusion_sequence_tag tag; 
-        typedef mpl::false_ is_view;
-        typedef random_access_traversal_tag category;
-        typedef mpl::int_<16> size;
-        vector16() {}
-        vector16(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15>
-        vector16(
-            vector16<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15> const& vec)
-            : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15) {}
-        template <typename Sequence>
-        vector16(
-            Sequence const& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename Sequence>
-        vector16(
-            Sequence& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15>
-        vector16&
-        operator=(vector16<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15> const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15;
-            return *this;
-        }
-        template <typename Sequence>
-        typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
-        operator=(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15;
-            return *this;
-        }
-        typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_cons [...]
-        template<typename I>
-        typename add_reference<typename mpl::at<types, I>::type>::type
-        at_impl(I)
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
-        at_impl(I) const
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16>
-    struct vector_data17
-    {
-        vector_data17()
-            : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() {}
-        vector_data17(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) {}
-        vector_data17(
-            vector_data17 const& other)
-            : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) {}
-        vector_data17&
-        operator=(vector_data17 const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16;
-            return *this;
-        }
-        template <typename Sequence>
-        static vector_data17
-        init_from_sequence(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data17(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16);
-        }
-        template <typename Sequence>
-        static vector_data17
-        init_from_sequence(Sequence& seq)
-        {
-            typedef typename result_of::begin<Sequence>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data17(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16);
-        }
-        T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16>
-    struct vector17
-      : vector_data17<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16>
-      , sequence_base<vector17<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16> >
-    {
-        typedef vector17<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16> this_type;
-        typedef vector_data17<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16> base_type;
-        typedef mpl::vector17<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16> types;
-        typedef vector_tag fusion_tag;
-        typedef fusion_sequence_tag tag; 
-        typedef mpl::false_ is_view;
-        typedef random_access_traversal_tag category;
-        typedef mpl::int_<17> size;
-        vector17() {}
-        vector17(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16>
-        vector17(
-            vector17<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16> const& vec)
-            : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16) {}
-        template <typename Sequence>
-        vector17(
-            Sequence const& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename Sequence>
-        vector17(
-            Sequence& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16>
-        vector17&
-        operator=(vector17<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16> const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16;
-            return *this;
-        }
-        template <typename Sequence>
-        typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
-        operator=(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16;
-            return *this;
-        }
-        typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_cons [...]
-        template<typename I>
-        typename add_reference<typename mpl::at<types, I>::type>::type
-        at_impl(I)
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
-        at_impl(I) const
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17>
-    struct vector_data18
-    {
-        vector_data18()
-            : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() {}
-        vector_data18(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) {}
-        vector_data18(
-            vector_data18 const& other)
-            : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) {}
-        vector_data18&
-        operator=(vector_data18 const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17;
-            return *this;
-        }
-        template <typename Sequence>
-        static vector_data18
-        init_from_sequence(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data18(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17);
-        }
-        template <typename Sequence>
-        static vector_data18
-        init_from_sequence(Sequence& seq)
-        {
-            typedef typename result_of::begin<Sequence>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data18(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17);
-        }
-        T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17>
-    struct vector18
-      : vector_data18<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17>
-      , sequence_base<vector18<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17> >
-    {
-        typedef vector18<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17> this_type;
-        typedef vector_data18<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17> base_type;
-        typedef mpl::vector18<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17> types;
-        typedef vector_tag fusion_tag;
-        typedef fusion_sequence_tag tag; 
-        typedef mpl::false_ is_view;
-        typedef random_access_traversal_tag category;
-        typedef mpl::int_<18> size;
-        vector18() {}
-        vector18(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17>
-        vector18(
-            vector18<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17> const& vec)
-            : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17) {}
-        template <typename Sequence>
-        vector18(
-            Sequence const& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename Sequence>
-        vector18(
-            Sequence& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17>
-        vector18&
-        operator=(vector18<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17> const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17;
-            return *this;
-        }
-        template <typename Sequence>
-        typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
-        operator=(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17;
-            return *this;
-        }
-        typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_cons [...]
-        template<typename I>
-        typename add_reference<typename mpl::at<types, I>::type>::type
-        at_impl(I)
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
-        at_impl(I) const
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18>
-    struct vector_data19
-    {
-        vector_data19()
-            : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() {}
-        vector_data19(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) {}
-        vector_data19(
-            vector_data19 const& other)
-            : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) {}
-        vector_data19&
-        operator=(vector_data19 const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18;
-            return *this;
-        }
-        template <typename Sequence>
-        static vector_data19
-        init_from_sequence(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data19(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18);
-        }
-        template <typename Sequence>
-        static vector_data19
-        init_from_sequence(Sequence& seq)
-        {
-            typedef typename result_of::begin<Sequence>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data19(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18);
-        }
-        T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18>
-    struct vector19
-      : vector_data19<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18>
-      , sequence_base<vector19<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18> >
-    {
-        typedef vector19<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18> this_type;
-        typedef vector_data19<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18> base_type;
-        typedef mpl::vector19<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18> types;
-        typedef vector_tag fusion_tag;
-        typedef fusion_sequence_tag tag; 
-        typedef mpl::false_ is_view;
-        typedef random_access_traversal_tag category;
-        typedef mpl::int_<19> size;
-        vector19() {}
-        vector19(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18>
-        vector19(
-            vector19<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18> const& vec)
-            : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18) {}
-        template <typename Sequence>
-        vector19(
-            Sequence const& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename Sequence>
-        vector19(
-            Sequence& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18>
-        vector19&
-        operator=(vector19<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18> const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18;
-            return *this;
-        }
-        template <typename Sequence>
-        typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
-        operator=(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18;
-            return *this;
-        }
-        typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_cons [...]
-        template<typename I>
-        typename add_reference<typename mpl::at<types, I>::type>::type
-        at_impl(I)
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
-        at_impl(I) const
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19>
-    struct vector_data20
-    {
-        vector_data20()
-            : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() {}
-        vector_data20(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) {}
-        vector_data20(
-            vector_data20 const& other)
-            : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) {}
-        vector_data20&
-        operator=(vector_data20 const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19;
-            return *this;
-        }
-        template <typename Sequence>
-        static vector_data20
-        init_from_sequence(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data20(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19);
-        }
-        template <typename Sequence>
-        static vector_data20
-        init_from_sequence(Sequence& seq)
-        {
-            typedef typename result_of::begin<Sequence>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data20(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19);
-        }
-        T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19>
-    struct vector20
-      : vector_data20<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19>
-      , sequence_base<vector20<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19> >
-    {
-        typedef vector20<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19> this_type;
-        typedef vector_data20<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19> base_type;
-        typedef mpl::vector20<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19> types;
-        typedef vector_tag fusion_tag;
-        typedef fusion_sequence_tag tag; 
-        typedef mpl::false_ is_view;
-        typedef random_access_traversal_tag category;
-        typedef mpl::int_<20> size;
-        vector20() {}
-        vector20(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19>
-        vector20(
-            vector20<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19> const& vec)
-            : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19) {}
-        template <typename Sequence>
-        vector20(
-            Sequence const& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename Sequence>
-        vector20(
-            Sequence& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19>
-        vector20&
-        operator=(vector20<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19> const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19;
-            return *this;
-        }
-        template <typename Sequence>
-        typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
-        operator=(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19;
-            return *this;
-        }
-        typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_cons [...]
-        template<typename I>
-        typename add_reference<typename mpl::at<types, I>::type>::type
-        at_impl(I)
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
-        at_impl(I) const
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-    };
-}}
diff --git a/boost/fusion/container/vector/detail/preprocessed/vector20_fwd.hpp b/boost/fusion/container/vector/detail/preprocessed/vector20_fwd.hpp
deleted file mode 100644
index b167285..0000000
--- a/boost/fusion/container/vector/detail/preprocessed/vector20_fwd.hpp
+++ /dev/null
@@ -1,33 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2011 Eric Niebler
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-namespace boost { namespace fusion
-{
-    
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10>
-    struct vector11;
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11>
-    struct vector12;
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12>
-    struct vector13;
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13>
-    struct vector14;
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14>
-    struct vector15;
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15>
-    struct vector16;
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16>
-    struct vector17;
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17>
-    struct vector18;
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18>
-    struct vector19;
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19>
-    struct vector20;
-}}
diff --git a/boost/fusion/container/vector/detail/preprocessed/vector30.hpp b/boost/fusion/container/vector/detail/preprocessed/vector30.hpp
deleted file mode 100644
index 3810091..0000000
--- a/boost/fusion/container/vector/detail/preprocessed/vector30.hpp
+++ /dev/null
@@ -1,1004 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-namespace boost { namespace fusion
-{
-    struct vector_tag;
-    struct fusion_sequence_tag;
-    struct random_access_traversal_tag;
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20>
-    struct vector_data21
-    {
-        vector_data21()
-            : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() {}
-        vector_data21(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) {}
-        vector_data21(
-            vector_data21 const& other)
-            : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) {}
-        vector_data21&
-        operator=(vector_data21 const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20;
-            return *this;
-        }
-        template <typename Sequence>
-        static vector_data21
-        init_from_sequence(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data21(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20);
-        }
-        template <typename Sequence>
-        static vector_data21
-        init_from_sequence(Sequence& seq)
-        {
-            typedef typename result_of::begin<Sequence>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data21(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20);
-        }
-        T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20>
-    struct vector21
-      : vector_data21<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20>
-      , sequence_base<vector21<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20> >
-    {
-        typedef vector21<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20> this_type;
-        typedef vector_data21<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20> base_type;
-        typedef mpl::vector21<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20> types;
-        typedef vector_tag fusion_tag;
-        typedef fusion_sequence_tag tag; 
-        typedef mpl::false_ is_view;
-        typedef random_access_traversal_tag category;
-        typedef mpl::int_<21> size;
-        vector21() {}
-        vector21(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20>
-        vector21(
-            vector21<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20> const& vec)
-            : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20) {}
-        template <typename Sequence>
-        vector21(
-            Sequence const& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename Sequence>
-        vector21(
-            Sequence& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20>
-        vector21&
-        operator=(vector21<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20> const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20;
-            return *this;
-        }
-        template <typename Sequence>
-        typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
-        operator=(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20;
-            return *this;
-        }
-        typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_cons [...]
-        template<typename I>
-        typename add_reference<typename mpl::at<types, I>::type>::type
-        at_impl(I)
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
-        at_impl(I) const
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21>
-    struct vector_data22
-    {
-        vector_data22()
-            : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() {}
-        vector_data22(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) {}
-        vector_data22(
-            vector_data22 const& other)
-            : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) {}
-        vector_data22&
-        operator=(vector_data22 const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21;
-            return *this;
-        }
-        template <typename Sequence>
-        static vector_data22
-        init_from_sequence(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data22(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21);
-        }
-        template <typename Sequence>
-        static vector_data22
-        init_from_sequence(Sequence& seq)
-        {
-            typedef typename result_of::begin<Sequence>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data22(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21);
-        }
-        T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21>
-    struct vector22
-      : vector_data22<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21>
-      , sequence_base<vector22<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21> >
-    {
-        typedef vector22<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21> this_type;
-        typedef vector_data22<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21> base_type;
-        typedef mpl::vector22<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21> types;
-        typedef vector_tag fusion_tag;
-        typedef fusion_sequence_tag tag; 
-        typedef mpl::false_ is_view;
-        typedef random_access_traversal_tag category;
-        typedef mpl::int_<22> size;
-        vector22() {}
-        vector22(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21>
-        vector22(
-            vector22<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21> const& vec)
-            : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21) {}
-        template <typename Sequence>
-        vector22(
-            Sequence const& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename Sequence>
-        vector22(
-            Sequence& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21>
-        vector22&
-        operator=(vector22<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21> const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21;
-            return *this;
-        }
-        template <typename Sequence>
-        typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
-        operator=(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21;
-            return *this;
-        }
-        typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_cons [...]
-        template<typename I>
-        typename add_reference<typename mpl::at<types, I>::type>::type
-        at_impl(I)
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
-        at_impl(I) const
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22>
-    struct vector_data23
-    {
-        vector_data23()
-            : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() {}
-        vector_data23(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) {}
-        vector_data23(
-            vector_data23 const& other)
-            : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) {}
-        vector_data23&
-        operator=(vector_data23 const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22;
-            return *this;
-        }
-        template <typename Sequence>
-        static vector_data23
-        init_from_sequence(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data23(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22);
-        }
-        template <typename Sequence>
-        static vector_data23
-        init_from_sequence(Sequence& seq)
-        {
-            typedef typename result_of::begin<Sequence>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data23(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22);
-        }
-        T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22>
-    struct vector23
-      : vector_data23<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22>
-      , sequence_base<vector23<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22> >
-    {
-        typedef vector23<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22> this_type;
-        typedef vector_data23<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22> base_type;
-        typedef mpl::vector23<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22> types;
-        typedef vector_tag fusion_tag;
-        typedef fusion_sequence_tag tag; 
-        typedef mpl::false_ is_view;
-        typedef random_access_traversal_tag category;
-        typedef mpl::int_<23> size;
-        vector23() {}
-        vector23(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22>
-        vector23(
-            vector23<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22> const& vec)
-            : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22) {}
-        template <typename Sequence>
-        vector23(
-            Sequence const& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename Sequence>
-        vector23(
-            Sequence& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22>
-        vector23&
-        operator=(vector23<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22> const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22;
-            return *this;
-        }
-        template <typename Sequence>
-        typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
-        operator=(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22;
-            return *this;
-        }
-        typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_cons [...]
-        template<typename I>
-        typename add_reference<typename mpl::at<types, I>::type>::type
-        at_impl(I)
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
-        at_impl(I) const
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23>
-    struct vector_data24
-    {
-        vector_data24()
-            : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() {}
-        vector_data24(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) {}
-        vector_data24(
-            vector_data24 const& other)
-            : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) {}
-        vector_data24&
-        operator=(vector_data24 const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23;
-            return *this;
-        }
-        template <typename Sequence>
-        static vector_data24
-        init_from_sequence(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data24(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23);
-        }
-        template <typename Sequence>
-        static vector_data24
-        init_from_sequence(Sequence& seq)
-        {
-            typedef typename result_of::begin<Sequence>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data24(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23);
-        }
-        T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23>
-    struct vector24
-      : vector_data24<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23>
-      , sequence_base<vector24<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23> >
-    {
-        typedef vector24<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23> this_type;
-        typedef vector_data24<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23> base_type;
-        typedef mpl::vector24<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23> types;
-        typedef vector_tag fusion_tag;
-        typedef fusion_sequence_tag tag; 
-        typedef mpl::false_ is_view;
-        typedef random_access_traversal_tag category;
-        typedef mpl::int_<24> size;
-        vector24() {}
-        vector24(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23>
-        vector24(
-            vector24<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23> const& vec)
-            : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23) {}
-        template <typename Sequence>
-        vector24(
-            Sequence const& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename Sequence>
-        vector24(
-            Sequence& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23>
-        vector24&
-        operator=(vector24<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23> const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m23;
-            return *this;
-        }
-        template <typename Sequence>
-        typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
-        operator=(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23;
-            return *this;
-        }
-        typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_cons [...]
-        template<typename I>
-        typename add_reference<typename mpl::at<types, I>::type>::type
-        at_impl(I)
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
-        at_impl(I) const
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24>
-    struct vector_data25
-    {
-        vector_data25()
-            : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() {}
-        vector_data25(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) , m24(_24) {}
-        vector_data25(
-            vector_data25 const& other)
-            : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) {}
-        vector_data25&
-        operator=(vector_data25 const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m [...]
-            return *this;
-        }
-        template <typename Sequence>
-        static vector_data25
-        init_from_sequence(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data25(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24);
-        }
-        template <typename Sequence>
-        static vector_data25
-        init_from_sequence(Sequence& seq)
-        {
-            typedef typename result_of::begin<Sequence>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data25(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24);
-        }
-        T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24>
-    struct vector25
-      : vector_data25<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24>
-      , sequence_base<vector25<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24> >
-    {
-        typedef vector25<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24> this_type;
-        typedef vector_data25<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24> base_type;
-        typedef mpl::vector25<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24> types;
-        typedef vector_tag fusion_tag;
-        typedef fusion_sequence_tag tag; 
-        typedef mpl::false_ is_view;
-        typedef random_access_traversal_tag category;
-        typedef mpl::int_<25> size;
-        vector25() {}
-        vector25(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24>
-        vector25(
-            vector25<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24> const& vec)
-            : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24) {}
-        template <typename Sequence>
-        vector25(
-            Sequence const& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename Sequence>
-        vector25(
-            Sequence& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24>
-        vector25&
-        operator=(vector25<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24> const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m [...]
-            return *this;
-        }
-        template <typename Sequence>
-        typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
-        operator=(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24;
-            return *this;
-        }
-        typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_cons [...]
-        template<typename I>
-        typename add_reference<typename mpl::at<types, I>::type>::type
-        at_impl(I)
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
-        at_impl(I) const
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25>
-    struct vector_data26
-    {
-        vector_data26()
-            : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() {}
-        vector_data26(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) , m24(_24) , m25(_25) {}
-        vector_data26(
-            vector_data26 const& other)
-            : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) {}
-        vector_data26&
-        operator=(vector_data26 const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m [...]
-            return *this;
-        }
-        template <typename Sequence>
-        static vector_data26
-        init_from_sequence(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data26(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25);
-        }
-        template <typename Sequence>
-        static vector_data26
-        init_from_sequence(Sequence& seq)
-        {
-            typedef typename result_of::begin<Sequence>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data26(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25);
-        }
-        T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25>
-    struct vector26
-      : vector_data26<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25>
-      , sequence_base<vector26<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25> >
-    {
-        typedef vector26<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25> this_type;
-        typedef vector_data26<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25> base_type;
-        typedef mpl::vector26<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25> types;
-        typedef vector_tag fusion_tag;
-        typedef fusion_sequence_tag tag; 
-        typedef mpl::false_ is_view;
-        typedef random_access_traversal_tag category;
-        typedef mpl::int_<26> size;
-        vector26() {}
-        vector26(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25>
-        vector26(
-            vector26<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25> const& vec)
-            : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25) {}
-        template <typename Sequence>
-        vector26(
-            Sequence const& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename Sequence>
-        vector26(
-            Sequence& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25>
-        vector26&
-        operator=(vector26<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25> const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m [...]
-            return *this;
-        }
-        template <typename Sequence>
-        typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
-        operator=(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25;
-            return *this;
-        }
-        typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_cons [...]
-        template<typename I>
-        typename add_reference<typename mpl::at<types, I>::type>::type
-        at_impl(I)
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
-        at_impl(I) const
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26>
-    struct vector_data27
-    {
-        vector_data27()
-            : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() {}
-        vector_data27(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) , m24(_24) , m25(_25) , m26(_26) {}
-        vector_data27(
-            vector_data27 const& other)
-            : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) {}
-        vector_data27&
-        operator=(vector_data27 const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m [...]
-            return *this;
-        }
-        template <typename Sequence>
-        static vector_data27
-        init_from_sequence(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data27(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26);
-        }
-        template <typename Sequence>
-        static vector_data27
-        init_from_sequence(Sequence& seq)
-        {
-            typedef typename result_of::begin<Sequence>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data27(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26);
-        }
-        T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26>
-    struct vector27
-      : vector_data27<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26>
-      , sequence_base<vector27<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26> >
-    {
-        typedef vector27<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26> this_type;
-        typedef vector_data27<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26> base_type;
-        typedef mpl::vector27<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26> types;
-        typedef vector_tag fusion_tag;
-        typedef fusion_sequence_tag tag; 
-        typedef mpl::false_ is_view;
-        typedef random_access_traversal_tag category;
-        typedef mpl::int_<27> size;
-        vector27() {}
-        vector27(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26>
-        vector27(
-            vector27<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26> const& vec)
-            : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26) {}
-        template <typename Sequence>
-        vector27(
-            Sequence const& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename Sequence>
-        vector27(
-            Sequence& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26>
-        vector27&
-        operator=(vector27<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26> const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m [...]
-            return *this;
-        }
-        template <typename Sequence>
-        typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
-        operator=(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26;
-            return *this;
-        }
-        typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_cons [...]
-        template<typename I>
-        typename add_reference<typename mpl::at<types, I>::type>::type
-        at_impl(I)
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
-        at_impl(I) const
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27>
-    struct vector_data28
-    {
-        vector_data28()
-            : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() {}
-        vector_data28(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) , m24(_24) , m25(_25) , m26(_26) , m27(_27) {}
-        vector_data28(
-            vector_data28 const& other)
-            : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) {}
-        vector_data28&
-        operator=(vector_data28 const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m [...]
-            return *this;
-        }
-        template <typename Sequence>
-        static vector_data28
-        init_from_sequence(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data28(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27);
-        }
-        template <typename Sequence>
-        static vector_data28
-        init_from_sequence(Sequence& seq)
-        {
-            typedef typename result_of::begin<Sequence>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data28(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27);
-        }
-        T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27>
-    struct vector28
-      : vector_data28<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27>
-      , sequence_base<vector28<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27> >
-    {
-        typedef vector28<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27> this_type;
-        typedef vector_data28<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27> base_type;
-        typedef mpl::vector28<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27> types;
-        typedef vector_tag fusion_tag;
-        typedef fusion_sequence_tag tag; 
-        typedef mpl::false_ is_view;
-        typedef random_access_traversal_tag category;
-        typedef mpl::int_<28> size;
-        vector28() {}
-        vector28(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27>
-        vector28(
-            vector28<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27> const& vec)
-            : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27) {}
-        template <typename Sequence>
-        vector28(
-            Sequence const& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename Sequence>
-        vector28(
-            Sequence& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27>
-        vector28&
-        operator=(vector28<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27> const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m [...]
-            return *this;
-        }
-        template <typename Sequence>
-        typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
-        operator=(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i27;
-            return *this;
-        }
-        typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_cons [...]
-        template<typename I>
-        typename add_reference<typename mpl::at<types, I>::type>::type
-        at_impl(I)
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
-        at_impl(I) const
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28>
-    struct vector_data29
-    {
-        vector_data29()
-            : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() {}
-        vector_data29(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) , m24(_24) , m25(_25) , m26(_26) , m27(_27) , m28(_28) {}
-        vector_data29(
-            vector_data29 const& other)
-            : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) {}
-        vector_data29&
-        operator=(vector_data29 const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m [...]
-            return *this;
-        }
-        template <typename Sequence>
-        static vector_data29
-        init_from_sequence(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data29(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28);
-        }
-        template <typename Sequence>
-        static vector_data29
-        init_from_sequence(Sequence& seq)
-        {
-            typedef typename result_of::begin<Sequence>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data29(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28);
-        }
-        T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28>
-    struct vector29
-      : vector_data29<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28>
-      , sequence_base<vector29<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28> >
-    {
-        typedef vector29<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28> this_type;
-        typedef vector_data29<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28> base_type;
-        typedef mpl::vector29<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28> types;
-        typedef vector_tag fusion_tag;
-        typedef fusion_sequence_tag tag; 
-        typedef mpl::false_ is_view;
-        typedef random_access_traversal_tag category;
-        typedef mpl::int_<29> size;
-        vector29() {}
-        vector29(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28>
-        vector29(
-            vector29<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28> const& vec)
-            : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28) {}
-        template <typename Sequence>
-        vector29(
-            Sequence const& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename Sequence>
-        vector29(
-            Sequence& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28>
-        vector29&
-        operator=(vector29<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28> const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m [...]
-            return *this;
-        }
-        template <typename Sequence>
-        typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
-        operator=(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i [...]
-            return *this;
-        }
-        typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_cons [...]
-        template<typename I>
-        typename add_reference<typename mpl::at<types, I>::type>::type
-        at_impl(I)
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
-        at_impl(I) const
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29>
-    struct vector_data30
-    {
-        vector_data30()
-            : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() {}
-        vector_data30(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) , m24(_24) , m25(_25) , m26(_26) , m27(_27) , m28(_28) , m29(_29) {}
-        vector_data30(
-            vector_data30 const& other)
-            : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(o [...]
-        vector_data30&
-        operator=(vector_data30 const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m [...]
-            return *this;
-        }
-        template <typename Sequence>
-        static vector_data30
-        init_from_sequence(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data30(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29);
-        }
-        template <typename Sequence>
-        static vector_data30
-        init_from_sequence(Sequence& seq)
-        {
-            typedef typename result_of::begin<Sequence>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data30(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29);
-        }
-        T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29>
-    struct vector30
-      : vector_data30<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29>
-      , sequence_base<vector30<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29> >
-    {
-        typedef vector30<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29> this_type;
-        typedef vector_data30<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29> base_type;
-        typedef mpl::vector30<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29> types;
-        typedef vector_tag fusion_tag;
-        typedef fusion_sequence_tag tag; 
-        typedef mpl::false_ is_view;
-        typedef random_access_traversal_tag category;
-        typedef mpl::int_<30> size;
-        vector30() {}
-        vector30(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29>
-        vector30(
-            vector30<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29> const& vec)
-            : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29) {}
-        template <typename Sequence>
-        vector30(
-            Sequence const& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename Sequence>
-        vector30(
-            Sequence& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29>
-        vector30&
-        operator=(vector30<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29> const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m [...]
-            return *this;
-        }
-        template <typename Sequence>
-        typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
-        operator=(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i [...]
-            return *this;
-        }
-        typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_cons [...]
-        template<typename I>
-        typename add_reference<typename mpl::at<types, I>::type>::type
-        at_impl(I)
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
-        at_impl(I) const
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-    };
-}}
diff --git a/boost/fusion/container/vector/detail/preprocessed/vector30_fwd.hpp b/boost/fusion/container/vector/detail/preprocessed/vector30_fwd.hpp
deleted file mode 100644
index 39f96aa..0000000
--- a/boost/fusion/container/vector/detail/preprocessed/vector30_fwd.hpp
+++ /dev/null
@@ -1,33 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2011 Eric Niebler
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-namespace boost { namespace fusion
-{
-    
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20>
-    struct vector21;
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21>
-    struct vector22;
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22>
-    struct vector23;
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23>
-    struct vector24;
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24>
-    struct vector25;
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25>
-    struct vector26;
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26>
-    struct vector27;
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27>
-    struct vector28;
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28>
-    struct vector29;
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29>
-    struct vector30;
-}}
diff --git a/boost/fusion/container/vector/detail/preprocessed/vector40.hpp b/boost/fusion/container/vector/detail/preprocessed/vector40.hpp
deleted file mode 100644
index 07fac8d..0000000
--- a/boost/fusion/container/vector/detail/preprocessed/vector40.hpp
+++ /dev/null
@@ -1,1004 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-namespace boost { namespace fusion
-{
-    struct vector_tag;
-    struct fusion_sequence_tag;
-    struct random_access_traversal_tag;
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30>
-    struct vector_data31
-    {
-        vector_data31()
-            : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() {}
-        vector_data31(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) , m24(_24) , m25(_25) , m26(_26) , m27(_27) , m28(_28) , m29(_29) , m30(_30) {}
-        vector_data31(
-            vector_data31 const& other)
-            : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(o [...]
-        vector_data31&
-        operator=(vector_data31 const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m [...]
-            return *this;
-        }
-        template <typename Sequence>
-        static vector_data31
-        init_from_sequence(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data31(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30);
-        }
-        template <typename Sequence>
-        static vector_data31
-        init_from_sequence(Sequence& seq)
-        {
-            typedef typename result_of::begin<Sequence>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data31(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30);
-        }
-        T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30>
-    struct vector31
-      : vector_data31<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30>
-      , sequence_base<vector31<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30> >
-    {
-        typedef vector31<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30> this_type;
-        typedef vector_data31<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30> base_type;
-        typedef mpl::vector31<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30> types;
-        typedef vector_tag fusion_tag;
-        typedef fusion_sequence_tag tag; 
-        typedef mpl::false_ is_view;
-        typedef random_access_traversal_tag category;
-        typedef mpl::int_<31> size;
-        vector31() {}
-        vector31(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30>
-        vector31(
-            vector31<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30> const& vec)
-            : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30) {}
-        template <typename Sequence>
-        vector31(
-            Sequence const& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename Sequence>
-        vector31(
-            Sequence& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30>
-        vector31&
-        operator=(vector31<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30> const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m [...]
-            return *this;
-        }
-        template <typename Sequence>
-        typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
-        operator=(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i [...]
-            return *this;
-        }
-        typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_cons [...]
-        template<typename I>
-        typename add_reference<typename mpl::at<types, I>::type>::type
-        at_impl(I)
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
-        at_impl(I) const
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31>
-    struct vector_data32
-    {
-        vector_data32()
-            : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() {}
-        vector_data32(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) , m24(_24) , m25(_25) , m26(_26) , m27(_27) , m28(_28) , m29(_29) , m30(_30) , m31(_31) {}
-        vector_data32(
-            vector_data32 const& other)
-            : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(o [...]
-        vector_data32&
-        operator=(vector_data32 const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m [...]
-            return *this;
-        }
-        template <typename Sequence>
-        static vector_data32
-        init_from_sequence(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data32(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31);
-        }
-        template <typename Sequence>
-        static vector_data32
-        init_from_sequence(Sequence& seq)
-        {
-            typedef typename result_of::begin<Sequence>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data32(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31);
-        }
-        T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31>
-    struct vector32
-      : vector_data32<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31>
-      , sequence_base<vector32<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31> >
-    {
-        typedef vector32<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31> this_type;
-        typedef vector_data32<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31> base_type;
-        typedef mpl::vector32<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31> types;
-        typedef vector_tag fusion_tag;
-        typedef fusion_sequence_tag tag; 
-        typedef mpl::false_ is_view;
-        typedef random_access_traversal_tag category;
-        typedef mpl::int_<32> size;
-        vector32() {}
-        vector32(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31>
-        vector32(
-            vector32<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31> const& vec)
-            : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31) {}
-        template <typename Sequence>
-        vector32(
-            Sequence const& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename Sequence>
-        vector32(
-            Sequence& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31>
-        vector32&
-        operator=(vector32<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31> const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m [...]
-            return *this;
-        }
-        template <typename Sequence>
-        typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
-        operator=(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i [...]
-            return *this;
-        }
-        typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_cons [...]
-        template<typename I>
-        typename add_reference<typename mpl::at<types, I>::type>::type
-        at_impl(I)
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
-        at_impl(I) const
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32>
-    struct vector_data33
-    {
-        vector_data33()
-            : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() {}
-        vector_data33(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) , m24(_24) , m25(_25) , m26(_26) , m27(_27) , m28(_28) , m29(_29) , m30(_30) , m31(_31) , m32(_32) {}
-        vector_data33(
-            vector_data33 const& other)
-            : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(o [...]
-        vector_data33&
-        operator=(vector_data33 const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m [...]
-            return *this;
-        }
-        template <typename Sequence>
-        static vector_data33
-        init_from_sequence(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data33(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32);
-        }
-        template <typename Sequence>
-        static vector_data33
-        init_from_sequence(Sequence& seq)
-        {
-            typedef typename result_of::begin<Sequence>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data33(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32);
-        }
-        T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32>
-    struct vector33
-      : vector_data33<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32>
-      , sequence_base<vector33<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32> >
-    {
-        typedef vector33<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32> this_type;
-        typedef vector_data33<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32> base_type;
-        typedef mpl::vector33<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32> types;
-        typedef vector_tag fusion_tag;
-        typedef fusion_sequence_tag tag; 
-        typedef mpl::false_ is_view;
-        typedef random_access_traversal_tag category;
-        typedef mpl::int_<33> size;
-        vector33() {}
-        vector33(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , type [...]
-        vector33(
-            vector33<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32> const& vec)
-            : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32) {}
-        template <typename Sequence>
-        vector33(
-            Sequence const& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename Sequence>
-        vector33(
-            Sequence& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , type [...]
-        vector33&
-        operator=(vector33<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32> const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m [...]
-            return *this;
-        }
-        template <typename Sequence>
-        typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
-        operator=(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i [...]
-            return *this;
-        }
-        typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_cons [...]
-        template<typename I>
-        typename add_reference<typename mpl::at<types, I>::type>::type
-        at_impl(I)
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
-        at_impl(I) const
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector_data34
-    {
-        vector_data34()
-            : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() , m33() {}
-        vector_data34(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) , m24(_24) , m25(_25) , m26(_26) , m27(_27) , m28(_28) , m29(_29) , m30(_30) , m31(_31) , m32(_32) , m33(_33) {}
-        vector_data34(
-            vector_data34 const& other)
-            : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(o [...]
-        vector_data34&
-        operator=(vector_data34 const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m [...]
-            return *this;
-        }
-        template <typename Sequence>
-        static vector_data34
-        init_from_sequence(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data34(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33);
-        }
-        template <typename Sequence>
-        static vector_data34
-        init_from_sequence(Sequence& seq)
-        {
-            typedef typename result_of::begin<Sequence>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data34(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33);
-        }
-        T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32; T33 m33;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector34
-      : vector_data34<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33>
-      , sequence_base<vector34<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33> >
-    {
-        typedef vector34<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33> this_type;
-        typedef vector_data34<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33> base_type;
-        typedef mpl::vector34<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33> types;
-        typedef vector_tag fusion_tag;
-        typedef fusion_sequence_tag tag; 
-        typedef mpl::false_ is_view;
-        typedef random_access_traversal_tag category;
-        typedef mpl::int_<34> size;
-        vector34() {}
-        vector34(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , type [...]
-        vector34(
-            vector34<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33> const& vec)
-            : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32 , vec.m33) {}
-        template <typename Sequence>
-        vector34(
-            Sequence const& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename Sequence>
-        vector34(
-            Sequence& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , type [...]
-        vector34&
-        operator=(vector34<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33> const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m [...]
-            return *this;
-        }
-        template <typename Sequence>
-        typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
-        operator=(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i [...]
-            return *this;
-        }
-        typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_cons [...]
-        template<typename I>
-        typename add_reference<typename mpl::at<types, I>::type>::type
-        at_impl(I)
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
-        at_impl(I) const
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector_data35
-    {
-        vector_data35()
-            : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() , m33() , m34() {}
-        vector_data35(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) , m24(_24) , m25(_25) , m26(_26) , m27(_27) , m28(_28) , m29(_29) , m30(_30) , m31(_31) , m32(_32) , m33(_33) , m34(_34) {}
-        vector_data35(
-            vector_data35 const& other)
-            : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(o [...]
-        vector_data35&
-        operator=(vector_data35 const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m [...]
-            return *this;
-        }
-        template <typename Sequence>
-        static vector_data35
-        init_from_sequence(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data35(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34);
-        }
-        template <typename Sequence>
-        static vector_data35
-        init_from_sequence(Sequence& seq)
-        {
-            typedef typename result_of::begin<Sequence>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data35(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34);
-        }
-        T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32; T33 m33; T34 m34;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector35
-      : vector_data35<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34>
-      , sequence_base<vector35<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34> >
-    {
-        typedef vector35<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34> this_type;
-        typedef vector_data35<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34> base_type;
-        typedef mpl::vector35<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34> types;
-        typedef vector_tag fusion_tag;
-        typedef fusion_sequence_tag tag; 
-        typedef mpl::false_ is_view;
-        typedef random_access_traversal_tag category;
-        typedef mpl::int_<35> size;
-        vector35() {}
-        vector35(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , type [...]
-        vector35(
-            vector35<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34> const& vec)
-            : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32 , vec.m33 , vec.m34) {}
-        template <typename Sequence>
-        vector35(
-            Sequence const& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename Sequence>
-        vector35(
-            Sequence& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , type [...]
-        vector35&
-        operator=(vector35<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34> const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m [...]
-            return *this;
-        }
-        template <typename Sequence>
-        typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
-        operator=(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i [...]
-            return *this;
-        }
-        typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_cons [...]
-        template<typename I>
-        typename add_reference<typename mpl::at<types, I>::type>::type
-        at_impl(I)
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
-        at_impl(I) const
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector_data36
-    {
-        vector_data36()
-            : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() , m33() , m34() , m35() {}
-        vector_data36(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) , m24(_24) , m25(_25) , m26(_26) , m27(_27) , m28(_28) , m29(_29) , m30(_30) , m31(_31) , m32(_32) , m33(_33) , m34(_34) , m35(_35) {}
-        vector_data36(
-            vector_data36 const& other)
-            : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(o [...]
-        vector_data36&
-        operator=(vector_data36 const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m [...]
-            return *this;
-        }
-        template <typename Sequence>
-        static vector_data36
-        init_from_sequence(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data36(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35);
-        }
-        template <typename Sequence>
-        static vector_data36
-        init_from_sequence(Sequence& seq)
-        {
-            typedef typename result_of::begin<Sequence>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data36(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35);
-        }
-        T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32; T33 m33; T34 m34; T35 m35;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector36
-      : vector_data36<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35>
-      , sequence_base<vector36<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35> >
-    {
-        typedef vector36<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35> this_type;
-        typedef vector_data36<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35> base_type;
-        typedef mpl::vector36<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35> types;
-        typedef vector_tag fusion_tag;
-        typedef fusion_sequence_tag tag; 
-        typedef mpl::false_ is_view;
-        typedef random_access_traversal_tag category;
-        typedef mpl::int_<36> size;
-        vector36() {}
-        vector36(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , type [...]
-        vector36(
-            vector36<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35> const& vec)
-            : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32 , vec.m33 , vec.m34 , vec.m35) {}
-        template <typename Sequence>
-        vector36(
-            Sequence const& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename Sequence>
-        vector36(
-            Sequence& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , type [...]
-        vector36&
-        operator=(vector36<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35> const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m [...]
-            return *this;
-        }
-        template <typename Sequence>
-        typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
-        operator=(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i [...]
-            return *this;
-        }
-        typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_cons [...]
-        template<typename I>
-        typename add_reference<typename mpl::at<types, I>::type>::type
-        at_impl(I)
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
-        at_impl(I) const
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector_data37
-    {
-        vector_data37()
-            : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() , m33() , m34() , m35() , m36() {}
-        vector_data37(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) , m24(_24) , m25(_25) , m26(_26) , m27(_27) , m28(_28) , m29(_29) , m30(_30) , m31(_31) , m32(_32) , m33(_33) , m34(_34) , m35(_35) , m36(_36) {}
-        vector_data37(
-            vector_data37 const& other)
-            : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(o [...]
-        vector_data37&
-        operator=(vector_data37 const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m [...]
-            return *this;
-        }
-        template <typename Sequence>
-        static vector_data37
-        init_from_sequence(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data37(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36);
-        }
-        template <typename Sequence>
-        static vector_data37
-        init_from_sequence(Sequence& seq)
-        {
-            typedef typename result_of::begin<Sequence>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data37(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36);
-        }
-        T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32; T33 m33; T34 m34; T35 m35; T36 m36;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector37
-      : vector_data37<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36>
-      , sequence_base<vector37<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36> >
-    {
-        typedef vector37<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36> this_type;
-        typedef vector_data37<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36> base_type;
-        typedef mpl::vector37<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36> types;
-        typedef vector_tag fusion_tag;
-        typedef fusion_sequence_tag tag; 
-        typedef mpl::false_ is_view;
-        typedef random_access_traversal_tag category;
-        typedef mpl::int_<37> size;
-        vector37() {}
-        vector37(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , type [...]
-        vector37(
-            vector37<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36> const& vec)
-            : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32 , vec.m33 , vec.m34 , vec.m35 , vec.m36) {}
-        template <typename Sequence>
-        vector37(
-            Sequence const& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename Sequence>
-        vector37(
-            Sequence& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , type [...]
-        vector37&
-        operator=(vector37<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36> const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m [...]
-            return *this;
-        }
-        template <typename Sequence>
-        typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
-        operator=(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i [...]
-            return *this;
-        }
-        typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_cons [...]
-        template<typename I>
-        typename add_reference<typename mpl::at<types, I>::type>::type
-        at_impl(I)
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
-        at_impl(I) const
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector_data38
-    {
-        vector_data38()
-            : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() , m33() , m34() , m35() , m36() , m37() {}
-        vector_data38(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) , m24(_24) , m25(_25) , m26(_26) , m27(_27) , m28(_28) , m29(_29) , m30(_30) , m31(_31) , m32(_32) , m33(_33) , m34(_34) , m35(_35) , m36(_36) , m37(_37) {}
-        vector_data38(
-            vector_data38 const& other)
-            : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(o [...]
-        vector_data38&
-        operator=(vector_data38 const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m [...]
-            return *this;
-        }
-        template <typename Sequence>
-        static vector_data38
-        init_from_sequence(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data38(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37);
-        }
-        template <typename Sequence>
-        static vector_data38
-        init_from_sequence(Sequence& seq)
-        {
-            typedef typename result_of::begin<Sequence>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data38(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37);
-        }
-        T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32; T33 m33; T34 m34; T35 m35; T36 m36; T37 m37;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector38
-      : vector_data38<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37>
-      , sequence_base<vector38<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37> >
-    {
-        typedef vector38<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37> this_type;
-        typedef vector_data38<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37> base_type;
-        typedef mpl::vector38<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37> types;
-        typedef vector_tag fusion_tag;
-        typedef fusion_sequence_tag tag; 
-        typedef mpl::false_ is_view;
-        typedef random_access_traversal_tag category;
-        typedef mpl::int_<38> size;
-        vector38() {}
-        vector38(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , type [...]
-        vector38(
-            vector38<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37> const& vec)
-            : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32 , vec.m33 , vec.m34 , vec.m35 , vec.m36 , vec.m37) {}
-        template <typename Sequence>
-        vector38(
-            Sequence const& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename Sequence>
-        vector38(
-            Sequence& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , type [...]
-        vector38&
-        operator=(vector38<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37> const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m [...]
-            return *this;
-        }
-        template <typename Sequence>
-        typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
-        operator=(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i [...]
-            return *this;
-        }
-        typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_cons [...]
-        template<typename I>
-        typename add_reference<typename mpl::at<types, I>::type>::type
-        at_impl(I)
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
-        at_impl(I) const
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector_data39
-    {
-        vector_data39()
-            : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() , m33() , m34() , m35() , m36() , m37() , m38() {}
-        vector_data39(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) , m24(_24) , m25(_25) , m26(_26) , m27(_27) , m28(_28) , m29(_29) , m30(_30) , m31(_31) , m32(_32) , m33(_33) , m34(_34) , m35(_35) , m36(_36) , m37(_37) , m38(_38) {}
-        vector_data39(
-            vector_data39 const& other)
-            : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(o [...]
-        vector_data39&
-        operator=(vector_data39 const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m [...]
-            return *this;
-        }
-        template <typename Sequence>
-        static vector_data39
-        init_from_sequence(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data39(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38);
-        }
-        template <typename Sequence>
-        static vector_data39
-        init_from_sequence(Sequence& seq)
-        {
-            typedef typename result_of::begin<Sequence>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data39(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38);
-        }
-        T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32; T33 m33; T34 m34; T35 m35; T36 m36; T37 m37; T38 m38;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector39
-      : vector_data39<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38>
-      , sequence_base<vector39<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38> >
-    {
-        typedef vector39<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38> this_type;
-        typedef vector_data39<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38> base_type;
-        typedef mpl::vector39<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38> types;
-        typedef vector_tag fusion_tag;
-        typedef fusion_sequence_tag tag; 
-        typedef mpl::false_ is_view;
-        typedef random_access_traversal_tag category;
-        typedef mpl::int_<39> size;
-        vector39() {}
-        vector39(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , type [...]
-        vector39(
-            vector39<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38> const& vec)
-            : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32 , vec.m33 , vec.m34 , vec.m35 , vec.m36 , vec.m37 , vec.m38) {}
-        template <typename Sequence>
-        vector39(
-            Sequence const& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename Sequence>
-        vector39(
-            Sequence& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , type [...]
-        vector39&
-        operator=(vector39<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38> const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m [...]
-            return *this;
-        }
-        template <typename Sequence>
-        typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
-        operator=(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i [...]
-            return *this;
-        }
-        typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_cons [...]
-        template<typename I>
-        typename add_reference<typename mpl::at<types, I>::type>::type
-        at_impl(I)
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
-        at_impl(I) const
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector_data40
-    {
-        vector_data40()
-            : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() , m33() , m34() , m35() , m36() , m37() , m38() , m39() {}
-        vector_data40(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) , m24(_24) , m25(_25) , m26(_26) , m27(_27) , m28(_28) , m29(_29) , m30(_30) , m31(_31) , m32(_32) , m33(_33) , m34(_34) , m35(_35) , m36(_36) , m37(_37) , m38(_38) , m39(_39) {}
-        vector_data40(
-            vector_data40 const& other)
-            : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(o [...]
-        vector_data40&
-        operator=(vector_data40 const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m [...]
-            return *this;
-        }
-        template <typename Sequence>
-        static vector_data40
-        init_from_sequence(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data40(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39);
-        }
-        template <typename Sequence>
-        static vector_data40
-        init_from_sequence(Sequence& seq)
-        {
-            typedef typename result_of::begin<Sequence>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data40(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39);
-        }
-        T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32; T33 m33; T34 m34; T35 m35; T36 m36; T37 m37; T38 m38; T39 m39;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector40
-      : vector_data40<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39>
-      , sequence_base<vector40<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39> >
-    {
-        typedef vector40<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39> this_type;
-        typedef vector_data40<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39> base_type;
-        typedef mpl::vector40<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39> types;
-        typedef vector_tag fusion_tag;
-        typedef fusion_sequence_tag tag; 
-        typedef mpl::false_ is_view;
-        typedef random_access_traversal_tag category;
-        typedef mpl::int_<40> size;
-        vector40() {}
-        vector40(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , type [...]
-        vector40(
-            vector40<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39> const& vec)
-            : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32 , vec.m33 , vec.m34 , vec.m35 , vec.m36 , vec.m37 , vec.m38 , vec.m39) {}
-        template <typename Sequence>
-        vector40(
-            Sequence const& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename Sequence>
-        vector40(
-            Sequence& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , type [...]
-        vector40&
-        operator=(vector40<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39> const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m [...]
-            return *this;
-        }
-        template <typename Sequence>
-        typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
-        operator=(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i [...]
-            return *this;
-        }
-        typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_cons [...]
-        template<typename I>
-        typename add_reference<typename mpl::at<types, I>::type>::type
-        at_impl(I)
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
-        at_impl(I) const
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-    };
-}}
diff --git a/boost/fusion/container/vector/detail/preprocessed/vector40_fwd.hpp b/boost/fusion/container/vector/detail/preprocessed/vector40_fwd.hpp
deleted file mode 100644
index e1d6e09..0000000
--- a/boost/fusion/container/vector/detail/preprocessed/vector40_fwd.hpp
+++ /dev/null
@@ -1,33 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2011 Eric Niebler
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-namespace boost { namespace fusion
-{
-    
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30>
-    struct vector31;
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31>
-    struct vector32;
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32>
-    struct vector33;
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector34;
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector35;
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector36;
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector37;
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector38;
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector39;
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector40;
-}}
diff --git a/boost/fusion/container/vector/detail/preprocessed/vector50.hpp b/boost/fusion/container/vector/detail/preprocessed/vector50.hpp
deleted file mode 100644
index 7ef9402..0000000
--- a/boost/fusion/container/vector/detail/preprocessed/vector50.hpp
+++ /dev/null
@@ -1,1004 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-namespace boost { namespace fusion
-{
-    struct vector_tag;
-    struct fusion_sequence_tag;
-    struct random_access_traversal_tag;
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector_data41
-    {
-        vector_data41()
-            : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() , m33() , m34() , m35() , m36() , m37() , m38() , m39() , m40() {}
-        vector_data41(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) , m24(_24) , m25(_25) , m26(_26) , m27(_27) , m28(_28) , m29(_29) , m30(_30) , m31(_31) , m32(_32) , m33(_33) , m34(_34) , m35(_35) , m36(_36) , m37(_37) , m38(_38) , m39(_39) , m40(_40) {}
-        vector_data41(
-            vector_data41 const& other)
-            : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(o [...]
-        vector_data41&
-        operator=(vector_data41 const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m [...]
-            return *this;
-        }
-        template <typename Sequence>
-        static vector_data41
-        init_from_sequence(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data41(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40);
-        }
-        template <typename Sequence>
-        static vector_data41
-        init_from_sequence(Sequence& seq)
-        {
-            typedef typename result_of::begin<Sequence>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data41(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40);
-        }
-        T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32; T33 m33; T34 m34; T35 m35; T36 m36; T37 m37; T38 m38; T39 m39; T40 m40;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector41
-      : vector_data41<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40>
-      , sequence_base<vector41<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40> >
-    {
-        typedef vector41<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40> this_type;
-        typedef vector_data41<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40> base_type;
-        typedef mpl::vector41<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40> types;
-        typedef vector_tag fusion_tag;
-        typedef fusion_sequence_tag tag; 
-        typedef mpl::false_ is_view;
-        typedef random_access_traversal_tag category;
-        typedef mpl::int_<41> size;
-        vector41() {}
-        vector41(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , type [...]
-        vector41(
-            vector41<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39 , U40> const& vec)
-            : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32 , vec.m33 , vec.m34 , vec.m35 , vec.m36 , vec.m37 , vec.m38 , vec.m39 , vec.m40) {}
-        template <typename Sequence>
-        vector41(
-            Sequence const& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename Sequence>
-        vector41(
-            Sequence& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , type [...]
-        vector41&
-        operator=(vector41<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39 , U40> const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m [...]
-            return *this;
-        }
-        template <typename Sequence>
-        typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
-        operator=(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i [...]
-            return *this;
-        }
-        typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_cons [...]
-        template<typename I>
-        typename add_reference<typename mpl::at<types, I>::type>::type
-        at_impl(I)
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
-        at_impl(I) const
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector_data42
-    {
-        vector_data42()
-            : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() , m33() , m34() , m35() , m36() , m37() , m38() , m39() , m40() , m41() {}
-        vector_data42(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) , m24(_24) , m25(_25) , m26(_26) , m27(_27) , m28(_28) , m29(_29) , m30(_30) , m31(_31) , m32(_32) , m33(_33) , m34(_34) , m35(_35) , m36(_36) , m37(_37) , m38(_38) , m39(_39) , m40(_40) , m41(_41) {}
-        vector_data42(
-            vector_data42 const& other)
-            : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(o [...]
-        vector_data42&
-        operator=(vector_data42 const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m [...]
-            return *this;
-        }
-        template <typename Sequence>
-        static vector_data42
-        init_from_sequence(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data42(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41);
-        }
-        template <typename Sequence>
-        static vector_data42
-        init_from_sequence(Sequence& seq)
-        {
-            typedef typename result_of::begin<Sequence>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data42(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41);
-        }
-        T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32; T33 m33; T34 m34; T35 m35; T36 m36; T37 m37; T38 m38; T39 m39; T40 m40; T41 m41;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector42
-      : vector_data42<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41>
-      , sequence_base<vector42<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41> >
-    {
-        typedef vector42<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41> this_type;
-        typedef vector_data42<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41> base_type;
-        typedef mpl::vector42<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41> types;
-        typedef vector_tag fusion_tag;
-        typedef fusion_sequence_tag tag; 
-        typedef mpl::false_ is_view;
-        typedef random_access_traversal_tag category;
-        typedef mpl::int_<42> size;
-        vector42() {}
-        vector42(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , type [...]
-        vector42(
-            vector42<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39 , U40 , U41> const& vec)
-            : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32 , vec.m33 , vec.m34 , vec.m35 , vec.m36 , vec.m37 , vec.m38 , vec.m39 , vec.m40 , vec.m41) {}
-        template <typename Sequence>
-        vector42(
-            Sequence const& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename Sequence>
-        vector42(
-            Sequence& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , type [...]
-        vector42&
-        operator=(vector42<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39 , U40 , U41> const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m [...]
-            return *this;
-        }
-        template <typename Sequence>
-        typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
-        operator=(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i [...]
-            return *this;
-        }
-        typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_cons [...]
-        template<typename I>
-        typename add_reference<typename mpl::at<types, I>::type>::type
-        at_impl(I)
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
-        at_impl(I) const
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector_data43
-    {
-        vector_data43()
-            : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() , m33() , m34() , m35() , m36() , m37() , m38() , m39() , m40() , m41() , m42() {}
-        vector_data43(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) , m24(_24) , m25(_25) , m26(_26) , m27(_27) , m28(_28) , m29(_29) , m30(_30) , m31(_31) , m32(_32) , m33(_33) , m34(_34) , m35(_35) , m36(_36) , m37(_37) , m38(_38) , m39(_39) , m40(_40) , m41(_41) , m42(_42) {}
-        vector_data43(
-            vector_data43 const& other)
-            : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(o [...]
-        vector_data43&
-        operator=(vector_data43 const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m [...]
-            return *this;
-        }
-        template <typename Sequence>
-        static vector_data43
-        init_from_sequence(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data43(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41 , *i42);
-        }
-        template <typename Sequence>
-        static vector_data43
-        init_from_sequence(Sequence& seq)
-        {
-            typedef typename result_of::begin<Sequence>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data43(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41 , *i42);
-        }
-        T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32; T33 m33; T34 m34; T35 m35; T36 m36; T37 m37; T38 m38; T39 m39; T40 m40; T41 m41; T42 m42;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector43
-      : vector_data43<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42>
-      , sequence_base<vector43<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42> >
-    {
-        typedef vector43<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42> this_type;
-        typedef vector_data43<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42> base_type;
-        typedef mpl::vector43<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42> types;
-        typedef vector_tag fusion_tag;
-        typedef fusion_sequence_tag tag; 
-        typedef mpl::false_ is_view;
-        typedef random_access_traversal_tag category;
-        typedef mpl::int_<43> size;
-        vector43() {}
-        vector43(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41 , _42) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , type [...]
-        vector43(
-            vector43<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39 , U40 , U41 , U42> const& vec)
-            : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32 , vec.m33 , vec.m34 , vec.m35 , vec.m36 , vec.m37 , vec.m38 , vec.m39 , vec.m40 , vec.m41 , vec.m42) {}
-        template <typename Sequence>
-        vector43(
-            Sequence const& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename Sequence>
-        vector43(
-            Sequence& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , type [...]
-        vector43&
-        operator=(vector43<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39 , U40 , U41 , U42> const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m [...]
-            return *this;
-        }
-        template <typename Sequence>
-        typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
-        operator=(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i [...]
-            return *this;
-        }
-        typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_cons [...]
-        template<typename I>
-        typename add_reference<typename mpl::at<types, I>::type>::type
-        at_impl(I)
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
-        at_impl(I) const
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector_data44
-    {
-        vector_data44()
-            : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() , m33() , m34() , m35() , m36() , m37() , m38() , m39() , m40() , m41() , m42() , m43() {}
-        vector_data44(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) , m24(_24) , m25(_25) , m26(_26) , m27(_27) , m28(_28) , m29(_29) , m30(_30) , m31(_31) , m32(_32) , m33(_33) , m34(_34) , m35(_35) , m36(_36) , m37(_37) , m38(_38) , m39(_39) , m40(_40) , m41(_41) , m42(_42) , m43(_43) {}
-        vector_data44(
-            vector_data44 const& other)
-            : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(o [...]
-        vector_data44&
-        operator=(vector_data44 const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m [...]
-            return *this;
-        }
-        template <typename Sequence>
-        static vector_data44
-        init_from_sequence(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data44(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41 , *i42 , *i43);
-        }
-        template <typename Sequence>
-        static vector_data44
-        init_from_sequence(Sequence& seq)
-        {
-            typedef typename result_of::begin<Sequence>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data44(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41 , *i42 , *i43);
-        }
-        T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32; T33 m33; T34 m34; T35 m35; T36 m36; T37 m37; T38 m38; T39 m39; T40 m40; T41 m41; T42 m42; T43 m43;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector44
-      : vector_data44<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43>
-      , sequence_base<vector44<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43> >
-    {
-        typedef vector44<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43> this_type;
-        typedef vector_data44<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43> base_type;
-        typedef mpl::vector44<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43> types;
-        typedef vector_tag fusion_tag;
-        typedef fusion_sequence_tag tag; 
-        typedef mpl::false_ is_view;
-        typedef random_access_traversal_tag category;
-        typedef mpl::int_<44> size;
-        vector44() {}
-        vector44(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41 , _42 , _43) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , type [...]
-        vector44(
-            vector44<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39 , U40 , U41 , U42 , U43> const& vec)
-            : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32 , vec.m33 , vec.m34 , vec.m35 , vec.m36 , vec.m37 , vec.m38 , vec.m39 , vec.m40 , vec.m41 , vec.m42 , vec.m43) {}
-        template <typename Sequence>
-        vector44(
-            Sequence const& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename Sequence>
-        vector44(
-            Sequence& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , type [...]
-        vector44&
-        operator=(vector44<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39 , U40 , U41 , U42 , U43> const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m [...]
-            return *this;
-        }
-        template <typename Sequence>
-        typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
-        operator=(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i [...]
-            return *this;
-        }
-        typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_cons [...]
-        template<typename I>
-        typename add_reference<typename mpl::at<types, I>::type>::type
-        at_impl(I)
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
-        at_impl(I) const
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector_data45
-    {
-        vector_data45()
-            : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() , m33() , m34() , m35() , m36() , m37() , m38() , m39() , m40() , m41() , m42() , m43() , m44() {}
-        vector_data45(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) , m24(_24) , m25(_25) , m26(_26) , m27(_27) , m28(_28) , m29(_29) , m30(_30) , m31(_31) , m32(_32) , m33(_33) , m34(_34) , m35(_35) , m36(_36) , m37(_37) , m38(_38) , m39(_39) , m40(_40) , m41(_41) , m42(_42) , m43(_43) , m44(_44) {}
-        vector_data45(
-            vector_data45 const& other)
-            : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(o [...]
-        vector_data45&
-        operator=(vector_data45 const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m [...]
-            return *this;
-        }
-        template <typename Sequence>
-        static vector_data45
-        init_from_sequence(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data45(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41 , *i42 , *i43 , *i44);
-        }
-        template <typename Sequence>
-        static vector_data45
-        init_from_sequence(Sequence& seq)
-        {
-            typedef typename result_of::begin<Sequence>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data45(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41 , *i42 , *i43 , *i44);
-        }
-        T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32; T33 m33; T34 m34; T35 m35; T36 m36; T37 m37; T38 m38; T39 m39; T40 m40; T41 m41; T42 m42; T43 m43; T44 m44;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector45
-      : vector_data45<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44>
-      , sequence_base<vector45<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44> >
-    {
-        typedef vector45<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44> this_type;
-        typedef vector_data45<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44> base_type;
-        typedef mpl::vector45<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44> types;
-        typedef vector_tag fusion_tag;
-        typedef fusion_sequence_tag tag; 
-        typedef mpl::false_ is_view;
-        typedef random_access_traversal_tag category;
-        typedef mpl::int_<45> size;
-        vector45() {}
-        vector45(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41 , _42 , _43 , _44) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , type [...]
-        vector45(
-            vector45<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39 , U40 , U41 , U42 , U43 , U44> const& vec)
-            : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32 , vec.m33 , vec.m34 , vec.m35 , vec.m36 , vec.m37 , vec.m38 , vec.m39 , vec.m40 , vec.m41 , vec.m42 , vec.m43 , vec.m44) {}
-        template <typename Sequence>
-        vector45(
-            Sequence const& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename Sequence>
-        vector45(
-            Sequence& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , type [...]
-        vector45&
-        operator=(vector45<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39 , U40 , U41 , U42 , U43 , U44> const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m [...]
-            return *this;
-        }
-        template <typename Sequence>
-        typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
-        operator=(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i [...]
-            return *this;
-        }
-        typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_cons [...]
-        template<typename I>
-        typename add_reference<typename mpl::at<types, I>::type>::type
-        at_impl(I)
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
-        at_impl(I) const
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector_data46
-    {
-        vector_data46()
-            : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() , m33() , m34() , m35() , m36() , m37() , m38() , m39() , m40() , m41() , m42() , m43() , m44() , m45() {}
-        vector_data46(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) , m24(_24) , m25(_25) , m26(_26) , m27(_27) , m28(_28) , m29(_29) , m30(_30) , m31(_31) , m32(_32) , m33(_33) , m34(_34) , m35(_35) , m36(_36) , m37(_37) , m38(_38) , m39(_39) , m40(_40) , m41(_41) , m42(_42) , m43(_43) , m44(_44) , m45 [...]
-        vector_data46(
-            vector_data46 const& other)
-            : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(o [...]
-        vector_data46&
-        operator=(vector_data46 const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m [...]
-            return *this;
-        }
-        template <typename Sequence>
-        static vector_data46
-        init_from_sequence(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data46(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41 , *i42 , *i43 , *i44 , *i45);
-        }
-        template <typename Sequence>
-        static vector_data46
-        init_from_sequence(Sequence& seq)
-        {
-            typedef typename result_of::begin<Sequence>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data46(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41 , *i42 , *i43 , *i44 , *i45);
-        }
-        T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32; T33 m33; T34 m34; T35 m35; T36 m36; T37 m37; T38 m38; T39 m39; T40 m40; T41 m41; T42 m42; T43 m43; T44 m44; T45 m45;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector46
-      : vector_data46<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45>
-      , sequence_base<vector46<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45> >
-    {
-        typedef vector46<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45> this_type;
-        typedef vector_data46<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45> base_type;
-        typedef mpl::vector46<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45> types;
-        typedef vector_tag fusion_tag;
-        typedef fusion_sequence_tag tag; 
-        typedef mpl::false_ is_view;
-        typedef random_access_traversal_tag category;
-        typedef mpl::int_<46> size;
-        vector46() {}
-        vector46(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41 , _42 , _43 , _44 , _45) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , type [...]
-        vector46(
-            vector46<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39 , U40 , U41 , U42 , U43 , U44 , U45> const& vec)
-            : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32 , vec.m33 , vec.m34 , vec.m35 , vec.m36 , vec.m37 , vec.m38 , vec.m39 , vec.m40 , vec.m41 , vec.m42 , vec.m43 , vec.m44 , vec.m45) {}
-        template <typename Sequence>
-        vector46(
-            Sequence const& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename Sequence>
-        vector46(
-            Sequence& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , type [...]
-        vector46&
-        operator=(vector46<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39 , U40 , U41 , U42 , U43 , U44 , U45> const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m [...]
-            return *this;
-        }
-        template <typename Sequence>
-        typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
-        operator=(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i [...]
-            return *this;
-        }
-        typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_cons [...]
-        template<typename I>
-        typename add_reference<typename mpl::at<types, I>::type>::type
-        at_impl(I)
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
-        at_impl(I) const
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector_data47
-    {
-        vector_data47()
-            : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() , m33() , m34() , m35() , m36() , m37() , m38() , m39() , m40() , m41() , m42() , m43() , m44() , m45() , m46() {}
-        vector_data47(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) , m24(_24) , m25(_25) , m26(_26) , m27(_27) , m28(_28) , m29(_29) , m30(_30) , m31(_31) , m32(_32) , m33(_33) , m34(_34) , m35(_35) , m36(_36) , m37(_37) , m38(_38) , m39(_39) , m40(_40) , m41(_41) , m42(_42) , m43(_43) , m44(_44) , m45 [...]
-        vector_data47(
-            vector_data47 const& other)
-            : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(o [...]
-        vector_data47&
-        operator=(vector_data47 const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m [...]
-            return *this;
-        }
-        template <typename Sequence>
-        static vector_data47
-        init_from_sequence(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data47(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41 , *i42 , *i43 , *i44 , *i45 , *i46);
-        }
-        template <typename Sequence>
-        static vector_data47
-        init_from_sequence(Sequence& seq)
-        {
-            typedef typename result_of::begin<Sequence>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data47(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41 , *i42 , *i43 , *i44 , *i45 , *i46);
-        }
-        T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32; T33 m33; T34 m34; T35 m35; T36 m36; T37 m37; T38 m38; T39 m39; T40 m40; T41 m41; T42 m42; T43 m43; T44 m44; T45 m45; T46 m46;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector47
-      : vector_data47<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46>
-      , sequence_base<vector47<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46> >
-    {
-        typedef vector47<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46> this_type;
-        typedef vector_data47<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46> base_type;
-        typedef mpl::vector47<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46> types;
-        typedef vector_tag fusion_tag;
-        typedef fusion_sequence_tag tag; 
-        typedef mpl::false_ is_view;
-        typedef random_access_traversal_tag category;
-        typedef mpl::int_<47> size;
-        vector47() {}
-        vector47(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41 , _42 , _43 , _44 , _45 , _46) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , type [...]
-        vector47(
-            vector47<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39 , U40 , U41 , U42 , U43 , U44 , U45 , U46> const& vec)
-            : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32 , vec.m33 , vec.m34 , vec.m35 , vec.m36 , vec.m37 , vec.m38 , vec.m39 , vec.m40 , vec.m41 , vec.m42 , vec.m43 , vec.m44 , vec.m45 , vec.m46) {}
-        template <typename Sequence>
-        vector47(
-            Sequence const& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename Sequence>
-        vector47(
-            Sequence& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , type [...]
-        vector47&
-        operator=(vector47<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39 , U40 , U41 , U42 , U43 , U44 , U45 , U46> const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m [...]
-            return *this;
-        }
-        template <typename Sequence>
-        typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
-        operator=(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i [...]
-            return *this;
-        }
-        typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_cons [...]
-        template<typename I>
-        typename add_reference<typename mpl::at<types, I>::type>::type
-        at_impl(I)
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
-        at_impl(I) const
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector_data48
-    {
-        vector_data48()
-            : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() , m33() , m34() , m35() , m36() , m37() , m38() , m39() , m40() , m41() , m42() , m43() , m44() , m45() , m46() , m47() {}
-        vector_data48(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) , m24(_24) , m25(_25) , m26(_26) , m27(_27) , m28(_28) , m29(_29) , m30(_30) , m31(_31) , m32(_32) , m33(_33) , m34(_34) , m35(_35) , m36(_36) , m37(_37) , m38(_38) , m39(_39) , m40(_40) , m41(_41) , m42(_42) , m43(_43) , m44(_44) , m45 [...]
-        vector_data48(
-            vector_data48 const& other)
-            : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(o [...]
-        vector_data48&
-        operator=(vector_data48 const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m [...]
-            return *this;
-        }
-        template <typename Sequence>
-        static vector_data48
-        init_from_sequence(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data48(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41 , *i42 , *i43 , *i44 , *i45 , *i46 , *i47);
-        }
-        template <typename Sequence>
-        static vector_data48
-        init_from_sequence(Sequence& seq)
-        {
-            typedef typename result_of::begin<Sequence>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data48(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41 , *i42 , *i43 , *i44 , *i45 , *i46 , *i47);
-        }
-        T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32; T33 m33; T34 m34; T35 m35; T36 m36; T37 m37; T38 m38; T39 m39; T40 m40; T41 m41; T42 m42; T43 m43; T44 m44; T45 m45; T46 m46; T47 m47;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector48
-      : vector_data48<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47>
-      , sequence_base<vector48<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47> >
-    {
-        typedef vector48<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47> this_type;
-        typedef vector_data48<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47> base_type;
-        typedef mpl::vector48<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47> types;
-        typedef vector_tag fusion_tag;
-        typedef fusion_sequence_tag tag; 
-        typedef mpl::false_ is_view;
-        typedef random_access_traversal_tag category;
-        typedef mpl::int_<48> size;
-        vector48() {}
-        vector48(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41 , _42 , _43 , _44 , _45 , _46 , _47) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , type [...]
-        vector48(
-            vector48<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39 , U40 , U41 , U42 , U43 , U44 , U45 , U46 , U47> const& vec)
-            : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32 , vec.m33 , vec.m34 , vec.m35 , vec.m36 , vec.m37 , vec.m38 , vec.m39 , vec.m40 , vec.m41 , vec.m42 , vec.m43 , vec.m44 , vec.m45 , vec.m46 , vec.m47) {}
-        template <typename Sequence>
-        vector48(
-            Sequence const& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename Sequence>
-        vector48(
-            Sequence& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , type [...]
-        vector48&
-        operator=(vector48<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39 , U40 , U41 , U42 , U43 , U44 , U45 , U46 , U47> const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m [...]
-            return *this;
-        }
-        template <typename Sequence>
-        typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
-        operator=(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i [...]
-            return *this;
-        }
-        typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_cons [...]
-        template<typename I>
-        typename add_reference<typename mpl::at<types, I>::type>::type
-        at_impl(I)
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
-        at_impl(I) const
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector_data49
-    {
-        vector_data49()
-            : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() , m33() , m34() , m35() , m36() , m37() , m38() , m39() , m40() , m41() , m42() , m43() , m44() , m45() , m46() , m47() , m48() {}
-        vector_data49(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) , m24(_24) , m25(_25) , m26(_26) , m27(_27) , m28(_28) , m29(_29) , m30(_30) , m31(_31) , m32(_32) , m33(_33) , m34(_34) , m35(_35) , m36(_36) , m37(_37) , m38(_38) , m39(_39) , m40(_40) , m41(_41) , m42(_42) , m43(_43) , m44(_44) , m45 [...]
-        vector_data49(
-            vector_data49 const& other)
-            : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(o [...]
-        vector_data49&
-        operator=(vector_data49 const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m [...]
-            return *this;
-        }
-        template <typename Sequence>
-        static vector_data49
-        init_from_sequence(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data49(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41 , *i42 , *i43 , *i44 , *i45 , *i46 , *i47 , *i48);
-        }
-        template <typename Sequence>
-        static vector_data49
-        init_from_sequence(Sequence& seq)
-        {
-            typedef typename result_of::begin<Sequence>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data49(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41 , *i42 , *i43 , *i44 , *i45 , *i46 , *i47 , *i48);
-        }
-        T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32; T33 m33; T34 m34; T35 m35; T36 m36; T37 m37; T38 m38; T39 m39; T40 m40; T41 m41; T42 m42; T43 m43; T44 m44; T45 m45; T46 m46; T47 m47; T48 m48;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector49
-      : vector_data49<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48>
-      , sequence_base<vector49<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48> >
-    {
-        typedef vector49<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48> this_type;
-        typedef vector_data49<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48> base_type;
-        typedef mpl::vector49<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48> types;
-        typedef vector_tag fusion_tag;
-        typedef fusion_sequence_tag tag; 
-        typedef mpl::false_ is_view;
-        typedef random_access_traversal_tag category;
-        typedef mpl::int_<49> size;
-        vector49() {}
-        vector49(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41 , _42 , _43 , _44 , _45 , _46 , _47 , _48) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , type [...]
-        vector49(
-            vector49<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39 , U40 , U41 , U42 , U43 , U44 , U45 , U46 , U47 , U48> const& vec)
-            : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32 , vec.m33 , vec.m34 , vec.m35 , vec.m36 , vec.m37 , vec.m38 , vec.m39 , vec.m40 , vec.m41 , vec.m42 , vec.m43 , vec.m44 , vec.m45 , vec.m46 , vec.m47  [...]
-        template <typename Sequence>
-        vector49(
-            Sequence const& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename Sequence>
-        vector49(
-            Sequence& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , type [...]
-        vector49&
-        operator=(vector49<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39 , U40 , U41 , U42 , U43 , U44 , U45 , U46 , U47 , U48> const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m [...]
-            return *this;
-        }
-        template <typename Sequence>
-        typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
-        operator=(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i [...]
-            return *this;
-        }
-        typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_cons [...]
-        template<typename I>
-        typename add_reference<typename mpl::at<types, I>::type>::type
-        at_impl(I)
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
-        at_impl(I) const
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector_data50
-    {
-        vector_data50()
-            : m0() , m1() , m2() , m3() , m4() , m5() , m6() , m7() , m8() , m9() , m10() , m11() , m12() , m13() , m14() , m15() , m16() , m17() , m18() , m19() , m20() , m21() , m22() , m23() , m24() , m25() , m26() , m27() , m28() , m29() , m30() , m31() , m32() , m33() , m34() , m35() , m36() , m37() , m38() , m39() , m40() , m41() , m42() , m43() , m44() , m45() , m46() , m47() , m48() , m49() {}
-        vector_data50(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : m0(_0) , m1(_1) , m2(_2) , m3(_3) , m4(_4) , m5(_5) , m6(_6) , m7(_7) , m8(_8) , m9(_9) , m10(_10) , m11(_11) , m12(_12) , m13(_13) , m14(_14) , m15(_15) , m16(_16) , m17(_17) , m18(_18) , m19(_19) , m20(_20) , m21(_21) , m22(_22) , m23(_23) , m24(_24) , m25(_25) , m26(_26) , m27(_27) , m28(_28) , m29(_29) , m30(_30) , m31(_31) , m32(_32) , m33(_33) , m34(_34) , m35(_35) , m36(_36) , m37(_37) , m38(_38) , m39(_39) , m40(_40) , m41(_41) , m42(_42) , m43(_43) , m44(_44) , m45 [...]
-        vector_data50(
-            vector_data50 const& other)
-            : m0(other.m0) , m1(other.m1) , m2(other.m2) , m3(other.m3) , m4(other.m4) , m5(other.m5) , m6(other.m6) , m7(other.m7) , m8(other.m8) , m9(other.m9) , m10(other.m10) , m11(other.m11) , m12(other.m12) , m13(other.m13) , m14(other.m14) , m15(other.m15) , m16(other.m16) , m17(other.m17) , m18(other.m18) , m19(other.m19) , m20(other.m20) , m21(other.m21) , m22(other.m22) , m23(other.m23) , m24(other.m24) , m25(other.m25) , m26(other.m26) , m27(other.m27) , m28(other.m28) , m29(o [...]
-        vector_data50&
-        operator=(vector_data50 const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m [...]
-            return *this;
-        }
-        template <typename Sequence>
-        static vector_data50
-        init_from_sequence(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data50(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41 , *i42 , *i43 , *i44 , *i45 , *i46 , *i47 , *i48 , *i49);
-        }
-        template <typename Sequence>
-        static vector_data50
-        init_from_sequence(Sequence& seq)
-        {
-            typedef typename result_of::begin<Sequence>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            return vector_data50(*i0 , *i1 , *i2 , *i3 , *i4 , *i5 , *i6 , *i7 , *i8 , *i9 , *i10 , *i11 , *i12 , *i13 , *i14 , *i15 , *i16 , *i17 , *i18 , *i19 , *i20 , *i21 , *i22 , *i23 , *i24 , *i25 , *i26 , *i27 , *i28 , *i29 , *i30 , *i31 , *i32 , *i33 , *i34 , *i35 , *i36 , *i37 , *i38 , *i39 , *i40 , *i41 , *i42 , *i43 , *i44 , *i45 , *i46 , *i47 , *i48 , *i49);
-        }
-        T0 m0; T1 m1; T2 m2; T3 m3; T4 m4; T5 m5; T6 m6; T7 m7; T8 m8; T9 m9; T10 m10; T11 m11; T12 m12; T13 m13; T14 m14; T15 m15; T16 m16; T17 m17; T18 m18; T19 m19; T20 m20; T21 m21; T22 m22; T23 m23; T24 m24; T25 m25; T26 m26; T27 m27; T28 m28; T29 m29; T30 m30; T31 m31; T32 m32; T33 m33; T34 m34; T35 m35; T36 m36; T37 m37; T38 m38; T39 m39; T40 m40; T41 m41; T42 m42; T43 m43; T44 m44; T45 m45; T46 m46; T47 m47; T48 m48; T49 m49;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector50
-      : vector_data50<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 , T49>
-      , sequence_base<vector50<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 , T49> >
-    {
-        typedef vector50<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 , T49> this_type;
-        typedef vector_data50<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 , T49> base_type;
-        typedef mpl::vector50<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 , T49> types;
-        typedef vector_tag fusion_tag;
-        typedef fusion_sequence_tag tag; 
-        typedef mpl::false_ is_view;
-        typedef random_access_traversal_tag category;
-        typedef mpl::int_<50> size;
-        vector50() {}
-        vector50(
-            typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type  [...]
-            : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41 , _42 , _43 , _44 , _45 , _46 , _47 , _48 , _49) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , type [...]
-        vector50(
-            vector50<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39 , U40 , U41 , U42 , U43 , U44 , U45 , U46 , U47 , U48 , U49> const& vec)
-            : base_type(vec.m0 , vec.m1 , vec.m2 , vec.m3 , vec.m4 , vec.m5 , vec.m6 , vec.m7 , vec.m8 , vec.m9 , vec.m10 , vec.m11 , vec.m12 , vec.m13 , vec.m14 , vec.m15 , vec.m16 , vec.m17 , vec.m18 , vec.m19 , vec.m20 , vec.m21 , vec.m22 , vec.m23 , vec.m24 , vec.m25 , vec.m26 , vec.m27 , vec.m28 , vec.m29 , vec.m30 , vec.m31 , vec.m32 , vec.m33 , vec.m34 , vec.m35 , vec.m36 , vec.m37 , vec.m38 , vec.m39 , vec.m40 , vec.m41 , vec.m42 , vec.m43 , vec.m44 , vec.m45 , vec.m46 , vec.m47  [...]
-        template <typename Sequence>
-        vector50(
-            Sequence const& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename Sequence>
-        vector50(
-            Sequence& seq
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , type [...]
-        vector50&
-        operator=(vector50<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39 , U40 , U41 , U42 , U43 , U44 , U45 , U46 , U47 , U48 , U49> const& vec)
-        {
-            this->m0 = vec.m0; this->m1 = vec.m1; this->m2 = vec.m2; this->m3 = vec.m3; this->m4 = vec.m4; this->m5 = vec.m5; this->m6 = vec.m6; this->m7 = vec.m7; this->m8 = vec.m8; this->m9 = vec.m9; this->m10 = vec.m10; this->m11 = vec.m11; this->m12 = vec.m12; this->m13 = vec.m13; this->m14 = vec.m14; this->m15 = vec.m15; this->m16 = vec.m16; this->m17 = vec.m17; this->m18 = vec.m18; this->m19 = vec.m19; this->m20 = vec.m20; this->m21 = vec.m21; this->m22 = vec.m22; this->m23 = vec.m [...]
-            return *this;
-        }
-        template <typename Sequence>
-        typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
-        operator=(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            typedef typename result_of::next< I0>::type I1; I1 i1 = fusion::next(i0); typedef typename result_of::next< I1>::type I2; I2 i2 = fusion::next(i1); typedef typename result_of::next< I2>::type I3; I3 i3 = fusion::next(i2); typedef typename result_of::next< I3>::type I4; I4 i4 = fusion::next(i3); typedef typename result_of::next< I4>::type I5; I5 i5 = fusion::next(i4); typedef typename result_of::next< I5>::type I6; I6 i6 = fusion::next(i5); typedef typename result_of::next< I6 [...]
-            this->m0 = *i0; this->m1 = *i1; this->m2 = *i2; this->m3 = *i3; this->m4 = *i4; this->m5 = *i5; this->m6 = *i6; this->m7 = *i7; this->m8 = *i8; this->m9 = *i9; this->m10 = *i10; this->m11 = *i11; this->m12 = *i12; this->m13 = *i13; this->m14 = *i14; this->m15 = *i15; this->m16 = *i16; this->m17 = *i17; this->m18 = *i18; this->m19 = *i19; this->m20 = *i20; this->m21 = *i21; this->m22 = *i22; this->m23 = *i23; this->m24 = *i24; this->m25 = *i25; this->m26 = *i26; this->m27 = *i [...]
-            return *this;
-        }
-        typename add_reference<T0>::type at_impl(mpl::int_<0>) { return this->m0; } typename add_reference<typename add_const<T0>::type>::type at_impl(mpl::int_<0>) const { return this->m0; } typename add_reference<T1>::type at_impl(mpl::int_<1>) { return this->m1; } typename add_reference<typename add_const<T1>::type>::type at_impl(mpl::int_<1>) const { return this->m1; } typename add_reference<T2>::type at_impl(mpl::int_<2>) { return this->m2; } typename add_reference<typename add_cons [...]
-        template<typename I>
-        typename add_reference<typename mpl::at<types, I>::type>::type
-        at_impl(I)
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
-        at_impl(I) const
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-    };
-}}
diff --git a/boost/fusion/container/vector/detail/preprocessed/vector50_fwd.hpp b/boost/fusion/container/vector/detail/preprocessed/vector50_fwd.hpp
deleted file mode 100644
index 6829e9b..0000000
--- a/boost/fusion/container/vector/detail/preprocessed/vector50_fwd.hpp
+++ /dev/null
@@ -1,33 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2011 Eric Niebler
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-namespace boost { namespace fusion
-{
-    
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector41;
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector42;
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector43;
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector44;
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector45;
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector46;
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector47;
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector48;
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector49;
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector50;
-}}
diff --git a/boost/fusion/container/vector/detail/preprocessed/vector_chooser.hpp b/boost/fusion/container/vector/detail/preprocessed/vector_chooser.hpp
deleted file mode 100644
index e956bf2..0000000
--- a/boost/fusion/container/vector/detail/preprocessed/vector_chooser.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-#if FUSION_MAX_VECTOR_SIZE <= 10
-#include <boost/fusion/container/vector/detail/preprocessed/vector_chooser10.hpp>
-#elif FUSION_MAX_VECTOR_SIZE <= 20
-#include <boost/fusion/container/vector/detail/preprocessed/vector_chooser20.hpp>
-#elif FUSION_MAX_VECTOR_SIZE <= 30
-#include <boost/fusion/container/vector/detail/preprocessed/vector_chooser30.hpp>
-#elif FUSION_MAX_VECTOR_SIZE <= 40
-#include <boost/fusion/container/vector/detail/preprocessed/vector_chooser40.hpp>
-#elif FUSION_MAX_VECTOR_SIZE <= 50
-#include <boost/fusion/container/vector/detail/preprocessed/vector_chooser50.hpp>
-#else
-#error "FUSION_MAX_VECTOR_SIZE out of bounds for preprocessed headers"
-#endif
diff --git a/boost/fusion/container/vector/detail/preprocessed/vector_chooser10.hpp b/boost/fusion/container/vector/detail/preprocessed/vector_chooser10.hpp
deleted file mode 100644
index d631b53..0000000
--- a/boost/fusion/container/vector/detail/preprocessed/vector_chooser10.hpp
+++ /dev/null
@@ -1,84 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-namespace boost { namespace fusion { namespace detail
-{
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9>
-    struct vector_n_chooser
-    {
-        typedef vector10<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9> type;
-    };
-    template <>
-    struct vector_n_chooser<void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector0<> type;
-    };
-    template <typename T0>
-    struct vector_n_chooser<
-        T0
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector1<T0> type;
-    };
-    template <typename T0 , typename T1>
-    struct vector_n_chooser<
-        T0 , T1
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector2<T0 , T1> type;
-    };
-    template <typename T0 , typename T1 , typename T2>
-    struct vector_n_chooser<
-        T0 , T1 , T2
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector3<T0 , T1 , T2> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3
-        , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector4<T0 , T1 , T2 , T3> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4
-        , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector5<T0 , T1 , T2 , T3 , T4> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5
-        , void_ , void_ , void_ , void_>
-    {
-        typedef vector6<T0 , T1 , T2 , T3 , T4 , T5> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6
-        , void_ , void_ , void_>
-    {
-        typedef vector7<T0 , T1 , T2 , T3 , T4 , T5 , T6> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7
-        , void_ , void_>
-    {
-        typedef vector8<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8
-        , void_>
-    {
-        typedef vector9<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8> type;
-    };
-}}}
diff --git a/boost/fusion/container/vector/detail/preprocessed/vector_chooser20.hpp b/boost/fusion/container/vector/detail/preprocessed/vector_chooser20.hpp
deleted file mode 100644
index 9628f48..0000000
--- a/boost/fusion/container/vector/detail/preprocessed/vector_chooser20.hpp
+++ /dev/null
@@ -1,154 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-namespace boost { namespace fusion { namespace detail
-{
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19>
-    struct vector_n_chooser
-    {
-        typedef vector20<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19> type;
-    };
-    template <>
-    struct vector_n_chooser<void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector0<> type;
-    };
-    template <typename T0>
-    struct vector_n_chooser<
-        T0
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector1<T0> type;
-    };
-    template <typename T0 , typename T1>
-    struct vector_n_chooser<
-        T0 , T1
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector2<T0 , T1> type;
-    };
-    template <typename T0 , typename T1 , typename T2>
-    struct vector_n_chooser<
-        T0 , T1 , T2
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector3<T0 , T1 , T2> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector4<T0 , T1 , T2 , T3> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector5<T0 , T1 , T2 , T3 , T4> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector6<T0 , T1 , T2 , T3 , T4 , T5> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector7<T0 , T1 , T2 , T3 , T4 , T5 , T6> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector8<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector9<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector10<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector11<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector12<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector13<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13
-        , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector14<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14
-        , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector15<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15
-        , void_ , void_ , void_ , void_>
-    {
-        typedef vector16<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16
-        , void_ , void_ , void_>
-    {
-        typedef vector17<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17
-        , void_ , void_>
-    {
-        typedef vector18<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18
-        , void_>
-    {
-        typedef vector19<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18> type;
-    };
-}}}
diff --git a/boost/fusion/container/vector/detail/preprocessed/vector_chooser30.hpp b/boost/fusion/container/vector/detail/preprocessed/vector_chooser30.hpp
deleted file mode 100644
index 38edabf..0000000
--- a/boost/fusion/container/vector/detail/preprocessed/vector_chooser30.hpp
+++ /dev/null
@@ -1,224 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-namespace boost { namespace fusion { namespace detail
-{
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29>
-    struct vector_n_chooser
-    {
-        typedef vector30<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29> type;
-    };
-    template <>
-    struct vector_n_chooser<void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector0<> type;
-    };
-    template <typename T0>
-    struct vector_n_chooser<
-        T0
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector1<T0> type;
-    };
-    template <typename T0 , typename T1>
-    struct vector_n_chooser<
-        T0 , T1
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector2<T0 , T1> type;
-    };
-    template <typename T0 , typename T1 , typename T2>
-    struct vector_n_chooser<
-        T0 , T1 , T2
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector3<T0 , T1 , T2> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector4<T0 , T1 , T2 , T3> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector5<T0 , T1 , T2 , T3 , T4> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector6<T0 , T1 , T2 , T3 , T4 , T5> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector7<T0 , T1 , T2 , T3 , T4 , T5 , T6> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector8<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector9<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector10<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector11<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector12<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector13<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector14<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector15<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector16<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector17<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector18<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector19<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector20<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector21<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector22<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector23<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23
-        , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector24<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24
-        , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector25<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25
-        , void_ , void_ , void_ , void_>
-    {
-        typedef vector26<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26
-        , void_ , void_ , void_>
-    {
-        typedef vector27<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27
-        , void_ , void_>
-    {
-        typedef vector28<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28
-        , void_>
-    {
-        typedef vector29<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28> type;
-    };
-}}}
diff --git a/boost/fusion/container/vector/detail/preprocessed/vector_chooser40.hpp b/boost/fusion/container/vector/detail/preprocessed/vector_chooser40.hpp
deleted file mode 100644
index a784b75..0000000
--- a/boost/fusion/container/vector/detail/preprocessed/vector_chooser40.hpp
+++ /dev/null
@@ -1,294 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-namespace boost { namespace fusion { namespace detail
-{
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector_n_chooser
-    {
-        typedef vector40<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39> type;
-    };
-    template <>
-    struct vector_n_chooser<void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector0<> type;
-    };
-    template <typename T0>
-    struct vector_n_chooser<
-        T0
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector1<T0> type;
-    };
-    template <typename T0 , typename T1>
-    struct vector_n_chooser<
-        T0 , T1
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector2<T0 , T1> type;
-    };
-    template <typename T0 , typename T1 , typename T2>
-    struct vector_n_chooser<
-        T0 , T1 , T2
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector3<T0 , T1 , T2> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector4<T0 , T1 , T2 , T3> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector5<T0 , T1 , T2 , T3 , T4> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector6<T0 , T1 , T2 , T3 , T4 , T5> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector7<T0 , T1 , T2 , T3 , T4 , T5 , T6> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector8<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector9<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector10<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector11<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector12<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector13<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector14<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector15<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector16<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector17<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector18<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector19<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector20<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector21<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector22<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector23<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector24<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector25<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector26<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector27<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector28<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector29<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector30<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector31<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector32<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector33<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33
-        , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector34<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34
-        , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector35<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35
-        , void_ , void_ , void_ , void_>
-    {
-        typedef vector36<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36
-        , void_ , void_ , void_>
-    {
-        typedef vector37<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37
-        , void_ , void_>
-    {
-        typedef vector38<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38
-        , void_>
-    {
-        typedef vector39<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38> type;
-    };
-}}}
diff --git a/boost/fusion/container/vector/detail/preprocessed/vector_chooser50.hpp b/boost/fusion/container/vector/detail/preprocessed/vector_chooser50.hpp
deleted file mode 100644
index fc9a260..0000000
--- a/boost/fusion/container/vector/detail/preprocessed/vector_chooser50.hpp
+++ /dev/null
@@ -1,364 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-namespace boost { namespace fusion { namespace detail
-{
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector_n_chooser
-    {
-        typedef vector50<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 , T49> type;
-    };
-    template <>
-    struct vector_n_chooser<void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector0<> type;
-    };
-    template <typename T0>
-    struct vector_n_chooser<
-        T0
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector1<T0> type;
-    };
-    template <typename T0 , typename T1>
-    struct vector_n_chooser<
-        T0 , T1
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector2<T0 , T1> type;
-    };
-    template <typename T0 , typename T1 , typename T2>
-    struct vector_n_chooser<
-        T0 , T1 , T2
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector3<T0 , T1 , T2> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector4<T0 , T1 , T2 , T3> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector5<T0 , T1 , T2 , T3 , T4> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector6<T0 , T1 , T2 , T3 , T4 , T5> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector7<T0 , T1 , T2 , T3 , T4 , T5 , T6> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector8<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector9<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector10<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector11<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector12<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector13<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector14<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector15<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector16<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector17<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector18<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector19<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector20<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector21<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector22<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector23<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector24<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector25<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector26<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector27<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector28<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector29<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector30<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector31<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector32<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32>
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector33<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector34<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector35<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector36<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector37<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector38<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector39<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector40<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector41<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector42<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42
-        , void_ , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector43<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43
-        , void_ , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector44<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44
-        , void_ , void_ , void_ , void_ , void_>
-    {
-        typedef vector45<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45
-        , void_ , void_ , void_ , void_>
-    {
-        typedef vector46<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46
-        , void_ , void_ , void_>
-    {
-        typedef vector47<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47
-        , void_ , void_>
-    {
-        typedef vector48<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47> type;
-    };
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector_n_chooser<
-        T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48
-        , void_>
-    {
-        typedef vector49<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48> type;
-    };
-}}}
diff --git a/boost/fusion/container/vector/detail/preprocessed/vector_fwd.hpp b/boost/fusion/container/vector/detail/preprocessed/vector_fwd.hpp
deleted file mode 100644
index e2576f9..0000000
--- a/boost/fusion/container/vector/detail/preprocessed/vector_fwd.hpp
+++ /dev/null
@@ -1,22 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-
-#if FUSION_MAX_VECTOR_SIZE <= 10
-#include <boost/fusion/container/vector/detail/preprocessed/vvector10_fwd.hpp>
-#elif FUSION_MAX_VECTOR_SIZE <= 20
-#include <boost/fusion/container/vector/detail/preprocessed/vvector20_fwd.hpp>
-#elif FUSION_MAX_VECTOR_SIZE <= 30
-#include <boost/fusion/container/vector/detail/preprocessed/vvector30_fwd.hpp>
-#elif FUSION_MAX_VECTOR_SIZE <= 40
-#include <boost/fusion/container/vector/detail/preprocessed/vvector40_fwd.hpp>
-#elif FUSION_MAX_VECTOR_SIZE <= 50
-#include <boost/fusion/container/vector/detail/preprocessed/vvector50_fwd.hpp>
-#else
-#error "FUSION_MAX_VECTOR_SIZE out of bounds for preprocessed headers"
-#endif
diff --git a/boost/fusion/container/vector/detail/preprocessed/vvector10.hpp b/boost/fusion/container/vector/detail/preprocessed/vvector10.hpp
deleted file mode 100644
index 8e6f1f6..0000000
--- a/boost/fusion/container/vector/detail/preprocessed/vvector10.hpp
+++ /dev/null
@@ -1,122 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-namespace boost { namespace fusion
-{
-    struct void_;
-    struct fusion_sequence_tag;
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9>
-    struct vector
-        : sequence_base<vector<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9> >
-    {
-    private:
-        typedef typename detail::vector_n_chooser<
-            T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9>::type
-        vector_n;
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9>
-        friend struct vector;
-    public:
-        typedef typename vector_n::types types;
-        typedef typename vector_n::fusion_tag fusion_tag;
-        typedef typename vector_n::tag tag;
-        typedef typename vector_n::size size;
-        typedef typename vector_n::category category;
-        typedef typename vector_n::is_view is_view;
-        vector()
-            : vec() {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9>
-        vector(vector<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9> const& rhs)
-            : vec(rhs.vec) {}
-        vector(vector const& rhs)
-            : vec(rhs.vec) {}
-        template <typename Sequence>
-        vector(Sequence const& rhs)
-            : vec(BOOST_FUSION_VECTOR_COPY_INIT()) {}
-        
-        
-        
-        
-        
-        
-        
-    explicit
-    vector(typename detail::call_param<T0 >::type _0)
-        : vec(_0) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1)
-        : vec(_0 , _1) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2)
-        : vec(_0 , _1 , _2) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3)
-        : vec(_0 , _1 , _2 , _3) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4)
-        : vec(_0 , _1 , _2 , _3 , _4) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5)
-        : vec(_0 , _1 , _2 , _3 , _4 , _5) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6)
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7)
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8)
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9)
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9>
-        vector&
-        operator=(vector<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9> const& rhs)
-        {
-            vec = rhs.vec;
-            return *this;
-        }
-        template <typename T>
-        vector&
-        operator=(T const& rhs)
-        {
-            vec = rhs;
-            return *this;
-        }
-        template <int N>
-        typename add_reference<
-            typename mpl::at_c<types, N>::type
-        >::type
-        at_impl(mpl::int_<N> index)
-        {
-            return vec.at_impl(index);
-        }
-        template <int N>
-        typename add_reference<
-            typename add_const<
-                typename mpl::at_c<types, N>::type
-            >::type
-        >::type
-        at_impl(mpl::int_<N> index) const
-        {
-            return vec.at_impl(index);
-        }
-        template <typename I>
-        typename add_reference<
-            typename mpl::at<types, I>::type
-        >::type
-        at_impl(I )
-        {
-            return vec.at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<
-            typename add_const<
-                typename mpl::at<types, I>::type
-            >::type
-        >::type
-        at_impl(I ) const
-        {
-            return vec.at_impl(mpl::int_<I::value>());
-        }
-    private:
-        BOOST_FUSION_VECTOR_CTOR_HELPER()
-        vector_n vec;
-    };
-}}
diff --git a/boost/fusion/container/vector/detail/preprocessed/vvector10_fwd.hpp b/boost/fusion/container/vector/detail/preprocessed/vvector10_fwd.hpp
deleted file mode 100644
index 97f64fa..0000000
--- a/boost/fusion/container/vector/detail/preprocessed/vvector10_fwd.hpp
+++ /dev/null
@@ -1,16 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-namespace boost { namespace fusion
-{
-    struct void_;
-    template <
-        typename T0 = void_ , typename T1 = void_ , typename T2 = void_ , typename T3 = void_ , typename T4 = void_ , typename T5 = void_ , typename T6 = void_ , typename T7 = void_ , typename T8 = void_ , typename T9 = void_
-    >
-    struct vector;
-}}
diff --git a/boost/fusion/container/vector/detail/preprocessed/vvector20.hpp b/boost/fusion/container/vector/detail/preprocessed/vvector20.hpp
deleted file mode 100644
index bc04fef..0000000
--- a/boost/fusion/container/vector/detail/preprocessed/vvector20.hpp
+++ /dev/null
@@ -1,142 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-namespace boost { namespace fusion
-{
-    struct void_;
-    struct fusion_sequence_tag;
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19>
-    struct vector
-        : sequence_base<vector<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19> >
-    {
-    private:
-        typedef typename detail::vector_n_chooser<
-            T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19>::type
-        vector_n;
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19>
-        friend struct vector;
-    public:
-        typedef typename vector_n::types types;
-        typedef typename vector_n::fusion_tag fusion_tag;
-        typedef typename vector_n::tag tag;
-        typedef typename vector_n::size size;
-        typedef typename vector_n::category category;
-        typedef typename vector_n::is_view is_view;
-        vector()
-            : vec() {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19>
-        vector(vector<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19> const& rhs)
-            : vec(rhs.vec) {}
-        vector(vector const& rhs)
-            : vec(rhs.vec) {}
-        template <typename Sequence>
-        vector(Sequence const& rhs)
-            : vec(BOOST_FUSION_VECTOR_COPY_INIT()) {}
-        
-        
-        
-        
-        
-        
-        
-    explicit
-    vector(typename detail::call_param<T0 >::type _0)
-        : vec(_0) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1)
-        : vec(_0 , _1) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2)
-        : vec(_0 , _1 , _2) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3)
-        : vec(_0 , _1 , _2 , _3) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4)
-        : vec(_0 , _1 , _2 , _3 , _4) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5)
-        : vec(_0 , _1 , _2 , _3 , _4 , _5) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6)
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7)
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8)
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9)
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _10)
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19>
-        vector&
-        operator=(vector<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19> const& rhs)
-        {
-            vec = rhs.vec;
-            return *this;
-        }
-        template <typename T>
-        vector&
-        operator=(T const& rhs)
-        {
-            vec = rhs;
-            return *this;
-        }
-        template <int N>
-        typename add_reference<
-            typename mpl::at_c<types, N>::type
-        >::type
-        at_impl(mpl::int_<N> index)
-        {
-            return vec.at_impl(index);
-        }
-        template <int N>
-        typename add_reference<
-            typename add_const<
-                typename mpl::at_c<types, N>::type
-            >::type
-        >::type
-        at_impl(mpl::int_<N> index) const
-        {
-            return vec.at_impl(index);
-        }
-        template <typename I>
-        typename add_reference<
-            typename mpl::at<types, I>::type
-        >::type
-        at_impl(I )
-        {
-            return vec.at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<
-            typename add_const<
-                typename mpl::at<types, I>::type
-            >::type
-        >::type
-        at_impl(I ) const
-        {
-            return vec.at_impl(mpl::int_<I::value>());
-        }
-    private:
-        BOOST_FUSION_VECTOR_CTOR_HELPER()
-        vector_n vec;
-    };
-}}
diff --git a/boost/fusion/container/vector/detail/preprocessed/vvector20_fwd.hpp b/boost/fusion/container/vector/detail/preprocessed/vvector20_fwd.hpp
deleted file mode 100644
index 8d4ea99..0000000
--- a/boost/fusion/container/vector/detail/preprocessed/vvector20_fwd.hpp
+++ /dev/null
@@ -1,16 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-namespace boost { namespace fusion
-{
-    struct void_;
-    template <
-        typename T0 = void_ , typename T1 = void_ , typename T2 = void_ , typename T3 = void_ , typename T4 = void_ , typename T5 = void_ , typename T6 = void_ , typename T7 = void_ , typename T8 = void_ , typename T9 = void_ , typename T10 = void_ , typename T11 = void_ , typename T12 = void_ , typename T13 = void_ , typename T14 = void_ , typename T15 = void_ , typename T16 = void_ , typename T17 = void_ , typename T18 = void_ , typename T19 = void_
-    >
-    struct vector;
-}}
diff --git a/boost/fusion/container/vector/detail/preprocessed/vvector30.hpp b/boost/fusion/container/vector/detail/preprocessed/vvector30.hpp
deleted file mode 100644
index 0841920..0000000
--- a/boost/fusion/container/vector/detail/preprocessed/vvector30.hpp
+++ /dev/null
@@ -1,162 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-namespace boost { namespace fusion
-{
-    struct void_;
-    struct fusion_sequence_tag;
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29>
-    struct vector
-        : sequence_base<vector<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29> >
-    {
-    private:
-        typedef typename detail::vector_n_chooser<
-            T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29>::type
-        vector_n;
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29>
-        friend struct vector;
-    public:
-        typedef typename vector_n::types types;
-        typedef typename vector_n::fusion_tag fusion_tag;
-        typedef typename vector_n::tag tag;
-        typedef typename vector_n::size size;
-        typedef typename vector_n::category category;
-        typedef typename vector_n::is_view is_view;
-        vector()
-            : vec() {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29>
-        vector(vector<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29> const& rhs)
-            : vec(rhs.vec) {}
-        vector(vector const& rhs)
-            : vec(rhs.vec) {}
-        template <typename Sequence>
-        vector(Sequence const& rhs)
-            : vec(BOOST_FUSION_VECTOR_COPY_INIT()) {}
-        
-        
-        
-        
-        
-        
-        
-    explicit
-    vector(typename detail::call_param<T0 >::type _0)
-        : vec(_0) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1)
-        : vec(_0 , _1) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2)
-        : vec(_0 , _1 , _2) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3)
-        : vec(_0 , _1 , _2 , _3) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4)
-        : vec(_0 , _1 , _2 , _3 , _4) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5)
-        : vec(_0 , _1 , _2 , _3 , _4 , _5) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6)
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7)
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8)
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9)
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _10)
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29>
-        vector&
-        operator=(vector<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29> const& rhs)
-        {
-            vec = rhs.vec;
-            return *this;
-        }
-        template <typename T>
-        vector&
-        operator=(T const& rhs)
-        {
-            vec = rhs;
-            return *this;
-        }
-        template <int N>
-        typename add_reference<
-            typename mpl::at_c<types, N>::type
-        >::type
-        at_impl(mpl::int_<N> index)
-        {
-            return vec.at_impl(index);
-        }
-        template <int N>
-        typename add_reference<
-            typename add_const<
-                typename mpl::at_c<types, N>::type
-            >::type
-        >::type
-        at_impl(mpl::int_<N> index) const
-        {
-            return vec.at_impl(index);
-        }
-        template <typename I>
-        typename add_reference<
-            typename mpl::at<types, I>::type
-        >::type
-        at_impl(I )
-        {
-            return vec.at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<
-            typename add_const<
-                typename mpl::at<types, I>::type
-            >::type
-        >::type
-        at_impl(I ) const
-        {
-            return vec.at_impl(mpl::int_<I::value>());
-        }
-    private:
-        BOOST_FUSION_VECTOR_CTOR_HELPER()
-        vector_n vec;
-    };
-}}
diff --git a/boost/fusion/container/vector/detail/preprocessed/vvector30_fwd.hpp b/boost/fusion/container/vector/detail/preprocessed/vvector30_fwd.hpp
deleted file mode 100644
index 03f289e..0000000
--- a/boost/fusion/container/vector/detail/preprocessed/vvector30_fwd.hpp
+++ /dev/null
@@ -1,16 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-namespace boost { namespace fusion
-{
-    struct void_;
-    template <
-        typename T0 = void_ , typename T1 = void_ , typename T2 = void_ , typename T3 = void_ , typename T4 = void_ , typename T5 = void_ , typename T6 = void_ , typename T7 = void_ , typename T8 = void_ , typename T9 = void_ , typename T10 = void_ , typename T11 = void_ , typename T12 = void_ , typename T13 = void_ , typename T14 = void_ , typename T15 = void_ , typename T16 = void_ , typename T17 = void_ , typename T18 = void_ , typename T19 = void_ , typename T20 = void_ , typename T2 [...]
-    >
-    struct vector;
-}}
diff --git a/boost/fusion/container/vector/detail/preprocessed/vvector40.hpp b/boost/fusion/container/vector/detail/preprocessed/vvector40.hpp
deleted file mode 100644
index 11d9cc7..0000000
--- a/boost/fusion/container/vector/detail/preprocessed/vvector40.hpp
+++ /dev/null
@@ -1,182 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-namespace boost { namespace fusion
-{
-    struct void_;
-    struct fusion_sequence_tag;
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector
-        : sequence_base<vector<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39> >
-    {
-    private:
-        typedef typename detail::vector_n_chooser<
-            T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39>::type
-        vector_n;
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , type [...]
-        friend struct vector;
-    public:
-        typedef typename vector_n::types types;
-        typedef typename vector_n::fusion_tag fusion_tag;
-        typedef typename vector_n::tag tag;
-        typedef typename vector_n::size size;
-        typedef typename vector_n::category category;
-        typedef typename vector_n::is_view is_view;
-        vector()
-            : vec() {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , type [...]
-        vector(vector<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39> const& rhs)
-            : vec(rhs.vec) {}
-        vector(vector const& rhs)
-            : vec(rhs.vec) {}
-        template <typename Sequence>
-        vector(Sequence const& rhs)
-            : vec(BOOST_FUSION_VECTOR_COPY_INIT()) {}
-        
-        
-        
-        
-        
-        
-        
-    explicit
-    vector(typename detail::call_param<T0 >::type _0)
-        : vec(_0) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1)
-        : vec(_0 , _1) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2)
-        : vec(_0 , _1 , _2) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3)
-        : vec(_0 , _1 , _2 , _3) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4)
-        : vec(_0 , _1 , _2 , _3 , _4) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5)
-        : vec(_0 , _1 , _2 , _3 , _4 , _5) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6)
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7)
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8)
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9)
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _10)
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , type [...]
-        vector&
-        operator=(vector<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39> const& rhs)
-        {
-            vec = rhs.vec;
-            return *this;
-        }
-        template <typename T>
-        vector&
-        operator=(T const& rhs)
-        {
-            vec = rhs;
-            return *this;
-        }
-        template <int N>
-        typename add_reference<
-            typename mpl::at_c<types, N>::type
-        >::type
-        at_impl(mpl::int_<N> index)
-        {
-            return vec.at_impl(index);
-        }
-        template <int N>
-        typename add_reference<
-            typename add_const<
-                typename mpl::at_c<types, N>::type
-            >::type
-        >::type
-        at_impl(mpl::int_<N> index) const
-        {
-            return vec.at_impl(index);
-        }
-        template <typename I>
-        typename add_reference<
-            typename mpl::at<types, I>::type
-        >::type
-        at_impl(I )
-        {
-            return vec.at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<
-            typename add_const<
-                typename mpl::at<types, I>::type
-            >::type
-        >::type
-        at_impl(I ) const
-        {
-            return vec.at_impl(mpl::int_<I::value>());
-        }
-    private:
-        BOOST_FUSION_VECTOR_CTOR_HELPER()
-        vector_n vec;
-    };
-}}
diff --git a/boost/fusion/container/vector/detail/preprocessed/vvector40_fwd.hpp b/boost/fusion/container/vector/detail/preprocessed/vvector40_fwd.hpp
deleted file mode 100644
index 55c1097..0000000
--- a/boost/fusion/container/vector/detail/preprocessed/vvector40_fwd.hpp
+++ /dev/null
@@ -1,16 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-namespace boost { namespace fusion
-{
-    struct void_;
-    template <
-        typename T0 = void_ , typename T1 = void_ , typename T2 = void_ , typename T3 = void_ , typename T4 = void_ , typename T5 = void_ , typename T6 = void_ , typename T7 = void_ , typename T8 = void_ , typename T9 = void_ , typename T10 = void_ , typename T11 = void_ , typename T12 = void_ , typename T13 = void_ , typename T14 = void_ , typename T15 = void_ , typename T16 = void_ , typename T17 = void_ , typename T18 = void_ , typename T19 = void_ , typename T20 = void_ , typename T2 [...]
-    >
-    struct vector;
-}}
diff --git a/boost/fusion/container/vector/detail/preprocessed/vvector50.hpp b/boost/fusion/container/vector/detail/preprocessed/vvector50.hpp
deleted file mode 100644
index 1ac6c6f..0000000
--- a/boost/fusion/container/vector/detail/preprocessed/vvector50.hpp
+++ /dev/null
@@ -1,202 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-namespace boost { namespace fusion
-{
-    struct void_;
-    struct fusion_sequence_tag;
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct vector
-        : sequence_base<vector<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 , T49> >
-    {
-    private:
-        typedef typename detail::vector_n_chooser<
-            T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 , T49>::type
-        vector_n;
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , type [...]
-        friend struct vector;
-    public:
-        typedef typename vector_n::types types;
-        typedef typename vector_n::fusion_tag fusion_tag;
-        typedef typename vector_n::tag tag;
-        typedef typename vector_n::size size;
-        typedef typename vector_n::category category;
-        typedef typename vector_n::is_view is_view;
-        vector()
-            : vec() {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , type [...]
-        vector(vector<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39 , U40 , U41 , U42 , U43 , U44 , U45 , U46 , U47 , U48 , U49> const& rhs)
-            : vec(rhs.vec) {}
-        vector(vector const& rhs)
-            : vec(rhs.vec) {}
-        template <typename Sequence>
-        vector(Sequence const& rhs)
-            : vec(BOOST_FUSION_VECTOR_COPY_INIT()) {}
-        
-        
-        
-        
-        
-        
-        
-    explicit
-    vector(typename detail::call_param<T0 >::type _0)
-        : vec(_0) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1)
-        : vec(_0 , _1) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2)
-        : vec(_0 , _1 , _2) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3)
-        : vec(_0 , _1 , _2 , _3) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4)
-        : vec(_0 , _1 , _2 , _3 , _4) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5)
-        : vec(_0 , _1 , _2 , _3 , _4 , _5) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6)
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7)
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8)
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9)
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _10)
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41 , _42) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41 , _42 , _43) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41 , _42 , _43 , _44) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41 , _42 , _43 , _44 , _45) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41 , _42 , _43 , _44 , _45 , _46) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41 , _42 , _43 , _44 , _45 , _46 , _47) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41 , _42 , _43 , _44 , _45 , _46 , _47 , _48) {}
-    vector(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _ [...]
-        : vec(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41 , _42 , _43 , _44 , _45 , _46 , _47 , _48 , _49) {}
-        template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , type [...]
-        vector&
-        operator=(vector<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39 , U40 , U41 , U42 , U43 , U44 , U45 , U46 , U47 , U48 , U49> const& rhs)
-        {
-            vec = rhs.vec;
-            return *this;
-        }
-        template <typename T>
-        vector&
-        operator=(T const& rhs)
-        {
-            vec = rhs;
-            return *this;
-        }
-        template <int N>
-        typename add_reference<
-            typename mpl::at_c<types, N>::type
-        >::type
-        at_impl(mpl::int_<N> index)
-        {
-            return vec.at_impl(index);
-        }
-        template <int N>
-        typename add_reference<
-            typename add_const<
-                typename mpl::at_c<types, N>::type
-            >::type
-        >::type
-        at_impl(mpl::int_<N> index) const
-        {
-            return vec.at_impl(index);
-        }
-        template <typename I>
-        typename add_reference<
-            typename mpl::at<types, I>::type
-        >::type
-        at_impl(I )
-        {
-            return vec.at_impl(mpl::int_<I::value>());
-        }
-        template<typename I>
-        typename add_reference<
-            typename add_const<
-                typename mpl::at<types, I>::type
-            >::type
-        >::type
-        at_impl(I ) const
-        {
-            return vec.at_impl(mpl::int_<I::value>());
-        }
-    private:
-        BOOST_FUSION_VECTOR_CTOR_HELPER()
-        vector_n vec;
-    };
-}}
diff --git a/boost/fusion/container/vector/detail/preprocessed/vvector50_fwd.hpp b/boost/fusion/container/vector/detail/preprocessed/vvector50_fwd.hpp
deleted file mode 100644
index 621f160..0000000
--- a/boost/fusion/container/vector/detail/preprocessed/vvector50_fwd.hpp
+++ /dev/null
@@ -1,16 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-namespace boost { namespace fusion
-{
-    struct void_;
-    template <
-        typename T0 = void_ , typename T1 = void_ , typename T2 = void_ , typename T3 = void_ , typename T4 = void_ , typename T5 = void_ , typename T6 = void_ , typename T7 = void_ , typename T8 = void_ , typename T9 = void_ , typename T10 = void_ , typename T11 = void_ , typename T12 = void_ , typename T13 = void_ , typename T14 = void_ , typename T15 = void_ , typename T16 = void_ , typename T17 = void_ , typename T18 = void_ , typename T19 = void_ , typename T20 = void_ , typename T2 [...]
-    >
-    struct vector;
-}}
diff --git a/boost/fusion/container/vector/detail/prior_impl.hpp b/boost/fusion/container/vector/detail/prior_impl.hpp
deleted file mode 100644
index b0a6a68..0000000
--- a/boost/fusion/container/vector/detail/prior_impl.hpp
+++ /dev/null
@@ -1,43 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_PRIOR_IMPL_05042005_1145)
-#define FUSION_PRIOR_IMPL_05042005_1145
-
-#include <boost/fusion/container/vector/vector_iterator.hpp>
-
-namespace boost { namespace fusion
-{
-    struct vector_iterator_tag;
-    template <typename Vector, int N>
-    struct vector_iterator;
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct prior_impl;
-
-        template <>
-        struct prior_impl<vector_iterator_tag>
-        {
-            template <typename Iterator>
-            struct apply 
-            {
-                typedef typename Iterator::vector vector;
-                typedef typename Iterator::index index;
-                typedef vector_iterator<vector, index::value-1> type;
-
-                static type
-                call(Iterator const& i)
-                {
-                    return type(i.vec);
-                }
-            };
-        };
-    }
-}}
-
-#endif
diff --git a/boost/fusion/container/vector/detail/value_at_impl.hpp b/boost/fusion/container/vector/detail/value_at_impl.hpp
deleted file mode 100644
index b5aeb19..0000000
--- a/boost/fusion/container/vector/detail/value_at_impl.hpp
+++ /dev/null
@@ -1,33 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_VALUE_AT_IMPL_05052005_0232)
-#define FUSION_VALUE_AT_IMPL_05052005_0232
-
-#include <boost/mpl/at.hpp>
-
-namespace boost { namespace fusion
-{
-    struct vector_tag;
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct value_at_impl;
-
-        template <>
-        struct value_at_impl<vector_tag>
-        {
-            template <typename Sequence, typename N>
-            struct apply 
-            {
-                typedef typename mpl::at<typename Sequence::types, N>::type type;
-            };
-        };
-    }
-}}
-
-#endif
diff --git a/boost/fusion/container/vector/detail/value_of_impl.hpp b/boost/fusion/container/vector/detail/value_of_impl.hpp
deleted file mode 100644
index e10c522..0000000
--- a/boost/fusion/container/vector/detail/value_of_impl.hpp
+++ /dev/null
@@ -1,37 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_VALUE_OF_IMPL_05052005_1128)
-#define FUSION_VALUE_OF_IMPL_05052005_1128
-
-#include <boost/mpl/at.hpp>
-
-namespace boost { namespace fusion
-{
-    struct vector_iterator_tag;
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct value_of_impl;
-
-        template <>
-        struct value_of_impl<vector_iterator_tag>
-        {
-            template <typename Iterator>
-            struct apply 
-            {
-                typedef typename Iterator::vector vector;
-                typedef typename Iterator::index index;
-                typedef typename mpl::at<
-                    typename vector::types, index>::type
-                type;
-            };
-        };
-    }
-}}
-
-#endif
diff --git a/boost/fusion/container/vector/detail/vector_forward_ctor.hpp b/boost/fusion/container/vector/detail/vector_forward_ctor.hpp
deleted file mode 100644
index 2607321..0000000
--- a/boost/fusion/container/vector/detail/vector_forward_ctor.hpp
+++ /dev/null
@@ -1,51 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#ifndef BOOST_PP_IS_ITERATING
-#if !defined(FUSION_VECTOR_FORWARD_CTOR_07122005_1123)
-#define FUSION_VECTOR_FORWARD_CTOR_07122005_1123
-
-#include <boost/preprocessor/iterate.hpp>
-#include <boost/preprocessor/repetition/enum_params.hpp>
-#include <boost/preprocessor/repetition/enum_binary_params.hpp>
-
-#define FUSION_FORWARD_CTOR_FORWARD(z, n, _)    std::forward<U##n>(_##n)
-
-#define BOOST_PP_FILENAME_1 \
-    <boost/fusion/container/vector/detail/vector_forward_ctor.hpp>
-#define BOOST_PP_ITERATION_LIMITS (1, FUSION_MAX_VECTOR_SIZE)
-#include BOOST_PP_ITERATE()
-
-#undef FUSION_FORWARD_CTOR_FORWARD
-#endif
-#else // defined(BOOST_PP_IS_ITERATING)
-///////////////////////////////////////////////////////////////////////////////
-//
-//  Preprocessor vertical repetition code
-//
-///////////////////////////////////////////////////////////////////////////////
-
-#define N BOOST_PP_ITERATION()
-
-#if N == 1
-    explicit
-#endif
-    vector(BOOST_PP_ENUM_BINARY_PARAMS(
-        N, typename detail::call_param<T, >::type _))
-        : vec(BOOST_PP_ENUM_PARAMS(N, _)) {}
-
-#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
-    template <BOOST_PP_ENUM_PARAMS(N, typename U)>
-#if N == 1
-    explicit
-#endif
-    vector(BOOST_PP_ENUM_BINARY_PARAMS(N, U, && _))
-        : vec(BOOST_PP_ENUM(N, FUSION_FORWARD_CTOR_FORWARD, _)) {}
-#endif
-
-#undef N
-#endif // defined(BOOST_PP_IS_ITERATING)
-
diff --git a/boost/fusion/container/vector/detail/vector_n.hpp b/boost/fusion/container/vector/detail/vector_n.hpp
deleted file mode 100644
index 1354ff4..0000000
--- a/boost/fusion/container/vector/detail/vector_n.hpp
+++ /dev/null
@@ -1,240 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-// No include guard. This file is meant to be included many times
-
-#if !defined(FUSION_MACRO_05042005)
-#define FUSION_MACRO_05042005
-
-#define FUSION_VECTOR_CTOR_DEFAULT_INIT(z, n, _)                                \
-    m##n()
-
-#define FUSION_VECTOR_CTOR_INIT(z, n, _)                                        \
-    m##n(_##n)
-
-#define FUSION_VECTOR_MEMBER_CTOR_INIT(z, n, _)                                 \
-    m##n(other.m##n)
-
-#define FUSION_VECTOR_CTOR_FORWARD(z, n, _)                                     \
-   m##n(std::forward<T##n>(other.m##n))
-
-#define FUSION_VECTOR_CTOR_ARG_FWD(z, n, _)                                     \
-   m##n(std::forward<U##n>(_##n))
-
-#define FUSION_VECTOR_MEMBER_DECL(z, n, _)                                      \
-    T##n m##n;
-
-#define FUSION_VECTOR_MEMBER_FORWARD(z, n, _)                                   \
-   std::forward<U##n>(_##n)
-
-#define FUSION_VECTOR_MEMBER_ASSIGN(z, n, _)                                    \
-    this->BOOST_PP_CAT(m, n) = vec.BOOST_PP_CAT(m, n);
-
-#define FUSION_VECTOR_MEMBER_DEREF_ASSIGN(z, n, _)                              \
-    this->BOOST_PP_CAT(m, n) = *BOOST_PP_CAT(i, n);
-
-#define FUSION_VECTOR_MEMBER_MOVE(z, n, _)                                      \
-    this->BOOST_PP_CAT(m, n) = std::forward<                                    \
-        BOOST_PP_CAT(T, n)>(vec.BOOST_PP_CAT(m, n));
-
-#define FUSION_VECTOR_MEMBER_AT_IMPL(z, n, _)                                   \
-    typename add_reference<T##n>::type                                          \
-        at_impl(mpl::int_<n>) { return this->m##n; }                            \
-    typename add_reference<typename add_const<T##n>::type>::type                \
-        at_impl(mpl::int_<n>) const { return this->m##n; }
-
-#define FUSION_VECTOR_MEMBER_ITER_DECL_VAR(z, n, _)                             \
-    typedef typename result_of::next<                                           \
-        BOOST_PP_CAT(I, BOOST_PP_DEC(n))>::type BOOST_PP_CAT(I, n);             \
-    BOOST_PP_CAT(I, n) BOOST_PP_CAT(i, n)                                       \
-        = fusion::next(BOOST_PP_CAT(i, BOOST_PP_DEC(n)));
-
-#endif
-
-#define N BOOST_PP_ITERATION()
-
-    template <BOOST_PP_ENUM_PARAMS(N, typename T)>
-    struct BOOST_PP_CAT(vector_data, N)
-    {
-        BOOST_PP_CAT(vector_data, N)()
-            : BOOST_PP_ENUM(N, FUSION_VECTOR_CTOR_DEFAULT_INIT, _) {}
-
-#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
-        template <BOOST_PP_ENUM_PARAMS(N, typename U)>
-        BOOST_PP_CAT(vector_data, N)(BOOST_PP_ENUM_BINARY_PARAMS(N, U, && _)
-          , typename boost::enable_if<is_convertible<U0, T0> >::type* /*dummy*/ = 0
-        )
-            : BOOST_PP_ENUM(N, FUSION_VECTOR_CTOR_ARG_FWD, _) {}
-#endif
-
-        BOOST_PP_CAT(vector_data, N)(
-            BOOST_PP_ENUM_BINARY_PARAMS(
-                N, typename detail::call_param<T, >::type _))
-            : BOOST_PP_ENUM(N, FUSION_VECTOR_CTOR_INIT, _) {}
-
-        BOOST_PP_CAT(vector_data, N)(
-            BOOST_PP_CAT(vector_data, N) const& other)
-            : BOOST_PP_ENUM(N, FUSION_VECTOR_MEMBER_CTOR_INIT, _) {}
-
-#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
-        BOOST_PP_CAT(vector_data, N)(
-            BOOST_PP_CAT(vector_data, N)&& other)
-            : BOOST_PP_ENUM(N, FUSION_VECTOR_CTOR_FORWARD, _) {}
-#endif
-
-        BOOST_PP_CAT(vector_data, N)&
-        operator=(BOOST_PP_CAT(vector_data, N) const& vec)
-        {
-            BOOST_PP_REPEAT(N, FUSION_VECTOR_MEMBER_ASSIGN, _)
-            return *this;
-        }
-
-        template <typename Sequence>
-        static BOOST_PP_CAT(vector_data, N)
-        init_from_sequence(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            BOOST_PP_REPEAT_FROM_TO(1, N, FUSION_VECTOR_MEMBER_ITER_DECL_VAR, _)
-            return BOOST_PP_CAT(vector_data, N)(BOOST_PP_ENUM_PARAMS(N, *i));
-        }
-
-        template <typename Sequence>
-        static BOOST_PP_CAT(vector_data, N)
-        init_from_sequence(Sequence& seq)
-        {
-            typedef typename result_of::begin<Sequence>::type I0;
-            I0 i0 = fusion::begin(seq);
-            BOOST_PP_REPEAT_FROM_TO(1, N, FUSION_VECTOR_MEMBER_ITER_DECL_VAR, _)
-            return BOOST_PP_CAT(vector_data, N)(BOOST_PP_ENUM_PARAMS(N, *i));
-        }
-
-        BOOST_PP_REPEAT(N, FUSION_VECTOR_MEMBER_DECL, _)
-    };
-
-    template <BOOST_PP_ENUM_PARAMS(N, typename T)>
-    struct BOOST_PP_CAT(vector, N)
-      : BOOST_PP_CAT(vector_data, N)<BOOST_PP_ENUM_PARAMS(N, T)>
-      , sequence_base<BOOST_PP_CAT(vector, N)<BOOST_PP_ENUM_PARAMS(N, T)> >
-    {
-        typedef BOOST_PP_CAT(vector, N)<BOOST_PP_ENUM_PARAMS(N, T)> this_type;
-        typedef BOOST_PP_CAT(vector_data, N)<BOOST_PP_ENUM_PARAMS(N, T)> base_type;
-        typedef mpl::BOOST_PP_CAT(vector, N)<BOOST_PP_ENUM_PARAMS(N, T)> types;
-        typedef vector_tag fusion_tag;
-        typedef fusion_sequence_tag tag; // this gets picked up by MPL
-        typedef mpl::false_ is_view;
-        typedef random_access_traversal_tag category;
-        typedef mpl::int_<N> size;
-
-        BOOST_PP_CAT(vector, N)() {}
-
-#if (N == 1)
-        explicit
-#endif
-        BOOST_PP_CAT(vector, N)(
-            BOOST_PP_ENUM_BINARY_PARAMS(
-                N, typename detail::call_param<T, >::type _))
-            : base_type(BOOST_PP_ENUM_PARAMS(N, _)) {}
-
-#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
-    template <BOOST_PP_ENUM_PARAMS(N, typename U)>
-#if (N == 1)
-        explicit
-        BOOST_PP_CAT(vector, N)(U0&& _0
-          , typename boost::enable_if<is_convertible<U0, T0> >::type* /*dummy*/ = 0
-          )
-         : base_type(std::forward<U0>(_0)) {}
-#else
-        BOOST_PP_CAT(vector, N)(BOOST_PP_ENUM_BINARY_PARAMS(N, U, && _))
-            : base_type(BOOST_PP_ENUM(N, FUSION_VECTOR_MEMBER_FORWARD, _)) {}
-#endif
-
-        BOOST_PP_CAT(vector, N)(BOOST_PP_CAT(vector, N)&& rhs)
-            : base_type(std::forward<base_type>(rhs)) {}
-
-        BOOST_PP_CAT(vector, N)(BOOST_PP_CAT(vector, N) const& rhs)
-            : base_type(rhs) {}
-
-#endif
-
-        template <BOOST_PP_ENUM_PARAMS(N, typename U)>
-        BOOST_PP_CAT(vector, N)(
-            BOOST_PP_CAT(vector, N)<BOOST_PP_ENUM_PARAMS(N, U)> const& vec)
-            : base_type(BOOST_PP_ENUM_PARAMS(N, vec.m)) {}
-
-        template <typename Sequence>
-        BOOST_PP_CAT(vector, N)(
-            Sequence const& seq
-#if (N == 1)
-          , typename boost::disable_if<is_convertible<Sequence, T0> >::type* /*dummy*/ = 0
-#endif
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-
-        template <typename Sequence>
-        BOOST_PP_CAT(vector, N)(
-            Sequence& seq
-#if (N == 1)
-          , typename boost::disable_if<is_convertible<Sequence, T0> >::type* /*dummy*/ = 0
-#endif
-            )
-            : base_type(base_type::init_from_sequence(seq)) {}
-
-        template <BOOST_PP_ENUM_PARAMS(N, typename U)>
-        BOOST_PP_CAT(vector, N)&
-        operator=(BOOST_PP_CAT(vector, N)<BOOST_PP_ENUM_PARAMS(N, U)> const& vec)
-        {
-            BOOST_PP_REPEAT(N, FUSION_VECTOR_MEMBER_ASSIGN, _)
-            return *this;
-        }
-
-        template <typename Sequence>
-        typename boost::disable_if<is_convertible<Sequence, T0>, this_type&>::type
-        operator=(Sequence const& seq)
-        {
-            typedef typename result_of::begin<Sequence const>::type I0;
-            I0 i0 = fusion::begin(seq);
-            BOOST_PP_REPEAT_FROM_TO(1, N, FUSION_VECTOR_MEMBER_ITER_DECL_VAR, _)
-            BOOST_PP_REPEAT(N, FUSION_VECTOR_MEMBER_DEREF_ASSIGN, _)
-            return *this;
-        }
-
-#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
-        BOOST_PP_CAT(vector, N)&
-        operator=(BOOST_PP_CAT(vector, N) const& vec)
-        {
-            base_type::operator=(vec);
-            return *this;
-        }
-
-        BOOST_PP_CAT(vector, N)&
-        operator=(BOOST_PP_CAT(vector, N)&& vec)
-        {
-            BOOST_PP_REPEAT(N, FUSION_VECTOR_MEMBER_MOVE, _)
-            return *this;
-        }
-#endif
-
-        BOOST_PP_REPEAT(N, FUSION_VECTOR_MEMBER_AT_IMPL, _)
-
-        template<typename I>
-        typename add_reference<typename mpl::at<types, I>::type>::type
-        at_impl(I)
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-
-        template<typename I>
-        typename add_reference<typename add_const<typename mpl::at<types, I>::type>::type>::type
-        at_impl(I) const
-        {
-            return this->at_impl(mpl::int_<I::value>());
-        }
-    };
-
-#undef N
-
-
diff --git a/boost/fusion/container/vector/detail/vector_n_chooser.hpp b/boost/fusion/container/vector/detail/vector_n_chooser.hpp
deleted file mode 100644
index b0e69af..0000000
--- a/boost/fusion/container/vector/detail/vector_n_chooser.hpp
+++ /dev/null
@@ -1,107 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#ifndef BOOST_PP_IS_ITERATING
-#if !defined(FUSION_VECTOR_N_CHOOSER_07072005_1248)
-#define FUSION_VECTOR_N_CHOOSER_07072005_1248
-
-#include <boost/fusion/container/vector/limits.hpp>
-
-//  include vector0..N where N is FUSION_MAX_VECTOR_SIZE
-#include <boost/fusion/container/vector/vector10.hpp>
-#if (FUSION_MAX_VECTOR_SIZE > 10)
-#include <boost/fusion/container/vector/vector20.hpp>
-#endif
-#if (FUSION_MAX_VECTOR_SIZE > 20)
-#include <boost/fusion/container/vector/vector30.hpp>
-#endif
-#if (FUSION_MAX_VECTOR_SIZE > 30)
-#include <boost/fusion/container/vector/vector40.hpp>
-#endif
-#if (FUSION_MAX_VECTOR_SIZE > 40)
-#include <boost/fusion/container/vector/vector50.hpp>
-#endif
-
-#include <boost/preprocessor/cat.hpp>
-#include <boost/preprocessor/arithmetic/dec.hpp>
-#include <boost/preprocessor/arithmetic/sub.hpp>
-#include <boost/preprocessor/facilities/intercept.hpp>
-#include <boost/preprocessor/repetition/enum_params.hpp>
-#include <boost/preprocessor/repetition/enum_trailing_params.hpp>
-
-namespace boost { namespace fusion
-{
-    struct void_;
-}}
-
-#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
-#include <boost/fusion/container/vector/detail/preprocessed/vector_chooser.hpp>
-#else
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(preserve: 2, line: 0, output: "preprocessed/vector_chooser" FUSION_MAX_VECTOR_SIZE_STR ".hpp")
-#endif
-
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(preserve: 1)
-#endif
-
-namespace boost { namespace fusion { namespace detail
-{
-    template <BOOST_PP_ENUM_PARAMS(FUSION_MAX_VECTOR_SIZE, typename T)>
-    struct vector_n_chooser
-    {
-        typedef BOOST_PP_CAT(vector, FUSION_MAX_VECTOR_SIZE)<BOOST_PP_ENUM_PARAMS(FUSION_MAX_VECTOR_SIZE, T)> type;
-    };
-
-    template <>
-    struct vector_n_chooser<BOOST_PP_ENUM_PARAMS(FUSION_MAX_VECTOR_SIZE, void_ BOOST_PP_INTERCEPT)>
-    {
-        typedef vector0<> type;
-    };
-
-#define BOOST_PP_FILENAME_1 \
-    <boost/fusion/container/vector/detail/vector_n_chooser.hpp>
-#define BOOST_PP_ITERATION_LIMITS (1, BOOST_PP_DEC(FUSION_MAX_VECTOR_SIZE))
-#include BOOST_PP_ITERATE()
-
-}}}
-
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(output: null)
-#endif
-
-#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
-
-#endif
-
-///////////////////////////////////////////////////////////////////////////////
-//
-//  Preprocessor vertical repetition code
-//
-///////////////////////////////////////////////////////////////////////////////
-#else // defined(BOOST_PP_IS_ITERATING)
-
-#define N BOOST_PP_ITERATION()
-
-    template <BOOST_PP_ENUM_PARAMS(N, typename T)>
-    struct vector_n_chooser<
-        BOOST_PP_ENUM_PARAMS(N, T)
-        BOOST_PP_ENUM_TRAILING_PARAMS(BOOST_PP_SUB(FUSION_MAX_VECTOR_SIZE, N), void_ BOOST_PP_INTERCEPT)>
-    {
-        typedef BOOST_PP_CAT(vector, N)<BOOST_PP_ENUM_PARAMS(N, T)> type;
-    };
-
-#undef N
-#endif // defined(BOOST_PP_IS_ITERATING)
diff --git a/boost/fusion/container/vector/limits.hpp b/boost/fusion/container/vector/limits.hpp
deleted file mode 100644
index e1b6042..0000000
--- a/boost/fusion/container/vector/limits.hpp
+++ /dev/null
@@ -1,23 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_VECTOR_LIMITS_07072005_1246)
-#define FUSION_VECTOR_LIMITS_07072005_1246
-
-#include <boost/fusion/support/detail/pp_round.hpp>
-
-#if !defined(FUSION_MAX_VECTOR_SIZE)
-# define FUSION_MAX_VECTOR_SIZE 10
-#else
-# if FUSION_MAX_VECTOR_SIZE < 3
-#   undef FUSION_MAX_VECTOR_SIZE
-#   define FUSION_MAX_VECTOR_SIZE 10
-# endif
-#endif
-
-#define FUSION_MAX_VECTOR_SIZE_STR BOOST_PP_STRINGIZE(BOOST_FUSION_PP_ROUND_UP(FUSION_MAX_VECTOR_SIZE))
-
-#endif
diff --git a/boost/fusion/container/vector/vector.hpp b/boost/fusion/container/vector/vector.hpp
deleted file mode 100644
index 94a9c71..0000000
--- a/boost/fusion/container/vector/vector.hpp
+++ /dev/null
@@ -1,220 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_VECTOR_07072005_1244)
-#define FUSION_VECTOR_07072005_1244
-
-#include <boost/fusion/container/vector/vector_fwd.hpp>
-#include <boost/fusion/container/vector/detail/vector_n_chooser.hpp>
-#include <boost/fusion/sequence/intrinsic/begin.hpp>
-#include <boost/mpl/at.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/type_traits/add_reference.hpp>
-#include <boost/type_traits/add_const.hpp>
-#include <boost/type_traits/is_base_of.hpp>
-#include <boost/detail/workaround.hpp>
-
-#if !defined(__WAVE__)
-
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1600)
-
-#define BOOST_FUSION_VECTOR_COPY_INIT()                                       \
-    ctor_helper(rhs, is_base_of<vector, Sequence>())                          \
-
-#define BOOST_FUSION_VECTOR_CTOR_HELPER()                                     \
-    static vector_n const&                                                    \
-    ctor_helper(vector const& rhs, mpl::true_)                                \
-    {                                                                         \
-        return rhs.vec;                                                       \
-    }                                                                         \
-                                                                              \
-    template <typename T>                                                     \
-    static T const&                                                           \
-    ctor_helper(T const& rhs, mpl::false_)                                    \
-    {                                                                         \
-        return rhs;                                                           \
-    }
-
-#else
-
-#define BOOST_FUSION_VECTOR_COPY_INIT()                                       \
-    rhs                                                                       \
-
-#define BOOST_FUSION_VECTOR_CTOR_HELPER()
-
-#endif
-
-#endif // !defined(__WAVE__)
-
-#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
-#include <boost/fusion/container/vector/detail/preprocessed/vector.hpp>
-#else
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(preserve: 2, line: 0, output: "detail/preprocessed/vvector" FUSION_MAX_VECTOR_SIZE_STR ".hpp")
-#endif
-
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(preserve: 1)
-#endif
-
-namespace boost { namespace fusion
-{
-    struct void_;
-    struct fusion_sequence_tag;
-
-    template <BOOST_PP_ENUM_PARAMS(FUSION_MAX_VECTOR_SIZE, typename T)>
-    struct vector
-        : sequence_base<vector<BOOST_PP_ENUM_PARAMS(FUSION_MAX_VECTOR_SIZE, T)> >
-    {
-    private:
-
-        typedef typename detail::vector_n_chooser<
-            BOOST_PP_ENUM_PARAMS(FUSION_MAX_VECTOR_SIZE, T)>::type
-        vector_n;
-
-        template <BOOST_PP_ENUM_PARAMS(FUSION_MAX_VECTOR_SIZE, typename U)>
-        friend struct vector;
-
-    public:
-
-        typedef typename vector_n::types types;
-        typedef typename vector_n::fusion_tag fusion_tag;
-        typedef typename vector_n::tag tag;
-        typedef typename vector_n::size size;
-        typedef typename vector_n::category category;
-        typedef typename vector_n::is_view is_view;
-
-        vector()
-            : vec() {}
-
-        template <BOOST_PP_ENUM_PARAMS(FUSION_MAX_VECTOR_SIZE, typename U)>
-        vector(vector<BOOST_PP_ENUM_PARAMS(FUSION_MAX_VECTOR_SIZE, U)> const& rhs)
-            : vec(rhs.vec) {}
-
-        vector(vector const& rhs)
-            : vec(rhs.vec) {}
-
-#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
-        vector(vector&& rhs)
-            : vec(std::forward<vector_n>(rhs.vec)) {}
-#endif
-
-        template <typename Sequence>
-        vector(Sequence const& rhs)
-            : vec(BOOST_FUSION_VECTOR_COPY_INIT()) {}
-
-        //  Expand a couple of forwarding constructors for arguments
-        //  of type (T0), (T0, T1), (T0, T1, T2) etc. Example:
-        //
-        //  vector(
-        //      typename detail::call_param<T0>::type _0
-        //    , typename detail::call_param<T1>::type _1)
-        //    : vec(_0, _1) {}
-        #include <boost/fusion/container/vector/detail/vector_forward_ctor.hpp>
-
-        template <BOOST_PP_ENUM_PARAMS(FUSION_MAX_VECTOR_SIZE, typename U)>
-        vector&
-        operator=(vector<BOOST_PP_ENUM_PARAMS(FUSION_MAX_VECTOR_SIZE, U)> const& rhs)
-        {
-            vec = rhs.vec;
-            return *this;
-        }
-
-        template <typename T>
-        vector&
-        operator=(T const& rhs)
-        {
-            vec = rhs;
-            return *this;
-        }
-
-        vector&
-        operator=(vector const& rhs)
-        {
-            vec = rhs.vec;
-            return *this;
-        }
-
-#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
-        vector&
-        operator=(vector&& rhs)
-        {
-            vec = std::forward<vector_n>(rhs.vec);
-            return *this;
-        }
-
-        template <typename T>
-        vector&
-        operator=(T&& rhs)
-        {
-            vec = std::forward<T>(rhs);
-            return *this;
-        }
-#endif
-
-        template <int N>
-        typename add_reference<
-            typename mpl::at_c<types, N>::type
-        >::type
-        at_impl(mpl::int_<N> index)
-        {
-            return vec.at_impl(index);
-        }
-
-        template <int N>
-        typename add_reference<
-            typename add_const<
-                typename mpl::at_c<types, N>::type
-            >::type
-        >::type
-        at_impl(mpl::int_<N> index) const
-        {
-            return vec.at_impl(index);
-        }
-
-        template <typename I>
-        typename add_reference<
-            typename mpl::at<types, I>::type
-        >::type
-        at_impl(I /*index*/)
-        {
-            return vec.at_impl(mpl::int_<I::value>());
-        }
-
-        template<typename I>
-        typename add_reference<
-            typename add_const<
-                typename mpl::at<types, I>::type
-            >::type
-        >::type
-        at_impl(I /*index*/) const
-        {
-            return vec.at_impl(mpl::int_<I::value>());
-        }
-
-    private:
-
-        BOOST_FUSION_VECTOR_CTOR_HELPER()
-        vector_n vec;
-    };
-}}
-
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(output: null)
-#endif
-
-#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
-
-#endif
diff --git a/boost/fusion/container/vector/vector10.hpp b/boost/fusion/container/vector/vector10.hpp
deleted file mode 100644
index bcafe59..0000000
--- a/boost/fusion/container/vector/vector10.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_VECTOR10_05042005_0257)
-#define FUSION_VECTOR10_05042005_0257
-
-#include <boost/fusion/container/vector/vector10_fwd.hpp>
-#include <boost/fusion/support/sequence_base.hpp>
-#include <boost/fusion/support/detail/access.hpp>
-#include <boost/fusion/iterator/next.hpp>
-#include <boost/fusion/iterator/deref.hpp>
-#include <boost/fusion/sequence/intrinsic/begin.hpp>
-#include <boost/fusion/container/vector/detail/at_impl.hpp>
-#include <boost/fusion/container/vector/detail/value_at_impl.hpp>
-#include <boost/fusion/container/vector/detail/begin_impl.hpp>
-#include <boost/fusion/container/vector/detail/end_impl.hpp>
-
-#include <boost/mpl/void.hpp>
-#include <boost/mpl/int.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/at.hpp>
-#include <boost/mpl/vector/vector10.hpp>
-#include <boost/type_traits/is_convertible.hpp>
-#include <boost/utility/enable_if.hpp>
-
-#include <boost/preprocessor/dec.hpp>
-#include <boost/preprocessor/iteration/iterate.hpp>
-#include <boost/preprocessor/repetition/enum.hpp>
-#include <boost/preprocessor/repetition/enum_shifted.hpp>
-#include <boost/preprocessor/repetition/enum_params.hpp>
-#include <boost/preprocessor/repetition/enum_binary_params.hpp>
-#include <boost/preprocessor/repetition/repeat_from_to.hpp>
-
-namespace boost { namespace fusion
-{
-    struct vector_tag;
-    struct fusion_sequence_tag;
-    struct random_access_traversal_tag;
-
-    template <typename Dummy>
-    struct vector0 : sequence_base<vector0<Dummy> >
-    {
-        typedef mpl::vector0<> types;
-        typedef vector_tag fusion_tag;
-        typedef fusion_sequence_tag tag; // this gets picked up by MPL
-        typedef mpl::false_ is_view;
-        typedef random_access_traversal_tag category;
-        typedef mpl::int_<0> size;
-
-        vector0() {}
-
-        template<typename Sequence>
-        vector0(Sequence const& /*seq*/)
-        {}
-    };
-}}
-
-#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
-#include <boost/fusion/container/vector/detail/preprocessed/vector10.hpp>
-#else
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(preserve: 2, line: 0, output: "detail/preprocessed/vector10.hpp")
-#endif
-
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(preserve: 1)
-#endif
-
-namespace boost { namespace fusion
-{
-
-// expand vector1 to vector10
-#define BOOST_PP_FILENAME_1 <boost/fusion/container/vector/detail/vector_n.hpp>
-#define BOOST_PP_ITERATION_LIMITS (1, 10)
-#include BOOST_PP_ITERATE()
-
-}}
-
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(output: null)
-#endif
-
-#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
-
-#endif
diff --git a/boost/fusion/container/vector/vector10_fwd.hpp b/boost/fusion/container/vector/vector10_fwd.hpp
deleted file mode 100644
index 5f8c218..0000000
--- a/boost/fusion/container/vector/vector10_fwd.hpp
+++ /dev/null
@@ -1,63 +0,0 @@
-#ifndef BOOST_PP_IS_ITERATING
-/*=============================================================================
-    Copyright (c) 2011 Eric Niebler
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(BOOST_FUSION_VECTOR10_FWD_HPP_INCLUDED)
-#define BOOST_FUSION_VECTOR10_FWD_HPP_INCLUDED
-
-#include <boost/preprocessor/cat.hpp>
-#include <boost/preprocessor/iteration/iterate.hpp>
-#include <boost/preprocessor/repetition/enum_params.hpp>
-
-namespace boost { namespace fusion
-{
-    template <typename Dummy = void>
-    struct vector0;
-}}
-
-#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
-#include <boost/fusion/container/vector/detail/preprocessed/vector10_fwd.hpp>
-#else
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(preserve: 2, line: 0, output: "detail/preprocessed/vector10_fwd.hpp")
-#endif
-
-/*=============================================================================
-    Copyright (c) 2011 Eric Niebler
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(preserve: 1)
-#endif
-
-namespace boost { namespace fusion
-{
-    // expand vector1 to vector10
-    #define BOOST_PP_FILENAME_1 <boost/fusion/container/vector/vector10_fwd.hpp>
-    #define BOOST_PP_ITERATION_LIMITS (1, 10)
-    #include BOOST_PP_ITERATE()
-}}
-
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(output: null)
-#endif
-
-#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
-
-#endif
-
-#else
-
-    template <BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(), typename T)>
-    struct BOOST_PP_CAT(vector, BOOST_PP_ITERATION());
-
-#endif
diff --git a/boost/fusion/container/vector/vector20.hpp b/boost/fusion/container/vector/vector20.hpp
deleted file mode 100644
index d688a0d..0000000
--- a/boost/fusion/container/vector/vector20.hpp
+++ /dev/null
@@ -1,78 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_VECTOR20_05052005_0205)
-#define FUSION_VECTOR20_05052005_0205
-
-#include <boost/fusion/container/vector/vector20_fwd.hpp>
-#include <boost/fusion/support/sequence_base.hpp>
-#include <boost/fusion/support/detail/access.hpp>
-#include <boost/fusion/iterator/next.hpp>
-#include <boost/fusion/iterator/deref.hpp>
-#include <boost/fusion/sequence/intrinsic/begin.hpp>
-#include <boost/fusion/container/vector/detail/at_impl.hpp>
-#include <boost/fusion/container/vector/detail/value_at_impl.hpp>
-#include <boost/fusion/container/vector/detail/begin_impl.hpp>
-#include <boost/fusion/container/vector/detail/end_impl.hpp>
-
-#include <boost/mpl/void.hpp>
-#include <boost/mpl/int.hpp>
-#include <boost/mpl/at.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/vector/vector20.hpp>
-#include <boost/type_traits/is_convertible.hpp>
-#include <boost/utility/enable_if.hpp>
-
-#include <boost/preprocessor/dec.hpp>
-#include <boost/preprocessor/iteration/iterate.hpp>
-#include <boost/preprocessor/repetition/enum.hpp>
-#include <boost/preprocessor/repetition/enum_shifted.hpp>
-#include <boost/preprocessor/repetition/enum_params.hpp>
-#include <boost/preprocessor/repetition/enum_binary_params.hpp>
-#include <boost/preprocessor/repetition/repeat_from_to.hpp>
-
-#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
-#include <boost/fusion/container/vector/detail/preprocessed/vector20.hpp>
-#else
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(preserve: 2, line: 0, output: "detail/preprocessed/vector20.hpp")
-#endif
-
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(preserve: 1)
-#endif
-
-namespace boost { namespace fusion
-{
-    struct vector_tag;
-    struct fusion_sequence_tag;
-    struct random_access_traversal_tag;
-
-// expand vector11 to vector20
-#define BOOST_PP_FILENAME_1 <boost/fusion/container/vector/detail/vector_n.hpp>
-#define BOOST_PP_ITERATION_LIMITS (11, 20)
-#include BOOST_PP_ITERATE()
-
-}}
-
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(output: null)
-#endif
-
-#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
-
-#endif
-
diff --git a/boost/fusion/container/vector/vector20_fwd.hpp b/boost/fusion/container/vector/vector20_fwd.hpp
deleted file mode 100644
index 4102888..0000000
--- a/boost/fusion/container/vector/vector20_fwd.hpp
+++ /dev/null
@@ -1,58 +0,0 @@
-#ifndef BOOST_PP_IS_ITERATING
-/*=============================================================================
-    Copyright (c) 2011 Eric Niebler
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(BOOST_FUSION_VECTOR20_FWD_HPP_INCLUDED)
-#define BOOST_FUSION_VECTOR20_FWD_HPP_INCLUDED
-
-#include <boost/preprocessor/cat.hpp>
-#include <boost/preprocessor/iteration/iterate.hpp>
-#include <boost/preprocessor/repetition/enum_params.hpp>
-
-#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
-#include <boost/fusion/container/vector/detail/preprocessed/vector20_fwd.hpp>
-#else
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(preserve: 2, line: 0, output: "detail/preprocessed/vector20_fwd.hpp")
-#endif
-
-/*=============================================================================
-    Copyright (c) 2011 Eric Niebler
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(preserve: 1)
-#endif
-
-namespace boost { namespace fusion
-{
-    // expand vector11 to vector20
-    #define BOOST_PP_FILENAME_1 <boost/fusion/container/vector/vector20_fwd.hpp>
-    #define BOOST_PP_ITERATION_LIMITS (11, 20)
-    #include BOOST_PP_ITERATE()
-}}
-
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(output: null)
-#endif
-
-#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
-
-#endif
-
-#else
-
-    template <BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(), typename T)>
-    struct BOOST_PP_CAT(vector, BOOST_PP_ITERATION());
-
-#endif
diff --git a/boost/fusion/container/vector/vector30.hpp b/boost/fusion/container/vector/vector30.hpp
deleted file mode 100644
index 4080005..0000000
--- a/boost/fusion/container/vector/vector30.hpp
+++ /dev/null
@@ -1,77 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_VECTOR30_05052005_0206)
-#define FUSION_VECTOR30_05052005_0206
-
-#include <boost/fusion/container/vector/vector30_fwd.hpp>
-#include <boost/fusion/support/sequence_base.hpp>
-#include <boost/fusion/support/detail/access.hpp>
-#include <boost/fusion/iterator/next.hpp>
-#include <boost/fusion/iterator/deref.hpp>
-#include <boost/fusion/sequence/intrinsic/begin.hpp>
-#include <boost/fusion/container/vector/detail/at_impl.hpp>
-#include <boost/fusion/container/vector/detail/value_at_impl.hpp>
-#include <boost/fusion/container/vector/detail/begin_impl.hpp>
-#include <boost/fusion/container/vector/detail/end_impl.hpp>
-
-#include <boost/mpl/void.hpp>
-#include <boost/mpl/int.hpp>
-#include <boost/mpl/at.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/vector/vector30.hpp>
-#include <boost/type_traits/is_convertible.hpp>
-#include <boost/utility/enable_if.hpp>
-
-#include <boost/preprocessor/dec.hpp>
-#include <boost/preprocessor/iteration/iterate.hpp>
-#include <boost/preprocessor/repetition/enum.hpp>
-#include <boost/preprocessor/repetition/enum_shifted.hpp>
-#include <boost/preprocessor/repetition/enum_params.hpp>
-#include <boost/preprocessor/repetition/enum_binary_params.hpp>
-#include <boost/preprocessor/repetition/repeat_from_to.hpp>
-
-#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
-#include <boost/fusion/container/vector/detail/preprocessed/vector30.hpp>
-#else
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(preserve: 2, line: 0, output: "detail/preprocessed/vector30.hpp")
-#endif
-
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(preserve: 1)
-#endif
-
-namespace boost { namespace fusion
-{
-    struct vector_tag;
-    struct fusion_sequence_tag;
-    struct random_access_traversal_tag;
-
-// expand vector21 to vector30
-#define BOOST_PP_FILENAME_1 <boost/fusion/container/vector/detail/vector_n.hpp>
-#define BOOST_PP_ITERATION_LIMITS (21, 30)
-#include BOOST_PP_ITERATE()
-
-}}
-
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(output: null)
-#endif
-
-#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
-
-#endif
-
diff --git a/boost/fusion/container/vector/vector30_fwd.hpp b/boost/fusion/container/vector/vector30_fwd.hpp
deleted file mode 100644
index 9b60644..0000000
--- a/boost/fusion/container/vector/vector30_fwd.hpp
+++ /dev/null
@@ -1,58 +0,0 @@
-#ifndef BOOST_PP_IS_ITERATING
-/*=============================================================================
-    Copyright (c) 2011 Eric Niebler
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(BOOST_FUSION_VECTOR30_FWD_HPP_INCLUDED)
-#define BOOST_FUSION_VECTOR30_FWD_HPP_INCLUDED
-
-#include <boost/preprocessor/cat.hpp>
-#include <boost/preprocessor/iteration/iterate.hpp>
-#include <boost/preprocessor/repetition/enum_params.hpp>
-
-#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
-#include <boost/fusion/container/vector/detail/preprocessed/vector30_fwd.hpp>
-#else
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(preserve: 2, line: 0, output: "detail/preprocessed/vector30_fwd.hpp")
-#endif
-
-/*=============================================================================
-    Copyright (c) 2011 Eric Niebler
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(preserve: 1)
-#endif
-
-namespace boost { namespace fusion
-{
-    // expand vector21 to vector30
-    #define BOOST_PP_FILENAME_1 <boost/fusion/container/vector/vector30_fwd.hpp>
-    #define BOOST_PP_ITERATION_LIMITS (21, 30)
-    #include BOOST_PP_ITERATE()
-}}
-
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(output: null)
-#endif
-
-#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
-
-#endif
-
-#else
-
-    template <BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(), typename T)>
-    struct BOOST_PP_CAT(vector, BOOST_PP_ITERATION());
-
-#endif
diff --git a/boost/fusion/container/vector/vector40.hpp b/boost/fusion/container/vector/vector40.hpp
deleted file mode 100644
index 3350bad..0000000
--- a/boost/fusion/container/vector/vector40.hpp
+++ /dev/null
@@ -1,78 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_VECTOR40_05052005_0208)
-#define FUSION_VECTOR40_05052005_0208
-
-#include <boost/fusion/container/vector/vector40_fwd.hpp>
-#include <boost/fusion/support/sequence_base.hpp>
-#include <boost/fusion/support/detail/access.hpp>
-#include <boost/fusion/iterator/next.hpp>
-#include <boost/fusion/iterator/deref.hpp>
-#include <boost/fusion/sequence/intrinsic/begin.hpp>
-#include <boost/fusion/container/vector/detail/at_impl.hpp>
-#include <boost/fusion/container/vector/detail/value_at_impl.hpp>
-#include <boost/fusion/container/vector/detail/begin_impl.hpp>
-#include <boost/fusion/container/vector/detail/end_impl.hpp>
-
-#include <boost/mpl/void.hpp>
-#include <boost/mpl/int.hpp>
-#include <boost/mpl/at.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/vector/vector40.hpp>
-#include <boost/type_traits/is_convertible.hpp>
-#include <boost/utility/enable_if.hpp>
-
-#include <boost/preprocessor/dec.hpp>
-#include <boost/preprocessor/iteration/iterate.hpp>
-#include <boost/preprocessor/repetition/enum.hpp>
-#include <boost/preprocessor/repetition/enum_shifted.hpp>
-#include <boost/preprocessor/repetition/enum_params.hpp>
-#include <boost/preprocessor/repetition/enum_binary_params.hpp>
-#include <boost/preprocessor/repetition/repeat_from_to.hpp>
-
-#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
-#include <boost/fusion/container/vector/detail/preprocessed/vector40.hpp>
-#else
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(preserve: 2, line: 0, output: "detail/preprocessed/vector40.hpp")
-#endif
-
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(preserve: 1)
-#endif
-
-namespace boost { namespace fusion
-{
-    struct vector_tag;
-    struct fusion_sequence_tag;
-    struct random_access_traversal_tag;
-
-// expand vector31 to vector40
-#define BOOST_PP_FILENAME_1 <boost/fusion/container/vector/detail/vector_n.hpp>
-#define BOOST_PP_ITERATION_LIMITS (31, 40)
-#include BOOST_PP_ITERATE()
-
-}}
-
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(output: null)
-#endif
-
-#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
-
-#endif
-
diff --git a/boost/fusion/container/vector/vector40_fwd.hpp b/boost/fusion/container/vector/vector40_fwd.hpp
deleted file mode 100644
index 05342d1..0000000
--- a/boost/fusion/container/vector/vector40_fwd.hpp
+++ /dev/null
@@ -1,58 +0,0 @@
-#ifndef BOOST_PP_IS_ITERATING
-/*=============================================================================
-    Copyright (c) 2011 Eric Niebler
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(BOOST_FUSION_VECTOR40_FWD_HPP_INCLUDED)
-#define BOOST_FUSION_VECTOR40_FWD_HPP_INCLUDED
-
-#include <boost/preprocessor/cat.hpp>
-#include <boost/preprocessor/iteration/iterate.hpp>
-#include <boost/preprocessor/repetition/enum_params.hpp>
-
-#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
-#include <boost/fusion/container/vector/detail/preprocessed/vector40_fwd.hpp>
-#else
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(preserve: 2, line: 0, output: "detail/preprocessed/vector40_fwd.hpp")
-#endif
-
-/*=============================================================================
-    Copyright (c) 2011 Eric Niebler
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(preserve: 1)
-#endif
-
-namespace boost { namespace fusion
-{
-    // expand vector31 to vector40
-    #define BOOST_PP_FILENAME_1 <boost/fusion/container/vector/vector40_fwd.hpp>
-    #define BOOST_PP_ITERATION_LIMITS (31, 40)
-    #include BOOST_PP_ITERATE()
-}}
-
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(output: null)
-#endif
-
-#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
-
-#endif
-
-#else
-
-    template <BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(), typename T)>
-    struct BOOST_PP_CAT(vector, BOOST_PP_ITERATION());
-
-#endif
diff --git a/boost/fusion/container/vector/vector50.hpp b/boost/fusion/container/vector/vector50.hpp
deleted file mode 100644
index ec28828..0000000
--- a/boost/fusion/container/vector/vector50.hpp
+++ /dev/null
@@ -1,77 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_VECTOR50_05052005_0207)
-#define FUSION_VECTOR50_05052005_0207
-
-#include <boost/fusion/container/vector/vector50_fwd.hpp>
-#include <boost/fusion/support/sequence_base.hpp>
-#include <boost/fusion/support/detail/access.hpp>
-#include <boost/fusion/iterator/next.hpp>
-#include <boost/fusion/iterator/deref.hpp>
-#include <boost/fusion/sequence/intrinsic/begin.hpp>
-#include <boost/fusion/container/vector/detail/at_impl.hpp>
-#include <boost/fusion/container/vector/detail/value_at_impl.hpp>
-#include <boost/fusion/container/vector/detail/begin_impl.hpp>
-#include <boost/fusion/container/vector/detail/end_impl.hpp>
-
-#include <boost/mpl/void.hpp>
-#include <boost/mpl/int.hpp>
-#include <boost/mpl/at.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/vector/vector50.hpp>
-#include <boost/type_traits/is_convertible.hpp>
-#include <boost/utility/enable_if.hpp>
-
-#include <boost/preprocessor/dec.hpp>
-#include <boost/preprocessor/iteration/iterate.hpp>
-#include <boost/preprocessor/repetition/enum.hpp>
-#include <boost/preprocessor/repetition/enum_shifted.hpp>
-#include <boost/preprocessor/repetition/enum_params.hpp>
-#include <boost/preprocessor/repetition/enum_binary_params.hpp>
-#include <boost/preprocessor/repetition/repeat_from_to.hpp>
-
-#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
-#include <boost/fusion/container/vector/detail/preprocessed/vector50.hpp>
-#else
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(preserve: 2, line: 0, output: "detail/preprocessed/vector50.hpp")
-#endif
-
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(preserve: 1)
-#endif
-
-namespace boost { namespace fusion
-{
-    struct vector_tag;
-    struct fusion_sequence_tag;
-    struct random_access_traversal_tag;
-
-// expand vector41 to vector50
-#define BOOST_PP_FILENAME_1 <boost/fusion/container/vector/detail/vector_n.hpp>
-#define BOOST_PP_ITERATION_LIMITS (41, 50)
-#include BOOST_PP_ITERATE()
-
-}}
-
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(output: null)
-#endif
-
-#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
-
-#endif
-
diff --git a/boost/fusion/container/vector/vector50_fwd.hpp b/boost/fusion/container/vector/vector50_fwd.hpp
deleted file mode 100644
index 03b3b2f..0000000
--- a/boost/fusion/container/vector/vector50_fwd.hpp
+++ /dev/null
@@ -1,58 +0,0 @@
-#ifndef BOOST_PP_IS_ITERATING
-/*=============================================================================
-    Copyright (c) 2011 Eric Niebler
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(BOOST_FUSION_VECTOR50_FWD_HPP_INCLUDED)
-#define BOOST_FUSION_VECTOR50_FWD_HPP_INCLUDED
-
-#include <boost/preprocessor/cat.hpp>
-#include <boost/preprocessor/iteration/iterate.hpp>
-#include <boost/preprocessor/repetition/enum_params.hpp>
-
-#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
-#include <boost/fusion/container/vector/detail/preprocessed/vector50_fwd.hpp>
-#else
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(preserve: 2, line: 0, output: "detail/preprocessed/vector50_fwd.hpp")
-#endif
-
-/*=============================================================================
-    Copyright (c) 2011 Eric Niebler
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(preserve: 1)
-#endif
-
-namespace boost { namespace fusion
-{
-    // expand vector41 to vector50
-    #define BOOST_PP_FILENAME_1 <boost/fusion/container/vector/vector50_fwd.hpp>
-    #define BOOST_PP_ITERATION_LIMITS (41, 50)
-    #include BOOST_PP_ITERATE()
-}}
-
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(output: null)
-#endif
-
-#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
-
-#endif
-
-#else
-
-    template <BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(), typename T)>
-    struct BOOST_PP_CAT(vector, BOOST_PP_ITERATION());
-
-#endif
diff --git a/boost/fusion/container/vector/vector_fwd.hpp b/boost/fusion/container/vector/vector_fwd.hpp
deleted file mode 100644
index 194736a..0000000
--- a/boost/fusion/container/vector/vector_fwd.hpp
+++ /dev/null
@@ -1,65 +0,0 @@
-/*=============================================================================
-    Copyright (c) 1999-2003 Jaakko Jarvi
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_VECTOR_FORWARD_07072005_0125)
-#define FUSION_VECTOR_FORWARD_07072005_0125
-
-#include <boost/fusion/container/vector/limits.hpp>
-#include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
-
-#include <boost/fusion/container/vector/vector10.hpp>
-#if (FUSION_MAX_VECTOR_SIZE > 10)
-#include <boost/fusion/container/vector/vector20.hpp>
-#endif
-#if (FUSION_MAX_VECTOR_SIZE > 20)
-#include <boost/fusion/container/vector/vector30.hpp>
-#endif
-#if (FUSION_MAX_VECTOR_SIZE > 30)
-#include <boost/fusion/container/vector/vector40.hpp>
-#endif
-#if (FUSION_MAX_VECTOR_SIZE > 40)
-#include <boost/fusion/container/vector/vector50.hpp>
-#endif
-
-#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
-#include <boost/fusion/container/vector/detail/preprocessed/vector_fwd.hpp>
-#else
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(preserve: 2, line: 0, output: "detail/preprocessed/vvector" FUSION_MAX_VECTOR_SIZE_STR "_fwd.hpp")
-#endif
-
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(preserve: 1)
-#endif
-
-namespace boost { namespace fusion
-{
-    struct void_;
-
-    template <
-        BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(
-            FUSION_MAX_VECTOR_SIZE, typename T, void_)
-    >
-    struct vector;
-}}
-
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(output: null)
-#endif
-
-#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
-
-#endif
diff --git a/boost/fusion/container/vector/vector_iterator.hpp b/boost/fusion/container/vector/vector_iterator.hpp
deleted file mode 100644
index 66e9ebe..0000000
--- a/boost/fusion/container/vector/vector_iterator.hpp
+++ /dev/null
@@ -1,50 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_VECTOR_ITERATOR_05042005_0635)
-#define FUSION_VECTOR_ITERATOR_05042005_0635
-
-#include <boost/fusion/support/iterator_base.hpp>
-#include <boost/fusion/container/vector/detail/deref_impl.hpp>
-#include <boost/fusion/container/vector/detail/value_of_impl.hpp>
-#include <boost/fusion/container/vector/detail/next_impl.hpp>
-#include <boost/fusion/container/vector/detail/prior_impl.hpp>
-#include <boost/fusion/container/vector/detail/equal_to_impl.hpp>
-#include <boost/fusion/container/vector/detail/distance_impl.hpp>
-#include <boost/fusion/container/vector/detail/advance_impl.hpp>
-#include <boost/type_traits/add_const.hpp>
-#include <boost/mpl/int.hpp>
-
-namespace boost { namespace fusion
-{
-    struct vector_iterator_tag;
-    struct random_access_traversal_tag;
-
-    template <typename Vector, int N>
-    struct vector_iterator_identity;
-
-    template <typename Vector, int N>
-    struct vector_iterator : iterator_base<vector_iterator<Vector, N> >
-    {
-        typedef mpl::int_<N> index;
-        typedef Vector vector;
-        typedef vector_iterator_tag fusion_tag;
-        typedef random_access_traversal_tag category;
-        typedef vector_iterator_identity<
-            typename add_const<Vector>::type, N> identity;
-
-        vector_iterator(Vector& in_vec)
-            : vec(in_vec) {}
-        Vector& vec;
-
-    private:
-        // silence MSVC warning C4512: assignment operator could not be generated
-        vector_iterator& operator= (vector_iterator const&);
-    };
-}}
-
-#endif
-
diff --git a/boost/fusion/include/std_pair.hpp b/boost/fusion/include/std_pair.hpp
deleted file mode 100644
index 98f37c8..0000000
--- a/boost/fusion/include/std_pair.hpp
+++ /dev/null
@@ -1,12 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2007 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_INCLUDE_STD_PAIR)
-#define FUSION_INCLUDE_STD_PAIR
-
-#include <boost/fusion/adapted/std_pair.hpp>
-
-#endif
diff --git a/boost/fusion/include/tuple.hpp b/boost/fusion/include/tuple.hpp
deleted file mode 100644
index 52e53fb..0000000
--- a/boost/fusion/include/tuple.hpp
+++ /dev/null
@@ -1,12 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2007 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_INCLUDE_TUPLE)
-#define FUSION_INCLUDE_TUPLE
-
-#include <boost/fusion/tuple.hpp>
-
-#endif
diff --git a/boost/fusion/iterator/advance.hpp b/boost/fusion/iterator/advance.hpp
deleted file mode 100644
index bfd8af4..0000000
--- a/boost/fusion/iterator/advance.hpp
+++ /dev/null
@@ -1,92 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_ADVANCE_09172005_1146)
-#define FUSION_ADVANCE_09172005_1146
-
-#include <boost/fusion/iterator/detail/advance.hpp>
-#include <boost/fusion/support/category_of.hpp>
-
-#include <boost/mpl/int.hpp>
-#include <boost/mpl/assert.hpp>
-#include <boost/type_traits/is_same.hpp>
-#include <boost/fusion/support/tag_of.hpp>
-
-namespace boost { namespace fusion
-{
-    struct random_access_traversal_tag;
-
-    // Special tags:
-    struct iterator_facade_tag; // iterator facade tag
-    struct boost_array_iterator_tag; // boost::array iterator tag
-    struct mpl_iterator_tag; // mpl sequence iterator tag
-    struct std_pair_iterator_tag; // std::pair iterator tag
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct advance_impl
-        {
-            // default implementation
-            template <typename Iterator, typename N>
-            struct apply :
-                mpl::if_c<
-                    (N::value > 0)
-                  , advance_detail::forward<Iterator, N::value>
-                  , advance_detail::backward<Iterator, N::value>
-                >::type
-            {
-                BOOST_MPL_ASSERT_NOT((traits::is_random_access<Iterator>));
-            };
-        };
-
-        template <>
-        struct advance_impl<iterator_facade_tag>
-        {
-            template <typename Iterator, typename N>
-            struct apply : Iterator::template advance<Iterator, N> {};
-        };
-
-        template <>
-        struct advance_impl<boost_array_iterator_tag>;
-
-        template <>
-        struct advance_impl<mpl_iterator_tag>;
-
-        template <>
-        struct advance_impl<std_pair_iterator_tag>;
-    }
-
-    namespace result_of
-    {
-        template <typename Iterator, int N>
-        struct advance_c
-            : extension::advance_impl<typename detail::tag_of<Iterator>::type>::template apply<Iterator, mpl::int_<N> >
-        {};
-
-        template <typename Iterator, typename N>
-        struct advance
-            : extension::advance_impl<typename detail::tag_of<Iterator>::type>::template apply<Iterator, N>
-        {};
-    }
-
-    template <int N, typename Iterator>
-    inline typename result_of::advance_c<Iterator, N>::type const
-    advance_c(Iterator const& i)
-    {
-        return result_of::advance_c<Iterator, N>::call(i);
-    }
-
-    template<typename N, typename Iterator>
-    inline typename result_of::advance<Iterator, N>::type const
-    advance(Iterator const& i)
-    {
-        return result_of::advance<Iterator, N>::call(i);
-    }
-
-}} // namespace boost::fusion
-
-#endif
diff --git a/boost/fusion/iterator/basic_iterator.hpp b/boost/fusion/iterator/basic_iterator.hpp
deleted file mode 100644
index 4327a8c..0000000
--- a/boost/fusion/iterator/basic_iterator.hpp
+++ /dev/null
@@ -1,141 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2009 Christopher Schmidt
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-
-#ifndef BOOST_FUSION_ITERATOR_BASIC_ITERATOR_HPP
-#define BOOST_FUSION_ITERATOR_BASIC_ITERATOR_HPP
-
-#include <boost/fusion/iterator/iterator_facade.hpp>
-
-#include <boost/mpl/and.hpp>
-#include <boost/mpl/equal_to.hpp>
-#include <boost/mpl/minus.hpp>
-#include <boost/mpl/int.hpp>
-#include <boost/type_traits/is_same.hpp>
-#include <boost/type_traits/remove_const.hpp>
-
-namespace boost { namespace fusion
-{
-    namespace extension
-    {
-        template <typename>
-        struct value_of_impl;
-
-        template <typename>
-        struct deref_impl;
-
-        template <typename>
-        struct value_of_data_impl;
-
-        template <typename>
-        struct key_of_impl;
-
-        template <typename>
-        struct deref_data_impl;
-    }
-
-    template<typename Tag, typename Category, typename Seq, int Index>
-    struct basic_iterator
-      : iterator_facade<basic_iterator<Tag,Category,Seq,Index>, Category>
-    {
-        typedef mpl::int_<Index> index;
-        typedef Seq seq_type;
-
-        template <typename It>
-        struct value_of
-          : extension::value_of_impl<Tag>::template apply<It>
-        {};
-
-        template <typename It>
-        struct deref
-          : extension::deref_impl<Tag>::template apply<It>
-        {};
-
-        template <typename It>
-        struct value_of_data
-          : extension::value_of_data_impl<Tag>::template apply<It>
-        {};
-
-        template <typename It>
-        struct key_of
-          : extension::key_of_impl<Tag>::template apply<It>
-        {};
-
-        template <typename It>
-        struct deref_data
-          : extension::deref_data_impl<Tag>::template apply<It>
-        {};
-
-        template <typename It, typename N>
-        struct advance
-        {
-            typedef
-                basic_iterator<Tag, Category, Seq, Index + N::value>
-            type;
-
-            static type
-            call(It const& it)
-            {
-                return type(*it.seq,0);
-            }
-        };
-
-        template <typename It>
-        struct next
-          : advance<It, mpl::int_<1> >
-        {};
-
-        template <typename It>
-        struct prior
-          : advance<It, mpl::int_<-1> >
-        {};
-
-        template <typename It1, typename It2>
-        struct distance
-        {
-            typedef mpl::minus<typename It2::index, typename It1::index> type;
-
-            static
-            type
-            call(It1 const&, It2 const&)
-            {
-                return type();
-            }
-        };
-
-        template <typename It1, typename It2>
-        struct equal_to
-          : mpl::and_<
-                is_same<
-                    typename remove_const<typename It1::seq_type>::type
-                  , typename remove_const<typename It2::seq_type>::type
-                >
-              , mpl::equal_to<typename It1::index,typename It2::index>
-            >
-        {};
-
-        template<typename OtherSeq>
-        basic_iterator(basic_iterator<Tag,Category,OtherSeq,Index> const& it)
-          : seq(it.seq)
-        {}
-
-        basic_iterator(Seq& in_seq, int)
-          : seq(&in_seq)
-        {}
-
-        template<typename OtherSeq>
-        basic_iterator&
-        operator=(basic_iterator<Tag,Category,OtherSeq,Index> const& it)
-        {
-            seq=it.seq;
-            return *this;
-        }
-
-        Seq* seq;
-    };
-}}
-
-#endif
diff --git a/boost/fusion/iterator/deref.hpp b/boost/fusion/iterator/deref.hpp
deleted file mode 100644
index 5b01e65..0000000
--- a/boost/fusion/iterator/deref.hpp
+++ /dev/null
@@ -1,72 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_DEREF_05042005_1019)
-#define FUSION_DEREF_05042005_1019
-
-#include <boost/fusion/support/iterator_base.hpp>
-#include <boost/fusion/support/tag_of.hpp>
-
-namespace boost { namespace fusion
-{
-    // Special tags:
-    struct iterator_facade_tag; // iterator facade tag
-    struct boost_array_iterator_tag; // boost::array iterator tag
-    struct mpl_iterator_tag; // mpl sequence iterator tag
-    struct std_pair_iterator_tag; // std::pair iterator tag
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct deref_impl
-        {
-            template <typename Iterator>
-            struct apply {};
-        };
-
-        template <>
-        struct deref_impl<iterator_facade_tag>
-        {
-            template <typename Iterator>
-            struct apply : Iterator::template deref<Iterator> {};
-       };
-
-        template <>
-        struct deref_impl<boost_array_iterator_tag>;
-
-        template <>
-        struct deref_impl<mpl_iterator_tag>;
-
-        template <>
-        struct deref_impl<std_pair_iterator_tag>;
-    }
-
-    namespace result_of
-    {
-        template <typename Iterator>
-        struct deref
-            : extension::deref_impl<typename detail::tag_of<Iterator>::type>::
-                template apply<Iterator>
-        {};
-    }
-
-    template <typename Iterator>
-    typename result_of::deref<Iterator>::type
-    deref(Iterator const& i)
-    {
-        typedef result_of::deref<Iterator> deref_meta;
-        return deref_meta::call(i);
-    }
-
-    template <typename Iterator>
-    typename result_of::deref<Iterator>::type
-    operator*(iterator_base<Iterator> const& i)
-    {
-        return fusion::deref(i.cast());
-    }
-}}
-
-#endif
diff --git a/boost/fusion/iterator/deref_data.hpp b/boost/fusion/iterator/deref_data.hpp
deleted file mode 100644
index 09ba439..0000000
--- a/boost/fusion/iterator/deref_data.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2009 Christopher Schmidt
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-
-#ifndef BOOST_FUSION_ITERATOR_DEREF_DATA_HPP
-#define BOOST_FUSION_ITERATOR_DEREF_DATA_HPP
-
-#include <boost/fusion/support/tag_of.hpp>
-
-namespace boost { namespace fusion
-{
-    struct iterator_facade_tag;
-
-    namespace extension
-    {
-        template <typename>
-        struct deref_data_impl;
-
-        template <>
-        struct deref_data_impl<iterator_facade_tag>
-        {
-            template <typename It>
-            struct apply
-              : It::template deref_data<It>
-            {};
-       };
-    }
-
-    namespace result_of
-    {
-        template <typename It>
-        struct deref_data
-          : extension::deref_data_impl<typename traits::tag_of<It>::type>::
-                template apply<It>
-        {};
-    }
-
-    template <typename It>
-    typename result_of::deref_data<It>::type
-    deref_data(It const& it)
-    {
-        return result_of::deref_data<It>::call(it);
-    }
-}}
-
-#endif
diff --git a/boost/fusion/iterator/detail/adapt_deref_traits.hpp b/boost/fusion/iterator/detail/adapt_deref_traits.hpp
deleted file mode 100644
index 197dfc1..0000000
--- a/boost/fusion/iterator/detail/adapt_deref_traits.hpp
+++ /dev/null
@@ -1,34 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_ADAPT_DEREF_TRAITS_05062005_0900)
-#define FUSION_ADAPT_DEREF_TRAITS_05062005_0900
-
-#include <boost/fusion/iterator/deref.hpp>
-
-namespace boost { namespace fusion { namespace detail
-{
-    struct adapt_deref_traits
-    {
-        template <typename Iterator>
-        struct apply
-        {
-            typedef typename
-                result_of::deref<typename Iterator::first_type>::type
-            type;
-
-            static type
-            call(Iterator const& i)
-            {
-                return *i.first;
-            }
-        };
-    };
-}}}
-
-#endif
-
-
diff --git a/boost/fusion/iterator/detail/adapt_value_traits.hpp b/boost/fusion/iterator/detail/adapt_value_traits.hpp
deleted file mode 100644
index 6649ade..0000000
--- a/boost/fusion/iterator/detail/adapt_value_traits.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_ADAPT_VALUE_TRAITS_05062005_0859)
-#define FUSION_ADAPT_VALUE_TRAITS_05062005_0859
-
-#include <boost/fusion/iterator/value_of.hpp>
-
-namespace boost { namespace fusion { namespace detail
-{
-    struct adapt_value_traits
-    {
-        template <typename Iterator>
-        struct apply
-        {
-            typedef typename
-                result_of::value_of<typename Iterator::first_type>::type
-            type;
-        };
-    };
-}}}
-
-#endif
-
-
diff --git a/boost/fusion/iterator/detail/advance.hpp b/boost/fusion/iterator/detail/advance.hpp
deleted file mode 100644
index 56dfab9..0000000
--- a/boost/fusion/iterator/detail/advance.hpp
+++ /dev/null
@@ -1,102 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_ADVANCE_09172005_1149)
-#define FUSION_ADVANCE_09172005_1149
-
-#include <boost/mpl/int.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/fusion/iterator/next.hpp>
-#include <boost/fusion/iterator/prior.hpp>
-
-namespace boost { namespace fusion { namespace advance_detail
-{
-    // Default advance implementation, perform next(i)
-    // or prior(i) N times.
-
-    template <typename Iterator, int N>
-    struct forward;
-
-    template <typename Iterator, int N>
-    struct next_forward
-    {
-        typedef typename
-            forward<
-                typename result_of::next<Iterator>::type
-              , N-1
-            >::type
-        type;
-    };
-
-    template <typename Iterator, int N>
-    struct forward
-    {
-        typedef typename
-            mpl::eval_if_c<
-                (N == 0)
-              , mpl::identity<Iterator>
-              , next_forward<Iterator, N>
-            >::type
-        type;
-
-        static type const&
-        call(type const& i)
-        {
-            return i;
-        }
-
-        template <typename I>
-        static type
-        call(I const& i)
-        {
-            return call(fusion::next(i));
-        }
-    };
-
-    template <typename Iterator, int N>
-    struct backward;
-
-    template <typename Iterator, int N>
-    struct next_backward
-    {
-        typedef typename
-            backward<
-                typename result_of::prior<Iterator>::type
-              , N+1
-            >::type
-        type;
-    };
-
-    template <typename Iterator, int N>
-    struct backward
-    {
-        typedef typename
-            mpl::eval_if_c<
-                (N == 0)
-              , mpl::identity<Iterator>
-              , next_backward<Iterator, N>
-            >::type
-        type;
-
-        static type const&
-        call(type const& i)
-        {
-            return i;
-        }
-
-        template <typename I>
-        static type
-        call(I const& i)
-        {
-            return call(fusion::prior(i));
-        }
-    };
-
-}}}
-
-#endif
diff --git a/boost/fusion/iterator/detail/distance.hpp b/boost/fusion/iterator/detail/distance.hpp
deleted file mode 100644
index 3994cb3..0000000
--- a/boost/fusion/iterator/detail/distance.hpp
+++ /dev/null
@@ -1,64 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_DISTANCE_09172005_0730)
-#define FUSION_DISTANCE_09172005_0730
-
-#include <boost/mpl/int.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/next.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/fusion/iterator/next.hpp>
-#include <boost/fusion/iterator/equal_to.hpp>
-
-namespace boost { namespace fusion { namespace distance_detail
-{
-    // Default distance implementation, linear
-    // search for the Last iterator.
-
-    template <typename First, typename Last>
-    struct linear_distance;
-
-    template <typename First, typename Last>
-    struct next_distance
-    {
-        typedef typename 
-            mpl::next<
-                typename linear_distance<
-                    typename result_of::next<First>::type
-                  , Last
-                >::type
-            >::type 
-        type;
-    };
-
-    template <typename First, typename Last>
-    struct linear_distance
-        : mpl::eval_if<
-            result_of::equal_to<First, Last>
-          , mpl::identity<mpl::int_<0> >
-          , next_distance<First, Last>
-        >::type
-    {
-        typedef typename
-            mpl::eval_if<
-                result_of::equal_to<First, Last>
-              , mpl::identity<mpl::int_<0> >
-              , next_distance<First, Last>
-            >::type
-        type;
-
-        static type
-        call(First const&, Last const&)
-        {
-            return type();
-        }
-    };
-
-}}}
-
-#endif
diff --git a/boost/fusion/iterator/detail/segment_sequence.hpp b/boost/fusion/iterator/detail/segment_sequence.hpp
deleted file mode 100644
index c372a83..0000000
--- a/boost/fusion/iterator/detail/segment_sequence.hpp
+++ /dev/null
@@ -1,71 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2011 Eric Niebler
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(BOOST_FUSION_SEGMENTED_SEQUENCE_HPP_INCLUDED)
-#define BOOST_FUSION_SEGMENTED_SEQUENCE_HPP_INCLUDED
-
-#include <boost/mpl/bool.hpp>
-#include <boost/type_traits/remove_reference.hpp>
-#include <boost/fusion/support/tag_of.hpp>
-#include <boost/fusion/sequence/intrinsic_fwd.hpp>
-
-namespace boost { namespace fusion { namespace detail
-{
-    struct segment_sequence_tag {};
-
-    // Here, Sequence is a sequence of ranges (which may or may not be
-    // segmented).
-    template<typename Sequence>
-    struct segment_sequence
-        : sequence_base<segment_sequence<Sequence> >
-    {
-        typedef fusion_sequence_tag tag;
-        typedef segment_sequence_tag fusion_tag;
-        typedef typename Sequence::is_view is_view;
-        typedef typename Sequence::category category;
-        typedef Sequence sequence_type;
-        sequence_type sequence;
-
-        explicit segment_sequence(Sequence const & seq)
-            : sequence(seq)
-        {}
-    };
-}
-
-namespace extension
-{
-    template<typename Tag>
-    struct is_segmented_impl;
-
-    template<>
-    struct is_segmented_impl<detail::segment_sequence_tag>
-    {
-        template<typename Sequence>
-        struct apply
-            : mpl::true_
-        {};
-    };
-
-    template<typename Tag>
-    struct segments_impl;
-
-    template<>
-    struct segments_impl<detail::segment_sequence_tag>
-    {
-        template<typename Sequence>
-        struct apply
-        {
-            typedef typename Sequence::sequence_type type;
-
-            static type call(Sequence & seq)
-            {
-                return seq.sequence;
-            }
-        };
-    };
-}}}
-
-#endif
diff --git a/boost/fusion/iterator/detail/segmented_equal_to.hpp b/boost/fusion/iterator/detail/segmented_equal_to.hpp
deleted file mode 100644
index 14982b8..0000000
--- a/boost/fusion/iterator/detail/segmented_equal_to.hpp
+++ /dev/null
@@ -1,41 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2011 Eric Niebler
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(BOOST_FUSION_SEGMENTED_ITERATOR_EQUAL_TO_HPP_INCLUDED)
-#define BOOST_FUSION_SEGMENTED_ITERATOR_EQUAL_TO_HPP_INCLUDED
-
-#include <boost/mpl/and.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/fusion/iterator/equal_to.hpp>
-
-namespace boost { namespace fusion
-{
-    struct nil_;
-
-    namespace detail
-    {
-        template <typename Stack1, typename Stack2>
-        struct segmented_equal_to
-          : mpl::and_<
-                segmented_equal_to<
-                    typename Stack1::cdr_type,
-                    typename Stack2::cdr_type
-                >
-              , result_of::equal_to<
-                    typename Stack1::car_type::begin_type,
-                    typename Stack2::car_type::begin_type
-                >
-            >
-        {};
-
-        template <>
-        struct segmented_equal_to<fusion::nil_, fusion::nil_>
-          : mpl::true_
-        {};
-    }
-}}
-
-#endif
diff --git a/boost/fusion/iterator/detail/segmented_iterator.hpp b/boost/fusion/iterator/detail/segmented_iterator.hpp
deleted file mode 100644
index a5cfb45..0000000
--- a/boost/fusion/iterator/detail/segmented_iterator.hpp
+++ /dev/null
@@ -1,144 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2011 Eric Niebler
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(BOOST_FUSION_SEGMENTED_ITERATOR_SEGMENTED_ITERATOR_HPP_INCLUDED)
-#define BOOST_FUSION_SEGMENTED_ITERATOR_SEGMENTED_ITERATOR_HPP_INCLUDED
-
-#include <boost/mpl/bool.hpp>
-#include <boost/fusion/sequence/intrinsic_fwd.hpp>
-#include <boost/fusion/iterator/iterator_facade.hpp>
-#include <boost/fusion/iterator/deref.hpp>
-#include <boost/fusion/iterator/deref_data.hpp>
-#include <boost/fusion/iterator/key_of.hpp>
-#include <boost/fusion/iterator/value_of.hpp>
-#include <boost/fusion/iterator/value_of_data.hpp>
-#include <boost/fusion/iterator/detail/segmented_equal_to.hpp>
-
-namespace boost { namespace fusion
-{
-    struct nil_;
-
-    namespace detail
-    {
-        template <typename Stack>
-        struct segmented_next_impl;
-    }
-
-    // A segmented iterator wraps a "context", which is a cons list
-    // of ranges, the frontmost is range over values and the rest
-    // are ranges over internal segments.
-    template <typename Context>
-    struct segmented_iterator
-      : iterator_facade<segmented_iterator<Context>, forward_traversal_tag>
-    {
-        explicit segmented_iterator(Context const& ctx)
-          : context(ctx)
-        {}
-
-        //auto deref(it)
-        //{
-        //  return deref(begin(car(it.context)))
-        //}
-        template <typename It>
-        struct deref
-        {
-            typedef
-                typename result_of::deref<
-                    typename It::context_type::car_type::begin_type
-                >::type
-            type;
-
-            static type call(It const& it)
-            {
-                return *it.context.car.first;
-            }
-        };
-
-        //auto deref_data(it)
-        //{
-        //  return deref_data(begin(car(it.context)))
-        //}
-        template <typename It>
-        struct deref_data
-        {
-            typedef
-                typename result_of::deref_data<
-                    typename It::context_type::car_type::begin_type
-                >::type
-            type;
-
-            static type call(It const& it)
-            {
-                return fusion::deref_data(it.context.car.first);
-            }
-        };
-
-        //auto key_of(it)
-        //{
-        //  return key_of(begin(car(it.context)))
-        //}
-        template <typename It>
-        struct key_of
-          : result_of::key_of<typename It::context_type::car_type::begin_type>
-        {};
-
-        //auto value_of(it)
-        //{
-        //  return value_of(begin(car(it.context)))
-        //}
-        template <typename It>
-        struct value_of
-          : result_of::value_of<typename It::context_type::car_type::begin_type>
-        {};
-
-        //auto value_of_data(it)
-        //{
-        //  return value_of_data(begin(car(it.context)))
-        //}
-        template <typename It>
-        struct value_of_data
-          : result_of::value_of_data<typename It::context_type::car_type::begin_type>
-        {};
-
-        // Compare all the segment iterators in each stack, starting with
-        // the bottom-most.
-        template <
-            typename It1
-          , typename It2
-          , int Size1 = It1::context_type::size::value
-          , int Size2 = It2::context_type::size::value
-        >
-        struct equal_to
-          : mpl::false_
-        {};
-
-        template <typename It1, typename It2, int Size>
-        struct equal_to<It1, It2, Size, Size>
-          : detail::segmented_equal_to<
-                typename It1::context_type
-              , typename It2::context_type
-            >
-        {};
-
-        template <typename It>
-        struct next
-        {
-            typedef detail::segmented_next_impl<typename It::context_type> impl;
-            typedef segmented_iterator<typename impl::type> type;
-
-            static type call(It const& it)
-            {
-                return type(impl::call(it.context));
-            }
-        };
-
-        typedef Context context_type;
-        context_type context;
-    };
-
-}}
-
-#endif
diff --git a/boost/fusion/iterator/detail/segmented_next_impl.hpp b/boost/fusion/iterator/detail/segmented_next_impl.hpp
deleted file mode 100644
index 0c5f9f5..0000000
--- a/boost/fusion/iterator/detail/segmented_next_impl.hpp
+++ /dev/null
@@ -1,254 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2011 Eric Niebler
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(BOOST_FUSION_SEGMENTED_ITERATOR_NEXT_IMPL_HPP_INCLUDED)
-#define BOOST_FUSION_SEGMENTED_ITERATOR_NEXT_IMPL_HPP_INCLUDED
-
-#include <boost/type_traits/add_const.hpp>
-#include <boost/type_traits/remove_reference.hpp>
-#include <boost/fusion/iterator/equal_to.hpp>
-#include <boost/fusion/container/list/cons_fwd.hpp>
-#include <boost/fusion/iterator/next.hpp>
-#include <boost/fusion/iterator/deref.hpp>
-
-namespace boost { namespace fusion
-{
-    template <typename First, typename Second>
-    struct iterator_range;
-
-    template <typename Context>
-    struct segmented_iterator;
-
-    namespace detail
-    {
-        template <typename Sequence, typename Stack>
-        struct segmented_begin_impl;
-
-        //bool is_invalid(stack)
-        //{
-        //  return empty(car(stack));
-        //}
-
-        template <typename Stack>
-        struct is_invalid
-          : result_of::equal_to<
-                typename Stack::car_type::begin_type,
-                typename Stack::car_type::end_type
-            >
-        {};
-
-        ////Advance the first iterator in the seq at the
-        ////top of a stack of iterator ranges. Return the
-        ////new stack.
-        //auto pop_front_car(stack)
-        //{
-        //  return cons(iterator_range(next(begin(car(stack))), end(car(stack))), cdr(stack));
-        //}
-
-        template <typename Stack>
-        struct pop_front_car
-        {
-            typedef 
-                iterator_range<
-                    typename result_of::next<
-                        typename Stack::car_type::begin_type
-                    >::type
-                  , typename Stack::car_type::end_type
-                >
-            car_type;
-            
-            typedef
-                cons<car_type, typename Stack::cdr_type>
-            type;
-
-            static type call(Stack const & stack)
-            {
-                return type(
-                    car_type(fusion::next(stack.car.first), stack.car.last),
-                    stack.cdr);
-            }
-        };
-
-        template <
-            typename Stack,
-            typename Next   = typename pop_front_car<Stack>::type,
-            bool IsInvalid  = is_invalid<Next>::value,
-            int StackSize   = Stack::size::value>
-        struct segmented_next_impl_recurse;
-
-        // Handle the case where the top of the stack has no usable 
-        //auto segmented_next_impl_recurse3(stack)
-        //{
-        //  if (size(stack) == 1)
-        //    return cons(iterator_range(end(car(stack)), end(car(stack))), nil_);
-        //  else
-        //    return segmented_next_impl_recurse(stack.cdr);
-        //}
-
-        template <
-            typename Stack,
-            int StackSize = Stack::size::value>
-        struct segmented_next_impl_recurse3
-        {
-            typedef segmented_next_impl_recurse<typename Stack::cdr_type> impl;
-            typedef typename impl::type type;
-
-            static type call(Stack const & stack)
-            {
-                return impl::call(stack.cdr);
-            }
-        };
-
-        template <typename Stack>
-        struct segmented_next_impl_recurse3<Stack, 1>
-        {
-            typedef typename Stack::car_type::end_type end_type;
-            typedef iterator_range<end_type, end_type> range_type;
-            typedef cons<range_type> type;
-
-            static type call(Stack const & stack)
-            {
-                return type(range_type(stack.car.last, stack.car.last));
-            }
-        };
-
-        //auto segmented_next_impl_recurse2(stack)
-        //{
-        //  auto res = segmented_begin_impl(front(car(stack)), stack);
-        //  if (is_invalid(res))
-        //    return segmented_next_impl_recurse3(stack);
-        //  else
-        //    return res;
-        //}
-
-        template <
-            typename Stack,
-            typename Sequence  =
-                typename remove_reference<
-                    typename add_const<
-                        typename result_of::deref<
-                            typename Stack::car_type::begin_type
-                        >::type
-                    >::type
-                >::type,
-            typename Result =
-                typename segmented_begin_impl<Sequence, Stack>::type,
-            bool IsInvalid  =
-                is_invalid<Result>::value>
-        struct segmented_next_impl_recurse2
-        {
-            typedef segmented_next_impl_recurse3<Stack> impl;
-            typedef typename impl::type type;
-
-            static type call(Stack const & stack)
-            {
-                return impl::call(stack);
-            }
-        };
-
-        template <typename Stack, typename Sequence, typename Result>
-        struct segmented_next_impl_recurse2<Stack, Sequence, Result, false>
-        {
-            typedef Result type;
-
-            static type call(Stack const & stack)
-            {
-                return segmented_begin_impl<Sequence, Stack>::call(*stack.car.first, stack);
-            }
-        };
-
-        //auto segmented_next_impl_recurse(stack)
-        //{
-        //  auto next = pop_front_car(stack);
-        //  if (is_invalid(next))
-        //    if (1 == size(stack))
-        //      return next;
-        //    else
-        //      return segmented_next_impl_recurse(cdr(stack));
-        //  else
-        //    return segmented_next_impl_recurse2(next)
-        //}
-
-        template <typename Stack, typename Next, bool IsInvalid, int StackSize>
-        struct segmented_next_impl_recurse
-        {
-            typedef
-                typename segmented_next_impl_recurse<typename Stack::cdr_type>::type
-            type;
-
-            static type call(Stack const& stack)
-            {
-                return segmented_next_impl_recurse<typename Stack::cdr_type>::call(stack.cdr);
-            }
-        };
-
-        template <typename Stack, typename Next>
-        struct segmented_next_impl_recurse<Stack, Next, true, 1>
-        {
-            typedef Next type;
-
-            static type call(Stack const & stack)
-            {
-                return pop_front_car<Stack>::call(stack);
-            }
-        };
-
-        template <typename Stack, typename Next, int StackSize>
-        struct segmented_next_impl_recurse<Stack, Next, false, StackSize>
-        {
-            typedef segmented_next_impl_recurse2<Next> impl;
-            typedef typename impl::type type;
-
-            static type call(Stack const & stack)
-            {
-                return impl::call(pop_front_car<Stack>::call(stack));
-            }
-        };
-
-        //auto segmented_next_impl(stack)
-        //{
-        //  // car(stack) is a seq of values, not a seq of segments
-        //  auto next = pop_front_car(stack);
-        //  if (is_invalid(next))
-        //    return segmented_next_impl_recurse(cdr(next));
-        //  else
-        //    return next;
-        //}
-
-        template <
-            typename Stack,
-            typename Next   = typename pop_front_car<Stack>::type,
-            bool IsInvalid  = is_invalid<Next>::value>
-        struct segmented_next_impl_aux
-        {
-            typedef segmented_next_impl_recurse<typename Stack::cdr_type> impl;
-            typedef typename impl::type type;
-
-            static type call(Stack const & stack)
-            {
-                return impl::call(stack.cdr);
-            }
-        };
-
-        template <typename Stack, typename Next>
-        struct segmented_next_impl_aux<Stack, Next, false>
-        {
-            typedef Next type;
-
-            static type call(Stack const & stack)
-            {
-                return pop_front_car<Stack>::call(stack);
-            }
-        };
-
-        template <typename Stack>
-        struct segmented_next_impl
-          : segmented_next_impl_aux<Stack>
-        {};
-    }
-}}
-
-#endif
diff --git a/boost/fusion/iterator/distance.hpp b/boost/fusion/iterator/distance.hpp
deleted file mode 100644
index 74d2d3e..0000000
--- a/boost/fusion/iterator/distance.hpp
+++ /dev/null
@@ -1,78 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_DISTANCE_09172005_0721)
-#define FUSION_DISTANCE_09172005_0721
-
-#include <boost/fusion/iterator/detail/distance.hpp>
-#include <boost/fusion/support/category_of.hpp>
-
-#include <boost/mpl/int.hpp>
-#include <boost/mpl/assert.hpp>
-#include <boost/type_traits/is_same.hpp>
-
-#include <boost/fusion/support/tag_of.hpp>
-
-namespace boost { namespace fusion
-{
-    struct random_access_traversal_tag;
-
-    // Special tags:
-    struct iterator_facade_tag; // iterator facade tag
-    struct boost_array_iterator_tag; // boost::array iterator tag
-    struct mpl_iterator_tag; // mpl sequence iterator tag
-    struct std_pair_iterator_tag; // std::pair iterator tag
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct distance_impl
-        {
-            // default implementation
-            template <typename First, typename Last>
-            struct apply : distance_detail::linear_distance<First, Last> 
-            {};
-        };
-
-        template <>
-        struct distance_impl<iterator_facade_tag>
-        {
-            template <typename First, typename Last>
-            struct apply : First::template distance<First, Last> {};
-        };
-
-        template <>
-        struct distance_impl<boost_array_iterator_tag>;
-
-        template <>
-        struct distance_impl<mpl_iterator_tag>;
-
-        template <>
-        struct distance_impl<std_pair_iterator_tag>;
-    }
-
-    namespace result_of
-    {
-        template <typename First, typename Last>
-        struct distance
-          : extension::distance_impl<typename detail::tag_of<First>::type>::
-                template apply<First, Last>
-        {
-            typedef typename extension::distance_impl<typename detail::tag_of<First>::type>:: 
-            template apply<First, Last>::type distance_application;
-            BOOST_STATIC_CONSTANT(int, value = distance_application::value);
-        };
-    }
-        
-    template <typename First, typename Last>
-    inline typename result_of::distance<First, Last>::type
-    distance(First const& a, Last const& b)
-    {
-        return result_of::distance<First, Last>::call(a,b);
-    }
-}}
-
-#endif
diff --git a/boost/fusion/iterator/equal_to.hpp b/boost/fusion/iterator/equal_to.hpp
deleted file mode 100644
index 3347837..0000000
--- a/boost/fusion/iterator/equal_to.hpp
+++ /dev/null
@@ -1,103 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_EQUAL_TO_05052005_1208)
-#define FUSION_EQUAL_TO_05052005_1208
-
-#include <boost/type_traits/is_same.hpp>
-#include <boost/fusion/support/tag_of.hpp>
-#include <boost/type_traits/add_const.hpp>
-#include <boost/fusion/support/is_iterator.hpp>
-#include <boost/mpl/and.hpp>
-#include <boost/utility/enable_if.hpp>
-
-namespace boost { namespace fusion
-{
-    // Special tags:
-    struct iterator_facade_tag; // iterator facade tag
-    struct boost_array_iterator_tag; // boost::array iterator tag
-    struct mpl_iterator_tag; // mpl sequence iterator tag
-    struct std_pair_iterator_tag; // std::pair iterator tag
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct equal_to_impl
-        {
-            // default implementation
-            template <typename I1, typename I2>
-            struct apply
-                : is_same<typename add_const<I1>::type, typename add_const<I2>::type>
-            {};
-        };
-
-        template <>
-        struct equal_to_impl<iterator_facade_tag>
-        {
-            template <typename It1, typename It2, typename Tag1, typename Tag2>
-            struct dispatch : mpl::false_ {};
-
-            template <typename It1, typename It2, typename Tag>
-            struct dispatch<It1, It2, Tag, Tag> // same tag
-              : It1::template equal_to<It1, It2>
-            {};
-
-            template<typename It1, typename It2>
-            struct apply : dispatch<It1, It2,
-                typename It1::fusion_tag, typename It2::fusion_tag>
-            {};
-        };
-
-        template <>
-        struct equal_to_impl<boost_array_iterator_tag>;
-
-        template <>
-        struct equal_to_impl<mpl_iterator_tag>;
-
-        template <>
-        struct equal_to_impl<std_pair_iterator_tag>;
-    }
-
-    namespace result_of
-    {
-        template <typename I1, typename I2>
-        struct equal_to
-            : extension::equal_to_impl<typename detail::tag_of<I1>::type>::
-                template apply<I1, I2>
-        {};
-    }
-
-    namespace iterator_operators
-    {
-        template <typename Iter1, typename Iter2>
-        inline typename
-        boost::enable_if<
-            mpl::and_<is_fusion_iterator<Iter1>, is_fusion_iterator<Iter2> >
-            , bool
-            >::type
-        operator==(Iter1 const&, Iter2 const&)
-        {
-            return result_of::equal_to<Iter1, Iter2>::value;
-        }
-
-        template <typename Iter1, typename Iter2>
-        inline typename
-        boost::enable_if<
-            mpl::and_<is_fusion_iterator<Iter1>, is_fusion_iterator<Iter2> >
-            , bool
-            >::type
-        operator!=(Iter1 const&, Iter2 const&)
-        {
-            return !result_of::equal_to<Iter1, Iter2>::value;
-        }
-    }
-
-    using iterator_operators::operator==;
-    using iterator_operators::operator!=;
-}}
-
-#endif
-
diff --git a/boost/fusion/iterator/iterator_facade.hpp b/boost/fusion/iterator/iterator_facade.hpp
deleted file mode 100644
index abd6607..0000000
--- a/boost/fusion/iterator/iterator_facade.hpp
+++ /dev/null
@@ -1,57 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_ITERATOR_FACADE_09252006_1011)
-#define FUSION_ITERATOR_FACADE_09252006_1011
-
-#include <boost/fusion/support/iterator_base.hpp>
-#include <boost/fusion/iterator/detail/advance.hpp>
-#include <boost/fusion/iterator/detail/distance.hpp>
-#include <boost/fusion/support/category_of.hpp>
-#include <boost/type_traits/is_same.hpp>
-#include <boost/mpl/assert.hpp>
-
-namespace boost { namespace fusion
-{
-    struct iterator_facade_tag;
-
-    template <typename Derived, typename Category>
-    struct iterator_facade : iterator_base<Derived>
-    {
-        typedef iterator_facade_tag fusion_tag;
-        typedef Derived derived_type;
-        typedef Category category;
-
-        // default implementation
-        template <typename I1, typename I2>
-        struct equal_to // default implementation
-            : is_same<
-                typename I1::derived_type
-              , typename I2::derived_type
-            >
-        {};
-
-        // default implementation
-        template <typename Iterator, typename N>
-        struct advance :
-            mpl::if_c<
-                (N::value > 0)
-              , advance_detail::forward<Iterator, N::value>
-              , advance_detail::backward<Iterator, N::value>
-            >::type
-        {
-            BOOST_MPL_ASSERT_NOT((traits::is_random_access<Iterator>));
-        };
-
-        // default implementation
-        template <typename First, typename Last>
-        struct distance :
-            distance_detail::linear_distance<First, Last>
-        {};
-    };
-}}
-
-#endif
diff --git a/boost/fusion/iterator/key_of.hpp b/boost/fusion/iterator/key_of.hpp
deleted file mode 100644
index 64c2f86..0000000
--- a/boost/fusion/iterator/key_of.hpp
+++ /dev/null
@@ -1,42 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2009 Christopher Schmidt
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-
-#ifndef BOOST_FUSION_ITERATOR_KEY_OF_HPP
-#define BOOST_FUSION_ITERATOR_KEY_OF_HPP
-
-#include <boost/fusion/support/tag_of.hpp>
-
-namespace boost { namespace fusion
-{
-    struct iterator_facade_tag;
-
-    namespace extension
-    {
-        template <typename>
-        struct key_of_impl;
-
-        template <>
-        struct key_of_impl<iterator_facade_tag>
-        {
-            template <typename It>
-            struct apply
-              : It::template key_of<It>
-            {};
-        };
-    }
-
-    namespace result_of
-    {
-        template <typename It>
-        struct key_of
-          : extension::key_of_impl<typename traits::tag_of<It>::type>::
-                template apply<It>
-        {};
-    }
-}}
-
-#endif
diff --git a/boost/fusion/iterator/mpl/convert_iterator.hpp b/boost/fusion/iterator/mpl/convert_iterator.hpp
deleted file mode 100644
index dd52d4c..0000000
--- a/boost/fusion/iterator/mpl/convert_iterator.hpp
+++ /dev/null
@@ -1,58 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_CONVERT_ITERATOR_05062005_1218)
-#define FUSION_CONVERT_ITERATOR_05062005_1218
-
-#include <boost/fusion/support/is_iterator.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/bool.hpp>
-
-namespace boost { namespace fusion
-{
-    template <typename Iterator>
-    struct mpl_iterator; // forward declaration
-
-    //  Test T. If it is a fusion iterator, return a reference to it.
-    //  else, assume it is an mpl iterator.
-
-    template <typename T>
-    struct convert_iterator
-    {
-        typedef typename
-            mpl::if_<
-                is_fusion_iterator<T>
-              , T
-              , mpl_iterator<T>
-            >::type
-        type;
-
-        static T const&
-        call(T const& x, mpl::true_)
-        {
-            return x;
-        }
-
-        static mpl_iterator<T>
-        call(T const& /*x*/, mpl::false_)
-        {
-            return mpl_iterator<T>();
-        }
-
-        static typename
-            mpl::if_<
-                is_fusion_iterator<T>
-              , T const&
-              , mpl_iterator<T>
-            >::type
-        call(T const& x)
-        {
-            return call(x, is_fusion_iterator<T>());
-        }
-    };
-}}
-
-#endif
diff --git a/boost/fusion/iterator/mpl/fusion_iterator.hpp b/boost/fusion/iterator/mpl/fusion_iterator.hpp
deleted file mode 100644
index 82889e0..0000000
--- a/boost/fusion/iterator/mpl/fusion_iterator.hpp
+++ /dev/null
@@ -1,79 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_FUSION_ITERATOR_10012005_1551)
-#define FUSION_FUSION_ITERATOR_10012005_1551
-
-#include <boost/fusion/iterator/value_of.hpp>
-#include <boost/fusion/iterator/next.hpp>
-#include <boost/fusion/iterator/prior.hpp>
-#include <boost/fusion/iterator/advance.hpp>
-#include <boost/fusion/iterator/distance.hpp>
-#include <boost/fusion/support/category_of.hpp>
-#include <boost/mpl/next_prior.hpp>
-#include <boost/mpl/advance_fwd.hpp>
-#include <boost/mpl/distance_fwd.hpp>
-#include <boost/mpl/iterator_tags.hpp>
-#include <boost/mpl/eval_if.hpp>
-#include <boost/type_traits/is_base_of.hpp>
-
-namespace boost { namespace fusion { namespace detail
-{
-
-template<class Category>
-struct to_mpl_category {
-    typedef typename mpl::eval_if<
-        is_base_of<random_access_traversal_tag, Category>,
-        mpl::random_access_iterator_tag,
-        mpl::eval_if<
-            is_base_of<bidirectional_traversal_tag, Category>,
-            mpl::bidirectional_iterator_tag,
-            mpl::forward_iterator_tag
-        >
-    >::type type;
-};
-
-}}}
-
-namespace boost { namespace mpl
-{
-    template <typename Iterator>
-    struct fusion_iterator
-    {
-        typedef typename fusion::result_of::value_of<Iterator>::type type;
-        typedef typename fusion::traits::category_of<Iterator>::type fusion_category;
-        typedef typename fusion::detail::to_mpl_category<fusion_category>::type category;
-        typedef Iterator iterator;
-    };
-
-    template <typename Iterator>
-    struct next<fusion_iterator<Iterator> >
-    {
-        typedef fusion_iterator<typename fusion::result_of::next<Iterator>::type> type;
-    };
-
-    template <typename Iterator>
-    struct prior<fusion_iterator<Iterator> >
-    {
-        typedef fusion_iterator<typename fusion::result_of::prior<Iterator>::type> type;
-    };
-
-    template <typename Iterator, typename N>
-    struct advance<fusion_iterator<Iterator>, N>
-    {
-        typedef fusion_iterator<typename fusion::result_of::advance<Iterator, N>::type> type;
-    };
-
-    template <typename First, typename Last>
-    struct distance<fusion_iterator<First>, fusion_iterator<Last> >
-        : fusion::result_of::distance<First, Last>
-    {};
-
-}}
-
-#endif
-
-
diff --git a/boost/fusion/iterator/next.hpp b/boost/fusion/iterator/next.hpp
deleted file mode 100644
index 5cc9c80..0000000
--- a/boost/fusion/iterator/next.hpp
+++ /dev/null
@@ -1,63 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_NEXT_05042005_1101)
-#define FUSION_NEXT_05042005_1101
-
-#include <boost/fusion/support/tag_of.hpp>
-
-namespace boost { namespace fusion
-{
-    // Special tags:
-    struct iterator_facade_tag; // iterator facade tag
-    struct boost_array_iterator_tag; // boost::array iterator tag
-    struct mpl_iterator_tag; // mpl sequence iterator tag
-    struct std_pair_iterator_tag; // std::pair iterator tag
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct next_impl
-        {
-            template <typename Iterator>
-            struct apply {};
-        };
-
-        template <>
-        struct next_impl<iterator_facade_tag>
-        {
-            template <typename Iterator>
-            struct apply : Iterator::template next<Iterator> {};
-        };
-
-        template <>
-        struct next_impl<boost_array_iterator_tag>;
-
-        template <>
-        struct next_impl<mpl_iterator_tag>;
-
-        template <>
-        struct next_impl<std_pair_iterator_tag>;
-    }
-
-    namespace result_of
-    {
-        template <typename Iterator>
-        struct next
-            : extension::next_impl<typename detail::tag_of<Iterator>::type>::
-                template apply<Iterator>
-        {};
-    }
-
-    template <typename Iterator>
-    typename result_of::next<Iterator>::type const
-    next(Iterator const& i)
-    {
-        return result_of::next<Iterator>::call(i);
-    }
-}}
-
-#endif
diff --git a/boost/fusion/iterator/prior.hpp b/boost/fusion/iterator/prior.hpp
deleted file mode 100644
index 818851b..0000000
--- a/boost/fusion/iterator/prior.hpp
+++ /dev/null
@@ -1,63 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_PRIOR_05042005_1144)
-#define FUSION_PRIOR_05042005_1144
-
-#include <boost/fusion/support/tag_of.hpp>
-
-namespace boost { namespace fusion
-{
-    // Special tags:
-    struct iterator_facade_tag; // iterator facade tag
-    struct boost_array_iterator_tag; // boost::array iterator tag
-    struct mpl_iterator_tag; // mpl sequence iterator tag
-    struct std_pair_iterator_tag; // std::pair iterator tag
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct prior_impl
-        {
-            template <typename Iterator>
-            struct apply {};
-        };
-
-        template <>
-        struct prior_impl<iterator_facade_tag>
-        {
-            template <typename Iterator>
-            struct apply : Iterator::template prior<Iterator> {};
-        };
-
-        template <>
-        struct prior_impl<boost_array_iterator_tag>;
-
-        template <>
-        struct prior_impl<mpl_iterator_tag>;
-
-        template <>
-        struct prior_impl<std_pair_iterator_tag>;
-    }
-
-    namespace result_of
-    {
-        template <typename Iterator>
-        struct prior
-            : extension::prior_impl<typename detail::tag_of<Iterator>::type>::
-                template apply<Iterator>
-        {};
-    }
-
-    template <typename Iterator>
-    typename result_of::prior<Iterator>::type const
-    prior(Iterator const& i)
-    {
-        return result_of::prior<Iterator>::call(i);
-    }
-}}
-
-#endif
diff --git a/boost/fusion/iterator/segmented_iterator.hpp b/boost/fusion/iterator/segmented_iterator.hpp
deleted file mode 100644
index 21095e7..0000000
--- a/boost/fusion/iterator/segmented_iterator.hpp
+++ /dev/null
@@ -1,15 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2011 Eric Niebler
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(BOOST_FUSION_SEGMENTED_ITERATOR_HPP_INCLUDED)
-#define BOOST_FUSION_SEGMENTED_ITERATOR_HPP_INCLUDED
-
-#include <boost/fusion/iterator/detail/segmented_iterator.hpp>
-#include <boost/fusion/iterator/detail/segmented_next_impl.hpp>
-#include <boost/fusion/sequence/intrinsic/begin.hpp>
-#include <boost/fusion/container/list/cons.hpp>
-
-#endif
diff --git a/boost/fusion/iterator/value_of.hpp b/boost/fusion/iterator/value_of.hpp
deleted file mode 100644
index fe0cd56..0000000
--- a/boost/fusion/iterator/value_of.hpp
+++ /dev/null
@@ -1,57 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_VALUE_OF_05052005_1126)
-#define FUSION_VALUE_OF_05052005_1126
-
-#include <boost/fusion/support/iterator_base.hpp>
-#include <boost/fusion/support/tag_of.hpp>
-
-namespace boost { namespace fusion
-{
-    // Special tags:
-    struct iterator_facade_tag; // iterator facade tag
-    struct boost_array_iterator_tag; // boost::array iterator tag
-    struct mpl_iterator_tag; // mpl sequence iterator tag
-    struct std_pair_iterator_tag; // std::pair iterator tag
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct value_of_impl
-        {
-            template <typename Iterator>
-            struct apply {};
-        };
-
-        template <>
-        struct value_of_impl<iterator_facade_tag>
-        {
-            template <typename Iterator>
-            struct apply : Iterator::template value_of<Iterator> {};
-        };
-
-        template <>
-        struct value_of_impl<boost_array_iterator_tag>;
-
-        template <>
-        struct value_of_impl<mpl_iterator_tag>;
-
-        template <>
-        struct value_of_impl<std_pair_iterator_tag>;
-    }
-
-    namespace result_of
-    {
-        template <typename Iterator>
-        struct value_of
-            : extension::value_of_impl<typename detail::tag_of<Iterator>::type>::
-                template apply<Iterator>
-        {};
-    }
-}}
-
-#endif
diff --git a/boost/fusion/iterator/value_of_data.hpp b/boost/fusion/iterator/value_of_data.hpp
deleted file mode 100644
index 4a8316d..0000000
--- a/boost/fusion/iterator/value_of_data.hpp
+++ /dev/null
@@ -1,42 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2009 Christopher Schmidt
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-
-#ifndef BOOST_FUSION_ITERATOR_VALUE_OF_DATA_HPP
-#define BOOST_FUSION_ITERATOR_VALUE_OF_DATA_HPP
-
-#include <boost/fusion/support/tag_of.hpp>
-
-namespace boost { namespace fusion
-{
-    struct iterator_facade_tag;
-
-    namespace extension
-    {
-        template <typename>
-        struct value_of_data_impl;
-
-        template <>
-        struct value_of_data_impl<iterator_facade_tag>
-        {
-            template <typename It>
-            struct apply
-              : It::template value_of_data<It>
-            {};
-        };
-    }
-
-    namespace result_of
-    {
-        template <typename It>
-        struct value_of_data
-          : extension::value_of_data_impl<typename traits::tag_of<It>::type>::
-                template apply<It>
-        {};
-    }
-}}
-
-#endif
diff --git a/boost/fusion/mpl/begin.hpp b/boost/fusion/mpl/begin.hpp
deleted file mode 100644
index c9f92f8..0000000
--- a/boost/fusion/mpl/begin.hpp
+++ /dev/null
@@ -1,31 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_BEGIN_10022005_1620)
-#define FUSION_BEGIN_10022005_1620
-
-#include <boost/mpl/begin_end.hpp>
-#include <boost/fusion/sequence/intrinsic/begin.hpp>
-#include <boost/fusion/adapted/mpl/detail/begin_impl.hpp>
-#include <boost/fusion/iterator/mpl/fusion_iterator.hpp>
-
-namespace boost { namespace mpl
-{
-    template <typename Tag>
-    struct begin_impl;
-
-    template <>
-    struct begin_impl<fusion::fusion_sequence_tag>
-    {
-        template <typename Sequence>
-        struct apply
-        {
-            typedef fusion_iterator<typename fusion::result_of::begin<Sequence>::type> type;
-        };
-    };
-}}
-
-#endif
diff --git a/boost/fusion/mpl/end.hpp b/boost/fusion/mpl/end.hpp
deleted file mode 100644
index 3de5e18..0000000
--- a/boost/fusion/mpl/end.hpp
+++ /dev/null
@@ -1,31 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_END_10022005_1619)
-#define FUSION_END_10022005_1619
-
-#include <boost/mpl/begin_end.hpp>
-#include <boost/fusion/sequence/intrinsic/end.hpp>
-#include <boost/fusion/adapted/mpl/detail/end_impl.hpp>
-#include <boost/fusion/iterator/mpl/fusion_iterator.hpp>
-
-namespace boost { namespace mpl
-{
-    template <typename Tag>
-    struct end_impl;
-
-    template <>
-    struct end_impl<fusion::fusion_sequence_tag>
-    {
-        template <typename Sequence>
-        struct apply
-        {
-            typedef fusion_iterator<typename fusion::result_of::end<Sequence>::type> type;
-        };
-    };
-}}
-
-#endif
diff --git a/boost/fusion/sequence/comparison.hpp b/boost/fusion/sequence/comparison.hpp
deleted file mode 100644
index 52fd138..0000000
--- a/boost/fusion/sequence/comparison.hpp
+++ /dev/null
@@ -1,17 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_SEQUENCE_COMPARISON_10022005_0615)
-#define FUSION_SEQUENCE_COMPARISON_10022005_0615
-
-#include <boost/fusion/sequence/comparison/equal_to.hpp>
-#include <boost/fusion/sequence/comparison/greater.hpp>
-#include <boost/fusion/sequence/comparison/greater_equal.hpp>
-#include <boost/fusion/sequence/comparison/less.hpp>
-#include <boost/fusion/sequence/comparison/less_equal.hpp>
-#include <boost/fusion/sequence/comparison/not_equal_to.hpp>
-
-#endif
diff --git a/boost/fusion/sequence/comparison/detail/equal_to.hpp b/boost/fusion/sequence/comparison/detail/equal_to.hpp
deleted file mode 100644
index 56cfe1b..0000000
--- a/boost/fusion/sequence/comparison/detail/equal_to.hpp
+++ /dev/null
@@ -1,61 +0,0 @@
-/*=============================================================================
-    Copyright (c) 1999-2003 Jaakko Jarvi
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_EQUAL_TO_05052005_1142)
-#define FUSION_EQUAL_TO_05052005_1142
-
-#include <boost/mpl/bool.hpp>
-#include <boost/fusion/iterator/deref.hpp>
-#include <boost/fusion/iterator/next.hpp>
-#include <boost/fusion/iterator/equal_to.hpp>
-#include <boost/fusion/support/as_const.hpp>
-
-namespace boost { namespace fusion { namespace detail
-{
-    template <typename Seq1, typename Seq2, bool same_size>
-    struct sequence_equal_to
-    {
-        typedef typename result_of::end<Seq1>::type end1_type;
-        typedef typename result_of::end<Seq2>::type end2_type;
-
-        template <typename I1, typename I2>
-        static bool
-        call(I1 const&, I2 const&, mpl::true_)
-        {
-            return true;
-        }
-
-        template <typename I1, typename I2>
-        static bool
-        call(I1 const& a, I2 const& b, mpl::false_)
-        {
-            return extension::as_const(*a) == extension::as_const(*b)
-                && call(fusion::next(a), fusion::next(b));
-        }
-
-        template <typename I1, typename I2>
-        static bool
-        call(I1 const& a, I2 const& b)
-        {
-            typename result_of::equal_to<I1, end1_type>::type eq;
-            return call(a, b, eq);
-        }
-    };
-
-    template <typename Seq1, typename Seq2>
-    struct sequence_equal_to<Seq1, Seq2, false>
-    {
-        template <typename I1, typename I2>
-        static bool
-        call(I1 const& /*a*/, I2 const& /*b*/)
-        {
-            return false;
-        }
-    };
-}}}
-
-#endif
diff --git a/boost/fusion/sequence/comparison/detail/greater.hpp b/boost/fusion/sequence/comparison/detail/greater.hpp
deleted file mode 100644
index e612877..0000000
--- a/boost/fusion/sequence/comparison/detail/greater.hpp
+++ /dev/null
@@ -1,51 +0,0 @@
-/*=============================================================================
-    Copyright (c) 1999-2003 Jaakko Jarvi
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_GREATER_05052005_1142)
-#define FUSION_GREATER_05052005_1142
-
-#include <boost/mpl/bool.hpp>
-#include <boost/fusion/iterator/deref.hpp>
-#include <boost/fusion/iterator/next.hpp>
-#include <boost/fusion/iterator/equal_to.hpp>
-#include <boost/fusion/support/as_const.hpp>
-
-namespace boost { namespace fusion { namespace detail
-{
-    template <typename Seq1, typename Seq2>
-    struct sequence_greater
-    {
-        typedef typename result_of::end<Seq1>::type end1_type;
-        typedef typename result_of::end<Seq2>::type end2_type;
-
-        template <typename I1, typename I2>
-        static bool
-        call(I1 const&, I2 const&, mpl::true_)
-        {
-            return false;
-        }
-
-        template <typename I1, typename I2>
-        static bool
-        call(I1 const& a, I2 const& b, mpl::false_)
-        {
-            return extension::as_const(*a) > extension::as_const(*b) ||
-                (!(extension::as_const(*b) > extension::as_const(*a)) && 
-                 call(fusion::next(a), fusion::next(b)));
-        }
-
-        template <typename I1, typename I2>
-        static bool
-        call(I1 const& a, I2 const& b)
-        {
-            typename result_of::equal_to<I1, end1_type>::type eq;
-            return call(a, b, eq);
-        }
-    };
-}}}
-
-#endif
diff --git a/boost/fusion/sequence/comparison/detail/greater_equal.hpp b/boost/fusion/sequence/comparison/detail/greater_equal.hpp
deleted file mode 100644
index 6d91e27..0000000
--- a/boost/fusion/sequence/comparison/detail/greater_equal.hpp
+++ /dev/null
@@ -1,51 +0,0 @@
-/*=============================================================================
-    Copyright (c) 1999-2003 Jaakko Jarvi
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_GREATER_EQUAL_05052005_1142)
-#define FUSION_GREATER_EQUAL_05052005_1142
-
-#include <boost/mpl/bool.hpp>
-#include <boost/fusion/iterator/deref.hpp>
-#include <boost/fusion/iterator/next.hpp>
-#include <boost/fusion/iterator/equal_to.hpp>
-#include <boost/fusion/support/as_const.hpp>
-
-namespace boost { namespace fusion { namespace detail
-{
-    template <typename Seq1, typename Seq2>
-    struct sequence_greater_equal
-    {
-        typedef typename result_of::end<Seq1>::type end1_type;
-        typedef typename result_of::end<Seq2>::type end2_type;
-
-        template <typename I1, typename I2>
-        static bool
-        call(I1 const&, I2 const&, mpl::true_)
-        {
-            return true;
-        }
-
-        template <typename I1, typename I2>
-        static bool
-        call(I1 const& a, I2 const& b, mpl::false_)
-        {
-            return extension::as_const(*a) >= extension::as_const(*b)
-                && (!(extension::as_const(*b) >= extension::as_const(*a)) || 
-                    call(fusion::next(a), fusion::next(b)));
-        }
-
-        template <typename I1, typename I2>
-        static bool
-        call(I1 const& a, I2 const& b)
-        {
-            typename result_of::equal_to<I1, end1_type>::type eq;
-            return call(a, b, eq);
-        }
-    };
-}}}
-
-#endif
diff --git a/boost/fusion/sequence/comparison/detail/less.hpp b/boost/fusion/sequence/comparison/detail/less.hpp
deleted file mode 100644
index 1342bb1..0000000
--- a/boost/fusion/sequence/comparison/detail/less.hpp
+++ /dev/null
@@ -1,51 +0,0 @@
-/*=============================================================================
-    Copyright (c) 1999-2003 Jaakko Jarvi
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_LESS_05052005_1141)
-#define FUSION_LESS_05052005_1141
-
-#include <boost/mpl/bool.hpp>
-#include <boost/fusion/iterator/deref.hpp>
-#include <boost/fusion/iterator/next.hpp>
-#include <boost/fusion/iterator/equal_to.hpp>
-#include <boost/fusion/support/as_const.hpp>
-
-namespace boost { namespace fusion { namespace detail
-{
-    template <typename Seq1, typename Seq2>
-    struct sequence_less
-    {
-        typedef typename result_of::end<Seq1>::type end1_type;
-        typedef typename result_of::end<Seq2>::type end2_type;
-
-        template <typename I1, typename I2>
-        static bool
-        call(I1 const&, I2 const&, mpl::true_)
-        {
-            return false;
-        }
-
-        template <typename I1, typename I2>
-        static bool
-        call(I1 const& a, I2 const& b, mpl::false_)
-        {
-            return extension::as_const(*a) < extension::as_const(*b) ||
-                (!(extension::as_const(*b) < extension::as_const(*a)) && 
-                 call(fusion::next(a), fusion::next(b)));
-        }
-
-        template <typename I1, typename I2>
-        static bool
-        call(I1 const& a, I2 const& b)
-        {
-            typename result_of::equal_to<I1, end1_type>::type eq;
-            return call(a, b, eq);
-        }
-    };
-}}}
-
-#endif
diff --git a/boost/fusion/sequence/comparison/detail/less_equal.hpp b/boost/fusion/sequence/comparison/detail/less_equal.hpp
deleted file mode 100644
index 5683849..0000000
--- a/boost/fusion/sequence/comparison/detail/less_equal.hpp
+++ /dev/null
@@ -1,51 +0,0 @@
-/*=============================================================================
-    Copyright (c) 1999-2003 Jaakko Jarvi
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_LESS_EQUAL_05052005_1141)
-#define FUSION_LESS_EQUAL_05052005_1141
-
-#include <boost/mpl/bool.hpp>
-#include <boost/fusion/iterator/deref.hpp>
-#include <boost/fusion/iterator/next.hpp>
-#include <boost/fusion/iterator/equal_to.hpp>
-#include <boost/fusion/support/as_const.hpp>
-
-namespace boost { namespace fusion { namespace detail
-{
-    template <typename Seq1, typename Seq2>
-    struct sequence_less_equal
-    {
-        typedef typename result_of::end<Seq1>::type end1_type;
-        typedef typename result_of::end<Seq2>::type end2_type;
-
-        template <typename I1, typename I2>
-        static bool
-        call(I1 const&, I2 const&, mpl::true_)
-        {
-            return true;
-        }
-
-        template <typename I1, typename I2>
-        static bool
-        call(I1 const& a, I2 const& b, mpl::false_)
-        {
-            return extension::as_const(*a) <= extension::as_const(*b)
-                && (!(extension::as_const(*b) <= extension::as_const(*a)) || 
-                    call(fusion::next(a), fusion::next(b)));
-        }
-
-        template <typename I1, typename I2>
-        static bool
-        call(I1 const& a, I2 const& b)
-        {
-            typename result_of::equal_to<I1, end1_type>::type eq;
-            return call(a, b, eq);
-        }
-    };
-}}}
-
-#endif
diff --git a/boost/fusion/sequence/comparison/detail/not_equal_to.hpp b/boost/fusion/sequence/comparison/detail/not_equal_to.hpp
deleted file mode 100644
index 77c2350..0000000
--- a/boost/fusion/sequence/comparison/detail/not_equal_to.hpp
+++ /dev/null
@@ -1,61 +0,0 @@
-/*=============================================================================
-    Copyright (c) 1999-2003 Jaakko Jarvi
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_NOT_EQUAL_TO_05052005_1141)
-#define FUSION_NOT_EQUAL_TO_05052005_1141
-
-#include <boost/mpl/bool.hpp>
-#include <boost/fusion/iterator/deref.hpp>
-#include <boost/fusion/iterator/next.hpp>
-#include <boost/fusion/iterator/equal_to.hpp>
-#include <boost/fusion/support/as_const.hpp>
-
-namespace boost { namespace fusion { namespace detail
-{
-    template <typename Seq1, typename Seq2, bool same_size>
-    struct sequence_not_equal_to
-    {
-        typedef typename result_of::end<Seq1>::type end1_type;
-        typedef typename result_of::end<Seq2>::type end2_type;
-
-        template <typename I1, typename I2>
-        static bool
-        call(I1 const&, I2 const&, mpl::true_)
-        {
-            return false;
-        }
-
-        template <typename I1, typename I2>
-        static bool
-        call(I1 const& a, I2 const& b, mpl::false_)
-        {
-            return extension::as_const(*a) != extension::as_const(*b)
-                || call(fusion::next(a), fusion::next(b));
-        }
-
-        template <typename I1, typename I2>
-        static bool
-        call(I1 const& a, I2 const& b)
-        {
-            typename result_of::equal_to<I1, end1_type>::type eq;
-            return call(a, b, eq);
-        }
-    };
-
-    template <typename Seq1, typename Seq2>
-    struct sequence_not_equal_to<Seq1, Seq2, false>
-    {
-        template <typename I1, typename I2>
-        static bool
-        call(I1 const& a, I2 const& b)
-        {
-            return true;
-        }
-    };
-}}}
-
-#endif
diff --git a/boost/fusion/sequence/comparison/enable_comparison.hpp b/boost/fusion/sequence/comparison/enable_comparison.hpp
deleted file mode 100644
index bd55ac3..0000000
--- a/boost/fusion/sequence/comparison/enable_comparison.hpp
+++ /dev/null
@@ -1,34 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_ENABLE_COMPARISON_09232005_1958)
-#define FUSION_ENABLE_COMPARISON_09232005_1958
-
-#include <boost/mpl/or.hpp>
-#include <boost/mpl/and.hpp>
-#include <boost/mpl/not.hpp>
-#include <boost/mpl/equal_to.hpp>
-#include <boost/fusion/support/sequence_base.hpp>
-#include <boost/fusion/support/is_sequence.hpp>
-#include <boost/fusion/sequence/intrinsic/size.hpp>
-
-namespace boost { namespace fusion { namespace traits
-{
-    template <typename Seq1, typename Seq2, typename Enable = void>
-    struct enable_equality
-        : mpl::or_<traits::is_sequence<Seq1>, traits::is_sequence<Seq2> >
-    {};
-
-    template <typename Seq1, typename Seq2, typename Enable = void>
-    struct enable_comparison
-        : mpl::and_<
-            mpl::or_<traits::is_sequence<Seq1>, traits::is_sequence<Seq2> >
-          , mpl::equal_to<result_of::size<Seq1>, result_of::size<Seq2> >
-        >
-    {};
-}}}
-
-#endif
diff --git a/boost/fusion/sequence/comparison/equal_to.hpp b/boost/fusion/sequence/comparison/equal_to.hpp
deleted file mode 100644
index 9c4e043..0000000
--- a/boost/fusion/sequence/comparison/equal_to.hpp
+++ /dev/null
@@ -1,56 +0,0 @@
-/*=============================================================================
-    Copyright (c) 1999-2003 Jaakko Jarvi
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_EQUAL_TO_05052005_0431)
-#define FUSION_EQUAL_TO_05052005_0431
-
-#include <boost/fusion/sequence/intrinsic/begin.hpp>
-#include <boost/fusion/sequence/intrinsic/end.hpp>
-#include <boost/fusion/sequence/intrinsic/size.hpp>
-#include <boost/fusion/sequence/comparison/detail/equal_to.hpp>
-#include <boost/fusion/sequence/comparison/enable_comparison.hpp>
-#include <boost/config.hpp>
-
-#if defined (BOOST_MSVC)
-#  pragma warning(push)
-#  pragma warning (disable: 4100) // unreferenced formal parameter
-#endif
-
-namespace boost { namespace fusion
-{
-    template <typename Seq1, typename Seq2>
-    inline bool
-    equal_to(Seq1 const& a, Seq2 const& b)
-    {
-        return result_of::size<Seq1>::value == result_of::size<Seq2>::value
-            && detail::sequence_equal_to<
-            Seq1 const, Seq2 const
-            , result_of::size<Seq1>::value == result_of::size<Seq2>::value>::
-            call(fusion::begin(a), fusion::begin(b));
-    }
-
-    namespace operators
-    {
-        template <typename Seq1, typename Seq2>
-        inline typename
-            boost::enable_if<
-                traits::enable_equality<Seq1, Seq2>
-              , bool
-            >::type
-        operator==(Seq1 const& a, Seq2 const& b)
-        {
-            return fusion::equal_to(a, b);
-        }
-    }
-    using operators::operator==;
-}}
-
-#if defined (BOOST_MSVC)
-#  pragma warning(pop)
-#endif
-
-#endif
diff --git a/boost/fusion/sequence/comparison/greater.hpp b/boost/fusion/sequence/comparison/greater.hpp
deleted file mode 100644
index 077138d..0000000
--- a/boost/fusion/sequence/comparison/greater.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-/*=============================================================================
-    Copyright (c) 1999-2003 Jaakko Jarvi
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_GREATER_05052005_0432)
-#define FUSION_GREATER_05052005_0432
-
-#include <boost/fusion/sequence/intrinsic/begin.hpp>
-#include <boost/fusion/sequence/intrinsic/end.hpp>
-#include <boost/fusion/sequence/intrinsic/size.hpp>
-#include <boost/fusion/sequence/comparison/enable_comparison.hpp>
-
-#if defined(FUSION_DIRECT_OPERATOR_USAGE)
-#include <boost/fusion/sequence/comparison/detail/greater.hpp>
-#else
-#include <boost/fusion/sequence/comparison/less.hpp>
-#endif
-
-namespace boost { namespace fusion
-{
-    template <typename Seq1, typename Seq2>
-    inline bool
-    greater(Seq1 const& a, Seq2 const& b)
-    {
-#if defined(FUSION_DIRECT_OPERATOR_USAGE)
-        return detail::sequence_greater<Seq1 const, Seq2 const>::
-            call(fusion::begin(a), fusion::begin(b));
-#else
-        return (b < a);
-#endif
-    }
-
-    namespace operators
-    {
-        template <typename Seq1, typename Seq2>
-        inline typename
-            boost::enable_if<
-                traits::enable_comparison<Seq1, Seq2>
-              , bool
-            >::type
-        operator>(Seq1 const& a, Seq2 const& b)
-        {
-            return fusion::greater(a, b);
-        }
-    }
-    using operators::operator>;
-}}
-
-#endif
diff --git a/boost/fusion/sequence/comparison/greater_equal.hpp b/boost/fusion/sequence/comparison/greater_equal.hpp
deleted file mode 100644
index 90175bc..0000000
--- a/boost/fusion/sequence/comparison/greater_equal.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-/*=============================================================================
-    Copyright (c) 1999-2003 Jaakko Jarvi
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_GREATER_EQUAL_05052005_0432)
-#define FUSION_GREATER_EQUAL_05052005_0432
-
-#include <boost/fusion/sequence/intrinsic/begin.hpp>
-#include <boost/fusion/sequence/intrinsic/end.hpp>
-#include <boost/fusion/sequence/intrinsic/size.hpp>
-#include <boost/fusion/sequence/comparison/enable_comparison.hpp>
-
-#if defined(FUSION_DIRECT_OPERATOR_USAGE)
-#include <boost/fusion/sequence/comparison/detail/greater_equal.hpp>
-#else
-#include <boost/fusion/sequence/comparison/less.hpp>
-#endif
-
-namespace boost { namespace fusion
-{
-    template <typename Seq1, typename Seq2>
-    inline bool
-    greater_equal(Seq1 const& a, Seq2 const& b)
-    {
-#if defined(FUSION_DIRECT_OPERATOR_USAGE)
-        return detail::sequence_greater_equal<Seq1 const, Seq2 const>::
-            call(fusion::begin(a), fusion::begin(b));
-#else
-        return !(a < b);
-#endif
-    }
-
-    namespace operators
-    {
-        template <typename Seq1, typename Seq2>
-        inline typename
-            boost::enable_if<
-                traits::enable_comparison<Seq1, Seq2>
-              , bool
-            >::type
-        operator>=(Seq1 const& a, Seq2 const& b)
-        {
-            return fusion::greater_equal(a, b);
-        }
-    }
-    using operators::operator>=;
-}}
-
-#endif
diff --git a/boost/fusion/sequence/comparison/less.hpp b/boost/fusion/sequence/comparison/less.hpp
deleted file mode 100644
index 944cdcf..0000000
--- a/boost/fusion/sequence/comparison/less.hpp
+++ /dev/null
@@ -1,43 +0,0 @@
-/*=============================================================================
-    Copyright (c) 1999-2003 Jaakko Jarvi
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_LESS_05052005_0432)
-#define FUSION_LESS_05052005_0432
-
-#include <boost/fusion/sequence/intrinsic/begin.hpp>
-#include <boost/fusion/sequence/intrinsic/end.hpp>
-#include <boost/fusion/sequence/intrinsic/size.hpp>
-#include <boost/fusion/sequence/comparison/detail/less.hpp>
-#include <boost/fusion/sequence/comparison/enable_comparison.hpp>
-
-namespace boost { namespace fusion
-{
-    template <typename Seq1, typename Seq2>
-    inline bool
-    less(Seq1 const& a, Seq2 const& b)
-    {
-        return detail::sequence_less<Seq1 const, Seq2 const>::
-            call(fusion::begin(a), fusion::begin(b));
-    }
-
-    namespace operators
-    {
-        template <typename Seq1, typename Seq2>
-        inline typename
-            boost::enable_if<
-                traits::enable_comparison<Seq1, Seq2>
-              , bool
-            >::type
-        operator<(Seq1 const& a, Seq2 const& b)
-        {
-            return fusion::less(a, b);
-        }
-    }
-    using operators::operator<;
-}}
-
-#endif
diff --git a/boost/fusion/sequence/comparison/less_equal.hpp b/boost/fusion/sequence/comparison/less_equal.hpp
deleted file mode 100644
index 0e5d23a..0000000
--- a/boost/fusion/sequence/comparison/less_equal.hpp
+++ /dev/null
@@ -1,81 +0,0 @@
-/*=============================================================================
-    Copyright (c) 1999-2003 Jaakko Jarvi
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_LESS_EQUAL_05052005_0432)
-#define FUSION_LESS_EQUAL_05052005_0432
-
-#include <boost/fusion/sequence/intrinsic/begin.hpp>
-#include <boost/fusion/sequence/intrinsic/end.hpp>
-#include <boost/fusion/sequence/intrinsic/size.hpp>
-#include <boost/fusion/sequence/comparison/enable_comparison.hpp>
-#include <boost/fusion/support/is_sequence.hpp>
-
-#if defined(FUSION_DIRECT_OPERATOR_USAGE)
-#include <boost/fusion/sequence/comparison/detail/less_equal.hpp>
-#else
-#include <boost/fusion/sequence/comparison/less.hpp>
-#endif
-
-namespace boost { namespace fusion
-{
-    template <typename Seq1, typename Seq2>
-    inline bool
-    less_equal(Seq1 const& a, Seq2 const& b)
-    {
-#if defined(FUSION_DIRECT_OPERATOR_USAGE)
-        return detail::sequence_less_equal<Seq1 const, Seq2 const>::
-            call(fusion::begin(a), fusion::begin(b));
-#else
-        return !(b < a);
-#endif
-    }
-
-    namespace operators
-    {
-#if defined(BOOST_MSVC) && (BOOST_MSVC <= 1400)
-// Workaround for  VC8.0 and VC7.1
-        template <typename Seq1, typename Seq2>
-        inline bool
-        operator<=(sequence_base<Seq1> const& a, sequence_base<Seq2> const& b)
-        {
-            return less_equal(a.derived(), b.derived());
-        }
-
-        template <typename Seq1, typename Seq2>
-        inline typename disable_if<traits::is_native_fusion_sequence<Seq2>, bool>::type
-        operator<=(sequence_base<Seq1> const& a, Seq2 const& b)
-        {
-            return less_equal(a.derived(), b);
-        }
-
-        template <typename Seq1, typename Seq2>
-        inline typename disable_if<traits::is_native_fusion_sequence<Seq1>, bool>::type
-        operator<=(Seq1 const& a, sequence_base<Seq2> const& b)
-        {
-            return less_equal(a, b.derived());
-        }
-
-#else
-// Somehow VC8.0 and VC7.1 does not like this code
-// but barfs somewhere else.
-
-        template <typename Seq1, typename Seq2>
-        inline typename
-            boost::enable_if<
-                traits::enable_comparison<Seq1, Seq2>
-              , bool
-            >::type
-        operator<=(Seq1 const& a, Seq2 const& b)
-        {
-            return fusion::less_equal(a, b);
-        }
-#endif
-    }
-    using operators::operator<=;
-}}
-
-#endif
diff --git a/boost/fusion/sequence/comparison/not_equal_to.hpp b/boost/fusion/sequence/comparison/not_equal_to.hpp
deleted file mode 100644
index 14ef25d..0000000
--- a/boost/fusion/sequence/comparison/not_equal_to.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-/*=============================================================================
-    Copyright (c) 1999-2003 Jaakko Jarvi
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_NOT_EQUAL_TO_05052005_0431)
-#define FUSION_NOT_EQUAL_TO_05052005_0431
-
-#include <boost/fusion/sequence/intrinsic/begin.hpp>
-#include <boost/fusion/sequence/intrinsic/end.hpp>
-#include <boost/fusion/sequence/intrinsic/size.hpp>
-#include <boost/fusion/sequence/comparison/enable_comparison.hpp>
-
-#if defined(FUSION_DIRECT_OPERATOR_USAGE)
-#include <boost/fusion/sequence/comparison/detail/not_equal_to.hpp>
-#else
-#include <boost/fusion/sequence/comparison/equal_to.hpp>
-#endif
-
-namespace boost { namespace fusion
-{
-    template <typename Seq1, typename Seq2>
-    inline bool
-    not_equal_to(Seq1 const& a, Seq2 const& b)
-    {
-#if defined(FUSION_DIRECT_OPERATOR_USAGE)
-        return result_of::size<Seq1>::value != result_of::size<Seq2>::value
-            || detail::sequence_not_equal_to<
-            Seq1 const, Seq2 const
-            , result_of::size<Seq1>::value == result_of::size<Seq2>::value>::
-            call(fusion::begin(a), fusion::begin(b));
-#else
-        return !(a == b);
-#endif
-    }
-
-    namespace operators
-    {
-        template <typename Seq1, typename Seq2>
-        inline typename
-            boost::enable_if<
-                traits::enable_equality<Seq1, Seq2>
-              , bool
-            >::type
-        operator!=(Seq1 const& a, Seq2 const& b)
-        {
-            return fusion::not_equal_to(a, b);
-        }
-    }
-    using operators::operator!=;
-}}
-
-#endif
diff --git a/boost/fusion/sequence/intrinsic/at.hpp b/boost/fusion/sequence/intrinsic/at.hpp
deleted file mode 100644
index 92da7bb..0000000
--- a/boost/fusion/sequence/intrinsic/at.hpp
+++ /dev/null
@@ -1,111 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_AT_05042005_0722)
-#define FUSION_AT_05042005_0722
-
-#include <boost/mpl/int.hpp>
-#include <boost/type_traits/is_const.hpp>
-#include <boost/fusion/sequence/intrinsic_fwd.hpp>
-#include <boost/fusion/support/tag_of.hpp>
-#include <boost/fusion/support/detail/access.hpp>
-
-namespace boost { namespace fusion
-{
-    // Special tags:
-    struct sequence_facade_tag;
-    struct boost_tuple_tag; // boost::tuples::tuple tag
-    struct boost_array_tag; // boost::array tag
-    struct mpl_sequence_tag; // mpl sequence tag
-    struct std_pair_tag; // std::pair tag
-    struct std_tuple_tag; // std::tuple tag
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct at_impl
-        {
-            template <typename Sequence, typename N>
-            struct apply;
-        };
-
-        template <>
-        struct at_impl<sequence_facade_tag>
-        {
-            template <typename Sequence, typename N>
-            struct apply : Sequence::template at<Sequence, N> {};
-        };
-
-        template <>
-        struct at_impl<boost_tuple_tag>;
-
-        template <>
-        struct at_impl<boost_array_tag>;
-
-        template <>
-        struct at_impl<mpl_sequence_tag>;
-
-        template <>
-        struct at_impl<std_pair_tag>;
-
-        template <>
-        struct at_impl<std_tuple_tag>;
-    }
-
-    namespace result_of
-    {
-        template <typename Sequence, typename N>
-        struct at
-            : extension::at_impl<typename detail::tag_of<Sequence>::type>::
-                template apply<Sequence, N>
-        {};
-
-        template <typename Sequence, int N>
-        struct at_c
-            : at<Sequence, mpl::int_<N> >
-        {};
-    }
-
-
-    template <typename N, typename Sequence>
-    inline typename
-        lazy_disable_if<
-            is_const<Sequence>
-          , result_of::at<Sequence, N>
-        >::type
-    at(Sequence& seq)
-    {
-        return result_of::at<Sequence, N>::call(seq);
-    }
-
-    template <typename N, typename Sequence>
-    inline typename result_of::at<Sequence const, N>::type
-    at(Sequence const& seq)
-    {
-        return result_of::at<Sequence const, N>::call(seq);
-    }
-
-    template <int N, typename Sequence>
-    inline typename
-        lazy_disable_if<
-            is_const<Sequence>
-          , result_of::at_c<Sequence, N>
-        >::type
-    at_c(Sequence& seq)
-    {
-        return fusion::at<mpl::int_<N> >(seq);
-    }
-
-    template <int N, typename Sequence>
-    inline typename result_of::at_c<Sequence const, N>::type
-    at_c(Sequence const& seq)
-    {
-        return fusion::at<mpl::int_<N> >(seq);
-    }
-}}
-
-#endif
-
diff --git a/boost/fusion/sequence/intrinsic/begin.hpp b/boost/fusion/sequence/intrinsic/begin.hpp
deleted file mode 100644
index 7a7ecf6..0000000
--- a/boost/fusion/sequence/intrinsic/begin.hpp
+++ /dev/null
@@ -1,95 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_BEGIN_04052005_1132)
-#define FUSION_BEGIN_04052005_1132
-
-#include <boost/blank.hpp>
-#include <boost/utility/enable_if.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/fusion/sequence/intrinsic_fwd.hpp>
-#include <boost/fusion/support/tag_of.hpp>
-#include <boost/fusion/support/is_sequence.hpp>
-#include <boost/fusion/support/is_segmented.hpp>
-#include <boost/fusion/sequence/intrinsic/detail/segmented_begin.hpp>
-
-namespace boost { namespace fusion
-{
-    // Special tags:
-    struct sequence_facade_tag; // iterator facade tag
-    struct boost_tuple_tag; // boost::tuples::tuple tag
-    struct boost_array_tag; // boost::array tag
-    struct mpl_sequence_tag; // mpl sequence tag
-    struct std_pair_tag; // std::pair tag
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct begin_impl
-        {
-            template <typename Sequence>
-            struct apply
-              : mpl::if_<
-                    traits::is_segmented<Sequence>
-                  , detail::segmented_begin<Sequence>
-                  , blank
-                >::type
-            {};
-        };
-
-        template <>
-        struct begin_impl<sequence_facade_tag>
-        {
-            template <typename Sequence>
-            struct apply : Sequence::template begin<Sequence> {};
-        };
-
-        template <>
-        struct begin_impl<boost_tuple_tag>;
-
-        template <>
-        struct begin_impl<boost_array_tag>;
-
-        template <>
-        struct begin_impl<mpl_sequence_tag>;
-
-        template <>
-        struct begin_impl<std_pair_tag>;
-    }
-
-    namespace result_of
-    {
-        template <typename Sequence>
-        struct begin
-            : extension::begin_impl<typename detail::tag_of<Sequence>::type>::
-                template apply<Sequence>
-        {};
-    }
-
-    template <typename Sequence>
-    inline typename
-        lazy_enable_if<
-            traits::is_sequence<Sequence>
-          , result_of::begin<Sequence>
-        >::type const
-    begin(Sequence& seq)
-    {
-        return result_of::begin<Sequence>::call(seq);
-    }
-
-    template <typename Sequence>
-    inline typename
-        lazy_enable_if<
-            traits::is_sequence<Sequence>
-          , result_of::begin<Sequence const>
-        >::type const
-    begin(Sequence const& seq)
-    {
-        return result_of::begin<Sequence const>::call(seq);
-    }
-}}
-
-#endif
diff --git a/boost/fusion/sequence/intrinsic/detail/segmented_begin.hpp b/boost/fusion/sequence/intrinsic/detail/segmented_begin.hpp
deleted file mode 100644
index 63d3edc..0000000
--- a/boost/fusion/sequence/intrinsic/detail/segmented_begin.hpp
+++ /dev/null
@@ -1,43 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2011 Eric Niebler
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(BOOST_FUSION_SEGMENTED_BEGIN_HPP_INCLUDED)
-#define BOOST_FUSION_SEGMENTED_BEGIN_HPP_INCLUDED
-
-#include <boost/fusion/sequence/intrinsic/detail/segmented_begin_impl.hpp>
-#include <boost/fusion/iterator/segmented_iterator.hpp>
-#include <boost/fusion/view/iterator_range.hpp>
-#include <boost/fusion/sequence/intrinsic/begin.hpp>
-#include <boost/fusion/sequence/intrinsic/end.hpp>
-#include <boost/fusion/sequence/intrinsic/empty.hpp>
-#include <boost/fusion/container/list/cons.hpp>
-
-namespace boost { namespace fusion { namespace detail
-{
-    //auto segmented_begin( seq )
-    //{
-    //    return make_segmented_iterator( segmented_begin_impl( seq, nil_ ) );
-    //}
-
-    template <typename Sequence, typename Nil_ = fusion::nil_>
-    struct segmented_begin
-    {
-        typedef
-            segmented_iterator<
-                typename segmented_begin_impl<Sequence, Nil_>::type
-            >
-        type;
-
-        static type call(Sequence& seq)
-        {
-            return type(
-                segmented_begin_impl<Sequence, Nil_>::call(seq, Nil_()));
-        }
-    };
-
-}}}
-
-#endif
diff --git a/boost/fusion/sequence/intrinsic/detail/segmented_begin_impl.hpp b/boost/fusion/sequence/intrinsic/detail/segmented_begin_impl.hpp
deleted file mode 100644
index 5069432..0000000
--- a/boost/fusion/sequence/intrinsic/detail/segmented_begin_impl.hpp
+++ /dev/null
@@ -1,92 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2011 Eric Niebler
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(BOOST_FUSION_SEGMENTED_BEGIN_IMPL_HPP_INCLUDED)
-#define BOOST_FUSION_SEGMENTED_BEGIN_IMPL_HPP_INCLUDED
-
-#include <boost/type_traits/remove_const.hpp>
-#include <boost/fusion/container/list/cons_fwd.hpp>
-#include <boost/fusion/sequence/intrinsic_fwd.hpp>
-#include <boost/fusion/support/is_segmented.hpp>
-#include <boost/fusion/sequence/intrinsic/detail/segmented_end_impl.hpp>
-#include <boost/fusion/support/detail/segmented_fold_until_impl.hpp>
-
-namespace boost { namespace fusion
-{
-    template <typename First, typename Last>
-    struct iterator_range;
-}}
-
-namespace boost { namespace fusion { namespace detail
-{
-    struct segmented_begin_fun
-    {
-        template <typename Sequence, typename State, typename Context>
-        struct apply
-        {
-            typedef
-                iterator_range<
-                    typename fusion::result_of::begin<Sequence>::type
-                  , typename fusion::result_of::end<Sequence>::type
-                >
-            range_type;
-
-            typedef cons<range_type, Context> type;
-            typedef mpl::false_ continue_type;
-
-            static type call(Sequence& seq, State const&, Context const& context, segmented_begin_fun)
-            {
-                return type(range_type(fusion::begin(seq), fusion::end(seq)), context);
-            }
-        };
-    };
-
-    template <typename Sequence, typename Stack, bool IsSegmented = traits::is_segmented<Sequence>::type::value>
-    struct segmented_begin_impl_aux
-    {
-        typedef
-            segmented_end_impl<Sequence, Stack>
-        end_impl;
-
-        typedef
-            segmented_fold_until_impl<
-                Sequence
-              , typename end_impl::type
-              , Stack
-              , segmented_begin_fun
-            >
-        fold_impl;
-
-        typedef typename fold_impl::type type;
-
-        static type call(Sequence& seq, Stack const& stack)
-        {
-            return fold_impl::call(seq, end_impl::call(seq, stack), stack, segmented_begin_fun());
-        }
-    };
-
-    template <typename Sequence, typename Stack>
-    struct segmented_begin_impl_aux<Sequence, Stack, false>
-    {
-        typedef typename result_of::begin<Sequence>::type  begin_type;
-        typedef typename result_of::end<Sequence>::type    end_type;
-        typedef iterator_range<begin_type, end_type>    pair_type;
-        typedef cons<pair_type, Stack>                  type;
-
-        static type call(Sequence& seq, Stack stack)
-        {
-            return type(pair_type(fusion::begin(seq), fusion::end(seq)), stack);
-        }
-    };
-
-    template <typename Sequence, typename Stack>
-    struct segmented_begin_impl
-      : segmented_begin_impl_aux<Sequence, Stack>
-    {};
-
-}}}
-
-#endif
diff --git a/boost/fusion/sequence/intrinsic/detail/segmented_end.hpp b/boost/fusion/sequence/intrinsic/detail/segmented_end.hpp
deleted file mode 100644
index 32c0108..0000000
--- a/boost/fusion/sequence/intrinsic/detail/segmented_end.hpp
+++ /dev/null
@@ -1,39 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2011 Eric Niebler
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(BOOST_FUSION_SEGMENTED_END_HPP_INCLUDED)
-#define BOOST_FUSION_SEGMENTED_END_HPP_INCLUDED
-
-#include <boost/fusion/sequence/intrinsic/detail/segmented_end_impl.hpp>
-#include <boost/fusion/iterator/segmented_iterator.hpp>
-#include <boost/fusion/container/list/cons.hpp>
-
-namespace boost { namespace fusion { namespace detail
-{
-    //auto segmented_end( seq )
-    //{
-    //    return make_segmented_iterator( segmented_end_impl( seq ) );
-    //}
-
-    template <typename Sequence, typename Nil_ = fusion::nil_>
-    struct segmented_end
-    {
-        typedef
-            segmented_iterator<
-                typename segmented_end_impl<Sequence, Nil_>::type
-            >
-        type;
-
-        static type call(Sequence & seq)
-        {
-            return type(
-                segmented_end_impl<Sequence, Nil_>::call(seq, Nil_()));
-        }
-    };
-
-}}}
-
-#endif
diff --git a/boost/fusion/sequence/intrinsic/detail/segmented_end_impl.hpp b/boost/fusion/sequence/intrinsic/detail/segmented_end_impl.hpp
deleted file mode 100644
index 149027b..0000000
--- a/boost/fusion/sequence/intrinsic/detail/segmented_end_impl.hpp
+++ /dev/null
@@ -1,59 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2011 Eric Niebler
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(BOOST_FUSION_SEGMENTED_END_IMPL_HPP_INCLUDED)
-#define BOOST_FUSION_SEGMENTED_END_IMPL_HPP_INCLUDED
-
-#include <boost/mpl/assert.hpp>
-#include <boost/type_traits/add_const.hpp>
-#include <boost/type_traits/remove_reference.hpp>
-#include <boost/fusion/sequence/intrinsic_fwd.hpp>
-#include <boost/fusion/container/list/cons_fwd.hpp>
-#include <boost/fusion/support/is_segmented.hpp>
-
-namespace boost { namespace fusion
-{
-    template <typename First, typename Last>
-    struct iterator_range;
-}}
-
-namespace boost { namespace fusion { namespace detail
-{
-    //auto segmented_end_impl( seq, stack )
-    //{
-    //    assert(is_segmented(seq));
-    //    auto it = end(segments(seq));
-    //    return cons(iterator_range(it, it), stack);
-    //}
-
-    template <typename Sequence, typename Stack>
-    struct segmented_end_impl
-    {
-        BOOST_MPL_ASSERT((traits::is_segmented<Sequence>));
-
-        typedef
-            typename result_of::end<
-                typename remove_reference<
-                    typename add_const<
-                        typename result_of::segments<Sequence>::type
-                    >::type
-                >::type
-            >::type
-        end_type;
-
-        typedef iterator_range<end_type, end_type>  pair_type;
-        typedef cons<pair_type, Stack>              type;
-
-        static type call(Sequence & seq, Stack stack)
-        {
-            end_type end = fusion::end(fusion::segments(seq));
-            return type(pair_type(end, end), stack);
-        }
-    };
-
-}}}
-
-#endif
diff --git a/boost/fusion/sequence/intrinsic/detail/segmented_size.hpp b/boost/fusion/sequence/intrinsic/detail/segmented_size.hpp
deleted file mode 100644
index 03cef28..0000000
--- a/boost/fusion/sequence/intrinsic/detail/segmented_size.hpp
+++ /dev/null
@@ -1,54 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2011 Eric Niebler
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(BOOST_FUSION_SEGMENTED_SIZE_08112006_1141)
-#define BOOST_FUSION_SEGMENTED_SIZE_08112006_1141
-
-#include <boost/type_traits/add_const.hpp>
-#include <boost/type_traits/remove_reference.hpp>
-#include <boost/mpl/fold.hpp>
-#include <boost/mpl/plus.hpp>
-#include <boost/mpl/size_t.hpp>
-#include <boost/mpl/placeholders.hpp>
-#include <boost/fusion/sequence/intrinsic_fwd.hpp>
-#include <boost/fusion/mpl/begin.hpp>
-#include <boost/fusion/mpl/end.hpp>
-#include <boost/fusion/support/is_segmented.hpp>
-
-namespace boost { namespace fusion { namespace detail
-{
-    ///////////////////////////////////////////////////////////////////////////
-    // calculates the size of any segmented data structure.
-    template<typename Sequence>
-    struct segmented_size;
-
-    ///////////////////////////////////////////////////////////////////////////
-    template<typename Sequence, bool IsSegmented = traits::is_segmented<Sequence>::value>
-    struct segmented_size_impl
-      : mpl::fold<
-            typename remove_reference<
-                typename add_const<
-                    typename result_of::segments<Sequence>::type
-                >::type
-            >::type
-          , mpl::size_t<0>
-          , mpl::plus<mpl::_1, segmented_size<remove_reference<mpl::_2> > >
-        >::type
-    {};
-
-    template<typename Sequence>
-    struct segmented_size_impl<Sequence, false>
-      : result_of::size<Sequence>::type
-    {};
-
-    template<typename Sequence>
-    struct segmented_size
-      : segmented_size_impl<Sequence>
-    {};
-
-}}}
-
-#endif
diff --git a/boost/fusion/sequence/intrinsic/empty.hpp b/boost/fusion/sequence/intrinsic/empty.hpp
deleted file mode 100644
index a9928ab..0000000
--- a/boost/fusion/sequence/intrinsic/empty.hpp
+++ /dev/null
@@ -1,61 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_EMPTY_09162005_0335)
-#define FUSION_EMPTY_09162005_0335
-
-#include <boost/fusion/sequence/intrinsic_fwd.hpp>
-#include <boost/fusion/sequence/intrinsic/size.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/fusion/support/tag_of.hpp>
-
-namespace boost { namespace fusion
-{
-    // Special tags:
-    struct sequence_facade_tag;
-    struct mpl_sequence_tag; // mpl sequence tag
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct empty_impl
-        {
-            template <typename Sequence>
-            struct apply 
-                : mpl::bool_<(result_of::size<Sequence>::value == 0)>
-            {};
-        };
-
-        template <>
-        struct empty_impl<sequence_facade_tag>
-        {
-            template <typename Sequence>
-            struct apply : Sequence::template empty<Sequence> {};
-        };
-
-        template <>
-        struct empty_impl<mpl_sequence_tag>;
-    }
-
-    namespace result_of
-    {
-        template <typename Sequence>
-        struct empty 
-            : extension::empty_impl<typename detail::tag_of<Sequence>::type>::
-                template apply<Sequence>
-        {};
-    }
-
-    template <typename Sequence>
-    inline typename result_of::empty<Sequence>::type
-    empty(Sequence const&)
-    {
-        typedef typename result_of::empty<Sequence>::type result;
-        return result();
-    }
-}}
-
-#endif
diff --git a/boost/fusion/sequence/intrinsic/end.hpp b/boost/fusion/sequence/intrinsic/end.hpp
deleted file mode 100644
index 995ed7a..0000000
--- a/boost/fusion/sequence/intrinsic/end.hpp
+++ /dev/null
@@ -1,95 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_END_04052005_1141)
-#define FUSION_END_04052005_1141
-
-#include <boost/blank.hpp>
-#include <boost/utility/enable_if.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/fusion/sequence/intrinsic_fwd.hpp>
-#include <boost/fusion/support/tag_of.hpp>
-#include <boost/fusion/support/is_sequence.hpp>
-#include <boost/fusion/support/is_segmented.hpp>
-#include <boost/fusion/sequence/intrinsic/detail/segmented_end.hpp>
-
-namespace boost { namespace fusion
-{
-    // Special tags:
-    struct sequence_facade_tag;
-    struct boost_tuple_tag; // boost::tuples::tuple tag
-    struct boost_array_tag; // boost::array tag
-    struct mpl_sequence_tag; // mpl sequence tag
-    struct std_pair_tag; // std::pair tag
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct end_impl
-        {
-            template <typename Sequence>
-            struct apply
-              : mpl::if_<
-                    traits::is_segmented<Sequence>
-                  , detail::segmented_end<Sequence>
-                  , blank
-                >::type
-            {};
-        };
-
-        template <>
-        struct end_impl<sequence_facade_tag>
-        {
-            template <typename Sequence>
-            struct apply : Sequence::template end<Sequence> {};
-        };
-
-        template <>
-        struct end_impl<boost_tuple_tag>;
-
-        template <>
-        struct end_impl<boost_array_tag>;
-
-        template <>
-        struct end_impl<mpl_sequence_tag>;
-
-        template <>
-        struct end_impl<std_pair_tag>;
-    }
-
-    namespace result_of
-    {
-        template <typename Sequence>
-        struct end
-            : extension::end_impl<typename detail::tag_of<Sequence>::type>::
-                template apply<Sequence>
-        {};
-    }
-
-    template <typename Sequence>
-    inline typename
-        lazy_enable_if<
-            traits::is_sequence<Sequence>
-          , result_of::end<Sequence>
-        >::type const
-    end(Sequence& seq)
-    {
-        return result_of::end<Sequence>::call(seq);
-    }
-
-    template <typename Sequence>
-    inline typename
-        lazy_enable_if<
-            traits::is_sequence<Sequence>
-          , result_of::end<Sequence const>
-        >::type const
-    end(Sequence const& seq)
-    {
-        return result_of::end<Sequence const>::call(seq);
-    }
-}}
-
-#endif
diff --git a/boost/fusion/sequence/intrinsic/segments.hpp b/boost/fusion/sequence/intrinsic/segments.hpp
deleted file mode 100644
index afd5d40..0000000
--- a/boost/fusion/sequence/intrinsic/segments.hpp
+++ /dev/null
@@ -1,76 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2006 Eric Niebler
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(BOOST_FUSION_SEGMENTS_04052005_1141)
-#define BOOST_FUSION_SEGMENTS_04052005_1141
-
-#include <boost/type_traits/is_const.hpp>
-#include <boost/utility/enable_if.hpp>
-#include <boost/fusion/sequence/intrinsic_fwd.hpp>
-#include <boost/fusion/support/tag_of.hpp>
-
-namespace boost { namespace fusion
-{
-    // Special tags:
-    struct sequence_facade_tag;
-    struct iterator_range_tag;
-
-    // segments: returns a sequence of sequences
-    namespace extension
-    {
-        template <typename Tag>
-        struct segments_impl
-        {
-            template <typename Sequence>
-            struct apply {};
-        };
-
-        template <>
-        struct segments_impl<sequence_facade_tag>
-        {
-            template <typename Sequence>
-            struct apply : Sequence::template segments<Sequence> {};
-        }; 
-
-        template <>
-        struct segments_impl<iterator_range_tag>;
-    }
-
-    namespace result_of
-    {
-        template <typename Sequence>
-        struct segments
-        {
-            typedef typename traits::tag_of<Sequence>::type tag_type;
-
-            typedef typename
-                extension::segments_impl<tag_type>::template apply<Sequence>::type
-            type;
-        };
-    }
-
-    template <typename Sequence>
-    inline typename
-        lazy_disable_if<
-            is_const<Sequence>
-          , result_of::segments<Sequence>
-        >::type
-    segments(Sequence& seq)
-    {
-        typedef typename traits::tag_of<Sequence>::type tag_type;
-        return extension::segments_impl<tag_type>::template apply<Sequence>::call(seq);
-    }
-
-    template <typename Sequence>
-    inline typename result_of::segments<Sequence const>::type
-    segments(Sequence const& seq)
-    {
-        typedef typename traits::tag_of<Sequence const>::type tag_type;
-        return extension::segments_impl<tag_type>::template apply<Sequence const>::call(seq);
-    }
-}}
-
-#endif
diff --git a/boost/fusion/sequence/intrinsic/size.hpp b/boost/fusion/sequence/intrinsic/size.hpp
deleted file mode 100644
index 0a1c165..0000000
--- a/boost/fusion/sequence/intrinsic/size.hpp
+++ /dev/null
@@ -1,88 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_SIZE_05052005_0214)
-#define FUSION_SIZE_05052005_0214
-
-#include <boost/utility/enable_if.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/int.hpp>
-#include <boost/fusion/sequence/intrinsic_fwd.hpp>
-#include <boost/fusion/support/tag_of.hpp>
-#include <boost/fusion/support/is_segmented.hpp>
-#include <boost/fusion/sequence/intrinsic/detail/segmented_size.hpp>
-
-namespace boost { namespace fusion
-{
-    // Special tags:
-    struct sequence_facade_tag;
-    struct boost_tuple_tag; // boost::tuples::tuple tag
-    struct boost_array_tag; // boost::array tag
-    struct mpl_sequence_tag; // mpl sequence tag
-    struct std_pair_tag; // std::pair tag
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct size_impl
-        {
-            template<typename Sequence>
-            struct unsegmented_size : Sequence::size {};
-
-            template <typename Sequence>
-            struct apply
-              : mpl::if_<
-                    traits::is_segmented<Sequence>
-                  , detail::segmented_size<Sequence>
-                  , unsegmented_size<Sequence>
-                >::type
-            {};
-        };
-
-        template <>
-        struct size_impl<sequence_facade_tag>
-        {
-            template <typename Sequence>
-            struct apply : Sequence::template size<Sequence> {};
-        };
- 
-        template <>
-        struct size_impl<boost_tuple_tag>;
- 
-        template <>
-        struct size_impl<boost_array_tag>;
-
-        template <>
-        struct size_impl<mpl_sequence_tag>;
-
-        template <>
-        struct size_impl<std_pair_tag>;
-    }
-
-    namespace result_of
-    {
-        template <typename Sequence>
-        struct size
-            : extension::size_impl<typename detail::tag_of<Sequence>::type>::
-        template apply<Sequence>
-
-        {
-            typedef typename extension::size_impl<typename detail::tag_of<Sequence>::type>::
-            template apply<Sequence>::type size_application;
-            BOOST_STATIC_CONSTANT(int, value = size_application::value);
-        };
-    }
-
-    template <typename Sequence>
-    inline typename result_of::size<Sequence>::type
-    size(Sequence const&)
-    {
-        typedef typename result_of::size<Sequence>::type result;
-        return result();
-    }
-}}
-
-#endif
diff --git a/boost/fusion/sequence/intrinsic/value_at.hpp b/boost/fusion/sequence/intrinsic/value_at.hpp
deleted file mode 100644
index ce314a8..0000000
--- a/boost/fusion/sequence/intrinsic/value_at.hpp
+++ /dev/null
@@ -1,68 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_VALUE_AT_05052005_0229)
-#define FUSION_VALUE_AT_05052005_0229
-
-#include <boost/mpl/int.hpp>
-#include <boost/fusion/sequence/intrinsic_fwd.hpp>
-#include <boost/fusion/support/tag_of.hpp>
-
-namespace boost { namespace fusion
-{
-    // Special tags:
-    struct sequence_facade_tag;
-    struct boost_tuple_tag; // boost::tuples::tuple tag
-    struct boost_array_tag; // boost::array tag
-    struct mpl_sequence_tag; // mpl sequence tag
-    struct std_pair_tag; // std::pair tag
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct value_at_impl
-        {
-            template <typename Sequence, typename N>
-            struct apply;
-        };
-
-        template <>
-        struct value_at_impl<sequence_facade_tag>
-        {
-            template <typename Sequence, typename N>
-            struct apply : Sequence::template value_at<Sequence, N> {};
-        };
-
-        template <>
-        struct value_at_impl<boost_tuple_tag>;
-
-        template <>
-        struct value_at_impl<boost_array_tag>;
-
-        template <>
-        struct value_at_impl<mpl_sequence_tag>;
-
-        template <>
-        struct value_at_impl<std_pair_tag>;
-    }
-
-    namespace result_of
-    {
-        template <typename Sequence, typename N>
-        struct value_at
-            : extension::value_at_impl<typename detail::tag_of<Sequence>::type>::
-                template apply<Sequence, N>
-        {};
-
-        template <typename Sequence, int N>
-        struct value_at_c
-            : fusion::result_of::value_at<Sequence, mpl::int_<N> >
-        {};
-    }
-}}
-
-#endif
-
diff --git a/boost/fusion/sequence/intrinsic_fwd.hpp b/boost/fusion/sequence/intrinsic_fwd.hpp
deleted file mode 100644
index 57409a3..0000000
--- a/boost/fusion/sequence/intrinsic_fwd.hpp
+++ /dev/null
@@ -1,203 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(BOOST_FUSION_SEQUENCE_INTRINSIC_FWD_HPP_INCLUDED)
-#define BOOST_FUSION_SEQUENCE_INTRINSIC_FWD_HPP_INCLUDED
-
-#include <boost/type_traits/is_const.hpp>
-#include <boost/utility/enable_if.hpp>
-#include <boost/fusion/support/is_sequence.hpp>
-
-namespace boost { namespace fusion
-{
-    namespace extension
-    {
-        template <typename Tag>
-        struct at_impl;
-
-        template <typename Tag>
-        struct begin_impl;
-
-        template <typename Tag>
-        struct empty_impl;
-
-        template <typename Tag>
-        struct end_impl;
-
-        template <typename Tag>
-        struct has_key_impl;
-
-        template <typename Tag>
-        struct segments_impl;
-
-        template <typename Tag>
-        struct size_impl;
-
-        template <typename Tag>
-        struct value_at_impl;
-
-        template <typename Tag>
-        struct at_key_impl;
-
-        template <typename Tag>
-        struct value_at_key_impl;
-    }
-
-    namespace result_of
-    {
-        template <typename Sequence, typename N>
-        struct at;
-
-        template <typename Sequence, int N>
-        struct at_c;
-
-        template <typename Sequence>
-        struct back;
-
-        template <typename Sequence>
-        struct begin;
-
-        template <typename Sequence>
-        struct empty;
-
-        template <typename Sequence>
-        struct end;
-
-        template <typename Sequence>
-        struct front;
-
-        template <typename Sequence, typename Key>
-        struct has_key;
-
-        template <typename Sequence>
-        struct segments;
-
-        template <typename Sequence>
-        struct size;
-
-        template <typename Sequence, typename N>
-        struct value_at;
-
-        template <typename Sequence, int N>
-        struct value_at_c;
-
-        template <typename Sequence, typename Key>
-        struct at_key;
-
-        template <typename Sequence, typename N>
-        struct value_at_key;
-    }
-
-    template <typename N, typename Sequence>
-    typename 
-        lazy_disable_if<
-            is_const<Sequence>
-          , result_of::at<Sequence, N>
-        >::type
-    at(Sequence& seq);
-
-    template <typename N, typename Sequence>
-    typename result_of::at<Sequence const, N>::type
-    at(Sequence const& seq);
-
-    template <int N, typename Sequence>
-    typename 
-        lazy_disable_if<
-            is_const<Sequence>
-          , result_of::at_c<Sequence, N>
-        >::type
-    at_c(Sequence& seq);
-
-    template <int N, typename Sequence>
-    typename result_of::at_c<Sequence const, N>::type
-    at_c(Sequence const& seq);
-
-    template <typename Sequence>
-    typename result_of::back<Sequence>::type
-    back(Sequence& seq);
-
-    template <typename Sequence>
-    typename result_of::back<Sequence const>::type
-    back(Sequence const& seq);
-
-    template <typename Sequence>
-    typename
-        lazy_enable_if<
-            traits::is_sequence<Sequence>
-          , result_of::begin<Sequence>
-        >::type const
-    begin(Sequence& seq);
-
-    template <typename Sequence>
-    typename
-        lazy_enable_if<
-            traits::is_sequence<Sequence>
-          , result_of::begin<Sequence const>
-        >::type const
-    begin(Sequence const& seq);
-
-    template <typename Sequence>
-    typename result_of::empty<Sequence>::type
-    empty(Sequence const&);
-
-    template <typename Sequence>
-    typename
-        lazy_enable_if<
-            traits::is_sequence<Sequence>
-          , result_of::end<Sequence>
-        >::type const
-    end(Sequence& seq);
-
-    template <typename Sequence>
-    typename
-        lazy_enable_if<
-            traits::is_sequence<Sequence>
-          , result_of::end<Sequence const>
-        >::type const
-    end(Sequence const& seq);
-
-    template <typename Sequence>
-    typename result_of::front<Sequence>::type
-    front(Sequence& seq);
-
-    template <typename Sequence>
-    typename result_of::front<Sequence const>::type
-    front(Sequence const& seq);
-
-    template <typename Key, typename Sequence>
-    typename result_of::has_key<Sequence, Key>::type
-    has_key(Sequence const& seq);
-
-    template <typename Sequence>
-    typename
-        lazy_disable_if<
-            is_const<Sequence>
-          , result_of::segments<Sequence>
-        >::type
-    segments(Sequence& seq);
-
-    template <typename Sequence>
-    typename result_of::segments<Sequence const>::type
-    segments(Sequence const& seq);
-
-    template <typename Sequence>
-    typename result_of::size<Sequence>::type
-    size(Sequence const&);
-
-    template <typename Key, typename Sequence>
-    typename 
-        lazy_disable_if<
-            is_const<Sequence>
-          , result_of::at_key<Sequence, Key>
-        >::type
-    at_key(Sequence& seq);
-
-    template <typename Key, typename Sequence>
-    typename result_of::at_key<Sequence const, Key>::type
-    at_key(Sequence const& seq);
-}}
-
-#endif
diff --git a/boost/fusion/sequence/io.hpp b/boost/fusion/sequence/io.hpp
deleted file mode 100644
index 1c5925d..0000000
--- a/boost/fusion/sequence/io.hpp
+++ /dev/null
@@ -1,13 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_SEQUENCE_IO_10032005_0836)
-#define FUSION_SEQUENCE_IO_10032005_0836
-
-#include <boost/fusion/sequence/io/in.hpp>
-#include <boost/fusion/sequence/io/out.hpp>
-
-#endif
diff --git a/boost/fusion/sequence/io/detail/in.hpp b/boost/fusion/sequence/io/detail/in.hpp
deleted file mode 100644
index 38c4dd5..0000000
--- a/boost/fusion/sequence/io/detail/in.hpp
+++ /dev/null
@@ -1,85 +0,0 @@
-/*=============================================================================
-    Copyright (c) 1999-2003 Jaakko Jarvi
-    Copyright (c) 1999-2003 Jeremiah Willcock
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_IN_05052005_0121)
-#define FUSION_IN_05052005_0121
-
-#include <istream>
-#include <boost/fusion/sequence/io/detail/manip.hpp>
-
-#include <boost/mpl/bool.hpp>
-#include <boost/fusion/sequence/intrinsic/begin.hpp>
-#include <boost/fusion/sequence/intrinsic/end.hpp>
-#include <boost/fusion/iterator/deref.hpp>
-#include <boost/fusion/iterator/next.hpp>
-#include <boost/fusion/iterator/equal_to.hpp>
-
-namespace boost { namespace fusion { namespace detail
-{
-    template <typename Tag>
-    struct delimiter_in
-    {
-        // read a delimiter
-        template <typename IS>
-        static void
-        read(IS& is, char const* delim, mpl::false_ = mpl::false_())
-        {
-            detail::string_ios_manip<Tag, IS> manip(is);
-            manip.read(delim);
-        }
-
-        template <typename IS>
-        static void
-        read(IS&, char const*, mpl::true_)
-        {
-        }
-    };
-
-    struct read_sequence_loop
-    {
-        template <typename IS, typename First, typename Last>
-        static void
-        call(IS&, First const&, Last const&, mpl::true_)
-        {
-        }
-
-        template <typename IS, typename First, typename Last>
-        static void
-        call(IS& is, First const& first, Last const& last, mpl::false_)
-        {
-            result_of::equal_to<
-                typename result_of::next<First>::type
-              , Last
-            >
-            is_last;
-
-            is >> *first;
-            delimiter_in<tuple_delimiter_tag>::read(is, " ", is_last);
-            call(is, fusion::next(first), last, is_last);
-        }
-
-        template <typename IS, typename First, typename Last>
-        static void
-        call(IS& is, First const& first, Last const& last)
-        {
-            result_of::equal_to<First, Last> eq;
-            call(is, first, last, eq);
-        }
-    };
-
-    template <typename IS, typename Sequence>
-    inline void
-    read_sequence(IS& is, Sequence& seq)
-    {
-        delimiter_in<tuple_open_tag>::read(is, "(");
-        read_sequence_loop::call(is, fusion::begin(seq), fusion::end(seq));
-        delimiter_in<tuple_close_tag>::read(is, ")");
-    }
-}}}
-
-#endif
diff --git a/boost/fusion/sequence/io/detail/manip.hpp b/boost/fusion/sequence/io/detail/manip.hpp
deleted file mode 100644
index 371d0d2..0000000
--- a/boost/fusion/sequence/io/detail/manip.hpp
+++ /dev/null
@@ -1,320 +0,0 @@
-/*=============================================================================
-    Copyright (c) 1999-2003 Jeremiah Willcock
-    Copyright (c) 1999-2003 Jaakko Jarvi
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_MANIP_05052005_1200)
-#define FUSION_MANIP_05052005_1200
-
-#include <boost/config.hpp>
-#include <string>
-#include <vector>
-#include <cctype>
-
-// Tuple I/O manipulators
-
-#define FUSION_GET_CHAR_TYPE(T) typename T::char_type
-#define FUSION_GET_TRAITS_TYPE(T) typename T::traits_type
-
-#if defined (BOOST_NO_TEMPLATED_STREAMS)
-#define FUSION_STRING_OF_STREAM(Stream) std::string
-#else
-#define FUSION_STRING_OF_STREAM(Stream)                                         \
-    std::basic_string<                                                          \
-        FUSION_GET_CHAR_TYPE(Stream)                                            \
-      , FUSION_GET_TRAITS_TYPE(Stream)                                          \
-    >
-#endif
-
-//$$$ these should be part of the public API$$$
-//$$$ rename tuple_open, tuple_close and tuple_delimiter to 
-//    open, close and delimeter and add these synonyms to the
-//    TR1 tuple module.
-
-namespace boost { namespace fusion
-{
-    namespace detail
-    {
-        template <typename Tag>
-        int get_xalloc_index(Tag* = 0)
-        {
-            // each Tag will have a unique index
-            static int index = std::ios::xalloc();
-            return index;
-        }
-
-        template <typename Stream, typename Tag, typename T>
-        struct stream_data
-        {
-            struct arena
-            {
-                ~arena()
-                {
-                    for (
-                        typename std::vector<T*>::iterator i = data.begin()
-                      ; i != data.end()
-                      ; ++i)
-                    {
-                        delete *i;
-                    }
-                }
-
-                std::vector<T*> data;
-            };
-
-            static void attach(Stream& stream, T const& data)
-            {
-                static arena ar; // our arena
-                ar.data.push_back(new T(data));
-                stream.pword(get_xalloc_index<Tag>()) = ar.data.back();
-            }
-
-            static T const* get(Stream& stream)
-            {
-                return (T const*)stream.pword(get_xalloc_index<Tag>());
-            }
-        };
-
-        template <typename Tag, typename Stream>
-        class string_ios_manip
-        {
-        public:
-
-            typedef FUSION_STRING_OF_STREAM(Stream) string_type;
-
-            typedef stream_data<Stream, Tag, string_type> stream_data_t;
-
-            string_ios_manip(Stream& str_)
-                : stream(str_)
-            {}
-
-            void
-            set(string_type const& s)
-            {
-                stream_data_t::attach(stream, s);
-            }
-
-            void
-            print(char const* default_) const
-            {
-                // print a delimiter
-                string_type const* p = stream_data_t::get(stream);
-                if (p)
-                    stream << *p;
-                else
-                    stream << default_;
-            }
-
-            void
-            read(char const* default_) const
-            {
-                // read a delimiter
-                string_type const* p = stream_data_t::get(stream);
-                using namespace std;
-                ws(stream);
-
-                if (p)
-                {
-                    typedef typename string_type::const_iterator iterator;
-                    for (iterator i = p->begin(); i != p->end(); ++i)
-                        check_delim(*i);
-                }
-                else
-                {
-                    while (*default_)
-                        check_delim(*default_++);
-                }
-            }
-
-        private:
-
-            template <typename Char>
-            void
-            check_delim(Char c) const
-            {
-                if (!isspace(c))
-                {
-                    if (stream.get() != c)
-                    {
-                        stream.unget();
-                        stream.setstate(std::ios::failbit);
-                    }
-                }
-            }
-
-            Stream& stream;
-
-        private:
-            // silence MSVC warning C4512: assignment operator could not be generated
-            string_ios_manip& operator= (string_ios_manip const&);
-        };
-
-    } // detail
-
-#if defined (BOOST_NO_TEMPLATED_STREAMS)
-
-#define STD_TUPLE_DEFINE_MANIPULATOR(name)                                      \
-    namespace detail                                                            \
-    {                                                                           \
-        struct name##_tag;                                                      \
-                                                                                \
-        struct name##_type                                                      \
-        {                                                                       \
-            typedef std::string string_type;                                    \
-            string_type data;                                                   \
-            name##_type(const string_type& d): data(d) {}                       \
-        };                                                                      \
-                                                                                \
-        template <typename Stream>                                              \
-        Stream& operator>>(Stream& s, const name##_type& m)                     \
-        {                                                                       \
-            string_ios_manip<name##_tag, Stream>(s).set(m.data);                \
-            return s;                                                           \
-        }                                                                       \
-                                                                                \
-        template <typename Stream>                                              \
-        Stream& operator<<(Stream& s, const name##_type& m)                     \
-        {                                                                       \
-            string_ios_manip<name##_tag, Stream>(s).set(m.data);                \
-            return s;                                                           \
-        }                                                                       \
-    }
-
-#define STD_TUPLE_DEFINE_MANIPULATOR_FUNCTIONS(name)                            \
-    inline detail::name##_type                                                  \
-    name(const std::string& s)                                                  \
-    {                                                                           \
-        return detail::name##_type(s);                                          \
-    }                                                                           \
-                                                                                \
-    inline detail::name##_type                                                  \
-    name(const char* s)                                                         \
-    {                                                                           \
-        return detail::name##_type(std::string(s));                             \
-    }                                                                           \
-                                                                                \
-    inline detail::name##_type                                                  \
-    name(char c)                                                                \
-    {                                                                           \
-        return detail::name##_type(std::string(1, c));                          \
-    }
-
-#else // defined(BOOST_NO_TEMPLATED_STREAMS)
-
-#if defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING)
-
-#define STD_TUPLE_DEFINE_MANIPULATOR_FUNCTIONS(name)                            \
-    template <typename Char, typename Traits>                                   \
-    inline detail::name##_type<Char, Traits>                                    \
-    name(const std::basic_string<Char, Traits>& s)                              \
-    {                                                                           \
-        return detail::name##_type<Char, Traits>(s);                            \
-    }                                                                           \
-                                                                                \
-    inline detail::name##_type<char>                                            \
-    name(char const* s)                                                         \
-    {                                                                           \
-        return detail::name##_type<char>(std::basic_string<char>(s));           \
-    }                                                                           \
-                                                                                \
-    inline detail::name##_type<wchar_t>                                         \
-    name(wchar_t const* s)                                                      \
-    {                                                                           \
-        return detail::name##_type<wchar_t>(std::basic_string<wchar_t>(s));     \
-    }                                                                           \
-                                                                                \
-    inline detail::name##_type<char>                                            \
-    name(char c)                                                                \
-    {                                                                           \
-        return detail::name##_type<char>(std::basic_string<char>(1, c));        \
-    }                                                                           \
-                                                                                \
-    inline detail::name##_type<wchar_t>                                         \
-    name(wchar_t c)                                                             \
-    {                                                                           \
-        return detail::name##_type<wchar_t>(std::basic_string<wchar_t>(1, c));  \
-    }
-
-#else // defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING)
-
-#define STD_TUPLE_DEFINE_MANIPULATOR_FUNCTIONS(name)                            \
-    template <typename Char, typename Traits>                                   \
-    inline detail::name##_type<Char, Traits>                                    \
-    name(const std::basic_string<Char, Traits>& s)                              \
-    {                                                                           \
-        return detail::name##_type<Char, Traits>(s);                            \
-    }                                                                           \
-                                                                                \
-    template <typename Char>                                                    \
-    inline detail::name##_type<Char>                                            \
-    name(Char s[])                                                              \
-    {                                                                           \
-        return detail::name##_type<Char>(std::basic_string<Char>(s));           \
-    }                                                                           \
-                                                                                \
-    template <typename Char>                                                    \
-    inline detail::name##_type<Char>                                            \
-    name(Char const s[])                                                        \
-    {                                                                           \
-        return detail::name##_type<Char>(std::basic_string<Char>(s));           \
-    }                                                                           \
-                                                                                \
-    template <typename Char>                                                    \
-    inline detail::name##_type<Char>                                            \
-    name(Char c)                                                                \
-    {                                                                           \
-        return detail::name##_type<Char>(std::basic_string<Char>(1, c));        \
-    }
-
-#endif
-
-#define STD_TUPLE_DEFINE_MANIPULATOR(name)                                      \
-    namespace detail                                                            \
-    {                                                                           \
-        struct name##_tag;                                                      \
-                                                                                \
-        template <typename Char, typename Traits = std::char_traits<Char> >     \
-        struct name##_type                                                      \
-        {                                                                       \
-            typedef std::basic_string<Char, Traits> string_type;                \
-            string_type data;                                                   \
-            name##_type(const string_type& d): data(d) {}                       \
-        };                                                                      \
-                                                                                \
-        template <typename Stream, typename Char, typename Traits>              \
-        Stream& operator>>(Stream& s, const name##_type<Char,Traits>& m)        \
-        {                                                                       \
-            string_ios_manip<name##_tag, Stream>(s).set(m.data);                \
-            return s;                                                           \
-        }                                                                       \
-                                                                                \
-        template <typename Stream, typename Char, typename Traits>              \
-        Stream& operator<<(Stream& s, const name##_type<Char,Traits>& m)        \
-        {                                                                       \
-            string_ios_manip<name##_tag, Stream>(s).set(m.data);                \
-            return s;                                                           \
-        }                                                                       \
-    }                                                                           \
-
-#endif // defined(BOOST_NO_TEMPLATED_STREAMS)
-
-    STD_TUPLE_DEFINE_MANIPULATOR(tuple_open)
-    STD_TUPLE_DEFINE_MANIPULATOR(tuple_close)
-    STD_TUPLE_DEFINE_MANIPULATOR(tuple_delimiter)
-
-    STD_TUPLE_DEFINE_MANIPULATOR_FUNCTIONS(tuple_open)
-    STD_TUPLE_DEFINE_MANIPULATOR_FUNCTIONS(tuple_close)
-    STD_TUPLE_DEFINE_MANIPULATOR_FUNCTIONS(tuple_delimiter)
-
-#undef STD_TUPLE_DEFINE_MANIPULATOR
-#undef STD_TUPLE_DEFINE_MANIPULATOR_FUNCTIONS
-#undef FUSION_STRING_OF_STREAM
-#undef FUSION_GET_CHAR_TYPE
-#undef FUSION_GET_TRAITS_TYPE
-
-}}
-
-#endif
diff --git a/boost/fusion/sequence/io/detail/out.hpp b/boost/fusion/sequence/io/detail/out.hpp
deleted file mode 100644
index 52caf00..0000000
--- a/boost/fusion/sequence/io/detail/out.hpp
+++ /dev/null
@@ -1,85 +0,0 @@
-/*=============================================================================
-    Copyright (c) 1999-2003 Jaakko Jarvi
-    Copyright (c) 1999-2003 Jeremiah Willcock
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_OUT_05052005_0121)
-#define FUSION_OUT_05052005_0121
-
-#include <ostream>
-#include <boost/fusion/sequence/io/detail/manip.hpp>
-
-#include <boost/mpl/bool.hpp>
-#include <boost/fusion/sequence/intrinsic/begin.hpp>
-#include <boost/fusion/sequence/intrinsic/end.hpp>
-#include <boost/fusion/iterator/deref.hpp>
-#include <boost/fusion/iterator/next.hpp>
-#include <boost/fusion/iterator/equal_to.hpp>
-
-namespace boost { namespace fusion { namespace detail
-{
-    template <typename Tag>
-    struct delimiter_out
-    {
-        // print a delimiter
-        template <typename OS>
-        static void
-        print(OS& os, char const* delim, mpl::false_ = mpl::false_())
-        {
-            detail::string_ios_manip<Tag, OS> manip(os);
-            manip.print(delim);
-        }
-
-        template <typename OS>
-        static void
-        print(OS&, char const*, mpl::true_)
-        {
-        }
-    };
-
-    struct print_sequence_loop
-    {
-        template <typename OS, typename First, typename Last>
-        static void
-        call(OS&, First const&, Last const&, mpl::true_)
-        {
-        }
-
-        template <typename OS, typename First, typename Last>
-        static void
-        call(OS& os, First const& first, Last const& last, mpl::false_)
-        {
-            result_of::equal_to<
-                typename result_of::next<First>::type
-              , Last
-            >
-            is_last;
-
-            os << *first;
-            delimiter_out<tuple_delimiter_tag>::print(os, " ", is_last);
-            call(os, fusion::next(first), last, is_last);
-        }
-
-        template <typename OS, typename First, typename Last>
-        static void
-        call(OS& os, First const& first, Last const& last)
-        {
-            result_of::equal_to<First, Last> eq;
-            call(os, first, last, eq);
-        }
-    };
-
-    template <typename OS, typename Sequence>
-    inline void
-    print_sequence(OS& os, Sequence const& seq)
-    {
-        delimiter_out<tuple_open_tag>::print(os, "(");
-        print_sequence_loop::call(os, fusion::begin(seq), fusion::end(seq));
-        delimiter_out<tuple_close_tag>::print(os, ")");
-    }
-}}}
-
-#endif
diff --git a/boost/fusion/sequence/io/in.hpp b/boost/fusion/sequence/io/in.hpp
deleted file mode 100644
index 73a1fff..0000000
--- a/boost/fusion/sequence/io/in.hpp
+++ /dev/null
@@ -1,42 +0,0 @@
-/*=============================================================================
-    Copyright (c) 1999-2003 Jaakko Jarvi
-    Copyright (c) 1999-2003 Jeremiah Willcock
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(BOOST_IN_05042005_0120)
-#define BOOST_IN_05042005_0120
-
-#include <istream>
-#include <boost/fusion/sequence/io/detail/in.hpp>
-#include <boost/fusion/support/is_sequence.hpp>
-
-namespace boost { namespace fusion
-{
-    template <typename Sequence>
-    inline std::istream&
-    in(std::istream& is, Sequence& seq)
-    {
-        detail::read_sequence(is, seq);
-        return is;
-    }
-
-    namespace operators
-    {
-        template <typename Sequence>
-        inline typename
-            boost::enable_if<
-               fusion::traits::is_sequence<Sequence>
-              , std::istream&
-            >::type
-        operator>>(std::istream& is, Sequence& seq)
-        {
-            return fusion::in(is, seq);
-        }
-    }
-    using operators::operator>>;
-}}
-
-#endif
diff --git a/boost/fusion/sequence/io/out.hpp b/boost/fusion/sequence/io/out.hpp
deleted file mode 100644
index 988a398..0000000
--- a/boost/fusion/sequence/io/out.hpp
+++ /dev/null
@@ -1,44 +0,0 @@
-/*=============================================================================
-    Copyright (c) 1999-2003 Jaakko Jarvi
-    Copyright (c) 1999-2003 Jeremiah Willcock
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(BOOST_OUT_05042005_0120)
-#define BOOST_OUT_05042005_0120
-
-#include <ostream>
-#include <boost/fusion/sequence/io/detail/out.hpp>
-#include <boost/fusion/support/is_sequence.hpp>
-#include <boost/utility/enable_if.hpp>
-#include <boost/mpl/or.hpp>
-
-namespace boost { namespace fusion
-{
-    template <typename Sequence>
-    inline std::ostream&
-    out(std::ostream& os, Sequence& seq)
-    {
-        detail::print_sequence(os, seq);
-        return os;
-    }
-    
-    namespace operators
-    {
-        template <typename Sequence>
-        inline typename
-            boost::enable_if<
-               fusion::traits::is_sequence<Sequence>
-              , std::ostream&
-            >::type
-        operator<<(std::ostream& os, Sequence const& seq)
-        {
-            return fusion::out(os, seq);
-        }
-    }
-    using operators::operator<<;
-}}
-
-#endif
diff --git a/boost/fusion/support/as_const.hpp b/boost/fusion/support/as_const.hpp
deleted file mode 100644
index bb2a96a..0000000
--- a/boost/fusion/support/as_const.hpp
+++ /dev/null
@@ -1,26 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2012 Nathan Ridge
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#ifndef BOOST_FUSION_SUPPORT_AS_CONST_HPP
-#define BOOST_FUSION_SUPPORT_AS_CONST_HPP
-
-namespace boost { namespace fusion { namespace extension
-{
-    // A customization point that allows certain wrappers around
-    // Fusion sequence elements (e.g. adt_attribute_proxy) to be
-    // unwrapped in contexts where the element only needs to be
-    // read. The library wraps accesses to Fusion elements in
-    // such contexts with calls to this function. Users can
-    // specialize this function for their own wrappers.
-    template <typename T>
-    const T& as_const(const T& obj)
-    {
-        return obj;
-    }
-
-}}}
-
-#endif
diff --git a/boost/fusion/support/category_of.hpp b/boost/fusion/support/category_of.hpp
deleted file mode 100644
index 805d895..0000000
--- a/boost/fusion/support/category_of.hpp
+++ /dev/null
@@ -1,112 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_CATEGORY_OF_07202005_0308)
-#define FUSION_CATEGORY_OF_07202005_0308
-
-#include <boost/fusion/support/detail/category_of.hpp>
-#include <boost/fusion/support/tag_of.hpp>
-#include <boost/type_traits/is_base_of.hpp>
-
-namespace boost { namespace fusion
-{
-    // Special tags:
-    struct boost_tuple_tag; // boost::tuples::tuple tag
-    struct boost_array_tag; // boost::array tag
-    struct mpl_sequence_tag; // mpl sequence tag
-    struct std_pair_tag; // std::pair tag
-
-    struct incrementable_traversal_tag {};
-
-    struct single_pass_traversal_tag
-        : incrementable_traversal_tag {};
-
-    struct forward_traversal_tag
-        : single_pass_traversal_tag {};
-
-    struct bidirectional_traversal_tag
-        : forward_traversal_tag {};
-
-    struct random_access_traversal_tag
-        : bidirectional_traversal_tag {};
-
-    struct associative_tag {};
-
-    namespace extension
-    {
-        template<typename Tag>
-        struct category_of_impl
-        {
-            template<typename T>
-            struct apply : detail::fusion_category_of<T> {};
-        };
-
-        template <>
-        struct category_of_impl<boost_tuple_tag>;
-
-        template <>
-        struct category_of_impl<boost_array_tag>;
-
-        template <>
-        struct category_of_impl<mpl_sequence_tag>;
-
-        template <>
-        struct category_of_impl<std_pair_tag>;
-    }
-
-    namespace traits
-    {
-        template <typename T>
-        struct category_of
-            : extension::category_of_impl<typename fusion::detail::tag_of<T>::type>::
-                template apply<T>
-        {};
-
-        template <typename T>
-        struct is_associative
-            : is_base_of<
-                associative_tag
-              , typename category_of<T>::type>
-        {};
-
-        template <typename T>
-        struct is_incrementable
-            : is_base_of<
-                incrementable_traversal_tag
-              , typename category_of<T>::type>
-        {};
-
-        template <typename T>
-        struct is_single_pass
-            : is_base_of<
-                single_pass_traversal_tag
-              , typename category_of<T>::type>
-        {};
-
-        template <typename T>
-        struct is_forward
-            : is_base_of<
-                forward_traversal_tag
-              , typename category_of<T>::type>
-        {};
-
-        template <typename T>
-        struct is_bidirectional
-            : is_base_of<
-                bidirectional_traversal_tag
-              , typename category_of<T>::type>
-        {};
-
-        template <typename T>
-        struct is_random_access
-            : is_base_of<
-                random_access_traversal_tag
-              , typename category_of<T>::type>
-        {};
-    }
-}}
-
-#endif
diff --git a/boost/fusion/support/detail/access.hpp b/boost/fusion/support/detail/access.hpp
deleted file mode 100644
index ced7cea..0000000
--- a/boost/fusion/support/detail/access.hpp
+++ /dev/null
@@ -1,64 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_ACCESS_04182005_0737)
-#define FUSION_ACCESS_04182005_0737
-
-#include <boost/type_traits/add_const.hpp>
-#include <boost/type_traits/add_reference.hpp>
-
-namespace boost { namespace fusion { namespace detail
-{
-    template <typename T>
-    struct ref_result
-    {
-        typedef typename add_reference<T>::type type;
-    };
-
-    template <typename T>
-    struct cref_result
-    {
-        typedef typename 
-            add_reference<
-                typename add_const<T>::type
-            >::type 
-        type;
-    };
-
-    template <typename T>
-    struct call_param
-    {
-        typedef T const& type;
-    };
-
-    template <typename T>
-    struct call_param<T &>
-    {
-        typedef T& type;
-    };
-
-    template <typename T>
-    struct call_param<T const>
-    {
-        typedef T const& type;
-    };
-
-    template <typename T>
-    struct call_param<T volatile>
-    {
-        typedef T const& type;
-    };
-
-    template <typename T>
-    struct call_param<T const volatile>
-    {
-        typedef T const& type;
-    };
-
-}}}
-
-#endif
-
diff --git a/boost/fusion/support/detail/as_fusion_element.hpp b/boost/fusion/support/detail/as_fusion_element.hpp
deleted file mode 100644
index 96cf2d0..0000000
--- a/boost/fusion/support/detail/as_fusion_element.hpp
+++ /dev/null
@@ -1,47 +0,0 @@
-/*=============================================================================
-    Copyright (c) 1999-2003 Jaakko Jarvi
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_AS_FUSION_ELEMENT_05052005_0338)
-#define FUSION_AS_FUSION_ELEMENT_05052005_0338
-
-#include <boost/ref.hpp>
-
-namespace boost { namespace fusion { namespace detail
-{
-    template <typename T>
-    struct as_fusion_element
-    {
-        typedef T type;
-    };
-
-    template <typename T>
-    struct as_fusion_element<reference_wrapper<T> >
-    {
-        typedef T& type;
-    };
-
-    template <typename T, int N>
-    struct as_fusion_element<T[N]>
-    {
-        typedef const T(&type)[N];
-    };
-
-    template <typename T, int N>
-    struct as_fusion_element<volatile T[N]>
-    {
-        typedef const volatile T(&type)[N];
-    };
-
-    template <typename T, int N>
-    struct as_fusion_element<const volatile T[N]>
-    {
-        typedef const volatile T(&type)[N];
-    };
-
-}}}
-
-#endif
diff --git a/boost/fusion/support/detail/category_of.hpp b/boost/fusion/support/detail/category_of.hpp
deleted file mode 100644
index e7ac44e..0000000
--- a/boost/fusion/support/detail/category_of.hpp
+++ /dev/null
@@ -1,19 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_CATEGORY_OF_07212005_1025)
-#define FUSION_CATEGORY_OF_07212005_1025
-
-namespace boost { namespace fusion { namespace detail
-{
-    template <typename T>
-    struct fusion_category_of
-    {
-        typedef typename T::category type;
-    };
-}}}
-
-#endif
diff --git a/boost/fusion/support/detail/is_mpl_sequence.hpp b/boost/fusion/support/detail/is_mpl_sequence.hpp
deleted file mode 100644
index 376afc2..0000000
--- a/boost/fusion/support/detail/is_mpl_sequence.hpp
+++ /dev/null
@@ -1,27 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-    Copyright (c) 2005-2006 Dan Marsden
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_DETAIL_IS_MPL_SEQUENCE_29122006_1105)
-#define FUSION_DETAIL_IS_MPL_SEQUENCE_29122006_1105
-
-#include <boost/fusion/support/sequence_base.hpp>
-#include <boost/mpl/is_sequence.hpp>
-#include <boost/mpl/and.hpp>
-#include <boost/mpl/not.hpp>
-#include <boost/type_traits/is_convertible.hpp>
-
-namespace boost { namespace fusion { namespace detail
-{
-    template <typename T>
-    struct is_mpl_sequence
-        : mpl::and_<
-            mpl::not_<is_convertible<T, from_sequence_convertible_type> >
-          , mpl::is_sequence<T> >
-    {};
-}}}
-
-#endif
diff --git a/boost/fusion/support/detail/is_view.hpp b/boost/fusion/support/detail/is_view.hpp
deleted file mode 100644
index c518dfc..0000000
--- a/boost/fusion/support/detail/is_view.hpp
+++ /dev/null
@@ -1,19 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_IS_VIEW_03202006_0018)
-#define FUSION_IS_VIEW_03202006_0018
-
-namespace boost { namespace fusion { namespace detail
-{
-    template <typename T>
-    struct fusion_is_view
-    {
-        typedef typename T::is_view type;
-    };
-}}}
-
-#endif
diff --git a/boost/fusion/support/detail/mpl_iterator_category.hpp b/boost/fusion/support/detail/mpl_iterator_category.hpp
deleted file mode 100644
index fcb00a0..0000000
--- a/boost/fusion/support/detail/mpl_iterator_category.hpp
+++ /dev/null
@@ -1,66 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_MPL_ITERATOR_CATEGORY_07212005_0923)
-#define FUSION_MPL_ITERATOR_CATEGORY_07212005_0923
-
-namespace boost { namespace mpl 
-{
-    struct forward_iterator_tag;
-    struct bidirectional_iterator_tag;
-    struct random_access_iterator_tag;
-}}
-
-namespace boost { namespace fusion
-{
-    struct forward_traversal_tag;
-    struct bidirectional_traversal_tag;
-    struct random_access_traversal_tag;
-}}
-
-namespace boost { namespace fusion { namespace detail
-{
-    template <typename Category>
-    struct mpl_iterator_category;
-    
-    template <>
-    struct mpl_iterator_category<mpl::forward_iterator_tag>
-    {
-        typedef forward_traversal_tag type;
-    };
-
-    template <>
-    struct mpl_iterator_category<mpl::bidirectional_iterator_tag>
-    {
-        typedef bidirectional_traversal_tag type;
-    };
-
-    template <>
-    struct mpl_iterator_category<mpl::random_access_iterator_tag>
-    {
-        typedef random_access_traversal_tag type;
-    };
-
-    template <>
-    struct mpl_iterator_category<forward_traversal_tag>
-    {
-        typedef forward_traversal_tag type;
-    };
-
-    template <>
-    struct mpl_iterator_category<bidirectional_traversal_tag>
-    {
-        typedef bidirectional_traversal_tag type;
-    };
-
-    template <>
-    struct mpl_iterator_category<random_access_traversal_tag>
-    {
-        typedef random_access_traversal_tag type;
-    };
-}}}
-
-#endif
diff --git a/boost/fusion/support/detail/pp_round.hpp b/boost/fusion/support/detail/pp_round.hpp
deleted file mode 100644
index e1a6161..0000000
--- a/boost/fusion/support/detail/pp_round.hpp
+++ /dev/null
@@ -1,71 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2011 Thomas Heller
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-
-#ifndef BOOST_BOOST_FUSION_SUPPORT_PP_ROUND_HPP
-#define BOOST_BOOST_FUSION_SUPPORT_PP_ROUND_HPP
-
-#include <boost/preprocessor/cat.hpp>
-#include <boost/preprocessor/comparison/less.hpp>
-#include <boost/preprocessor/control/if.hpp>
-
-#define BOOST_FUSION_PP_ROUND_UP(N)                                            \
-      BOOST_PP_CAT(BOOST_FUSION_PP_DO_ROUND_UP_, N)()                          \
-/**/
-
-#define BOOST_FUSION_PP_DO_ROUND_UP_0()  10
-#define BOOST_FUSION_PP_DO_ROUND_UP_1()  10
-#define BOOST_FUSION_PP_DO_ROUND_UP_2()  10
-#define BOOST_FUSION_PP_DO_ROUND_UP_3()  10
-#define BOOST_FUSION_PP_DO_ROUND_UP_4()  10
-#define BOOST_FUSION_PP_DO_ROUND_UP_5()  10
-#define BOOST_FUSION_PP_DO_ROUND_UP_6()  10
-#define BOOST_FUSION_PP_DO_ROUND_UP_7()  10
-#define BOOST_FUSION_PP_DO_ROUND_UP_8()  10
-#define BOOST_FUSION_PP_DO_ROUND_UP_9()  10
-#define BOOST_FUSION_PP_DO_ROUND_UP_10() 10
-#define BOOST_FUSION_PP_DO_ROUND_UP_11() 20
-#define BOOST_FUSION_PP_DO_ROUND_UP_12() 20
-#define BOOST_FUSION_PP_DO_ROUND_UP_13() 20
-#define BOOST_FUSION_PP_DO_ROUND_UP_14() 20
-#define BOOST_FUSION_PP_DO_ROUND_UP_15() 20
-#define BOOST_FUSION_PP_DO_ROUND_UP_16() 20
-#define BOOST_FUSION_PP_DO_ROUND_UP_17() 20
-#define BOOST_FUSION_PP_DO_ROUND_UP_18() 20
-#define BOOST_FUSION_PP_DO_ROUND_UP_19() 20
-#define BOOST_FUSION_PP_DO_ROUND_UP_20() 20
-#define BOOST_FUSION_PP_DO_ROUND_UP_21() 30
-#define BOOST_FUSION_PP_DO_ROUND_UP_22() 30
-#define BOOST_FUSION_PP_DO_ROUND_UP_23() 30
-#define BOOST_FUSION_PP_DO_ROUND_UP_24() 30
-#define BOOST_FUSION_PP_DO_ROUND_UP_25() 30
-#define BOOST_FUSION_PP_DO_ROUND_UP_26() 30
-#define BOOST_FUSION_PP_DO_ROUND_UP_27() 30
-#define BOOST_FUSION_PP_DO_ROUND_UP_28() 30
-#define BOOST_FUSION_PP_DO_ROUND_UP_29() 30
-#define BOOST_FUSION_PP_DO_ROUND_UP_30() 30
-#define BOOST_FUSION_PP_DO_ROUND_UP_31() 40
-#define BOOST_FUSION_PP_DO_ROUND_UP_32() 40
-#define BOOST_FUSION_PP_DO_ROUND_UP_33() 40
-#define BOOST_FUSION_PP_DO_ROUND_UP_34() 40
-#define BOOST_FUSION_PP_DO_ROUND_UP_35() 40
-#define BOOST_FUSION_PP_DO_ROUND_UP_36() 40
-#define BOOST_FUSION_PP_DO_ROUND_UP_37() 40
-#define BOOST_FUSION_PP_DO_ROUND_UP_38() 40
-#define BOOST_FUSION_PP_DO_ROUND_UP_39() 40
-#define BOOST_FUSION_PP_DO_ROUND_UP_40() 40
-#define BOOST_FUSION_PP_DO_ROUND_UP_41() 50
-#define BOOST_FUSION_PP_DO_ROUND_UP_42() 50
-#define BOOST_FUSION_PP_DO_ROUND_UP_43() 50
-#define BOOST_FUSION_PP_DO_ROUND_UP_44() 50
-#define BOOST_FUSION_PP_DO_ROUND_UP_45() 50
-#define BOOST_FUSION_PP_DO_ROUND_UP_46() 50
-#define BOOST_FUSION_PP_DO_ROUND_UP_47() 50
-#define BOOST_FUSION_PP_DO_ROUND_UP_48() 50
-#define BOOST_FUSION_PP_DO_ROUND_UP_49() 50
-#define BOOST_FUSION_PP_DO_ROUND_UP_50() 50
-
-#endif
diff --git a/boost/fusion/support/detail/segmented_fold_until_impl.hpp b/boost/fusion/support/detail/segmented_fold_until_impl.hpp
deleted file mode 100644
index 08096c1..0000000
--- a/boost/fusion/support/detail/segmented_fold_until_impl.hpp
+++ /dev/null
@@ -1,389 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2011 Eric Niebler
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(BOOST_FUSION_SEGMENTED_FOLD_UNTIL_IMPL_HPP_INCLUDED)
-#define BOOST_FUSION_SEGMENTED_FOLD_UNTIL_IMPL_HPP_INCLUDED
-
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/utility/result_of.hpp>
-#include <boost/type_traits/add_const.hpp>
-#include <boost/type_traits/remove_reference.hpp>
-
-#include <boost/fusion/support/void.hpp>
-#include <boost/fusion/container/list/cons_fwd.hpp>
-#include <boost/fusion/sequence/intrinsic_fwd.hpp>
-#include <boost/fusion/iterator/equal_to.hpp>
-#include <boost/fusion/iterator/deref.hpp>
-#include <boost/fusion/iterator/next.hpp>
-#include <boost/fusion/support/is_segmented.hpp>
-#include <boost/fusion/sequence/intrinsic/segments.hpp>
-
-// fun(seq, state, context)
-//  seq: a non-segmented range
-//  state: the state of the fold so far
-//  context: the path to the current range
-//
-// returns: (state', fcontinue)
-
-namespace boost { namespace fusion
-{
-    template <typename First, typename Last>
-    struct iterator_range;
-
-    template <typename Context>
-    struct segmented_iterator;
-
-    namespace result_of
-    {
-        template <typename Cur, typename Context>
-        struct make_segmented_iterator
-        {
-            typedef
-                iterator_range<
-                    Cur
-                  , typename result_of::end<
-                        typename remove_reference<
-                            typename add_const<
-                                typename result_of::deref<
-                                    typename Context::car_type::begin_type
-                                >::type
-                            >::type
-                        >::type
-                    >::type
-                >
-            range_type;
-
-            typedef
-                segmented_iterator<cons<range_type, Context> >
-            type;
-        };
-    }
-
-    template <typename Cur, typename Context>
-    typename result_of::make_segmented_iterator<Cur, Context>::type
-    make_segmented_iterator(Cur const& cur, Context const& context)
-    {
-        typedef result_of::make_segmented_iterator<Cur, Context> impl_type;
-        typedef typename impl_type::type type;
-        typedef typename impl_type::range_type range_type;
-        return type(cons<range_type, Context>(range_type(cur, fusion::end(*context.car.first)), context));
-    }
-
-    namespace detail
-    {
-        template <
-            typename Begin
-          , typename End
-          , typename State
-          , typename Context
-          , typename Fun
-          , bool IsEmpty
-        >
-        struct segmented_fold_until_iterate_skip_empty;
-
-        template <
-            typename Begin
-          , typename End
-          , typename State
-          , typename Context
-          , typename Fun
-          , bool IsDone = result_of::equal_to<Begin, End>::type::value
-        >
-        struct segmented_fold_until_iterate;
-
-        template <
-            typename Sequence
-          , typename State
-          , typename Context
-          , typename Fun
-          , bool IsSegmented = traits::is_segmented<Sequence>::type::value
-        >
-        struct segmented_fold_until_impl;
-
-        template <typename Segments, typename State, typename Context, typename Fun>
-        struct segmented_fold_until_on_segments;
-
-        //auto push_context(cur, end, context)
-        //{
-        //  return push_back(context, segment_sequence(iterator_range(cur, end)));
-        //}
-
-        template <typename Cur, typename End, typename Context>
-        struct push_context
-        {
-            typedef iterator_range<Cur, End>    range_type;
-            typedef cons<range_type, Context>   type;
-
-            static type call(Cur const& cur, End const& end, Context const& context)
-            {
-                return cons<range_type, Context>(range_type(cur, end), context);
-            }
-        };
-
-        //auto make_segmented_iterator(cur, end, context)
-        //{
-        //  return segmented_iterator(push_context(cur, end, context));
-        //}
-        //
-        //auto segmented_fold_until_impl(seq, state, context, fun)
-        //{
-        //  if (is_segmented(seq))
-        //  {
-        //    segmented_fold_until_on_segments(segments(seq), state, context, fun);
-        //  }
-        //  else
-        //  {
-        //    return fun(seq, state, context);
-        //  }
-        //}
-
-        template <
-            typename Sequence
-          , typename State
-          , typename Context
-          , typename Fun
-          , bool IsSegmented
-        >
-        struct segmented_fold_until_impl
-        {
-            typedef
-                segmented_fold_until_on_segments<
-                    typename remove_reference<
-                        typename add_const<
-                            typename result_of::segments<Sequence>::type
-                        >::type
-                    >::type
-                  , State
-                  , Context
-                  , Fun
-                >
-            impl;
-
-            typedef typename impl::type type;
-            typedef typename impl::continue_type continue_type;
-
-            static type call(Sequence& seq, State const& state, Context const& context, Fun const& fun)
-            {
-                return impl::call(fusion::segments(seq), state, context, fun);
-            }
-        };
-
-        template <
-            typename Sequence
-          , typename State
-          , typename Context
-          , typename Fun
-        >
-        struct segmented_fold_until_impl<Sequence, State, Context, Fun, false>
-        {
-            typedef
-                typename Fun::template apply<Sequence, State, Context>
-            apply_type;
-
-            typedef typename apply_type::type type;
-            typedef typename apply_type::continue_type continue_type;
-
-            static type call(Sequence& seq, State const& state, Context const& context, Fun const& fun)
-            {
-                return apply_type::call(seq, state, context, fun);
-            }
-        };
-
-        //auto segmented_fold_until_on_segments(segs, state, context, fun)
-        //{
-        //  auto cur = begin(segs), end = end(segs);
-        //  for (; cur != end; ++cur)
-        //  {
-        //    if (empty(*cur))
-        //      continue;
-        //    auto context` = push_context(cur, end, context);
-        //    state = segmented_fold_until_impl(*cur, state, context`, fun);
-        //    if (!second(state))
-        //      return state;
-        //  }
-        //}
-
-        template <typename Apply>
-        struct continue_wrap
-        {
-            typedef typename Apply::continue_type type;
-        };
-
-        template <typename Begin, typename End, typename State, typename Context, typename Fun, bool IsEmpty>
-        struct segmented_fold_until_iterate_skip_empty
-        {
-            // begin != end and !empty(*begin)
-            typedef
-                push_context<Begin, End, Context>
-            push_context_impl;
-
-            typedef
-                typename push_context_impl::type
-            next_context_type;
-
-            typedef
-                segmented_fold_until_impl<
-                    typename remove_reference<
-                        typename add_const<
-                            typename result_of::deref<Begin>::type
-                        >::type
-                    >::type
-                  , State
-                  , next_context_type
-                  , Fun
-                >
-            fold_recurse_impl;
-
-            typedef
-                typename fold_recurse_impl::type
-            next_state_type;
-
-            typedef
-                segmented_fold_until_iterate<
-                    typename result_of::next<Begin>::type
-                  , End
-                  , next_state_type
-                  , Context
-                  , Fun
-                >
-            next_iteration_impl;
-
-            typedef
-                typename mpl::eval_if<
-                    typename fold_recurse_impl::continue_type
-                  , next_iteration_impl
-                  , mpl::identity<next_state_type>
-                >::type
-            type;
-
-            typedef
-                typename mpl::eval_if<
-                    typename fold_recurse_impl::continue_type
-                  , continue_wrap<next_iteration_impl>
-                  , mpl::identity<mpl::false_>
-                >::type
-            continue_type;
-
-            static type call(Begin const& beg, End const& end, State const& state
-                           , Context const& context, Fun const& fun)
-            {
-                return call(beg, end, state, context, fun, typename fold_recurse_impl::continue_type());
-            }
-
-            static type call(Begin const& beg, End const& end, State const& state
-                           , Context const& context, Fun const& fun, mpl::true_) // continue
-            {
-                return next_iteration_impl::call(
-                    fusion::next(beg)
-                  , end
-                  , fold_recurse_impl::call(
-                        *beg
-                      , state
-                      , push_context_impl::call(beg, end, context)
-                      , fun)
-                  , context
-                  , fun);
-            }
-
-            static type call(Begin const& beg, End const& end, State const& state
-                           , Context const& context, Fun const& fun, mpl::false_) // break
-            {
-                return fold_recurse_impl::call(
-                    *beg
-                  , state
-                  , push_context_impl::call(beg, end, context)
-                  , fun);
-            }
-        };
-
-        template <typename Begin, typename End, typename State, typename Context, typename Fun>
-        struct segmented_fold_until_iterate_skip_empty<Begin, End, State, Context, Fun, true>
-        {
-            typedef
-                segmented_fold_until_iterate<
-                    typename result_of::next<Begin>::type
-                  , End
-                  , State
-                  , Context
-                  , Fun
-                >
-            impl;
-            
-            typedef typename impl::type type;
-            typedef typename impl::continue_type continue_type;
-
-            static type call(Begin const& beg, End const& end, State const& state
-                           , Context const& context, Fun const& fun)
-            {
-                return impl::call(fusion::next(beg), end, state, context, fun);
-            }
-        };
-
-        template <typename Begin, typename End, typename State, typename Context, typename Fun, bool IsDone>
-        struct segmented_fold_until_iterate
-        {
-            typedef
-                typename result_of::empty<
-                    typename remove_reference<
-                        typename result_of::deref<Begin>::type
-                    >::type
-                >::type
-            empty_type;
-
-            typedef
-                segmented_fold_until_iterate_skip_empty<Begin, End, State, Context, Fun, empty_type::value>
-            impl;
-            
-            typedef typename impl::type type;
-            typedef typename impl::continue_type continue_type;
-
-            static type call(Begin const& beg, End const& end, State const& state
-                           , Context const& context, Fun const& fun)
-            {
-                return impl::call(beg, end, state, context, fun);
-            }
-        };
-
-        template <typename Begin, typename End, typename State, typename Context, typename Fun>
-        struct segmented_fold_until_iterate<Begin, End, State, Context, Fun, true>
-        {
-            typedef State type;
-            typedef mpl::true_ continue_type;
-
-            static type call(Begin const&, End const&, State const& state
-                           , Context const&, Fun const&)
-            {
-                return state;
-            }
-        };
-
-        template <typename Segments, typename State, typename Context, typename Fun>
-        struct segmented_fold_until_on_segments
-        {
-            typedef
-                segmented_fold_until_iterate<
-                    typename result_of::begin<Segments>::type
-                  , typename result_of::end<Segments>::type
-                  , State
-                  , Context
-                  , Fun
-                >
-            impl;
-
-            typedef typename impl::type type;
-            typedef typename impl::continue_type continue_type;
-
-            static type call(Segments& segs, State const& state, Context const& context, Fun const& fun)
-            {
-                return impl::call(fusion::begin(segs), fusion::end(segs), state, context, fun);
-            }
-        };
-    }
-}}
-
-#endif
diff --git a/boost/fusion/support/is_iterator.hpp b/boost/fusion/support/is_iterator.hpp
deleted file mode 100644
index f0272d0..0000000
--- a/boost/fusion/support/is_iterator.hpp
+++ /dev/null
@@ -1,20 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_IS_ITERATOR_05062005_1219)
-#define FUSION_IS_ITERATOR_05062005_1219
-
-#include <boost/type_traits/is_base_of.hpp>
-
-namespace boost { namespace fusion
-{
-    struct iterator_root;
-
-    template <typename T>
-    struct is_fusion_iterator : is_base_of<iterator_root, T> {};
-}}
-
-#endif
diff --git a/boost/fusion/support/is_segmented.hpp b/boost/fusion/support/is_segmented.hpp
deleted file mode 100644
index 6e62eac..0000000
--- a/boost/fusion/support/is_segmented.hpp
+++ /dev/null
@@ -1,54 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2006 Eric Niebler
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_IS_SEGMENTED_03202006_0015)
-#define FUSION_IS_SEGMENTED_03202006_0015
-
-#include <boost/mpl/bool.hpp>
-#include <boost/fusion/support/tag_of.hpp>
-
-namespace boost { namespace fusion 
-{
-    // Special tags:
-    struct sequence_facade_tag;
-    struct iterator_range_tag;
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct is_segmented_impl
-        {
-            template <typename Sequence>
-            struct apply
-              : mpl::false_
-            {};
-        };
-
-        template <>
-        struct is_segmented_impl<sequence_facade_tag>
-        {
-            template <typename Sequence>
-            struct apply : Sequence::is_segmented {};
-        };
-
-        template <>
-        struct is_segmented_impl<iterator_range_tag>;
-    }
-
-    namespace traits
-    {
-        template <typename Sequence>
-        struct is_segmented
-          : mpl::bool_<
-                (bool)extension::is_segmented_impl<typename traits::tag_of<Sequence>::type>::
-                    template apply<Sequence>::type::value
-            >
-        {
-        };
-    }
-}}
-
-#endif
diff --git a/boost/fusion/support/is_sequence.hpp b/boost/fusion/support/is_sequence.hpp
deleted file mode 100644
index 184bbbb..0000000
--- a/boost/fusion/support/is_sequence.hpp
+++ /dev/null
@@ -1,76 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_IS_SEQUENCE_05052005_1002)
-#define FUSION_IS_SEQUENCE_05052005_1002
-
-#include <boost/fusion/support/sequence_base.hpp>
-#include <boost/fusion/support/tag_of.hpp>
-#include <boost/mpl/is_sequence.hpp>
-#include <boost/mpl/or.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/type_traits/is_convertible.hpp>
-#include <boost/type_traits/is_same.hpp>
-
-namespace boost { namespace fusion
-{
-    // Special tags:
-    struct non_fusion_tag;
-    struct boost_tuple_tag; // boost::tuples::tuple tag
-    struct boost_array_tag; // boost::array tag
-    struct mpl_sequence_tag; // mpl sequence tag
-    struct std_pair_tag; // std::pair tag
-
-    namespace extension
-    {
-        template <typename T>
-        struct is_sequence_impl
-        {
-            template <typename Sequence>
-            struct apply
-              : is_convertible<Sequence, detail::from_sequence_convertible_type>
-            {};
-        };
-
-        template <>
-        struct is_sequence_impl<non_fusion_tag>
-        {
-            template <typename T>
-            struct apply : mpl::false_ {};
-        };
-
-        template <>
-        struct is_sequence_impl<boost_tuple_tag>;
-
-        template <>
-        struct is_sequence_impl<boost_array_tag>;
-
-        template <>
-        struct is_sequence_impl<mpl_sequence_tag>;
-
-        template <>
-        struct is_sequence_impl<std_pair_tag>;
-    }
-
-    namespace traits
-    {
-        template <typename T>
-        struct is_sequence
-          : mpl::bool_<
-                (bool)extension::is_sequence_impl<
-                typename fusion::detail::tag_of<T>::type
-                >::template apply<T>::type::value
-            >
-        {};
-
-        template <typename Sequence, typename Enable = void>
-        struct is_native_fusion_sequence
-          : is_convertible<Sequence, detail::from_sequence_convertible_type>
-        {};
-    }
-}}
-
-#endif
diff --git a/boost/fusion/support/is_view.hpp b/boost/fusion/support/is_view.hpp
deleted file mode 100644
index 4ec9e06..0000000
--- a/boost/fusion/support/is_view.hpp
+++ /dev/null
@@ -1,66 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_IS_VIEW_03202006_0015)
-#define FUSION_IS_VIEW_03202006_0015
-
-#include <boost/mpl/bool.hpp>
-#include <boost/fusion/support/detail/is_view.hpp>
-#include <boost/fusion/support/tag_of.hpp>
-
-namespace boost { namespace fusion
-{
-    // Special tags:
-    struct sequence_facade_tag;
-    struct boost_tuple_tag; // boost::tuples::tuple tag
-    struct boost_array_tag; // boost::array tag
-    struct mpl_sequence_tag; // mpl sequence tag
-    struct std_pair_tag; // std::pair tag
-
-    namespace extension
-    {
-        template<typename Tag>
-        struct is_view_impl
-        {
-            template <typename T>
-            struct apply
-                : detail::fusion_is_view<T>
-            {};
-        };
-
-        template <>
-        struct is_view_impl<sequence_facade_tag>
-        {
-            template <typename Sequence>
-            struct apply : Sequence::is_view {};
-        };
-
-        template <>
-        struct is_view_impl<boost_tuple_tag>;
-
-        template <>
-        struct is_view_impl<boost_array_tag>;
-
-        template <>
-        struct is_view_impl<mpl_sequence_tag>;
-
-        template <>
-        struct is_view_impl<std_pair_tag>;
-    }
-
-    namespace traits
-    {
-        template <typename T>
-        struct is_view :
-            mpl::bool_<
-                (bool)extension::is_view_impl<typename fusion::detail::tag_of<T>::type>::
-                    template apply<T>::type::value
-            >
-        {};
-    }
-}}
-
-#endif
diff --git a/boost/fusion/support/iterator_base.hpp b/boost/fusion/support/iterator_base.hpp
deleted file mode 100644
index ad24d93..0000000
--- a/boost/fusion/support/iterator_base.hpp
+++ /dev/null
@@ -1,31 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_ITERATOR_BASE_05042005_1008)
-#define FUSION_ITERATOR_BASE_05042005_1008
-
-namespace boost { namespace fusion
-{
-    struct iterator_root {};
-
-    template <typename Iterator>
-    struct iterator_base : iterator_root
-    {
-        Iterator const&
-        cast() const
-        {
-            return static_cast<Iterator const&>(*this);
-        }
-
-        Iterator&
-        cast()
-        {
-            return static_cast<Iterator&>(*this);
-        }
-    };
-}}
-
-#endif
diff --git a/boost/fusion/support/sequence_base.hpp b/boost/fusion/support/sequence_base.hpp
deleted file mode 100644
index 89affab..0000000
--- a/boost/fusion/support/sequence_base.hpp
+++ /dev/null
@@ -1,54 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-    Copyright (c) 2007 Tobias Schwinger
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_SEQUENCE_BASE_04182005_0737)
-#define FUSION_SEQUENCE_BASE_04182005_0737
-
-#include <boost/mpl/begin_end_fwd.hpp>
-
-namespace boost { namespace fusion
-{
-    namespace detail
-    {
-        struct from_sequence_convertible_type
-        {};
-    }
-
-    template <typename Sequence>
-    struct sequence_base
-    {
-        Sequence const&
-        derived() const
-        {
-            return static_cast<Sequence const&>(*this);
-        }
-
-        Sequence&
-        derived()
-        {
-            return static_cast<Sequence&>(*this);
-        }
-
-        operator detail::from_sequence_convertible_type()const
-        {
-            return detail::from_sequence_convertible_type();
-        }
-    };
-
-    struct fusion_sequence_tag;
-}}
-
-namespace boost { namespace mpl
-{
-    // Deliberately break mpl::begin, so it doesn't lie that a Fusion sequence
-    // is not an MPL sequence by returning mpl::void_.
-    // In other words: Fusion Sequences are always MPL Sequences, but they can
-    // be incompletely defined.
-    template<> struct begin_impl< boost::fusion::fusion_sequence_tag >;
-}}
-
-#endif
diff --git a/boost/fusion/support/tag_of.hpp b/boost/fusion/support/tag_of.hpp
deleted file mode 100644
index a3fef3b..0000000
--- a/boost/fusion/support/tag_of.hpp
+++ /dev/null
@@ -1,82 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_TAG_OF_09232005_0845)
-#define FUSION_TAG_OF_09232005_0845
-
-#include <boost/utility/enable_if.hpp>
-#include <boost/type_traits/remove_const.hpp>
-#include <boost/fusion/support/tag_of_fwd.hpp>
-#include <boost/fusion/support/detail/is_mpl_sequence.hpp>
-#include <boost/mpl/has_xxx.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/mpl/assert.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/config/no_tr1/utility.hpp>
-
-namespace boost
-{
-    template <typename T, std::size_t N>
-    class array; // forward
-
-    namespace tuples
-    {
-        struct null_type;
-
-        template <
-            class T0, class T1, class T2, class T3, class T4,
-            class T5, class T6, class T7, class T8, class T9
-        >
-        class tuple;
-
-        template <class Head, class Tail>
-        struct cons;
-    }
-}
-
-namespace boost { namespace fusion
-{
-    struct non_fusion_tag;
-    struct mpl_sequence_tag;
-
-    namespace detail
-    {
-        BOOST_MPL_HAS_XXX_TRAIT_DEF(fusion_tag)
-
-        template <typename Sequence, typename Active>
-        struct tag_of_impl
-          : mpl::if_<fusion::detail::is_mpl_sequence<Sequence>,
-              mpl::identity<mpl_sequence_tag>,
-              mpl::identity<non_fusion_tag> >::type
-        {};
-
-        template <typename Sequence>
-        struct tag_of_impl<
-            Sequence
-          , typename boost::enable_if<detail::has_fusion_tag<Sequence> >::type>
-        {
-            typedef typename Sequence::fusion_tag type;
-        };
-    }
-
-    namespace traits
-    {
-        template <typename Sequence, typename Active>
-        struct tag_of
-            : boost::fusion::detail::tag_of_impl<Sequence, Active>
-        {};
-    }
-
-    namespace detail
-    {
-        template<typename T>
-        struct tag_of
-            : traits::tag_of<typename remove_const<T>::type>
-        {};
-    }
-}}
-#endif
diff --git a/boost/fusion/support/tag_of_fwd.hpp b/boost/fusion/support/tag_of_fwd.hpp
deleted file mode 100644
index ba434d9..0000000
--- a/boost/fusion/support/tag_of_fwd.hpp
+++ /dev/null
@@ -1,20 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-    Copyright (c) 2005-2006 Dan Marsden
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(BOOST_FUSION_TAG_OF_FWD_31122005_1445)
-#define BOOST_FUSION_TAG_OF_FWD_31122005_1445
-
-namespace boost { namespace fusion
-{
-    namespace traits
-    {
-        template<typename T, typename Active = void>
-        struct tag_of;
-    }
-}}
-
-#endif
diff --git a/boost/fusion/support/void.hpp b/boost/fusion/support/void.hpp
deleted file mode 100644
index 7650519..0000000
--- a/boost/fusion/support/void.hpp
+++ /dev/null
@@ -1,15 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(BOOST_FUSION_SUPPORT_VOID_20070706_2125)
-#define BOOST_FUSION_SUPPORT_VOID_20070706_2125
-
-namespace boost { namespace fusion
-{
-    struct void_ {};
-}}
-
-#endif
diff --git a/boost/fusion/tuple.hpp b/boost/fusion/tuple.hpp
deleted file mode 100644
index 3a4e7d0..0000000
--- a/boost/fusion/tuple.hpp
+++ /dev/null
@@ -1,15 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_TUPLE_10032005_0806)
-#define FUSION_TUPLE_10032005_0806
-
-#include <boost/fusion/tuple/tuple.hpp>
-#include <boost/fusion/tuple/make_tuple.hpp>
-#include <boost/fusion/tuple/tuple_tie.hpp>
-#include <boost/fusion/container/generation/ignore.hpp>
-
-#endif
diff --git a/boost/fusion/tuple/detail/preprocessed/make_tuple.hpp b/boost/fusion/tuple/detail/preprocessed/make_tuple.hpp
deleted file mode 100644
index 6abb033..0000000
--- a/boost/fusion/tuple/detail/preprocessed/make_tuple.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-#if FUSION_MAX_VECTOR_SIZE <= 10
-#include <boost/fusion/tuple/detail/preprocessed/make_tuple10.hpp>
-#elif FUSION_MAX_VECTOR_SIZE <= 20
-#include <boost/fusion/tuple/detail/preprocessed/make_tuple20.hpp>
-#elif FUSION_MAX_VECTOR_SIZE <= 30
-#include <boost/fusion/tuple/detail/preprocessed/make_tuple30.hpp>
-#elif FUSION_MAX_VECTOR_SIZE <= 40
-#include <boost/fusion/tuple/detail/preprocessed/make_tuple40.hpp>
-#elif FUSION_MAX_VECTOR_SIZE <= 50
-#include <boost/fusion/tuple/detail/preprocessed/make_tuple50.hpp>
-#else
-#error "FUSION_MAX_VECTOR_SIZE out of bounds for preprocessed headers"
-#endif
diff --git a/boost/fusion/tuple/detail/preprocessed/make_tuple10.hpp b/boost/fusion/tuple/detail/preprocessed/make_tuple10.hpp
deleted file mode 100644
index 679af2f..0000000
--- a/boost/fusion/tuple/detail/preprocessed/make_tuple10.hpp
+++ /dev/null
@@ -1,81 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-namespace boost { namespace fusion
-{
-    template <typename T0>
-    inline tuple<typename detail::as_fusion_element<T0>::type>
-    make_tuple(T0 const& _0)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type>(
-            _0);
-    }
-    template <typename T0 , typename T1>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type>
-    make_tuple(T0 const& _0 , T1 const& _1)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type>(
-            _0 , _1);
-    }
-    template <typename T0 , typename T1 , typename T2>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type>
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type>(
-            _0 , _1 , _2);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type>
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type>(
-            _0 , _1 , _2 , _3);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type>
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type>(
-            _0 , _1 , _2 , _3 , _4);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type>
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type>(
-            _0 , _1 , _2 , _3 , _4 , _5);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type>
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type>
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type>
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type>
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9);
-    }
-}}
diff --git a/boost/fusion/tuple/detail/preprocessed/make_tuple20.hpp b/boost/fusion/tuple/detail/preprocessed/make_tuple20.hpp
deleted file mode 100644
index 6a3a733..0000000
--- a/boost/fusion/tuple/detail/preprocessed/make_tuple20.hpp
+++ /dev/null
@@ -1,151 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-namespace boost { namespace fusion
-{
-    template <typename T0>
-    inline tuple<typename detail::as_fusion_element<T0>::type>
-    make_tuple(T0 const& _0)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type>(
-            _0);
-    }
-    template <typename T0 , typename T1>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type>
-    make_tuple(T0 const& _0 , T1 const& _1)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type>(
-            _0 , _1);
-    }
-    template <typename T0 , typename T1 , typename T2>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type>
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type>(
-            _0 , _1 , _2);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type>
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type>(
-            _0 , _1 , _2 , _3);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type>
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type>(
-            _0 , _1 , _2 , _3 , _4);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type>
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type>(
-            _0 , _1 , _2 , _3 , _4 , _5);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type>
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type>
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type>
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type>
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19);
-    }
-}}
diff --git a/boost/fusion/tuple/detail/preprocessed/make_tuple30.hpp b/boost/fusion/tuple/detail/preprocessed/make_tuple30.hpp
deleted file mode 100644
index 358ed80..0000000
--- a/boost/fusion/tuple/detail/preprocessed/make_tuple30.hpp
+++ /dev/null
@@ -1,221 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-namespace boost { namespace fusion
-{
-    template <typename T0>
-    inline tuple<typename detail::as_fusion_element<T0>::type>
-    make_tuple(T0 const& _0)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type>(
-            _0);
-    }
-    template <typename T0 , typename T1>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type>
-    make_tuple(T0 const& _0 , T1 const& _1)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type>(
-            _0 , _1);
-    }
-    template <typename T0 , typename T1 , typename T2>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type>
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type>(
-            _0 , _1 , _2);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type>
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type>(
-            _0 , _1 , _2 , _3);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type>
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type>(
-            _0 , _1 , _2 , _3 , _4);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type>
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type>(
-            _0 , _1 , _2 , _3 , _4 , _5);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type>
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type>
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type>
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type>
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22 , T23 const& _23)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22 , T23 const& _23 , T24 const& _24)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22 , T23 const& _23 , T24 const& _24 , T25 const& _25)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22 , T23 const& _23 , T24 const& _24 , T25 const& _25 , T26 const& _26)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22 , T23 const& _23 , T24 const& _24 , T25 const& _25 , T26 const& _26 , T27 const& _27)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22 , T23 const& _23 , T24 const& _24 , T25 const& _25 , T26 const& _26 , T27 const& _27 , T28 const& _28)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22 , T23 const& _23 , T24 const& _24 , T25 const& _25 , T26 const& _26 , T27 const& _27 , T28 const& _28 , T29  [...]
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29);
-    }
-}}
diff --git a/boost/fusion/tuple/detail/preprocessed/make_tuple40.hpp b/boost/fusion/tuple/detail/preprocessed/make_tuple40.hpp
deleted file mode 100644
index 420c41e..0000000
--- a/boost/fusion/tuple/detail/preprocessed/make_tuple40.hpp
+++ /dev/null
@@ -1,291 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-namespace boost { namespace fusion
-{
-    template <typename T0>
-    inline tuple<typename detail::as_fusion_element<T0>::type>
-    make_tuple(T0 const& _0)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type>(
-            _0);
-    }
-    template <typename T0 , typename T1>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type>
-    make_tuple(T0 const& _0 , T1 const& _1)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type>(
-            _0 , _1);
-    }
-    template <typename T0 , typename T1 , typename T2>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type>
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type>(
-            _0 , _1 , _2);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type>
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type>(
-            _0 , _1 , _2 , _3);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type>
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type>(
-            _0 , _1 , _2 , _3 , _4);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type>
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type>(
-            _0 , _1 , _2 , _3 , _4 , _5);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type>
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type>
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type>
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type>
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22 , T23 const& _23)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22 , T23 const& _23 , T24 const& _24)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22 , T23 const& _23 , T24 const& _24 , T25 const& _25)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22 , T23 const& _23 , T24 const& _24 , T25 const& _25 , T26 const& _26)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22 , T23 const& _23 , T24 const& _24 , T25 const& _25 , T26 const& _26 , T27 const& _27)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22 , T23 const& _23 , T24 const& _24 , T25 const& _25 , T26 const& _26 , T27 const& _27 , T28 const& _28)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22 , T23 const& _23 , T24 const& _24 , T25 const& _25 , T26 const& _26 , T27 const& _27 , T28 const& _28 , T29  [...]
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22 , T23 const& _23 , T24 const& _24 , T25 const& _25 , T26 const& _26 , T27 const& _27 , T28 const& _28 , T29  [...]
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22 , T23 const& _23 , T24 const& _24 , T25 const& _25 , T26 const& _26 , T27 const& _27 , T28 const& _28 , T29  [...]
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22 , T23 const& _23 , T24 const& _24 , T25 const& _25 , T26 const& _26 , T27 const& _27 , T28 const& _28 , T29  [...]
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22 , T23 const& _23 , T24 const& _24 , T25 const& _25 , T26 const& _26 , T27 const& _27 , T28 const& _28 , T29  [...]
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22 , T23 const& _23 , T24 const& _24 , T25 const& _25 , T26 const& _26 , T27 const& _27 , T28 const& _28 , T29  [...]
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22 , T23 const& _23 , T24 const& _24 , T25 const& _25 , T26 const& _26 , T27 const& _27 , T28 const& _28 , T29  [...]
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22 , T23 const& _23 , T24 const& _24 , T25 const& _25 , T26 const& _26 , T27 const& _27 , T28 const& _28 , T29  [...]
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22 , T23 const& _23 , T24 const& _24 , T25 const& _25 , T26 const& _26 , T27 const& _27 , T28 const& _28 , T29  [...]
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22 , T23 const& _23 , T24 const& _24 , T25 const& _25 , T26 const& _26 , T27 const& _27 , T28 const& _28 , T29  [...]
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22 , T23 const& _23 , T24 const& _24 , T25 const& _25 , T26 const& _26 , T27 const& _27 , T28 const& _28 , T29  [...]
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39);
-    }
-}}
diff --git a/boost/fusion/tuple/detail/preprocessed/make_tuple50.hpp b/boost/fusion/tuple/detail/preprocessed/make_tuple50.hpp
deleted file mode 100644
index f387400..0000000
--- a/boost/fusion/tuple/detail/preprocessed/make_tuple50.hpp
+++ /dev/null
@@ -1,361 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-namespace boost { namespace fusion
-{
-    template <typename T0>
-    inline tuple<typename detail::as_fusion_element<T0>::type>
-    make_tuple(T0 const& _0)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type>(
-            _0);
-    }
-    template <typename T0 , typename T1>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type>
-    make_tuple(T0 const& _0 , T1 const& _1)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type>(
-            _0 , _1);
-    }
-    template <typename T0 , typename T1 , typename T2>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type>
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type>(
-            _0 , _1 , _2);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type>
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type>(
-            _0 , _1 , _2 , _3);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type>
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type>(
-            _0 , _1 , _2 , _3 , _4);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type>
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type>(
-            _0 , _1 , _2 , _3 , _4 , _5);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type>
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type>
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type>
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type>
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22 , T23 const& _23)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22 , T23 const& _23 , T24 const& _24)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22 , T23 const& _23 , T24 const& _24 , T25 const& _25)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22 , T23 const& _23 , T24 const& _24 , T25 const& _25 , T26 const& _26)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22 , T23 const& _23 , T24 const& _24 , T25 const& _25 , T26 const& _26 , T27 const& _27)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22 , T23 const& _23 , T24 const& _24 , T25 const& _25 , T26 const& _26 , T27 const& _27 , T28 const& _28)
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22 , T23 const& _23 , T24 const& _24 , T25 const& _25 , T26 const& _26 , T27 const& _27 , T28 const& _28 , T29  [...]
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22 , T23 const& _23 , T24 const& _24 , T25 const& _25 , T26 const& _26 , T27 const& _27 , T28 const& _28 , T29  [...]
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22 , T23 const& _23 , T24 const& _24 , T25 const& _25 , T26 const& _26 , T27 const& _27 , T28 const& _28 , T29  [...]
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32>
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22 , T23 const& _23 , T24 const& _24 , T25 const& _25 , T26 const& _26 , T27 const& _27 , T28 const& _28 , T29  [...]
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22 , T23 const& _23 , T24 const& _24 , T25 const& _25 , T26 const& _26 , T27 const& _27 , T28 const& _28 , T29  [...]
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22 , T23 const& _23 , T24 const& _24 , T25 const& _25 , T26 const& _26 , T27 const& _27 , T28 const& _28 , T29  [...]
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22 , T23 const& _23 , T24 const& _24 , T25 const& _25 , T26 const& _26 , T27 const& _27 , T28 const& _28 , T29  [...]
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22 , T23 const& _23 , T24 const& _24 , T25 const& _25 , T26 const& _26 , T27 const& _27 , T28 const& _28 , T29  [...]
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22 , T23 const& _23 , T24 const& _24 , T25 const& _25 , T26 const& _26 , T27 const& _27 , T28 const& _28 , T29  [...]
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22 , T23 const& _23 , T24 const& _24 , T25 const& _25 , T26 const& _26 , T27 const& _27 , T28 const& _28 , T29  [...]
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22 , T23 const& _23 , T24 const& _24 , T25 const& _25 , T26 const& _26 , T27 const& _27 , T28 const& _28 , T29  [...]
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22 , T23 const& _23 , T24 const& _24 , T25 const& _25 , T26 const& _26 , T27 const& _27 , T28 const& _28 , T29  [...]
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22 , T23 const& _23 , T24 const& _24 , T25 const& _25 , T26 const& _26 , T27 const& _27 , T28 const& _28 , T29  [...]
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22 , T23 const& _23 , T24 const& _24 , T25 const& _25 , T26 const& _26 , T27 const& _27 , T28 const& _28 , T29  [...]
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41 , _42);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22 , T23 const& _23 , T24 const& _24 , T25 const& _25 , T26 const& _26 , T27 const& _27 , T28 const& _28 , T29  [...]
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41 , _42 , _43);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22 , T23 const& _23 , T24 const& _24 , T25 const& _25 , T26 const& _26 , T27 const& _27 , T28 const& _28 , T29  [...]
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41 , _42 , _43 , _44);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22 , T23 const& _23 , T24 const& _24 , T25 const& _25 , T26 const& _26 , T27 const& _27 , T28 const& _28 , T29  [...]
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41 , _42 , _43 , _44 , _45);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22 , T23 const& _23 , T24 const& _24 , T25 const& _25 , T26 const& _26 , T27 const& _27 , T28 const& _28 , T29  [...]
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41 , _42 , _43 , _44 , _45 , _46);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22 , T23 const& _23 , T24 const& _24 , T25 const& _25 , T26 const& _26 , T27 const& _27 , T28 const& _28 , T29  [...]
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41 , _42 , _43 , _44 , _45 , _46 , _47);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22 , T23 const& _23 , T24 const& _24 , T25 const& _25 , T26 const& _26 , T27 const& _27 , T28 const& _28 , T29  [...]
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41 , _42 , _43 , _44 , _45 , _46 , _47 , _48);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    inline tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , typen [...]
-    make_tuple(T0 const& _0 , T1 const& _1 , T2 const& _2 , T3 const& _3 , T4 const& _4 , T5 const& _5 , T6 const& _6 , T7 const& _7 , T8 const& _8 , T9 const& _9 , T10 const& _10 , T11 const& _11 , T12 const& _12 , T13 const& _13 , T14 const& _14 , T15 const& _15 , T16 const& _16 , T17 const& _17 , T18 const& _18 , T19 const& _19 , T20 const& _20 , T21 const& _21 , T22 const& _22 , T23 const& _23 , T24 const& _24 , T25 const& _25 , T26 const& _26 , T27 const& _27 , T28 const& _28 , T29  [...]
-    {
-        return tuple<typename detail::as_fusion_element<T0>::type , typename detail::as_fusion_element<T1>::type , typename detail::as_fusion_element<T2>::type , typename detail::as_fusion_element<T3>::type , typename detail::as_fusion_element<T4>::type , typename detail::as_fusion_element<T5>::type , typename detail::as_fusion_element<T6>::type , typename detail::as_fusion_element<T7>::type , typename detail::as_fusion_element<T8>::type , typename detail::as_fusion_element<T9>::type , t [...]
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41 , _42 , _43 , _44 , _45 , _46 , _47 , _48 , _49);
-    }
-}}
diff --git a/boost/fusion/tuple/detail/preprocessed/tuple.hpp b/boost/fusion/tuple/detail/preprocessed/tuple.hpp
deleted file mode 100644
index 8f9b94a..0000000
--- a/boost/fusion/tuple/detail/preprocessed/tuple.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-#if FUSION_MAX_VECTOR_SIZE <= 10
-#include <boost/fusion/tuple/detail/preprocessed/tuple10.hpp>
-#elif FUSION_MAX_VECTOR_SIZE <= 20
-#include <boost/fusion/tuple/detail/preprocessed/tuple20.hpp>
-#elif FUSION_MAX_VECTOR_SIZE <= 30
-#include <boost/fusion/tuple/detail/preprocessed/tuple30.hpp>
-#elif FUSION_MAX_VECTOR_SIZE <= 40
-#include <boost/fusion/tuple/detail/preprocessed/tuple40.hpp>
-#elif FUSION_MAX_VECTOR_SIZE <= 50
-#include <boost/fusion/tuple/detail/preprocessed/tuple50.hpp>
-#else
-#error "FUSION_MAX_VECTOR_SIZE out of bounds for preprocessed headers"
-#endif
\ No newline at end of file
diff --git a/boost/fusion/tuple/detail/preprocessed/tuple10.hpp b/boost/fusion/tuple/detail/preprocessed/tuple10.hpp
deleted file mode 100644
index dc0b8de..0000000
--- a/boost/fusion/tuple/detail/preprocessed/tuple10.hpp
+++ /dev/null
@@ -1,173 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-namespace boost { namespace fusion
-{
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9>
-    struct tuple : vector<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9>
-    {
-        typedef vector<
-            T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9>
-        base_type;
-        tuple()
-            : base_type() {}
-        tuple(tuple const& rhs)
-            : base_type(rhs) {}
-        template <typename U1, typename U2>
-        tuple(std::pair<U1, U2> const& rhs)
-            : base_type(rhs) {}
-    explicit
-    tuple(typename detail::call_param<T0 >::type _0)
-        : base_type(_0) {}
-    template <typename U0>
-    tuple(tuple<U0> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0>
-    tuple& operator=(tuple<U0> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1)
-        : base_type(_0 , _1) {}
-    template <typename U0 , typename U1>
-    tuple(tuple<U0 , U1> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1>
-    tuple& operator=(tuple<U0 , U1> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2)
-        : base_type(_0 , _1 , _2) {}
-    template <typename U0 , typename U1 , typename U2>
-    tuple(tuple<U0 , U1 , U2> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2>
-    tuple& operator=(tuple<U0 , U1 , U2> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3)
-        : base_type(_0 , _1 , _2 , _3) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3>
-    tuple(tuple<U0 , U1 , U2 , U3> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4)
-        : base_type(_0 , _1 , _2 , _3 , _4) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5)
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6)
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7)
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8)
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9)
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-        template <typename T>
-        tuple& operator=(T const& rhs)
-        {
-            base_type::operator=(rhs);
-            return *this;
-        }
-        tuple& operator=(tuple const& rhs)
-        {
-            base_type::operator=(rhs);
-            return *this;
-        }
-        template <typename U1, typename U2>
-        tuple& operator=(std::pair<U1, U2> const& rhs)
-        {
-            base_type::operator=(rhs);
-            return *this;
-        }
-    };
-    template <typename Tuple>
-    struct tuple_size : result_of::size<Tuple> {};
-    template <int N, typename Tuple>
-    struct tuple_element : result_of::value_at_c<Tuple, N> {};
-    template <int N, typename Tuple>
-    inline typename
-        lazy_disable_if<
-            is_const<Tuple>
-          , result_of::at_c<Tuple, N>
-        >::type
-    get(Tuple& tup)
-    {
-        return at_c<N>(tup);
-    }
-    template <int N, typename Tuple>
-    inline typename result_of::at_c<Tuple const, N>::type
-    get(Tuple const& tup)
-    {
-        return at_c<N>(tup);
-    }
-}}
diff --git a/boost/fusion/tuple/detail/preprocessed/tuple10_fwd.hpp b/boost/fusion/tuple/detail/preprocessed/tuple10_fwd.hpp
deleted file mode 100644
index 7ec3196..0000000
--- a/boost/fusion/tuple/detail/preprocessed/tuple10_fwd.hpp
+++ /dev/null
@@ -1,16 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-namespace boost { namespace fusion
-{
-    struct void_;
-    template <
-        typename T0 = void_ , typename T1 = void_ , typename T2 = void_ , typename T3 = void_ , typename T4 = void_ , typename T5 = void_ , typename T6 = void_ , typename T7 = void_ , typename T8 = void_ , typename T9 = void_
-    >
-    struct tuple;
-}}
diff --git a/boost/fusion/tuple/detail/preprocessed/tuple20.hpp b/boost/fusion/tuple/detail/preprocessed/tuple20.hpp
deleted file mode 100644
index 7ce3859..0000000
--- a/boost/fusion/tuple/detail/preprocessed/tuple20.hpp
+++ /dev/null
@@ -1,283 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-namespace boost { namespace fusion
-{
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19>
-    struct tuple : vector<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19>
-    {
-        typedef vector<
-            T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19>
-        base_type;
-        tuple()
-            : base_type() {}
-        tuple(tuple const& rhs)
-            : base_type(rhs) {}
-        template <typename U1, typename U2>
-        tuple(std::pair<U1, U2> const& rhs)
-            : base_type(rhs) {}
-    explicit
-    tuple(typename detail::call_param<T0 >::type _0)
-        : base_type(_0) {}
-    template <typename U0>
-    tuple(tuple<U0> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0>
-    tuple& operator=(tuple<U0> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1)
-        : base_type(_0 , _1) {}
-    template <typename U0 , typename U1>
-    tuple(tuple<U0 , U1> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1>
-    tuple& operator=(tuple<U0 , U1> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2)
-        : base_type(_0 , _1 , _2) {}
-    template <typename U0 , typename U1 , typename U2>
-    tuple(tuple<U0 , U1 , U2> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2>
-    tuple& operator=(tuple<U0 , U1 , U2> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3)
-        : base_type(_0 , _1 , _2 , _3) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3>
-    tuple(tuple<U0 , U1 , U2 , U3> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4)
-        : base_type(_0 , _1 , _2 , _3 , _4) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5)
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6)
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7)
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8)
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9)
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _10)
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-        template <typename T>
-        tuple& operator=(T const& rhs)
-        {
-            base_type::operator=(rhs);
-            return *this;
-        }
-        tuple& operator=(tuple const& rhs)
-        {
-            base_type::operator=(rhs);
-            return *this;
-        }
-        template <typename U1, typename U2>
-        tuple& operator=(std::pair<U1, U2> const& rhs)
-        {
-            base_type::operator=(rhs);
-            return *this;
-        }
-    };
-    template <typename Tuple>
-    struct tuple_size : result_of::size<Tuple> {};
-    template <int N, typename Tuple>
-    struct tuple_element : result_of::value_at_c<Tuple, N> {};
-    template <int N, typename Tuple>
-    inline typename
-        lazy_disable_if<
-            is_const<Tuple>
-          , result_of::at_c<Tuple, N>
-        >::type
-    get(Tuple& tup)
-    {
-        return at_c<N>(tup);
-    }
-    template <int N, typename Tuple>
-    inline typename result_of::at_c<Tuple const, N>::type
-    get(Tuple const& tup)
-    {
-        return at_c<N>(tup);
-    }
-}}
diff --git a/boost/fusion/tuple/detail/preprocessed/tuple20_fwd.hpp b/boost/fusion/tuple/detail/preprocessed/tuple20_fwd.hpp
deleted file mode 100644
index 3769f89..0000000
--- a/boost/fusion/tuple/detail/preprocessed/tuple20_fwd.hpp
+++ /dev/null
@@ -1,16 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-namespace boost { namespace fusion
-{
-    struct void_;
-    template <
-        typename T0 = void_ , typename T1 = void_ , typename T2 = void_ , typename T3 = void_ , typename T4 = void_ , typename T5 = void_ , typename T6 = void_ , typename T7 = void_ , typename T8 = void_ , typename T9 = void_ , typename T10 = void_ , typename T11 = void_ , typename T12 = void_ , typename T13 = void_ , typename T14 = void_ , typename T15 = void_ , typename T16 = void_ , typename T17 = void_ , typename T18 = void_ , typename T19 = void_
-    >
-    struct tuple;
-}}
diff --git a/boost/fusion/tuple/detail/preprocessed/tuple30.hpp b/boost/fusion/tuple/detail/preprocessed/tuple30.hpp
deleted file mode 100644
index d065293..0000000
--- a/boost/fusion/tuple/detail/preprocessed/tuple30.hpp
+++ /dev/null
@@ -1,393 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-namespace boost { namespace fusion
-{
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29>
-    struct tuple : vector<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29>
-    {
-        typedef vector<
-            T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29>
-        base_type;
-        tuple()
-            : base_type() {}
-        tuple(tuple const& rhs)
-            : base_type(rhs) {}
-        template <typename U1, typename U2>
-        tuple(std::pair<U1, U2> const& rhs)
-            : base_type(rhs) {}
-    explicit
-    tuple(typename detail::call_param<T0 >::type _0)
-        : base_type(_0) {}
-    template <typename U0>
-    tuple(tuple<U0> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0>
-    tuple& operator=(tuple<U0> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1)
-        : base_type(_0 , _1) {}
-    template <typename U0 , typename U1>
-    tuple(tuple<U0 , U1> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1>
-    tuple& operator=(tuple<U0 , U1> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2)
-        : base_type(_0 , _1 , _2) {}
-    template <typename U0 , typename U1 , typename U2>
-    tuple(tuple<U0 , U1 , U2> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2>
-    tuple& operator=(tuple<U0 , U1 , U2> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3)
-        : base_type(_0 , _1 , _2 , _3) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3>
-    tuple(tuple<U0 , U1 , U2 , U3> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4)
-        : base_type(_0 , _1 , _2 , _3 , _4) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5)
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6)
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7)
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8)
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9)
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _10)
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-        template <typename T>
-        tuple& operator=(T const& rhs)
-        {
-            base_type::operator=(rhs);
-            return *this;
-        }
-        tuple& operator=(tuple const& rhs)
-        {
-            base_type::operator=(rhs);
-            return *this;
-        }
-        template <typename U1, typename U2>
-        tuple& operator=(std::pair<U1, U2> const& rhs)
-        {
-            base_type::operator=(rhs);
-            return *this;
-        }
-    };
-    template <typename Tuple>
-    struct tuple_size : result_of::size<Tuple> {};
-    template <int N, typename Tuple>
-    struct tuple_element : result_of::value_at_c<Tuple, N> {};
-    template <int N, typename Tuple>
-    inline typename
-        lazy_disable_if<
-            is_const<Tuple>
-          , result_of::at_c<Tuple, N>
-        >::type
-    get(Tuple& tup)
-    {
-        return at_c<N>(tup);
-    }
-    template <int N, typename Tuple>
-    inline typename result_of::at_c<Tuple const, N>::type
-    get(Tuple const& tup)
-    {
-        return at_c<N>(tup);
-    }
-}}
diff --git a/boost/fusion/tuple/detail/preprocessed/tuple30_fwd.hpp b/boost/fusion/tuple/detail/preprocessed/tuple30_fwd.hpp
deleted file mode 100644
index b9f3e01..0000000
--- a/boost/fusion/tuple/detail/preprocessed/tuple30_fwd.hpp
+++ /dev/null
@@ -1,16 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-namespace boost { namespace fusion
-{
-    struct void_;
-    template <
-        typename T0 = void_ , typename T1 = void_ , typename T2 = void_ , typename T3 = void_ , typename T4 = void_ , typename T5 = void_ , typename T6 = void_ , typename T7 = void_ , typename T8 = void_ , typename T9 = void_ , typename T10 = void_ , typename T11 = void_ , typename T12 = void_ , typename T13 = void_ , typename T14 = void_ , typename T15 = void_ , typename T16 = void_ , typename T17 = void_ , typename T18 = void_ , typename T19 = void_ , typename T20 = void_ , typename T2 [...]
-    >
-    struct tuple;
-}}
diff --git a/boost/fusion/tuple/detail/preprocessed/tuple40.hpp b/boost/fusion/tuple/detail/preprocessed/tuple40.hpp
deleted file mode 100644
index fca8b24..0000000
--- a/boost/fusion/tuple/detail/preprocessed/tuple40.hpp
+++ /dev/null
@@ -1,503 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-namespace boost { namespace fusion
-{
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct tuple : vector<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39>
-    {
-        typedef vector<
-            T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39>
-        base_type;
-        tuple()
-            : base_type() {}
-        tuple(tuple const& rhs)
-            : base_type(rhs) {}
-        template <typename U1, typename U2>
-        tuple(std::pair<U1, U2> const& rhs)
-            : base_type(rhs) {}
-    explicit
-    tuple(typename detail::call_param<T0 >::type _0)
-        : base_type(_0) {}
-    template <typename U0>
-    tuple(tuple<U0> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0>
-    tuple& operator=(tuple<U0> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1)
-        : base_type(_0 , _1) {}
-    template <typename U0 , typename U1>
-    tuple(tuple<U0 , U1> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1>
-    tuple& operator=(tuple<U0 , U1> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2)
-        : base_type(_0 , _1 , _2) {}
-    template <typename U0 , typename U1 , typename U2>
-    tuple(tuple<U0 , U1 , U2> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2>
-    tuple& operator=(tuple<U0 , U1 , U2> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3)
-        : base_type(_0 , _1 , _2 , _3) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3>
-    tuple(tuple<U0 , U1 , U2 , U3> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4)
-        : base_type(_0 , _1 , _2 , _3 , _4) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5)
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6)
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7)
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8)
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9)
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _10)
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename U32>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename U32>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename [...]
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename [...]
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename [...]
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename [...]
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename [...]
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename [...]
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename [...]
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename [...]
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename [...]
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename [...]
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename [...]
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename [...]
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename [...]
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename [...]
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-        template <typename T>
-        tuple& operator=(T const& rhs)
-        {
-            base_type::operator=(rhs);
-            return *this;
-        }
-        tuple& operator=(tuple const& rhs)
-        {
-            base_type::operator=(rhs);
-            return *this;
-        }
-        template <typename U1, typename U2>
-        tuple& operator=(std::pair<U1, U2> const& rhs)
-        {
-            base_type::operator=(rhs);
-            return *this;
-        }
-    };
-    template <typename Tuple>
-    struct tuple_size : result_of::size<Tuple> {};
-    template <int N, typename Tuple>
-    struct tuple_element : result_of::value_at_c<Tuple, N> {};
-    template <int N, typename Tuple>
-    inline typename
-        lazy_disable_if<
-            is_const<Tuple>
-          , result_of::at_c<Tuple, N>
-        >::type
-    get(Tuple& tup)
-    {
-        return at_c<N>(tup);
-    }
-    template <int N, typename Tuple>
-    inline typename result_of::at_c<Tuple const, N>::type
-    get(Tuple const& tup)
-    {
-        return at_c<N>(tup);
-    }
-}}
diff --git a/boost/fusion/tuple/detail/preprocessed/tuple40_fwd.hpp b/boost/fusion/tuple/detail/preprocessed/tuple40_fwd.hpp
deleted file mode 100644
index 200bf5d..0000000
--- a/boost/fusion/tuple/detail/preprocessed/tuple40_fwd.hpp
+++ /dev/null
@@ -1,16 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-namespace boost { namespace fusion
-{
-    struct void_;
-    template <
-        typename T0 = void_ , typename T1 = void_ , typename T2 = void_ , typename T3 = void_ , typename T4 = void_ , typename T5 = void_ , typename T6 = void_ , typename T7 = void_ , typename T8 = void_ , typename T9 = void_ , typename T10 = void_ , typename T11 = void_ , typename T12 = void_ , typename T13 = void_ , typename T14 = void_ , typename T15 = void_ , typename T16 = void_ , typename T17 = void_ , typename T18 = void_ , typename T19 = void_ , typename T20 = void_ , typename T2 [...]
-    >
-    struct tuple;
-}}
diff --git a/boost/fusion/tuple/detail/preprocessed/tuple50.hpp b/boost/fusion/tuple/detail/preprocessed/tuple50.hpp
deleted file mode 100644
index 34ba8d4..0000000
--- a/boost/fusion/tuple/detail/preprocessed/tuple50.hpp
+++ /dev/null
@@ -1,613 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-namespace boost { namespace fusion
-{
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    struct tuple : vector<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 , T49>
-    {
-        typedef vector<
-            T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 , T25 , T26 , T27 , T28 , T29 , T30 , T31 , T32 , T33 , T34 , T35 , T36 , T37 , T38 , T39 , T40 , T41 , T42 , T43 , T44 , T45 , T46 , T47 , T48 , T49>
-        base_type;
-        tuple()
-            : base_type() {}
-        tuple(tuple const& rhs)
-            : base_type(rhs) {}
-        template <typename U1, typename U2>
-        tuple(std::pair<U1, U2> const& rhs)
-            : base_type(rhs) {}
-    explicit
-    tuple(typename detail::call_param<T0 >::type _0)
-        : base_type(_0) {}
-    template <typename U0>
-    tuple(tuple<U0> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0>
-    tuple& operator=(tuple<U0> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1)
-        : base_type(_0 , _1) {}
-    template <typename U0 , typename U1>
-    tuple(tuple<U0 , U1> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1>
-    tuple& operator=(tuple<U0 , U1> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2)
-        : base_type(_0 , _1 , _2) {}
-    template <typename U0 , typename U1 , typename U2>
-    tuple(tuple<U0 , U1 , U2> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2>
-    tuple& operator=(tuple<U0 , U1 , U2> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3)
-        : base_type(_0 , _1 , _2 , _3) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3>
-    tuple(tuple<U0 , U1 , U2 , U3> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4)
-        : base_type(_0 , _1 , _2 , _3 , _4) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5)
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6)
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7)
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8)
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9)
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _10)
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename U32>
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename U32>
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename [...]
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename [...]
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename [...]
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename [...]
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename [...]
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename [...]
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename [...]
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename [...]
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename [...]
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename [...]
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename [...]
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename [...]
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename [...]
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename [...]
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename [...]
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39 , U40> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename [...]
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39 , U40> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename [...]
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39 , U40 , U41> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename [...]
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39 , U40 , U41> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41 , _42) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename [...]
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39 , U40 , U41 , U42> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename [...]
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39 , U40 , U41 , U42> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41 , _42 , _43) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename [...]
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39 , U40 , U41 , U42 , U43> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename [...]
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39 , U40 , U41 , U42 , U43> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41 , _42 , _43 , _44) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename [...]
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39 , U40 , U41 , U42 , U43 , U44> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename [...]
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39 , U40 , U41 , U42 , U43 , U44> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41 , _42 , _43 , _44 , _45) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename [...]
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39 , U40 , U41 , U42 , U43 , U44 , U45> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename [...]
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39 , U40 , U41 , U42 , U43 , U44 , U45> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41 , _42 , _43 , _44 , _45 , _46) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename [...]
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39 , U40 , U41 , U42 , U43 , U44 , U45 , U46> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename [...]
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39 , U40 , U41 , U42 , U43 , U44 , U45 , U46> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41 , _42 , _43 , _44 , _45 , _46 , _47) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename [...]
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39 , U40 , U41 , U42 , U43 , U44 , U45 , U46 , U47> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename [...]
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39 , U40 , U41 , U42 , U43 , U44 , U45 , U46 , U47> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41 , _42 , _43 , _44 , _45 , _46 , _47 , _48) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename [...]
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39 , U40 , U41 , U42 , U43 , U44 , U45 , U46 , U47 , U48> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename [...]
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39 , U40 , U41 , U42 , U43 , U44 , U45 , U46 , U47 , U48> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-    tuple(typename detail::call_param<T0 >::type _0 , typename detail::call_param<T1 >::type _1 , typename detail::call_param<T2 >::type _2 , typename detail::call_param<T3 >::type _3 , typename detail::call_param<T4 >::type _4 , typename detail::call_param<T5 >::type _5 , typename detail::call_param<T6 >::type _6 , typename detail::call_param<T7 >::type _7 , typename detail::call_param<T8 >::type _8 , typename detail::call_param<T9 >::type _9 , typename detail::call_param<T10 >::type _1 [...]
-        : base_type(_0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41 , _42 , _43 , _44 , _45 , _46 , _47 , _48 , _49) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename [...]
-    tuple(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39 , U40 , U41 , U42 , U43 , U44 , U45 , U46 , U47 , U48 , U49> const& rhs)
-        : base_type(rhs) {}
-    template <typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9 , typename U10 , typename U11 , typename U12 , typename U13 , typename U14 , typename U15 , typename U16 , typename U17 , typename U18 , typename U19 , typename U20 , typename U21 , typename U22 , typename U23 , typename U24 , typename U25 , typename U26 , typename U27 , typename U28 , typename U29 , typename U30 , typename U31 , typename [...]
-    tuple& operator=(tuple<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9 , U10 , U11 , U12 , U13 , U14 , U15 , U16 , U17 , U18 , U19 , U20 , U21 , U22 , U23 , U24 , U25 , U26 , U27 , U28 , U29 , U30 , U31 , U32 , U33 , U34 , U35 , U36 , U37 , U38 , U39 , U40 , U41 , U42 , U43 , U44 , U45 , U46 , U47 , U48 , U49> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-        template <typename T>
-        tuple& operator=(T const& rhs)
-        {
-            base_type::operator=(rhs);
-            return *this;
-        }
-        tuple& operator=(tuple const& rhs)
-        {
-            base_type::operator=(rhs);
-            return *this;
-        }
-        template <typename U1, typename U2>
-        tuple& operator=(std::pair<U1, U2> const& rhs)
-        {
-            base_type::operator=(rhs);
-            return *this;
-        }
-    };
-    template <typename Tuple>
-    struct tuple_size : result_of::size<Tuple> {};
-    template <int N, typename Tuple>
-    struct tuple_element : result_of::value_at_c<Tuple, N> {};
-    template <int N, typename Tuple>
-    inline typename
-        lazy_disable_if<
-            is_const<Tuple>
-          , result_of::at_c<Tuple, N>
-        >::type
-    get(Tuple& tup)
-    {
-        return at_c<N>(tup);
-    }
-    template <int N, typename Tuple>
-    inline typename result_of::at_c<Tuple const, N>::type
-    get(Tuple const& tup)
-    {
-        return at_c<N>(tup);
-    }
-}}
diff --git a/boost/fusion/tuple/detail/preprocessed/tuple50_fwd.hpp b/boost/fusion/tuple/detail/preprocessed/tuple50_fwd.hpp
deleted file mode 100644
index 18fd75c..0000000
--- a/boost/fusion/tuple/detail/preprocessed/tuple50_fwd.hpp
+++ /dev/null
@@ -1,16 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-namespace boost { namespace fusion
-{
-    struct void_;
-    template <
-        typename T0 = void_ , typename T1 = void_ , typename T2 = void_ , typename T3 = void_ , typename T4 = void_ , typename T5 = void_ , typename T6 = void_ , typename T7 = void_ , typename T8 = void_ , typename T9 = void_ , typename T10 = void_ , typename T11 = void_ , typename T12 = void_ , typename T13 = void_ , typename T14 = void_ , typename T15 = void_ , typename T16 = void_ , typename T17 = void_ , typename T18 = void_ , typename T19 = void_ , typename T20 = void_ , typename T2 [...]
-    >
-    struct tuple;
-}}
diff --git a/boost/fusion/tuple/detail/preprocessed/tuple_fwd.hpp b/boost/fusion/tuple/detail/preprocessed/tuple_fwd.hpp
deleted file mode 100644
index 234936c..0000000
--- a/boost/fusion/tuple/detail/preprocessed/tuple_fwd.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-#if FUSION_MAX_VECTOR_SIZE <= 10
-#include <boost/fusion/tuple/detail/preprocessed/tuple10_fwd.hpp>
-#elif FUSION_MAX_VECTOR_SIZE <= 20
-#include <boost/fusion/tuple/detail/preprocessed/tuple20_fwd.hpp>
-#elif FUSION_MAX_VECTOR_SIZE <= 30
-#include <boost/fusion/tuple/detail/preprocessed/tuple30_fwd.hpp>
-#elif FUSION_MAX_VECTOR_SIZE <= 40
-#include <boost/fusion/tuple/detail/preprocessed/tuple40_fwd.hpp>
-#elif FUSION_MAX_VECTOR_SIZE <= 50
-#include <boost/fusion/tuple/detail/preprocessed/tuple50_fwd.hpp>
-#else
-#error "FUSION_MAX_VECTOR_SIZE out of bounds for preprocessed headers"
-#endif
diff --git a/boost/fusion/tuple/detail/preprocessed/tuple_tie.hpp b/boost/fusion/tuple/detail/preprocessed/tuple_tie.hpp
deleted file mode 100644
index 5898c6b..0000000
--- a/boost/fusion/tuple/detail/preprocessed/tuple_tie.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-#if FUSION_MAX_VECTOR_SIZE <= 10
-#include <boost/fusion/tuple/detail/preprocessed/tuple_tie10.hpp>
-#elif FUSION_MAX_VECTOR_SIZE <= 20
-#include <boost/fusion/tuple/detail/preprocessed/tuple_tie20.hpp>
-#elif FUSION_MAX_VECTOR_SIZE <= 30
-#include <boost/fusion/tuple/detail/preprocessed/tuple_tie30.hpp>
-#elif FUSION_MAX_VECTOR_SIZE <= 40
-#include <boost/fusion/tuple/detail/preprocessed/tuple_tie40.hpp>
-#elif FUSION_MAX_VECTOR_SIZE <= 50
-#include <boost/fusion/tuple/detail/preprocessed/tuple_tie50.hpp>
-#else
-#error "FUSION_MAX_VECTOR_SIZE out of bounds for preprocessed headers"
-#endif
diff --git a/boost/fusion/tuple/detail/preprocessed/tuple_tie10.hpp b/boost/fusion/tuple/detail/preprocessed/tuple_tie10.hpp
deleted file mode 100644
index be8c547..0000000
--- a/boost/fusion/tuple/detail/preprocessed/tuple_tie10.hpp
+++ /dev/null
@@ -1,81 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-namespace boost { namespace fusion
-{
-    template <typename T0>
-    inline tuple<T0&>
-    tie(T0 & _0)
-    {
-        return tuple<T0&>(
-            _0);
-    }
-    template <typename T0 , typename T1>
-    inline tuple<T0& , T1&>
-    tie(T0 & _0 , T1 & _1)
-    {
-        return tuple<T0& , T1&>(
-            _0 , _1);
-    }
-    template <typename T0 , typename T1 , typename T2>
-    inline tuple<T0& , T1& , T2&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2)
-    {
-        return tuple<T0& , T1& , T2&>(
-            _0 , _1 , _2);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3>
-    inline tuple<T0& , T1& , T2& , T3&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3)
-    {
-        return tuple<T0& , T1& , T2& , T3&>(
-            _0 , _1 , _2 , _3);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4>
-    inline tuple<T0& , T1& , T2& , T3& , T4&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4&>(
-            _0 , _1 , _2 , _3 , _4);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5&>(
-            _0 , _1 , _2 , _3 , _4 , _5);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9);
-    }
-}}
diff --git a/boost/fusion/tuple/detail/preprocessed/tuple_tie20.hpp b/boost/fusion/tuple/detail/preprocessed/tuple_tie20.hpp
deleted file mode 100644
index f14060e..0000000
--- a/boost/fusion/tuple/detail/preprocessed/tuple_tie20.hpp
+++ /dev/null
@@ -1,151 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-namespace boost { namespace fusion
-{
-    template <typename T0>
-    inline tuple<T0&>
-    tie(T0 & _0)
-    {
-        return tuple<T0&>(
-            _0);
-    }
-    template <typename T0 , typename T1>
-    inline tuple<T0& , T1&>
-    tie(T0 & _0 , T1 & _1)
-    {
-        return tuple<T0& , T1&>(
-            _0 , _1);
-    }
-    template <typename T0 , typename T1 , typename T2>
-    inline tuple<T0& , T1& , T2&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2)
-    {
-        return tuple<T0& , T1& , T2&>(
-            _0 , _1 , _2);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3>
-    inline tuple<T0& , T1& , T2& , T3&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3)
-    {
-        return tuple<T0& , T1& , T2& , T3&>(
-            _0 , _1 , _2 , _3);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4>
-    inline tuple<T0& , T1& , T2& , T3& , T4&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4&>(
-            _0 , _1 , _2 , _3 , _4);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5&>(
-            _0 , _1 , _2 , _3 , _4 , _5);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19);
-    }
-}}
diff --git a/boost/fusion/tuple/detail/preprocessed/tuple_tie30.hpp b/boost/fusion/tuple/detail/preprocessed/tuple_tie30.hpp
deleted file mode 100644
index 513c780..0000000
--- a/boost/fusion/tuple/detail/preprocessed/tuple_tie30.hpp
+++ /dev/null
@@ -1,221 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-namespace boost { namespace fusion
-{
-    template <typename T0>
-    inline tuple<T0&>
-    tie(T0 & _0)
-    {
-        return tuple<T0&>(
-            _0);
-    }
-    template <typename T0 , typename T1>
-    inline tuple<T0& , T1&>
-    tie(T0 & _0 , T1 & _1)
-    {
-        return tuple<T0& , T1&>(
-            _0 , _1);
-    }
-    template <typename T0 , typename T1 , typename T2>
-    inline tuple<T0& , T1& , T2&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2)
-    {
-        return tuple<T0& , T1& , T2&>(
-            _0 , _1 , _2);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3>
-    inline tuple<T0& , T1& , T2& , T3&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3)
-    {
-        return tuple<T0& , T1& , T2& , T3&>(
-            _0 , _1 , _2 , _3);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4>
-    inline tuple<T0& , T1& , T2& , T3& , T4&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4&>(
-            _0 , _1 , _2 , _3 , _4);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5&>(
-            _0 , _1 , _2 , _3 , _4 , _5);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22 , T23 & _23)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22 , T23 & _23 , T24 & _24)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22 , T23 & _23 , T24 & _24 , T25 & _25)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22 , T23 & _23 , T24 & _24 , T25 & _25 , T26 & _26)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22 , T23 & _23 , T24 & _24 , T25 & _25 , T26 & _26 , T27 & _27)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22 , T23 & _23 , T24 & _24 , T25 & _25 , T26 & _26 , T27 & _27 , T28 & _28)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22 , T23 & _23 , T24 & _24 , T25 & _25 , T26 & _26 , T27 & _27 , T28 & _28 , T29 & _29)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29);
-    }
-}}
diff --git a/boost/fusion/tuple/detail/preprocessed/tuple_tie40.hpp b/boost/fusion/tuple/detail/preprocessed/tuple_tie40.hpp
deleted file mode 100644
index be56add..0000000
--- a/boost/fusion/tuple/detail/preprocessed/tuple_tie40.hpp
+++ /dev/null
@@ -1,291 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-namespace boost { namespace fusion
-{
-    template <typename T0>
-    inline tuple<T0&>
-    tie(T0 & _0)
-    {
-        return tuple<T0&>(
-            _0);
-    }
-    template <typename T0 , typename T1>
-    inline tuple<T0& , T1&>
-    tie(T0 & _0 , T1 & _1)
-    {
-        return tuple<T0& , T1&>(
-            _0 , _1);
-    }
-    template <typename T0 , typename T1 , typename T2>
-    inline tuple<T0& , T1& , T2&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2)
-    {
-        return tuple<T0& , T1& , T2&>(
-            _0 , _1 , _2);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3>
-    inline tuple<T0& , T1& , T2& , T3&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3)
-    {
-        return tuple<T0& , T1& , T2& , T3&>(
-            _0 , _1 , _2 , _3);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4>
-    inline tuple<T0& , T1& , T2& , T3& , T4&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4&>(
-            _0 , _1 , _2 , _3 , _4);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5&>(
-            _0 , _1 , _2 , _3 , _4 , _5);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22 , T23 & _23)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22 , T23 & _23 , T24 & _24)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22 , T23 & _23 , T24 & _24 , T25 & _25)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22 , T23 & _23 , T24 & _24 , T25 & _25 , T26 & _26)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22 , T23 & _23 , T24 & _24 , T25 & _25 , T26 & _26 , T27 & _27)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22 , T23 & _23 , T24 & _24 , T25 & _25 , T26 & _26 , T27 & _27 , T28 & _28)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22 , T23 & _23 , T24 & _24 , T25 & _25 , T26 & _26 , T27 & _27 , T28 & _28 , T29 & _29)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22 , T23 & _23 , T24 & _24 , T25 & _25 , T26 & _26 , T27 & _27 , T28 & _28 , T29 & _29 , T30 & _30)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22 , T23 & _23 , T24 & _24 , T25 & _25 , T26 & _26 , T27 & _27 , T28 & _28 , T29 & _29 , T30 & _30 , T31 & _31)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31& , T32&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22 , T23 & _23 , T24 & _24 , T25 & _25 , T26 & _26 , T27 & _27 , T28 & _28 , T29 & _29 , T30 & _30 , T31 & _31 , T32 & _32)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31& , T32&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31& , T32& , T33&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22 , T23 & _23 , T24 & _24 , T25 & _25 , T26 & _26 , T27 & _27 , T28 & _28 , T29 & _29 , T30 & _30 , T31 & _31 , T32 & _32 , T33 & _33)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31& , T32& , T33&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31& , T32& , T33& , T34&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22 , T23 & _23 , T24 & _24 , T25 & _25 , T26 & _26 , T27 & _27 , T28 & _28 , T29 & _29 , T30 & _30 , T31 & _31 , T32 & _32 , T33 & _33 , T34 & _34)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31& , T32& , T33& , T34&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31& , T32& , T33& , T34& , T35&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22 , T23 & _23 , T24 & _24 , T25 & _25 , T26 & _26 , T27 & _27 , T28 & _28 , T29 & _29 , T30 & _30 , T31 & _31 , T32 & _32 , T33 & _33 , T34 & _34 , T35 & _35)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31& , T32& , T33& , T34& , T35&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31& , T32& , T33& , T34& , T35& , T36&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22 , T23 & _23 , T24 & _24 , T25 & _25 , T26 & _26 , T27 & _27 , T28 & _28 , T29 & _29 , T30 & _30 , T31 & _31 , T32 & _32 , T33 & _33 , T34 & _34 , T35 & _35 , T36 & _36)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31& , T32& , T33& , T34& , T35& , T36&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31& , T32& , T33& , T34& , T35& , T36& , T37&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22 , T23 & _23 , T24 & _24 , T25 & _25 , T26 & _26 , T27 & _27 , T28 & _28 , T29 & _29 , T30 & _30 , T31 & _31 , T32 & _32 , T33 & _33 , T34 & _34 , T35 & _35 , T36 & _36 , T37 & _37)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31& , T32& , T33& , T34& , T35& , T36& , T37&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31& , T32& , T33& , T34& , T35& , T36& , T37& , T38&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22 , T23 & _23 , T24 & _24 , T25 & _25 , T26 & _26 , T27 & _27 , T28 & _28 , T29 & _29 , T30 & _30 , T31 & _31 , T32 & _32 , T33 & _33 , T34 & _34 , T35 & _35 , T36 & _36 , T37 & _37 , T38 & _38)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31& , T32& , T33& , T34& , T35& , T36& , T37& , T38&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31& , T32& , T33& , T34& , T35& , T36& , T37& , T38& , T39&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22 , T23 & _23 , T24 & _24 , T25 & _25 , T26 & _26 , T27 & _27 , T28 & _28 , T29 & _29 , T30 & _30 , T31 & _31 , T32 & _32 , T33 & _33 , T34 & _34 , T35 & _35 , T36 & _36 , T37 & _37 , T38 & _38 , T39 & _39)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31& , T32& , T33& , T34& , T35& , T36& , T37& , T38& , T39&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39);
-    }
-}}
diff --git a/boost/fusion/tuple/detail/preprocessed/tuple_tie50.hpp b/boost/fusion/tuple/detail/preprocessed/tuple_tie50.hpp
deleted file mode 100644
index 164db79..0000000
--- a/boost/fusion/tuple/detail/preprocessed/tuple_tie50.hpp
+++ /dev/null
@@ -1,361 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-namespace boost { namespace fusion
-{
-    template <typename T0>
-    inline tuple<T0&>
-    tie(T0 & _0)
-    {
-        return tuple<T0&>(
-            _0);
-    }
-    template <typename T0 , typename T1>
-    inline tuple<T0& , T1&>
-    tie(T0 & _0 , T1 & _1)
-    {
-        return tuple<T0& , T1&>(
-            _0 , _1);
-    }
-    template <typename T0 , typename T1 , typename T2>
-    inline tuple<T0& , T1& , T2&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2)
-    {
-        return tuple<T0& , T1& , T2&>(
-            _0 , _1 , _2);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3>
-    inline tuple<T0& , T1& , T2& , T3&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3)
-    {
-        return tuple<T0& , T1& , T2& , T3&>(
-            _0 , _1 , _2 , _3);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4>
-    inline tuple<T0& , T1& , T2& , T3& , T4&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4&>(
-            _0 , _1 , _2 , _3 , _4);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5&>(
-            _0 , _1 , _2 , _3 , _4 , _5);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22 , T23 & _23)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22 , T23 & _23 , T24 & _24)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22 , T23 & _23 , T24 & _24 , T25 & _25)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22 , T23 & _23 , T24 & _24 , T25 & _25 , T26 & _26)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22 , T23 & _23 , T24 & _24 , T25 & _25 , T26 & _26 , T27 & _27)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22 , T23 & _23 , T24 & _24 , T25 & _25 , T26 & _26 , T27 & _27 , T28 & _28)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22 , T23 & _23 , T24 & _24 , T25 & _25 , T26 & _26 , T27 & _27 , T28 & _28 , T29 & _29)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22 , T23 & _23 , T24 & _24 , T25 & _25 , T26 & _26 , T27 & _27 , T28 & _28 , T29 & _29 , T30 & _30)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22 , T23 & _23 , T24 & _24 , T25 & _25 , T26 & _26 , T27 & _27 , T28 & _28 , T29 & _29 , T30 & _30 , T31 & _31)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename T32>
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31& , T32&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22 , T23 & _23 , T24 & _24 , T25 & _25 , T26 & _26 , T27 & _27 , T28 & _28 , T29 & _29 , T30 & _30 , T31 & _31 , T32 & _32)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31& , T32&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31& , T32& , T33&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22 , T23 & _23 , T24 & _24 , T25 & _25 , T26 & _26 , T27 & _27 , T28 & _28 , T29 & _29 , T30 & _30 , T31 & _31 , T32 & _32 , T33 & _33)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31& , T32& , T33&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31& , T32& , T33& , T34&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22 , T23 & _23 , T24 & _24 , T25 & _25 , T26 & _26 , T27 & _27 , T28 & _28 , T29 & _29 , T30 & _30 , T31 & _31 , T32 & _32 , T33 & _33 , T34 & _34)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31& , T32& , T33& , T34&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31& , T32& , T33& , T34& , T35&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22 , T23 & _23 , T24 & _24 , T25 & _25 , T26 & _26 , T27 & _27 , T28 & _28 , T29 & _29 , T30 & _30 , T31 & _31 , T32 & _32 , T33 & _33 , T34 & _34 , T35 & _35)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31& , T32& , T33& , T34& , T35&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31& , T32& , T33& , T34& , T35& , T36&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22 , T23 & _23 , T24 & _24 , T25 & _25 , T26 & _26 , T27 & _27 , T28 & _28 , T29 & _29 , T30 & _30 , T31 & _31 , T32 & _32 , T33 & _33 , T34 & _34 , T35 & _35 , T36 & _36)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31& , T32& , T33& , T34& , T35& , T36&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31& , T32& , T33& , T34& , T35& , T36& , T37&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22 , T23 & _23 , T24 & _24 , T25 & _25 , T26 & _26 , T27 & _27 , T28 & _28 , T29 & _29 , T30 & _30 , T31 & _31 , T32 & _32 , T33 & _33 , T34 & _34 , T35 & _35 , T36 & _36 , T37 & _37)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31& , T32& , T33& , T34& , T35& , T36& , T37&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31& , T32& , T33& , T34& , T35& , T36& , T37& , T38&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22 , T23 & _23 , T24 & _24 , T25 & _25 , T26 & _26 , T27 & _27 , T28 & _28 , T29 & _29 , T30 & _30 , T31 & _31 , T32 & _32 , T33 & _33 , T34 & _34 , T35 & _35 , T36 & _36 , T37 & _37 , T38 & _38)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31& , T32& , T33& , T34& , T35& , T36& , T37& , T38&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31& , T32& , T33& , T34& , T35& , T36& , T37& , T38& , T39&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22 , T23 & _23 , T24 & _24 , T25 & _25 , T26 & _26 , T27 & _27 , T28 & _28 , T29 & _29 , T30 & _30 , T31 & _31 , T32 & _32 , T33 & _33 , T34 & _34 , T35 & _35 , T36 & _36 , T37 & _37 , T38 & _38 , T39 & _39)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31& , T32& , T33& , T34& , T35& , T36& , T37& , T38& , T39&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31& , T32& , T33& , T34& , T35& , T36& , T37& , T38& , T39& , T40&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22 , T23 & _23 , T24 & _24 , T25 & _25 , T26 & _26 , T27 & _27 , T28 & _28 , T29 & _29 , T30 & _30 , T31 & _31 , T32 & _32 , T33 & _33 , T34 & _34 , T35 & _35 , T36 & _36 , T37 & _37 , T38 & _38 , T39 & _39 , T40 & _40)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31& , T32& , T33& , T34& , T35& , T36& , T37& , T38& , T39& , T40&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31& , T32& , T33& , T34& , T35& , T36& , T37& , T38& , T39& , T40& , T41&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22 , T23 & _23 , T24 & _24 , T25 & _25 , T26 & _26 , T27 & _27 , T28 & _28 , T29 & _29 , T30 & _30 , T31 & _31 , T32 & _32 , T33 & _33 , T34 & _34 , T35 & _35 , T36 & _36 , T37 & _37 , T38 & _38 , T39 & _39 , T40 & _40 , T41 & _41)
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31& , T32& , T33& , T34& , T35& , T36& , T37& , T38& , T39& , T40& , T41&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31& , T32& , T33& , T34& , T35& , T36& , T37& , T38& , T39& , T40& , T41& , T42&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22 , T23 & _23 , T24 & _24 , T25 & _25 , T26 & _26 , T27 & _27 , T28 & _28 , T29 & _29 , T30 & _30 , T31 & _31 , T32 & _32 , T33 & _33 , T34 & _34 , T35 & _35 , T36 & _36 , T37 & _37 , T38 & _38 , T39 & _39 , T40 & _40 , T41 & _41 ,  [...]
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31& , T32& , T33& , T34& , T35& , T36& , T37& , T38& , T39& , T40& , T41& , T42&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41 , _42);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31& , T32& , T33& , T34& , T35& , T36& , T37& , T38& , T39& , T40& , T41& , T42& , T43&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22 , T23 & _23 , T24 & _24 , T25 & _25 , T26 & _26 , T27 & _27 , T28 & _28 , T29 & _29 , T30 & _30 , T31 & _31 , T32 & _32 , T33 & _33 , T34 & _34 , T35 & _35 , T36 & _36 , T37 & _37 , T38 & _38 , T39 & _39 , T40 & _40 , T41 & _41 ,  [...]
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31& , T32& , T33& , T34& , T35& , T36& , T37& , T38& , T39& , T40& , T41& , T42& , T43&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41 , _42 , _43);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31& , T32& , T33& , T34& , T35& , T36& , T37& , T38& , T39& , T40& , T41& , T42& , T43& , T44&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22 , T23 & _23 , T24 & _24 , T25 & _25 , T26 & _26 , T27 & _27 , T28 & _28 , T29 & _29 , T30 & _30 , T31 & _31 , T32 & _32 , T33 & _33 , T34 & _34 , T35 & _35 , T36 & _36 , T37 & _37 , T38 & _38 , T39 & _39 , T40 & _40 , T41 & _41 ,  [...]
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31& , T32& , T33& , T34& , T35& , T36& , T37& , T38& , T39& , T40& , T41& , T42& , T43& , T44&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41 , _42 , _43 , _44);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31& , T32& , T33& , T34& , T35& , T36& , T37& , T38& , T39& , T40& , T41& , T42& , T43& , T44& , T45&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22 , T23 & _23 , T24 & _24 , T25 & _25 , T26 & _26 , T27 & _27 , T28 & _28 , T29 & _29 , T30 & _30 , T31 & _31 , T32 & _32 , T33 & _33 , T34 & _34 , T35 & _35 , T36 & _36 , T37 & _37 , T38 & _38 , T39 & _39 , T40 & _40 , T41 & _41 ,  [...]
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31& , T32& , T33& , T34& , T35& , T36& , T37& , T38& , T39& , T40& , T41& , T42& , T43& , T44& , T45&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41 , _42 , _43 , _44 , _45);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31& , T32& , T33& , T34& , T35& , T36& , T37& , T38& , T39& , T40& , T41& , T42& , T43& , T44& , T45& , T46&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22 , T23 & _23 , T24 & _24 , T25 & _25 , T26 & _26 , T27 & _27 , T28 & _28 , T29 & _29 , T30 & _30 , T31 & _31 , T32 & _32 , T33 & _33 , T34 & _34 , T35 & _35 , T36 & _36 , T37 & _37 , T38 & _38 , T39 & _39 , T40 & _40 , T41 & _41 ,  [...]
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31& , T32& , T33& , T34& , T35& , T36& , T37& , T38& , T39& , T40& , T41& , T42& , T43& , T44& , T45& , T46&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41 , _42 , _43 , _44 , _45 , _46);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31& , T32& , T33& , T34& , T35& , T36& , T37& , T38& , T39& , T40& , T41& , T42& , T43& , T44& , T45& , T46& , T47&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22 , T23 & _23 , T24 & _24 , T25 & _25 , T26 & _26 , T27 & _27 , T28 & _28 , T29 & _29 , T30 & _30 , T31 & _31 , T32 & _32 , T33 & _33 , T34 & _34 , T35 & _35 , T36 & _36 , T37 & _37 , T38 & _38 , T39 & _39 , T40 & _40 , T41 & _41 ,  [...]
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31& , T32& , T33& , T34& , T35& , T36& , T37& , T38& , T39& , T40& , T41& , T42& , T43& , T44& , T45& , T46& , T47&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41 , _42 , _43 , _44 , _45 , _46 , _47);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31& , T32& , T33& , T34& , T35& , T36& , T37& , T38& , T39& , T40& , T41& , T42& , T43& , T44& , T45& , T46& , T47& , T48&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22 , T23 & _23 , T24 & _24 , T25 & _25 , T26 & _26 , T27 & _27 , T28 & _28 , T29 & _29 , T30 & _30 , T31 & _31 , T32 & _32 , T33 & _33 , T34 & _34 , T35 & _35 , T36 & _36 , T37 & _37 , T38 & _38 , T39 & _39 , T40 & _40 , T41 & _41 ,  [...]
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31& , T32& , T33& , T34& , T35& , T36& , T37& , T38& , T39& , T40& , T41& , T42& , T43& , T44& , T45& , T46& , T47& , T48&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41 , _42 , _43 , _44 , _45 , _46 , _47 , _48);
-    }
-    template <typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 , typename T20 , typename T21 , typename T22 , typename T23 , typename T24 , typename T25 , typename T26 , typename T27 , typename T28 , typename T29 , typename T30 , typename T31 , typename [...]
-    inline tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31& , T32& , T33& , T34& , T35& , T36& , T37& , T38& , T39& , T40& , T41& , T42& , T43& , T44& , T45& , T46& , T47& , T48& , T49&>
-    tie(T0 & _0 , T1 & _1 , T2 & _2 , T3 & _3 , T4 & _4 , T5 & _5 , T6 & _6 , T7 & _7 , T8 & _8 , T9 & _9 , T10 & _10 , T11 & _11 , T12 & _12 , T13 & _13 , T14 & _14 , T15 & _15 , T16 & _16 , T17 & _17 , T18 & _18 , T19 & _19 , T20 & _20 , T21 & _21 , T22 & _22 , T23 & _23 , T24 & _24 , T25 & _25 , T26 & _26 , T27 & _27 , T28 & _28 , T29 & _29 , T30 & _30 , T31 & _31 , T32 & _32 , T33 & _33 , T34 & _34 , T35 & _35 , T36 & _36 , T37 & _37 , T38 & _38 , T39 & _39 , T40 & _40 , T41 & _41 ,  [...]
-    {
-        return tuple<T0& , T1& , T2& , T3& , T4& , T5& , T6& , T7& , T8& , T9& , T10& , T11& , T12& , T13& , T14& , T15& , T16& , T17& , T18& , T19& , T20& , T21& , T22& , T23& , T24& , T25& , T26& , T27& , T28& , T29& , T30& , T31& , T32& , T33& , T34& , T35& , T36& , T37& , T38& , T39& , T40& , T41& , T42& , T43& , T44& , T45& , T46& , T47& , T48& , T49&>(
-            _0 , _1 , _2 , _3 , _4 , _5 , _6 , _7 , _8 , _9 , _10 , _11 , _12 , _13 , _14 , _15 , _16 , _17 , _18 , _19 , _20 , _21 , _22 , _23 , _24 , _25 , _26 , _27 , _28 , _29 , _30 , _31 , _32 , _33 , _34 , _35 , _36 , _37 , _38 , _39 , _40 , _41 , _42 , _43 , _44 , _45 , _46 , _47 , _48 , _49);
-    }
-}}
diff --git a/boost/fusion/tuple/detail/tuple_expand.hpp b/boost/fusion/tuple/detail/tuple_expand.hpp
deleted file mode 100644
index e23c2e4..0000000
--- a/boost/fusion/tuple/detail/tuple_expand.hpp
+++ /dev/null
@@ -1,50 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#ifndef BOOST_PP_IS_ITERATING
-#if !defined(FUSION_TUPLE_EXPAND_10032005_0815)
-#define FUSION_TUPLE_EXPAND_10032005_0815
-
-#include <boost/preprocessor/iterate.hpp>
-#include <boost/preprocessor/repetition/enum_params.hpp>
-#include <boost/preprocessor/repetition/enum_binary_params.hpp>
-
-#define BOOST_PP_FILENAME_1 \
-    <boost/fusion/tuple/detail/tuple_expand.hpp>
-#define BOOST_PP_ITERATION_LIMITS (1, FUSION_MAX_VECTOR_SIZE)
-#include BOOST_PP_ITERATE()
-
-#endif
-#else // defined(BOOST_PP_IS_ITERATING)
-///////////////////////////////////////////////////////////////////////////////
-//
-//  Preprocessor vertical repetition code
-//
-///////////////////////////////////////////////////////////////////////////////
-
-#define N BOOST_PP_ITERATION()
-
-#if N == 1
-    explicit
-#endif
-    tuple(BOOST_PP_ENUM_BINARY_PARAMS(
-        N, typename detail::call_param<T, >::type _))
-        : base_type(BOOST_PP_ENUM_PARAMS(N, _)) {}
-
-    template <BOOST_PP_ENUM_PARAMS(N, typename U)>
-    tuple(tuple<BOOST_PP_ENUM_PARAMS(N, U)> const& rhs)
-        : base_type(rhs) {}
-
-    template <BOOST_PP_ENUM_PARAMS(N, typename U)>
-    tuple& operator=(tuple<BOOST_PP_ENUM_PARAMS(N, U)> const& rhs)
-    {
-        base_type::operator=(rhs);
-        return *this;
-    }
-
-#undef N
-#endif // defined(BOOST_PP_IS_ITERATING)
-
diff --git a/boost/fusion/tuple/make_tuple.hpp b/boost/fusion/tuple/make_tuple.hpp
deleted file mode 100644
index b2defa2..0000000
--- a/boost/fusion/tuple/make_tuple.hpp
+++ /dev/null
@@ -1,85 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#ifndef BOOST_PP_IS_ITERATING
-#if !defined(FUSION_MAKE_TUPLE_10032005_0843)
-#define FUSION_MAKE_TUPLE_10032005_0843
-
-#include <boost/preprocessor/iterate.hpp>
-#include <boost/preprocessor/repetition/enum_params.hpp>
-#include <boost/preprocessor/repetition/enum_binary_params.hpp>
-#include <boost/fusion/tuple/tuple.hpp>
-#include <boost/fusion/support/detail/as_fusion_element.hpp>
-
-namespace boost { namespace fusion
-{
-    inline tuple<>
-    make_tuple()
-    {
-        return tuple<>();
-    }
-}}
-
-#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
-#include <boost/fusion/tuple/detail/preprocessed/make_tuple.hpp>
-#else
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(preserve: 2, line: 0, output: "detail/preprocessed/make_tuple" FUSION_MAX_VECTOR_SIZE_STR ".hpp")
-#endif
-
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(preserve: 1)
-#endif
-
-namespace boost { namespace fusion
-{
-#define BOOST_FUSION_AS_FUSION_ELEMENT(z, n, data)                               \
-    typename detail::as_fusion_element<BOOST_PP_CAT(T, n)>::type
-
-#define BOOST_PP_FILENAME_1 <boost/fusion/tuple/make_tuple.hpp>
-#define BOOST_PP_ITERATION_LIMITS (1, FUSION_MAX_VECTOR_SIZE)
-#include BOOST_PP_ITERATE()
-
-#undef BOOST_FUSION_AS_FUSION_ELEMENT
-
-}}
-
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(output: null)
-#endif
-
-#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
-
-#endif
-#else // defined(BOOST_PP_IS_ITERATING)
-///////////////////////////////////////////////////////////////////////////////
-//
-//  Preprocessor vertical repetition code
-//
-///////////////////////////////////////////////////////////////////////////////
-
-#define N BOOST_PP_ITERATION()
-
-    template <BOOST_PP_ENUM_PARAMS(N, typename T)>
-    inline tuple<BOOST_PP_ENUM(N, BOOST_FUSION_AS_FUSION_ELEMENT, _)>
-    make_tuple(BOOST_PP_ENUM_BINARY_PARAMS(N, T, const& _))
-    {
-        return tuple<BOOST_PP_ENUM(N, BOOST_FUSION_AS_FUSION_ELEMENT, _)>(
-            BOOST_PP_ENUM_PARAMS(N, _));
-    }
-
-#undef N
-#endif // defined(BOOST_PP_IS_ITERATING)
-
diff --git a/boost/fusion/tuple/tuple.hpp b/boost/fusion/tuple/tuple.hpp
deleted file mode 100644
index 6235072..0000000
--- a/boost/fusion/tuple/tuple.hpp
+++ /dev/null
@@ -1,114 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_TUPLE_10032005_0810)
-#define FUSION_TUPLE_10032005_0810
-
-#include <boost/fusion/tuple/tuple_fwd.hpp>
-#include <boost/fusion/container/vector/vector.hpp>
-#include <boost/fusion/sequence/intrinsic/size.hpp>
-#include <boost/fusion/sequence/intrinsic/value_at.hpp>
-#include <boost/fusion/sequence/intrinsic/at.hpp>
-#include <boost/fusion/sequence/comparison.hpp>
-#include <boost/fusion/sequence/io.hpp>
-#include <boost/utility/enable_if.hpp>
-#include <boost/type_traits/is_const.hpp>
-#include <boost/config/no_tr1/utility.hpp>
-
-#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
-#include <boost/fusion/tuple/detail/preprocessed/tuple.hpp>
-#else
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(preserve: 2, line: 0, output: "detail/preprocessed/tuple" FUSION_MAX_VECTOR_SIZE_STR ".hpp")
-#endif
-
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(preserve: 1)
-#endif
-
-namespace boost { namespace fusion
-{
-    template <BOOST_PP_ENUM_PARAMS(FUSION_MAX_VECTOR_SIZE, typename T)>
-    struct tuple : vector<BOOST_PP_ENUM_PARAMS(FUSION_MAX_VECTOR_SIZE, T)>
-    {
-        typedef vector<
-            BOOST_PP_ENUM_PARAMS(FUSION_MAX_VECTOR_SIZE, T)>
-        base_type;
-
-        tuple()
-            : base_type() {}
-
-        tuple(tuple const& rhs)
-            : base_type(rhs) {}
-
-        template <typename U1, typename U2>
-        tuple(std::pair<U1, U2> const& rhs)
-            : base_type(rhs) {}
-
-        #include <boost/fusion/tuple/detail/tuple_expand.hpp>
-
-        template <typename T>
-        tuple& operator=(T const& rhs)
-        {
-            base_type::operator=(rhs);
-            return *this;
-        }
-
-        tuple& operator=(tuple const& rhs)
-        {
-            base_type::operator=(rhs);
-            return *this;
-        }
-
-        template <typename U1, typename U2>
-        tuple& operator=(std::pair<U1, U2> const& rhs)
-        {
-            base_type::operator=(rhs);
-            return *this;
-        }
-    };
-
-    template <typename Tuple>
-    struct tuple_size : result_of::size<Tuple> {};
-
-    template <int N, typename Tuple>
-    struct tuple_element : result_of::value_at_c<Tuple, N> {};
-
-    template <int N, typename Tuple>
-    inline typename
-        lazy_disable_if<
-            is_const<Tuple>
-          , result_of::at_c<Tuple, N>
-        >::type
-    get(Tuple& tup)
-    {
-        return at_c<N>(tup);
-    }
-
-    template <int N, typename Tuple>
-    inline typename result_of::at_c<Tuple const, N>::type
-    get(Tuple const& tup)
-    {
-        return at_c<N>(tup);
-    }
-}}
-
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(output: null)
-#endif
-
-#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
-
-#endif
diff --git a/boost/fusion/tuple/tuple_fwd.hpp b/boost/fusion/tuple/tuple_fwd.hpp
deleted file mode 100644
index e4dbbd2..0000000
--- a/boost/fusion/tuple/tuple_fwd.hpp
+++ /dev/null
@@ -1,50 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_TUPLE_FORWARD_10032005_0956)
-#define FUSION_TUPLE_FORWARD_10032005_0956
-
-#include <boost/fusion/container/vector/limits.hpp>
-#include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
-
-#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
-#include <boost/fusion/tuple/detail/preprocessed/tuple_fwd.hpp>
-#else
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(preserve: 2, line: 0, output: "detail/preprocessed/tuple" FUSION_MAX_VECTOR_SIZE_STR "_fwd.hpp")
-#endif
-
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(preserve: 1)
-#endif
-
-namespace boost { namespace fusion
-{
-    struct void_;
-
-    template <
-        BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(
-            FUSION_MAX_VECTOR_SIZE, typename T, void_)
-    >
-    struct tuple;
-}}
-
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(output: null)
-#endif
-
-#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
-
-#endif
diff --git a/boost/fusion/tuple/tuple_tie.hpp b/boost/fusion/tuple/tuple_tie.hpp
deleted file mode 100644
index 726a552..0000000
--- a/boost/fusion/tuple/tuple_tie.hpp
+++ /dev/null
@@ -1,75 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#ifndef BOOST_PP_IS_ITERATING
-#if !defined(FUSION_TUPLE_TIE_10032005_0846)
-#define FUSION_TUPLE_TIE_10032005_0846
-
-#include <boost/preprocessor/iterate.hpp>
-#include <boost/preprocessor/cat.hpp>
-#include <boost/preprocessor/repetition/enum_params.hpp>
-#include <boost/preprocessor/repetition/enum_binary_params.hpp>
-#include <boost/fusion/tuple/tuple.hpp>
-
-#if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
-#include <boost/fusion/tuple/detail/preprocessed/tuple_tie.hpp>
-#else
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(preserve: 2, line: 0, output: "detail/preprocessed/tuple_tie" FUSION_MAX_VECTOR_SIZE_STR ".hpp")
-#endif
-
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-    This is an auto-generated file. Do not edit!
-==============================================================================*/
-
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(preserve: 1)
-#endif
-
-namespace boost { namespace fusion
-{
-#define BOOST_FUSION_REF(z, n, data) BOOST_PP_CAT(T, n)&
-
-#define BOOST_PP_FILENAME_1 <boost/fusion/tuple/tuple_tie.hpp>
-#define BOOST_PP_ITERATION_LIMITS (1, FUSION_MAX_VECTOR_SIZE)
-#include BOOST_PP_ITERATE()
-
-#undef BOOST_FUSION_REF
-
-}}
-
-#if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
-#pragma wave option(output: null)
-#endif
-
-#endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
-
-#endif
-#else // defined(BOOST_PP_IS_ITERATING)
-///////////////////////////////////////////////////////////////////////////////
-//
-//  Preprocessor vertical repetition code
-//
-///////////////////////////////////////////////////////////////////////////////
-
-#define N BOOST_PP_ITERATION()
-
-    template <BOOST_PP_ENUM_PARAMS(N, typename T)>
-    inline tuple<BOOST_PP_ENUM(N, BOOST_FUSION_REF, _)>
-    tie(BOOST_PP_ENUM_BINARY_PARAMS(N, T, & _))
-    {
-        return tuple<BOOST_PP_ENUM(N, BOOST_FUSION_REF, _)>(
-            BOOST_PP_ENUM_PARAMS(N, _));
-    }
-
-#undef N
-#endif // defined(BOOST_PP_IS_ITERATING)
-
diff --git a/boost/fusion/view/iterator_range.hpp b/boost/fusion/view/iterator_range.hpp
deleted file mode 100644
index 8006007..0000000
--- a/boost/fusion/view/iterator_range.hpp
+++ /dev/null
@@ -1,12 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_SEQUENCE_VIEW_ITERATOR_RANGE_10022005_0610)
-#define FUSION_SEQUENCE_VIEW_ITERATOR_RANGE_10022005_0610
-
-#include <boost/fusion/view/iterator_range/iterator_range.hpp>
-
-#endif
diff --git a/boost/fusion/view/iterator_range/detail/at_impl.hpp b/boost/fusion/view/iterator_range/detail/at_impl.hpp
deleted file mode 100644
index 1b42523..0000000
--- a/boost/fusion/view/iterator_range/detail/at_impl.hpp
+++ /dev/null
@@ -1,44 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2007 Tobias Schwinger
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-
-#if !defined(BOOST_FUSION_ITERATOR_RANGE_AT_IMPL_HPP_INCLUDED)
-#define BOOST_FUSION_ITERATOR_RANGE_AT_IMPL_HPP_INCLUDED
-
-#include <boost/fusion/iterator/advance.hpp>
-#include <boost/fusion/iterator/deref.hpp>
-
-namespace boost { namespace fusion
-{
-    struct iterator_range_tag;
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct at_impl;
-
-        template <>
-        struct at_impl<iterator_range_tag>
-        {
-            template <typename Seq, typename N>
-            struct apply
-            {
-                typedef typename Seq::begin_type begin_type;
-                typedef typename result_of::advance<begin_type,N>::type pos;
-                typedef typename result_of::deref<pos>::type type;
-
-                static type
-                call(Seq& s)
-                {
-                    return * fusion::advance<N>(s.first);
-                }
-            };
-        };
-    }
-}}
-
-#endif
-
diff --git a/boost/fusion/view/iterator_range/detail/begin_impl.hpp b/boost/fusion/view/iterator_range/detail/begin_impl.hpp
deleted file mode 100644
index 2902e73..0000000
--- a/boost/fusion/view/iterator_range/detail/begin_impl.hpp
+++ /dev/null
@@ -1,39 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_BEGIN_IMPL_05062005_1226)
-#define FUSION_BEGIN_IMPL_05062005_1226
-
-namespace boost { namespace fusion
-{
-    struct iterator_range_tag;
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct begin_impl;
-
-        template <>
-        struct begin_impl<iterator_range_tag>
-        {
-            template <typename Sequence>
-            struct apply
-            {
-                typedef typename Sequence::begin_type type;
-
-                static type
-                call(Sequence& s)
-                {
-                    return s.first;
-                }
-            };
-        };
-    }
-}}
-
-#endif
-
-
diff --git a/boost/fusion/view/iterator_range/detail/end_impl.hpp b/boost/fusion/view/iterator_range/detail/end_impl.hpp
deleted file mode 100644
index 3147afe..0000000
--- a/boost/fusion/view/iterator_range/detail/end_impl.hpp
+++ /dev/null
@@ -1,39 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_END_IMPL_05062005_1226)
-#define FUSION_END_IMPL_05062005_1226
-
-namespace boost { namespace fusion
-{
-    struct iterator_range_tag;
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct end_impl;
-
-        template <>
-        struct end_impl<iterator_range_tag>
-        {
-            template <typename Sequence>
-            struct apply
-            {
-                typedef typename Sequence::end_type type;
-
-                static type
-                call(Sequence& s)
-                {
-                    return s.last;
-                }
-            };
-        };
-    }
-}}
-
-#endif
-
-
diff --git a/boost/fusion/view/iterator_range/detail/is_segmented_impl.hpp b/boost/fusion/view/iterator_range/detail/is_segmented_impl.hpp
deleted file mode 100644
index 032225d..0000000
--- a/boost/fusion/view/iterator_range/detail/is_segmented_impl.hpp
+++ /dev/null
@@ -1,66 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2011 Eric Niebler
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(BOOST_FUSION_ITERATOR_RANGE_IS_SEGMENTED_HPP_INCLUDED)
-#define BOOST_FUSION_ITERATOR_RANGE_IS_SEGMENTED_HPP_INCLUDED
-
-#include <boost/mpl/assert.hpp>
-#include <boost/mpl/bool.hpp>
-
-namespace boost { namespace fusion
-{
-    struct iterator_range_tag;
-
-    template <typename Context>
-    struct segmented_iterator;
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct is_segmented_impl;
-
-        // An iterator_range of segmented_iterators is segmented
-        template <>
-        struct is_segmented_impl<iterator_range_tag>
-        {
-        private:
-            template <typename Iterator>
-            struct is_segmented_iterator
-              : mpl::false_
-            {};
-
-            template <typename Iterator>
-            struct is_segmented_iterator<Iterator &>
-              : is_segmented_iterator<Iterator>
-            {};
-
-            template <typename Iterator>
-            struct is_segmented_iterator<Iterator const>
-              : is_segmented_iterator<Iterator>
-            {};
-
-            template <typename Context>
-            struct is_segmented_iterator<segmented_iterator<Context> >
-              : mpl::true_
-            {};
-
-        public:
-            template <typename Sequence>
-            struct apply
-              : is_segmented_iterator<typename Sequence::begin_type>
-            {
-                BOOST_MPL_ASSERT_RELATION(
-                    is_segmented_iterator<typename Sequence::begin_type>::value
-                  , ==
-                  , is_segmented_iterator<typename Sequence::end_type>::value);
-            };
-        };
-    }
-}}
-
-#endif
-
-
diff --git a/boost/fusion/view/iterator_range/detail/segmented_iterator_range.hpp b/boost/fusion/view/iterator_range/detail/segmented_iterator_range.hpp
deleted file mode 100644
index 2e4e078..0000000
--- a/boost/fusion/view/iterator_range/detail/segmented_iterator_range.hpp
+++ /dev/null
@@ -1,532 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2011 Eric Niebler
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(BOOST_FUSION_SEGMENTED_ITERATOR_RANGE_HPP_INCLUDED)
-#define BOOST_FUSION_SEGMENTED_ITERATOR_RANGE_HPP_INCLUDED
-
-#include <boost/mpl/assert.hpp>
-#include <boost/type_traits/add_const.hpp>
-#include <boost/type_traits/remove_reference.hpp>
-#include <boost/fusion/support/tag_of.hpp>
-#include <boost/fusion/sequence/intrinsic/begin.hpp>
-#include <boost/fusion/sequence/intrinsic/end.hpp>
-#include <boost/fusion/iterator/next.hpp>
-#include <boost/fusion/iterator/deref.hpp>
-#include <boost/fusion/sequence/intrinsic/segments.hpp>
-#include <boost/fusion/algorithm/transformation/push_back.hpp>
-#include <boost/fusion/algorithm/transformation/push_front.hpp>
-#include <boost/fusion/iterator/equal_to.hpp>
-#include <boost/fusion/container/list/detail/reverse_cons.hpp>
-#include <boost/fusion/iterator/detail/segment_sequence.hpp>
-#include <boost/fusion/support/is_sequence.hpp>
-#include <boost/utility/enable_if.hpp>
-
-//  Invariants:
-//  - Each segmented iterator has a stack
-//  - Each value in the stack is an iterator range
-//  - The range at the top of the stack points to values
-//  - All other ranges point to ranges
-//  - The front of each range in the stack (besides the
-//    topmost) is the range above it
-
-namespace boost { namespace fusion
-{
-    template <typename First, typename Last>
-    struct iterator_range;
-
-    namespace result_of
-    {
-        template <typename Sequence, typename T>
-        struct push_back;
-
-        template <typename Sequence, typename T>
-        struct push_front;
-    }
-
-    template <typename Sequence, typename T>
-    typename
-        lazy_enable_if<
-            traits::is_sequence<Sequence>
-          , result_of::push_back<Sequence const, T>
-        >::type
-    push_back(Sequence const& seq, T const& x);
-
-    template <typename Sequence, typename T>
-    typename
-        lazy_enable_if<
-            traits::is_sequence<Sequence>
-          , result_of::push_front<Sequence const, T>
-        >::type
-    push_front(Sequence const& seq, T const& x);
-}}
-
-namespace boost { namespace fusion { namespace detail
-{
-    //auto make_segment_sequence_front(stack_begin)
-    //{
-    //  switch (size(stack_begin))
-    //  {
-    //  case 1:
-    //    return nil_;
-    //  case 2:
-    //    // car(cdr(stack_begin)) is a range over values.
-    //    assert(end(front(car(stack_begin))) == end(car(cdr(stack_begin))));
-    //    return iterator_range(begin(car(cdr(stack_begin))), end(front(car(stack_begin))));
-    //  default:
-    //    // car(cdr(stack_begin)) is a range over segments. We replace the
-    //    // front with a view that is restricted.
-    //    assert(end(segments(front(car(stack_begin)))) == end(car(cdr(stack_begin))));
-    //    return segment_sequence(
-    //      push_front(
-    //        // The following could be a segment_sequence. It then gets wrapped
-    //        // in a single_view, and push_front puts it in a join_view with the
-    //        // following iterator_range.
-    //        iterator_range(next(begin(car(cdr(stack_begin)))), end(segments(front(car(stack_begin))))),
-    //        make_segment_sequence_front(cdr(stack_begin))));
-    //  }
-    //}
-
-    template <typename Stack, std::size_t Size = Stack::size::value>
-    struct make_segment_sequence_front
-    {
-        // assert(end(segments(front(car(stack_begin)))) == end(car(cdr(stack_begin))));
-        BOOST_MPL_ASSERT((
-            result_of::equal_to<
-                typename result_of::end<
-                    typename remove_reference<
-                        typename add_const<
-                            typename result_of::segments<
-                                typename remove_reference<
-                                    typename add_const<
-                                        typename result_of::deref<
-                                            typename Stack::car_type::begin_type
-                                        >::type
-                                    >::type
-                                >::type
-                            >::type
-                        >::type
-                    >::type
-                >::type
-              , typename Stack::cdr_type::car_type::end_type
-            >));
-
-        typedef
-            iterator_range<
-                typename result_of::next<
-                    typename Stack::cdr_type::car_type::begin_type
-                >::type
-              , typename result_of::end<
-                    typename remove_reference<
-                        typename add_const<
-                            typename result_of::segments<
-                                typename remove_reference<
-                                    typename add_const<
-                                        typename result_of::deref<
-                                            typename Stack::car_type::begin_type
-                                        >::type
-                                    >::type
-                                >::type
-                            >::type
-                        >::type
-                    >::type
-                >::type
-            >
-        rest_type;
-
-        typedef
-            make_segment_sequence_front<typename Stack::cdr_type>
-        recurse;
-
-        typedef
-            segment_sequence<
-                typename result_of::push_front<
-                    rest_type const
-                  , typename recurse::type
-                >::type
-            >
-        type;
-
-        static type call(Stack const& stack)
-        {
-            //return segment_sequence(
-            //  push_front(
-            //    iterator_range(next(begin(car(cdr(stack_begin)))), end(segments(front(car(stack_begin))))),
-            //    make_segment_sequence_front(cdr(stack_begin))));
-            return type(
-                fusion::push_front(
-                    rest_type(fusion::next(stack.cdr.car.first), fusion::end(fusion::segments(*stack.car.first)))
-                  , recurse::call(stack.cdr)));
-        }
-    };
-
-    template <typename Stack>
-    struct make_segment_sequence_front<Stack, 2>
-    {
-        // assert(end(front(car(stack_begin))) == end(car(cdr(stack_begin))));
-        BOOST_MPL_ASSERT((
-            result_of::equal_to<
-                typename result_of::end<
-                    typename remove_reference<
-                        typename add_const<
-                            typename result_of::deref<
-                                typename Stack::car_type::begin_type
-                            >::type
-                        >::type
-                    >::type
-                >::type
-              , typename Stack::cdr_type::car_type::end_type
-            >));
-
-        typedef
-            iterator_range<
-                typename Stack::cdr_type::car_type::begin_type
-              , typename result_of::end<
-                    typename remove_reference<
-                        typename add_const<
-                            typename result_of::deref<
-                                typename Stack::car_type::begin_type
-                            >::type
-                        >::type
-                    >::type
-                >::type
-            >
-        type;
-
-        static type call(Stack const& stack)
-        {
-            // return iterator_range(begin(car(cdr(stack_begin))), end(front(car(stack_begin))));
-            return type(stack.cdr.car.first, fusion::end(*stack.car.first));
-        }
-    };
-
-    template <typename Stack>
-    struct make_segment_sequence_front<Stack, 1>
-    {
-        typedef typename Stack::cdr_type type; // nil_
-
-        static type call(Stack const &stack)
-        {
-            return stack.cdr;
-        }
-    };
-
-    //auto make_segment_sequence_back(stack_end)
-    //{
-    //  switch (size(stack_end))
-    //  {
-    //  case 1:
-    //    return nil_;
-    //  case 2:
-    //    // car(cdr(stack_back)) is a range over values.
-    //    assert(end(front(car(stack_end))) == end(car(cdr(stack_end))));
-    //    return iterator_range(begin(front(car(stack_end))), begin(car(cdr(stack_end))));
-    //  default:
-    //    // car(cdr(stack_begin)) is a range over segments. We replace the
-    //    // back with a view that is restricted.
-    //    assert(end(segments(front(car(stack_end)))) == end(car(cdr(stack_end))));
-    //    return segment_sequence(
-    //      push_back(
-    //        iterator_range(begin(segments(front(car(stack_end)))), begin(car(cdr(stack_end)))),
-    //        make_segment_sequence_back(cdr(stack_end))));
-    //  }
-    //}
-
-    template <typename Stack, std::size_t Size = Stack::size::value>
-    struct make_segment_sequence_back
-    {
-        // assert(end(segments(front(car(stack_begin)))) == end(car(cdr(stack_begin))));
-        BOOST_MPL_ASSERT((
-            result_of::equal_to<
-                typename result_of::end<
-                    typename remove_reference<
-                        typename add_const<
-                            typename result_of::segments<
-                                typename remove_reference<
-                                    typename add_const<
-                                        typename result_of::deref<
-                                            typename Stack::car_type::begin_type
-                                        >::type
-                                    >::type
-                                >::type
-                            >::type
-                        >::type
-                    >::type
-                >::type
-              , typename Stack::cdr_type::car_type::end_type
-            >));
-
-        typedef
-            iterator_range<
-                typename result_of::begin<
-                    typename remove_reference<
-                        typename add_const<
-                            typename result_of::segments<
-                                typename remove_reference<
-                                    typename add_const<
-                                        typename result_of::deref<
-                                            typename Stack::car_type::begin_type
-                                        >::type
-                                    >::type
-                                >::type
-                            >::type
-                        >::type
-                    >::type
-                >::type
-              , typename Stack::cdr_type::car_type::begin_type
-            >
-        rest_type;
-
-        typedef
-            make_segment_sequence_back<typename Stack::cdr_type>
-        recurse;
-
-        typedef
-            segment_sequence<
-                typename result_of::push_back<
-                    rest_type const
-                  , typename recurse::type
-                >::type
-            >
-        type;
-
-        static type call(Stack const& stack)
-        {
-            //  return segment_sequence(
-            //    push_back(
-            //      iterator_range(begin(segments(front(car(stack_end)))), begin(car(cdr(stack_end)))),
-            //      make_segment_sequence_back(cdr(stack_end))));
-            return type(
-                fusion::push_back(
-                    rest_type(fusion::begin(fusion::segments(*stack.car.first)), stack.cdr.car.first)
-                  , recurse::call(stack.cdr)));
-        }
-    };
-
-    template <typename Stack>
-    struct make_segment_sequence_back<Stack, 2>
-    {
-        // assert(end(front(car(stack_end))) == end(car(cdr(stack_end))));
-        BOOST_MPL_ASSERT((
-            result_of::equal_to<
-                typename result_of::end<
-                    typename remove_reference<
-                        typename add_const<
-                            typename result_of::deref<
-                                typename Stack::car_type::begin_type
-                            >::type
-                        >::type
-                    >::type
-                >::type
-              , typename Stack::cdr_type::car_type::end_type
-            >));
-
-        typedef
-            iterator_range<
-                typename result_of::begin<
-                    typename remove_reference<
-                        typename add_const<
-                            typename result_of::deref<
-                                typename Stack::car_type::begin_type
-                            >::type
-                        >::type
-                    >::type
-                >::type
-              , typename Stack::cdr_type::car_type::begin_type
-            >
-        type;
-
-        static type call(Stack const& stack)
-        {
-            // return iterator_range(begin(front(car(stack_end))), begin(car(cdr(stack_end))));
-            return type(fusion::begin(*stack.car.first), stack.cdr.car.first);
-        }
-    };
-
-    template <typename Stack>
-    struct make_segment_sequence_back<Stack, 1>
-    {
-        typedef typename Stack::cdr_type type; // nil_
-
-        static type call(Stack const& stack)
-        {
-            return stack.cdr;
-        }
-    };
-
-    //auto make_segmented_range_reduce(stack_begin, stack_end)
-    //{
-    //  if (size(stack_begin) == 1 && size(stack_end) == 1)
-    //  {
-    //    return segment_sequence(
-    //      single_view(
-    //        iterator_range(begin(car(stack_begin)), begin(car(stack_end)))));
-    //  }
-    //  else
-    //  {
-    //    // We are in the case where both begin_stack and/or end_stack have
-    //    // more than one element. Throw away any part of the tree where
-    //    // begin and end refer to the same segment.
-    //    if (begin(car(stack_begin)) == begin(car(stack_end)))
-    //    {
-    //      return make_segmented_range_reduce(cdr(stack_begin), cdr(stack_end));
-    //    }
-    //    else
-    //    {
-    //      // We are in the case where begin_stack and end_stack (a) have
-    //      // more than one element each, and (b) they point to different
-    //      // segments. We must construct a segmented sequence.
-    //      return segment_sequence(
-    //          push_back(
-    //            push_front(
-    //                iterator_range(
-    //                    fusion::next(begin(car(stack_begin))),
-    //                    begin(car(stack_end))),                 // a range of (possibly segmented) ranges.
-    //              make_segment_sequence_front(stack_begin)),    // should be a (possibly segmented) range.
-    //            make_segment_sequence_back(stack_end)));        // should be a (possibly segmented) range.
-    //    }
-    //  }
-    //}
-
-    template <
-        typename StackBegin
-      , typename StackEnd
-      , int StackBeginSize = StackBegin::size::value
-      , int StackEndSize   = StackEnd::size::value>
-    struct make_segmented_range_reduce;
-
-    template <
-        typename StackBegin
-      , typename StackEnd
-      , bool SameSegment =
-            result_of::equal_to<
-                typename StackBegin::car_type::begin_type
-              , typename StackEnd::car_type::begin_type
-            >::type::value>
-    struct make_segmented_range_reduce2
-    {
-        typedef
-            iterator_range<
-                typename result_of::next<
-                    typename StackBegin::car_type::begin_type
-                >::type
-              , typename StackEnd::car_type::begin_type
-            >
-        rest_type;
-
-        typedef
-            segment_sequence<
-                typename result_of::push_back<
-                    typename result_of::push_front<
-                        rest_type const
-                      , typename make_segment_sequence_front<StackBegin>::type
-                    >::type const
-                  , typename make_segment_sequence_back<StackEnd>::type
-                >::type
-            >
-        type;
-
-        static type call(StackBegin stack_begin, StackEnd stack_end)
-        {
-            //return segment_sequence(
-            //    push_back(
-            //      push_front(
-            //        iterator_range(
-            //            fusion::next(begin(car(stack_begin))),
-            //            begin(car(stack_end))),                 // a range of (possibly segmented) ranges.
-            //        make_segment_sequence_front(stack_begin)),  // should be a (possibly segmented) range.
-            //      make_segment_sequence_back(stack_end)));      // should be a (possibly segmented) range.
-            return type(
-                fusion::push_back(
-                    fusion::push_front(
-                        rest_type(fusion::next(stack_begin.car.first), stack_end.car.first)
-                      , make_segment_sequence_front<StackBegin>::call(stack_begin))
-                  , make_segment_sequence_back<StackEnd>::call(stack_end)));
-        }
-    };
-
-    template <typename StackBegin, typename StackEnd>
-    struct make_segmented_range_reduce2<StackBegin, StackEnd, true>
-    {
-        typedef
-            make_segmented_range_reduce<
-                typename StackBegin::cdr_type
-              , typename StackEnd::cdr_type
-            >
-        impl;
-
-        typedef
-            typename impl::type
-        type;
-
-        static type call(StackBegin stack_begin, StackEnd stack_end)
-        {
-            return impl::call(stack_begin.cdr, stack_end.cdr);
-        }
-    };
-
-    template <typename StackBegin, typename StackEnd, int StackBeginSize, int StackEndSize>
-    struct make_segmented_range_reduce
-      : make_segmented_range_reduce2<StackBegin, StackEnd>
-    {};
-
-    template <typename StackBegin, typename StackEnd>
-    struct make_segmented_range_reduce<StackBegin, StackEnd, 1, 1>
-    {
-        typedef
-            iterator_range<
-                typename StackBegin::car_type::begin_type
-              , typename StackEnd::car_type::begin_type
-            >
-        range_type;
-
-        typedef
-            single_view<range_type>
-        segment_type;
-
-        typedef
-            segment_sequence<segment_type>
-        type;
-
-        static type call(StackBegin stack_begin, StackEnd stack_end)
-        {
-            //return segment_sequence(
-            //  single_view(
-            //    iterator_range(begin(car(stack_begin)), begin(car(stack_end)))));
-            return type(segment_type(range_type(stack_begin.car.first, stack_end.car.first)));
-        }
-    };
-
-    //auto make_segmented_range(begin, end)
-    //{
-    //  return make_segmented_range_reduce(reverse(begin.context), reverse(end.context));
-    //}
-
-    template <typename Begin, typename End>
-    struct make_segmented_range
-    {
-        typedef reverse_cons<typename Begin::context_type>   reverse_begin_cons;
-        typedef reverse_cons<typename End::context_type>     reverse_end_cons;
-
-        typedef
-            make_segmented_range_reduce<
-                typename reverse_begin_cons::type
-              , typename reverse_end_cons::type
-            >
-        impl;
-
-        typedef typename impl::type type;
-
-        static type call(Begin const& begin, End const& end)
-        {
-            return impl::call(
-                reverse_begin_cons::call(begin.context)
-              , reverse_end_cons::call(end.context));
-        }
-    };
-
-}}}
-
-#endif
diff --git a/boost/fusion/view/iterator_range/detail/segments_impl.hpp b/boost/fusion/view/iterator_range/detail/segments_impl.hpp
deleted file mode 100644
index ede4968..0000000
--- a/boost/fusion/view/iterator_range/detail/segments_impl.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2011 Eric Niebler
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(BOOST_FUSION_ITERATOR_RANGE_SEGMENTS_HPP_INCLUDED)
-#define BOOST_FUSION_ITERATOR_RANGE_SEGMENTS_HPP_INCLUDED
-
-#include <boost/mpl/assert.hpp>
-#include <boost/fusion/sequence/intrinsic/segments.hpp>
-#include <boost/fusion/support/is_segmented.hpp>
-#include <boost/fusion/view/iterator_range/detail/segmented_iterator_range.hpp>
-
-namespace boost { namespace fusion
-{
-    struct iterator_range_tag;
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct segments_impl;
-
-        template <>
-        struct segments_impl<iterator_range_tag>
-        {
-            template <typename Sequence>
-            struct apply
-            {
-                typedef
-                    detail::make_segmented_range<
-                        typename Sequence::begin_type
-                      , typename Sequence::end_type
-                    >
-                impl;
-
-                BOOST_MPL_ASSERT((traits::is_segmented<typename impl::type>));
-
-                typedef
-                    typename result_of::segments<typename impl::type>::type
-                type;
-
-                static type call(Sequence & seq)
-                {
-                    return fusion::segments(impl::call(seq.first, seq.last));
-                }
-            };
-        };
-    }
-}}
-
-#endif
diff --git a/boost/fusion/view/iterator_range/detail/size_impl.hpp b/boost/fusion/view/iterator_range/detail/size_impl.hpp
deleted file mode 100644
index 90951b2..0000000
--- a/boost/fusion/view/iterator_range/detail/size_impl.hpp
+++ /dev/null
@@ -1,37 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2011 Eric Niebler
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-
-#if !defined(BOOST_FUSION_ITERATOR_RANGE_SIZE_IMPL_HPP_INCLUDED)
-#define BOOST_FUSION_ITERATOR_RANGE_SIZE_IMPL_HPP_INCLUDED
-
-#include <boost/fusion/iterator/distance.hpp>
-
-namespace boost { namespace fusion
-{
-    struct iterator_range_tag;
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct size_impl;
-
-        template <>
-        struct size_impl<iterator_range_tag>
-        {
-            template <typename Seq>
-            struct apply
-              : result_of::distance<
-                    typename Seq::begin_type,
-                    typename Seq::end_type
-                >
-            {};
-        };
-    }
-}}
-
-#endif
-
diff --git a/boost/fusion/view/iterator_range/detail/value_at_impl.hpp b/boost/fusion/view/iterator_range/detail/value_at_impl.hpp
deleted file mode 100644
index b6fe888..0000000
--- a/boost/fusion/view/iterator_range/detail/value_at_impl.hpp
+++ /dev/null
@@ -1,38 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2007 Tobias Schwinger
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-
-#if !defined(BOOST_FUSION_ITERATOR_RANGE_VALUE_AT_IMPL_HPP_INCLUDED)
-#define BOOST_FUSION_ITERATOR_RANGE_VALUE_AT_IMPL_HPP_INCLUDED
-
-#include <boost/fusion/iterator/advance.hpp>
-#include <boost/fusion/iterator/value_of.hpp>
-
-namespace boost { namespace fusion
-{
-    struct iterator_range_tag;
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct value_at_impl;
-
-        template <>
-        struct value_at_impl<iterator_range_tag>
-        {
-            template <typename Seq, typename N>
-            struct apply
-            {
-                typedef typename Seq::begin_type begin_type;
-                typedef typename result_of::advance<begin_type,N>::type pos;
-                typedef typename result_of::value_of<pos>::type type;
-            };
-        };
-    }
-}}
-
-#endif
-
diff --git a/boost/fusion/view/iterator_range/iterator_range.hpp b/boost/fusion/view/iterator_range/iterator_range.hpp
deleted file mode 100644
index 4f517c8..0000000
--- a/boost/fusion/view/iterator_range/iterator_range.hpp
+++ /dev/null
@@ -1,61 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_ITERATOR_RANGE_05062005_1224)
-#define FUSION_ITERATOR_RANGE_05062005_1224
-
-#include <boost/fusion/support/detail/access.hpp>
-#include <boost/fusion/support/sequence_base.hpp>
-#include <boost/fusion/support/category_of.hpp>
-#include <boost/fusion/iterator/distance.hpp>
-#include <boost/fusion/iterator/mpl/convert_iterator.hpp>
-#include <boost/fusion/view/iterator_range/detail/begin_impl.hpp>
-#include <boost/fusion/view/iterator_range/detail/end_impl.hpp>
-#include <boost/fusion/view/iterator_range/detail/at_impl.hpp>
-#include <boost/fusion/view/iterator_range/detail/size_impl.hpp>
-#include <boost/fusion/view/iterator_range/detail/value_at_impl.hpp>
-#include <boost/fusion/view/iterator_range/detail/is_segmented_impl.hpp>
-#include <boost/fusion/view/iterator_range/detail/segments_impl.hpp>
-#include <boost/fusion/adapted/mpl/mpl_iterator.hpp>
-#include <boost/config.hpp>
-
-#if defined (BOOST_MSVC)
-#  pragma warning(push)
-#  pragma warning (disable: 4512) // assignment operator could not be generated.
-#endif
-
-namespace boost { namespace fusion
-{
-    struct iterator_range_tag;
-    struct fusion_sequence_tag;
-
-    template <typename First, typename Last>
-    struct iterator_range : sequence_base<iterator_range<First, Last> >
-    {
-        typedef typename convert_iterator<First>::type begin_type;
-        typedef typename convert_iterator<Last>::type end_type;
-        typedef iterator_range_tag fusion_tag;
-        typedef fusion_sequence_tag tag; // this gets picked up by MPL
-        typedef mpl::true_ is_view;
-
-        typedef typename traits::category_of<begin_type>::type category;
-
-        iterator_range(First const& in_first, Last const& in_last)
-            : first(convert_iterator<First>::call(in_first))
-            , last(convert_iterator<Last>::call(in_last)) {}
-
-        begin_type first;
-        end_type last;
-    };
-}}
-
-#if defined (BOOST_MSVC)
-#  pragma warning(pop)
-#endif
-
-#endif
-
-
diff --git a/boost/fusion/view/joint_view/detail/begin_impl.hpp b/boost/fusion/view/joint_view/detail/begin_impl.hpp
deleted file mode 100644
index a85a7e1..0000000
--- a/boost/fusion/view/joint_view/detail/begin_impl.hpp
+++ /dev/null
@@ -1,67 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_BEGIN_IMPL_07162005_0115)
-#define FUSION_BEGIN_IMPL_07162005_0115
-
-#include <boost/fusion/iterator/equal_to.hpp>
-#include <boost/mpl/if.hpp>
-
-namespace boost { namespace fusion
-{
-    struct joint_view_tag;
-
-    template <typename Category, typename First, typename Last, typename Concat>
-    struct joint_view_iterator;
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct begin_impl;
-
-        template <>
-        struct begin_impl<joint_view_tag>
-        {
-            template <typename Sequence>
-            struct apply
-            {
-                typedef typename Sequence::first_type first_type;
-                typedef typename Sequence::last_type last_type;
-                typedef typename Sequence::concat_type concat_type;
-                typedef typename Sequence::category category;
-                typedef result_of::equal_to<first_type, last_type> equal_to;
-
-                typedef typename
-                    mpl::if_<
-                        equal_to
-                      , concat_type
-                      , joint_view_iterator<category, first_type, last_type, concat_type>
-                    >::type
-                type;
-
-                static type
-                call(Sequence& s, mpl::true_)
-                {
-                    return s.concat();
-                }
-
-                static type
-                call(Sequence& s, mpl::false_)
-                {
-                    return type(s.first(), s.concat());
-                }
-
-                static type
-                call(Sequence& s)
-                {
-                    return call(s, equal_to());
-                }
-            };
-        };
-    }
-}}
-
-#endif
diff --git a/boost/fusion/view/joint_view/detail/deref_data_impl.hpp b/boost/fusion/view/joint_view/detail/deref_data_impl.hpp
deleted file mode 100644
index a60a125..0000000
--- a/boost/fusion/view/joint_view/detail/deref_data_impl.hpp
+++ /dev/null
@@ -1,37 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2009 Christopher Schmidt
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-
-#ifndef BOOST_FUSION_VIEW_JOINT_VIEW_DETAIL_DEREF_DATA_IMPL_HPP
-#define BOOST_FUSION_VIEW_JOINT_VIEW_DETAIL_DEREF_DATA_IMPL_HPP
-
-#include <boost/fusion/iterator/deref_data.hpp>
-
-namespace boost { namespace fusion { namespace extension
-{
-    template <typename>
-    struct deref_data_impl;
-
-    template <>
-    struct deref_data_impl<joint_view_iterator_tag>
-    {
-        template <typename It>
-        struct apply
-        {
-            typedef typename
-                result_of::deref_data<typename It::first_type>::type
-            type;
-
-            static type
-            call(It const& it)
-            {
-                return fusion::deref_data(it.first);
-            }
-        };
-    };
-}}}
-
-#endif
diff --git a/boost/fusion/view/joint_view/detail/deref_impl.hpp b/boost/fusion/view/joint_view/detail/deref_impl.hpp
deleted file mode 100644
index ea4055d..0000000
--- a/boost/fusion/view/joint_view/detail/deref_impl.hpp
+++ /dev/null
@@ -1,29 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_DEREF_IMPL_07162005_0137)
-#define FUSION_DEREF_IMPL_07162005_0137
-
-#include <boost/fusion/iterator/detail/adapt_deref_traits.hpp>
-
-namespace boost { namespace fusion
-{
-    struct joint_view_iterator_tag;
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct deref_impl;
-
-        template <>
-        struct deref_impl<joint_view_iterator_tag>
-            : detail::adapt_deref_traits {};
-    }
-}}
-
-#endif
-
-
diff --git a/boost/fusion/view/joint_view/detail/end_impl.hpp b/boost/fusion/view/joint_view/detail/end_impl.hpp
deleted file mode 100644
index 7b88e56..0000000
--- a/boost/fusion/view/joint_view/detail/end_impl.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_END_IMPL_07162005_0128)
-#define FUSION_END_IMPL_07162005_0128
-
-#include <boost/fusion/iterator/equal_to.hpp>
-#include <boost/mpl/if.hpp>
-
-namespace boost { namespace fusion
-{
-    struct joint_view_tag;
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct end_impl;
-
-        template <>
-        struct end_impl<joint_view_tag>
-        {
-            template <typename Sequence>
-            struct apply
-            {
-                typedef typename Sequence::concat_last_type type;
-
-                static type
-                call(Sequence& s)
-                {
-                    return s.concat_last();
-                }
-            };
-        };
-    }
-}}
-
-#endif
diff --git a/boost/fusion/view/joint_view/detail/key_of_impl.hpp b/boost/fusion/view/joint_view/detail/key_of_impl.hpp
deleted file mode 100644
index e413c3d..0000000
--- a/boost/fusion/view/joint_view/detail/key_of_impl.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2009 Christopher Schmidt
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-
-#ifndef BOOST_FUSION_VIEW_JOINT_VIEW_DETAIL_KEY_OF_IMPL_HPP
-#define BOOST_FUSION_VIEW_JOINT_VIEW_DETAIL_KEY_OF_IMPL_HPP
-
-#include <boost/fusion/iterator/key_of.hpp>
-
-namespace boost { namespace fusion { namespace extension
-{
-    template <typename>
-    struct key_of_impl;
-
-    template <>
-    struct key_of_impl<joint_view_iterator_tag>
-    {
-        template <typename It>
-        struct apply
-          : result_of::key_of<typename It::first_type>
-        {};
-    };
-}}}
-
-#endif
diff --git a/boost/fusion/view/joint_view/detail/next_impl.hpp b/boost/fusion/view/joint_view/detail/next_impl.hpp
deleted file mode 100644
index 47b4d48..0000000
--- a/boost/fusion/view/joint_view/detail/next_impl.hpp
+++ /dev/null
@@ -1,71 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_NEXT_IMPL_07162005_0136)
-#define FUSION_NEXT_IMPL_07162005_0136
-
-#include <boost/fusion/iterator/next.hpp>
-#include <boost/fusion/iterator/equal_to.hpp>
-#include <boost/mpl/if.hpp>
-
-namespace boost { namespace fusion
-{
-    struct joint_view_iterator_tag;
-
-    template <typename Category, typename First, typename Last, typename Concat>
-    struct joint_view_iterator;
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct next_impl;
-
-        template <>
-        struct next_impl<joint_view_iterator_tag>
-        {
-            template <typename Iterator>
-            struct apply
-            {
-                typedef typename Iterator::first_type first_type;
-                typedef typename Iterator::last_type last_type;
-                typedef typename Iterator::concat_type concat_type;
-                typedef typename Iterator::category category;
-                typedef typename result_of::next<first_type>::type next_type;
-                typedef result_of::equal_to<next_type, last_type> equal_to;
-
-                typedef typename
-                    mpl::if_<
-                        equal_to
-                      , concat_type
-                      , joint_view_iterator<category, next_type, last_type, concat_type>
-                    >::type
-                type;
-
-                static type
-                call(Iterator const& i, mpl::true_)
-                {
-                    return i.concat;
-                }
-
-                static type
-                call(Iterator const& i, mpl::false_)
-                {
-                    return type(fusion::next(i.first), i.concat);
-                }
-
-                static type
-                call(Iterator const& i)
-                {
-                    return call(i, equal_to());
-                }
-            };
-        };
-    }
-}}
-
-#endif
-
-
diff --git a/boost/fusion/view/joint_view/detail/value_of_data_impl.hpp b/boost/fusion/view/joint_view/detail/value_of_data_impl.hpp
deleted file mode 100644
index cc883d7..0000000
--- a/boost/fusion/view/joint_view/detail/value_of_data_impl.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2009 Christopher Schmidt
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-
-#ifndef BOOST_FUSION_VIEW_JOINT_VIEW_DETAIL_VALUE_OF_DATA_IMPL_HPP
-#define BOOST_FUSION_VIEW_JOINT_VIEW_DETAIL_VALUE_OF_DATA_IMPL_HPP
-
-#include <boost/fusion/iterator/value_of_data.hpp>
-
-namespace boost { namespace fusion { namespace extension
-{
-    template <typename>
-    struct value_of_data_impl;
-
-    template <>
-    struct value_of_data_impl<joint_view_iterator_tag>
-    {
-        template <typename It>
-        struct apply
-          : result_of::value_of_data<typename It::first_type>
-        {};
-    };
-}}}
-
-#endif
diff --git a/boost/fusion/view/joint_view/detail/value_of_impl.hpp b/boost/fusion/view/joint_view/detail/value_of_impl.hpp
deleted file mode 100644
index 98637e4..0000000
--- a/boost/fusion/view/joint_view/detail/value_of_impl.hpp
+++ /dev/null
@@ -1,29 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_VALUE_IMPL_07162005_0132)
-#define FUSION_VALUE_IMPL_07162005_0132
-
-#include <boost/fusion/iterator/detail/adapt_value_traits.hpp>
-
-namespace boost { namespace fusion
-{
-    struct joint_view_iterator_tag;
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct value_of_impl;
-
-        template <>
-        struct value_of_impl<joint_view_iterator_tag>
-            : detail::adapt_value_traits {};
-    }
-}}
-
-#endif
-
-
diff --git a/boost/fusion/view/joint_view/joint_view.hpp b/boost/fusion/view/joint_view/joint_view.hpp
deleted file mode 100644
index 11b74f9..0000000
--- a/boost/fusion/view/joint_view/joint_view.hpp
+++ /dev/null
@@ -1,78 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_JOINT_VIEW_07162005_0140)
-#define FUSION_JOINT_VIEW_07162005_0140
-
-#include <boost/fusion/view/joint_view/joint_view_fwd.hpp>
-#include <boost/fusion/support/detail/access.hpp>
-#include <boost/fusion/support/is_view.hpp>
-#include <boost/fusion/sequence/intrinsic/begin.hpp>
-#include <boost/fusion/sequence/intrinsic/end.hpp>
-#include <boost/fusion/sequence/intrinsic/size.hpp>
-#include <boost/fusion/view/joint_view/joint_view_iterator.hpp>
-#include <boost/fusion/view/joint_view/detail/begin_impl.hpp>
-#include <boost/fusion/view/joint_view/detail/end_impl.hpp>
-#include <boost/fusion/support/sequence_base.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/plus.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/inherit.hpp>
-#include <boost/mpl/identity.hpp>
-
-namespace boost { namespace fusion
-{
-    struct joint_view_tag;
-    struct forward_traversal_tag;
-    struct fusion_sequence_tag;
-
-    template <typename Sequence1, typename Sequence2>
-    struct joint_view : sequence_base<joint_view<Sequence1, Sequence2> >
-    {
-        typedef joint_view_tag fusion_tag;
-        typedef fusion_sequence_tag tag; // this gets picked up by MPL
-        typedef typename
-            mpl::eval_if<
-                mpl::and_<
-                    traits::is_associative<Sequence1>
-                  , traits::is_associative<Sequence2>
-                >
-              , mpl::inherit2<forward_traversal_tag,associative_tag>
-              , mpl::identity<forward_traversal_tag>
-            >::type
-        category;
-        typedef mpl::true_ is_view;
-
-        typedef typename result_of::begin<Sequence1>::type first_type;
-        typedef typename result_of::end<Sequence1>::type last_type;
-        typedef typename result_of::begin<Sequence2>::type concat_type;
-        typedef typename result_of::end<Sequence2>::type concat_last_type;
-        typedef typename mpl::int_<
-            result_of::size<Sequence1>::value + result_of::size<Sequence2>::value>
-        size;
-
-        joint_view(Sequence1& in_seq1, Sequence2& in_seq2)
-            : seq1(in_seq1)
-            , seq2(in_seq2)
-        {}
-
-        first_type first() const { return fusion::begin(seq1); }
-        concat_type concat() const { return fusion::begin(seq2); }
-        concat_last_type concat_last() const { return fusion::end(seq2); }
-
-    private:
-        // silence MSVC warning C4512: assignment operator could not be generated
-        joint_view& operator= (joint_view const&);
-
-        typename mpl::if_<traits::is_view<Sequence1>, Sequence1, Sequence1&>::type seq1;
-        typename mpl::if_<traits::is_view<Sequence2>, Sequence2, Sequence2&>::type seq2;
-    };
-}}
-
-#endif
-
-
diff --git a/boost/fusion/view/joint_view/joint_view_fwd.hpp b/boost/fusion/view/joint_view/joint_view_fwd.hpp
deleted file mode 100644
index c3e3b45..0000000
--- a/boost/fusion/view/joint_view/joint_view_fwd.hpp
+++ /dev/null
@@ -1,18 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2011 Eric Niebler
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(BOOST_FUSION_JOINT_VIEW_FWD_HPP_INCLUDED)
-#define BOOST_FUSION_JOINT_VIEW_FWD_HPP_INCLUDED
-
-namespace boost { namespace fusion
-{
-    struct joint_view_tag;
-
-    template <typename Sequence1, typename Sequence2>
-    struct joint_view;
-}}
-
-#endif
diff --git a/boost/fusion/view/joint_view/joint_view_iterator.hpp b/boost/fusion/view/joint_view/joint_view_iterator.hpp
deleted file mode 100644
index 6f58248..0000000
--- a/boost/fusion/view/joint_view/joint_view_iterator.hpp
+++ /dev/null
@@ -1,59 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_JOINT_VIEW_ITERATOR_07162005_0140)
-#define FUSION_JOINT_VIEW_ITERATOR_07162005_0140
-
-#include <boost/fusion/support/iterator_base.hpp>
-#include <boost/fusion/iterator/equal_to.hpp>
-#include <boost/fusion/iterator/mpl/convert_iterator.hpp>
-#include <boost/fusion/adapted/mpl/mpl_iterator.hpp>
-#include <boost/fusion/view/joint_view/detail/deref_impl.hpp>
-#include <boost/fusion/view/joint_view/detail/next_impl.hpp>
-#include <boost/fusion/view/joint_view/detail/value_of_impl.hpp>
-#include <boost/fusion/view/joint_view/detail/deref_data_impl.hpp>
-#include <boost/fusion/view/joint_view/detail/value_of_data_impl.hpp>
-#include <boost/fusion/view/joint_view/detail/key_of_impl.hpp>
-#include <boost/static_assert.hpp>
-
-namespace boost { namespace fusion
-{
-    struct joint_view_iterator_tag;
-    struct forward_traversal_tag;
-
-    template <typename Category, typename First, typename Last, typename Concat>
-    struct joint_view_iterator
-        : iterator_base<joint_view_iterator<Category, First, Last, Concat> >
-    {
-        typedef convert_iterator<First> first_converter;
-        typedef convert_iterator<Last> last_converter;
-        typedef convert_iterator<Concat> concat_converter;
-
-        typedef typename first_converter::type first_type;
-        typedef typename last_converter::type last_type;
-        typedef typename concat_converter::type concat_type;
-
-        typedef joint_view_iterator_tag fusion_tag;
-        typedef Category category;
-        BOOST_STATIC_ASSERT((!result_of::equal_to<first_type, last_type>::value));
-
-        joint_view_iterator(First const& in_first, Concat const& in_concat)
-            : first(first_converter::call(in_first))
-            , concat(concat_converter::call(in_concat))
-        {}
-
-        first_type first;
-        concat_type concat;
-
-    private:
-        // silence MSVC warning C4512: assignment operator could not be generated
-        joint_view_iterator& operator= (joint_view_iterator const&);
-    };
-}}
-
-#endif
-
-
diff --git a/boost/fusion/view/single_view/detail/advance_impl.hpp b/boost/fusion/view/single_view/detail/advance_impl.hpp
deleted file mode 100644
index d0846ec..0000000
--- a/boost/fusion/view/single_view/detail/advance_impl.hpp
+++ /dev/null
@@ -1,47 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2011 Eric Niebler
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-
-#if !defined(BOOST_FUSION_SINGLE_VIEW_ADVANCE_IMPL_JUL_07_2011_1348PM)
-#define BOOST_FUSION_SINGLE_VIEW_ADVANCE_IMPL_JUL_07_2011_1348PM
-
-#include <boost/mpl/plus.hpp>
-
-namespace boost { namespace fusion 
-{
-    struct single_view_iterator_tag;
-
-    template <typename SingleView, typename Pos>
-    struct single_view_iterator;
-
-    namespace extension
-    {
-        template<typename Tag>
-        struct advance_impl;
-
-        template<>
-        struct advance_impl<single_view_iterator_tag>
-        {
-            template<typename Iterator, typename Dist>
-            struct apply
-            {
-                typedef single_view_iterator<
-                    typename Iterator::single_view_type,
-                    typename mpl::plus<typename Iterator::position, Dist>::type>
-                type;
-
-                static type
-                call(Iterator const& i)
-                {
-                    return type(i.view);
-                }
-            };
-        };
-    }
-
-}}
-
-#endif
diff --git a/boost/fusion/view/single_view/detail/at_impl.hpp b/boost/fusion/view/single_view/detail/at_impl.hpp
deleted file mode 100644
index 3e0915f..0000000
--- a/boost/fusion/view/single_view/detail/at_impl.hpp
+++ /dev/null
@@ -1,44 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2011 Eric Niebler
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-
-#if !defined(BOOST_FUSION_SINGLE_VIEW_AT_IMPL_JUL_07_2011_1348PM)
-#define BOOST_FUSION_SINGLE_VIEW_AT_IMPL_JUL_07_2011_1348PM
-
-#include <boost/mpl/int.hpp>
-#include <boost/mpl/assert.hpp>
-#include <boost/mpl/equal_to.hpp>
-
-namespace boost { namespace fusion 
-{
-    struct single_view_tag;
-
-    namespace extension
-    {
-        template<typename Tag>
-        struct at_impl;
-
-        template<>
-        struct at_impl<single_view_tag>
-        {
-            template<typename Sequence, typename N>
-            struct apply
-            {
-                BOOST_MPL_ASSERT((mpl::equal_to<N, mpl::int_<0> >));
-                typedef typename Sequence::value_type type;
-
-                static type 
-                call(Sequence& seq)
-                {
-                    return seq.val;
-                }
-            };
-        };
-    }
-
-}}
-
-#endif
diff --git a/boost/fusion/view/single_view/detail/begin_impl.hpp b/boost/fusion/view/single_view/detail/begin_impl.hpp
deleted file mode 100644
index eb1a3ee..0000000
--- a/boost/fusion/view/single_view/detail/begin_impl.hpp
+++ /dev/null
@@ -1,45 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-    Copyright (c) 2011 Eric Niebler
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(BOOST_FUSION_SINGLE_VIEW_BEGIN_IMPL_05052005_0305)
-#define BOOST_FUSION_SINGLE_VIEW_BEGIN_IMPL_05052005_0305
-
-#include <boost/mpl/int.hpp>
-
-namespace boost { namespace fusion
-{
-    struct single_view_tag;
-
-    template <typename SingleView, typename Pos>
-    struct single_view_iterator;
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct begin_impl;
-
-        template <>
-        struct begin_impl<single_view_tag>
-        {
-            template <typename Sequence>
-            struct apply
-            {
-                typedef single_view_iterator<Sequence, mpl::int_<0> > type;
-    
-                static type
-                call(Sequence& seq)
-                {
-                    return type(seq);
-                }
-            };
-        };
-    }
-}}
-
-#endif
-
-
diff --git a/boost/fusion/view/single_view/detail/deref_impl.hpp b/boost/fusion/view/single_view/detail/deref_impl.hpp
deleted file mode 100644
index b5b37a6..0000000
--- a/boost/fusion/view/single_view/detail/deref_impl.hpp
+++ /dev/null
@@ -1,45 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-    Copyright (c) 2011 Eric Niebler
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(BOOST_FUSION_SINGLE_VIEW_DEREF_IMPL_05052005_0258)
-#define BOOST_FUSION_SINGLE_VIEW_DEREF_IMPL_05052005_0258
-
-#include <boost/mpl/int.hpp>
-#include <boost/mpl/assert.hpp>
-#include <boost/mpl/equal_to.hpp>
-
-namespace boost { namespace fusion
-{
-    struct single_view_iterator_tag;
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct deref_impl;
-
-        template <>
-        struct deref_impl<single_view_iterator_tag>
-        {
-            template <typename Iterator>
-            struct apply
-            {
-                BOOST_MPL_ASSERT((mpl::equal_to<typename Iterator::position, mpl::int_<0> >));
-                typedef typename Iterator::value_type type;
-    
-                static type
-                call(Iterator const& i)
-                {
-                    return i.view.val;
-                }
-            };
-        };
-    }
-}}
-
-#endif
-
-
diff --git a/boost/fusion/view/single_view/detail/distance_impl.hpp b/boost/fusion/view/single_view/detail/distance_impl.hpp
deleted file mode 100644
index fec204c..0000000
--- a/boost/fusion/view/single_view/detail/distance_impl.hpp
+++ /dev/null
@@ -1,43 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2011 Eric Niebler
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-
-#if !defined(BOOST_FUSION_SINGLE_VIEW_DISTANCE_IMPL_JUL_07_2011_1348PM)
-#define BOOST_FUSION_SINGLE_VIEW_DISTANCE_IMPL_JUL_07_2011_1348PM
-
-#include <boost/mpl/minus.hpp>
-
-namespace boost { namespace fusion 
-{
-    struct single_view_iterator_tag;
-
-    namespace extension
-    {
-        template<typename Tag>
-        struct distance_impl;
-
-        template<>
-        struct distance_impl<single_view_iterator_tag>
-        {
-            template<typename First, typename Last>
-            struct apply
-              : mpl::minus<typename Last::position, typename First::position>
-            {
-                typedef typename mpl::minus<typename Last::position,
-                    typename First::position>::type type;
-
-                static type
-                call(First const& /*first*/, Last const& /*last*/)
-                {
-                    return type();
-                }
-            };
-        };
-    }
-
-}}
-
-#endif
diff --git a/boost/fusion/view/single_view/detail/end_impl.hpp b/boost/fusion/view/single_view/detail/end_impl.hpp
deleted file mode 100644
index e069b24..0000000
--- a/boost/fusion/view/single_view/detail/end_impl.hpp
+++ /dev/null
@@ -1,45 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-    Copyright (c) 2011 Eric Niebler
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(BOOST_FUSION_SINGLE_VIEW_END_IMPL_05052005_0332)
-#define BOOST_FUSION_SINGLE_VIEW_END_IMPL_05052005_0332
-
-#include <boost/mpl/int.hpp>
-
-namespace boost { namespace fusion
-{
-    struct single_view_tag;
-
-    template <typename SingleView, typename Pos>
-    struct single_view_iterator;
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct end_impl;
-
-        template <>
-        struct end_impl<single_view_tag>
-        {
-            template <typename Sequence>
-            struct apply
-            {
-                typedef single_view_iterator<Sequence, mpl::int_<1> > type;
-    
-                static type
-                call(Sequence& seq)
-                {
-                    return type(seq);
-                }
-            };
-        };
-    }
-}}
-
-#endif
-
-
diff --git a/boost/fusion/view/single_view/detail/equal_to_impl.hpp b/boost/fusion/view/single_view/detail/equal_to_impl.hpp
deleted file mode 100644
index c9a7ebd..0000000
--- a/boost/fusion/view/single_view/detail/equal_to_impl.hpp
+++ /dev/null
@@ -1,39 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2011 Eric Niebler
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-
-#if !defined(BOOST_FUSION_SINGLE_VIEW_ITERATOR_JUL_07_2011_1348PM)
-#define BOOST_FUSION_SINGLE_VIEW_ITERATOR_JUL_07_2011_1348PM
-
-#include <boost/mpl/assert.hpp>
-#include <boost/mpl/equal_to.hpp>
-#include <boost/type_traits/is_same.hpp>
-#include <boost/type_traits/add_const.hpp>
-
-namespace boost { namespace fusion 
-{
-    struct single_view_iterator_tag;
-
-    namespace extension
-    {
-        template<typename Tag>
-        struct equal_to_impl;
-
-        template<>
-        struct equal_to_impl<single_view_iterator_tag>
-        {
-            template<typename It1, typename It2>
-            struct apply
-              : mpl::equal_to<typename It1::position, typename It2::position>
-            {
-                BOOST_MPL_ASSERT((is_same<typename add_const<typename It1::single_view_type>::type, 
-                    typename add_const<typename It2::single_view_type>::type>));
-            };
-        };
-    }
-}}
-
-#endif
diff --git a/boost/fusion/view/single_view/detail/next_impl.hpp b/boost/fusion/view/single_view/detail/next_impl.hpp
deleted file mode 100644
index 1ebc502..0000000
--- a/boost/fusion/view/single_view/detail/next_impl.hpp
+++ /dev/null
@@ -1,50 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-    Copyright (c) 2011 Eric Niebler
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(BOOST_FUSION_SINGLE_VIEW_NEXT_IMPL_05052005_0331)
-#define BOOST_FUSION_SINGLE_VIEW_NEXT_IMPL_05052005_0331
-
-#include <boost/mpl/next.hpp>
-#include <boost/static_assert.hpp>
-
-namespace boost { namespace fusion
-{
-    struct single_view_iterator_tag;
-
-    template <typename SingleView, typename Pos>
-    struct single_view_iterator;
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct next_impl;
-
-        template <>
-        struct next_impl<single_view_iterator_tag>
-        {
-            template <typename Iterator>
-            struct apply
-            {
-                typedef single_view_iterator<
-                    typename Iterator::single_view_type,
-                    typename mpl::next<typename Iterator::position>::type>
-                type;
-
-                static type
-                call(Iterator const& i)
-                {
-                    BOOST_STATIC_ASSERT((type::position::value < 2));
-                    return type(i.view);
-                }
-            };
-        };
-    }
-}}
-
-#endif
-
-
diff --git a/boost/fusion/view/single_view/detail/prior_impl.hpp b/boost/fusion/view/single_view/detail/prior_impl.hpp
deleted file mode 100644
index ece6795..0000000
--- a/boost/fusion/view/single_view/detail/prior_impl.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2011 Eric Niebler
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(BOOST_FUSION_SINGLE_VIEW_PRIOR_IMPL_JUL_07_2011_1348PM)
-#define BOOST_FUSION_SINGLE_VIEW_PRIOR_IMPL_JUL_07_2011_1348PM
-
-#include <boost/mpl/prior.hpp>
-
-namespace boost { namespace fusion
-{
-    struct single_view_iterator_tag;
-
-    template <typename Sequence, typename Pos>
-    struct single_view_iterator;
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct prior_impl;
-
-        template <>
-        struct prior_impl<single_view_iterator_tag>
-        {
-            template <typename Iterator>
-            struct apply 
-            {
-                typedef single_view_iterator<
-                    typename Iterator::single_view_type,
-                    typename mpl::prior<typename Iterator::position>::type>
-                type;
-
-                static type
-                call(Iterator const& i)
-                {
-                    return type(i.view);
-                }
-            };
-        };
-    }
-
-}}
-
-#endif
diff --git a/boost/fusion/view/single_view/detail/size_impl.hpp b/boost/fusion/view/single_view/detail/size_impl.hpp
deleted file mode 100644
index eba89cd..0000000
--- a/boost/fusion/view/single_view/detail/size_impl.hpp
+++ /dev/null
@@ -1,33 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2011 Eric Niebler
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(FUSION_SINGLE_VIEW_SIZE_IMPL_JUL_07_2011_1348PM)
-#define FUSION_SINGLE_VIEW_SIZE_IMPL_JUL_07_2011_1348PM
-
-namespace boost { namespace fusion
-{
-    struct single_view_tag;
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct size_impl;
-
-        template <>
-        struct size_impl<single_view_tag>
-        {
-            template <typename Sequence>
-            struct apply
-            {
-                typedef mpl::int_<1> type;
-            };
-        };
-    }
-}}
-
-#endif
-
-
diff --git a/boost/fusion/view/single_view/detail/value_at_impl.hpp b/boost/fusion/view/single_view/detail/value_at_impl.hpp
deleted file mode 100644
index a8c20ad..0000000
--- a/boost/fusion/view/single_view/detail/value_at_impl.hpp
+++ /dev/null
@@ -1,39 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2011 Eric Niebler
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-
-#if !defined(BOOST_FUSION_SINGLE_VIEW_VALUE_AT_IMPL_JUL_07_2011_1348PM)
-#define BOOST_FUSION_SINGLE_VIEW_VALUE_AT_IMPL_JUL_07_2011_1348PM
-
-#include <boost/mpl/int.hpp>
-#include <boost/mpl/assert.hpp>
-#include <boost/mpl/equal_to.hpp>
-#include <boost/fusion/sequence/intrinsic/value_at.hpp>
-
-namespace boost { namespace fusion 
-{
-    struct single_view_tag;
-
-    namespace extension
-    {
-        template<typename Tag>
-        struct value_at_impl;
-
-        template<>
-        struct value_at_impl<single_view_tag>
-        {
-            template<typename Sequence, typename N>
-            struct apply
-            {
-                BOOST_MPL_ASSERT((mpl::equal_to<N, mpl::int_<0> >));
-                typedef typename Sequence::value_type type;
-            };
-        };
-    }
-
-}}
-
-#endif
diff --git a/boost/fusion/view/single_view/detail/value_of_impl.hpp b/boost/fusion/view/single_view/detail/value_of_impl.hpp
deleted file mode 100644
index 81e8817..0000000
--- a/boost/fusion/view/single_view/detail/value_of_impl.hpp
+++ /dev/null
@@ -1,39 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-    Copyright (c) 2011 Eric Niebler
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(BOOST_FUSION_SINGLE_VIEW_VALUE_OF_IMPL_05052005_0324)
-#define BOOST_FUSION_SINGLE_VIEW_VALUE_OF_IMPL_05052005_0324
-
-#include <boost/mpl/int.hpp>
-#include <boost/mpl/assert.hpp>
-#include <boost/mpl/equal_to.hpp>
-
-namespace boost { namespace fusion
-{
-    struct single_view_iterator_tag;
-
-    namespace extension
-    {
-        template <typename Tag>
-        struct value_of_impl;
-
-        template <>
-        struct value_of_impl<single_view_iterator_tag>
-        {
-            template <typename Iterator>
-            struct apply
-            {
-                BOOST_MPL_ASSERT((mpl::equal_to<typename Iterator::position, mpl::int_<0> >));
-                typedef typename Iterator::value_type type;
-            };
-        };
-    }
-}}
-
-#endif
-
-
diff --git a/boost/fusion/view/single_view/single_view.hpp b/boost/fusion/view/single_view/single_view.hpp
deleted file mode 100644
index 5e7e5ab..0000000
--- a/boost/fusion/view/single_view/single_view.hpp
+++ /dev/null
@@ -1,68 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-    Copyright (c) 2011 Eric Niebler
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(BOOST_FUSION_SINGLE_VIEW_05052005_0335)
-#define BOOST_FUSION_SINGLE_VIEW_05052005_0335
-
-#include <boost/fusion/support/detail/access.hpp>
-#include <boost/fusion/support/detail/as_fusion_element.hpp>
-#include <boost/fusion/support/sequence_base.hpp>
-#include <boost/fusion/view/single_view/single_view_iterator.hpp>
-#include <boost/fusion/view/single_view/detail/at_impl.hpp>
-#include <boost/fusion/view/single_view/detail/begin_impl.hpp>
-#include <boost/fusion/view/single_view/detail/end_impl.hpp>
-#include <boost/fusion/view/single_view/detail/size_impl.hpp>
-#include <boost/fusion/view/single_view/detail/value_at_impl.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/int.hpp>
-#include <boost/config.hpp>
-
-#if defined (BOOST_MSVC)
-#  pragma warning(push)
-#  pragma warning (disable: 4512) // assignment operator could not be generated.
-#endif
-
-namespace boost { namespace fusion
-{
-    struct single_view_tag;
-    struct random_access_traversal_tag;
-    struct fusion_sequence_tag;
-
-    template <typename T>
-    struct single_view : sequence_base<single_view<T> >
-    {
-        typedef single_view_tag fusion_tag;
-        typedef fusion_sequence_tag tag; // this gets picked up by MPL
-        typedef random_access_traversal_tag category;
-        typedef mpl::true_ is_view;
-        typedef mpl::int_<1> size;
-        typedef T value_type;
-
-        single_view()
-            : val() {}
-
-        explicit single_view(typename detail::call_param<T>::type in_val)
-            : val(in_val) {}
-
-        value_type val;
-    };
-    
-    template <typename T>
-    inline single_view<typename detail::as_fusion_element<T>::type>
-    make_single_view(T const& v)
-    {
-        return single_view<typename detail::as_fusion_element<T>::type>(v);
-    }
-}}
-
-#if defined (BOOST_MSVC)
-#  pragma warning(pop)
-#endif
-
-#endif
-
-
diff --git a/boost/fusion/view/single_view/single_view_iterator.hpp b/boost/fusion/view/single_view/single_view_iterator.hpp
deleted file mode 100644
index 77b508a..0000000
--- a/boost/fusion/view/single_view/single_view_iterator.hpp
+++ /dev/null
@@ -1,58 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2011 Joel de Guzman
-    Copyright (c) 2011 Eric Niebler
-
-    Distributed under the Boost Software License, Version 1.0. (See accompanying 
-    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-==============================================================================*/
-#if !defined(BOOST_FUSION_SINGLE_VIEW_ITERATOR_05052005_0340)
-#define BOOST_FUSION_SINGLE_VIEW_ITERATOR_05052005_0340
-
-#include <boost/fusion/support/detail/access.hpp>
-#include <boost/fusion/support/iterator_base.hpp>
-#include <boost/fusion/view/single_view/detail/deref_impl.hpp>
-#include <boost/fusion/view/single_view/detail/next_impl.hpp>
-#include <boost/fusion/view/single_view/detail/prior_impl.hpp>
-#include <boost/fusion/view/single_view/detail/advance_impl.hpp>
-#include <boost/fusion/view/single_view/detail/distance_impl.hpp>
-#include <boost/fusion/view/single_view/detail/equal_to_impl.hpp>
-#include <boost/fusion/view/single_view/detail/value_of_impl.hpp>
-#include <boost/config.hpp>
-
-#if defined (BOOST_MSVC)
-#  pragma warning(push)
-#  pragma warning (disable: 4512) // assignment operator could not be generated.
-#endif
-
-namespace boost { namespace fusion
-{
-    struct single_view_iterator_tag;
-    struct random_access_traversal_tag;
-
-    template <typename SingleView, typename Pos>
-    struct single_view_iterator
-        : iterator_base<single_view_iterator<SingleView, Pos> >
-    {
-        typedef single_view_iterator_tag fusion_tag;
-        typedef random_access_traversal_tag category;
-        typedef typename SingleView::value_type value_type;
-        typedef Pos position;
-        typedef SingleView single_view_type;
-
-        explicit single_view_iterator(single_view_type& in_view)
-            : view(in_view) {}
-
-        SingleView& view;
-
-    private:
-        single_view_iterator& operator=(single_view_iterator const&);
-    };
-}}
-
-#if defined (BOOST_MSVC)
-#  pragma warning(pop)
-#endif
-
-#endif
-
-
diff --git a/boost/integer.hpp b/boost/integer.hpp
deleted file mode 100644
index 35a1e10..0000000
--- a/boost/integer.hpp
+++ /dev/null
@@ -1,261 +0,0 @@
-//  boost integer.hpp header file  -------------------------------------------//
-
-//  Copyright Beman Dawes and Daryle Walker 1999.  Distributed under the Boost
-//  Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org/libs/integer for documentation.
-
-//  Revision History
-//   22 Sep 01  Added value-based integer templates. (Daryle Walker)
-//   01 Apr 01  Modified to use new <boost/limits.hpp> header. (John Maddock)
-//   30 Jul 00  Add typename syntax fix (Jens Maurer)
-//   28 Aug 99  Initial version
-
-#ifndef BOOST_INTEGER_HPP
-#define BOOST_INTEGER_HPP
-
-#include <boost/integer_fwd.hpp>  // self include
-
-#include <boost/integer_traits.hpp>  // for boost::::boost::integer_traits
-#include <boost/limits.hpp>          // for ::std::numeric_limits
-#include <boost/cstdint.hpp>         // for boost::int64_t and BOOST_NO_INTEGRAL_INT64_T
-#include <boost/static_assert.hpp>
-
-//
-// We simply cannot include this header on gcc without getting copious warnings of the kind:
-//
-// boost/integer.hpp:77:30: warning: use of C99 long long integer constant
-//
-// And yet there is no other reasonable implementation, so we declare this a system header
-// to suppress these warnings.
-//
-#if defined(__GNUC__) && (__GNUC__ >= 4)
-#pragma GCC system_header
-#endif
-
-namespace boost
-{
-
-  //  Helper templates  ------------------------------------------------------//
-
-  //  fast integers from least integers
-  //  int_fast_t<> works correctly for unsigned too, in spite of the name.
-  template< typename LeastInt >
-  struct int_fast_t 
-  { 
-     typedef LeastInt fast; 
-     typedef fast     type;
-  }; // imps may specialize
-
-  namespace detail{
-
-  //  convert category to type 
-  template< int Category > struct int_least_helper {}; // default is empty
-  template< int Category > struct uint_least_helper {}; // default is empty
-
-  //  specializatons: 1=long, 2=int, 3=short, 4=signed char,
-  //     6=unsigned long, 7=unsigned int, 8=unsigned short, 9=unsigned char
-  //  no specializations for 0 and 5: requests for a type > long are in error
-#ifdef BOOST_HAS_LONG_LONG
-  template<> struct int_least_helper<1> { typedef boost::long_long_type least; };
-#elif defined(BOOST_HAS_MS_INT64)
-  template<> struct int_least_helper<1> { typedef __int64 least; };
-#endif
-  template<> struct int_least_helper<2> { typedef long least; };
-  template<> struct int_least_helper<3> { typedef int least; };
-  template<> struct int_least_helper<4> { typedef short least; };
-  template<> struct int_least_helper<5> { typedef signed char least; };
-#ifdef BOOST_HAS_LONG_LONG
-  template<> struct uint_least_helper<1> { typedef boost::ulong_long_type least; };
-#elif defined(BOOST_HAS_MS_INT64)
-  template<> struct uint_least_helper<1> { typedef unsigned __int64 least; };
-#endif
-  template<> struct uint_least_helper<2> { typedef unsigned long least; };
-  template<> struct uint_least_helper<3> { typedef unsigned int least; };
-  template<> struct uint_least_helper<4> { typedef unsigned short least; };
-  template<> struct uint_least_helper<5> { typedef unsigned char least; };
-
-  template <int Bits>
-  struct exact_signed_base_helper{};
-  template <int Bits>
-  struct exact_unsigned_base_helper{};
-
-  template <> struct exact_signed_base_helper<sizeof(signed char)* CHAR_BIT> { typedef signed char exact; };
-  template <> struct exact_unsigned_base_helper<sizeof(unsigned char)* CHAR_BIT> { typedef unsigned char exact; };
-#if USHRT_MAX != UCHAR_MAX
-  template <> struct exact_signed_base_helper<sizeof(short)* CHAR_BIT> { typedef short exact; };
-  template <> struct exact_unsigned_base_helper<sizeof(unsigned short)* CHAR_BIT> { typedef unsigned short exact; };
-#endif
-#if UINT_MAX != USHRT_MAX
-  template <> struct exact_signed_base_helper<sizeof(int)* CHAR_BIT> { typedef int exact; };
-  template <> struct exact_unsigned_base_helper<sizeof(unsigned int)* CHAR_BIT> { typedef unsigned int exact; };
-#endif
-#if ULONG_MAX != UINT_MAX
-  template <> struct exact_signed_base_helper<sizeof(long)* CHAR_BIT> { typedef long exact; };
-  template <> struct exact_unsigned_base_helper<sizeof(unsigned long)* CHAR_BIT> { typedef unsigned long exact; };
-#endif
-#if defined(BOOST_HAS_LONG_LONG) &&\
-   ((defined(ULLONG_MAX) && (ULLONG_MAX != ULONG_MAX)) ||\
-    (defined(ULONG_LONG_MAX) && (ULONG_LONG_MAX != ULONG_MAX)) ||\
-    (defined(ULONGLONG_MAX) && (ULONGLONG_MAX != ULONG_MAX)) ||\
-    (defined(_ULLONG_MAX) && (_ULLONG_MAX != ULONG_MAX)))
-  template <> struct exact_signed_base_helper<sizeof(boost::long_long_type)* CHAR_BIT> { typedef boost::long_long_type exact; };
-  template <> struct exact_unsigned_base_helper<sizeof(boost::ulong_long_type)* CHAR_BIT> { typedef boost::ulong_long_type exact; };
-#endif
-
-
-  } // namespace detail
-
-  //  integer templates specifying number of bits  ---------------------------//
-
-  //  signed
-  template< int Bits >   // bits (including sign) required
-  struct int_t : public detail::exact_signed_base_helper<Bits>
-  {
-      BOOST_STATIC_ASSERT_MSG(Bits <= (int)(sizeof(boost::intmax_t) * CHAR_BIT),
-         "No suitable signed integer type with the requested number of bits is available.");
-      typedef typename detail::int_least_helper
-        <
-#ifdef BOOST_HAS_LONG_LONG
-          (Bits <= (int)(sizeof(boost::long_long_type) * CHAR_BIT)) +
-#else
-           1 +
-#endif
-          (Bits-1 <= ::std::numeric_limits<long>::digits) +
-          (Bits-1 <= ::std::numeric_limits<int>::digits) +
-          (Bits-1 <= ::std::numeric_limits<short>::digits) +
-          (Bits-1 <= ::std::numeric_limits<signed char>::digits)
-        >::least  least;
-      typedef typename int_fast_t<least>::type  fast;
-  };
-
-  //  unsigned
-  template< int Bits >   // bits required
-  struct uint_t : public detail::exact_unsigned_base_helper<Bits>
-  {
-     BOOST_STATIC_ASSERT_MSG(Bits <= (int)(sizeof(boost::uintmax_t) * CHAR_BIT),
-         "No suitable unsigned integer type with the requested number of bits is available.");
-#if (defined(__BORLANDC__) || defined(__CODEGEAR__)) && defined(BOOST_NO_INTEGRAL_INT64_T)
-     // It's really not clear why this workaround should be needed... shrug I guess!  JM
-     BOOST_STATIC_CONSTANT(int, s = 
-           6 +
-          (Bits <= ::std::numeric_limits<unsigned long>::digits) +
-          (Bits <= ::std::numeric_limits<unsigned int>::digits) +
-          (Bits <= ::std::numeric_limits<unsigned short>::digits) +
-          (Bits <= ::std::numeric_limits<unsigned char>::digits));
-     typedef typename detail::int_least_helper< ::boost::uint_t<Bits>::s>::least least;
-#else
-      typedef typename detail::uint_least_helper
-        < 
-#ifdef BOOST_HAS_LONG_LONG
-          (Bits <= (int)(sizeof(boost::long_long_type) * CHAR_BIT)) +
-#else
-           1 +
-#endif
-          (Bits <= ::std::numeric_limits<unsigned long>::digits) +
-          (Bits <= ::std::numeric_limits<unsigned int>::digits) +
-          (Bits <= ::std::numeric_limits<unsigned short>::digits) +
-          (Bits <= ::std::numeric_limits<unsigned char>::digits)
-        >::least  least;
-#endif
-      typedef typename int_fast_t<least>::type  fast;
-      // int_fast_t<> works correctly for unsigned too, in spite of the name.
-  };
-
-  //  integer templates specifying extreme value  ----------------------------//
-
-  //  signed
-#if !defined(BOOST_NO_INTEGRAL_INT64_T) && defined(BOOST_HAS_LONG_LONG)
-  template< boost::long_long_type MaxValue >   // maximum value to require support
-#else
-  template< long MaxValue >   // maximum value to require support
-#endif
-  struct int_max_value_t 
-  {
-      typedef typename detail::int_least_helper
-        <
-#if !defined(BOOST_NO_INTEGRAL_INT64_T) && defined(BOOST_HAS_LONG_LONG)
-          (MaxValue <= ::boost::integer_traits<boost::long_long_type>::const_max) +
-#else
-           1 +
-#endif
-          (MaxValue <= ::boost::integer_traits<long>::const_max) +
-          (MaxValue <= ::boost::integer_traits<int>::const_max) +
-          (MaxValue <= ::boost::integer_traits<short>::const_max) +
-          (MaxValue <= ::boost::integer_traits<signed char>::const_max)
-        >::least  least;
-      typedef typename int_fast_t<least>::type  fast;
-  };
-
-#if !defined(BOOST_NO_INTEGRAL_INT64_T) && defined(BOOST_HAS_LONG_LONG)
-  template< boost::long_long_type MinValue >   // minimum value to require support
-#else
-  template< long MinValue >   // minimum value to require support
-#endif
-  struct int_min_value_t 
-  {
-      typedef typename detail::int_least_helper
-        <
-#if !defined(BOOST_NO_INTEGRAL_INT64_T) && defined(BOOST_HAS_LONG_LONG)
-          (MinValue >= ::boost::integer_traits<boost::long_long_type>::const_min) +
-#else
-           1 +
-#endif
-          (MinValue >= ::boost::integer_traits<long>::const_min) +
-          (MinValue >= ::boost::integer_traits<int>::const_min) +
-          (MinValue >= ::boost::integer_traits<short>::const_min) +
-          (MinValue >= ::boost::integer_traits<signed char>::const_min)
-        >::least  least;
-      typedef typename int_fast_t<least>::type  fast;
-  };
-
-  //  unsigned
-#if !defined(BOOST_NO_INTEGRAL_INT64_T) && defined(BOOST_HAS_LONG_LONG)
-  template< boost::ulong_long_type MaxValue >   // minimum value to require support
-#else
-  template< unsigned long MaxValue >   // minimum value to require support
-#endif
-  struct uint_value_t 
-  {
-#if (defined(__BORLANDC__) || defined(__CODEGEAR__))
-     // It's really not clear why this workaround should be needed... shrug I guess!  JM
-#if defined(BOOST_NO_INTEGRAL_INT64_T)
-      BOOST_STATIC_CONSTANT(unsigned, which = 
-           1 +
-          (MaxValue <= ::boost::integer_traits<unsigned long>::const_max) +
-          (MaxValue <= ::boost::integer_traits<unsigned int>::const_max) +
-          (MaxValue <= ::boost::integer_traits<unsigned short>::const_max) +
-          (MaxValue <= ::boost::integer_traits<unsigned char>::const_max));
-      typedef typename detail::int_least_helper< ::boost::uint_value_t<MaxValue>::which>::least least;
-#else // BOOST_NO_INTEGRAL_INT64_T
-      BOOST_STATIC_CONSTANT(unsigned, which = 
-           1 +
-          (MaxValue <= ::boost::integer_traits<boost::ulong_long_type>::const_max) +
-          (MaxValue <= ::boost::integer_traits<unsigned long>::const_max) +
-          (MaxValue <= ::boost::integer_traits<unsigned int>::const_max) +
-          (MaxValue <= ::boost::integer_traits<unsigned short>::const_max) +
-          (MaxValue <= ::boost::integer_traits<unsigned char>::const_max));
-      typedef typename detail::uint_least_helper< ::boost::uint_value_t<MaxValue>::which>::least least;
-#endif // BOOST_NO_INTEGRAL_INT64_T
-#else
-      typedef typename detail::uint_least_helper
-        < 
-#if !defined(BOOST_NO_INTEGRAL_INT64_T) && defined(BOOST_HAS_LONG_LONG)
-          (MaxValue <= ::boost::integer_traits<boost::ulong_long_type>::const_max) +
-#else
-           1 +
-#endif
-          (MaxValue <= ::boost::integer_traits<unsigned long>::const_max) +
-          (MaxValue <= ::boost::integer_traits<unsigned int>::const_max) +
-          (MaxValue <= ::boost::integer_traits<unsigned short>::const_max) +
-          (MaxValue <= ::boost::integer_traits<unsigned char>::const_max)
-        >::least  least;
-#endif
-      typedef typename int_fast_t<least>::type  fast;
-  };
-
-
-} // namespace boost
-
-#endif  // BOOST_INTEGER_HPP
diff --git a/boost/integer/integer_mask.hpp b/boost/integer/integer_mask.hpp
deleted file mode 100644
index 2acf7f7..0000000
--- a/boost/integer/integer_mask.hpp
+++ /dev/null
@@ -1,126 +0,0 @@
-//  Boost integer/integer_mask.hpp header file  ------------------------------//
-
-//  (C) Copyright Daryle Walker 2001.
-//  Distributed under the Boost Software License, Version 1.0. (See
-//  accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org for updates, documentation, and revision history. 
-
-#ifndef BOOST_INTEGER_INTEGER_MASK_HPP
-#define BOOST_INTEGER_INTEGER_MASK_HPP
-
-#include <boost/integer_fwd.hpp>  // self include
-
-#include <boost/config.hpp>   // for BOOST_STATIC_CONSTANT
-#include <boost/integer.hpp>  // for boost::uint_t
-
-#include <climits>  // for UCHAR_MAX, etc.
-#include <cstddef>  // for std::size_t
-
-#include <boost/limits.hpp>  // for std::numeric_limits
-
-//
-// We simply cannot include this header on gcc without getting copious warnings of the kind:
-//
-// boost/integer/integer_mask.hpp:93:35: warning: use of C99 long long integer constant
-//
-// And yet there is no other reasonable implementation, so we declare this a system header
-// to suppress these warnings.
-//
-#if defined(__GNUC__) && (__GNUC__ >= 4)
-#pragma GCC system_header
-#endif
-
-namespace boost
-{
-
-
-//  Specified single-bit mask class declaration  -----------------------------//
-//  (Lowest bit starts counting at 0.)
-
-template < std::size_t Bit >
-struct high_bit_mask_t
-{
-    typedef typename uint_t<(Bit + 1)>::least  least;
-    typedef typename uint_t<(Bit + 1)>::fast   fast;
-
-    BOOST_STATIC_CONSTANT( least, high_bit = (least( 1u ) << Bit) );
-    BOOST_STATIC_CONSTANT( fast, high_bit_fast = (fast( 1u ) << Bit) );
-
-    BOOST_STATIC_CONSTANT( std::size_t, bit_position = Bit );
-
-};  // boost::high_bit_mask_t
-
-
-//  Specified bit-block mask class declaration  ------------------------------//
-//  Makes masks for the lowest N bits
-//  (Specializations are needed when N fills up a type.)
-
-template < std::size_t Bits >
-struct low_bits_mask_t
-{
-    typedef typename uint_t<Bits>::least  least;
-    typedef typename uint_t<Bits>::fast   fast;
-
-    BOOST_STATIC_CONSTANT( least, sig_bits = (~( ~(least( 0u )) << Bits )) );
-    BOOST_STATIC_CONSTANT( fast, sig_bits_fast = fast(sig_bits) );
-
-    BOOST_STATIC_CONSTANT( std::size_t, bit_count = Bits );
-
-};  // boost::low_bits_mask_t
-
-
-#define BOOST_LOW_BITS_MASK_SPECIALIZE( Type )                                  \
-  template <  >  struct low_bits_mask_t< std::numeric_limits<Type>::digits >  { \
-      typedef std::numeric_limits<Type>           limits_type;                  \
-      typedef uint_t<limits_type::digits>::least  least;                        \
-      typedef uint_t<limits_type::digits>::fast   fast;                         \
-      BOOST_STATIC_CONSTANT( least, sig_bits = (~( least(0u) )) );              \
-      BOOST_STATIC_CONSTANT( fast, sig_bits_fast = fast(sig_bits) );            \
-      BOOST_STATIC_CONSTANT( std::size_t, bit_count = limits_type::digits );    \
-  }
-
-#ifdef BOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable:4245)  // 'initializing' : conversion from 'int' to 'const boost::low_bits_mask_t<8>::least', signed/unsigned mismatch
-#endif
-
-BOOST_LOW_BITS_MASK_SPECIALIZE( unsigned char );
-
-#if USHRT_MAX > UCHAR_MAX
-BOOST_LOW_BITS_MASK_SPECIALIZE( unsigned short );
-#endif
-
-#if UINT_MAX > USHRT_MAX
-BOOST_LOW_BITS_MASK_SPECIALIZE( unsigned int );
-#endif
-
-#if ULONG_MAX > UINT_MAX
-BOOST_LOW_BITS_MASK_SPECIALIZE( unsigned long );
-#endif
-
-#if defined(BOOST_HAS_LONG_LONG)
-    #if ((defined(ULLONG_MAX) && (ULLONG_MAX > ULONG_MAX)) ||\
-        (defined(ULONG_LONG_MAX) && (ULONG_LONG_MAX > ULONG_MAX)) ||\
-        (defined(ULONGLONG_MAX) && (ULONGLONG_MAX > ULONG_MAX)) ||\
-        (defined(_ULLONG_MAX) && (_ULLONG_MAX > ULONG_MAX)))
-    BOOST_LOW_BITS_MASK_SPECIALIZE( boost::ulong_long_type );
-    #endif
-#elif defined(BOOST_HAS_MS_INT64)
-    #if 18446744073709551615ui64 > ULONG_MAX
-    BOOST_LOW_BITS_MASK_SPECIALIZE( unsigned __int64 );
-    #endif
-#endif
-
-#ifdef BOOST_MSVC
-#pragma warning(pop)
-#endif
-
-#undef BOOST_LOW_BITS_MASK_SPECIALIZE
-
-
-}  // namespace boost
-
-
-#endif  // BOOST_INTEGER_INTEGER_MASK_HPP
diff --git a/boost/integer/static_log2.hpp b/boost/integer/static_log2.hpp
deleted file mode 100644
index 56c7a00..0000000
--- a/boost/integer/static_log2.hpp
+++ /dev/null
@@ -1,127 +0,0 @@
-// -------------- Boost static_log2.hpp header file  ----------------------- //
-//
-//                 Copyright (C) 2001 Daryle Walker.
-//                 Copyright (C) 2003 Vesa Karvonen.
-//                 Copyright (C) 2003 Gennaro Prota.
-//
-//     Distributed under the Boost Software License, Version 1.0.
-//        (See accompanying file LICENSE_1_0.txt or copy at
-//              http://www.boost.org/LICENSE_1_0.txt)
-//
-//         ---------------------------------------------------
-//       See http://www.boost.org/libs/integer for documentation.
-// ------------------------------------------------------------------------- //
-
-
-#ifndef BOOST_INTEGER_STATIC_LOG2_HPP
-#define BOOST_INTEGER_STATIC_LOG2_HPP
-
-#include "boost/integer_fwd.hpp" // for boost::intmax_t
-
-namespace boost {
-
- namespace detail {
-
-     namespace static_log2_impl {
-
-     // choose_initial_n<>
-     //
-     // Recursively doubles its integer argument, until it
-     // becomes >= of the "width" (C99, 6.2.6.2p4) of
-     // static_log2_argument_type.
-     //
-     // Used to get the maximum power of two less then the width.
-     //
-     // Example: if on your platform argument_type has 48 value
-     //          bits it yields n=32.
-     //
-     // It's easy to prove that, starting from such a value
-     // of n, the core algorithm works correctly for any width
-     // of static_log2_argument_type and that recursion always
-     // terminates with x = 1 and n = 0 (see the algorithm's
-     // invariant).
-
-     typedef boost::static_log2_argument_type argument_type;
-     typedef boost::static_log2_result_type result_type;
-
-     template <result_type n>
-     struct choose_initial_n {
-
-         BOOST_STATIC_CONSTANT(bool, c = (argument_type(1) << n << n) != 0);
-         BOOST_STATIC_CONSTANT(
-             result_type,
-             value = !c*n + choose_initial_n<2*c*n>::value
-         );
-
-     };
-
-     template <>
-     struct choose_initial_n<0> {
-         BOOST_STATIC_CONSTANT(result_type, value = 0);
-     };
-
-
-
-     // start computing from n_zero - must be a power of two
-     const result_type n_zero = 16;
-     const result_type initial_n = choose_initial_n<n_zero>::value;
-
-     // static_log2_impl<>
-     //
-     // * Invariant:
-     //                 2n
-     //  1 <= x && x < 2    at the start of each recursion
-     //                     (see also choose_initial_n<>)
-     //
-     // * Type requirements:
-     //
-     //   argument_type maybe any unsigned type with at least n_zero + 1
-     //   value bits. (Note: If larger types will be standardized -e.g.
-     //   unsigned long long- then the argument_type typedef can be
-     //   changed without affecting the rest of the code.)
-     //
-
-     template <argument_type x, result_type n = initial_n>
-     struct static_log2_impl {
-
-         BOOST_STATIC_CONSTANT(bool, c = (x >> n) > 0); // x >= 2**n ?
-         BOOST_STATIC_CONSTANT(
-             result_type,
-             value = c*n + (static_log2_impl< (x>>c*n), n/2 >::value)
-         );
-
-     };
-
-     template <>
-     struct static_log2_impl<1, 0> {
-        BOOST_STATIC_CONSTANT(result_type, value = 0);
-     };
-
-     }
- } // detail
-
-
-
- // --------------------------------------
- // static_log2<x>
- // ----------------------------------------
-
- template <static_log2_argument_type x>
- struct static_log2 {
-
-     BOOST_STATIC_CONSTANT(
-         static_log2_result_type,
-         value = detail::static_log2_impl::static_log2_impl<x>::value
-     );
-
- };
-
-
- template <>
- struct static_log2<0> { };
-
-}
-
-
-
-#endif // include guard
diff --git a/boost/integer_fwd.hpp b/boost/integer_fwd.hpp
deleted file mode 100644
index 20eff2b..0000000
--- a/boost/integer_fwd.hpp
+++ /dev/null
@@ -1,164 +0,0 @@
-//  Boost integer_fwd.hpp header file  ---------------------------------------//
-
-//  (C) Copyright Dave Abrahams and Daryle Walker 2001. Distributed under the Boost
-//  Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org/libs/integer for documentation.
-
-#ifndef BOOST_INTEGER_FWD_HPP
-#define BOOST_INTEGER_FWD_HPP
-
-#include <climits>  // for UCHAR_MAX, etc.
-#include <cstddef>  // for std::size_t
-
-#include <boost/config.hpp>  // for BOOST_NO_INTRINSIC_WCHAR_T
-#include <boost/limits.hpp>  // for std::numeric_limits
-#include <boost/cstdint.hpp>  // For intmax_t
-
-
-namespace boost
-{
-
-#ifdef BOOST_NO_INTEGRAL_INT64_T
-     typedef unsigned long static_log2_argument_type;
-     typedef          int  static_log2_result_type;
-     typedef long          static_min_max_signed_type;
-     typedef unsigned long static_min_max_unsigned_type;
-#else
-     typedef boost::uintmax_t static_min_max_unsigned_type;
-     typedef boost::intmax_t  static_min_max_signed_type;
-     typedef boost::uintmax_t static_log2_argument_type;
-     typedef int              static_log2_result_type;
-#endif
-
-//  From <boost/cstdint.hpp>  ------------------------------------------------//
-
-// Only has typedefs or using statements, with #conditionals
-
-
-//  From <boost/integer_traits.hpp>  -----------------------------------------//
-
-template < class T >
-    class integer_traits;
-
-template <  >
-    class integer_traits< bool >;
-
-template <  >
-    class integer_traits< char >;
-
-template <  >
-    class integer_traits< signed char >;
-
-template <  >
-    class integer_traits< unsigned char >;
-
-#ifndef BOOST_NO_INTRINSIC_WCHAR_T
-template <  >
-    class integer_traits< wchar_t >;
-#endif
-
-template <  >
-    class integer_traits< short >;
-
-template <  >
-    class integer_traits< unsigned short >;
-
-template <  >
-    class integer_traits< int >;
-
-template <  >
-    class integer_traits< unsigned int >;
-
-template <  >
-    class integer_traits< long >;
-
-template <  >
-    class integer_traits< unsigned long >;
-
-#if !defined(BOOST_NO_INTEGRAL_INT64_T) && !defined(BOOST_NO_INT64_T) && defined(BOOST_HAS_LONG_LONG)
-template <  >
-class integer_traits<  ::boost::long_long_type>;
-
-template <  >
-class integer_traits<  ::boost::ulong_long_type >;
-#elif !defined(BOOST_NO_INTEGRAL_INT64_T) && !defined(BOOST_NO_INT64_T) && defined(BOOST_HAS_MS_INT64)
-template <  >
-class integer_traits<__int64>;
-
-template <  >
-class integer_traits<unsigned __int64>;
-#endif
-
-
-//  From <boost/integer.hpp>  ------------------------------------------------//
-
-template < typename LeastInt >
-    struct int_fast_t;
-
-template< int Bits >
-    struct int_t;
-
-template< int Bits >
-    struct uint_t;
-
-#if !defined(BOOST_NO_INTEGRAL_INT64_T) && defined(BOOST_HAS_LONG_LONG)
-    template< boost::long_long_type MaxValue >   // maximum value to require support
-#else
-  template< long MaxValue >   // maximum value to require support
-#endif
-    struct int_max_value_t;
-
-#if !defined(BOOST_NO_INTEGRAL_INT64_T) && defined(BOOST_HAS_LONG_LONG)
-  template< boost::long_long_type MinValue >   // minimum value to require support
-#else
-  template< long MinValue >   // minimum value to require support
-#endif
-    struct int_min_value_t;
-
-#if !defined(BOOST_NO_INTEGRAL_INT64_T) && defined(BOOST_HAS_LONG_LONG)
-  template< boost::ulong_long_type MaxValue >   // maximum value to require support
-#else
-  template< unsigned long MaxValue >   // maximum value to require support
-#endif
-    struct uint_value_t;
-
-
-//  From <boost/integer/integer_mask.hpp>  -----------------------------------//
-
-template < std::size_t Bit >
-    struct high_bit_mask_t;
-
-template < std::size_t Bits >
-    struct low_bits_mask_t;
-
-template <  >
-    struct low_bits_mask_t< ::std::numeric_limits<unsigned char>::digits >;
-
-//  From <boost/integer/static_log2.hpp>  ------------------------------------//
-
-template <static_log2_argument_type Value >
-    struct static_log2;
-
-template <> struct static_log2<0u>;
-
-
-//  From <boost/integer/static_min_max.hpp>  ---------------------------------//
-
-template <static_min_max_signed_type Value1, static_min_max_signed_type Value2>
-    struct static_signed_min;
-
-template <static_min_max_signed_type Value1, static_min_max_signed_type Value2>
-    struct static_signed_max;
-
-template <static_min_max_unsigned_type Value1, static_min_max_unsigned_type Value2>
-    struct static_unsigned_min;
-
-template <static_min_max_unsigned_type Value1, static_min_max_unsigned_type Value2>
-    struct static_unsigned_max;
-
-}  // namespace boost
-
-
-#endif  // BOOST_INTEGER_FWD_HPP
diff --git a/boost/integer_traits.hpp b/boost/integer_traits.hpp
deleted file mode 100644
index d896e46..0000000
--- a/boost/integer_traits.hpp
+++ /dev/null
@@ -1,261 +0,0 @@
-/* boost integer_traits.hpp header file
- *
- * Copyright Jens Maurer 2000
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * $Id: integer_traits.hpp 85813 2013-09-21 20:17:00Z jewillco $
- *
- * Idea by Beman Dawes, Ed Brey, Steve Cleary, and Nathan Myers
- */
-
-//  See http://www.boost.org/libs/integer for documentation.
-
-
-#ifndef BOOST_INTEGER_TRAITS_HPP
-#define BOOST_INTEGER_TRAITS_HPP
-
-#include <boost/config.hpp>
-#include <boost/limits.hpp>
-
-// These are an implementation detail and not part of the interface
-#include <limits.h>
-// we need wchar.h for WCHAR_MAX/MIN but not all platforms provide it,
-// and some may have <wchar.h> but not <cwchar> ...
-#if !defined(BOOST_NO_INTRINSIC_WCHAR_T) && (!defined(BOOST_NO_CWCHAR) || defined(sun) || defined(__sun) || defined(__QNX__))
-#include <wchar.h>
-#endif
-
-//
-// We simply cannot include this header on gcc without getting copious warnings of the kind:
-//
-// ../../../boost/integer_traits.hpp:164:66: warning: use of C99 long long integer constant
-//
-// And yet there is no other reasonable implementation, so we declare this a system header
-// to suppress these warnings.
-//
-#if defined(__GNUC__) && (__GNUC__ >= 4)
-#pragma GCC system_header
-#endif
-
-namespace boost {
-template<class T>
-class integer_traits : public std::numeric_limits<T>
-{
-public:
-  BOOST_STATIC_CONSTANT(bool, is_integral = false);
-};
-
-namespace detail {
-template<class T, T min_val, T max_val>
-class integer_traits_base
-{
-public:
-  BOOST_STATIC_CONSTANT(bool, is_integral = true);
-  BOOST_STATIC_CONSTANT(T, const_min = min_val);
-  BOOST_STATIC_CONSTANT(T, const_max = max_val);
-};
-
-#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
-//  A definition is required even for integral static constants
-template<class T, T min_val, T max_val>
-const bool integer_traits_base<T, min_val, max_val>::is_integral;
-
-template<class T, T min_val, T max_val>
-const T integer_traits_base<T, min_val, max_val>::const_min;
-
-template<class T, T min_val, T max_val>
-const T integer_traits_base<T, min_val, max_val>::const_max;
-#endif
-
-} // namespace detail
-
-template<>
-class integer_traits<bool>
-  : public std::numeric_limits<bool>,
-    public detail::integer_traits_base<bool, false, true>
-{ };
-
-template<>
-class integer_traits<char>
-  : public std::numeric_limits<char>,
-    public detail::integer_traits_base<char, CHAR_MIN, CHAR_MAX>
-{ };
-
-template<>
-class integer_traits<signed char>
-  : public std::numeric_limits<signed char>,
-    public detail::integer_traits_base<signed char, SCHAR_MIN, SCHAR_MAX>
-{ };
-
-template<>
-class integer_traits<unsigned char>
-  : public std::numeric_limits<unsigned char>,
-    public detail::integer_traits_base<unsigned char, 0, UCHAR_MAX>
-{ };
-
-#ifndef BOOST_NO_INTRINSIC_WCHAR_T
-template<>
-class integer_traits<wchar_t>
-  : public std::numeric_limits<wchar_t>,
-    // Don't trust WCHAR_MIN and WCHAR_MAX with Mac OS X's native
-    // library: they are wrong!
-#if defined(WCHAR_MIN) && defined(WCHAR_MAX) && !defined(__APPLE__)
-    public detail::integer_traits_base<wchar_t, WCHAR_MIN, WCHAR_MAX>
-#elif defined(__BORLANDC__) || defined(__CYGWIN__) || defined(__MINGW32__) || (defined(__BEOS__) && defined(__GNUC__))
-    // No WCHAR_MIN and WCHAR_MAX, whar_t is short and unsigned:
-    public detail::integer_traits_base<wchar_t, 0, 0xffff>
-#elif (defined(__sgi) && (!defined(__SGI_STL_PORT) || __SGI_STL_PORT < 0x400))\
-    || (defined __APPLE__)\
-    || (defined(__OpenBSD__) && defined(__GNUC__))\
-    || (defined(__NetBSD__) && defined(__GNUC__))\
-    || (defined(__FreeBSD__) && defined(__GNUC__))\
-    || (defined(__DragonFly__) && defined(__GNUC__))\
-    || (defined(__hpux) && defined(__GNUC__) && (__GNUC__ == 3) && !defined(__SGI_STL_PORT))
-    // No WCHAR_MIN and WCHAR_MAX, wchar_t has the same range as int.
-    //  - SGI MIPSpro with native library
-    //  - gcc 3.x on HP-UX
-    //  - Mac OS X with native library
-    //  - gcc on FreeBSD, OpenBSD and NetBSD
-    public detail::integer_traits_base<wchar_t, INT_MIN, INT_MAX>
-#elif defined(__hpux) && defined(__GNUC__) && (__GNUC__ == 2) && !defined(__SGI_STL_PORT)
-    // No WCHAR_MIN and WCHAR_MAX, wchar_t has the same range as unsigned int.
-    //  - gcc 2.95.x on HP-UX
-    // (also, std::numeric_limits<wchar_t> appears to return the wrong values).
-    public detail::integer_traits_base<wchar_t, 0, UINT_MAX>
-#else
-#error No WCHAR_MIN and WCHAR_MAX present, please adjust integer_traits<> for your compiler.
-#endif
-{ };
-#endif // BOOST_NO_INTRINSIC_WCHAR_T
-
-template<>
-class integer_traits<short>
-  : public std::numeric_limits<short>,
-    public detail::integer_traits_base<short, SHRT_MIN, SHRT_MAX>
-{ };
-
-template<>
-class integer_traits<unsigned short>
-  : public std::numeric_limits<unsigned short>,
-    public detail::integer_traits_base<unsigned short, 0, USHRT_MAX>
-{ };
-
-template<>
-class integer_traits<int>
-  : public std::numeric_limits<int>,
-    public detail::integer_traits_base<int, INT_MIN, INT_MAX>
-{ };
-
-template<>
-class integer_traits<unsigned int>
-  : public std::numeric_limits<unsigned int>,
-    public detail::integer_traits_base<unsigned int, 0, UINT_MAX>
-{ };
-
-template<>
-class integer_traits<long>
-  : public std::numeric_limits<long>,
-    public detail::integer_traits_base<long, LONG_MIN, LONG_MAX>
-{ };
-
-template<>
-class integer_traits<unsigned long>
-  : public std::numeric_limits<unsigned long>,
-    public detail::integer_traits_base<unsigned long, 0, ULONG_MAX>
-{ };
-
-#if !defined(BOOST_NO_INTEGRAL_INT64_T) && !defined(BOOST_NO_INT64_T)
-#if defined(ULLONG_MAX) && defined(BOOST_HAS_LONG_LONG)
-
-template<>
-class integer_traits< ::boost::long_long_type>
-  : public std::numeric_limits< ::boost::long_long_type>,
-    public detail::integer_traits_base< ::boost::long_long_type, LLONG_MIN, LLONG_MAX>
-{ };
-
-template<>
-class integer_traits< ::boost::ulong_long_type>
-  : public std::numeric_limits< ::boost::ulong_long_type>,
-    public detail::integer_traits_base< ::boost::ulong_long_type, 0, ULLONG_MAX>
-{ };
-
-#elif defined(ULONG_LONG_MAX) && defined(BOOST_HAS_LONG_LONG)
-
-template<>
-class integer_traits< ::boost::long_long_type>  : public std::numeric_limits< ::boost::long_long_type>,    public detail::integer_traits_base< ::boost::long_long_type, LONG_LONG_MIN, LONG_LONG_MAX>{ };
-template<>
-class integer_traits< ::boost::ulong_long_type>
-  : public std::numeric_limits< ::boost::ulong_long_type>,
-    public detail::integer_traits_base< ::boost::ulong_long_type, 0, ULONG_LONG_MAX>
-{ };
-
-#elif defined(ULONGLONG_MAX) && defined(BOOST_HAS_LONG_LONG)
-
-template<>
-class integer_traits< ::boost::long_long_type>
-  : public std::numeric_limits< ::boost::long_long_type>,
-    public detail::integer_traits_base< ::boost::long_long_type, LONGLONG_MIN, LONGLONG_MAX>
-{ };
-
-template<>
-class integer_traits< ::boost::ulong_long_type>
-  : public std::numeric_limits< ::boost::ulong_long_type>,
-    public detail::integer_traits_base< ::boost::ulong_long_type, 0, ULONGLONG_MAX>
-{ };
-
-#elif defined(_LLONG_MAX) && defined(_C2) && defined(BOOST_HAS_LONG_LONG)
-
-template<>
-class integer_traits< ::boost::long_long_type>
-  : public std::numeric_limits< ::boost::long_long_type>,
-    public detail::integer_traits_base< ::boost::long_long_type, -_LLONG_MAX - _C2, _LLONG_MAX>
-{ };
-
-template<>
-class integer_traits< ::boost::ulong_long_type>
-  : public std::numeric_limits< ::boost::ulong_long_type>,
-    public detail::integer_traits_base< ::boost::ulong_long_type, 0, _ULLONG_MAX>
-{ };
-
-#elif defined(BOOST_HAS_LONG_LONG)
-//
-// we have long long but no constants, this happens for example with gcc in -ansi mode,
-// we'll just have to work out the values for ourselves (assumes 2's compliment representation):
-//
-template<>
-class integer_traits< ::boost::long_long_type>
-  : public std::numeric_limits< ::boost::long_long_type>,
-    public detail::integer_traits_base< ::boost::long_long_type, (1LL << (sizeof(::boost::long_long_type) * CHAR_BIT - 1)), ~(1LL << (sizeof(::boost::long_long_type) * CHAR_BIT - 1))>
-{ };
-
-template<>
-class integer_traits< ::boost::ulong_long_type>
-  : public std::numeric_limits< ::boost::ulong_long_type>,
-    public detail::integer_traits_base< ::boost::ulong_long_type, 0, ~0uLL>
-{ };
-
-#elif defined(BOOST_HAS_MS_INT64)
-
-template<>
-class integer_traits< __int64>
-  : public std::numeric_limits< __int64>,
-    public detail::integer_traits_base< __int64, _I64_MIN, _I64_MAX>
-{ };
-
-template<>
-class integer_traits< unsigned __int64>
-  : public std::numeric_limits< unsigned __int64>,
-    public detail::integer_traits_base< unsigned __int64, 0, _UI64_MAX>
-{ };
-
-#endif
-#endif
-
-} // namespace boost
-
-#endif /* BOOST_INTEGER_TRAITS_HPP */
-
-
-
diff --git a/boost/iterator.hpp b/boost/iterator.hpp
deleted file mode 100644
index 6adab0e..0000000
--- a/boost/iterator.hpp
+++ /dev/null
@@ -1,59 +0,0 @@
-//  iterator.hpp workarounds for non-conforming standard libraries  ---------//
-
-//  (C) Copyright Beman Dawes 2000. Distributed under the Boost
-//  Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org/libs/utility for documentation.
-
-//  Revision History
-//  12 Jan 01 added <cstddef> for std::ptrdiff_t (Jens Maurer)
-//  28 Jun 00 Workarounds to deal with known MSVC bugs (David Abrahams)
-//  26 Jun 00 Initial version (Jeremy Siek)
-
-#ifndef BOOST_ITERATOR_HPP
-#define BOOST_ITERATOR_HPP
-
-#include <iterator>
-#include <cstddef>           // std::ptrdiff_t
-#include <boost/config.hpp>
-
-namespace boost
-{
-# if defined(BOOST_NO_STD_ITERATOR) && !defined(BOOST_MSVC_STD_ITERATOR)
-  template <class Category, class T,
-    class Distance = std::ptrdiff_t,
-    class Pointer = T*, class Reference = T&>
-  struct iterator
-  {
-    typedef T         value_type;
-    typedef Distance  difference_type;
-    typedef Pointer   pointer;
-    typedef Reference reference;
-    typedef Category  iterator_category;
-  };
-# else
-
-  // declare iterator_base in namespace detail to work around MSVC bugs which
-  // prevent derivation from an identically-named class in a different namespace.
-  namespace detail {
-   template <class Category, class T, class Distance, class Pointer, class Reference>
-#  if !defined(BOOST_MSVC_STD_ITERATOR)
-   struct iterator_base : std::iterator<Category, T, Distance, Pointer, Reference> {};
-#  else
-   struct iterator_base : std::iterator<Category, T, Distance>
-   {
-     typedef Reference reference;
-     typedef Pointer pointer;
-     typedef Distance difference_type;
-   };
-#  endif
-  }
-
-  template <class Category, class T, class Distance = std::ptrdiff_t,
-            class Pointer = T*, class Reference = T&>
-  struct iterator : boost::detail::iterator_base<Category, T, Distance, Pointer, Reference> {};
-# endif
-} // namespace boost
-
-#endif // BOOST_ITERATOR_HPP
diff --git a/boost/iterator/detail/config_def.hpp b/boost/iterator/detail/config_def.hpp
deleted file mode 100644
index fa8d667..0000000
--- a/boost/iterator/detail/config_def.hpp
+++ /dev/null
@@ -1,137 +0,0 @@
-// (C) Copyright David Abrahams 2002.
-// (C) Copyright Jeremy Siek    2002.
-// (C) Copyright Thomas Witt    2002.
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-// no include guard multiple inclusion intended
-
-//
-// This is a temporary workaround until the bulk of this is
-// available in boost config.
-// 23/02/03 thw
-//
-
-#include <boost/config.hpp> // for prior
-#include <boost/detail/workaround.hpp>
-
-#ifdef BOOST_ITERATOR_CONFIG_DEF
-# error you have nested config_def #inclusion.
-#else 
-# define BOOST_ITERATOR_CONFIG_DEF
-#endif 
-
-// We enable this always now.  Otherwise, the simple case in
-// libs/iterator/test/constant_iterator_arrow.cpp fails to compile
-// because the operator-> return is improperly deduced as a non-const
-// pointer.
-#if 1 || defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)           \
-    || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x531))
-
-// Recall that in general, compilers without partial specialization
-// can't strip constness.  Consider counting_iterator, which normally
-// passes a const Value to iterator_facade.  As a result, any code
-// which makes a std::vector of the iterator's value_type will fail
-// when its allocator declares functions overloaded on reference and
-// const_reference (the same type).
-//
-// Furthermore, Borland 5.5.1 drops constness in enough ways that we
-// end up using a proxy for operator[] when we otherwise shouldn't.
-// Using reference constness gives it an extra hint that it can
-// return the value_type from operator[] directly, but is not
-// strictly necessary.  Not sure how best to resolve this one.
-
-# define BOOST_ITERATOR_REF_CONSTNESS_KILLS_WRITABILITY 1
-
-#endif
-
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)                                       \
-    || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x5A0))                   \
-    || (BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION, <= 700) && defined(_MSC_VER)) \
-    || BOOST_WORKAROUND(__DECCXX_VER, BOOST_TESTED_AT(60590042))                \
-    || BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x590))
-    
-# define BOOST_NO_LVALUE_RETURN_DETECTION
-
-# if 0 // test code
-  struct v  {};
-
-  typedef  char (&no)[3];
-
-  template <class T>
-  no foo(T const&, ...);
-
-  template <class T>
-  char foo(T&, int);
-
-
-  struct value_iterator
-  {
-      v operator*() const;
-  };
-
-  template <class T>
-  struct lvalue_deref_helper
-  {
-      static T& x;
-      enum { value = (sizeof(foo(*x,0)) == 1) };
-  };
-
-  int z2[(lvalue_deref_helper<v*>::value == 1) ? 1 : -1];
-  int z[(lvalue_deref_helper<value_iterator>::value) == 1 ? -1 : 1 ];
-# endif 
-
-#endif
-
-#if BOOST_WORKAROUND(__MWERKS__, <=0x2407)
-#  define BOOST_NO_IS_CONVERTIBLE // "is_convertible doesn't work for simple types"
-#endif
-
-#if BOOST_WORKAROUND(__GNUC__, == 2)                                                                            \
-    || BOOST_WORKAROUND(__GNUC__, == 3) && BOOST_WORKAROUND(__GNUC_MINOR__, < 4) && !defined(__EDG_VERSION__)   \
-    || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x551))
-#  define BOOST_NO_IS_CONVERTIBLE_TEMPLATE // The following program fails to compile:
-
-#  if 0 // test code
-    #include <boost/type_traits/is_convertible.hpp>
-    template <class T>
-    struct foo
-    {
-        foo(T);
-
-        template <class U>
-        foo(foo<U> const& other) : p(other.p) { }
-
-        T p;
-    };
-
-    bool x = boost::is_convertible<foo<int const*>, foo<int*> >::value;
-#  endif
-
-#endif
-
-
-#if !defined(BOOST_MSVC) && (defined(BOOST_NO_SFINAE) || defined(BOOST_NO_IS_CONVERTIBLE) || defined(BOOST_NO_IS_CONVERTIBLE_TEMPLATE))
-# define BOOST_NO_STRICT_ITERATOR_INTEROPERABILITY
-#endif 
-
-# if !BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
-#  define BOOST_ARG_DEPENDENT_TYPENAME typename
-# else
-#  define BOOST_ARG_DEPENDENT_TYPENAME
-# endif
-
-# if BOOST_WORKAROUND(__GNUC__, == 2) && BOOST_WORKAROUND(__GNUC_MINOR__, BOOST_TESTED_AT(95)) \
-    || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
-
-// GCC-2.95 eagerly instantiates templated constructors and conversion
-// operators in convertibility checks, causing premature errors.
-//
-// Borland's problems are harder to diagnose due to lack of an
-// instantiation stack backtrace.  They may be due in part to the fact
-// that it drops cv-qualification willy-nilly in templates.
-#  define BOOST_NO_ONE_WAY_ITERATOR_INTEROP
-# endif 
-
-// no include guard; multiple inclusion intended
diff --git a/boost/iterator/detail/config_undef.hpp b/boost/iterator/detail/config_undef.hpp
deleted file mode 100644
index 9dcd1d5..0000000
--- a/boost/iterator/detail/config_undef.hpp
+++ /dev/null
@@ -1,25 +0,0 @@
-// (C) Copyright Thomas Witt    2002.
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-// no include guard multiple inclusion intended
-
-//
-// This is a temporary workaround until the bulk of this is
-// available in boost config.
-// 23/02/03 thw
-//
-
-#undef BOOST_NO_IS_CONVERTIBLE
-#undef BOOST_NO_IS_CONVERTIBLE_TEMPLATE
-#undef BOOST_NO_STRICT_ITERATOR_INTEROPERABILITY
-#undef BOOST_ARG_DEPENDENT_TYPENAME
-#undef BOOST_NO_LVALUE_RETURN_DETECTION
-#undef BOOST_NO_ONE_WAY_ITERATOR_INTEROP
-
-#ifdef BOOST_ITERATOR_CONFIG_DEF
-# undef BOOST_ITERATOR_CONFIG_DEF
-#else
-# error missing or nested #include config_def
-#endif 
diff --git a/boost/iterator/detail/enable_if.hpp b/boost/iterator/detail/enable_if.hpp
deleted file mode 100644
index 0fd36fc..0000000
--- a/boost/iterator/detail/enable_if.hpp
+++ /dev/null
@@ -1,86 +0,0 @@
-// (C) Copyright David Abrahams 2002.
-// (C) Copyright Jeremy Siek    2002.
-// (C) Copyright Thomas Witt    2002.
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-#ifndef BOOST_ENABLE_IF_23022003THW_HPP
-#define BOOST_ENABLE_IF_23022003THW_HPP
-
-#include <boost/detail/workaround.hpp>
-#include <boost/mpl/identity.hpp>
-
-#include <boost/iterator/detail/config_def.hpp>
-
-//
-// Boost iterators uses its own enable_if cause we need
-// special semantics for deficient compilers.
-// 23/02/03 thw
-//
-
-namespace boost
-{
-
-  namespace iterators
-  {
-    //
-    // Base machinery for all kinds of enable if
-    //
-    template<bool>
-    struct enabled
-    {
-      template<typename T>
-      struct base
-      {
-        typedef T type;
-      };
-    };
-    
-    //
-    // For compilers that don't support "Substitution Failure Is Not An Error"
-    // enable_if falls back to always enabled. See comments
-    // on operator implementation for consequences.
-    //
-    template<>
-    struct enabled<false>
-    {
-      template<typename T>
-      struct base
-      {
-#ifdef BOOST_NO_SFINAE
-
-        typedef T type;
-
-        // This way to do it would give a nice error message containing
-        // invalid overload, but has the big disadvantage that
-        // there is no reference to user code in the error message.
-        //
-        // struct invalid_overload;
-        // typedef invalid_overload type;
-        //
-#endif
-      };
-    };
-
-
-    template <class Cond,
-              class Return>
-    struct enable_if
-# if !defined(BOOST_NO_SFINAE) && !defined(BOOST_NO_IS_CONVERTIBLE)
-      : enabled<(Cond::value)>::template base<Return>
-# else
-      : mpl::identity<Return>
-# endif 
-    {
-# if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-        typedef Return type;
-# endif 
-    };
-
-  } // namespace iterators
-
-} // namespace boost
-
-#include <boost/iterator/detail/config_undef.hpp>
-
-#endif // BOOST_ENABLE_IF_23022003THW_HPP
diff --git a/boost/iterator/detail/facade_iterator_category.hpp b/boost/iterator/detail/facade_iterator_category.hpp
deleted file mode 100644
index 2c4771d..0000000
--- a/boost/iterator/detail/facade_iterator_category.hpp
+++ /dev/null
@@ -1,200 +0,0 @@
-// Copyright David Abrahams 2003. Use, modification and distribution is
-// subject to the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-#ifndef FACADE_ITERATOR_CATEGORY_DWA20031118_HPP
-# define FACADE_ITERATOR_CATEGORY_DWA20031118_HPP
-
-# include <boost/iterator/iterator_categories.hpp>
-
-# include <boost/mpl/or.hpp>  // used in iterator_tag inheritance logic
-# include <boost/mpl/and.hpp>
-# include <boost/mpl/if.hpp>
-# include <boost/mpl/eval_if.hpp>
-# include <boost/mpl/identity.hpp>
-# include <boost/mpl/assert.hpp>
-
-# include <boost/type_traits/is_same.hpp>
-# include <boost/type_traits/is_const.hpp>
-# include <boost/type_traits/is_reference.hpp>
-# include <boost/type_traits/is_convertible.hpp>
-
-# include <boost/type_traits/is_same.hpp>
-
-# include <boost/iterator/detail/config_def.hpp> // try to keep this last
-
-# ifdef BOOST_ITERATOR_REF_CONSTNESS_KILLS_WRITABILITY
-#  include <boost/detail/indirect_traits.hpp>
-# endif
-
-//
-// iterator_category deduction for iterator_facade
-//
-
-// forward declaration
-namespace boost { struct use_default; }
-
-namespace boost { namespace detail  {
-
-struct input_output_iterator_tag
-  : std::input_iterator_tag
-{
-    // Using inheritance for only input_iterator_tag helps to avoid
-    // ambiguities when a stdlib implementation dispatches on a
-    // function which is overloaded on both input_iterator_tag and
-    // output_iterator_tag, as STLPort does, in its __valid_range
-    // function.  I claim it's better to avoid the ambiguity in these
-    // cases.
-    operator std::output_iterator_tag() const
-    {
-        return std::output_iterator_tag();
-    }
-};
-
-//
-// True iff the user has explicitly disabled writability of this
-// iterator.  Pass the iterator_facade's Value parameter and its
-// nested ::reference type.
-//
-template <class ValueParam, class Reference>
-struct iterator_writability_disabled
-# ifdef BOOST_ITERATOR_REF_CONSTNESS_KILLS_WRITABILITY // Adding Thomas' logic?
-  : mpl::or_<
-        is_const<Reference>
-      , boost::detail::indirect_traits::is_reference_to_const<Reference>
-      , is_const<ValueParam>
-    >
-# else 
-  : is_const<ValueParam>
-# endif 
-{};
-
-
-//
-// Convert an iterator_facade's traversal category, Value parameter,
-// and ::reference type to an appropriate old-style category.
-//
-// If writability has been disabled per the above metafunction, the
-// result will not be convertible to output_iterator_tag.
-//
-// Otherwise, if Traversal == single_pass_traversal_tag, the following
-// conditions will result in a tag that is convertible both to
-// input_iterator_tag and output_iterator_tag:
-//
-//    1. Reference is a reference to non-const
-//    2. Reference is not a reference and is convertible to Value
-//
-template <class Traversal, class ValueParam, class Reference>
-struct iterator_facade_default_category
-  : mpl::eval_if<
-        mpl::and_<
-            is_reference<Reference>
-          , is_convertible<Traversal,forward_traversal_tag>
-        >
-      , mpl::eval_if<
-            is_convertible<Traversal,random_access_traversal_tag>
-          , mpl::identity<std::random_access_iterator_tag>
-          , mpl::if_<
-                is_convertible<Traversal,bidirectional_traversal_tag>
-              , std::bidirectional_iterator_tag
-              , std::forward_iterator_tag
-            >
-        >
-      , typename mpl::eval_if<
-            mpl::and_<
-                is_convertible<Traversal, single_pass_traversal_tag>
-                
-                // check for readability
-              , is_convertible<Reference, ValueParam>
-            >
-          , mpl::identity<std::input_iterator_tag>
-          , mpl::identity<Traversal>
-        >
-    >
-{
-};
-
-// True iff T is convertible to an old-style iterator category.
-template <class T>
-struct is_iterator_category
-  : mpl::or_<
-        is_convertible<T,std::input_iterator_tag>
-      , is_convertible<T,std::output_iterator_tag>
-    >
-{
-};
-
-template <class T>
-struct is_iterator_traversal
-  : is_convertible<T,incrementable_traversal_tag>
-{};
-
-//
-// A composite iterator_category tag convertible to Category (a pure
-// old-style category) and Traversal (a pure traversal tag).
-// Traversal must be a strict increase of the traversal power given by
-// Category.
-//
-template <class Category, class Traversal>
-struct iterator_category_with_traversal
-  : Category, Traversal
-{
-# if !BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
-    // Make sure this isn't used to build any categories where
-    // convertibility to Traversal is redundant.  Should just use the
-    // Category element in that case.
-    BOOST_MPL_ASSERT_NOT((
-        is_convertible<
-              typename iterator_category_to_traversal<Category>::type
-            , Traversal
-          >));
-
-    BOOST_MPL_ASSERT((is_iterator_category<Category>));
-    BOOST_MPL_ASSERT_NOT((is_iterator_category<Traversal>));
-    BOOST_MPL_ASSERT_NOT((is_iterator_traversal<Category>));
-#  if !BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1310))
-    BOOST_MPL_ASSERT((is_iterator_traversal<Traversal>));
-#  endif 
-# endif 
-};
-
-// Computes an iterator_category tag whose traversal is Traversal and
-// which is appropriate for an iterator
-template <class Traversal, class ValueParam, class Reference>
-struct facade_iterator_category_impl
-{
-# if !BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
-    BOOST_MPL_ASSERT_NOT((is_iterator_category<Traversal>));
-# endif 
-    
-    typedef typename iterator_facade_default_category<
-        Traversal,ValueParam,Reference
-    >::type category;
-    
-    typedef typename mpl::if_<
-        is_same<
-            Traversal
-          , typename iterator_category_to_traversal<category>::type
-        >
-      , category
-      , iterator_category_with_traversal<category,Traversal>
-    >::type type;
-};
-
-//
-// Compute an iterator_category for iterator_facade
-//
-template <class CategoryOrTraversal, class ValueParam, class Reference>
-struct facade_iterator_category
-  : mpl::eval_if<
-        is_iterator_category<CategoryOrTraversal>
-      , mpl::identity<CategoryOrTraversal> // old-style categories are fine as-is
-      , facade_iterator_category_impl<CategoryOrTraversal,ValueParam,Reference>
-    >
-{
-};
-
-}} // namespace boost::detail
-
-# include <boost/iterator/detail/config_undef.hpp>
-
-#endif // FACADE_ITERATOR_CATEGORY_DWA20031118_HPP
diff --git a/boost/iterator/interoperable.hpp b/boost/iterator/interoperable.hpp
deleted file mode 100644
index c13dd9b..0000000
--- a/boost/iterator/interoperable.hpp
+++ /dev/null
@@ -1,50 +0,0 @@
-// (C) Copyright David Abrahams 2002.
-// (C) Copyright Jeremy Siek    2002.
-// (C) Copyright Thomas Witt    2002.
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-#ifndef BOOST_INTEROPERABLE_23022003THW_HPP
-# define BOOST_INTEROPERABLE_23022003THW_HPP
-
-# include <boost/mpl/bool.hpp>
-# include <boost/mpl/or.hpp>
-
-# include <boost/type_traits/is_convertible.hpp>
-
-# include <boost/iterator/detail/config_def.hpp> // must appear last
-
-namespace boost
-{
-
-  //
-  // Meta function that determines whether two
-  // iterator types are considered interoperable.
-  //
-  // Two iterator types A,B are considered interoperable if either
-  // A is convertible to B or vice versa.
-  // This interoperability definition is in sync with the
-  // standards requirements on constant/mutable container
-  // iterators (23.1 [lib.container.requirements]).
-  //
-  // For compilers that don't support is_convertible 
-  // is_interoperable gives false positives. See comments
-  // on operator implementation for consequences.
-  //
-  template <typename A, typename B>
-  struct is_interoperable
-# ifdef BOOST_NO_STRICT_ITERATOR_INTEROPERABILITY
-    : mpl::true_
-# else
-    : mpl::or_<
-          is_convertible< A, B >
-        , is_convertible< B, A > >
-# endif
-  { 
-  };
-
-} // namespace boost
-
-# include <boost/iterator/detail/config_undef.hpp>
-
-#endif // BOOST_INTEROPERABLE_23022003THW_HPP
diff --git a/boost/iterator/iterator_adaptor.hpp b/boost/iterator/iterator_adaptor.hpp
deleted file mode 100644
index 9f2fbb0..0000000
--- a/boost/iterator/iterator_adaptor.hpp
+++ /dev/null
@@ -1,365 +0,0 @@
-// (C) Copyright David Abrahams 2002.
-// (C) Copyright Jeremy Siek    2002.
-// (C) Copyright Thomas Witt    2002.
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-#ifndef BOOST_ITERATOR_ADAPTOR_23022003THW_HPP
-#define BOOST_ITERATOR_ADAPTOR_23022003THW_HPP
-
-#include <boost/static_assert.hpp>
-#include <boost/iterator.hpp>
-#include <boost/detail/iterator.hpp>
-
-#include <boost/iterator/iterator_categories.hpp>
-#include <boost/iterator/iterator_facade.hpp>
-#include <boost/iterator/detail/enable_if.hpp>
-
-#include <boost/mpl/and.hpp>
-#include <boost/mpl/not.hpp>
-#include <boost/mpl/or.hpp>
-
-#include <boost/type_traits/is_same.hpp>
-#include <boost/type_traits/is_convertible.hpp>
-
-#ifdef BOOST_ITERATOR_REF_CONSTNESS_KILLS_WRITABILITY
-# include <boost/type_traits/remove_reference.hpp>
-#endif
-
-#include <boost/type_traits/add_reference.hpp>
-#include <boost/iterator/detail/config_def.hpp>
-
-#include <boost/iterator/iterator_traits.hpp>
-
-namespace boost
-{
-  // Used as a default template argument internally, merely to
-  // indicate "use the default", this can also be passed by users
-  // explicitly in order to specify that the default should be used.
-  struct use_default;
-  
-# ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-  // the incompleteness of use_default causes massive problems for
-  // is_convertible (naturally).  This workaround is fortunately not
-  // needed for vc6/vc7.
-  template<class To>
-  struct is_convertible<use_default,To>
-    : mpl::false_ {};
-# endif 
-  
-  namespace detail
-  {
-
-    // 
-    // Result type used in enable_if_convertible meta function.
-    // This can be an incomplete type, as only pointers to 
-    // enable_if_convertible< ... >::type are used.
-    // We could have used void for this, but conversion to
-    // void* is just to easy.
-    //
-    struct enable_type;
-  }
-
-
-  //
-  // enable_if for use in adapted iterators constructors.
-  //
-  // In order to provide interoperability between adapted constant and
-  // mutable iterators, adapted iterators will usually provide templated
-  // conversion constructors of the following form
-  //
-  // template <class BaseIterator>
-  // class adapted_iterator :
-  //   public iterator_adaptor< adapted_iterator<Iterator>, Iterator >
-  // {
-  // public:
-  //   
-  //   ...
-  //
-  //   template <class OtherIterator>
-  //   adapted_iterator(
-  //       OtherIterator const& it
-  //     , typename enable_if_convertible<OtherIterator, Iterator>::type* = 0);
-  //
-  //   ...
-  // };
-  //
-  // enable_if_convertible is used to remove those overloads from the overload
-  // set that cannot be instantiated. For all practical purposes only overloads
-  // for constant/mutable interaction will remain. This has the advantage that
-  // meta functions like boost::is_convertible do not return false positives,
-  // as they can only look at the signature of the conversion constructor
-  // and not at the actual instantiation.
-  //
-  // enable_if_interoperable can be safely used in user code. It falls back to
-  // always enabled for compilers that don't support enable_if or is_convertible. 
-  // There is no need for compiler specific workarounds in user code. 
-  //
-  // The operators implementation relies on boost::is_convertible not returning
-  // false positives for user/library defined iterator types. See comments
-  // on operator implementation for consequences.
-  //
-#  if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
-  
-  template<typename From, typename To>
-  struct enable_if_convertible
-  {
-     typedef typename mpl::if_<
-         mpl::or_<
-             is_same<From,To>
-           , is_convertible<From, To>
-         >
-      , boost::detail::enable_type
-      , int&
-     >::type type;
-  };
-  
-#  elif defined(BOOST_NO_IS_CONVERTIBLE) || defined(BOOST_NO_SFINAE)
-  
-  template <class From, class To>
-  struct enable_if_convertible
-  {
-      typedef boost::detail::enable_type type;
-  };
-  
-#  elif BOOST_WORKAROUND(_MSC_FULL_VER, BOOST_TESTED_AT(13102292)) && BOOST_MSVC > 1300
-  
-  // For some reason vc7.1 needs us to "cut off" instantiation
-  // of is_convertible in a few cases.
-  template<typename From, typename To>
-  struct enable_if_convertible
-    : iterators::enable_if<
-        mpl::or_<
-            is_same<From,To>
-          , is_convertible<From, To>
-        >
-      , boost::detail::enable_type
-    >
-  {};
-  
-#  else 
-  
-  template<typename From, typename To>
-  struct enable_if_convertible
-    : iterators::enable_if<
-          is_convertible<From, To>
-        , boost::detail::enable_type
-      >
-  {};
-      
-# endif
-  
-  //
-  // Default template argument handling for iterator_adaptor
-  //
-  namespace detail
-  {
-    // If T is use_default, return the result of invoking
-    // DefaultNullaryFn, otherwise return T.
-    template <class T, class DefaultNullaryFn>
-    struct ia_dflt_help
-      : mpl::eval_if<
-            is_same<T, use_default>
-          , DefaultNullaryFn
-          , mpl::identity<T>
-        >
-    {
-    };
-
-    // A metafunction which computes an iterator_adaptor's base class,
-    // a specialization of iterator_facade.
-    template <
-        class Derived
-      , class Base
-      , class Value
-      , class Traversal
-      , class Reference
-      , class Difference
-    >
-    struct iterator_adaptor_base
-    {
-        typedef iterator_facade<
-            Derived
-            
-# ifdef BOOST_ITERATOR_REF_CONSTNESS_KILLS_WRITABILITY
-          , typename boost::detail::ia_dflt_help<
-                Value
-              , mpl::eval_if<
-                    is_same<Reference,use_default>
-                  , iterator_value<Base>
-                  , remove_reference<Reference>
-                >
-            >::type
-# else
-          , typename boost::detail::ia_dflt_help<
-                Value, iterator_value<Base>
-            >::type
-# endif
-            
-          , typename boost::detail::ia_dflt_help<
-                Traversal
-              , iterator_traversal<Base>
-            >::type
-
-          , typename boost::detail::ia_dflt_help<
-                Reference
-              , mpl::eval_if<
-                    is_same<Value,use_default>
-                  , iterator_reference<Base>
-                  , add_reference<Value>
-                >
-            >::type
-
-          , typename boost::detail::ia_dflt_help<
-                Difference, iterator_difference<Base>
-            >::type
-        >
-        type;
-    };
-  
-    // workaround for aC++ CR JAGaf33512
-    template <class Tr1, class Tr2>
-    inline void iterator_adaptor_assert_traversal ()
-    {
-      BOOST_STATIC_ASSERT((is_convertible<Tr1, Tr2>::value));
-    }
-  }
-  
-  //
-  // Iterator Adaptor
-  //
-  // The parameter ordering changed slightly with respect to former
-  // versions of iterator_adaptor The idea is that when the user needs
-  // to fiddle with the reference type it is highly likely that the
-  // iterator category has to be adjusted as well.  Any of the
-  // following four template arguments may be ommitted or explicitly
-  // replaced by use_default.
-  //
-  //   Value - if supplied, the value_type of the resulting iterator, unless
-  //      const. If const, a conforming compiler strips constness for the
-  //      value_type. If not supplied, iterator_traits<Base>::value_type is used
-  //
-  //   Category - the traversal category of the resulting iterator. If not
-  //      supplied, iterator_traversal<Base>::type is used.
-  //
-  //   Reference - the reference type of the resulting iterator, and in
-  //      particular, the result type of operator*(). If not supplied but
-  //      Value is supplied, Value& is used. Otherwise
-  //      iterator_traits<Base>::reference is used.
-  //
-  //   Difference - the difference_type of the resulting iterator. If not
-  //      supplied, iterator_traits<Base>::difference_type is used.
-  //
-  template <
-      class Derived
-    , class Base
-    , class Value        = use_default
-    , class Traversal    = use_default
-    , class Reference    = use_default
-    , class Difference   = use_default
-  >
-  class iterator_adaptor
-    : public boost::detail::iterator_adaptor_base<
-        Derived, Base, Value, Traversal, Reference, Difference
-      >::type
-  {
-      friend class iterator_core_access;
-
-   protected:
-      typedef typename boost::detail::iterator_adaptor_base<
-          Derived, Base, Value, Traversal, Reference, Difference
-      >::type super_t;
-   public:
-      iterator_adaptor() {}
-
-      explicit iterator_adaptor(Base const &iter)
-          : m_iterator(iter)
-      {
-      }
-
-      typedef Base base_type;
-
-      Base const& base() const
-        { return m_iterator; }
-
-   protected:
-      // for convenience in derived classes
-      typedef iterator_adaptor<Derived,Base,Value,Traversal,Reference,Difference> iterator_adaptor_;
-      
-      //
-      // lvalue access to the Base object for Derived
-      //
-      Base const& base_reference() const
-        { return m_iterator; }
-
-      Base& base_reference()
-        { return m_iterator; }
-
-   private:
-      //
-      // Core iterator interface for iterator_facade.  This is private
-      // to prevent temptation for Derived classes to use it, which
-      // will often result in an error.  Derived classes should use
-      // base_reference(), above, to get direct access to m_iterator.
-      // 
-      typename super_t::reference dereference() const
-        { return *m_iterator; }
-
-      template <
-      class OtherDerived, class OtherIterator, class V, class C, class R, class D
-      >   
-      bool equal(iterator_adaptor<OtherDerived, OtherIterator, V, C, R, D> const& x) const
-      {
-        // Maybe readd with same_distance
-        //           BOOST_STATIC_ASSERT(
-        //               (detail::same_category_and_difference<Derived,OtherDerived>::value)
-        //               );
-          return m_iterator == x.base();
-      }
-
-      typedef typename iterator_category_to_traversal<
-          typename super_t::iterator_category
-      >::type my_traversal;
-
-# define BOOST_ITERATOR_ADAPTOR_ASSERT_TRAVERSAL(cat) \
-      boost::detail::iterator_adaptor_assert_traversal<my_traversal, cat>();
-
-      void advance(typename super_t::difference_type n)
-      {
-          BOOST_ITERATOR_ADAPTOR_ASSERT_TRAVERSAL(random_access_traversal_tag)
-          m_iterator += n;
-      }
-  
-      void increment() { ++m_iterator; }
-
-      void decrement() 
-      {
-          BOOST_ITERATOR_ADAPTOR_ASSERT_TRAVERSAL(bidirectional_traversal_tag)
-           --m_iterator;
-      }
-
-      template <
-          class OtherDerived, class OtherIterator, class V, class C, class R, class D
-      >   
-      typename super_t::difference_type distance_to(
-          iterator_adaptor<OtherDerived, OtherIterator, V, C, R, D> const& y) const
-      {
-          BOOST_ITERATOR_ADAPTOR_ASSERT_TRAVERSAL(random_access_traversal_tag)
-          // Maybe readd with same_distance
-          //           BOOST_STATIC_ASSERT(
-          //               (detail::same_category_and_difference<Derived,OtherDerived>::value)
-          //               );
-          return y.base() - m_iterator;
-      }
-
-# undef BOOST_ITERATOR_ADAPTOR_ASSERT_TRAVERSAL
-      
-   private: // data members
-      Base m_iterator;
-  };
-
-} // namespace boost
-
-#include <boost/iterator/detail/config_undef.hpp>
-
-#endif // BOOST_ITERATOR_ADAPTOR_23022003THW_HPP
diff --git a/boost/iterator/iterator_categories.hpp b/boost/iterator/iterator_categories.hpp
deleted file mode 100644
index 1740d98..0000000
--- a/boost/iterator/iterator_categories.hpp
+++ /dev/null
@@ -1,188 +0,0 @@
-// (C) Copyright Jeremy Siek 2002.
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_ITERATOR_CATEGORIES_HPP
-# define BOOST_ITERATOR_CATEGORIES_HPP
-
-# include <boost/config.hpp>
-# include <boost/detail/iterator.hpp>
-# include <boost/iterator/detail/config_def.hpp>
-
-# include <boost/detail/workaround.hpp>
-
-# include <boost/mpl/eval_if.hpp>
-# include <boost/mpl/identity.hpp>
-# include <boost/mpl/placeholders.hpp>
-# include <boost/mpl/aux_/lambda_support.hpp>
-
-# include <boost/type_traits/is_convertible.hpp>
-
-# include <boost/static_assert.hpp>
-
-namespace boost {
-
-//
-// Traversal Categories
-//
-
-struct no_traversal_tag {};
-
-struct incrementable_traversal_tag 
-  : no_traversal_tag
-{
-//     incrementable_traversal_tag() {}
-//     incrementable_traversal_tag(std::output_iterator_tag const&) {};
-};
-  
-struct single_pass_traversal_tag
-  : incrementable_traversal_tag
-{
-//     single_pass_traversal_tag() {}
-//     single_pass_traversal_tag(std::input_iterator_tag const&) {};
-};
-  
-struct forward_traversal_tag
-  : single_pass_traversal_tag
-{
-//     forward_traversal_tag() {}
-//     forward_traversal_tag(std::forward_iterator_tag const&) {};
-};
-  
-struct bidirectional_traversal_tag
-  : forward_traversal_tag
-{
-//     bidirectional_traversal_tag() {};
-//     bidirectional_traversal_tag(std::bidirectional_iterator_tag const&) {};
-};
-  
-struct random_access_traversal_tag
-  : bidirectional_traversal_tag
-{
-//     random_access_traversal_tag() {};
-//     random_access_traversal_tag(std::random_access_iterator_tag const&) {};
-};
-
-namespace detail
-{  
-  //
-  // Convert a "strictly old-style" iterator category to a traversal
-  // tag.  This is broken out into a separate metafunction to reduce
-  // the cost of instantiating iterator_category_to_traversal, below,
-  // for new-style types.
-  //
-  template <class Cat>
-  struct old_category_to_traversal
-    : mpl::eval_if<
-          is_convertible<Cat,std::random_access_iterator_tag>
-        , mpl::identity<random_access_traversal_tag>
-        , mpl::eval_if<
-              is_convertible<Cat,std::bidirectional_iterator_tag>
-            , mpl::identity<bidirectional_traversal_tag>
-            , mpl::eval_if<
-                  is_convertible<Cat,std::forward_iterator_tag>
-                , mpl::identity<forward_traversal_tag>
-                , mpl::eval_if<
-                      is_convertible<Cat,std::input_iterator_tag>
-                    , mpl::identity<single_pass_traversal_tag>
-                    , mpl::eval_if<
-                          is_convertible<Cat,std::output_iterator_tag>
-                        , mpl::identity<incrementable_traversal_tag>
-                        , void
-                      >
-                  >
-              >
-          >
-      >
-  {};
-
-# if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-  template <>
-  struct old_category_to_traversal<int>
-  {
-      typedef int type;
-  };
-# endif
-
-  template <class Traversal>
-  struct pure_traversal_tag
-    : mpl::eval_if<
-          is_convertible<Traversal,random_access_traversal_tag>
-        , mpl::identity<random_access_traversal_tag>
-        , mpl::eval_if<
-              is_convertible<Traversal,bidirectional_traversal_tag>
-            , mpl::identity<bidirectional_traversal_tag>
-            , mpl::eval_if<
-                  is_convertible<Traversal,forward_traversal_tag>
-                , mpl::identity<forward_traversal_tag>
-                , mpl::eval_if<
-                      is_convertible<Traversal,single_pass_traversal_tag>
-                    , mpl::identity<single_pass_traversal_tag>
-                    , mpl::eval_if<
-                          is_convertible<Traversal,incrementable_traversal_tag>
-                        , mpl::identity<incrementable_traversal_tag>
-                        , void
-                      >
-                  >
-              >
-          >
-      >
-  {
-  };
-  
-# if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-  template <>
-  struct pure_traversal_tag<int>
-  {
-      typedef int type;
-  };
-# endif
-
-} // namespace detail
-
-
-//
-// Convert an iterator category into a traversal tag
-//
-template <class Cat>
-struct iterator_category_to_traversal
-  : mpl::eval_if< // if already convertible to a traversal tag, we're done.
-        is_convertible<Cat,incrementable_traversal_tag>
-      , mpl::identity<Cat>
-      , boost::detail::old_category_to_traversal<Cat>
-    >
-{};
-
-// Trait to get an iterator's traversal category
-template <class Iterator = mpl::_1>
-struct iterator_traversal
-  : iterator_category_to_traversal<
-        typename boost::detail::iterator_traits<Iterator>::iterator_category
-    >
-{};
-
-# ifdef BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT
-// Hack because BOOST_MPL_AUX_LAMBDA_SUPPORT doesn't seem to work
-// out well.  Instantiating the nested apply template also
-// requires instantiating iterator_traits on the
-// placeholder. Instead we just specialize it as a metafunction
-// class.
-template <>
-struct iterator_traversal<mpl::_1>
-{
-    template <class T>
-    struct apply : iterator_traversal<T>
-    {};
-};
-template <>
-struct iterator_traversal<mpl::_>
-  : iterator_traversal<mpl::_1>
-{};
-# endif
-
-} // namespace boost
-
-#include <boost/iterator/detail/config_undef.hpp>
-
-#endif // BOOST_ITERATOR_CATEGORIES_HPP
diff --git a/boost/iterator/iterator_concepts.hpp b/boost/iterator/iterator_concepts.hpp
deleted file mode 100644
index ced1112..0000000
--- a/boost/iterator/iterator_concepts.hpp
+++ /dev/null
@@ -1,284 +0,0 @@
-// (C) Copyright Jeremy Siek 2002.
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_ITERATOR_CONCEPTS_HPP
-#define BOOST_ITERATOR_CONCEPTS_HPP
-
-#include <boost/concept_check.hpp>
-#include <boost/iterator/iterator_categories.hpp>
-
-// Use boost::detail::iterator_traits to work around some MSVC/Dinkumware problems.
-#include <boost/detail/iterator.hpp>
-
-#include <boost/type_traits/is_same.hpp>
-#include <boost/type_traits/is_integral.hpp>
-
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/and.hpp>
-#include <boost/mpl/or.hpp>
-
-#include <boost/static_assert.hpp>
-
-// Use boost/limits to work around missing limits headers on some compilers
-#include <boost/limits.hpp>
-#include <boost/config.hpp>
-
-#include <algorithm>
-
-#include <boost/concept/detail/concept_def.hpp>
-
-namespace boost_concepts
-{
-  // Used a different namespace here (instead of "boost") so that the
-  // concept descriptions do not take for granted the names in
-  // namespace boost.
-
-  //===========================================================================
-  // Iterator Access Concepts
-
-  BOOST_concept(ReadableIterator,(Iterator))
-    : boost::Assignable<Iterator>
-    , boost::CopyConstructible<Iterator>
-
-  {
-      typedef BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits<Iterator>::value_type value_type;
-      typedef BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits<Iterator>::reference reference;
-
-      BOOST_CONCEPT_USAGE(ReadableIterator)
-      {
-
-          value_type v = *i;
-          boost::ignore_unused_variable_warning(v);
-      }
-  private:
-      Iterator i;
-  };
-  
-  template <
-      typename Iterator
-    , typename ValueType = BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits<Iterator>::value_type
-  >
-  struct WritableIterator
-    : boost::CopyConstructible<Iterator>
-  {
-      BOOST_CONCEPT_USAGE(WritableIterator)
-      {
-          *i = v;
-      }
-  private:
-      ValueType v;
-      Iterator i;
-  };
-
-  template <
-      typename Iterator
-    , typename ValueType = BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits<Iterator>::value_type
-  >
-  struct WritableIteratorConcept : WritableIterator<Iterator,ValueType> {};
-  
-  BOOST_concept(SwappableIterator,(Iterator))
-  {
-      BOOST_CONCEPT_USAGE(SwappableIterator)
-      {
-          std::iter_swap(i1, i2);
-      }
-  private:
-      Iterator i1;
-      Iterator i2;
-  };
-
-  BOOST_concept(LvalueIterator,(Iterator))
-  {
-      typedef typename boost::detail::iterator_traits<Iterator>::value_type value_type;
-      
-      BOOST_CONCEPT_USAGE(LvalueIterator)
-      {
-        value_type& r = const_cast<value_type&>(*i);
-        boost::ignore_unused_variable_warning(r);
-      }
-  private:
-      Iterator i;
-  };
-
-  
-  //===========================================================================
-  // Iterator Traversal Concepts
-
-  BOOST_concept(IncrementableIterator,(Iterator))
-    : boost::Assignable<Iterator>
-    , boost::CopyConstructible<Iterator>
-  {
-      typedef typename boost::iterator_traversal<Iterator>::type traversal_category;
-
-      BOOST_CONCEPT_ASSERT((
-        boost::Convertible<
-            traversal_category
-          , boost::incrementable_traversal_tag
-        >));
-
-      BOOST_CONCEPT_USAGE(IncrementableIterator)
-      {
-          ++i;
-          (void)i++;
-      }
-  private:
-      Iterator i;
-  };
-
-  BOOST_concept(SinglePassIterator,(Iterator))
-    : IncrementableIterator<Iterator>
-    , boost::EqualityComparable<Iterator>
-
-  {
-      BOOST_CONCEPT_ASSERT((
-          boost::Convertible<
-             BOOST_DEDUCED_TYPENAME SinglePassIterator::traversal_category
-           , boost::single_pass_traversal_tag
-          > ));
-  };
-
-  BOOST_concept(ForwardTraversal,(Iterator))
-    : SinglePassIterator<Iterator>
-    , boost::DefaultConstructible<Iterator>
-  {
-      typedef typename boost::detail::iterator_traits<Iterator>::difference_type difference_type;
-      
-      BOOST_MPL_ASSERT((boost::is_integral<difference_type>));
-      BOOST_MPL_ASSERT_RELATION(std::numeric_limits<difference_type>::is_signed, ==, true);
-
-      BOOST_CONCEPT_ASSERT((
-          boost::Convertible<
-             BOOST_DEDUCED_TYPENAME ForwardTraversal::traversal_category
-           , boost::forward_traversal_tag
-          > ));
-  };
-  
-  BOOST_concept(BidirectionalTraversal,(Iterator))
-    : ForwardTraversal<Iterator>
-  {
-      BOOST_CONCEPT_ASSERT((
-          boost::Convertible<
-             BOOST_DEDUCED_TYPENAME BidirectionalTraversal::traversal_category
-           , boost::bidirectional_traversal_tag
-          > ));
-
-      BOOST_CONCEPT_USAGE(BidirectionalTraversal)
-      {
-          --i;
-          (void)i--;
-      }
-   private:
-      Iterator i;
-  };
-
-  BOOST_concept(RandomAccessTraversal,(Iterator))
-    : BidirectionalTraversal<Iterator>
-  {
-      BOOST_CONCEPT_ASSERT((
-          boost::Convertible<
-             BOOST_DEDUCED_TYPENAME RandomAccessTraversal::traversal_category
-           , boost::random_access_traversal_tag
-          > ));
-
-      BOOST_CONCEPT_USAGE(RandomAccessTraversal)
-      {
-          i += n;
-          i = i + n;
-          i = n + i;
-          i -= n;
-          i = i - n;
-          n = i - j;
-      }
-      
-   private:
-      typename BidirectionalTraversal<Iterator>::difference_type n;
-      Iterator i, j;
-  };
-
-  //===========================================================================
-  // Iterator Interoperability 
-
-  namespace detail
-  {
-    template <typename Iterator1, typename Iterator2>
-    void interop_single_pass_constraints(Iterator1 const& i1, Iterator2 const& i2)
-    {
-        bool b;
-        b = i1 == i2;
-        b = i1 != i2;
-
-        b = i2 == i1;
-        b = i2 != i1;
-        boost::ignore_unused_variable_warning(b);
-    }
-
-    template <typename Iterator1, typename Iterator2>
-    void interop_rand_access_constraints(
-        Iterator1 const& i1, Iterator2 const& i2,
-        boost::random_access_traversal_tag, boost::random_access_traversal_tag)
-    {
-        bool b;
-        typename boost::detail::iterator_traits<Iterator2>::difference_type n;
-        b = i1 <  i2;
-        b = i1 <= i2;
-        b = i1 >  i2;
-        b = i1 >= i2;
-        n = i1 -  i2;
-
-        b = i2 <  i1;
-        b = i2 <= i1;
-        b = i2 >  i1;
-        b = i2 >= i1;
-        n = i2 -  i1;
-        boost::ignore_unused_variable_warning(b);
-        boost::ignore_unused_variable_warning(n);
-    }
-
-    template <typename Iterator1, typename Iterator2>
-    void interop_rand_access_constraints(
-        Iterator1 const&, Iterator2 const&,
-        boost::single_pass_traversal_tag, boost::single_pass_traversal_tag)
-    { }
-
-  } // namespace detail
-
-  BOOST_concept(InteroperableIterator,(Iterator)(ConstIterator))
-  {
-   private:
-      typedef typename boost::detail::pure_traversal_tag<
-          typename boost::iterator_traversal<
-              Iterator
-          >::type
-      >::type traversal_category;
-
-      typedef typename boost::detail::pure_traversal_tag<
-          typename boost::iterator_traversal<
-              ConstIterator
-          >::type
-      >::type const_traversal_category;
-      
-  public:
-      BOOST_CONCEPT_ASSERT((SinglePassIterator<Iterator>));
-      BOOST_CONCEPT_ASSERT((SinglePassIterator<ConstIterator>));
-
-      BOOST_CONCEPT_USAGE(InteroperableIterator)
-      {
-          detail::interop_single_pass_constraints(i, ci);
-          detail::interop_rand_access_constraints(i, ci, traversal_category(), const_traversal_category());
-
-          ci = i;
-      }
-      
-   private:
-      Iterator      i;
-      ConstIterator ci;
-  };
-
-} // namespace boost_concepts
-
-#include <boost/concept/detail/concept_undef.hpp>
-
-#endif // BOOST_ITERATOR_CONCEPTS_HPP
diff --git a/boost/iterator/iterator_facade.hpp b/boost/iterator/iterator_facade.hpp
deleted file mode 100644
index d84b402..0000000
--- a/boost/iterator/iterator_facade.hpp
+++ /dev/null
@@ -1,874 +0,0 @@
-// (C) Copyright David Abrahams 2002.
-// (C) Copyright Jeremy Siek    2002.
-// (C) Copyright Thomas Witt    2002.
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-#ifndef BOOST_ITERATOR_FACADE_23022003THW_HPP
-#define BOOST_ITERATOR_FACADE_23022003THW_HPP
-
-#include <boost/iterator.hpp>
-#include <boost/iterator/interoperable.hpp>
-#include <boost/iterator/iterator_traits.hpp>
-
-#include <boost/iterator/detail/facade_iterator_category.hpp>
-#include <boost/iterator/detail/enable_if.hpp>
-
-#include <boost/static_assert.hpp>
-#include <boost/utility/addressof.hpp>
-
-#include <boost/type_traits/is_same.hpp>
-#include <boost/type_traits/add_const.hpp>
-#include <boost/type_traits/add_pointer.hpp>
-#include <boost/type_traits/remove_const.hpp>
-#include <boost/type_traits/remove_reference.hpp>
-#include <boost/type_traits/is_convertible.hpp>
-#include <boost/type_traits/is_pod.hpp>
-
-#include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/or.hpp>
-#include <boost/mpl/and.hpp>
-#include <boost/mpl/not.hpp>
-#include <boost/mpl/always.hpp>
-#include <boost/mpl/apply.hpp>
-#include <boost/mpl/identity.hpp>
-
-#include <boost/iterator/detail/config_def.hpp> // this goes last
-
-namespace boost
-{
-  // This forward declaration is required for the friend declaration
-  // in iterator_core_access
-  template <class I, class V, class TC, class R, class D> class iterator_facade;
-
-  namespace detail
-  {
-    // A binary metafunction class that always returns bool.  VC6
-    // ICEs on mpl::always<bool>, probably because of the default
-    // parameters.
-    struct always_bool2
-    {
-        template <class T, class U>
-        struct apply
-        {
-            typedef bool type;
-        };
-    };
-
-    //
-    // enable if for use in operator implementation.
-    //
-    template <
-        class Facade1
-      , class Facade2
-      , class Return
-    >
-    struct enable_if_interoperable
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
-    {
-        typedef typename mpl::if_<
-            mpl::or_<
-                is_convertible<Facade1, Facade2>
-              , is_convertible<Facade2, Facade1>
-            >
-          , Return
-          , int[3]
-        >::type type;
-    };        
-#else
-      : ::boost::iterators::enable_if<
-           mpl::or_<
-               is_convertible<Facade1, Facade2>
-             , is_convertible<Facade2, Facade1>
-           >
-         , Return
-        >
-    {};
-#endif 
-
-    //
-    // Generates associated types for an iterator_facade with the
-    // given parameters.
-    //
-    template <
-        class ValueParam
-      , class CategoryOrTraversal
-      , class Reference 
-      , class Difference
-    >
-    struct iterator_facade_types
-    {
-        typedef typename facade_iterator_category<
-            CategoryOrTraversal, ValueParam, Reference
-        >::type iterator_category;
-        
-        typedef typename remove_const<ValueParam>::type value_type;
-        
-        // Not the real associated pointer type
-        typedef typename mpl::eval_if<
-            boost::detail::iterator_writability_disabled<ValueParam,Reference>
-          , add_pointer<const value_type>
-          , add_pointer<value_type>
-        >::type pointer;
-      
-# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)                          \
-    && (BOOST_WORKAROUND(_STLPORT_VERSION, BOOST_TESTED_AT(0x452))              \
-        || BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, BOOST_TESTED_AT(310)))     \
-    || BOOST_WORKAROUND(BOOST_RWSTD_VER, BOOST_TESTED_AT(0x20101))              \
-    || BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, <= 310)
-
-        // To interoperate with some broken library/compiler
-        // combinations, user-defined iterators must be derived from
-        // std::iterator.  It is possible to implement a standard
-        // library for broken compilers without this limitation.
-#  define BOOST_ITERATOR_FACADE_NEEDS_ITERATOR_BASE 1
-
-        typedef
-           iterator<iterator_category, value_type, Difference, pointer, Reference>
-        base;
-# endif
-    };
-
-    // iterators whose dereference operators reference the same value
-    // for all iterators into the same sequence (like many input
-    // iterators) need help with their postfix ++: the referenced
-    // value must be read and stored away before the increment occurs
-    // so that *a++ yields the originally referenced element and not
-    // the next one.
-    template <class Iterator>
-    class postfix_increment_proxy
-    {
-        typedef typename iterator_value<Iterator>::type value_type;
-     public:
-        explicit postfix_increment_proxy(Iterator const& x)
-          : stored_value(*x)
-        {}
-
-        // Returning a mutable reference allows nonsense like
-        // (*r++).mutate(), but it imposes fewer assumptions about the
-        // behavior of the value_type.  In particular, recall that
-        // (*r).mutate() is legal if operator* returns by value.
-        value_type&
-        operator*() const
-        {
-            return this->stored_value;
-        }
-     private:
-        mutable value_type stored_value;
-    };
-    
-    //
-    // In general, we can't determine that such an iterator isn't
-    // writable -- we also need to store a copy of the old iterator so
-    // that it can be written into.
-    template <class Iterator>
-    class writable_postfix_increment_proxy
-    {
-        typedef typename iterator_value<Iterator>::type value_type;
-     public:
-        explicit writable_postfix_increment_proxy(Iterator const& x)
-          : stored_value(*x)
-          , stored_iterator(x)
-        {}
-
-        // Dereferencing must return a proxy so that both *r++ = o and
-        // value_type(*r++) can work.  In this case, *r is the same as
-        // *r++, and the conversion operator below is used to ensure
-        // readability.
-        writable_postfix_increment_proxy const&
-        operator*() const
-        {
-            return *this;
-        }
-
-        // Provides readability of *r++
-        operator value_type&() const
-        {
-            return stored_value;
-        }
-
-        // Provides writability of *r++
-        template <class T>
-        T const& operator=(T const& x) const
-        {
-            *this->stored_iterator = x;
-            return x;
-        }
-
-        // This overload just in case only non-const objects are writable
-        template <class T>
-        T& operator=(T& x) const
-        {
-            *this->stored_iterator = x;
-            return x;
-        }
-
-        // Provides X(r++)
-        operator Iterator const&() const
-        {
-            return stored_iterator;
-        }
-        
-     private:
-        mutable value_type stored_value;
-        Iterator stored_iterator;
-    };
-
-# ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-    template <class Reference, class Value>
-    struct is_non_proxy_reference_impl
-    {
-        static Reference r;
-        
-        template <class R>
-        static typename mpl::if_<
-            is_convertible<
-                R const volatile*
-              , Value const volatile*
-            >
-          , char[1]
-          , char[2]
-        >::type& helper(R const&);
-        
-        BOOST_STATIC_CONSTANT(bool, value = sizeof(helper(r)) == 1);
-    };
-        
-    template <class Reference, class Value>
-    struct is_non_proxy_reference
-      : mpl::bool_<
-            is_non_proxy_reference_impl<Reference, Value>::value
-        >
-    {};
-# else 
-    template <class Reference, class Value>
-    struct is_non_proxy_reference
-      : is_convertible<
-            typename remove_reference<Reference>::type
-            const volatile*
-          , Value const volatile*
-        >
-    {};
-# endif 
-        
-    // A metafunction to choose the result type of postfix ++
-    //
-    // Because the C++98 input iterator requirements say that *r++ has
-    // type T (value_type), implementations of some standard
-    // algorithms like lexicographical_compare may use constructions
-    // like:
-    //
-    //          *r++ < *s++
-    //
-    // If *r++ returns a proxy (as required if r is writable but not
-    // multipass), this sort of expression will fail unless the proxy
-    // supports the operator<.  Since there are any number of such
-    // operations, we're not going to try to support them.  Therefore,
-    // even if r++ returns a proxy, *r++ will only return a proxy if
-    // *r also returns a proxy.
-    template <class Iterator, class Value, class Reference, class CategoryOrTraversal>
-    struct postfix_increment_result
-      : mpl::eval_if<
-            mpl::and_<
-                // A proxy is only needed for readable iterators
-                is_convertible<Reference,Value const&>
-                
-                // No multipass iterator can have values that disappear
-                // before positions can be re-visited
-              , mpl::not_<
-                    is_convertible<
-                        typename iterator_category_to_traversal<CategoryOrTraversal>::type
-                      , forward_traversal_tag
-                    >
-                >
-            >
-          , mpl::if_<
-                is_non_proxy_reference<Reference,Value>
-              , postfix_increment_proxy<Iterator>
-              , writable_postfix_increment_proxy<Iterator>
-            >
-          , mpl::identity<Iterator>
-        >
-    {};
-
-    // operator->() needs special support for input iterators to strictly meet the
-    // standard's requirements. If *i is not a reference type, we must still
-    // produce an lvalue to which a pointer can be formed.  We do that by
-    // returning a proxy object containing an instance of the reference object.
-    template <class Reference, class Pointer>
-    struct operator_arrow_dispatch // proxy references
-    {
-        struct proxy
-        {
-            explicit proxy(Reference const & x) : m_ref(x) {}
-            Reference* operator->() { return boost::addressof(m_ref); }
-            // This function is needed for MWCW and BCC, which won't call
-            // operator-> again automatically per 13.3.1.2 para 8
-            operator Reference*() { return boost::addressof(m_ref); }
-            Reference m_ref;
-        };
-        typedef proxy result_type;
-        static result_type apply(Reference const & x)
-        {
-            return result_type(x);
-        }
-    };
-
-    template <class T, class Pointer>
-    struct operator_arrow_dispatch<T&, Pointer> // "real" references
-    {
-        typedef Pointer result_type;
-        static result_type apply(T& x)
-        {
-            return boost::addressof(x);
-        }
-    };
-
-# if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-    // Deal with ETI
-    template<>
-    struct operator_arrow_dispatch<int, int>
-    {
-        typedef int result_type;
-    };
-# endif
-
-    // A proxy return type for operator[], needed to deal with
-    // iterators that may invalidate referents upon destruction.
-    // Consider the temporary iterator in *(a + n)
-    template <class Iterator>
-    class operator_brackets_proxy
-    {
-        // Iterator is actually an iterator_facade, so we do not have to
-        // go through iterator_traits to access the traits.
-        typedef typename Iterator::reference  reference;
-        typedef typename Iterator::value_type value_type;
-
-     public:
-        operator_brackets_proxy(Iterator const& iter)
-          : m_iter(iter)
-        {}
-
-        operator reference() const
-        {
-            return *m_iter;
-        }
-
-        operator_brackets_proxy& operator=(value_type const& val)
-        {
-            *m_iter = val;
-            return *this;
-        }
-
-     private:
-        Iterator m_iter;
-    };
-
-    // A metafunction that determines whether operator[] must return a
-    // proxy, or whether it can simply return a copy of the value_type.
-    template <class ValueType, class Reference>
-    struct use_operator_brackets_proxy
-      : mpl::not_<
-            mpl::and_<
-                // Really we want an is_copy_constructible trait here,
-                // but is_POD will have to suffice in the meantime.
-                boost::is_POD<ValueType>
-              , iterator_writability_disabled<ValueType,Reference>
-            >
-        >
-    {};
-        
-    template <class Iterator, class Value, class Reference>
-    struct operator_brackets_result
-    {
-        typedef typename mpl::if_<
-            use_operator_brackets_proxy<Value,Reference>
-          , operator_brackets_proxy<Iterator>
-          , Value
-        >::type type;
-    };
-
-    template <class Iterator>
-    operator_brackets_proxy<Iterator> make_operator_brackets_result(Iterator const& iter, mpl::true_)
-    {
-        return operator_brackets_proxy<Iterator>(iter);
-    }
-
-    template <class Iterator>
-    typename Iterator::value_type make_operator_brackets_result(Iterator const& iter, mpl::false_)
-    {
-      return *iter;
-    }
-
-    struct choose_difference_type
-    {
-        template <class I1, class I2>
-        struct apply
-          :
-# ifdef BOOST_NO_ONE_WAY_ITERATOR_INTEROP
-          iterator_difference<I1>
-# elif BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-          mpl::if_<
-              is_convertible<I2,I1>
-            , typename I1::difference_type
-            , typename I2::difference_type
-          >
-# else 
-          mpl::eval_if<
-              is_convertible<I2,I1>
-            , iterator_difference<I1>
-            , iterator_difference<I2>
-          >
-# endif 
-        {};
-
-    };
-  } // namespace detail
-
-
-  // Macros which describe the declarations of binary operators
-# ifdef BOOST_NO_STRICT_ITERATOR_INTEROPERABILITY
-#  define BOOST_ITERATOR_FACADE_INTEROP_HEAD(prefix, op, result_type)       \
-    template <                                                              \
-        class Derived1, class V1, class TC1, class Reference1, class Difference1 \
-      , class Derived2, class V2, class TC2, class Reference2, class Difference2 \
-    >                                                                       \
-    prefix typename mpl::apply2<result_type,Derived1,Derived2>::type \
-    operator op(                                                            \
-        iterator_facade<Derived1, V1, TC1, Reference1, Difference1> const& lhs   \
-      , iterator_facade<Derived2, V2, TC2, Reference2, Difference2> const& rhs)
-# else 
-#  define BOOST_ITERATOR_FACADE_INTEROP_HEAD(prefix, op, result_type)   \
-    template <                                                          \
-        class Derived1, class V1, class TC1, class Reference1, class Difference1 \
-      , class Derived2, class V2, class TC2, class Reference2, class Difference2 \
-    >                                                                   \
-    prefix typename boost::detail::enable_if_interoperable<             \
-        Derived1, Derived2                                              \
-      , typename mpl::apply2<result_type,Derived1,Derived2>::type       \
-    >::type                                                             \
-    operator op(                                                        \
-        iterator_facade<Derived1, V1, TC1, Reference1, Difference1> const& lhs   \
-      , iterator_facade<Derived2, V2, TC2, Reference2, Difference2> const& rhs)
-# endif 
-
-#  define BOOST_ITERATOR_FACADE_PLUS_HEAD(prefix,args)              \
-    template <class Derived, class V, class TC, class R, class D>   \
-    prefix Derived operator+ args
-
-  //
-  // Helper class for granting access to the iterator core interface.
-  //
-  // The simple core interface is used by iterator_facade. The core
-  // interface of a user/library defined iterator type should not be made public
-  // so that it does not clutter the public interface. Instead iterator_core_access
-  // should be made friend so that iterator_facade can access the core
-  // interface through iterator_core_access.
-  //
-  class iterator_core_access
-  {
-# if defined(BOOST_NO_MEMBER_TEMPLATE_FRIENDS)                  
-      // Tasteless as this may seem, making all members public allows member templates
-      // to work in the absence of member template friends.
-   public:
-# else
-      
-      template <class I, class V, class TC, class R, class D> friend class iterator_facade;
-
-#  define BOOST_ITERATOR_FACADE_RELATION(op)                                \
-      BOOST_ITERATOR_FACADE_INTEROP_HEAD(friend,op, boost::detail::always_bool2);
-
-      BOOST_ITERATOR_FACADE_RELATION(==)
-      BOOST_ITERATOR_FACADE_RELATION(!=)
-
-      BOOST_ITERATOR_FACADE_RELATION(<)
-      BOOST_ITERATOR_FACADE_RELATION(>)
-      BOOST_ITERATOR_FACADE_RELATION(<=)
-      BOOST_ITERATOR_FACADE_RELATION(>=)
-#  undef BOOST_ITERATOR_FACADE_RELATION
-
-      BOOST_ITERATOR_FACADE_INTEROP_HEAD(
-          friend, -, boost::detail::choose_difference_type)
-      ;
-
-      BOOST_ITERATOR_FACADE_PLUS_HEAD(
-          friend inline
-          , (iterator_facade<Derived, V, TC, R, D> const&
-           , typename Derived::difference_type)
-      )
-      ;
-
-      BOOST_ITERATOR_FACADE_PLUS_HEAD(
-          friend inline
-        , (typename Derived::difference_type
-           , iterator_facade<Derived, V, TC, R, D> const&)
-      )
-      ;
-
-# endif
-
-      template <class Facade>
-      static typename Facade::reference dereference(Facade const& f)
-      {
-          return f.dereference();
-      }
-
-      template <class Facade>
-      static void increment(Facade& f)
-      {
-          f.increment();
-      }
-
-      template <class Facade>
-      static void decrement(Facade& f)
-      {
-          f.decrement();
-      }
-
-      template <class Facade1, class Facade2>
-      static bool equal(Facade1 const& f1, Facade2 const& f2, mpl::true_)
-      {
-          return f1.equal(f2);
-      }
-
-      template <class Facade1, class Facade2>
-      static bool equal(Facade1 const& f1, Facade2 const& f2, mpl::false_)
-      {
-          return f2.equal(f1);
-      }
-
-      template <class Facade>
-      static void advance(Facade& f, typename Facade::difference_type n)
-      {
-          f.advance(n);
-      }
-
-      template <class Facade1, class Facade2>
-      static typename Facade1::difference_type distance_from(
-          Facade1 const& f1, Facade2 const& f2, mpl::true_)
-      {
-          return -f1.distance_to(f2);
-      }
-
-      template <class Facade1, class Facade2>
-      static typename Facade2::difference_type distance_from(
-          Facade1 const& f1, Facade2 const& f2, mpl::false_)
-      {
-          return f2.distance_to(f1);
-      }
-
-      //
-      // Curiously Recurring Template interface.
-      //
-      template <class I, class V, class TC, class R, class D>
-      static I& derived(iterator_facade<I,V,TC,R,D>& facade)
-      {
-          return *static_cast<I*>(&facade);
-      }
-
-      template <class I, class V, class TC, class R, class D>
-      static I const& derived(iterator_facade<I,V,TC,R,D> const& facade)
-      {
-          return *static_cast<I const*>(&facade);
-      }
-
-   private:
-      // objects of this class are useless
-      iterator_core_access(); //undefined
-  };
-
-  //
-  // iterator_facade - use as a public base class for defining new
-  // standard-conforming iterators.
-  //
-  template <
-      class Derived             // The derived iterator type being constructed
-    , class Value
-    , class CategoryOrTraversal
-    , class Reference   = Value&
-    , class Difference  = std::ptrdiff_t
-  >
-  class iterator_facade
-# ifdef BOOST_ITERATOR_FACADE_NEEDS_ITERATOR_BASE
-    : public boost::detail::iterator_facade_types<
-         Value, CategoryOrTraversal, Reference, Difference
-      >::base
-#  undef BOOST_ITERATOR_FACADE_NEEDS_ITERATOR_BASE
-# endif
-  {
-   private:
-      //
-      // Curiously Recurring Template interface.
-      //
-      Derived& derived()
-      {
-          return *static_cast<Derived*>(this);
-      }
-
-      Derived const& derived() const
-      {
-          return *static_cast<Derived const*>(this);
-      }
-
-      typedef boost::detail::iterator_facade_types<
-         Value, CategoryOrTraversal, Reference, Difference
-      > associated_types;
-
-      typedef boost::detail::operator_arrow_dispatch<
-          Reference
-        , typename associated_types::pointer
-      > operator_arrow_dispatch_;
-
-   protected:
-      // For use by derived classes
-      typedef iterator_facade<Derived,Value,CategoryOrTraversal,Reference,Difference> iterator_facade_;
-      
-   public:
-
-      typedef typename associated_types::value_type value_type;
-      typedef Reference reference;
-      typedef Difference difference_type;
-
-      typedef typename operator_arrow_dispatch_::result_type pointer;
-
-      typedef typename associated_types::iterator_category iterator_category;
-
-      reference operator*() const
-      {
-          return iterator_core_access::dereference(this->derived());
-      }
-
-      pointer operator->() const
-      {
-          return operator_arrow_dispatch_::apply(*this->derived());
-      }
-        
-      typename boost::detail::operator_brackets_result<Derived,Value,reference>::type
-      operator[](difference_type n) const
-      {
-          typedef boost::detail::use_operator_brackets_proxy<Value,Reference> use_proxy;
-          
-          return boost::detail::make_operator_brackets_result<Derived>(
-              this->derived() + n
-            , use_proxy()
-          );
-      }
-
-      Derived& operator++()
-      {
-          iterator_core_access::increment(this->derived());
-          return this->derived();
-      }
-
-# if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-      typename boost::detail::postfix_increment_result<Derived,Value,Reference,CategoryOrTraversal>::type
-      operator++(int)
-      {
-          typename boost::detail::postfix_increment_result<Derived,Value,Reference,CategoryOrTraversal>::type
-          tmp(this->derived());
-          ++*this;
-          return tmp;
-      }
-# endif
-      
-      Derived& operator--()
-      {
-          iterator_core_access::decrement(this->derived());
-          return this->derived();
-      }
-
-      Derived operator--(int)
-      {
-          Derived tmp(this->derived());
-          --*this;
-          return tmp;
-      }
-
-      Derived& operator+=(difference_type n)
-      {
-          iterator_core_access::advance(this->derived(), n);
-          return this->derived();
-      }
-
-      Derived& operator-=(difference_type n)
-      {
-          iterator_core_access::advance(this->derived(), -n);
-          return this->derived();
-      }
-
-      Derived operator-(difference_type x) const
-      {
-          Derived result(this->derived());
-          return result -= x;
-      }
-
-# if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-      // There appears to be a bug which trashes the data of classes
-      // derived from iterator_facade when they are assigned unless we
-      // define this assignment operator.  This bug is only revealed
-      // (so far) in STLPort debug mode, but it's clearly a codegen
-      // problem so we apply the workaround for all MSVC6.
-      iterator_facade& operator=(iterator_facade const&)
-      {
-          return *this;
-      }
-# endif
-  };
-
-# if !BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-  template <class I, class V, class TC, class R, class D>
-  inline typename boost::detail::postfix_increment_result<I,V,R,TC>::type
-  operator++(
-      iterator_facade<I,V,TC,R,D>& i
-    , int
-  )
-  {
-      typename boost::detail::postfix_increment_result<I,V,R,TC>::type
-          tmp(*static_cast<I*>(&i));
-      
-      ++i;
-      
-      return tmp;
-  }
-# endif 
-
-  
-  //
-  // Comparison operator implementation. The library supplied operators
-  // enables the user to provide fully interoperable constant/mutable
-  // iterator types. I.e. the library provides all operators
-  // for all mutable/constant iterator combinations.
-  //
-  // Note though that this kind of interoperability for constant/mutable
-  // iterators is not required by the standard for container iterators.
-  // All the standard asks for is a conversion mutable -> constant.
-  // Most standard library implementations nowadays provide fully interoperable
-  // iterator implementations, but there are still heavily used implementations
-  // that do not provide them. (Actually it's even worse, they do not provide
-  // them for only a few iterators.)
-  //
-  // ?? Maybe a BOOST_ITERATOR_NO_FULL_INTEROPERABILITY macro should
-  //    enable the user to turn off mixed type operators
-  //
-  // The library takes care to provide only the right operator overloads.
-  // I.e.
-  //
-  // bool operator==(Iterator,      Iterator);
-  // bool operator==(ConstIterator, Iterator);
-  // bool operator==(Iterator,      ConstIterator);
-  // bool operator==(ConstIterator, ConstIterator);
-  //
-  //   ...
-  //
-  // In order to do so it uses c++ idioms that are not yet widely supported
-  // by current compiler releases. The library is designed to degrade gracefully
-  // in the face of compiler deficiencies. In general compiler
-  // deficiencies result in less strict error checking and more obscure
-  // error messages, functionality is not affected.
-  //
-  // For full operation compiler support for "Substitution Failure Is Not An Error"
-  // (aka. enable_if) and boost::is_convertible is required.
-  //
-  // The following problems occur if support is lacking.
-  //
-  // Pseudo code
-  //
-  // ---------------
-  // AdaptorA<Iterator1> a1;
-  // AdaptorA<Iterator2> a2;
-  //
-  // // This will result in a no such overload error in full operation
-  // // If enable_if or is_convertible is not supported
-  // // The instantiation will fail with an error hopefully indicating that
-  // // there is no operator== for Iterator1, Iterator2
-  // // The same will happen if no enable_if is used to remove
-  // // false overloads from the templated conversion constructor
-  // // of AdaptorA.
-  //
-  // a1 == a2;
-  // ----------------
-  //
-  // AdaptorA<Iterator> a;
-  // AdaptorB<Iterator> b;
-  //
-  // // This will result in a no such overload error in full operation
-  // // If enable_if is not supported the static assert used
-  // // in the operator implementation will fail.
-  // // This will accidently work if is_convertible is not supported.
-  //
-  // a == b;
-  // ----------------
-  //
-
-# ifdef BOOST_NO_ONE_WAY_ITERATOR_INTEROP
-#  define BOOST_ITERATOR_CONVERTIBLE(a,b) mpl::true_()
-# else
-#  define BOOST_ITERATOR_CONVERTIBLE(a,b) is_convertible<a,b>()
-# endif
-
-# define BOOST_ITERATOR_FACADE_INTEROP(op, result_type, return_prefix, base_op) \
-  BOOST_ITERATOR_FACADE_INTEROP_HEAD(inline, op, result_type)                   \
-  {                                                                             \
-      /* For those compilers that do not support enable_if */                   \
-      BOOST_STATIC_ASSERT((                                                     \
-          is_interoperable< Derived1, Derived2 >::value                         \
-      ));                                                                       \
-      return_prefix iterator_core_access::base_op(                              \
-          *static_cast<Derived1 const*>(&lhs)                                   \
-        , *static_cast<Derived2 const*>(&rhs)                                   \
-        , BOOST_ITERATOR_CONVERTIBLE(Derived2,Derived1)                         \
-      );                                                                        \
-  }
-
-# define BOOST_ITERATOR_FACADE_RELATION(op, return_prefix, base_op) \
-  BOOST_ITERATOR_FACADE_INTEROP(                                    \
-      op                                                            \
-    , boost::detail::always_bool2                                   \
-    , return_prefix                                                 \
-    , base_op                                                       \
-  )
-
-  BOOST_ITERATOR_FACADE_RELATION(==, return, equal)
-  BOOST_ITERATOR_FACADE_RELATION(!=, return !, equal)
-
-  BOOST_ITERATOR_FACADE_RELATION(<, return 0 >, distance_from)
-  BOOST_ITERATOR_FACADE_RELATION(>, return 0 <, distance_from)
-  BOOST_ITERATOR_FACADE_RELATION(<=, return 0 >=, distance_from)
-  BOOST_ITERATOR_FACADE_RELATION(>=, return 0 <=, distance_from)
-# undef BOOST_ITERATOR_FACADE_RELATION
-
-  // operator- requires an additional part in the static assertion
-  BOOST_ITERATOR_FACADE_INTEROP(
-      -
-    , boost::detail::choose_difference_type
-    , return
-    , distance_from
-  )
-# undef BOOST_ITERATOR_FACADE_INTEROP
-# undef BOOST_ITERATOR_FACADE_INTEROP_HEAD
-
-# define BOOST_ITERATOR_FACADE_PLUS(args)           \
-  BOOST_ITERATOR_FACADE_PLUS_HEAD(inline, args)     \
-  {                                                 \
-      Derived tmp(static_cast<Derived const&>(i));  \
-      return tmp += n;                              \
-  }
-
-BOOST_ITERATOR_FACADE_PLUS((
-  iterator_facade<Derived, V, TC, R, D> const& i
-  , typename Derived::difference_type n
-))
-
-BOOST_ITERATOR_FACADE_PLUS((
-    typename Derived::difference_type n
-    , iterator_facade<Derived, V, TC, R, D> const& i
-))
-# undef BOOST_ITERATOR_FACADE_PLUS
-# undef BOOST_ITERATOR_FACADE_PLUS_HEAD
-
-} // namespace boost
-
-#include <boost/iterator/detail/config_undef.hpp>
-
-#endif // BOOST_ITERATOR_FACADE_23022003THW_HPP
diff --git a/boost/iterator/iterator_traits.hpp b/boost/iterator/iterator_traits.hpp
deleted file mode 100644
index 960970e..0000000
--- a/boost/iterator/iterator_traits.hpp
+++ /dev/null
@@ -1,92 +0,0 @@
-// Copyright David Abrahams 2003.
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-#ifndef ITERATOR_TRAITS_DWA200347_HPP
-# define ITERATOR_TRAITS_DWA200347_HPP
-
-# include <boost/detail/iterator.hpp>
-# include <boost/detail/workaround.hpp>
-
-namespace boost { 
-
-// Unfortunately, g++ 2.95.x chokes when we define a class template
-// iterator_category which has the same name as its
-// std::iterator_category() function, probably due in part to the
-// "std:: is visible globally" hack it uses.  Use
-// BOOST_ITERATOR_CATEGORY to write code that's portable to older
-// GCCs.
-
-# if BOOST_WORKAROUND(__GNUC__, <= 2)
-#  define BOOST_ITERATOR_CATEGORY iterator_category_
-# else
-#  define BOOST_ITERATOR_CATEGORY iterator_category
-# endif
-
-
-template <class Iterator>
-struct iterator_value
-{
-    typedef typename boost::detail::iterator_traits<Iterator>::value_type type;
-};
-  
-template <class Iterator>
-struct iterator_reference
-{
-    typedef typename boost::detail::iterator_traits<Iterator>::reference type;
-};
-  
-  
-template <class Iterator>
-struct iterator_pointer
-{
-    typedef typename boost::detail::iterator_traits<Iterator>::pointer type;
-};
-  
-template <class Iterator>
-struct iterator_difference
-{
-    typedef typename boost::detail::iterator_traits<Iterator>::difference_type type;
-};
-
-template <class Iterator>
-struct BOOST_ITERATOR_CATEGORY
-{
-    typedef typename boost::detail::iterator_traits<Iterator>::iterator_category type;
-};
-
-# if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-template <>
-struct iterator_value<int>
-{
-    typedef void type;
-};
-  
-template <>
-struct iterator_reference<int>
-{
-    typedef void type;
-};
-
-template <>
-struct iterator_pointer<int>
-{
-    typedef void type;
-};
-  
-template <>
-struct iterator_difference<int>
-{
-    typedef void type;
-};
-  
-template <>
-struct BOOST_ITERATOR_CATEGORY<int>
-{
-    typedef void type;
-};
-# endif
-
-} // namespace boost::iterator
-
-#endif // ITERATOR_TRAITS_DWA200347_HPP
diff --git a/boost/iterator/reverse_iterator.hpp b/boost/iterator/reverse_iterator.hpp
deleted file mode 100644
index 79cc7f2..0000000
--- a/boost/iterator/reverse_iterator.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-// (C) Copyright David Abrahams 2002.
-// (C) Copyright Jeremy Siek    2002.
-// (C) Copyright Thomas Witt    2002.
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-#ifndef BOOST_REVERSE_ITERATOR_23022003THW_HPP
-#define BOOST_REVERSE_ITERATOR_23022003THW_HPP
-
-#include <boost/next_prior.hpp>
-#include <boost/iterator.hpp>
-#include <boost/iterator/iterator_adaptor.hpp>
-
-namespace boost
-{
-
-  //
-  //
-  //
-  template <class Iterator>
-  class reverse_iterator
-      : public iterator_adaptor< reverse_iterator<Iterator>, Iterator >
-  {
-      typedef iterator_adaptor< reverse_iterator<Iterator>, Iterator > super_t;
-
-      friend class iterator_core_access;
-
-   public:
-      reverse_iterator() {}
-
-      explicit reverse_iterator(Iterator x) 
-          : super_t(x) {}
-
-      template<class OtherIterator>
-      reverse_iterator(
-          reverse_iterator<OtherIterator> const& r
-          , typename enable_if_convertible<OtherIterator, Iterator>::type* = 0
-          )
-          : super_t(r.base())
-      {}
-
-   private:
-      typename super_t::reference dereference() const { return *boost::prior(this->base()); }
-    
-      void increment() { --this->base_reference(); }
-      void decrement() { ++this->base_reference(); }
-
-      void advance(typename super_t::difference_type n)
-      {
-          this->base_reference() += -n;
-      }
-
-      template <class OtherIterator>
-      typename super_t::difference_type
-      distance_to(reverse_iterator<OtherIterator> const& y) const
-      {
-          return this->base_reference() - y.base();
-      }
-  };
-
-  template <class BidirectionalIterator>
-  reverse_iterator<BidirectionalIterator> make_reverse_iterator(BidirectionalIterator x)
-  {
-      return reverse_iterator<BidirectionalIterator>(x);
-  }
-
-} // namespace boost
-
-#endif // BOOST_REVERSE_ITERATOR_23022003THW_HPP
diff --git a/boost/lexical_cast.hpp b/boost/lexical_cast.hpp
deleted file mode 100644
index ed2291d..0000000
--- a/boost/lexical_cast.hpp
+++ /dev/null
@@ -1,2748 +0,0 @@
-#ifndef BOOST_LEXICAL_CAST_INCLUDED
-#define BOOST_LEXICAL_CAST_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-// Boost lexical_cast.hpp header  -------------------------------------------//
-//
-// See http://www.boost.org/libs/conversion for documentation.
-// See end of this header for rights and permissions.
-//
-// what:  lexical_cast custom keyword cast
-// who:   contributed by Kevlin Henney,
-//        enhanced with contributions from Terje Slettebo,
-//        with additional fixes and suggestions from Gennaro Prota,
-//        Beman Dawes, Dave Abrahams, Daryle Walker, Peter Dimov,
-//        Alexander Nasonov, Antony Polukhin, Justin Viiret, Michael Hofmann,
-//        Cheng Yang, Matthew Bradbury, David W. Birdsall, Pavel Korzh and other Boosters
-// when:  November 2000, March 2003, June 2005, June 2006, March 2011 - 2013
-
-#include <boost/config.hpp>
-#if defined(BOOST_NO_STRINGSTREAM) || defined(BOOST_NO_STD_WSTRING)
-#define BOOST_LCAST_NO_WCHAR_T
-#endif
-
-#include <climits>
-#include <cstddef>
-#include <string>
-#include <cstring>
-#include <cstdio>
-#include <typeinfo>
-#include <exception>
-#include <boost/limits.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/throw_exception.hpp>
-#include <boost/type_traits/ice.hpp>
-#include <boost/type_traits/is_pointer.hpp>
-#include <boost/static_assert.hpp>
-#include <boost/detail/lcast_precision.hpp>
-#include <boost/detail/workaround.hpp>
-
-
-#ifndef BOOST_NO_STD_LOCALE
-#   include <locale>
-#else
-#   ifndef BOOST_LEXICAL_CAST_ASSUME_C_LOCALE
-        // Getting error at this point means, that your STL library is old/lame/misconfigured.
-        // If nothing can be done with STL library, define BOOST_LEXICAL_CAST_ASSUME_C_LOCALE,
-        // but beware: lexical_cast will understand only 'C' locale delimeters and thousands
-        // separators.
-#       error "Unable to use <locale> header. Define BOOST_LEXICAL_CAST_ASSUME_C_LOCALE to force "
-#       error "boost::lexical_cast to use only 'C' locale during conversions."
-#   endif
-#endif
-
-#ifdef BOOST_NO_STRINGSTREAM
-#include <strstream>
-#else
-#include <sstream>
-#endif
-
-#ifdef BOOST_NO_TYPEID
-#define BOOST_LCAST_THROW_BAD_CAST(S, T) throw_exception(bad_lexical_cast())
-#else
-#define BOOST_LCAST_THROW_BAD_CAST(Source, Target) \
-    throw_exception(bad_lexical_cast(typeid(Source), typeid(Target)))
-#endif
-
-namespace boost
-{
-    // exception used to indicate runtime lexical_cast failure
-    class BOOST_SYMBOL_VISIBLE bad_lexical_cast :
-    // workaround MSVC bug with std::bad_cast when _HAS_EXCEPTIONS == 0 
-#if defined(BOOST_MSVC) && defined(_HAS_EXCEPTIONS) && !_HAS_EXCEPTIONS 
-        public std::exception 
-#else 
-        public std::bad_cast 
-#endif 
-
-#if defined(__BORLANDC__) && BOOST_WORKAROUND( __BORLANDC__, < 0x560 )
-        // under bcc32 5.5.1 bad_cast doesn't derive from exception
-        , public std::exception
-#endif
-
-    {
-    public:
-        bad_lexical_cast() BOOST_NOEXCEPT :
-#ifndef BOOST_NO_TYPEID
-          source(&typeid(void)), target(&typeid(void))
-#else
-          source(0), target(0) // this breaks getters
-#endif
-        {
-        }
-
-        bad_lexical_cast(
-            const std::type_info &source_type_arg,
-            const std::type_info &target_type_arg) BOOST_NOEXCEPT :
-            source(&source_type_arg), target(&target_type_arg)
-        {
-        }
-
-        const std::type_info &source_type() const
-        {
-            return *source;
-        }
-        const std::type_info &target_type() const
-        {
-            return *target;
-        }
-
-#ifndef BOOST_NO_CXX11_NOEXCEPT
-        virtual const char *what() const noexcept
-#else
-        virtual const char *what() const throw()
-#endif
-        {
-            return "bad lexical cast: "
-                   "source type value could not be interpreted as target";
-        }
-
-#ifndef BOOST_NO_CXX11_NOEXCEPT
-        virtual ~bad_lexical_cast() BOOST_NOEXCEPT
-#else
-        virtual ~bad_lexical_cast() throw()
-#endif
-        {}
-    private:
-        const std::type_info *source;
-        const std::type_info *target;
-    };
-
-    namespace detail // widest_char
-    {
-        template <typename TargetChar, typename SourceChar>
-        struct widest_char
-        {
-            typedef BOOST_DEDUCED_TYPENAME boost::mpl::if_c<
-                (sizeof(TargetChar) > sizeof(SourceChar))
-                , TargetChar
-                , SourceChar >::type type;
-        };
-    }
-} // namespace boost
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(__SUNPRO_CC) && !defined(__PGIC__)
-
-#include <cmath>
-#include <istream>
-
-#ifndef BOOST_NO_CXX11_HDR_ARRAY
-#include <array>
-#endif
-
-#include <boost/array.hpp>
-#include <boost/numeric/conversion/cast.hpp>
-#include <boost/type_traits/make_unsigned.hpp>
-#include <boost/type_traits/is_signed.hpp>
-#include <boost/type_traits/is_integral.hpp>
-#include <boost/type_traits/is_arithmetic.hpp>
-#include <boost/type_traits/remove_pointer.hpp>
-#include <boost/type_traits/has_left_shift.hpp>
-#include <boost/type_traits/has_right_shift.hpp>
-#include <boost/math/special_functions/sign.hpp>
-#include <boost/math/special_functions/fpclassify.hpp>
-#include <boost/range/iterator_range_core.hpp>
-#include <boost/container/container_fwd.hpp>
-#include <boost/integer.hpp>
-#ifndef BOOST_NO_CWCHAR
-#   include <cwchar>
-#endif
-
-namespace boost {
-
-    namespace detail // is_char_or_wchar<...>
-    {
-        // returns true, if T is one of the character types
-        template < typename T >
-        struct is_char_or_wchar
-        {
-            typedef boost::type_traits::ice_or<
-                    boost::is_same< T, char >::value,
-                    #ifndef BOOST_LCAST_NO_WCHAR_T
-                        boost::is_same< T, wchar_t >::value,
-                    #endif
-                    #ifndef BOOST_NO_CXX11_CHAR16_T
-                        boost::is_same< T, char16_t >::value,
-                    #endif
-                    #ifndef BOOST_NO_CXX11_CHAR32_T
-                        boost::is_same< T, char32_t >::value,
-                    #endif
-                    boost::is_same< T, unsigned char >::value,
-                    boost::is_same< T, signed char >::value
-            > result_type;
-
-            BOOST_STATIC_CONSTANT(bool, value = (result_type::value) );
-        };
-    }
-
-    namespace detail // normalize_single_byte_char<Char>
-    {
-        // Converts signed/unsigned char to char
-        template < class Char >
-        struct normalize_single_byte_char 
-        {
-            typedef Char type;
-        };
-
-        template <>
-        struct normalize_single_byte_char< signed char >
-        {
-            typedef char type;
-        };
-
-        template <>
-        struct normalize_single_byte_char< unsigned char >
-        {
-            typedef char type;
-        };
-    }
-
-    namespace detail // deduce_character_type_later<T>
-    {
-        // Helper type, meaning that stram character for T must be deduced 
-        // at Stage 2 (See deduce_source_char<T> and deduce_target_char<T>)
-        template < class T > struct deduce_character_type_later {};
-    }
-
-    namespace detail // stream_char_common<T>
-    {
-        // Selectors to choose stream character type (common for Source and Target)
-        // Returns one of char, wchar_t, char16_t, char32_t or deduce_character_type_later<T> types
-        // Executed on Stage 1 (See deduce_source_char<T> and deduce_target_char<T>)
-        template < typename Type >
-        struct stream_char_common: public boost::mpl::if_c<
-            boost::detail::is_char_or_wchar< Type >::value,
-            Type,
-            boost::detail::deduce_character_type_later< Type >
-        > {};
-
-        template < typename Char >
-        struct stream_char_common< Char* >: public boost::mpl::if_c<
-            boost::detail::is_char_or_wchar< Char >::value,
-            Char,
-            boost::detail::deduce_character_type_later< Char* >
-        > {};
-
-        template < typename Char >
-        struct stream_char_common< const Char* >: public boost::mpl::if_c<
-            boost::detail::is_char_or_wchar< Char >::value,
-            Char,
-            boost::detail::deduce_character_type_later< const Char* >
-        > {};
-
-        template < typename Char >
-        struct stream_char_common< boost::iterator_range< Char* > >: public boost::mpl::if_c<
-            boost::detail::is_char_or_wchar< Char >::value,
-            Char,
-            boost::detail::deduce_character_type_later< boost::iterator_range< Char* > >
-        > {};
-    
-        template < typename Char >
-        struct stream_char_common< boost::iterator_range< const Char* > >: public boost::mpl::if_c<
-            boost::detail::is_char_or_wchar< Char >::value,
-            Char,
-            boost::detail::deduce_character_type_later< boost::iterator_range< const Char* > >
-        > {};
-
-        template < class Char, class Traits, class Alloc >
-        struct stream_char_common< std::basic_string< Char, Traits, Alloc > >
-        {
-            typedef Char type;
-        };
-
-        template < class Char, class Traits, class Alloc >
-        struct stream_char_common< boost::container::basic_string< Char, Traits, Alloc > >
-        {
-            typedef Char type;
-        };
-
-        template < typename Char, std::size_t N >
-        struct stream_char_common< boost::array< Char, N > >: public boost::mpl::if_c<
-            boost::detail::is_char_or_wchar< Char >::value,
-            Char,
-            boost::detail::deduce_character_type_later< boost::array< Char, N > >
-        > {};
-
-        template < typename Char, std::size_t N >
-        struct stream_char_common< boost::array< const Char, N > >: public boost::mpl::if_c<
-            boost::detail::is_char_or_wchar< Char >::value,
-            Char,
-            boost::detail::deduce_character_type_later< boost::array< const Char, N > >
-        > {};
-
-#ifndef BOOST_NO_CXX11_HDR_ARRAY
-        template < typename Char, std::size_t N >
-        struct stream_char_common< std::array<Char, N > >: public boost::mpl::if_c<
-            boost::detail::is_char_or_wchar< Char >::value,
-            Char,
-            boost::detail::deduce_character_type_later< std::array< Char, N > >
-        > {};
-
-        template < typename Char, std::size_t N >
-        struct stream_char_common< std::array< const Char, N > >: public boost::mpl::if_c<
-            boost::detail::is_char_or_wchar< Char >::value,
-            Char,
-            boost::detail::deduce_character_type_later< std::array< const Char, N > >
-        > {};
-#endif
-
-#ifdef BOOST_HAS_INT128
-        template <> struct stream_char_common< boost::int128_type >: public boost::mpl::identity< char > {};
-        template <> struct stream_char_common< boost::uint128_type >: public boost::mpl::identity< char > {};
-#endif
-
-#if !defined(BOOST_LCAST_NO_WCHAR_T) && defined(BOOST_NO_INTRINSIC_WCHAR_T)
-        template <>
-        struct stream_char_common< wchar_t >
-        {
-            typedef char type;
-        };
-#endif
-    }
-
-    namespace detail // deduce_source_char_impl<T>
-    {
-        // If type T is `deduce_character_type_later` type, then tries to deduce
-        // character type using boost::has_left_shift<T> metafunction.
-        // Otherwise supplied type T is a character type, that must be normalized
-        // using normalize_single_byte_char<Char>.
-        // Executed at Stage 2  (See deduce_source_char<T> and deduce_target_char<T>)
-        template < class Char > 
-        struct deduce_source_char_impl
-        { 
-            typedef BOOST_DEDUCED_TYPENAME boost::detail::normalize_single_byte_char< Char >::type type; 
-        };
-        
-        template < class T > 
-        struct deduce_source_char_impl< deduce_character_type_later< T > > 
-        {
-            typedef boost::has_left_shift< std::basic_ostream< char >, T > result_t;
-
-#if defined(BOOST_LCAST_NO_WCHAR_T)
-            BOOST_STATIC_ASSERT_MSG((result_t::value), 
-                "Source type is not std::ostream`able and std::wostream`s are not supported by your STL implementation");
-            typedef char type;
-#else
-            typedef BOOST_DEDUCED_TYPENAME boost::mpl::if_c<
-                result_t::value, char, wchar_t
-            >::type type;
-
-            BOOST_STATIC_ASSERT_MSG((result_t::value || boost::has_left_shift< std::basic_ostream< type >, T >::value), 
-                "Source type is neither std::ostream`able nor std::wostream`able");
-#endif
-        };
-    }
-
-    namespace detail  // deduce_target_char_impl<T>
-    {
-        // If type T is `deduce_character_type_later` type, then tries to deduce
-        // character type using boost::has_right_shift<T> metafunction.
-        // Otherwise supplied type T is a character type, that must be normalized
-        // using normalize_single_byte_char<Char>.
-        // Executed at Stage 2  (See deduce_source_char<T> and deduce_target_char<T>)
-        template < class Char > 
-        struct deduce_target_char_impl 
-        { 
-            typedef BOOST_DEDUCED_TYPENAME normalize_single_byte_char< Char >::type type; 
-        };
-        
-        template < class T > 
-        struct deduce_target_char_impl< deduce_character_type_later<T> > 
-        { 
-            typedef boost::has_right_shift<std::basic_istream<char>, T > result_t;
-
-#if defined(BOOST_LCAST_NO_WCHAR_T)
-            BOOST_STATIC_ASSERT_MSG((result_t::value), 
-                "Target type is not std::istream`able and std::wistream`s are not supported by your STL implementation");
-            typedef char type;
-#else
-            typedef BOOST_DEDUCED_TYPENAME boost::mpl::if_c<
-                result_t::value, char, wchar_t
-            >::type type;
-            
-            BOOST_STATIC_ASSERT_MSG((result_t::value || boost::has_right_shift<std::basic_istream<wchar_t>, T >::value), 
-                "Target type is neither std::istream`able nor std::wistream`able");
-#endif
-        };
-    } 
-
-    namespace detail  // deduce_target_char<T> and deduce_source_char<T>
-    {
-        // We deduce stream character types in two stages.
-        //
-        // Stage 1 is common for Target and Source. At Stage 1 we get 
-        // non normalized character type (may contain unsigned/signed char)
-        // or deduce_character_type_later<T> where T is the original type.
-        // Stage 1 is executed by stream_char_common<T>
-        //
-        // At Stage 2 we normalize character types or try to deduce character 
-        // type using metafunctions. 
-        // Stage 2 is executed by deduce_target_char_impl<T> and 
-        // deduce_source_char_impl<T>
-        //
-        // deduce_target_char<T> and deduce_source_char<T> functions combine 
-        // both stages
-
-        template < class T >
-        struct deduce_target_char
-        {
-            typedef BOOST_DEDUCED_TYPENAME stream_char_common< T >::type stage1_type;
-            typedef BOOST_DEDUCED_TYPENAME deduce_target_char_impl< stage1_type >::type stage2_type;
-
-            typedef stage2_type type;
-        };
-
-        template < class T >
-        struct deduce_source_char
-        {
-            typedef BOOST_DEDUCED_TYPENAME stream_char_common< T >::type stage1_type;
-            typedef BOOST_DEDUCED_TYPENAME deduce_source_char_impl< stage1_type >::type stage2_type;
-
-            typedef stage2_type type;
-        };
-    }
-
-    namespace detail // deduce_char_traits template
-    {
-        // We are attempting to get char_traits<> from Source or Tagret
-        // template parameter. Otherwise we'll be using std::char_traits<Char>
-        template < class Char, class Target, class Source >
-        struct deduce_char_traits
-        {
-            typedef std::char_traits< Char > type;
-        };
-
-        template < class Char, class Traits, class Alloc, class Source >
-        struct deduce_char_traits< Char
-                                 , std::basic_string< Char, Traits, Alloc >
-                                 , Source
-                                 >
-        {
-            typedef Traits type;
-        };
-
-        template < class Char, class Target, class Traits, class Alloc >
-        struct deduce_char_traits< Char
-                                 , Target
-                                 , std::basic_string< Char, Traits, Alloc >
-                                 >
-        {
-            typedef Traits type;
-        };
-
-        template < class Char, class Traits, class Alloc, class Source >
-        struct deduce_char_traits< Char
-                                 , boost::container::basic_string< Char, Traits, Alloc >
-                                 , Source
-                                 >
-        {
-            typedef Traits type;
-        };
-
-        template < class Char, class Target, class Traits, class Alloc >
-        struct deduce_char_traits< Char
-                                 , Target
-                                 , boost::container::basic_string< Char, Traits, Alloc >
-                                 >
-        {
-            typedef Traits type;
-        };
-
-        template < class Char, class Traits, class Alloc1, class Alloc2 >
-        struct deduce_char_traits< Char
-                                 , std::basic_string< Char, Traits, Alloc1 >
-                                 , std::basic_string< Char, Traits, Alloc2 >
-                                 >
-        {
-            typedef Traits type;
-        };
-
-        template<class Char, class Traits, class Alloc1, class Alloc2>
-        struct deduce_char_traits< Char
-                                 , boost::container::basic_string< Char, Traits, Alloc1 >
-                                 , boost::container::basic_string< Char, Traits, Alloc2 >
-                                 >
-        {
-            typedef Traits type;
-        };
-
-        template < class Char, class Traits, class Alloc1, class Alloc2 >
-        struct deduce_char_traits< Char
-                                 , boost::container::basic_string< Char, Traits, Alloc1 >
-                                 , std::basic_string< Char, Traits, Alloc2 >
-                                 >
-        {
-            typedef Traits type;
-        };
-
-        template < class Char, class Traits, class Alloc1, class Alloc2 >
-        struct deduce_char_traits< Char
-                                 , std::basic_string< Char, Traits, Alloc1 >
-                                 , boost::container::basic_string< Char, Traits, Alloc2 >
-                                 >
-        {
-            typedef Traits type;
-        };
-    }
-
-    namespace detail // array_to_pointer_decay<T>
-    {
-        template<class T>
-        struct array_to_pointer_decay
-        {
-            typedef T type;
-        };
-
-        template<class T, std::size_t N>
-        struct array_to_pointer_decay<T[N]>
-        {
-            typedef const T * type;
-        };
-    }
-
-    namespace detail // is_this_float_conversion_optimized<Float, Char>
-    {
-        // this metafunction evaluates to true, if we have optimized comnversion 
-        // from Float type to Char array. 
-        // Must be in sync with lexical_stream_limited_src<Char, ...>::shl_real_type(...)
-        template <typename Float, typename Char>
-        struct is_this_float_conversion_optimized 
-        {
-            typedef boost::type_traits::ice_and<
-                boost::is_float<Float>::value,
-#if !defined(BOOST_LCAST_NO_WCHAR_T) && !defined(BOOST_NO_SWPRINTF) && !defined(__MINGW32__)
-                boost::type_traits::ice_or<
-                    boost::type_traits::ice_eq<sizeof(Char), sizeof(char) >::value,
-                    boost::is_same<Char, wchar_t>::value
-                >::value
-#else
-                boost::type_traits::ice_eq<sizeof(Char), sizeof(char) >::value
-#endif
-            > result_type;
-
-            BOOST_STATIC_CONSTANT(bool, value = (result_type::value) );
-        };
-    }
-    
-    namespace detail // lcast_src_length
-    {
-        // Return max. length of string representation of Source;
-        template< class Source // Source type of lexical_cast.
-                >
-        struct lcast_src_length
-        {
-            BOOST_STATIC_CONSTANT(std::size_t, value = 1);
-            // To check coverage, build the test with
-            // bjam --v2 profile optimization=off
-            static void check_coverage() {}
-        };
-
-        // Helper for integral types.
-        // Notes on length calculation:
-        // Max length for 32bit int with grouping "\1" and thousands_sep ',':
-        // "-2,1,4,7,4,8,3,6,4,7"
-        //  ^                    - is_signed
-        //   ^                   - 1 digit not counted by digits10
-        //    ^^^^^^^^^^^^^^^^^^ - digits10 * 2
-        //
-        // Constant is_specialized is used instead of constant 1
-        // to prevent buffer overflow in a rare case when
-        // <boost/limits.hpp> doesn't add missing specialization for
-        // numeric_limits<T> for some integral type T.
-        // When is_specialized is false, the whole expression is 0.
-        template<class Source>
-        struct lcast_src_length_integral
-        {
-#ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-            BOOST_STATIC_CONSTANT(std::size_t, value =
-                  std::numeric_limits<Source>::is_signed +
-                  std::numeric_limits<Source>::is_specialized + /* == 1 */
-                  std::numeric_limits<Source>::digits10 * 2
-              );
-#else
-            BOOST_STATIC_CONSTANT(std::size_t, value = 156);
-            BOOST_STATIC_ASSERT(sizeof(Source) * CHAR_BIT <= 256);
-#endif
-        };
-
-#define BOOST_LCAST_DEF(T)               \
-    template<> struct lcast_src_length<T> \
-        : lcast_src_length_integral<T>           \
-    { static void check_coverage() {} };
-
-        BOOST_LCAST_DEF(short)
-        BOOST_LCAST_DEF(unsigned short)
-        BOOST_LCAST_DEF(int)
-        BOOST_LCAST_DEF(unsigned int)
-        BOOST_LCAST_DEF(long)
-        BOOST_LCAST_DEF(unsigned long)
-#if defined(BOOST_HAS_LONG_LONG)
-        BOOST_LCAST_DEF(boost::ulong_long_type)
-        BOOST_LCAST_DEF(boost::long_long_type )
-#elif defined(BOOST_HAS_MS_INT64)
-        BOOST_LCAST_DEF(unsigned __int64)
-        BOOST_LCAST_DEF(         __int64)
-#endif
-#ifdef BOOST_HAS_INT128
-        BOOST_LCAST_DEF(boost::int128_type)
-        BOOST_LCAST_DEF(boost::uint128_type)
-#endif
-
-#undef BOOST_LCAST_DEF
-
-#ifndef BOOST_LCAST_NO_COMPILE_TIME_PRECISION
-        // Helper for floating point types.
-        // -1.23456789e-123456
-        // ^                   sign
-        //  ^                  leading digit
-        //   ^                 decimal point 
-        //    ^^^^^^^^         lcast_precision<Source>::value
-        //            ^        "e"
-        //             ^       exponent sign
-        //              ^^^^^^ exponent (assumed 6 or less digits)
-        // sign + leading digit + decimal point + "e" + exponent sign == 5
-        template<class Source>
-        struct lcast_src_length_floating
-        {
-            BOOST_STATIC_ASSERT(
-                    std::numeric_limits<Source>::max_exponent10 <=  999999L &&
-                    std::numeric_limits<Source>::min_exponent10 >= -999999L
-                );
-            BOOST_STATIC_CONSTANT(std::size_t, value =
-                    5 + lcast_precision<Source>::value + 6
-                );
-        };
-
-        template<>
-        struct lcast_src_length<float>
-          : lcast_src_length_floating<float>
-        {
-            static void check_coverage() {}
-        };
-
-        template<>
-        struct lcast_src_length<double>
-          : lcast_src_length_floating<double>
-        {
-            static void check_coverage() {}
-        };
-
-        template<>
-        struct lcast_src_length<long double>
-          : lcast_src_length_floating<long double>
-        {
-            static void check_coverage() {}
-        };
-
-#endif // #ifndef BOOST_LCAST_NO_COMPILE_TIME_PRECISION
-    }
-
-    namespace detail // lexical_cast_stream_traits<Source, Target>
-    {
-        template <class Source, class Target>
-        struct lexical_cast_stream_traits {
-            typedef BOOST_DEDUCED_TYPENAME boost::detail::array_to_pointer_decay<Source>::type src;
-            typedef BOOST_DEDUCED_TYPENAME boost::remove_cv<src>::type            no_cv_src;
-                
-            typedef boost::detail::deduce_source_char<no_cv_src>                           deduce_src_char_metafunc;
-            typedef BOOST_DEDUCED_TYPENAME deduce_src_char_metafunc::type           src_char_t;
-            typedef BOOST_DEDUCED_TYPENAME boost::detail::deduce_target_char<Target>::type target_char_t;
-                
-            typedef BOOST_DEDUCED_TYPENAME boost::detail::widest_char<
-                target_char_t, src_char_t
-            >::type char_type;
-
-#if !defined(BOOST_NO_CXX11_CHAR16_T) && defined(BOOST_NO_CXX11_UNICODE_LITERALS)
-            BOOST_STATIC_ASSERT_MSG(( !boost::is_same<char16_t, src_char_t>::value
-                                        && !boost::is_same<char16_t, target_char_t>::value),
-                "Your compiler does not have full support for char16_t" );
-#endif
-#if !defined(BOOST_NO_CXX11_CHAR32_T) && defined(BOOST_NO_CXX11_UNICODE_LITERALS)
-            BOOST_STATIC_ASSERT_MSG(( !boost::is_same<char32_t, src_char_t>::value
-                                        && !boost::is_same<char32_t, target_char_t>::value),
-                "Your compiler does not have full support for char32_t" );
-#endif
-
-            typedef BOOST_DEDUCED_TYPENAME boost::detail::deduce_char_traits<
-                char_type, Target, no_cv_src
-            >::type traits;
-
-            typedef boost::type_traits::ice_and<
-                boost::is_same<char, src_char_t>::value,                                  // source is not a wide character based type
-                boost::type_traits::ice_ne<sizeof(char), sizeof(target_char_t) >::value,  // target type is based on wide character
-                boost::type_traits::ice_not<
-                    boost::detail::is_char_or_wchar<no_cv_src>::value                     // single character widening is optimized
-                >::value                                                                  // and does not requires stringbuffer
-            >   is_string_widening_required_t;
-
-            typedef boost::type_traits::ice_not< boost::type_traits::ice_or<
-                boost::is_integral<no_cv_src>::value,
-                boost::detail::is_this_float_conversion_optimized<no_cv_src, char_type >::value,
-                boost::detail::is_char_or_wchar<
-                    BOOST_DEDUCED_TYPENAME deduce_src_char_metafunc::stage1_type          // if we did not get character type at stage1
-                >::value                                                                  // then we have no optimization for that type
-            >::value >   is_source_input_not_optimized_t;
-
-            // If we have an optimized conversion for
-            // Source, we do not need to construct stringbuf.
-            BOOST_STATIC_CONSTANT(bool, requires_stringbuf = 
-                (boost::type_traits::ice_or<
-                    is_string_widening_required_t::value, is_source_input_not_optimized_t::value
-                >::value)
-            );
-            
-            typedef boost::detail::lcast_src_length<no_cv_src> len_t;
-        };
-    }
-
-    namespace detail // '0', '+' and '-' constants
-    {
-        template < typename Char > struct lcast_char_constants;
-
-        template<>
-        struct lcast_char_constants<char>
-        {
-            BOOST_STATIC_CONSTANT(char, zero  = '0');
-            BOOST_STATIC_CONSTANT(char, minus = '-');
-            BOOST_STATIC_CONSTANT(char, plus = '+');
-            BOOST_STATIC_CONSTANT(char, lowercase_e = 'e');
-            BOOST_STATIC_CONSTANT(char, capital_e = 'E');
-            BOOST_STATIC_CONSTANT(char, c_decimal_separator = '.');
-        };
-
-#ifndef BOOST_LCAST_NO_WCHAR_T
-        template<>
-        struct lcast_char_constants<wchar_t>
-        {
-            BOOST_STATIC_CONSTANT(wchar_t, zero  = L'0');
-            BOOST_STATIC_CONSTANT(wchar_t, minus = L'-');
-            BOOST_STATIC_CONSTANT(wchar_t, plus = L'+');
-            BOOST_STATIC_CONSTANT(wchar_t, lowercase_e = L'e');
-            BOOST_STATIC_CONSTANT(wchar_t, capital_e = L'E');
-            BOOST_STATIC_CONSTANT(wchar_t, c_decimal_separator = L'.');
-        };
-#endif
-
-#if !defined(BOOST_NO_CXX11_CHAR16_T) && !defined(BOOST_NO_CXX11_UNICODE_LITERALS)
-        template<>
-        struct lcast_char_constants<char16_t>
-        {
-            BOOST_STATIC_CONSTANT(char16_t, zero  = u'0');
-            BOOST_STATIC_CONSTANT(char16_t, minus = u'-');
-            BOOST_STATIC_CONSTANT(char16_t, plus = u'+');
-            BOOST_STATIC_CONSTANT(char16_t, lowercase_e = u'e');
-            BOOST_STATIC_CONSTANT(char16_t, capital_e = u'E');
-            BOOST_STATIC_CONSTANT(char16_t, c_decimal_separator = u'.');
-        };
-#endif
-
-#if !defined(BOOST_NO_CXX11_CHAR32_T) && !defined(BOOST_NO_CXX11_UNICODE_LITERALS)
-        template<>
-        struct lcast_char_constants<char32_t>
-        {
-            BOOST_STATIC_CONSTANT(char32_t, zero  = U'0');
-            BOOST_STATIC_CONSTANT(char32_t, minus = U'-');
-            BOOST_STATIC_CONSTANT(char32_t, plus = U'+');
-            BOOST_STATIC_CONSTANT(char32_t, lowercase_e = U'e');
-            BOOST_STATIC_CONSTANT(char32_t, capital_e = U'E');
-            BOOST_STATIC_CONSTANT(char32_t, c_decimal_separator = U'.');
-        };
-#endif
-    }
-
-    namespace detail // lcast_to_unsigned
-    {
-        template<class T>
-        inline
-        BOOST_DEDUCED_TYPENAME make_unsigned<T>::type lcast_to_unsigned(T value) BOOST_NOEXCEPT
-        {
-            typedef BOOST_DEDUCED_TYPENAME boost::make_unsigned<T>::type result_type;
-            return static_cast<result_type>(
-                value < 0 ? 0u - static_cast<result_type>(value) : value
-            );
-        }
-    }
-
-    namespace detail // lcast_put_unsigned
-    {
-        template<class Traits, class T, class CharT>
-        CharT* lcast_put_unsigned(const T n_param, CharT* finish)
-        {
-#ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-            BOOST_STATIC_ASSERT(!std::numeric_limits<T>::is_signed);
-#endif
-
-            typedef typename Traits::int_type int_type;
-            CharT const czero = lcast_char_constants<CharT>::zero;
-            int_type const zero = Traits::to_int_type(czero);
-            BOOST_DEDUCED_TYPENAME boost::mpl::if_c<
-                    (sizeof(int_type) > sizeof(T))
-                    , int_type
-                    , T
-            >::type n = n_param;
-
-#ifndef BOOST_LEXICAL_CAST_ASSUME_C_LOCALE
-            std::locale loc;
-            if (loc != std::locale::classic()) {
-                typedef std::numpunct<CharT> numpunct;
-                numpunct const& np = BOOST_USE_FACET(numpunct, loc);
-                std::string const grouping = np.grouping();
-                std::string::size_type const grouping_size = grouping.size();
-
-                if ( grouping_size && grouping[0] > 0 )
-                {
-
-#ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-                // Check that ulimited group is unreachable:
-                BOOST_STATIC_ASSERT(std::numeric_limits<T>::digits10 < CHAR_MAX);
-#endif
-                    CharT thousands_sep = np.thousands_sep();
-                    std::string::size_type group = 0; // current group number
-                    char last_grp_size = grouping[0];
-                    char left = last_grp_size;
-
-                    do
-                    {
-                        if(left == 0)
-                        {
-                            ++group;
-                            if(group < grouping_size)
-                            {
-                                char const grp_size = grouping[group];
-                                last_grp_size = grp_size <= 0 ? static_cast<char>(CHAR_MAX) : grp_size;
-                            }
-
-                            left = last_grp_size;
-                            --finish;
-                            Traits::assign(*finish, thousands_sep);
-                        }
-
-                        --left;
-
-                        --finish;
-                        int_type const digit = static_cast<int_type>(n % 10U);
-                        Traits::assign(*finish, Traits::to_char_type(zero + digit));
-                        n /= 10;
-                    } while(n);
-                    return finish;
-                }
-            }
-#endif
-            {
-                do
-                {
-                    --finish;
-                    int_type const digit = static_cast<int_type>(n % 10U);
-                    Traits::assign(*finish, Traits::to_char_type(zero + digit));
-                    n /= 10;
-                } while(n);
-            }
-
-            return finish;
-        }
-    }
-
-    namespace detail // lcast_ret_unsigned
-    {
-        template<class Traits, class T, class CharT>
-        inline bool lcast_ret_unsigned(T& value, const CharT* const begin, const CharT* end)
-        {
-#ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-            BOOST_STATIC_ASSERT(!std::numeric_limits<T>::is_signed);
-
-            // GCC when used with flag -std=c++0x may not have std::numeric_limits
-            // specializations for __int128 and unsigned __int128 types.
-            // Try compilation with -std=gnu++0x or -std=gnu++11.
-            //
-            // http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40856
-            BOOST_STATIC_ASSERT_MSG(std::numeric_limits<T>::is_specialized,
-                "std::numeric_limits are not specialized for integral type passed to boost::lexical_cast"
-            );
-#endif
-            CharT const czero = lcast_char_constants<CharT>::zero;
-            --end;
-            value = 0;
-
-            if (begin > end || *end < czero || *end >= czero + 10)
-                return false;
-            value = static_cast<T>(*end - czero);
-            --end;
-            T multiplier = 1;
-            bool multiplier_overflowed = false;
-
-#ifndef BOOST_LEXICAL_CAST_ASSUME_C_LOCALE
-            std::locale loc;
-            if (loc != std::locale::classic()) {
-                typedef std::numpunct<CharT> numpunct;
-                numpunct const& np = BOOST_USE_FACET(numpunct, loc);
-                std::string const& grouping = np.grouping();
-                std::string::size_type const grouping_size = grouping.size();
-
-                /* According to Programming languages - C++
-                 * we MUST check for correct grouping
-                 */
-                if (grouping_size && grouping[0] > 0)
-                {
-                    unsigned char current_grouping = 0;
-                    CharT const thousands_sep = np.thousands_sep();
-                    char remained = static_cast<char>(grouping[current_grouping] - 1);
-                    bool shall_we_return = true;
-
-                    for(;end>=begin; --end)
-                    {
-                        if (remained) {
-                            T const multiplier_10 = static_cast<T>(multiplier * 10);
-                            if (multiplier_10 / 10 != multiplier) multiplier_overflowed = true;
-
-                            T const dig_value = static_cast<T>(*end - czero);
-                            T const new_sub_value = static_cast<T>(multiplier_10 * dig_value);
-
-                            if (*end < czero || *end >= czero + 10
-                                    /* detecting overflow */
-                                    || (dig_value && new_sub_value / dig_value != multiplier_10)
-                                    || static_cast<T>((std::numeric_limits<T>::max)()-new_sub_value) < value
-                                    || (multiplier_overflowed && dig_value)
-                                    )
-                                return false;
-
-                            value = static_cast<T>(value + new_sub_value);
-                            multiplier = static_cast<T>(multiplier * 10);
-                            --remained;
-                        } else {
-                            if ( !Traits::eq(*end, thousands_sep) ) //|| begin == end ) return false;
-                            {
-                                /*
-                                 * According to Programming languages - C++
-                                 * Digit grouping is checked. That is, the positions of discarded
-                                 * separators is examined for consistency with
-                                 * use_facet<numpunct<charT> >(loc ).grouping()
-                                 *
-                                 * BUT what if there is no separators at all and grouping()
-                                 * is not empty? Well, we have no extraced separators, so we
-                                 * won`t check them for consistency. This will allow us to
-                                 * work with "C" locale from other locales
-                                 */
-                                shall_we_return = false;
-                                break;
-                            } else {
-                                if ( begin == end ) return false;
-                                if (current_grouping < grouping_size-1 ) ++current_grouping;
-                                remained = grouping[current_grouping];
-                            }
-                        }
-                    }
-
-                    if (shall_we_return) return true;
-                }
-            }
-#endif
-            {
-                while ( begin <= end )
-                {
-                    T const multiplier_10 = static_cast<T>(multiplier * 10);
-                    if (multiplier_10 / 10 != multiplier) multiplier_overflowed = true;
-
-                    T const dig_value = static_cast<T>(*end - czero);
-                    T const new_sub_value = static_cast<T>(multiplier_10 * dig_value);
-
-                    if (*end < czero || *end >= czero + 10
-                            /* detecting overflow */
-                            || (dig_value && new_sub_value / dig_value != multiplier_10)
-                            || static_cast<T>((std::numeric_limits<T>::max)()-new_sub_value) < value
-                            || (multiplier_overflowed && dig_value)
-                            )
-                        return false;
-
-                    value = static_cast<T>(value + new_sub_value);
-                    multiplier = static_cast<T>(multiplier * 10);
-                    --end;
-                }
-            }
-            return true;
-        }
-    }
-
-    namespace detail
-    {
-        template <class CharT>
-        bool lc_iequal(const CharT* val, const CharT* lcase, const CharT* ucase, unsigned int len) BOOST_NOEXCEPT {
-            for( unsigned int i=0; i < len; ++i ) {
-                if ( val[i] != lcase[i] && val[i] != ucase[i] ) return false;
-            }
-
-            return true;
-        }
-
-        /* Returns true and sets the correct value if found NaN or Inf. */
-        template <class CharT, class T>
-        inline bool parse_inf_nan_impl(const CharT* begin, const CharT* end, T& value
-            , const CharT* lc_NAN, const CharT* lc_nan
-            , const CharT* lc_INFINITY, const CharT* lc_infinity
-            , const CharT opening_brace, const CharT closing_brace) BOOST_NOEXCEPT
-        {
-            using namespace std;
-            if (begin == end) return false;
-            const CharT minus = lcast_char_constants<CharT>::minus;
-            const CharT plus = lcast_char_constants<CharT>::plus;
-            const int inifinity_size = 8;
-
-            bool has_minus = false;
-            /* Parsing +/- */
-            if( *begin == minus)
-            {
-                ++ begin;
-                has_minus = true;
-            }
-            else if( *begin == plus ) ++begin;
-
-            if( end-begin < 3 ) return false;
-            if( lc_iequal(begin, lc_nan, lc_NAN, 3) )
-            {
-                begin += 3;
-                if (end != begin) /* It is 'nan(...)' or some bad input*/
-                {
-                    if(end-begin<2) return false; // bad input
-                    -- end;
-                    if( *begin != opening_brace || *end != closing_brace) return false; // bad input
-                }
-
-                if( !has_minus ) value = std::numeric_limits<T>::quiet_NaN();
-                else value = (boost::math::changesign) (std::numeric_limits<T>::quiet_NaN());
-                return true;
-            } else
-            if (( /* 'INF' or 'inf' */
-                  end-begin==3
-                  &&
-                  lc_iequal(begin, lc_infinity, lc_INFINITY, 3)
-                )
-                ||
-                ( /* 'INFINITY' or 'infinity' */
-                  end-begin==inifinity_size
-                  &&
-                  lc_iequal(begin, lc_infinity, lc_INFINITY, inifinity_size)
-                )
-             )
-            {
-                if( !has_minus ) value = std::numeric_limits<T>::infinity();
-                else value = (boost::math::changesign) (std::numeric_limits<T>::infinity());
-                return true;
-            }
-
-            return false;
-        }
-
-        template <class CharT, class T>
-        bool put_inf_nan_impl(CharT* begin, CharT*& end, const T& value
-                         , const CharT* lc_nan
-                         , const CharT* lc_infinity) BOOST_NOEXCEPT
-        {
-            using namespace std;
-            const CharT minus = lcast_char_constants<CharT>::minus;
-            if ( (boost::math::isnan)(value) )
-            {
-                if ( (boost::math::signbit)(value) )
-                {
-                    *begin = minus;
-                    ++ begin;
-                }
-
-                memcpy(begin, lc_nan, 3 * sizeof(CharT));
-                end = begin + 3;
-                return true;
-            } else if ( (boost::math::isinf)(value) )
-            {
-                if ( (boost::math::signbit)(value) )
-                {
-                    *begin = minus;
-                    ++ begin;
-                }
-
-                memcpy(begin, lc_infinity, 3 * sizeof(CharT));
-                end = begin + 3;
-                return true;
-            }
-
-            return false;
-        }
-
-
-#ifndef BOOST_LCAST_NO_WCHAR_T
-        template <class T>
-        bool parse_inf_nan(const wchar_t* begin, const wchar_t* end, T& value) BOOST_NOEXCEPT
-        {
-            return parse_inf_nan_impl(begin, end, value
-                               , L"NAN", L"nan"
-                               , L"INFINITY", L"infinity"
-                               , L'(', L')');
-        }
-
-        template <class T>
-        bool put_inf_nan(wchar_t* begin, wchar_t*& end, const T& value) BOOST_NOEXCEPT
-        {
-            return put_inf_nan_impl(begin, end, value, L"nan", L"infinity");
-        }
-
-#endif
-#if !defined(BOOST_NO_CXX11_CHAR16_T) && !defined(BOOST_NO_CXX11_UNICODE_LITERALS)
-        template <class T>
-        bool parse_inf_nan(const char16_t* begin, const char16_t* end, T& value) BOOST_NOEXCEPT
-        {
-            return parse_inf_nan_impl(begin, end, value
-                               , u"NAN", u"nan"
-                               , u"INFINITY", u"infinity"
-                               , u'(', u')');
-        }
-
-        template <class T>
-        bool put_inf_nan(char16_t* begin, char16_t*& end, const T& value) BOOST_NOEXCEPT
-        {
-            return put_inf_nan_impl(begin, end, value, u"nan", u"infinity");
-        }
-#endif
-#if !defined(BOOST_NO_CXX11_CHAR32_T) && !defined(BOOST_NO_CXX11_UNICODE_LITERALS)
-        template <class T>
-        bool parse_inf_nan(const char32_t* begin, const char32_t* end, T& value) BOOST_NOEXCEPT
-        {
-            return parse_inf_nan_impl(begin, end, value
-                               , U"NAN", U"nan"
-                               , U"INFINITY", U"infinity"
-                               , U'(', U')');
-        }
-
-        template <class T>
-        bool put_inf_nan(char32_t* begin, char32_t*& end, const T& value) BOOST_NOEXCEPT
-        {
-            return put_inf_nan_impl(begin, end, value, U"nan", U"infinity");
-        }
-#endif
-
-        template <class CharT, class T>
-        bool parse_inf_nan(const CharT* begin, const CharT* end, T& value) BOOST_NOEXCEPT
-        {
-            return parse_inf_nan_impl(begin, end, value
-                               , "NAN", "nan"
-                               , "INFINITY", "infinity"
-                               , '(', ')');
-        }
-
-        template <class CharT, class T>
-        bool put_inf_nan(CharT* begin, CharT*& end, const T& value) BOOST_NOEXCEPT
-        {
-            return put_inf_nan_impl(begin, end, value, "nan", "infinity");
-        }
-    }
-
-
-    namespace detail // lcast_ret_float
-    {
-
-// Silence buggy MS warnings like C4244: '+=' : conversion from 'int' to 'unsigned short', possible loss of data 
-#if defined(_MSC_VER) && (_MSC_VER == 1400) 
-#  pragma warning(push) 
-#  pragma warning(disable:4244) 
-#endif 
-        template <class T>
-        struct mantissa_holder_type
-        {
-            /* Can not be used with this type */
-        };
-
-        template <>
-        struct mantissa_holder_type<float>
-        {
-            typedef unsigned int type;
-            typedef double       wide_result_t;
-        };
-
-        template <>
-        struct mantissa_holder_type<double>
-        {
-#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
-            typedef long double  wide_result_t;
-#if defined(BOOST_HAS_LONG_LONG)
-            typedef boost::ulong_long_type type;
-#elif defined(BOOST_HAS_MS_INT64)
-            typedef unsigned __int64 type;
-#endif
-#endif
-        };
-
-        template<class Traits, class T, class CharT>
-        inline bool lcast_ret_float(T& value, const CharT* begin, const CharT* end)
-        {
-
-#ifndef BOOST_LEXICAL_CAST_ASSUME_C_LOCALE
-            std::locale loc;
-            typedef std::numpunct<CharT> numpunct;
-            numpunct const& np = BOOST_USE_FACET(numpunct, loc);
-            std::string const grouping(
-                    (loc == std::locale::classic())
-                    ? std::string()
-                    : np.grouping()
-            );
-            std::string::size_type const grouping_size = grouping.size();
-            CharT const thousands_sep = static_cast<CharT>(grouping_size ? np.thousands_sep() : 0);
-            CharT const decimal_point = np.decimal_point();
-            bool found_grouping = false;
-            std::string::size_type last_grouping_pos = grouping_size - 1;
-#else
-            CharT const decimal_point = lcast_char_constants<CharT>::c_decimal_separator;
-#endif
-
-            CharT const czero = lcast_char_constants<CharT>::zero;
-            CharT const minus = lcast_char_constants<CharT>::minus;
-            CharT const plus = lcast_char_constants<CharT>::plus;
-            CharT const capital_e = lcast_char_constants<CharT>::capital_e;
-            CharT const lowercase_e = lcast_char_constants<CharT>::lowercase_e;
-
-            value = static_cast<T>(0);
-
-            if (parse_inf_nan(begin, end, value)) return true;
-
-            typedef typename Traits::int_type int_type;
-            typedef BOOST_DEDUCED_TYPENAME mantissa_holder_type<T>::type mantissa_type;
-            typedef BOOST_DEDUCED_TYPENAME mantissa_holder_type<T>::wide_result_t wide_result_t;
-            int_type const zero = Traits::to_int_type(czero);
-            if (begin == end) return false;
-
-            /* Getting the plus/minus sign */
-            bool has_minus = false;
-            if (Traits::eq(*begin, minus) ) {
-                ++ begin;
-                has_minus = true;
-                if (begin == end) return false;
-            } else if (Traits::eq(*begin, plus) ) {
-                ++begin;
-                if (begin == end) return false;
-            }
-
-            bool found_decimal = false;
-            bool found_number_before_exp = false;
-            int pow_of_10 = 0;
-            mantissa_type mantissa=0;
-            bool is_mantissa_full = false;
-
-            char length_since_last_delim = 0;
-
-            while ( begin != end )
-            {
-                if (found_decimal) {
-                    /* We allow no thousand_separators after decimal point */
-
-                    mantissa_type tmp_mantissa = mantissa * 10u;
-                    if (Traits::eq(*begin, lowercase_e) || Traits::eq(*begin, capital_e)) break;
-                    if ( *begin < czero || *begin >= czero + 10 ) return false;
-                    if (    is_mantissa_full
-                            || tmp_mantissa / 10u != mantissa
-                            || (std::numeric_limits<mantissa_type>::max)()-(*begin - zero) < tmp_mantissa
-                            ) {
-                        is_mantissa_full = true;
-                        ++ begin;
-                        continue;
-                    }
-
-                    -- pow_of_10;
-                    mantissa = tmp_mantissa;
-                    mantissa += *begin - zero;
-
-                    found_number_before_exp = true;
-                } else {
-
-                    if (*begin >= czero && *begin < czero + 10) {
-
-                        /* Checking for mantissa overflow. If overflow will
-                         * occur, them we only increase multiplyer
-                         */
-                        mantissa_type tmp_mantissa = mantissa * 10u;
-                        if(     !is_mantissa_full
-                                && tmp_mantissa / 10u == mantissa
-                                && (std::numeric_limits<mantissa_type>::max)()-(*begin - zero) >= tmp_mantissa
-                            )
-                        {
-                            mantissa = tmp_mantissa;
-                            mantissa += *begin - zero;
-                        } else
-                        {
-                            is_mantissa_full = true;
-                            ++ pow_of_10;
-                        }
-
-                        found_number_before_exp = true;
-                        ++ length_since_last_delim;
-                    } else if (Traits::eq(*begin, decimal_point) || Traits::eq(*begin, lowercase_e) || Traits::eq(*begin, capital_e)) {
-#ifndef BOOST_LEXICAL_CAST_ASSUME_C_LOCALE
-                        /* If ( we need to check grouping
-                         *      and (   grouping missmatches
-                         *              or grouping position is incorrect
-                         *              or we are using the grouping position 0 twice
-                         *           )
-                         *    ) then return error
-                         */
-                        if( grouping_size && found_grouping
-                            && (
-                                   length_since_last_delim != grouping[0]
-                                   || last_grouping_pos>1
-                                   || (last_grouping_pos==0 && grouping_size>1)
-                                )
-                           ) return false;
-#endif
-
-                        if(Traits::eq(*begin, decimal_point)) {
-                            ++ begin;
-                            found_decimal = true;
-                            if (!found_number_before_exp && begin==end) return false;
-                            continue;
-                        }else {
-                            if (!found_number_before_exp) return false;
-                            break;
-                        }
-                    }
-#ifndef BOOST_LEXICAL_CAST_ASSUME_C_LOCALE
-                    else if (grouping_size && Traits::eq(*begin, thousands_sep)){
-                        if(found_grouping)
-                        {
-                            /* It is not he first time, when we find thousands separator,
-                             * so we need to chek, is the distance between two groupings
-                             * equal to grouping[last_grouping_pos] */
-
-                            if (length_since_last_delim != grouping[last_grouping_pos] )
-                            {
-                                if (!last_grouping_pos) return false;
-                                else
-                                {
-                                    -- last_grouping_pos;
-                                    if (length_since_last_delim != grouping[last_grouping_pos]) return false;
-                                }
-                            } else
-                                /* We are calling the grouping[0] twice, when grouping size is more than 1 */
-                                if (grouping_size>1u && last_grouping_pos+1<grouping_size) return false;
-
-                        } else {
-                            /* Delimiter at the begining ',000' */
-                            if (!length_since_last_delim) return false;
-
-                            found_grouping = true;
-                            if (length_since_last_delim > grouping[last_grouping_pos] ) return false;
-                        }
-
-                        length_since_last_delim = 0;
-                        ++ begin;
-
-                        /* Delimiter at the end '100,' */
-                        if (begin == end) return false;
-                        continue;
-                    }
-#endif
-                    else return false;
-                }
-
-                ++begin;
-            }
-
-            // Exponent found
-            if ( begin != end && (Traits::eq(*begin, lowercase_e) || Traits::eq(*begin, capital_e)) ) {
-                ++ begin;
-                if ( begin == end ) return false;
-
-                bool exp_has_minus = false;
-                if(Traits::eq(*begin, minus)) {
-                    exp_has_minus = true;
-                    ++ begin;
-                    if ( begin == end ) return false;
-                } else if (Traits::eq(*begin, plus)) {
-                    ++ begin;
-                    if ( begin == end ) return false;
-                }
-
-                int exp_pow_of_10 = 0;
-                while ( begin != end )
-                {
-                    if ( *begin < czero
-                            || *begin >= czero + 10
-                            || exp_pow_of_10 * 10 < exp_pow_of_10) /* Overflows are checked lower more precisely*/
-                        return false;
-
-                    exp_pow_of_10 *= 10;
-                    exp_pow_of_10 += *begin - zero;
-                    ++ begin;
-                };
-
-                if ( exp_pow_of_10 ) {
-                    /* Overflows are checked lower */
-                    if ( exp_has_minus ) {
-                        pow_of_10 -= exp_pow_of_10;
-                    } else {
-                        pow_of_10 += exp_pow_of_10;
-                    }
-                }
-            }
-
-            /* We need a more accurate algorithm... We can not use current algorithm
-             * with long doubles (and with doubles if sizeof(double)==sizeof(long double)).
-             */
-            const wide_result_t result = std::pow(static_cast<wide_result_t>(10.0), pow_of_10) * mantissa;
-            value = static_cast<T>( has_minus ? (boost::math::changesign)(result) : result);
-
-            if ( (boost::math::isinf)(value) || (boost::math::isnan)(value) ) return false;
-
-            return true;
-        }
-// Unsilence buggy MS warnings like C4244: '+=' : conversion from 'int' to 'unsigned short', possible loss of data 
-#if defined(_MSC_VER) && (_MSC_VER == 1400) 
-#  pragma warning(pop) 
-#endif 
-    }
-
-    namespace detail // parser_buf
-    {
-        //
-        // class parser_buf:
-        // acts as a stream buffer which wraps around a pair of pointers
-        //
-        // This class is copied (and slightly changed) from
-        // boost/regex/v4/cpp_regex_traits.hpp
-        // Thanks John Maddock for it! (previous version had some
-        // problems with libc++ and some other STL implementations)
-        template <class BufferType, class charT>
-        class parser_buf : public BufferType {
-           typedef BufferType base_type;
-           typedef typename base_type::int_type int_type;
-           typedef typename base_type::char_type char_type;
-           typedef typename base_type::pos_type pos_type;
-           typedef ::std::streamsize streamsize;
-           typedef typename base_type::off_type off_type;
-
-        public:
-           parser_buf() : base_type() { setbuf(0, 0); }
-           const charT* getnext() { return this->gptr(); }
-#ifndef BOOST_NO_USING_TEMPLATE
-            using base_type::pptr;
-            using base_type::pbase;
-#else
-            charT* pptr() const { return base_type::pptr(); }
-            charT* pbase() const { return base_type::pbase(); }
-#endif
-           base_type* setbuf(char_type* s, streamsize n) {
-               this->setg(s, s, s + n);
-               return this;
-           }
-
-           pos_type seekpos(pos_type sp, ::std::ios_base::openmode which) {
-               if(which & ::std::ios_base::out)
-                  return pos_type(off_type(-1));
-               off_type size = static_cast<off_type>(this->egptr() - this->eback());
-               charT* g = this->eback();
-               if(off_type(sp) <= size)
-               {
-                  this->setg(g, g + off_type(sp), g + size);
-               }
-               return pos_type(off_type(-1));
-            }
-
-           pos_type seekoff(off_type off, ::std::ios_base::seekdir way, ::std::ios_base::openmode which) {
-               typedef typename boost::int_t<sizeof(way) * CHAR_BIT>::least cast_type;
-
-               if(which & ::std::ios_base::out)
-                  return pos_type(off_type(-1));
-               std::ptrdiff_t size = this->egptr() - this->eback();
-               std::ptrdiff_t pos = this->gptr() - this->eback();
-               charT* g = this->eback();
-               switch(static_cast<cast_type>(way))
-               {
-               case ::std::ios_base::beg:
-                  if((off < 0) || (off > size))
-                     return pos_type(off_type(-1));
-                  else
-                     this->setg(g, g + off, g + size);
-                  break;
-               case ::std::ios_base::end:
-                  if((off < 0) || (off > size))
-                     return pos_type(off_type(-1));
-                  else
-                     this->setg(g, g + size - off, g + size);
-                  break;
-               case ::std::ios_base::cur:
-               {
-                  std::ptrdiff_t newpos = static_cast<std::ptrdiff_t>(pos + off);
-                  if((newpos < 0) || (newpos > size))
-                     return pos_type(off_type(-1));
-                  else
-                     this->setg(g, g + newpos, g + size);
-                  break;
-               }
-               default: ;
-               }
-#ifdef BOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable:4244)
-#endif
-               return static_cast<pos_type>(this->gptr() - this->eback());
-#ifdef BOOST_MSVC
-#pragma warning(pop)
-#endif
-            }
-        private:
-           parser_buf& operator=(const parser_buf&);
-           parser_buf(const parser_buf&);
-        };
-    }
-
-    namespace detail
-    {
-        struct do_not_construct_out_stream_t{};
-    }
-
-    namespace detail // optimized stream wrapper
-    {
-        // String representation of Source has an upper limit.
-        template< class CharT // a result of widest_char transformation
-                , class Traits // usually char_traits<CharT>
-                , bool RequiresStringbuffer
-                >
-        class lexical_stream_limited_src
-        {
-
-#if defined(BOOST_NO_STRINGSTREAM)
-            typedef std::ostrstream                         out_stream_t;
-#elif defined(BOOST_NO_STD_LOCALE)
-            typedef std::ostringstream                      out_stream_t;
-            typedef parser_buf<std::streambuf, char>        buffer_t;
-#else
-            typedef std::basic_ostringstream<CharT, Traits>                 out_stream_t;
-            typedef parser_buf<std::basic_streambuf<CharT, Traits>, CharT>  buffer_t;
-#endif
-            typedef BOOST_DEDUCED_TYPENAME boost::mpl::if_c<
-                RequiresStringbuffer,
-                out_stream_t,
-                do_not_construct_out_stream_t
-            >::type deduced_out_stream_t;
-
-            // A string representation of Source is written to [start, finish).
-            CharT* start;
-            CharT* finish;
-            deduced_out_stream_t out_stream;
-
-        public:
-            lexical_stream_limited_src(CharT* sta, CharT* fin) BOOST_NOEXCEPT
-              : start(sta)
-              , finish(fin)
-            {}
-
-        private:
-            // Undefined:
-            lexical_stream_limited_src(lexical_stream_limited_src const&);
-            void operator=(lexical_stream_limited_src const&);
-
-/************************************ HELPER FUNCTIONS FOR OPERATORS << ( ... ) ********************************/
-            bool shl_char(CharT ch) BOOST_NOEXCEPT
-            {
-                Traits::assign(*start, ch);
-                finish = start + 1;
-                return true;
-            }
-
-#ifndef BOOST_LCAST_NO_WCHAR_T
-            template <class T>
-            bool shl_char(T ch)
-            {
-                BOOST_STATIC_ASSERT_MSG(( sizeof(T) <= sizeof(CharT)) ,
-                    "boost::lexical_cast does not support narrowing of char types."
-                    "Use boost::locale instead" );
-#ifndef BOOST_LEXICAL_CAST_ASSUME_C_LOCALE
-                std::locale loc;
-                CharT const w = BOOST_USE_FACET(std::ctype<CharT>, loc).widen(ch);
-#else
-                CharT const w = static_cast<CharT>(ch);
-#endif
-                Traits::assign(*start, w);
-                finish = start + 1;
-                return true;
-            }
-#endif
-
-            bool shl_char_array(CharT const* str) BOOST_NOEXCEPT
-            {
-                start = const_cast<CharT*>(str);
-                finish = start + Traits::length(str);
-                return true;
-            }
-
-            template <class T>
-            bool shl_char_array(T const* str)
-            {
-                BOOST_STATIC_ASSERT_MSG(( sizeof(T) <= sizeof(CharT)),
-                    "boost::lexical_cast does not support narrowing of char types."
-                    "Use boost::locale instead" );
-                return shl_input_streamable(str);
-            }
-            
-            bool shl_char_array_limited(CharT const* str, std::size_t max_size) BOOST_NOEXCEPT
-            {
-                start = const_cast<CharT*>(str);
-                finish = std::find(start, start + max_size, Traits::to_char_type(0));
-                return true;
-            }
-
-            template<typename InputStreamable>
-            bool shl_input_streamable(InputStreamable& input)
-            {
-#if defined(BOOST_NO_STRINGSTREAM) || defined(BOOST_NO_STD_LOCALE)
-                // If you have compilation error at this point, than your STL library
-                // does not support such conversions. Try updating it.
-                BOOST_STATIC_ASSERT((boost::is_same<char, CharT>::value));
-#endif
-
-#ifndef BOOST_NO_EXCEPTIONS
-                out_stream.exceptions(std::ios::badbit);
-                try {
-#endif
-                bool const result = !(out_stream << input).fail();
-                const buffer_t* const p = static_cast<buffer_t*>(
-                    static_cast<std::basic_streambuf<CharT, Traits>*>(out_stream.rdbuf())
-                );
-                start = p->pbase();
-                finish = p->pptr();
-                return result;
-#ifndef BOOST_NO_EXCEPTIONS
-                } catch (const ::std::ios_base::failure& /*f*/) {
-                    return false;
-                }
-#endif
-            }
-
-            template <class T>
-            inline bool shl_signed(T n)
-            {
-                start = lcast_put_unsigned<Traits>(lcast_to_unsigned(n), finish);
-                if(n < 0)
-                {
-                    --start;
-                    CharT const minus = lcast_char_constants<CharT>::minus;
-                    Traits::assign(*start, minus);
-                }
-                return true;
-            }
-
-            template <class T, class SomeCharT>
-            bool shl_real_type(const T& val, SomeCharT* begin, SomeCharT*& end)
-            {
-                if (put_inf_nan(begin, end, val)) return true;
-                lcast_set_precision(out_stream, &val);
-                return shl_input_streamable(val);
-            }
-
-            static bool shl_real_type(float val, char* begin, char*& end)
-            {   using namespace std;
-                if (put_inf_nan(begin, end, val)) return true;
-                const double val_as_double = val;
-                end = begin + 
-#if defined(_MSC_VER) && (_MSC_VER >= 1400) && !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)
-                    sprintf_s(begin, end-begin,
-#else
-                    sprintf(begin, 
-#endif
-                    "%.*g", static_cast<int>(boost::detail::lcast_get_precision<float>()), val_as_double);
-                return end > begin;
-            }
-
-            static bool shl_real_type(double val, char* begin, char*& end)
-            {   using namespace std;
-                if (put_inf_nan(begin, end, val)) return true;
-                end = begin + 
-#if defined(_MSC_VER) && (_MSC_VER >= 1400) && !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)
-                    sprintf_s(begin, end-begin,
-#else
-                    sprintf(begin, 
-#endif
-                    "%.*g", static_cast<int>(boost::detail::lcast_get_precision<double>()), val);
-                return end > begin;
-            }
-
-#ifndef __MINGW32__
-            static bool shl_real_type(long double val, char* begin, char*& end)
-            {   using namespace std;
-                if (put_inf_nan(begin, end, val)) return true;
-                end = begin + 
-#if defined(_MSC_VER) && (_MSC_VER >= 1400) && !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)
-                    sprintf_s(begin, end-begin,
-#else
-                    sprintf(begin, 
-#endif
-                    "%.*Lg", static_cast<int>(boost::detail::lcast_get_precision<long double>()), val );
-                return end > begin;
-            }
-#endif
-
-
-#if !defined(BOOST_LCAST_NO_WCHAR_T) && !defined(BOOST_NO_SWPRINTF) && !defined(__MINGW32__)
-            static bool shl_real_type(float val, wchar_t* begin, wchar_t*& end)
-            {   using namespace std;
-                if (put_inf_nan(begin, end, val)) return true;
-                const double val_as_double = val;
-                end = begin + swprintf(begin, end-begin,
-                                       L"%.*g",
-                                       static_cast<int>(boost::detail::lcast_get_precision<float >()),
-                                       val_as_double );
-                return end > begin;
-            }
-
-            static bool shl_real_type(double val, wchar_t* begin, wchar_t*& end)
-            {   using namespace std;
-                if (put_inf_nan(begin, end, val)) return true;
-                end = begin + swprintf(begin, end-begin,
-                                          L"%.*g", static_cast<int>(boost::detail::lcast_get_precision<double >()), val );
-                return end > begin;
-            }
-
-            static bool shl_real_type(long double val, wchar_t* begin, wchar_t*& end)
-            {   using namespace std;
-                if (put_inf_nan(begin, end, val)) return true;
-                end = begin + swprintf(begin, end-begin,
-                                          L"%.*Lg", static_cast<int>(boost::detail::lcast_get_precision<long double >()), val );
-                return end > begin;
-            }
-#endif
-
-/************************************ OPERATORS << ( ... ) ********************************/
-        public:
-            template<class Alloc>
-            bool operator<<(std::basic_string<CharT,Traits,Alloc> const& str) BOOST_NOEXCEPT
-            {
-                start = const_cast<CharT*>(str.data());
-                finish = start + str.length();
-                return true;
-            }
-
-            template<class Alloc>
-            bool operator<<(boost::container::basic_string<CharT,Traits,Alloc> const& str) BOOST_NOEXCEPT
-            {
-                start = const_cast<CharT*>(str.data());
-                finish = start + str.length();
-                return true;
-            }
-
-            bool operator<<(bool value) BOOST_NOEXCEPT
-            {
-                CharT const czero = lcast_char_constants<CharT>::zero;
-                Traits::assign(*start, Traits::to_char_type(czero + value));
-                finish = start + 1;
-                return true;
-            }
-
-            bool operator<<(const iterator_range<CharT*>& rng) BOOST_NOEXCEPT
-            {
-                start = rng.begin();
-                finish = rng.end();
-                return true; 
-            }
-            
-            bool operator<<(const iterator_range<const CharT*>& rng) BOOST_NOEXCEPT
-            {
-                start = const_cast<CharT*>(rng.begin());
-                finish = const_cast<CharT*>(rng.end());
-                return true; 
-            }
-
-            bool operator<<(const iterator_range<const signed char*>& rng) BOOST_NOEXCEPT
-            {
-                return (*this) << iterator_range<char*>(
-                    const_cast<char*>(reinterpret_cast<const char*>(rng.begin())),
-                    const_cast<char*>(reinterpret_cast<const char*>(rng.end()))
-                );
-            }
-
-            bool operator<<(const iterator_range<const unsigned char*>& rng) BOOST_NOEXCEPT
-            {
-                return (*this) << iterator_range<char*>(
-                    const_cast<char*>(reinterpret_cast<const char*>(rng.begin())),
-                    const_cast<char*>(reinterpret_cast<const char*>(rng.end()))
-                );
-            }
-
-            bool operator<<(const iterator_range<signed char*>& rng) BOOST_NOEXCEPT
-            {
-                return (*this) << iterator_range<char*>(
-                    reinterpret_cast<char*>(rng.begin()),
-                    reinterpret_cast<char*>(rng.end())
-                );
-            }
-
-            bool operator<<(const iterator_range<unsigned char*>& rng) BOOST_NOEXCEPT
-            {
-                return (*this) << iterator_range<char*>(
-                    reinterpret_cast<char*>(rng.begin()),
-                    reinterpret_cast<char*>(rng.end())
-                );
-            }
-
-            bool operator<<(char ch)                    { return shl_char(ch); }
-            bool operator<<(unsigned char ch)           { return ((*this) << static_cast<char>(ch)); }
-            bool operator<<(signed char ch)             { return ((*this) << static_cast<char>(ch)); }
-#if !defined(BOOST_LCAST_NO_WCHAR_T)
-            bool operator<<(wchar_t const* str)         { return shl_char_array(str); }
-            bool operator<<(wchar_t * str)              { return shl_char_array(str); }
-#ifndef BOOST_NO_INTRINSIC_WCHAR_T
-            bool operator<<(wchar_t ch)                 { return shl_char(ch); }
-#endif
-#endif
-#if !defined(BOOST_NO_CXX11_CHAR16_T) && !defined(BOOST_NO_CXX11_UNICODE_LITERALS)
-            bool operator<<(char16_t ch)                { return shl_char(ch); }
-            bool operator<<(char16_t * str)             { return shl_char_array(str); }
-            bool operator<<(char16_t const * str)       { return shl_char_array(str); }
-#endif
-#if !defined(BOOST_NO_CXX11_CHAR32_T) && !defined(BOOST_NO_CXX11_UNICODE_LITERALS)
-            bool operator<<(char32_t ch)                { return shl_char(ch); }
-            bool operator<<(char32_t * str)             { return shl_char_array(str); }
-            bool operator<<(char32_t const * str)       { return shl_char_array(str); }
-#endif
-            bool operator<<(unsigned char const* ch)    { return ((*this) << reinterpret_cast<char const*>(ch)); }
-            bool operator<<(unsigned char * ch)         { return ((*this) << reinterpret_cast<char *>(ch)); }
-            bool operator<<(signed char const* ch)      { return ((*this) << reinterpret_cast<char const*>(ch)); }
-            bool operator<<(signed char * ch)           { return ((*this) << reinterpret_cast<char *>(ch)); }
-            bool operator<<(char const* str)            { return shl_char_array(str); }
-            bool operator<<(char* str)                  { return shl_char_array(str); }
-            bool operator<<(short n)                    { return shl_signed(n); }
-            bool operator<<(int n)                      { return shl_signed(n); }
-            bool operator<<(long n)                     { return shl_signed(n); }
-            bool operator<<(unsigned short n)           { start = lcast_put_unsigned<Traits>(n, finish); return true; }
-            bool operator<<(unsigned int n)             { start = lcast_put_unsigned<Traits>(n, finish); return true; }
-            bool operator<<(unsigned long n)            { start = lcast_put_unsigned<Traits>(n, finish); return true; }
-
-#if defined(BOOST_HAS_LONG_LONG)
-            bool operator<<(boost::ulong_long_type n)   { start = lcast_put_unsigned<Traits>(n, finish); return true; }
-            bool operator<<(boost::long_long_type n)    { return shl_signed(n); }
-#elif defined(BOOST_HAS_MS_INT64)
-            bool operator<<(unsigned __int64 n)         { start = lcast_put_unsigned<Traits>(n, finish); return true; }
-            bool operator<<(         __int64 n)         { return shl_signed(n); }
-#endif
-
-#ifdef BOOST_HAS_INT128
-        bool operator<<(const boost::uint128_type& n)   { start = lcast_put_unsigned<Traits>(n, finish); return true; }
-        bool operator<<(const boost::int128_type& n)    { return shl_signed(n); }
-#endif
-
-            bool operator<<(float val)                  { return shl_real_type(val, start, finish); }
-            bool operator<<(double val)                 { return shl_real_type(val, start, finish); }
-            bool operator<<(long double val)            {
-#ifndef __MINGW32__
-                return shl_real_type(val, start, finish);
-#else
-                return shl_real_type(static_cast<double>(val), start, finish);
-#endif
-            }
-            
-            template <std::size_t N>
-            bool operator<<(boost::array<CharT, N> const& input) BOOST_NOEXCEPT
-            { return shl_char_array_limited(input.begin(), N); }
-
-            template <std::size_t N>
-            bool operator<<(boost::array<unsigned char, N> const& input) BOOST_NOEXCEPT
-            { return ((*this) << reinterpret_cast<boost::array<char, N> const& >(input)); }
-
-            template <std::size_t N>
-            bool operator<<(boost::array<signed char, N> const& input) BOOST_NOEXCEPT
-            { return ((*this) << reinterpret_cast<boost::array<char, N> const& >(input)); }
-
-            template <std::size_t N>
-            bool operator<<(boost::array<const CharT, N> const& input) BOOST_NOEXCEPT
-            { return shl_char_array_limited(input.begin(), N); }
-
-            template <std::size_t N>
-            bool operator<<(boost::array<const unsigned char, N> const& input) BOOST_NOEXCEPT
-            { return ((*this) << reinterpret_cast<boost::array<const char, N> const& >(input)); }
-
-            template <std::size_t N>
-            bool operator<<(boost::array<const signed char, N> const& input) BOOST_NOEXCEPT
-            { return ((*this) << reinterpret_cast<boost::array<const char, N> const& >(input)); }
- 
-#ifndef BOOST_NO_CXX11_HDR_ARRAY
-            template <std::size_t N>
-            bool operator<<(std::array<CharT, N> const& input) BOOST_NOEXCEPT
-            { 
-                if (input.size()) return shl_char_array_limited(&input[0], N);
-                else return true; 
-            }
-
-            template <std::size_t N>
-            bool operator<<(std::array<unsigned char, N> const& input) BOOST_NOEXCEPT
-            { return ((*this) << reinterpret_cast<boost::array<char, N> const& >(input)); }
-
-            template <std::size_t N>
-            bool operator<<(std::array<signed char, N> const& input) BOOST_NOEXCEPT
-            { return ((*this) << reinterpret_cast<boost::array<char, N> const& >(input)); }
-
-            template <std::size_t N>
-            bool operator<<(std::array<const CharT, N> const& input) BOOST_NOEXCEPT
-            { 
-                if (input.size()) return shl_char_array_limited(&input[0], N);
-                else return true; 
-            }
-
-            template <std::size_t N>
-            bool operator<<(std::array<const unsigned char, N> const& input) BOOST_NOEXCEPT
-            { return ((*this) << reinterpret_cast<boost::array<const char, N> const& >(input)); }
-
-            template <std::size_t N>
-            bool operator<<(std::array<const signed char, N> const& input) BOOST_NOEXCEPT
-            { return ((*this) << reinterpret_cast<boost::array<const char, N> const& >(input)); }
-#endif
-            
-            template <class InStreamable>
-            bool operator<<(const InStreamable& input)  { return shl_input_streamable(input); }
-
-/************************************ HELPER FUNCTIONS FOR OPERATORS >> ( ... ) ********************************/
-        private:
-
-            template <typename Type>
-            bool shr_unsigned(Type& output)
-            {
-                if (start == finish) return false;
-                CharT const minus = lcast_char_constants<CharT>::minus;
-                CharT const plus = lcast_char_constants<CharT>::plus;
-                bool has_minus = false;
-
-                /* We won`t use `start' any more, so no need in decrementing it after */
-                if ( Traits::eq(minus,*start) )
-                {
-                    ++start;
-                    has_minus = true;
-                } else if ( Traits::eq( plus, *start ) )
-                {
-                    ++start;
-                }
-
-                bool const succeed = lcast_ret_unsigned<Traits>(output, start, finish);
-
-                if (has_minus) {
-                    output = static_cast<Type>(0u - output);
-                }
-
-                return succeed;
-            }
-
-            template <typename Type>
-            bool shr_signed(Type& output)
-            {
-                if (start == finish) return false;
-                CharT const minus = lcast_char_constants<CharT>::minus;
-                CharT const plus = lcast_char_constants<CharT>::plus;
-                typedef BOOST_DEDUCED_TYPENAME make_unsigned<Type>::type utype;
-                utype out_tmp =0;
-                bool has_minus = false;
-
-                /* We won`t use `start' any more, so no need in decrementing it after */
-                if ( Traits::eq(minus,*start) )
-                {
-                    ++start;
-                    has_minus = true;
-                } else if ( Traits::eq(plus, *start) )
-                {
-                    ++start;
-                }
-
-                bool succeed = lcast_ret_unsigned<Traits>(out_tmp, start, finish);
-                if (has_minus) {
-                    utype const comp_val = (static_cast<utype>(1) << std::numeric_limits<Type>::digits);
-                    succeed = succeed && out_tmp<=comp_val;
-                    output = static_cast<Type>(0u - out_tmp);
-                } else {
-                    utype const comp_val = static_cast<utype>((std::numeric_limits<Type>::max)());
-                    succeed = succeed && out_tmp<=comp_val;
-                    output = out_tmp;
-                }
-                return succeed;
-            }
-
-            template<typename InputStreamable>
-            bool shr_using_base_class(InputStreamable& output)
-            {
-                BOOST_STATIC_ASSERT_MSG(
-                    (!boost::is_pointer<InputStreamable>::value),
-                    "boost::lexical_cast can not convert to pointers"
-                );
-
-#if defined(BOOST_NO_STRINGSTREAM) || defined(BOOST_NO_STD_LOCALE)
-                BOOST_STATIC_ASSERT_MSG((boost::is_same<char, CharT>::value),
-                    "boost::lexical_cast can not convert, because your STL library does not "
-                    "support such conversions. Try updating it."
-                );
-#endif
-
-#if defined(BOOST_NO_STRINGSTREAM)
-                std::istrstream stream(start, finish - start);
-#else
-
-                buffer_t buf;
-                buf.setbuf(start, finish - start);
-#if defined(BOOST_NO_STD_LOCALE)
-                std::istream stream(&buf);
-#else
-                std::basic_istream<CharT, Traits> stream(&buf);
-#endif // BOOST_NO_STD_LOCALE
-#endif // BOOST_NO_STRINGSTREAM
-
-#ifndef BOOST_NO_EXCEPTIONS
-                stream.exceptions(std::ios::badbit);
-                try {
-#endif
-                stream.unsetf(std::ios::skipws);
-                lcast_set_precision(stream, static_cast<InputStreamable*>(0));
-
-                return stream >> output &&
-                    stream.get() ==
-#if defined(__GNUC__) && (__GNUC__<3) && defined(BOOST_NO_STD_WSTRING)
-        // GCC 2.9x lacks std::char_traits<>::eof().
-        // We use BOOST_NO_STD_WSTRING to filter out STLport and libstdc++-v3
-        // configurations, which do provide std::char_traits<>::eof().
-
-                    EOF;
-#else
-                Traits::eof();
-#endif
-
-#ifndef BOOST_NO_EXCEPTIONS
-                } catch (const ::std::ios_base::failure& /*f*/) {
-                    return false;
-                }
-#endif
-            }
-
-            template<class T>
-            inline bool shr_xchar(T& output)
-            {
-                BOOST_STATIC_ASSERT_MSG(( sizeof(CharT) == sizeof(T) ),
-                    "boost::lexical_cast does not support narrowing of character types."
-                    "Use boost::locale instead" );
-                bool const ok = (finish - start == 1);
-                if (ok) {
-                    CharT out;
-                    Traits::assign(out, *start);
-                    output = static_cast<T>(out);
-                }
-                return ok;
-            }
-
-/************************************ OPERATORS >> ( ... ) ********************************/
-        public:
-            bool operator>>(unsigned short& output)             { return shr_unsigned(output); }
-            bool operator>>(unsigned int& output)               { return shr_unsigned(output); }
-            bool operator>>(unsigned long int& output)          { return shr_unsigned(output); }
-            bool operator>>(short& output)                      { return shr_signed(output); }
-            bool operator>>(int& output)                        { return shr_signed(output); }
-            bool operator>>(long int& output)                   { return shr_signed(output); }
-#if defined(BOOST_HAS_LONG_LONG)
-            bool operator>>(boost::ulong_long_type& output)     { return shr_unsigned(output); }
-            bool operator>>(boost::long_long_type& output)      { return shr_signed(output); }
-#elif defined(BOOST_HAS_MS_INT64)
-            bool operator>>(unsigned __int64& output)           { return shr_unsigned(output); }
-            bool operator>>(__int64& output)                    { return shr_signed(output); }
-#endif
-
-#ifdef BOOST_HAS_INT128
-            bool operator>>(boost::uint128_type& output)        { return shr_unsigned(output); }
-            bool operator>>(boost::int128_type& output)         { return shr_signed(output); }
-#endif
-
-            bool operator>>(char& output)                       { return shr_xchar(output); }
-            bool operator>>(unsigned char& output)              { return shr_xchar(output); }
-            bool operator>>(signed char& output)                { return shr_xchar(output); }
-#if !defined(BOOST_LCAST_NO_WCHAR_T) && !defined(BOOST_NO_INTRINSIC_WCHAR_T)
-            bool operator>>(wchar_t& output)                    { return shr_xchar(output); }
-#endif
-#if !defined(BOOST_NO_CXX11_CHAR16_T) && !defined(BOOST_NO_CXX11_UNICODE_LITERALS)
-            bool operator>>(char16_t& output)                   { return shr_xchar(output); }
-#endif
-#if !defined(BOOST_NO_CXX11_CHAR32_T) && !defined(BOOST_NO_CXX11_UNICODE_LITERALS)
-            bool operator>>(char32_t& output)                   { return shr_xchar(output); }
-#endif
-            template<class Alloc>
-            bool operator>>(std::basic_string<CharT,Traits,Alloc>& str) { str.assign(start, finish); return true; }
-
-            template<class Alloc>
-            bool operator>>(boost::container::basic_string<CharT,Traits,Alloc>& str) { str.assign(start, finish); return true; }
-
-            
-    private:
-            template <std::size_t N, class ArrayT>
-            bool shr_std_array(ArrayT& output) BOOST_NOEXCEPT
-            {
-                using namespace std;
-                const std::size_t size = finish - start;
-                if (size > N - 1) { // `-1` because we need to store \0 at the end 
-                    return false;
-                }
-
-                memcpy(&output[0], start, size * sizeof(CharT));
-                output[size] = Traits::to_char_type(0);
-                return true;
-            }
-
-    public:
-
-            template <std::size_t N>
-            bool operator>>(boost::array<CharT, N>& output) BOOST_NOEXCEPT
-            { 
-                return shr_std_array<N>(output); 
-            }
-
-            template <std::size_t N>
-            bool operator>>(boost::array<unsigned char, N>& output)   
-            { 
-                return ((*this) >> reinterpret_cast<boost::array<char, N>& >(output)); 
-            }
-
-            template <std::size_t N>
-            bool operator>>(boost::array<signed char, N>& output)   
-            { 
-                return ((*this) >> reinterpret_cast<boost::array<char, N>& >(output)); 
-            }
- 
-#ifndef BOOST_NO_CXX11_HDR_ARRAY
-            template <std::size_t N>
-            bool operator>>(std::array<CharT, N>& output) BOOST_NOEXCEPT
-            { 
-                return shr_std_array<N>(output); 
-            }
-
-            template <std::size_t N>
-            bool operator>>(std::array<unsigned char, N>& output)   
-            { 
-                return ((*this) >> reinterpret_cast<std::array<char, N>& >(output)); 
-            }
-
-            template <std::size_t N>
-            bool operator>>(std::array<signed char, N>& output)
-            { 
-                return ((*this) >> reinterpret_cast<std::array<char, N>& >(output)); 
-            }
-#endif
-
-
-            /*
-             * case "-0" || "0" || "+0" :   output = false; return true;
-             * case "1" || "+1":            output = true;  return true;
-             * default:                     return false;
-             */
-            bool operator>>(bool& output) BOOST_NOEXCEPT
-            {
-                CharT const zero = lcast_char_constants<CharT>::zero;
-                CharT const plus = lcast_char_constants<CharT>::plus;
-                CharT const minus = lcast_char_constants<CharT>::minus;
-
-                switch(finish-start)
-                {
-                    case 1:
-                        output = Traits::eq(start[0],  zero+1);
-                        return output || Traits::eq(start[0], zero );
-                    case 2:
-                        if ( Traits::eq( plus, *start) )
-                        {
-                            ++start;
-                            output = Traits::eq(start[0], zero +1);
-                            return output || Traits::eq(start[0], zero );
-                        } else
-                        {
-                            output = false;
-                            return Traits::eq( minus, *start)
-                                && Traits::eq( zero, start[1]);
-                        }
-                    default:
-                        output = false; // Suppress warning about uninitalized variable
-                        return false;
-                }
-            }
-
-            bool operator>>(float& output) { return lcast_ret_float<Traits>(output,start,finish); }
-
-        private:
-            // Not optimised converter
-            template <class T>
-            bool float_types_converter_internal(T& output, int /*tag*/) {
-                if (parse_inf_nan(start, finish, output)) return true;
-                bool return_value = shr_using_base_class(output);
-
-                /* Some compilers and libraries successfully
-                 * parse 'inf', 'INFINITY', '1.0E', '1.0E-'...
-                 * We are trying to provide a unified behaviour,
-                 * so we just forbid such conversions (as some
-                 * of the most popular compilers/libraries do)
-                 * */
-                CharT const minus = lcast_char_constants<CharT>::minus;
-                CharT const plus = lcast_char_constants<CharT>::plus;
-                CharT const capital_e = lcast_char_constants<CharT>::capital_e;
-                CharT const lowercase_e = lcast_char_constants<CharT>::lowercase_e;
-                if ( return_value &&
-                     (
-                        Traits::eq(*(finish-1), lowercase_e)                   // 1.0e
-                        || Traits::eq(*(finish-1), capital_e)                  // 1.0E
-                        || Traits::eq(*(finish-1), minus)                      // 1.0e- or 1.0E-
-                        || Traits::eq(*(finish-1), plus)                       // 1.0e+ or 1.0E+
-                     )
-                ) return false;
-
-                return return_value;
-            }
-
-            // Optimised converter
-            bool float_types_converter_internal(double& output,char /*tag*/) {
-                return lcast_ret_float<Traits>(output,start,finish);
-            }
-        public:
-
-            bool operator>>(double& output)
-            {
-                /*
-                 * Some compilers implement long double as double. In that case these types have
-                 * same size, same precision, same max and min values... And it means,
-                 * that current implementation of lcast_ret_float cannot be used for type
-                 * double, because it will give a big precision loss.
-                 * */
-                boost::mpl::if_c<
-#if (defined(BOOST_HAS_LONG_LONG) || defined(BOOST_HAS_MS_INT64)) && !defined(BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS)
-                    boost::type_traits::ice_eq< sizeof(double), sizeof(long double) >::value,
-#else
-                     1,
-#endif
-                    int,
-                    char
-                >::type tag = 0;
-
-                return float_types_converter_internal(output, tag);
-            }
-
-            bool operator>>(long double& output)
-            {
-                int tag = 0;
-                return float_types_converter_internal(output, tag);
-            }
-
-            // Generic istream-based algorithm.
-            // lcast_streambuf_for_target<InputStreamable>::value is true.
-            template<typename InputStreamable>
-            bool operator>>(InputStreamable& output) { return shr_using_base_class(output); }
-        };
-    }
-
-    namespace detail
-    {
-        template<typename T>
-        struct is_stdstring
-        {
-            BOOST_STATIC_CONSTANT(bool, value = false );
-        };
-
-        template<typename CharT, typename Traits, typename Alloc>
-        struct is_stdstring< std::basic_string<CharT, Traits, Alloc> >
-        {
-            BOOST_STATIC_CONSTANT(bool, value = true );
-        };
-
-        template<typename CharT, typename Traits, typename Alloc>
-        struct is_stdstring< boost::container::basic_string<CharT, Traits, Alloc> >
-        {
-            BOOST_STATIC_CONSTANT(bool, value = true );
-        };
-
-        template<typename Target, typename Source>
-        struct is_arithmetic_and_not_xchars
-        {
-            BOOST_STATIC_CONSTANT(bool, value =
-               (
-                   boost::type_traits::ice_and<
-                           boost::is_arithmetic<Source>::value,
-                           boost::is_arithmetic<Target>::value,
-                           boost::type_traits::ice_not<
-                                detail::is_char_or_wchar<Target>::value
-                           >::value,
-                           boost::type_traits::ice_not<
-                                detail::is_char_or_wchar<Source>::value
-                           >::value
-                   >::value
-               )
-            );
-        };
-
-        /*
-         * is_xchar_to_xchar<Target, Source>::value is true, when
-         * Target and Souce are the same char types, or when
-         * Target and Souce are char types of the same size.
-         */
-        template<typename Target, typename Source>
-        struct is_xchar_to_xchar
-        {
-            BOOST_STATIC_CONSTANT(bool, value =
-                (
-                    boost::type_traits::ice_or<
-                        boost::type_traits::ice_and<
-                             is_same<Source,Target>::value,
-                             is_char_or_wchar<Target>::value
-                        >::value,
-                        boost::type_traits::ice_and<
-                             boost::type_traits::ice_eq< sizeof(char),sizeof(Target)>::value,
-                             boost::type_traits::ice_eq< sizeof(char),sizeof(Source)>::value,
-                             is_char_or_wchar<Target>::value,
-                             is_char_or_wchar<Source>::value
-                        >::value
-                    >::value
-                )
-            );
-        };
-
-        template<typename Target, typename Source>
-        struct is_char_array_to_stdstring
-        {
-            BOOST_STATIC_CONSTANT(bool, value = false );
-        };
-
-        template<typename CharT, typename Traits, typename Alloc>
-        struct is_char_array_to_stdstring< std::basic_string<CharT, Traits, Alloc>, CharT* >
-        {
-            BOOST_STATIC_CONSTANT(bool, value = true );
-        };
-
-        template<typename CharT, typename Traits, typename Alloc>
-        struct is_char_array_to_stdstring< std::basic_string<CharT, Traits, Alloc>, const CharT* >
-        {
-            BOOST_STATIC_CONSTANT(bool, value = true );
-        };
-
-        template<typename CharT, typename Traits, typename Alloc>
-        struct is_char_array_to_stdstring< boost::container::basic_string<CharT, Traits, Alloc>, CharT* >
-        {
-            BOOST_STATIC_CONSTANT(bool, value = true );
-        };
-
-        template<typename CharT, typename Traits, typename Alloc>
-        struct is_char_array_to_stdstring< boost::container::basic_string<CharT, Traits, Alloc>, const CharT* >
-        {
-            BOOST_STATIC_CONSTANT(bool, value = true );
-        };
-
-#if (defined _MSC_VER)
-# pragma warning( push )
-# pragma warning( disable : 4701 ) // possible use of ... before initialization
-# pragma warning( disable : 4702 ) // unreachable code
-# pragma warning( disable : 4267 ) // conversion from 'size_t' to 'unsigned int'
-#endif
-        template<typename Target, typename Source>
-        struct lexical_cast_do_cast
-        {
-            static inline Target lexical_cast_impl(const Source& arg)
-            {
-                typedef lexical_cast_stream_traits<Source, Target>  stream_trait;
-                
-                typedef detail::lexical_stream_limited_src<
-                    BOOST_DEDUCED_TYPENAME stream_trait::char_type, 
-                    BOOST_DEDUCED_TYPENAME stream_trait::traits, 
-                    stream_trait::requires_stringbuf 
-                > interpreter_type;
-
-                // Target type must be default constructible
-                Target result;               
-
-                BOOST_DEDUCED_TYPENAME stream_trait::char_type buf[stream_trait::len_t::value + 1];
-                stream_trait::len_t::check_coverage();
-
-                interpreter_type interpreter(buf, buf + stream_trait::len_t::value + 1);
-
-                // Disabling ADL, by directly specifying operators.
-                if(!(interpreter.operator <<(arg) && interpreter.operator >>(result)))
-                  BOOST_LCAST_THROW_BAD_CAST(Source, Target);
-
-                return result;
-            }
-        };
-#if (defined _MSC_VER)
-# pragma warning( pop )
-#endif
-
-        template <typename Source>
-        struct lexical_cast_copy
-        {
-            static inline const Source& lexical_cast_impl(const Source &arg) BOOST_NOEXCEPT
-            {
-                return arg;
-            }
-        };
-
-        template <class Source, class Target >
-        struct detect_precision_loss
-        {
-         typedef boost::numeric::Trunc<Source> Rounder;
-         typedef Source source_type ;
-
-         typedef BOOST_DEDUCED_TYPENAME mpl::if_<
-            boost::is_arithmetic<Source>, Source, Source const&
-          >::type argument_type ;
-
-         static source_type nearbyint ( argument_type s )
-         {
-            const source_type near_int = Rounder::nearbyint(s);
-            if (near_int) {
-                const source_type orig_div_round = s / near_int;
-                const source_type eps = std::numeric_limits<source_type>::epsilon();
-
-                if ((orig_div_round > 1 ? orig_div_round - 1 : 1 - orig_div_round) > eps)
-                    BOOST_LCAST_THROW_BAD_CAST(Source, Target);
-            }
-
-            return s ;
-         }
-
-         typedef typename Rounder::round_style round_style;
-        } ;
-
-        template <class Source, class Target >
-        struct nothrow_overflow_handler
-        {
-          void operator() ( boost::numeric::range_check_result r )
-          {
-            if (r != boost::numeric::cInRange)
-                BOOST_LCAST_THROW_BAD_CAST(Source, Target);
-          }
-        } ;
-
-        template <typename Target, typename Source>
-        struct lexical_cast_dynamic_num_not_ignoring_minus
-        {
-            static inline Target lexical_cast_impl(const Source &arg)
-            {
-                return boost::numeric::converter<
-                        Target,
-                        Source,
-                        boost::numeric::conversion_traits<Target,Source>,
-                        nothrow_overflow_handler<Source, Target>,
-                        detect_precision_loss<Source, Target>
-                >::convert(arg);
-            }
-        };
-
-        template <typename Target, typename Source>
-        struct lexical_cast_dynamic_num_ignoring_minus
-        {
-            static inline Target lexical_cast_impl(const Source &arg)
-            {
-                typedef BOOST_DEDUCED_TYPENAME boost::mpl::eval_if_c<
-                        boost::is_float<Source>::value,
-                        boost::mpl::identity<Source>,
-                        boost::make_unsigned<Source>
-                >::type usource_t;
-
-                typedef boost::numeric::converter<
-                        Target,
-                        usource_t,
-                        boost::numeric::conversion_traits<Target,usource_t>,
-                        nothrow_overflow_handler<usource_t, Target>,
-                        detect_precision_loss<usource_t, Target>
-                > converter_t;
-
-                return (
-                    arg < 0 ? static_cast<Target>(0u - converter_t::convert(0u - arg)) : converter_t::convert(arg)
-                );
-            }
-        };
-
-        /*
-         * lexical_cast_dynamic_num follows the rules:
-         * 1) If Source can be converted to Target without precision loss and
-         * without overflows, then assign Source to Target and return
-         *
-         * 2) If Source is less than 0 and Target is an unsigned integer,
-         * then negate Source, check the requirements of rule 1) and if
-         * successful, assign static_casted Source to Target and return
-         *
-         * 3) Otherwise throw a bad_lexical_cast exception
-         *
-         *
-         * Rule 2) required because boost::lexical_cast has the behavior of
-         * stringstream, which uses the rules of scanf for conversions. And
-         * in the C99 standard for unsigned input value minus sign is
-         * optional, so if a negative number is read, no errors will arise
-         * and the result will be the two's complement.
-         */
-        template <typename Target, typename Source>
-        struct lexical_cast_dynamic_num
-        {
-            static inline Target lexical_cast_impl(const Source &arg)
-            {
-                typedef BOOST_DEDUCED_TYPENAME boost::mpl::if_c<
-                    boost::type_traits::ice_and<
-                        boost::type_traits::ice_or<
-                            boost::is_signed<Source>::value,
-                            boost::is_float<Source>::value
-                        >::value,
-                        boost::type_traits::ice_not<
-                            boost::is_same<Source, bool>::value
-                        >::value,
-                        boost::type_traits::ice_not<
-                            boost::is_same<Target, bool>::value
-                        >::value,
-                        boost::is_unsigned<Target>::value
-                    >::value,
-                    lexical_cast_dynamic_num_ignoring_minus<Target, Source>,
-                    lexical_cast_dynamic_num_not_ignoring_minus<Target, Source>
-                >::type caster_type;
-
-                return caster_type::lexical_cast_impl(arg);
-            }
-        };
-    }
-
-    template <typename Target, typename Source>
-    inline Target lexical_cast(const Source &arg)
-    {
-        typedef BOOST_DEDUCED_TYPENAME boost::detail::array_to_pointer_decay<Source>::type src;
-
-        typedef BOOST_DEDUCED_TYPENAME boost::type_traits::ice_or<
-                boost::detail::is_xchar_to_xchar<Target, src >::value,
-                boost::detail::is_char_array_to_stdstring<Target, src >::value,
-                boost::type_traits::ice_and<
-                     boost::is_same<Target, src >::value,
-                     boost::detail::is_stdstring<Target >::value
-                >::value
-        > shall_we_copy_t;
-
-        typedef BOOST_DEDUCED_TYPENAME
-                boost::detail::is_arithmetic_and_not_xchars<Target, src > shall_we_copy_with_dynamic_check_t;
-
-        typedef BOOST_DEDUCED_TYPENAME boost::mpl::if_c<
-            shall_we_copy_t::value,
-            boost::detail::lexical_cast_copy<src >,
-            BOOST_DEDUCED_TYPENAME boost::mpl::if_c<
-                 shall_we_copy_with_dynamic_check_t::value,
-                 boost::detail::lexical_cast_dynamic_num<Target, src >,
-                 boost::detail::lexical_cast_do_cast<Target, src >
-            >::type
-        >::type caster_type;
-
-        return caster_type::lexical_cast_impl(arg);
-    }
-
-    template <typename Target>
-    inline Target lexical_cast(const char* chars, std::size_t count)
-     {
-        return ::boost::lexical_cast<Target>(
-            ::boost::iterator_range<const char*>(chars, chars + count)
-        );
-    }
-
-
-    template <typename Target>
-    inline Target lexical_cast(const unsigned char* chars, std::size_t count)
-    {
-         return ::boost::lexical_cast<Target>(
-            ::boost::iterator_range<const unsigned char*>(chars, chars + count)
-         );
-     }
-
-    template <typename Target>
-    inline Target lexical_cast(const signed char* chars, std::size_t count)
-    {
-        return ::boost::lexical_cast<Target>(
-            ::boost::iterator_range<const signed char*>(chars, chars + count)
-        );
-    }
-
-#ifndef BOOST_LCAST_NO_WCHAR_T
-    template <typename Target>
-    inline Target lexical_cast(const wchar_t* chars, std::size_t count)
-    {
-        return ::boost::lexical_cast<Target>(
-            ::boost::iterator_range<const wchar_t*>(chars, chars + count)
-        );
-    }
-#endif
-#ifndef BOOST_NO_CXX11_CHAR16_T
-    template <typename Target>
-    inline Target lexical_cast(const char16_t* chars, std::size_t count)
-    {
-        return ::boost::lexical_cast<Target>(
-            ::boost::iterator_range<const char16_t*>(chars, chars + count)
-        );
-    }
-#endif
-#ifndef BOOST_NO_CXX11_CHAR32_T
-    template <typename Target>
-    inline Target lexical_cast(const char32_t* chars, std::size_t count)
-    {
-        return ::boost::lexical_cast<Target>(
-            ::boost::iterator_range<const char32_t*>(chars, chars + count)
-        );
-    }
-#endif
-
-} // namespace boost
-
-#else // #ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-namespace boost {
-    namespace detail
-    {
-
-        // selectors for choosing stream character type
-        template<typename Type>
-        struct stream_char
-        {
-            typedef char type;
-        };
-
-#ifndef BOOST_LCAST_NO_WCHAR_T
-#ifndef BOOST_NO_INTRINSIC_WCHAR_T
-        template<>
-        struct stream_char<wchar_t>
-        {
-            typedef wchar_t type;
-        };
-#endif
-
-        template<>
-        struct stream_char<wchar_t *>
-        {
-            typedef wchar_t type;
-        };
-
-        template<>
-        struct stream_char<const wchar_t *>
-        {
-            typedef wchar_t type;
-        };
-
-        template<>
-        struct stream_char<std::wstring>
-        {
-            typedef wchar_t type;
-        };
-#endif
-
-        // stream wrapper for handling lexical conversions
-        template<typename Target, typename Source, typename Traits>
-        class lexical_stream
-        {
-        private:
-            typedef typename widest_char<
-                typename stream_char<Target>::type,
-                typename stream_char<Source>::type>::type char_type;
-
-            typedef Traits traits_type;
-
-        public:
-            lexical_stream(char_type* = 0, char_type* = 0)
-            {
-                stream.unsetf(std::ios::skipws);
-                lcast_set_precision(stream, static_cast<Source*>(0), static_cast<Target*>(0) );
-            }
-            ~lexical_stream()
-            {
-                #if defined(BOOST_NO_STRINGSTREAM)
-                stream.freeze(false);
-                #endif
-            }
-            bool operator<<(const Source &input)
-            {
-                return !(stream << input).fail();
-            }
-            template<typename InputStreamable>
-            bool operator>>(InputStreamable &output)
-            {
-                return !is_pointer<InputStreamable>::value &&
-                       stream >> output &&
-                       stream.get() ==
-#if defined(__GNUC__) && (__GNUC__<3) && defined(BOOST_NO_STD_WSTRING)
-// GCC 2.9x lacks std::char_traits<>::eof().
-// We use BOOST_NO_STD_WSTRING to filter out STLport and libstdc++-v3
-// configurations, which do provide std::char_traits<>::eof().
-
-                           EOF;
-#else
-                           traits_type::eof();
-#endif
-            }
-
-            bool operator>>(std::string &output)
-            {
-                #if defined(BOOST_NO_STRINGSTREAM)
-                stream << '\0';
-                #endif
-                stream.str().swap(output);
-                return true;
-            }
-            #ifndef BOOST_LCAST_NO_WCHAR_T
-            bool operator>>(std::wstring &output)
-            {
-                stream.str().swap(output);
-                return true;
-            }
-            #endif
-
-        private:
-            #if defined(BOOST_NO_STRINGSTREAM)
-            std::strstream stream;
-            #elif defined(BOOST_NO_STD_LOCALE)
-            std::stringstream stream;
-            #else
-            std::basic_stringstream<char_type,traits_type> stream;
-            #endif
-        };
-    }
-
-    // call-by-value fallback version (deprecated)
-
-    template<typename Target, typename Source>
-    Target lexical_cast(Source arg)
-    {
-        typedef typename detail::widest_char< 
-            BOOST_DEDUCED_TYPENAME detail::stream_char<Target>::type 
-          , BOOST_DEDUCED_TYPENAME detail::stream_char<Source>::type 
-        >::type char_type; 
-
-        typedef std::char_traits<char_type> traits;
-        detail::lexical_stream<Target, Source, traits> interpreter;
-        Target result;
-
-        if(!(interpreter << arg && interpreter >> result))
-          BOOST_LCAST_THROW_BAD_CAST(Source, Target);
-        return result;
-    }
-
-} // namespace boost
-
-#endif
-
-// Copyright Kevlin Henney, 2000-2005.
-// Copyright Alexander Nasonov, 2006-2010.
-// Copyright Antony Polukhin, 2011-2013.
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#undef BOOST_LCAST_THROW_BAD_CAST
-#undef BOOST_LCAST_NO_WCHAR_T
-
-#endif // BOOST_LEXICAL_CAST_INCLUDED
-
diff --git a/boost/limits.hpp b/boost/limits.hpp
deleted file mode 100644
index 47d8155..0000000
--- a/boost/limits.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-
-//  (C) Copyright John maddock 1999. 
-//  (C) David Abrahams 2002.  Distributed under the Boost
-//  Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-// use this header as a workaround for missing <limits>
-
-//  See http://www.boost.org/libs/compatibility/index.html for documentation.
-
-#ifndef BOOST_LIMITS
-#define BOOST_LIMITS
-
-#include <boost/config.hpp>
-
-#ifdef BOOST_NO_LIMITS
-#  error "There is no std::numeric_limits suppport available."
-#else
-# include <limits>
-#endif
-
-#if (defined(BOOST_HAS_LONG_LONG) && defined(BOOST_NO_LONG_LONG_NUMERIC_LIMITS)) \
-      || (defined(BOOST_HAS_MS_INT64) && defined(BOOST_NO_MS_INT64_NUMERIC_LIMITS))
-// Add missing specializations for numeric_limits:
-#ifdef BOOST_HAS_MS_INT64
-#  define BOOST_LLT __int64
-#  define BOOST_ULLT unsigned __int64
-#else
-#  define BOOST_LLT  ::boost::long_long_type
-#  define BOOST_ULLT  ::boost::ulong_long_type
-#endif
-
-#include <climits>  // for CHAR_BIT
-
-namespace std
-{
-  template<>
-  class numeric_limits<BOOST_LLT> 
-  {
-   public:
-
-      BOOST_STATIC_CONSTANT(bool, is_specialized = true);
-#ifdef BOOST_HAS_MS_INT64
-      static BOOST_LLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return 0x8000000000000000i64; }
-      static BOOST_LLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return 0x7FFFFFFFFFFFFFFFi64; }
-#elif defined(LLONG_MAX)
-      static BOOST_LLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return LLONG_MIN; }
-      static BOOST_LLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return LLONG_MAX; }
-#elif defined(LONGLONG_MAX)
-      static BOOST_LLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return LONGLONG_MIN; }
-      static BOOST_LLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return LONGLONG_MAX; }
-#else
-      static BOOST_LLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return 1LL << (sizeof(BOOST_LLT) * CHAR_BIT - 1); }
-      static BOOST_LLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return ~(min)(); }
-#endif
-      BOOST_STATIC_CONSTANT(int, digits = sizeof(BOOST_LLT) * CHAR_BIT -1);
-      BOOST_STATIC_CONSTANT(int, digits10 = (CHAR_BIT * sizeof (BOOST_LLT) - 1) * 301L / 1000);
-      BOOST_STATIC_CONSTANT(bool, is_signed = true);
-      BOOST_STATIC_CONSTANT(bool, is_integer = true);
-      BOOST_STATIC_CONSTANT(bool, is_exact = true);
-      BOOST_STATIC_CONSTANT(int, radix = 2);
-      static BOOST_LLT epsilon() throw() { return 0; };
-      static BOOST_LLT round_error() throw() { return 0; };
-
-      BOOST_STATIC_CONSTANT(int, min_exponent = 0);
-      BOOST_STATIC_CONSTANT(int, min_exponent10 = 0);
-      BOOST_STATIC_CONSTANT(int, max_exponent = 0);
-      BOOST_STATIC_CONSTANT(int, max_exponent10 = 0);
-
-      BOOST_STATIC_CONSTANT(bool, has_infinity = false);
-      BOOST_STATIC_CONSTANT(bool, has_quiet_NaN = false);
-      BOOST_STATIC_CONSTANT(bool, has_signaling_NaN = false);
-      BOOST_STATIC_CONSTANT(bool, has_denorm = false);
-      BOOST_STATIC_CONSTANT(bool, has_denorm_loss = false);
-      static BOOST_LLT infinity() throw() { return 0; };
-      static BOOST_LLT quiet_NaN() throw() { return 0; };
-      static BOOST_LLT signaling_NaN() throw() { return 0; };
-      static BOOST_LLT denorm_min() throw() { return 0; };
-
-      BOOST_STATIC_CONSTANT(bool, is_iec559 = false);
-      BOOST_STATIC_CONSTANT(bool, is_bounded = true);
-      BOOST_STATIC_CONSTANT(bool, is_modulo = true);
-
-      BOOST_STATIC_CONSTANT(bool, traps = false);
-      BOOST_STATIC_CONSTANT(bool, tinyness_before = false);
-      BOOST_STATIC_CONSTANT(float_round_style, round_style = round_toward_zero);
-      
-  };
-
-  template<>
-  class numeric_limits<BOOST_ULLT> 
-  {
-   public:
-
-      BOOST_STATIC_CONSTANT(bool, is_specialized = true);
-#ifdef BOOST_HAS_MS_INT64
-      static BOOST_ULLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return 0ui64; }
-      static BOOST_ULLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return 0xFFFFFFFFFFFFFFFFui64; }
-#elif defined(ULLONG_MAX) && defined(ULLONG_MIN)
-      static BOOST_ULLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return ULLONG_MIN; }
-      static BOOST_ULLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return ULLONG_MAX; }
-#elif defined(ULONGLONG_MAX) && defined(ULONGLONG_MIN)
-      static BOOST_ULLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return ULONGLONG_MIN; }
-      static BOOST_ULLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return ULONGLONG_MAX; }
-#else
-      static BOOST_ULLT min BOOST_PREVENT_MACRO_SUBSTITUTION (){ return 0uLL; }
-      static BOOST_ULLT max BOOST_PREVENT_MACRO_SUBSTITUTION (){ return ~0uLL; }
-#endif
-      BOOST_STATIC_CONSTANT(int, digits = sizeof(BOOST_LLT) * CHAR_BIT);
-      BOOST_STATIC_CONSTANT(int, digits10 = (CHAR_BIT * sizeof (BOOST_LLT)) * 301L / 1000);
-      BOOST_STATIC_CONSTANT(bool, is_signed = false);
-      BOOST_STATIC_CONSTANT(bool, is_integer = true);
-      BOOST_STATIC_CONSTANT(bool, is_exact = true);
-      BOOST_STATIC_CONSTANT(int, radix = 2);
-      static BOOST_ULLT epsilon() throw() { return 0; };
-      static BOOST_ULLT round_error() throw() { return 0; };
-
-      BOOST_STATIC_CONSTANT(int, min_exponent = 0);
-      BOOST_STATIC_CONSTANT(int, min_exponent10 = 0);
-      BOOST_STATIC_CONSTANT(int, max_exponent = 0);
-      BOOST_STATIC_CONSTANT(int, max_exponent10 = 0);
-
-      BOOST_STATIC_CONSTANT(bool, has_infinity = false);
-      BOOST_STATIC_CONSTANT(bool, has_quiet_NaN = false);
-      BOOST_STATIC_CONSTANT(bool, has_signaling_NaN = false);
-      BOOST_STATIC_CONSTANT(bool, has_denorm = false);
-      BOOST_STATIC_CONSTANT(bool, has_denorm_loss = false);
-      static BOOST_ULLT infinity() throw() { return 0; };
-      static BOOST_ULLT quiet_NaN() throw() { return 0; };
-      static BOOST_ULLT signaling_NaN() throw() { return 0; };
-      static BOOST_ULLT denorm_min() throw() { return 0; };
-
-      BOOST_STATIC_CONSTANT(bool, is_iec559 = false);
-      BOOST_STATIC_CONSTANT(bool, is_bounded = true);
-      BOOST_STATIC_CONSTANT(bool, is_modulo = true);
-
-      BOOST_STATIC_CONSTANT(bool, traps = false);
-      BOOST_STATIC_CONSTANT(bool, tinyness_before = false);
-      BOOST_STATIC_CONSTANT(float_round_style, round_style = round_toward_zero);
-      
-  };
-}
-#endif 
-
-#endif
-
diff --git a/boost/math/constants/calculate_constants.hpp b/boost/math/constants/calculate_constants.hpp
deleted file mode 100644
index 297e0b9..0000000
--- a/boost/math/constants/calculate_constants.hpp
+++ /dev/null
@@ -1,968 +0,0 @@
-//  Copyright John Maddock 2010, 2012.
-//  Copyright Paul A. Bristow 2011, 2012.
-
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_CALCULATE_CONSTANTS_CONSTANTS_INCLUDED
-#define BOOST_MATH_CALCULATE_CONSTANTS_CONSTANTS_INCLUDED
-
-#include <boost/math/special_functions/trunc.hpp>
-
-namespace boost{ namespace math{ namespace constants{ namespace detail{
-
-template <class T>
-template<int N>
-inline T constant_pi<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   BOOST_MATH_STD_USING
-
-   return ldexp(acos(T(0)), 1);
-
-   /*
-   // Although this code works well, it's usually more accurate to just call acos
-   // and access the number types own representation of PI which is usually calculated
-   // at slightly higher precision...
-
-   T result;
-   T a = 1;
-   T b;
-   T A(a);
-   T B = 0.5f;
-   T D = 0.25f;
-
-   T lim;
-   lim = boost::math::tools::epsilon<T>();
-
-   unsigned k = 1;
-
-   do
-   {
-      result = A + B;
-      result = ldexp(result, -2);
-      b = sqrt(B);
-      a += b;
-      a = ldexp(a, -1);
-      A = a * a;
-      B = A - result;
-      B = ldexp(B, 1);
-      result = A - B;
-      bool neg = boost::math::sign(result) < 0;
-      if(neg)
-         result = -result;
-      if(result <= lim)
-         break;
-      if(neg)
-         result = -result;
-      result = ldexp(result, k - 1);
-      D -= result;
-      ++k;
-      lim = ldexp(lim, 1);
-   }
-   while(true);
-
-   result = B / D;
-   return result;
-   */
-}
-
-template <class T>
-template<int N>
-inline T constant_two_pi<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   return 2 * pi<T, policies::policy<policies::digits2<N> > >();
-}
-
-template <class T> // 2 / pi
-template<int N>
-inline T constant_two_div_pi<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   return 2 / pi<T, policies::policy<policies::digits2<N> > >();
-}
-
-template <class T>  // sqrt(2/pi)
-template <int N>
-inline T constant_root_two_div_pi<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   BOOST_MATH_STD_USING
-   return sqrt((2 / pi<T, policies::policy<policies::digits2<N> > >()));
-}
-
-template <class T>
-template<int N>
-inline T constant_one_div_two_pi<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   return 1 / two_pi<T, policies::policy<policies::digits2<N> > >();
-}
-
-template <class T>
-template<int N>
-inline T constant_root_pi<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   BOOST_MATH_STD_USING
-   return sqrt(pi<T, policies::policy<policies::digits2<N> > >());
-}
-
-template <class T>
-template<int N>
-inline T constant_root_half_pi<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   BOOST_MATH_STD_USING
-   return sqrt(pi<T, policies::policy<policies::digits2<N> > >() / 2);
-}
-
-template <class T>
-template<int N>
-inline T constant_root_two_pi<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   BOOST_MATH_STD_USING
-   return sqrt(two_pi<T, policies::policy<policies::digits2<N> > >());
-}
-
-template <class T>
-template<int N>
-inline T constant_log_root_two_pi<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   BOOST_MATH_STD_USING
-   return log(root_two_pi<T, policies::policy<policies::digits2<N> > >());
-}
-
-template <class T>
-template<int N>
-inline T constant_root_ln_four<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   BOOST_MATH_STD_USING
-   return sqrt(log(static_cast<T>(4)));
-}
-
-template <class T>
-template<int N>
-inline T constant_e<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   //
-   // Although we can clearly calculate this from first principles, this hooks into
-   // T's own notion of e, which hopefully will more accurate than one calculated to
-   // a few epsilon:
-   //
-   BOOST_MATH_STD_USING
-   return exp(static_cast<T>(1));
-}
-
-template <class T>
-template<int N>
-inline T constant_half<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   return static_cast<T>(1) / static_cast<T>(2);
-}
-
-template <class T>
-template<int M>
-inline T constant_euler<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<M>))
-{
-   BOOST_MATH_STD_USING
-   //
-   // This is the method described in:
-   // "Some New Algorithms for High-Precision Computation of Euler's Constant"
-   // Richard P Brent and Edwin M McMillan.
-   // Mathematics of Computation, Volume 34, Number 149, Jan 1980, pages 305-312.
-   // See equation 17 with p = 2.
-   //
-   T n = 3 + (M ? (std::min)(M, tools::digits<T>()) : tools::digits<T>()) / 4;
-   T lim = M ? ldexp(T(1), 1 - (std::min)(M, tools::digits<T>())) : tools::epsilon<T>();
-   T lnn = log(n);
-   T term = 1;
-   T N = -lnn;
-   T D = 1;
-   T Hk = 0;
-   T one = 1;
-
-   for(unsigned k = 1;; ++k)
-   {
-      term *= n * n;
-      term /= k * k;
-      Hk += one / k;
-      N += term * (Hk - lnn);
-      D += term;
-
-      if(term < D * lim)
-         break;
-   }
-   return N / D;
-}
-
-template <class T>
-template<int N>
-inline T constant_euler_sqr<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-  BOOST_MATH_STD_USING
-  return euler<T, policies::policy<policies::digits2<N> > >()
-     * euler<T, policies::policy<policies::digits2<N> > >();
-}
-
-template <class T>
-template<int N>
-inline T constant_one_div_euler<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-  BOOST_MATH_STD_USING
-  return static_cast<T>(1)
-     / euler<T, policies::policy<policies::digits2<N> > >();
-}
-
-
-template <class T>
-template<int N>
-inline T constant_root_two<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   BOOST_MATH_STD_USING
-   return sqrt(static_cast<T>(2));
-}
-
-
-template <class T>
-template<int N>
-inline T constant_root_three<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   BOOST_MATH_STD_USING
-   return sqrt(static_cast<T>(3));
-}
-
-template <class T>
-template<int N>
-inline T constant_half_root_two<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   BOOST_MATH_STD_USING
-   return sqrt(static_cast<T>(2)) / 2;
-}
-
-template <class T>
-template<int N>
-inline T constant_ln_two<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   //
-   // Although there are good ways to calculate this from scratch, this hooks into
-   // T's own notion of log(2) which will hopefully be accurate to the full precision
-   // of T:
-   //
-   BOOST_MATH_STD_USING
-   return log(static_cast<T>(2));
-}
-
-template <class T>
-template<int N>
-inline T constant_ln_ten<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   BOOST_MATH_STD_USING
-   return log(static_cast<T>(10));
-}
-
-template <class T>
-template<int N>
-inline T constant_ln_ln_two<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   BOOST_MATH_STD_USING
-   return log(log(static_cast<T>(2)));
-}
-
-template <class T>
-template<int N>
-inline T constant_third<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   BOOST_MATH_STD_USING
-   return static_cast<T>(1) / static_cast<T>(3);
-}
-
-template <class T>
-template<int N>
-inline T constant_twothirds<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   BOOST_MATH_STD_USING
-   return static_cast<T>(2) / static_cast<T>(3);
-}
-
-template <class T>
-template<int N>
-inline T constant_two_thirds<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   BOOST_MATH_STD_USING
-   return static_cast<T>(2) / static_cast<T>(3);
-}
-
-template <class T>
-template<int N>
-inline T constant_three_quarters<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   BOOST_MATH_STD_USING
-   return static_cast<T>(3) / static_cast<T>(4);
-}
-
-template <class T>
-template<int N>
-inline T constant_pi_minus_three<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   return pi<T, policies::policy<policies::digits2<N> > >() - static_cast<T>(3);
-}
-
-template <class T>
-template<int N>
-inline T constant_four_minus_pi<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   return static_cast<T>(4) - pi<T, policies::policy<policies::digits2<N> > >();
-}
-
-template <class T>
-template<int N>
-inline T constant_pow23_four_minus_pi<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   BOOST_MATH_STD_USING
-   return pow(four_minus_pi<T, policies::policy<policies::digits2<N> > >(), static_cast<T>(1.5));
-}
-
-template <class T>
-template<int N>
-inline T constant_exp_minus_half<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   BOOST_MATH_STD_USING
-   return exp(static_cast<T>(-0.5));
-}
-
-// Pi
-template <class T>
-template<int N>
-inline T constant_one_div_root_two<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   return static_cast<T>(1) / root_two<T, policies::policy<policies::digits2<N> > >();
-}
-
-template <class T>
-template<int N>
-inline T constant_one_div_root_pi<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   return static_cast<T>(1) / root_pi<T, policies::policy<policies::digits2<N> > >();
-}
-
-template <class T>
-template<int N>
-inline T constant_one_div_root_two_pi<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   return static_cast<T>(1) / root_two_pi<T, policies::policy<policies::digits2<N> > >();
-}
-
-template <class T>
-template<int N>
-inline T constant_root_one_div_pi<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   BOOST_MATH_STD_USING
-   return sqrt(static_cast<T>(1) / pi<T, policies::policy<policies::digits2<N> > >());
-}
-
-
-template <class T>
-template<int N>
-inline T constant_four_thirds_pi<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   BOOST_MATH_STD_USING
-   return pi<T, policies::policy<policies::digits2<N> > >() * static_cast<T>(4) / static_cast<T>(3);
-}
-
-template <class T>
-template<int N>
-inline T constant_half_pi<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   BOOST_MATH_STD_USING
-   return pi<T, policies::policy<policies::digits2<N> > >()  / static_cast<T>(2);
-}
-
-
-template <class T>
-template<int N>
-inline T constant_third_pi<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   BOOST_MATH_STD_USING
-   return pi<T, policies::policy<policies::digits2<N> > >()  / static_cast<T>(3);
-}
-
-template <class T>
-template<int N>
-inline T constant_sixth_pi<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   BOOST_MATH_STD_USING
-   return pi<T, policies::policy<policies::digits2<N> > >()  / static_cast<T>(6);
-}
-
-template <class T>
-template<int N>
-inline T constant_two_thirds_pi<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   BOOST_MATH_STD_USING
-   return pi<T, policies::policy<policies::digits2<N> > >() * static_cast<T>(2) / static_cast<T>(3);
-}
-
-template <class T>
-template<int N>
-inline T constant_three_quarters_pi<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   BOOST_MATH_STD_USING
-   return pi<T, policies::policy<policies::digits2<N> > >() * static_cast<T>(3) / static_cast<T>(4);
-}
-
-template <class T>
-template<int N>
-inline T constant_pi_pow_e<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   BOOST_MATH_STD_USING
-   return pow(pi<T, policies::policy<policies::digits2<N> > >(), e<T, policies::policy<policies::digits2<N> > >()); //
-}
-
-template <class T>
-template<int N>
-inline T constant_pi_sqr<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   BOOST_MATH_STD_USING
-   return pi<T, policies::policy<policies::digits2<N> > >()
-   *      pi<T, policies::policy<policies::digits2<N> > >() ; //
-}
-
-template <class T>
-template<int N>
-inline T constant_pi_sqr_div_six<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   BOOST_MATH_STD_USING
-   return pi<T, policies::policy<policies::digits2<N> > >()
-   *      pi<T, policies::policy<policies::digits2<N> > >()
-   / static_cast<T>(6); //
-}
-
-
-template <class T>
-template<int N>
-inline T constant_pi_cubed<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   BOOST_MATH_STD_USING
-   return pi<T, policies::policy<policies::digits2<N> > >()
-   *      pi<T, policies::policy<policies::digits2<N> > >()
-   *      pi<T, policies::policy<policies::digits2<N> > >()
-   ; //
-}
-
-template <class T>
-template<int N>
-inline T constant_cbrt_pi<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   BOOST_MATH_STD_USING
-   return pow(pi<T, policies::policy<policies::digits2<N> > >(), static_cast<T>(1)/ static_cast<T>(3));
-}
-
-template <class T>
-template<int N>
-inline T constant_one_div_cbrt_pi<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   BOOST_MATH_STD_USING
-   return static_cast<T>(1)
-   / pow(pi<T, policies::policy<policies::digits2<N> > >(), static_cast<T>(1)/ static_cast<T>(3));
-}
-
-// Euler's e
-
-template <class T>
-template<int N>
-inline T constant_e_pow_pi<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   BOOST_MATH_STD_USING
-   return pow(e<T, policies::policy<policies::digits2<N> > >(), pi<T, policies::policy<policies::digits2<N> > >()); //
-}
-
-template <class T>
-template<int N>
-inline T constant_root_e<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   BOOST_MATH_STD_USING
-   return sqrt(e<T, policies::policy<policies::digits2<N> > >());
-}
-
-template <class T>
-template<int N>
-inline T constant_log10_e<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   BOOST_MATH_STD_USING
-   return log10(e<T, policies::policy<policies::digits2<N> > >());
-}
-
-template <class T>
-template<int N>
-inline T constant_one_div_log10_e<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   BOOST_MATH_STD_USING
-   return  static_cast<T>(1) /
-     log10(e<T, policies::policy<policies::digits2<N> > >());
-}
-
-// Trigonometric
-
-template <class T>
-template<int N>
-inline T constant_degree<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   BOOST_MATH_STD_USING
-   return pi<T, policies::policy<policies::digits2<N> > >()
-   / static_cast<T>(180)
-   ; //
-}
-
-template <class T>
-template<int N>
-inline T constant_radian<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   BOOST_MATH_STD_USING
-   return static_cast<T>(180)
-   / pi<T, policies::policy<policies::digits2<N> > >()
-   ; //
-}
-
-template <class T>
-template<int N>
-inline T constant_sin_one<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   BOOST_MATH_STD_USING
-   return sin(static_cast<T>(1)) ; //
-}
-
-template <class T>
-template<int N>
-inline T constant_cos_one<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   BOOST_MATH_STD_USING
-   return cos(static_cast<T>(1)) ; //
-}
-
-template <class T>
-template<int N>
-inline T constant_sinh_one<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   BOOST_MATH_STD_USING
-   return sinh(static_cast<T>(1)) ; //
-}
-
-template <class T>
-template<int N>
-inline T constant_cosh_one<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   BOOST_MATH_STD_USING
-   return cosh(static_cast<T>(1)) ; //
-}
-
-template <class T>
-template<int N>
-inline T constant_phi<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   BOOST_MATH_STD_USING
-   return (static_cast<T>(1) + sqrt(static_cast<T>(5)) )/static_cast<T>(2) ; //
-}
-
-template <class T>
-template<int N>
-inline T constant_ln_phi<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   BOOST_MATH_STD_USING
-   //return  log(phi<T, policies::policy<policies::digits2<N> > >()); // ???
-   return log((static_cast<T>(1) + sqrt(static_cast<T>(5)) )/static_cast<T>(2) );
-}
-template <class T>
-template<int N>
-inline T constant_one_div_ln_phi<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   BOOST_MATH_STD_USING
-   return static_cast<T>(1) /
-     log((static_cast<T>(1) + sqrt(static_cast<T>(5)) )/static_cast<T>(2) );
-}
-
-// Zeta
-
-template <class T>
-template<int N>
-inline T constant_zeta_two<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   BOOST_MATH_STD_USING
-
-     return pi<T, policies::policy<policies::digits2<N> > >()
-     *  pi<T, policies::policy<policies::digits2<N> > >()
-     /static_cast<T>(6);
-}
-
-template <class T>
-template<int N>
-inline T constant_zeta_three<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   // http://mathworld.wolfram.com/AperysConstant.html
-   // http://en.wikipedia.org/wiki/Mathematical_constant
-
-   // http://oeis.org/A002117/constant
-   //T zeta3("1.20205690315959428539973816151144999076"
-   // "4986292340498881792271555341838205786313"
-   // "09018645587360933525814619915");
-
-  //"1.202056903159594285399738161511449990, 76498629234049888179227155534183820578631309018645587360933525814619915"  A002117
-  // 1.202056903159594285399738161511449990, 76498629234049888179227155534183820578631309018645587360933525814619915780, +00);
-  //"1.2020569031595942 double
-  // http://www.spaennare.se/SSPROG/ssnum.pdf  // section 11, Algorithm for Apery's constant zeta(3).
-  // Programs to Calculate some Mathematical Constants to Large Precision, Document Version 1.50
-
-  // by Stefan Spannare  September 19, 2007
-  // zeta(3) = 1/64 * sum
-   BOOST_MATH_STD_USING
-   T n_fact=static_cast<T>(1); // build n! for n = 0.
-   T sum = static_cast<double>(77); // Start with n = 0 case.
-   // for n = 0, (77/1) /64 = 1.203125
-   //double lim = std::numeric_limits<double>::epsilon();
-   T lim = N ? ldexp(T(1), 1 - (std::min)(N, tools::digits<T>())) : tools::epsilon<T>();
-   for(unsigned int n = 1; n < 40; ++n)
-   { // three to five decimal digits per term, so 40 should be plenty for 100 decimal digits.
-      //cout << "n = " << n << endl;
-      n_fact *= n; // n!
-      T n_fact_p10 = n_fact * n_fact * n_fact * n_fact * n_fact * n_fact * n_fact * n_fact * n_fact * n_fact; // (n!)^10
-      T num = ((205 * n * n) + (250 * n) + 77) * n_fact_p10; // 205n^2 + 250n + 77
-      // int nn = (2 * n + 1);
-      // T d = factorial(nn); // inline factorial.
-      T d = 1;
-      for(unsigned int i = 1; i <= (n+n + 1); ++i) // (2n + 1)
-      {
-        d *= i;
-      }
-      T den = d * d * d * d * d; // [(2n+1)!]^5
-      //cout << "den = " << den << endl;
-      T term = num/den;
-      if (n % 2 != 0)
-      { //term *= -1;
-        sum -= term;
-      }
-      else
-      {
-        sum += term;
-      }
-      //cout << "term = " << term << endl;
-      //cout << "sum/64  = " << sum/64 << endl;
-      if(abs(term) < lim)
-      {
-         break;
-      }
-   }
-   return sum / 64;
-}
-
-template <class T>
-template<int N>
-inline T constant_catalan<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{ // http://oeis.org/A006752/constant
-  //T c("0.915965594177219015054603514932384110774"
- //"149374281672134266498119621763019776254769479356512926115106248574");
-
-  // 9.159655941772190150546035149323841107, 74149374281672134266498119621763019776254769479356512926115106248574422619, -01);
-
-   // This is equation (entry) 31 from
-   // http://www-2.cs.cmu.edu/~adamchik/articles/catalan/catalan.htm
-   // See also http://www.mpfr.org/algorithms.pdf
-   BOOST_MATH_STD_USING
-   T k_fact = 1;
-   T tk_fact = 1;
-   T sum = 1;
-   T term;
-   T lim = N ? ldexp(T(1), 1 - (std::min)(N, tools::digits<T>())) : tools::epsilon<T>();
-
-   for(unsigned k = 1;; ++k)
-   {
-      k_fact *= k;
-      tk_fact *= (2 * k) * (2 * k - 1);
-      term = k_fact * k_fact / (tk_fact * (2 * k + 1) * (2 * k + 1));
-      sum += term;
-      if(term < lim)
-      {
-         break;
-      }
-   }
-   return boost::math::constants::pi<T, boost::math::policies::policy<> >()
-      * log(2 + boost::math::constants::root_three<T, boost::math::policies::policy<> >())
-       / 8
-      + 3 * sum / 8;
-}
-
-namespace khinchin_detail{
-
-template <class T>
-T zeta_polynomial_series(T s, T sc, int digits)
-{
-   BOOST_MATH_STD_USING
-   //
-   // This is algorithm 3 from:
-   //
-   // "An Efficient Algorithm for the Riemann Zeta Function", P. Borwein,
-   // Canadian Mathematical Society, Conference Proceedings, 2000.
-   // See: http://www.cecm.sfu.ca/personal/pborwein/PAPERS/P155.pdf
-   //
-   BOOST_MATH_STD_USING
-   int n = (digits * 19) / 53;
-   T sum = 0;
-   T two_n = ldexp(T(1), n);
-   int ej_sign = 1;
-   for(int j = 0; j < n; ++j)
-   {
-      sum += ej_sign * -two_n / pow(T(j + 1), s);
-      ej_sign = -ej_sign;
-   }
-   T ej_sum = 1;
-   T ej_term = 1;
-   for(int j = n; j <= 2 * n - 1; ++j)
-   {
-      sum += ej_sign * (ej_sum - two_n) / pow(T(j + 1), s);
-      ej_sign = -ej_sign;
-      ej_term *= 2 * n - j;
-      ej_term /= j - n + 1;
-      ej_sum += ej_term;
-   }
-   return -sum / (two_n * (1 - pow(T(2), sc)));
-}
-
-template <class T>
-T khinchin(int digits)
-{
-   BOOST_MATH_STD_USING
-   T sum = 0;
-   T term;
-   T lim = ldexp(T(1), 1-digits);
-   T factor = 0;
-   unsigned last_k = 1;
-   T num = 1;
-   for(unsigned n = 1;; ++n)
-   {
-      for(unsigned k = last_k; k <= 2 * n - 1; ++k)
-      {
-         factor += num / k;
-         num = -num;
-      }
-      last_k = 2 * n;
-      term = (zeta_polynomial_series(T(2 * n), T(1 - T(2 * n)), digits) - 1) * factor / n;
-      sum += term;
-      if(term < lim)
-         break;
-   }
-   return exp(sum / boost::math::constants::ln_two<T, boost::math::policies::policy<> >());
-}
-
-}
-
-template <class T>
-template<int N>
-inline T constant_khinchin<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-   int n = N ? (std::min)(N, tools::digits<T>()) : tools::digits<T>();
-   return khinchin_detail::khinchin<T>(n);
-}
-
-template <class T>
-template<int N>
-inline T constant_extreme_value_skewness<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{ // from e_float constants.cpp
-  // Mathematica: N[12 Sqrt[6]  Zeta[3]/Pi^3, 1101]
-   BOOST_MATH_STD_USING
-   T ev(12 * sqrt(static_cast<T>(6)) * zeta_three<T, policies::policy<policies::digits2<N> > >()
-    / pi_cubed<T, policies::policy<policies::digits2<N> > >() );
-
-//T ev(
-//"1.1395470994046486574927930193898461120875997958365518247216557100852480077060706857071875468869385150"
-//"1894272048688553376986765366075828644841024041679714157616857834895702411080704529137366329462558680"
-//"2015498788776135705587959418756809080074611906006528647805347822929577145038743873949415294942796280"
-//"0895597703063466053535550338267721294164578901640163603544404938283861127819804918174973533694090594"
-//"3094963822672055237678432023017824416203652657301470473548274848068762500300316769691474974950757965"
-//"8640779777748741897542093874605477776538884083378029488863880220988107155275203245233994097178778984"
-//"3488995668362387892097897322246698071290011857605809901090220903955815127463328974447572119951192970"
-//"3684453635456559086126406960279692862247058250100678008419431185138019869693206366891639436908462809"
-//"9756051372711251054914491837034685476095423926553367264355374652153595857163724698198860485357368964"
-//"3807049634423621246870868566707915720704996296083373077647528285782964567312903914752617978405994377"
-//"9064157147206717895272199736902453130842229559980076472936976287378945035706933650987259357729800315");
-
-  return ev;
-}
-
-namespace detail{
-//
-// Calculation of the Glaisher constant depends upon calculating the
-// derivative of the zeta function at 2, we can then use the relation:
-// zeta'(2) = 1/6 pi^2 [euler + ln(2pi)-12ln(A)]
-// To get the constant A.
-// See equation 45 at http://mathworld.wolfram.com/RiemannZetaFunction.html.
-//
-// The derivative of the zeta function is computed by direct differentiation
-// of the relation:
-// (1-2^(1-s))zeta(s) = SUM(n=0, INF){ (-n)^n / (n+1)^s  }
-// Which gives us 2 slowly converging but alternating sums to compute,
-// for this we use Algorithm 1 from "Convergent Acceleration of Alternating Series",
-// Henri Cohen, Fernando Rodriguez Villegas and Don Zagier, Experimental Mathematics 9:1 (1999).
-// See http://www.math.utexas.edu/users/villegas/publications/conv-accel.pdf
-//
-template <class T>
-T zeta_series_derivative_2(unsigned digits)
-{
-   // Derivative of the series part, evaluated at 2:
-   BOOST_MATH_STD_USING
-   int n = digits * 301 * 13 / 10000;
-   boost::math::itrunc((std::numeric_limits<T>::digits10 + 1) * 1.3);
-   T d = pow(3 + sqrt(T(8)), n);
-   d = (d + 1 / d) / 2;
-   T b = -1;
-   T c = -d;
-   T s = 0;
-   for(int k = 0; k < n; ++k)
-   {
-      T a = -log(T(k+1)) / ((k+1) * (k+1));
-      c = b - c;
-      s = s + c * a;
-      b = (k + n) * (k - n) * b / ((k + T(0.5f)) * (k + 1));
-   }
-   return s / d;
-}
-
-template <class T>
-T zeta_series_2(unsigned digits)
-{
-   // Series part of zeta at 2:
-   BOOST_MATH_STD_USING
-   int n = digits * 301 * 13 / 10000;
-   T d = pow(3 + sqrt(T(8)), n);
-   d = (d + 1 / d) / 2;
-   T b = -1;
-   T c = -d;
-   T s = 0;
-   for(int k = 0; k < n; ++k)
-   {
-      T a = T(1) / ((k + 1) * (k + 1));
-      c = b - c;
-      s = s + c * a;
-      b = (k + n) * (k - n) * b / ((k + T(0.5f)) * (k + 1));
-   }
-   return s / d;
-}
-
-template <class T>
-inline T zeta_series_lead_2()
-{
-   // lead part at 2:
-   return 2;
-}
-
-template <class T>
-inline T zeta_series_derivative_lead_2()
-{
-   // derivative of lead part at 2:
-   return -2 * boost::math::constants::ln_two<T>();
-}
-
-template <class T>
-inline T zeta_derivative_2(unsigned n)
-{
-   // zeta derivative at 2:
-   return zeta_series_derivative_2<T>(n) * zeta_series_lead_2<T>()
-      + zeta_series_derivative_lead_2<T>() * zeta_series_2<T>(n);
-}
-
-}  // namespace detail
-
-template <class T>
-template<int N>
-inline T constant_glaisher<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{
-
-   BOOST_MATH_STD_USING
-   typedef policies::policy<policies::digits2<N> > forwarding_policy;
-   int n = N ? (std::min)(N, tools::digits<T>()) : tools::digits<T>();
-   T v = detail::zeta_derivative_2<T>(n);
-   v *= 6;
-   v /= boost::math::constants::pi<T, forwarding_policy>() * boost::math::constants::pi<T, forwarding_policy>();
-   v -= boost::math::constants::euler<T, forwarding_policy>();
-   v -= log(2 * boost::math::constants::pi<T, forwarding_policy>());
-   v /= -12;
-   return exp(v);
-
- /*
-   // from http://mpmath.googlecode.com/svn/data/glaisher.txt
-     // 20,000 digits of the Glaisher-Kinkelin constant A = exp(1/2 - zeta'(-1))
-     // Computed using A = exp((6 (-zeta'(2))/pi^2 + log 2 pi + gamma)/12)
-  // with Euler-Maclaurin summation for zeta'(2).
-  T g(
-  "1.282427129100622636875342568869791727767688927325001192063740021740406308858826"
-  "46112973649195820237439420646120399000748933157791362775280404159072573861727522"
-  "14334327143439787335067915257366856907876561146686449997784962754518174312394652"
-  "76128213808180219264516851546143919901083573730703504903888123418813674978133050"
-  "93770833682222494115874837348064399978830070125567001286994157705432053927585405"
-  "81731588155481762970384743250467775147374600031616023046613296342991558095879293"
-  "36343887288701988953460725233184702489001091776941712153569193674967261270398013"
-  "52652668868978218897401729375840750167472114895288815996668743164513890306962645"
-  "59870469543740253099606800842447417554061490189444139386196089129682173528798629"
-  "88434220366989900606980888785849587494085307347117090132667567503310523405221054"
-  "14176776156308191919997185237047761312315374135304725819814797451761027540834943"
-  "14384965234139453373065832325673954957601692256427736926358821692159870775858274"
-  "69575162841550648585890834128227556209547002918593263079373376942077522290940187");
-
-  return g;
-  */
-}
-
-template <class T>
-template<int N>
-inline T constant_rayleigh_skewness<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{  // From e_float
-  // 1100 digits of the Rayleigh distribution skewness
-  // Mathematica: N[2 Sqrt[Pi] (Pi - 3)/((4 - Pi)^(3/2)), 1100]
-
-   BOOST_MATH_STD_USING
-   T rs(2 * root_pi<T, policies::policy<policies::digits2<N> > >()
-      * pi_minus_three<T, policies::policy<policies::digits2<N> > >()
-      / pow(four_minus_pi<T, policies::policy<policies::digits2<N> > >(), static_cast<T>(3./2))
-      );
- //   6.31110657818937138191899351544227779844042203134719497658094585692926819617473725459905027032537306794400047264,
-
-  //"0.6311106578189371381918993515442277798440422031347194976580945856929268196174737254599050270325373067"
-  //"9440004726436754739597525250317640394102954301685809920213808351450851396781817932734836994829371322"
-  //"5797376021347531983451654130317032832308462278373358624120822253764532674177325950686466133508511968"
-  //"2389168716630349407238090652663422922072397393006683401992961569208109477307776249225072042971818671"
-  //"4058887072693437217879039875871765635655476241624825389439481561152126886932506682176611183750503553"
-  //"1218982627032068396407180216351425758181396562859085306247387212297187006230007438534686340210168288"
-  //"8956816965453815849613622117088096547521391672977226658826566757207615552041767516828171274858145957"
-  //"6137539156656005855905288420585194082284972984285863898582313048515484073396332610565441264220790791"
-  //"0194897267890422924599776483890102027823328602965235306539844007677157873140562950510028206251529523"
-  //"7428049693650605954398446899724157486062545281504433364675815915402937209673727753199567661561209251"
-  //"4695589950526053470201635372590001578503476490223746511106018091907936826431407434894024396366284848");  ;
-  return rs;
-}
-
-template <class T>
-template<int N>
-inline T constant_rayleigh_kurtosis_excess<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{ // - (6 Pi^2 - 24 Pi + 16)/((Pi - 4)^2)
-    // Might provide and calculate this using pi_minus_four.
-   BOOST_MATH_STD_USING
-   return - (((static_cast<T>(6) * pi<T, policies::policy<policies::digits2<N> > >()
-        * pi<T, policies::policy<policies::digits2<N> > >())
-   - (static_cast<T>(24) * pi<T, policies::policy<policies::digits2<N> > >()) + static_cast<T>(16) )
-   /
-   ((pi<T, policies::policy<policies::digits2<N> > >() - static_cast<T>(4))
-   * (pi<T, policies::policy<policies::digits2<N> > >() - static_cast<T>(4)))
-   );
-}
-
-template <class T>
-template<int N>
-inline T constant_rayleigh_kurtosis<T>::compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))
-{ // 3 - (6 Pi^2 - 24 Pi + 16)/((Pi - 4)^2)
-  // Might provide and calculate this using pi_minus_four.
-   BOOST_MATH_STD_USING
-   return static_cast<T>(3) - (((static_cast<T>(6) * pi<T, policies::policy<policies::digits2<N> > >()
-        * pi<T, policies::policy<policies::digits2<N> > >())
-   - (static_cast<T>(24) * pi<T, policies::policy<policies::digits2<N> > >()) + static_cast<T>(16) )
-   /
-   ((pi<T, policies::policy<policies::digits2<N> > >() - static_cast<T>(4))
-   * (pi<T, policies::policy<policies::digits2<N> > >() - static_cast<T>(4)))
-   );
-}
-
-}}}} // namespaces
-
-#endif // BOOST_MATH_CALCULATE_CONSTANTS_CONSTANTS_INCLUDED
diff --git a/boost/math/constants/constants.hpp b/boost/math/constants/constants.hpp
deleted file mode 100644
index 7787092..0000000
--- a/boost/math/constants/constants.hpp
+++ /dev/null
@@ -1,334 +0,0 @@
-//  Copyright John Maddock 2005-2006, 2011.
-//  Copyright Paul A. Bristow 2006-2011.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_CONSTANTS_CONSTANTS_INCLUDED
-#define BOOST_MATH_CONSTANTS_CONSTANTS_INCLUDED
-
-#include <boost/math/tools/config.hpp>
-#include <boost/math/policies/policy.hpp>
-#include <boost/math/tools/precision.hpp>
-#ifdef BOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4127 4701)
-#endif
-#ifndef BOOST_MATH_NO_LEXICAL_CAST
-#include <boost/lexical_cast.hpp>
-#endif
-#ifdef BOOST_MSVC
-#pragma warning(pop)
-#endif
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/and.hpp>
-#include <boost/mpl/int.hpp>
-#include <boost/type_traits/is_convertible.hpp>
-
-
-namespace boost{ namespace math
-{
-  namespace constants
-  {
-    // To permit other calculations at about 100 decimal digits with some UDT,
-    // it is obviously necessary to define constants to this accuracy.
-
-    // However, some compilers do not accept decimal digits strings as long as this.
-    // So the constant is split into two parts, with the 1st containing at least
-    // long double precision, and the 2nd zero if not needed or known.
-    // The 3rd part permits an exponent to be provided if necessary (use zero if none) -
-    // the other two parameters may only contain decimal digits (and sign and decimal point),
-    // and may NOT include an exponent like 1.234E99.
-    // The second digit string is only used if T is a User-Defined Type,
-    // when the constant is converted to a long string literal and lexical_casted to type T.
-    // (This is necessary because you can't use a numeric constant
-    // since even a long double might not have enough digits).
-
-   enum construction_method
-   {
-      construct_from_float = 1,
-      construct_from_double = 2,
-      construct_from_long_double = 3,
-      construct_from_string = 4,
-      construct_from_float128 = 5,
-      // Must be the largest value above:
-      construct_max = construct_from_float128
-   };
-
-   //
-   // Max number of binary digits in the string representations
-   // of our constants:
-   //
-   BOOST_STATIC_CONSTANT(int, max_string_digits = (101 * 1000L) / 301L);
-
-   template <class Real, class Policy>
-   struct construction_traits
-   {
-   private:
-      typedef typename policies::precision<Real, Policy>::type t1;
-      typedef typename policies::precision<float, Policy>::type t2;
-      typedef typename policies::precision<double, Policy>::type t3;
-      typedef typename policies::precision<long double, Policy>::type t4;
-#ifdef BOOST_MATH_USE_FLOAT128
-      typedef mpl::int_<113> t5;
-#endif
-   public:
-      typedef typename mpl::if_<
-         mpl::and_<boost::is_convertible<float, Real>, mpl::bool_< t1::value <= t2::value>, mpl::bool_<0 != t1::value> >,
-         mpl::int_<construct_from_float>,
-         typename mpl::if_<
-            mpl::and_<boost::is_convertible<double, Real>, mpl::bool_< t1::value <= t3::value>, mpl::bool_<0 != t1::value> >,
-            mpl::int_<construct_from_double>,
-            typename mpl::if_<
-               mpl::and_<boost::is_convertible<long double, Real>, mpl::bool_< t1::value <= t4::value>, mpl::bool_<0 != t1::value> >,
-               mpl::int_<construct_from_long_double>,
-#ifdef BOOST_MATH_USE_FLOAT128
-               typename mpl::if_<
-                  mpl::and_<boost::is_convertible<__float128, Real>, mpl::bool_< t1::value <= t5::value>, mpl::bool_<0 != t1::value> >,
-                  mpl::int_<construct_from_float128>,
-                  typename mpl::if_<
-                     mpl::and_<mpl::bool_< t1::value <= max_string_digits>, mpl::bool_<0 != t1::value> >,
-                     mpl::int_<construct_from_string>,
-                     mpl::int_<t1::value>
-                  >::type
-               >::type
-#else
-               typename mpl::if_<
-                  mpl::and_<mpl::bool_< t1::value <= max_string_digits>, mpl::bool_<0 != t1::value> >,
-                  mpl::int_<construct_from_string>,
-                  mpl::int_<t1::value>
-               >::type
-#endif
-            >::type
-         >::type
-      >::type type;
-   };
-
-#ifdef BOOST_HAS_THREADS
-#define BOOST_MATH_CONSTANT_THREAD_HELPER(name, prefix) \
-      boost::once_flag f = BOOST_ONCE_INIT;\
-      boost::call_once(f, &BOOST_JOIN(BOOST_JOIN(string_, get_), name)<T>);
-#else
-#define BOOST_MATH_CONSTANT_THREAD_HELPER(name, prefix)
-#endif
-
-   namespace detail{
-
-      template <class Real, class Policy = boost::math::policies::policy<> >
-      struct constant_return
-      {
-         typedef typename construction_traits<Real, Policy>::type construct_type;
-         typedef typename mpl::if_c<
-            (construct_type::value == construct_from_string) || (construct_type::value > construct_max),
-            const Real&, Real>::type type;
-      };
-
-      template <class Real>
-      Real convert_from_string(const char* p, const mpl::false_&)
-      {
-#ifdef BOOST_MATH_NO_LEXICAL_CAST
-         // This function should not compile, we don't have the necesary functionality to support it:
-         BOOST_STATIC_ASSERT(sizeof(Real) == 0);
-#else
-         return boost::lexical_cast<Real>(p);
-#endif
-      }
-      template <class Real>
-      const char* convert_from_string(const char* p, const mpl::true_&)
-      {
-         return p;
-      }
-
-      template <class T, const T& (*F)()>
-      struct constant_initializer
-      {
-         static void force_instantiate()
-         {
-            init.force_instantiate();
-         }
-      private:
-         struct initializer
-         {
-            initializer()
-            {
-               F();
-            }
-            void force_instantiate()const{}
-         };
-         static const initializer init;
-      };
-
-      template <class T, const T& (*F)()>
-      typename constant_initializer<T, F>::initializer const constant_initializer<T, F>::init;
-
-      template <class T, int N, const T& (*F)(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>) BOOST_MATH_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC(T))>
-      struct constant_initializer2
-      {
-         static void force_instantiate()
-         {
-            init.force_instantiate();
-         }
-      private:
-         struct initializer
-         {
-            initializer()
-            {
-               F();
-            }
-            void force_instantiate()const{}
-         };
-         static const initializer init;
-      };
-
-      template <class T, int N, const T& (*F)(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>) BOOST_MATH_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC(T))>
-      typename constant_initializer2<T, N, F>::initializer const constant_initializer2<T, N, F>::init;
-
-   }
-
-#ifdef BOOST_MATH_USE_FLOAT128
-#  define BOOST_MATH_FLOAT128_CONSTANT_OVERLOAD(x) \
-   static inline BOOST_CONSTEXPR T get(const mpl::int_<construct_from_float128>&)\
-   { return BOOST_JOIN(x, Q); }
-#else
-#  define BOOST_MATH_FLOAT128_CONSTANT_OVERLOAD(x)
-#endif
-
-   #define BOOST_DEFINE_MATH_CONSTANT(name, x, y)\
-   namespace detail{\
-   template <class T> struct BOOST_JOIN(constant_, name){\
-   private:\
-   /* The default implementations come next: */ \
-   static inline const T& get_from_string()\
-   {\
-      static const T result = convert_from_string<T>(y, boost::is_convertible<const char*, T>());\
-      return result;\
-   }\
-   /* This one is for very high precision that is none the less known at compile time: */ \
-   template <int N> static T compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>));\
-   template <int N> static inline const T& get_from_compute(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(mpl::int_<N>))\
-   {\
-      static const T result = compute<N>();\
-      return result;\
-   }\
-   /* public getters come next */\
-   public:\
-   static inline const T& get(const mpl::int_<construct_from_string>&)\
-   {\
-      constant_initializer<T, & BOOST_JOIN(constant_, name)<T>::get_from_string >::force_instantiate();\
-      return get_from_string();\
-   }\
-   static inline BOOST_CONSTEXPR T get(const mpl::int_<construct_from_float>)\
-   { return BOOST_JOIN(x, F); }\
-   static inline BOOST_CONSTEXPR T get(const mpl::int_<construct_from_double>&)\
-   { return x; }\
-   static inline BOOST_CONSTEXPR T get(const mpl::int_<construct_from_long_double>&)\
-   { return BOOST_JOIN(x, L); }\
-   BOOST_MATH_FLOAT128_CONSTANT_OVERLOAD(x) \
-   template <int N> static inline const T& get(const mpl::int_<N>&)\
-   {\
-      constant_initializer2<T, N, & BOOST_JOIN(constant_, name)<T>::template get_from_compute<N> >::force_instantiate();\
-      return get_from_compute<N>(); \
-   }\
-   /* This one is for true arbitary precision, which may well vary at runtime: */ \
-   static inline T get(const mpl::int_<0>&)\
-   { return tools::digits<T>() > max_string_digits ? compute<0>() : get(mpl::int_<construct_from_string>()); }\
-   }; /* end of struct */\
-   } /* namespace detail */ \
-   \
-   \
-   /* The actual forwarding function: */ \
-   template <class T, class Policy> inline BOOST_CONSTEXPR typename detail::constant_return<T, Policy>::type name(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(T) BOOST_MATH_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC(Policy))\
-   { return detail:: BOOST_JOIN(constant_, name)<T>::get(typename construction_traits<T, Policy>::type()); }\
-   template <class T> inline BOOST_CONSTEXPR typename detail::constant_return<T>::type name(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(T))\
-   { return name<T, boost::math::policies::policy<> >(); }\
-   \
-   \
-   /* Now the namespace specific versions: */ \
-   } namespace float_constants{ static const float name = BOOST_JOIN(x, F); }\
-   namespace double_constants{ static const double name = x; } \
-   namespace long_double_constants{ static const long double name = BOOST_JOIN(x, L); }\
-   namespace constants{
-
-  BOOST_DEFINE_MATH_CONSTANT(half, 5.000000000000000000000000000000000000e-01, "5.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-01")
-  BOOST_DEFINE_MATH_CONSTANT(third, 3.333333333333333333333333333333333333e-01, "3.33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333e-01")
-  BOOST_DEFINE_MATH_CONSTANT(twothirds, 6.666666666666666666666666666666666666e-01, "6.66666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666667e-01")
-  BOOST_DEFINE_MATH_CONSTANT(two_thirds, 6.666666666666666666666666666666666666e-01, "6.66666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666667e-01")
-  BOOST_DEFINE_MATH_CONSTANT(three_quarters, 7.500000000000000000000000000000000000e-01, "7.50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e-01")
-  BOOST_DEFINE_MATH_CONSTANT(root_two, 1.414213562373095048801688724209698078e+00, "1.41421356237309504880168872420969807856967187537694807317667973799073247846210703885038753432764157273501384623e+00")
-  BOOST_DEFINE_MATH_CONSTANT(root_three, 1.732050807568877293527446341505872366e+00, "1.73205080756887729352744634150587236694280525381038062805580697945193301690880003708114618675724857567562614142e+00")
-  BOOST_DEFINE_MATH_CONSTANT(half_root_two, 7.071067811865475244008443621048490392e-01, "7.07106781186547524400844362104849039284835937688474036588339868995366239231053519425193767163820786367506923115e-01")
-  BOOST_DEFINE_MATH_CONSTANT(ln_two, 6.931471805599453094172321214581765680e-01, "6.93147180559945309417232121458176568075500134360255254120680009493393621969694715605863326996418687542001481021e-01")
-  BOOST_DEFINE_MATH_CONSTANT(ln_ln_two, -3.665129205816643270124391582326694694e-01, "-3.66512920581664327012439158232669469454263447837105263053677713670561615319352738549455822856698908358302523045e-01")
-  BOOST_DEFINE_MATH_CONSTANT(root_ln_four, 1.177410022515474691011569326459699637e+00, "1.17741002251547469101156932645969963774738568938582053852252575650002658854698492680841813836877081106747157858e+00")
-  BOOST_DEFINE_MATH_CONSTANT(one_div_root_two, 7.071067811865475244008443621048490392e-01, "7.07106781186547524400844362104849039284835937688474036588339868995366239231053519425193767163820786367506923115e-01")
-  BOOST_DEFINE_MATH_CONSTANT(pi, 3.141592653589793238462643383279502884e+00, "3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651e+00")
-  BOOST_DEFINE_MATH_CONSTANT(half_pi, 1.570796326794896619231321691639751442e+00, "1.57079632679489661923132169163975144209858469968755291048747229615390820314310449931401741267105853399107404326e+00")
-  BOOST_DEFINE_MATH_CONSTANT(third_pi, 1.047197551196597746154214461093167628e+00, "1.04719755119659774615421446109316762806572313312503527365831486410260546876206966620934494178070568932738269550e+00")
-  BOOST_DEFINE_MATH_CONSTANT(sixth_pi, 5.235987755982988730771072305465838140e-01, "5.23598775598298873077107230546583814032861566562517636829157432051302734381034833104672470890352844663691347752e-01")
-  BOOST_DEFINE_MATH_CONSTANT(two_pi, 6.283185307179586476925286766559005768e+00, "6.28318530717958647692528676655900576839433879875021164194988918461563281257241799725606965068423413596429617303e+00")
-  BOOST_DEFINE_MATH_CONSTANT(two_thirds_pi, 2.094395102393195492308428922186335256e+00, "2.09439510239319549230842892218633525613144626625007054731662972820521093752413933241868988356141137865476539101e+00")
-  BOOST_DEFINE_MATH_CONSTANT(three_quarters_pi, 2.356194490192344928846982537459627163e+00, "2.35619449019234492884698253745962716314787704953132936573120844423086230471465674897102611900658780098661106488e+00")
-  BOOST_DEFINE_MATH_CONSTANT(four_thirds_pi, 4.188790204786390984616857844372670512e+00, "4.18879020478639098461685784437267051226289253250014109463325945641042187504827866483737976712282275730953078202e+00")
-  BOOST_DEFINE_MATH_CONSTANT(one_div_two_pi, 1.591549430918953357688837633725143620e-01, "1.59154943091895335768883763372514362034459645740456448747667344058896797634226535090113802766253085956072842727e-01")
-  BOOST_DEFINE_MATH_CONSTANT(one_div_root_two_pi, 3.989422804014326779399460599343818684e-01, "3.98942280401432677939946059934381868475858631164934657665925829670657925899301838501252333907306936430302558863e-01")
-  BOOST_DEFINE_MATH_CONSTANT(root_pi, 1.772453850905516027298167483341145182e+00, "1.77245385090551602729816748334114518279754945612238712821380778985291128459103218137495065673854466541622682362e+00")
-  BOOST_DEFINE_MATH_CONSTANT(root_half_pi, 1.253314137315500251207882642405522626e+00, "1.25331413731550025120788264240552262650349337030496915831496178817114682730392098747329791918902863305800498633e+00")
-  BOOST_DEFINE_MATH_CONSTANT(root_two_pi, 2.506628274631000502415765284811045253e+00, "2.50662827463100050241576528481104525300698674060993831662992357634229365460784197494659583837805726611600997267e+00")
-  BOOST_DEFINE_MATH_CONSTANT(log_root_two_pi, 9.189385332046727417803297364056176398e-01, "9.18938533204672741780329736405617639861397473637783412817151540482765695927260397694743298635954197622005646625e-01")
-  BOOST_DEFINE_MATH_CONSTANT(one_div_root_pi, 5.641895835477562869480794515607725858e-01, "5.64189583547756286948079451560772585844050629328998856844085721710642468441493414486743660202107363443028347906e-01")
-  BOOST_DEFINE_MATH_CONSTANT(root_one_div_pi, 5.641895835477562869480794515607725858e-01, "5.64189583547756286948079451560772585844050629328998856844085721710642468441493414486743660202107363443028347906e-01")
-  BOOST_DEFINE_MATH_CONSTANT(pi_minus_three, 1.415926535897932384626433832795028841e-01, "1.41592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513e-01")
-  BOOST_DEFINE_MATH_CONSTANT(four_minus_pi, 8.584073464102067615373566167204971158e-01, "8.58407346410206761537356616720497115802830600624894179025055407692183593713791001371965174657882932017851913487e-01")
-  BOOST_DEFINE_MATH_CONSTANT(pow23_four_minus_pi, 7.953167673715975443483953350568065807e-01, "7.95316767371597544348395335056806580727639173327713205445302234388856268267518187590758006888600828436839800178e-01")
-  BOOST_DEFINE_MATH_CONSTANT(pi_pow_e, 2.245915771836104547342715220454373502e+01, "2.24591577183610454734271522045437350275893151339966922492030025540669260403991179123185197527271430315314500731e+01")
-  BOOST_DEFINE_MATH_CONSTANT(pi_sqr, 9.869604401089358618834490999876151135e+00, "9.86960440108935861883449099987615113531369940724079062641334937622004482241920524300177340371855223182402591377e+00")
-  BOOST_DEFINE_MATH_CONSTANT(pi_sqr_div_six, 1.644934066848226436472415166646025189e+00, "1.64493406684822643647241516664602518921894990120679843773555822937000747040320087383362890061975870530400431896e+00")
-  BOOST_DEFINE_MATH_CONSTANT(pi_cubed, 3.100627668029982017547631506710139520e+01, "3.10062766802998201754763150671013952022252885658851076941445381038063949174657060375667010326028861930301219616e+01")
-  BOOST_DEFINE_MATH_CONSTANT(cbrt_pi, 1.464591887561523263020142527263790391e+00, "1.46459188756152326302014252726379039173859685562793717435725593713839364979828626614568206782035382089750397002e+00")
-  BOOST_DEFINE_MATH_CONSTANT(one_div_cbrt_pi, 6.827840632552956814670208331581645981e-01, "6.82784063255295681467020833158164598108367515632448804042681583118899226433403918237673501922595519865685577274e-01")
-  BOOST_DEFINE_MATH_CONSTANT(e, 2.718281828459045235360287471352662497e+00, "2.71828182845904523536028747135266249775724709369995957496696762772407663035354759457138217852516642742746639193e+00")
-  BOOST_DEFINE_MATH_CONSTANT(exp_minus_half, 6.065306597126334236037995349911804534e-01, "6.06530659712633423603799534991180453441918135487186955682892158735056519413748423998647611507989456026423789794e-01")
-  BOOST_DEFINE_MATH_CONSTANT(e_pow_pi, 2.314069263277926900572908636794854738e+01, "2.31406926327792690057290863679485473802661062426002119934450464095243423506904527835169719970675492196759527048e+01")
-  BOOST_DEFINE_MATH_CONSTANT(root_e, 1.648721270700128146848650787814163571e+00, "1.64872127070012814684865078781416357165377610071014801157507931164066102119421560863277652005636664300286663776e+00")
-  BOOST_DEFINE_MATH_CONSTANT(log10_e, 4.342944819032518276511289189166050822e-01, "4.34294481903251827651128918916605082294397005803666566114453783165864649208870774729224949338431748318706106745e-01")
-  BOOST_DEFINE_MATH_CONSTANT(one_div_log10_e, 2.302585092994045684017991454684364207e+00, "2.30258509299404568401799145468436420760110148862877297603332790096757260967735248023599720508959829834196778404e+00")
-  BOOST_DEFINE_MATH_CONSTANT(ln_ten, 2.302585092994045684017991454684364207e+00, "2.30258509299404568401799145468436420760110148862877297603332790096757260967735248023599720508959829834196778404e+00")
-  BOOST_DEFINE_MATH_CONSTANT(degree, 1.745329251994329576923690768488612713e-02, "1.74532925199432957692369076848861271344287188854172545609719144017100911460344944368224156963450948221230449251e-02")
-  BOOST_DEFINE_MATH_CONSTANT(radian, 5.729577951308232087679815481410517033e+01, "5.72957795130823208767981548141051703324054724665643215491602438612028471483215526324409689958511109441862233816e+01")
-  BOOST_DEFINE_MATH_CONSTANT(sin_one, 8.414709848078965066525023216302989996e-01, "8.41470984807896506652502321630298999622563060798371065672751709991910404391239668948639743543052695854349037908e-01")
-  BOOST_DEFINE_MATH_CONSTANT(cos_one, 5.403023058681397174009366074429766037e-01, "5.40302305868139717400936607442976603732310420617922227670097255381100394774471764517951856087183089343571731160e-01")
-  BOOST_DEFINE_MATH_CONSTANT(sinh_one, 1.175201193643801456882381850595600815e+00, "1.17520119364380145688238185059560081515571798133409587022956541301330756730432389560711745208962339184041953333e+00")
-  BOOST_DEFINE_MATH_CONSTANT(cosh_one, 1.543080634815243778477905620757061682e+00, "1.54308063481524377847790562075706168260152911236586370473740221471076906304922369896426472643554303558704685860e+00")
-  BOOST_DEFINE_MATH_CONSTANT(phi, 1.618033988749894848204586834365638117e+00, "1.61803398874989484820458683436563811772030917980576286213544862270526046281890244970720720418939113748475408808e+00")
-  BOOST_DEFINE_MATH_CONSTANT(ln_phi, 4.812118250596034474977589134243684231e-01, "4.81211825059603447497758913424368423135184334385660519661018168840163867608221774412009429122723474997231839958e-01")
-  BOOST_DEFINE_MATH_CONSTANT(one_div_ln_phi, 2.078086921235027537601322606117795767e+00, "2.07808692123502753760132260611779576774219226778328348027813992191974386928553540901445615414453604821933918634e+00")
-  BOOST_DEFINE_MATH_CONSTANT(euler, 5.772156649015328606065120900824024310e-01, "5.77215664901532860606512090082402431042159335939923598805767234884867726777664670936947063291746749514631447250e-01")
-  BOOST_DEFINE_MATH_CONSTANT(one_div_euler, 1.732454714600633473583025315860829681e+00, "1.73245471460063347358302531586082968115577655226680502204843613287065531408655243008832840219409928068072365714e+00")
-  BOOST_DEFINE_MATH_CONSTANT(euler_sqr, 3.331779238077186743183761363552442266e-01, "3.33177923807718674318376136355244226659417140249629743150833338002265793695756669661263268631715977303039565603e-01")
-  BOOST_DEFINE_MATH_CONSTANT(zeta_two, 1.644934066848226436472415166646025189e+00, "1.64493406684822643647241516664602518921894990120679843773555822937000747040320087383362890061975870530400431896e+00")
-  BOOST_DEFINE_MATH_CONSTANT(zeta_three, 1.202056903159594285399738161511449990e+00, "1.20205690315959428539973816151144999076498629234049888179227155534183820578631309018645587360933525814619915780e+00")
-  BOOST_DEFINE_MATH_CONSTANT(catalan, 9.159655941772190150546035149323841107e-01, "9.15965594177219015054603514932384110774149374281672134266498119621763019776254769479356512926115106248574422619e-01")
-  BOOST_DEFINE_MATH_CONSTANT(glaisher, 1.282427129100622636875342568869791727e+00, "1.28242712910062263687534256886979172776768892732500119206374002174040630885882646112973649195820237439420646120e+00")
-  BOOST_DEFINE_MATH_CONSTANT(khinchin, 2.685452001065306445309714835481795693e+00, "2.68545200106530644530971483548179569382038229399446295305115234555721885953715200280114117493184769799515346591e+00")
-  BOOST_DEFINE_MATH_CONSTANT(extreme_value_skewness, 1.139547099404648657492793019389846112e+00, "1.13954709940464865749279301938984611208759979583655182472165571008524800770607068570718754688693851501894272049e+00")
-  BOOST_DEFINE_MATH_CONSTANT(rayleigh_skewness, 6.311106578189371381918993515442277798e-01, "6.31110657818937138191899351544227779844042203134719497658094585692926819617473725459905027032537306794400047264e-01")
-  BOOST_DEFINE_MATH_CONSTANT(rayleigh_kurtosis, 3.245089300687638062848660410619754415e+00, "3.24508930068763806284866041061975441541706673178920936177133764493367904540874159051490619368679348977426462633e+00")
-  BOOST_DEFINE_MATH_CONSTANT(rayleigh_kurtosis_excess, 2.450893006876380628486604106197544154e-01, "2.45089300687638062848660410619754415417066731789209361771337644933679045408741590514906193686793489774264626328e-01")
-  
-  BOOST_DEFINE_MATH_CONSTANT(two_div_pi, 6.366197723675813430755350534900574481e-01, "6.36619772367581343075535053490057448137838582961825794990669376235587190536906140360455211065012343824291370907e-01")
-  BOOST_DEFINE_MATH_CONSTANT(root_two_div_pi, 7.978845608028653558798921198687637369e-01, "7.97884560802865355879892119868763736951717262329869315331851659341315851798603677002504667814613872860605117725e-01")
-
-
-} // namespace constants
-} // namespace math
-} // namespace boost
-
-//
-// We deliberately include this *after* all the declarations above,
-// that way the calculation routines can call on other constants above:
-//
-#include <boost/math/constants/calculate_constants.hpp>
-
-#endif // BOOST_MATH_CONSTANTS_CONSTANTS_INCLUDED
-
-
diff --git a/boost/math/distributions/complement.hpp b/boost/math/distributions/complement.hpp
deleted file mode 100644
index 26d0d49..0000000
--- a/boost/math/distributions/complement.hpp
+++ /dev/null
@@ -1,195 +0,0 @@
-//  (C) Copyright John Maddock 2006.
-//  (C) Copyright Paul A. Bristow 2006.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_STATS_COMPLEMENT_HPP
-#define BOOST_STATS_COMPLEMENT_HPP
-
-//
-// This code really defines our own tuple type.
-// It would be nice to reuse boost::math::tuple
-// while retaining our own type safety, but it's
-// not clear if that's possible.  In any case this
-// code is *very* lightweight.
-//
-namespace boost{ namespace math{
-
-template <class Dist, class RealType>
-struct complemented2_type
-{
-   complemented2_type(
-      const Dist& d, 
-      const RealType& p1)
-      : dist(d), 
-        param(p1) {}
-
-   const Dist& dist;
-   const RealType& param;
-
-private:
-   complemented2_type& operator=(const complemented2_type&);
-};
-
-template <class Dist, class RealType1, class RealType2>
-struct complemented3_type
-{
-   complemented3_type(
-      const Dist& d, 
-      const RealType1& p1,
-      const RealType2& p2)
-      : dist(d), 
-        param1(p1), 
-        param2(p2) {}
-
-   const Dist& dist;
-   const RealType1& param1;
-   const RealType2& param2;
-private:
-   complemented3_type& operator=(const complemented3_type&);
-};
-
-template <class Dist, class RealType1, class RealType2, class RealType3>
-struct complemented4_type
-{
-   complemented4_type(
-      const Dist& d, 
-      const RealType1& p1,
-      const RealType2& p2,
-      const RealType3& p3)
-      : dist(d), 
-        param1(p1), 
-        param2(p2), 
-        param3(p3) {}
-
-   const Dist& dist;
-   const RealType1& param1;
-   const RealType2& param2;
-   const RealType3& param3;
-private:
-   complemented4_type& operator=(const complemented4_type&);
-};
-
-template <class Dist, class RealType1, class RealType2, class RealType3, class RealType4>
-struct complemented5_type
-{
-   complemented5_type(
-      const Dist& d, 
-      const RealType1& p1,
-      const RealType2& p2,
-      const RealType3& p3,
-      const RealType4& p4)
-      : dist(d), 
-        param1(p1), 
-        param2(p2), 
-        param3(p3), 
-        param4(p4) {}
-
-   const Dist& dist;
-   const RealType1& param1;
-   const RealType2& param2;
-   const RealType3& param3;
-   const RealType4& param4;
-private:
-   complemented5_type& operator=(const complemented5_type&);
-};
-
-template <class Dist, class RealType1, class RealType2, class RealType3, class RealType4, class RealType5>
-struct complemented6_type
-{
-   complemented6_type(
-      const Dist& d, 
-      const RealType1& p1,
-      const RealType2& p2,
-      const RealType3& p3,
-      const RealType4& p4,
-      const RealType5& p5)
-      : dist(d), 
-        param1(p1), 
-        param2(p2), 
-        param3(p3), 
-        param4(p4), 
-        param5(p5) {}
-
-   const Dist& dist;
-   const RealType1& param1;
-   const RealType2& param2;
-   const RealType3& param3;
-   const RealType4& param4;
-   const RealType5& param5;
-private:
-   complemented6_type& operator=(const complemented6_type&);
-};
-
-template <class Dist, class RealType1, class RealType2, class RealType3, class RealType4, class RealType5, class RealType6>
-struct complemented7_type
-{
-   complemented7_type(
-      const Dist& d, 
-      const RealType1& p1,
-      const RealType2& p2,
-      const RealType3& p3,
-      const RealType4& p4,
-      const RealType5& p5,
-      const RealType6& p6)
-      : dist(d), 
-        param1(p1), 
-        param2(p2), 
-        param3(p3), 
-        param4(p4), 
-        param5(p5), 
-        param6(p6) {}
-
-   const Dist& dist;
-   const RealType1& param1;
-   const RealType2& param2;
-   const RealType3& param3;
-   const RealType4& param4;
-   const RealType5& param5;
-   const RealType6& param6;
-private:
-   complemented7_type& operator=(const complemented7_type&);
-};
-
-template <class Dist, class RealType>
-inline complemented2_type<Dist, RealType> complement(const Dist& d, const RealType& r)
-{
-   return complemented2_type<Dist, RealType>(d, r);
-}
-
-template <class Dist, class RealType1, class RealType2>
-inline complemented3_type<Dist, RealType1, RealType2> complement(const Dist& d, const RealType1& r1, const RealType2& r2)
-{
-   return complemented3_type<Dist, RealType1, RealType2>(d, r1, r2);
-}
-
-template <class Dist, class RealType1, class RealType2, class RealType3>
-inline complemented4_type<Dist, RealType1, RealType2, RealType3> complement(const Dist& d, const RealType1& r1, const RealType2& r2, const RealType3& r3)
-{
-   return complemented4_type<Dist, RealType1, RealType2, RealType3>(d, r1, r2, r3);
-}
-
-template <class Dist, class RealType1, class RealType2, class RealType3, class RealType4>
-inline complemented5_type<Dist, RealType1, RealType2, RealType3, RealType4> complement(const Dist& d, const RealType1& r1, const RealType2& r2, const RealType3& r3, const RealType4& r4)
-{
-   return complemented5_type<Dist, RealType1, RealType2, RealType3, RealType4>(d, r1, r2, r3, r4);
-}
-
-template <class Dist, class RealType1, class RealType2, class RealType3, class RealType4, class RealType5>
-inline complemented6_type<Dist, RealType1, RealType2, RealType3, RealType4, RealType5> complement(const Dist& d, const RealType1& r1, const RealType2& r2, const RealType3& r3, const RealType4& r4, const RealType5& r5)
-{
-   return complemented6_type<Dist, RealType1, RealType2, RealType3, RealType4, RealType5>(d, r1, r2, r3, r4, r5);
-}
-
-template <class Dist, class RealType1, class RealType2, class RealType3, class RealType4, class RealType5, class RealType6>
-inline complemented7_type<Dist, RealType1, RealType2, RealType3, RealType4, RealType5, RealType6> complement(const Dist& d, const RealType1& r1, const RealType2& r2, const RealType3& r3, const RealType4& r4, const RealType5& r5, const RealType6& r6)
-{
-   return complemented7_type<Dist, RealType1, RealType2, RealType3, RealType4, RealType5, RealType6>(d, r1, r2, r3, r4, r5, r6);
-}
-
-} // namespace math
-} // namespace boost
-
-#endif // BOOST_STATS_COMPLEMENT_HPP
-
diff --git a/boost/math/distributions/detail/common_error_handling.hpp b/boost/math/distributions/detail/common_error_handling.hpp
deleted file mode 100644
index 91b06e6..0000000
--- a/boost/math/distributions/detail/common_error_handling.hpp
+++ /dev/null
@@ -1,194 +0,0 @@
-// Copyright John Maddock 2006, 2007.
-// Copyright Paul A. Bristow 2006, 2007, 2012.
-
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt
-// or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_DISTRIBUTIONS_COMMON_ERROR_HANDLING_HPP
-#define BOOST_MATH_DISTRIBUTIONS_COMMON_ERROR_HANDLING_HPP
-
-#include <boost/math/policies/error_handling.hpp>
-#include <boost/math/special_functions/fpclassify.hpp>
-// using boost::math::isfinite;
-// using boost::math::isnan;
-
-namespace boost{ namespace math{ namespace detail
-{
-
-template <class RealType, class Policy>
-inline bool check_probability(const char* function, RealType const& prob, RealType* result, const Policy& pol)
-{
-   if((prob < 0) || (prob > 1) || !(boost::math::isfinite)(prob))
-   {
-      *result = policies::raise_domain_error<RealType>(
-         function,
-         "Probability argument is %1%, but must be >= 0 and <= 1 !", prob, pol);
-      return false;
-   }
-   return true;
-}
-
-template <class RealType, class Policy>
-inline bool check_df(const char* function, RealType const& df, RealType* result, const Policy& pol)
-{ //  df > 0 but NOT +infinity allowed.
-   if((df <= 0) || !(boost::math::isfinite)(df))
-   {
-      *result = policies::raise_domain_error<RealType>(
-         function,
-         "Degrees of freedom argument is %1%, but must be > 0 !", df, pol);
-      return false;
-   }
-   return true;
-}
-
-template <class RealType, class Policy>
-inline bool check_df_gt0_to_inf(const char* function, RealType const& df, RealType* result, const Policy& pol)
-{  // df > 0 or +infinity are allowed.
-   if( (df <= 0) || (boost::math::isnan)(df) )
-   { // is bad df <= 0 or NaN or -infinity.
-      *result = policies::raise_domain_error<RealType>(
-         function,
-         "Degrees of freedom argument is %1%, but must be > 0 !", df, pol);
-      return false;
-   }
-   return true;
-} // check_df_gt0_to_inf
-
-
-template <class RealType, class Policy>
-inline bool check_scale(
-      const char* function,
-      RealType scale,
-      RealType* result,
-      const Policy& pol)
-{
-   if((scale <= 0) || !(boost::math::isfinite)(scale))
-   { // Assume scale == 0 is NOT valid for any distribution.
-      *result = policies::raise_domain_error<RealType>(
-         function,
-         "Scale parameter is %1%, but must be > 0 !", scale, pol);
-      return false;
-   }
-   return true;
-}
-
-template <class RealType, class Policy>
-inline bool check_location(
-      const char* function,
-      RealType location,
-      RealType* result,
-      const Policy& pol)
-{
-   if(!(boost::math::isfinite)(location))
-   {
-      *result = policies::raise_domain_error<RealType>(
-         function,
-         "Location parameter is %1%, but must be finite!", location, pol);
-      return false;
-   }
-   return true;
-}
-
-template <class RealType, class Policy>
-inline bool check_x(
-      const char* function,
-      RealType x,
-      RealType* result,
-      const Policy& pol)
-{
-   // Note that this test catches both infinity and NaN.
-   // Some distributions permit x to be infinite, so these must be tested 1st and return,
-   // leaving this test to catch any NaNs.
-   // See Normal, Logistic and Cauchy for example.
-   if(!(boost::math::isfinite)(x))
-   {
-      *result = policies::raise_domain_error<RealType>(
-         function,
-         "Random variate x is %1%, but must be finite!", x, pol);
-      return false;
-   }
-   return true;
-} // bool check_x
-
-template <class RealType, class Policy>
-inline bool check_x_gt0(
-      const char* function,
-      RealType x,
-      RealType* result,
-      const Policy& pol)
-{
-   if(x <= 0)
-   {
-      *result = policies::raise_domain_error<RealType>(
-         function,
-         "Random variate x is %1%, but must be > 0!", x, pol);
-      return false;
-   }
-
-   return true;
-   // Note that this test catches both infinity and NaN.
-   // Some special cases permit x to be infinite, so these must be tested 1st,
-   // leaving this test to catch any NaNs.  See Normal and cauchy for example.
-} // bool check_x_gt0
-
-template <class RealType, class Policy>
-inline bool check_positive_x(
-      const char* function,
-      RealType x,
-      RealType* result,
-      const Policy& pol)
-{
-   if(!(boost::math::isfinite)(x) || (x < 0))
-   {
-      *result = policies::raise_domain_error<RealType>(
-         function,
-         "Random variate x is %1%, but must be finite and >= 0!", x, pol);
-      return false;
-   }
-   return true;
-   // Note that this test catches both infinity and NaN.
-   // Some special cases permit x to be infinite, so these must be tested 1st,
-   // leaving this test to catch any NaNs.  see Normal and cauchy for example.
-}
-
-template <class RealType, class Policy>
-inline bool check_non_centrality(
-      const char* function,
-      RealType ncp,
-      RealType* result,
-      const Policy& pol)
-{
-   if((ncp < 0) || !(boost::math::isfinite)(ncp))
-   { // Assume scale == 0 is NOT valid for any distribution.
-      *result = policies::raise_domain_error<RealType>(
-         function,
-         "Non centrality parameter is %1%, but must be > 0 !", ncp, pol);
-      return false;
-   }
-   return true;
-}
-
-template <class RealType, class Policy>
-inline bool check_finite(
-      const char* function,
-      RealType x,
-      RealType* result,
-      const Policy& pol)
-{
-   if(!(boost::math::isfinite)(x))
-   { // Assume scale == 0 is NOT valid for any distribution.
-      *result = policies::raise_domain_error<RealType>(
-         function,
-         "Parameter is %1%, but must be finite !", x, pol);
-      return false;
-   }
-   return true;
-}
-
-} // namespace detail
-} // namespace math
-} // namespace boost
-
-#endif // BOOST_MATH_DISTRIBUTIONS_COMMON_ERROR_HANDLING_HPP
diff --git a/boost/math/distributions/detail/derived_accessors.hpp b/boost/math/distributions/detail/derived_accessors.hpp
deleted file mode 100644
index 00f5a93..0000000
--- a/boost/math/distributions/detail/derived_accessors.hpp
+++ /dev/null
@@ -1,163 +0,0 @@
-//  Copyright John Maddock 2006.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_STATS_DERIVED_HPP
-#define BOOST_STATS_DERIVED_HPP
-
-// This file implements various common properties of distributions
-// that can be implemented in terms of other properties:
-// variance OR standard deviation (see note below),
-// hazard, cumulative hazard (chf), coefficient_of_variation.
-//
-// Note that while both variance and standard_deviation are provided
-// here, each distribution MUST SPECIALIZE AT LEAST ONE OF THESE
-// otherwise these two versions will just call each other over and over
-// until stack space runs out ...
-
-// Of course there may be more efficient means of implementing these
-// that are specific to a particular distribution, but these generic
-// versions give these properties "for free" with most distributions.
-//
-// In order to make use of this header, it must be included AT THE END
-// of the distribution header, AFTER the distribution and its core
-// property accessors have been defined: this is so that compilers
-// that implement 2-phase lookup and early-type-checking of templates
-// can find the definitions refered to herein.
-//
-
-#include <boost/type_traits/is_same.hpp>
-#include <boost/static_assert.hpp>
-
-#ifdef BOOST_MSVC
-# pragma warning(push)
-# pragma warning(disable: 4723) // potential divide by 0
-// Suppressing spurious warning in coefficient_of_variation
-#endif
-
-namespace boost{ namespace math{
-
-template <class Distribution>
-typename Distribution::value_type variance(const Distribution& dist);
-
-template <class Distribution>
-inline typename Distribution::value_type standard_deviation(const Distribution& dist)
-{
-   BOOST_MATH_STD_USING  // ADL of sqrt.
-   return sqrt(variance(dist));
-}
-
-template <class Distribution>
-inline typename Distribution::value_type variance(const Distribution& dist)
-{
-   typename Distribution::value_type result = standard_deviation(dist);
-   return result * result;
-}
-
-template <class Distribution, class RealType>
-inline typename Distribution::value_type hazard(const Distribution& dist, const RealType& x)
-{ // hazard function
-  // http://www.itl.nist.gov/div898/handbook/eda/section3/eda362.htm#HAZ
-   typedef typename Distribution::value_type value_type;
-   typedef typename Distribution::policy_type policy_type;
-   value_type p = cdf(complement(dist, x));
-   value_type d = pdf(dist, x);
-   if(d > p * tools::max_value<value_type>())
-      return policies::raise_overflow_error<value_type>(
-      "boost::math::hazard(const Distribution&, %1%)", 0, policy_type());
-   if(d == 0)
-   {
-      // This protects against 0/0, but is it the right thing to do?
-      return 0;
-   }
-   return d / p;
-}
-
-template <class Distribution, class RealType>
-inline typename Distribution::value_type chf(const Distribution& dist, const RealType& x)
-{ // cumulative hazard function.
-  // http://www.itl.nist.gov/div898/handbook/eda/section3/eda362.htm#HAZ
-   BOOST_MATH_STD_USING
-   return -log(cdf(complement(dist, x)));
-}
-
-template <class Distribution>
-inline typename Distribution::value_type coefficient_of_variation(const Distribution& dist)
-{
-   typedef typename Distribution::value_type value_type;
-   typedef typename Distribution::policy_type policy_type;
-
-   using std::abs;
-
-   value_type m = mean(dist);
-   value_type d = standard_deviation(dist);
-   if((abs(m) < 1) && (d > abs(m) * tools::max_value<value_type>()))
-   { // Checks too that m is not zero,
-      return policies::raise_overflow_error<value_type>("boost::math::coefficient_of_variation(const Distribution&, %1%)", 0, policy_type());
-   }
-   return d / m; // so MSVC warning on zerodivide is spurious, and suppressed.
-}
-//
-// Next follow overloads of some of the standard accessors with mixed
-// argument types. We just use a typecast to forward on to the "real"
-// implementation with all arguments of the same type:
-//
-template <class Distribution, class RealType>
-inline typename Distribution::value_type pdf(const Distribution& dist, const RealType& x)
-{
-   typedef typename Distribution::value_type value_type;
-   return pdf(dist, static_cast<value_type>(x));
-}
-template <class Distribution, class RealType>
-inline typename Distribution::value_type cdf(const Distribution& dist, const RealType& x)
-{
-   typedef typename Distribution::value_type value_type;
-   return cdf(dist, static_cast<value_type>(x));
-}
-template <class Distribution, class RealType>
-inline typename Distribution::value_type quantile(const Distribution& dist, const RealType& x)
-{
-   typedef typename Distribution::value_type value_type;
-   return quantile(dist, static_cast<value_type>(x));
-}
-/*
-template <class Distribution, class RealType>
-inline typename Distribution::value_type chf(const Distribution& dist, const RealType& x)
-{
-   typedef typename Distribution::value_type value_type;
-   return chf(dist, static_cast<value_type>(x));
-}
-*/
-template <class Distribution, class RealType>
-inline typename Distribution::value_type cdf(const complemented2_type<Distribution, RealType>& c)
-{
-   typedef typename Distribution::value_type value_type;
-   return cdf(complement(c.dist, static_cast<value_type>(c.param)));
-}
-
-template <class Distribution, class RealType>
-inline typename Distribution::value_type quantile(const complemented2_type<Distribution, RealType>& c)
-{
-   typedef typename Distribution::value_type value_type;
-   return quantile(complement(c.dist, static_cast<value_type>(c.param)));
-}
-
-template <class Dist>
-inline typename Dist::value_type median(const Dist& d)
-{ // median - default definition for those distributions for which a
-  // simple closed form is not known,
-  // and for which a domain_error and/or NaN generating function is NOT defined.
-  typedef typename Dist::value_type value_type;
-  return quantile(d, static_cast<value_type>(0.5f));
-}
-
-} // namespace math
-} // namespace boost
-
-
-#ifdef BOOST_MSVC
-# pragma warning(pop)
-#endif
-
-#endif // BOOST_STATS_DERIVED_HPP
diff --git a/boost/math/distributions/fwd.hpp b/boost/math/distributions/fwd.hpp
deleted file mode 100644
index 609dc3b..0000000
--- a/boost/math/distributions/fwd.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-// fwd.hpp Forward declarations of Boost.Math distributions.
-
-// Copyright Paul A. Bristow 2007, 2010, 2012.
-// Copyright John Maddock 2007.
-
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt
-// or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_DISTRIBUTIONS_FWD_HPP
-#define BOOST_MATH_DISTRIBUTIONS_FWD_HPP
-
-// 31 distributions at Boost 1.52
-
-namespace boost{ namespace math{
-
-template <class RealType, class Policy>
-class bernoulli_distribution;
-
-template <class RealType, class Policy>
-class beta_distribution;
-
-template <class RealType, class Policy>
-class binomial_distribution;
-
-template <class RealType, class Policy>
-class cauchy_distribution;
-
-template <class RealType, class Policy>
-class chi_squared_distribution;
-
-template <class RealType, class Policy>
-class exponential_distribution;
-
-template <class RealType, class Policy>
-class extreme_value_distribution;
-
-template <class RealType, class Policy>
-class fisher_f_distribution;
-
-template <class RealType, class Policy>
-class gamma_distribution;
-
-template <class RealType, class Policy>
-class geometric_distribution;
-
-template <class RealType, class Policy>
-class hypergeometric_distribution;
-
-template <class RealType, class Policy>
-class inverse_chi_squared_distribution;
-
-template <class RealType, class Policy>
-class inverse_gamma_distribution;
-
-template <class RealType, class Policy>
-class inverse_gaussian_distribution;
-
-template <class RealType, class Policy>
-class laplace_distribution;
-
-template <class RealType, class Policy>
-class logistic_distribution;
-
-template <class RealType, class Policy>
-class lognormal_distribution;
-
-template <class RealType, class Policy>
-class negative_binomial_distribution;
-
-template <class RealType, class Policy>
-class non_central_beta_distribution;
-
-template <class RealType, class Policy>
-class non_central_chi_squared_distribution;
-
-template <class RealType, class Policy>
-class non_central_f_distribution;
-
-template <class RealType, class Policy>
-class non_central_t_distribution;
-
-template <class RealType, class Policy>
-class normal_distribution;
-
-template <class RealType, class Policy>
-class pareto_distribution;
-
-template <class RealType, class Policy>
-class poisson_distribution;
-
-template <class RealType, class Policy>
-class rayleigh_distribution;
-
-template <class RealType, class Policy>
-class skew_normal_distribution;
-
-template <class RealType, class Policy>
-class students_t_distribution;
-
-template <class RealType, class Policy>
-class triangular_distribution;
-
-template <class RealType, class Policy>
-class uniform_distribution;
-
-template <class RealType, class Policy>
-class weibull_distribution;
-
-}} // namespaces
-
-#define BOOST_MATH_DECLARE_DISTRIBUTIONS(Type, Policy)\
-   typedef boost::math::bernoulli_distribution<Type, Policy> bernoulli;\
-   typedef boost::math::beta_distribution<Type, Policy> beta;\
-   typedef boost::math::binomial_distribution<Type, Policy> binomial;\
-   typedef boost::math::cauchy_distribution<Type, Policy> cauchy;\
-   typedef boost::math::chi_squared_distribution<Type, Policy> chi_squared;\
-   typedef boost::math::exponential_distribution<Type, Policy> exponential;\
-   typedef boost::math::extreme_value_distribution<Type, Policy> extreme_value;\
-   typedef boost::math::fisher_f_distribution<Type, Policy> fisher_f;\
-   typedef boost::math::gamma_distribution<Type, Policy> gamma;\
-   typedef boost::math::geometric_distribution<Type, Policy> geometric;\
-   typedef boost::math::hypergeometric_distribution<Type, Policy> hypergeometric;\
-   typedef boost::math::inverse_chi_squared_distribution<Type, Policy> inverse_chi_squared;\
-   typedef boost::math::inverse_gaussian_distribution<Type, Policy> inverse_gaussian;\
-   typedef boost::math::inverse_gamma_distribution<Type, Policy> inverse_gamma;\
-   typedef boost::math::laplace_distribution<Type, Policy> laplace;\
-   typedef boost::math::logistic_distribution<Type, Policy> logistic;\
-   typedef boost::math::lognormal_distribution<Type, Policy> lognormal;\
-   typedef boost::math::negative_binomial_distribution<Type, Policy> negative_binomial;\
-   typedef boost::math::non_central_beta_distribution<Type, Policy> non_central_beta;\
-   typedef boost::math::non_central_chi_squared_distribution<Type, Policy> non_central_chi_squared;\
-   typedef boost::math::non_central_f_distribution<Type, Policy> non_central_f;\
-   typedef boost::math::non_central_t_distribution<Type, Policy> non_central_t;\
-   typedef boost::math::normal_distribution<Type, Policy> normal;\
-   typedef boost::math::pareto_distribution<Type, Policy> pareto;\
-   typedef boost::math::poisson_distribution<Type, Policy> poisson;\
-   typedef boost::math::rayleigh_distribution<Type, Policy> rayleigh;\
-   typedef boost::math::skew_normal_distribution<Type, Policy> skew_normal;\
-   typedef boost::math::students_t_distribution<Type, Policy> students_t;\
-   typedef boost::math::triangular_distribution<Type, Policy> triangular;\
-   typedef boost::math::uniform_distribution<Type, Policy> uniform;\
-   typedef boost::math::weibull_distribution<Type, Policy> weibull;
-
-#endif // BOOST_MATH_DISTRIBUTIONS_FWD_HPP
diff --git a/boost/math/distributions/normal.hpp b/boost/math/distributions/normal.hpp
deleted file mode 100644
index 7303967..0000000
--- a/boost/math/distributions/normal.hpp
+++ /dev/null
@@ -1,321 +0,0 @@
-//  Copyright John Maddock 2006, 2007.
-//  Copyright Paul A. Bristow 2006, 2007.
-
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_STATS_NORMAL_HPP
-#define BOOST_STATS_NORMAL_HPP
-
-// http://en.wikipedia.org/wiki/Normal_distribution
-// http://www.itl.nist.gov/div898/handbook/eda/section3/eda3661.htm
-// Also:
-// Weisstein, Eric W. "Normal Distribution."
-// From MathWorld--A Wolfram Web Resource.
-// http://mathworld.wolfram.com/NormalDistribution.html
-
-#include <boost/math/distributions/fwd.hpp>
-#include <boost/math/special_functions/erf.hpp> // for erf/erfc.
-#include <boost/math/distributions/complement.hpp>
-#include <boost/math/distributions/detail/common_error_handling.hpp>
-
-#include <utility>
-
-namespace boost{ namespace math{
-
-template <class RealType = double, class Policy = policies::policy<> >
-class normal_distribution
-{
-public:
-   typedef RealType value_type;
-   typedef Policy policy_type;
-
-   normal_distribution(RealType l_mean = 0, RealType sd = 1)
-      : m_mean(l_mean), m_sd(sd)
-   { // Default is a 'standard' normal distribution N01.
-     static const char* function = "boost::math::normal_distribution<%1%>::normal_distribution";
-
-     RealType result;
-     detail::check_scale(function, sd, &result, Policy());
-     detail::check_location(function, l_mean, &result, Policy());
-   }
-
-   RealType mean()const
-   { // alias for location.
-      return m_mean;
-   }
-
-   RealType standard_deviation()const
-   { // alias for scale.
-      return m_sd;
-   }
-
-   // Synonyms, provided to allow generic use of find_location and find_scale.
-   RealType location()const
-   { // location.
-      return m_mean;
-   }
-   RealType scale()const
-   { // scale.
-      return m_sd;
-   }
-
-private:
-   //
-   // Data members:
-   //
-   RealType m_mean;  // distribution mean or location.
-   RealType m_sd;    // distribution standard deviation or scale.
-}; // class normal_distribution
-
-typedef normal_distribution<double> normal;
-
-template <class RealType, class Policy>
-inline const std::pair<RealType, RealType> range(const normal_distribution<RealType, Policy>& /*dist*/)
-{ // Range of permissible values for random variable x.
-  if (std::numeric_limits<RealType>::has_infinity)
-  { 
-     return std::pair<RealType, RealType>(-std::numeric_limits<RealType>::infinity(), std::numeric_limits<RealType>::infinity()); // - to + infinity.
-  }
-  else
-  { // Can only use max_value.
-    using boost::math::tools::max_value;
-    return std::pair<RealType, RealType>(-max_value<RealType>(), max_value<RealType>()); // - to + max value.
-  }
-}
-
-template <class RealType, class Policy>
-inline const std::pair<RealType, RealType> support(const normal_distribution<RealType, Policy>& /*dist*/)
-{ // Range of supported values for random variable x.
-   // This is range where cdf rises from 0 to 1, and outside it, the pdf is zero.
-  if (std::numeric_limits<RealType>::has_infinity)
-  { 
-     return std::pair<RealType, RealType>(-std::numeric_limits<RealType>::infinity(), std::numeric_limits<RealType>::infinity()); // - to + infinity.
-  }
-  else
-  { // Can only use max_value.
-   using boost::math::tools::max_value;
-   return std::pair<RealType, RealType>(-max_value<RealType>(),  max_value<RealType>()); // - to + max value.
-  }
-}
-
-template <class RealType, class Policy>
-inline RealType pdf(const normal_distribution<RealType, Policy>& dist, const RealType& x)
-{
-   BOOST_MATH_STD_USING  // for ADL of std functions
-
-   RealType sd = dist.standard_deviation();
-   RealType mean = dist.mean();
-
-   static const char* function = "boost::math::pdf(const normal_distribution<%1%>&, %1%)";
-
-   RealType result = 0;
-   if(false == detail::check_scale(function, sd, &result, Policy()))
-   {
-      return result;
-   }
-   if(false == detail::check_location(function, mean, &result, Policy()))
-   {
-      return result;
-   }
-   if((boost::math::isinf)(x))
-   {
-     return 0; // pdf + and - infinity is zero.
-   }
-   // Below produces MSVC 4127 warnings, so the above used instead.
-   //if(std::numeric_limits<RealType>::has_infinity && abs(x) == std::numeric_limits<RealType>::infinity())
-   //{ // pdf + and - infinity is zero.
-   //  return 0;
-   //}
-   if(false == detail::check_x(function, x, &result, Policy()))
-   {
-      return result;
-   }
-
-   RealType exponent = x - mean;
-   exponent *= -exponent;
-   exponent /= 2 * sd * sd;
-
-   result = exp(exponent);
-   result /= sd * sqrt(2 * constants::pi<RealType>());
-
-   return result;
-} // pdf
-
-template <class RealType, class Policy>
-inline RealType cdf(const normal_distribution<RealType, Policy>& dist, const RealType& x)
-{
-   BOOST_MATH_STD_USING  // for ADL of std functions
-
-   RealType sd = dist.standard_deviation();
-   RealType mean = dist.mean();
-   static const char* function = "boost::math::cdf(const normal_distribution<%1%>&, %1%)";
-   RealType result = 0;
-   if(false == detail::check_scale(function, sd, &result, Policy()))
-   {
-      return result;
-   }
-   if(false == detail::check_location(function, mean, &result, Policy()))
-   {
-      return result;
-   }
-   if((boost::math::isinf)(x))
-   {
-     if(x < 0) return 0; // -infinity
-     return 1; // + infinity
-   }
-   // These produce MSVC 4127 warnings, so the above used instead.
-   //if(std::numeric_limits<RealType>::has_infinity && x == std::numeric_limits<RealType>::infinity())
-   //{ // cdf +infinity is unity.
-   //  return 1;
-   //}
-   //if(std::numeric_limits<RealType>::has_infinity && x == -std::numeric_limits<RealType>::infinity())
-   //{ // cdf -infinity is zero.
-   //  return 0;
-   //}
-   if(false == detail::check_x(function, x, &result, Policy()))
-   {
-     return result;
-   }
-   RealType diff = (x - mean) / (sd * constants::root_two<RealType>());
-   result = boost::math::erfc(-diff, Policy()) / 2;
-   return result;
-} // cdf
-
-template <class RealType, class Policy>
-inline RealType quantile(const normal_distribution<RealType, Policy>& dist, const RealType& p)
-{
-   BOOST_MATH_STD_USING  // for ADL of std functions
-
-   RealType sd = dist.standard_deviation();
-   RealType mean = dist.mean();
-   static const char* function = "boost::math::quantile(const normal_distribution<%1%>&, %1%)";
-
-   RealType result = 0;
-   if(false == detail::check_scale(function, sd, &result, Policy()))
-      return result;
-   if(false == detail::check_location(function, mean, &result, Policy()))
-      return result;
-   if(false == detail::check_probability(function, p, &result, Policy()))
-      return result;
-
-   result= boost::math::erfc_inv(2 * p, Policy());
-   result = -result;
-   result *= sd * constants::root_two<RealType>();
-   result += mean;
-   return result;
-} // quantile
-
-template <class RealType, class Policy>
-inline RealType cdf(const complemented2_type<normal_distribution<RealType, Policy>, RealType>& c)
-{
-   BOOST_MATH_STD_USING  // for ADL of std functions
-
-   RealType sd = c.dist.standard_deviation();
-   RealType mean = c.dist.mean();
-   RealType x = c.param;
-   static const char* function = "boost::math::cdf(const complement(normal_distribution<%1%>&), %1%)";
-
-   RealType result = 0;
-   if(false == detail::check_scale(function, sd, &result, Policy()))
-      return result;
-   if(false == detail::check_location(function, mean, &result, Policy()))
-      return result;
-   if((boost::math::isinf)(x))
-   {
-     if(x < 0) return 1; // cdf complement -infinity is unity.
-     return 0; // cdf complement +infinity is zero
-   }
-   // These produce MSVC 4127 warnings, so the above used instead.
-   //if(std::numeric_limits<RealType>::has_infinity && x == std::numeric_limits<RealType>::infinity())
-   //{ // cdf complement +infinity is zero.
-   //  return 0;
-   //}
-   //if(std::numeric_limits<RealType>::has_infinity && x == -std::numeric_limits<RealType>::infinity())
-   //{ // cdf complement -infinity is unity.
-   //  return 1;
-   //}
-   if(false == detail::check_x(function, x, &result, Policy()))
-      return result;
-
-   RealType diff = (x - mean) / (sd * constants::root_two<RealType>());
-   result = boost::math::erfc(diff, Policy()) / 2;
-   return result;
-} // cdf complement
-
-template <class RealType, class Policy>
-inline RealType quantile(const complemented2_type<normal_distribution<RealType, Policy>, RealType>& c)
-{
-   BOOST_MATH_STD_USING  // for ADL of std functions
-
-   RealType sd = c.dist.standard_deviation();
-   RealType mean = c.dist.mean();
-   static const char* function = "boost::math::quantile(const complement(normal_distribution<%1%>&), %1%)";
-   RealType result = 0;
-   if(false == detail::check_scale(function, sd, &result, Policy()))
-      return result;
-   if(false == detail::check_location(function, mean, &result, Policy()))
-      return result;
-   RealType q = c.param;
-   if(false == detail::check_probability(function, q, &result, Policy()))
-      return result;
-   result = boost::math::erfc_inv(2 * q, Policy());
-   result *= sd * constants::root_two<RealType>();
-   result += mean;
-   return result;
-} // quantile
-
-template <class RealType, class Policy>
-inline RealType mean(const normal_distribution<RealType, Policy>& dist)
-{
-   return dist.mean();
-}
-
-template <class RealType, class Policy>
-inline RealType standard_deviation(const normal_distribution<RealType, Policy>& dist)
-{
-   return dist.standard_deviation();
-}
-
-template <class RealType, class Policy>
-inline RealType mode(const normal_distribution<RealType, Policy>& dist)
-{
-   return dist.mean();
-}
-
-template <class RealType, class Policy>
-inline RealType median(const normal_distribution<RealType, Policy>& dist)
-{
-   return dist.mean();
-}
-
-template <class RealType, class Policy>
-inline RealType skewness(const normal_distribution<RealType, Policy>& /*dist*/)
-{
-   return 0;
-}
-
-template <class RealType, class Policy>
-inline RealType kurtosis(const normal_distribution<RealType, Policy>& /*dist*/)
-{
-   return 3;
-}
-
-template <class RealType, class Policy>
-inline RealType kurtosis_excess(const normal_distribution<RealType, Policy>& /*dist*/)
-{
-   return 0;
-}
-
-} // namespace math
-} // namespace boost
-
-// This include must be at the end, *after* the accessors
-// for this distribution have been defined, in order to
-// keep compilers that support two-phase lookup happy.
-#include <boost/math/distributions/detail/derived_accessors.hpp>
-
-#endif // BOOST_STATS_NORMAL_HPP
-
-
diff --git a/boost/math/policies/error_handling.hpp b/boost/math/policies/error_handling.hpp
deleted file mode 100644
index 96333d3..0000000
--- a/boost/math/policies/error_handling.hpp
+++ /dev/null
@@ -1,719 +0,0 @@
-//  Copyright John Maddock 2007.
-//  Copyright Paul A. Bristow 2007.
-
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_POLICY_ERROR_HANDLING_HPP
-#define BOOST_MATH_POLICY_ERROR_HANDLING_HPP
-
-#include <stdexcept>
-#include <iomanip>
-#include <string>
-#include <cerrno>
-#include <boost/config/no_tr1/complex.hpp>
-#include <boost/config/no_tr1/cmath.hpp>
-#include <stdexcept>
-#include <boost/math/tools/config.hpp>
-#include <boost/math/policies/policy.hpp>
-#include <boost/math/tools/precision.hpp>
-#include <boost/cstdint.hpp>
-#ifdef BOOST_MSVC
-#  pragma warning(push) // Quiet warnings in boost/format.hpp
-#  pragma warning(disable: 4996) // _SCL_SECURE_NO_DEPRECATE
-#  pragma warning(disable: 4512) // assignment operator could not be generated.
-// And warnings in error handling:
-#  pragma warning(disable: 4702) // unreachable code.
-// Note that this only occurs when the compiler can deduce code is unreachable,
-// for example when policy macros are used to ignore errors rather than throw.
-#endif
-#include <boost/format.hpp>
-
-namespace boost{ namespace math{
-
-class evaluation_error : public std::runtime_error
-{
-public:
-   evaluation_error(const std::string& s) : std::runtime_error(s){}
-};
-
-class rounding_error : public std::runtime_error
-{
-public:
-   rounding_error(const std::string& s) : std::runtime_error(s){}
-};
-
-namespace policies{
-//
-// Forward declarations of user error handlers,
-// it's up to the user to provide the definition of these:
-//
-template <class T>
-T user_domain_error(const char* function, const char* message, const T& val);
-template <class T>
-T user_pole_error(const char* function, const char* message, const T& val);
-template <class T>
-T user_overflow_error(const char* function, const char* message, const T& val);
-template <class T>
-T user_underflow_error(const char* function, const char* message, const T& val);
-template <class T>
-T user_denorm_error(const char* function, const char* message, const T& val);
-template <class T>
-T user_evaluation_error(const char* function, const char* message, const T& val);
-template <class T, class TargetType>
-T user_rounding_error(const char* function, const char* message, const T& val, const TargetType& t);
-template <class T>
-T user_indeterminate_result_error(const char* function, const char* message, const T& val);
-
-namespace detail
-{
-//
-// Helper function to avoid binding rvalue to non-const-reference,
-// in other words a warning suppression mechanism:
-//
-template <class Formatter, class Group>
-inline std::string do_format(Formatter f, const Group& g)
-{
-   return (f % g).str();
-}
-
-template <class E, class T>
-void raise_error(const char* function, const char* message)
-{
-  if(function == 0)
-       function = "Unknown function operating on type %1%";
-  if(message == 0)
-       message = "Cause unknown";
-
-  std::string msg("Error in function ");
-  msg += (boost::format(function) % typeid(T).name()).str();
-  msg += ": ";
-  msg += message;
-
-  E e(msg);
-  boost::throw_exception(e);
-}
-
-template <class E, class T>
-void raise_error(const char* function, const char* message, const T& val)
-{
-  if(function == 0)
-     function = "Unknown function operating on type %1%";
-  if(message == 0)
-     message = "Cause unknown: error caused by bad argument with value %1%";
-
-  std::string msg("Error in function ");
-  msg += (boost::format(function) % typeid(T).name()).str();
-  msg += ": ";
-  msg += message;
-
-  int prec = 2 + (boost::math::policies::digits<T, boost::math::policies::policy<> >() * 30103UL) / 100000UL;
-  msg = do_format(boost::format(msg), boost::io::group(std::setprecision(prec), val));
-
-  E e(msg);
-  boost::throw_exception(e);
-}
-
-template <class T>
-inline T raise_domain_error(
-           const char* function,
-           const char* message,
-           const T& val,
-           const ::boost::math::policies::domain_error< ::boost::math::policies::throw_on_error>&)
-{
-   raise_error<std::domain_error, T>(function, message, val);
-   // we never get here:
-   return std::numeric_limits<T>::quiet_NaN();
-}
-
-template <class T>
-inline T raise_domain_error(
-           const char* ,
-           const char* ,
-           const T& ,
-           const ::boost::math::policies::domain_error< ::boost::math::policies::ignore_error>&)
-{
-   // This may or may not do the right thing, but the user asked for the error
-   // to be ignored so here we go anyway:
-   return std::numeric_limits<T>::quiet_NaN();
-}
-
-template <class T>
-inline T raise_domain_error(
-           const char* ,
-           const char* ,
-           const T& ,
-           const ::boost::math::policies::domain_error< ::boost::math::policies::errno_on_error>&)
-{
-   errno = EDOM;
-   // This may or may not do the right thing, but the user asked for the error
-   // to be silent so here we go anyway:
-   return std::numeric_limits<T>::quiet_NaN();
-}
-
-template <class T>
-inline T raise_domain_error(
-           const char* function,
-           const char* message,
-           const T& val,
-           const  ::boost::math::policies::domain_error< ::boost::math::policies::user_error>&)
-{
-   return user_domain_error(function, message, val);
-}
-
-template <class T>
-inline T raise_pole_error(
-           const char* function,
-           const char* message,
-           const T& val,
-           const  ::boost::math::policies::pole_error< ::boost::math::policies::throw_on_error>&)
-{
-   return boost::math::policies::detail::raise_domain_error(function, message, val,  ::boost::math::policies::domain_error< ::boost::math::policies::throw_on_error>());
-}
-
-template <class T>
-inline T raise_pole_error(
-           const char* function,
-           const char* message,
-           const T& val,
-           const  ::boost::math::policies::pole_error< ::boost::math::policies::ignore_error>&)
-{
-   return  ::boost::math::policies::detail::raise_domain_error(function, message, val,  ::boost::math::policies::domain_error< ::boost::math::policies::ignore_error>());
-}
-
-template <class T>
-inline T raise_pole_error(
-           const char* function,
-           const char* message,
-           const T& val,
-           const  ::boost::math::policies::pole_error< ::boost::math::policies::errno_on_error>&)
-{
-   return  ::boost::math::policies::detail::raise_domain_error(function, message, val,  ::boost::math::policies::domain_error< ::boost::math::policies::errno_on_error>());
-}
-
-template <class T>
-inline T raise_pole_error(
-           const char* function,
-           const char* message,
-           const T& val,
-           const  ::boost::math::policies::pole_error< ::boost::math::policies::user_error>&)
-{
-   return user_pole_error(function, message, val);
-}
-
-
-template <class T>
-inline T raise_overflow_error(
-           const char* function,
-           const char* message,
-           const  ::boost::math::policies::overflow_error< ::boost::math::policies::throw_on_error>&)
-{
-   raise_error<std::overflow_error, T>(function, message ? message : "numeric overflow");
-   // We should never get here:
-   return std::numeric_limits<T>::has_infinity ? std::numeric_limits<T>::infinity() : boost::math::tools::max_value<T>();
-}
-
-template <class T>
-inline T raise_overflow_error(
-           const char* function,
-           const char* message,
-           const T& val,
-           const ::boost::math::policies::overflow_error< ::boost::math::policies::throw_on_error>&)
-{
-   raise_error<std::overflow_error, T>(function, message ? message : "numeric overflow", val);
-   // We should never get here:
-   return std::numeric_limits<T>::has_infinity ? std::numeric_limits<T>::infinity() : boost::math::tools::max_value<T>();
-}
-
-template <class T>
-inline T raise_overflow_error(
-           const char* ,
-           const char* ,
-           const  ::boost::math::policies::overflow_error< ::boost::math::policies::ignore_error>&)
-{
-   // This may or may not do the right thing, but the user asked for the error
-   // to be ignored so here we go anyway:
-   return std::numeric_limits<T>::has_infinity ? std::numeric_limits<T>::infinity() : boost::math::tools::max_value<T>();
-}
-
-template <class T>
-inline T raise_overflow_error(
-           const char* ,
-           const char* ,
-           const  ::boost::math::policies::overflow_error< ::boost::math::policies::errno_on_error>&)
-{
-   errno = ERANGE;
-   // This may or may not do the right thing, but the user asked for the error
-   // to be silent so here we go anyway:
-   return std::numeric_limits<T>::has_infinity ? std::numeric_limits<T>::infinity() : boost::math::tools::max_value<T>();
-}
-
-template <class T>
-inline T raise_overflow_error(
-           const char* function,
-           const char* message,
-           const  ::boost::math::policies::overflow_error< ::boost::math::policies::user_error>&)
-{
-   return user_overflow_error(function, message, std::numeric_limits<T>::infinity());
-}
-
-
-template <class T>
-inline T raise_underflow_error(
-           const char* function,
-           const char* message,
-           const  ::boost::math::policies::underflow_error< ::boost::math::policies::throw_on_error>&)
-{
-   raise_error<std::underflow_error, T>(function, message ? message : "numeric underflow");
-   // We should never get here:
-   return 0;
-}
-
-template <class T>
-inline T raise_underflow_error(
-           const char* ,
-           const char* ,
-           const  ::boost::math::policies::underflow_error< ::boost::math::policies::ignore_error>&)
-{
-   // This may or may not do the right thing, but the user asked for the error
-   // to be ignored so here we go anyway:
-   return T(0);
-}
-
-template <class T>
-inline T raise_underflow_error(
-           const char* /* function */,
-           const char* /* message */,
-           const  ::boost::math::policies::underflow_error< ::boost::math::policies::errno_on_error>&)
-{
-   errno = ERANGE;
-   // This may or may not do the right thing, but the user asked for the error
-   // to be silent so here we go anyway:
-   return T(0);
-}
-
-template <class T>
-inline T raise_underflow_error(
-           const char* function,
-           const char* message,
-           const  ::boost::math::policies::underflow_error< ::boost::math::policies::user_error>&)
-{
-   return user_underflow_error(function, message, T(0));
-}
-
-template <class T>
-inline T raise_denorm_error(
-           const char* function,
-           const char* message,
-           const T& /* val */,
-           const  ::boost::math::policies::denorm_error< ::boost::math::policies::throw_on_error>&)
-{
-   raise_error<std::underflow_error, T>(function, message ? message : "denormalised result");
-   // we never get here:
-   return T(0);
-}
-
-template <class T>
-inline T raise_denorm_error(
-           const char* ,
-           const char* ,
-           const T&  val,
-           const  ::boost::math::policies::denorm_error< ::boost::math::policies::ignore_error>&)
-{
-   // This may or may not do the right thing, but the user asked for the error
-   // to be ignored so here we go anyway:
-   return val;
-}
-
-template <class T>
-inline T raise_denorm_error(
-           const char* ,
-           const char* ,
-           const T& val,
-           const  ::boost::math::policies::denorm_error< ::boost::math::policies::errno_on_error>&)
-{
-   errno = ERANGE;
-   // This may or may not do the right thing, but the user asked for the error
-   // to be silent so here we go anyway:
-   return val;
-}
-
-template <class T>
-inline T raise_denorm_error(
-           const char* function,
-           const char* message,
-           const T& val,
-           const  ::boost::math::policies::denorm_error< ::boost::math::policies::user_error>&)
-{
-   return user_denorm_error(function, message, val);
-}
-
-template <class T>
-inline T raise_evaluation_error(
-           const char* function,
-           const char* message,
-           const T& val,
-           const  ::boost::math::policies::evaluation_error< ::boost::math::policies::throw_on_error>&)
-{
-   raise_error<boost::math::evaluation_error, T>(function, message, val);
-   // we never get here:
-   return T(0);
-}
-
-template <class T>
-inline T raise_evaluation_error(
-           const char* ,
-           const char* ,
-           const T& val,
-           const  ::boost::math::policies::evaluation_error< ::boost::math::policies::ignore_error>&)
-{
-   // This may or may not do the right thing, but the user asked for the error
-   // to be ignored so here we go anyway:
-   return val;
-}
-
-template <class T>
-inline T raise_evaluation_error(
-           const char* ,
-           const char* ,
-           const T& val,
-           const  ::boost::math::policies::evaluation_error< ::boost::math::policies::errno_on_error>&)
-{
-   errno = EDOM;
-   // This may or may not do the right thing, but the user asked for the error
-   // to be silent so here we go anyway:
-   return val;
-}
-
-template <class T>
-inline T raise_evaluation_error(
-           const char* function,
-           const char* message,
-           const T& val,
-           const  ::boost::math::policies::evaluation_error< ::boost::math::policies::user_error>&)
-{
-   return user_evaluation_error(function, message, val);
-}
-
-template <class T, class TargetType>
-inline TargetType raise_rounding_error(
-           const char* function,
-           const char* message,
-           const T& val,
-           const TargetType&,
-           const  ::boost::math::policies::rounding_error< ::boost::math::policies::throw_on_error>&)
-{
-   raise_error<boost::math::rounding_error, T>(function, message, val);
-   // we never get here:
-   return TargetType(0);
-}
-
-template <class T, class TargetType>
-inline TargetType raise_rounding_error(
-           const char* ,
-           const char* ,
-           const T& val,
-           const TargetType&,
-           const  ::boost::math::policies::rounding_error< ::boost::math::policies::ignore_error>&)
-{
-   // This may or may not do the right thing, but the user asked for the error
-   // to be ignored so here we go anyway:
-   BOOST_STATIC_ASSERT(std::numeric_limits<TargetType>::is_specialized);
-   return  val > 0 ? (std::numeric_limits<TargetType>::max)() : (std::numeric_limits<TargetType>::is_integer ? (std::numeric_limits<TargetType>::min)() : -(std::numeric_limits<TargetType>::max)());
-}
-
-template <class T, class TargetType>
-inline TargetType raise_rounding_error(
-           const char* ,
-           const char* ,
-           const T& val,
-           const TargetType&,
-           const  ::boost::math::policies::rounding_error< ::boost::math::policies::errno_on_error>&)
-{
-   errno = ERANGE;
-   // This may or may not do the right thing, but the user asked for the error
-   // to be silent so here we go anyway:
-   BOOST_STATIC_ASSERT(std::numeric_limits<TargetType>::is_specialized);
-   return  val > 0 ? (std::numeric_limits<TargetType>::max)() : (std::numeric_limits<TargetType>::is_integer ? (std::numeric_limits<TargetType>::min)() : -(std::numeric_limits<TargetType>::max)());
-}
-
-template <class T, class TargetType>
-inline TargetType raise_rounding_error(
-           const char* function,
-           const char* message,
-           const T& val,
-           const TargetType& t,
-           const  ::boost::math::policies::rounding_error< ::boost::math::policies::user_error>&)
-{
-   return user_rounding_error(function, message, val, t);
-}
-
-template <class T, class R>
-inline T raise_indeterminate_result_error(
-           const char* function,
-           const char* message,
-           const T& val,
-           const R& ,
-           const ::boost::math::policies::indeterminate_result_error< ::boost::math::policies::throw_on_error>&)
-{
-   raise_error<std::domain_error, T>(function, message, val);
-   // we never get here:
-   return std::numeric_limits<T>::quiet_NaN();
-}
-
-template <class T, class R>
-inline T raise_indeterminate_result_error(
-           const char* ,
-           const char* ,
-           const T& ,
-           const R& result,
-           const ::boost::math::policies::indeterminate_result_error< ::boost::math::policies::ignore_error>&)
-{
-   // This may or may not do the right thing, but the user asked for the error
-   // to be ignored so here we go anyway:
-   return result;
-}
-
-template <class T, class R>
-inline T raise_indeterminate_result_error(
-           const char* ,
-           const char* ,
-           const T& ,
-           const R& result,
-           const ::boost::math::policies::indeterminate_result_error< ::boost::math::policies::errno_on_error>&)
-{
-   errno = EDOM;
-   // This may or may not do the right thing, but the user asked for the error
-   // to be silent so here we go anyway:
-   return result;
-}
-
-template <class T, class R>
-inline T raise_indeterminate_result_error(
-           const char* function,
-           const char* message,
-           const T& val,
-           const R& ,
-           const ::boost::math::policies::indeterminate_result_error< ::boost::math::policies::user_error>&)
-{
-   return user_indeterminate_result_error(function, message, val);
-}
-
-}  // namespace detail
-
-template <class T, class Policy>
-inline T raise_domain_error(const char* function, const char* message, const T& val, const Policy&)
-{
-   typedef typename Policy::domain_error_type policy_type;
-   return detail::raise_domain_error(
-      function, message ? message : "Domain Error evaluating function at %1%",
-      val, policy_type());
-}
-
-template <class T, class Policy>
-inline T raise_pole_error(const char* function, const char* message, const T& val, const Policy&)
-{
-   typedef typename Policy::pole_error_type policy_type;
-   return detail::raise_pole_error(
-      function, message ? message : "Evaluation of function at pole %1%",
-      val, policy_type());
-}
-
-template <class T, class Policy>
-inline T raise_overflow_error(const char* function, const char* message, const Policy&)
-{
-   typedef typename Policy::overflow_error_type policy_type;
-   return detail::raise_overflow_error<T>(
-      function, message ? message : "Overflow Error",
-      policy_type());
-}
-
-template <class T, class Policy>
-inline T raise_overflow_error(const char* function, const char* message, const T& val, const Policy&)
-{
-   typedef typename Policy::overflow_error_type policy_type;
-   return detail::raise_overflow_error(
-      function, message ? message : "Overflow evaluating function at %1%",
-      val, policy_type());
-}
-
-template <class T, class Policy>
-inline T raise_underflow_error(const char* function, const char* message, const Policy&)
-{
-   typedef typename Policy::underflow_error_type policy_type;
-   return detail::raise_underflow_error<T>(
-      function, message ? message : "Underflow Error",
-      policy_type());
-}
-
-template <class T, class Policy>
-inline T raise_denorm_error(const char* function, const char* message, const T& val, const Policy&)
-{
-   typedef typename Policy::denorm_error_type policy_type;
-   return detail::raise_denorm_error<T>(
-      function, message ? message : "Denorm Error",
-      val,
-      policy_type());
-}
-
-template <class T, class Policy>
-inline T raise_evaluation_error(const char* function, const char* message, const T& val, const Policy&)
-{
-   typedef typename Policy::evaluation_error_type policy_type;
-   return detail::raise_evaluation_error(
-      function, message ? message : "Internal Evaluation Error, best value so far was %1%",
-      val, policy_type());
-}
-
-template <class T, class TargetType, class Policy>
-inline TargetType raise_rounding_error(const char* function, const char* message, const T& val, const TargetType& t, const Policy&)
-{
-   typedef typename Policy::rounding_error_type policy_type;
-   return detail::raise_rounding_error(
-      function, message ? message : "Value %1% can not be represented in the target integer type.",
-      val, t, policy_type());
-}
-
-template <class T, class R, class Policy>
-inline T raise_indeterminate_result_error(const char* function, const char* message, const T& val, const R& result, const Policy&)
-{
-   typedef typename Policy::indeterminate_result_error_type policy_type;
-   return detail::raise_indeterminate_result_error(
-      function, message ? message : "Indeterminate result with value %1%",
-      val, result, policy_type());
-}
-
-//
-// checked_narrowing_cast:
-//
-namespace detail
-{
-
-template <class R, class T, class Policy>
-inline bool check_overflow(T val, R* result, const char* function, const Policy& pol)
-{
-   BOOST_MATH_STD_USING
-   if(fabs(val) > tools::max_value<R>())
-   {
-      *result = static_cast<R>(boost::math::policies::detail::raise_overflow_error<R>(function, 0, pol));
-      return true;
-   }
-   return false;
-}
-template <class R, class T, class Policy>
-inline bool check_overflow(std::complex<T> val, R* result, const char* function, const Policy& pol)
-{
-   typedef typename R::value_type r_type;
-   r_type re, im;
-   bool r = check_overflow<r_type>(val.real(), &re, function, pol);
-   r = check_overflow<r_type>(val.imag(), &im, function, pol) || r;
-   *result = R(re, im);
-   return r;
-}
-template <class R, class T, class Policy>
-inline bool check_underflow(T val, R* result, const char* function, const Policy& pol)
-{
-   if((val != 0) && (static_cast<R>(val) == 0))
-   {
-      *result = static_cast<R>(boost::math::policies::detail::raise_underflow_error<R>(function, 0, pol));
-      return true;
-   }
-   return false;
-}
-template <class R, class T, class Policy>
-inline bool check_underflow(std::complex<T> val, R* result, const char* function, const Policy& pol)
-{
-   typedef typename R::value_type r_type;
-   r_type re, im;
-   bool r = check_underflow<r_type>(val.real(), &re, function, pol);
-   r = check_underflow<r_type>(val.imag(), &im, function, pol) || r;
-   *result = R(re, im);
-   return r;
-}
-template <class R, class T, class Policy>
-inline bool check_denorm(T val, R* result, const char* function, const Policy& pol)
-{
-   BOOST_MATH_STD_USING
-   if((fabs(val) < static_cast<T>(tools::min_value<R>())) && (static_cast<R>(val) != 0))
-   {
-      *result = static_cast<R>(boost::math::policies::detail::raise_denorm_error<R>(function, 0, static_cast<R>(val), pol));
-      return true;
-   }
-   return false;
-}
-template <class R, class T, class Policy>
-inline bool check_denorm(std::complex<T> val, R* result, const char* function, const Policy& pol)
-{
-   typedef typename R::value_type r_type;
-   r_type re, im;
-   bool r = check_denorm<r_type>(val.real(), &re, function, pol);
-   r = check_denorm<r_type>(val.imag(), &im, function, pol) || r;
-   *result = R(re, im);
-   return r;
-}
-
-// Default instantiations with ignore_error policy.
-template <class R, class T>
-inline bool check_overflow(T /* val */, R* /* result */, const char* /* function */, const overflow_error<ignore_error>&){ return false; }
-template <class R, class T>
-inline bool check_overflow(std::complex<T> /* val */, R* /* result */, const char* /* function */, const overflow_error<ignore_error>&){ return false; }
-template <class R, class T>
-inline bool check_underflow(T /* val */, R* /* result */, const char* /* function */, const underflow_error<ignore_error>&){ return false; }
-template <class R, class T>
-inline bool check_underflow(std::complex<T> /* val */, R* /* result */, const char* /* function */, const underflow_error<ignore_error>&){ return false; }
-template <class R, class T>
-inline bool check_denorm(T /* val */, R* /* result*/, const char* /* function */, const denorm_error<ignore_error>&){ return false; }
-template <class R, class T>
-inline bool check_denorm(std::complex<T> /* val */, R* /* result*/, const char* /* function */, const denorm_error<ignore_error>&){ return false; }
-
-} // namespace detail
-
-template <class R, class Policy, class T>
-inline R checked_narrowing_cast(T val, const char* function)
-{
-   typedef typename Policy::overflow_error_type overflow_type;
-   typedef typename Policy::underflow_error_type underflow_type;
-   typedef typename Policy::denorm_error_type denorm_type;
-   //
-   // Most of what follows will evaluate to a no-op:
-   //
-   R result = 0;
-   if(detail::check_overflow<R>(val, &result, function, overflow_type()))
-      return result;
-   if(detail::check_underflow<R>(val, &result, function, underflow_type()))
-      return result;
-   if(detail::check_denorm<R>(val, &result, function, denorm_type()))
-      return result;
-
-   return static_cast<R>(val);
-}
-
-template <class T, class Policy>
-inline void check_series_iterations(const char* function, boost::uintmax_t max_iter, const Policy& pol)
-{
-   if(max_iter >= policies::get_max_series_iterations<Policy>())
-      raise_evaluation_error<T>(
-         function,
-         "Series evaluation exceeded %1% iterations, giving up now.", static_cast<T>(static_cast<double>(max_iter)), pol);
-}
-
-template <class T, class Policy>
-inline void check_root_iterations(const char* function, boost::uintmax_t max_iter, const Policy& pol)
-{
-   if(max_iter >= policies::get_max_root_iterations<Policy>())
-      raise_evaluation_error<T>(
-         function,
-         "Root finding evaluation exceeded %1% iterations, giving up now.", static_cast<T>(static_cast<double>(max_iter)), pol);
-}
-
-} //namespace policies
-
-#ifdef BOOST_MSVC
-#  pragma warning(pop)
-#endif
-
-}} // namespaces boost/math
-
-#endif // BOOST_MATH_POLICY_ERROR_HANDLING_HPP
-
diff --git a/boost/math/policies/policy.hpp b/boost/math/policies/policy.hpp
deleted file mode 100644
index 24334c7..0000000
--- a/boost/math/policies/policy.hpp
+++ /dev/null
@@ -1,992 +0,0 @@
-//  Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_POLICY_HPP
-#define BOOST_MATH_POLICY_HPP
-
-#include <boost/mpl/list.hpp>
-#include <boost/mpl/contains.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/find_if.hpp>
-#include <boost/mpl/remove_if.hpp>
-#include <boost/mpl/vector.hpp>
-#include <boost/mpl/push_back.hpp>
-#include <boost/mpl/at.hpp>
-#include <boost/mpl/size.hpp>
-#include <boost/mpl/comparison.hpp>
-#include <boost/type_traits/is_same.hpp>
-#include <boost/static_assert.hpp>
-#include <boost/assert.hpp>
-#include <boost/math/tools/config.hpp>
-#include <limits>
-// Sadly we do need the .h versions of these to be sure of getting
-// FLT_MANT_DIG etc.
-#include <limits.h>
-#include <stdlib.h>
-#include <stddef.h>
-#include <math.h>
-
-namespace boost{ namespace math{ 
-
-namespace tools{
-
-template <class T>
-int digits(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE(T));
-template <class T>
-T epsilon(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE(T));
-
-}
-
-namespace policies{
-
-//
-// Define macros for our default policies, if they're not defined already:
-//
-#ifndef BOOST_MATH_DOMAIN_ERROR_POLICY
-#define BOOST_MATH_DOMAIN_ERROR_POLICY throw_on_error
-#endif
-#ifndef BOOST_MATH_POLE_ERROR_POLICY
-#define BOOST_MATH_POLE_ERROR_POLICY throw_on_error
-#endif
-#ifndef BOOST_MATH_OVERFLOW_ERROR_POLICY
-#define BOOST_MATH_OVERFLOW_ERROR_POLICY throw_on_error
-#endif
-#ifndef BOOST_MATH_EVALUATION_ERROR_POLICY
-#define BOOST_MATH_EVALUATION_ERROR_POLICY throw_on_error
-#endif
-#ifndef BOOST_MATH_ROUNDING_ERROR_POLICY
-#define BOOST_MATH_ROUNDING_ERROR_POLICY throw_on_error
-#endif
-#ifndef BOOST_MATH_UNDERFLOW_ERROR_POLICY
-#define BOOST_MATH_UNDERFLOW_ERROR_POLICY ignore_error
-#endif
-#ifndef BOOST_MATH_DENORM_ERROR_POLICY
-#define BOOST_MATH_DENORM_ERROR_POLICY ignore_error
-#endif
-#ifndef BOOST_MATH_INDETERMINATE_RESULT_ERROR_POLICY
-#define BOOST_MATH_INDETERMINATE_RESULT_ERROR_POLICY ignore_error
-#endif
-#ifndef BOOST_MATH_DIGITS10_POLICY
-#define BOOST_MATH_DIGITS10_POLICY 0
-#endif
-#ifndef BOOST_MATH_PROMOTE_FLOAT_POLICY
-#define BOOST_MATH_PROMOTE_FLOAT_POLICY true
-#endif
-#ifndef BOOST_MATH_PROMOTE_DOUBLE_POLICY
-#ifdef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
-#define BOOST_MATH_PROMOTE_DOUBLE_POLICY false
-#else
-#define BOOST_MATH_PROMOTE_DOUBLE_POLICY true
-#endif
-#endif
-#ifndef BOOST_MATH_DISCRETE_QUANTILE_POLICY
-#define BOOST_MATH_DISCRETE_QUANTILE_POLICY integer_round_outwards
-#endif
-#ifndef BOOST_MATH_ASSERT_UNDEFINED_POLICY
-#define BOOST_MATH_ASSERT_UNDEFINED_POLICY true
-#endif
-#ifndef BOOST_MATH_MAX_SERIES_ITERATION_POLICY
-#define BOOST_MATH_MAX_SERIES_ITERATION_POLICY 1000000
-#endif
-#ifndef BOOST_MATH_MAX_ROOT_ITERATION_POLICY
-#define BOOST_MATH_MAX_ROOT_ITERATION_POLICY 200
-#endif
-
-#if !defined(__BORLANDC__) \
-   && !(defined(__GNUC__) && (__GNUC__ == 3) && (__GNUC_MINOR__ <= 2))
-#define BOOST_MATH_META_INT(type, name, Default)\
-   template <type N = Default> struct name : public boost::mpl::int_<N>{};\
-   namespace detail{\
-   template <type N>\
-   char test_is_valid_arg(const name<N>*);\
-   char test_is_default_arg(const name<Default>*);\
-   template <class T> struct is_##name##_imp\
-   {\
-      template <type N> static char test(const name<N>*);\
-      static double test(...);\
-      BOOST_STATIC_CONSTANT(bool, value = sizeof(test(static_cast<T*>(0))) == 1);\
-   };\
-   }\
-   template <class T> struct is_##name : public boost::mpl::bool_< ::boost::math::policies::detail::is_##name##_imp<T>::value>{};
-
-#define BOOST_MATH_META_BOOL(name, Default)\
-   template <bool N = Default> struct name : public boost::mpl::bool_<N>{};\
-   namespace detail{\
-   template <bool N>\
-   char test_is_valid_arg(const name<N>*);\
-   char test_is_default_arg(const name<Default>*);\
-   template <class T> struct is_##name##_imp\
-   {\
-      template <bool N> static char test(const name<N>*);\
-      static double test(...);\
-      BOOST_STATIC_CONSTANT(bool, value = sizeof(test(static_cast<T*>(0))) == 1);\
-   };\
-   }\
-   template <class T> struct is_##name : public boost::mpl::bool_< ::boost::math::policies::detail::is_##name##_imp<T>::value>{};
-#else
-#define BOOST_MATH_META_INT(Type, name, Default)\
-   template <Type N = Default> struct name : public boost::mpl::int_<N>{};\
-   namespace detail{\
-   template <Type N>\
-   char test_is_valid_arg(const name<N>*);\
-   char test_is_default_arg(const name<Default>*);\
-   template <class T> struct is_##name##_tester\
-   {\
-      template <Type N> static char test(const name<N>&);\
-      static double test(...);\
-   };\
-   template <class T> struct is_##name##_imp\
-   {\
-      static T inst;\
-      BOOST_STATIC_CONSTANT(bool, value = sizeof( ::boost::math::policies::detail::is_##name##_tester<T>::test(inst)) == 1);\
-   };\
-   }\
-   template <class T> struct is_##name : public boost::mpl::bool_< ::boost::math::policies::detail::is_##name##_imp<T>::value>\
-   {\
-      template <class U> struct apply{ typedef is_##name<U> type; };\
-   };
-
-#define BOOST_MATH_META_BOOL(name, Default)\
-   template <bool N = Default> struct name : public boost::mpl::bool_<N>{};\
-   namespace detail{\
-   template <bool N>\
-   char test_is_valid_arg(const name<N>*);\
-   char test_is_default_arg(const name<Default>*);\
-   template <class T> struct is_##name##_tester\
-   {\
-      template <bool N> static char test(const name<N>&);\
-      static double test(...);\
-   };\
-   template <class T> struct is_##name##_imp\
-   {\
-      static T inst;\
-      BOOST_STATIC_CONSTANT(bool, value = sizeof( ::boost::math::policies::detail::is_##name##_tester<T>::test(inst)) == 1);\
-   };\
-   }\
-   template <class T> struct is_##name : public boost::mpl::bool_< ::boost::math::policies::detail::is_##name##_imp<T>::value>\
-   {\
-      template <class U> struct apply{ typedef is_##name<U> type;  };\
-   };
-#endif
-//
-// Begin by defining policy types for error handling:
-//
-enum error_policy_type
-{
-   throw_on_error = 0,
-   errno_on_error = 1,
-   ignore_error = 2,
-   user_error = 3
-};
-
-BOOST_MATH_META_INT(error_policy_type, domain_error, BOOST_MATH_DOMAIN_ERROR_POLICY)
-BOOST_MATH_META_INT(error_policy_type, pole_error, BOOST_MATH_POLE_ERROR_POLICY)
-BOOST_MATH_META_INT(error_policy_type, overflow_error, BOOST_MATH_OVERFLOW_ERROR_POLICY)
-BOOST_MATH_META_INT(error_policy_type, underflow_error, BOOST_MATH_UNDERFLOW_ERROR_POLICY)
-BOOST_MATH_META_INT(error_policy_type, denorm_error, BOOST_MATH_DENORM_ERROR_POLICY)
-BOOST_MATH_META_INT(error_policy_type, evaluation_error, BOOST_MATH_EVALUATION_ERROR_POLICY)
-BOOST_MATH_META_INT(error_policy_type, rounding_error, BOOST_MATH_ROUNDING_ERROR_POLICY)
-BOOST_MATH_META_INT(error_policy_type, indeterminate_result_error, BOOST_MATH_INDETERMINATE_RESULT_ERROR_POLICY)
-
-//
-// Policy types for internal promotion:
-//
-BOOST_MATH_META_BOOL(promote_float, BOOST_MATH_PROMOTE_FLOAT_POLICY)
-BOOST_MATH_META_BOOL(promote_double, BOOST_MATH_PROMOTE_DOUBLE_POLICY)
-BOOST_MATH_META_BOOL(assert_undefined, BOOST_MATH_ASSERT_UNDEFINED_POLICY)
-//
-// Policy types for discrete quantiles:
-//
-enum discrete_quantile_policy_type
-{
-   real,
-   integer_round_outwards,
-   integer_round_inwards,
-   integer_round_down,
-   integer_round_up,
-   integer_round_nearest
-};
-
-BOOST_MATH_META_INT(discrete_quantile_policy_type, discrete_quantile, BOOST_MATH_DISCRETE_QUANTILE_POLICY)
-//
-// Precision:
-//
-BOOST_MATH_META_INT(int, digits10, BOOST_MATH_DIGITS10_POLICY)
-BOOST_MATH_META_INT(int, digits2, 0)
-//
-// Iterations:
-//
-BOOST_MATH_META_INT(unsigned long, max_series_iterations, BOOST_MATH_MAX_SERIES_ITERATION_POLICY)
-BOOST_MATH_META_INT(unsigned long, max_root_iterations, BOOST_MATH_MAX_ROOT_ITERATION_POLICY)
-//
-// Define the names for each possible policy:
-//
-#define BOOST_MATH_PARAMETER(name)\
-   BOOST_PARAMETER_TEMPLATE_KEYWORD(name##_name)\
-   BOOST_PARAMETER_NAME(name##_name)
-
-struct default_policy{};
-
-namespace detail{
-//
-// Trait to work out bits precision from digits10 and digits2:
-//
-template <class Digits10, class Digits2>
-struct precision
-{
-   //
-   // Now work out the precision:
-   //
-   typedef typename mpl::if_c<
-      (Digits10::value == 0),
-      digits2<0>,
-      digits2<((Digits10::value + 1) * 1000L) / 301L>
-   >::type digits2_type;
-public:
-#ifdef __BORLANDC__
-   typedef typename mpl::if_c<
-      (Digits2::value > ::boost::math::policies::detail::precision<Digits10,Digits2>::digits2_type::value),
-      Digits2, digits2_type>::type type;
-#else
-   typedef typename mpl::if_c<
-      (Digits2::value > digits2_type::value),
-      Digits2, digits2_type>::type type;
-#endif
-};
-
-template <class A, class B, bool b>
-struct select_result
-{
-   typedef A type;
-};
-template <class A, class B>
-struct select_result<A, B, false>
-{
-   typedef typename mpl::deref<B>::type type;
-};
-
-template <class Seq, class Pred, class DefaultType>
-struct find_arg
-{
-private:
-   typedef typename mpl::find_if<Seq, Pred>::type iter;
-   typedef typename mpl::end<Seq>::type end_type;
-public:
-   typedef typename select_result<
-      DefaultType, iter,
-      ::boost::is_same<iter, end_type>::value>::type type;
-};
-
-double test_is_valid_arg(...);
-double test_is_default_arg(...);
-char test_is_valid_arg(const default_policy*);
-char test_is_default_arg(const default_policy*);
-
-template <class T>
-struct is_valid_policy_imp 
-{
-   BOOST_STATIC_CONSTANT(bool, value = sizeof(::boost::math::policies::detail::test_is_valid_arg(static_cast<T*>(0))) == 1);
-};
-
-template <class T>
-struct is_default_policy_imp
-{
-   BOOST_STATIC_CONSTANT(bool, value = sizeof(::boost::math::policies::detail::test_is_default_arg(static_cast<T*>(0))) == 1);
-};
-
-template <class T> struct is_valid_policy 
-: public mpl::bool_< 
-   ::boost::math::policies::detail::is_valid_policy_imp<T>::value>
-{};
-
-template <class T> struct is_default_policy 
-: public mpl::bool_< 
-   ::boost::math::policies::detail::is_default_policy_imp<T>::value>
-{
-   template <class U>
-   struct apply
-   {
-      typedef is_default_policy<U> type;
-   };
-};
-
-template <class Seq, class T, int N>
-struct append_N
-{
-   typedef typename mpl::push_back<Seq, T>::type new_seq;
-   typedef typename append_N<new_seq, T, N-1>::type type;
-};
-
-template <class Seq, class T>
-struct append_N<Seq, T, 0>
-{
-   typedef Seq type;
-};
-
-//
-// Traits class to work out what template parameters our default
-// policy<> class will have when modified for forwarding:
-//
-template <bool f, bool d>
-struct default_args
-{
-   typedef promote_float<false> arg1;
-   typedef promote_double<false> arg2;
-};
-
-template <>
-struct default_args<false, false>
-{
-   typedef default_policy arg1;
-   typedef default_policy arg2;
-};
-
-template <>
-struct default_args<true, false>
-{
-   typedef promote_float<false> arg1;
-   typedef default_policy arg2;
-};
-
-template <>
-struct default_args<false, true>
-{
-   typedef promote_double<false> arg1;
-   typedef default_policy arg2;
-};
-
-typedef default_args<BOOST_MATH_PROMOTE_FLOAT_POLICY, BOOST_MATH_PROMOTE_DOUBLE_POLICY>::arg1 forwarding_arg1;
-typedef default_args<BOOST_MATH_PROMOTE_FLOAT_POLICY, BOOST_MATH_PROMOTE_DOUBLE_POLICY>::arg2 forwarding_arg2;
-
-} // detail
-//
-// Now define the policy type with enough arguments to handle all
-// the policies:
-//
-template <class A1 = default_policy, 
-          class A2 = default_policy, 
-          class A3 = default_policy,
-          class A4 = default_policy,
-          class A5 = default_policy,
-          class A6 = default_policy,
-          class A7 = default_policy,
-          class A8 = default_policy,
-          class A9 = default_policy,
-          class A10 = default_policy,
-          class A11 = default_policy,
-          class A12 = default_policy,
-          class A13 = default_policy>
-struct policy
-{
-private:
-   //
-   // Validate all our arguments:
-   //
-   BOOST_STATIC_ASSERT(::boost::math::policies::detail::is_valid_policy<A1>::value);
-   BOOST_STATIC_ASSERT(::boost::math::policies::detail::is_valid_policy<A2>::value);
-   BOOST_STATIC_ASSERT(::boost::math::policies::detail::is_valid_policy<A3>::value);
-   BOOST_STATIC_ASSERT(::boost::math::policies::detail::is_valid_policy<A4>::value);
-   BOOST_STATIC_ASSERT(::boost::math::policies::detail::is_valid_policy<A5>::value);
-   BOOST_STATIC_ASSERT(::boost::math::policies::detail::is_valid_policy<A6>::value);
-   BOOST_STATIC_ASSERT(::boost::math::policies::detail::is_valid_policy<A7>::value);
-   BOOST_STATIC_ASSERT(::boost::math::policies::detail::is_valid_policy<A8>::value);
-   BOOST_STATIC_ASSERT(::boost::math::policies::detail::is_valid_policy<A9>::value);
-   BOOST_STATIC_ASSERT(::boost::math::policies::detail::is_valid_policy<A10>::value);
-   BOOST_STATIC_ASSERT(::boost::math::policies::detail::is_valid_policy<A11>::value);
-   BOOST_STATIC_ASSERT(::boost::math::policies::detail::is_valid_policy<A12>::value);
-   BOOST_STATIC_ASSERT(::boost::math::policies::detail::is_valid_policy<A13>::value);
-   //
-   // Typelist of the arguments:
-   //
-   typedef mpl::list<A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13> arg_list;
-
-public:
-   typedef typename detail::find_arg<arg_list, is_domain_error<mpl::_1>, domain_error<> >::type domain_error_type;
-   typedef typename detail::find_arg<arg_list, is_pole_error<mpl::_1>, pole_error<> >::type pole_error_type;
-   typedef typename detail::find_arg<arg_list, is_overflow_error<mpl::_1>, overflow_error<> >::type overflow_error_type;
-   typedef typename detail::find_arg<arg_list, is_underflow_error<mpl::_1>, underflow_error<> >::type underflow_error_type;
-   typedef typename detail::find_arg<arg_list, is_denorm_error<mpl::_1>, denorm_error<> >::type denorm_error_type;
-   typedef typename detail::find_arg<arg_list, is_evaluation_error<mpl::_1>, evaluation_error<> >::type evaluation_error_type;
-   typedef typename detail::find_arg<arg_list, is_rounding_error<mpl::_1>, rounding_error<> >::type rounding_error_type;
-   typedef typename detail::find_arg<arg_list, is_indeterminate_result_error<mpl::_1>, indeterminate_result_error<> >::type indeterminate_result_error_type;
-private:
-   //
-   // Now work out the precision:
-   //
-   typedef typename detail::find_arg<arg_list, is_digits10<mpl::_1>, digits10<> >::type digits10_type;
-   typedef typename detail::find_arg<arg_list, is_digits2<mpl::_1>, digits2<> >::type bits_precision_type;
-public:
-   typedef typename detail::precision<digits10_type, bits_precision_type>::type precision_type;
-   //
-   // Internal promotion:
-   //
-   typedef typename detail::find_arg<arg_list, is_promote_float<mpl::_1>, promote_float<> >::type promote_float_type;
-   typedef typename detail::find_arg<arg_list, is_promote_double<mpl::_1>, promote_double<> >::type promote_double_type;
-   //
-   // Discrete quantiles:
-   //
-   typedef typename detail::find_arg<arg_list, is_discrete_quantile<mpl::_1>, discrete_quantile<> >::type discrete_quantile_type;
-   //
-   // Mathematically undefined properties:
-   //
-   typedef typename detail::find_arg<arg_list, is_assert_undefined<mpl::_1>, assert_undefined<> >::type assert_undefined_type;
-   //
-   // Max iterations:
-   //
-   typedef typename detail::find_arg<arg_list, is_max_series_iterations<mpl::_1>, max_series_iterations<> >::type max_series_iterations_type;
-   typedef typename detail::find_arg<arg_list, is_max_root_iterations<mpl::_1>, max_root_iterations<> >::type max_root_iterations_type;
-};
-//
-// These full specializations are defined to reduce the amount of
-// template instantiations that have to take place when using the default
-// policies, they have quite a large impact on compile times:
-//
-template <>
-struct policy<default_policy, default_policy, default_policy, default_policy, default_policy, default_policy, default_policy, default_policy, default_policy, default_policy, default_policy>
-{
-public:
-   typedef domain_error<> domain_error_type;
-   typedef pole_error<> pole_error_type;
-   typedef overflow_error<> overflow_error_type;
-   typedef underflow_error<> underflow_error_type;
-   typedef denorm_error<> denorm_error_type;
-   typedef evaluation_error<> evaluation_error_type;
-   typedef rounding_error<> rounding_error_type;
-   typedef indeterminate_result_error<> indeterminate_result_error_type;
-#if BOOST_MATH_DIGITS10_POLICY == 0
-   typedef digits2<> precision_type;
-#else
-   typedef detail::precision<digits10<>, digits2<> >::type precision_type;
-#endif
-   typedef promote_float<> promote_float_type;
-   typedef promote_double<> promote_double_type;
-   typedef discrete_quantile<> discrete_quantile_type;
-   typedef assert_undefined<> assert_undefined_type;
-   typedef max_series_iterations<> max_series_iterations_type;
-   typedef max_root_iterations<> max_root_iterations_type;
-};
-
-template <>
-struct policy<detail::forwarding_arg1, detail::forwarding_arg2, default_policy, default_policy, default_policy, default_policy, default_policy, default_policy, default_policy, default_policy, default_policy>
-{
-public:
-   typedef domain_error<> domain_error_type;
-   typedef pole_error<> pole_error_type;
-   typedef overflow_error<> overflow_error_type;
-   typedef underflow_error<> underflow_error_type;
-   typedef denorm_error<> denorm_error_type;
-   typedef evaluation_error<> evaluation_error_type;
-   typedef rounding_error<> rounding_error_type;
-   typedef indeterminate_result_error<> indeterminate_result_error_type;
-#if BOOST_MATH_DIGITS10_POLICY == 0
-   typedef digits2<> precision_type;
-#else
-   typedef detail::precision<digits10<>, digits2<> >::type precision_type;
-#endif
-   typedef promote_float<false> promote_float_type;
-   typedef promote_double<false> promote_double_type;
-   typedef discrete_quantile<> discrete_quantile_type;
-   typedef assert_undefined<> assert_undefined_type;
-   typedef max_series_iterations<> max_series_iterations_type;
-   typedef max_root_iterations<> max_root_iterations_type;
-};
-
-template <class Policy, 
-          class A1 = default_policy, 
-          class A2 = default_policy, 
-          class A3 = default_policy,
-          class A4 = default_policy,
-          class A5 = default_policy,
-          class A6 = default_policy,
-          class A7 = default_policy,
-          class A8 = default_policy,
-          class A9 = default_policy,
-          class A10 = default_policy,
-          class A11 = default_policy,
-          class A12 = default_policy,
-          class A13 = default_policy>
-struct normalise
-{
-private:
-   typedef mpl::list<A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13> arg_list;
-   typedef typename detail::find_arg<arg_list, is_domain_error<mpl::_1>, typename Policy::domain_error_type >::type domain_error_type;
-   typedef typename detail::find_arg<arg_list, is_pole_error<mpl::_1>, typename Policy::pole_error_type >::type pole_error_type;
-   typedef typename detail::find_arg<arg_list, is_overflow_error<mpl::_1>, typename Policy::overflow_error_type >::type overflow_error_type;
-   typedef typename detail::find_arg<arg_list, is_underflow_error<mpl::_1>, typename Policy::underflow_error_type >::type underflow_error_type;
-   typedef typename detail::find_arg<arg_list, is_denorm_error<mpl::_1>, typename Policy::denorm_error_type >::type denorm_error_type;
-   typedef typename detail::find_arg<arg_list, is_evaluation_error<mpl::_1>, typename Policy::evaluation_error_type >::type evaluation_error_type;
-   typedef typename detail::find_arg<arg_list, is_rounding_error<mpl::_1>, typename Policy::rounding_error_type >::type rounding_error_type;
-   typedef typename detail::find_arg<arg_list, is_indeterminate_result_error<mpl::_1>, typename Policy::indeterminate_result_error_type >::type indeterminate_result_error_type;
-   //
-   // Now work out the precision:
-   //
-   typedef typename detail::find_arg<arg_list, is_digits10<mpl::_1>, digits10<> >::type digits10_type;
-   typedef typename detail::find_arg<arg_list, is_digits2<mpl::_1>, typename Policy::precision_type >::type bits_precision_type;
-   typedef typename detail::precision<digits10_type, bits_precision_type>::type precision_type;
-   //
-   // Internal promotion:
-   //
-   typedef typename detail::find_arg<arg_list, is_promote_float<mpl::_1>, typename Policy::promote_float_type >::type promote_float_type;
-   typedef typename detail::find_arg<arg_list, is_promote_double<mpl::_1>, typename Policy::promote_double_type >::type promote_double_type;
-   //
-   // Discrete quantiles:
-   //
-   typedef typename detail::find_arg<arg_list, is_discrete_quantile<mpl::_1>, typename Policy::discrete_quantile_type >::type discrete_quantile_type;
-   //
-   // Mathematically undefined properties:
-   //
-   typedef typename detail::find_arg<arg_list, is_assert_undefined<mpl::_1>, typename Policy::assert_undefined_type >::type assert_undefined_type;
-   //
-   // Max iterations:
-   //
-   typedef typename detail::find_arg<arg_list, is_max_series_iterations<mpl::_1>, typename Policy::max_series_iterations_type>::type max_series_iterations_type;
-   typedef typename detail::find_arg<arg_list, is_max_root_iterations<mpl::_1>, typename Policy::max_root_iterations_type>::type max_root_iterations_type;
-   //
-   // Define a typelist of the policies:
-   //
-   typedef mpl::vector<
-      domain_error_type,
-      pole_error_type,
-      overflow_error_type,
-      underflow_error_type,
-      denorm_error_type,
-      evaluation_error_type,
-      rounding_error_type,
-      indeterminate_result_error_type,
-      precision_type,
-      promote_float_type,
-      promote_double_type,
-      discrete_quantile_type,
-      assert_undefined_type,
-      max_series_iterations_type,
-      max_root_iterations_type> result_list;
-   //
-   // Remove all the policies that are the same as the default:
-   //
-   typedef typename mpl::remove_if<result_list, detail::is_default_policy<mpl::_> >::type reduced_list;
-   //
-   // Pad out the list with defaults:
-   //
-   typedef typename detail::append_N<reduced_list, default_policy, (14 - ::boost::mpl::size<reduced_list>::value)>::type result_type;
-public:
-   typedef policy<
-      typename mpl::at<result_type, mpl::int_<0> >::type,
-      typename mpl::at<result_type, mpl::int_<1> >::type,
-      typename mpl::at<result_type, mpl::int_<2> >::type,
-      typename mpl::at<result_type, mpl::int_<3> >::type,
-      typename mpl::at<result_type, mpl::int_<4> >::type,
-      typename mpl::at<result_type, mpl::int_<5> >::type,
-      typename mpl::at<result_type, mpl::int_<6> >::type,
-      typename mpl::at<result_type, mpl::int_<7> >::type,
-      typename mpl::at<result_type, mpl::int_<8> >::type,
-      typename mpl::at<result_type, mpl::int_<9> >::type,
-      typename mpl::at<result_type, mpl::int_<10> >::type,
-      typename mpl::at<result_type, mpl::int_<11> >::type,
-      typename mpl::at<result_type, mpl::int_<12> >::type > type;
-};
-//
-// Full specialisation to speed up compilation of the common case:
-//
-template <>
-struct normalise<policy<>, 
-          promote_float<false>, 
-          promote_double<false>, 
-          discrete_quantile<>,
-          assert_undefined<>,
-          default_policy,
-          default_policy,
-          default_policy,
-          default_policy,
-          default_policy,
-          default_policy,
-          default_policy>
-{
-   typedef policy<detail::forwarding_arg1, detail::forwarding_arg2> type;
-};
-
-template <>
-struct normalise<policy<detail::forwarding_arg1, detail::forwarding_arg2>,
-          promote_float<false>,
-          promote_double<false>,
-          discrete_quantile<>,
-          assert_undefined<>,
-          default_policy,
-          default_policy,
-          default_policy,
-          default_policy,
-          default_policy,
-          default_policy,
-          default_policy>
-{
-   typedef policy<detail::forwarding_arg1, detail::forwarding_arg2> type;
-};
-
-inline policy<> make_policy()
-{ return policy<>(); }
-
-template <class A1>
-inline typename normalise<policy<>, A1>::type make_policy(const A1&)
-{ 
-   typedef typename normalise<policy<>, A1>::type result_type;
-   return result_type(); 
-}
-
-template <class A1, class A2>
-inline typename normalise<policy<>, A1, A2>::type make_policy(const A1&, const A2&)
-{ 
-   typedef typename normalise<policy<>, A1, A2>::type result_type;
-   return result_type(); 
-}
-
-template <class A1, class A2, class A3>
-inline typename normalise<policy<>, A1, A2, A3>::type make_policy(const A1&, const A2&, const A3&)
-{ 
-   typedef typename normalise<policy<>, A1, A2, A3>::type result_type;
-   return result_type(); 
-}
-
-template <class A1, class A2, class A3, class A4>
-inline typename normalise<policy<>, A1, A2, A3, A4>::type make_policy(const A1&, const A2&, const A3&, const A4&)
-{ 
-   typedef typename normalise<policy<>, A1, A2, A3, A4>::type result_type;
-   return result_type(); 
-}
-
-template <class A1, class A2, class A3, class A4, class A5>
-inline typename normalise<policy<>, A1, A2, A3, A4, A5>::type make_policy(const A1&, const A2&, const A3&, const A4&, const A5&)
-{ 
-   typedef typename normalise<policy<>, A1, A2, A3, A4, A5>::type result_type;
-   return result_type(); 
-}
-
-template <class A1, class A2, class A3, class A4, class A5, class A6>
-inline typename normalise<policy<>, A1, A2, A3, A4, A5, A6>::type make_policy(const A1&, const A2&, const A3&, const A4&, const A5&, const A6&)
-{ 
-   typedef typename normalise<policy<>, A1, A2, A3, A4, A5, A6>::type result_type;
-   return result_type(); 
-}
-
-template <class A1, class A2, class A3, class A4, class A5, class A6, class A7>
-inline typename normalise<policy<>, A1, A2, A3, A4, A5, A6, A7>::type make_policy(const A1&, const A2&, const A3&, const A4&, const A5&, const A6&, const A7&)
-{ 
-   typedef typename normalise<policy<>, A1, A2, A3, A4, A5, A6, A7>::type result_type;
-   return result_type(); 
-}
-
-template <class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8>
-inline typename normalise<policy<>, A1, A2, A3, A4, A5, A6, A7, A8>::type make_policy(const A1&, const A2&, const A3&, const A4&, const A5&, const A6&, const A7&, const A8&)
-{ 
-   typedef typename normalise<policy<>, A1, A2, A3, A4, A5, A6, A7, A8>::type result_type;
-   return result_type(); 
-}
-
-template <class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9>
-inline typename normalise<policy<>, A1, A2, A3, A4, A5, A6, A7, A8, A9>::type make_policy(const A1&, const A2&, const A3&, const A4&, const A5&, const A6&, const A7&, const A8&, const A9&)
-{ 
-   typedef typename normalise<policy<>, A1, A2, A3, A4, A5, A6, A7, A8, A9>::type result_type;
-   return result_type(); 
-}
-
-template <class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9, class A10>
-inline typename normalise<policy<>, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>::type make_policy(const A1&, const A2&, const A3&, const A4&, const A5&, const A6&, const A7&, const A8&, const A9&, const A10&)
-{ 
-   typedef typename normalise<policy<>, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>::type result_type;
-   return result_type(); 
-}
-
-template <class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9, class A10, class A11>
-inline typename normalise<policy<>, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>::type make_policy(const A1&, const A2&, const A3&, const A4&, const A5&, const A6&, const A7&, const A8&, const A9&, const A10&, const A11&)
-{
-   typedef typename normalise<policy<>, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>::type result_type;
-   return result_type();
-}
-
-//
-// Traits class to handle internal promotion:
-//
-template <class Real, class Policy>
-struct evaluation
-{
-   typedef Real type;
-};
-
-template <class Policy>
-struct evaluation<float, Policy>
-{
-   typedef typename mpl::if_<typename Policy::promote_float_type, double, float>::type type;
-};
-
-template <class Policy>
-struct evaluation<double, Policy>
-{
-   typedef typename mpl::if_<typename Policy::promote_double_type, long double, double>::type type;
-};
-
-#ifdef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-
-template <class Real>
-struct basic_digits : public mpl::int_<0>{ };
-template <>
-struct basic_digits<float> : public mpl::int_<FLT_MANT_DIG>{ };
-template <>
-struct basic_digits<double> : public mpl::int_<DBL_MANT_DIG>{ };
-template <>
-struct basic_digits<long double> : public mpl::int_<LDBL_MANT_DIG>{ };
-
-template <class Real, class Policy>
-struct precision
-{
-   BOOST_STATIC_ASSERT( ::std::numeric_limits<Real>::radix == 2);
-   typedef typename Policy::precision_type precision_type;
-   typedef basic_digits<Real> digits_t;
-   typedef typename mpl::if_<
-      mpl::equal_to<digits_t, mpl::int_<0> >,
-      // Possibly unknown precision:
-      precision_type,
-      typename mpl::if_<
-         mpl::or_<mpl::less_equal<digits_t, precision_type>, mpl::less_equal<precision_type, mpl::int_<0> > >,
-         // Default case, full precision for RealType:
-         digits2< ::std::numeric_limits<Real>::digits>,
-         // User customised precision:
-         precision_type
-      >::type
-   >::type type;
-};
-
-template <class Policy>
-struct precision<float, Policy>
-{
-   typedef digits2<FLT_MANT_DIG> type;
-};
-template <class Policy>
-struct precision<double, Policy>
-{
-   typedef digits2<DBL_MANT_DIG> type;
-};
-template <class Policy>
-struct precision<long double, Policy>
-{
-   typedef digits2<LDBL_MANT_DIG> type;
-};
-
-#else
-
-template <class Real, class Policy>
-struct precision
-{
-   BOOST_STATIC_ASSERT((::std::numeric_limits<Real>::radix == 2) || ((::std::numeric_limits<Real>::is_specialized == 0) || (::std::numeric_limits<Real>::digits == 0)));
-#ifndef __BORLANDC__
-   typedef typename Policy::precision_type precision_type;
-   typedef typename mpl::if_c<
-      ((::std::numeric_limits<Real>::is_specialized == 0) || (::std::numeric_limits<Real>::digits == 0)),
-      // Possibly unknown precision:
-      precision_type,
-      typename mpl::if_c<
-         ((::std::numeric_limits<Real>::digits <= precision_type::value) 
-         || (Policy::precision_type::value <= 0)),
-         // Default case, full precision for RealType:
-         digits2< ::std::numeric_limits<Real>::digits>,
-         // User customised precision:
-         precision_type
-      >::type
-   >::type type;
-#else
-   typedef typename Policy::precision_type precision_type;
-   typedef mpl::int_< ::std::numeric_limits<Real>::digits> digits_t;
-   typedef mpl::bool_< ::std::numeric_limits<Real>::is_specialized> spec_t;
-   typedef typename mpl::if_<
-      mpl::or_<mpl::equal_to<spec_t, mpl::false_>, mpl::equal_to<digits_t, mpl::int_<0> > >,
-      // Possibly unknown precision:
-      precision_type,
-      typename mpl::if_<
-         mpl::or_<mpl::less_equal<digits_t, precision_type>, mpl::less_equal<precision_type, mpl::int_<0> > >,
-         // Default case, full precision for RealType:
-         digits2< ::std::numeric_limits<Real>::digits>,
-         // User customised precision:
-         precision_type
-      >::type
-   >::type type;
-#endif
-};
-
-#endif
-
-#ifdef BOOST_MATH_USE_FLOAT128
-
-template <class Policy>
-struct precision<__float128, Policy>
-{
-   typedef mpl::int_<113> type;
-};
-
-#endif
-
-namespace detail{
-
-template <class T, class Policy>
-inline int digits_imp(mpl::true_ const&)
-{
-#ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-   BOOST_STATIC_ASSERT( ::std::numeric_limits<T>::is_specialized);
-#else
-   BOOST_ASSERT(::std::numeric_limits<T>::is_specialized);
-#endif
-   typedef typename boost::math::policies::precision<T, Policy>::type p_t;
-   return p_t::value;
-}
-
-template <class T, class Policy>
-inline int digits_imp(mpl::false_ const&)
-{
-   return tools::digits<T>();
-}
-
-} // namespace detail
-
-template <class T, class Policy>
-inline int digits(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE(T))
-{
-   typedef mpl::bool_< std::numeric_limits<T>::is_specialized > tag_type;
-   return detail::digits_imp<T, Policy>(tag_type());
-}
-
-template <class Policy>
-inline unsigned long get_max_series_iterations()
-{
-   typedef typename Policy::max_series_iterations_type iter_type;
-   return iter_type::value;
-}
-
-template <class Policy>
-inline unsigned long get_max_root_iterations()
-{
-   typedef typename Policy::max_root_iterations_type iter_type;
-   return iter_type::value;
-}
-
-namespace detail{
-
-template <class T, class Digits, class Small, class Default>
-struct series_factor_calc
-{
-   static T get()
-   {
-      return ldexp(T(1.0), 1 - Digits::value);
-   }
-};
-
-template <class T, class Digits>
-struct series_factor_calc<T, Digits, mpl::true_, mpl::true_>
-{
-   static T get()
-   {
-      return boost::math::tools::epsilon<T>();
-   }
-};
-template <class T, class Digits>
-struct series_factor_calc<T, Digits, mpl::true_, mpl::false_>
-{
-   static T get()
-   {
-      static const boost::uintmax_t v = static_cast<boost::uintmax_t>(1u) << (Digits::value - 1);
-      return 1 / static_cast<T>(v);
-   }
-};
-template <class T, class Digits>
-struct series_factor_calc<T, Digits, mpl::false_, mpl::true_>
-{
-   static T get()
-   {
-      return boost::math::tools::epsilon<T>();
-   }
-};
-
-template <class T, class Policy>
-inline T get_epsilon_imp(mpl::true_ const&)
-{
-#ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-   BOOST_STATIC_ASSERT( ::std::numeric_limits<T>::is_specialized);
-   BOOST_STATIC_ASSERT( ::std::numeric_limits<T>::radix == 2);
-#else
-   BOOST_ASSERT(::std::numeric_limits<T>::is_specialized);
-   BOOST_ASSERT(::std::numeric_limits<T>::radix == 2);
-#endif
-   typedef typename boost::math::policies::precision<T, Policy>::type p_t;
-   typedef mpl::bool_<p_t::value <= std::numeric_limits<boost::uintmax_t>::digits> is_small_int;
-   typedef mpl::bool_<p_t::value >= std::numeric_limits<T>::digits> is_default_value;
-   return series_factor_calc<T, p_t, is_small_int, is_default_value>::get();
-}
-
-template <class T, class Policy>
-inline T get_epsilon_imp(mpl::false_ const&)
-{
-   return tools::epsilon<T>();
-}
-
-} // namespace detail
-
-template <class T, class Policy>
-inline T get_epsilon(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE(T))
-{
-   typedef mpl::bool_< (std::numeric_limits<T>::is_specialized && (std::numeric_limits<T>::radix == 2)) > tag_type;
-   return detail::get_epsilon_imp<T, Policy>(tag_type());
-}
-
-namespace detail{
-
-template <class A1, 
-          class A2, 
-          class A3,
-          class A4,
-          class A5,
-          class A6,
-          class A7,
-          class A8,
-          class A9,
-          class A10,
-          class A11>
-char test_is_policy(const policy<A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11>*);
-double test_is_policy(...);
-
-template <class P>
-struct is_policy_imp
-{
-   BOOST_STATIC_CONSTANT(bool, value = (sizeof(::boost::math::policies::detail::test_is_policy(static_cast<P*>(0))) == 1));
-};
-
-}
-
-template <class P>
-struct is_policy : public mpl::bool_< ::boost::math::policies::detail::is_policy_imp<P>::value> {};
-
-//
-// Helper traits class for distribution error handling:
-//
-template <class Policy>
-struct constructor_error_check
-{
-   typedef typename Policy::domain_error_type domain_error_type;
-   typedef typename mpl::if_c<
-      (domain_error_type::value == throw_on_error) || (domain_error_type::value == user_error),
-      mpl::true_,
-      mpl::false_>::type type;
-};
-
-template <class Policy>
-struct method_error_check
-{
-   typedef typename Policy::domain_error_type domain_error_type;
-   typedef typename mpl::if_c<
-      (domain_error_type::value == throw_on_error) && (domain_error_type::value != user_error),
-      mpl::false_,
-      mpl::true_>::type type;
-};
-
-}}} // namespaces
-
-#endif // BOOST_MATH_POLICY_HPP
-
-
-
diff --git a/boost/math/special_functions.hpp b/boost/math/special_functions.hpp
deleted file mode 100644
index 24f4064..0000000
--- a/boost/math/special_functions.hpp
+++ /dev/null
@@ -1,64 +0,0 @@
-//  Copyright John Maddock 2006, 2007, 2012.
-//  Copyright Paul A. Bristow 2006, 2007, 2012
-
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// This file includes *all* the special functions.
-// this may be useful if many are used
-// - to avoid including each function individually.
-
-#ifndef BOOST_MATH_SPECIAL_FUNCTIONS_HPP
-#define BOOST_MATH_SPECIAL_FUNCTIONS_HPP
-
-#include <boost/math/special_functions/airy.hpp>
-#include <boost/math/special_functions/acosh.hpp>
-#include <boost/math/special_functions/asinh.hpp>
-#include <boost/math/special_functions/atanh.hpp>
-#include <boost/math/special_functions/bessel.hpp>
-#include <boost/math/special_functions/beta.hpp>
-#include <boost/math/special_functions/binomial.hpp>
-#include <boost/math/special_functions/cbrt.hpp>
-#include <boost/math/special_functions/cos_pi.hpp>
-#include <boost/math/special_functions/digamma.hpp>
-#include <boost/math/special_functions/ellint_1.hpp>
-#include <boost/math/special_functions/ellint_2.hpp>
-#include <boost/math/special_functions/ellint_3.hpp>
-#include <boost/math/special_functions/ellint_rc.hpp>
-#include <boost/math/special_functions/ellint_rd.hpp>
-#include <boost/math/special_functions/ellint_rf.hpp>
-#include <boost/math/special_functions/ellint_rj.hpp>
-#include <boost/math/special_functions/erf.hpp>
-#include <boost/math/special_functions/expint.hpp>
-#include <boost/math/special_functions/expm1.hpp>
-#include <boost/math/special_functions/factorials.hpp>
-#include <boost/math/special_functions/fpclassify.hpp>
-#include <boost/math/special_functions/gamma.hpp>
-#include <boost/math/special_functions/hermite.hpp>
-#include <boost/math/special_functions/hypot.hpp>
-#include <boost/math/special_functions/jacobi_elliptic.hpp>
-#include <boost/math/special_functions/laguerre.hpp>
-#include <boost/math/special_functions/lanczos.hpp>
-#include <boost/math/special_functions/legendre.hpp>
-#include <boost/math/special_functions/log1p.hpp>
-#include <boost/math/special_functions/math_fwd.hpp>
-#include <boost/math/special_functions/next.hpp>
-#include <boost/math/special_functions/owens_t.hpp>
-#include <boost/math/special_functions/powm1.hpp>
-#include <boost/math/special_functions/sign.hpp>
-#include <boost/math/special_functions/sin_pi.hpp>
-#include <boost/math/special_functions/sinc.hpp>
-#include <boost/math/special_functions/sinhc.hpp>
-#include <boost/math/special_functions/spherical_harmonic.hpp>
-#include <boost/math/special_functions/sqrt1pm1.hpp>
-#include <boost/math/special_functions/zeta.hpp>
-#include <boost/math/special_functions/modf.hpp>
-#include <boost/math/special_functions/round.hpp>
-#include <boost/math/special_functions/trunc.hpp>
-#include <boost/math/special_functions/pow.hpp>
-#include <boost/math/special_functions/next.hpp>
-#include <boost/math/special_functions/owens_t.hpp>
-#include <boost/math/special_functions/hankel.hpp>
-
-#endif // BOOST_MATH_SPECIAL_FUNCTIONS_HPP
diff --git a/boost/math/special_functions/acosh.hpp b/boost/math/special_functions/acosh.hpp
deleted file mode 100644
index 5a43ae5..0000000
--- a/boost/math/special_functions/acosh.hpp
+++ /dev/null
@@ -1,115 +0,0 @@
-//    boost asinh.hpp header file
-
-//  (C) Copyright Eric Ford 2001 & Hubert Holin.
-//  (C) Copyright John Maddock 2008.
-//  Distributed under the Boost Software License, Version 1.0. (See
-//  accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-
-// See http://www.boost.org for updates, documentation, and revision history.
-
-#ifndef BOOST_ACOSH_HPP
-#define BOOST_ACOSH_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/config/no_tr1/cmath.hpp>
-#include <boost/config.hpp>
-#include <boost/math/tools/precision.hpp>
-#include <boost/math/policies/error_handling.hpp>
-#include <boost/math/special_functions/math_fwd.hpp>
-#include <boost/math/special_functions/log1p.hpp>
-#include <boost/math/constants/constants.hpp>
-
-// This is the inverse of the hyperbolic cosine function.
-
-namespace boost
-{
-    namespace math
-    {
-       namespace detail
-       {
-#if defined(__GNUC__) && (__GNUC__ < 3)
-        // gcc 2.x ignores function scope using declarations,
-        // put them in the scope of the enclosing namespace instead:
-        
-        using    ::std::abs;
-        using    ::std::sqrt;
-        using    ::std::log;
-        
-        using    ::std::numeric_limits;
-#endif
-        
-        template<typename T, typename Policy>
-        inline T    acosh_imp(const T x, const Policy& pol)
-        {
-            BOOST_MATH_STD_USING
-            
-            if(x < 1)
-            {
-               return policies::raise_domain_error<T>(
-                  "boost::math::acosh<%1%>(%1%)",
-                  "acosh requires x >= 1, but got x = %1%.", x, pol);
-            }
-            else if    ((x - 1) >= tools::root_epsilon<T>())
-            {
-                if    (x > 1 / tools::root_epsilon<T>())
-                {
-                    // http://functions.wolfram.com/ElementaryFunctions/ArcCosh/06/01/06/01/0001/
-                    // approximation by laurent series in 1/x at 0+ order from -1 to 0
-                    return log(x) + constants::ln_two<T>();
-                }
-                else if(x < 1.5f)
-                {
-                   // This is just a rearrangement of the standard form below
-                   // devised to minimse loss of precision when x ~ 1:
-                   T y = x - 1;
-                   return boost::math::log1p(y + sqrt(y * y + 2 * y), pol);
-                }
-                else
-                {
-                    // http://functions.wolfram.com/ElementaryFunctions/ArcCosh/02/
-                    return( log( x + sqrt(x * x - 1) ) );
-                }
-            }
-            else
-            {
-                // see http://functions.wolfram.com/ElementaryFunctions/ArcCosh/06/01/04/01/0001/
-                T y = x - 1;
-                
-                // approximation by taylor series in y at 0 up to order 2
-                T result = sqrt(2 * y) * (1 - y /12 + 3 * y * y / 160);
-                return result;
-            }
-        }
-       }
-
-        template<typename T, typename Policy>
-        inline typename tools::promote_args<T>::type acosh(T x, const Policy&)
-        {
-            typedef typename tools::promote_args<T>::type result_type;
-            typedef typename policies::evaluation<result_type, Policy>::type value_type;
-            typedef typename policies::normalise<
-               Policy, 
-               policies::promote_float<false>, 
-               policies::promote_double<false>, 
-               policies::discrete_quantile<>,
-               policies::assert_undefined<> >::type forwarding_policy;
-           return policies::checked_narrowing_cast<result_type, forwarding_policy>(
-              detail::acosh_imp(static_cast<value_type>(x), forwarding_policy()),
-              "boost::math::acosh<%1%>(%1%)");
-        }
-        template<typename T>
-        inline typename tools::promote_args<T>::type acosh(T x)
-        {
-           return boost::math::acosh(x, policies::policy<>());
-        }
-
-    }
-}
-
-#endif /* BOOST_ACOSH_HPP */
-
-
diff --git a/boost/math/special_functions/airy.hpp b/boost/math/special_functions/airy.hpp
deleted file mode 100644
index 554fb58..0000000
--- a/boost/math/special_functions/airy.hpp
+++ /dev/null
@@ -1,437 +0,0 @@
-// Copyright John Maddock 2012.
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt
-// or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_AIRY_HPP
-#define BOOST_MATH_AIRY_HPP
-
-#include <boost/math/special_functions/bessel.hpp>
-#include <boost/math/special_functions/cbrt.hpp>
-#include <boost/math/special_functions/detail/airy_ai_bi_zero.hpp>
-#include <boost/math/tools/roots.hpp>
-
-namespace boost{ namespace math{
-
-namespace detail{
-
-template <class T, class Policy>
-T airy_ai_imp(T x, const Policy& pol)
-{
-   BOOST_MATH_STD_USING
-
-   if(x < 0)
-   {
-      T p = (-x * sqrt(-x) * 2) / 3;
-      T v = T(1) / 3;
-      T j1 = boost::math::cyl_bessel_j(v, p, pol);
-      T j2 = boost::math::cyl_bessel_j(-v, p, pol);
-      T ai = sqrt(-x) * (j1 + j2) / 3;
-      //T bi = sqrt(-x / 3) * (j2 - j1);
-      return ai;
-   }
-   else if(fabs(x * x * x) / 6 < tools::epsilon<T>())
-   {
-      T tg = boost::math::tgamma(constants::twothirds<T>(), pol);
-      T ai = 1 / (pow(T(3), constants::twothirds<T>()) * tg);
-      //T bi = 1 / (sqrt(boost::math::cbrt(T(3))) * tg);
-      return ai;
-   }
-   else
-   {
-      T p = 2 * x * sqrt(x) / 3;
-      T v = T(1) / 3;
-      //T j1 = boost::math::cyl_bessel_i(-v, p, pol);
-      //T j2 = boost::math::cyl_bessel_i(v, p, pol);
-      //
-      // Note that although we can calculate ai from j1 and j2, the accuracy is horrible
-      // as we're subtracting two very large values, so use the Bessel K relation instead:
-      //
-      T ai = cyl_bessel_k(v, p, pol) * sqrt(x / 3) / boost::math::constants::pi<T>();  //sqrt(x) * (j1 - j2) / 3;
-      //T bi = sqrt(x / 3) * (j1 + j2);
-      return ai;
-   }
-}
-
-template <class T, class Policy>
-T airy_bi_imp(T x, const Policy& pol)
-{
-   BOOST_MATH_STD_USING
-
-   if(x < 0)
-   {
-      T p = (-x * sqrt(-x) * 2) / 3;
-      T v = T(1) / 3;
-      T j1 = boost::math::cyl_bessel_j(v, p, pol);
-      T j2 = boost::math::cyl_bessel_j(-v, p, pol);
-      //T ai = sqrt(-x) * (j1 + j2) / 3;
-      T bi = sqrt(-x / 3) * (j2 - j1);
-      return bi;
-   }
-   else if(fabs(x * x * x) / 6 < tools::epsilon<T>())
-   {
-      T tg = boost::math::tgamma(constants::twothirds<T>(), pol);
-      //T ai = 1 / (pow(T(3), constants::twothirds<T>()) * tg);
-      T bi = 1 / (sqrt(boost::math::cbrt(T(3))) * tg);
-      return bi;
-   }
-   else
-   {
-      T p = 2 * x * sqrt(x) / 3;
-      T v = T(1) / 3;
-      T j1 = boost::math::cyl_bessel_i(-v, p, pol);
-      T j2 = boost::math::cyl_bessel_i(v, p, pol);
-      T bi = sqrt(x / 3) * (j1 + j2);
-      return bi;
-   }
-}
-
-template <class T, class Policy>
-T airy_ai_prime_imp(T x, const Policy& pol)
-{
-   BOOST_MATH_STD_USING
-
-   if(x < 0)
-   {
-      T p = (-x * sqrt(-x) * 2) / 3;
-      T v = T(2) / 3;
-      T j1 = boost::math::cyl_bessel_j(v, p, pol);
-      T j2 = boost::math::cyl_bessel_j(-v, p, pol);
-      T aip = -x * (j1 - j2) / 3;
-      return aip;
-   }
-   else if(fabs(x * x) / 2 < tools::epsilon<T>())
-   {
-      T tg = boost::math::tgamma(constants::third<T>(), pol);
-      T aip = 1 / (boost::math::cbrt(T(3)) * tg);
-      return -aip;
-   }
-   else
-   {
-      T p = 2 * x * sqrt(x) / 3;
-      T v = T(2) / 3;
-      //T j1 = boost::math::cyl_bessel_i(-v, p, pol);
-      //T j2 = boost::math::cyl_bessel_i(v, p, pol);
-      //
-      // Note that although we can calculate ai from j1 and j2, the accuracy is horrible
-      // as we're subtracting two very large values, so use the Bessel K relation instead:
-      //
-      T aip = -cyl_bessel_k(v, p, pol) * x / (boost::math::constants::root_three<T>() * boost::math::constants::pi<T>());
-      return aip;
-   }
-}
-
-template <class T, class Policy>
-T airy_bi_prime_imp(T x, const Policy& pol)
-{
-   BOOST_MATH_STD_USING
-
-   if(x < 0)
-   {
-      T p = (-x * sqrt(-x) * 2) / 3;
-      T v = T(2) / 3;
-      T j1 = boost::math::cyl_bessel_j(v, p, pol);
-      T j2 = boost::math::cyl_bessel_j(-v, p, pol);
-      T aip = -x * (j1 + j2) / constants::root_three<T>();
-      return aip;
-   }
-   else if(fabs(x * x) / 2 < tools::epsilon<T>())
-   {
-      T tg = boost::math::tgamma(constants::third<T>(), pol);
-      T bip = sqrt(boost::math::cbrt(T(3))) / tg;
-      return bip;
-   }
-   else
-   {
-      T p = 2 * x * sqrt(x) / 3;
-      T v = T(2) / 3;
-      T j1 = boost::math::cyl_bessel_i(-v, p, pol);
-      T j2 = boost::math::cyl_bessel_i(v, p, pol);
-      T aip = x * (j1 + j2) / boost::math::constants::root_three<T>();
-      return aip;
-   }
-}
-
-template <class T, class Policy>
-T airy_ai_zero_imp(unsigned m, const Policy& pol)
-{
-   BOOST_MATH_STD_USING // ADL of std names, needed for log, sqrt.
-
-   // Handle case when the zero'th zero is requested.
-   if(m == 0U)
-   {
-      return policies::raise_domain_error<T>("boost::math::airy_ai_zero<%1%>(%1%,%1%)",
-        "The requested rank of the zero is %1%, but must be 1 or more !", static_cast<T>(m), pol);
-   }
-
-   // Set up the initial guess for the upcoming root-finding.
-   const T guess_root = boost::math::detail::airy_zero::airy_ai_zero_detail::initial_guess<T>(m);
-
-   // Select the maximum allowed iterations, being at least 24.
-   boost::uintmax_t number_of_iterations = (std::max)(24, int(std::numeric_limits<T>::digits10));
-
-   // Select the desired number of binary digits of precision.
-   // Account for the radix of number representations having non-two radix!
-   const int my_digits2 = int(float(std::numeric_limits<T>::digits)
-                              * (  log(float(std::numeric_limits<T>::radix))
-                                 / log(2.0F)));
-
-   // Use a dynamic tolerance because the roots get closer the higher m gets.
-   T tolerance;
-
-   if     (m <=   10U) { tolerance = T(0.3F); }
-   else if(m <=  100U) { tolerance = T(0.1F); }
-   else if(m <= 1000U) { tolerance = T(0.05F); }
-   else                { tolerance = T(1) / sqrt(T(m)); }
-
-   // Perform the root-finding using Newton-Raphson iteration from Boost.Math.
-   const T am =
-      boost::math::tools::newton_raphson_iterate(
-         boost::math::detail::airy_zero::airy_ai_zero_detail::function_object_ai_and_ai_prime<T, Policy>(pol),
-         guess_root,
-         T(guess_root - tolerance),
-         T(guess_root + tolerance),
-         my_digits2,
-         number_of_iterations);
-
-   static_cast<void>(number_of_iterations);
-
-   return am;
-}
-
-template <class T, class Policy>
-T airy_bi_zero_imp(unsigned m, const Policy& pol)
-{
-   BOOST_MATH_STD_USING // ADL of std names, needed for log, sqrt.
-
-   // Handle case when the zero'th zero is requested.
-   if(m == 0U)
-   {
-      return policies::raise_domain_error<T>("boost::math::airy_bi_zero<%1%>(%1%,%1%)",
-        "The requested rank of the zero is %1%, but must be 1 or more !", static_cast<T>(m), pol);
-   }
-   // Set up the initial guess for the upcoming root-finding.
-   const T guess_root = boost::math::detail::airy_zero::airy_bi_zero_detail::initial_guess<T>(m);
-
-   // Select the maximum allowed iterations, being at least 24.
-   boost::uintmax_t number_of_iterations = (std::max)(24, int(std::numeric_limits<T>::digits10));
-
-   // Select the desired number of binary digits of precision.
-   // Account for the radix of number representations having non-two radix!
-   const int my_digits2 = int(float(std::numeric_limits<T>::digits)
-                              * (  log(float(std::numeric_limits<T>::radix))
-                                 / log(2.0F)));
-
-   // Use a dynamic tolerance because the roots get closer the higher m gets.
-   T tolerance;
-
-   if     (m <=   10U) { tolerance = T(0.3F); }
-   else if(m <=  100U) { tolerance = T(0.1F); }
-   else if(m <= 1000U) { tolerance = T(0.05F); }
-   else                { tolerance = T(1) / sqrt(T(m)); }
-
-   // Perform the root-finding using Newton-Raphson iteration from Boost.Math.
-   const T bm =
-      boost::math::tools::newton_raphson_iterate(
-         boost::math::detail::airy_zero::airy_bi_zero_detail::function_object_bi_and_bi_prime<T, Policy>(pol),
-         guess_root,
-         T(guess_root - tolerance),
-         T(guess_root + tolerance),
-         my_digits2,
-         number_of_iterations);
-
-   static_cast<void>(number_of_iterations);
-
-   return bm;
-}
-
-} // namespace detail
-
-template <class T, class Policy>
-inline typename tools::promote_args<T>::type airy_ai(T x, const Policy&)
-{
-   BOOST_FPU_EXCEPTION_GUARD
-   typedef typename tools::promote_args<T>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   typedef typename policies::normalise<
-      Policy, 
-      policies::promote_float<false>, 
-      policies::promote_double<false>, 
-      policies::discrete_quantile<>,
-      policies::assert_undefined<> >::type forwarding_policy;
-
-   return policies::checked_narrowing_cast<result_type, Policy>(detail::airy_ai_imp<value_type>(static_cast<value_type>(x), forwarding_policy()), "boost::math::airy<%1%>(%1%)");
-}
-
-template <class T>
-inline typename tools::promote_args<T>::type airy_ai(T x)
-{
-   return airy_ai(x, policies::policy<>());
-}
-
-template <class T, class Policy>
-inline typename tools::promote_args<T>::type airy_bi(T x, const Policy&)
-{
-   BOOST_FPU_EXCEPTION_GUARD
-   typedef typename tools::promote_args<T>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   typedef typename policies::normalise<
-      Policy, 
-      policies::promote_float<false>, 
-      policies::promote_double<false>, 
-      policies::discrete_quantile<>,
-      policies::assert_undefined<> >::type forwarding_policy;
-
-   return policies::checked_narrowing_cast<result_type, Policy>(detail::airy_bi_imp<value_type>(static_cast<value_type>(x), forwarding_policy()), "boost::math::airy<%1%>(%1%)");
-}
-
-template <class T>
-inline typename tools::promote_args<T>::type airy_bi(T x)
-{
-   return airy_bi(x, policies::policy<>());
-}
-
-template <class T, class Policy>
-inline typename tools::promote_args<T>::type airy_ai_prime(T x, const Policy&)
-{
-   BOOST_FPU_EXCEPTION_GUARD
-   typedef typename tools::promote_args<T>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   typedef typename policies::normalise<
-      Policy, 
-      policies::promote_float<false>, 
-      policies::promote_double<false>, 
-      policies::discrete_quantile<>,
-      policies::assert_undefined<> >::type forwarding_policy;
-
-   return policies::checked_narrowing_cast<result_type, Policy>(detail::airy_ai_prime_imp<value_type>(static_cast<value_type>(x), forwarding_policy()), "boost::math::airy<%1%>(%1%)");
-}
-
-template <class T>
-inline typename tools::promote_args<T>::type airy_ai_prime(T x)
-{
-   return airy_ai_prime(x, policies::policy<>());
-}
-
-template <class T, class Policy>
-inline typename tools::promote_args<T>::type airy_bi_prime(T x, const Policy&)
-{
-   BOOST_FPU_EXCEPTION_GUARD
-   typedef typename tools::promote_args<T>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   typedef typename policies::normalise<
-      Policy, 
-      policies::promote_float<false>, 
-      policies::promote_double<false>, 
-      policies::discrete_quantile<>,
-      policies::assert_undefined<> >::type forwarding_policy;
-
-   return policies::checked_narrowing_cast<result_type, Policy>(detail::airy_bi_prime_imp<value_type>(static_cast<value_type>(x), forwarding_policy()), "boost::math::airy<%1%>(%1%)");
-}
-
-template <class T>
-inline typename tools::promote_args<T>::type airy_bi_prime(T x)
-{
-   return airy_bi_prime(x, policies::policy<>());
-}
-
-template <class T, class Policy>
-inline T airy_ai_zero(unsigned m, const Policy& /*pol*/)
-{
-   BOOST_FPU_EXCEPTION_GUARD
-   typedef typename policies::evaluation<T, Policy>::type value_type;
-   typedef typename policies::normalise<
-      Policy, 
-      policies::promote_float<false>, 
-      policies::promote_double<false>, 
-      policies::discrete_quantile<>,
-      policies::assert_undefined<> >::type forwarding_policy;
-   BOOST_STATIC_ASSERT_MSG(false == std::numeric_limits<T>::is_integer, "Airy return type must be a floating-point type.");
-   return policies::checked_narrowing_cast<T, Policy>(detail::airy_ai_zero_imp<value_type>(m, forwarding_policy()), "boost::math::airy_ai_zero<%1%>(unsigned)");
-}
-
-template <class T>
-inline T airy_ai_zero(unsigned m)
-{
-   return airy_ai_zero<T>(m, policies::policy<>());
-}
-
-template <class T, class OutputIterator, class Policy>
-inline OutputIterator airy_ai_zero(
-                         unsigned start_index,
-                         unsigned number_of_zeros,
-                         OutputIterator out_it,
-                         const Policy& pol)
-{
-   typedef T result_type;
-   BOOST_STATIC_ASSERT_MSG(false == std::numeric_limits<result_type>::is_integer, "Airy return type must be a floating-point type.");
-
-   for(unsigned i = 0; i < number_of_zeros; ++i)
-   {
-      *out_it = boost::math::airy_ai_zero<result_type>(start_index + i, pol);
-      ++out_it;
-   }
-   return out_it;
-}
-
-template <class T, class OutputIterator>
-inline OutputIterator airy_ai_zero(
-                         unsigned start_index,
-                         unsigned number_of_zeros,
-                         OutputIterator out_it)
-{
-   return airy_ai_zero<T>(start_index, number_of_zeros, out_it, policies::policy<>());
-}
-
-template <class T, class Policy>
-inline T airy_bi_zero(unsigned m, const Policy& /*pol*/)
-{
-   BOOST_FPU_EXCEPTION_GUARD
-   typedef typename policies::evaluation<T, Policy>::type value_type;
-   typedef typename policies::normalise<
-      Policy, 
-      policies::promote_float<false>, 
-      policies::promote_double<false>, 
-      policies::discrete_quantile<>,
-      policies::assert_undefined<> >::type forwarding_policy;
-   BOOST_STATIC_ASSERT_MSG(false == std::numeric_limits<T>::is_integer, "Airy return type must be a floating-point type.");
-   return policies::checked_narrowing_cast<T, Policy>(detail::airy_bi_zero_imp<value_type>(m, forwarding_policy()), "boost::math::airy_bi_zero<%1%>(unsigned)");
-}
-
-template <typename T>
-inline T airy_bi_zero(unsigned m)
-{
-   return airy_bi_zero<T>(m, policies::policy<>());
-}
-
-template <class T, class OutputIterator, class Policy>
-inline OutputIterator airy_bi_zero(
-                         unsigned start_index,
-                         unsigned number_of_zeros,
-                         OutputIterator out_it,
-                         const Policy& pol)
-{
-   typedef T result_type;
-   BOOST_STATIC_ASSERT_MSG(false == std::numeric_limits<result_type>::is_integer, "Airy return type must be a floating-point type.");
-
-   for(unsigned i = 0; i < number_of_zeros; ++i)
-   {
-      *out_it = boost::math::airy_bi_zero<result_type>(start_index + i, pol);
-      ++out_it;
-   }
-   return out_it;
-}
-
-template <class T, class OutputIterator>
-inline OutputIterator airy_bi_zero(
-                         unsigned start_index,
-                         unsigned number_of_zeros,
-                         OutputIterator out_it)
-{
-   return airy_bi_zero<T>(start_index, number_of_zeros, out_it, policies::policy<>());
-}
-
-}} // namespaces
-
-#endif // BOOST_MATH_AIRY_HPP
diff --git a/boost/math/special_functions/asinh.hpp b/boost/math/special_functions/asinh.hpp
deleted file mode 100644
index 0534f55..0000000
--- a/boost/math/special_functions/asinh.hpp
+++ /dev/null
@@ -1,117 +0,0 @@
-//    boost asinh.hpp header file
-
-//  (C) Copyright Eric Ford & Hubert Holin 2001.
-//  (C) Copyright John Maddock 2008.
-//  Distributed under the Boost Software License, Version 1.0. (See
-//  accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-
-// See http://www.boost.org for updates, documentation, and revision history.
-
-#ifndef BOOST_ASINH_HPP
-#define BOOST_ASINH_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-
-#include <boost/config/no_tr1/cmath.hpp>
-#include <boost/config.hpp>
-#include <boost/math/tools/precision.hpp>
-#include <boost/math/special_functions/math_fwd.hpp>
-#include <boost/math/special_functions/sqrt1pm1.hpp>
-#include <boost/math/special_functions/log1p.hpp>
-#include <boost/math/constants/constants.hpp>
-
-// This is the inverse of the hyperbolic sine function.
-
-namespace boost
-{
-    namespace math
-    {
-       namespace detail{
-#if defined(__GNUC__) && (__GNUC__ < 3)
-        // gcc 2.x ignores function scope using declarations,
-        // put them in the scope of the enclosing namespace instead:
-        
-        using    ::std::abs;
-        using    ::std::sqrt;
-        using    ::std::log;
-        
-        using    ::std::numeric_limits;
-#endif
-        
-        template<typename T, class Policy>
-        inline T    asinh_imp(const T x, const Policy& pol)
-        {
-            BOOST_MATH_STD_USING
-            
-            if        (x >= tools::forth_root_epsilon<T>())
-            {
-               if        (x > 1 / tools::root_epsilon<T>())
-                {
-                    // http://functions.wolfram.com/ElementaryFunctions/ArcSinh/06/01/06/01/0001/
-                    // approximation by laurent series in 1/x at 0+ order from -1 to 1
-                    return constants::ln_two<T>() + log(x) + 1/ (4 * x * x);
-                }
-                else if(x < 0.5f)
-                {
-                   // As below, but rearranged to preserve digits:
-                   return boost::math::log1p(x + boost::math::sqrt1pm1(x * x, pol), pol);
-                }
-                else
-                {
-                    // http://functions.wolfram.com/ElementaryFunctions/ArcSinh/02/
-                    return( log( x + sqrt(x*x+1) ) );
-                }
-            }
-            else if    (x <= -tools::forth_root_epsilon<T>())
-            {
-                return(-asinh(-x, pol));
-            }
-            else
-            {
-                // http://functions.wolfram.com/ElementaryFunctions/ArcSinh/06/01/03/01/0001/
-                // approximation by taylor series in x at 0 up to order 2
-                T    result = x;
-                
-                if    (abs(x) >= tools::root_epsilon<T>())
-                {
-                    T    x3 = x*x*x;
-                    
-                    // approximation by taylor series in x at 0 up to order 4
-                    result -= x3/static_cast<T>(6);
-                }
-                
-                return(result);
-            }
-        }
-       }
-
-        template<typename T>
-        inline typename tools::promote_args<T>::type asinh(T x)
-        {
-           return boost::math::asinh(x, policies::policy<>());
-        }
-        template<typename T, typename Policy>
-        inline typename tools::promote_args<T>::type asinh(T x, const Policy&)
-        {
-            typedef typename tools::promote_args<T>::type result_type;
-            typedef typename policies::evaluation<result_type, Policy>::type value_type;
-            typedef typename policies::normalise<
-               Policy, 
-               policies::promote_float<false>, 
-               policies::promote_double<false>, 
-               policies::discrete_quantile<>,
-               policies::assert_undefined<> >::type forwarding_policy;
-           return policies::checked_narrowing_cast<result_type, forwarding_policy>(
-              detail::asinh_imp(static_cast<value_type>(x), forwarding_policy()),
-              "boost::math::asinh<%1%>(%1%)");
-        }
-
-    }
-}
-
-#endif /* BOOST_ASINH_HPP */
-
diff --git a/boost/math/special_functions/atanh.hpp b/boost/math/special_functions/atanh.hpp
deleted file mode 100644
index b06f2ae..0000000
--- a/boost/math/special_functions/atanh.hpp
+++ /dev/null
@@ -1,128 +0,0 @@
-//    boost atanh.hpp header file
-
-//  (C) Copyright Hubert Holin 2001.
-//  (C) Copyright John Maddock 2008.
-//  Distributed under the Boost Software License, Version 1.0. (See
-//  accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-
-// See http://www.boost.org for updates, documentation, and revision history.
-
-#ifndef BOOST_ATANH_HPP
-#define BOOST_ATANH_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-
-#include <boost/config/no_tr1/cmath.hpp>
-#include <boost/config.hpp>
-#include <boost/math/tools/precision.hpp>
-#include <boost/math/policies/error_handling.hpp>
-#include <boost/math/special_functions/math_fwd.hpp>
-#include <boost/math/special_functions/log1p.hpp>
-
-// This is the inverse of the hyperbolic tangent function.
-
-namespace boost
-{
-    namespace math
-    {
-       namespace detail
-       {
-#if defined(__GNUC__) && (__GNUC__ < 3)
-        // gcc 2.x ignores function scope using declarations,
-        // put them in the scope of the enclosing namespace instead:
-        
-        using    ::std::abs;
-        using    ::std::sqrt;
-        using    ::std::log;
-        
-        using    ::std::numeric_limits;
-#endif
-        
-        // This is the main fare
-        
-        template<typename T, typename Policy>
-        inline T    atanh_imp(const T x, const Policy& pol)
-        {
-            BOOST_MATH_STD_USING
-            static const char* function = "boost::math::atanh<%1%>(%1%)";
-            
-            if(x < -1)
-            {
-               return policies::raise_domain_error<T>(
-                  function,
-                  "atanh requires x >= -1, but got x = %1%.", x, pol);
-            }
-            else if(x > 1)
-            {
-               return policies::raise_domain_error<T>(
-                  function,
-                  "atanh requires x <= 1, but got x = %1%.", x, pol);
-            }
-            else if(x < -1 + tools::epsilon<T>())
-            {
-               // -Infinity:
-               return -policies::raise_overflow_error<T>(function, 0, pol);
-            }
-            else if(x > 1 - tools::epsilon<T>())
-            {
-               // Infinity:
-               return policies::raise_overflow_error<T>(function, 0, pol);
-            }
-            else if(abs(x) >= tools::forth_root_epsilon<T>())
-            {
-                // http://functions.wolfram.com/ElementaryFunctions/ArcTanh/02/
-                if(abs(x) < 0.5f)
-                   return (boost::math::log1p(x, pol) - boost::math::log1p(-x, pol)) / 2;
-                return(log( (1 + x) / (1 - x) ) / 2);
-            }
-            else
-            {
-                // http://functions.wolfram.com/ElementaryFunctions/ArcTanh/06/01/03/01/
-                // approximation by taylor series in x at 0 up to order 2
-                T    result = x;
-                
-                if    (abs(x) >= tools::root_epsilon<T>())
-                {
-                    T    x3 = x*x*x;
-                    
-                    // approximation by taylor series in x at 0 up to order 4
-                    result += x3/static_cast<T>(3);
-                }
-                
-                return(result);
-            }
-        }
-       }
-
-        template<typename T, typename Policy>
-        inline typename tools::promote_args<T>::type atanh(T x, const Policy&)
-        {
-            typedef typename tools::promote_args<T>::type result_type;
-            typedef typename policies::evaluation<result_type, Policy>::type value_type;
-            typedef typename policies::normalise<
-               Policy, 
-               policies::promote_float<false>, 
-               policies::promote_double<false>, 
-               policies::discrete_quantile<>,
-               policies::assert_undefined<> >::type forwarding_policy;
-           return policies::checked_narrowing_cast<result_type, forwarding_policy>(
-              detail::atanh_imp(static_cast<value_type>(x), forwarding_policy()),
-              "boost::math::atanh<%1%>(%1%)");
-        }
-        template<typename T>
-        inline typename tools::promote_args<T>::type atanh(T x)
-        {
-           return boost::math::atanh(x, policies::policy<>());
-        }
-
-    }
-}
-
-#endif /* BOOST_ATANH_HPP */
-
-
-
diff --git a/boost/math/special_functions/bessel.hpp b/boost/math/special_functions/bessel.hpp
deleted file mode 100644
index ceca309..0000000
--- a/boost/math/special_functions/bessel.hpp
+++ /dev/null
@@ -1,766 +0,0 @@
-//  Copyright (c) 2007, 2013 John Maddock
-//  Copyright Christopher Kormanyos 2013.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-// This header just defines the function entry points, and adds dispatch
-// to the right implementation method.  Most of the implementation details
-// are in separate headers and copyright Xiaogang Zhang.
-//
-#ifndef BOOST_MATH_BESSEL_HPP
-#define BOOST_MATH_BESSEL_HPP
-
-#ifdef _MSC_VER
-#  pragma once
-#endif
-
-#include <boost/math/special_functions/detail/bessel_jy.hpp>
-#include <boost/math/special_functions/detail/bessel_jn.hpp>
-#include <boost/math/special_functions/detail/bessel_yn.hpp>
-#include <boost/math/special_functions/detail/bessel_jy_zero.hpp>
-#include <boost/math/special_functions/detail/bessel_ik.hpp>
-#include <boost/math/special_functions/detail/bessel_i0.hpp>
-#include <boost/math/special_functions/detail/bessel_i1.hpp>
-#include <boost/math/special_functions/detail/bessel_kn.hpp>
-#include <boost/math/special_functions/detail/iconv.hpp>
-#include <boost/math/special_functions/sin_pi.hpp>
-#include <boost/math/special_functions/cos_pi.hpp>
-#include <boost/math/special_functions/sinc.hpp>
-#include <boost/math/special_functions/trunc.hpp>
-#include <boost/math/special_functions/round.hpp>
-#include <boost/math/tools/rational.hpp>
-#include <boost/math/tools/promotion.hpp>
-#include <boost/math/tools/series.hpp>
-#include <boost/math/tools/roots.hpp>
-
-namespace boost{ namespace math{
-
-namespace detail{
-
-template <class T, class Policy>
-struct sph_bessel_j_small_z_series_term
-{
-   typedef T result_type;
-
-   sph_bessel_j_small_z_series_term(unsigned v_, T x)
-      : N(0), v(v_)
-   {
-      BOOST_MATH_STD_USING
-      mult = x / 2;
-      if(v + 3 > max_factorial<T>::value)
-      {
-         term = v * log(mult) - boost::math::lgamma(v+1+T(0.5f), Policy());
-         term = exp(term);
-      }
-      else
-         term = pow(mult, T(v)) / boost::math::tgamma(v+1+T(0.5f), Policy());
-      mult *= -mult;
-   }
-   T operator()()
-   {
-      T r = term;
-      ++N;
-      term *= mult / (N * T(N + v + 0.5f));
-      return r;
-   }
-private:
-   unsigned N;
-   unsigned v;
-   T mult;
-   T term;
-};
-
-template <class T, class Policy>
-inline T sph_bessel_j_small_z_series(unsigned v, T x, const Policy& pol)
-{
-   BOOST_MATH_STD_USING // ADL of std names
-   sph_bessel_j_small_z_series_term<T, Policy> s(v, x);
-   boost::uintmax_t max_iter = policies::get_max_series_iterations<Policy>();
-#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582))
-   T zero = 0;
-   T result = boost::math::tools::sum_series(s, boost::math::policies::get_epsilon<T, Policy>(), max_iter, zero);
-#else
-   T result = boost::math::tools::sum_series(s, boost::math::policies::get_epsilon<T, Policy>(), max_iter);
-#endif
-   policies::check_series_iterations<T>("boost::math::sph_bessel_j_small_z_series<%1%>(%1%,%1%)", max_iter, pol);
-   return result * sqrt(constants::pi<T>() / 4);
-}
-
-template <class T, class Policy>
-T cyl_bessel_j_imp(T v, T x, const bessel_no_int_tag& t, const Policy& pol)
-{
-   BOOST_MATH_STD_USING
-   static const char* function = "boost::math::bessel_j<%1%>(%1%,%1%)";
-   if(x < 0)
-   {
-      // better have integer v:
-      if(floor(v) == v)
-      {
-         T r = cyl_bessel_j_imp(v, T(-x), t, pol);
-         if(iround(v, pol) & 1)
-            r = -r;
-         return r;
-      }
-      else
-         return policies::raise_domain_error<T>(
-            function,
-            "Got x = %1%, but we need x >= 0", x, pol);
-   }
-   
-   T j, y;
-   bessel_jy(v, x, &j, &y, need_j, pol);
-   return j;
-}
-
-template <class T, class Policy>
-inline T cyl_bessel_j_imp(T v, T x, const bessel_maybe_int_tag&, const Policy& pol)
-{
-   BOOST_MATH_STD_USING  // ADL of std names.
-   int ival = detail::iconv(v, pol);
-   // If v is an integer, use the integer recursion
-   // method, both that and Steeds method are O(v):
-   if((0 == v - ival))
-   {
-      return bessel_jn(ival, x, pol);
-   }
-   return cyl_bessel_j_imp(v, x, bessel_no_int_tag(), pol);
-}
-
-template <class T, class Policy>
-inline T cyl_bessel_j_imp(int v, T x, const bessel_int_tag&, const Policy& pol)
-{
-   BOOST_MATH_STD_USING
-   return bessel_jn(v, x, pol);
-}
-
-template <class T, class Policy>
-inline T sph_bessel_j_imp(unsigned n, T x, const Policy& pol)
-{
-   BOOST_MATH_STD_USING // ADL of std names
-   if(x < 0)
-      return policies::raise_domain_error<T>(
-         "boost::math::sph_bessel_j<%1%>(%1%,%1%)",
-         "Got x = %1%, but function requires x > 0.", x, pol);
-   //
-   // Special case, n == 0 resolves down to the sinus cardinal of x:
-   //
-   if(n == 0)
-      return boost::math::sinc_pi(x, pol);
-   //
-   // Special case for x == 0:
-   //
-   if(x == 0)
-      return 0;
-   //
-   // When x is small we may end up with 0/0, use series evaluation
-   // instead, especially as it converges rapidly:
-   //
-   if(x < 1)
-      return sph_bessel_j_small_z_series(n, x, pol);
-   //
-   // Default case is just a naive evaluation of the definition:
-   //
-   return sqrt(constants::pi<T>() / (2 * x)) 
-      * cyl_bessel_j_imp(T(T(n)+T(0.5f)), x, bessel_no_int_tag(), pol);
-}
-
-template <class T, class Policy>
-T cyl_bessel_i_imp(T v, T x, const Policy& pol)
-{
-   //
-   // This handles all the bessel I functions, note that we don't optimise
-   // for integer v, other than the v = 0 or 1 special cases, as Millers
-   // algorithm is at least as inefficient as the general case (the general
-   // case has better error handling too).
-   //
-   BOOST_MATH_STD_USING
-   if(x < 0)
-   {
-      // better have integer v:
-      if(floor(v) == v)
-      {
-         T r = cyl_bessel_i_imp(v, T(-x), pol);
-         if(iround(v, pol) & 1)
-            r = -r;
-         return r;
-      }
-      else
-         return policies::raise_domain_error<T>(
-         "boost::math::cyl_bessel_i<%1%>(%1%,%1%)",
-            "Got x = %1%, but we need x >= 0", x, pol);
-   }
-   if(x == 0)
-   {
-      return (v == 0) ? 1 : 0;
-   }
-   if(v == 0.5f)
-   {
-      // common special case, note try and avoid overflow in exp(x):
-      if(x >= tools::log_max_value<T>())
-      {
-         T e = exp(x / 2);
-         return e * (e / sqrt(2 * x * constants::pi<T>()));
-      }
-      return sqrt(2 / (x * constants::pi<T>())) * sinh(x);
-   }
-   if(policies::digits<T, Policy>() <= 64)
-   {
-      if(v == 0)
-      {
-         return bessel_i0(x);
-      }
-      if(v == 1)
-      {
-         return bessel_i1(x);
-      }
-   }
-   if((v > 0) && (x / v < 0.25))
-      return bessel_i_small_z_series(v, x, pol);
-   T I, K;
-   bessel_ik(v, x, &I, &K, need_i, pol);
-   return I;
-}
-
-template <class T, class Policy>
-inline T cyl_bessel_k_imp(T v, T x, const bessel_no_int_tag& /* t */, const Policy& pol)
-{
-   static const char* function = "boost::math::cyl_bessel_k<%1%>(%1%,%1%)";
-   BOOST_MATH_STD_USING
-   if(x < 0)
-   {
-      return policies::raise_domain_error<T>(
-         function,
-         "Got x = %1%, but we need x > 0", x, pol);
-   }
-   if(x == 0)
-   {
-      return (v == 0) ? policies::raise_overflow_error<T>(function, 0, pol)
-         : policies::raise_domain_error<T>(
-         function,
-         "Got x = %1%, but we need x > 0", x, pol);
-   }
-   T I, K;
-   bessel_ik(v, x, &I, &K, need_k, pol);
-   return K;
-}
-
-template <class T, class Policy>
-inline T cyl_bessel_k_imp(T v, T x, const bessel_maybe_int_tag&, const Policy& pol)
-{
-   BOOST_MATH_STD_USING
-   if((floor(v) == v))
-   {
-      return bessel_kn(itrunc(v), x, pol);
-   }
-   return cyl_bessel_k_imp(v, x, bessel_no_int_tag(), pol);
-}
-
-template <class T, class Policy>
-inline T cyl_bessel_k_imp(int v, T x, const bessel_int_tag&, const Policy& pol)
-{
-   return bessel_kn(v, x, pol);
-}
-
-template <class T, class Policy>
-inline T cyl_neumann_imp(T v, T x, const bessel_no_int_tag&, const Policy& pol)
-{
-   static const char* function = "boost::math::cyl_neumann<%1%>(%1%,%1%)";
-
-   BOOST_MATH_INSTRUMENT_VARIABLE(v);
-   BOOST_MATH_INSTRUMENT_VARIABLE(x);
-
-   if(x <= 0)
-   {
-      return (v == 0) && (x == 0) ?
-         policies::raise_overflow_error<T>(function, 0, pol)
-         : policies::raise_domain_error<T>(
-               function,
-               "Got x = %1%, but result is complex for x <= 0", x, pol);
-   }
-   T j, y;
-   bessel_jy(v, x, &j, &y, need_y, pol);
-   // 
-   // Post evaluation check for internal overflow during evaluation,
-   // can occur when x is small and v is large, in which case the result
-   // is -INF:
-   //
-   if(!(boost::math::isfinite)(y))
-      return -policies::raise_overflow_error<T>(function, 0, pol);
-   return y;
-}
-
-template <class T, class Policy>
-inline T cyl_neumann_imp(T v, T x, const bessel_maybe_int_tag&, const Policy& pol)
-{
-   BOOST_MATH_STD_USING
-
-   BOOST_MATH_INSTRUMENT_VARIABLE(v);
-   BOOST_MATH_INSTRUMENT_VARIABLE(x);
-
-   if(floor(v) == v)
-   {
-      if(asymptotic_bessel_large_x_limit(v, x))
-      {
-         T r = asymptotic_bessel_y_large_x_2(static_cast<T>(abs(v)), x);
-         if((v < 0) && (itrunc(v, pol) & 1))
-            r = -r;
-         BOOST_MATH_INSTRUMENT_VARIABLE(r);
-         return r;
-      }
-      else
-      {
-         T r = bessel_yn(itrunc(v, pol), x, pol);
-         BOOST_MATH_INSTRUMENT_VARIABLE(r);
-         return r;
-      }
-   }
-   T r = cyl_neumann_imp<T>(v, x, bessel_no_int_tag(), pol);
-   BOOST_MATH_INSTRUMENT_VARIABLE(r);
-   return r;
-}
-
-template <class T, class Policy>
-inline T cyl_neumann_imp(int v, T x, const bessel_int_tag&, const Policy& pol)
-{
-   BOOST_MATH_STD_USING
-
-   BOOST_MATH_INSTRUMENT_VARIABLE(v);
-   BOOST_MATH_INSTRUMENT_VARIABLE(x);
-
-   if(asymptotic_bessel_large_x_limit(T(v), x))
-   {
-      T r = asymptotic_bessel_y_large_x_2(static_cast<T>(abs(v)), x);
-      if((v < 0) && (v & 1))
-         r = -r;
-      return r;
-   }
-   else
-      return bessel_yn(v, x, pol);
-}
-
-template <class T, class Policy>
-inline T sph_neumann_imp(unsigned v, T x, const Policy& pol)
-{
-   BOOST_MATH_STD_USING // ADL of std names
-   static const char* function = "boost::math::sph_neumann<%1%>(%1%,%1%)";
-   //
-   // Nothing much to do here but check for errors, and
-   // evaluate the function's definition directly:
-   //
-   if(x < 0)
-      return policies::raise_domain_error<T>(
-         function,
-         "Got x = %1%, but function requires x > 0.", x, pol);
-
-   if(x < 2 * tools::min_value<T>())
-      return -policies::raise_overflow_error<T>(function, 0, pol);
-
-   T result = cyl_neumann_imp(T(T(v)+0.5f), x, bessel_no_int_tag(), pol);
-   T tx = sqrt(constants::pi<T>() / (2 * x));
-
-   if((tx > 1) && (tools::max_value<T>() / tx < result))
-      return -policies::raise_overflow_error<T>(function, 0, pol);
-
-   return result * tx;
-}
-
-template <class T, class Policy>
-inline T cyl_bessel_j_zero_imp(T v, int m, const Policy& pol)
-{
-   BOOST_MATH_STD_USING // ADL of std names, needed for floor.
-
-   static const char* function = "boost::math::cyl_bessel_j_zero<%1%>(%1%, int)";
-
-   const T half_epsilon(boost::math::tools::epsilon<T>() / 2U);
-
-   // Handle non-finite order.
-   if (!(boost::math::isfinite)(v) )
-   {
-     return policies::raise_domain_error<T>(function, "Order argument is %1%, but must be finite >= 0 !", v, pol);
-   }
-
-   // Handle negative rank.
-   if(m < 0)
-   {
-      // Zeros of Jv(x) with negative rank are not defined and requesting one raises a domain error.
-      return policies::raise_domain_error<T>(function, "Requested the %1%'th zero, but the rank must be positive !", m, pol);
-   }
-
-   // Get the absolute value of the order.
-   const bool order_is_negative = (v < 0);
-   const T vv((!order_is_negative) ? v : T(-v));
-
-   // Check if the order is very close to zero or very close to an integer.
-   const bool order_is_zero    = (vv < half_epsilon);
-   const bool order_is_integer = ((vv - floor(vv)) < half_epsilon);
-
-   if(m == 0)
-   {
-      if(order_is_zero)
-      {
-         // The zero'th zero of J0(x) is not defined and requesting it raises a domain error.
-         return policies::raise_domain_error<T>(function, "Requested the %1%'th zero of J0, but the rank must be > 0 !", m, pol);
-      }
-
-      // The zero'th zero of Jv(x) for v < 0 is not defined
-      // unless the order is a negative integer.
-      if(order_is_negative && (!order_is_integer))
-      {
-         // For non-integer, negative order, requesting the zero'th zero raises a domain error.
-         return policies::raise_domain_error<T>(function, "Requested the %1%'th zero of Jv for negative, non-integer order, but the rank must be > 0 !", m, pol);
-      }
-
-      // The zero'th zero does exist and its value is zero.
-      return T(0);
-   }
-
-   // Set up the initial guess for the upcoming root-finding.
-   // If the order is a negative integer, then use the corresponding
-   // positive integer for the order.
-   const T guess_root = boost::math::detail::bessel_zero::cyl_bessel_j_zero_detail::initial_guess<T, Policy>((order_is_integer ? vv : v), m, pol);
-
-   // Select the maximum allowed iterations from the policy.
-   boost::uintmax_t number_of_iterations = policies::get_max_root_iterations<Policy>();
-
-   // Select the desired number of binary digits of precision.
-   // Account for the radix of number representations having non-two radix!
-   const int my_digits2 = policies::digits<T, Policy>();
-
-   const T delta_lo = ((guess_root > 0.2F) ? T(0.2) : T(guess_root / 2U));
-
-   // Perform the root-finding using Newton-Raphson iteration from Boost.Math.
-   const T jvm =
-      boost::math::tools::newton_raphson_iterate(
-         boost::math::detail::bessel_zero::cyl_bessel_j_zero_detail::function_object_jv_and_jv_prime<T, Policy>((order_is_integer ? vv : v), order_is_zero, pol),
-         guess_root,
-         T(guess_root - delta_lo),
-         T(guess_root + 0.2F),
-         my_digits2,
-         number_of_iterations);
-
-   if(number_of_iterations >= policies::get_max_root_iterations<Policy>())
-   {
-      policies::raise_evaluation_error<T>(function, "Unable to locate root in a reasonable time:"
-         "  Current best guess is %1%", jvm, Policy());
-   }
-
-   return jvm;
-}
-
-template <class T, class Policy>
-inline T cyl_neumann_zero_imp(T v, int m, const Policy& pol)
-{
-   BOOST_MATH_STD_USING // ADL of std names, needed for floor.
-
-   static const char* function = "boost::math::cyl_neumann_zero<%1%>(%1%, int)";
-
-   // Handle non-finite order.
-   if (!(boost::math::isfinite)(v) )
-   {
-     return policies::raise_domain_error<T>(function, "Order argument is %1%, but must be finite >= 0 !", v, pol);
-   }
-
-   // Handle negative rank.
-   if(m < 0)
-   {
-      return policies::raise_domain_error<T>(function, "Requested the %1%'th zero, but the rank must be positive !", m, pol);
-   }
-
-   const T half_epsilon(boost::math::tools::epsilon<T>() / 2U);
-
-   // Get the absolute value of the order.
-   const bool order_is_negative = (v < 0);
-   const T vv((!order_is_negative) ? v : T(-v));
-
-   const bool order_is_integer = ((vv - floor(vv)) < half_epsilon);
-
-   // For negative integers, use reflection to positive integer order.
-   if(order_is_negative && order_is_integer)
-      return boost::math::detail::cyl_neumann_zero_imp(vv, m, pol);
-
-   // Check if the order is very close to a negative half-integer.
-   const T delta_half_integer(vv - (floor(vv) + 0.5F));
-
-   const bool order_is_negative_half_integer =
-      (order_is_negative && ((delta_half_integer > -half_epsilon) && (delta_half_integer < +half_epsilon)));
-
-   // The zero'th zero of Yv(x) for v < 0 is not defined
-   // unless the order is a negative integer.
-   if((m == 0) && (!order_is_negative_half_integer))
-   {
-      // For non-integer, negative order, requesting the zero'th zero raises a domain error.
-      return policies::raise_domain_error<T>(function, "Requested the %1%'th zero of Yv for negative, non-half-integer order, but the rank must be > 0 !", m, pol);
-   }
-
-   // For negative half-integers, use the corresponding
-   // spherical Bessel function of positive half-integer order.
-   if(order_is_negative_half_integer)
-      return boost::math::detail::cyl_bessel_j_zero_imp(vv, m, pol);
-
-   // Set up the initial guess for the upcoming root-finding.
-   // If the order is a negative integer, then use the corresponding
-   // positive integer for the order.
-   const T guess_root = boost::math::detail::bessel_zero::cyl_neumann_zero_detail::initial_guess<T, Policy>(v, m, pol);
-
-   // Select the maximum allowed iterations from the policy.
-   boost::uintmax_t number_of_iterations = policies::get_max_root_iterations<Policy>();
-
-   // Select the desired number of binary digits of precision.
-   // Account for the radix of number representations having non-two radix!
-   const int my_digits2 = policies::digits<T, Policy>();
-
-   const T delta_lo = ((guess_root > 0.2F) ? T(0.2) : T(guess_root / 2U));
-
-   // Perform the root-finding using Newton-Raphson iteration from Boost.Math.
-   const T yvm =
-      boost::math::tools::newton_raphson_iterate(
-         boost::math::detail::bessel_zero::cyl_neumann_zero_detail::function_object_yv_and_yv_prime<T, Policy>(v, pol),
-         guess_root,
-         T(guess_root - delta_lo),
-         T(guess_root + 0.2F),
-         my_digits2,
-         number_of_iterations);
-
-   if(number_of_iterations >= policies::get_max_root_iterations<Policy>())
-   {
-      policies::raise_evaluation_error<T>(function, "Unable to locate root in a reasonable time:"
-         "  Current best guess is %1%", yvm, Policy());
-   }
-
-   return yvm;
-}
-
-} // namespace detail
-
-template <class T1, class T2, class Policy>
-inline typename detail::bessel_traits<T1, T2, Policy>::result_type cyl_bessel_j(T1 v, T2 x, const Policy& /* pol */)
-{
-   BOOST_FPU_EXCEPTION_GUARD
-   typedef typename detail::bessel_traits<T1, T2, Policy>::result_type result_type;
-   typedef typename detail::bessel_traits<T1, T2, Policy>::optimisation_tag tag_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   typedef typename policies::normalise<
-      Policy, 
-      policies::promote_float<false>, 
-      policies::promote_double<false>, 
-      policies::discrete_quantile<>,
-      policies::assert_undefined<> >::type forwarding_policy;
-   return policies::checked_narrowing_cast<result_type, Policy>(detail::cyl_bessel_j_imp<value_type>(v, static_cast<value_type>(x), tag_type(), forwarding_policy()), "boost::math::cyl_bessel_j<%1%>(%1%,%1%)");
-}
-
-template <class T1, class T2>
-inline typename detail::bessel_traits<T1, T2, policies::policy<> >::result_type cyl_bessel_j(T1 v, T2 x)
-{
-   return cyl_bessel_j(v, x, policies::policy<>());
-}
-
-template <class T, class Policy>
-inline typename detail::bessel_traits<T, T, Policy>::result_type sph_bessel(unsigned v, T x, const Policy& /* pol */)
-{
-   BOOST_FPU_EXCEPTION_GUARD
-   typedef typename detail::bessel_traits<T, T, Policy>::result_type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   typedef typename policies::normalise<
-      Policy, 
-      policies::promote_float<false>, 
-      policies::promote_double<false>, 
-      policies::discrete_quantile<>,
-      policies::assert_undefined<> >::type forwarding_policy;
-   return policies::checked_narrowing_cast<result_type, Policy>(detail::sph_bessel_j_imp<value_type>(v, static_cast<value_type>(x), forwarding_policy()), "boost::math::sph_bessel<%1%>(%1%,%1%)");
-}
-
-template <class T>
-inline typename detail::bessel_traits<T, T, policies::policy<> >::result_type sph_bessel(unsigned v, T x)
-{
-   return sph_bessel(v, x, policies::policy<>());
-}
-
-template <class T1, class T2, class Policy>
-inline typename detail::bessel_traits<T1, T2, Policy>::result_type cyl_bessel_i(T1 v, T2 x, const Policy& /* pol */)
-{
-   BOOST_FPU_EXCEPTION_GUARD
-   typedef typename detail::bessel_traits<T1, T2, Policy>::result_type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   typedef typename policies::normalise<
-      Policy, 
-      policies::promote_float<false>, 
-      policies::promote_double<false>, 
-      policies::discrete_quantile<>,
-      policies::assert_undefined<> >::type forwarding_policy;
-   return policies::checked_narrowing_cast<result_type, Policy>(detail::cyl_bessel_i_imp<value_type>(v, static_cast<value_type>(x), forwarding_policy()), "boost::math::cyl_bessel_i<%1%>(%1%,%1%)");
-}
-
-template <class T1, class T2>
-inline typename detail::bessel_traits<T1, T2, policies::policy<> >::result_type cyl_bessel_i(T1 v, T2 x)
-{
-   return cyl_bessel_i(v, x, policies::policy<>());
-}
-
-template <class T1, class T2, class Policy>
-inline typename detail::bessel_traits<T1, T2, Policy>::result_type cyl_bessel_k(T1 v, T2 x, const Policy& /* pol */)
-{
-   BOOST_FPU_EXCEPTION_GUARD
-   typedef typename detail::bessel_traits<T1, T2, Policy>::result_type result_type;
-   typedef typename detail::bessel_traits<T1, T2, Policy>::optimisation_tag tag_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   typedef typename policies::normalise<
-      Policy, 
-      policies::promote_float<false>, 
-      policies::promote_double<false>, 
-      policies::discrete_quantile<>,
-      policies::assert_undefined<> >::type forwarding_policy;
-   return policies::checked_narrowing_cast<result_type, Policy>(detail::cyl_bessel_k_imp<value_type>(v, static_cast<value_type>(x), tag_type(), forwarding_policy()), "boost::math::cyl_bessel_k<%1%>(%1%,%1%)");
-}
-
-template <class T1, class T2>
-inline typename detail::bessel_traits<T1, T2, policies::policy<> >::result_type cyl_bessel_k(T1 v, T2 x)
-{
-   return cyl_bessel_k(v, x, policies::policy<>());
-}
-
-template <class T1, class T2, class Policy>
-inline typename detail::bessel_traits<T1, T2, Policy>::result_type cyl_neumann(T1 v, T2 x, const Policy& /* pol */)
-{
-   BOOST_FPU_EXCEPTION_GUARD
-   typedef typename detail::bessel_traits<T1, T2, Policy>::result_type result_type;
-   typedef typename detail::bessel_traits<T1, T2, Policy>::optimisation_tag tag_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   typedef typename policies::normalise<
-      Policy, 
-      policies::promote_float<false>, 
-      policies::promote_double<false>, 
-      policies::discrete_quantile<>,
-      policies::assert_undefined<> >::type forwarding_policy;
-   return policies::checked_narrowing_cast<result_type, Policy>(detail::cyl_neumann_imp<value_type>(v, static_cast<value_type>(x), tag_type(), forwarding_policy()), "boost::math::cyl_neumann<%1%>(%1%,%1%)");
-}
-
-template <class T1, class T2>
-inline typename detail::bessel_traits<T1, T2, policies::policy<> >::result_type cyl_neumann(T1 v, T2 x)
-{
-   return cyl_neumann(v, x, policies::policy<>());
-}
-
-template <class T, class Policy>
-inline typename detail::bessel_traits<T, T, Policy>::result_type sph_neumann(unsigned v, T x, const Policy& /* pol */)
-{
-   BOOST_FPU_EXCEPTION_GUARD
-   typedef typename detail::bessel_traits<T, T, Policy>::result_type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   typedef typename policies::normalise<
-      Policy, 
-      policies::promote_float<false>, 
-      policies::promote_double<false>, 
-      policies::discrete_quantile<>,
-      policies::assert_undefined<> >::type forwarding_policy;
-   return policies::checked_narrowing_cast<result_type, Policy>(detail::sph_neumann_imp<value_type>(v, static_cast<value_type>(x), forwarding_policy()), "boost::math::sph_neumann<%1%>(%1%,%1%)");
-}
-
-template <class T>
-inline typename detail::bessel_traits<T, T, policies::policy<> >::result_type sph_neumann(unsigned v, T x)
-{
-   return sph_neumann(v, x, policies::policy<>());
-}
-
-template <class T, class Policy>
-inline typename detail::bessel_traits<T, T, Policy>::result_type cyl_bessel_j_zero(T v, int m, const Policy& /* pol */)
-{
-   BOOST_FPU_EXCEPTION_GUARD
-   typedef typename detail::bessel_traits<T, T, Policy>::result_type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   typedef typename policies::normalise<
-      Policy, 
-      policies::promote_float<false>, 
-      policies::promote_double<false>, 
-      policies::discrete_quantile<>,
-      policies::assert_undefined<> >::type forwarding_policy;
-   BOOST_STATIC_ASSERT_MSG(false == std::numeric_limits<value_type>::is_integer, "Order must be a floating-point type.");
-   return policies::checked_narrowing_cast<result_type, Policy>(detail::cyl_bessel_j_zero_imp<value_type>(v, m, forwarding_policy()), "boost::math::cyl_bessel_j_zero<%1%>(%1%,%1%)");
-}
-
-template <class T>
-inline typename detail::bessel_traits<T, T, policies::policy<> >::result_type cyl_bessel_j_zero(T v, int m)
-{
-   BOOST_STATIC_ASSERT_MSG(false == std::numeric_limits<T>::is_integer, "Order must be a floating-point type.");
-   return cyl_bessel_j_zero<T, policies::policy<> >(v, m, policies::policy<>());
-}
-
-template <class T, class OutputIterator, class Policy>
-inline OutputIterator cyl_bessel_j_zero(T v,
-                              int start_index,
-                              unsigned number_of_zeros,
-                              OutputIterator out_it,
-                              const Policy& pol)
-{
-   BOOST_STATIC_ASSERT_MSG(false == std::numeric_limits<T>::is_integer, "Order must be a floating-point type.");
-   for(unsigned i = 0; i < number_of_zeros; ++i)
-   {
-      *out_it = boost::math::cyl_bessel_j_zero(v, start_index + i, pol);
-      ++out_it;
-   }
-   return out_it;
-}
-
-template <class T, class OutputIterator>
-inline OutputIterator cyl_bessel_j_zero(T v,
-                              int start_index,
-                              unsigned number_of_zeros,
-                              OutputIterator out_it)
-{
-   return cyl_bessel_j_zero(v, start_index, number_of_zeros, out_it, policies::policy<>());
-}
-
-template <class T, class Policy>
-inline typename detail::bessel_traits<T, T, Policy>::result_type cyl_neumann_zero(T v, int m, const Policy& /* pol */)
-{
-   BOOST_FPU_EXCEPTION_GUARD
-   typedef typename detail::bessel_traits<T, T, Policy>::result_type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   typedef typename policies::normalise<
-      Policy, 
-      policies::promote_float<false>, 
-      policies::promote_double<false>, 
-      policies::discrete_quantile<>,
-      policies::assert_undefined<> >::type forwarding_policy;
-   BOOST_STATIC_ASSERT_MSG(false == std::numeric_limits<value_type>::is_integer, "Order must be a floating-point type.");
-   return policies::checked_narrowing_cast<result_type, Policy>(detail::cyl_neumann_zero_imp<value_type>(v, m, forwarding_policy()), "boost::math::cyl_neumann_zero<%1%>(%1%,%1%)");
-}
-
-template <class T>
-inline typename detail::bessel_traits<T, T, policies::policy<> >::result_type cyl_neumann_zero(T v, int m)
-{
-   BOOST_STATIC_ASSERT_MSG(false == std::numeric_limits<T>::is_integer, "Order must be a floating-point type.");
-   return cyl_neumann_zero<T, policies::policy<> >(v, m, policies::policy<>());
-}
-
-template <class T, class OutputIterator, class Policy>
-inline OutputIterator cyl_neumann_zero(T v,
-                             int start_index,
-                             unsigned number_of_zeros,
-                             OutputIterator out_it,
-                             const Policy& pol)
-{
-   BOOST_STATIC_ASSERT_MSG(false == std::numeric_limits<T>::is_integer, "Order must be a floating-point type.");
-   for(unsigned i = 0; i < number_of_zeros; ++i)
-   {
-      *out_it = boost::math::cyl_neumann_zero(v, start_index + i, pol);
-      ++out_it;
-   }
-   return out_it;
-}
-
-template <class T, class OutputIterator>
-inline OutputIterator cyl_neumann_zero(T v,
-                             int start_index,
-                             unsigned number_of_zeros,
-                             OutputIterator out_it)
-{
-   return cyl_neumann_zero(v, start_index, number_of_zeros, out_it, policies::policy<>());
-}
-
-} // namespace math
-} // namespace boost
-
-#endif // BOOST_MATH_BESSEL_HPP
-
-
diff --git a/boost/math/special_functions/beta.hpp b/boost/math/special_functions/beta.hpp
deleted file mode 100644
index f542a2a..0000000
--- a/boost/math/special_functions/beta.hpp
+++ /dev/null
@@ -1,1490 +0,0 @@
-//  (C) Copyright John Maddock 2006.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_SPECIAL_BETA_HPP
-#define BOOST_MATH_SPECIAL_BETA_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/math/special_functions/math_fwd.hpp>
-#include <boost/math/tools/config.hpp>
-#include <boost/math/special_functions/gamma.hpp>
-#include <boost/math/special_functions/factorials.hpp>
-#include <boost/math/special_functions/erf.hpp>
-#include <boost/math/special_functions/log1p.hpp>
-#include <boost/math/special_functions/expm1.hpp>
-#include <boost/math/special_functions/trunc.hpp>
-#include <boost/math/tools/roots.hpp>
-#include <boost/static_assert.hpp>
-#include <boost/config/no_tr1/cmath.hpp>
-
-namespace boost{ namespace math{
-
-namespace detail{
-
-//
-// Implementation of Beta(a,b) using the Lanczos approximation:
-//
-template <class T, class Lanczos, class Policy>
-T beta_imp(T a, T b, const Lanczos&, const Policy& pol)
-{
-   BOOST_MATH_STD_USING  // for ADL of std names
-
-   if(a <= 0)
-      policies::raise_domain_error<T>("boost::math::beta<%1%>(%1%,%1%)", "The arguments to the beta function must be greater than zero (got a=%1%).", a, pol);
-   if(b <= 0)
-      policies::raise_domain_error<T>("boost::math::beta<%1%>(%1%,%1%)", "The arguments to the beta function must be greater than zero (got b=%1%).", b, pol);
-
-   T result;
-
-   T prefix = 1;
-   T c = a + b;
-
-   // Special cases:
-   if((c == a) && (b < tools::epsilon<T>()))
-      return boost::math::tgamma(b, pol);
-   else if((c == b) && (a < tools::epsilon<T>()))
-      return boost::math::tgamma(a, pol);
-   if(b == 1)
-      return 1/a;
-   else if(a == 1)
-      return 1/b;
-
-   /*
-   //
-   // This code appears to be no longer necessary: it was
-   // used to offset errors introduced from the Lanczos
-   // approximation, but the current Lanczos approximations
-   // are sufficiently accurate for all z that we can ditch
-   // this.  It remains in the file for future reference...
-   //
-   // If a or b are less than 1, shift to greater than 1:
-   if(a < 1)
-   {
-      prefix *= c / a;
-      c += 1;
-      a += 1;
-   }
-   if(b < 1)
-   {
-      prefix *= c / b;
-      c += 1;
-      b += 1;
-   }
-   */
-
-   if(a < b)
-      std::swap(a, b);
-
-   // Lanczos calculation:
-   T agh = a + Lanczos::g() - T(0.5);
-   T bgh = b + Lanczos::g() - T(0.5);
-   T cgh = c + Lanczos::g() - T(0.5);
-   result = Lanczos::lanczos_sum_expG_scaled(a) * Lanczos::lanczos_sum_expG_scaled(b) / Lanczos::lanczos_sum_expG_scaled(c);
-   T ambh = a - T(0.5) - b;
-   if((fabs(b * ambh) < (cgh * 100)) && (a > 100))
-   {
-      // Special case where the base of the power term is close to 1
-      // compute (1+x)^y instead:
-      result *= exp(ambh * boost::math::log1p(-b / cgh, pol));
-   }
-   else
-   {
-      result *= pow(agh / cgh, a - T(0.5) - b);
-   }
-   if(cgh > 1e10f)
-      // this avoids possible overflow, but appears to be marginally less accurate:
-      result *= pow((agh / cgh) * (bgh / cgh), b);
-   else
-      result *= pow((agh * bgh) / (cgh * cgh), b);
-   result *= sqrt(boost::math::constants::e<T>() / bgh);
-
-   // If a and b were originally less than 1 we need to scale the result:
-   result *= prefix;
-
-   return result;
-} // template <class T, class Lanczos> beta_imp(T a, T b, const Lanczos&)
-
-//
-// Generic implementation of Beta(a,b) without Lanczos approximation support
-// (Caution this is slow!!!):
-//
-template <class T, class Policy>
-T beta_imp(T a, T b, const lanczos::undefined_lanczos& /* l */, const Policy& pol)
-{
-   BOOST_MATH_STD_USING
-
-   if(a <= 0)
-      policies::raise_domain_error<T>("boost::math::beta<%1%>(%1%,%1%)", "The arguments to the beta function must be greater than zero (got a=%1%).", a, pol);
-   if(b <= 0)
-      policies::raise_domain_error<T>("boost::math::beta<%1%>(%1%,%1%)", "The arguments to the beta function must be greater than zero (got b=%1%).", b, pol);
-
-   T result;
-
-   T prefix = 1;
-   T c = a + b;
-
-   // special cases:
-   if((c == a) && (b < tools::epsilon<T>()))
-      return boost::math::tgamma(b, pol);
-   else if((c == b) && (a < tools::epsilon<T>()))
-      return boost::math::tgamma(a, pol);
-   if(b == 1)
-      return 1/a;
-   else if(a == 1)
-      return 1/b;
-
-   // shift to a and b > 1 if required:
-   if(a < 1)
-   {
-      prefix *= c / a;
-      c += 1;
-      a += 1;
-   }
-   if(b < 1)
-   {
-      prefix *= c / b;
-      c += 1;
-      b += 1;
-   }
-   if(a < b)
-      std::swap(a, b);
-
-   // set integration limits:
-   T la = (std::max)(T(10), a);
-   T lb = (std::max)(T(10), b);
-   T lc = (std::max)(T(10), T(a+b));
-
-   // calculate the fraction parts:
-   T sa = detail::lower_gamma_series(a, la, pol) / a;
-   sa += detail::upper_gamma_fraction(a, la, ::boost::math::policies::get_epsilon<T, Policy>());
-   T sb = detail::lower_gamma_series(b, lb, pol) / b;
-   sb += detail::upper_gamma_fraction(b, lb, ::boost::math::policies::get_epsilon<T, Policy>());
-   T sc = detail::lower_gamma_series(c, lc, pol) / c;
-   sc += detail::upper_gamma_fraction(c, lc, ::boost::math::policies::get_epsilon<T, Policy>());
-
-   // and the exponent part:
-   result = exp(lc - la - lb) * pow(la/lc, a) * pow(lb/lc, b);
-
-   // and combine:
-   result *= sa * sb / sc;
-
-   // if a and b were originally less than 1 we need to scale the result:
-   result *= prefix;
-
-   return result;
-} // template <class T>T beta_imp(T a, T b, const lanczos::undefined_lanczos& l)
-
-
-//
-// Compute the leading power terms in the incomplete Beta:
-//
-// (x^a)(y^b)/Beta(a,b) when normalised, and
-// (x^a)(y^b) otherwise.
-//
-// Almost all of the error in the incomplete beta comes from this
-// function: particularly when a and b are large. Computing large
-// powers are *hard* though, and using logarithms just leads to
-// horrendous cancellation errors.
-//
-template <class T, class Lanczos, class Policy>
-T ibeta_power_terms(T a,
-                        T b,
-                        T x,
-                        T y,
-                        const Lanczos&,
-                        bool normalised,
-                        const Policy& pol)
-{
-   BOOST_MATH_STD_USING
-
-   if(!normalised)
-   {
-      // can we do better here?
-      return pow(x, a) * pow(y, b);
-   }
-
-   T result;
-
-   T prefix = 1;
-   T c = a + b;
-
-   // combine power terms with Lanczos approximation:
-   T agh = a + Lanczos::g() - T(0.5);
-   T bgh = b + Lanczos::g() - T(0.5);
-   T cgh = c + Lanczos::g() - T(0.5);
-   result = Lanczos::lanczos_sum_expG_scaled(c) / (Lanczos::lanczos_sum_expG_scaled(a) * Lanczos::lanczos_sum_expG_scaled(b));
-
-   // l1 and l2 are the base of the exponents minus one:
-   T l1 = (x * b - y * agh) / agh;
-   T l2 = (y * a - x * bgh) / bgh;
-   if(((std::min)(fabs(l1), fabs(l2)) < 0.2))
-   {
-      // when the base of the exponent is very near 1 we get really
-      // gross errors unless extra care is taken:
-      if((l1 * l2 > 0) || ((std::min)(a, b) < 1))
-      {
-         //
-         // This first branch handles the simple cases where either: 
-         //
-         // * The two power terms both go in the same direction 
-         // (towards zero or towards infinity).  In this case if either 
-         // term overflows or underflows, then the product of the two must 
-         // do so also.  
-         // *Alternatively if one exponent is less than one, then we 
-         // can't productively use it to eliminate overflow or underflow 
-         // from the other term.  Problems with spurious overflow/underflow 
-         // can't be ruled out in this case, but it is *very* unlikely 
-         // since one of the power terms will evaluate to a number close to 1.
-         //
-         if(fabs(l1) < 0.1)
-         {
-            result *= exp(a * boost::math::log1p(l1, pol));
-            BOOST_MATH_INSTRUMENT_VARIABLE(result);
-         }
-         else
-         {
-            result *= pow((x * cgh) / agh, a);
-            BOOST_MATH_INSTRUMENT_VARIABLE(result);
-         }
-         if(fabs(l2) < 0.1)
-         {
-            result *= exp(b * boost::math::log1p(l2, pol));
-            BOOST_MATH_INSTRUMENT_VARIABLE(result);
-         }
-         else
-         {
-            result *= pow((y * cgh) / bgh, b);
-            BOOST_MATH_INSTRUMENT_VARIABLE(result);
-         }
-      }
-      else if((std::max)(fabs(l1), fabs(l2)) < 0.5)
-      {
-         //
-         // Both exponents are near one and both the exponents are 
-         // greater than one and further these two 
-         // power terms tend in opposite directions (one towards zero, 
-         // the other towards infinity), so we have to combine the terms 
-         // to avoid any risk of overflow or underflow.
-         //
-         // We do this by moving one power term inside the other, we have:
-         //
-         //    (1 + l1)^a * (1 + l2)^b
-         //  = ((1 + l1)*(1 + l2)^(b/a))^a
-         //  = (1 + l1 + l3 + l1*l3)^a   ;  l3 = (1 + l2)^(b/a) - 1
-         //                                    = exp((b/a) * log(1 + l2)) - 1
-         //
-         // The tricky bit is deciding which term to move inside :-)
-         // By preference we move the larger term inside, so that the
-         // size of the largest exponent is reduced.  However, that can
-         // only be done as long as l3 (see above) is also small.
-         //
-         bool small_a = a < b;
-         T ratio = b / a;
-         if((small_a && (ratio * l2 < 0.1)) || (!small_a && (l1 / ratio > 0.1)))
-         {
-            T l3 = boost::math::expm1(ratio * boost::math::log1p(l2, pol), pol);
-            l3 = l1 + l3 + l3 * l1;
-            l3 = a * boost::math::log1p(l3, pol);
-            result *= exp(l3);
-            BOOST_MATH_INSTRUMENT_VARIABLE(result);
-         }
-         else
-         {
-            T l3 = boost::math::expm1(boost::math::log1p(l1, pol) / ratio, pol);
-            l3 = l2 + l3 + l3 * l2;
-            l3 = b * boost::math::log1p(l3, pol);
-            result *= exp(l3);
-            BOOST_MATH_INSTRUMENT_VARIABLE(result);
-         }
-      }
-      else if(fabs(l1) < fabs(l2))
-      {
-         // First base near 1 only:
-         T l = a * boost::math::log1p(l1, pol)
-            + b * log((y * cgh) / bgh);
-         result *= exp(l);
-         BOOST_MATH_INSTRUMENT_VARIABLE(result);
-      }
-      else
-      {
-         // Second base near 1 only:
-         T l = b * boost::math::log1p(l2, pol)
-            + a * log((x * cgh) / agh);
-         result *= exp(l);
-         BOOST_MATH_INSTRUMENT_VARIABLE(result);
-      }
-   }
-   else
-   {
-      // general case:
-      T b1 = (x * cgh) / agh;
-      T b2 = (y * cgh) / bgh;
-      l1 = a * log(b1);
-      l2 = b * log(b2);
-      BOOST_MATH_INSTRUMENT_VARIABLE(b1);
-      BOOST_MATH_INSTRUMENT_VARIABLE(b2);
-      BOOST_MATH_INSTRUMENT_VARIABLE(l1);
-      BOOST_MATH_INSTRUMENT_VARIABLE(l2);
-      if((l1 >= tools::log_max_value<T>())
-         || (l1 <= tools::log_min_value<T>())
-         || (l2 >= tools::log_max_value<T>())
-         || (l2 <= tools::log_min_value<T>())
-         )
-      {
-         // Oops, overflow, sidestep:
-         if(a < b)
-            result *= pow(pow(b2, b/a) * b1, a);
-         else
-            result *= pow(pow(b1, a/b) * b2, b);
-         BOOST_MATH_INSTRUMENT_VARIABLE(result);
-      }
-      else
-      {
-         // finally the normal case:
-         result *= pow(b1, a) * pow(b2, b);
-         BOOST_MATH_INSTRUMENT_VARIABLE(result);
-      }
-   }
-   // combine with the leftover terms from the Lanczos approximation:
-   result *= sqrt(bgh / boost::math::constants::e<T>());
-   result *= sqrt(agh / cgh);
-   result *= prefix;
-
-   BOOST_MATH_INSTRUMENT_VARIABLE(result);
-
-   return result;
-}
-//
-// Compute the leading power terms in the incomplete Beta:
-//
-// (x^a)(y^b)/Beta(a,b) when normalised, and
-// (x^a)(y^b) otherwise.
-//
-// Almost all of the error in the incomplete beta comes from this
-// function: particularly when a and b are large. Computing large
-// powers are *hard* though, and using logarithms just leads to
-// horrendous cancellation errors.
-//
-// This version is generic, slow, and does not use the Lanczos approximation.
-//
-template <class T, class Policy>
-T ibeta_power_terms(T a,
-                        T b,
-                        T x,
-                        T y,
-                        const boost::math::lanczos::undefined_lanczos&,
-                        bool normalised,
-                        const Policy& pol)
-{
-   BOOST_MATH_STD_USING
-
-   if(!normalised)
-   {
-      return pow(x, a) * pow(y, b);
-   }
-
-   T result= 0; // assignment here silences warnings later
-
-   T c = a + b;
-
-   // integration limits for the gamma functions:
-   //T la = (std::max)(T(10), a);
-   //T lb = (std::max)(T(10), b);
-   //T lc = (std::max)(T(10), a+b);
-   T la = a + 5;
-   T lb = b + 5;
-   T lc = a + b + 5;
-   // gamma function partials:
-   T sa = detail::lower_gamma_series(a, la, pol) / a;
-   sa += detail::upper_gamma_fraction(a, la, ::boost::math::policies::get_epsilon<T, Policy>());
-   T sb = detail::lower_gamma_series(b, lb, pol) / b;
-   sb += detail::upper_gamma_fraction(b, lb, ::boost::math::policies::get_epsilon<T, Policy>());
-   T sc = detail::lower_gamma_series(c, lc, pol) / c;
-   sc += detail::upper_gamma_fraction(c, lc, ::boost::math::policies::get_epsilon<T, Policy>());
-   // gamma function powers combined with incomplete beta powers:
-
-   T b1 = (x * lc) / la;
-   T b2 = (y * lc) / lb;
-   T e1 = lc - la - lb;
-   T lb1 = a * log(b1);
-   T lb2 = b * log(b2);
-
-   if((lb1 >= tools::log_max_value<T>())
-      || (lb1 <= tools::log_min_value<T>())
-      || (lb2 >= tools::log_max_value<T>())
-      || (lb2 <= tools::log_min_value<T>())
-      || (e1 >= tools::log_max_value<T>())
-      || (e1 <= tools::log_min_value<T>())
-      )
-   {
-      result = exp(lb1 + lb2 - e1);
-   }
-   else
-   {
-      T p1, p2;
-      if((fabs(b1 - 1) * a < 10) && (a > 1))
-         p1 = exp(a * boost::math::log1p((x * b - y * la) / la, pol));
-      else
-         p1 = pow(b1, a);
-      if((fabs(b2 - 1) * b < 10) && (b > 1))
-         p2 = exp(b * boost::math::log1p((y * a - x * lb) / lb, pol));
-      else
-         p2 = pow(b2, b);
-      T p3 = exp(e1);
-      result = p1 * p2 / p3;
-   }
-   // and combine with the remaining gamma function components:
-   result /= sa * sb / sc;
-
-   return result;
-}
-//
-// Series approximation to the incomplete beta:
-//
-template <class T>
-struct ibeta_series_t
-{
-   typedef T result_type;
-   ibeta_series_t(T a_, T b_, T x_, T mult) : result(mult), x(x_), apn(a_), poch(1-b_), n(1) {}
-   T operator()()
-   {
-      T r = result / apn;
-      apn += 1;
-      result *= poch * x / n;
-      ++n;
-      poch += 1;
-      return r;
-   }
-private:
-   T result, x, apn, poch;
-   int n;
-};
-
-template <class T, class Lanczos, class Policy>
-T ibeta_series(T a, T b, T x, T s0, const Lanczos&, bool normalised, T* p_derivative, T y, const Policy& pol)
-{
-   BOOST_MATH_STD_USING
-
-   T result;
-
-   BOOST_ASSERT((p_derivative == 0) || normalised);
-
-   if(normalised)
-   {
-      T c = a + b;
-
-      // incomplete beta power term, combined with the Lanczos approximation:
-      T agh = a + Lanczos::g() - T(0.5);
-      T bgh = b + Lanczos::g() - T(0.5);
-      T cgh = c + Lanczos::g() - T(0.5);
-      result = Lanczos::lanczos_sum_expG_scaled(c) / (Lanczos::lanczos_sum_expG_scaled(a) * Lanczos::lanczos_sum_expG_scaled(b));
-      if(a * b < bgh * 10)
-         result *= exp((b - 0.5f) * boost::math::log1p(a / bgh, pol));
-      else
-         result *= pow(cgh / bgh, b - 0.5f);
-      result *= pow(x * cgh / agh, a);
-      result *= sqrt(agh / boost::math::constants::e<T>());
-
-      if(p_derivative)
-      {
-         *p_derivative = result * pow(y, b);
-         BOOST_ASSERT(*p_derivative >= 0);
-      }
-   }
-   else
-   {
-      // Non-normalised, just compute the power:
-      result = pow(x, a);
-   }
-   if(result < tools::min_value<T>())
-      return s0; // Safeguard: series can't cope with denorms.
-   ibeta_series_t<T> s(a, b, x, result);
-   boost::uintmax_t max_iter = policies::get_max_series_iterations<Policy>();
-   result = boost::math::tools::sum_series(s, boost::math::policies::get_epsilon<T, Policy>(), max_iter, s0);
-   policies::check_series_iterations<T>("boost::math::ibeta<%1%>(%1%, %1%, %1%) in ibeta_series (with lanczos)", max_iter, pol);
-   return result;
-}
-//
-// Incomplete Beta series again, this time without Lanczos support:
-//
-template <class T, class Policy>
-T ibeta_series(T a, T b, T x, T s0, const boost::math::lanczos::undefined_lanczos&, bool normalised, T* p_derivative, T y, const Policy& pol)
-{
-   BOOST_MATH_STD_USING
-
-   T result;
-   BOOST_ASSERT((p_derivative == 0) || normalised);
-
-   if(normalised)
-   {
-      T c = a + b;
-
-      // figure out integration limits for the gamma function:
-      //T la = (std::max)(T(10), a);
-      //T lb = (std::max)(T(10), b);
-      //T lc = (std::max)(T(10), a+b);
-      T la = a + 5;
-      T lb = b + 5;
-      T lc = a + b + 5;
-
-      // calculate the gamma parts:
-      T sa = detail::lower_gamma_series(a, la, pol) / a;
-      sa += detail::upper_gamma_fraction(a, la, ::boost::math::policies::get_epsilon<T, Policy>());
-      T sb = detail::lower_gamma_series(b, lb, pol) / b;
-      sb += detail::upper_gamma_fraction(b, lb, ::boost::math::policies::get_epsilon<T, Policy>());
-      T sc = detail::lower_gamma_series(c, lc, pol) / c;
-      sc += detail::upper_gamma_fraction(c, lc, ::boost::math::policies::get_epsilon<T, Policy>());
-
-      // and their combined power-terms:
-      T b1 = (x * lc) / la;
-      T b2 = lc/lb;
-      T e1 = lc - la - lb;
-      T lb1 = a * log(b1);
-      T lb2 = b * log(b2);
-
-      if((lb1 >= tools::log_max_value<T>())
-         || (lb1 <= tools::log_min_value<T>())
-         || (lb2 >= tools::log_max_value<T>())
-         || (lb2 <= tools::log_min_value<T>())
-         || (e1 >= tools::log_max_value<T>())
-         || (e1 <= tools::log_min_value<T>()) )
-      {
-         T p = lb1 + lb2 - e1;
-         result = exp(p);
-      }
-      else
-      {
-         result = pow(b1, a);
-         if(a * b < lb * 10)
-            result *= exp(b * boost::math::log1p(a / lb, pol));
-         else
-            result *= pow(b2, b);
-         result /= exp(e1);
-      }
-      // and combine the results:
-      result /= sa * sb / sc;
-
-      if(p_derivative)
-      {
-         *p_derivative = result * pow(y, b);
-         BOOST_ASSERT(*p_derivative >= 0);
-      }
-   }
-   else
-   {
-      // Non-normalised, just compute the power:
-      result = pow(x, a);
-   }
-   if(result < tools::min_value<T>())
-      return s0; // Safeguard: series can't cope with denorms.
-   ibeta_series_t<T> s(a, b, x, result);
-   boost::uintmax_t max_iter = policies::get_max_series_iterations<Policy>();
-   result = boost::math::tools::sum_series(s, boost::math::policies::get_epsilon<T, Policy>(), max_iter, s0);
-   policies::check_series_iterations<T>("boost::math::ibeta<%1%>(%1%, %1%, %1%) in ibeta_series (without lanczos)", max_iter, pol);
-   return result;
-}
-
-//
-// Continued fraction for the incomplete beta:
-//
-template <class T>
-struct ibeta_fraction2_t
-{
-   typedef std::pair<T, T> result_type;
-
-   ibeta_fraction2_t(T a_, T b_, T x_, T y_) : a(a_), b(b_), x(x_), y(y_), m(0) {}
-
-   result_type operator()()
-   {
-      T aN = (a + m - 1) * (a + b + m - 1) * m * (b - m) * x * x;
-      T denom = (a + 2 * m - 1);
-      aN /= denom * denom;
-
-      T bN = m;
-      bN += (m * (b - m) * x) / (a + 2*m - 1);
-      bN += ((a + m) * (a * y - b * x + 1 + m *(2 - x))) / (a + 2*m + 1);
-
-      ++m;
-
-      return std::make_pair(aN, bN);
-   }
-
-private:
-   T a, b, x, y;
-   int m;
-};
-//
-// Evaluate the incomplete beta via the continued fraction representation:
-//
-template <class T, class Policy>
-inline T ibeta_fraction2(T a, T b, T x, T y, const Policy& pol, bool normalised, T* p_derivative)
-{
-   typedef typename lanczos::lanczos<T, Policy>::type lanczos_type;
-   BOOST_MATH_STD_USING
-   T result = ibeta_power_terms(a, b, x, y, lanczos_type(), normalised, pol);
-   if(p_derivative)
-   {
-      *p_derivative = result;
-      BOOST_ASSERT(*p_derivative >= 0);
-   }
-   if(result == 0)
-      return result;
-
-   ibeta_fraction2_t<T> f(a, b, x, y);
-   T fract = boost::math::tools::continued_fraction_b(f, boost::math::policies::get_epsilon<T, Policy>());
-   BOOST_MATH_INSTRUMENT_VARIABLE(fract);
-   BOOST_MATH_INSTRUMENT_VARIABLE(result);
-   return result / fract;
-}
-//
-// Computes the difference between ibeta(a,b,x) and ibeta(a+k,b,x):
-//
-template <class T, class Policy>
-T ibeta_a_step(T a, T b, T x, T y, int k, const Policy& pol, bool normalised, T* p_derivative)
-{
-   typedef typename lanczos::lanczos<T, Policy>::type lanczos_type;
-
-   BOOST_MATH_INSTRUMENT_VARIABLE(k);
-
-   T prefix = ibeta_power_terms(a, b, x, y, lanczos_type(), normalised, pol);
-   if(p_derivative)
-   {
-      *p_derivative = prefix;
-      BOOST_ASSERT(*p_derivative >= 0);
-   }
-   prefix /= a;
-   if(prefix == 0)
-      return prefix;
-   T sum = 1;
-   T term = 1;
-   // series summation from 0 to k-1:
-   for(int i = 0; i < k-1; ++i)
-   {
-      term *= (a+b+i) * x / (a+i+1);
-      sum += term;
-   }
-   prefix *= sum;
-
-   return prefix;
-}
-//
-// This function is only needed for the non-regular incomplete beta,
-// it computes the delta in:
-// beta(a,b,x) = prefix + delta * beta(a+k,b,x)
-// it is currently only called for small k.
-//
-template <class T>
-inline T rising_factorial_ratio(T a, T b, int k)
-{
-   // calculate:
-   // (a)(a+1)(a+2)...(a+k-1)
-   // _______________________
-   // (b)(b+1)(b+2)...(b+k-1)
-
-   // This is only called with small k, for large k
-   // it is grossly inefficient, do not use outside it's
-   // intended purpose!!!
-   BOOST_MATH_INSTRUMENT_VARIABLE(k);
-   if(k == 0)
-      return 1;
-   T result = 1;
-   for(int i = 0; i < k; ++i)
-      result *= (a+i) / (b+i);
-   return result;
-}
-//
-// Routine for a > 15, b < 1
-//
-// Begin by figuring out how large our table of Pn's should be,
-// quoted accuracies are "guestimates" based on empiracal observation.
-// Note that the table size should never exceed the size of our
-// tables of factorials.
-//
-template <class T>
-struct Pn_size
-{
-   // This is likely to be enough for ~35-50 digit accuracy
-   // but it's hard to quantify exactly:
-   BOOST_STATIC_CONSTANT(unsigned, value = 50);
-   BOOST_STATIC_ASSERT(::boost::math::max_factorial<T>::value >= 100);
-};
-template <>
-struct Pn_size<float>
-{
-   BOOST_STATIC_CONSTANT(unsigned, value = 15); // ~8-15 digit accuracy
-   BOOST_STATIC_ASSERT(::boost::math::max_factorial<float>::value >= 30);
-};
-template <>
-struct Pn_size<double>
-{
-   BOOST_STATIC_CONSTANT(unsigned, value = 30); // 16-20 digit accuracy
-   BOOST_STATIC_ASSERT(::boost::math::max_factorial<double>::value >= 60);
-};
-template <>
-struct Pn_size<long double>
-{
-   BOOST_STATIC_CONSTANT(unsigned, value = 50); // ~35-50 digit accuracy
-   BOOST_STATIC_ASSERT(::boost::math::max_factorial<long double>::value >= 100);
-};
-
-template <class T, class Policy>
-T beta_small_b_large_a_series(T a, T b, T x, T y, T s0, T mult, const Policy& pol, bool normalised)
-{
-   typedef typename lanczos::lanczos<T, Policy>::type lanczos_type;
-   BOOST_MATH_STD_USING
-   //
-   // This is DiDonato and Morris's BGRAT routine, see Eq's 9 through 9.6.
-   //
-   // Some values we'll need later, these are Eq 9.1:
-   //
-   T bm1 = b - 1;
-   T t = a + bm1 / 2;
-   T lx, u;
-   if(y < 0.35)
-      lx = boost::math::log1p(-y, pol);
-   else
-      lx = log(x);
-   u = -t * lx;
-   // and from from 9.2:
-   T prefix;
-   T h = regularised_gamma_prefix(b, u, pol, lanczos_type());
-   if(h <= tools::min_value<T>())
-      return s0;
-   if(normalised)
-   {
-      prefix = h / boost::math::tgamma_delta_ratio(a, b, pol);
-      prefix /= pow(t, b);
-   }
-   else
-   {
-      prefix = full_igamma_prefix(b, u, pol) / pow(t, b);
-   }
-   prefix *= mult;
-   //
-   // now we need the quantity Pn, unfortunatately this is computed
-   // recursively, and requires a full history of all the previous values
-   // so no choice but to declare a big table and hope it's big enough...
-   //
-   T p[ ::boost::math::detail::Pn_size<T>::value ] = { 1 };  // see 9.3.
-   //
-   // Now an initial value for J, see 9.6:
-   //
-   T j = boost::math::gamma_q(b, u, pol) / h;
-   //
-   // Now we can start to pull things together and evaluate the sum in Eq 9:
-   //
-   T sum = s0 + prefix * j;  // Value at N = 0
-   // some variables we'll need:
-   unsigned tnp1 = 1; // 2*N+1
-   T lx2 = lx / 2;
-   lx2 *= lx2;
-   T lxp = 1;
-   T t4 = 4 * t * t;
-   T b2n = b;
-
-   for(unsigned n = 1; n < sizeof(p)/sizeof(p[0]); ++n)
-   {
-      /*
-      // debugging code, enable this if you want to determine whether
-      // the table of Pn's is large enough...
-      //
-      static int max_count = 2;
-      if(n > max_count)
-      {
-         max_count = n;
-         std::cerr << "Max iterations in BGRAT was " << n << std::endl;
-      }
-      */
-      //
-      // begin by evaluating the next Pn from Eq 9.4:
-      //
-      tnp1 += 2;
-      p[n] = 0;
-      T mbn = b - n;
-      unsigned tmp1 = 3;
-      for(unsigned m = 1; m < n; ++m)
-      {
-         mbn = m * b - n;
-         p[n] += mbn * p[n-m] / boost::math::unchecked_factorial<T>(tmp1);
-         tmp1 += 2;
-      }
-      p[n] /= n;
-      p[n] += bm1 / boost::math::unchecked_factorial<T>(tnp1);
-      //
-      // Now we want Jn from Jn-1 using Eq 9.6:
-      //
-      j = (b2n * (b2n + 1) * j + (u + b2n + 1) * lxp) / t4;
-      lxp *= lx2;
-      b2n += 2;
-      //
-      // pull it together with Eq 9:
-      //
-      T r = prefix * p[n] * j;
-      sum += r;
-      if(r > 1)
-      {
-         if(fabs(r) < fabs(tools::epsilon<T>() * sum))
-            break;
-      }
-      else
-      {
-         if(fabs(r / tools::epsilon<T>()) < fabs(sum))
-            break;
-      }
-   }
-   return sum;
-} // template <class T, class Lanczos>T beta_small_b_large_a_series(T a, T b, T x, T y, T s0, T mult, const Lanczos& l, bool normalised)
-
-//
-// For integer arguments we can relate the incomplete beta to the
-// complement of the binomial distribution cdf and use this finite sum.
-//
-template <class T>
-inline T binomial_ccdf(T n, T k, T x, T y)
-{
-   BOOST_MATH_STD_USING // ADL of std names
-   T result = pow(x, n);
-   T term = result;
-   for(unsigned i = itrunc(T(n - 1)); i > k; --i)
-   {
-      term *= ((i + 1) * y) / ((n - i) * x) ;
-      result += term;
-   }
-
-   return result;
-}
-
-
-//
-// The incomplete beta function implementation:
-// This is just a big bunch of spagetti code to divide up the
-// input range and select the right implementation method for
-// each domain:
-//
-template <class T, class Policy>
-T ibeta_imp(T a, T b, T x, const Policy& pol, bool inv, bool normalised, T* p_derivative)
-{
-   static const char* function = "boost::math::ibeta<%1%>(%1%, %1%, %1%)";
-   typedef typename lanczos::lanczos<T, Policy>::type lanczos_type;
-   BOOST_MATH_STD_USING // for ADL of std math functions.
-
-   BOOST_MATH_INSTRUMENT_VARIABLE(a);
-   BOOST_MATH_INSTRUMENT_VARIABLE(b);
-   BOOST_MATH_INSTRUMENT_VARIABLE(x);
-   BOOST_MATH_INSTRUMENT_VARIABLE(inv);
-   BOOST_MATH_INSTRUMENT_VARIABLE(normalised);
-
-   bool invert = inv;
-   T fract;
-   T y = 1 - x;
-
-   BOOST_ASSERT((p_derivative == 0) || normalised);
-
-   if(p_derivative)
-      *p_derivative = -1; // value not set.
-
-   if((x < 0) || (x > 1))
-      policies::raise_domain_error<T>(function, "Parameter x outside the range [0,1] in the incomplete beta function (got x=%1%).", x, pol);
-
-   if(normalised)
-   {
-      if(a < 0)
-         policies::raise_domain_error<T>(function, "The argument a to the incomplete beta function must be >= zero (got a=%1%).", a, pol);
-      if(b < 0)
-         policies::raise_domain_error<T>(function, "The argument b to the incomplete beta function must be >= zero (got b=%1%).", b, pol);
-      // extend to a few very special cases:
-      if(a == 0)
-      {
-         if(b == 0)
-            policies::raise_domain_error<T>(function, "The arguments a and b to the incomplete beta function cannot both be zero, with x=%1%.", x, pol);
-         if(b > 0)
-            return inv ? 0 : 1;
-      }
-      else if(b == 0)
-      {
-         if(a > 0)
-            return inv ? 1 : 0;
-      }
-   }
-   else
-   {
-      if(a <= 0)
-         policies::raise_domain_error<T>(function, "The argument a to the incomplete beta function must be greater than zero (got a=%1%).", a, pol);
-      if(b <= 0)
-         policies::raise_domain_error<T>(function, "The argument b to the incomplete beta function must be greater than zero (got b=%1%).", b, pol);
-   }
-
-   if(x == 0)
-   {
-      if(p_derivative)
-      {
-         *p_derivative = (a == 1) ? (T)1 : (a < 1) ? T(tools::max_value<T>() / 2) : T(tools::min_value<T>() * 2);
-      }
-      return (invert ? (normalised ? T(1) : boost::math::beta(a, b, pol)) : T(0));
-   }
-   if(x == 1)
-   {
-      if(p_derivative)
-      {
-         *p_derivative = (b == 1) ? T(1) : (b < 1) ? T(tools::max_value<T>() / 2) : T(tools::min_value<T>() * 2);
-      }
-      return (invert == 0 ? (normalised ? 1 : boost::math::beta(a, b, pol)) : 0);
-   }
-   if((a == 0.5f) && (b == 0.5f))
-   {
-      // We have an arcsine distribution:
-      if(p_derivative)
-      {
-         *p_derivative = (invert ? -1 : 1) / constants::pi<T>() * sqrt(y * x);
-      }
-      T p = invert ? asin(sqrt(y)) / constants::half_pi<T>() : asin(sqrt(x)) / constants::half_pi<T>();
-      if(!normalised)
-         p *= constants::pi<T>();
-      return p;
-   }
-   if(a == 1)
-   {
-      std::swap(a, b);
-      std::swap(x, y);
-      invert = !invert;
-   }
-   if(b == 1)
-   {
-      //
-      // Special case see: http://functions.wolfram.com/GammaBetaErf/BetaRegularized/03/01/01/
-      //
-      if(a == 1)
-      {
-         if(p_derivative)
-            *p_derivative = invert ? -1 : 1;
-         return invert ? y : x;
-      }
-      
-      if(p_derivative)
-      {
-         *p_derivative = (invert ? -1 : 1) * a * pow(x, a - 1);
-      }
-      T p;
-      if(y < 0.5)
-         p = invert ? T(-expm1(a * log1p(-y))) : T(exp(a * log1p(-y)));
-      else
-         p = invert ? T(-powm1(x, a)) : T(pow(x, a));
-      if(!normalised)
-         p /= a;
-      return p;
-   }
-
-   if((std::min)(a, b) <= 1)
-   {
-      if(x > 0.5)
-      {
-         std::swap(a, b);
-         std::swap(x, y);
-         invert = !invert;
-         BOOST_MATH_INSTRUMENT_VARIABLE(invert);
-      }
-      if((std::max)(a, b) <= 1)
-      {
-         // Both a,b < 1:
-         if((a >= (std::min)(T(0.2), b)) || (pow(x, a) <= 0.9))
-         {
-            if(!invert)
-            {
-               fract = ibeta_series(a, b, x, T(0), lanczos_type(), normalised, p_derivative, y, pol);
-               BOOST_MATH_INSTRUMENT_VARIABLE(fract);
-            }
-            else
-            {
-               fract = -(normalised ? 1 : boost::math::beta(a, b, pol));
-               invert = false;
-               fract = -ibeta_series(a, b, x, fract, lanczos_type(), normalised, p_derivative, y, pol);
-               BOOST_MATH_INSTRUMENT_VARIABLE(fract);
-            }
-         }
-         else
-         {
-            std::swap(a, b);
-            std::swap(x, y);
-            invert = !invert;
-            if(y >= 0.3)
-            {
-               if(!invert)
-               {
-                  fract = ibeta_series(a, b, x, T(0), lanczos_type(), normalised, p_derivative, y, pol);
-                  BOOST_MATH_INSTRUMENT_VARIABLE(fract);
-               }
-               else
-               {
-                  fract = -(normalised ? 1 : boost::math::beta(a, b, pol));
-                  invert = false;
-                  fract = -ibeta_series(a, b, x, fract, lanczos_type(), normalised, p_derivative, y, pol);
-                  BOOST_MATH_INSTRUMENT_VARIABLE(fract);
-               }
-            }
-            else
-            {
-               // Sidestep on a, and then use the series representation:
-               T prefix;
-               if(!normalised)
-               {
-                  prefix = rising_factorial_ratio(T(a+b), a, 20);
-               }
-               else
-               {
-                  prefix = 1;
-               }
-               fract = ibeta_a_step(a, b, x, y, 20, pol, normalised, p_derivative);
-               if(!invert)
-               {
-                  fract = beta_small_b_large_a_series(T(a + 20), b, x, y, fract, prefix, pol, normalised);
-                  BOOST_MATH_INSTRUMENT_VARIABLE(fract);
-               }
-               else
-               {
-                  fract -= (normalised ? 1 : boost::math::beta(a, b, pol));
-                  invert = false;
-                  fract = -beta_small_b_large_a_series(T(a + 20), b, x, y, fract, prefix, pol, normalised);
-                  BOOST_MATH_INSTRUMENT_VARIABLE(fract);
-               }
-            }
-         }
-      }
-      else
-      {
-         // One of a, b < 1 only:
-         if((b <= 1) || ((x < 0.1) && (pow(b * x, a) <= 0.7)))
-         {
-            if(!invert)
-            {
-               fract = ibeta_series(a, b, x, T(0), lanczos_type(), normalised, p_derivative, y, pol);
-               BOOST_MATH_INSTRUMENT_VARIABLE(fract);
-            }
-            else
-            {
-               fract = -(normalised ? 1 : boost::math::beta(a, b, pol));
-               invert = false;
-               fract = -ibeta_series(a, b, x, fract, lanczos_type(), normalised, p_derivative, y, pol);
-               BOOST_MATH_INSTRUMENT_VARIABLE(fract);
-            }
-         }
-         else
-         {
-            std::swap(a, b);
-            std::swap(x, y);
-            invert = !invert;
-
-            if(y >= 0.3)
-            {
-               if(!invert)
-               {
-                  fract = ibeta_series(a, b, x, T(0), lanczos_type(), normalised, p_derivative, y, pol);
-                  BOOST_MATH_INSTRUMENT_VARIABLE(fract);
-               }
-               else
-               {
-                  fract = -(normalised ? 1 : boost::math::beta(a, b, pol));
-                  invert = false;
-                  fract = -ibeta_series(a, b, x, fract, lanczos_type(), normalised, p_derivative, y, pol);
-                  BOOST_MATH_INSTRUMENT_VARIABLE(fract);
-               }
-            }
-            else if(a >= 15)
-            {
-               if(!invert)
-               {
-                  fract = beta_small_b_large_a_series(a, b, x, y, T(0), T(1), pol, normalised);
-                  BOOST_MATH_INSTRUMENT_VARIABLE(fract);
-               }
-               else
-               {
-                  fract = -(normalised ? 1 : boost::math::beta(a, b, pol));
-                  invert = false;
-                  fract = -beta_small_b_large_a_series(a, b, x, y, fract, T(1), pol, normalised);
-                  BOOST_MATH_INSTRUMENT_VARIABLE(fract);
-               }
-            }
-            else
-            {
-               // Sidestep to improve errors:
-               T prefix;
-               if(!normalised)
-               {
-                  prefix = rising_factorial_ratio(T(a+b), a, 20);
-               }
-               else
-               {
-                  prefix = 1;
-               }
-               fract = ibeta_a_step(a, b, x, y, 20, pol, normalised, p_derivative);
-               BOOST_MATH_INSTRUMENT_VARIABLE(fract);
-               if(!invert)
-               {
-                  fract = beta_small_b_large_a_series(T(a + 20), b, x, y, fract, prefix, pol, normalised);
-                  BOOST_MATH_INSTRUMENT_VARIABLE(fract);
-               }
-               else
-               {
-                  fract -= (normalised ? 1 : boost::math::beta(a, b, pol));
-                  invert = false;
-                  fract = -beta_small_b_large_a_series(T(a + 20), b, x, y, fract, prefix, pol, normalised);
-                  BOOST_MATH_INSTRUMENT_VARIABLE(fract);
-               }
-            }
-         }
-      }
-   }
-   else
-   {
-      // Both a,b >= 1:
-      T lambda;
-      if(a < b)
-      {
-         lambda = a - (a + b) * x;
-      }
-      else
-      {
-         lambda = (a + b) * y - b;
-      }
-      if(lambda < 0)
-      {
-         std::swap(a, b);
-         std::swap(x, y);
-         invert = !invert;
-         BOOST_MATH_INSTRUMENT_VARIABLE(invert);
-      }
-      
-      if(b < 40)
-      {
-         if((floor(a) == a) && (floor(b) == b) && (a < (std::numeric_limits<int>::max)() - 100))
-         {
-            // relate to the binomial distribution and use a finite sum:
-            T k = a - 1;
-            T n = b + k;
-            fract = binomial_ccdf(n, k, x, y);
-            if(!normalised)
-               fract *= boost::math::beta(a, b, pol);
-            BOOST_MATH_INSTRUMENT_VARIABLE(fract);
-         }
-         else if(b * x <= 0.7)
-         {
-            if(!invert)
-            {
-               fract = ibeta_series(a, b, x, T(0), lanczos_type(), normalised, p_derivative, y, pol);
-               BOOST_MATH_INSTRUMENT_VARIABLE(fract);
-            }
-            else
-            {
-               fract = -(normalised ? 1 : boost::math::beta(a, b, pol));
-               invert = false;
-               fract = -ibeta_series(a, b, x, fract, lanczos_type(), normalised, p_derivative, y, pol);
-               BOOST_MATH_INSTRUMENT_VARIABLE(fract);
-            }
-         }
-         else if(a > 15)
-         {
-            // sidestep so we can use the series representation:
-            int n = itrunc(T(floor(b)), pol);
-            if(n == b)
-               --n;
-            T bbar = b - n;
-            T prefix;
-            if(!normalised)
-            {
-               prefix = rising_factorial_ratio(T(a+bbar), bbar, n);
-            }
-            else
-            {
-               prefix = 1;
-            }
-            fract = ibeta_a_step(bbar, a, y, x, n, pol, normalised, static_cast<T*>(0));
-            fract = beta_small_b_large_a_series(a,  bbar, x, y, fract, T(1), pol, normalised);
-            fract /= prefix;
-            BOOST_MATH_INSTRUMENT_VARIABLE(fract);
-         }
-         else if(normalised)
-         {
-            // the formula here for the non-normalised case is tricky to figure
-            // out (for me!!), and requires two pochhammer calculations rather
-            // than one, so leave it for now....
-            int n = itrunc(T(floor(b)), pol);
-            T bbar = b - n;
-            if(bbar <= 0)
-            {
-               --n;
-               bbar += 1;
-            }
-            fract = ibeta_a_step(bbar, a, y, x, n, pol, normalised, static_cast<T*>(0));
-            fract += ibeta_a_step(a, bbar, x, y, 20, pol, normalised, static_cast<T*>(0));
-            if(invert)
-               fract -= (normalised ? 1 : boost::math::beta(a, b, pol));
-            //fract = ibeta_series(a+20, bbar, x, fract, l, normalised, p_derivative, y);
-            fract = beta_small_b_large_a_series(T(a+20),  bbar, x, y, fract, T(1), pol, normalised);
-            if(invert)
-            {
-               fract = -fract;
-               invert = false;
-            }
-            BOOST_MATH_INSTRUMENT_VARIABLE(fract);
-         }
-         else
-         {
-            fract = ibeta_fraction2(a, b, x, y, pol, normalised, p_derivative);
-            BOOST_MATH_INSTRUMENT_VARIABLE(fract);
-         }
-      }
-      else
-      {
-         fract = ibeta_fraction2(a, b, x, y, pol, normalised, p_derivative);
-         BOOST_MATH_INSTRUMENT_VARIABLE(fract);
-      }
-   }
-   if(p_derivative)
-   {
-      if(*p_derivative < 0)
-      {
-         *p_derivative = ibeta_power_terms(a, b, x, y, lanczos_type(), true, pol);
-      }
-      T div = y * x;
-
-      if(*p_derivative != 0)
-      {
-         if((tools::max_value<T>() * div < *p_derivative))
-         {
-            // overflow, return an arbitarily large value:
-            *p_derivative = tools::max_value<T>() / 2;
-         }
-         else
-         {
-            *p_derivative /= div;
-         }
-      }
-   }
-   return invert ? (normalised ? 1 : boost::math::beta(a, b, pol)) - fract : fract;
-} // template <class T, class Lanczos>T ibeta_imp(T a, T b, T x, const Lanczos& l, bool inv, bool normalised)
-
-template <class T, class Policy>
-inline T ibeta_imp(T a, T b, T x, const Policy& pol, bool inv, bool normalised)
-{
-   return ibeta_imp(a, b, x, pol, inv, normalised, static_cast<T*>(0));
-}
-
-template <class T, class Policy>
-T ibeta_derivative_imp(T a, T b, T x, const Policy& pol)
-{
-   static const char* function = "ibeta_derivative<%1%>(%1%,%1%,%1%)";
-   //
-   // start with the usual error checks:
-   //
-   if(a <= 0)
-      policies::raise_domain_error<T>(function, "The argument a to the incomplete beta function must be greater than zero (got a=%1%).", a, pol);
-   if(b <= 0)
-      policies::raise_domain_error<T>(function, "The argument b to the incomplete beta function must be greater than zero (got b=%1%).", b, pol);
-   if((x < 0) || (x > 1))
-      policies::raise_domain_error<T>(function, "Parameter x outside the range [0,1] in the incomplete beta function (got x=%1%).", x, pol);
-   //
-   // Now the corner cases:
-   //
-   if(x == 0)
-   {
-      return (a > 1) ? 0 : 
-         (a == 1) ? 1 / boost::math::beta(a, b, pol) : policies::raise_overflow_error<T>(function, 0, pol);
-   }
-   else if(x == 1)
-   {
-      return (b > 1) ? 0 :
-         (b == 1) ? 1 / boost::math::beta(a, b, pol) : policies::raise_overflow_error<T>(function, 0, pol);
-   }
-   //
-   // Now the regular cases:
-   //
-   typedef typename lanczos::lanczos<T, Policy>::type lanczos_type;
-   T f1 = ibeta_power_terms<T>(a, b, x, 1 - x, lanczos_type(), true, pol);
-   T y = (1 - x) * x;
-
-   if(f1 == 0)
-      return 0;
-   
-   if((tools::max_value<T>() * y < f1))
-   {
-      // overflow:
-      return policies::raise_overflow_error<T>(function, 0, pol);
-   }
-
-   f1 /= y;
-
-   return f1;
-}
-//
-// Some forwarding functions that dis-ambiguate the third argument type:
-//
-template <class RT1, class RT2, class Policy>
-inline typename tools::promote_args<RT1, RT2>::type 
-   beta(RT1 a, RT2 b, const Policy&, const mpl::true_*)
-{
-   BOOST_FPU_EXCEPTION_GUARD
-   typedef typename tools::promote_args<RT1, RT2>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   typedef typename lanczos::lanczos<value_type, Policy>::type evaluation_type;
-   typedef typename policies::normalise<
-      Policy, 
-      policies::promote_float<false>, 
-      policies::promote_double<false>, 
-      policies::discrete_quantile<>,
-      policies::assert_undefined<> >::type forwarding_policy;
-
-   return policies::checked_narrowing_cast<result_type, forwarding_policy>(detail::beta_imp(static_cast<value_type>(a), static_cast<value_type>(b), evaluation_type(), forwarding_policy()), "boost::math::beta<%1%>(%1%,%1%)");
-}
-template <class RT1, class RT2, class RT3>
-inline typename tools::promote_args<RT1, RT2, RT3>::type 
-   beta(RT1 a, RT2 b, RT3 x, const mpl::false_*)
-{
-   return boost::math::beta(a, b, x, policies::policy<>());
-}
-} // namespace detail
-
-//
-// The actual function entry-points now follow, these just figure out
-// which Lanczos approximation to use
-// and forward to the implementation functions:
-//
-template <class RT1, class RT2, class A>
-inline typename tools::promote_args<RT1, RT2, A>::type 
-   beta(RT1 a, RT2 b, A arg)
-{
-   typedef typename policies::is_policy<A>::type tag;
-   return boost::math::detail::beta(a, b, arg, static_cast<tag*>(0));
-}
-
-template <class RT1, class RT2>
-inline typename tools::promote_args<RT1, RT2>::type 
-   beta(RT1 a, RT2 b)
-{
-   return boost::math::beta(a, b, policies::policy<>());
-}
-
-template <class RT1, class RT2, class RT3, class Policy>
-inline typename tools::promote_args<RT1, RT2, RT3>::type 
-   beta(RT1 a, RT2 b, RT3 x, const Policy&)
-{
-   BOOST_FPU_EXCEPTION_GUARD
-   typedef typename tools::promote_args<RT1, RT2, RT3>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   typedef typename policies::normalise<
-      Policy, 
-      policies::promote_float<false>, 
-      policies::promote_double<false>, 
-      policies::discrete_quantile<>,
-      policies::assert_undefined<> >::type forwarding_policy;
-
-   return policies::checked_narrowing_cast<result_type, forwarding_policy>(detail::ibeta_imp(static_cast<value_type>(a), static_cast<value_type>(b), static_cast<value_type>(x), forwarding_policy(), false, false), "boost::math::beta<%1%>(%1%,%1%,%1%)");
-}
-
-template <class RT1, class RT2, class RT3, class Policy>
-inline typename tools::promote_args<RT1, RT2, RT3>::type 
-   betac(RT1 a, RT2 b, RT3 x, const Policy&)
-{
-   BOOST_FPU_EXCEPTION_GUARD
-   typedef typename tools::promote_args<RT1, RT2, RT3>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   typedef typename policies::normalise<
-      Policy, 
-      policies::promote_float<false>, 
-      policies::promote_double<false>, 
-      policies::discrete_quantile<>,
-      policies::assert_undefined<> >::type forwarding_policy;
-
-   return policies::checked_narrowing_cast<result_type, forwarding_policy>(detail::ibeta_imp(static_cast<value_type>(a), static_cast<value_type>(b), static_cast<value_type>(x), forwarding_policy(), true, false), "boost::math::betac<%1%>(%1%,%1%,%1%)");
-}
-template <class RT1, class RT2, class RT3>
-inline typename tools::promote_args<RT1, RT2, RT3>::type 
-   betac(RT1 a, RT2 b, RT3 x)
-{
-   return boost::math::betac(a, b, x, policies::policy<>());
-}
-
-template <class RT1, class RT2, class RT3, class Policy>
-inline typename tools::promote_args<RT1, RT2, RT3>::type 
-   ibeta(RT1 a, RT2 b, RT3 x, const Policy&)
-{
-   BOOST_FPU_EXCEPTION_GUARD
-   typedef typename tools::promote_args<RT1, RT2, RT3>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   typedef typename policies::normalise<
-      Policy, 
-      policies::promote_float<false>, 
-      policies::promote_double<false>, 
-      policies::discrete_quantile<>,
-      policies::assert_undefined<> >::type forwarding_policy;
-
-   return policies::checked_narrowing_cast<result_type, forwarding_policy>(detail::ibeta_imp(static_cast<value_type>(a), static_cast<value_type>(b), static_cast<value_type>(x), forwarding_policy(), false, true), "boost::math::ibeta<%1%>(%1%,%1%,%1%)");
-}
-template <class RT1, class RT2, class RT3>
-inline typename tools::promote_args<RT1, RT2, RT3>::type 
-   ibeta(RT1 a, RT2 b, RT3 x)
-{
-   return boost::math::ibeta(a, b, x, policies::policy<>());
-}
-
-template <class RT1, class RT2, class RT3, class Policy>
-inline typename tools::promote_args<RT1, RT2, RT3>::type 
-   ibetac(RT1 a, RT2 b, RT3 x, const Policy&)
-{
-   BOOST_FPU_EXCEPTION_GUARD
-   typedef typename tools::promote_args<RT1, RT2, RT3>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   typedef typename policies::normalise<
-      Policy, 
-      policies::promote_float<false>, 
-      policies::promote_double<false>, 
-      policies::discrete_quantile<>,
-      policies::assert_undefined<> >::type forwarding_policy;
-
-   return policies::checked_narrowing_cast<result_type, forwarding_policy>(detail::ibeta_imp(static_cast<value_type>(a), static_cast<value_type>(b), static_cast<value_type>(x), forwarding_policy(), true, true), "boost::math::ibetac<%1%>(%1%,%1%,%1%)");
-}
-template <class RT1, class RT2, class RT3>
-inline typename tools::promote_args<RT1, RT2, RT3>::type 
-   ibetac(RT1 a, RT2 b, RT3 x)
-{
-   return boost::math::ibetac(a, b, x, policies::policy<>());
-}
-
-template <class RT1, class RT2, class RT3, class Policy>
-inline typename tools::promote_args<RT1, RT2, RT3>::type 
-   ibeta_derivative(RT1 a, RT2 b, RT3 x, const Policy&)
-{
-   BOOST_FPU_EXCEPTION_GUARD
-   typedef typename tools::promote_args<RT1, RT2, RT3>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   typedef typename policies::normalise<
-      Policy, 
-      policies::promote_float<false>, 
-      policies::promote_double<false>, 
-      policies::discrete_quantile<>,
-      policies::assert_undefined<> >::type forwarding_policy;
-
-   return policies::checked_narrowing_cast<result_type, forwarding_policy>(detail::ibeta_derivative_imp(static_cast<value_type>(a), static_cast<value_type>(b), static_cast<value_type>(x), forwarding_policy()), "boost::math::ibeta_derivative<%1%>(%1%,%1%,%1%)");
-}
-template <class RT1, class RT2, class RT3>
-inline typename tools::promote_args<RT1, RT2, RT3>::type 
-   ibeta_derivative(RT1 a, RT2 b, RT3 x)
-{
-   return boost::math::ibeta_derivative(a, b, x, policies::policy<>());
-}
-
-} // namespace math
-} // namespace boost
-
-#include <boost/math/special_functions/detail/ibeta_inverse.hpp>
-#include <boost/math/special_functions/detail/ibeta_inv_ab.hpp>
-
-#endif // BOOST_MATH_SPECIAL_BETA_HPP
-
-
-
-
-
diff --git a/boost/math/special_functions/binomial.hpp b/boost/math/special_functions/binomial.hpp
deleted file mode 100644
index 16b4f33..0000000
--- a/boost/math/special_functions/binomial.hpp
+++ /dev/null
@@ -1,81 +0,0 @@
-//  Copyright John Maddock 2006.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_SF_BINOMIAL_HPP
-#define BOOST_MATH_SF_BINOMIAL_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/math/special_functions/factorials.hpp>
-#include <boost/math/special_functions/beta.hpp>
-#include <boost/math/policies/error_handling.hpp>
-
-namespace boost{ namespace math{
-
-template <class T, class Policy>
-T binomial_coefficient(unsigned n, unsigned k, const Policy& pol)
-{
-   BOOST_STATIC_ASSERT(!boost::is_integral<T>::value);
-   BOOST_MATH_STD_USING
-   static const char* function = "boost::math::binomial_coefficient<%1%>(unsigned, unsigned)";
-   if(k > n)
-      return policies::raise_domain_error<T>(
-         function, 
-         "The binomial coefficient is undefined for k > n, but got k = %1%.",
-         k, pol);
-   T result;
-   if((k == 0) || (k == n))
-      return 1;
-   if((k == 1) || (k == n-1))
-      return n;
-
-   if(n <= max_factorial<T>::value)
-   {
-      // Use fast table lookup:
-      result = unchecked_factorial<T>(n);
-      result /= unchecked_factorial<T>(n-k);
-      result /= unchecked_factorial<T>(k);
-   }
-   else
-   {
-      // Use the beta function:
-      if(k < n - k)
-         result = k * beta(static_cast<T>(k), static_cast<T>(n-k+1), pol);
-      else
-         result = (n - k) * beta(static_cast<T>(k+1), static_cast<T>(n-k), pol);
-      if(result == 0)
-         return policies::raise_overflow_error<T>(function, 0, pol);
-      result = 1 / result;
-   }
-   // convert to nearest integer:
-   return ceil(result - 0.5f);
-}
-//
-// Type float can only store the first 35 factorials, in order to
-// increase the chance that we can use a table driven implementation
-// we'll promote to double:
-//
-template <>
-inline float binomial_coefficient<float, policies::policy<> >(unsigned n, unsigned k, const policies::policy<>& pol)
-{
-   return policies::checked_narrowing_cast<float, policies::policy<> >(binomial_coefficient<double>(n, k, pol), "boost::math::binomial_coefficient<%1%>(unsigned,unsigned)");
-}
-
-template <class T>
-inline T binomial_coefficient(unsigned n, unsigned k)
-{
-   return binomial_coefficient<T>(n, k, policies::policy<>());
-}
-
-} // namespace math
-} // namespace boost
-
-
-#endif // BOOST_MATH_SF_BINOMIAL_HPP
-
-
-
diff --git a/boost/math/special_functions/cbrt.hpp b/boost/math/special_functions/cbrt.hpp
deleted file mode 100644
index 0fc6e07..0000000
--- a/boost/math/special_functions/cbrt.hpp
+++ /dev/null
@@ -1,180 +0,0 @@
-//  (C) Copyright John Maddock 2006.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_SF_CBRT_HPP
-#define BOOST_MATH_SF_CBRT_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/math/tools/rational.hpp>
-#include <boost/math/policies/error_handling.hpp>
-#include <boost/math/special_functions/math_fwd.hpp>
-#include <boost/math/special_functions/fpclassify.hpp>
-#include <boost/mpl/divides.hpp>
-#include <boost/mpl/plus.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/type_traits/is_convertible.hpp>
-
-namespace boost{ namespace math{
-
-namespace detail
-{
-
-struct big_int_type
-{
-   operator boost::uintmax_t()const;
-};
-
-template <class T>
-struct largest_cbrt_int_type
-{
-   typedef typename mpl::if_<
-      boost::is_convertible<big_int_type, T>,
-      boost::uintmax_t,
-      unsigned int
-   >::type type;
-};
-
-template <class T, class Policy>
-T cbrt_imp(T z, const Policy& pol)
-{
-   BOOST_MATH_STD_USING
-   //
-   // cbrt approximation for z in the range [0.5,1]
-   // It's hard to say what number of terms gives the optimum
-   // trade off between precision and performance, this seems
-   // to be about the best for double precision.
-   //
-   // Maximum Deviation Found:                     1.231e-006
-   // Expected Error Term:                         -1.231e-006
-   // Maximum Relative Change in Control Points:   5.982e-004
-   //
-   static const T P[] = { 
-      static_cast<T>(0.37568269008611818),
-      static_cast<T>(1.3304968705558024),
-      static_cast<T>(-1.4897101632445036),
-      static_cast<T>(1.2875573098219835),
-      static_cast<T>(-0.6398703759826468),
-      static_cast<T>(0.13584489959258635),
-   };
-   static const T correction[] = {
-      static_cast<T>(0.62996052494743658238360530363911),  // 2^-2/3
-      static_cast<T>(0.79370052598409973737585281963615),  // 2^-1/3
-      static_cast<T>(1),
-      static_cast<T>(1.2599210498948731647672106072782),   // 2^1/3
-      static_cast<T>(1.5874010519681994747517056392723),   // 2^2/3
-   };
-
-   if(!(boost::math::isfinite)(z))
-   {
-      return policies::raise_domain_error("boost::math::cbrt<%1%>(%1%)", "Argument to function must be finite but got %1%.", z, pol);
-   }
-
-   int i_exp, sign(1);
-   if(z < 0)
-   {
-      z = -z;
-      sign = -sign;
-   }
-   if(z == 0)
-      return 0;
-
-   T guess = frexp(z, &i_exp);
-   int original_i_exp = i_exp; // save for later
-   guess = tools::evaluate_polynomial(P, guess);
-   int i_exp3 = i_exp / 3;
-
-   typedef typename largest_cbrt_int_type<T>::type shift_type;
-
-   BOOST_STATIC_ASSERT( ::std::numeric_limits<shift_type>::radix == 2);
-
-   if(abs(i_exp3) < std::numeric_limits<shift_type>::digits)
-   {
-      if(i_exp3 > 0)
-         guess *= shift_type(1u) << i_exp3;
-      else
-         guess /= shift_type(1u) << -i_exp3;
-   }
-   else
-   {
-      guess = ldexp(guess, i_exp3);
-   }
-   i_exp %= 3;
-   guess *= correction[i_exp + 2];
-   //
-   // Now inline Halley iteration.
-   // We do this here rather than calling tools::halley_iterate since we can
-   // simplify the expressions algebraically, and don't need most of the error
-   // checking of the boilerplate version as we know in advance that the function
-   // is well behaved...
-   //
-   typedef typename policies::precision<T, Policy>::type prec;
-   typedef typename mpl::divides<prec, mpl::int_<3> >::type prec3;
-   typedef typename mpl::plus<prec3, mpl::int_<3> >::type new_prec;
-   typedef typename policies::normalise<Policy, policies::digits2<new_prec::value> >::type new_policy;
-   //
-   // Epsilon calculation uses compile time arithmetic when it's available for type T,
-   // otherwise uses ldexp to calculate at runtime:
-   //
-   T eps = (new_prec::value > 3) ? policies::get_epsilon<T, new_policy>() : ldexp(T(1), -2 - tools::digits<T>() / 3);
-   T diff;
-
-   if(original_i_exp < std::numeric_limits<T>::max_exponent - 3)
-   {
-      //
-      // Safe from overflow, use the fast method:
-      //
-      do
-      {
-         T g3 = guess * guess * guess;
-         diff = (g3 + z + z) / (g3 + g3 + z);
-         guess *= diff;
-      }
-      while(fabs(1 - diff) > eps);
-   }
-   else
-   {
-      //
-      // Either we're ready to overflow, or we can't tell because numeric_limits isn't
-      // available for type T:
-      //
-      do
-      {
-         T g2 = guess * guess;
-         diff = (g2 - z / guess) / (2 * guess + z / g2);
-         guess -= diff;
-      }
-      while((guess * eps) < fabs(diff));
-   }
-
-   return sign * guess;
-}
-
-} // namespace detail
-
-template <class T, class Policy>
-inline typename tools::promote_args<T>::type cbrt(T z, const Policy& pol)
-{
-   typedef typename tools::promote_args<T>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   return static_cast<result_type>(detail::cbrt_imp(value_type(z), pol));
-}
-
-template <class T>
-inline typename tools::promote_args<T>::type cbrt(T z)
-{
-   return cbrt(z, policies::policy<>());
-}
-
-} // namespace math
-} // namespace boost
-
-#endif // BOOST_MATH_SF_CBRT_HPP
-
-
-
-
diff --git a/boost/math/special_functions/cos_pi.hpp b/boost/math/special_functions/cos_pi.hpp
deleted file mode 100644
index 93102c1..0000000
--- a/boost/math/special_functions/cos_pi.hpp
+++ /dev/null
@@ -1,68 +0,0 @@
-//  Copyright (c) 2007 John Maddock
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_COS_PI_HPP
-#define BOOST_MATH_COS_PI_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/config/no_tr1/cmath.hpp>
-#include <boost/math/tools/config.hpp>
-#include <boost/math/special_functions/trunc.hpp>
-#include <boost/math/tools/promotion.hpp>
-#include <boost/math/constants/constants.hpp>
-
-namespace boost{ namespace math{ namespace detail{
-
-template <class T, class Policy>
-T cos_pi_imp(T x, const Policy& pol)
-{
-   BOOST_MATH_STD_USING // ADL of std names
-   // cos of pi*x:
-   bool invert = false;
-   if(fabs(x) < 0.5)
-      return cos(constants::pi<T>() * x);
-
-   if(x < 1)
-   {
-      x = -x;
-   }
-   T rem = floor(x);
-   if(itrunc(rem, pol) & 1)
-      invert = !invert;
-   rem = x - rem;
-   if(rem > 0.5f)
-   {
-      rem = 1 - rem;
-      invert = !invert;
-   }
-   if(rem == 0.5f)
-      return 0;
-   
-   rem = cos(constants::pi<T>() * rem);
-   return invert ? T(-rem) : rem;
-}
-
-} // namespace detail
-
-template <class T, class Policy>
-inline typename tools::promote_args<T>::type cos_pi(T x, const Policy& pol)
-{
-   typedef typename tools::promote_args<T>::type result_type;
-   return boost::math::detail::cos_pi_imp<result_type>(x, pol);
-}
-
-template <class T>
-inline typename tools::promote_args<T>::type cos_pi(T x)
-{
-   return boost::math::cos_pi(x, policies::policy<>());
-}
-
-} // namespace math
-} // namespace boost
-#endif
-
diff --git a/boost/math/special_functions/detail/airy_ai_bi_zero.hpp b/boost/math/special_functions/detail/airy_ai_bi_zero.hpp
deleted file mode 100644
index d502f83..0000000
--- a/boost/math/special_functions/detail/airy_ai_bi_zero.hpp
+++ /dev/null
@@ -1,160 +0,0 @@
-//  Copyright (c) 2013 Christopher Kormanyos
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-// This work is based on an earlier work:
-// "Algorithm 910: A Portable C++ Multiple-Precision System for Special-Function Calculations",
-// in ACM TOMS, {VOL 37, ISSUE 4, (February 2011)} (C) ACM, 2011. http://doi.acm.org/10.1145/1916461.1916469
-//
-// This header contains implementation details for estimating the zeros
-// of the Airy functions airy_ai and airy_bi on the negative real axis.
-//
-#ifndef _AIRY_AI_BI_ZERO_2013_01_20_HPP_
-  #define _AIRY_AI_BI_ZERO_2013_01_20_HPP_
-
-  #include <boost/math/constants/constants.hpp>
-  #include <boost/math/special_functions/cbrt.hpp>
-
-  namespace boost { namespace math {
-  namespace detail
-  {
-    // Forward declarations of the needed Airy function implementations.
-    template <class T, class Policy>
-    T airy_ai_imp(T x, const Policy& pol);
-    template <class T, class Policy>
-    T airy_bi_imp(T x, const Policy& pol);
-    template <class T, class Policy>
-    T airy_ai_prime_imp(T x, const Policy& pol);
-    template <class T, class Policy>
-    T airy_bi_prime_imp(T x, const Policy& pol);
-
-    namespace airy_zero
-    {
-      template<class T>
-      T equation_as_10_4_105(const T& z)
-      {
-        const T one_over_z        (T(1) / z);
-        const T one_over_z_squared(one_over_z * one_over_z);
-
-        const T z_pow_third     (boost::math::cbrt(z));
-        const T z_pow_two_thirds(z_pow_third * z_pow_third);
-
-        // Implement the top line of Eq. 10.4.105.
-        const T fz(z_pow_two_thirds * (((((                     + (T(162375596875.0) / 334430208UL)
-                                           * one_over_z_squared - (   T(108056875.0) /   6967296UL))
-                                           * one_over_z_squared + (       T(77125UL) /     82944UL))
-                                           * one_over_z_squared - (           T(5U)  /        36U))
-                                           * one_over_z_squared + (           T(5U)  /        48U))
-                                           * one_over_z_squared + (1)));
-
-        return fz;
-      }
-
-      namespace airy_ai_zero_detail
-      {
-        template<class T>
-        T initial_guess(const unsigned m)
-        {
-          T guess;
-
-          switch(m)
-          {
-            case 0U: { guess = T(0);                       break; }
-            case 1U: { guess = T(-2.33810741045976703849); break; }
-            case 2U: { guess = T(-4.08794944413097061664); break; }
-            case 3U: { guess = T(-5.52055982809555105913); break; }
-            case 4U: { guess = T(-6.78670809007175899878); break; }
-            case 5U: { guess = T(-7.94413358712085312314); break; }
-            case 6U: { guess = T(-9.02265085334098038016); break; }
-            case 7U: { guess = T(-10.0401743415580859306); break; }
-            case 8U: { guess = T(-11.0085243037332628932); break; }
-            case 9U: { guess = T(-11.9360155632362625170); break; }
-            case 10U:{ guess = T(-12.8287767528657572004); break; }
-            default:
-            {
-              const T t(((boost::math::constants::pi<T>() * 3U) * ((T(m) * 4U) - 1)) / 8U);
-              guess = -boost::math::detail::airy_zero::equation_as_10_4_105(t);
-              break;
-            }
-          }
-
-          return guess;
-        }
-
-        template<class T, class Policy>
-        class function_object_ai_and_ai_prime
-        {
-        public:
-          function_object_ai_and_ai_prime(const Policy pol) : my_pol(pol) { }
-
-          boost::math::tuple<T, T> operator()(const T& x) const
-          {
-            // Return a tuple containing both Ai(x) and Ai'(x).
-            return boost::math::make_tuple(
-              boost::math::detail::airy_ai_imp      (x, my_pol),
-              boost::math::detail::airy_ai_prime_imp(x, my_pol));
-          }
-
-        private:
-          const Policy& my_pol;
-          const function_object_ai_and_ai_prime& operator=(const function_object_ai_and_ai_prime&);
-        };
-      } // namespace airy_ai_zero_detail
-
-      namespace airy_bi_zero_detail
-      {
-        template<class T>
-        T initial_guess(const unsigned m)
-        {
-          T guess;
-
-          switch(m)
-          {
-            case 0U: { guess = T(0);                       break; }
-            case 1U: { guess = T(-1.17371322270912792492); break; }
-            case 2U: { guess = T(-3.27109330283635271568); break; }
-            case 3U: { guess = T(-4.83073784166201593267); break; }
-            case 4U: { guess = T(-6.16985212831025125983); break; }
-            case 5U: { guess = T(-7.37676207936776371360); break; }
-            case 6U: { guess = T(-8.49194884650938801345); break; }
-            case 7U: { guess = T(-9.53819437934623888663); break; }
-            case 8U: { guess = T(-10.5299135067053579244); break; }
-            case 9U: { guess = T(-11.4769535512787794379); break; }
-            case 10U:{ guess = T(-12.3864171385827387456); break; }
-            default:
-            {
-              const T t(((boost::math::constants::pi<T>() * 3U) * ((T(m) * 4U) - 3)) / 8U);
-              guess = -boost::math::detail::airy_zero::equation_as_10_4_105(t);
-              break;
-            }
-          }
-
-          return guess;
-        }
-
-        template<class T, class Policy>
-        class function_object_bi_and_bi_prime
-        {
-        public:
-          function_object_bi_and_bi_prime(const Policy pol) : my_pol(pol) { }
-
-          boost::math::tuple<T, T> operator()(const T& x) const
-          {
-            // Return a tuple containing both Bi(x) and Bi'(x).
-            return boost::math::make_tuple(
-              boost::math::detail::airy_bi_imp      (x, my_pol),
-              boost::math::detail::airy_bi_prime_imp(x, my_pol));
-          }
-
-        private:
-          const Policy& my_pol;
-          const function_object_bi_and_bi_prime& operator=(const function_object_bi_and_bi_prime&);
-        };
-      } // namespace airy_bi_zero_detail
-    } // namespace airy_zero
-  } // namespace detail
-  } // namespace math
-  } // namespaces boost
-
-#endif // _AIRY_AI_BI_ZERO_2013_01_20_HPP_
diff --git a/boost/math/special_functions/detail/bessel_i0.hpp b/boost/math/special_functions/detail/bessel_i0.hpp
deleted file mode 100644
index 7dc65d1..0000000
--- a/boost/math/special_functions/detail/bessel_i0.hpp
+++ /dev/null
@@ -1,132 +0,0 @@
-//  Copyright (c) 2006 Xiaogang Zhang
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_BESSEL_I0_HPP
-#define BOOST_MATH_BESSEL_I0_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/math/tools/rational.hpp>
-#include <boost/math/tools/big_constant.hpp>
-#include <boost/assert.hpp>
-
-// Modified Bessel function of the first kind of order zero
-// minimax rational approximations on intervals, see
-// Blair and Edwards, Chalk River Report AECL-4928, 1974
-
-namespace boost { namespace math { namespace detail{
-
-template <typename T>
-T bessel_i0(T x);
-
-template <class T>
-struct bessel_i0_initializer
-{
-   struct init
-   {
-      init()
-      {
-         do_init();
-      }
-      static void do_init()
-      {
-         bessel_i0(T(1));
-      }
-      void force_instantiate()const{}
-   };
-   static const init initializer;
-   static void force_instantiate()
-   {
-      initializer.force_instantiate();
-   }
-};
-
-template <class T>
-const typename bessel_i0_initializer<T>::init bessel_i0_initializer<T>::initializer;
-
-template <typename T>
-T bessel_i0(T x)
-{
-    bessel_i0_initializer<T>::force_instantiate();
-
-    static const T P1[] = {
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -2.2335582639474375249e+15)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -5.5050369673018427753e+14)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -3.2940087627407749166e+13)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -8.4925101247114157499e+11)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.1912746104985237192e+10)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.0313066708737980747e+08)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -5.9545626019847898221e+05)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -2.4125195876041896775e+03)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -7.0935347449210549190e+00)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.5453977791786851041e-02)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -2.5172644670688975051e-05)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -3.0517226450451067446e-08)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -2.6843448573468483278e-11)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.5982226675653184646e-14)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -5.2487866627945699800e-18)),
-    };
-    static const T Q1[] = {
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -2.2335582639474375245e+15)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 7.8858692566751002988e+12)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.2207067397808979846e+10)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.0377081058062166144e+07)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -4.8527560179962773045e+03)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.0)),
-    };
-    static const T P2[] = {
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -2.2210262233306573296e-04)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.3067392038106924055e-02)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -4.4700805721174453923e-01)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 5.5674518371240761397e+00)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -2.3517945679239481621e+01)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 3.1611322818701131207e+01)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -9.6090021968656180000e+00)),
-    };
-    static const T Q2[] = {
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -5.5194330231005480228e-04)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 3.2547697594819615062e-02)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.1151759188741312645e+00)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.3982595353892851542e+01)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -6.0228002066743340583e+01)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 8.5539563258012929600e+01)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -3.1446690275135491500e+01)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.0)),
-    };
-    T value, factor, r;
-
-    BOOST_MATH_STD_USING
-    using namespace boost::math::tools;
-
-    if (x < 0)
-    {
-        x = -x;                         // even function
-    }
-    if (x == 0)
-    {
-        return static_cast<T>(1);
-    }
-    if (x <= 15)                        // x in (0, 15]
-    {
-        T y = x * x;
-        value = evaluate_polynomial(P1, y) / evaluate_polynomial(Q1, y);
-    }
-    else                                // x in (15, \infty)
-    {
-        T y = 1 / x - T(1) / 15;
-        r = evaluate_polynomial(P2, y) / evaluate_polynomial(Q2, y);
-        factor = exp(x) / sqrt(x);
-        value = factor * r;
-    }
-
-    return value;
-}
-
-}}} // namespaces
-
-#endif // BOOST_MATH_BESSEL_I0_HPP
-
diff --git a/boost/math/special_functions/detail/bessel_i1.hpp b/boost/math/special_functions/detail/bessel_i1.hpp
deleted file mode 100644
index 47f1b79..0000000
--- a/boost/math/special_functions/detail/bessel_i1.hpp
+++ /dev/null
@@ -1,136 +0,0 @@
-//  Copyright (c) 2006 Xiaogang Zhang
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_BESSEL_I1_HPP
-#define BOOST_MATH_BESSEL_I1_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/math/tools/rational.hpp>
-#include <boost/math/tools/big_constant.hpp>
-#include <boost/assert.hpp>
-
-// Modified Bessel function of the first kind of order one
-// minimax rational approximations on intervals, see
-// Blair and Edwards, Chalk River Report AECL-4928, 1974
-
-namespace boost { namespace math { namespace detail{
-
-template <typename T>
-T bessel_i1(T x);
-
-template <class T>
-struct bessel_i1_initializer
-{
-   struct init
-   {
-      init()
-      {
-         do_init();
-      }
-      static void do_init()
-      {
-         bessel_i1(T(1));
-      }
-      void force_instantiate()const{}
-   };
-   static const init initializer;
-   static void force_instantiate()
-   {
-      initializer.force_instantiate();
-   }
-};
-
-template <class T>
-const typename bessel_i1_initializer<T>::init bessel_i1_initializer<T>::initializer;
-
-template <typename T>
-T bessel_i1(T x)
-{
-
-    bessel_i1_initializer<T>::force_instantiate();
-
-    static const T P1[] = {
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.4577180278143463643e+15)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.7732037840791591320e+14)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -6.9876779648010090070e+12)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.3357437682275493024e+11)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.4828267606612366099e+09)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.0588550724769347106e+07)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -5.1894091982308017540e+04)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.8225946631657315931e+02)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -4.7207090827310162436e-01)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -9.1746443287817501309e-04)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.3466829827635152875e-06)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.4831904935994647675e-09)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.1928788903603238754e-12)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -6.5245515583151902910e-16)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.9705291802535139930e-19)),
-    };
-    static const T Q1[] = {
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -2.9154360556286927285e+15)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 9.7887501377547640438e+12)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.4386907088588283434e+10)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.1594225856856884006e+07)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -5.1326864679904189920e+03)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.0)),
-    };
-    static const T P2[] = {
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.4582087408985668208e-05)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -8.9359825138577646443e-04)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 2.9204895411257790122e-02)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -3.4198728018058047439e-01)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.3960118277609544334e+00)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.9746376087200685843e+00)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 8.5591872901933459000e-01)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -6.0437159056137599999e-02)),
-    };
-    static const T Q2[] = {
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 3.7510433111922824643e-05)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -2.2835624489492512649e-03)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 7.4212010813186530069e-02)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -8.5017476463217924408e-01)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 3.2593714889036996297e+00)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -3.8806586721556593450e+00)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.0)),
-    };
-    T value, factor, r, w;
-
-    BOOST_MATH_STD_USING
-    using namespace boost::math::tools;
-
-    w = abs(x);
-    if (x == 0)
-    {
-        return static_cast<T>(0);
-    }
-    if (w <= 15)                        // w in (0, 15]
-    {
-        T y = x * x;
-        r = evaluate_polynomial(P1, y) / evaluate_polynomial(Q1, y);
-        factor = w;
-        value = factor * r;
-    }
-    else                                // w in (15, \infty)
-    {
-        T y = 1 / w - T(1) / 15;
-        r = evaluate_polynomial(P2, y) / evaluate_polynomial(Q2, y);
-        factor = exp(w) / sqrt(w);
-        value = factor * r;
-    }
-
-    if (x < 0)
-    {
-        value *= -value;                 // odd function
-    }
-    return value;
-}
-
-}}} // namespaces
-
-#endif // BOOST_MATH_BESSEL_I1_HPP
-
diff --git a/boost/math/special_functions/detail/bessel_ik.hpp b/boost/math/special_functions/detail/bessel_ik.hpp
deleted file mode 100644
index 9a4c203..0000000
--- a/boost/math/special_functions/detail/bessel_ik.hpp
+++ /dev/null
@@ -1,445 +0,0 @@
-//  Copyright (c) 2006 Xiaogang Zhang
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_BESSEL_IK_HPP
-#define BOOST_MATH_BESSEL_IK_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/math/special_functions/round.hpp>
-#include <boost/math/special_functions/gamma.hpp>
-#include <boost/math/special_functions/sin_pi.hpp>
-#include <boost/math/constants/constants.hpp>
-#include <boost/math/policies/error_handling.hpp>
-#include <boost/math/tools/config.hpp>
-
-// Modified Bessel functions of the first and second kind of fractional order
-
-namespace boost { namespace math {
-
-namespace detail {
-
-template <class T, class Policy>
-struct cyl_bessel_i_small_z
-{
-   typedef T result_type;
-
-   cyl_bessel_i_small_z(T v_, T z_) : k(0), v(v_), mult(z_*z_/4) 
-   {
-      BOOST_MATH_STD_USING
-      term = 1;
-   }
-
-   T operator()()
-   {
-      T result = term;
-      ++k;
-      term *= mult / k;
-      term /= k + v;
-      return result;
-   }
-private:
-   unsigned k;
-   T v;
-   T term;
-   T mult;
-};
-
-template <class T, class Policy>
-inline T bessel_i_small_z_series(T v, T x, const Policy& pol)
-{
-   BOOST_MATH_STD_USING
-   T prefix;
-   if(v < max_factorial<T>::value)
-   {
-      prefix = pow(x / 2, v) / boost::math::tgamma(v + 1, pol);
-   }
-   else
-   {
-      prefix = v * log(x / 2) - boost::math::lgamma(v + 1, pol);
-      prefix = exp(prefix);
-   }
-   if(prefix == 0)
-      return prefix;
-
-   cyl_bessel_i_small_z<T, Policy> s(v, x);
-   boost::uintmax_t max_iter = policies::get_max_series_iterations<Policy>();
-#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582))
-   T zero = 0;
-   T result = boost::math::tools::sum_series(s, boost::math::policies::get_epsilon<T, Policy>(), max_iter, zero);
-#else
-   T result = boost::math::tools::sum_series(s, boost::math::policies::get_epsilon<T, Policy>(), max_iter);
-#endif
-   policies::check_series_iterations<T>("boost::math::bessel_j_small_z_series<%1%>(%1%,%1%)", max_iter, pol);
-   return prefix * result;
-}
-
-// Calculate K(v, x) and K(v+1, x) by method analogous to
-// Temme, Journal of Computational Physics, vol 21, 343 (1976)
-template <typename T, typename Policy>
-int temme_ik(T v, T x, T* K, T* K1, const Policy& pol)
-{
-    T f, h, p, q, coef, sum, sum1, tolerance;
-    T a, b, c, d, sigma, gamma1, gamma2;
-    unsigned long k;
-
-    BOOST_MATH_STD_USING
-    using namespace boost::math::tools;
-    using namespace boost::math::constants;
-
-
-    // |x| <= 2, Temme series converge rapidly
-    // |x| > 2, the larger the |x|, the slower the convergence
-    BOOST_ASSERT(abs(x) <= 2);
-    BOOST_ASSERT(abs(v) <= 0.5f);
-
-    T gp = boost::math::tgamma1pm1(v, pol);
-    T gm = boost::math::tgamma1pm1(-v, pol);
-
-    a = log(x / 2);
-    b = exp(v * a);
-    sigma = -a * v;
-    c = abs(v) < tools::epsilon<T>() ?
-       T(1) : T(boost::math::sin_pi(v) / (v * pi<T>()));
-    d = abs(sigma) < tools::epsilon<T>() ?
-        T(1) : T(sinh(sigma) / sigma);
-    gamma1 = abs(v) < tools::epsilon<T>() ?
-        T(-euler<T>()) : T((0.5f / v) * (gp - gm) * c);
-    gamma2 = (2 + gp + gm) * c / 2;
-
-    // initial values
-    p = (gp + 1) / (2 * b);
-    q = (1 + gm) * b / 2;
-    f = (cosh(sigma) * gamma1 + d * (-a) * gamma2) / c;
-    h = p;
-    coef = 1;
-    sum = coef * f;
-    sum1 = coef * h;
-
-    BOOST_MATH_INSTRUMENT_VARIABLE(p);
-    BOOST_MATH_INSTRUMENT_VARIABLE(q);
-    BOOST_MATH_INSTRUMENT_VARIABLE(f);
-    BOOST_MATH_INSTRUMENT_VARIABLE(sigma);
-    BOOST_MATH_INSTRUMENT_CODE(sinh(sigma));
-    BOOST_MATH_INSTRUMENT_VARIABLE(gamma1);
-    BOOST_MATH_INSTRUMENT_VARIABLE(gamma2);
-    BOOST_MATH_INSTRUMENT_VARIABLE(c);
-    BOOST_MATH_INSTRUMENT_VARIABLE(d);
-    BOOST_MATH_INSTRUMENT_VARIABLE(a);
-
-    // series summation
-    tolerance = tools::epsilon<T>();
-    for (k = 1; k < policies::get_max_series_iterations<Policy>(); k++)
-    {
-        f = (k * f + p + q) / (k*k - v*v);
-        p /= k - v;
-        q /= k + v;
-        h = p - k * f;
-        coef *= x * x / (4 * k);
-        sum += coef * f;
-        sum1 += coef * h;
-        if (abs(coef * f) < abs(sum) * tolerance) 
-        { 
-           break; 
-        }
-    }
-    policies::check_series_iterations<T>("boost::math::bessel_ik<%1%>(%1%,%1%) in temme_ik", k, pol);
-
-    *K = sum;
-    *K1 = 2 * sum1 / x;
-
-    return 0;
-}
-
-// Evaluate continued fraction fv = I_(v+1) / I_v, derived from
-// Abramowitz and Stegun, Handbook of Mathematical Functions, 1972, 9.1.73
-template <typename T, typename Policy>
-int CF1_ik(T v, T x, T* fv, const Policy& pol)
-{
-    T C, D, f, a, b, delta, tiny, tolerance;
-    unsigned long k;
-
-    BOOST_MATH_STD_USING
-
-    // |x| <= |v|, CF1_ik converges rapidly
-    // |x| > |v|, CF1_ik needs O(|x|) iterations to converge
-
-    // modified Lentz's method, see
-    // Lentz, Applied Optics, vol 15, 668 (1976)
-    tolerance = 2 * tools::epsilon<T>();
-    BOOST_MATH_INSTRUMENT_VARIABLE(tolerance);
-    tiny = sqrt(tools::min_value<T>());
-    BOOST_MATH_INSTRUMENT_VARIABLE(tiny);
-    C = f = tiny;                           // b0 = 0, replace with tiny
-    D = 0;
-    for (k = 1; k < policies::get_max_series_iterations<Policy>(); k++)
-    {
-        a = 1;
-        b = 2 * (v + k) / x;
-        C = b + a / C;
-        D = b + a * D;
-        if (C == 0) { C = tiny; }
-        if (D == 0) { D = tiny; }
-        D = 1 / D;
-        delta = C * D;
-        f *= delta;
-        BOOST_MATH_INSTRUMENT_VARIABLE(delta-1);
-        if (abs(delta - 1) <= tolerance) 
-        { 
-           break; 
-        }
-    }
-    BOOST_MATH_INSTRUMENT_VARIABLE(k);
-    policies::check_series_iterations<T>("boost::math::bessel_ik<%1%>(%1%,%1%) in CF1_ik", k, pol);
-
-    *fv = f;
-
-    return 0;
-}
-
-// Calculate K(v, x) and K(v+1, x) by evaluating continued fraction
-// z1 / z0 = U(v+1.5, 2v+1, 2x) / U(v+0.5, 2v+1, 2x), see
-// Thompson and Barnett, Computer Physics Communications, vol 47, 245 (1987)
-template <typename T, typename Policy>
-int CF2_ik(T v, T x, T* Kv, T* Kv1, const Policy& pol)
-{
-    BOOST_MATH_STD_USING
-    using namespace boost::math::constants;
-
-    T S, C, Q, D, f, a, b, q, delta, tolerance, current, prev;
-    unsigned long k;
-
-    // |x| >= |v|, CF2_ik converges rapidly
-    // |x| -> 0, CF2_ik fails to converge
-
-    BOOST_ASSERT(abs(x) > 1);
-
-    // Steed's algorithm, see Thompson and Barnett,
-    // Journal of Computational Physics, vol 64, 490 (1986)
-    tolerance = tools::epsilon<T>();
-    a = v * v - 0.25f;
-    b = 2 * (x + 1);                              // b1
-    D = 1 / b;                                    // D1 = 1 / b1
-    f = delta = D;                                // f1 = delta1 = D1, coincidence
-    prev = 0;                                     // q0
-    current = 1;                                  // q1
-    Q = C = -a;                                   // Q1 = C1 because q1 = 1
-    S = 1 + Q * delta;                            // S1
-    BOOST_MATH_INSTRUMENT_VARIABLE(tolerance);
-    BOOST_MATH_INSTRUMENT_VARIABLE(a);
-    BOOST_MATH_INSTRUMENT_VARIABLE(b);
-    BOOST_MATH_INSTRUMENT_VARIABLE(D);
-    BOOST_MATH_INSTRUMENT_VARIABLE(f);
-
-    for (k = 2; k < policies::get_max_series_iterations<Policy>(); k++)     // starting from 2
-    {
-        // continued fraction f = z1 / z0
-        a -= 2 * (k - 1);
-        b += 2;
-        D = 1 / (b + a * D);
-        delta *= b * D - 1;
-        f += delta;
-
-        // series summation S = 1 + \sum_{n=1}^{\infty} C_n * z_n / z_0
-        q = (prev - (b - 2) * current) / a;
-        prev = current;
-        current = q;                        // forward recurrence for q
-        C *= -a / k;
-        Q += C * q;
-        S += Q * delta;
-        //
-        // Under some circumstances q can grow very small and C very
-        // large, leading to under/overflow.  This is particularly an
-        // issue for types which have many digits precision but a narrow
-        // exponent range.  A typical example being a "double double" type.
-        // To avoid this situation we can normalise q (and related prev/current)
-        // and C.  All other variables remain unchanged in value.  A typical
-        // test case occurs when x is close to 2, for example cyl_bessel_k(9.125, 2.125).
-        //
-        if(q < tools::epsilon<T>())
-        {
-           C *= q;
-           prev /= q;
-           current /= q;
-           q = 1;
-        }
-
-        // S converges slower than f
-        BOOST_MATH_INSTRUMENT_VARIABLE(Q * delta);
-        BOOST_MATH_INSTRUMENT_VARIABLE(abs(S) * tolerance);
-        if (abs(Q * delta) < abs(S) * tolerance) 
-        { 
-           break; 
-        }
-    }
-    policies::check_series_iterations<T>("boost::math::bessel_ik<%1%>(%1%,%1%) in CF2_ik", k, pol);
-
-    *Kv = sqrt(pi<T>() / (2 * x)) * exp(-x) / S;
-    *Kv1 = *Kv * (0.5f + v + x + (v * v - 0.25f) * f) / x;
-    BOOST_MATH_INSTRUMENT_VARIABLE(*Kv);
-    BOOST_MATH_INSTRUMENT_VARIABLE(*Kv1);
-
-    return 0;
-}
-
-enum{
-   need_i = 1,
-   need_k = 2
-};
-
-// Compute I(v, x) and K(v, x) simultaneously by Temme's method, see
-// Temme, Journal of Computational Physics, vol 19, 324 (1975)
-template <typename T, typename Policy>
-int bessel_ik(T v, T x, T* I, T* K, int kind, const Policy& pol)
-{
-    // Kv1 = K_(v+1), fv = I_(v+1) / I_v
-    // Ku1 = K_(u+1), fu = I_(u+1) / I_u
-    T u, Iv, Kv, Kv1, Ku, Ku1, fv;
-    T W, current, prev, next;
-    bool reflect = false;
-    unsigned n, k;
-    int org_kind = kind;
-    BOOST_MATH_INSTRUMENT_VARIABLE(v);
-    BOOST_MATH_INSTRUMENT_VARIABLE(x);
-    BOOST_MATH_INSTRUMENT_VARIABLE(kind);
-
-    BOOST_MATH_STD_USING
-    using namespace boost::math::tools;
-    using namespace boost::math::constants;
-
-    static const char* function = "boost::math::bessel_ik<%1%>(%1%,%1%)";
-
-    if (v < 0)
-    {
-        reflect = true;
-        v = -v;                             // v is non-negative from here
-        kind |= need_k;
-    }
-    n = iround(v, pol);
-    u = v - n;                              // -1/2 <= u < 1/2
-    BOOST_MATH_INSTRUMENT_VARIABLE(n);
-    BOOST_MATH_INSTRUMENT_VARIABLE(u);
-
-    if (x < 0)
-    {
-       *I = *K = policies::raise_domain_error<T>(function,
-            "Got x = %1% but real argument x must be non-negative, complex number result not supported.", x, pol);
-        return 1;
-    }
-    if (x == 0)
-    {
-       Iv = (v == 0) ? static_cast<T>(1) : static_cast<T>(0);
-       if(kind & need_k)
-       {
-         Kv = policies::raise_overflow_error<T>(function, 0, pol);
-       }
-       else
-       {
-          Kv = std::numeric_limits<T>::quiet_NaN(); // any value will do
-       }
-
-       if(reflect && (kind & need_i))
-       {
-           T z = (u + n % 2);
-           Iv = boost::math::sin_pi(z, pol) == 0 ? 
-               Iv : 
-               policies::raise_overflow_error<T>(function, 0, pol);   // reflection formula
-       }
-
-       *I = Iv;
-       *K = Kv;
-       return 0;
-    }
-
-    // x is positive until reflection
-    W = 1 / x;                                 // Wronskian
-    if (x <= 2)                                // x in (0, 2]
-    {
-        temme_ik(u, x, &Ku, &Ku1, pol);             // Temme series
-    }
-    else                                       // x in (2, \infty)
-    {
-        CF2_ik(u, x, &Ku, &Ku1, pol);               // continued fraction CF2_ik
-    }
-    BOOST_MATH_INSTRUMENT_VARIABLE(Ku);
-    BOOST_MATH_INSTRUMENT_VARIABLE(Ku1);
-    prev = Ku;
-    current = Ku1;
-    T scale = 1;
-    for (k = 1; k <= n; k++)                   // forward recurrence for K
-    {
-        T fact = 2 * (u + k) / x;
-        if((tools::max_value<T>() - fabs(prev)) / fact < fabs(current))
-        {
-           prev /= current;
-           scale /= current;
-           current = 1;
-        }
-        next = fact * current + prev;
-        prev = current;
-        current = next;
-    }
-    Kv = prev;
-    Kv1 = current;
-    BOOST_MATH_INSTRUMENT_VARIABLE(Kv);
-    BOOST_MATH_INSTRUMENT_VARIABLE(Kv1);
-    if(kind & need_i)
-    {
-       T lim = (4 * v * v + 10) / (8 * x);
-       lim *= lim;
-       lim *= lim;
-       lim /= 24;
-       if((lim < tools::epsilon<T>() * 10) && (x > 100))
-       {
-          // x is huge compared to v, CF1 may be very slow
-          // to converge so use asymptotic expansion for large
-          // x case instead.  Note that the asymptotic expansion
-          // isn't very accurate - so it's deliberately very hard 
-          // to get here - probably we're going to overflow:
-          Iv = asymptotic_bessel_i_large_x(v, x, pol);
-       }
-       else if((v > 0) && (x / v < 0.25))
-       {
-          Iv = bessel_i_small_z_series(v, x, pol);
-       }
-       else
-       {
-          CF1_ik(v, x, &fv, pol);                         // continued fraction CF1_ik
-          Iv = scale * W / (Kv * fv + Kv1);                  // Wronskian relation
-       }
-    }
-    else
-       Iv = std::numeric_limits<T>::quiet_NaN(); // any value will do
-
-    if (reflect)
-    {
-        T z = (u + n % 2);
-        T fact = (2 / pi<T>()) * (boost::math::sin_pi(z) * Kv);
-        if(fact == 0)
-           *I = Iv;
-        else if(tools::max_value<T>() * scale < fact)
-           *I = (org_kind & need_i) ? T(sign(fact) * sign(scale) * policies::raise_overflow_error<T>(function, 0, pol)) : T(0);
-        else
-         *I = Iv + fact / scale;   // reflection formula
-    }
-    else
-    {
-        *I = Iv;
-    }
-    if(tools::max_value<T>() * scale < Kv)
-      *K = (org_kind & need_k) ? T(sign(Kv) * sign(scale) * policies::raise_overflow_error<T>(function, 0, pol)) : T(0);
-    else
-      *K = Kv / scale;
-    BOOST_MATH_INSTRUMENT_VARIABLE(*I);
-    BOOST_MATH_INSTRUMENT_VARIABLE(*K);
-    return 0;
-}
-
-}}} // namespaces
-
-#endif // BOOST_MATH_BESSEL_IK_HPP
-
diff --git a/boost/math/special_functions/detail/bessel_j0.hpp b/boost/math/special_functions/detail/bessel_j0.hpp
deleted file mode 100644
index ebcab17..0000000
--- a/boost/math/special_functions/detail/bessel_j0.hpp
+++ /dev/null
@@ -1,193 +0,0 @@
-//  Copyright (c) 2006 Xiaogang Zhang
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_BESSEL_J0_HPP
-#define BOOST_MATH_BESSEL_J0_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/math/constants/constants.hpp>
-#include <boost/math/tools/rational.hpp>
-#include <boost/math/tools/big_constant.hpp>
-#include <boost/assert.hpp>
-
-// Bessel function of the first kind of order zero
-// x <= 8, minimax rational approximations on root-bracketing intervals
-// x > 8, Hankel asymptotic expansion in Hart, Computer Approximations, 1968
-
-namespace boost { namespace math { namespace detail{
-
-template <typename T>
-T bessel_j0(T x);
-
-template <class T>
-struct bessel_j0_initializer
-{
-   struct init
-   {
-      init()
-      {
-         do_init();
-      }
-      static void do_init()
-      {
-         bessel_j0(T(1));
-      }
-      void force_instantiate()const{}
-   };
-   static const init initializer;
-   static void force_instantiate()
-   {
-      initializer.force_instantiate();
-   }
-};
-
-template <class T>
-const typename bessel_j0_initializer<T>::init bessel_j0_initializer<T>::initializer;
-
-template <typename T>
-T bessel_j0(T x)
-{
-    bessel_j0_initializer<T>::force_instantiate();
-    
-    static const T P1[] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -4.1298668500990866786e+11)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 2.7282507878605942706e+10)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -6.2140700423540120665e+08)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 6.6302997904833794242e+06)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -3.6629814655107086448e+04)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.0344222815443188943e+02)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.2117036164593528341e-01))
-    };
-    static const T Q1[] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 2.3883787996332290397e+12)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 2.6328198300859648632e+10)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.3985097372263433271e+08)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 4.5612696224219938200e+05)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 9.3614022392337710626e+02)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.0)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.0))
-    };
-    static const T P2[] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.8319397969392084011e+03)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.2254078161378989535e+04)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -7.2879702464464618998e+03)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.0341910641583726701e+04)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.1725046279757103576e+04)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 4.4176707025325087628e+03)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 7.4321196680624245801e+02)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 4.8591703355916499363e+01))
-    };
-    static const T Q2[] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -3.5783478026152301072e+05)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 2.4599102262586308984e+05)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -8.4055062591169562211e+04)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.8680990008359188352e+04)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -2.9458766545509337327e+03)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 3.3307310774649071172e+02)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -2.5258076240801555057e+01)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.0))
-    };
-    static const T PC[] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 2.2779090197304684302e+04)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 4.1345386639580765797e+04)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 2.1170523380864944322e+04)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 3.4806486443249270347e+03)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.5376201909008354296e+02)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 8.8961548424210455236e-01))
-    };
-    static const T QC[] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 2.2779090197304684318e+04)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 4.1370412495510416640e+04)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 2.1215350561880115730e+04)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 3.5028735138235608207e+03)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.5711159858080893649e+02)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.0))
-    };
-    static const T PS[] = {
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -8.9226600200800094098e+01)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.8591953644342993800e+02)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.1183429920482737611e+02)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -2.2300261666214198472e+01)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.2441026745835638459e+00)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -8.8033303048680751817e-03))
-    };
-    static const T QS[] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 5.7105024128512061905e+03)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.1951131543434613647e+04)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 7.2642780169211018836e+03)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.4887231232283756582e+03)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 9.0593769594993125859e+01)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.0))
-    };
-    static const T x1  =  static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 2.4048255576957727686e+00)),
-                   x2  =  static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 5.5200781102863106496e+00)),
-                   x11 =  static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 6.160e+02)),
-                   x12 =  static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.42444230422723137837e-03)),
-                   x21 =  static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.4130e+03)),
-                   x22 =  static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 5.46860286310649596604e-04));
-
-    T value, factor, r, rc, rs;
-
-    BOOST_MATH_STD_USING
-    using namespace boost::math::tools;
-    using namespace boost::math::constants;
-
-    if (x < 0)
-    {
-        x = -x;                         // even function
-    }
-    if (x == 0)
-    {
-        return static_cast<T>(1);
-    }
-    if (x <= 4)                       // x in (0, 4]
-    {
-        T y = x * x;
-        BOOST_ASSERT(sizeof(P1) == sizeof(Q1));
-        r = evaluate_rational(P1, Q1, y);
-        factor = (x + x1) * ((x - x11/256) - x12);
-        value = factor * r;
-    }
-    else if (x <= 8.0)                  // x in (4, 8]
-    {
-        T y = 1 - (x * x)/64;
-        BOOST_ASSERT(sizeof(P2) == sizeof(Q2));
-        r = evaluate_rational(P2, Q2, y);
-        factor = (x + x2) * ((x - x21/256) - x22);
-        value = factor * r;
-    }
-    else                                // x in (8, \infty)
-    {
-        T y = 8 / x;
-        T y2 = y * y;
-        BOOST_ASSERT(sizeof(PC) == sizeof(QC));
-        BOOST_ASSERT(sizeof(PS) == sizeof(QS));
-        rc = evaluate_rational(PC, QC, y2);
-        rs = evaluate_rational(PS, QS, y2);
-        factor = constants::one_div_root_pi<T>() / sqrt(x);
-        //
-        // What follows is really just:
-        //
-        // T z = x - pi/4;
-        // value = factor * (rc * cos(z) - y * rs * sin(z));
-        //
-        // But using the addition formulae for sin and cos, plus
-        // the special values for sin/cos of pi/4.
-        //
-        T sx = sin(x);
-        T cx = cos(x);
-        value = factor * (rc * (cx + sx) - y * rs * (sx - cx));
-    }
-
-    return value;
-}
-
-}}} // namespaces
-
-#endif // BOOST_MATH_BESSEL_J0_HPP
-
diff --git a/boost/math/special_functions/detail/bessel_j1.hpp b/boost/math/special_functions/detail/bessel_j1.hpp
deleted file mode 100644
index 91ecd28..0000000
--- a/boost/math/special_functions/detail/bessel_j1.hpp
+++ /dev/null
@@ -1,199 +0,0 @@
-//  Copyright (c) 2006 Xiaogang Zhang
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_BESSEL_J1_HPP
-#define BOOST_MATH_BESSEL_J1_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/math/constants/constants.hpp>
-#include <boost/math/tools/rational.hpp>
-#include <boost/math/tools/big_constant.hpp>
-#include <boost/assert.hpp>
-
-// Bessel function of the first kind of order one
-// x <= 8, minimax rational approximations on root-bracketing intervals
-// x > 8, Hankel asymptotic expansion in Hart, Computer Approximations, 1968
-
-namespace boost { namespace math{  namespace detail{
-
-template <typename T>
-T bessel_j1(T x);
-
-template <class T>
-struct bessel_j1_initializer
-{
-   struct init
-   {
-      init()
-      {
-         do_init();
-      }
-      static void do_init()
-      {
-         bessel_j1(T(1));
-      }
-      void force_instantiate()const{}
-   };
-   static const init initializer;
-   static void force_instantiate()
-   {
-      initializer.force_instantiate();
-   }
-};
-
-template <class T>
-const typename bessel_j1_initializer<T>::init bessel_j1_initializer<T>::initializer;
-
-template <typename T>
-T bessel_j1(T x)
-{
-    bessel_j1_initializer<T>::force_instantiate();
-
-    static const T P1[] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.4258509801366645672e+11)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 6.6781041261492395835e+09)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.1548696764841276794e+08)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 9.8062904098958257677e+05)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -4.4615792982775076130e+03)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.0650724020080236441e+01)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.0767857011487300348e-02))
-    };
-    static const T Q1[] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 4.1868604460820175290e+12)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 4.2091902282580133541e+10)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 2.0228375140097033958e+08)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 5.9117614494174794095e+05)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.0742272239517380498e+03)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.0)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.0))
-    };
-    static const T P2[] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.7527881995806511112e+16)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.6608531731299018674e+15)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -3.6658018905416665164e+13)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 3.5580665670910619166e+11)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.8113931269860667829e+09)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 5.0793266148011179143e+06)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -7.5023342220781607561e+03)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 4.6179191852758252278e+00))
-    };
-    static const T Q2[] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.7253905888447681194e+18)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.7128800897135812012e+16)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 8.4899346165481429307e+13)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 2.7622777286244082666e+11)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 6.4872502899596389593e+08)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.1267125065029138050e+06)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.3886978985861357615e+03)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.0))
-    };
-    static const T PC[] = {
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -4.4357578167941278571e+06)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -9.9422465050776411957e+06)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -6.6033732483649391093e+06)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.5235293511811373833e+06)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.0982405543459346727e+05)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.6116166443246101165e+03)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.0))
-    };
-    static const T QC[] = {
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -4.4357578167941278568e+06)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -9.9341243899345856590e+06)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -6.5853394797230870728e+06)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.5118095066341608816e+06)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.0726385991103820119e+05)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.4550094401904961825e+03)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.0))
-    };
-    static const T PS[] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 3.3220913409857223519e+04)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 8.5145160675335701966e+04)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 6.6178836581270835179e+04)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.8494262873223866797e+04)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.7063754290207680021e+03)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 3.5265133846636032186e+01)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.0))
-    };
-    static const T QS[] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 7.0871281941028743574e+05)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.8194580422439972989e+06)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.4194606696037208929e+06)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 4.0029443582266975117e+05)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 3.7890229745772202641e+04)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 8.6383677696049909675e+02)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.0))
-    };
-    static const T x1  =  static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 3.8317059702075123156e+00)),
-                   x2  =  static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 7.0155866698156187535e+00)),
-                   x11 =  static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 9.810e+02)),
-                   x12 =  static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -3.2527979248768438556e-04)),
-                   x21 =  static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.7960e+03)),
-                   x22 =  static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -3.8330184381246462950e-05));
-
-    T value, factor, r, rc, rs, w;
-
-    BOOST_MATH_STD_USING
-    using namespace boost::math::tools;
-    using namespace boost::math::constants;
-
-    w = abs(x);
-    if (x == 0)
-    {
-        return static_cast<T>(0);
-    }
-    if (w <= 4)                       // w in (0, 4]
-    {
-        T y = x * x;
-        BOOST_ASSERT(sizeof(P1) == sizeof(Q1));
-        r = evaluate_rational(P1, Q1, y);
-        factor = w * (w + x1) * ((w - x11/256) - x12);
-        value = factor * r;
-    }
-    else if (w <= 8)                  // w in (4, 8]
-    {
-        T y = x * x;
-        BOOST_ASSERT(sizeof(P2) == sizeof(Q2));
-        r = evaluate_rational(P2, Q2, y);
-        factor = w * (w + x2) * ((w - x21/256) - x22);
-        value = factor * r;
-    }
-    else                                // w in (8, \infty)
-    {
-        T y = 8 / w;
-        T y2 = y * y;
-        BOOST_ASSERT(sizeof(PC) == sizeof(QC));
-        BOOST_ASSERT(sizeof(PS) == sizeof(QS));
-        rc = evaluate_rational(PC, QC, y2);
-        rs = evaluate_rational(PS, QS, y2);
-        factor = 1 / (sqrt(w) * constants::root_pi<T>());
-        //
-        // What follows is really just:
-        //
-        // T z = w - 0.75f * pi<T>();
-        // value = factor * (rc * cos(z) - y * rs * sin(z));
-        //
-        // but using the sin/cos addition rules plus constants
-        // for the values of sin/cos of 3PI/4 which then cancel
-        // out with corresponding terms in "factor".
-        //
-        T sx = sin(x);
-        T cx = cos(x);
-        value = factor * (rc * (sx - cx) + y * rs * (sx + cx));
-    }
-
-    if (x < 0)
-    {
-        value *= -1;                 // odd function
-    }
-    return value;
-}
-
-}}} // namespaces
-
-#endif // BOOST_MATH_BESSEL_J1_HPP
-
diff --git a/boost/math/special_functions/detail/bessel_jn.hpp b/boost/math/special_functions/detail/bessel_jn.hpp
deleted file mode 100644
index 3f15f9c..0000000
--- a/boost/math/special_functions/detail/bessel_jn.hpp
+++ /dev/null
@@ -1,134 +0,0 @@
-//  Copyright (c) 2006 Xiaogang Zhang
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_BESSEL_JN_HPP
-#define BOOST_MATH_BESSEL_JN_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/math/special_functions/detail/bessel_j0.hpp>
-#include <boost/math/special_functions/detail/bessel_j1.hpp>
-#include <boost/math/special_functions/detail/bessel_jy.hpp>
-#include <boost/math/special_functions/detail/bessel_jy_asym.hpp>
-#include <boost/math/special_functions/detail/bessel_jy_series.hpp>
-
-// Bessel function of the first kind of integer order
-// J_n(z) is the minimal solution
-// n < abs(z), forward recurrence stable and usable
-// n >= abs(z), forward recurrence unstable, use Miller's algorithm
-
-namespace boost { namespace math { namespace detail{
-
-template <typename T, typename Policy>
-T bessel_jn(int n, T x, const Policy& pol)
-{
-    T value(0), factor, current, prev, next;
-
-    BOOST_MATH_STD_USING
-
-    //
-    // Reflection has to come first:
-    //
-    if (n < 0)
-    {
-        factor = (n & 0x1) ? -1 : 1;  // J_{-n}(z) = (-1)^n J_n(z)
-        n = -n;
-    }
-    else
-    {
-        factor = 1;
-    }
-    if(x < 0)
-    {
-        factor *= (n & 0x1) ? -1 : 1;  // J_{n}(-z) = (-1)^n J_n(z)
-        x = -x;
-    }
-    //
-    // Special cases:
-    //
-    if (n == 0)
-    {
-        return factor * bessel_j0(x);
-    }
-    if (n == 1)
-    {
-        return factor * bessel_j1(x);
-    }
-
-    if (x == 0)                             // n >= 2
-    {
-        return static_cast<T>(0);
-    }
-
-    if(asymptotic_bessel_large_x_limit(T(n), x))
-      return factor * asymptotic_bessel_j_large_x_2<T>(n, x);
-
-    BOOST_ASSERT(n > 1);
-    T scale = 1;
-    if (n < abs(x))                         // forward recurrence
-    {
-        prev = bessel_j0(x);
-        current = bessel_j1(x);
-        policies::check_series_iterations<T>("boost::math::bessel_j_n<%1%>(%1%,%1%)", n, pol);
-        for (int k = 1; k < n; k++)
-        {
-            T fact = 2 * k / x;
-            //
-            // rescale if we would overflow or underflow:
-            //
-            if((fabs(fact) > 1) && ((tools::max_value<T>() - fabs(prev)) / fabs(fact) < fabs(current)))
-            {
-               scale /= current;
-               prev /= current;
-               current = 1;
-            }
-            value = fact * current - prev;
-            prev = current;
-            current = value;
-        }
-    }
-    else if((x < 1) || (n > x * x / 4) || (x < 5))
-    {
-       return factor * bessel_j_small_z_series(T(n), x, pol);
-    }
-    else                                    // backward recurrence
-    {
-        T fn; int s;                        // fn = J_(n+1) / J_n
-        // |x| <= n, fast convergence for continued fraction CF1
-        boost::math::detail::CF1_jy(static_cast<T>(n), x, &fn, &s, pol);
-        prev = fn;
-        current = 1;
-        // Check recursion won't go on too far:
-        policies::check_series_iterations<T>("boost::math::bessel_j_n<%1%>(%1%,%1%)", n, pol);
-        for (int k = n; k > 0; k--)
-        {
-            T fact = 2 * k / x;
-            if((fabs(fact) > 1) && ((tools::max_value<T>() - fabs(prev)) / fabs(fact) < fabs(current)))
-            {
-               prev /= current;
-               scale /= current;
-               current = 1;
-            }
-            next = fact * current - prev;
-            prev = current;
-            current = next;
-        }
-        value = bessel_j0(x) / current;       // normalization
-        scale = 1 / scale;
-    }
-    value *= factor;
-
-    if(tools::max_value<T>() * scale < fabs(value))
-       return policies::raise_overflow_error<T>("boost::math::bessel_jn<%1%>(%1%,%1%)", 0, pol);
-
-    return value / scale;
-}
-
-}}} // namespaces
-
-#endif // BOOST_MATH_BESSEL_JN_HPP
-
diff --git a/boost/math/special_functions/detail/bessel_jy.hpp b/boost/math/special_functions/detail/bessel_jy.hpp
deleted file mode 100644
index d341449..0000000
--- a/boost/math/special_functions/detail/bessel_jy.hpp
+++ /dev/null
@@ -1,578 +0,0 @@
-//  Copyright (c) 2006 Xiaogang Zhang
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_BESSEL_JY_HPP
-#define BOOST_MATH_BESSEL_JY_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/math/tools/config.hpp>
-#include <boost/math/special_functions/gamma.hpp>
-#include <boost/math/special_functions/sign.hpp>
-#include <boost/math/special_functions/hypot.hpp>
-#include <boost/math/special_functions/sin_pi.hpp>
-#include <boost/math/special_functions/cos_pi.hpp>
-#include <boost/math/special_functions/detail/bessel_jy_asym.hpp>
-#include <boost/math/special_functions/detail/bessel_jy_series.hpp>
-#include <boost/math/constants/constants.hpp>
-#include <boost/math/policies/error_handling.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/type_traits/is_floating_point.hpp>
-#include <complex>
-
-// Bessel functions of the first and second kind of fractional order
-
-namespace boost { namespace math {
-
-   namespace detail {
-
-      //
-      // Simultaneous calculation of A&S 9.2.9 and 9.2.10
-      // for use in A&S 9.2.5 and 9.2.6.
-      // This series is quick to evaluate, but divergent unless
-      // x is very large, in fact it's pretty hard to figure out
-      // with any degree of precision when this series actually 
-      // *will* converge!!  Consequently, we may just have to
-      // try it and see...
-      //
-      template <class T, class Policy>
-      bool hankel_PQ(T v, T x, T* p, T* q, const Policy& )
-      {
-         BOOST_MATH_STD_USING
-            T tolerance = 2 * policies::get_epsilon<T, Policy>();
-         *p = 1;
-         *q = 0;
-         T k = 1;
-         T z8 = 8 * x;
-         T sq = 1;
-         T mu = 4 * v * v;
-         T term = 1;
-         bool ok = true;
-         do
-         {
-            term *= (mu - sq * sq) / (k * z8);
-            *q += term;
-            k += 1;
-            sq += 2;
-            T mult = (sq * sq - mu) / (k * z8);
-            ok = fabs(mult) < 0.5f;
-            term *= mult;
-            *p += term;
-            k += 1;
-            sq += 2;
-         }
-         while((fabs(term) > tolerance * *p) && ok);
-         return ok;
-      }
-
-      // Calculate Y(v, x) and Y(v+1, x) by Temme's method, see
-      // Temme, Journal of Computational Physics, vol 21, 343 (1976)
-      template <typename T, typename Policy>
-      int temme_jy(T v, T x, T* Y, T* Y1, const Policy& pol)
-      {
-         T g, h, p, q, f, coef, sum, sum1, tolerance;
-         T a, d, e, sigma;
-         unsigned long k;
-
-         BOOST_MATH_STD_USING
-            using namespace boost::math::tools;
-         using namespace boost::math::constants;
-
-         BOOST_ASSERT(fabs(v) <= 0.5f);  // precondition for using this routine
-
-         T gp = boost::math::tgamma1pm1(v, pol);
-         T gm = boost::math::tgamma1pm1(-v, pol);
-         T spv = boost::math::sin_pi(v, pol);
-         T spv2 = boost::math::sin_pi(v/2, pol);
-         T xp = pow(x/2, v);
-
-         a = log(x / 2);
-         sigma = -a * v;
-         d = abs(sigma) < tools::epsilon<T>() ?
-            T(1) : sinh(sigma) / sigma;
-         e = abs(v) < tools::epsilon<T>() ? T(v*pi<T>()*pi<T>() / 2)
-            : T(2 * spv2 * spv2 / v);
-
-         T g1 = (v == 0) ? T(-euler<T>()) : T((gp - gm) / ((1 + gp) * (1 + gm) * 2 * v));
-         T g2 = (2 + gp + gm) / ((1 + gp) * (1 + gm) * 2);
-         T vspv = (fabs(v) < tools::epsilon<T>()) ? T(1/constants::pi<T>()) : T(v / spv);
-         f = (g1 * cosh(sigma) - g2 * a * d) * 2 * vspv;
-
-         p = vspv / (xp * (1 + gm));
-         q = vspv * xp / (1 + gp);
-
-         g = f + e * q;
-         h = p;
-         coef = 1;
-         sum = coef * g;
-         sum1 = coef * h;
-
-         T v2 = v * v;
-         T coef_mult = -x * x / 4;
-
-         // series summation
-         tolerance = policies::get_epsilon<T, Policy>();
-         for (k = 1; k < policies::get_max_series_iterations<Policy>(); k++)
-         {
-            f = (k * f + p + q) / (k*k - v2);
-            p /= k - v;
-            q /= k + v;
-            g = f + e * q;
-            h = p - k * g;
-            coef *= coef_mult / k;
-            sum += coef * g;
-            sum1 += coef * h;
-            if (abs(coef * g) < abs(sum) * tolerance) 
-            { 
-               break; 
-            }
-         }
-         policies::check_series_iterations<T>("boost::math::bessel_jy<%1%>(%1%,%1%) in temme_jy", k, pol);
-         *Y = -sum;
-         *Y1 = -2 * sum1 / x;
-
-         return 0;
-      }
-
-      // Evaluate continued fraction fv = J_(v+1) / J_v, see
-      // Abramowitz and Stegun, Handbook of Mathematical Functions, 1972, 9.1.73
-      template <typename T, typename Policy>
-      int CF1_jy(T v, T x, T* fv, int* sign, const Policy& pol)
-      {
-         T C, D, f, a, b, delta, tiny, tolerance;
-         unsigned long k;
-         int s = 1;
-
-         BOOST_MATH_STD_USING
-
-            // |x| <= |v|, CF1_jy converges rapidly
-            // |x| > |v|, CF1_jy needs O(|x|) iterations to converge
-
-            // modified Lentz's method, see
-            // Lentz, Applied Optics, vol 15, 668 (1976)
-            tolerance = 2 * policies::get_epsilon<T, Policy>();;
-         tiny = sqrt(tools::min_value<T>());
-         C = f = tiny;                           // b0 = 0, replace with tiny
-         D = 0;
-         for (k = 1; k < policies::get_max_series_iterations<Policy>() * 100; k++)
-         {
-            a = -1;
-            b = 2 * (v + k) / x;
-            C = b + a / C;
-            D = b + a * D;
-            if (C == 0) { C = tiny; }
-            if (D == 0) { D = tiny; }
-            D = 1 / D;
-            delta = C * D;
-            f *= delta;
-            if (D < 0) { s = -s; }
-            if (abs(delta - 1) < tolerance) 
-            { break; }
-         }
-         policies::check_series_iterations<T>("boost::math::bessel_jy<%1%>(%1%,%1%) in CF1_jy", k / 100, pol);
-         *fv = -f;
-         *sign = s;                              // sign of denominator
-
-         return 0;
-      }
-      //
-      // This algorithm was originally written by Xiaogang Zhang
-      // using std::complex to perform the complex arithmetic.
-      // However, that turns out to 10x or more slower than using
-      // all real-valued arithmetic, so it's been rewritten using
-      // real values only.
-      //
-      template <typename T, typename Policy>
-      int CF2_jy(T v, T x, T* p, T* q, const Policy& pol)
-      {
-         BOOST_MATH_STD_USING
-
-            T Cr, Ci, Dr, Di, fr, fi, a, br, bi, delta_r, delta_i, temp;
-         T tiny;
-         unsigned long k;
-
-         // |x| >= |v|, CF2_jy converges rapidly
-         // |x| -> 0, CF2_jy fails to converge
-         BOOST_ASSERT(fabs(x) > 1);
-
-         // modified Lentz's method, complex numbers involved, see
-         // Lentz, Applied Optics, vol 15, 668 (1976)
-         T tolerance = 2 * policies::get_epsilon<T, Policy>();
-         tiny = sqrt(tools::min_value<T>());
-         Cr = fr = -0.5f / x;
-         Ci = fi = 1;
-         //Dr = Di = 0;
-         T v2 = v * v;
-         a = (0.25f - v2) / x; // Note complex this one time only!
-         br = 2 * x;
-         bi = 2;
-         temp = Cr * Cr + 1;
-         Ci = bi + a * Cr / temp;
-         Cr = br + a / temp;
-         Dr = br;
-         Di = bi;
-         if (fabs(Cr) + fabs(Ci) < tiny) { Cr = tiny; }
-         if (fabs(Dr) + fabs(Di) < tiny) { Dr = tiny; }
-         temp = Dr * Dr + Di * Di;
-         Dr = Dr / temp;
-         Di = -Di / temp;
-         delta_r = Cr * Dr - Ci * Di;
-         delta_i = Ci * Dr + Cr * Di;
-         temp = fr;
-         fr = temp * delta_r - fi * delta_i;
-         fi = temp * delta_i + fi * delta_r;
-         for (k = 2; k < policies::get_max_series_iterations<Policy>(); k++)
-         {
-            a = k - 0.5f;
-            a *= a;
-            a -= v2;
-            bi += 2;
-            temp = Cr * Cr + Ci * Ci;
-            Cr = br + a * Cr / temp;
-            Ci = bi - a * Ci / temp;
-            Dr = br + a * Dr;
-            Di = bi + a * Di;
-            if (fabs(Cr) + fabs(Ci) < tiny) { Cr = tiny; }
-            if (fabs(Dr) + fabs(Di) < tiny) { Dr = tiny; }
-            temp = Dr * Dr + Di * Di;
-            Dr = Dr / temp;
-            Di = -Di / temp;
-            delta_r = Cr * Dr - Ci * Di;
-            delta_i = Ci * Dr + Cr * Di;
-            temp = fr;
-            fr = temp * delta_r - fi * delta_i;
-            fi = temp * delta_i + fi * delta_r;
-            if (fabs(delta_r - 1) + fabs(delta_i) < tolerance)
-               break;
-         }
-         policies::check_series_iterations<T>("boost::math::bessel_jy<%1%>(%1%,%1%) in CF2_jy", k, pol);
-         *p = fr;
-         *q = fi;
-
-         return 0;
-      }
-
-      static const int need_j = 1;
-      static const int need_y = 2;
-
-      // Compute J(v, x) and Y(v, x) simultaneously by Steed's method, see
-      // Barnett et al, Computer Physics Communications, vol 8, 377 (1974)
-      template <typename T, typename Policy>
-      int bessel_jy(T v, T x, T* J, T* Y, int kind, const Policy& pol)
-      {
-         BOOST_ASSERT(x >= 0);
-
-         T u, Jv, Ju, Yv, Yv1, Yu, Yu1(0), fv, fu;
-         T W, p, q, gamma, current, prev, next;
-         bool reflect = false;
-         unsigned n, k;
-         int s;
-         int org_kind = kind;
-         T cp = 0;
-         T sp = 0;
-
-         static const char* function = "boost::math::bessel_jy<%1%>(%1%,%1%)";
-
-         BOOST_MATH_STD_USING
-            using namespace boost::math::tools;
-         using namespace boost::math::constants;
-
-         if (v < 0)
-         {
-            reflect = true;
-            v = -v;                             // v is non-negative from here
-         }
-         if(v > static_cast<T>((std::numeric_limits<int>::max)()))
-            policies::raise_evaluation_error<T>(function, "Order of Bessel function is too large to evaluate: got %1%", v, pol);
-         n = iround(v, pol);
-         u = v - n;                              // -1/2 <= u < 1/2
-
-         if(reflect)
-         {
-            T z = (u + n % 2);
-            cp = boost::math::cos_pi(z, pol);
-            sp = boost::math::sin_pi(z, pol);
-            if(u != 0)
-               kind = need_j|need_y;               // need both for reflection formula
-         }
-
-         if(x == 0)
-         {
-            if(v == 0)
-               *J = 1;
-            else if((u == 0) || !reflect)
-               *J = 0;
-            else if(kind & need_j)
-               *J = policies::raise_domain_error<T>(function, "Value of Bessel J_v(x) is complex-infinity at %1%", x, pol); // complex infinity
-            else
-               *J = std::numeric_limits<T>::quiet_NaN();  // any value will do, not using J.
-
-            if((kind & need_y) == 0)
-               *Y = std::numeric_limits<T>::quiet_NaN();  // any value will do, not using Y.
-            else if(v == 0)
-               *Y = -policies::raise_overflow_error<T>(function, 0, pol);
-            else
-               *Y = policies::raise_domain_error<T>(function, "Value of Bessel Y_v(x) is complex-infinity at %1%", x, pol); // complex infinity
-            return 1;
-         }
-
-         // x is positive until reflection
-         W = T(2) / (x * pi<T>());               // Wronskian
-         T Yv_scale = 1;
-         if(((kind & need_y) == 0) && ((x < 1) || (v > x * x / 4) || (x < 5)))
-         {
-            //
-            // This series will actually converge rapidly for all small
-            // x - say up to x < 20 - but the first few terms are large
-            // and divergent which leads to large errors :-(
-            //
-            Jv = bessel_j_small_z_series(v, x, pol);
-            Yv = std::numeric_limits<T>::quiet_NaN();
-         }
-         else if((x < 1) && (u != 0) && (log(policies::get_epsilon<T, Policy>() / 2) > v * log((x/2) * (x/2) / v)))
-         {
-            // Evaluate using series representations.
-            // This is particularly important for x << v as in this
-            // area temme_jy may be slow to converge, if it converges at all.
-            // Requires x is not an integer.
-            if(kind&need_j)
-               Jv = bessel_j_small_z_series(v, x, pol);
-            else
-               Jv = std::numeric_limits<T>::quiet_NaN();
-            if((org_kind&need_y && (!reflect || (cp != 0))) 
-               || (org_kind & need_j && (reflect && (sp != 0))))
-            {
-               // Only calculate if we need it, and if the reflection formula will actually use it:
-               Yv = bessel_y_small_z_series(v, x, &Yv_scale, pol);
-            }
-            else
-               Yv = std::numeric_limits<T>::quiet_NaN();
-         }
-         else if((u == 0) && (x < policies::get_epsilon<T, Policy>()))
-         {
-            // Truncated series evaluation for small x and v an integer,
-            // much quicker in this area than temme_jy below.
-            if(kind&need_j)
-               Jv = bessel_j_small_z_series(v, x, pol);
-            else
-               Jv = std::numeric_limits<T>::quiet_NaN();
-            if((org_kind&need_y && (!reflect || (cp != 0))) 
-               || (org_kind & need_j && (reflect && (sp != 0))))
-            {
-               // Only calculate if we need it, and if the reflection formula will actually use it:
-               Yv = bessel_yn_small_z(n, x, &Yv_scale, pol);
-            }
-            else
-               Yv = std::numeric_limits<T>::quiet_NaN();
-         }
-         else if(asymptotic_bessel_large_x_limit(v, x))
-         {
-            if(kind&need_y)
-            {
-               Yv = asymptotic_bessel_y_large_x_2(v, x);
-            }
-            else
-               Yv = std::numeric_limits<T>::quiet_NaN(); // any value will do, we're not using it.
-            if(kind&need_j)
-            {
-               Jv = asymptotic_bessel_j_large_x_2(v, x);
-            }
-            else
-               Jv = std::numeric_limits<T>::quiet_NaN(); // any value will do, we're not using it.
-         }
-         else if((x > 8) && hankel_PQ(v, x, &p, &q, pol))
-         {
-            //
-            // Hankel approximation: note that this method works best when x 
-            // is large, but in that case we end up calculating sines and cosines
-            // of large values, with horrendous resulting accuracy.  It is fast though
-            // when it works....
-            //
-            // Normally we calculate sin/cos(chi) where:
-            //
-            // chi = x - fmod(T(v / 2 + 0.25f), T(2)) * boost::math::constants::pi<T>();
-            //
-            // But this introduces large errors, so use sin/cos addition formulae to
-            // improve accuracy:
-            //
-            T mod_v = fmod(T(v / 2 + 0.25f), T(2));
-            T sx = sin(x);
-            T cx = cos(x);
-            T sv = sin_pi(mod_v);
-            T cv = cos_pi(mod_v);
-
-            T sc = sx * cv - sv * cx; // == sin(chi);
-            T cc = cx * cv + sx * sv; // == cos(chi);
-            T chi = boost::math::constants::root_two<T>() / (boost::math::constants::root_pi<T>() * sqrt(x)); //sqrt(2 / (boost::math::constants::pi<T>() * x));
-            Yv = chi * (p * sc + q * cc);
-            Jv = chi * (p * cc - q * sc);
-         }
-         else if (x <= 2)                           // x in (0, 2]
-         {
-            if(temme_jy(u, x, &Yu, &Yu1, pol))             // Temme series
-            {
-               // domain error:
-               *J = *Y = Yu;
-               return 1;
-            }
-            prev = Yu;
-            current = Yu1;
-            T scale = 1;
-            policies::check_series_iterations<T>(function, n, pol);
-            for (k = 1; k <= n; k++)            // forward recurrence for Y
-            {
-               T fact = 2 * (u + k) / x;
-               if((tools::max_value<T>() - fabs(prev)) / fact < fabs(current))
-               {
-                  scale /= current;
-                  prev /= current;
-                  current = 1;
-               }
-               next = fact * current - prev;
-               prev = current;
-               current = next;
-            }
-            Yv = prev;
-            Yv1 = current;
-            if(kind&need_j)
-            {
-               CF1_jy(v, x, &fv, &s, pol);                 // continued fraction CF1_jy
-               Jv = scale * W / (Yv * fv - Yv1);           // Wronskian relation
-            }
-            else
-               Jv = std::numeric_limits<T>::quiet_NaN(); // any value will do, we're not using it.
-            Yv_scale = scale;
-         }
-         else                                    // x in (2, \infty)
-         {
-            // Get Y(u, x):
-
-            T ratio;
-            CF1_jy(v, x, &fv, &s, pol);
-            // tiny initial value to prevent overflow
-            T init = sqrt(tools::min_value<T>());
-            prev = fv * s * init;
-            current = s * init;
-            if(v < max_factorial<T>::value)
-            {
-               policies::check_series_iterations<T>(function, n, pol);
-               for (k = n; k > 0; k--)             // backward recurrence for J
-               {
-                  next = 2 * (u + k) * current / x - prev;
-                  prev = current;
-                  current = next;
-               }
-               ratio = (s * init) / current;     // scaling ratio
-               // can also call CF1_jy() to get fu, not much difference in precision
-               fu = prev / current;
-            }
-            else
-            {
-               //
-               // When v is large we may get overflow in this calculation
-               // leading to NaN's and other nasty surprises:
-               //
-               policies::check_series_iterations<T>(function, n, pol);
-               bool over = false;
-               for (k = n; k > 0; k--)             // backward recurrence for J
-               {
-                  T t = 2 * (u + k) / x;
-                  if((t > 1) && (tools::max_value<T>() / t < current))
-                  {
-                     over = true;
-                     break;
-                  }
-                  next = t * current - prev;
-                  prev = current;
-                  current = next;
-               }
-               if(!over)
-               {
-                  ratio = (s * init) / current;     // scaling ratio
-                  // can also call CF1_jy() to get fu, not much difference in precision
-                  fu = prev / current;
-               }
-               else
-               {
-                  ratio = 0;
-                  fu = 1;
-               }
-            }
-            CF2_jy(u, x, &p, &q, pol);                  // continued fraction CF2_jy
-            T t = u / x - fu;                   // t = J'/J
-            gamma = (p - t) / q;
-            //
-            // We can't allow gamma to cancel out to zero competely as it messes up
-            // the subsequent logic.  So pretend that one bit didn't cancel out
-            // and set to a suitably small value.  The only test case we've been able to
-            // find for this, is when v = 8.5 and x = 4*PI.
-            //
-            if(gamma == 0)
-            {
-               gamma = u * tools::epsilon<T>() / x;
-            }
-            Ju = sign(current) * sqrt(W / (q + gamma * (p - t)));
-
-            Jv = Ju * ratio;                    // normalization
-
-            Yu = gamma * Ju;
-            Yu1 = Yu * (u/x - p - q/gamma);
-
-            if(kind&need_y)
-            {
-               // compute Y:
-               prev = Yu;
-               current = Yu1;
-               policies::check_series_iterations<T>(function, n, pol);
-               for (k = 1; k <= n; k++)            // forward recurrence for Y
-               {
-                  T fact = 2 * (u + k) / x;
-                  if((tools::max_value<T>() - fabs(prev)) / fact < fabs(current))
-                  {
-                     prev /= current;
-                     Yv_scale /= current;
-                     current = 1;
-                  }
-                  next = fact * current - prev;
-                  prev = current;
-                  current = next;
-               }
-               Yv = prev;
-            }
-            else
-               Yv = std::numeric_limits<T>::quiet_NaN(); // any value will do, we're not using it.
-         }
-
-         if (reflect)
-         {
-            if((sp != 0) && (tools::max_value<T>() * fabs(Yv_scale) < fabs(sp * Yv)))
-               *J = org_kind & need_j ? T(-sign(sp) * sign(Yv) * sign(Yv_scale) * policies::raise_overflow_error<T>(function, 0, pol)) : T(0);
-            else
-               *J = cp * Jv - (sp == 0 ? T(0) : T((sp * Yv) / Yv_scale));     // reflection formula
-            if((cp != 0) && (tools::max_value<T>() * fabs(Yv_scale) < fabs(cp * Yv)))
-               *Y = org_kind & need_y ? T(-sign(cp) * sign(Yv) * sign(Yv_scale) * policies::raise_overflow_error<T>(function, 0, pol)) : T(0);
-            else
-               *Y = (sp != 0 ? sp * Jv : T(0)) + (cp == 0 ? T(0) : T((cp * Yv) / Yv_scale));
-         }
-         else
-         {
-            *J = Jv;
-            if(tools::max_value<T>() * fabs(Yv_scale) < fabs(Yv))
-               *Y = org_kind & need_y ? T(sign(Yv) * sign(Yv_scale) * policies::raise_overflow_error<T>(function, 0, pol)) : T(0);
-            else
-               *Y = Yv / Yv_scale;
-         }
-
-         return 0;
-      }
-
-   } // namespace detail
-
-}} // namespaces
-
-#endif // BOOST_MATH_BESSEL_JY_HPP
-
diff --git a/boost/math/special_functions/detail/bessel_jy_asym.hpp b/boost/math/special_functions/detail/bessel_jy_asym.hpp
deleted file mode 100644
index 81f6238..0000000
--- a/boost/math/special_functions/detail/bessel_jy_asym.hpp
+++ /dev/null
@@ -1,205 +0,0 @@
-//  Copyright (c) 2007 John Maddock
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//
-// This is a partial header, do not include on it's own!!!
-//
-// Contains asymptotic expansions for Bessel J(v,x) and Y(v,x)
-// functions, as x -> INF.
-//
-#ifndef BOOST_MATH_SF_DETAIL_BESSEL_JY_ASYM_HPP
-#define BOOST_MATH_SF_DETAIL_BESSEL_JY_ASYM_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/math/special_functions/factorials.hpp>
-
-namespace boost{ namespace math{ namespace detail{
-
-template <class T>
-inline T asymptotic_bessel_amplitude(T v, T x)
-{
-   // Calculate the amplitude of J(v, x) and Y(v, x) for large
-   // x: see A&S 9.2.28.
-   BOOST_MATH_STD_USING
-   T s = 1;
-   T mu = 4 * v * v;
-   T txq = 2 * x;
-   txq *= txq;
-
-   s += (mu - 1) / (2 * txq);
-   s += 3 * (mu - 1) * (mu - 9) / (txq * txq * 8);
-   s += 15 * (mu - 1) * (mu - 9) * (mu - 25) / (txq * txq * txq * 8 * 6);
-
-   return sqrt(s * 2 / (constants::pi<T>() * x));
-}
-
-template <class T>
-T asymptotic_bessel_phase_mx(T v, T x)
-{
-   //
-   // Calculate the phase of J(v, x) and Y(v, x) for large x.
-   // See A&S 9.2.29.
-   // Note that the result returned is the phase less (x - PI(v/2 + 1/4))
-   // which we'll factor in later when we calculate the sines/cosines of the result:
-   //
-   T mu = 4 * v * v;
-   T denom = 4 * x;
-   T denom_mult = denom * denom;
-
-   T s = 0;
-   s += (mu - 1) / (2 * denom);
-   denom *= denom_mult;
-   s += (mu - 1) * (mu - 25) / (6 * denom);
-   denom *= denom_mult;
-   s += (mu - 1) * (mu * mu - 114 * mu + 1073) / (5 * denom);
-   denom *= denom_mult;
-   s += (mu - 1) * (5 * mu * mu * mu - 1535 * mu * mu + 54703 * mu - 375733) / (14 * denom);
-   return s;
-}
-
-template <class T>
-inline T asymptotic_bessel_y_large_x_2(T v, T x)
-{
-   // See A&S 9.2.19.
-   BOOST_MATH_STD_USING
-   // Get the phase and amplitude:
-   T ampl = asymptotic_bessel_amplitude(v, x);
-   T phase = asymptotic_bessel_phase_mx(v, x);
-   BOOST_MATH_INSTRUMENT_VARIABLE(ampl);
-   BOOST_MATH_INSTRUMENT_VARIABLE(phase);
-   //
-   // Calculate the sine of the phase, using
-   // sine/cosine addition rules to factor in
-   // the x - PI(v/2 + 1/4) term not added to the
-   // phase when we calculated it.
-   //
-   T cx = cos(x);
-   T sx = sin(x);
-   T ci = cos_pi(v / 2 + 0.25f);
-   T si = sin_pi(v / 2 + 0.25f);
-   T sin_phase = sin(phase) * (cx * ci + sx * si) + cos(phase) * (sx * ci - cx * si);
-   BOOST_MATH_INSTRUMENT_CODE(sin(phase));
-   BOOST_MATH_INSTRUMENT_CODE(cos(x));
-   BOOST_MATH_INSTRUMENT_CODE(cos(phase));
-   BOOST_MATH_INSTRUMENT_CODE(sin(x));
-   return sin_phase * ampl;
-}
-
-template <class T>
-inline T asymptotic_bessel_j_large_x_2(T v, T x)
-{
-   // See A&S 9.2.19.
-   BOOST_MATH_STD_USING
-   // Get the phase and amplitude:
-   T ampl = asymptotic_bessel_amplitude(v, x);
-   T phase = asymptotic_bessel_phase_mx(v, x);
-   BOOST_MATH_INSTRUMENT_VARIABLE(ampl);
-   BOOST_MATH_INSTRUMENT_VARIABLE(phase);
-   //
-   // Calculate the sine of the phase, using
-   // sine/cosine addition rules to factor in
-   // the x - PI(v/2 + 1/4) term not added to the
-   // phase when we calculated it.
-   //
-   BOOST_MATH_INSTRUMENT_CODE(cos(phase));
-   BOOST_MATH_INSTRUMENT_CODE(cos(x));
-   BOOST_MATH_INSTRUMENT_CODE(sin(phase));
-   BOOST_MATH_INSTRUMENT_CODE(sin(x));
-   T cx = cos(x);
-   T sx = sin(x);
-   T ci = cos_pi(v / 2 + 0.25f);
-   T si = sin_pi(v / 2 + 0.25f);
-   T sin_phase = cos(phase) * (cx * ci + sx * si) - sin(phase) * (sx * ci - cx * si);
-   BOOST_MATH_INSTRUMENT_VARIABLE(sin_phase);
-   return sin_phase * ampl;
-}
-
-template <class T>
-inline bool asymptotic_bessel_large_x_limit(const T& v, const T& x)
-{
-   BOOST_MATH_STD_USING
-   //
-   // Determines if x is large enough compared to v to take the asymptotic
-   // forms above.  From A&S 9.2.28 we require: 
-   //    v < x * eps^1/8
-   // and from A&S 9.2.29 we require:
-   //    v^12/10 < 1.5 * x * eps^1/10
-   // using the former seems to work OK in practice with broadly similar 
-   // error rates either side of the divide for v < 10000.
-   // At double precision eps^1/8 ~= 0.01.
-   //
-   return (std::max)(T(fabs(v)), T(1)) < x * sqrt(tools::forth_root_epsilon<T>());
-}
-
-template <class T, class Policy>
-void temme_asyptotic_y_small_x(T v, T x, T* Y, T* Y1, const Policy& pol)
-{
-   T c = 1;
-   T p = (v / boost::math::sin_pi(v, pol)) * pow(x / 2, -v) / boost::math::tgamma(1 - v, pol);
-   T q = (v / boost::math::sin_pi(v, pol)) * pow(x / 2, v) / boost::math::tgamma(1 + v, pol);
-   T f = (p - q) / v;
-   T g_prefix = boost::math::sin_pi(v / 2, pol);
-   g_prefix *= g_prefix * 2 / v;
-   T g = f + g_prefix * q;
-   T h = p;
-   T c_mult = -x * x / 4;
-
-   T y(c * g), y1(c * h);
-
-   for(int k = 1; k < policies::get_max_series_iterations<Policy>(); ++k)
-   {
-      f = (k * f + p + q) / (k*k - v*v);
-      p /= k - v;
-      q /= k + v;
-      c *= c_mult / k;
-      T c1 = pow(-x * x / 4, k) / factorial<T>(k, pol);
-      g = f + g_prefix * q;
-      h = -k * g + p;
-      y += c * g;
-      y1 += c * h;
-      if(c * g / tools::epsilon<T>() < y)
-         break;
-   }
-
-   *Y = -y;
-   *Y1 = (-2 / x) * y1;
-}
-
-template <class T, class Policy>
-T asymptotic_bessel_i_large_x(T v, T x, const Policy& pol)
-{
-   BOOST_MATH_STD_USING  // ADL of std names
-   T s = 1;
-   T mu = 4 * v * v;
-   T ex = 8 * x;
-   T num = mu - 1;
-   T denom = ex;
-
-   s -= num / denom;
-
-   num *= mu - 9;
-   denom *= ex * 2;
-   s += num / denom;
-
-   num *= mu - 25;
-   denom *= ex * 3;
-   s -= num / denom;
-
-   // Try and avoid overflow to the last minute:
-   T e = exp(x/2);
-
-   s = e * (e * s / sqrt(2 * x * constants::pi<T>()));
-
-   return (boost::math::isfinite)(s) ? 
-      s : policies::raise_overflow_error<T>("boost::math::asymptotic_bessel_i_large_x<%1%>(%1%,%1%)", 0, pol);
-}
-
-}}} // namespaces
-
-#endif
-
diff --git a/boost/math/special_functions/detail/bessel_jy_series.hpp b/boost/math/special_functions/detail/bessel_jy_series.hpp
deleted file mode 100644
index d50bef8..0000000
--- a/boost/math/special_functions/detail/bessel_jy_series.hpp
+++ /dev/null
@@ -1,261 +0,0 @@
-//  Copyright (c) 2011 John Maddock
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_BESSEL_JN_SERIES_HPP
-#define BOOST_MATH_BESSEL_JN_SERIES_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-namespace boost { namespace math { namespace detail{
-
-template <class T, class Policy>
-struct bessel_j_small_z_series_term
-{
-   typedef T result_type;
-
-   bessel_j_small_z_series_term(T v_, T x)
-      : N(0), v(v_)
-   {
-      BOOST_MATH_STD_USING
-      mult = x / 2;
-      mult *= -mult;
-      term = 1;
-   }
-   T operator()()
-   {
-      T r = term;
-      ++N;
-      term *= mult / (N * (N + v));
-      return r;
-   }
-private:
-   unsigned N;
-   T v;
-   T mult;
-   T term;
-};
-//
-// Series evaluation for BesselJ(v, z) as z -> 0.
-// See http://functions.wolfram.com/Bessel-TypeFunctions/BesselJ/06/01/04/01/01/0003/
-// Converges rapidly for all z << v.
-//
-template <class T, class Policy>
-inline T bessel_j_small_z_series(T v, T x, const Policy& pol)
-{
-   BOOST_MATH_STD_USING
-   T prefix;
-   if(v < max_factorial<T>::value)
-   {
-      prefix = pow(x / 2, v) / boost::math::tgamma(v+1, pol);
-   }
-   else
-   {
-      prefix = v * log(x / 2) - boost::math::lgamma(v+1, pol);
-      prefix = exp(prefix);
-   }
-   if(0 == prefix)
-      return prefix;
-
-   bessel_j_small_z_series_term<T, Policy> s(v, x);
-   boost::uintmax_t max_iter = policies::get_max_series_iterations<Policy>();
-#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582))
-   T zero = 0;
-   T result = boost::math::tools::sum_series(s, boost::math::policies::get_epsilon<T, Policy>(), max_iter, zero);
-#else
-   T result = boost::math::tools::sum_series(s, boost::math::policies::get_epsilon<T, Policy>(), max_iter);
-#endif
-   policies::check_series_iterations<T>("boost::math::bessel_j_small_z_series<%1%>(%1%,%1%)", max_iter, pol);
-   return prefix * result;
-}
-
-template <class T, class Policy>
-struct bessel_y_small_z_series_term_a
-{
-   typedef T result_type;
-
-   bessel_y_small_z_series_term_a(T v_, T x)
-      : N(0), v(v_)
-   {
-      BOOST_MATH_STD_USING
-      mult = x / 2;
-      mult *= -mult;
-      term = 1;
-   }
-   T operator()()
-   {
-      BOOST_MATH_STD_USING
-      T r = term;
-      ++N;
-      term *= mult / (N * (N - v));
-      return r;
-   }
-private:
-   unsigned N;
-   T v;
-   T mult;
-   T term;
-};
-
-template <class T, class Policy>
-struct bessel_y_small_z_series_term_b
-{
-   typedef T result_type;
-
-   bessel_y_small_z_series_term_b(T v_, T x)
-      : N(0), v(v_)
-   {
-      BOOST_MATH_STD_USING
-      mult = x / 2;
-      mult *= -mult;
-      term = 1;
-   }
-   T operator()()
-   {
-      T r = term;
-      ++N;
-      term *= mult / (N * (N + v));
-      return r;
-   }
-private:
-   unsigned N;
-   T v;
-   T mult;
-   T term;
-};
-//
-// Series form for BesselY as z -> 0, 
-// see: http://functions.wolfram.com/Bessel-TypeFunctions/BesselY/06/01/04/01/01/0003/
-// This series is only useful when the second term is small compared to the first
-// otherwise we get catestrophic cancellation errors.
-//
-// Approximating tgamma(v) by v^v, and assuming |tgamma(-z)| < eps we end up requiring:
-// eps/2 * v^v(x/2)^-v > (x/2)^v or log(eps/2) > v log((x/2)^2/v)
-//
-template <class T, class Policy>
-inline T bessel_y_small_z_series(T v, T x, T* pscale, const Policy& pol)
-{
-   BOOST_MATH_STD_USING
-   static const char* function = "bessel_y_small_z_series<%1%>(%1%,%1%)";
-   T prefix;
-   T gam;
-   T p = log(x / 2);
-   T scale = 1;
-   bool need_logs = (v >= max_factorial<T>::value) || (tools::log_max_value<T>() / v < fabs(p));
-   if(!need_logs)
-   {
-      gam = boost::math::tgamma(v, pol);
-      p = pow(x / 2, v);
-      if(tools::max_value<T>() * p < gam)
-      {
-         scale /= gam;
-         gam = 1;
-         if(tools::max_value<T>() * p < gam)
-         {
-            return -policies::raise_overflow_error<T>(function, 0, pol);
-         }
-      }
-      prefix = -gam / (constants::pi<T>() * p);
-   }
-   else
-   {
-      gam = boost::math::lgamma(v, pol);
-      p = v * p;
-      prefix = gam - log(constants::pi<T>()) - p;
-      if(tools::log_max_value<T>() < prefix)
-      {
-         prefix -= log(tools::max_value<T>() / 4);
-         scale /= (tools::max_value<T>() / 4);
-         if(tools::log_max_value<T>() < prefix)
-         {
-            return -policies::raise_overflow_error<T>(function, 0, pol);
-         }
-      }
-      prefix = -exp(prefix);
-   }
-   bessel_y_small_z_series_term_a<T, Policy> s(v, x);
-   boost::uintmax_t max_iter = policies::get_max_series_iterations<Policy>();
-   *pscale = scale;
-#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582))
-   T zero = 0;
-   T result = boost::math::tools::sum_series(s, boost::math::policies::get_epsilon<T, Policy>(), max_iter, zero);
-#else
-   T result = boost::math::tools::sum_series(s, boost::math::policies::get_epsilon<T, Policy>(), max_iter);
-#endif
-   policies::check_series_iterations<T>("boost::math::bessel_y_small_z_series<%1%>(%1%,%1%)", max_iter, pol);
-   result *= prefix;
-
-   if(!need_logs)
-   {
-      prefix = boost::math::tgamma(-v, pol) * boost::math::cos_pi(v) * p / constants::pi<T>();
-   }
-   else
-   {
-      int sgn;
-      prefix = boost::math::lgamma(-v, &sgn, pol) + p;
-      prefix = exp(prefix) * sgn / constants::pi<T>();
-   }
-   bessel_y_small_z_series_term_b<T, Policy> s2(v, x);
-   max_iter = policies::get_max_series_iterations<Policy>();
-#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582))
-   T b = boost::math::tools::sum_series(s2, boost::math::policies::get_epsilon<T, Policy>(), max_iter, zero);
-#else
-   T b = boost::math::tools::sum_series(s2, boost::math::policies::get_epsilon<T, Policy>(), max_iter);
-#endif
-   result -= scale * prefix * b;
-   return result;
-}
-
-template <class T, class Policy>
-T bessel_yn_small_z(int n, T z, T* scale, const Policy& pol)
-{
-   //
-   // See http://functions.wolfram.com/Bessel-TypeFunctions/BesselY/06/01/04/01/02/
-   //
-   // Note that when called we assume that x < epsilon and n is a positive integer.
-   //
-   BOOST_MATH_STD_USING
-   BOOST_ASSERT(n >= 0);
-   BOOST_ASSERT((z < policies::get_epsilon<T, Policy>()));
-
-   if(n == 0)
-   {
-      return (2 / constants::pi<T>()) * (log(z / 2) +  constants::euler<T>());
-   }
-   else if(n == 1)
-   {
-      return (z / constants::pi<T>()) * log(z / 2) 
-         - 2 / (constants::pi<T>() * z) 
-         - (z / (2 * constants::pi<T>())) * (1 - 2 * constants::euler<T>());
-   }
-   else if(n == 2)
-   {
-      return (z * z) / (4 * constants::pi<T>()) * log(z / 2) 
-         - (4 / (constants::pi<T>() * z * z)) 
-         - ((z * z) / (8 * constants::pi<T>())) * (T(3)/2 - 2 * constants::euler<T>());
-   }
-   else
-   {
-      T p = pow(z / 2, n);
-      T result = -((boost::math::factorial<T>(n - 1) / constants::pi<T>()));
-      if(p * tools::max_value<T>() < result)
-      {
-         T div = tools::max_value<T>() / 8;
-         result /= div;
-         *scale /= div;
-         if(p * tools::max_value<T>() < result)
-         {
-            return -policies::raise_overflow_error<T>("bessel_yn_small_z<%1%>(%1%,%1%)", 0, pol);
-         }
-      }
-      return result / p;
-   }
-}
-
-}}} // namespaces
-
-#endif // BOOST_MATH_BESSEL_JN_SERIES_HPP
-
diff --git a/boost/math/special_functions/detail/bessel_jy_zero.hpp b/boost/math/special_functions/detail/bessel_jy_zero.hpp
deleted file mode 100644
index 2b1df03..0000000
--- a/boost/math/special_functions/detail/bessel_jy_zero.hpp
+++ /dev/null
@@ -1,617 +0,0 @@
-//  Copyright (c) 2013 Christopher Kormanyos
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-// This work is based on an earlier work:
-// "Algorithm 910: A Portable C++ Multiple-Precision System for Special-Function Calculations",
-// in ACM TOMS, {VOL 37, ISSUE 4, (February 2011)} (C) ACM, 2011. http://doi.acm.org/10.1145/1916461.1916469
-//
-// This header contains implementation details for estimating the zeros
-// of cylindrical Bessel and Neumann functions on the positive real axis.
-// Support is included for both positive as well as negative order.
-// Various methods are used to estimate the roots. These include
-// empirical curve fitting and McMahon's asymptotic approximation
-// for small order, uniform asymptotic expansion for large order,
-// and iteration and root interlacing for negative order.
-//
-#ifndef _BESSEL_JY_ZERO_2013_01_18_HPP_
-  #define _BESSEL_JY_ZERO_2013_01_18_HPP_
-
-  #include <algorithm>
-  #include <boost/math/constants/constants.hpp>
-  #include <boost/math/special_functions/math_fwd.hpp>
-  #include <boost/math/special_functions/cbrt.hpp>
-  #include <boost/math/special_functions/detail/airy_ai_bi_zero.hpp>
-
-  namespace boost { namespace math {
-  namespace detail
-  {
-    namespace bessel_zero
-    {
-      template<class T>
-      T equation_nist_10_21_19(const T& v, const T& a)
-      {
-        // Get the initial estimate of the m'th root of Jv or Yv.
-        // This subroutine is used for the order m with m > 1.
-        // The order m has been used to create the input parameter a.
-
-        // This is Eq. 10.21.19 in the NIST Handbook.
-        const T mu                  = (v * v) * 4U;
-        const T mu_minus_one        = mu - T(1);
-        const T eight_a_inv         = T(1) / (a * 8U);
-        const T eight_a_inv_squared = eight_a_inv * eight_a_inv;
-
-        const T term3 = ((mu_minus_one *  4U) *     ((mu *    7U) -     T(31U) )) / 3U;
-        const T term5 = ((mu_minus_one * 32U) *   ((((mu *   83U) -    T(982U) ) * mu) +    T(3779U) )) / 15U;
-        const T term7 = ((mu_minus_one * 64U) * ((((((mu * 6949U) - T(153855UL)) * mu) + T(1585743UL)) * mu) - T(6277237UL))) / 105U;
-
-        return a + ((((                      - term7
-                       * eight_a_inv_squared - term5)
-                       * eight_a_inv_squared - term3)
-                       * eight_a_inv_squared - mu_minus_one)
-                       * eight_a_inv);
-      }
-
-      template<typename T>
-      class equation_as_9_3_39_and_its_derivative
-      {
-      public:
-        equation_as_9_3_39_and_its_derivative(const T& zt) : zeta(zt) { }
-
-        boost::math::tuple<T, T> operator()(const T& z) const
-        {
-          BOOST_MATH_STD_USING // ADL of std names, needed for acos, sqrt.
-
-          // Return the function of zeta that is implicitly defined
-          // in A&S Eq. 9.3.39 as a function of z. The function is
-          // returned along with its derivative with respect to z.
-
-          const T zsq_minus_one_sqrt = sqrt((z * z) - T(1));
-
-          const T the_function(
-              zsq_minus_one_sqrt
-            - (  acos(T(1) / z) + ((T(2) / 3U) * (zeta * sqrt(zeta)))));
-
-          const T its_derivative(zsq_minus_one_sqrt / z);
-
-          return boost::math::tuple<T, T>(the_function, its_derivative);
-        }
-
-      private:
-        const equation_as_9_3_39_and_its_derivative& operator=(const equation_as_9_3_39_and_its_derivative&);
-        const T zeta;
-      };
-
-      template<class T>
-      static T equation_as_9_5_26(const T& v, const T& ai_bi_root)
-      {
-        BOOST_MATH_STD_USING // ADL of std names, needed for log, sqrt.
-
-        // Obtain the estimate of the m'th zero of Jv or Yv.
-        // The order m has been used to create the input parameter ai_bi_root.
-        // Here, v is larger than about 2.2. The estimate is computed
-        // from Abramowitz and Stegun Eqs. 9.5.22 and 9.5.26, page 371.
-        //
-        // The inversion of z as a function of zeta is mentioned in the text
-        // following A&S Eq. 9.5.26. Here, we accomplish the inversion by
-        // performing a Taylor expansion of Eq. 9.3.39 for large z to order 2
-        // and solving the resulting quadratic equation, thereby taking
-        // the positive root of the quadratic.
-        // In other words: (2/3)(-zeta)^(3/2) approx = z + 1/(2z) - pi/2.
-        // This leads to: z^2 - [(2/3)(-zeta)^(3/2) + pi/2]z + 1/2 = 0.
-        //
-        // With this initial estimate, Newton-Raphson iteration is used
-        // to refine the value of the estimate of the root of z
-        // as a function of zeta.
-
-        const T v_pow_third(boost::math::cbrt(v));
-        const T v_pow_minus_two_thirds(T(1) / (v_pow_third * v_pow_third));
-
-        // Obtain zeta using the order v combined with the m'th root of
-        // an airy function, as shown in  A&S Eq. 9.5.22.
-        const T zeta = v_pow_minus_two_thirds * (-ai_bi_root);
-
-        const T zeta_sqrt = sqrt(zeta);
-
-        // Set up a quadratic equation based on the Taylor series
-        // expansion mentioned above.
-        const T b = -((((zeta * zeta_sqrt) * 2U) / 3U) + boost::math::constants::half_pi<T>());
-
-        // Solve the quadratic equation, taking the positive root.
-        const T z_estimate = (-b + sqrt((b * b) - T(2))) / 2U;
-
-        // Establish the range, the digits, and the iteration limit
-        // for the upcoming root-finding.
-        const T range_zmin = (std::max<T>)(z_estimate - T(1), T(1));
-        const T range_zmax = z_estimate + T(1);
-
-        const int digits2_of_t = int(float(std::numeric_limits<T>::digits)
-                                     * (  log(float(std::numeric_limits<T>::radix))
-                                        / log(float(2))));
-
-        const int digits2_for_root = (std::min)(digits2_of_t, std::numeric_limits<double>::digits);
-
-        boost::uintmax_t iteration_count = boost::uintmax_t(std::numeric_limits<T>::digits10 * 2);
-
-        // Calculate the root of z as a function of zeta.
-        const T z = boost::math::tools::newton_raphson_iterate(
-          boost::math::detail::bessel_zero::equation_as_9_3_39_and_its_derivative<T>(zeta),
-          z_estimate,
-          range_zmin,
-          range_zmax,
-          digits2_for_root,
-          iteration_count);
-
-        static_cast<void>(iteration_count);
-
-        // Continue with the implementation of A&S Eq. 9.3.39.
-        const T zsq_minus_one      = (z * z) - T(1);
-        const T zsq_minus_one_sqrt = sqrt(zsq_minus_one);
-
-        // This is A&S Eq. 9.3.42.
-        const T b0_term_5_24 = T(5) / ((zsq_minus_one * zsq_minus_one_sqrt) * 24U);
-        const T b0_term_1_8  = T(1) / ( zsq_minus_one_sqrt * 8U);
-        const T b0_term_5_48 = T(5) / ((zeta * zeta) * 48U);
-
-        const T b0 = -b0_term_5_48 + ((b0_term_5_24 + b0_term_1_8) / zeta_sqrt);
-
-        // This is the second line of A&S Eq. 9.5.26 for f_k with k = 1.
-        const T f1 = ((z * zeta_sqrt) * b0) / zsq_minus_one_sqrt;
-
-        // This is A&S Eq. 9.5.22 expanded to k = 1 (i.e., one term in the series).
-        return (v * z) + (f1 / v);
-      }
-
-      namespace cyl_bessel_j_zero_detail
-      {
-        template<class T>
-        T equation_nist_10_21_40_a(const T& v)
-        {
-          const T v_pow_third(boost::math::cbrt(v));
-          const T v_pow_minus_two_thirds(T(1) / (v_pow_third * v_pow_third));
-
-          return v * (((((                         + T(0.043)
-                          * v_pow_minus_two_thirds - T(0.0908))
-                          * v_pow_minus_two_thirds - T(0.00397))
-                          * v_pow_minus_two_thirds + T(1.033150))
-                          * v_pow_minus_two_thirds + T(1.8557571))
-                          * v_pow_minus_two_thirds + T(1));
-        }
-
-        template<class T, class Policy>
-        class function_object_jv
-        {
-        public:
-          function_object_jv(const T& v,
-                             const Policy& pol) : my_v(v),
-                                                  my_pol(pol) { }
-
-          T operator()(const T& x) const
-          {
-            return boost::math::cyl_bessel_j(my_v, x, my_pol);
-          }
-
-        private:
-          const T my_v;
-          const Policy& my_pol;
-          const function_object_jv& operator=(const function_object_jv&);
-        };
-
-        template<class T, class Policy>
-        class function_object_jv_and_jv_prime
-        {
-        public:
-          function_object_jv_and_jv_prime(const T& v,
-                                          const bool order_is_zero,
-                                          const Policy& pol) : my_v(v),
-                                                               my_order_is_zero(order_is_zero),
-                                                               my_pol(pol) { }
-
-          boost::math::tuple<T, T> operator()(const T& x) const
-          {
-            // Obtain Jv(x) and Jv'(x).
-            // Chris's original code called the Bessel function implementation layer direct, 
-            // but that circumvented optimizations for integer-orders.  Call the documented
-            // top level functions instead, and let them sort out which implementation to use.
-            T j_v;
-            T j_v_prime;
-
-            if(my_order_is_zero)
-            {
-              j_v       =  boost::math::cyl_bessel_j(0, x, my_pol);
-              j_v_prime = -boost::math::cyl_bessel_j(1, x, my_pol);
-            }
-            else
-            {
-                      j_v       = boost::math::cyl_bessel_j(  my_v,      x, my_pol);
-              const T j_v_m1     (boost::math::cyl_bessel_j(T(my_v - 1), x, my_pol));
-                      j_v_prime = j_v_m1 - ((my_v * j_v) / x);
-            }
-
-            // Return a tuple containing both Jv(x) and Jv'(x).
-            return boost::math::make_tuple(j_v, j_v_prime);
-          }
-
-        private:
-          const T my_v;
-          const bool my_order_is_zero;
-          const Policy& my_pol;
-          const function_object_jv_and_jv_prime& operator=(const function_object_jv_and_jv_prime&);
-        };
-
-        template<class T> bool my_bisection_unreachable_tolerance(const T&, const T&) { return false; }
-
-        template<class T, class Policy>
-        T initial_guess(const T& v, const int m, const Policy& pol)
-        {
-          BOOST_MATH_STD_USING // ADL of std names, needed for floor.
-
-          // Compute an estimate of the m'th root of cyl_bessel_j.
-
-          T guess;
-
-          // There is special handling for negative order.
-          if(v < 0)
-          {
-            if((m == 1) && (v > -0.5F))
-            {
-              // For small, negative v, use the results of empirical curve fitting.
-              // Mathematica(R) session for the coefficients:
-              //  Table[{n, BesselJZero[n, 1]}, {n, -(1/2), 0, 1/10}]
-              //  N[%, 20]
-              //  Fit[%, {n^0, n^1, n^2, n^3, n^4, n^5, n^6}, n]
-              guess = (((((    - T(0.2321156900729)
-                           * v - T(0.1493247777488))
-                           * v - T(0.15205419167239))
-                           * v + T(0.07814930561249))
-                           * v - T(0.17757573537688))
-                           * v + T(1.542805677045663))
-                           * v + T(2.40482555769577277);
-
-              return guess;
-            }
-
-            // Create the positive order and extract its positive floor integer part.
-            const T vv(-v);
-            const T vv_floor(floor(vv));
-
-            // The to-be-found root is bracketed by the roots of the
-            // Bessel function whose reflected, positive integer order
-            // is less than, but nearest to vv.
-
-            T root_hi = boost::math::detail::bessel_zero::cyl_bessel_j_zero_detail::initial_guess(vv_floor, m, pol);
-            T root_lo;
-
-            if(m == 1)
-            {
-              // The estimate of the first root for negative order is found using
-              // an adaptive range-searching algorithm.
-              root_lo = T(root_hi - 0.1F);
-
-              const bool hi_end_of_bracket_is_negative = (boost::math::cyl_bessel_j(v, root_hi, pol) < 0);
-
-              while((root_lo > boost::math::tools::epsilon<T>()))
-              {
-                const bool lo_end_of_bracket_is_negative = (boost::math::cyl_bessel_j(v, root_lo, pol) < 0);
-
-                if(hi_end_of_bracket_is_negative != lo_end_of_bracket_is_negative)
-                {
-                  break;
-                }
-
-                root_hi = root_lo;
-
-                // Decrease the lower end of the bracket using an adaptive algorithm.
-                if(root_lo > 0.5F)
-                {
-                  root_lo -= 0.5F;
-                }
-                else
-                {
-                  root_lo *= 0.75F;
-                }
-              }
-            }
-            else
-            {
-              root_lo = boost::math::detail::bessel_zero::cyl_bessel_j_zero_detail::initial_guess(vv_floor, m - 1, pol);
-            }
-
-            // Perform several steps of bisection iteration to refine the guess.
-            boost::uintmax_t number_of_iterations(12U);
-
-            // Do the bisection iteration.
-            const boost::math::tuple<T, T> guess_pair =
-               boost::math::tools::bisect(
-                  boost::math::detail::bessel_zero::cyl_bessel_j_zero_detail::function_object_jv<T, Policy>(v, pol),
-                  root_lo,
-                  root_hi,
-                  boost::math::detail::bessel_zero::cyl_bessel_j_zero_detail::my_bisection_unreachable_tolerance<T>,
-                  number_of_iterations);
-
-            return (boost::math::get<0>(guess_pair) + boost::math::get<1>(guess_pair)) / 2U;
-          }
-
-          if(m == 1U)
-          {
-            // Get the initial estimate of the first root.
-
-            if(v < 2.2F)
-            {
-              // For small v, use the results of empirical curve fitting.
-              // Mathematica(R) session for the coefficients:
-              //  Table[{n, BesselJZero[n, 1]}, {n, 0, 22/10, 1/10}]
-              //  N[%, 20]
-              //  Fit[%, {n^0, n^1, n^2, n^3, n^4, n^5, n^6}, n]
-              guess = (((((    - T(0.0008342379046010)
-                           * v + T(0.007590035637410))
-                           * v - T(0.030640914772013))
-                           * v + T(0.078232088020106))
-                           * v - T(0.169668712590620))
-                           * v + T(1.542187960073750))
-                           * v + T(2.4048359915254634);
-            }
-            else
-            {
-              // For larger v, use the first line of Eqs. 10.21.40 in the NIST Handbook.
-              guess = boost::math::detail::bessel_zero::cyl_bessel_j_zero_detail::equation_nist_10_21_40_a(v);
-            }
-          }
-          else
-          {
-            if(v < 2.2F)
-            {
-              // Use Eq. 10.21.19 in the NIST Handbook.
-              const T a(((v + T(m * 2U)) - T(0.5)) * boost::math::constants::half_pi<T>());
-
-              guess = boost::math::detail::bessel_zero::equation_nist_10_21_19(v, a);
-            }
-            else
-            {
-              // Get an estimate of the m'th root of airy_ai.
-              const T airy_ai_root(boost::math::detail::airy_zero::airy_ai_zero_detail::initial_guess<T>(m));
-
-              // Use Eq. 9.5.26 in the A&S Handbook.
-              guess = boost::math::detail::bessel_zero::equation_as_9_5_26(v, airy_ai_root);
-            }
-          }
-
-          return guess;
-        }
-      } // namespace cyl_bessel_j_zero_detail
-
-      namespace cyl_neumann_zero_detail
-      {
-        template<class T>
-        T equation_nist_10_21_40_b(const T& v)
-        {
-          const T v_pow_third(boost::math::cbrt(v));
-          const T v_pow_minus_two_thirds(T(1) / (v_pow_third * v_pow_third));
-
-          return v * (((((                         - T(0.001)
-                          * v_pow_minus_two_thirds - T(0.0060))
-                          * v_pow_minus_two_thirds + T(0.01198))
-                          * v_pow_minus_two_thirds + T(0.260351))
-                          * v_pow_minus_two_thirds + T(0.9315768))
-                          * v_pow_minus_two_thirds + T(1));
-        }
-
-        template<class T, class Policy>
-        class function_object_yv
-        {
-        public:
-          function_object_yv(const T& v,
-                             const Policy& pol) : my_v(v),
-                                                  my_pol(pol) { }
-
-          T operator()(const T& x) const
-          {
-            return boost::math::cyl_neumann(my_v, x, my_pol);
-          }
-
-        private:
-          const T my_v;
-          const Policy& my_pol;
-          const function_object_yv& operator=(const function_object_yv&);
-        };
-
-        template<class T, class Policy>
-        class function_object_yv_and_yv_prime
-        {
-        public:
-          function_object_yv_and_yv_prime(const T& v,
-                                          const Policy& pol) : my_v(v),
-                                                               my_pol(pol) { }
-
-          boost::math::tuple<T, T> operator()(const T& x) const
-          {
-            const T half_epsilon(boost::math::tools::epsilon<T>() / 2U);
-
-            const bool order_is_zero = ((my_v > -half_epsilon) && (my_v < +half_epsilon));
-
-            // Obtain Yv(x) and Yv'(x).
-            // Chris's original code called the Bessel function implementation layer direct, 
-            // but that circumvented optimizations for integer-orders.  Call the documented
-            // top level functions instead, and let them sort out which implementation to use.
-            T y_v;
-            T y_v_prime;
-
-            if(order_is_zero)
-            {
-              y_v       =  boost::math::cyl_neumann(0, x, my_pol);
-              y_v_prime = -boost::math::cyl_neumann(1, x, my_pol);
-            }
-            else
-            {
-                      y_v       = boost::math::cyl_neumann(  my_v,      x, my_pol);
-              const T y_v_m1     (boost::math::cyl_neumann(T(my_v - 1), x, my_pol));
-                      y_v_prime = y_v_m1 - ((my_v * y_v) / x);
-            }
-
-            // Return a tuple containing both Yv(x) and Yv'(x).
-            return boost::math::make_tuple(y_v, y_v_prime);
-          }
-
-        private:
-          const T my_v;
-          const Policy& my_pol;
-          const function_object_yv_and_yv_prime& operator=(const function_object_yv_and_yv_prime&);
-        };
-
-        template<class T> bool my_bisection_unreachable_tolerance(const T&, const T&) { return false; }
-
-        template<class T, class Policy>
-        T initial_guess(const T& v, const int m, const Policy& pol)
-        {
-          BOOST_MATH_STD_USING // ADL of std names, needed for floor.
-
-          // Compute an estimate of the m'th root of cyl_neumann.
-
-          T guess;
-
-          // There is special handling for negative order.
-          if(v < 0)
-          {
-            // Create the positive order and extract its positive floor and ceiling integer parts.
-            const T vv(-v);
-            const T vv_floor(floor(vv));
-
-            // The to-be-found root is bracketed by the roots of the
-            // Bessel function whose reflected, positive integer order
-            // is less than, but nearest to vv.
-
-            // The special case of negative, half-integer order uses
-            // the relation between Yv and spherical Bessel functions
-            // in order to obtain the bracket for the root.
-            // In these special cases, cyl_neumann(-n/2, x) = sph_bessel_j(+n/2, x)
-            // for v = -n/2.
-
-            T root_hi;
-            T root_lo;
-
-            if(m == 1)
-            {
-              // The estimate of the first root for negative order is found using
-              // an adaptive range-searching algorithm.
-              // Take special precautions for the discontinuity at negative,
-              // half-integer orders and use different brackets above and below these.
-              if(T(vv - vv_floor) < 0.5F)
-              {
-                root_hi = boost::math::detail::bessel_zero::cyl_neumann_zero_detail::initial_guess(vv_floor, m, pol);
-              }
-              else
-              {
-                root_hi = boost::math::detail::bessel_zero::cyl_bessel_j_zero_detail::initial_guess(T(vv_floor + 0.5F), m, pol);
-              }
-
-              root_lo = T(root_hi - 0.1F);
-
-              const bool hi_end_of_bracket_is_negative = (boost::math::cyl_neumann(v, root_hi, pol) < 0);
-
-              while((root_lo > boost::math::tools::epsilon<T>()))
-              {
-                const bool lo_end_of_bracket_is_negative = (boost::math::cyl_neumann(v, root_lo, pol) < 0);
-
-                if(hi_end_of_bracket_is_negative != lo_end_of_bracket_is_negative)
-                {
-                  break;
-                }
-
-                root_hi = root_lo;
-
-                // Decrease the lower end of the bracket using an adaptive algorithm.
-                if(root_lo > 0.5F)
-                {
-                  root_lo -= 0.5F;
-                }
-                else
-                {
-                  root_lo *= 0.75F;
-                }
-              }
-            }
-            else
-            {
-              if(T(vv - vv_floor) < 0.5F)
-              {
-                root_lo  = boost::math::detail::bessel_zero::cyl_neumann_zero_detail::initial_guess(vv_floor, m - 1, pol);
-                root_hi = boost::math::detail::bessel_zero::cyl_neumann_zero_detail::initial_guess(vv_floor, m, pol);
-                root_lo += 0.01F;
-                root_hi += 0.01F;
-              }
-              else
-              {
-                root_lo = boost::math::detail::bessel_zero::cyl_bessel_j_zero_detail::initial_guess(T(vv_floor + 0.5F), m - 1, pol);
-                root_hi = boost::math::detail::bessel_zero::cyl_bessel_j_zero_detail::initial_guess(T(vv_floor + 0.5F), m, pol);
-                root_lo += 0.01F;
-                root_hi += 0.01F;
-              }
-            }
-
-            // Perform several steps of bisection iteration to refine the guess.
-            boost::uintmax_t number_of_iterations(12U);
-
-            // Do the bisection iteration.
-            const boost::math::tuple<T, T> guess_pair =
-               boost::math::tools::bisect(
-                  boost::math::detail::bessel_zero::cyl_neumann_zero_detail::function_object_yv<T, Policy>(v, pol),
-                  root_lo,
-                  root_hi,
-                  boost::math::detail::bessel_zero::cyl_neumann_zero_detail::my_bisection_unreachable_tolerance<T>,
-                  number_of_iterations);
-
-            return (boost::math::get<0>(guess_pair) + boost::math::get<1>(guess_pair)) / 2U;
-          }
-
-          if(m == 1U)
-          {
-            // Get the initial estimate of the first root.
-
-            if(v < 2.2F)
-            {
-              // For small v, use the results of empirical curve fitting.
-              // Mathematica(R) session for the coefficients:
-              //  Table[{n, BesselYZero[n, 1]}, {n, 0, 22/10, 1/10}]
-              //  N[%, 20]
-              //  Fit[%, {n^0, n^1, n^2, n^3, n^4, n^5, n^6}, n]
-              guess = (((((    - T(0.0025095909235652)
-                           * v + T(0.021291887049053))
-                           * v - T(0.076487785486526))
-                           * v + T(0.159110268115362))
-                           * v - T(0.241681668765196))
-                           * v + T(1.4437846310885244))
-                           * v + T(0.89362115190200490);
-            }
-            else
-            {
-              // For larger v, use the second line of Eqs. 10.21.40 in the NIST Handbook.
-              guess = boost::math::detail::bessel_zero::cyl_neumann_zero_detail::equation_nist_10_21_40_b(v);
-            }
-          }
-          else
-          {
-            if(v < 2.2F)
-            {
-              // Use Eq. 10.21.19 in the NIST Handbook.
-              const T a(((v + T(m * 2U)) - T(1.5)) * boost::math::constants::half_pi<T>());
-
-              guess = boost::math::detail::bessel_zero::equation_nist_10_21_19(v, a);
-            }
-            else
-            {
-              // Get an estimate of the m'th root of airy_bi.
-              const T airy_bi_root(boost::math::detail::airy_zero::airy_bi_zero_detail::initial_guess<T>(m));
-
-              // Use Eq. 9.5.26 in the A&S Handbook.
-              guess = boost::math::detail::bessel_zero::equation_as_9_5_26(v, airy_bi_root);
-            }
-          }
-
-          return guess;
-        }
-      } // namespace cyl_neumann_zero_detail
-    } // namespace bessel_zero
-  } } } // namespace boost::math::detail
-
-#endif // _BESSEL_JY_ZERO_2013_01_18_HPP_
diff --git a/boost/math/special_functions/detail/bessel_k0.hpp b/boost/math/special_functions/detail/bessel_k0.hpp
deleted file mode 100644
index e209168..0000000
--- a/boost/math/special_functions/detail/bessel_k0.hpp
+++ /dev/null
@@ -1,152 +0,0 @@
-//  Copyright (c) 2006 Xiaogang Zhang
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_BESSEL_K0_HPP
-#define BOOST_MATH_BESSEL_K0_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/math/tools/rational.hpp>
-#include <boost/math/tools/big_constant.hpp>
-#include <boost/math/policies/error_handling.hpp>
-#include <boost/assert.hpp>
-
-// Modified Bessel function of the second kind of order zero
-// minimax rational approximations on intervals, see
-// Russon and Blair, Chalk River Report AECL-3461, 1969
-
-namespace boost { namespace math { namespace detail{
-
-template <typename T, typename Policy>
-T bessel_k0(T x, const Policy&);
-
-template <class T, class Policy>
-struct bessel_k0_initializer
-{
-   struct init
-   {
-      init()
-      {
-         do_init();
-      }
-      static void do_init()
-      {
-         bessel_k0(T(1), Policy());
-      }
-      void force_instantiate()const{}
-   };
-   static const init initializer;
-   static void force_instantiate()
-   {
-      initializer.force_instantiate();
-   }
-};
-
-template <class T, class Policy>
-const typename bessel_k0_initializer<T, Policy>::init bessel_k0_initializer<T, Policy>::initializer;
-
-template <typename T, typename Policy>
-T bessel_k0(T x, const Policy& pol)
-{
-    BOOST_MATH_INSTRUMENT_CODE(x);
-
-    bessel_k0_initializer<T, Policy>::force_instantiate();
-
-    static const T P1[] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 2.4708152720399552679e+03)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 5.9169059852270512312e+03)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 4.6850901201934832188e+02)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.1999463724910714109e+01)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.3166052564989571850e-01)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 5.8599221412826100000e-04))
-    };
-    static const T Q1[] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 2.1312714303849120380e+04)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -2.4994418972832303646e+02)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.0))
-    };
-    static const T P2[] = {
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.6128136304458193998e+06)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -3.7333769444840079748e+05)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.7984434409411765813e+04)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -2.9501657892958843865e+02)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.6414452837299064100e+00))
-    };
-    static const T Q2[] = {
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.6128136304458193998e+06)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 2.9865713163054025489e+04)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -2.5064972445877992730e+02)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.0))
-    };
-    static const T P3[] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.1600249425076035558e+02)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 2.3444738764199315021e+03)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.8321525870183537725e+04)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 7.1557062783764037541e+04)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.5097646353289914539e+05)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.7398867902565686251e+05)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.0577068948034021957e+05)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 3.1075408980684392399e+04)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 3.6832589957340267940e+03)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.1394980557384778174e+02))
-    };
-    static const T Q3[] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 9.2556599177304839811e+01)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.8821890840982713696e+03)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.4847228371802360957e+04)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 5.8824616785857027752e+04)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.2689839587977598727e+05)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.5144644673520157801e+05)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 9.7418829762268075784e+04)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 3.1474655750295278825e+04)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 4.4329628889746408858e+03)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 2.0013443064949242491e+02)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.0))
-    };
-    T value, factor, r, r1, r2;
-
-    BOOST_MATH_STD_USING
-    using namespace boost::math::tools;
-
-    static const char* function = "boost::math::bessel_k0<%1%>(%1%,%1%)";
-
-    if (x < 0)
-    {
-       return policies::raise_domain_error<T>(function,
-            "Got x = %1%, but argument x must be non-negative, complex number result not supported", x, pol);
-    }
-    if (x == 0)
-    {
-       return policies::raise_overflow_error<T>(function, 0, pol);
-    }
-    if (x <= 1)                         // x in (0, 1]
-    {
-        T y = x * x;
-        r1 = evaluate_polynomial(P1, y) / evaluate_polynomial(Q1, y);
-        r2 = evaluate_polynomial(P2, y) / evaluate_polynomial(Q2, y);
-        factor = log(x);
-        value = r1 - factor * r2;
-    }
-    else                                // x in (1, \infty)
-    {
-        T y = 1 / x;
-        r = evaluate_polynomial(P3, y) / evaluate_polynomial(Q3, y);
-        factor = exp(-x) / sqrt(x);
-        value = factor * r;
-        BOOST_MATH_INSTRUMENT_CODE("y = " << y);
-        BOOST_MATH_INSTRUMENT_CODE("r = " << r);
-        BOOST_MATH_INSTRUMENT_CODE("factor = " << factor);
-        BOOST_MATH_INSTRUMENT_CODE("value = " << value);
-    }
-
-    return value;
-}
-
-}}} // namespaces
-
-#endif // BOOST_MATH_BESSEL_K0_HPP
-
diff --git a/boost/math/special_functions/detail/bessel_k1.hpp b/boost/math/special_functions/detail/bessel_k1.hpp
deleted file mode 100644
index 0d17cd3..0000000
--- a/boost/math/special_functions/detail/bessel_k1.hpp
+++ /dev/null
@@ -1,148 +0,0 @@
-//  Copyright (c) 2006 Xiaogang Zhang
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_BESSEL_K1_HPP
-#define BOOST_MATH_BESSEL_K1_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/math/tools/rational.hpp>
-#include <boost/math/tools/big_constant.hpp>
-#include <boost/math/policies/error_handling.hpp>
-#include <boost/assert.hpp>
-
-// Modified Bessel function of the second kind of order one
-// minimax rational approximations on intervals, see
-// Russon and Blair, Chalk River Report AECL-3461, 1969
-
-namespace boost { namespace math { namespace detail{
-
-template <typename T, typename Policy>
-T bessel_k1(T x, const Policy&);
-
-template <class T, class Policy>
-struct bessel_k1_initializer
-{
-   struct init
-   {
-      init()
-      {
-         do_init();
-      }
-      static void do_init()
-      {
-         bessel_k1(T(1), Policy());
-      }
-      void force_instantiate()const{}
-   };
-   static const init initializer;
-   static void force_instantiate()
-   {
-      initializer.force_instantiate();
-   }
-};
-
-template <class T, class Policy>
-const typename bessel_k1_initializer<T, Policy>::init bessel_k1_initializer<T, Policy>::initializer;
-
-template <typename T, typename Policy>
-T bessel_k1(T x, const Policy& pol)
-{
-    bessel_k1_initializer<T, Policy>::force_instantiate();
-
-    static const T P1[] = {
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -2.2149374878243304548e+06)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 7.1938920065420586101e+05)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.7733324035147015630e+05)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 7.1885382604084798576e+03)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 9.9991373567429309922e+01)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 4.8127070456878442310e-01))
-    };
-    static const T Q1[] = {
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -2.2149374878243304548e+06)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 3.7264298672067697862e+04)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -2.8143915754538725829e+02)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.0))
-    };
-    static const T P2[] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.0)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.3531161492785421328e+06)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.4758069205414222471e+05)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -4.5051623763436087023e+03)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -5.3103913335180275253e+01)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -2.2795590826955002390e-01))
-    };
-    static const T Q2[] = {
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -2.7062322985570842656e+06)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 4.3117653211351080007e+04)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -3.0507151578787595807e+02)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.0))
-    };
-    static const T P3[] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 2.2196792496874548962e+00)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 4.4137176114230414036e+01)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 3.4122953486801312910e+02)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.3319486433183221990e+03)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 2.8590657697910288226e+03)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 3.4540675585544584407e+03)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 2.3123742209168871550e+03)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 8.1094256146537402173e+02)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.3182609918569941308e+02)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 7.5584584631176030810e+00)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 6.4257745859173138767e-02))
-    };
-    static const T Q3[] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.7710478032601086579e+00)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 3.4552228452758912848e+01)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 2.5951223655579051357e+02)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 9.6929165726802648634e+02)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.9448440788918006154e+03)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 2.1181000487171943810e+03)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.2082692316002348638e+03)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 3.3031020088765390854e+02)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 3.6001069306861518855e+01)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.0))
-    };
-    T value, factor, r, r1, r2;
-
-    BOOST_MATH_STD_USING
-    using namespace boost::math::tools;
-
-    static const char* function = "boost::math::bessel_k1<%1%>(%1%,%1%)";
-
-    if (x < 0)
-    {
-       return policies::raise_domain_error<T>(function,
-            "Got x = %1%, but argument x must be non-negative, complex number result not supported.", x, pol);
-    }
-    if (x == 0)
-    {
-       return policies::raise_overflow_error<T>(function, 0, pol);
-    }
-    if (x <= 1)                         // x in (0, 1]
-    {
-        T y = x * x;
-        r1 = evaluate_polynomial(P1, y) /  evaluate_polynomial(Q1, y);
-        r2 = evaluate_polynomial(P2, y) /  evaluate_polynomial(Q2, y);
-        factor = log(x);
-        value = (r1 + factor * r2) / x;
-    }
-    else                                // x in (1, \infty)
-    {
-        T y = 1 / x;
-        r = evaluate_polynomial(P3, y) /  evaluate_polynomial(Q3, y);
-        factor = exp(-x) / sqrt(x);
-        value = factor * r;
-    }
-
-    return value;
-}
-
-}}} // namespaces
-
-#endif // BOOST_MATH_BESSEL_K1_HPP
-
diff --git a/boost/math/special_functions/detail/bessel_kn.hpp b/boost/math/special_functions/detail/bessel_kn.hpp
deleted file mode 100644
index 5f01460..0000000
--- a/boost/math/special_functions/detail/bessel_kn.hpp
+++ /dev/null
@@ -1,85 +0,0 @@
-//  Copyright (c) 2006 Xiaogang Zhang
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_BESSEL_KN_HPP
-#define BOOST_MATH_BESSEL_KN_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/math/special_functions/detail/bessel_k0.hpp>
-#include <boost/math/special_functions/detail/bessel_k1.hpp>
-#include <boost/math/policies/error_handling.hpp>
-
-// Modified Bessel function of the second kind of integer order
-// K_n(z) is the dominant solution, forward recurrence always OK (though unstable)
-
-namespace boost { namespace math { namespace detail{
-
-template <typename T, typename Policy>
-T bessel_kn(int n, T x, const Policy& pol)
-{
-    T value, current, prev;
-
-    using namespace boost::math::tools;
-
-    static const char* function = "boost::math::bessel_kn<%1%>(%1%,%1%)";
-
-    if (x < 0)
-    {
-       return policies::raise_domain_error<T>(function,
-            "Got x = %1%, but argument x must be non-negative, complex number result not supported.", x, pol);
-    }
-    if (x == 0)
-    {
-       return policies::raise_overflow_error<T>(function, 0, pol);
-    }
-
-    if (n < 0)
-    {
-        n = -n;                             // K_{-n}(z) = K_n(z)
-    }
-    if (n == 0)
-    {
-        value = bessel_k0(x, pol);
-    }
-    else if (n == 1)
-    {
-        value = bessel_k1(x, pol);
-    }
-    else
-    {
-       prev = bessel_k0(x, pol);
-       current = bessel_k1(x, pol);
-       int k = 1;
-       BOOST_ASSERT(k < n);
-       T scale = 1;
-       do
-       {
-           T fact = 2 * k / x;
-           if((tools::max_value<T>() - fabs(prev)) / fact < fabs(current))
-           {
-              scale /= current;
-              prev /= current;
-              current = 1;
-           }
-           value = fact * current + prev;
-           prev = current;
-           current = value;
-           ++k;
-       }
-       while(k < n);
-       if(tools::max_value<T>() * scale < fabs(value))
-          return sign(scale) * sign(value) * policies::raise_overflow_error<T>(function, 0, pol);
-       value /= scale;
-    }
-    return value;
-}
-
-}}} // namespaces
-
-#endif // BOOST_MATH_BESSEL_KN_HPP
-
diff --git a/boost/math/special_functions/detail/bessel_y0.hpp b/boost/math/special_functions/detail/bessel_y0.hpp
deleted file mode 100644
index 533ab7c..0000000
--- a/boost/math/special_functions/detail/bessel_y0.hpp
+++ /dev/null
@@ -1,224 +0,0 @@
-//  Copyright (c) 2006 Xiaogang Zhang
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_BESSEL_Y0_HPP
-#define BOOST_MATH_BESSEL_Y0_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/math/special_functions/detail/bessel_j0.hpp>
-#include <boost/math/constants/constants.hpp>
-#include <boost/math/tools/rational.hpp>
-#include <boost/math/tools/big_constant.hpp>
-#include <boost/math/policies/error_handling.hpp>
-#include <boost/assert.hpp>
-
-// Bessel function of the second kind of order zero
-// x <= 8, minimax rational approximations on root-bracketing intervals
-// x > 8, Hankel asymptotic expansion in Hart, Computer Approximations, 1968
-
-namespace boost { namespace math { namespace detail{
-
-template <typename T, typename Policy>
-T bessel_y0(T x, const Policy&);
-
-template <class T, class Policy>
-struct bessel_y0_initializer
-{
-   struct init
-   {
-      init()
-      {
-         do_init();
-      }
-      static void do_init()
-      {
-         bessel_y0(T(1), Policy());
-      }
-      void force_instantiate()const{}
-   };
-   static const init initializer;
-   static void force_instantiate()
-   {
-      initializer.force_instantiate();
-   }
-};
-
-template <class T, class Policy>
-const typename bessel_y0_initializer<T, Policy>::init bessel_y0_initializer<T, Policy>::initializer;
-
-template <typename T, typename Policy>
-T bessel_y0(T x, const Policy& pol)
-{
-    bessel_y0_initializer<T, Policy>::force_instantiate();
-
-    static const T P1[] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.0723538782003176831e+11)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -8.3716255451260504098e+09)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 2.0422274357376619816e+08)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -2.1287548474401797963e+06)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.0102532948020907590e+04)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.8402381979244993524e+01)),
-    };
-    static const T Q1[] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 5.8873865738997033405e+11)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 8.1617187777290363573e+09)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 5.5662956624278251596e+07)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 2.3889393209447253406e+05)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 6.6475986689240190091e+02)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.0)),
-    };
-    static const T P2[] = {
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -2.2213976967566192242e+13)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -5.5107435206722644429e+11)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 4.3600098638603061642e+10)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -6.9590439394619619534e+08)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 4.6905288611678631510e+06)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.4566865832663635920e+04)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.7427031242901594547e+01)),
-    };
-    static const T Q2[] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 4.3386146580707264428e+14)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 5.4266824419412347550e+12)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 3.4015103849971240096e+10)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.3960202770986831075e+08)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 4.0669982352539552018e+05)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 8.3030857612070288823e+02)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.0)),
-    };
-    static const T P3[] = {
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -8.0728726905150210443e+15)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 6.7016641869173237784e+14)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.2829912364088687306e+11)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.9363051266772083678e+11)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 2.1958827170518100757e+09)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.0085539923498211426e+07)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 2.1363534169313901632e+04)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.7439661319197499338e+01)),
-    };
-    static const T Q3[] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 3.4563724628846457519e+17)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 3.9272425569640309819e+15)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 2.2598377924042897629e+13)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 8.6926121104209825246e+10)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 2.4727219475672302327e+08)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 5.3924739209768057030e+05)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 8.7903362168128450017e+02)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.0)),
-    };
-    static const T PC[] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 2.2779090197304684302e+04)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 4.1345386639580765797e+04)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 2.1170523380864944322e+04)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 3.4806486443249270347e+03)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.5376201909008354296e+02)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 8.8961548424210455236e-01)),
-    };
-    static const T QC[] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 2.2779090197304684318e+04)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 4.1370412495510416640e+04)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 2.1215350561880115730e+04)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 3.5028735138235608207e+03)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.5711159858080893649e+02)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.0)),
-    };
-    static const T PS[] = {
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -8.9226600200800094098e+01)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.8591953644342993800e+02)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.1183429920482737611e+02)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -2.2300261666214198472e+01)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.2441026745835638459e+00)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -8.8033303048680751817e-03)),
-    };
-    static const T QS[] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 5.7105024128512061905e+03)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.1951131543434613647e+04)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 7.2642780169211018836e+03)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.4887231232283756582e+03)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 9.0593769594993125859e+01)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.0)),
-    };
-    static const T x1  =  static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 8.9357696627916752158e-01)),
-                   x2  =  static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 3.9576784193148578684e+00)),
-                   x3  =  static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 7.0860510603017726976e+00)),
-                   x11 =  static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 2.280e+02)),
-                   x12 =  static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 2.9519662791675215849e-03)),
-                   x21 =  static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.0130e+03)),
-                   x22 =  static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 6.4716931485786837568e-04)),
-                   x31 =  static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.8140e+03)),
-                   x32 =  static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.1356030177269762362e-04))
-    ;
-    T value, factor, r, rc, rs;
-
-    BOOST_MATH_STD_USING
-    using namespace boost::math::tools;
-    using namespace boost::math::constants;
-
-    static const char* function = "boost::math::bessel_y0<%1%>(%1%,%1%)";
-
-    if (x < 0)
-    {
-       return policies::raise_domain_error<T>(function,
-            "Got x = %1% but x must be non-negative, complex result not supported.", x, pol);
-    }
-    if (x == 0)
-    {
-       return -policies::raise_overflow_error<T>(function, 0, pol);
-    }
-    if (x <= 3)                       // x in (0, 3]
-    {
-        T y = x * x;
-        T z = 2 * log(x/x1) * bessel_j0(x) / pi<T>();
-        r = evaluate_rational(P1, Q1, y);
-        factor = (x + x1) * ((x - x11/256) - x12);
-        value = z + factor * r;
-    }
-    else if (x <= 5.5f)                  // x in (3, 5.5]
-    {
-        T y = x * x;
-        T z = 2 * log(x/x2) * bessel_j0(x) / pi<T>();
-        r = evaluate_rational(P2, Q2, y);
-        factor = (x + x2) * ((x - x21/256) - x22);
-        value = z + factor * r;
-    }
-    else if (x <= 8)                  // x in (5.5, 8]
-    {
-        T y = x * x;
-        T z = 2 * log(x/x3) * bessel_j0(x) / pi<T>();
-        r = evaluate_rational(P3, Q3, y);
-        factor = (x + x3) * ((x - x31/256) - x32);
-        value = z + factor * r;
-    }
-    else                                // x in (8, \infty)
-    {
-        T y = 8 / x;
-        T y2 = y * y;
-        rc = evaluate_rational(PC, QC, y2);
-        rs = evaluate_rational(PS, QS, y2);
-        factor = constants::one_div_root_pi<T>() / sqrt(x);
-        //
-        // The following code is really just:
-        //
-        // T z = x - 0.25f * pi<T>();
-        // value = factor * (rc * sin(z) + y * rs * cos(z));
-        //
-        // But using the sin/cos addition formulae and constant values for
-        // sin/cos of PI/4 which then cancel part of the "factor" term as they're all
-        // 1 / sqrt(2):
-        //
-        T sx = sin(x);
-        T cx = cos(x);
-        value = factor * (rc * (sx - cx) + y * rs * (cx + sx));
-    }
-
-    return value;
-}
-
-}}} // namespaces
-
-#endif // BOOST_MATH_BESSEL_Y0_HPP
-
diff --git a/boost/math/special_functions/detail/bessel_y1.hpp b/boost/math/special_functions/detail/bessel_y1.hpp
deleted file mode 100644
index 8396f8f..0000000
--- a/boost/math/special_functions/detail/bessel_y1.hpp
+++ /dev/null
@@ -1,196 +0,0 @@
-//  Copyright (c) 2006 Xiaogang Zhang
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_BESSEL_Y1_HPP
-#define BOOST_MATH_BESSEL_Y1_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/math/special_functions/detail/bessel_j1.hpp>
-#include <boost/math/constants/constants.hpp>
-#include <boost/math/tools/rational.hpp>
-#include <boost/math/tools/big_constant.hpp>
-#include <boost/math/policies/error_handling.hpp>
-#include <boost/assert.hpp>
-
-// Bessel function of the second kind of order one
-// x <= 8, minimax rational approximations on root-bracketing intervals
-// x > 8, Hankel asymptotic expansion in Hart, Computer Approximations, 1968
-
-namespace boost { namespace math { namespace detail{
-
-template <typename T, typename Policy>
-T bessel_y1(T x, const Policy&);
-
-template <class T, class Policy>
-struct bessel_y1_initializer
-{
-   struct init
-   {
-      init()
-      {
-         do_init();
-      }
-      static void do_init()
-      {
-         bessel_y1(T(1), Policy());
-      }
-      void force_instantiate()const{}
-   };
-   static const init initializer;
-   static void force_instantiate()
-   {
-      initializer.force_instantiate();
-   }
-};
-
-template <class T, class Policy>
-const typename bessel_y1_initializer<T, Policy>::init bessel_y1_initializer<T, Policy>::initializer;
-
-template <typename T, typename Policy>
-T bessel_y1(T x, const Policy& pol)
-{
-    bessel_y1_initializer<T, Policy>::force_instantiate();
-
-    static const T P1[] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 4.0535726612579544093e+13)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 5.4708611716525426053e+12)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -3.7595974497819597599e+11)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 7.2144548214502560419e+09)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -5.9157479997408395984e+07)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 2.2157953222280260820e+05)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -3.1714424660046133456e+02)),
-    };
-    static const T Q1[] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 3.0737873921079286084e+14)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 4.1272286200406461981e+12)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 2.7800352738690585613e+10)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.2250435122182963220e+08)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 3.8136470753052572164e+05)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 8.2079908168393867438e+02)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.0)),
-    };
-    static const T P2[] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.1514276357909013326e+19)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -5.6808094574724204577e+18)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -2.3638408497043134724e+16)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 4.0686275289804744814e+15)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -5.9530713129741981618e+13)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 3.7453673962438488783e+11)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.1957961912070617006e+09)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.9153806858264202986e+06)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.2337180442012953128e+03)),
-    };
-    static const T Q2[] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 5.3321844313316185697e+20)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 5.6968198822857178911e+18)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 3.0837179548112881950e+16)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.1187010065856971027e+14)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 3.0221766852960403645e+11)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 6.3550318087088919566e+08)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.0453748201934079734e+06)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.2855164849321609336e+03)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.0)),
-    };
-    static const T PC[] = {
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -4.4357578167941278571e+06)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -9.9422465050776411957e+06)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -6.6033732483649391093e+06)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.5235293511811373833e+06)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.0982405543459346727e+05)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.6116166443246101165e+03)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.0)),
-    };
-    static const T QC[] = {
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -4.4357578167941278568e+06)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -9.9341243899345856590e+06)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -6.5853394797230870728e+06)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.5118095066341608816e+06)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.0726385991103820119e+05)),
-        static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -1.4550094401904961825e+03)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.0)),
-    };
-    static const T PS[] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 3.3220913409857223519e+04)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 8.5145160675335701966e+04)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 6.6178836581270835179e+04)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.8494262873223866797e+04)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.7063754290207680021e+03)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 3.5265133846636032186e+01)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.0)),
-    };
-    static const T QS[] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 7.0871281941028743574e+05)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.8194580422439972989e+06)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.4194606696037208929e+06)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 4.0029443582266975117e+05)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 3.7890229745772202641e+04)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 8.6383677696049909675e+02)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.0)),
-    };
-    static const T x1  =  static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 2.1971413260310170351e+00)),
-                   x2  =  static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 5.4296810407941351328e+00)),
-                   x11 =  static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 5.620e+02)),
-                   x12 =  static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.8288260310170351490e-03)),
-                   x21 =  static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.3900e+03)),
-                   x22 = static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -6.4592058648672279948e-06))
-    ;
-    T value, factor, r, rc, rs;
-
-    BOOST_MATH_STD_USING
-    using namespace boost::math::tools;
-    using namespace boost::math::constants;
-
-    if (x <= 0)
-    {
-       return policies::raise_domain_error<T>("bost::math::bessel_y1<%1%>(%1%,%1%)",
-            "Got x == %1%, but x must be > 0, complex result not supported.", x, pol);
-    }
-    if (x <= 4)                       // x in (0, 4]
-    {
-        T y = x * x;
-        T z = 2 * log(x/x1) * bessel_j1(x) / pi<T>();
-        r = evaluate_rational(P1, Q1, y);
-        factor = (x + x1) * ((x - x11/256) - x12) / x;
-        value = z + factor * r;
-    }
-    else if (x <= 8)                  // x in (4, 8]
-    {
-        T y = x * x;
-        T z = 2 * log(x/x2) * bessel_j1(x) / pi<T>();
-        r = evaluate_rational(P2, Q2, y);
-        factor = (x + x2) * ((x - x21/256) - x22) / x;
-        value = z + factor * r;
-    }
-    else                                // x in (8, \infty)
-    {
-        T y = 8 / x;
-        T y2 = y * y;
-        rc = evaluate_rational(PC, QC, y2);
-        rs = evaluate_rational(PS, QS, y2);
-        factor = 1 / (sqrt(x) * root_pi<T>());
-        //
-        // This code is really just:
-        //
-        // T z = x - 0.75f * pi<T>();
-        // value = factor * (rc * sin(z) + y * rs * cos(z));
-        //
-        // But using the sin/cos addition rules, plus constants for sin/cos of 3PI/4
-        // which then cancel out with corresponding terms in "factor".
-        //
-        T sx = sin(x);
-        T cx = cos(x);
-        value = factor * (y * rs * (sx - cx) - rc * (sx + cx));
-    }
-
-    return value;
-}
-
-}}} // namespaces
-
-#endif // BOOST_MATH_BESSEL_Y1_HPP
-
diff --git a/boost/math/special_functions/detail/bessel_yn.hpp b/boost/math/special_functions/detail/bessel_yn.hpp
deleted file mode 100644
index 0509062..0000000
--- a/boost/math/special_functions/detail/bessel_yn.hpp
+++ /dev/null
@@ -1,104 +0,0 @@
-//  Copyright (c) 2006 Xiaogang Zhang
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_BESSEL_YN_HPP
-#define BOOST_MATH_BESSEL_YN_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/math/special_functions/detail/bessel_y0.hpp>
-#include <boost/math/special_functions/detail/bessel_y1.hpp>
-#include <boost/math/special_functions/detail/bessel_jy_series.hpp>
-#include <boost/math/policies/error_handling.hpp>
-
-// Bessel function of the second kind of integer order
-// Y_n(z) is the dominant solution, forward recurrence always OK (though unstable)
-
-namespace boost { namespace math { namespace detail{
-
-template <typename T, typename Policy>
-T bessel_yn(int n, T x, const Policy& pol)
-{
-    BOOST_MATH_STD_USING
-    T value, factor, current, prev;
-
-    using namespace boost::math::tools;
-
-    static const char* function = "boost::math::bessel_yn<%1%>(%1%,%1%)";
-
-    if ((x == 0) && (n == 0))
-    {
-       return -policies::raise_overflow_error<T>(function, 0, pol);
-    }
-    if (x <= 0)
-    {
-       return policies::raise_domain_error<T>(function,
-            "Got x = %1%, but x must be > 0, complex result not supported.", x, pol);
-    }
-
-    //
-    // Reflection comes first:
-    //
-    if (n < 0)
-    {
-        factor = (n & 0x1) ? -1 : 1;  // Y_{-n}(z) = (-1)^n Y_n(z)
-        n = -n;
-    }
-    else
-    {
-        factor = 1;
-    }
-
-    if(x < policies::get_epsilon<T, Policy>())
-    {
-       T scale = 1;
-       value = bessel_yn_small_z(n, x, &scale, pol);
-       if(tools::max_value<T>() * fabs(scale) < fabs(value))
-          return boost::math::sign(scale) * boost::math::sign(value) * policies::raise_overflow_error<T>(function, 0, pol);
-       value /= scale;
-    }
-    else if (n == 0)
-    {
-        value = bessel_y0(x, pol);
-    }
-    else if (n == 1)
-    {
-        value = factor * bessel_y1(x, pol);
-    }
-    else
-    {
-       prev = bessel_y0(x, pol);
-       current = bessel_y1(x, pol);
-       int k = 1;
-       BOOST_ASSERT(k < n);
-       policies::check_series_iterations<T>("boost::math::bessel_y_n<%1%>(%1%,%1%)", n, pol);
-       do
-       {
-           T fact = 2 * k / x;
-           if((fact > 1) && ((tools::max_value<T>() - fabs(prev)) / fact < fabs(current)))
-           {
-              prev /= current;
-              factor /= current;
-              current = 1;
-           }
-           value = fact * current - prev;
-           prev = current;
-           current = value;
-           ++k;
-       }
-       while(k < n);
-       if(fabs(tools::max_value<T>() * factor) < fabs(value))
-          return sign(value) * sign(value) * policies::raise_overflow_error<T>(function, 0, pol);
-       value /= factor;
-    }
-    return value;
-}
-
-}}} // namespaces
-
-#endif // BOOST_MATH_BESSEL_YN_HPP
-
diff --git a/boost/math/special_functions/detail/erf_inv.hpp b/boost/math/special_functions/detail/erf_inv.hpp
deleted file mode 100644
index ab926ad..0000000
--- a/boost/math/special_functions/detail/erf_inv.hpp
+++ /dev/null
@@ -1,521 +0,0 @@
-//  (C) Copyright John Maddock 2006.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_SF_ERF_INV_HPP
-#define BOOST_MATH_SF_ERF_INV_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-namespace boost{ namespace math{ 
-
-namespace detail{
-//
-// The inverse erf and erfc functions share a common implementation,
-// this version is for 80-bit long double's and smaller:
-//
-template <class T, class Policy>
-T erf_inv_imp(const T& p, const T& q, const Policy&, const boost::mpl::int_<64>*)
-{
-   BOOST_MATH_STD_USING // for ADL of std names.
-
-   T result = 0;
-   
-   if(p <= 0.5)
-   {
-      //
-      // Evaluate inverse erf using the rational approximation:
-      //
-      // x = p(p+10)(Y+R(p))
-      //
-      // Where Y is a constant, and R(p) is optimised for a low
-      // absolute error compared to |Y|.
-      //
-      // double: Max error found: 2.001849e-18
-      // long double: Max error found: 1.017064e-20
-      // Maximum Deviation Found (actual error term at infinite precision) 8.030e-21
-      //
-      static const float Y = 0.0891314744949340820313f;
-      static const T P[] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.000508781949658280665617),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.00836874819741736770379),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.0334806625409744615033),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.0126926147662974029034),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.0365637971411762664006),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.0219878681111168899165),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.00822687874676915743155),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.00538772965071242932965)
-      };
-      static const T Q[] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 64, 1.0),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.970005043303290640362),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -1.56574558234175846809),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 1.56221558398423026363),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.662328840472002992063),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.71228902341542847553),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.0527396382340099713954),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.0795283687341571680018),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.00233393759374190016776),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.000886216390456424707504)
-      };
-      T g = p * (p + 10);
-      T r = tools::evaluate_polynomial(P, p) / tools::evaluate_polynomial(Q, p);
-      result = g * Y + g * r;
-   }
-   else if(q >= 0.25)
-   {
-      //
-      // Rational approximation for 0.5 > q >= 0.25
-      //
-      // x = sqrt(-2*log(q)) / (Y + R(q))
-      //
-      // Where Y is a constant, and R(q) is optimised for a low
-      // absolute error compared to Y.
-      //
-      // double : Max error found: 7.403372e-17
-      // long double : Max error found: 6.084616e-20
-      // Maximum Deviation Found (error term) 4.811e-20
-      //
-      static const float Y = 2.249481201171875f;
-      static const T P[] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.202433508355938759655),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.105264680699391713268),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 8.37050328343119927838),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 17.6447298408374015486),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -18.8510648058714251895),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -44.6382324441786960818),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 17.445385985570866523),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 21.1294655448340526258),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -3.67192254707729348546)
-      };
-      static const T Q[] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 64, 1),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 6.24264124854247537712),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 3.9713437953343869095),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -28.6608180499800029974),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -20.1432634680485188801),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 48.5609213108739935468),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 10.8268667355460159008),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -22.6436933413139721736),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 1.72114765761200282724)
-      };
-      T g = sqrt(-2 * log(q));
-      T xs = q - 0.25;
-      T r = tools::evaluate_polynomial(P, xs) / tools::evaluate_polynomial(Q, xs);
-      result = g / (Y + r);
-   }
-   else
-   {
-      //
-      // For q < 0.25 we have a series of rational approximations all
-      // of the general form:
-      //
-      // let: x = sqrt(-log(q))
-      //
-      // Then the result is given by:
-      //
-      // x(Y+R(x-B))
-      //
-      // where Y is a constant, B is the lowest value of x for which 
-      // the approximation is valid, and R(x-B) is optimised for a low
-      // absolute error compared to Y.
-      //
-      // Note that almost all code will really go through the first
-      // or maybe second approximation.  After than we're dealing with very
-      // small input values indeed: 80 and 128 bit long double's go all the
-      // way down to ~ 1e-5000 so the "tail" is rather long...
-      //
-      T x = sqrt(-log(q));
-      if(x < 3)
-      {
-         // Max error found: 1.089051e-20
-         static const float Y = 0.807220458984375f;
-         static const T P[] = {    
-            BOOST_MATH_BIG_CONSTANT(T, 64, -0.131102781679951906451),
-            BOOST_MATH_BIG_CONSTANT(T, 64, -0.163794047193317060787),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.117030156341995252019),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.387079738972604337464),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.337785538912035898924),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.142869534408157156766),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.0290157910005329060432),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.00214558995388805277169),
-            BOOST_MATH_BIG_CONSTANT(T, 64, -0.679465575181126350155e-6),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.285225331782217055858e-7),
-            BOOST_MATH_BIG_CONSTANT(T, 64, -0.681149956853776992068e-9)
-         };
-         static const T Q[] = {    
-            BOOST_MATH_BIG_CONSTANT(T, 64, 1.0),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 3.46625407242567245975),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 5.38168345707006855425),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 4.77846592945843778382),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 2.59301921623620271374),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.848854343457902036425),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.152264338295331783612),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.01105924229346489121)
-         };
-         T xs = x - 1.125;
-         T R = tools::evaluate_polynomial(P, xs) / tools::evaluate_polynomial(Q, xs);
-         result = Y * x + R * x;
-      }
-      else if(x < 6)
-      {
-         // Max error found: 8.389174e-21
-         static const float Y = 0.93995571136474609375f;
-         static const T P[] = {    
-            BOOST_MATH_BIG_CONSTANT(T, 64, -0.0350353787183177984712),
-            BOOST_MATH_BIG_CONSTANT(T, 64, -0.00222426529213447927281),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.0185573306514231072324),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.00950804701325919603619),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.00187123492819559223345),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.000157544617424960554631),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.460469890584317994083e-5),
-            BOOST_MATH_BIG_CONSTANT(T, 64, -0.230404776911882601748e-9),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.266339227425782031962e-11)
-         };
-         static const T Q[] = {    
-            BOOST_MATH_BIG_CONSTANT(T, 64, 1),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 1.3653349817554063097),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.762059164553623404043),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.220091105764131249824),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.0341589143670947727934),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.00263861676657015992959),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.764675292302794483503e-4)
-         };
-         T xs = x - 3;
-         T R = tools::evaluate_polynomial(P, xs) / tools::evaluate_polynomial(Q, xs);
-         result = Y * x + R * x;
-      }
-      else if(x < 18)
-      {
-         // Max error found: 1.481312e-19
-         static const float Y = 0.98362827301025390625f;
-         static const T P[] = {    
-            BOOST_MATH_BIG_CONSTANT(T, 64, -0.0167431005076633737133),
-            BOOST_MATH_BIG_CONSTANT(T, 64, -0.00112951438745580278863),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.00105628862152492910091),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.000209386317487588078668),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.149624783758342370182e-4),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.449696789927706453732e-6),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.462596163522878599135e-8),
-            BOOST_MATH_BIG_CONSTANT(T, 64, -0.281128735628831791805e-13),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.99055709973310326855e-16)
-         };
-         static const T Q[] = {    
-            BOOST_MATH_BIG_CONSTANT(T, 64, 1),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.591429344886417493481),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.138151865749083321638),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.0160746087093676504695),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.000964011807005165528527),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.275335474764726041141e-4),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.282243172016108031869e-6)
-         };
-         T xs = x - 6;
-         T R = tools::evaluate_polynomial(P, xs) / tools::evaluate_polynomial(Q, xs);
-         result = Y * x + R * x;
-      }
-      else if(x < 44)
-      {
-         // Max error found: 5.697761e-20
-         static const float Y = 0.99714565277099609375f;
-         static const T P[] = {    
-            BOOST_MATH_BIG_CONSTANT(T, 64, -0.0024978212791898131227),
-            BOOST_MATH_BIG_CONSTANT(T, 64, -0.779190719229053954292e-5),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.254723037413027451751e-4),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.162397777342510920873e-5),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.396341011304801168516e-7),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.411632831190944208473e-9),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.145596286718675035587e-11),
-            BOOST_MATH_BIG_CONSTANT(T, 64, -0.116765012397184275695e-17)
-         };
-         static const T Q[] = {    
-            BOOST_MATH_BIG_CONSTANT(T, 64, 1),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.207123112214422517181),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.0169410838120975906478),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.000690538265622684595676),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.145007359818232637924e-4),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.144437756628144157666e-6),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.509761276599778486139e-9)
-         };
-         T xs = x - 18;
-         T R = tools::evaluate_polynomial(P, xs) / tools::evaluate_polynomial(Q, xs);
-         result = Y * x + R * x;
-      }
-      else
-      {
-         // Max error found: 1.279746e-20
-         static const float Y = 0.99941349029541015625f;
-         static const T P[] = {    
-            BOOST_MATH_BIG_CONSTANT(T, 64, -0.000539042911019078575891),
-            BOOST_MATH_BIG_CONSTANT(T, 64, -0.28398759004727721098e-6),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.899465114892291446442e-6),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.229345859265920864296e-7),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.225561444863500149219e-9),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.947846627503022684216e-12),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.135880130108924861008e-14),
-            BOOST_MATH_BIG_CONSTANT(T, 64, -0.348890393399948882918e-21)
-         };
-         static const T Q[] = {    
-            BOOST_MATH_BIG_CONSTANT(T, 64, 1),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.0845746234001899436914),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.00282092984726264681981),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.468292921940894236786e-4),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.399968812193862100054e-6),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.161809290887904476097e-8),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.231558608310259605225e-11)
-         };
-         T xs = x - 44;
-         T R = tools::evaluate_polynomial(P, xs) / tools::evaluate_polynomial(Q, xs);
-         result = Y * x + R * x;
-      }
-   }
-   return result;
-}
-
-template <class T, class Policy>
-struct erf_roots
-{
-   boost::math::tuple<T,T,T> operator()(const T& guess)
-   {
-      BOOST_MATH_STD_USING
-      T derivative = sign * (2 / sqrt(constants::pi<T>())) * exp(-(guess * guess));
-      T derivative2 = -2 * guess * derivative;
-      return boost::math::make_tuple(((sign > 0) ? static_cast<T>(boost::math::erf(guess, Policy()) - target) : static_cast<T>(boost::math::erfc(guess, Policy())) - target), derivative, derivative2);
-   }
-   erf_roots(T z, int s) : target(z), sign(s) {}
-private:
-   T target;
-   int sign;
-};
-
-template <class T, class Policy>
-T erf_inv_imp(const T& p, const T& q, const Policy& pol, const boost::mpl::int_<0>*)
-{
-   //
-   // Generic version, get a guess that's accurate to 64-bits (10^-19)
-   //
-   T guess = erf_inv_imp(p, q, pol, static_cast<mpl::int_<64> const*>(0));
-   T result;
-   //
-   // If T has more bit's than 64 in it's mantissa then we need to iterate,
-   // otherwise we can just return the result:
-   //
-   if(policies::digits<T, Policy>() > 64)
-   {
-      boost::uintmax_t max_iter = policies::get_max_root_iterations<Policy>();
-      if(p <= 0.5)
-      {
-         result = tools::halley_iterate(detail::erf_roots<typename remove_cv<T>::type, Policy>(p, 1), guess, static_cast<T>(0), tools::max_value<T>(), (policies::digits<T, Policy>() * 2) / 3, max_iter);
-      }
-      else
-      {
-         result = tools::halley_iterate(detail::erf_roots<typename remove_cv<T>::type, Policy>(q, -1), guess, static_cast<T>(0), tools::max_value<T>(), (policies::digits<T, Policy>() * 2) / 3, max_iter);
-      }
-      policies::check_root_iterations<T>("boost::math::erf_inv<%1%>", max_iter, pol);
-   }
-   else
-   {
-      result = guess;
-   }
-   return result;
-}
-
-template <class T, class Policy>
-struct erf_inv_initializer
-{
-   struct init
-   {
-      init()
-      {
-         do_init();
-      }
-      static void do_init()
-      {
-         boost::math::erf_inv(static_cast<T>(0.25), Policy());
-         boost::math::erf_inv(static_cast<T>(0.55), Policy());
-         boost::math::erf_inv(static_cast<T>(0.95), Policy());
-         boost::math::erfc_inv(static_cast<T>(1e-15), Policy());
-         if(static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1e-130)) != 0)
-            boost::math::erfc_inv(static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1e-130)), Policy());
-
-         // Some compilers choke on constants that would underflow, even in code that isn't instantiated
-         // so try and filter these cases out in the preprocessor:
-#if LDBL_MAX_10_EXP >= 800
-         if(static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1e-800)) != 0)
-            boost::math::erfc_inv(static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1e-800)), Policy());
-         if(static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1e-900)) != 0)
-            boost::math::erfc_inv(static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1e-900)), Policy());
-#else
-         if(static_cast<T>(BOOST_MATH_HUGE_CONSTANT(T, 64, 1e-800)) != 0)
-            boost::math::erfc_inv(static_cast<T>(BOOST_MATH_HUGE_CONSTANT(T, 64, 1e-800)), Policy());
-         if(static_cast<T>(BOOST_MATH_HUGE_CONSTANT(T, 64, 1e-900)) != 0)
-            boost::math::erfc_inv(static_cast<T>(BOOST_MATH_HUGE_CONSTANT(T, 64, 1e-900)), Policy());
-#endif
-      }
-      void force_instantiate()const{}
-   };
-   static const init initializer;
-   static void force_instantiate()
-   {
-      initializer.force_instantiate();
-   }
-};
-
-template <class T, class Policy>
-const typename erf_inv_initializer<T, Policy>::init erf_inv_initializer<T, Policy>::initializer;
-
-} // namespace detail
-
-template <class T, class Policy>
-typename tools::promote_args<T>::type erfc_inv(T z, const Policy& pol)
-{
-   typedef typename tools::promote_args<T>::type result_type;
-
-   //
-   // Begin by testing for domain errors, and other special cases:
-   //
-   static const char* function = "boost::math::erfc_inv<%1%>(%1%, %1%)";
-   if((z < 0) || (z > 2))
-      policies::raise_domain_error<result_type>(function, "Argument outside range [0,2] in inverse erfc function (got p=%1%).", z, pol);
-   if(z == 0)
-      return policies::raise_overflow_error<result_type>(function, 0, pol);
-   if(z == 2)
-      return -policies::raise_overflow_error<result_type>(function, 0, pol);
-   //
-   // Normalise the input, so it's in the range [0,1], we will
-   // negate the result if z is outside that range.  This is a simple
-   // application of the erfc reflection formula: erfc(-z) = 2 - erfc(z)
-   //
-   result_type p, q, s;
-   if(z > 1)
-   {
-      q = 2 - z;
-      p = 1 - q;
-      s = -1;
-   }
-   else
-   {
-      p = 1 - z;
-      q = z;
-      s = 1;
-   }
-   //
-   // A bit of meta-programming to figure out which implementation
-   // to use, based on the number of bits in the mantissa of T:
-   //
-   typedef typename policies::precision<result_type, Policy>::type precision_type;
-   typedef typename mpl::if_<
-      mpl::or_<mpl::less_equal<precision_type, mpl::int_<0> >, mpl::greater<precision_type, mpl::int_<64> > >,
-      mpl::int_<0>,
-      mpl::int_<64>
-   >::type tag_type;
-   //
-   // Likewise use internal promotion, so we evaluate at a higher
-   // precision internally if it's appropriate:
-   //
-   typedef typename policies::evaluation<result_type, Policy>::type eval_type;
-   typedef typename policies::normalise<
-      Policy, 
-      policies::promote_float<false>, 
-      policies::promote_double<false>, 
-      policies::discrete_quantile<>,
-      policies::assert_undefined<> >::type forwarding_policy;
-
-   detail::erf_inv_initializer<eval_type, forwarding_policy>::force_instantiate();
-
-   //
-   // And get the result, negating where required:
-   //
-   return s * policies::checked_narrowing_cast<result_type, forwarding_policy>(
-      detail::erf_inv_imp(static_cast<eval_type>(p), static_cast<eval_type>(q), forwarding_policy(), static_cast<tag_type const*>(0)), function);
-}
-
-template <class T, class Policy>
-typename tools::promote_args<T>::type erf_inv(T z, const Policy& pol)
-{
-   typedef typename tools::promote_args<T>::type result_type;
-
-   //
-   // Begin by testing for domain errors, and other special cases:
-   //
-   static const char* function = "boost::math::erf_inv<%1%>(%1%, %1%)";
-   if((z < -1) || (z > 1))
-      policies::raise_domain_error<result_type>(function, "Argument outside range [-1, 1] in inverse erf function (got p=%1%).", z, pol);
-   if(z == 1)
-      return policies::raise_overflow_error<result_type>(function, 0, pol);
-   if(z == -1)
-      return -policies::raise_overflow_error<result_type>(function, 0, pol);
-   if(z == 0)
-      return 0;
-   //
-   // Normalise the input, so it's in the range [0,1], we will
-   // negate the result if z is outside that range.  This is a simple
-   // application of the erf reflection formula: erf(-z) = -erf(z)
-   //
-   result_type p, q, s;
-   if(z < 0)
-   {
-      p = -z;
-      q = 1 - p;
-      s = -1;
-   }
-   else
-   {
-      p = z;
-      q = 1 - z;
-      s = 1;
-   }
-   //
-   // A bit of meta-programming to figure out which implementation
-   // to use, based on the number of bits in the mantissa of T:
-   //
-   typedef typename policies::precision<result_type, Policy>::type precision_type;
-   typedef typename mpl::if_<
-      mpl::or_<mpl::less_equal<precision_type, mpl::int_<0> >, mpl::greater<precision_type, mpl::int_<64> > >,
-      mpl::int_<0>,
-      mpl::int_<64>
-   >::type tag_type;
-   //
-   // Likewise use internal promotion, so we evaluate at a higher
-   // precision internally if it's appropriate:
-   //
-   typedef typename policies::evaluation<result_type, Policy>::type eval_type;
-   typedef typename policies::normalise<
-      Policy, 
-      policies::promote_float<false>, 
-      policies::promote_double<false>, 
-      policies::discrete_quantile<>,
-      policies::assert_undefined<> >::type forwarding_policy;
-   //
-   // Likewise use internal promotion, so we evaluate at a higher
-   // precision internally if it's appropriate:
-   //
-   typedef typename policies::evaluation<result_type, Policy>::type eval_type;
-
-   detail::erf_inv_initializer<eval_type, forwarding_policy>::force_instantiate();
-   //
-   // And get the result, negating where required:
-   //
-   return s * policies::checked_narrowing_cast<result_type, forwarding_policy>(
-      detail::erf_inv_imp(static_cast<eval_type>(p), static_cast<eval_type>(q), forwarding_policy(), static_cast<tag_type const*>(0)), function);
-}
-
-template <class T>
-inline typename tools::promote_args<T>::type erfc_inv(T z)
-{
-   return erfc_inv(z, policies::policy<>());
-}
-
-template <class T>
-inline typename tools::promote_args<T>::type erf_inv(T z)
-{
-   return erf_inv(z, policies::policy<>());
-}
-
-} // namespace math
-} // namespace boost
-
-#endif // BOOST_MATH_SF_ERF_INV_HPP
-
diff --git a/boost/math/special_functions/detail/fp_traits.hpp b/boost/math/special_functions/detail/fp_traits.hpp
deleted file mode 100644
index 50c034d..0000000
--- a/boost/math/special_functions/detail/fp_traits.hpp
+++ /dev/null
@@ -1,570 +0,0 @@
-// fp_traits.hpp
-
-#ifndef BOOST_MATH_FP_TRAITS_HPP
-#define BOOST_MATH_FP_TRAITS_HPP
-
-// Copyright (c) 2006 Johan Rade
-
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt
-// or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-/*
-To support old compilers, care has been taken to avoid partial template
-specialization and meta function forwarding.
-With these techniques, the code could be simplified.
-*/
-
-#if defined(__vms) && defined(__DECCXX) && !__IEEE_FLOAT
-// The VAX floating point formats are used (for float and double)
-#   define BOOST_FPCLASSIFY_VAX_FORMAT
-#endif
-
-#include <cstring>
-
-#include <boost/assert.hpp>
-#include <boost/cstdint.hpp>
-#include <boost/detail/endian.hpp>
-#include <boost/static_assert.hpp>
-#include <boost/type_traits/is_floating_point.hpp>
-
-#ifdef BOOST_NO_STDC_NAMESPACE
-  namespace std{ using ::memcpy; }
-#endif
-
-#ifndef FP_NORMAL
-
-#define FP_ZERO        0
-#define FP_NORMAL      1
-#define FP_INFINITE    2
-#define FP_NAN         3
-#define FP_SUBNORMAL   4
-
-#else
-
-#define BOOST_HAS_FPCLASSIFY
-
-#ifndef fpclassify
-#  if (defined(__GLIBCPP__) || defined(__GLIBCXX__)) \
-         && defined(_GLIBCXX_USE_C99_MATH) \
-         && !(defined(_GLIBCXX_USE_C99_FP_MACROS_DYNAMIC) \
-         && (_GLIBCXX_USE_C99_FP_MACROS_DYNAMIC != 0))
-#     ifdef _STLP_VENDOR_CSTD
-#        if _STLPORT_VERSION >= 0x520
-#           define BOOST_FPCLASSIFY_PREFIX ::__std_alias:: 
-#        else
-#           define BOOST_FPCLASSIFY_PREFIX ::_STLP_VENDOR_CSTD:: 
-#        endif
-#     else
-#        define BOOST_FPCLASSIFY_PREFIX ::std::
-#     endif
-#  else
-#     undef BOOST_HAS_FPCLASSIFY
-#     define BOOST_FPCLASSIFY_PREFIX
-#  endif
-#elif (defined(__HP_aCC) && !defined(__hppa))
-// aCC 6 appears to do "#define fpclassify fpclassify" which messes us up a bit!
-#  define BOOST_FPCLASSIFY_PREFIX ::
-#else
-#  define BOOST_FPCLASSIFY_PREFIX
-#endif
-
-#ifdef __MINGW32__
-#  undef BOOST_HAS_FPCLASSIFY
-#endif
-
-#endif
-
-
-//------------------------------------------------------------------------------
-
-namespace boost {
-namespace math {
-namespace detail {
-
-//------------------------------------------------------------------------------
-
-/* 
-The following classes are used to tag the different methods that are used
-for floating point classification
-*/
-
-struct native_tag {};
-template <bool has_limits>
-struct generic_tag {};
-struct ieee_tag {};
-struct ieee_copy_all_bits_tag : public ieee_tag {};
-struct ieee_copy_leading_bits_tag : public ieee_tag {};
-
-#ifdef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-//
-// These helper functions are used only when numeric_limits<>
-// members are not compile time constants:
-//
-inline bool is_generic_tag_false(const generic_tag<false>*)
-{
-   return true;
-}
-inline bool is_generic_tag_false(const void*)
-{
-   return false;
-}
-#endif
-
-//------------------------------------------------------------------------------
-
-/*
-Most processors support three different floating point precisions:
-single precision (32 bits), double precision (64 bits)
-and extended double precision (80 - 128 bits, depending on the processor)
-
-Note that the C++ type long double can be implemented
-both as double precision and extended double precision.
-*/
-
-struct unknown_precision{};
-struct single_precision {};
-struct double_precision {};
-struct extended_double_precision {};
-
-// native_tag version --------------------------------------------------------------
-
-template<class T> struct fp_traits_native
-{
-    typedef native_tag method;
-};
-
-// generic_tag version -------------------------------------------------------------
-
-template<class T, class U> struct fp_traits_non_native
-{
-#ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-   typedef generic_tag<std::numeric_limits<T>::is_specialized> method;
-#else
-   typedef generic_tag<false> method;
-#endif
-};
-
-// ieee_tag versions ---------------------------------------------------------------
-
-/*
-These specializations of fp_traits_non_native contain information needed
-to "parse" the binary representation of a floating point number.
-
-Typedef members:
-
-  bits -- the target type when copying the leading bytes of a floating
-      point number. It is a typedef for uint32_t or uint64_t.
-
-  method -- tells us whether all bytes are copied or not.
-      It is a typedef for ieee_copy_all_bits_tag or ieee_copy_leading_bits_tag.
-
-Static data members:
-
-  sign, exponent, flag, significand -- bit masks that give the meaning of the
-  bits in the leading bytes.
-
-Static function members:
-
-  get_bits(), set_bits() -- provide access to the leading bytes.
-
-*/
-
-// ieee_tag version, float (32 bits) -----------------------------------------------
-
-#ifndef BOOST_FPCLASSIFY_VAX_FORMAT
-
-template<> struct fp_traits_non_native<float, single_precision>
-{
-    typedef ieee_copy_all_bits_tag method;
-
-    BOOST_STATIC_CONSTANT(uint32_t, sign        = 0x80000000u);
-    BOOST_STATIC_CONSTANT(uint32_t, exponent    = 0x7f800000);
-    BOOST_STATIC_CONSTANT(uint32_t, flag        = 0x00000000);
-    BOOST_STATIC_CONSTANT(uint32_t, significand = 0x007fffff);
-
-    typedef uint32_t bits;
-    static void get_bits(float x, uint32_t& a) { std::memcpy(&a, &x, 4); }
-    static void set_bits(float& x, uint32_t a) { std::memcpy(&x, &a, 4); }
-};
-
-// ieee_tag version, double (64 bits) ----------------------------------------------
-
-#if defined(BOOST_NO_INT64_T) || defined(BOOST_NO_INCLASS_MEMBER_INITIALIZATION) \
-   || defined(__BORLANDC__) || defined(__CODEGEAR__)
-
-template<> struct fp_traits_non_native<double, double_precision>
-{
-    typedef ieee_copy_leading_bits_tag method;
-
-    BOOST_STATIC_CONSTANT(uint32_t, sign        = 0x80000000u);
-    BOOST_STATIC_CONSTANT(uint32_t, exponent    = 0x7ff00000);
-    BOOST_STATIC_CONSTANT(uint32_t, flag        = 0);
-    BOOST_STATIC_CONSTANT(uint32_t, significand = 0x000fffff);
-
-    typedef uint32_t bits;
-
-    static void get_bits(double x, uint32_t& a)
-    {
-        std::memcpy(&a, reinterpret_cast<const unsigned char*>(&x) + offset_, 4);
-    }
-
-    static void set_bits(double& x, uint32_t a)
-    {
-        std::memcpy(reinterpret_cast<unsigned char*>(&x) + offset_, &a, 4);
-    }
-
-private:
-
-#if defined(BOOST_BIG_ENDIAN)
-    BOOST_STATIC_CONSTANT(int, offset_ = 0);
-#elif defined(BOOST_LITTLE_ENDIAN)
-    BOOST_STATIC_CONSTANT(int, offset_ = 4);
-#else
-    BOOST_STATIC_ASSERT(false);
-#endif
-};
-
-//..............................................................................
-
-#else
-
-template<> struct fp_traits_non_native<double, double_precision>
-{
-    typedef ieee_copy_all_bits_tag method;
-
-    static const uint64_t sign     = ((uint64_t)0x80000000u) << 32;
-    static const uint64_t exponent = ((uint64_t)0x7ff00000) << 32;
-    static const uint64_t flag     = 0;
-    static const uint64_t significand
-        = (((uint64_t)0x000fffff) << 32) + ((uint64_t)0xffffffffu);
-
-    typedef uint64_t bits;
-    static void get_bits(double x, uint64_t& a) { std::memcpy(&a, &x, 8); }
-    static void set_bits(double& x, uint64_t a) { std::memcpy(&x, &a, 8); }
-};
-
-#endif
-
-#endif  // #ifndef BOOST_FPCLASSIFY_VAX_FORMAT
-
-// long double (64 bits) -------------------------------------------------------
-
-#if defined(BOOST_NO_INT64_T) || defined(BOOST_NO_INCLASS_MEMBER_INITIALIZATION)\
-   || defined(__BORLANDC__) || defined(__CODEGEAR__)
-
-template<> struct fp_traits_non_native<long double, double_precision>
-{
-    typedef ieee_copy_leading_bits_tag method;
-
-    BOOST_STATIC_CONSTANT(uint32_t, sign        = 0x80000000u);
-    BOOST_STATIC_CONSTANT(uint32_t, exponent    = 0x7ff00000);
-    BOOST_STATIC_CONSTANT(uint32_t, flag        = 0);
-    BOOST_STATIC_CONSTANT(uint32_t, significand = 0x000fffff);
-
-    typedef uint32_t bits;
-
-    static void get_bits(long double x, uint32_t& a)
-    {
-        std::memcpy(&a, reinterpret_cast<const unsigned char*>(&x) + offset_, 4);
-    }
-
-    static void set_bits(long double& x, uint32_t a)
-    {
-        std::memcpy(reinterpret_cast<unsigned char*>(&x) + offset_, &a, 4);
-    }
-
-private:
-
-#if defined(BOOST_BIG_ENDIAN)
-    BOOST_STATIC_CONSTANT(int, offset_ = 0);
-#elif defined(BOOST_LITTLE_ENDIAN)
-    BOOST_STATIC_CONSTANT(int, offset_ = 4);
-#else
-    BOOST_STATIC_ASSERT(false);
-#endif
-};
-
-//..............................................................................
-
-#else
-
-template<> struct fp_traits_non_native<long double, double_precision>
-{
-    typedef ieee_copy_all_bits_tag method;
-
-    static const uint64_t sign     = (uint64_t)0x80000000u << 32;
-    static const uint64_t exponent = (uint64_t)0x7ff00000 << 32;
-    static const uint64_t flag     = 0;
-    static const uint64_t significand
-        = ((uint64_t)0x000fffff << 32) + (uint64_t)0xffffffffu;
-
-    typedef uint64_t bits;
-    static void get_bits(long double x, uint64_t& a) { std::memcpy(&a, &x, 8); }
-    static void set_bits(long double& x, uint64_t a) { std::memcpy(&x, &a, 8); }
-};
-
-#endif
-
-
-// long double (>64 bits), x86 and x64 -----------------------------------------
-
-#if defined(__i386) || defined(__i386__) || defined(_M_IX86) \
-    || defined(__amd64) || defined(__amd64__)  || defined(_M_AMD64) \
-    || defined(__x86_64) || defined(__x86_64__) || defined(_M_X64)
-
-// Intel extended double precision format (80 bits)
-
-template<>
-struct fp_traits_non_native<long double, extended_double_precision>
-{
-    typedef ieee_copy_leading_bits_tag method;
-
-    BOOST_STATIC_CONSTANT(uint32_t, sign        = 0x80000000u);
-    BOOST_STATIC_CONSTANT(uint32_t, exponent    = 0x7fff0000);
-    BOOST_STATIC_CONSTANT(uint32_t, flag        = 0x00008000);
-    BOOST_STATIC_CONSTANT(uint32_t, significand = 0x00007fff);
-
-    typedef uint32_t bits;
-
-    static void get_bits(long double x, uint32_t& a)
-    {
-        std::memcpy(&a, reinterpret_cast<const unsigned char*>(&x) + 6, 4);
-    }
-
-    static void set_bits(long double& x, uint32_t a)
-    {
-        std::memcpy(reinterpret_cast<unsigned char*>(&x) + 6, &a, 4);
-    }
-};
-
-
-// long double (>64 bits), Itanium ---------------------------------------------
-
-#elif defined(__ia64) || defined(__ia64__) || defined(_M_IA64)
-
-// The floating point format is unknown at compile time
-// No template specialization is provided.
-// The generic_tag definition is used.
-
-// The Itanium supports both
-// the Intel extended double precision format (80 bits) and
-// the IEEE extended double precision format with 15 exponent bits (128 bits).
-
-
-// long double (>64 bits), PowerPC ---------------------------------------------
-
-#elif defined(__powerpc) || defined(__powerpc__) || defined(__POWERPC__) \
-    || defined(__ppc) || defined(__ppc__) || defined(__PPC__)
-
-// PowerPC extended double precision format (128 bits)
-
-template<>
-struct fp_traits_non_native<long double, extended_double_precision>
-{
-    typedef ieee_copy_leading_bits_tag method;
-
-    BOOST_STATIC_CONSTANT(uint32_t, sign        = 0x80000000u);
-    BOOST_STATIC_CONSTANT(uint32_t, exponent    = 0x7ff00000);
-    BOOST_STATIC_CONSTANT(uint32_t, flag        = 0x00000000);
-    BOOST_STATIC_CONSTANT(uint32_t, significand = 0x000fffff);
-
-    typedef uint32_t bits;
-
-    static void get_bits(long double x, uint32_t& a)
-    {
-        std::memcpy(&a, reinterpret_cast<const unsigned char*>(&x) + offset_, 4);
-    }
-
-    static void set_bits(long double& x, uint32_t a)
-    {
-        std::memcpy(reinterpret_cast<unsigned char*>(&x) + offset_, &a, 4);
-    }
-
-private:
-
-#if defined(BOOST_BIG_ENDIAN)
-    BOOST_STATIC_CONSTANT(int, offset_ = 0);
-#elif defined(BOOST_LITTLE_ENDIAN)
-    BOOST_STATIC_CONSTANT(int, offset_ = 12);
-#else
-    BOOST_STATIC_ASSERT(false);
-#endif
-};
-
-
-// long double (>64 bits), Motorola 68K ----------------------------------------
-
-#elif defined(__m68k) || defined(__m68k__) \
-    || defined(__mc68000) || defined(__mc68000__) \
-
-// Motorola extended double precision format (96 bits)
-
-// It is the same format as the Intel extended double precision format,
-// except that 1) it is big-endian, 2) the 3rd and 4th byte are padding, and
-// 3) the flag bit is not set for infinity
-
-template<>
-struct fp_traits_non_native<long double, extended_double_precision>
-{
-    typedef ieee_copy_leading_bits_tag method;
-
-    BOOST_STATIC_CONSTANT(uint32_t, sign        = 0x80000000u);
-    BOOST_STATIC_CONSTANT(uint32_t, exponent    = 0x7fff0000);
-    BOOST_STATIC_CONSTANT(uint32_t, flag        = 0x00008000);
-    BOOST_STATIC_CONSTANT(uint32_t, significand = 0x00007fff);
-
-    // copy 1st, 2nd, 5th and 6th byte. 3rd and 4th byte are padding.
-
-    typedef uint32_t bits;
-
-    static void get_bits(long double x, uint32_t& a)
-    {
-        std::memcpy(&a, &x, 2);
-        std::memcpy(reinterpret_cast<unsigned char*>(&a) + 2,
-               reinterpret_cast<const unsigned char*>(&x) + 4, 2);
-    }
-
-    static void set_bits(long double& x, uint32_t a)
-    {
-        std::memcpy(&x, &a, 2);
-        std::memcpy(reinterpret_cast<unsigned char*>(&x) + 4,
-               reinterpret_cast<const unsigned char*>(&a) + 2, 2);
-    }
-};
-
-
-// long double (>64 bits), All other processors --------------------------------
-
-#else
-
-// IEEE extended double precision format with 15 exponent bits (128 bits)
-
-template<>
-struct fp_traits_non_native<long double, extended_double_precision>
-{
-    typedef ieee_copy_leading_bits_tag method;
-
-    BOOST_STATIC_CONSTANT(uint32_t, sign        = 0x80000000u);
-    BOOST_STATIC_CONSTANT(uint32_t, exponent    = 0x7fff0000);
-    BOOST_STATIC_CONSTANT(uint32_t, flag        = 0x00000000);
-    BOOST_STATIC_CONSTANT(uint32_t, significand = 0x0000ffff);
-
-    typedef uint32_t bits;
-
-    static void get_bits(long double x, uint32_t& a)
-    {
-        std::memcpy(&a, reinterpret_cast<const unsigned char*>(&x) + offset_, 4);
-    }
-
-    static void set_bits(long double& x, uint32_t a)
-    {
-        std::memcpy(reinterpret_cast<unsigned char*>(&x) + offset_, &a, 4);
-    }
-
-private:
-
-#if defined(BOOST_BIG_ENDIAN)
-    BOOST_STATIC_CONSTANT(int, offset_ = 0);
-#elif defined(BOOST_LITTLE_ENDIAN)
-    BOOST_STATIC_CONSTANT(int, offset_ = 12);
-#else
-    BOOST_STATIC_ASSERT(false);
-#endif
-};
-
-#endif
-
-//------------------------------------------------------------------------------
-
-// size_to_precision is a type switch for converting a C++ floating point type
-// to the corresponding precision type.
-
-template<int n, bool fp> struct size_to_precision
-{
-   typedef unknown_precision type;
-};
-
-template<> struct size_to_precision<4, true>
-{
-    typedef single_precision type;
-};
-
-template<> struct size_to_precision<8, true>
-{
-    typedef double_precision type;
-};
-
-template<> struct size_to_precision<10, true>
-{
-    typedef extended_double_precision type;
-};
-
-template<> struct size_to_precision<12, true>
-{
-    typedef extended_double_precision type;
-};
-
-template<> struct size_to_precision<16, true>
-{
-    typedef extended_double_precision type;
-};
-
-//------------------------------------------------------------------------------
-//
-// Figure out whether to use native classification functions based on
-// whether T is a built in floating point type or not:
-//
-template <class T>
-struct select_native
-{
-    typedef BOOST_DEDUCED_TYPENAME size_to_precision<sizeof(T), ::boost::is_floating_point<T>::value>::type precision;
-    typedef fp_traits_non_native<T, precision> type;
-};
-template<>
-struct select_native<float>
-{
-    typedef fp_traits_native<float> type;
-};
-template<>
-struct select_native<double>
-{
-    typedef fp_traits_native<double> type;
-};
-template<>
-struct select_native<long double>
-{
-    typedef fp_traits_native<long double> type;
-};
-
-//------------------------------------------------------------------------------
-
-// fp_traits is a type switch that selects the right fp_traits_non_native
-
-#if (defined(BOOST_MATH_USE_C99) && !(defined(__GNUC__) && (__GNUC__ < 4))) \
-   && !defined(__hpux) \
-   && !defined(__DECCXX)\
-   && !defined(__osf__) \
-   && !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)\
-   && !defined(BOOST_MATH_DISABLE_STD_FPCLASSIFY)
-#  define BOOST_MATH_USE_STD_FPCLASSIFY
-#endif
-
-template<class T> struct fp_traits
-{
-    typedef BOOST_DEDUCED_TYPENAME size_to_precision<sizeof(T), ::boost::is_floating_point<T>::value>::type precision;
-#if defined(BOOST_MATH_USE_STD_FPCLASSIFY) && !defined(BOOST_MATH_DISABLE_STD_FPCLASSIFY)
-    typedef typename select_native<T>::type type;
-#else
-    typedef fp_traits_non_native<T, precision> type;
-#endif
-    typedef fp_traits_non_native<T, precision> sign_change_type;
-};
-
-//------------------------------------------------------------------------------
-
-}   // namespace detail
-}   // namespace math
-}   // namespace boost
-
-#endif
diff --git a/boost/math/special_functions/detail/gamma_inva.hpp b/boost/math/special_functions/detail/gamma_inva.hpp
deleted file mode 100644
index 549bc3d..0000000
--- a/boost/math/special_functions/detail/gamma_inva.hpp
+++ /dev/null
@@ -1,233 +0,0 @@
-//  (C) Copyright John Maddock 2006.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//
-// This is not a complete header file, it is included by gamma.hpp
-// after it has defined it's definitions.  This inverts the incomplete
-// gamma functions P and Q on the first parameter "a" using a generic
-// root finding algorithm (TOMS Algorithm 748).
-//
-
-#ifndef BOOST_MATH_SP_DETAIL_GAMMA_INVA
-#define BOOST_MATH_SP_DETAIL_GAMMA_INVA
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/math/tools/toms748_solve.hpp>
-#include <boost/cstdint.hpp>
-
-namespace boost{ namespace math{ namespace detail{
-
-template <class T, class Policy>
-struct gamma_inva_t
-{
-   gamma_inva_t(T z_, T p_, bool invert_) : z(z_), p(p_), invert(invert_) {}
-   T operator()(T a)
-   {
-      return invert ? p - boost::math::gamma_q(a, z, Policy()) : boost::math::gamma_p(a, z, Policy()) - p;
-   }
-private:
-   T z, p;
-   bool invert;
-};
-
-template <class T, class Policy>
-T inverse_poisson_cornish_fisher(T lambda, T p, T q, const Policy& pol)
-{
-   BOOST_MATH_STD_USING
-   // mean:
-   T m = lambda;
-   // standard deviation:
-   T sigma = sqrt(lambda);
-   // skewness
-   T sk = 1 / sigma;
-   // kurtosis:
-   // T k = 1/lambda;
-   // Get the inverse of a std normal distribution:
-   T x = boost::math::erfc_inv(p > q ? 2 * q : 2 * p, pol) * constants::root_two<T>();
-   // Set the sign:
-   if(p < 0.5)
-      x = -x;
-   T x2 = x * x;
-   // w is correction term due to skewness
-   T w = x + sk * (x2 - 1) / 6;
-   /*
-   // Add on correction due to kurtosis.
-   // Disabled for now, seems to make things worse?
-   //
-   if(lambda >= 10)
-      w += k * x * (x2 - 3) / 24 + sk * sk * x * (2 * x2 - 5) / -36;
-   */
-   w = m + sigma * w;
-   return w > tools::min_value<T>() ? w : tools::min_value<T>();
-}
-
-template <class T, class Policy>
-T gamma_inva_imp(const T& z, const T& p, const T& q, const Policy& pol)
-{
-   BOOST_MATH_STD_USING  // for ADL of std lib math functions
-   //
-   // Special cases first:
-   //
-   if(p == 0)
-   {
-      return tools::max_value<T>();
-   }
-   if(q == 0)
-   {
-      return tools::min_value<T>();
-   }
-   //
-   // Function object, this is the functor whose root
-   // we have to solve:
-   //
-   gamma_inva_t<T, Policy> f(z, (p < q) ? p : q, (p < q) ? false : true);
-   //
-   // Tolerance: full precision.
-   //
-   tools::eps_tolerance<T> tol(policies::digits<T, Policy>());
-   //
-   // Now figure out a starting guess for what a may be, 
-   // we'll start out with a value that'll put p or q
-   // right bang in the middle of their range, the functions
-   // are quite sensitive so we should need too many steps
-   // to bracket the root from there:
-   //
-   T guess;
-   T factor = 8;
-   if(z >= 1)
-   {
-      //
-      // We can use the relationship between the incomplete 
-      // gamma function and the poisson distribution to
-      // calculate an approximate inverse, for large z
-      // this is actually pretty accurate, but it fails badly
-      // when z is very small.  Also set our step-factor according
-      // to how accurate we think the result is likely to be:
-      //
-      guess = 1 + inverse_poisson_cornish_fisher(z, q, p, pol);
-      if(z > 5)
-      {
-         if(z > 1000)
-            factor = 1.01f;
-         else if(z > 50)
-            factor = 1.1f;
-         else if(guess > 10)
-            factor = 1.25f;
-         else
-            factor = 2;
-         if(guess < 1.1)
-            factor = 8;
-      }
-   }
-   else if(z > 0.5)
-   {
-      guess = z * 1.2f;
-   }
-   else
-   {
-      guess = -0.4f / log(z);
-   }
-   //
-   // Max iterations permitted:
-   //
-   boost::uintmax_t max_iter = policies::get_max_root_iterations<Policy>();
-   //
-   // Use our generic derivative-free root finding procedure.
-   // We could use Newton steps here, taking the PDF of the
-   // Poisson distribution as our derivative, but that's
-   // even worse performance-wise than the generic method :-(
-   //
-   std::pair<T, T> r = bracket_and_solve_root(f, guess, factor, false, tol, max_iter, pol);
-   if(max_iter >= policies::get_max_root_iterations<Policy>())
-      policies::raise_evaluation_error<T>("boost::math::gamma_p_inva<%1%>(%1%, %1%)", "Unable to locate the root within a reasonable number of iterations, closest approximation so far was %1%", r.first, pol);
-   return (r.first + r.second) / 2;
-}
-
-} // namespace detail
-
-template <class T1, class T2, class Policy>
-inline typename tools::promote_args<T1, T2>::type 
-   gamma_p_inva(T1 x, T2 p, const Policy& pol)
-{
-   typedef typename tools::promote_args<T1, T2>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   typedef typename policies::normalise<
-      Policy, 
-      policies::promote_float<false>, 
-      policies::promote_double<false>, 
-      policies::discrete_quantile<>,
-      policies::assert_undefined<> >::type forwarding_policy;
-
-   if(p == 0)
-   {
-      return tools::max_value<result_type>();
-   }
-   if(p == 1)
-   {
-      return tools::min_value<result_type>();
-   }
-
-   return policies::checked_narrowing_cast<result_type, forwarding_policy>(
-      detail::gamma_inva_imp(
-         static_cast<value_type>(x), 
-         static_cast<value_type>(p), 
-         static_cast<value_type>(1 - static_cast<value_type>(p)), 
-         pol), "boost::math::gamma_p_inva<%1%>(%1%, %1%)");
-}
-
-template <class T1, class T2, class Policy>
-inline typename tools::promote_args<T1, T2>::type 
-   gamma_q_inva(T1 x, T2 q, const Policy& pol)
-{
-   typedef typename tools::promote_args<T1, T2>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   typedef typename policies::normalise<
-      Policy, 
-      policies::promote_float<false>, 
-      policies::promote_double<false>, 
-      policies::discrete_quantile<>,
-      policies::assert_undefined<> >::type forwarding_policy;
-
-   if(q == 1)
-   {
-      return tools::max_value<result_type>();
-   }
-   if(q == 0)
-   {
-      return tools::min_value<result_type>();
-   }
-
-   return policies::checked_narrowing_cast<result_type, forwarding_policy>(
-      detail::gamma_inva_imp(
-         static_cast<value_type>(x), 
-         static_cast<value_type>(1 - static_cast<value_type>(q)), 
-         static_cast<value_type>(q), 
-         pol), "boost::math::gamma_q_inva<%1%>(%1%, %1%)");
-}
-
-template <class T1, class T2>
-inline typename tools::promote_args<T1, T2>::type 
-   gamma_p_inva(T1 x, T2 p)
-{
-   return boost::math::gamma_p_inva(x, p, policies::policy<>());
-}
-
-template <class T1, class T2>
-inline typename tools::promote_args<T1, T2>::type
-   gamma_q_inva(T1 x, T2 q)
-{
-   return boost::math::gamma_q_inva(x, q, policies::policy<>());
-}
-
-} // namespace math
-} // namespace boost
-
-#endif // BOOST_MATH_SP_DETAIL_GAMMA_INVA
-
-
-
diff --git a/boost/math/special_functions/detail/ibeta_inv_ab.hpp b/boost/math/special_functions/detail/ibeta_inv_ab.hpp
deleted file mode 100644
index 8318a28..0000000
--- a/boost/math/special_functions/detail/ibeta_inv_ab.hpp
+++ /dev/null
@@ -1,324 +0,0 @@
-//  (C) Copyright John Maddock 2006.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//
-// This is not a complete header file, it is included by beta.hpp
-// after it has defined it's definitions.  This inverts the incomplete
-// beta functions ibeta and ibetac on the first parameters "a"
-// and "b" using a generic root finding algorithm (TOMS Algorithm 748).
-//
-
-#ifndef BOOST_MATH_SP_DETAIL_BETA_INV_AB
-#define BOOST_MATH_SP_DETAIL_BETA_INV_AB
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/math/tools/toms748_solve.hpp>
-#include <boost/cstdint.hpp>
-
-namespace boost{ namespace math{ namespace detail{
-
-template <class T, class Policy>
-struct beta_inv_ab_t
-{
-   beta_inv_ab_t(T b_, T z_, T p_, bool invert_, bool swap_ab_) : b(b_), z(z_), p(p_), invert(invert_), swap_ab(swap_ab_) {}
-   T operator()(T a)
-   {
-      return invert ? 
-         p - boost::math::ibetac(swap_ab ? b : a, swap_ab ? a : b, z, Policy()) 
-         : boost::math::ibeta(swap_ab ? b : a, swap_ab ? a : b, z, Policy()) - p;
-   }
-private:
-   T b, z, p;
-   bool invert, swap_ab;
-};
-
-template <class T, class Policy>
-T inverse_negative_binomial_cornish_fisher(T n, T sf, T sfc, T p, T q, const Policy& pol)
-{
-   BOOST_MATH_STD_USING
-   // mean:
-   T m = n * (sfc) / sf;
-   T t = sqrt(n * (sfc));
-   // standard deviation:
-   T sigma = t / sf;
-   // skewness
-   T sk = (1 + sfc) / t;
-   // kurtosis:
-   T k = (6 - sf * (5+sfc)) / (n * (sfc));
-   // Get the inverse of a std normal distribution:
-   T x = boost::math::erfc_inv(p > q ? 2 * q : 2 * p, pol) * constants::root_two<T>();
-   // Set the sign:
-   if(p < 0.5)
-      x = -x;
-   T x2 = x * x;
-   // w is correction term due to skewness
-   T w = x + sk * (x2 - 1) / 6;
-   //
-   // Add on correction due to kurtosis.
-   //
-   if(n >= 10)
-      w += k * x * (x2 - 3) / 24 + sk * sk * x * (2 * x2 - 5) / -36;
-
-   w = m + sigma * w;
-   if(w < tools::min_value<T>())
-      return tools::min_value<T>();
-   return w;
-}
-
-template <class T, class Policy>
-T ibeta_inv_ab_imp(const T& b, const T& z, const T& p, const T& q, bool swap_ab, const Policy& pol)
-{
-   BOOST_MATH_STD_USING  // for ADL of std lib math functions
-   //
-   // Special cases first:
-   //
-   BOOST_MATH_INSTRUMENT_CODE("b = " << b << " z = " << z << " p = " << p << " q = " << " swap = " << swap_ab);
-   if(p == 0)
-   {
-      return swap_ab ? tools::min_value<T>() : tools::max_value<T>();
-   }
-   if(q == 0)
-   {
-      return swap_ab ? tools::max_value<T>() : tools::min_value<T>();
-   }
-   //
-   // Function object, this is the functor whose root
-   // we have to solve:
-   //
-   beta_inv_ab_t<T, Policy> f(b, z, (p < q) ? p : q, (p < q) ? false : true, swap_ab);
-   //
-   // Tolerance: full precision.
-   //
-   tools::eps_tolerance<T> tol(policies::digits<T, Policy>());
-   //
-   // Now figure out a starting guess for what a may be, 
-   // we'll start out with a value that'll put p or q
-   // right bang in the middle of their range, the functions
-   // are quite sensitive so we should need too many steps
-   // to bracket the root from there:
-   //
-   T guess = 0;
-   T factor = 5;
-   //
-   // Convert variables to parameters of a negative binomial distribution:
-   //
-   T n = b;
-   T sf = swap_ab ? z : 1-z;
-   T sfc = swap_ab ? 1-z : z;
-   T u = swap_ab ? p : q;
-   T v = swap_ab ? q : p;
-   if(u <= pow(sf, n))
-   {
-      //
-      // Result is less than 1, negative binomial approximation
-      // is useless....
-      //
-      if((p < q) != swap_ab)
-      {
-         guess = (std::min)(T(b * 2), T(1));
-      }
-      else
-      {
-         guess = (std::min)(T(b / 2), T(1));
-      }
-   }
-   if(n * n * n * u * sf > 0.005)
-      guess = 1 + inverse_negative_binomial_cornish_fisher(n, sf, sfc, u, v, pol);
-
-   if(guess < 10)
-   {
-      //
-      // Negative binomial approximation not accurate in this area:
-      //
-      if((p < q) != swap_ab)
-      {
-         guess = (std::min)(T(b * 2), T(10));
-      }
-      else
-      {
-         guess = (std::min)(T(b / 2), T(10));
-      }
-   }
-   else
-      factor = (v < sqrt(tools::epsilon<T>())) ? 2 : (guess < 20 ? 1.2f : 1.1f);
-   BOOST_MATH_INSTRUMENT_CODE("guess = " << guess);
-   //
-   // Max iterations permitted:
-   //
-   boost::uintmax_t max_iter = policies::get_max_root_iterations<Policy>();
-   std::pair<T, T> r = bracket_and_solve_root(f, guess, factor, swap_ab ? true : false, tol, max_iter, pol);
-   if(max_iter >= policies::get_max_root_iterations<Policy>())
-      policies::raise_evaluation_error<T>("boost::math::ibeta_invab_imp<%1%>(%1%,%1%,%1%)", "Unable to locate the root within a reasonable number of iterations, closest approximation so far was %1%", r.first, pol);
-   return (r.first + r.second) / 2;
-}
-
-} // namespace detail
-
-template <class RT1, class RT2, class RT3, class Policy>
-typename tools::promote_args<RT1, RT2, RT3>::type 
-      ibeta_inva(RT1 b, RT2 x, RT3 p, const Policy& pol)
-{
-   typedef typename tools::promote_args<RT1, RT2, RT3>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   typedef typename policies::normalise<
-      Policy, 
-      policies::promote_float<false>, 
-      policies::promote_double<false>, 
-      policies::discrete_quantile<>,
-      policies::assert_undefined<> >::type forwarding_policy;
-
-   if(p == 0)
-   {
-      return tools::max_value<result_type>();
-   }
-   if(p == 1)
-   {
-      return tools::min_value<result_type>();
-   }
-
-   return policies::checked_narrowing_cast<result_type, forwarding_policy>(
-      detail::ibeta_inv_ab_imp(
-         static_cast<value_type>(b), 
-         static_cast<value_type>(x), 
-         static_cast<value_type>(p), 
-         static_cast<value_type>(1 - static_cast<value_type>(p)), 
-         false, pol), 
-      "boost::math::ibeta_inva<%1%>(%1%,%1%,%1%)");
-}
-
-template <class RT1, class RT2, class RT3, class Policy>
-typename tools::promote_args<RT1, RT2, RT3>::type 
-      ibetac_inva(RT1 b, RT2 x, RT3 q, const Policy& pol)
-{
-   typedef typename tools::promote_args<RT1, RT2, RT3>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   typedef typename policies::normalise<
-      Policy, 
-      policies::promote_float<false>, 
-      policies::promote_double<false>, 
-      policies::discrete_quantile<>,
-      policies::assert_undefined<> >::type forwarding_policy;
-
-   if(q == 1)
-   {
-      return tools::max_value<result_type>();
-   }
-   if(q == 0)
-   {
-      return tools::min_value<result_type>();
-   }
-
-   return policies::checked_narrowing_cast<result_type, forwarding_policy>(
-      detail::ibeta_inv_ab_imp(
-         static_cast<value_type>(b), 
-         static_cast<value_type>(x), 
-         static_cast<value_type>(1 - static_cast<value_type>(q)), 
-         static_cast<value_type>(q), 
-         false, pol),
-      "boost::math::ibetac_inva<%1%>(%1%,%1%,%1%)");
-}
-
-template <class RT1, class RT2, class RT3, class Policy>
-typename tools::promote_args<RT1, RT2, RT3>::type 
-      ibeta_invb(RT1 a, RT2 x, RT3 p, const Policy& pol)
-{
-   typedef typename tools::promote_args<RT1, RT2, RT3>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   typedef typename policies::normalise<
-      Policy, 
-      policies::promote_float<false>, 
-      policies::promote_double<false>, 
-      policies::discrete_quantile<>,
-      policies::assert_undefined<> >::type forwarding_policy;
-
-   if(p == 0)
-   {
-      return tools::min_value<result_type>();
-   }
-   if(p == 1)
-   {
-      return tools::max_value<result_type>();
-   }
-
-   return policies::checked_narrowing_cast<result_type, forwarding_policy>(
-      detail::ibeta_inv_ab_imp(
-         static_cast<value_type>(a), 
-         static_cast<value_type>(x), 
-         static_cast<value_type>(p), 
-         static_cast<value_type>(1 - static_cast<value_type>(p)), 
-         true, pol),
-      "boost::math::ibeta_invb<%1%>(%1%,%1%,%1%)");
-}
-
-template <class RT1, class RT2, class RT3, class Policy>
-typename tools::promote_args<RT1, RT2, RT3>::type 
-      ibetac_invb(RT1 a, RT2 x, RT3 q, const Policy& pol)
-{
-   typedef typename tools::promote_args<RT1, RT2, RT3>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   typedef typename policies::normalise<
-      Policy, 
-      policies::promote_float<false>, 
-      policies::promote_double<false>, 
-      policies::discrete_quantile<>,
-      policies::assert_undefined<> >::type forwarding_policy;
-
-   if(q == 1)
-   {
-      return tools::min_value<result_type>();
-   }
-   if(q == 0)
-   {
-      return tools::max_value<result_type>();
-   }
-
-   return policies::checked_narrowing_cast<result_type, forwarding_policy>(
-      detail::ibeta_inv_ab_imp(
-         static_cast<value_type>(a), 
-         static_cast<value_type>(x), 
-         static_cast<value_type>(1 - static_cast<value_type>(q)), 
-         static_cast<value_type>(q), 
-         true, pol),
-         "boost::math::ibetac_invb<%1%>(%1%,%1%,%1%)");
-}
-
-template <class RT1, class RT2, class RT3>
-inline typename tools::promote_args<RT1, RT2, RT3>::type 
-         ibeta_inva(RT1 b, RT2 x, RT3 p)
-{
-   return boost::math::ibeta_inva(b, x, p, policies::policy<>());
-}
-
-template <class RT1, class RT2, class RT3>
-inline typename tools::promote_args<RT1, RT2, RT3>::type 
-         ibetac_inva(RT1 b, RT2 x, RT3 q)
-{
-   return boost::math::ibetac_inva(b, x, q, policies::policy<>());
-}
-
-template <class RT1, class RT2, class RT3>
-inline typename tools::promote_args<RT1, RT2, RT3>::type 
-         ibeta_invb(RT1 a, RT2 x, RT3 p)
-{
-   return boost::math::ibeta_invb(a, x, p, policies::policy<>());
-}
-
-template <class RT1, class RT2, class RT3>
-inline typename tools::promote_args<RT1, RT2, RT3>::type 
-         ibetac_invb(RT1 a, RT2 x, RT3 q)
-{
-   return boost::math::ibetac_invb(a, x, q, policies::policy<>());
-}
-
-} // namespace math
-} // namespace boost
-
-#endif // BOOST_MATH_SP_DETAIL_BETA_INV_AB
-
-
-
diff --git a/boost/math/special_functions/detail/ibeta_inverse.hpp b/boost/math/special_functions/detail/ibeta_inverse.hpp
deleted file mode 100644
index 0c328e3..0000000
--- a/boost/math/special_functions/detail/ibeta_inverse.hpp
+++ /dev/null
@@ -1,993 +0,0 @@
-//  Copyright John Maddock 2006.
-//  Copyright Paul A. Bristow 2007
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_SPECIAL_FUNCTIONS_IBETA_INVERSE_HPP
-#define BOOST_MATH_SPECIAL_FUNCTIONS_IBETA_INVERSE_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/math/special_functions/beta.hpp>
-#include <boost/math/special_functions/erf.hpp>
-#include <boost/math/tools/roots.hpp>
-#include <boost/math/special_functions/detail/t_distribution_inv.hpp>
-
-namespace boost{ namespace math{ namespace detail{
-
-//
-// Helper object used by root finding
-// code to convert eta to x.
-//
-template <class T>
-struct temme_root_finder
-{
-   temme_root_finder(const T t_, const T a_) : t(t_), a(a_) {}
-
-   boost::math::tuple<T, T> operator()(T x)
-   {
-      BOOST_MATH_STD_USING // ADL of std names
-
-      T y = 1 - x;
-      if(y == 0)
-      {
-         T big = tools::max_value<T>() / 4;
-         return boost::math::make_tuple(static_cast<T>(-big), static_cast<T>(-big));
-      }
-      if(x == 0)
-      {
-         T big = tools::max_value<T>() / 4;
-         return boost::math::make_tuple(static_cast<T>(-big), big);
-      }
-      T f = log(x) + a * log(y) + t;
-      T f1 = (1 / x) - (a / (y));
-      return boost::math::make_tuple(f, f1);
-   }
-private:
-   T t, a;
-};
-//
-// See:
-// "Asymptotic Inversion of the Incomplete Beta Function"
-// N.M. Temme
-// Journal of Computation and Applied Mathematics 41 (1992) 145-157.
-// Section 2.
-//
-template <class T, class Policy>
-T temme_method_1_ibeta_inverse(T a, T b, T z, const Policy& pol)
-{
-   BOOST_MATH_STD_USING // ADL of std names
-
-   const T r2 = sqrt(T(2));
-   //
-   // get the first approximation for eta from the inverse
-   // error function (Eq: 2.9 and 2.10).
-   //
-   T eta0 = boost::math::erfc_inv(2 * z, pol);
-   eta0 /= -sqrt(a / 2);
-
-   T terms[4] = { eta0 };
-   T workspace[7];
-   //
-   // calculate powers:
-   //
-   T B = b - a;
-   T B_2 = B * B;
-   T B_3 = B_2 * B;
-   //
-   // Calculate correction terms:
-   //
-
-   // See eq following 2.15:
-   workspace[0] = -B * r2 / 2;
-   workspace[1] = (1 - 2 * B) / 8;
-   workspace[2] = -(B * r2 / 48);
-   workspace[3] = T(-1) / 192;
-   workspace[4] = -B * r2 / 3840;
-   terms[1] = tools::evaluate_polynomial(workspace, eta0, 5);
-   // Eq Following 2.17:
-   workspace[0] = B * r2 * (3 * B - 2) / 12;
-   workspace[1] = (20 * B_2 - 12 * B + 1) / 128;
-   workspace[2] = B * r2 * (20 * B - 1) / 960;
-   workspace[3] = (16 * B_2 + 30 * B - 15) / 4608;
-   workspace[4] = B * r2 * (21 * B + 32) / 53760;
-   workspace[5] = (-32 * B_2 + 63) / 368640;
-   workspace[6] = -B * r2 * (120 * B + 17) / 25804480;
-   terms[2] = tools::evaluate_polynomial(workspace, eta0, 7);
-   // Eq Following 2.17:
-   workspace[0] = B * r2 * (-75 * B_2 + 80 * B - 16) / 480;
-   workspace[1] = (-1080 * B_3 + 868 * B_2 - 90 * B - 45) / 9216;
-   workspace[2] = B * r2 * (-1190 * B_2 + 84 * B + 373) / 53760;
-   workspace[3] = (-2240 * B_3 - 2508 * B_2 + 2100 * B - 165) / 368640;
-   terms[3] = tools::evaluate_polynomial(workspace, eta0, 4);
-   //
-   // Bring them together to get a final estimate for eta:
-   //
-   T eta = tools::evaluate_polynomial(terms, T(1/a), 4);
-   //
-   // now we need to convert eta to x, by solving the appropriate
-   // quadratic equation:
-   //
-   T eta_2 = eta * eta;
-   T c = -exp(-eta_2 / 2);
-   T x;
-   if(eta_2 == 0)
-      x = 0.5;
-   else
-      x = (1 + eta * sqrt((1 + c) / eta_2)) / 2;
-
-   BOOST_ASSERT(x >= 0);
-   BOOST_ASSERT(x <= 1);
-   BOOST_ASSERT(eta * (x - 0.5) >= 0);
-#ifdef BOOST_INSTRUMENT
-   std::cout << "Estimating x with Temme method 1: " << x << std::endl;
-#endif
-   return x;
-}
-//
-// See:
-// "Asymptotic Inversion of the Incomplete Beta Function"
-// N.M. Temme
-// Journal of Computation and Applied Mathematics 41 (1992) 145-157.
-// Section 3.
-//
-template <class T, class Policy>
-T temme_method_2_ibeta_inverse(T /*a*/, T /*b*/, T z, T r, T theta, const Policy& pol)
-{
-   BOOST_MATH_STD_USING // ADL of std names
-
-   //
-   // Get first estimate for eta, see Eq 3.9 and 3.10,
-   // but note there is a typo in Eq 3.10:
-   //
-   T eta0 = boost::math::erfc_inv(2 * z, pol);
-   eta0 /= -sqrt(r / 2);
-
-   T s = sin(theta);
-   T c = cos(theta);
-   //
-   // Now we need to purturb eta0 to get eta, which we do by
-   // evaluating the polynomial in 1/r at the bottom of page 151,
-   // to do this we first need the error terms e1, e2 e3
-   // which we'll fill into the array "terms".  Since these
-   // terms are themselves polynomials, we'll need another
-   // array "workspace" to calculate those...
-   //
-   T terms[4] = { eta0 };
-   T workspace[6];
-   //
-   // some powers of sin(theta)cos(theta) that we'll need later:
-   //
-   T sc = s * c;
-   T sc_2 = sc * sc;
-   T sc_3 = sc_2 * sc;
-   T sc_4 = sc_2 * sc_2;
-   T sc_5 = sc_2 * sc_3;
-   T sc_6 = sc_3 * sc_3;
-   T sc_7 = sc_4 * sc_3;
-   //
-   // Calculate e1 and put it in terms[1], see the middle of page 151:
-   //
-   workspace[0] = (2 * s * s - 1) / (3 * s * c);
-   static const BOOST_MATH_INT_TABLE_TYPE(T, int) co1[] = { -1, -5, 5 };
-   workspace[1] = -tools::evaluate_even_polynomial(co1, s, 3) / (36 * sc_2);
-   static const BOOST_MATH_INT_TABLE_TYPE(T, int) co2[] = { 1, 21, -69, 46 };
-   workspace[2] = tools::evaluate_even_polynomial(co2, s, 4) / (1620 * sc_3);
-   static const BOOST_MATH_INT_TABLE_TYPE(T, int) co3[] = { 7, -2, 33, -62, 31 };
-   workspace[3] = -tools::evaluate_even_polynomial(co3, s, 5) / (6480 * sc_4);
-   static const BOOST_MATH_INT_TABLE_TYPE(T, int) co4[] = { 25, -52, -17, 88, -115, 46 };
-   workspace[4] = tools::evaluate_even_polynomial(co4, s, 6) / (90720 * sc_5);
-   terms[1] = tools::evaluate_polynomial(workspace, eta0, 5);
-   //
-   // Now evaluate e2 and put it in terms[2]:
-   //
-   static const BOOST_MATH_INT_TABLE_TYPE(T, int) co5[] = { 7, 12, -78, 52 };
-   workspace[0] = -tools::evaluate_even_polynomial(co5, s, 4) / (405 * sc_3);
-   static const BOOST_MATH_INT_TABLE_TYPE(T, int) co6[] = { -7, 2, 183, -370, 185 };
-   workspace[1] = tools::evaluate_even_polynomial(co6, s, 5) / (2592 * sc_4);
-   static const BOOST_MATH_INT_TABLE_TYPE(T, int) co7[] = { -533, 776, -1835, 10240, -13525, 5410 };
-   workspace[2] = -tools::evaluate_even_polynomial(co7, s, 6) / (204120 * sc_5);
-   static const BOOST_MATH_INT_TABLE_TYPE(T, int) co8[] = { -1579, 3747, -3372, -15821, 45588, -45213, 15071 };
-   workspace[3] = -tools::evaluate_even_polynomial(co8, s, 7) / (2099520 * sc_6);
-   terms[2] = tools::evaluate_polynomial(workspace, eta0, 4);
-   //
-   // And e3, and put it in terms[3]:
-   //
-   static const BOOST_MATH_INT_TABLE_TYPE(T, int) co9[] = {449, -1259, -769, 6686, -9260, 3704 };
-   workspace[0] = tools::evaluate_even_polynomial(co9, s, 6) / (102060 * sc_5);
-   static const BOOST_MATH_INT_TABLE_TYPE(T, int) co10[] = { 63149, -151557, 140052, -727469, 2239932, -2251437, 750479 };
-   workspace[1] = -tools::evaluate_even_polynomial(co10, s, 7) / (20995200 * sc_6);
-   static const BOOST_MATH_INT_TABLE_TYPE(T, int) co11[] = { 29233, -78755, 105222, 146879, -1602610, 3195183, -2554139, 729754 };
-   workspace[2] = tools::evaluate_even_polynomial(co11, s, 8) / (36741600 * sc_7);
-   terms[3] = tools::evaluate_polynomial(workspace, eta0, 3);
-   //
-   // Bring the correction terms together to evaluate eta,
-   // this is the last equation on page 151:
-   //
-   T eta = tools::evaluate_polynomial(terms, T(1/r), 4);
-   //
-   // Now that we have eta we need to back solve for x,
-   // we seek the value of x that gives eta in Eq 3.2.
-   // The two methods used are described in section 5.
-   //
-   // Begin by defining a few variables we'll need later:
-   //
-   T x;
-   T s_2 = s * s;
-   T c_2 = c * c;
-   T alpha = c / s;
-   alpha *= alpha;
-   T lu = (-(eta * eta) / (2 * s_2) + log(s_2) + c_2 * log(c_2) / s_2);
-   //
-   // Temme doesn't specify what value to switch on here,
-   // but this seems to work pretty well:
-   //
-   if(fabs(eta) < 0.7)
-   {
-      //
-      // Small eta use the expansion Temme gives in the second equation
-      // of section 5, it's a polynomial in eta:
-      //
-      workspace[0] = s * s;
-      workspace[1] = s * c;
-      workspace[2] = (1 - 2 * workspace[0]) / 3;
-      static const BOOST_MATH_INT_TABLE_TYPE(T, int) co12[] = { 1, -13, 13 };
-      workspace[3] = tools::evaluate_polynomial(co12, workspace[0], 3) / (36 * s * c);
-      static const BOOST_MATH_INT_TABLE_TYPE(T, int) co13[] = { 1, 21, -69, 46 };
-      workspace[4] = tools::evaluate_polynomial(co13, workspace[0], 4) / (270 * workspace[0] * c * c);
-      x = tools::evaluate_polynomial(workspace, eta, 5);
-#ifdef BOOST_INSTRUMENT
-      std::cout << "Estimating x with Temme method 2 (small eta): " << x << std::endl;
-#endif
-   }
-   else
-   {
-      //
-      // If eta is large we need to solve Eq 3.2 more directly,
-      // begin by getting an initial approximation for x from
-      // the last equation on page 155, this is a polynomial in u:
-      //
-      T u = exp(lu);
-      workspace[0] = u;
-      workspace[1] = alpha;
-      workspace[2] = 0;
-      workspace[3] = 3 * alpha * (3 * alpha + 1) / 6;
-      workspace[4] = 4 * alpha * (4 * alpha + 1) * (4 * alpha + 2) / 24;
-      workspace[5] = 5 * alpha * (5 * alpha + 1) * (5 * alpha + 2) * (5 * alpha + 3) / 120;
-      x = tools::evaluate_polynomial(workspace, u, 6);
-      //
-      // At this point we may or may not have the right answer, Eq-3.2 has
-      // two solutions for x for any given eta, however the mapping in 3.2
-      // is 1:1 with the sign of eta and x-sin^2(theta) being the same.
-      // So we can check if we have the right root of 3.2, and if not
-      // switch x for 1-x.  This transformation is motivated by the fact
-      // that the distribution is *almost* symetric so 1-x will be in the right
-      // ball park for the solution:
-      //
-      if((x - s_2) * eta < 0)
-         x = 1 - x;
-#ifdef BOOST_INSTRUMENT
-      std::cout << "Estimating x with Temme method 2 (large eta): " << x << std::endl;
-#endif
-   }
-   //
-   // The final step is a few Newton-Raphson iterations to
-   // clean up our approximation for x, this is pretty cheap
-   // in general, and very cheap compared to an incomplete beta
-   // evaluation.  The limits set on x come from the observation
-   // that the sign of eta and x-sin^2(theta) are the same.
-   //
-   T lower, upper;
-   if(eta < 0)
-   {
-      lower = 0;
-      upper = s_2;
-   }
-   else
-   {
-      lower = s_2;
-      upper = 1;
-   }
-   //
-   // If our initial approximation is out of bounds then bisect:
-   //
-   if((x < lower) || (x > upper))
-      x = (lower+upper) / 2;
-   //
-   // And iterate:
-   //
-   x = tools::newton_raphson_iterate(
-      temme_root_finder<T>(-lu, alpha), x, lower, upper, policies::digits<T, Policy>() / 2);
-
-   return x;
-}
-//
-// See:
-// "Asymptotic Inversion of the Incomplete Beta Function"
-// N.M. Temme
-// Journal of Computation and Applied Mathematics 41 (1992) 145-157.
-// Section 4.
-//
-template <class T, class Policy>
-T temme_method_3_ibeta_inverse(T a, T b, T p, T q, const Policy& pol)
-{
-   BOOST_MATH_STD_USING // ADL of std names
-
-   //
-   // Begin by getting an initial approximation for the quantity
-   // eta from the dominant part of the incomplete beta:
-   //
-   T eta0;
-   if(p < q)
-      eta0 = boost::math::gamma_q_inv(b, p, pol);
-   else
-      eta0 = boost::math::gamma_p_inv(b, q, pol);
-   eta0 /= a;
-   //
-   // Define the variables and powers we'll need later on:
-   //
-   T mu = b / a;
-   T w = sqrt(1 + mu);
-   T w_2 = w * w;
-   T w_3 = w_2 * w;
-   T w_4 = w_2 * w_2;
-   T w_5 = w_3 * w_2;
-   T w_6 = w_3 * w_3;
-   T w_7 = w_4 * w_3;
-   T w_8 = w_4 * w_4;
-   T w_9 = w_5 * w_4;
-   T w_10 = w_5 * w_5;
-   T d = eta0 - mu;
-   T d_2 = d * d;
-   T d_3 = d_2 * d;
-   T d_4 = d_2 * d_2;
-   T w1 = w + 1;
-   T w1_2 = w1 * w1;
-   T w1_3 = w1 * w1_2;
-   T w1_4 = w1_2 * w1_2;
-   //
-   // Now we need to compute the purturbation error terms that
-   // convert eta0 to eta, these are all polynomials of polynomials.
-   // Probably these should be re-written to use tabulated data
-   // (see examples above), but it's less of a win in this case as we
-   // need to calculate the individual powers for the denominator terms
-   // anyway, so we might as well use them for the numerator-polynomials
-   // as well....
-   //
-   // Refer to p154-p155 for the details of these expansions:
-   //
-   T e1 = (w + 2) * (w - 1) / (3 * w);
-   e1 += (w_3 + 9 * w_2 + 21 * w + 5) * d / (36 * w_2 * w1);
-   e1 -= (w_4 - 13 * w_3 + 69 * w_2 + 167 * w + 46) * d_2 / (1620 * w1_2 * w_3);
-   e1 -= (7 * w_5 + 21 * w_4 + 70 * w_3 + 26 * w_2 - 93 * w - 31) * d_3 / (6480 * w1_3 * w_4);
-   e1 -= (75 * w_6 + 202 * w_5 + 188 * w_4 - 888 * w_3 - 1345 * w_2 + 118 * w + 138) * d_4 / (272160 * w1_4 * w_5);
-
-   T e2 = (28 * w_4 + 131 * w_3 + 402 * w_2 + 581 * w + 208) * (w - 1) / (1620 * w1 * w_3);
-   e2 -= (35 * w_6 - 154 * w_5 - 623 * w_4 - 1636 * w_3 - 3983 * w_2 - 3514 * w - 925) * d / (12960 * w1_2 * w_4);
-   e2 -= (2132 * w_7 + 7915 * w_6 + 16821 * w_5 + 35066 * w_4 + 87490 * w_3 + 141183 * w_2 + 95993 * w + 21640) * d_2  / (816480 * w_5 * w1_3);
-   e2 -= (11053 * w_8 + 53308 * w_7 + 117010 * w_6 + 163924 * w_5 + 116188 * w_4 - 258428 * w_3 - 677042 * w_2 - 481940 * w - 105497) * d_3 / (14696640 * w1_4 * w_6);
-
-   T e3 = -((3592 * w_7 + 8375 * w_6 - 1323 * w_5 - 29198 * w_4 - 89578 * w_3 - 154413 * w_2 - 116063 * w - 29632) * (w - 1)) / (816480 * w_5 * w1_2);
-   e3 -= (442043 * w_9 + 2054169 * w_8 + 3803094 * w_7 + 3470754 * w_6 + 2141568 * w_5 - 2393568 * w_4 - 19904934 * w_3 - 34714674 * w_2 - 23128299 * w - 5253353) * d / (146966400 * w_6 * w1_3);
-   e3 -= (116932 * w_10 + 819281 * w_9 + 2378172 * w_8 + 4341330 * w_7 + 6806004 * w_6 + 10622748 * w_5 + 18739500 * w_4 + 30651894 * w_3 + 30869976 * w_2 + 15431867 * w + 2919016) * d_2 / (146966400 * w1_4 * w_7);
-   //
-   // Combine eta0 and the error terms to compute eta (Second eqaution p155):
-   //
-   T eta = eta0 + e1 / a + e2 / (a * a) + e3 / (a * a * a);
-   //
-   // Now we need to solve Eq 4.2 to obtain x.  For any given value of
-   // eta there are two solutions to this equation, and since the distribtion
-   // may be very skewed, these are not related by x ~ 1-x we used when
-   // implementing section 3 above.  However we know that:
-   //
-   //  cross < x <= 1       ; iff eta < mu
-   //          x == cross   ; iff eta == mu
-   //     0 <= x < cross    ; iff eta > mu
-   //
-   // Where cross == 1 / (1 + mu)
-   // Many thanks to Prof Temme for clarifying this point.
-   //
-   // Therefore we'll just jump straight into Newton iterations
-   // to solve Eq 4.2 using these bounds, and simple bisection
-   // as the first guess, in practice this converges pretty quickly
-   // and we only need a few digits correct anyway:
-   //
-   if(eta <= 0)
-      eta = tools::min_value<T>();
-   T u = eta - mu * log(eta) + (1 + mu) * log(1 + mu) - mu;
-   T cross = 1 / (1 + mu);
-   T lower = eta < mu ? cross : 0;
-   T upper = eta < mu ? 1 : cross;
-   T x = (lower + upper) / 2;
-   x = tools::newton_raphson_iterate(
-      temme_root_finder<T>(u, mu), x, lower, upper, policies::digits<T, Policy>() / 2);
-#ifdef BOOST_INSTRUMENT
-   std::cout << "Estimating x with Temme method 3: " << x << std::endl;
-#endif
-   return x;
-}
-
-template <class T, class Policy>
-struct ibeta_roots
-{
-   ibeta_roots(T _a, T _b, T t, bool inv = false)
-      : a(_a), b(_b), target(t), invert(inv) {}
-
-   boost::math::tuple<T, T, T> operator()(T x)
-   {
-      BOOST_MATH_STD_USING // ADL of std names
-
-      BOOST_FPU_EXCEPTION_GUARD
-      
-      T f1;
-      T y = 1 - x;
-      T f = ibeta_imp(a, b, x, Policy(), invert, true, &f1) - target;
-      if(invert)
-         f1 = -f1;
-      if(y == 0)
-         y = tools::min_value<T>() * 64;
-      if(x == 0)
-         x = tools::min_value<T>() * 64;
-
-      T f2 = f1 * (-y * a + (b - 2) * x + 1);
-      if(fabs(f2) < y * x * tools::max_value<T>())
-         f2 /= (y * x);
-      if(invert)
-         f2 = -f2;
-
-      // make sure we don't have a zero derivative:
-      if(f1 == 0)
-         f1 = (invert ? -1 : 1) * tools::min_value<T>() * 64;
-
-      return boost::math::make_tuple(f, f1, f2);
-   }
-private:
-   T a, b, target;
-   bool invert;
-};
-
-template <class T, class Policy>
-T ibeta_inv_imp(T a, T b, T p, T q, const Policy& pol, T* py)
-{
-   BOOST_MATH_STD_USING  // For ADL of math functions.
-
-   //
-   // The flag invert is set to true if we swap a for b and p for q,
-   // in which case the result has to be subtracted from 1:
-   //
-   bool invert = false;
-   //
-   // Handle trivial cases first:
-   //
-   if(q == 0)
-   {
-      if(py) *py = 0;
-      return 1;
-   }
-   else if(p == 0)
-   {
-      if(py) *py = 1;
-      return 0;
-   }
-   else if(a == 1)
-   {
-      if(b == 1)
-      {
-         if(py) *py = 1 - p;
-         return p;
-      }
-      // Change things around so we can handle as b == 1 special case below:
-      std::swap(a, b);
-      std::swap(p, q);
-      invert = true;
-   }
-   //
-   // Depending upon which approximation method we use, we may end up
-   // calculating either x or y initially (where y = 1-x):
-   //
-   T x = 0; // Set to a safe zero to avoid a
-   // MSVC 2005 warning C4701: potentially uninitialized local variable 'x' used
-   // But code inspection appears to ensure that x IS assigned whatever the code path.
-   T y; 
-
-   // For some of the methods we can put tighter bounds
-   // on the result than simply [0,1]:
-   //
-   T lower = 0;
-   T upper = 1;
-   //
-   // Student's T with b = 0.5 gets handled as a special case, swap
-   // around if the arguments are in the "wrong" order:
-   //
-   if(a == 0.5f)
-   {
-      if(b == 0.5f)
-      {
-         x = sin(p * constants::half_pi<T>());
-         x *= x;
-         if(py)
-         {
-            *py = sin(q * constants::half_pi<T>());
-            *py *= *py;
-         }
-         return x;
-      }
-      else if(b > 0.5f)
-      {
-         std::swap(a, b);
-         std::swap(p, q);
-         invert = !invert;
-      }
-   }
-   //
-   // Select calculation method for the initial estimate:
-   //
-   if((b == 0.5f) && (a >= 0.5f) && (p != 1))
-   {
-      //
-      // We have a Student's T distribution:
-      x = find_ibeta_inv_from_t_dist(a, p, q, &y, pol);
-   }
-   else if(b == 1)
-   {
-      if(p < q)
-      {
-         if(a > 1)
-         {
-            x = pow(p, 1 / a);
-            y = -expm1(log(p) / a);
-         }
-         else
-         {
-            x = pow(p, 1 / a);
-            y = 1 - x;
-         }
-      }
-      else
-      {
-         x = exp(log1p(-q) / a);
-         y = -expm1(log1p(-q) / a);
-      }
-      if(invert)
-         std::swap(x, y);
-      if(py)
-         *py = y;
-      return x;
-   }
-   else if(a + b > 5)
-   {
-      //
-      // When a+b is large then we can use one of Prof Temme's
-      // asymptotic expansions, begin by swapping things around
-      // so that p < 0.5, we do this to avoid cancellations errors
-      // when p is large.
-      //
-      if(p > 0.5)
-      {
-         std::swap(a, b);
-         std::swap(p, q);
-         invert = !invert;
-      }
-      T minv = (std::min)(a, b);
-      T maxv = (std::max)(a, b);
-      if((sqrt(minv) > (maxv - minv)) && (minv > 5))
-      {
-         //
-         // When a and b differ by a small amount
-         // the curve is quite symmetrical and we can use an error
-         // function to approximate the inverse. This is the cheapest
-         // of the three Temme expantions, and the calculated value
-         // for x will never be much larger than p, so we don't have
-         // to worry about cancellation as long as p is small.
-         //
-         x = temme_method_1_ibeta_inverse(a, b, p, pol);
-         y = 1 - x;
-      }
-      else
-      {
-         T r = a + b;
-         T theta = asin(sqrt(a / r));
-         T lambda = minv / r;
-         if((lambda >= 0.2) && (lambda <= 0.8) && (r >= 10))
-         {
-            //
-            // The second error function case is the next cheapest
-            // to use, it brakes down when the result is likely to be
-            // very small, if a+b is also small, but we can use a
-            // cheaper expansion there in any case.  As before x won't
-            // be much larger than p, so as long as p is small we should
-            // be free of cancellation error.
-            //
-            T ppa = pow(p, 1/a);
-            if((ppa < 0.0025) && (a + b < 200))
-            {
-               x = ppa * pow(a * boost::math::beta(a, b, pol), 1/a);
-            }
-            else
-               x = temme_method_2_ibeta_inverse(a, b, p, r, theta, pol);
-            y = 1 - x;
-         }
-         else
-         {
-            //
-            // If we get here then a and b are very different in magnitude
-            // and we need to use the third of Temme's methods which
-            // involves inverting the incomplete gamma.  This is much more
-            // expensive than the other methods.  We also can only use this
-            // method when a > b, which can lead to cancellation errors
-            // if we really want y (as we will when x is close to 1), so
-            // a different expansion is used in that case.
-            //
-            if(a < b)
-            {
-               std::swap(a, b);
-               std::swap(p, q);
-               invert = !invert;
-            }
-            //
-            // Try and compute the easy way first:
-            //
-            T bet = 0;
-            if(b < 2)
-               bet = boost::math::beta(a, b, pol);
-            if(bet != 0)
-            {
-               y = pow(b * q * bet, 1/b);
-               x = 1 - y;
-            }
-            else 
-               y = 1;
-            if(y > 1e-5)
-            {
-               x = temme_method_3_ibeta_inverse(a, b, p, q, pol);
-               y = 1 - x;
-            }
-         }
-      }
-   }
-   else if((a < 1) && (b < 1))
-   {
-      //
-      // Both a and b less than 1,
-      // there is a point of inflection at xs:
-      //
-      T xs = (1 - a) / (2 - a - b);
-      //
-      // Now we need to ensure that we start our iteration from the
-      // right side of the inflection point:
-      //
-      T fs = boost::math::ibeta(a, b, xs, pol) - p;
-      if(fabs(fs) / p < tools::epsilon<T>() * 3)
-      {
-         // The result is at the point of inflection, best just return it:
-         *py = invert ? xs : 1 - xs;
-         return invert ? 1-xs : xs;
-      }
-      if(fs < 0)
-      {
-         std::swap(a, b);
-         std::swap(p, q);
-         invert = !invert;
-         xs = 1 - xs;
-      }
-      T xg = pow(a * p * boost::math::beta(a, b, pol), 1/a);
-      x = xg / (1 + xg);
-      y = 1 / (1 + xg);
-      //
-      // And finally we know that our result is below the inflection
-      // point, so set an upper limit on our search:
-      //
-      if(x > xs)
-         x = xs;
-      upper = xs;
-   }
-   else if((a > 1) && (b > 1))
-   {
-      //
-      // Small a and b, both greater than 1,
-      // there is a point of inflection at xs,
-      // and it's complement is xs2, we must always
-      // start our iteration from the right side of the
-      // point of inflection.
-      //
-      T xs = (a - 1) / (a + b - 2);
-      T xs2 = (b - 1) / (a + b - 2);
-      T ps = boost::math::ibeta(a, b, xs, pol) - p;
-
-      if(ps < 0)
-      {
-         std::swap(a, b);
-         std::swap(p, q);
-         std::swap(xs, xs2);
-         invert = !invert;
-      }
-      //
-      // Estimate x and y, using expm1 to get a good estimate
-      // for y when it's very small:
-      //
-      T lx = log(p * a * boost::math::beta(a, b, pol)) / a;
-      x = exp(lx);
-      y = x < 0.9 ? T(1 - x) : (T)(-boost::math::expm1(lx, pol));
-
-      if((b < a) && (x < 0.2))
-      {
-         //
-         // Under a limited range of circumstances we can improve
-         // our estimate for x, frankly it's clear if this has much effect!
-         //
-         T ap1 = a - 1;
-         T bm1 = b - 1;
-         T a_2 = a * a;
-         T a_3 = a * a_2;
-         T b_2 = b * b;
-         T terms[5] = { 0, 1 };
-         terms[2] = bm1 / ap1;
-         ap1 *= ap1;
-         terms[3] = bm1 * (3 * a * b + 5 * b + a_2 - a - 4) / (2 * (a + 2) * ap1);
-         ap1 *= (a + 1);
-         terms[4] = bm1 * (33 * a * b_2 + 31 * b_2 + 8 * a_2 * b_2 - 30 * a * b - 47 * b + 11 * a_2 * b + 6 * a_3 * b + 18 + 4 * a - a_3 + a_2 * a_2 - 10 * a_2)
-                    / (3 * (a + 3) * (a + 2) * ap1);
-         x = tools::evaluate_polynomial(terms, x, 5);
-      }
-      //
-      // And finally we know that our result is below the inflection
-      // point, so set an upper limit on our search:
-      //
-      if(x > xs)
-         x = xs;
-      upper = xs;
-   }
-   else /*if((a <= 1) != (b <= 1))*/
-   {
-      //
-      // If all else fails we get here, only one of a and b
-      // is above 1, and a+b is small.  Start by swapping
-      // things around so that we have a concave curve with b > a
-      // and no points of inflection in [0,1].  As long as we expect
-      // x to be small then we can use the simple (and cheap) power
-      // term to estimate x, but when we expect x to be large then
-      // this greatly underestimates x and leaves us trying to
-      // iterate "round the corner" which may take almost forever...
-      //
-      // We could use Temme's inverse gamma function case in that case,
-      // this works really rather well (albeit expensively) even though
-      // strictly speaking we're outside it's defined range.
-      //
-      // However it's expensive to compute, and an alternative approach
-      // which models the curve as a distorted quarter circle is much
-      // cheaper to compute, and still keeps the number of iterations
-      // required down to a reasonable level.  With thanks to Prof Temme
-      // for this suggestion.
-      //
-      if(b < a)
-      {
-         std::swap(a, b);
-         std::swap(p, q);
-         invert = !invert;
-      }
-      if(pow(p, 1/a) < 0.5)
-      {
-         x = pow(p * a * boost::math::beta(a, b, pol), 1 / a);
-         if(x == 0)
-            x = boost::math::tools::min_value<T>();
-         y = 1 - x;
-      }
-      else /*if(pow(q, 1/b) < 0.1)*/
-      {
-         // model a distorted quarter circle:
-         y = pow(1 - pow(p, b * boost::math::beta(a, b, pol)), 1/b);
-         if(y == 0)
-            y = boost::math::tools::min_value<T>();
-         x = 1 - y;
-      }
-   }
-
-   //
-   // Now we have a guess for x (and for y) we can set things up for
-   // iteration.  If x > 0.5 it pays to swap things round:
-   //
-   if(x > 0.5)
-   {
-      std::swap(a, b);
-      std::swap(p, q);
-      std::swap(x, y);
-      invert = !invert;
-      T l = 1 - upper;
-      T u = 1 - lower;
-      lower = l;
-      upper = u;
-   }
-   //
-   // lower bound for our search:
-   //
-   // We're not interested in denormalised answers as these tend to
-   // these tend to take up lots of iterations, given that we can't get
-   // accurate derivatives in this area (they tend to be infinite).
-   //
-   if(lower == 0)
-   {
-      if(invert && (py == 0))
-      {
-         //
-         // We're not interested in answers smaller than machine epsilon:
-         //
-         lower = boost::math::tools::epsilon<T>();
-         if(x < lower)
-            x = lower;
-      }
-      else
-         lower = boost::math::tools::min_value<T>();
-      if(x < lower)
-         x = lower;
-   }
-   //
-   // Figure out how many digits to iterate towards:
-   //
-   int digits = boost::math::policies::digits<T, Policy>() / 2;
-   if((x < 1e-50) && ((a < 1) || (b < 1)))
-   {
-      //
-      // If we're in a region where the first derivative is very
-      // large, then we have to take care that the root-finder
-      // doesn't terminate prematurely.  We'll bump the precision
-      // up to avoid this, but we have to take care not to set the
-      // precision too high or the last few iterations will just
-      // thrash around and convergence may be slow in this case.
-      // Try 3/4 of machine epsilon:
-      //
-      digits *= 3;  
-      digits /= 2;
-   }
-   //
-   // Now iterate, we can use either p or q as the target here
-   // depending on which is smaller:
-   //
-   boost::uintmax_t max_iter = policies::get_max_root_iterations<Policy>();
-   x = boost::math::tools::halley_iterate(
-      boost::math::detail::ibeta_roots<T, Policy>(a, b, (p < q ? p : q), (p < q ? false : true)), x, lower, upper, digits, max_iter);
-   policies::check_root_iterations<T>("boost::math::ibeta<%1%>(%1%, %1%, %1%)", max_iter, pol);
-   //
-   // We don't really want these asserts here, but they are useful for sanity
-   // checking that we have the limits right, uncomment if you suspect bugs *only*.
-   //
-   //BOOST_ASSERT(x != upper);
-   //BOOST_ASSERT((x != lower) || (x == boost::math::tools::min_value<T>()) || (x == boost::math::tools::epsilon<T>()));
-   //
-   // Tidy up, if we "lower" was too high then zero is the best answer we have:
-   //
-   if(x == lower)
-      x = 0;
-   if(py)
-      *py = invert ? x : 1 - x;
-   return invert ? 1-x : x;
-}
-
-} // namespace detail
-
-template <class T1, class T2, class T3, class T4, class Policy>
-inline typename tools::promote_args<T1, T2, T3, T4>::type  
-   ibeta_inv(T1 a, T2 b, T3 p, T4* py, const Policy& pol)
-{
-   static const char* function = "boost::math::ibeta_inv<%1%>(%1%,%1%,%1%)";
-   BOOST_FPU_EXCEPTION_GUARD
-   typedef typename tools::promote_args<T1, T2, T3, T4>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   typedef typename policies::normalise<
-      Policy, 
-      policies::promote_float<false>, 
-      policies::promote_double<false>, 
-      policies::discrete_quantile<>,
-      policies::assert_undefined<> >::type forwarding_policy;
-
-   if(a <= 0)
-      return policies::raise_domain_error<result_type>(function, "The argument a to the incomplete beta function inverse must be greater than zero (got a=%1%).", a, pol);
-   if(b <= 0)
-      return policies::raise_domain_error<result_type>(function, "The argument b to the incomplete beta function inverse must be greater than zero (got b=%1%).", b, pol);
-   if((p < 0) || (p > 1))
-      return policies::raise_domain_error<result_type>(function, "Argument p outside the range [0,1] in the incomplete beta function inverse (got p=%1%).", p, pol);
-
-   value_type rx, ry;
-
-   rx = detail::ibeta_inv_imp(
-         static_cast<value_type>(a),
-         static_cast<value_type>(b),
-         static_cast<value_type>(p),
-         static_cast<value_type>(1 - p),
-         forwarding_policy(), &ry);
-
-   if(py) *py = policies::checked_narrowing_cast<T4, forwarding_policy>(ry, function);
-   return policies::checked_narrowing_cast<result_type, forwarding_policy>(rx, function);
-}
-
-template <class T1, class T2, class T3, class T4>
-inline typename tools::promote_args<T1, T2, T3, T4>::type  
-   ibeta_inv(T1 a, T2 b, T3 p, T4* py)
-{
-   return ibeta_inv(a, b, p, py, policies::policy<>());
-}
-
-template <class T1, class T2, class T3>
-inline typename tools::promote_args<T1, T2, T3>::type 
-   ibeta_inv(T1 a, T2 b, T3 p)
-{
-   typedef typename tools::promote_args<T1, T2, T3>::type result_type;
-   return ibeta_inv(a, b, p, static_cast<result_type*>(0), policies::policy<>());
-}
-
-template <class T1, class T2, class T3, class Policy>
-inline typename tools::promote_args<T1, T2, T3>::type 
-   ibeta_inv(T1 a, T2 b, T3 p, const Policy& pol)
-{
-   typedef typename tools::promote_args<T1, T2, T3>::type result_type;
-   return ibeta_inv(a, b, p, static_cast<result_type*>(0), pol);
-}
-
-template <class T1, class T2, class T3, class T4, class Policy>
-inline typename tools::promote_args<T1, T2, T3, T4>::type 
-   ibetac_inv(T1 a, T2 b, T3 q, T4* py, const Policy& pol)
-{
-   static const char* function = "boost::math::ibetac_inv<%1%>(%1%,%1%,%1%)";
-   BOOST_FPU_EXCEPTION_GUARD
-   typedef typename tools::promote_args<T1, T2, T3, T4>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   typedef typename policies::normalise<
-      Policy, 
-      policies::promote_float<false>, 
-      policies::promote_double<false>, 
-      policies::discrete_quantile<>,
-      policies::assert_undefined<> >::type forwarding_policy;
-
-   if(a <= 0)
-      policies::raise_domain_error<result_type>(function, "The argument a to the incomplete beta function inverse must be greater than zero (got a=%1%).", a, pol);
-   if(b <= 0)
-      policies::raise_domain_error<result_type>(function, "The argument b to the incomplete beta function inverse must be greater than zero (got b=%1%).", b, pol);
-   if((q < 0) || (q > 1))
-      policies::raise_domain_error<result_type>(function, "Argument q outside the range [0,1] in the incomplete beta function inverse (got q=%1%).", q, pol);
-
-   value_type rx, ry;
-
-   rx = detail::ibeta_inv_imp(
-         static_cast<value_type>(a),
-         static_cast<value_type>(b),
-         static_cast<value_type>(1 - q),
-         static_cast<value_type>(q),
-         forwarding_policy(), &ry);
-
-   if(py) *py = policies::checked_narrowing_cast<T4, forwarding_policy>(ry, function);
-   return policies::checked_narrowing_cast<result_type, forwarding_policy>(rx, function);
-}
-
-template <class T1, class T2, class T3, class T4>
-inline typename tools::promote_args<T1, T2, T3, T4>::type 
-   ibetac_inv(T1 a, T2 b, T3 q, T4* py)
-{
-   return ibetac_inv(a, b, q, py, policies::policy<>());
-}
-
-template <class RT1, class RT2, class RT3>
-inline typename tools::promote_args<RT1, RT2, RT3>::type 
-   ibetac_inv(RT1 a, RT2 b, RT3 q)
-{
-   typedef typename tools::promote_args<RT1, RT2, RT3>::type result_type;
-   return ibetac_inv(a, b, q, static_cast<result_type*>(0), policies::policy<>());
-}
-
-template <class RT1, class RT2, class RT3, class Policy>
-inline typename tools::promote_args<RT1, RT2, RT3>::type
-   ibetac_inv(RT1 a, RT2 b, RT3 q, const Policy& pol)
-{
-   typedef typename tools::promote_args<RT1, RT2, RT3>::type result_type;
-   return ibetac_inv(a, b, q, static_cast<result_type*>(0), pol);
-}
-
-} // namespace math
-} // namespace boost
-
-#endif // BOOST_MATH_SPECIAL_FUNCTIONS_IGAMMA_INVERSE_HPP
-
-
-
-
diff --git a/boost/math/special_functions/detail/iconv.hpp b/boost/math/special_functions/detail/iconv.hpp
deleted file mode 100644
index 4256ffc..0000000
--- a/boost/math/special_functions/detail/iconv.hpp
+++ /dev/null
@@ -1,42 +0,0 @@
-//  Copyright (c) 2009 John Maddock
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_ICONV_HPP
-#define BOOST_MATH_ICONV_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/math/special_functions/round.hpp>
-#include <boost/type_traits/is_convertible.hpp>
-
-namespace boost { namespace math { namespace detail{
-
-template <class T, class Policy>
-inline int iconv_imp(T v, Policy const&, mpl::true_ const&)
-{
-   return static_cast<int>(v);
-}
-
-template <class T, class Policy>
-inline int iconv_imp(T v, Policy const& pol, mpl::false_ const&)
-{
-   BOOST_MATH_STD_USING
-   return iround(v, pol);
-}
-
-template <class T, class Policy>
-inline int iconv(T v, Policy const& pol)
-{
-   typedef typename boost::is_convertible<T, int>::type tag_type;
-   return iconv_imp(v, pol, tag_type());
-}
-
-
-}}} // namespaces
-
-#endif // BOOST_MATH_ICONV_HPP
-
diff --git a/boost/math/special_functions/detail/igamma_inverse.hpp b/boost/math/special_functions/detail/igamma_inverse.hpp
deleted file mode 100644
index 42c2784..0000000
--- a/boost/math/special_functions/detail/igamma_inverse.hpp
+++ /dev/null
@@ -1,551 +0,0 @@
-//  (C) Copyright John Maddock 2006.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_SPECIAL_FUNCTIONS_IGAMMA_INVERSE_HPP
-#define BOOST_MATH_SPECIAL_FUNCTIONS_IGAMMA_INVERSE_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/math/tools/tuple.hpp>
-#include <boost/math/special_functions/gamma.hpp>
-#include <boost/math/special_functions/sign.hpp>
-#include <boost/math/tools/roots.hpp>
-#include <boost/math/policies/error_handling.hpp>
-
-namespace boost{ namespace math{
-
-namespace detail{
-
-template <class T>
-T find_inverse_s(T p, T q)
-{
-   //
-   // Computation of the Incomplete Gamma Function Ratios and their Inverse
-   // ARMIDO R. DIDONATO and ALFRED H. MORRIS, JR.
-   // ACM Transactions on Mathematical Software, Vol. 12, No. 4,
-   // December 1986, Pages 377-393.
-   //
-   // See equation 32.
-   //
-   BOOST_MATH_STD_USING
-   T t;
-   if(p < 0.5)
-   {
-      t = sqrt(-2 * log(p));
-   }
-   else
-   {
-      t = sqrt(-2 * log(q));
-   }
-   static const double a[4] = { 3.31125922108741, 11.6616720288968, 4.28342155967104, 0.213623493715853 };
-   static const double b[5] = { 1, 6.61053765625462, 6.40691597760039, 1.27364489782223, 0.3611708101884203e-1 };
-   T s = t - tools::evaluate_polynomial(a, t) / tools::evaluate_polynomial(b, t);
-   if(p < 0.5)
-      s = -s;
-   return s;
-}
-
-template <class T>
-T didonato_SN(T a, T x, unsigned N, T tolerance = 0)
-{
-   //
-   // Computation of the Incomplete Gamma Function Ratios and their Inverse
-   // ARMIDO R. DIDONATO and ALFRED H. MORRIS, JR.
-   // ACM Transactions on Mathematical Software, Vol. 12, No. 4,
-   // December 1986, Pages 377-393.
-   //
-   // See equation 34.
-   //
-   T sum = 1;
-   if(N >= 1)
-   {
-      T partial = x / (a + 1);
-      sum += partial;
-      for(unsigned i = 2; i <= N; ++i)
-      {
-         partial *= x / (a + i);
-         sum += partial;
-         if(partial < tolerance)
-            break;
-      }
-   }
-   return sum;
-}
-
-template <class T, class Policy>
-inline T didonato_FN(T p, T a, T x, unsigned N, T tolerance, const Policy& pol)
-{
-   //
-   // Computation of the Incomplete Gamma Function Ratios and their Inverse
-   // ARMIDO R. DIDONATO and ALFRED H. MORRIS, JR.
-   // ACM Transactions on Mathematical Software, Vol. 12, No. 4,
-   // December 1986, Pages 377-393.
-   //
-   // See equation 34.
-   //
-   BOOST_MATH_STD_USING
-   T u = log(p) + boost::math::lgamma(a + 1, pol);
-   return exp((u + x - log(didonato_SN(a, x, N, tolerance))) / a);
-}
-
-template <class T, class Policy>
-T find_inverse_gamma(T a, T p, T q, const Policy& pol, bool* p_has_10_digits)
-{
-   //
-   // In order to understand what's going on here, you will
-   // need to refer to:
-   //
-   // Computation of the Incomplete Gamma Function Ratios and their Inverse
-   // ARMIDO R. DIDONATO and ALFRED H. MORRIS, JR.
-   // ACM Transactions on Mathematical Software, Vol. 12, No. 4,
-   // December 1986, Pages 377-393.
-   //
-   BOOST_MATH_STD_USING
-
-   T result;
-   *p_has_10_digits = false;
-
-   if(a == 1)
-   {
-      result = -log(q);
-      BOOST_MATH_INSTRUMENT_VARIABLE(result);
-   }
-   else if(a < 1)
-   {
-      T g = boost::math::tgamma(a, pol);
-      T b = q * g;
-      BOOST_MATH_INSTRUMENT_VARIABLE(g);
-      BOOST_MATH_INSTRUMENT_VARIABLE(b);
-      if((b > 0.6) || ((b >= 0.45) && (a >= 0.3)))
-      {
-         // DiDonato & Morris Eq 21: 
-         //
-         // There is a slight variation from DiDonato and Morris here:
-         // the first form given here is unstable when p is close to 1,
-         // making it impossible to compute the inverse of Q(a,x) for small
-         // q.  Fortunately the second form works perfectly well in this case.
-         //
-         T u;
-         if((b * q > 1e-8) && (q > 1e-5))
-         {
-            u = pow(p * g * a, 1 / a);
-            BOOST_MATH_INSTRUMENT_VARIABLE(u);
-         }
-         else
-         {
-            u = exp((-q / a) - constants::euler<T>());
-            BOOST_MATH_INSTRUMENT_VARIABLE(u);
-         }
-         result = u / (1 - (u / (a + 1)));
-         BOOST_MATH_INSTRUMENT_VARIABLE(result);
-      }
-      else if((a < 0.3) && (b >= 0.35))
-      {
-         // DiDonato & Morris Eq 22:
-         T t = exp(-constants::euler<T>() - b);
-         T u = t * exp(t);
-         result = t * exp(u);
-         BOOST_MATH_INSTRUMENT_VARIABLE(result);
-      }
-      else if((b > 0.15) || (a >= 0.3))
-      {
-         // DiDonato & Morris Eq 23:
-         T y = -log(b);
-         T u = y - (1 - a) * log(y);
-         result = y - (1 - a) * log(u) - log(1 + (1 - a) / (1 + u));
-         BOOST_MATH_INSTRUMENT_VARIABLE(result);
-      }
-      else if (b > 0.1)
-      {
-         // DiDonato & Morris Eq 24:
-         T y = -log(b);
-         T u = y - (1 - a) * log(y);
-         result = y - (1 - a) * log(u) - log((u * u + 2 * (3 - a) * u + (2 - a) * (3 - a)) / (u * u + (5 - a) * u + 2));
-         BOOST_MATH_INSTRUMENT_VARIABLE(result);
-      }
-      else
-      {
-         // DiDonato & Morris Eq 25:
-         T y = -log(b);
-         T c1 = (a - 1) * log(y);
-         T c1_2 = c1 * c1;
-         T c1_3 = c1_2 * c1;
-         T c1_4 = c1_2 * c1_2;
-         T a_2 = a * a;
-         T a_3 = a_2 * a;
-
-         T c2 = (a - 1) * (1 + c1);
-         T c3 = (a - 1) * (-(c1_2 / 2) + (a - 2) * c1 + (3 * a - 5) / 2);
-         T c4 = (a - 1) * ((c1_3 / 3) - (3 * a - 5) * c1_2 / 2 + (a_2 - 6 * a + 7) * c1 + (11 * a_2 - 46 * a + 47) / 6);
-         T c5 = (a - 1) * (-(c1_4 / 4)
-                           + (11 * a - 17) * c1_3 / 6
-                           + (-3 * a_2 + 13 * a -13) * c1_2
-                           + (2 * a_3 - 25 * a_2 + 72 * a - 61) * c1 / 2
-                           + (25 * a_3 - 195 * a_2 + 477 * a - 379) / 12);
-
-         T y_2 = y * y;
-         T y_3 = y_2 * y;
-         T y_4 = y_2 * y_2;
-         result = y + c1 + (c2 / y) + (c3 / y_2) + (c4 / y_3) + (c5 / y_4);
-         BOOST_MATH_INSTRUMENT_VARIABLE(result);
-         if(b < 1e-28f)
-            *p_has_10_digits = true;
-      }
-   }
-   else
-   {
-      // DiDonato and Morris Eq 31:
-      T s = find_inverse_s(p, q);
-
-      BOOST_MATH_INSTRUMENT_VARIABLE(s);
-
-      T s_2 = s * s;
-      T s_3 = s_2 * s;
-      T s_4 = s_2 * s_2;
-      T s_5 = s_4 * s;
-      T ra = sqrt(a);
-
-      BOOST_MATH_INSTRUMENT_VARIABLE(ra);
-
-      T w = a + s * ra + (s * s -1) / 3;
-      w += (s_3 - 7 * s) / (36 * ra);
-      w -= (3 * s_4 + 7 * s_2 - 16) / (810 * a);
-      w += (9 * s_5 + 256 * s_3 - 433 * s) / (38880 * a * ra);
-
-      BOOST_MATH_INSTRUMENT_VARIABLE(w);
-
-      if((a >= 500) && (fabs(1 - w / a) < 1e-6))
-      {
-         result = w;
-         *p_has_10_digits = true;
-         BOOST_MATH_INSTRUMENT_VARIABLE(result);
-      }
-      else if (p > 0.5)
-      {
-         if(w < 3 * a)
-         {
-            result = w;
-            BOOST_MATH_INSTRUMENT_VARIABLE(result);
-         }
-         else
-         {
-            T D = (std::max)(T(2), T(a * (a - 1)));
-            T lg = boost::math::lgamma(a, pol);
-            T lb = log(q) + lg;
-            if(lb < -D * 2.3)
-            {
-               // DiDonato and Morris Eq 25:
-               T y = -lb;
-               T c1 = (a - 1) * log(y);
-               T c1_2 = c1 * c1;
-               T c1_3 = c1_2 * c1;
-               T c1_4 = c1_2 * c1_2;
-               T a_2 = a * a;
-               T a_3 = a_2 * a;
-
-               T c2 = (a - 1) * (1 + c1);
-               T c3 = (a - 1) * (-(c1_2 / 2) + (a - 2) * c1 + (3 * a - 5) / 2);
-               T c4 = (a - 1) * ((c1_3 / 3) - (3 * a - 5) * c1_2 / 2 + (a_2 - 6 * a + 7) * c1 + (11 * a_2 - 46 * a + 47) / 6);
-               T c5 = (a - 1) * (-(c1_4 / 4)
-                                 + (11 * a - 17) * c1_3 / 6
-                                 + (-3 * a_2 + 13 * a -13) * c1_2
-                                 + (2 * a_3 - 25 * a_2 + 72 * a - 61) * c1 / 2
-                                 + (25 * a_3 - 195 * a_2 + 477 * a - 379) / 12);
-
-               T y_2 = y * y;
-               T y_3 = y_2 * y;
-               T y_4 = y_2 * y_2;
-               result = y + c1 + (c2 / y) + (c3 / y_2) + (c4 / y_3) + (c5 / y_4);
-               BOOST_MATH_INSTRUMENT_VARIABLE(result);
-            }
-            else
-            {
-               // DiDonato and Morris Eq 33:
-               T u = -lb + (a - 1) * log(w) - log(1 + (1 - a) / (1 + w));
-               result = -lb + (a - 1) * log(u) - log(1 + (1 - a) / (1 + u));
-               BOOST_MATH_INSTRUMENT_VARIABLE(result);
-            }
-         }
-      }
-      else
-      {
-         T z = w;
-         T ap1 = a + 1;
-         T ap2 = a + 2;
-         if(w < 0.15f * ap1)
-         {
-            // DiDonato and Morris Eq 35:
-            T v = log(p) + boost::math::lgamma(ap1, pol);
-            z = exp((v + w) / a);
-            s = boost::math::log1p(z / ap1 * (1 + z / ap2));
-            z = exp((v + z - s) / a);
-            s = boost::math::log1p(z / ap1 * (1 + z / ap2));
-            z = exp((v + z - s) / a);
-            s = boost::math::log1p(z / ap1 * (1 + z / ap2 * (1 + z / (a + 3))));
-            z = exp((v + z - s) / a);
-            BOOST_MATH_INSTRUMENT_VARIABLE(z);
-         }
-
-         if((z <= 0.01 * ap1) || (z > 0.7 * ap1))
-         {
-            result = z;
-            if(z <= 0.002 * ap1)
-               *p_has_10_digits = true;
-            BOOST_MATH_INSTRUMENT_VARIABLE(result);
-         }
-         else
-         {
-            // DiDonato and Morris Eq 36:
-            T ls = log(didonato_SN(a, z, 100, T(1e-4)));
-            T v = log(p) + boost::math::lgamma(ap1, pol);
-            z = exp((v + z - ls) / a);
-            result = z * (1 - (a * log(z) - z - v + ls) / (a - z));
-
-            BOOST_MATH_INSTRUMENT_VARIABLE(result);
-         }
-      }
-   }
-   return result;
-}
-
-template <class T, class Policy>
-struct gamma_p_inverse_func
-{
-   gamma_p_inverse_func(T a_, T p_, bool inv) : a(a_), p(p_), invert(inv)
-   {
-      //
-      // If p is too near 1 then P(x) - p suffers from cancellation
-      // errors causing our root-finding algorithms to "thrash", better
-      // to invert in this case and calculate Q(x) - (1-p) instead.
-      //
-      // Of course if p is *very* close to 1, then the answer we get will
-      // be inaccurate anyway (because there's not enough information in p)
-      // but at least we will converge on the (inaccurate) answer quickly.
-      //
-      if(p > 0.9)
-      {
-         p = 1 - p;
-         invert = !invert;
-      }
-   }
-
-   boost::math::tuple<T, T, T> operator()(const T& x)const
-   {
-      BOOST_FPU_EXCEPTION_GUARD
-      //
-      // Calculate P(x) - p and the first two derivates, or if the invert
-      // flag is set, then Q(x) - q and it's derivatives.
-      //
-      typedef typename policies::evaluation<T, Policy>::type value_type;
-      // typedef typename lanczos::lanczos<T, Policy>::type evaluation_type;
-      typedef typename policies::normalise<
-         Policy, 
-         policies::promote_float<false>, 
-         policies::promote_double<false>, 
-         policies::discrete_quantile<>,
-         policies::assert_undefined<> >::type forwarding_policy;
-
-      BOOST_MATH_STD_USING  // For ADL of std functions.
-
-      T f, f1;
-      value_type ft;
-      f = static_cast<T>(boost::math::detail::gamma_incomplete_imp(
-               static_cast<value_type>(a), 
-               static_cast<value_type>(x), 
-               true, invert,
-               forwarding_policy(), &ft));
-      f1 = static_cast<T>(ft);
-      T f2;
-      T div = (a - x - 1) / x;
-      f2 = f1;
-      if((fabs(div) > 1) && (tools::max_value<T>() / fabs(div) < f2))
-      {
-         // overflow:
-         f2 = -tools::max_value<T>() / 2;
-      }
-      else
-      {
-         f2 *= div;
-      }
-
-      if(invert)
-      {
-         f1 = -f1;
-         f2 = -f2;
-      }
-
-      return boost::math::make_tuple(static_cast<T>(f - p), f1, f2);
-   }
-private:
-   T a, p;
-   bool invert;
-};
-
-template <class T, class Policy>
-T gamma_p_inv_imp(T a, T p, const Policy& pol)
-{
-   BOOST_MATH_STD_USING  // ADL of std functions.
-
-   static const char* function = "boost::math::gamma_p_inv<%1%>(%1%, %1%)";
-
-   BOOST_MATH_INSTRUMENT_VARIABLE(a);
-   BOOST_MATH_INSTRUMENT_VARIABLE(p);
-
-   if(a <= 0)
-      policies::raise_domain_error<T>(function, "Argument a in the incomplete gamma function inverse must be >= 0 (got a=%1%).", a, pol);
-   if((p < 0) || (p > 1))
-      policies::raise_domain_error<T>(function, "Probabilty must be in the range [0,1] in the incomplete gamma function inverse (got p=%1%).", p, pol);
-   if(p == 1)
-      return tools::max_value<T>();
-   if(p == 0)
-      return 0;
-   bool has_10_digits;
-   T guess = detail::find_inverse_gamma<T>(a, p, 1 - p, pol, &has_10_digits);
-   if((policies::digits<T, Policy>() <= 36) && has_10_digits)
-      return guess;
-   T lower = tools::min_value<T>();
-   if(guess <= lower)
-      guess = tools::min_value<T>();
-   BOOST_MATH_INSTRUMENT_VARIABLE(guess);
-   //
-   // Work out how many digits to converge to, normally this is
-   // 2/3 of the digits in T, but if the first derivative is very
-   // large convergence is slow, so we'll bump it up to full 
-   // precision to prevent premature termination of the root-finding routine.
-   //
-   unsigned digits = policies::digits<T, Policy>();
-   if(digits < 30)
-   {
-      digits *= 2;
-      digits /= 3;
-   }
-   else
-   {
-      digits /= 2;
-      digits -= 1;
-   }
-   if((a < 0.125) && (fabs(gamma_p_derivative(a, guess, pol)) > 1 / sqrt(tools::epsilon<T>())))
-      digits = policies::digits<T, Policy>() - 2;
-   //
-   // Go ahead and iterate:
-   //
-   boost::uintmax_t max_iter = policies::get_max_root_iterations<Policy>();
-   guess = tools::halley_iterate(
-      detail::gamma_p_inverse_func<T, Policy>(a, p, false),
-      guess,
-      lower,
-      tools::max_value<T>(),
-      digits,
-      max_iter);
-   policies::check_root_iterations<T>(function, max_iter, pol);
-   BOOST_MATH_INSTRUMENT_VARIABLE(guess);
-   if(guess == lower)
-      guess = policies::raise_underflow_error<T>(function, "Expected result known to be non-zero, but is smaller than the smallest available number.", pol);
-   return guess;
-}
-
-template <class T, class Policy>
-T gamma_q_inv_imp(T a, T q, const Policy& pol)
-{
-   BOOST_MATH_STD_USING  // ADL of std functions.
-
-   static const char* function = "boost::math::gamma_q_inv<%1%>(%1%, %1%)";
-
-   if(a <= 0)
-      policies::raise_domain_error<T>(function, "Argument a in the incomplete gamma function inverse must be >= 0 (got a=%1%).", a, pol);
-   if((q < 0) || (q > 1))
-      policies::raise_domain_error<T>(function, "Probabilty must be in the range [0,1] in the incomplete gamma function inverse (got q=%1%).", q, pol);
-   if(q == 0)
-      return tools::max_value<T>();
-   if(q == 1)
-      return 0;
-   bool has_10_digits;
-   T guess = detail::find_inverse_gamma<T>(a, 1 - q, q, pol, &has_10_digits);
-   if((policies::digits<T, Policy>() <= 36) && has_10_digits)
-      return guess;
-   T lower = tools::min_value<T>();
-   if(guess <= lower)
-      guess = tools::min_value<T>();
-   //
-   // Work out how many digits to converge to, normally this is
-   // 2/3 of the digits in T, but if the first derivative is very
-   // large convergence is slow, so we'll bump it up to full 
-   // precision to prevent premature termination of the root-finding routine.
-   //
-   unsigned digits = policies::digits<T, Policy>();
-   if(digits < 30)
-   {
-      digits *= 2;
-      digits /= 3;
-   }
-   else
-   {
-      digits /= 2;
-      digits -= 1;
-   }
-   if((a < 0.125) && (fabs(gamma_p_derivative(a, guess, pol)) > 1 / sqrt(tools::epsilon<T>())))
-      digits = policies::digits<T, Policy>();
-   //
-   // Go ahead and iterate:
-   //
-   boost::uintmax_t max_iter = policies::get_max_root_iterations<Policy>();
-   guess = tools::halley_iterate(
-      detail::gamma_p_inverse_func<T, Policy>(a, q, true),
-      guess,
-      lower,
-      tools::max_value<T>(),
-      digits,
-      max_iter);
-   policies::check_root_iterations<T>(function, max_iter, pol);
-   if(guess == lower)
-      guess = policies::raise_underflow_error<T>(function, "Expected result known to be non-zero, but is smaller than the smallest available number.", pol);
-   return guess;
-}
-
-} // namespace detail
-
-template <class T1, class T2, class Policy>
-inline typename tools::promote_args<T1, T2>::type 
-   gamma_p_inv(T1 a, T2 p, const Policy& pol)
-{
-   typedef typename tools::promote_args<T1, T2>::type result_type;
-   return detail::gamma_p_inv_imp(
-      static_cast<result_type>(a),
-      static_cast<result_type>(p), pol);
-}
-
-template <class T1, class T2, class Policy>
-inline typename tools::promote_args<T1, T2>::type 
-   gamma_q_inv(T1 a, T2 p, const Policy& pol)
-{
-   typedef typename tools::promote_args<T1, T2>::type result_type;
-   return detail::gamma_q_inv_imp(
-      static_cast<result_type>(a),
-      static_cast<result_type>(p), pol);
-}
-
-template <class T1, class T2>
-inline typename tools::promote_args<T1, T2>::type 
-   gamma_p_inv(T1 a, T2 p)
-{
-   return gamma_p_inv(a, p, policies::policy<>());
-}
-
-template <class T1, class T2>
-inline typename tools::promote_args<T1, T2>::type 
-   gamma_q_inv(T1 a, T2 p)
-{
-   return gamma_q_inv(a, p, policies::policy<>());
-}
-
-} // namespace math
-} // namespace boost
-
-#endif // BOOST_MATH_SPECIAL_FUNCTIONS_IGAMMA_INVERSE_HPP
-
-
-
diff --git a/boost/math/special_functions/detail/igamma_large.hpp b/boost/math/special_functions/detail/igamma_large.hpp
deleted file mode 100644
index eb3d4ba..0000000
--- a/boost/math/special_functions/detail/igamma_large.hpp
+++ /dev/null
@@ -1,768 +0,0 @@
-//  Copyright John Maddock 2006.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-// This file implements the asymptotic expansions of the incomplete
-// gamma functions P(a, x) and Q(a, x), used when a is large and
-// x ~ a.
-//
-// The primary reference is:
-//
-// "The Asymptotic Expansion of the Incomplete Gamma Functions"
-// N. M. Temme.
-// Siam J. Math Anal. Vol 10 No 4, July 1979, p757.
-//
-// A different way of evaluating these expansions,
-// plus a lot of very useful background information is in:
-// 
-// "A Set of Algorithms For the Incomplete Gamma Functions."
-// N. M. Temme.
-// Probability in the Engineering and Informational Sciences,
-// 8, 1994, 291.
-//
-// An alternative implementation is in:
-//
-// "Computation of the Incomplete Gamma Function Ratios and their Inverse."
-// A. R. Didonato and A. H. Morris.
-// ACM TOMS, Vol 12, No 4, Dec 1986, p377.
-//
-// There are various versions of the same code below, each accurate
-// to a different precision.  To understand the code, refer to Didonato
-// and Morris, from Eq 17 and 18 onwards.
-//
-// The coefficients used here are not taken from Didonato and Morris:
-// the domain over which these expansions are used is slightly different
-// to theirs, and their constants are not quite accurate enough for
-// 128-bit long double's.  Instead the coefficients were calculated
-// using the methods described by Temme p762 from Eq 3.8 onwards.
-// The values obtained agree with those obtained by Didonato and Morris
-// (at least to the first 30 digits that they provide).
-// At double precision the degrees of polynomial required for full
-// machine precision are close to those recomended to Didonato and Morris,
-// but of course many more terms are needed for larger types.
-//
-#ifndef BOOST_MATH_DETAIL_IGAMMA_LARGE
-#define BOOST_MATH_DETAIL_IGAMMA_LARGE
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-namespace boost{ namespace math{ namespace detail{
-
-// This version will never be called (at runtime), it's a stub used
-// when T is unsuitable to be passed to these routines:
-//
-template <class T, class Policy>
-inline T igamma_temme_large(T, T, const Policy& /* pol */, mpl::int_<0> const *)
-{
-   // stub function, should never actually be called
-   BOOST_ASSERT(0);
-   return 0;
-}
-//
-// This version is accurate for up to 64-bit mantissa's, 
-// (80-bit long double, or 10^-20).
-//
-template <class T, class Policy>
-T igamma_temme_large(T a, T x, const Policy& pol, mpl::int_<64> const *)
-{
-   BOOST_MATH_STD_USING // ADL of std functions
-   T sigma = (x - a) / a;
-   T phi = -boost::math::log1pmx(sigma, pol);
-   T y = a * phi;
-   T z = sqrt(2 * phi);
-   if(x < a)
-      z = -z;
-
-   T workspace[13];
-
-   static const T C0[] = {
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.333333333333333333333),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.0833333333333333333333),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.0148148148148148148148),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.00115740740740740740741),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.000352733686067019400353),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.0001787551440329218107),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.39192631785224377817e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.218544851067999216147e-5),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.18540622107151599607e-5),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.829671134095308600502e-6),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.176659527368260793044e-6),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.670785354340149858037e-8),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.102618097842403080426e-7),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.438203601845335318655e-8),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.914769958223679023418e-9),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.255141939949462497669e-10),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.583077213255042506746e-10),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.243619480206674162437e-10),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.502766928011417558909e-11),
-   };
-   workspace[0] = tools::evaluate_polynomial(C0, z);
-
-   static const T C1[] = {
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.00185185185185185185185),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.00347222222222222222222),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.00264550264550264550265),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.000990226337448559670782),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.000205761316872427983539),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.40187757201646090535e-6),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.18098550334489977837e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.764916091608111008464e-5),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.161209008945634460038e-5),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.464712780280743434226e-8),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.137863344691572095931e-6),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.575254560351770496402e-7),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.119516285997781473243e-7),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.175432417197476476238e-10),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.100915437106004126275e-8),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.416279299184258263623e-9),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.856390702649298063807e-10),
-   };
-   workspace[1] = tools::evaluate_polynomial(C1, z);
-
-   static const T C2[] = {
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.00413359788359788359788),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.00268132716049382716049),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.000771604938271604938272),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.200938786008230452675e-5),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.000107366532263651605215),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.529234488291201254164e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.127606351886187277134e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.342357873409613807419e-7),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.137219573090629332056e-5),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.629899213838005502291e-6),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.142806142060642417916e-6),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.204770984219908660149e-9),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.140925299108675210533e-7),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.622897408492202203356e-8),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.136704883966171134993e-8),
-   };
-   workspace[2] = tools::evaluate_polynomial(C2, z);
-
-   static const T C3[] = {
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.000649434156378600823045),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.000229472093621399176955),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.000469189494395255712128),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.000267720632062838852962),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.756180167188397641073e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.239650511386729665193e-6),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.110826541153473023615e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.56749528269915965675e-5),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.142309007324358839146e-5),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.278610802915281422406e-10),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.169584040919302772899e-6),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.809946490538808236335e-7),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.191111684859736540607e-7),
-   };
-   workspace[3] = tools::evaluate_polynomial(C3, z);
-
-   static const T C4[] = {
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.000861888290916711698605),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.000784039221720066627474),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.000299072480303190179733),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.146384525788434181781e-5),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.664149821546512218666e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.396836504717943466443e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.113757269706784190981e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.250749722623753280165e-9),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.169541495365583060147e-5),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.890750753220530968883e-6),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.229293483400080487057e-6),
-   };
-   workspace[4] = tools::evaluate_polynomial(C4, z);
-
-   static const T C5[] = {
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.000336798553366358150309),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.697281375836585777429e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.000277275324495939207873),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.000199325705161888477003),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.679778047793720783882e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.141906292064396701483e-6),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.135940481897686932785e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.801847025633420153972e-5),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.229148117650809517038e-5),
-   };
-   workspace[5] = tools::evaluate_polynomial(C5, z);
-
-   static const T C6[] = {
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.000531307936463992223166),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.000592166437353693882865),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.000270878209671804482771),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.790235323266032787212e-6),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.815396936756196875093e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.561168275310624965004e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.183291165828433755673e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.307961345060330478256e-8),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.346515536880360908674e-5),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.20291327396058603727e-5),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.57887928631490037089e-6),
-   };
-   workspace[6] = tools::evaluate_polynomial(C6, z);
-
-   static const T C7[] = {
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.000344367606892377671254),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.517179090826059219337e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.000334931610811422363117),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.000281269515476323702274),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.000109765822446847310235),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.127410090954844853795e-6),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.277444515115636441571e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.182634888057113326614e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.578769494973505239894e-5),
-   };
-   workspace[7] = tools::evaluate_polynomial(C7, z);
-
-   static const T C8[] = {
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.000652623918595309418922),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.000839498720672087279993),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.000438297098541721005061),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.696909145842055197137e-6),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.000166448466420675478374),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.000127835176797692185853),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.462995326369130429061e-4),
-   };
-   workspace[8] = tools::evaluate_polynomial(C8, z);
-
-   static const T C9[] = {
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.000596761290192746250124),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.720489541602001055909e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.000678230883766732836162),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.0006401475260262758451),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.000277501076343287044992),
-   };
-   workspace[9] = tools::evaluate_polynomial(C9, z);
-
-   static const T C10[] = {
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.00133244544948006563713),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.0019144384985654775265),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.00110893691345966373396),
-   };
-   workspace[10] = tools::evaluate_polynomial(C10, z);
-
-   static const T C11[] = {
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.00157972766073083495909),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.000162516262783915816899),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.00206334210355432762645),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.00213896861856890981541),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.00101085593912630031708),
-   };
-   workspace[11] = tools::evaluate_polynomial(C11, z);
-
-   static const T C12[] = {
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.00407251211951401664727),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.00640336283380806979482),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.00404101610816766177474),
-   };
-   workspace[12] = tools::evaluate_polynomial(C12, z);
-
-   T result = tools::evaluate_polynomial<13, T, T>(workspace, 1/a);
-   result *= exp(-y) / sqrt(2 * constants::pi<T>() * a);
-   if(x < a)
-      result = -result;
-
-   result += boost::math::erfc(sqrt(y), pol) / 2;
-
-   return result;
-}
-//
-// This one is accurate for 53-bit mantissa's
-// (IEEE double precision or 10^-17).
-//
-template <class T, class Policy>
-T igamma_temme_large(T a, T x, const Policy& pol, mpl::int_<53> const *)
-{
-   BOOST_MATH_STD_USING // ADL of std functions
-   T sigma = (x - a) / a;
-   T phi = -boost::math::log1pmx(sigma, pol);
-   T y = a * phi;
-   T z = sqrt(2 * phi);
-   if(x < a)
-      z = -z;
-
-   T workspace[10];
-
-   static const T C0[] = {
-      static_cast<T>(-0.33333333333333333L),
-      static_cast<T>(0.083333333333333333L),
-      static_cast<T>(-0.014814814814814815L),
-      static_cast<T>(0.0011574074074074074L),
-      static_cast<T>(0.0003527336860670194L),
-      static_cast<T>(-0.00017875514403292181L),
-      static_cast<T>(0.39192631785224378e-4L),
-      static_cast<T>(-0.21854485106799922e-5L),
-      static_cast<T>(-0.185406221071516e-5L),
-      static_cast<T>(0.8296711340953086e-6L),
-      static_cast<T>(-0.17665952736826079e-6L),
-      static_cast<T>(0.67078535434014986e-8L),
-      static_cast<T>(0.10261809784240308e-7L),
-      static_cast<T>(-0.43820360184533532e-8L),
-      static_cast<T>(0.91476995822367902e-9L),
-   };
-   workspace[0] = tools::evaluate_polynomial(C0, z);
-
-   static const T C1[] = {
-      static_cast<T>(-0.0018518518518518519L),
-      static_cast<T>(-0.0034722222222222222L),
-      static_cast<T>(0.0026455026455026455L),
-      static_cast<T>(-0.00099022633744855967L),
-      static_cast<T>(0.00020576131687242798L),
-      static_cast<T>(-0.40187757201646091e-6L),
-      static_cast<T>(-0.18098550334489978e-4L),
-      static_cast<T>(0.76491609160811101e-5L),
-      static_cast<T>(-0.16120900894563446e-5L),
-      static_cast<T>(0.46471278028074343e-8L),
-      static_cast<T>(0.1378633446915721e-6L),
-      static_cast<T>(-0.5752545603517705e-7L),
-      static_cast<T>(0.11951628599778147e-7L),
-   };
-   workspace[1] = tools::evaluate_polynomial(C1, z);
-
-   static const T C2[] = {
-      static_cast<T>(0.0041335978835978836L),
-      static_cast<T>(-0.0026813271604938272L),
-      static_cast<T>(0.00077160493827160494L),
-      static_cast<T>(0.20093878600823045e-5L),
-      static_cast<T>(-0.00010736653226365161L),
-      static_cast<T>(0.52923448829120125e-4L),
-      static_cast<T>(-0.12760635188618728e-4L),
-      static_cast<T>(0.34235787340961381e-7L),
-      static_cast<T>(0.13721957309062933e-5L),
-      static_cast<T>(-0.6298992138380055e-6L),
-      static_cast<T>(0.14280614206064242e-6L),
-   };
-   workspace[2] = tools::evaluate_polynomial(C2, z);
-
-   static const T C3[] = {
-      static_cast<T>(0.00064943415637860082L),
-      static_cast<T>(0.00022947209362139918L),
-      static_cast<T>(-0.00046918949439525571L),
-      static_cast<T>(0.00026772063206283885L),
-      static_cast<T>(-0.75618016718839764e-4L),
-      static_cast<T>(-0.23965051138672967e-6L),
-      static_cast<T>(0.11082654115347302e-4L),
-      static_cast<T>(-0.56749528269915966e-5L),
-      static_cast<T>(0.14230900732435884e-5L),
-   };
-   workspace[3] = tools::evaluate_polynomial(C3, z);
-
-   static const T C4[] = {
-      static_cast<T>(-0.0008618882909167117L),
-      static_cast<T>(0.00078403922172006663L),
-      static_cast<T>(-0.00029907248030319018L),
-      static_cast<T>(-0.14638452578843418e-5L),
-      static_cast<T>(0.66414982154651222e-4L),
-      static_cast<T>(-0.39683650471794347e-4L),
-      static_cast<T>(0.11375726970678419e-4L),
-   };
-   workspace[4] = tools::evaluate_polynomial(C4, z);
-
-   static const T C5[] = {
-      static_cast<T>(-0.00033679855336635815L),
-      static_cast<T>(-0.69728137583658578e-4L),
-      static_cast<T>(0.00027727532449593921L),
-      static_cast<T>(-0.00019932570516188848L),
-      static_cast<T>(0.67977804779372078e-4L),
-      static_cast<T>(0.1419062920643967e-6L),
-      static_cast<T>(-0.13594048189768693e-4L),
-      static_cast<T>(0.80184702563342015e-5L),
-      static_cast<T>(-0.22914811765080952e-5L),
-   };
-   workspace[5] = tools::evaluate_polynomial(C5, z);
-
-   static const T C6[] = {
-      static_cast<T>(0.00053130793646399222L),
-      static_cast<T>(-0.00059216643735369388L),
-      static_cast<T>(0.00027087820967180448L),
-      static_cast<T>(0.79023532326603279e-6L),
-      static_cast<T>(-0.81539693675619688e-4L),
-      static_cast<T>(0.56116827531062497e-4L),
-      static_cast<T>(-0.18329116582843376e-4L),
-   };
-   workspace[6] = tools::evaluate_polynomial(C6, z);
-
-   static const T C7[] = {
-      static_cast<T>(0.00034436760689237767L),
-      static_cast<T>(0.51717909082605922e-4L),
-      static_cast<T>(-0.00033493161081142236L),
-      static_cast<T>(0.0002812695154763237L),
-      static_cast<T>(-0.00010976582244684731L),
-   };
-   workspace[7] = tools::evaluate_polynomial(C7, z);
-
-   static const T C8[] = {
-      static_cast<T>(-0.00065262391859530942L),
-      static_cast<T>(0.00083949872067208728L),
-      static_cast<T>(-0.00043829709854172101L),
-   };
-   workspace[8] = tools::evaluate_polynomial(C8, z);
-   workspace[9] = static_cast<T>(-0.00059676129019274625L);
-
-   T result = tools::evaluate_polynomial<10, T, T>(workspace, 1/a);
-   result *= exp(-y) / sqrt(2 * constants::pi<T>() * a);
-   if(x < a)
-      result = -result;
-
-   result += boost::math::erfc(sqrt(y), pol) / 2;
-
-   return result;
-}
-//
-// This one is accurate for 24-bit mantissa's
-// (IEEE float precision, or 10^-8)
-//
-template <class T, class Policy>
-T igamma_temme_large(T a, T x, const Policy& pol, mpl::int_<24> const *)
-{
-   BOOST_MATH_STD_USING // ADL of std functions
-   T sigma = (x - a) / a;
-   T phi = -boost::math::log1pmx(sigma, pol);
-   T y = a * phi;
-   T z = sqrt(2 * phi);
-   if(x < a)
-      z = -z;
-
-   T workspace[3];
-
-   static const T C0[] = {
-      static_cast<T>(-0.333333333L),
-      static_cast<T>(0.0833333333L),
-      static_cast<T>(-0.0148148148L),
-      static_cast<T>(0.00115740741L),
-      static_cast<T>(0.000352733686L),
-      static_cast<T>(-0.000178755144L),
-      static_cast<T>(0.391926318e-4L),
-   };
-   workspace[0] = tools::evaluate_polynomial(C0, z);
-
-   static const T C1[] = {
-      static_cast<T>(-0.00185185185L),
-      static_cast<T>(-0.00347222222L),
-      static_cast<T>(0.00264550265L),
-      static_cast<T>(-0.000990226337L),
-      static_cast<T>(0.000205761317L),
-   };
-   workspace[1] = tools::evaluate_polynomial(C1, z);
-
-   static const T C2[] = {
-      static_cast<T>(0.00413359788L),
-      static_cast<T>(-0.00268132716L),
-      static_cast<T>(0.000771604938L),
-   };
-   workspace[2] = tools::evaluate_polynomial(C2, z);
-
-   T result = tools::evaluate_polynomial(workspace, 1/a);
-   result *= exp(-y) / sqrt(2 * constants::pi<T>() * a);
-   if(x < a)
-      result = -result;
-
-   result += boost::math::erfc(sqrt(y), pol) / 2;
-
-   return result;
-}
-//
-// And finally, a version for 113-bit mantissa's
-// (128-bit long doubles, or 10^-34).
-// Note this one has been optimised for a > 200
-// It's use for a < 200 is not recomended, that would
-// require many more terms in the polynomials.
-//
-template <class T, class Policy>
-T igamma_temme_large(T a, T x, const Policy& pol, mpl::int_<113> const *)
-{
-   BOOST_MATH_STD_USING // ADL of std functions
-   T sigma = (x - a) / a;
-   T phi = -boost::math::log1pmx(sigma, pol);
-   T y = a * phi;
-   T z = sqrt(2 * phi);
-   if(x < a)
-      z = -z;
-
-   T workspace[14];
-
-   static const T C0[] = {
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.333333333333333333333333333333333333),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.0833333333333333333333333333333333333),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.0148148148148148148148148148148148148),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.00115740740740740740740740740740740741),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.0003527336860670194003527336860670194),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.000178755144032921810699588477366255144),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.391926317852243778169704095630021556e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.218544851067999216147364295512443661e-5),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.185406221071515996070179883622956325e-5),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.829671134095308600501624213166443227e-6),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.17665952736826079304360054245742403e-6),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.670785354340149858036939710029613572e-8),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.102618097842403080425739573227252951e-7),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.438203601845335318655297462244719123e-8),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.914769958223679023418248817633113681e-9),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.255141939949462497668779537993887013e-10),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.583077213255042506746408945040035798e-10),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.243619480206674162436940696707789943e-10),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.502766928011417558909054985925744366e-11),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.110043920319561347708374174497293411e-12),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.337176326240098537882769884169200185e-12),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.13923887224181620659193661848957998e-12),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.285348938070474432039669099052828299e-13),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.513911183424257261899064580300494205e-15),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.197522882943494428353962401580710912e-14),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.809952115670456133407115668702575255e-15),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.165225312163981618191514820265351162e-15),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.253054300974788842327061090060267385e-17),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.116869397385595765888230876507793475e-16),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.477003704982048475822167804084816597e-17),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.969912605905623712420709685898585354e-18),
-   };
-   workspace[0] = tools::evaluate_polynomial(C0, z);
-
-   static const T C1[] = {
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.00185185185185185185185185185185185185),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.00347222222222222222222222222222222222),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.0026455026455026455026455026455026455),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.000990226337448559670781893004115226337),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.000205761316872427983539094650205761317),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.401877572016460905349794238683127572e-6),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.180985503344899778370285914867533523e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.76491609160811100846374214980916921e-5),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.16120900894563446003775221882217767e-5),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.464712780280743434226135033938722401e-8),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.137863344691572095931187533077488877e-6),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.575254560351770496402194531835048307e-7),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.119516285997781473243076536699698169e-7),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.175432417197476476237547551202312502e-10),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.100915437106004126274577504686681675e-8),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.416279299184258263623372347219858628e-9),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.856390702649298063807431562579670208e-10),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.606721510160475861512701762169919581e-13),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.716249896481148539007961017165545733e-11),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.293318664377143711740636683615595403e-11),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.599669636568368872330374527568788909e-12),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.216717865273233141017100472779701734e-15),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.497833997236926164052815522048108548e-13),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.202916288237134247736694804325894226e-13),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.413125571381061004935108332558187111e-14),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.828651623988309644380188591057589316e-18),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.341003088693333279336339355910600992e-15),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.138541953028939715357034547426313703e-15),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.281234665322887466568860332727259483e-16),
-   };
-   workspace[1] = tools::evaluate_polynomial(C1, z);
-
-   static const T C2[] = {
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.0041335978835978835978835978835978836),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.00268132716049382716049382716049382716),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.000771604938271604938271604938271604938),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.200938786008230452674897119341563786e-5),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.000107366532263651605215391223621676297),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.529234488291201254164217127180090143e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.127606351886187277133779191392360117e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.34235787340961380741902003904747389e-7),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.137219573090629332055943852926020279e-5),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.629899213838005502290672234278391876e-6),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.142806142060642417915846008822771748e-6),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.204770984219908660149195854409200226e-9),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.140925299108675210532930244154315272e-7),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.622897408492202203356394293530327112e-8),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.136704883966171134992724380284402402e-8),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.942835615901467819547711211663208075e-12),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.128722524000893180595479368872770442e-9),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.556459561343633211465414765894951439e-10),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.119759355463669810035898150310311343e-10),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.416897822518386350403836626692480096e-14),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.109406404278845944099299008640802908e-11),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.4662239946390135746326204922464679e-12),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.990510576390690597844122258212382301e-13),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.189318767683735145056885183170630169e-16),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.885922187259112726176031067028740667e-14),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.373782039804640545306560251777191937e-14),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.786883363903515525774088394065960751e-15),
-   };
-   workspace[2] = tools::evaluate_polynomial(C2, z);
-
-   static const T C3[] = {
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.000649434156378600823045267489711934156),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.000229472093621399176954732510288065844),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.000469189494395255712128140111679206329),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.000267720632062838852962309752433209223),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.756180167188397641072538191879755666e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.239650511386729665193314027333231723e-6),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.110826541153473023614770299726861227e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.567495282699159656749963105701560205e-5),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.14230900732435883914551894470580433e-5),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.278610802915281422405802158211174452e-10),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.16958404091930277289864168795820267e-6),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.809946490538808236335278504852724081e-7),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.191111684859736540606728140872727635e-7),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.239286204398081179686413514022282056e-11),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.206201318154887984369925818486654549e-8),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.946049666185513217375417988510192814e-9),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.215410497757749078380130268468744512e-9),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.138882333681390304603424682490735291e-13),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.218947616819639394064123400466489455e-10),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.979099895117168512568262802255883368e-11),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.217821918801809621153859472011393244e-11),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.62088195734079014258166361684972205e-16),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.212697836327973697696702537114614471e-12),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.934468879151743333127396765626749473e-13),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.204536712267828493249215913063207436e-13),
-   };
-   workspace[3] = tools::evaluate_polynomial(C3, z);
-
-   static const T C4[] = {
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.000861888290916711698604702719929057378),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.00078403922172006662747403488144228885),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.000299072480303190179733389609932819809),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.146384525788434181781232535690697556e-5),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.664149821546512218665853782451862013e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.396836504717943466443123507595386882e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.113757269706784190980552042885831759e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.250749722623753280165221942390057007e-9),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.169541495365583060147164356781525752e-5),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.890750753220530968882898422505515924e-6),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.229293483400080487057216364891158518e-6),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.295679413754404904696572852500004588e-10),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.288658297427087836297341274604184504e-7),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.141897394378032193894774303903982717e-7),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.344635804994648970659527720474194356e-8),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.230245171745280671320192735850147087e-12),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.394092330280464052750697640085291799e-9),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.186023389685045019134258533045185639e-9),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.435632300505661804380678327446262424e-10),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.127860010162962312660550463349930726e-14),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.467927502665791946200382739991760062e-11),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.214924647061348285410535341910721086e-11),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.490881561480965216323649688463984082e-12),
-   };
-   workspace[4] = tools::evaluate_polynomial(C4, z);
-
-   static const T C5[] = {
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.000336798553366358150308767592718210002),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.697281375836585777429398828575783308e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.00027727532449593920787336425196507501),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.000199325705161888477003360405280844238),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.679778047793720783881640176604435742e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.141906292064396701483392727105575757e-6),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.135940481897686932784583938837504469e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.80184702563342015397192571980419684e-5),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.229148117650809517038048790128781806e-5),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.325247355129845395166230137750005047e-9),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.346528464910852649559195496827579815e-6),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.184471871911713432765322367374920978e-6),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.482409670378941807563762631738989002e-7),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.179894667217435153025754291716644314e-13),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.630619450001352343517516981425944698e-8),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.316241762877456793773762181540969623e-8),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.784092425369742929000839303523267545e-9),
-   };
-   workspace[5] = tools::evaluate_polynomial(C5, z);
-
-   static const T C6[] = {
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.00053130793646399222316574854297762391),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.000592166437353693882864836225604401187),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.000270878209671804482771279183488328692),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.790235323266032787212032944390816666e-6),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.815396936756196875092890088464682624e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.561168275310624965003775619041471695e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.183291165828433755673259749374098313e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.307961345060330478256414192546677006e-8),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.346515536880360908673728529745376913e-5),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.202913273960586037269527254582695285e-5),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.578879286314900370889997586203187687e-6),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.233863067382665698933480579231637609e-12),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.88286007463304835250508524317926246e-7),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.474359588804081278032150770595852426e-7),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.125454150207103824457130611214783073e-7),
-   };
-   workspace[6] = tools::evaluate_polynomial(C6, z);
-
-   static const T C7[] = {
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.000344367606892377671254279625108523655),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.517179090826059219337057843002058823e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.000334931610811422363116635090580012327),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.000281269515476323702273722110707777978),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.000109765822446847310235396824500789005),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.127410090954844853794579954588107623e-6),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.277444515115636441570715073933712622e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.182634888057113326614324442681892723e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.578769494973505239894178121070843383e-5),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.493875893393627039981813418398565502e-9),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.105953670140260427338098566209633945e-5),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.616671437611040747858836254004890765e-6),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.175629733590604619378669693914265388e-6),
-   };
-   workspace[7] = tools::evaluate_polynomial(C7, z);
-
-   static const T C8[] = {
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.000652623918595309418922034919726622692),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.000839498720672087279993357516764983445),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.000438297098541721005061087953050560377),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.696909145842055197136911097362072702e-6),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.00016644846642067547837384572662326101),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.000127835176797692185853344001461664247),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.462995326369130429061361032704489636e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.455790986792270771162749294232219616e-8),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.105952711258051954718238500312872328e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.678334290486516662273073740749269432e-5),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.210754766662588042469972680229376445e-5),
-   };
-   workspace[8] = tools::evaluate_polynomial(C8, z);
-
-   static const T C9[] = {
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.000596761290192746250124390067179459605),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.720489541602001055908571930225015052e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.000678230883766732836161951166000673426),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.000640147526026275845100045652582354779),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.000277501076343287044992374518205845463),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.181970083804651510461686554030325202e-6),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.847950711706850318239732559632810086e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.610519208250153101764709122740859458e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.210739201834048624082975255893773306e-4),
-   };
-   workspace[9] = tools::evaluate_polynomial(C9, z);
-
-   static const T C10[] = {
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.00133244544948006563712694993432717968),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.00191443849856547752650089885832852254),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.0011089369134596637339607446329267522),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.993240412264229896742295262075817566e-6),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.000508745012930931989848393025305956774),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.00042735056665392884328432271160040444),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.000168588537679107988033552814662382059),
-   };
-   workspace[10] = tools::evaluate_polynomial(C10, z);
-
-   static const T C11[] = {
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.00157972766073083495908785631307733022),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.000162516262783915816898635123980270998),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.00206334210355432762645284467690276817),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.00213896861856890981541061922797693947),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.00101085593912630031708085801712479376),
-   };
-   workspace[11] = tools::evaluate_polynomial(C11, z);
-
-   static const T C12[] = {
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.00407251211951401664727281097914544601),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.00640336283380806979482363809026579583),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.00404101610816766177473974858518094879),
-   };
-   workspace[12] = tools::evaluate_polynomial(C12, z);
-   workspace[13] = -0.0059475779383993002845382844736066323L;
-
-   T result = tools::evaluate_polynomial(workspace, T(1/a));
-   result *= exp(-y) / sqrt(2 * constants::pi<T>() * a);
-   if(x < a)
-      result = -result;
-
-   result += boost::math::erfc(sqrt(y), pol) / 2;
-
-   return result;
-}
-
-}  // namespace detail
-}  // namespace math
-}  // namespace math
-
-
-#endif // BOOST_MATH_DETAIL_IGAMMA_LARGE
-
diff --git a/boost/math/special_functions/detail/lanczos_sse2.hpp b/boost/math/special_functions/detail/lanczos_sse2.hpp
deleted file mode 100644
index f8846bf..0000000
--- a/boost/math/special_functions/detail/lanczos_sse2.hpp
+++ /dev/null
@@ -1,204 +0,0 @@
-//  (C) Copyright John Maddock 2006.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_SPECIAL_FUNCTIONS_LANCZOS_SSE2
-#define BOOST_MATH_SPECIAL_FUNCTIONS_LANCZOS_SSE2
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <emmintrin.h>
-
-#if defined(__GNUC__) || defined(__PGI)
-#define ALIGN16 __attribute__((__aligned__(16)))
-#else
-#define ALIGN16 __declspec(align(16))
-#endif
-
-namespace boost{ namespace math{ namespace lanczos{
-
-template <>
-inline double lanczos13m53::lanczos_sum<double>(const double& x)
-{
-   static const ALIGN16 double coeff[26] = {
-      static_cast<double>(2.506628274631000270164908177133837338626L),
-      static_cast<double>(1u),
-      static_cast<double>(210.8242777515793458725097339207133627117L),
-      static_cast<double>(66u),
-      static_cast<double>(8071.672002365816210638002902272250613822L),
-      static_cast<double>(1925u),
-      static_cast<double>(186056.2653952234950402949897160456992822L),
-      static_cast<double>(32670u),
-      static_cast<double>(2876370.628935372441225409051620849613599L),
-      static_cast<double>(357423u),
-      static_cast<double>(31426415.58540019438061423162831820536287L),
-      static_cast<double>(2637558u),
-      static_cast<double>(248874557.8620541565114603864132294232163L),
-      static_cast<double>(13339535u),
-      static_cast<double>(1439720407.311721673663223072794912393972L),
-      static_cast<double>(45995730u),
-      static_cast<double>(6039542586.35202800506429164430729792107L),
-      static_cast<double>(105258076u),
-      static_cast<double>(17921034426.03720969991975575445893111267L),
-      static_cast<double>(150917976u),
-      static_cast<double>(35711959237.35566804944018545154716670596L),
-      static_cast<double>(120543840u),
-      static_cast<double>(42919803642.64909876895789904700198885093L),
-      static_cast<double>(39916800u),
-      static_cast<double>(23531376880.41075968857200767445163675473L),
-      static_cast<double>(0u)
-   };
-   register __m128d vx = _mm_load1_pd(&x);
-   register __m128d sum_even = _mm_load_pd(coeff);
-   register __m128d sum_odd = _mm_load_pd(coeff+2);
-   register __m128d nc_odd, nc_even;
-   register __m128d vx2 = _mm_mul_pd(vx, vx);
-
-   sum_even = _mm_mul_pd(sum_even, vx2);
-   nc_even = _mm_load_pd(coeff + 4);
-   sum_odd = _mm_mul_pd(sum_odd, vx2);
-   nc_odd = _mm_load_pd(coeff + 6);
-   sum_even = _mm_add_pd(sum_even, nc_even);
-   sum_odd = _mm_add_pd(sum_odd, nc_odd);
-
-   sum_even = _mm_mul_pd(sum_even, vx2);
-   nc_even = _mm_load_pd(coeff + 8);
-   sum_odd = _mm_mul_pd(sum_odd, vx2);
-   nc_odd = _mm_load_pd(coeff + 10);
-   sum_even = _mm_add_pd(sum_even, nc_even);
-   sum_odd = _mm_add_pd(sum_odd, nc_odd);
-
-   sum_even = _mm_mul_pd(sum_even, vx2);
-   nc_even = _mm_load_pd(coeff + 12);
-   sum_odd = _mm_mul_pd(sum_odd, vx2);
-   nc_odd = _mm_load_pd(coeff + 14);
-   sum_even = _mm_add_pd(sum_even, nc_even);
-   sum_odd = _mm_add_pd(sum_odd, nc_odd);
-
-   sum_even = _mm_mul_pd(sum_even, vx2);
-   nc_even = _mm_load_pd(coeff + 16);
-   sum_odd = _mm_mul_pd(sum_odd, vx2);
-   nc_odd = _mm_load_pd(coeff + 18);
-   sum_even = _mm_add_pd(sum_even, nc_even);
-   sum_odd = _mm_add_pd(sum_odd, nc_odd);
-
-   sum_even = _mm_mul_pd(sum_even, vx2);
-   nc_even = _mm_load_pd(coeff + 20);
-   sum_odd = _mm_mul_pd(sum_odd, vx2);
-   nc_odd = _mm_load_pd(coeff + 22);
-   sum_even = _mm_add_pd(sum_even, nc_even);
-   sum_odd = _mm_add_pd(sum_odd, nc_odd);
-
-   sum_even = _mm_mul_pd(sum_even, vx2);
-   nc_even = _mm_load_pd(coeff + 24);
-   sum_odd = _mm_mul_pd(sum_odd, vx);
-   sum_even = _mm_add_pd(sum_even, nc_even);
-   sum_even = _mm_add_pd(sum_even, sum_odd);
-
-
-   double ALIGN16 t[2];
-   _mm_store_pd(t, sum_even);
-   
-   return t[0] / t[1];
-}
-
-template <>
-inline double lanczos13m53::lanczos_sum_expG_scaled<double>(const double& x)
-{
-   static const ALIGN16 double coeff[26] = {
-         static_cast<double>(0.006061842346248906525783753964555936883222L),
-         static_cast<double>(1u),
-         static_cast<double>(0.5098416655656676188125178644804694509993L),
-         static_cast<double>(66u),
-         static_cast<double>(19.51992788247617482847860966235652136208L),
-         static_cast<double>(1925u),
-         static_cast<double>(449.9445569063168119446858607650988409623L),
-         static_cast<double>(32670u),
-         static_cast<double>(6955.999602515376140356310115515198987526L),
-         static_cast<double>(357423u),
-         static_cast<double>(75999.29304014542649875303443598909137092L),
-         static_cast<double>(2637558u),
-         static_cast<double>(601859.6171681098786670226533699352302507L),
-         static_cast<double>(13339535u),
-         static_cast<double>(3481712.15498064590882071018964774556468L),
-         static_cast<double>(45995730u),
-         static_cast<double>(14605578.08768506808414169982791359218571L),
-         static_cast<double>(105258076u),
-         static_cast<double>(43338889.32467613834773723740590533316085L),
-         static_cast<double>(150917976u),
-         static_cast<double>(86363131.28813859145546927288977868422342L),
-         static_cast<double>(120543840u),
-         static_cast<double>(103794043.1163445451906271053616070238554L),
-         static_cast<double>(39916800u),
-         static_cast<double>(56906521.91347156388090791033559122686859L),
-         static_cast<double>(0u)
-   };
-   register __m128d vx = _mm_load1_pd(&x);
-   register __m128d sum_even = _mm_load_pd(coeff);
-   register __m128d sum_odd = _mm_load_pd(coeff+2);
-   register __m128d nc_odd, nc_even;
-   register __m128d vx2 = _mm_mul_pd(vx, vx);
-
-   sum_even = _mm_mul_pd(sum_even, vx2);
-   nc_even = _mm_load_pd(coeff + 4);
-   sum_odd = _mm_mul_pd(sum_odd, vx2);
-   nc_odd = _mm_load_pd(coeff + 6);
-   sum_even = _mm_add_pd(sum_even, nc_even);
-   sum_odd = _mm_add_pd(sum_odd, nc_odd);
-
-   sum_even = _mm_mul_pd(sum_even, vx2);
-   nc_even = _mm_load_pd(coeff + 8);
-   sum_odd = _mm_mul_pd(sum_odd, vx2);
-   nc_odd = _mm_load_pd(coeff + 10);
-   sum_even = _mm_add_pd(sum_even, nc_even);
-   sum_odd = _mm_add_pd(sum_odd, nc_odd);
-
-   sum_even = _mm_mul_pd(sum_even, vx2);
-   nc_even = _mm_load_pd(coeff + 12);
-   sum_odd = _mm_mul_pd(sum_odd, vx2);
-   nc_odd = _mm_load_pd(coeff + 14);
-   sum_even = _mm_add_pd(sum_even, nc_even);
-   sum_odd = _mm_add_pd(sum_odd, nc_odd);
-
-   sum_even = _mm_mul_pd(sum_even, vx2);
-   nc_even = _mm_load_pd(coeff + 16);
-   sum_odd = _mm_mul_pd(sum_odd, vx2);
-   nc_odd = _mm_load_pd(coeff + 18);
-   sum_even = _mm_add_pd(sum_even, nc_even);
-   sum_odd = _mm_add_pd(sum_odd, nc_odd);
-
-   sum_even = _mm_mul_pd(sum_even, vx2);
-   nc_even = _mm_load_pd(coeff + 20);
-   sum_odd = _mm_mul_pd(sum_odd, vx2);
-   nc_odd = _mm_load_pd(coeff + 22);
-   sum_even = _mm_add_pd(sum_even, nc_even);
-   sum_odd = _mm_add_pd(sum_odd, nc_odd);
-
-   sum_even = _mm_mul_pd(sum_even, vx2);
-   nc_even = _mm_load_pd(coeff + 24);
-   sum_odd = _mm_mul_pd(sum_odd, vx);
-   sum_even = _mm_add_pd(sum_even, nc_even);
-   sum_even = _mm_add_pd(sum_even, sum_odd);
-
-
-   double ALIGN16 t[2];
-   _mm_store_pd(t, sum_even);
-   
-   return t[0] / t[1];
-}
-
-} // namespace lanczos
-} // namespace math
-} // namespace boost
-
-#undef ALIGN16
-
-#endif // BOOST_MATH_SPECIAL_FUNCTIONS_LANCZOS
-
-
-
-
-
diff --git a/boost/math/special_functions/detail/lgamma_small.hpp b/boost/math/special_functions/detail/lgamma_small.hpp
deleted file mode 100644
index 82b5d15..0000000
--- a/boost/math/special_functions/detail/lgamma_small.hpp
+++ /dev/null
@@ -1,522 +0,0 @@
-//  (C) Copyright John Maddock 2006.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_SPECIAL_FUNCTIONS_DETAIL_LGAMMA_SMALL
-#define BOOST_MATH_SPECIAL_FUNCTIONS_DETAIL_LGAMMA_SMALL
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/math/tools/big_constant.hpp>
-
-namespace boost{ namespace math{ namespace detail{
-
-//
-// These need forward declaring to keep GCC happy:
-//
-template <class T, class Policy, class Lanczos>
-T gamma_imp(T z, const Policy& pol, const Lanczos& l);
-template <class T, class Policy>
-T gamma_imp(T z, const Policy& pol, const lanczos::undefined_lanczos& l);
-
-//
-// lgamma for small arguments:
-//
-template <class T, class Policy, class Lanczos>
-T lgamma_small_imp(T z, T zm1, T zm2, const mpl::int_<64>&, const Policy& /* l */, const Lanczos&)
-{
-   // This version uses rational approximations for small
-   // values of z accurate enough for 64-bit mantissas
-   // (80-bit long doubles), works well for 53-bit doubles as well.
-   // Lanczos is only used to select the Lanczos function.
-
-   BOOST_MATH_STD_USING  // for ADL of std names
-   T result = 0;
-   if(z < tools::epsilon<T>())
-   {
-      result = -log(z);
-   }
-   else if((zm1 == 0) || (zm2 == 0))
-   {
-      // nothing to do, result is zero....
-   }
-   else if(z > 2)
-   {
-      //
-      // Begin by performing argument reduction until
-      // z is in [2,3):
-      //
-      if(z >= 3)
-      {
-         do
-         {
-            z -= 1;
-            zm2 -= 1;
-            result += log(z);
-         }while(z >= 3);
-         // Update zm2, we need it below:
-         zm2 = z - 2;
-      }
-
-      //
-      // Use the following form:
-      //
-      // lgamma(z) = (z-2)(z+1)(Y + R(z-2))
-      //
-      // where R(z-2) is a rational approximation optimised for
-      // low absolute error - as long as it's absolute error
-      // is small compared to the constant Y - then any rounding
-      // error in it's computation will get wiped out.
-      //
-      // R(z-2) has the following properties:
-      //
-      // At double: Max error found:                    4.231e-18
-      // At long double: Max error found:               1.987e-21
-      // Maximum Deviation Found (approximation error): 5.900e-24
-      //
-      static const T P[] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -0.180355685678449379109e-1)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.25126649619989678683e-1)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.494103151567532234274e-1)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.172491608709613993966e-1)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -0.259453563205438108893e-3)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -0.541009869215204396339e-3)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -0.324588649825948492091e-4))
-      };
-      static const T Q[] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.1e1)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.196202987197795200688e1)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.148019669424231326694e1)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.541391432071720958364e0)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.988504251128010129477e-1)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.82130967464889339326e-2)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.224936291922115757597e-3)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -0.223352763208617092964e-6))
-      };
-
-      static const float Y = 0.158963680267333984375e0f;
-
-      T r = zm2 * (z + 1);
-      T R = tools::evaluate_polynomial(P, zm2);
-      R /= tools::evaluate_polynomial(Q, zm2);
-
-      result +=  r * Y + r * R;
-   }
-   else
-   {
-      //
-      // If z is less than 1 use recurrance to shift to
-      // z in the interval [1,2]:
-      //
-      if(z < 1)
-      {
-         result += -log(z);
-         zm2 = zm1;
-         zm1 = z;
-         z += 1;
-      }
-      //
-      // Two approximations, on for z in [1,1.5] and
-      // one for z in [1.5,2]:
-      //
-      if(z <= 1.5)
-      {
-         //
-         // Use the following form:
-         //
-         // lgamma(z) = (z-1)(z-2)(Y + R(z-1))
-         //
-         // where R(z-1) is a rational approximation optimised for
-         // low absolute error - as long as it's absolute error
-         // is small compared to the constant Y - then any rounding
-         // error in it's computation will get wiped out.
-         //
-         // R(z-1) has the following properties:
-         //
-         // At double precision: Max error found:                1.230011e-17
-         // At 80-bit long double precision:   Max error found:  5.631355e-21
-         // Maximum Deviation Found:                             3.139e-021
-         // Expected Error Term:                                 3.139e-021
-
-         //
-         static const float Y = 0.52815341949462890625f;
-
-         static const T P[] = {
-            static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.490622454069039543534e-1)),
-            static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -0.969117530159521214579e-1)),
-            static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -0.414983358359495381969e0)),
-            static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -0.406567124211938417342e0)),
-            static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -0.158413586390692192217e0)),
-            static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -0.240149820648571559892e-1)),
-            static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -0.100346687696279557415e-2))
-         };
-         static const T Q[] = {
-            static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.1e1)),
-            static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.302349829846463038743e1)),
-            static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.348739585360723852576e1)),
-            static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.191415588274426679201e1)),
-            static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.507137738614363510846e0)),
-            static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.577039722690451849648e-1)),
-            static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.195768102601107189171e-2))
-         };
-
-         T r = tools::evaluate_polynomial(P, zm1) / tools::evaluate_polynomial(Q, zm1);
-         T prefix = zm1 * zm2;
-
-         result += prefix * Y + prefix * r;
-      }
-      else
-      {
-         //
-         // Use the following form:
-         //
-         // lgamma(z) = (2-z)(1-z)(Y + R(2-z))
-         //
-         // where R(2-z) is a rational approximation optimised for
-         // low absolute error - as long as it's absolute error
-         // is small compared to the constant Y - then any rounding
-         // error in it's computation will get wiped out.
-         //
-         // R(2-z) has the following properties:
-         //
-         // At double precision, max error found:              1.797565e-17
-         // At 80-bit long double precision, max error found:  9.306419e-21
-         // Maximum Deviation Found:                           2.151e-021
-         // Expected Error Term:                               2.150e-021
-         //
-         static const float Y = 0.452017307281494140625f;
-
-         static const T P[] = {
-            static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -0.292329721830270012337e-1)), 
-            static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.144216267757192309184e0)),
-            static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -0.142440390738631274135e0)),
-            static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.542809694055053558157e-1)),
-            static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -0.850535976868336437746e-2)),
-            static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.431171342679297331241e-3))
-         };
-         static const T Q[] = {
-            static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.1e1)),
-            static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -0.150169356054485044494e1)),
-            static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.846973248876495016101e0)),
-            static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -0.220095151814995745555e0)),
-            static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.25582797155975869989e-1)),
-            static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -0.100666795539143372762e-2)),
-            static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -0.827193521891290553639e-6))
-         };
-         T r = zm2 * zm1;
-         T R = tools::evaluate_polynomial(P, T(-zm2)) / tools::evaluate_polynomial(Q, T(-zm2));
-
-         result += r * Y + r * R;
-      }
-   }
-   return result;
-}
-template <class T, class Policy, class Lanczos>
-T lgamma_small_imp(T z, T zm1, T zm2, const mpl::int_<113>&, const Policy& /* l */, const Lanczos&)
-{
-   //
-   // This version uses rational approximations for small
-   // values of z accurate enough for 113-bit mantissas
-   // (128-bit long doubles).
-   //
-   BOOST_MATH_STD_USING  // for ADL of std names
-   T result = 0;
-   if(z < tools::epsilon<T>())
-   {
-      result = -log(z);
-      BOOST_MATH_INSTRUMENT_CODE(result);
-   }
-   else if((zm1 == 0) || (zm2 == 0))
-   {
-      // nothing to do, result is zero....
-   }
-   else if(z > 2)
-   {
-      //
-      // Begin by performing argument reduction until
-      // z is in [2,3):
-      //
-      if(z >= 3)
-      {
-         do
-         {
-            z -= 1;
-            result += log(z);
-         }while(z >= 3);
-         zm2 = z - 2;
-      }
-      BOOST_MATH_INSTRUMENT_CODE(zm2);
-      BOOST_MATH_INSTRUMENT_CODE(z);
-      BOOST_MATH_INSTRUMENT_CODE(result);
-
-      //
-      // Use the following form:
-      //
-      // lgamma(z) = (z-2)(z+1)(Y + R(z-2))
-      //
-      // where R(z-2) is a rational approximation optimised for
-      // low absolute error - as long as it's absolute error
-      // is small compared to the constant Y - then any rounding
-      // error in it's computation will get wiped out.
-      //
-      // Maximum Deviation Found (approximation error)      3.73e-37
-
-      static const T P[] = {
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.018035568567844937910504030027467476655),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.013841458273109517271750705401202404195),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.062031842739486600078866923383017722399),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.052518418329052161202007865149435256093),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.01881718142472784129191838493267755758),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.0025104830367021839316463675028524702846),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.00021043176101831873281848891452678568311),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.00010249622350908722793327719494037981166),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.11381479670982006841716879074288176994e-4),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.49999811718089980992888533630523892389e-6),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.70529798686542184668416911331718963364e-8)
-      };
-      static const T Q[] = {
-         BOOST_MATH_BIG_CONSTANT(T, 113, 1),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 2.5877485070422317542808137697939233685),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 2.8797959228352591788629602533153837126),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 1.8030885955284082026405495275461180977),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.69774331297747390169238306148355428436),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.17261566063277623942044077039756583802),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.02729301254544230229429621192443000121),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.0026776425891195270663133581960016620433),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.00015244249160486584591370355730402168106),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.43997034032479866020546814475414346627e-5),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.46295080708455613044541885534408170934e-7),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.93326638207459533682980757982834180952e-11),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.42316456553164995177177407325292867513e-13)
-      };
-
-      T R = tools::evaluate_polynomial(P, zm2);
-      R /= tools::evaluate_polynomial(Q, zm2);
-
-      static const float Y = 0.158963680267333984375F;
-
-      T r = zm2 * (z + 1);
-
-      result +=  r * Y + r * R;
-      BOOST_MATH_INSTRUMENT_CODE(result);
-   }
-   else
-   {
-      //
-      // If z is less than 1 use recurrance to shift to
-      // z in the interval [1,2]:
-      //
-      if(z < 1)
-      {
-         result += -log(z);
-         zm2 = zm1;
-         zm1 = z;
-         z += 1;
-      }
-      BOOST_MATH_INSTRUMENT_CODE(result);
-      BOOST_MATH_INSTRUMENT_CODE(z);
-      BOOST_MATH_INSTRUMENT_CODE(zm2);
-      //
-      // Three approximations, on for z in [1,1.35], [1.35,1.625] and [1.625,1]
-      //
-      if(z <= 1.35)
-      {
-         //
-         // Use the following form:
-         //
-         // lgamma(z) = (z-1)(z-2)(Y + R(z-1))
-         //
-         // where R(z-1) is a rational approximation optimised for
-         // low absolute error - as long as it's absolute error
-         // is small compared to the constant Y - then any rounding
-         // error in it's computation will get wiped out.
-         //
-         // R(z-1) has the following properties:
-         //
-         // Maximum Deviation Found (approximation error)            1.659e-36
-         // Expected Error Term (theoretical error)                  1.343e-36
-         // Max error found at 128-bit long double precision         1.007e-35
-         //
-         static const float Y = 0.54076099395751953125f;
-
-         static const T P[] = {
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.036454670944013329356512090082402429697),
-            BOOST_MATH_BIG_CONSTANT(T, 113, -0.066235835556476033710068679907798799959),
-            BOOST_MATH_BIG_CONSTANT(T, 113, -0.67492399795577182387312206593595565371),
-            BOOST_MATH_BIG_CONSTANT(T, 113, -1.4345555263962411429855341651960000166),
-            BOOST_MATH_BIG_CONSTANT(T, 113, -1.4894319559821365820516771951249649563),
-            BOOST_MATH_BIG_CONSTANT(T, 113, -0.87210277668067964629483299712322411566),
-            BOOST_MATH_BIG_CONSTANT(T, 113, -0.29602090537771744401524080430529369136),
-            BOOST_MATH_BIG_CONSTANT(T, 113, -0.0561832587517836908929331992218879676),
-            BOOST_MATH_BIG_CONSTANT(T, 113, -0.0053236785487328044334381502530383140443),
-            BOOST_MATH_BIG_CONSTANT(T, 113, -0.00018629360291358130461736386077971890789),
-            BOOST_MATH_BIG_CONSTANT(T, 113, -0.10164985672213178500790406939467614498e-6),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.13680157145361387405588201461036338274e-8)
-         };
-         static const T Q[] = {
-            BOOST_MATH_BIG_CONSTANT(T, 113, 1.0),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 4.9106336261005990534095838574132225599),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 10.258804800866438510889341082793078432),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 11.88588976846826108836629960537466889),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 8.3455000546999704314454891036700998428),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 3.6428823682421746343233362007194282703),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.97465989807254572142266753052776132252),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.15121052897097822172763084966793352524),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.012017363555383555123769849654484594893),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.0003583032812720649835431669893011257277)
-         };
-
-         T r = tools::evaluate_polynomial(P, zm1) / tools::evaluate_polynomial(Q, zm1);
-         T prefix = zm1 * zm2;
-
-         result += prefix * Y + prefix * r;
-         BOOST_MATH_INSTRUMENT_CODE(result);
-      }
-      else if(z <= 1.625)
-      {
-         //
-         // Use the following form:
-         //
-         // lgamma(z) = (2-z)(1-z)(Y + R(2-z))
-         //
-         // where R(2-z) is a rational approximation optimised for
-         // low absolute error - as long as it's absolute error
-         // is small compared to the constant Y - then any rounding
-         // error in it's computation will get wiped out.
-         //
-         // R(2-z) has the following properties:
-         //
-         // Max error found at 128-bit long double precision  9.634e-36
-         // Maximum Deviation Found (approximation error)     1.538e-37
-         // Expected Error Term (theoretical error)           2.350e-38
-         //
-         static const float Y = 0.483787059783935546875f;
-
-         static const T P[] = {
-            BOOST_MATH_BIG_CONSTANT(T, 113, -0.017977422421608624353488126610933005432),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.18484528905298309555089509029244135703),
-            BOOST_MATH_BIG_CONSTANT(T, 113, -0.40401251514859546989565001431430884082),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.40277179799147356461954182877921388182),
-            BOOST_MATH_BIG_CONSTANT(T, 113, -0.21993421441282936476709677700477598816),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.069595742223850248095697771331107571011),
-            BOOST_MATH_BIG_CONSTANT(T, 113, -0.012681481427699686635516772923547347328),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.0012489322866834830413292771335113136034),
-            BOOST_MATH_BIG_CONSTANT(T, 113, -0.57058739515423112045108068834668269608e-4),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.8207548771933585614380644961342925976e-6)
-         };
-         static const T Q[] = {
-            BOOST_MATH_BIG_CONSTANT(T, 113, 1.0),
-            BOOST_MATH_BIG_CONSTANT(T, 113, -2.9629552288944259229543137757200262073),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 3.7118380799042118987185957298964772755),
-            BOOST_MATH_BIG_CONSTANT(T, 113, -2.5569815272165399297600586376727357187),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 1.0546764918220835097855665680632153367),
-            BOOST_MATH_BIG_CONSTANT(T, 113, -0.26574021300894401276478730940980810831),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.03996289731752081380552901986471233462),
-            BOOST_MATH_BIG_CONSTANT(T, 113, -0.0033398680924544836817826046380586480873),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.00013288854760548251757651556792598235735),
-            BOOST_MATH_BIG_CONSTANT(T, 113, -0.17194794958274081373243161848194745111e-5)
-         };
-         T r = zm2 * zm1;
-         T R = tools::evaluate_polynomial(P, T(0.625 - zm1)) / tools::evaluate_polynomial(Q, T(0.625 - zm1));
-
-         result += r * Y + r * R;
-         BOOST_MATH_INSTRUMENT_CODE(result);
-      }
-      else
-      {
-         //
-         // Same form as above.
-         //
-         // Max error found (at 128-bit long double precision) 1.831e-35
-         // Maximum Deviation Found (approximation error)      8.588e-36
-         // Expected Error Term (theoretical error)            1.458e-36
-         //
-         static const float Y = 0.443811893463134765625f;
-
-         static const T P[] = {
-            BOOST_MATH_BIG_CONSTANT(T, 113, -0.021027558364667626231512090082402429494),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.15128811104498736604523586803722368377),
-            BOOST_MATH_BIG_CONSTANT(T, 113, -0.26249631480066246699388544451126410278),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.21148748610533489823742352180628489742),
-            BOOST_MATH_BIG_CONSTANT(T, 113, -0.093964130697489071999873506148104370633),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.024292059227009051652542804957550866827),
-            BOOST_MATH_BIG_CONSTANT(T, 113, -0.0036284453226534839926304745756906117066),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.0002939230129315195346843036254392485984),
-            BOOST_MATH_BIG_CONSTANT(T, 113, -0.11088589183158123733132268042570710338e-4),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.13240510580220763969511741896361984162e-6)
-         };
-         static const T Q[] = {
-            BOOST_MATH_BIG_CONSTANT(T, 113, 1.0),
-            BOOST_MATH_BIG_CONSTANT(T, 113, -2.4240003754444040525462170802796471996),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 2.4868383476933178722203278602342786002),
-            BOOST_MATH_BIG_CONSTANT(T, 113, -1.4047068395206343375520721509193698547),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.47583809087867443858344765659065773369),
-            BOOST_MATH_BIG_CONSTANT(T, 113, -0.09865724264554556400463655444270700132),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.012238223514176587501074150988445109735),
-            BOOST_MATH_BIG_CONSTANT(T, 113, -0.00084625068418239194670614419707491797097),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.2796574430456237061420839429225710602e-4),
-            BOOST_MATH_BIG_CONSTANT(T, 113, -0.30202973883316730694433702165188835331e-6)
-         };
-         // (2 - x) * (1 - x) * (c + R(2 - x))
-         T r = zm2 * zm1;
-         T R = tools::evaluate_polynomial(P, T(-zm2)) / tools::evaluate_polynomial(Q, T(-zm2));
-
-         result += r * Y + r * R;
-         BOOST_MATH_INSTRUMENT_CODE(result);
-      }
-   }
-   BOOST_MATH_INSTRUMENT_CODE(result);
-   return result;
-}
-template <class T, class Policy, class Lanczos>
-T lgamma_small_imp(T z, T zm1, T zm2, const mpl::int_<0>&, const Policy& pol, const Lanczos&)
-{
-   //
-   // No rational approximations are available because either
-   // T has no numeric_limits support (so we can't tell how
-   // many digits it has), or T has more digits than we know
-   // what to do with.... we do have a Lanczos approximation
-   // though, and that can be used to keep errors under control.
-   //
-   BOOST_MATH_STD_USING  // for ADL of std names
-   T result = 0;
-   if(z < tools::epsilon<T>())
-   {
-      result = -log(z);
-   }
-   else if(z < 0.5)
-   {
-      // taking the log of tgamma reduces the error, no danger of overflow here:
-      result = log(gamma_imp(z, pol, Lanczos()));
-   }
-   else if(z >= 3)
-   {
-      // taking the log of tgamma reduces the error, no danger of overflow here:
-      result = log(gamma_imp(z, pol, Lanczos()));
-   }
-   else if(z >= 1.5)
-   {
-      // special case near 2:
-      T dz = zm2;
-      result = dz * log((z + Lanczos::g() - T(0.5)) / boost::math::constants::e<T>());
-      result += boost::math::log1p(dz / (Lanczos::g() + T(1.5)), pol) * T(1.5);
-      result += boost::math::log1p(Lanczos::lanczos_sum_near_2(dz), pol);
-   }
-   else
-   {
-      // special case near 1:
-      T dz = zm1;
-      result = dz * log((z + Lanczos::g() - T(0.5)) / boost::math::constants::e<T>());
-      result += boost::math::log1p(dz / (Lanczos::g() + T(0.5)), pol) / 2;
-      result += boost::math::log1p(Lanczos::lanczos_sum_near_1(dz), pol);
-   }
-   return result;
-}
-
-}}} // namespaces
-
-#endif // BOOST_MATH_SPECIAL_FUNCTIONS_DETAIL_LGAMMA_SMALL
-
diff --git a/boost/math/special_functions/detail/round_fwd.hpp b/boost/math/special_functions/detail/round_fwd.hpp
deleted file mode 100644
index 8c45a7d..0000000
--- a/boost/math/special_functions/detail/round_fwd.hpp
+++ /dev/null
@@ -1,93 +0,0 @@
-// Copyright John Maddock 2008.
-
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt
-// or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_SPECIAL_ROUND_FWD_HPP
-#define BOOST_MATH_SPECIAL_ROUND_FWD_HPP
-
-#include <boost/config.hpp>
-#include <boost/math/tools/promotion.hpp>
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-namespace boost
-{
-   namespace math
-   { 
-
-   template <class T, class Policy>
-   typename tools::promote_args<T>::type trunc(const T& v, const Policy& pol);
-   template <class T>
-   typename tools::promote_args<T>::type trunc(const T& v);
-   template <class T, class Policy>
-   int itrunc(const T& v, const Policy& pol);
-   template <class T>
-   int itrunc(const T& v);
-   template <class T, class Policy>
-   long ltrunc(const T& v, const Policy& pol);
-   template <class T>
-   long ltrunc(const T& v);
-#ifdef BOOST_HAS_LONG_LONG
-   template <class T, class Policy>
-   boost::long_long_type lltrunc(const T& v, const Policy& pol);
-   template <class T>
-   boost::long_long_type lltrunc(const T& v);
-#endif
-   template <class T, class Policy>
-   typename tools::promote_args<T>::type round(const T& v, const Policy& pol);
-   template <class T>
-   typename tools::promote_args<T>::type round(const T& v);
-   template <class T, class Policy>
-   int iround(const T& v, const Policy& pol);
-   template <class T>
-   int iround(const T& v);
-   template <class T, class Policy>
-   long lround(const T& v, const Policy& pol);
-   template <class T>
-   long lround(const T& v);
-#ifdef BOOST_HAS_LONG_LONG
-   template <class T, class Policy>
-   boost::long_long_type llround(const T& v, const Policy& pol);
-   template <class T>
-   boost::long_long_type llround(const T& v);
-#endif
-   template <class T, class Policy>
-   T modf(const T& v, T* ipart, const Policy& pol);
-   template <class T>
-   T modf(const T& v, T* ipart);
-   template <class T, class Policy>
-   T modf(const T& v, int* ipart, const Policy& pol);
-   template <class T>
-   T modf(const T& v, int* ipart);
-   template <class T, class Policy>
-   T modf(const T& v, long* ipart, const Policy& pol);
-   template <class T>
-   T modf(const T& v, long* ipart);
-#ifdef BOOST_HAS_LONG_LONG
-   template <class T, class Policy>
-   T modf(const T& v, boost::long_long_type* ipart, const Policy& pol);
-   template <class T>
-   T modf(const T& v, boost::long_long_type* ipart);
-#endif
-
-   }
-}
-
-#undef BOOST_MATH_STD_USING
-#define BOOST_MATH_STD_USING BOOST_MATH_STD_USING_CORE\
-   using boost::math::round;\
-   using boost::math::iround;\
-   using boost::math::lround;\
-   using boost::math::trunc;\
-   using boost::math::itrunc;\
-   using boost::math::ltrunc;\
-   using boost::math::modf;
-
-
-#endif // BOOST_MATH_SPECIAL_ROUND_FWD_HPP
-
diff --git a/boost/math/special_functions/detail/t_distribution_inv.hpp b/boost/math/special_functions/detail/t_distribution_inv.hpp
deleted file mode 100644
index 72f6f0c..0000000
--- a/boost/math/special_functions/detail/t_distribution_inv.hpp
+++ /dev/null
@@ -1,549 +0,0 @@
-//  Copyright John Maddock 2007.
-//  Copyright Paul A. Bristow 2007
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_SF_DETAIL_INV_T_HPP
-#define BOOST_MATH_SF_DETAIL_INV_T_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/math/special_functions/cbrt.hpp>
-#include <boost/math/special_functions/round.hpp>
-#include <boost/math/special_functions/trunc.hpp>
-
-namespace boost{ namespace math{ namespace detail{
-
-//
-// The main method used is due to Hill:
-//
-// G. W. Hill, Algorithm 396, Student's t-Quantiles,
-// Communications of the ACM, 13(10): 619-620, Oct., 1970.
-//
-template <class T, class Policy>
-T inverse_students_t_hill(T ndf, T u, const Policy& pol)
-{
-   BOOST_MATH_STD_USING
-   BOOST_ASSERT(u <= 0.5);
-
-   T a, b, c, d, q, x, y;
-
-   if (ndf > 1e20f)
-      return -boost::math::erfc_inv(2 * u, pol) * constants::root_two<T>();
-
-   a = 1 / (ndf - 0.5f);
-   b = 48 / (a * a);
-   c = ((20700 * a / b - 98) * a - 16) * a + 96.36f;
-   d = ((94.5f / (b + c) - 3) / b + 1) * sqrt(a * constants::pi<T>() / 2) * ndf;
-   y = pow(d * 2 * u, 2 / ndf);
-
-   if (y > (0.05f + a))
-   {
-      //
-      // Asymptotic inverse expansion about normal:
-      //
-      x = -boost::math::erfc_inv(2 * u, pol) * constants::root_two<T>();
-      y = x * x;
-
-      if (ndf < 5)
-         c += 0.3f * (ndf - 4.5f) * (x + 0.6f);
-      c += (((0.05f * d * x - 5) * x - 7) * x - 2) * x + b;
-      y = (((((0.4f * y + 6.3f) * y + 36) * y + 94.5f) / c - y - 3) / b + 1) * x;
-      y = boost::math::expm1(a * y * y, pol);
-   }
-   else
-   {
-      y = ((1 / (((ndf + 6) / (ndf * y) - 0.089f * d - 0.822f)
-              * (ndf + 2) * 3) + 0.5 / (ndf + 4)) * y - 1)
-              * (ndf + 1) / (ndf + 2) + 1 / y;
-   }
-   q = sqrt(ndf * y);
-
-   return -q;
-}
-//
-// Tail and body series are due to Shaw:
-//
-// www.mth.kcl.ac.uk/~shaww/web_page/papers/Tdistribution06.pdf
-//
-// Shaw, W.T., 2006, "Sampling Student's T distribution - use of
-// the inverse cumulative distribution function."
-// Journal of Computational Finance, Vol 9 Issue 4, pp 37-73, Summer 2006
-//
-template <class T, class Policy>
-T inverse_students_t_tail_series(T df, T v, const Policy& pol)
-{
-   BOOST_MATH_STD_USING
-   // Tail series expansion, see section 6 of Shaw's paper.
-   // w is calculated using Eq 60:
-   T w = boost::math::tgamma_delta_ratio(df / 2, constants::half<T>(), pol)
-      * sqrt(df * constants::pi<T>()) * v;
-   // define some variables:
-   T np2 = df + 2;
-   T np4 = df + 4;
-   T np6 = df + 6;
-   //
-   // Calculate the coefficients d(k), these depend only on the
-   // number of degrees of freedom df, so at least in theory
-   // we could tabulate these for fixed df, see p15 of Shaw:
-   //
-   T d[7] = { 1, };
-   d[1] = -(df + 1) / (2 * np2);
-   np2 *= (df + 2);
-   d[2] = -df * (df + 1) * (df + 3) / (8 * np2 * np4);
-   np2 *= df + 2;
-   d[3] = -df * (df + 1) * (df + 5) * (((3 * df) + 7) * df -2) / (48 * np2 * np4 * np6);
-   np2 *= (df + 2);
-   np4 *= (df + 4);
-   d[4] = -df * (df + 1) * (df + 7) *
-      ( (((((15 * df) + 154) * df + 465) * df + 286) * df - 336) * df + 64 )
-      / (384 * np2 * np4 * np6 * (df + 8));
-   np2 *= (df + 2);
-   d[5] = -df * (df + 1) * (df + 3) * (df + 9)
-            * (((((((35 * df + 452) * df + 1573) * df + 600) * df - 2020) * df) + 928) * df -128)
-            / (1280 * np2 * np4 * np6 * (df + 8) * (df + 10));
-   np2 *= (df + 2);
-   np4 *= (df + 4);
-   np6 *= (df + 6);
-   d[6] = -df * (df + 1) * (df + 11)
-            * ((((((((((((945 * df) + 31506) * df + 425858) * df + 2980236) * df + 11266745) * df + 20675018) * df + 7747124) * df - 22574632) * df - 8565600) * df + 18108416) * df - 7099392) * df + 884736)
-            / (46080 * np2 * np4 * np6 * (df + 8) * (df + 10) * (df +12));
-   //
-   // Now bring everthing together to provide the result,
-   // this is Eq 62 of Shaw:
-   //
-   T rn = sqrt(df);
-   T div = pow(rn * w, 1 / df);
-   T power = div * div;
-   T result = tools::evaluate_polynomial<7, T, T>(d, power);
-   result *= rn;
-   result /= div;
-   return -result;
-}
-
-template <class T, class Policy>
-T inverse_students_t_body_series(T df, T u, const Policy& pol)
-{
-   BOOST_MATH_STD_USING
-   //
-   // Body series for small N:
-   //
-   // Start with Eq 56 of Shaw:
-   //
-   T v = boost::math::tgamma_delta_ratio(df / 2, constants::half<T>(), pol)
-      * sqrt(df * constants::pi<T>()) * (u - constants::half<T>());
-   //
-   // Workspace for the polynomial coefficients:
-   //
-   T c[11] = { 0, 1, };
-   //
-   // Figure out what the coefficients are, note these depend
-   // only on the degrees of freedom (Eq 57 of Shaw):
-   //
-   T in = 1 / df;
-   c[2] = 0.16666666666666666667 + 0.16666666666666666667 * in;
-   c[3] = (0.0083333333333333333333 * in 
-      + 0.066666666666666666667) * in 
-      + 0.058333333333333333333;
-   c[4] = ((0.00019841269841269841270 * in 
-      + 0.0017857142857142857143) * in 
-      + 0.026785714285714285714) * in 
-      + 0.025198412698412698413;
-   c[5] = (((2.7557319223985890653e-6 * in 
-      + 0.00037477954144620811287) * in 
-      - 0.0011078042328042328042) * in 
-      + 0.010559964726631393298) * in 
-      + 0.012039792768959435626;
-   c[6] = ((((2.5052108385441718775e-8 * in 
-      - 0.000062705427288760622094) * in 
-      + 0.00059458674042007375341) * in 
-      - 0.0016095979637646304313) * in 
-      + 0.0061039211560044893378) * in 
-      + 0.0038370059724226390893;
-   c[7] = (((((1.6059043836821614599e-10 * in 
-      + 0.000015401265401265401265) * in 
-      - 0.00016376804137220803887) * in
-      + 0.00069084207973096861986) * in 
-      - 0.0012579159844784844785) * in 
-      + 0.0010898206731540064873) * in 
-      + 0.0032177478835464946576;
-   c[8] = ((((((7.6471637318198164759e-13 * in
-      - 3.9851014346715404916e-6) * in
-      + 0.000049255746366361445727) * in
-      - 0.00024947258047043099953) * in 
-      + 0.00064513046951456342991) * in
-      - 0.00076245135440323932387) * in
-      + 0.000033530976880017885309) * in 
-      + 0.0017438262298340009980;
-   c[9] = (((((((2.8114572543455207632e-15 * in
-      + 1.0914179173496789432e-6) * in
-      - 0.000015303004486655377567) * in
-      + 0.000090867107935219902229) * in
-      - 0.00029133414466938067350) * in
-      + 0.00051406605788341121363) * in
-      - 0.00036307660358786885787) * in
-      - 0.00031101086326318780412) * in 
-      + 0.00096472747321388644237;
-   c[10] = ((((((((8.2206352466243297170e-18 * in
-      - 3.1239569599829868045e-7) * in
-      + 4.8903045291975346210e-6) * in
-      - 0.000033202652391372058698) * in
-      + 0.00012645437628698076975) * in
-      - 0.00028690924218514613987) * in
-      + 0.00035764655430568632777) * in
-      - 0.00010230378073700412687) * in
-      - 0.00036942667800009661203) * in
-      + 0.00054229262813129686486;
-   //
-   // The result is then a polynomial in v (see Eq 56 of Shaw):
-   //
-   return tools::evaluate_odd_polynomial<11, T, T>(c, v);
-}
-
-template <class T, class Policy>
-T inverse_students_t(T df, T u, T v, const Policy& pol, bool* pexact = 0)
-{
-   //
-   // df = number of degrees of freedom.
-   // u = probablity.
-   // v = 1 - u.
-   // l = lanczos type to use.
-   //
-   BOOST_MATH_STD_USING
-   bool invert = false;
-   T result = 0;
-   if(pexact)
-      *pexact = false;
-   if(u > v)
-   {
-      // function is symmetric, invert it:
-      std::swap(u, v);
-      invert = true;
-   }
-   if((floor(df) == df) && (df < 20))
-   {
-      //
-      // we have integer degrees of freedom, try for the special
-      // cases first:
-      //
-      T tolerance = ldexp(1.0f, (2 * policies::digits<T, Policy>()) / 3);
-
-      switch(itrunc(df, Policy()))
-      {
-      case 1:
-         {
-            //
-            // df = 1 is the same as the Cauchy distribution, see
-            // Shaw Eq 35:
-            //
-            if(u == 0.5)
-               result = 0;
-            else
-               result = -cos(constants::pi<T>() * u) / sin(constants::pi<T>() * u);
-            if(pexact)
-               *pexact = true;
-            break;
-         }
-      case 2:
-         {
-            //
-            // df = 2 has an exact result, see Shaw Eq 36:
-            //
-            result =(2 * u - 1) / sqrt(2 * u * v);
-            if(pexact)
-               *pexact = true;
-            break;
-         }
-      case 4:
-         {
-            //
-            // df = 4 has an exact result, see Shaw Eq 38 & 39:
-            //
-            T alpha = 4 * u * v;
-            T root_alpha = sqrt(alpha);
-            T r = 4 * cos(acos(root_alpha) / 3) / root_alpha;
-            T x = sqrt(r - 4);
-            result = u - 0.5f < 0 ? (T)-x : x;
-            if(pexact)
-               *pexact = true;
-            break;
-         }
-      case 6:
-         {
-            //
-            // We get numeric overflow in this area:
-            //
-            if(u < 1e-150)
-               return (invert ? -1 : 1) * inverse_students_t_hill(df, u, pol);
-            //
-            // Newton-Raphson iteration of a polynomial case,
-            // choice of seed value is taken from Shaw's online
-            // supplement:
-            //
-            T a = 4 * (u - u * u);//1 - 4 * (u - 0.5f) * (u - 0.5f);
-            T b = boost::math::cbrt(a);
-            static const T c = 0.85498797333834849467655443627193;
-            T p = 6 * (1 + c * (1 / b - 1));
-            T p0;
-            do{
-               T p2 = p * p;
-               T p4 = p2 * p2;
-               T p5 = p * p4;
-               p0 = p;
-               // next term is given by Eq 41:
-               p = 2 * (8 * a * p5 - 270 * p2 + 2187) / (5 * (4 * a * p4 - 216 * p - 243));
-            }while(fabs((p - p0) / p) > tolerance);
-            //
-            // Use Eq 45 to extract the result:
-            //
-            p = sqrt(p - df);
-            result = (u - 0.5f) < 0 ? (T)-p : p;
-            break;
-         }
-#if 0
-         //
-         // These are Shaw's "exact" but iterative solutions
-         // for even df, the numerical accuracy of these is
-         // rather less than Hill's method, so these are disabled
-         // for now, which is a shame because they are reasonably
-         // quick to evaluate...
-         //
-      case 8:
-         {
-            //
-            // Newton-Raphson iteration of a polynomial case,
-            // choice of seed value is taken from Shaw's online
-            // supplement:
-            //
-            static const T c8 = 0.85994765706259820318168359251872L;
-            T a = 4 * (u - u * u); //1 - 4 * (u - 0.5f) * (u - 0.5f);
-            T b = pow(a, T(1) / 4);
-            T p = 8 * (1 + c8 * (1 / b - 1));
-            T p0 = p;
-            do{
-               T p5 = p * p;
-               p5 *= p5 * p;
-               p0 = p;
-               // Next term is given by Eq 42:
-               p = 2 * (3 * p + (640 * (160 + p * (24 + p * (p + 4)))) / (-5120 + p * (-2048 - 960 * p + a * p5))) / 7;
-            }while(fabs((p - p0) / p) > tolerance);
-            //
-            // Use Eq 45 to extract the result:
-            //
-            p = sqrt(p - df);
-            result = (u - 0.5f) < 0 ? -p : p;
-            break;
-         }
-      case 10:
-         {
-            //
-            // Newton-Raphson iteration of a polynomial case,
-            // choice of seed value is taken from Shaw's online
-            // supplement:
-            //
-            static const T c10 = 0.86781292867813396759105692122285L;
-            T a = 4 * (u - u * u); //1 - 4 * (u - 0.5f) * (u - 0.5f);
-            T b = pow(a, T(1) / 5);
-            T p = 10 * (1 + c10 * (1 / b - 1));
-            T p0;
-            do{
-               T p6 = p * p;
-               p6 *= p6 * p6;
-               p0 = p;
-               // Next term given by Eq 43:
-               p = (8 * p) / 9 + (218750 * (21875 + 4 * p * (625 + p * (75 + 2 * p * (5 + p))))) /
-                  (9 * (-68359375 + 8 * p * (-2343750 + p * (-546875 - 175000 * p + 8 * a * p6))));
-            }while(fabs((p - p0) / p) > tolerance);
-            //
-            // Use Eq 45 to extract the result:
-            //
-            p = sqrt(p - df);
-            result = (u - 0.5f) < 0 ? -p : p;
-            break;
-         }
-#endif
-      default:
-         goto calculate_real;
-      }
-   }
-   else
-   {
-calculate_real:
-      if(df > 0x10000000)
-      {
-         result = -boost::math::erfc_inv(2 * u, pol) * constants::root_two<T>();
-         if((pexact) && (df >= 1e20))
-            *pexact = true;
-      }
-      else if(df < 3)
-      {
-         //
-         // Use a roughly linear scheme to choose between Shaw's
-         // tail series and body series:
-         //
-         T crossover = 0.2742f - df * 0.0242143f;
-         if(u > crossover)
-         {
-            result = boost::math::detail::inverse_students_t_body_series(df, u, pol);
-         }
-         else
-         {
-            result = boost::math::detail::inverse_students_t_tail_series(df, u, pol);
-         }
-      }
-      else
-      {
-         //
-         // Use Hill's method except in the exteme tails
-         // where we use Shaw's tail series.
-         // The crossover point is roughly exponential in -df:
-         //
-         T crossover = ldexp(1.0f, iround(T(df / -0.654f), typename policies::normalise<Policy, policies::rounding_error<policies::ignore_error> >::type()));
-         if(u > crossover)
-         {
-            result = boost::math::detail::inverse_students_t_hill(df, u, pol);
-         }
-         else
-         {
-            result = boost::math::detail::inverse_students_t_tail_series(df, u, pol);
-         }
-      }
-   }
-   return invert ? (T)-result : result;
-}
-
-template <class T, class Policy>
-inline T find_ibeta_inv_from_t_dist(T a, T p, T /*q*/, T* py, const Policy& pol)
-{
-   T u = p / 2;
-   T v = 1 - u;
-   T df = a * 2;
-   T t = boost::math::detail::inverse_students_t(df, u, v, pol);
-   *py = t * t / (df + t * t);
-   return df / (df + t * t);
-}
-
-template <class T, class Policy>
-inline T fast_students_t_quantile_imp(T df, T p, const Policy& pol, const mpl::false_*)
-{
-   BOOST_MATH_STD_USING
-   //
-   // Need to use inverse incomplete beta to get
-   // required precision so not so fast:
-   //
-   T probability = (p > 0.5) ? 1 - p : p;
-   T t, x, y(0);
-   x = ibeta_inv(df / 2, T(0.5), 2 * probability, &y, pol);
-   if(df * y > tools::max_value<T>() * x)
-      t = policies::raise_overflow_error<T>("boost::math::students_t_quantile<%1%>(%1%,%1%)", 0, pol);
-   else
-      t = sqrt(df * y / x);
-   //
-   // Figure out sign based on the size of p:
-   //
-   if(p < 0.5)
-      t = -t;
-   return t;
-}
-
-template <class T, class Policy>
-T fast_students_t_quantile_imp(T df, T p, const Policy& pol, const mpl::true_*)
-{
-   BOOST_MATH_STD_USING
-   bool invert = false;
-   if((df < 2) && (floor(df) != df))
-      return boost::math::detail::fast_students_t_quantile_imp(df, p, pol, static_cast<mpl::false_*>(0));
-   if(p > 0.5)
-   {
-      p = 1 - p;
-      invert = true;
-   }
-   //
-   // Get an estimate of the result:
-   //
-   bool exact;
-   T t = inverse_students_t(df, p, T(1-p), pol, &exact);
-   if((t == 0) || exact)
-      return invert ? -t : t; // can't do better!
-   //
-   // Change variables to inverse incomplete beta:
-   //
-   T t2 = t * t;
-   T xb = df / (df + t2);
-   T y = t2 / (df + t2);
-   T a = df / 2;
-   //
-   // t can be so large that x underflows,
-   // just return our estimate in that case:
-   //
-   if(xb == 0)
-      return t;
-   //
-   // Get incomplete beta and it's derivative:
-   //
-   T f1;
-   T f0 = xb < y ? ibeta_imp(a, constants::half<T>(), xb, pol, false, true, &f1)
-      : ibeta_imp(constants::half<T>(), a, y, pol, true, true, &f1);
-
-   // Get cdf from incomplete beta result:
-   T p0 = f0 / 2  - p;
-   // Get pdf from derivative:
-   T p1 = f1 * sqrt(y * xb * xb * xb / df);
-   //
-   // Second derivative divided by p1:
-   //
-   // yacas gives:
-   //
-   // In> PrettyForm(Simplify(D(t) (1 + t^2/v) ^ (-(v+1)/2)))
-   //
-   //  |                        | v + 1     |     |
-   //  |                       -| ----- + 1 |     |
-   //  |                        |   2       |     |
-   // -|             |  2     |                   |
-   //  |             | t      |                   |
-   //  |             | -- + 1 |                   |
-   //  | ( v + 1 ) * | v      |               * t |
-   // ---------------------------------------------
-   //                       v
-   //
-   // Which after some manipulation is:
-   //
-   // -p1 * t * (df + 1) / (t^2 + df)
-   //
-   T p2 = t * (df + 1) / (t * t + df);
-   // Halley step:
-   t = fabs(t);
-   t += p0 / (p1 + p0 * p2 / 2);
-   return !invert ? -t : t;
-}
-
-template <class T, class Policy>
-inline T fast_students_t_quantile(T df, T p, const Policy& pol)
-{
-   typedef typename policies::evaluation<T, Policy>::type value_type;
-   typedef typename policies::normalise<
-      Policy, 
-      policies::promote_float<false>, 
-      policies::promote_double<false>, 
-      policies::discrete_quantile<>,
-      policies::assert_undefined<> >::type forwarding_policy;
-
-   typedef mpl::bool_<
-      (std::numeric_limits<T>::digits <= 53)
-       &&
-      (std::numeric_limits<T>::is_specialized)
-       &&
-      (std::numeric_limits<T>::radix == 2)
-   > tag_type;
-   return policies::checked_narrowing_cast<T, forwarding_policy>(fast_students_t_quantile_imp(static_cast<value_type>(df), static_cast<value_type>(p), pol, static_cast<tag_type*>(0)), "boost::math::students_t_quantile<%1%>(%1%,%1%,%1%)");
-}
-
-}}} // namespaces
-
-#endif // BOOST_MATH_SF_DETAIL_INV_T_HPP
-
-
-
diff --git a/boost/math/special_functions/detail/unchecked_factorial.hpp b/boost/math/special_functions/detail/unchecked_factorial.hpp
deleted file mode 100644
index 4fa1ebf..0000000
--- a/boost/math/special_functions/detail/unchecked_factorial.hpp
+++ /dev/null
@@ -1,435 +0,0 @@
-//  Copyright John Maddock 2006.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_SP_UC_FACTORIALS_HPP
-#define BOOST_MATH_SP_UC_FACTORIALS_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/array.hpp>
-#ifdef BOOST_MSVC
-#pragma warning(push) // Temporary until lexical cast fixed.
-#pragma warning(disable: 4127 4701)
-#endif
-#ifndef BOOST_MATH_NO_LEXICAL_CAST
-#include <boost/lexical_cast.hpp>
-#endif
-#ifdef BOOST_MSVC
-#pragma warning(pop)
-#endif
-#include <boost/config/no_tr1/cmath.hpp>
-#include <boost/math/special_functions/math_fwd.hpp>
-
-namespace boost { namespace math
-{
-// Forward declarations:
-template <class T>
-struct max_factorial;
-
-// Definitions:
-template <>
-inline float unchecked_factorial<float>(unsigned i BOOST_MATH_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC(float))
-{
-   static const boost::array<float, 35> factorials = {{
-      1.0F,
-      1.0F,
-      2.0F,
-      6.0F,
-      24.0F,
-      120.0F,
-      720.0F,
-      5040.0F,
-      40320.0F,
-      362880.0F,
-      3628800.0F,
-      39916800.0F,
-      479001600.0F,
-      6227020800.0F,
-      87178291200.0F,
-      1307674368000.0F,
-      20922789888000.0F,
-      355687428096000.0F,
-      6402373705728000.0F,
-      121645100408832000.0F,
-      0.243290200817664e19F,
-      0.5109094217170944e20F,
-      0.112400072777760768e22F,
-      0.2585201673888497664e23F,
-      0.62044840173323943936e24F,
-      0.15511210043330985984e26F,
-      0.403291461126605635584e27F,
-      0.10888869450418352160768e29F,
-      0.304888344611713860501504e30F,
-      0.8841761993739701954543616e31F,
-      0.26525285981219105863630848e33F,
-      0.822283865417792281772556288e34F,
-      0.26313083693369353016721801216e36F,
-      0.868331761881188649551819440128e37F,
-      0.29523279903960414084761860964352e39F,
-   }};
-
-   return factorials[i];
-}
-
-template <>
-struct max_factorial<float>
-{
-   BOOST_STATIC_CONSTANT(unsigned, value = 34);
-};
-
-
-template <>
-inline long double unchecked_factorial<long double>(unsigned i BOOST_MATH_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC(long double))
-{
-   static const boost::array<long double, 171> factorials = {{
-      1L,
-      1L,
-      2L,
-      6L,
-      24L,
-      120L,
-      720L,
-      5040L,
-      40320L,
-      362880.0L,
-      3628800.0L,
-      39916800.0L,
-      479001600.0L,
-      6227020800.0L,
-      87178291200.0L,
-      1307674368000.0L,
-      20922789888000.0L,
-      355687428096000.0L,
-      6402373705728000.0L,
-      121645100408832000.0L,
-      0.243290200817664e19L,
-      0.5109094217170944e20L,
-      0.112400072777760768e22L,
-      0.2585201673888497664e23L,
-      0.62044840173323943936e24L,
-      0.15511210043330985984e26L,
-      0.403291461126605635584e27L,
-      0.10888869450418352160768e29L,
-      0.304888344611713860501504e30L,
-      0.8841761993739701954543616e31L,
-      0.26525285981219105863630848e33L,
-      0.822283865417792281772556288e34L,
-      0.26313083693369353016721801216e36L,
-      0.868331761881188649551819440128e37L,
-      0.29523279903960414084761860964352e39L,
-      0.103331479663861449296666513375232e41L,
-      0.3719933267899012174679994481508352e42L,
-      0.137637530912263450463159795815809024e44L,
-      0.5230226174666011117600072241000742912e45L,
-      0.203978820811974433586402817399028973568e47L,
-      0.815915283247897734345611269596115894272e48L,
-      0.3345252661316380710817006205344075166515e50L,
-      0.1405006117752879898543142606244511569936e52L,
-      0.6041526306337383563735513206851399750726e53L,
-      0.265827157478844876804362581101461589032e55L,
-      0.1196222208654801945619631614956577150644e57L,
-      0.5502622159812088949850305428800254892962e58L,
-      0.2586232415111681806429643551536119799692e60L,
-      0.1241391559253607267086228904737337503852e62L,
-      0.6082818640342675608722521633212953768876e63L,
-      0.3041409320171337804361260816606476884438e65L,
-      0.1551118753287382280224243016469303211063e67L,
-      0.8065817517094387857166063685640376697529e68L,
-      0.427488328406002556429801375338939964969e70L,
-      0.2308436973392413804720927426830275810833e72L,
-      0.1269640335365827592596510084756651695958e74L,
-      0.7109985878048634518540456474637249497365e75L,
-      0.4052691950487721675568060190543232213498e77L,
-      0.2350561331282878571829474910515074683829e79L,
-      0.1386831185456898357379390197203894063459e81L,
-      0.8320987112741390144276341183223364380754e82L,
-      0.507580213877224798800856812176625227226e84L,
-      0.3146997326038793752565312235495076408801e86L,
-      0.1982608315404440064116146708361898137545e88L,
-      0.1268869321858841641034333893351614808029e90L,
-      0.8247650592082470666723170306785496252186e91L,
-      0.5443449390774430640037292402478427526443e93L,
-      0.3647111091818868528824985909660546442717e95L,
-      0.2480035542436830599600990418569171581047e97L,
-      0.1711224524281413113724683388812728390923e99L,
-      0.1197857166996989179607278372168909873646e101L,
-      0.8504785885678623175211676442399260102886e102L,
-      0.6123445837688608686152407038527467274078e104L,
-      0.4470115461512684340891257138125051110077e106L,
-      0.3307885441519386412259530282212537821457e108L,
-      0.2480914081139539809194647711659403366093e110L,
-      0.188549470166605025498793226086114655823e112L,
-      0.1451830920282858696340707840863082849837e114L,
-      0.1132428117820629783145752115873204622873e116L,
-      0.8946182130782975286851441715398316520698e117L,
-      0.7156945704626380229481153372318653216558e119L,
-      0.5797126020747367985879734231578109105412e121L,
-      0.4753643337012841748421382069894049466438e123L,
-      0.3945523969720658651189747118012061057144e125L,
-      0.3314240134565353266999387579130131288001e127L,
-      0.2817104114380550276949479442260611594801e129L,
-      0.2422709538367273238176552320344125971528e131L,
-      0.210775729837952771721360051869938959523e133L,
-      0.1854826422573984391147968456455462843802e135L,
-      0.1650795516090846108121691926245361930984e137L,
-      0.1485715964481761497309522733620825737886e139L,
-      0.1352001527678402962551665687594951421476e141L,
-      0.1243841405464130725547532432587355307758e143L,
-      0.1156772507081641574759205162306240436215e145L,
-      0.1087366156656743080273652852567866010042e147L,
-      0.103299784882390592625997020993947270954e149L,
-      0.9916779348709496892095714015418938011582e150L,
-      0.9619275968248211985332842594956369871234e152L,
-      0.942689044888324774562618574305724247381e154L,
-      0.9332621544394415268169923885626670049072e156L,
-      0.9332621544394415268169923885626670049072e158L,
-      0.9425947759838359420851623124482936749562e160L,
-      0.9614466715035126609268655586972595484554e162L,
-      0.990290071648618040754671525458177334909e164L,
-      0.1029901674514562762384858386476504428305e167L,
-      0.1081396758240290900504101305800329649721e169L,
-      0.1146280563734708354534347384148349428704e171L,
-      0.1226520203196137939351751701038733888713e173L,
-      0.132464181945182897449989183712183259981e175L,
-      0.1443859583202493582204882102462797533793e177L,
-      0.1588245541522742940425370312709077287172e179L,
-      0.1762952551090244663872161047107075788761e181L,
-      0.1974506857221074023536820372759924883413e183L,
-      0.2231192748659813646596607021218715118256e185L,
-      0.2543559733472187557120132004189335234812e187L,
-      0.2925093693493015690688151804817735520034e189L,
-      0.339310868445189820119825609358857320324e191L,
-      0.396993716080872089540195962949863064779e193L,
-      0.4684525849754290656574312362808384164393e195L,
-      0.5574585761207605881323431711741977155627e197L,
-      0.6689502913449127057588118054090372586753e199L,
-      0.8094298525273443739681622845449350829971e201L,
-      0.9875044200833601362411579871448208012564e203L,
-      0.1214630436702532967576624324188129585545e206L,
-      0.1506141741511140879795014161993280686076e208L,
-      0.1882677176888926099743767702491600857595e210L,
-      0.237217324288004688567714730513941708057e212L,
-      0.3012660018457659544809977077527059692324e214L,
-      0.3856204823625804217356770659234636406175e216L,
-      0.4974504222477287440390234150412680963966e218L,
-      0.6466855489220473672507304395536485253155e220L,
-      0.8471580690878820510984568758152795681634e222L,
-      0.1118248651196004307449963076076169029976e225L,
-      0.1487270706090685728908450891181304809868e227L,
-      0.1992942746161518876737324194182948445223e229L,
-      0.269047270731805048359538766214698040105e231L,
-      0.3659042881952548657689727220519893345429e233L,
-      0.5012888748274991661034926292112253883237e235L,
-      0.6917786472619488492228198283114910358867e237L,
-      0.9615723196941089004197195613529725398826e239L,
-      0.1346201247571752460587607385894161555836e242L,
-      0.1898143759076170969428526414110767793728e244L,
-      0.2695364137888162776588507508037290267094e246L,
-      0.3854370717180072770521565736493325081944e248L,
-      0.5550293832739304789551054660550388118e250L,
-      0.80479260574719919448490292577980627711e252L,
-      0.1174997204390910823947958271638517164581e255L,
-      0.1727245890454638911203498659308620231933e257L,
-      0.2556323917872865588581178015776757943262e259L,
-      0.380892263763056972698595524350736933546e261L,
-      0.571338395644585459047893286526105400319e263L,
-      0.8627209774233240431623188626544191544816e265L,
-      0.1311335885683452545606724671234717114812e268L,
-      0.2006343905095682394778288746989117185662e270L,
-      0.308976961384735088795856467036324046592e272L,
-      0.4789142901463393876335775239063022722176e274L,
-      0.7471062926282894447083809372938315446595e276L,
-      0.1172956879426414428192158071551315525115e279L,
-      0.1853271869493734796543609753051078529682e281L,
-      0.2946702272495038326504339507351214862195e283L,
-      0.4714723635992061322406943211761943779512e285L,
-      0.7590705053947218729075178570936729485014e287L,
-      0.1229694218739449434110178928491750176572e290L,
-      0.2004401576545302577599591653441552787813e292L,
-      0.3287218585534296227263330311644146572013e294L,
-      0.5423910666131588774984495014212841843822e296L,
-      0.9003691705778437366474261723593317460744e298L,
-      0.1503616514864999040201201707840084015944e301L,
-      0.2526075744973198387538018869171341146786e303L,
-      0.4269068009004705274939251888899566538069e305L,
-      0.7257415615307998967396728211129263114717e307L,
-   }};
-
-   return factorials[i];
-}
-
-template <>
-struct max_factorial<long double>
-{
-   BOOST_STATIC_CONSTANT(unsigned, value = 170);
-};
-
-template <>
-inline double unchecked_factorial<double>(unsigned i BOOST_MATH_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC(double))
-{
-   return static_cast<double>(boost::math::unchecked_factorial<long double>(i));
-}
-
-template <>
-struct max_factorial<double>
-{
-   BOOST_STATIC_CONSTANT(unsigned,
-      value = ::boost::math::max_factorial<long double>::value);
-};
-
-#ifndef BOOST_MATH_NO_LEXICAL_CAST
-
-template <class T>
-inline T unchecked_factorial(unsigned i BOOST_MATH_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC(T))
-{
-   BOOST_STATIC_ASSERT(!boost::is_integral<T>::value);
-   // factorial<unsigned int>(n) is not implemented
-   // because it would overflow integral type T for too small n
-   // to be useful. Use instead a floating-point type,
-   // and convert to an unsigned type if essential, for example:
-   // unsigned int nfac = static_cast<unsigned int>(factorial<double>(n));
-   // See factorial documentation for more detail.
-
-   static const boost::array<T, 101> factorials = {{
-      boost::lexical_cast<T>("1"),
-      boost::lexical_cast<T>("1"),
-      boost::lexical_cast<T>("2"),
-      boost::lexical_cast<T>("6"),
-      boost::lexical_cast<T>("24"),
-      boost::lexical_cast<T>("120"),
-      boost::lexical_cast<T>("720"),
-      boost::lexical_cast<T>("5040"),
-      boost::lexical_cast<T>("40320"),
-      boost::lexical_cast<T>("362880"),
-      boost::lexical_cast<T>("3628800"),
-      boost::lexical_cast<T>("39916800"),
-      boost::lexical_cast<T>("479001600"),
-      boost::lexical_cast<T>("6227020800"),
-      boost::lexical_cast<T>("87178291200"),
-      boost::lexical_cast<T>("1307674368000"),
-      boost::lexical_cast<T>("20922789888000"),
-      boost::lexical_cast<T>("355687428096000"),
-      boost::lexical_cast<T>("6402373705728000"),
-      boost::lexical_cast<T>("121645100408832000"),
-      boost::lexical_cast<T>("2432902008176640000"),
-      boost::lexical_cast<T>("51090942171709440000"),
-      boost::lexical_cast<T>("1124000727777607680000"),
-      boost::lexical_cast<T>("25852016738884976640000"),
-      boost::lexical_cast<T>("620448401733239439360000"),
-      boost::lexical_cast<T>("15511210043330985984000000"),
-      boost::lexical_cast<T>("403291461126605635584000000"),
-      boost::lexical_cast<T>("10888869450418352160768000000"),
-      boost::lexical_cast<T>("304888344611713860501504000000"),
-      boost::lexical_cast<T>("8841761993739701954543616000000"),
-      boost::lexical_cast<T>("265252859812191058636308480000000"),
-      boost::lexical_cast<T>("8222838654177922817725562880000000"),
-      boost::lexical_cast<T>("263130836933693530167218012160000000"),
-      boost::lexical_cast<T>("8683317618811886495518194401280000000"),
-      boost::lexical_cast<T>("295232799039604140847618609643520000000"),
-      boost::lexical_cast<T>("10333147966386144929666651337523200000000"),
-      boost::lexical_cast<T>("371993326789901217467999448150835200000000"),
-      boost::lexical_cast<T>("13763753091226345046315979581580902400000000"),
-      boost::lexical_cast<T>("523022617466601111760007224100074291200000000"),
-      boost::lexical_cast<T>("20397882081197443358640281739902897356800000000"),
-      boost::lexical_cast<T>("815915283247897734345611269596115894272000000000"),
-      boost::lexical_cast<T>("33452526613163807108170062053440751665152000000000"),
-      boost::lexical_cast<T>("1405006117752879898543142606244511569936384000000000"),
-      boost::lexical_cast<T>("60415263063373835637355132068513997507264512000000000"),
-      boost::lexical_cast<T>("2658271574788448768043625811014615890319638528000000000"),
-      boost::lexical_cast<T>("119622220865480194561963161495657715064383733760000000000"),
-      boost::lexical_cast<T>("5502622159812088949850305428800254892961651752960000000000"),
-      boost::lexical_cast<T>("258623241511168180642964355153611979969197632389120000000000"),
-      boost::lexical_cast<T>("12413915592536072670862289047373375038521486354677760000000000"),
-      boost::lexical_cast<T>("608281864034267560872252163321295376887552831379210240000000000"),
-      boost::lexical_cast<T>("30414093201713378043612608166064768844377641568960512000000000000"),
-      boost::lexical_cast<T>("1551118753287382280224243016469303211063259720016986112000000000000"),
-      boost::lexical_cast<T>("80658175170943878571660636856403766975289505440883277824000000000000"),
-      boost::lexical_cast<T>("4274883284060025564298013753389399649690343788366813724672000000000000"),
-      boost::lexical_cast<T>("230843697339241380472092742683027581083278564571807941132288000000000000"),
-      boost::lexical_cast<T>("12696403353658275925965100847566516959580321051449436762275840000000000000"),
-      boost::lexical_cast<T>("710998587804863451854045647463724949736497978881168458687447040000000000000"),
-      boost::lexical_cast<T>("40526919504877216755680601905432322134980384796226602145184481280000000000000"),
-      boost::lexical_cast<T>("2350561331282878571829474910515074683828862318181142924420699914240000000000000"),
-      boost::lexical_cast<T>("138683118545689835737939019720389406345902876772687432540821294940160000000000000"),
-      boost::lexical_cast<T>("8320987112741390144276341183223364380754172606361245952449277696409600000000000000"),
-      boost::lexical_cast<T>("507580213877224798800856812176625227226004528988036003099405939480985600000000000000"),
-      boost::lexical_cast<T>("31469973260387937525653122354950764088012280797258232192163168247821107200000000000000"),
-      boost::lexical_cast<T>("1982608315404440064116146708361898137544773690227268628106279599612729753600000000000000"),
-      boost::lexical_cast<T>("126886932185884164103433389335161480802865516174545192198801894375214704230400000000000000"),
-      boost::lexical_cast<T>("8247650592082470666723170306785496252186258551345437492922123134388955774976000000000000000"),
-      boost::lexical_cast<T>("544344939077443064003729240247842752644293064388798874532860126869671081148416000000000000000"),
-      boost::lexical_cast<T>("36471110918188685288249859096605464427167635314049524593701628500267962436943872000000000000000"),
-      boost::lexical_cast<T>("2480035542436830599600990418569171581047399201355367672371710738018221445712183296000000000000000"),
-      boost::lexical_cast<T>("171122452428141311372468338881272839092270544893520369393648040923257279754140647424000000000000000"),
-      boost::lexical_cast<T>("11978571669969891796072783721689098736458938142546425857555362864628009582789845319680000000000000000"),
-      boost::lexical_cast<T>("850478588567862317521167644239926010288584608120796235886430763388588680378079017697280000000000000000"),
-      boost::lexical_cast<T>("61234458376886086861524070385274672740778091784697328983823014963978384987221689274204160000000000000000"),
-      boost::lexical_cast<T>("4470115461512684340891257138125051110076800700282905015819080092370422104067183317016903680000000000000000"),
-      boost::lexical_cast<T>("330788544151938641225953028221253782145683251820934971170611926835411235700971565459250872320000000000000000"),
-      boost::lexical_cast<T>("24809140811395398091946477116594033660926243886570122837795894512655842677572867409443815424000000000000000000"),
-      boost::lexical_cast<T>("1885494701666050254987932260861146558230394535379329335672487982961844043495537923117729972224000000000000000000"),
-      boost::lexical_cast<T>("145183092028285869634070784086308284983740379224208358846781574688061991349156420080065207861248000000000000000000"),
-      boost::lexical_cast<T>("11324281178206297831457521158732046228731749579488251990048962825668835325234200766245086213177344000000000000000000"),
-      boost::lexical_cast<T>("894618213078297528685144171539831652069808216779571907213868063227837990693501860533361810841010176000000000000000000"),
-      boost::lexical_cast<T>("71569457046263802294811533723186532165584657342365752577109445058227039255480148842668944867280814080000000000000000000"),
-      boost::lexical_cast<T>("5797126020747367985879734231578109105412357244731625958745865049716390179693892056256184534249745940480000000000000000000"),
-      boost::lexical_cast<T>("475364333701284174842138206989404946643813294067993328617160934076743994734899148613007131808479167119360000000000000000000"),
-      boost::lexical_cast<T>("39455239697206586511897471180120610571436503407643446275224357528369751562996629334879591940103770870906880000000000000000000"),
-      boost::lexical_cast<T>("3314240134565353266999387579130131288000666286242049487118846032383059131291716864129885722968716753156177920000000000000000000"),
-      boost::lexical_cast<T>("281710411438055027694947944226061159480056634330574206405101912752560026159795933451040286452340924018275123200000000000000000000"),
-      boost::lexical_cast<T>("24227095383672732381765523203441259715284870552429381750838764496720162249742450276789464634901319465571660595200000000000000000000"),
-      boost::lexical_cast<T>("2107757298379527717213600518699389595229783738061356212322972511214654115727593174080683423236414793504734471782400000000000000000000"),
-      boost::lexical_cast<T>("185482642257398439114796845645546284380220968949399346684421580986889562184028199319100141244804501828416633516851200000000000000000000"),
-      boost::lexical_cast<T>("16507955160908461081216919262453619309839666236496541854913520707833171034378509739399912570787600662729080382999756800000000000000000000"),
-      boost::lexical_cast<T>("1485715964481761497309522733620825737885569961284688766942216863704985393094065876545992131370884059645617234469978112000000000000000000000"),
-      boost::lexical_cast<T>("135200152767840296255166568759495142147586866476906677791741734597153670771559994765685283954750449427751168336768008192000000000000000000000"),
-      boost::lexical_cast<T>("12438414054641307255475324325873553077577991715875414356840239582938137710983519518443046123837041347353107486982656753664000000000000000000000"),
-      boost::lexical_cast<T>("1156772507081641574759205162306240436214753229576413535186142281213246807121467315215203289516844845303838996289387078090752000000000000000000000"),
-      boost::lexical_cast<T>("108736615665674308027365285256786601004186803580182872307497374434045199869417927630229109214583415458560865651202385340530688000000000000000000000"),
-      boost::lexical_cast<T>("10329978488239059262599702099394727095397746340117372869212250571234293987594703124871765375385424468563282236864226607350415360000000000000000000000"),
-      boost::lexical_cast<T>("991677934870949689209571401541893801158183648651267795444376054838492222809091499987689476037000748982075094738965754305639874560000000000000000000000"),
-      boost::lexical_cast<T>("96192759682482119853328425949563698712343813919172976158104477319333745612481875498805879175589072651261284189679678167647067832320000000000000000000000"),
-      boost::lexical_cast<T>("9426890448883247745626185743057242473809693764078951663494238777294707070023223798882976159207729119823605850588608460429412647567360000000000000000000000"),
-      boost::lexical_cast<T>("933262154439441526816992388562667004907159682643816214685929638952175999932299156089414639761565182862536979208272237582511852109168640000000000000000000000"),
-      boost::lexical_cast<T>("93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000"),
-   }};
-
-   return factorials[i];
-}
-
-template <class T>
-struct max_factorial
-{
-   BOOST_STATIC_CONSTANT(unsigned, value = 100);
-};
-
-#else // BOOST_MATH_NO_LEXICAL_CAST
-
-template <class T>
-inline T unchecked_factorial(unsigned i BOOST_MATH_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC(T))
-{
-   return 1;
-}
-
-template <class T>
-struct max_factorial
-{
-   BOOST_STATIC_CONSTANT(unsigned, value = 0);
-};
-
-#endif
-
-#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
-template <class T>
-const unsigned max_factorial<T>::value;
-#endif
-
-} // namespace math
-} // namespace boost
-
-#endif // BOOST_MATH_SP_UC_FACTORIALS_HPP
-
diff --git a/boost/math/special_functions/digamma.hpp b/boost/math/special_functions/digamma.hpp
deleted file mode 100644
index c329c46..0000000
--- a/boost/math/special_functions/digamma.hpp
+++ /dev/null
@@ -1,479 +0,0 @@
-//  (C) Copyright John Maddock 2006.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_SF_DIGAMMA_HPP
-#define BOOST_MATH_SF_DIGAMMA_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/math/tools/rational.hpp>
-#include <boost/math/tools/promotion.hpp>
-#include <boost/math/policies/error_handling.hpp>
-#include <boost/math/constants/constants.hpp>
-#include <boost/mpl/comparison.hpp>
-#include <boost/math/tools/big_constant.hpp>
-
-namespace boost{
-namespace math{
-namespace detail{
-//
-// Begin by defining the smallest value for which it is safe to
-// use the asymptotic expansion for digamma:
-//
-inline unsigned digamma_large_lim(const mpl::int_<0>*)
-{  return 20;  }
-
-inline unsigned digamma_large_lim(const void*)
-{  return 10;  }
-//
-// Implementations of the asymptotic expansion come next,
-// the coefficients of the series have been evaluated
-// in advance at high precision, and the series truncated
-// at the first term that's too small to effect the result.
-// Note that the series becomes divergent after a while
-// so truncation is very important.
-//
-// This first one gives 34-digit precision for x >= 20:
-//
-template <class T>
-inline T digamma_imp_large(T x, const mpl::int_<0>*)
-{
-   BOOST_MATH_STD_USING // ADL of std functions.
-   static const T P[] = {
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.083333333333333333333333333333333333333333333333333),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.0083333333333333333333333333333333333333333333333333),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.003968253968253968253968253968253968253968253968254),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.0041666666666666666666666666666666666666666666666667),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.0075757575757575757575757575757575757575757575757576),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.021092796092796092796092796092796092796092796092796),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.083333333333333333333333333333333333333333333333333),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.44325980392156862745098039215686274509803921568627),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 3.0539543302701197438039543302701197438039543302701),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -26.456212121212121212121212121212121212121212121212),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 281.4601449275362318840579710144927536231884057971),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -3607.510546398046398046398046398046398046398046398),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 54827.583333333333333333333333333333333333333333333),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -974936.82385057471264367816091954022988505747126437),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 20052695.796688078946143462272494530559046688078946),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -472384867.72162990196078431372549019607843137254902),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 12635724795.916666666666666666666666666666666666667)
-   };
-   x -= 1;
-   T result = log(x);
-   result += 1 / (2 * x);
-   T z = 1 / (x*x);
-   result -= z * tools::evaluate_polynomial(P, z);
-   return result;
-}
-//
-// 19-digit precision for x >= 10:
-//
-template <class T>
-inline T digamma_imp_large(T x, const mpl::int_<64>*)
-{
-   BOOST_MATH_STD_USING // ADL of std functions.
-   static const T P[] = {
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.083333333333333333333333333333333333333333333333333),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.0083333333333333333333333333333333333333333333333333),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.003968253968253968253968253968253968253968253968254),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.0041666666666666666666666666666666666666666666666667),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.0075757575757575757575757575757575757575757575757576),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.021092796092796092796092796092796092796092796092796),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.083333333333333333333333333333333333333333333333333),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.44325980392156862745098039215686274509803921568627),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 3.0539543302701197438039543302701197438039543302701),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -26.456212121212121212121212121212121212121212121212),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 281.4601449275362318840579710144927536231884057971),
-   };
-   x -= 1;
-   T result = log(x);
-   result += 1 / (2 * x);
-   T z = 1 / (x*x);
-   result -= z * tools::evaluate_polynomial(P, z);
-   return result;
-}
-//
-// 17-digit precision for x >= 10:
-//
-template <class T>
-inline T digamma_imp_large(T x, const mpl::int_<53>*)
-{
-   BOOST_MATH_STD_USING // ADL of std functions.
-   static const T P[] = {
-      BOOST_MATH_BIG_CONSTANT(T, 53, 0.083333333333333333333333333333333333333333333333333),
-      BOOST_MATH_BIG_CONSTANT(T, 53, -0.0083333333333333333333333333333333333333333333333333),
-      BOOST_MATH_BIG_CONSTANT(T, 53, 0.003968253968253968253968253968253968253968253968254),
-      BOOST_MATH_BIG_CONSTANT(T, 53, -0.0041666666666666666666666666666666666666666666666667),
-      BOOST_MATH_BIG_CONSTANT(T, 53, 0.0075757575757575757575757575757575757575757575757576),
-      BOOST_MATH_BIG_CONSTANT(T, 53, -0.021092796092796092796092796092796092796092796092796),
-      BOOST_MATH_BIG_CONSTANT(T, 53, 0.083333333333333333333333333333333333333333333333333),
-      BOOST_MATH_BIG_CONSTANT(T, 53, -0.44325980392156862745098039215686274509803921568627)
-   };
-   x -= 1;
-   T result = log(x);
-   result += 1 / (2 * x);
-   T z = 1 / (x*x);
-   result -= z * tools::evaluate_polynomial(P, z);
-   return result;
-}
-//
-// 9-digit precision for x >= 10:
-//
-template <class T>
-inline T digamma_imp_large(T x, const mpl::int_<24>*)
-{
-   BOOST_MATH_STD_USING // ADL of std functions.
-   static const T P[] = {
-      BOOST_MATH_BIG_CONSTANT(T, 24, 0.083333333333333333333333333333333333333333333333333),
-      BOOST_MATH_BIG_CONSTANT(T, 24, -0.0083333333333333333333333333333333333333333333333333),
-      BOOST_MATH_BIG_CONSTANT(T, 24, 0.003968253968253968253968253968253968253968253968254)
-   };
-   x -= 1;
-   T result = log(x);
-   result += 1 / (2 * x);
-   T z = 1 / (x*x);
-   result -= z * tools::evaluate_polynomial(P, z);
-   return result;
-}
-//
-// Now follow rational approximations over the range [1,2].
-//
-// 35-digit precision:
-//
-template <class T>
-T digamma_imp_1_2(T x, const mpl::int_<0>*)
-{
-   //
-   // Now the approximation, we use the form:
-   //
-   // digamma(x) = (x - root) * (Y + R(x-1))
-   //
-   // Where root is the location of the positive root of digamma,
-   // Y is a constant, and R is optimised for low absolute error
-   // compared to Y.
-   //
-   // Max error found at 128-bit long double precision:  5.541e-35
-   // Maximum Deviation Found (approximation error):     1.965e-35
-   //
-   static const float Y = 0.99558162689208984375F;
-
-   static const T root1 = T(1569415565) / 1073741824uL;
-   static const T root2 = (T(381566830) / 1073741824uL) / 1073741824uL;
-   static const T root3 = ((T(111616537) / 1073741824uL) / 1073741824uL) / 1073741824uL;
-   static const T root4 = (((T(503992070) / 1073741824uL) / 1073741824uL) / 1073741824uL) / 1073741824uL;
-   static const T root5 = BOOST_MATH_BIG_CONSTANT(T, 113, 0.52112228569249997894452490385577338504019838794544e-36);
-
-   static const T P[] = {    
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.25479851061131551526977464225335883769),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.18684290534374944114622235683619897417),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.80360876047931768958995775910991929922),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.67227342794829064330498117008564270136),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.26569010991230617151285010695543858005),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.05775672694575986971640757748003553385),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.0071432147823164975485922555833274240665),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.00048740753910766168912364555706064993274),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.16454996865214115723416538844975174761e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.20327832297631728077731148515093164955e-6)
-   };
-   static const T Q[] = {    
-      BOOST_MATH_BIG_CONSTANT(T, 113, 1.0),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 2.6210924610812025425088411043163287646),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 2.6850757078559596612621337395886392594),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 1.4320913706209965531250495490639289418),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.4410872083455009362557012239501953402),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.081385727399251729505165509278152487225),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.0089478633066857163432104815183858149496),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.00055861622855066424871506755481997374154),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.1760168552357342401304462967950178554e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.20585454493572473724556649516040874384e-6),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.90745971844439990284514121823069162795e-11),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.48857673606545846774761343500033283272e-13),
-   };
-   T g = x - root1;
-   g -= root2;
-   g -= root3;
-   g -= root4;
-   g -= root5;
-   T r = tools::evaluate_polynomial(P, T(x-1)) / tools::evaluate_polynomial(Q, T(x-1));
-   T result = g * Y + g * r;
-
-   return result;
-}
-//
-// 19-digit precision:
-//
-template <class T>
-T digamma_imp_1_2(T x, const mpl::int_<64>*)
-{
-   //
-   // Now the approximation, we use the form:
-   //
-   // digamma(x) = (x - root) * (Y + R(x-1))
-   //
-   // Where root is the location of the positive root of digamma,
-   // Y is a constant, and R is optimised for low absolute error
-   // compared to Y.
-   //
-   // Max error found at 80-bit long double precision:   5.016e-20
-   // Maximum Deviation Found (approximation error):     3.575e-20
-   //
-   static const float Y = 0.99558162689208984375F;
-
-   static const T root1 = T(1569415565) / 1073741824uL;
-   static const T root2 = (T(381566830) / 1073741824uL) / 1073741824uL;
-   static const T root3 = BOOST_MATH_BIG_CONSTANT(T, 64, 0.9016312093258695918615325266959189453125e-19);
-
-   static const T P[] = {    
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.254798510611315515235),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.314628554532916496608),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.665836341559876230295),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.314767657147375752913),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.0541156266153505273939),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.00289268368333918761452)
-   };
-   static const T Q[] = {    
-      BOOST_MATH_BIG_CONSTANT(T, 64, 1.0),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 2.1195759927055347547),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 1.54350554664961128724),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.486986018231042975162),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.0660481487173569812846),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.00298999662592323990972),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.165079794012604905639e-5),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.317940243105952177571e-7)
-   };
-   T g = x - root1;
-   g -= root2;
-   g -= root3;
-   T r = tools::evaluate_polynomial(P, T(x-1)) / tools::evaluate_polynomial(Q, T(x-1));
-   T result = g * Y + g * r;
-
-   return result;
-}
-//
-// 18-digit precision:
-//
-template <class T>
-T digamma_imp_1_2(T x, const mpl::int_<53>*)
-{
-   //
-   // Now the approximation, we use the form:
-   //
-   // digamma(x) = (x - root) * (Y + R(x-1))
-   //
-   // Where root is the location of the positive root of digamma,
-   // Y is a constant, and R is optimised for low absolute error
-   // compared to Y.
-   //
-   // Maximum Deviation Found:               1.466e-18
-   // At double precision, max error found:  2.452e-17
-   //
-   static const float Y = 0.99558162689208984F;
-
-   static const T root1 = T(1569415565) / 1073741824uL;
-   static const T root2 = (T(381566830) / 1073741824uL) / 1073741824uL;
-   static const T root3 = BOOST_MATH_BIG_CONSTANT(T, 53, 0.9016312093258695918615325266959189453125e-19);
-
-   static const T P[] = {    
-      BOOST_MATH_BIG_CONSTANT(T, 53, 0.25479851061131551),
-      BOOST_MATH_BIG_CONSTANT(T, 53, -0.32555031186804491),
-      BOOST_MATH_BIG_CONSTANT(T, 53, -0.65031853770896507),
-      BOOST_MATH_BIG_CONSTANT(T, 53, -0.28919126444774784),
-      BOOST_MATH_BIG_CONSTANT(T, 53, -0.045251321448739056),
-      BOOST_MATH_BIG_CONSTANT(T, 53, -0.0020713321167745952)
-   };
-   static const T Q[] = {    
-      BOOST_MATH_BIG_CONSTANT(T, 53, 1),
-      BOOST_MATH_BIG_CONSTANT(T, 53, 2.0767117023730469),
-      BOOST_MATH_BIG_CONSTANT(T, 53, 1.4606242909763515),
-      BOOST_MATH_BIG_CONSTANT(T, 53, 0.43593529692665969),
-      BOOST_MATH_BIG_CONSTANT(T, 53, 0.054151797245674225),
-      BOOST_MATH_BIG_CONSTANT(T, 53, 0.0021284987017821144),
-      BOOST_MATH_BIG_CONSTANT(T, 53, -0.55789841321675513e-6)
-   };
-   T g = x - root1;
-   g -= root2;
-   g -= root3;
-   T r = tools::evaluate_polynomial(P, T(x-1)) / tools::evaluate_polynomial(Q, T(x-1));
-   T result = g * Y + g * r;
-
-   return result;
-}
-//
-// 9-digit precision:
-//
-template <class T>
-inline T digamma_imp_1_2(T x, const mpl::int_<24>*)
-{
-   //
-   // Now the approximation, we use the form:
-   //
-   // digamma(x) = (x - root) * (Y + R(x-1))
-   //
-   // Where root is the location of the positive root of digamma,
-   // Y is a constant, and R is optimised for low absolute error
-   // compared to Y.
-   //
-   // Maximum Deviation Found:              3.388e-010
-   // At float precision, max error found:  2.008725e-008
-   //
-   static const float Y = 0.99558162689208984f;
-   static const T root = 1532632.0f / 1048576;
-   static const T root_minor = static_cast<T>(0.3700660185912626595423257213284682051735604e-6L);
-   static const T P[] = {    
-      0.25479851023250261e0,
-      -0.44981331915268368e0,
-      -0.43916936919946835e0,
-      -0.61041765350579073e-1
-   };
-   static const T Q[] = {    
-      0.1e1,
-      0.15890202430554952e1,
-      0.65341249856146947e0,
-      0.63851690523355715e-1
-   };
-   T g = x - root;
-   g -= root_minor;
-   T r = tools::evaluate_polynomial(P, T(x-1)) / tools::evaluate_polynomial(Q, T(x-1));
-   T result = g * Y + g * r;
-
-   return result;
-}
-
-template <class T, class Tag, class Policy>
-T digamma_imp(T x, const Tag* t, const Policy& pol)
-{
-   //
-   // This handles reflection of negative arguments, and all our
-   // error handling, then forwards to the T-specific approximation.
-   //
-   BOOST_MATH_STD_USING // ADL of std functions.
-
-   T result = 0;
-   //
-   // Check for negative arguments and use reflection:
-   //
-   if(x < 0)
-   {
-      // Reflect:
-      x = 1 - x;
-      // Argument reduction for tan:
-      T remainder = x - floor(x);
-      // Shift to negative if > 0.5:
-      if(remainder > 0.5)
-      {
-         remainder -= 1;
-      }
-      //
-      // check for evaluation at a negative pole:
-      //
-      if(remainder == 0)
-      {
-         return policies::raise_pole_error<T>("boost::math::digamma<%1%>(%1%)", 0, (1-x), pol);
-      }
-      result = constants::pi<T>() / tan(constants::pi<T>() * remainder);
-   }
-   //
-   // If we're above the lower-limit for the
-   // asymptotic expansion then use it:
-   //
-   if(x >= digamma_large_lim(t))
-   {
-      result += digamma_imp_large(x, t);
-   }
-   else
-   {
-      //
-      // If x > 2 reduce to the interval [1,2]:
-      //
-      while(x > 2)
-      {
-         x -= 1;
-         result += 1/x;
-      }
-      //
-      // If x < 1 use recurrance to shift to > 1:
-      //
-      if(x < 1)
-      {
-         result = -1/x;
-         x += 1;
-      }
-      result += digamma_imp_1_2(x, t);
-   }
-   return result;
-}
-
-//
-// Initializer: ensure all our constants are initialized prior to the first call of main:
-//
-template <class T, class Policy>
-struct digamma_initializer
-{
-   struct init
-   {
-      init()
-      {
-         boost::math::digamma(T(1.5), Policy());
-         boost::math::digamma(T(500), Policy());
-      }
-      void force_instantiate()const{}
-   };
-   static const init initializer;
-   static void force_instantiate()
-   {
-      initializer.force_instantiate();
-   }
-};
-
-template <class T, class Policy>
-const typename digamma_initializer<T, Policy>::init digamma_initializer<T, Policy>::initializer;
-
-} // namespace detail
-
-template <class T, class Policy>
-inline typename tools::promote_args<T>::type 
-   digamma(T x, const Policy& pol)
-{
-   typedef typename tools::promote_args<T>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   typedef typename policies::precision<T, Policy>::type precision_type;
-   typedef typename mpl::if_<
-      mpl::or_<
-         mpl::less_equal<precision_type, mpl::int_<0> >,
-         mpl::greater<precision_type, mpl::int_<64> >
-      >,
-      mpl::int_<0>,
-      typename mpl::if_<
-         mpl::less<precision_type, mpl::int_<25> >,
-         mpl::int_<24>,
-         typename mpl::if_<
-            mpl::less<precision_type, mpl::int_<54> >,
-            mpl::int_<53>,
-            mpl::int_<64>
-         >::type
-      >::type
-   >::type tag_type;
-
-   // Force initialization of constants:
-   detail::digamma_initializer<result_type, Policy>::force_instantiate();
-
-   return policies::checked_narrowing_cast<result_type, Policy>(detail::digamma_imp(
-      static_cast<value_type>(x),
-      static_cast<const tag_type*>(0), pol), "boost::math::digamma<%1%>(%1%)");
-}
-
-template <class T>
-inline typename tools::promote_args<T>::type 
-   digamma(T x)
-{
-   return digamma(x, policies::policy<>());
-}
-
-} // namespace math
-} // namespace boost
-#endif
-
diff --git a/boost/math/special_functions/ellint_1.hpp b/boost/math/special_functions/ellint_1.hpp
deleted file mode 100644
index e266b2e..0000000
--- a/boost/math/special_functions/ellint_1.hpp
+++ /dev/null
@@ -1,188 +0,0 @@
-//  Copyright (c) 2006 Xiaogang Zhang
-//  Copyright (c) 2006 John Maddock
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  History:
-//  XZ wrote the original of this file as part of the Google
-//  Summer of Code 2006.  JM modified it to fit into the
-//  Boost.Math conceptual framework better, and to ensure
-//  that the code continues to work no matter how many digits
-//  type T has.
-
-#ifndef BOOST_MATH_ELLINT_1_HPP
-#define BOOST_MATH_ELLINT_1_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/math/special_functions/ellint_rf.hpp>
-#include <boost/math/constants/constants.hpp>
-#include <boost/math/policies/error_handling.hpp>
-#include <boost/math/tools/workaround.hpp>
-#include <boost/math/special_functions/round.hpp>
-
-// Elliptic integrals (complete and incomplete) of the first kind
-// Carlson, Numerische Mathematik, vol 33, 1 (1979)
-
-namespace boost { namespace math {
-
-template <class T1, class T2, class Policy>
-typename tools::promote_args<T1, T2>::type ellint_1(T1 k, T2 phi, const Policy& pol);
-
-namespace detail{
-
-template <typename T, typename Policy>
-T ellint_k_imp(T k, const Policy& pol);
-
-// Elliptic integral (Legendre form) of the first kind
-template <typename T, typename Policy>
-T ellint_f_imp(T phi, T k, const Policy& pol)
-{
-    BOOST_MATH_STD_USING
-    using namespace boost::math::tools;
-    using namespace boost::math::constants;
-
-    static const char* function = "boost::math::ellint_f<%1%>(%1%,%1%)";
-    BOOST_MATH_INSTRUMENT_VARIABLE(phi);
-    BOOST_MATH_INSTRUMENT_VARIABLE(k);
-    BOOST_MATH_INSTRUMENT_VARIABLE(function);
-
-    if (abs(k) > 1)
-    {
-       return policies::raise_domain_error<T>(function,
-            "Got k = %1%, function requires |k| <= 1", k, pol);
-    }
-
-    bool invert = false;
-    if(phi < 0)
-    {
-       BOOST_MATH_INSTRUMENT_VARIABLE(phi);
-       phi = fabs(phi);
-       invert = true;
-    }
-
-    T result;
-
-    if(phi >= tools::max_value<T>())
-    {
-       // Need to handle infinity as a special case:
-       result = policies::raise_overflow_error<T>(function, 0, pol);
-       BOOST_MATH_INSTRUMENT_VARIABLE(result);
-    }
-    else if(phi > 1 / tools::epsilon<T>())
-    {
-       // Phi is so large that phi%pi is necessarily zero (or garbage),
-       // just return the second part of the duplication formula:
-       result = 2 * phi * ellint_k_imp(k, pol) / constants::pi<T>();
-       BOOST_MATH_INSTRUMENT_VARIABLE(result);
-    }
-    else
-    {
-       // Carlson's algorithm works only for |phi| <= pi/2,
-       // use the integrand's periodicity to normalize phi
-       //
-       // Xiaogang's original code used a cast to long long here
-       // but that fails if T has more digits than a long long,
-       // so rewritten to use fmod instead:
-       //
-       BOOST_MATH_INSTRUMENT_CODE("pi/2 = " << constants::pi<T>() / 2);
-       T rphi = boost::math::tools::fmod_workaround(phi, T(constants::half_pi<T>()));
-       BOOST_MATH_INSTRUMENT_VARIABLE(rphi);
-       T m = boost::math::round((phi - rphi) / constants::half_pi<T>());
-       BOOST_MATH_INSTRUMENT_VARIABLE(m);
-       int s = 1;
-       if(boost::math::tools::fmod_workaround(m, T(2)) > 0.5)
-       {
-          m += 1;
-          s = -1;
-          rphi = constants::half_pi<T>() - rphi;
-          BOOST_MATH_INSTRUMENT_VARIABLE(rphi);
-       }
-       T sinp = sin(rphi);
-       T cosp = cos(rphi);
-       BOOST_MATH_INSTRUMENT_VARIABLE(sinp);
-       BOOST_MATH_INSTRUMENT_VARIABLE(cosp);
-       result = s * sinp * ellint_rf_imp(T(cosp * cosp), T(1 - k * k * sinp * sinp), T(1), pol);
-       BOOST_MATH_INSTRUMENT_VARIABLE(result);
-       if(m != 0)
-       {
-          result += m * ellint_k_imp(k, pol);
-          BOOST_MATH_INSTRUMENT_VARIABLE(result);
-       }
-    }
-    return invert ? T(-result) : result;
-}
-
-// Complete elliptic integral (Legendre form) of the first kind
-template <typename T, typename Policy>
-T ellint_k_imp(T k, const Policy& pol)
-{
-    BOOST_MATH_STD_USING
-    using namespace boost::math::tools;
-
-    static const char* function = "boost::math::ellint_k<%1%>(%1%)";
-
-    if (abs(k) > 1)
-    {
-       return policies::raise_domain_error<T>(function,
-            "Got k = %1%, function requires |k| <= 1", k, pol);
-    }
-    if (abs(k) == 1)
-    {
-       return policies::raise_overflow_error<T>(function, 0, pol);
-    }
-
-    T x = 0;
-    T y = 1 - k * k;
-    T z = 1;
-    T value = ellint_rf_imp(x, y, z, pol);
-
-    return value;
-}
-
-template <typename T, typename Policy>
-inline typename tools::promote_args<T>::type ellint_1(T k, const Policy& pol, const mpl::true_&)
-{
-   typedef typename tools::promote_args<T>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   return policies::checked_narrowing_cast<result_type, Policy>(detail::ellint_k_imp(static_cast<value_type>(k), pol), "boost::math::ellint_1<%1%>(%1%)");
-}
-
-template <class T1, class T2>
-inline typename tools::promote_args<T1, T2>::type ellint_1(T1 k, T2 phi, const mpl::false_&)
-{
-   return boost::math::ellint_1(k, phi, policies::policy<>());
-}
-
-}
-
-// Complete elliptic integral (Legendre form) of the first kind
-template <typename T>
-inline typename tools::promote_args<T>::type ellint_1(T k)
-{
-   return ellint_1(k, policies::policy<>());
-}
-
-// Elliptic integral (Legendre form) of the first kind
-template <class T1, class T2, class Policy>
-inline typename tools::promote_args<T1, T2>::type ellint_1(T1 k, T2 phi, const Policy& pol)
-{
-   typedef typename tools::promote_args<T1, T2>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   return policies::checked_narrowing_cast<result_type, Policy>(detail::ellint_f_imp(static_cast<value_type>(phi), static_cast<value_type>(k), pol), "boost::math::ellint_1<%1%>(%1%,%1%)");
-}
-
-template <class T1, class T2>
-inline typename tools::promote_args<T1, T2>::type ellint_1(T1 k, T2 phi)
-{
-   typedef typename policies::is_policy<T2>::type tag_type;
-   return detail::ellint_1(k, phi, tag_type());
-}
-
-}} // namespaces
-
-#endif // BOOST_MATH_ELLINT_1_HPP
-
diff --git a/boost/math/special_functions/ellint_2.hpp b/boost/math/special_functions/ellint_2.hpp
deleted file mode 100644
index f696446..0000000
--- a/boost/math/special_functions/ellint_2.hpp
+++ /dev/null
@@ -1,169 +0,0 @@
-//  Copyright (c) 2006 Xiaogang Zhang
-//  Copyright (c) 2006 John Maddock
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  History:
-//  XZ wrote the original of this file as part of the Google
-//  Summer of Code 2006.  JM modified it to fit into the
-//  Boost.Math conceptual framework better, and to ensure
-//  that the code continues to work no matter how many digits
-//  type T has.
-
-#ifndef BOOST_MATH_ELLINT_2_HPP
-#define BOOST_MATH_ELLINT_2_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/math/special_functions/ellint_rf.hpp>
-#include <boost/math/special_functions/ellint_rd.hpp>
-#include <boost/math/constants/constants.hpp>
-#include <boost/math/policies/error_handling.hpp>
-#include <boost/math/tools/workaround.hpp>
-#include <boost/math/special_functions/round.hpp>
-
-// Elliptic integrals (complete and incomplete) of the second kind
-// Carlson, Numerische Mathematik, vol 33, 1 (1979)
-
-namespace boost { namespace math { 
-   
-template <class T1, class T2, class Policy>
-typename tools::promote_args<T1, T2>::type ellint_2(T1 k, T2 phi, const Policy& pol);
-   
-namespace detail{
-
-template <typename T, typename Policy>
-T ellint_e_imp(T k, const Policy& pol);
-
-// Elliptic integral (Legendre form) of the second kind
-template <typename T, typename Policy>
-T ellint_e_imp(T phi, T k, const Policy& pol)
-{
-    BOOST_MATH_STD_USING
-    using namespace boost::math::tools;
-    using namespace boost::math::constants;
-
-    bool invert = false;
-    if(phi < 0)
-    {
-       phi = fabs(phi);
-       invert = true;
-    }
-
-    T result;
-
-    if(phi >= tools::max_value<T>())
-    {
-       // Need to handle infinity as a special case:
-       result = policies::raise_overflow_error<T>("boost::math::ellint_e<%1%>(%1%,%1%)", 0, pol);
-    }
-    else if(phi > 1 / tools::epsilon<T>())
-    {
-       // Phi is so large that phi%pi is necessarily zero (or garbage),
-       // just return the second part of the duplication formula:
-       result = 2 * phi * ellint_e_imp(k, pol) / constants::pi<T>();
-    }
-    else
-    {
-       // Carlson's algorithm works only for |phi| <= pi/2,
-       // use the integrand's periodicity to normalize phi
-       //
-       // Xiaogang's original code used a cast to long long here
-       // but that fails if T has more digits than a long long,
-       // so rewritten to use fmod instead:
-       //
-       T rphi = boost::math::tools::fmod_workaround(phi, T(constants::half_pi<T>()));
-       T m = boost::math::round((phi - rphi) / constants::half_pi<T>());
-       int s = 1;
-       if(boost::math::tools::fmod_workaround(m, T(2)) > 0.5)
-       {
-          m += 1;
-          s = -1;
-          rphi = constants::half_pi<T>() - rphi;
-       }
-       T sinp = sin(rphi);
-       T cosp = cos(rphi);
-       T x = cosp * cosp;
-       T t = k * k * sinp * sinp;
-       T y = 1 - t;
-       T z = 1;
-       result = s * sinp * (ellint_rf_imp(x, y, z, pol) - t * ellint_rd_imp(x, y, z, pol) / 3);
-       if(m != 0)
-          result += m * ellint_e_imp(k, pol);
-    }
-    return invert ? T(-result) : result;
-}
-
-// Complete elliptic integral (Legendre form) of the second kind
-template <typename T, typename Policy>
-T ellint_e_imp(T k, const Policy& pol)
-{
-    BOOST_MATH_STD_USING
-    using namespace boost::math::tools;
-
-    if (abs(k) > 1)
-    {
-       return policies::raise_domain_error<T>("boost::math::ellint_e<%1%>(%1%)",
-            "Got k = %1%, function requires |k| <= 1", k, pol);
-    }
-    if (abs(k) == 1)
-    {
-        return static_cast<T>(1);
-    }
-
-    T x = 0;
-    T t = k * k;
-    T y = 1 - t;
-    T z = 1;
-    T value = ellint_rf_imp(x, y, z, pol) - t * ellint_rd_imp(x, y, z, pol) / 3;
-
-    return value;
-}
-
-template <typename T, typename Policy>
-inline typename tools::promote_args<T>::type ellint_2(T k, const Policy& pol, const mpl::true_&)
-{
-   typedef typename tools::promote_args<T>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   return policies::checked_narrowing_cast<result_type, Policy>(detail::ellint_e_imp(static_cast<value_type>(k), pol), "boost::math::ellint_2<%1%>(%1%)");
-}
-
-// Elliptic integral (Legendre form) of the second kind
-template <class T1, class T2>
-inline typename tools::promote_args<T1, T2>::type ellint_2(T1 k, T2 phi, const mpl::false_&)
-{
-   return boost::math::ellint_2(k, phi, policies::policy<>());
-}
-
-} // detail
-
-// Complete elliptic integral (Legendre form) of the second kind
-template <typename T>
-inline typename tools::promote_args<T>::type ellint_2(T k)
-{
-   return ellint_2(k, policies::policy<>());
-}
-
-// Elliptic integral (Legendre form) of the second kind
-template <class T1, class T2>
-inline typename tools::promote_args<T1, T2>::type ellint_2(T1 k, T2 phi)
-{
-   typedef typename policies::is_policy<T2>::type tag_type;
-   return detail::ellint_2(k, phi, tag_type());
-}
-
-template <class T1, class T2, class Policy>
-inline typename tools::promote_args<T1, T2>::type ellint_2(T1 k, T2 phi, const Policy& pol)
-{
-   typedef typename tools::promote_args<T1, T2>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   return policies::checked_narrowing_cast<result_type, Policy>(detail::ellint_e_imp(static_cast<value_type>(phi), static_cast<value_type>(k), pol), "boost::math::ellint_2<%1%>(%1%,%1%)");
-}
-
-}} // namespaces
-
-#endif // BOOST_MATH_ELLINT_2_HPP
-
diff --git a/boost/math/special_functions/ellint_3.hpp b/boost/math/special_functions/ellint_3.hpp
deleted file mode 100644
index 0b5ad5b..0000000
--- a/boost/math/special_functions/ellint_3.hpp
+++ /dev/null
@@ -1,319 +0,0 @@
-//  Copyright (c) 2006 Xiaogang Zhang
-//  Copyright (c) 2006 John Maddock
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  History:
-//  XZ wrote the original of this file as part of the Google
-//  Summer of Code 2006.  JM modified it to fit into the
-//  Boost.Math conceptual framework better, and to correctly
-//  handle the various corner cases.
-//
-
-#ifndef BOOST_MATH_ELLINT_3_HPP
-#define BOOST_MATH_ELLINT_3_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/math/special_functions/ellint_rf.hpp>
-#include <boost/math/special_functions/ellint_rj.hpp>
-#include <boost/math/special_functions/ellint_1.hpp>
-#include <boost/math/special_functions/ellint_2.hpp>
-#include <boost/math/special_functions/log1p.hpp>
-#include <boost/math/constants/constants.hpp>
-#include <boost/math/policies/error_handling.hpp>
-#include <boost/math/tools/workaround.hpp>
-#include <boost/math/special_functions/round.hpp>
-
-// Elliptic integrals (complete and incomplete) of the third kind
-// Carlson, Numerische Mathematik, vol 33, 1 (1979)
-
-namespace boost { namespace math { 
-   
-namespace detail{
-
-template <typename T, typename Policy>
-T ellint_pi_imp(T v, T k, T vc, const Policy& pol);
-
-// Elliptic integral (Legendre form) of the third kind
-template <typename T, typename Policy>
-T ellint_pi_imp(T v, T phi, T k, T vc, const Policy& pol)
-{
-    // Note vc = 1-v presumably without cancellation error.
-    T value, x, y, z, p, t;
-
-    BOOST_MATH_STD_USING
-    using namespace boost::math::tools;
-    using namespace boost::math::constants;
-
-    static const char* function = "boost::math::ellint_3<%1%>(%1%,%1%,%1%)";
-
-    if (abs(k) > 1)
-    {
-       return policies::raise_domain_error<T>(function,
-            "Got k = %1%, function requires |k| <= 1", k, pol);
-    }
-
-    T sphi = sin(fabs(phi));
-
-    if(v > 1 / (sphi * sphi))
-    {
-        // Complex result is a domain error:
-       return policies::raise_domain_error<T>(function,
-            "Got v = %1%, but result is complex for v > 1 / sin^2(phi)", v, pol);
-    }
-
-    // Special cases first:
-    if(v == 0)
-    {
-       // A&S 17.7.18 & 19
-       return (k == 0) ? phi : ellint_f_imp(phi, k, pol);
-    }
-    if(phi == constants::pi<T>() / 2)
-    {
-       // Have to filter this case out before the next
-       // special case, otherwise we might get an infinity from
-       // tan(phi).
-       // Also note that since we can't represent PI/2 exactly
-       // in a T, this is a bit of a guess as to the users true
-       // intent...
-       //
-       return ellint_pi_imp(v, k, vc, pol);
-    }
-    if(k == 0)
-    {
-       // A&S 17.7.20:
-       if(v < 1)
-       {
-          T vcr = sqrt(vc);
-          return atan(vcr * tan(phi)) / vcr;
-       }
-       else if(v == 1)
-       {
-          return tan(phi);
-       }
-       else
-       {
-          // v > 1:
-          T vcr = sqrt(-vc);
-          T arg = vcr * tan(phi);
-          return (boost::math::log1p(arg, pol) - boost::math::log1p(-arg, pol)) / (2 * vcr);
-       }
-    }
-
-    if(v < 0)
-    {
-       //
-       // If we don't shift to 0 <= v <= 1 we get
-       // cancellation errors later on.  Use
-       // A&S 17.7.15/16 to shift to v > 0:
-       //
-       T k2 = k * k;
-       T N = (k2 - v) / (1 - v);
-       T Nm1 = (1 - k2) / (1 - v);
-       T p2 = sqrt(-v * (k2 - v) / (1 - v));
-       T delta = sqrt(1 - k2 * sphi * sphi);
-       T result = ellint_pi_imp(N, phi, k, Nm1, pol);
-
-       result *= sqrt(Nm1 * (1 - k2 / N));
-       result += ellint_f_imp(phi, k, pol) * k2 / p2;
-       result += atan((p2/2) * sin(2 * phi) / delta);
-       result /= sqrt((1 - v) * (1 - k2 / v));
-       return result;
-    }
-#if 0  // disabled but retained for future reference: see below.
-    if(v > 1)
-    {
-       //
-       // If v > 1 we can use the identity in A&S 17.7.7/8
-       // to shift to 0 <= v <= 1.  Unfortunately this
-       // identity appears only to function correctly when
-       // 0 <= phi <= pi/2, but it's when phi is outside that
-       // range that we really need it: That's when
-       // Carlson's formula fails, and what's more the periodicity
-       // reduction used below on phi doesn't work when v > 1.
-       //
-       // So we're stuck... the code is archived here in case
-       // some bright spart can figure out the fix.
-       //
-       T k2 = k * k;
-       T N = k2 / v;
-       T Nm1 = (v - k2) / v;
-       T p1 = sqrt((-vc) * (1 - k2 / v));
-       T delta = sqrt(1 - k2 * sphi * sphi);
-       //
-       // These next two terms have a large amount of cancellation
-       // so it's not clear if this relation is useable even if
-       // the issues with phi > pi/2 can be fixed:
-       //
-       T result = -ellint_pi_imp(N, phi, k, Nm1);
-       result += ellint_f_imp(phi, k);
-       //
-       // This log term gives the complex result when
-       //     n > 1/sin^2(phi)
-       // However that case is dealt with as an error above, 
-       // so we should always get a real result here:
-       //
-       result += log((delta + p1 * tan(phi)) / (delta - p1 * tan(phi))) / (2 * p1);
-       return result;
-    }
-#endif
-
-    // Carlson's algorithm works only for |phi| <= pi/2,
-    // use the integrand's periodicity to normalize phi
-    //
-    // Xiaogang's original code used a cast to long long here
-    // but that fails if T has more digits than a long long,
-    // so rewritten to use fmod instead:
-    //
-    if(fabs(phi) > 1 / tools::epsilon<T>())
-    {
-       if(v > 1)
-          return policies::raise_domain_error<T>(
-            function,
-            "Got v = %1%, but this is only supported for 0 <= phi <= pi/2", v, pol);
-       //  
-       // Phi is so large that phi%pi is necessarily zero (or garbage),
-       // just return the second part of the duplication formula:
-       //
-       value = 2 * fabs(phi) * ellint_pi_imp(v, k, vc, pol) / constants::pi<T>();
-    }
-    else
-    {
-       T rphi = boost::math::tools::fmod_workaround(T(fabs(phi)), T(constants::half_pi<T>()));
-       T m = boost::math::round((fabs(phi) - rphi) / constants::half_pi<T>());
-       int sign = 1;
-       if(boost::math::tools::fmod_workaround(m, T(2)) > 0.5)
-       {
-          m += 1;
-          sign = -1;
-          rphi = constants::half_pi<T>() - rphi;
-       }
-       T sinp = sin(rphi);
-       T cosp = cos(rphi);
-       x = cosp * cosp;
-       t = sinp * sinp;
-       y = 1 - k * k * t;
-       z = 1;
-       if(v * t < 0.5)
-           p = 1 - v * t;
-       else
-           p = x + vc * t;
-       value = sign * sinp * (ellint_rf_imp(x, y, z, pol) + v * t * ellint_rj_imp(x, y, z, p, pol) / 3);
-       if((m > 0) && (vc > 0))
-         value += m * ellint_pi_imp(v, k, vc, pol);
-    }
-
-    if (phi < 0)
-    {
-        value = -value;    // odd function
-    }
-    return value;
-}
-
-// Complete elliptic integral (Legendre form) of the third kind
-template <typename T, typename Policy>
-T ellint_pi_imp(T v, T k, T vc, const Policy& pol)
-{
-    // Note arg vc = 1-v, possibly without cancellation errors
-    BOOST_MATH_STD_USING
-    using namespace boost::math::tools;
-
-    static const char* function = "boost::math::ellint_pi<%1%>(%1%,%1%)";
-
-    if (abs(k) >= 1)
-    {
-       return policies::raise_domain_error<T>(function,
-            "Got k = %1%, function requires |k| <= 1", k, pol);
-    }
-    if(vc <= 0)
-    {
-       // Result is complex:
-       return policies::raise_domain_error<T>(function,
-            "Got v = %1%, function requires v < 1", v, pol);
-    }
-
-    if(v == 0)
-    {
-       return (k == 0) ? boost::math::constants::pi<T>() / 2 : ellint_k_imp(k, pol);
-    }
-
-    if(v < 0)
-    {
-       T k2 = k * k;
-       T N = (k2 - v) / (1 - v);
-       T Nm1 = (1 - k2) / (1 - v);
-       T p2 = sqrt(-v * (k2 - v) / (1 - v));
-
-       T result = boost::math::detail::ellint_pi_imp(N, k, Nm1, pol);
-
-       result *= sqrt(Nm1 * (1 - k2 / N));
-       result += ellint_k_imp(k, pol) * k2 / p2;
-       result /= sqrt((1 - v) * (1 - k2 / v));
-       return result;
-    }
-
-    T x = 0;
-    T y = 1 - k * k;
-    T z = 1;
-    T p = vc;
-    T value = ellint_rf_imp(x, y, z, pol) + v * ellint_rj_imp(x, y, z, p, pol) / 3;
-
-    return value;
-}
-
-template <class T1, class T2, class T3>
-inline typename tools::promote_args<T1, T2, T3>::type ellint_3(T1 k, T2 v, T3 phi, const mpl::false_&)
-{
-   return boost::math::ellint_3(k, v, phi, policies::policy<>());
-}
-
-template <class T1, class T2, class Policy>
-inline typename tools::promote_args<T1, T2>::type ellint_3(T1 k, T2 v, const Policy& pol, const mpl::true_&)
-{
-   typedef typename tools::promote_args<T1, T2>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   return policies::checked_narrowing_cast<result_type, Policy>(
-      detail::ellint_pi_imp(
-         static_cast<value_type>(v), 
-         static_cast<value_type>(k),
-         static_cast<value_type>(1-v),
-         pol), "boost::math::ellint_3<%1%>(%1%,%1%)");
-}
-
-} // namespace detail
-
-template <class T1, class T2, class T3, class Policy>
-inline typename tools::promote_args<T1, T2, T3>::type ellint_3(T1 k, T2 v, T3 phi, const Policy& pol)
-{
-   typedef typename tools::promote_args<T1, T2, T3>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   return policies::checked_narrowing_cast<result_type, Policy>(
-      detail::ellint_pi_imp(
-         static_cast<value_type>(v), 
-         static_cast<value_type>(phi), 
-         static_cast<value_type>(k),
-         static_cast<value_type>(1-v),
-         pol), "boost::math::ellint_3<%1%>(%1%,%1%,%1%)");
-}
-
-template <class T1, class T2, class T3>
-typename detail::ellint_3_result<T1, T2, T3>::type ellint_3(T1 k, T2 v, T3 phi)
-{
-   typedef typename policies::is_policy<T3>::type tag_type;
-   return detail::ellint_3(k, v, phi, tag_type());
-}
-
-template <class T1, class T2>
-inline typename tools::promote_args<T1, T2>::type ellint_3(T1 k, T2 v)
-{
-   return ellint_3(k, v, policies::policy<>());
-}
-
-}} // namespaces
-
-#endif // BOOST_MATH_ELLINT_3_HPP
-
diff --git a/boost/math/special_functions/ellint_rc.hpp b/boost/math/special_functions/ellint_rc.hpp
deleted file mode 100644
index 5f6d5c6..0000000
--- a/boost/math/special_functions/ellint_rc.hpp
+++ /dev/null
@@ -1,115 +0,0 @@
-//  Copyright (c) 2006 Xiaogang Zhang
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  History:
-//  XZ wrote the original of this file as part of the Google
-//  Summer of Code 2006.  JM modified it to fit into the
-//  Boost.Math conceptual framework better, and to correctly
-//  handle the y < 0 case.
-//
-
-#ifndef BOOST_MATH_ELLINT_RC_HPP
-#define BOOST_MATH_ELLINT_RC_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/math/policies/error_handling.hpp>
-#include <boost/math/tools/config.hpp>
-#include <boost/math/special_functions/math_fwd.hpp>
-
-// Carlson's degenerate elliptic integral
-// R_C(x, y) = R_F(x, y, y) = 0.5 * \int_{0}^{\infty} (t+x)^{-1/2} (t+y)^{-1} dt
-// Carlson, Numerische Mathematik, vol 33, 1 (1979)
-
-namespace boost { namespace math { namespace detail{
-
-template <typename T, typename Policy>
-T ellint_rc_imp(T x, T y, const Policy& pol)
-{
-    T value, S, u, lambda, tolerance, prefix;
-    unsigned long k;
-
-    BOOST_MATH_STD_USING
-    using namespace boost::math::tools;
-
-    static const char* function = "boost::math::ellint_rc<%1%>(%1%,%1%)";
-
-    if(x < 0)
-    {
-       return policies::raise_domain_error<T>(function,
-            "Argument x must be non-negative but got %1%", x, pol);
-    }
-    if(y == 0)
-    {
-       return policies::raise_domain_error<T>(function,
-            "Argument y must not be zero but got %1%", y, pol);
-    }
-
-    // error scales as the 6th power of tolerance
-    tolerance = pow(4 * tools::epsilon<T>(), T(1) / 6);
-
-    // for y < 0, the integral is singular, return Cauchy principal value
-    if (y < 0)
-    {
-        prefix = sqrt(x / (x - y));
-        x = x - y;
-        y = -y;
-    }
-    else
-       prefix = 1;
-
-    // duplication:
-    k = 1;
-    do
-    {
-        u = (x + y + y) / 3;
-        S = y / u - 1;               // 1 - x / u = 2 * S
-
-        if (2 * abs(S) < tolerance) 
-           break;
-
-        T sx = sqrt(x);
-        T sy = sqrt(y);
-        lambda = 2 * sx * sy + y;
-        x = (x + lambda) / 4;
-        y = (y + lambda) / 4;
-        ++k;
-    }while(k < policies::get_max_series_iterations<Policy>());
-    // Check to see if we gave up too soon:
-    policies::check_series_iterations<T>(function, k, pol);
-
-    // Taylor series expansion to the 5th order
-    value = (1 + S * S * (T(3) / 10 + S * (T(1) / 7 + S * (T(3) / 8 + S * T(9) / 22)))) / sqrt(u);
-
-    return value * prefix;
-}
-
-} // namespace detail
-
-template <class T1, class T2, class Policy>
-inline typename tools::promote_args<T1, T2>::type 
-   ellint_rc(T1 x, T2 y, const Policy& pol)
-{
-   typedef typename tools::promote_args<T1, T2>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   return policies::checked_narrowing_cast<result_type, Policy>(
-      detail::ellint_rc_imp(
-         static_cast<value_type>(x),
-         static_cast<value_type>(y), pol), "boost::math::ellint_rc<%1%>(%1%,%1%)");
-}
-
-template <class T1, class T2>
-inline typename tools::promote_args<T1, T2>::type 
-   ellint_rc(T1 x, T2 y)
-{
-   return ellint_rc(x, y, policies::policy<>());
-}
-
-}} // namespaces
-
-#endif // BOOST_MATH_ELLINT_RC_HPP
-
diff --git a/boost/math/special_functions/ellint_rd.hpp b/boost/math/special_functions/ellint_rd.hpp
deleted file mode 100644
index 61014d3..0000000
--- a/boost/math/special_functions/ellint_rd.hpp
+++ /dev/null
@@ -1,130 +0,0 @@
-//  Copyright (c) 2006 Xiaogang Zhang
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  History:
-//  XZ wrote the original of this file as part of the Google
-//  Summer of Code 2006.  JM modified it slightly to fit into the
-//  Boost.Math conceptual framework better.
-
-#ifndef BOOST_MATH_ELLINT_RD_HPP
-#define BOOST_MATH_ELLINT_RD_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/math/special_functions/math_fwd.hpp>
-#include <boost/math/tools/config.hpp>
-#include <boost/math/policies/error_handling.hpp>
-
-// Carlson's elliptic integral of the second kind
-// R_D(x, y, z) = R_J(x, y, z, z) = 1.5 * \int_{0}^{\infty} [(t+x)(t+y)]^{-1/2} (t+z)^{-3/2} dt
-// Carlson, Numerische Mathematik, vol 33, 1 (1979)
-
-namespace boost { namespace math { namespace detail{
-
-template <typename T, typename Policy>
-T ellint_rd_imp(T x, T y, T z, const Policy& pol)
-{
-    T value, u, lambda, sigma, factor, tolerance;
-    T X, Y, Z, EA, EB, EC, ED, EE, S1, S2;
-    unsigned long k;
-
-    BOOST_MATH_STD_USING
-    using namespace boost::math::tools;
-
-    static const char* function = "boost::math::ellint_rd<%1%>(%1%,%1%,%1%)";
-
-    if (x < 0)
-    {
-       return policies::raise_domain_error<T>(function,
-            "Argument x must be >= 0, but got %1%", x, pol);
-    }
-    if (y < 0)
-    {
-       return policies::raise_domain_error<T>(function,
-            "Argument y must be >= 0, but got %1%", y, pol);
-    }
-    if (z <= 0)
-    {
-       return policies::raise_domain_error<T>(function,
-            "Argument z must be > 0, but got %1%", z, pol);
-    }
-    if (x + y == 0)
-    {
-       return policies::raise_domain_error<T>(function,
-            "At most one argument can be zero, but got, x + y = %1%", x+y, pol);
-    }
-
-    // error scales as the 6th power of tolerance
-    tolerance = pow(tools::epsilon<T>() / 3, T(1)/6);
-
-    // duplication
-    sigma = 0;
-    factor = 1;
-    k = 1;
-    do
-    {
-        u = (x + y + z + z + z) / 5;
-        X = (u - x) / u;
-        Y = (u - y) / u;
-        Z = (u - z) / u;
-        if ((tools::max)(abs(X), abs(Y), abs(Z)) < tolerance) 
-           break;
-        T sx = sqrt(x);
-        T sy = sqrt(y);
-        T sz = sqrt(z);
-        lambda = sy * (sx + sz) + sz * sx; //sqrt(x * y) + sqrt(y * z) + sqrt(z * x);
-        sigma += factor / (sz * (z + lambda));
-        factor /= 4;
-        x = (x + lambda) / 4;
-        y = (y + lambda) / 4;
-        z = (z + lambda) / 4;
-        ++k;
-    }
-    while(k < policies::get_max_series_iterations<Policy>());
-
-    // Check to see if we gave up too soon:
-    policies::check_series_iterations<T>(function, k, pol);
-
-    // Taylor series expansion to the 5th order
-    EA = X * Y;
-    EB = Z * Z;
-    EC = EA - EB;
-    ED = EA - 6 * EB;
-    EE = ED + EC + EC;
-    S1 = ED * (ED * T(9) / 88 - Z * EE * T(9) / 52 - T(3) / 14);
-    S2 = Z * (EE / 6 + Z * (-EC * T(9) / 22 + Z * EA * T(3) / 26));
-    value = 3 * sigma + factor * (1 + S1 + S2) / (u * sqrt(u));
-
-    return value;
-}
-
-} // namespace detail
-
-template <class T1, class T2, class T3, class Policy>
-inline typename tools::promote_args<T1, T2, T3>::type 
-   ellint_rd(T1 x, T2 y, T3 z, const Policy& pol)
-{
-   typedef typename tools::promote_args<T1, T2, T3>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   return policies::checked_narrowing_cast<result_type, Policy>(
-      detail::ellint_rd_imp(
-         static_cast<value_type>(x),
-         static_cast<value_type>(y),
-         static_cast<value_type>(z), pol), "boost::math::ellint_rd<%1%>(%1%,%1%,%1%)");
-}
-
-template <class T1, class T2, class T3>
-inline typename tools::promote_args<T1, T2, T3>::type 
-   ellint_rd(T1 x, T2 y, T3 z)
-{
-   return ellint_rd(x, y, z, policies::policy<>());
-}
-
-}} // namespaces
-
-#endif // BOOST_MATH_ELLINT_RD_HPP
-
diff --git a/boost/math/special_functions/ellint_rf.hpp b/boost/math/special_functions/ellint_rf.hpp
deleted file mode 100644
index ac57257..0000000
--- a/boost/math/special_functions/ellint_rf.hpp
+++ /dev/null
@@ -1,132 +0,0 @@
-//  Copyright (c) 2006 Xiaogang Zhang
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  History:
-//  XZ wrote the original of this file as part of the Google
-//  Summer of Code 2006.  JM modified it to fit into the
-//  Boost.Math conceptual framework better, and to handle
-//  types longer than 80-bit reals.
-//
-#ifndef BOOST_MATH_ELLINT_RF_HPP
-#define BOOST_MATH_ELLINT_RF_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/math/special_functions/math_fwd.hpp>
-#include <boost/math/tools/config.hpp>
-
-#include <boost/math/policies/error_handling.hpp>
-
-// Carlson's elliptic integral of the first kind
-// R_F(x, y, z) = 0.5 * \int_{0}^{\infty} [(t+x)(t+y)(t+z)]^{-1/2} dt
-// Carlson, Numerische Mathematik, vol 33, 1 (1979)
-
-namespace boost { namespace math { namespace detail{
-
-template <typename T, typename Policy>
-T ellint_rf_imp(T x, T y, T z, const Policy& pol)
-{
-    T value, X, Y, Z, E2, E3, u, lambda, tolerance;
-    unsigned long k;
-
-    BOOST_MATH_STD_USING
-    using namespace boost::math::tools;
-
-    static const char* function = "boost::math::ellint_rf<%1%>(%1%,%1%,%1%)";
-
-    if (x < 0 || y < 0 || z < 0)
-    {
-       return policies::raise_domain_error<T>(function,
-            "domain error, all arguments must be non-negative, "
-            "only sensible result is %1%.",
-            std::numeric_limits<T>::quiet_NaN(), pol);
-    }
-    if (x + y == 0 || y + z == 0 || z + x == 0)
-    {
-       return policies::raise_domain_error<T>(function,
-            "domain error, at most one argument can be zero, "
-            "only sensible result is %1%.",
-            std::numeric_limits<T>::quiet_NaN(), pol);
-    }
-
-    // Carlson scales error as the 6th power of tolerance,
-    // but this seems not to work for types larger than
-    // 80-bit reals, this heuristic seems to work OK:
-    if(policies::digits<T, Policy>() > 64)
-    {
-      tolerance = pow(tools::epsilon<T>(), T(1)/4.25f);
-      BOOST_MATH_INSTRUMENT_VARIABLE(tolerance);
-    }
-    else
-    {
-      tolerance = pow(4*tools::epsilon<T>(), T(1)/6);
-      BOOST_MATH_INSTRUMENT_VARIABLE(tolerance);
-    }
-
-    // duplication
-    k = 1;
-    do
-    {
-        u = (x + y + z) / 3;
-        X = (u - x) / u;
-        Y = (u - y) / u;
-        Z = (u - z) / u;
-
-        // Termination condition: 
-        if ((tools::max)(abs(X), abs(Y), abs(Z)) < tolerance) 
-           break; 
-
-        T sx = sqrt(x);
-        T sy = sqrt(y);
-        T sz = sqrt(z);
-        lambda = sy * (sx + sz) + sz * sx;
-        x = (x + lambda) / 4;
-        y = (y + lambda) / 4;
-        z = (z + lambda) / 4;
-        ++k;
-    }
-    while(k < policies::get_max_series_iterations<Policy>());
-
-    // Check to see if we gave up too soon:
-    policies::check_series_iterations<T>(function, k, pol);
-    BOOST_MATH_INSTRUMENT_VARIABLE(k);
-
-    // Taylor series expansion to the 5th order
-    E2 = X * Y - Z * Z;
-    E3 = X * Y * Z;
-    value = (1 + E2*(E2/24 - E3*T(3)/44 - T(0.1)) + E3/14) / sqrt(u);
-    BOOST_MATH_INSTRUMENT_VARIABLE(value);
-
-    return value;
-}
-
-} // namespace detail
-
-template <class T1, class T2, class T3, class Policy>
-inline typename tools::promote_args<T1, T2, T3>::type 
-   ellint_rf(T1 x, T2 y, T3 z, const Policy& pol)
-{
-   typedef typename tools::promote_args<T1, T2, T3>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   return policies::checked_narrowing_cast<result_type, Policy>(
-      detail::ellint_rf_imp(
-         static_cast<value_type>(x),
-         static_cast<value_type>(y),
-         static_cast<value_type>(z), pol), "boost::math::ellint_rf<%1%>(%1%,%1%,%1%)");
-}
-
-template <class T1, class T2, class T3>
-inline typename tools::promote_args<T1, T2, T3>::type 
-   ellint_rf(T1 x, T2 y, T3 z)
-{
-   return ellint_rf(x, y, z, policies::policy<>());
-}
-
-}} // namespaces
-
-#endif // BOOST_MATH_ELLINT_RF_HPP
-
diff --git a/boost/math/special_functions/ellint_rj.hpp b/boost/math/special_functions/ellint_rj.hpp
deleted file mode 100644
index 8a242f0..0000000
--- a/boost/math/special_functions/ellint_rj.hpp
+++ /dev/null
@@ -1,180 +0,0 @@
-//  Copyright (c) 2006 Xiaogang Zhang
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  History:
-//  XZ wrote the original of this file as part of the Google
-//  Summer of Code 2006.  JM modified it to fit into the
-//  Boost.Math conceptual framework better, and to correctly
-//  handle the p < 0 case.
-//
-
-#ifndef BOOST_MATH_ELLINT_RJ_HPP
-#define BOOST_MATH_ELLINT_RJ_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/math/special_functions/math_fwd.hpp>
-#include <boost/math/tools/config.hpp>
-#include <boost/math/policies/error_handling.hpp>
-#include <boost/math/special_functions/ellint_rc.hpp>
-#include <boost/math/special_functions/ellint_rf.hpp>
-
-// Carlson's elliptic integral of the third kind
-// R_J(x, y, z, p) = 1.5 * \int_{0}^{\infty} (t+p)^{-1} [(t+x)(t+y)(t+z)]^{-1/2} dt
-// Carlson, Numerische Mathematik, vol 33, 1 (1979)
-
-namespace boost { namespace math { namespace detail{
-
-template <typename T, typename Policy>
-T ellint_rj_imp(T x, T y, T z, T p, const Policy& pol)
-{
-    T value, u, lambda, alpha, beta, sigma, factor, tolerance;
-    T X, Y, Z, P, EA, EB, EC, E2, E3, S1, S2, S3;
-    unsigned long k;
-
-    BOOST_MATH_STD_USING
-    using namespace boost::math::tools;
-
-    static const char* function = "boost::math::ellint_rj<%1%>(%1%,%1%,%1%)";
-
-    if (x < 0)
-    {
-       return policies::raise_domain_error<T>(function,
-            "Argument x must be non-negative, but got x = %1%", x, pol);
-    }
-    if(y < 0)
-    {
-       return policies::raise_domain_error<T>(function,
-            "Argument y must be non-negative, but got y = %1%", y, pol);
-    }
-    if(z < 0)
-    {
-       return policies::raise_domain_error<T>(function,
-            "Argument z must be non-negative, but got z = %1%", z, pol);
-    }
-    if(p == 0)
-    {
-       return policies::raise_domain_error<T>(function,
-            "Argument p must not be zero, but got p = %1%", p, pol);
-    }
-    if (x + y == 0 || y + z == 0 || z + x == 0)
-    {
-       return policies::raise_domain_error<T>(function,
-            "At most one argument can be zero, "
-            "only possible result is %1%.", std::numeric_limits<T>::quiet_NaN(), pol);
-    }
-
-    // error scales as the 6th power of tolerance
-    tolerance = pow(T(1) * tools::epsilon<T>() / 3, T(1) / 6);
-
-    // for p < 0, the integral is singular, return Cauchy principal value
-    if (p < 0)
-    {
-       //
-       // We must ensure that (z - y) * (y - x) is positive.
-       // Since the integral is symmetrical in x, y and z
-       // we can just permute the values:
-       //
-       if(x > y)
-          std::swap(x, y);
-       if(y > z)
-          std::swap(y, z);
-       if(x > y)
-          std::swap(x, y);
-
-       T q = -p;
-       T pmy = (z - y) * (y - x) / (y + q);  // p - y
-
-       BOOST_ASSERT(pmy >= 0);
-
-       p = pmy + y;
-       value = boost::math::ellint_rj(x, y, z, p, pol);
-       value *= pmy;
-       value -= 3 * boost::math::ellint_rf(x, y, z, pol);
-       value += 3 * sqrt((x * y * z) / (x * z + p * q)) * boost::math::ellint_rc(x * z + p * q, p * q, pol);
-       value /= (y + q);
-       return value;
-    }
-
-    // duplication
-    sigma = 0;
-    factor = 1;
-    k = 1;
-    do
-    {
-        u = (x + y + z + p + p) / 5;
-        X = (u - x) / u;
-        Y = (u - y) / u;
-        Z = (u - z) / u;
-        P = (u - p) / u;
-        
-        if ((tools::max)(abs(X), abs(Y), abs(Z), abs(P)) < tolerance) 
-           break;
-
-        T sx = sqrt(x);
-        T sy = sqrt(y);
-        T sz = sqrt(z);
-        
-        lambda = sy * (sx + sz) + sz * sx;
-        alpha = p * (sx + sy + sz) + sx * sy * sz;
-        alpha *= alpha;
-        beta = p * (p + lambda) * (p + lambda);
-        sigma += factor * boost::math::ellint_rc(alpha, beta, pol);
-        factor /= 4;
-        x = (x + lambda) / 4;
-        y = (y + lambda) / 4;
-        z = (z + lambda) / 4;
-        p = (p + lambda) / 4;
-        ++k;
-    }
-    while(k < policies::get_max_series_iterations<Policy>());
-
-    // Check to see if we gave up too soon:
-    policies::check_series_iterations<T>(function, k, pol);
-
-    // Taylor series expansion to the 5th order
-    EA = X * Y + Y * Z + Z * X;
-    EB = X * Y * Z;
-    EC = P * P;
-    E2 = EA - 3 * EC;
-    E3 = EB + 2 * P * (EA - EC);
-    S1 = 1 + E2 * (E2 * T(9) / 88 - E3 * T(9) / 52 - T(3) / 14);
-    S2 = EB * (T(1) / 6 + P * (T(-6) / 22 + P * T(3) / 26));
-    S3 = P * ((EA - EC) / 3 - P * EA * T(3) / 22);
-    value = 3 * sigma + factor * (S1 + S2 + S3) / (u * sqrt(u));
-
-    return value;
-}
-
-} // namespace detail
-
-template <class T1, class T2, class T3, class T4, class Policy>
-inline typename tools::promote_args<T1, T2, T3, T4>::type 
-   ellint_rj(T1 x, T2 y, T3 z, T4 p, const Policy& pol)
-{
-   typedef typename tools::promote_args<T1, T2, T3, T4>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   return policies::checked_narrowing_cast<result_type, Policy>(
-      detail::ellint_rj_imp(
-         static_cast<value_type>(x),
-         static_cast<value_type>(y),
-         static_cast<value_type>(z),
-         static_cast<value_type>(p),
-         pol), "boost::math::ellint_rj<%1%>(%1%,%1%,%1%,%1%)");
-}
-
-template <class T1, class T2, class T3, class T4>
-inline typename tools::promote_args<T1, T2, T3, T4>::type 
-   ellint_rj(T1 x, T2 y, T3 z, T4 p)
-{
-   return ellint_rj(x, y, z, p, policies::policy<>());
-}
-
-}} // namespaces
-
-#endif // BOOST_MATH_ELLINT_RJ_HPP
-
diff --git a/boost/math/special_functions/erf.hpp b/boost/math/special_functions/erf.hpp
deleted file mode 100644
index 0495407..0000000
--- a/boost/math/special_functions/erf.hpp
+++ /dev/null
@@ -1,1155 +0,0 @@
-//  (C) Copyright John Maddock 2006.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_SPECIAL_ERF_HPP
-#define BOOST_MATH_SPECIAL_ERF_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/math/special_functions/math_fwd.hpp>
-#include <boost/math/tools/config.hpp>
-#include <boost/math/special_functions/gamma.hpp>
-#include <boost/math/tools/roots.hpp>
-#include <boost/math/policies/error_handling.hpp>
-#include <boost/math/tools/big_constant.hpp>
-
-namespace boost{ namespace math{
-
-namespace detail
-{
-
-//
-// Asymptotic series for large z:
-//
-template <class T>
-struct erf_asympt_series_t
-{
-   erf_asympt_series_t(T z) : xx(2 * -z * z), tk(1)
-   {
-      BOOST_MATH_STD_USING
-      result = -exp(-z * z) / sqrt(boost::math::constants::pi<T>());
-      result /= z;
-   }
-
-   typedef T result_type;
-
-   T operator()()
-   {
-      BOOST_MATH_STD_USING
-      T r = result;
-      result *= tk / xx;
-      tk += 2;
-      if( fabs(r) < fabs(result))
-         result = 0;
-      return r;
-   }
-private:
-   T result;
-   T xx;
-   int tk;
-};
-//
-// How large z has to be in order to ensure that the series converges:
-//
-template <class T>
-inline float erf_asymptotic_limit_N(const T&)
-{
-   return (std::numeric_limits<float>::max)();
-}
-inline float erf_asymptotic_limit_N(const mpl::int_<24>&)
-{
-   return 2.8F;
-}
-inline float erf_asymptotic_limit_N(const mpl::int_<53>&)
-{
-   return 4.3F;
-}
-inline float erf_asymptotic_limit_N(const mpl::int_<64>&)
-{
-   return 4.8F;
-}
-inline float erf_asymptotic_limit_N(const mpl::int_<106>&)
-{
-   return 6.5F;
-}
-inline float erf_asymptotic_limit_N(const mpl::int_<113>&)
-{
-   return 6.8F;
-}
-
-template <class T, class Policy>
-inline T erf_asymptotic_limit()
-{
-   typedef typename policies::precision<T, Policy>::type precision_type;
-   typedef typename mpl::if_<
-      mpl::less_equal<precision_type, mpl::int_<24> >,
-      typename mpl::if_<
-         mpl::less_equal<precision_type, mpl::int_<0> >,
-         mpl::int_<0>,
-         mpl::int_<24>
-      >::type,
-      typename mpl::if_<
-         mpl::less_equal<precision_type, mpl::int_<53> >,
-         mpl::int_<53>,
-         typename mpl::if_<
-            mpl::less_equal<precision_type, mpl::int_<64> >,
-            mpl::int_<64>,
-            typename mpl::if_<
-               mpl::less_equal<precision_type, mpl::int_<106> >,
-               mpl::int_<106>,
-               typename mpl::if_<
-                  mpl::less_equal<precision_type, mpl::int_<113> >,
-                  mpl::int_<113>,
-                  mpl::int_<0>
-               >::type
-            >::type
-         >::type
-      >::type
-   >::type tag_type;
-   return erf_asymptotic_limit_N(tag_type());
-}
-
-template <class T, class Policy, class Tag>
-T erf_imp(T z, bool invert, const Policy& pol, const Tag& t)
-{
-   BOOST_MATH_STD_USING
-
-   BOOST_MATH_INSTRUMENT_CODE("Generic erf_imp called");
-
-   if(z < 0)
-   {
-      if(!invert)
-         return -erf_imp(T(-z), invert, pol, t);
-      else
-         return 1 + erf_imp(T(-z), false, pol, t);
-   }
-
-   T result;
-
-   if(!invert && (z > detail::erf_asymptotic_limit<T, Policy>()))
-   {
-      detail::erf_asympt_series_t<T> s(z);
-      boost::uintmax_t max_iter = policies::get_max_series_iterations<Policy>();
-      result = boost::math::tools::sum_series(s, policies::get_epsilon<T, Policy>(), max_iter, 1);
-      policies::check_series_iterations<T>("boost::math::erf<%1%>(%1%, %1%)", max_iter, pol);
-   }
-   else
-   {
-      T x = z * z;
-      if(x < 0.6)
-      {
-         // Compute P:
-         result = z * exp(-x);
-         result /= sqrt(boost::math::constants::pi<T>());
-         if(result != 0)
-            result *= 2 * detail::lower_gamma_series(T(0.5f), x, pol);
-      }
-      else if(x < 1.1f)
-      {
-         // Compute Q:
-         invert = !invert;
-         result = tgamma_small_upper_part(T(0.5f), x, pol);
-         result /= sqrt(boost::math::constants::pi<T>());
-      }
-      else
-      {
-         // Compute Q:
-         invert = !invert;
-         result = z * exp(-x);
-         result /= sqrt(boost::math::constants::pi<T>());
-         result *= upper_gamma_fraction(T(0.5f), x, policies::get_epsilon<T, Policy>());
-      }
-   }
-   if(invert)
-      result = 1 - result;
-   return result;
-}
-
-template <class T, class Policy>
-T erf_imp(T z, bool invert, const Policy& pol, const mpl::int_<53>& t)
-{
-   BOOST_MATH_STD_USING
-
-   BOOST_MATH_INSTRUMENT_CODE("53-bit precision erf_imp called");
-
-   if(z < 0)
-   {
-      if(!invert)
-         return -erf_imp(T(-z), invert, pol, t);
-      else if(z < -0.5)
-         return 2 - erf_imp(T(-z), invert, pol, t);
-      else
-         return 1 + erf_imp(T(-z), false, pol, t);
-   }
-
-   T result;
-
-   //
-   // Big bunch of selection statements now to pick
-   // which implementation to use,
-   // try to put most likely options first:
-   //
-   if(z < 0.5)
-   {
-      //
-      // We're going to calculate erf:
-      //
-      if(z < 1e-10)
-      {
-         if(z == 0)
-         {
-            result = T(0);
-         }
-         else
-         {
-            static const T c = BOOST_MATH_BIG_CONSTANT(T, 53, 0.003379167095512573896158903121545171688);
-            result = static_cast<T>(z * 1.125f + z * c);
-         }
-      }
-      else
-      {
-         // Maximum Deviation Found:                     1.561e-17
-         // Expected Error Term:                         1.561e-17
-         // Maximum Relative Change in Control Points:   1.155e-04
-         // Max Error found at double precision =        2.961182e-17
-
-         static const T Y = 1.044948577880859375f;
-         static const T P[] = {    
-            BOOST_MATH_BIG_CONSTANT(T, 53, 0.0834305892146531832907),
-            BOOST_MATH_BIG_CONSTANT(T, 53, -0.338165134459360935041),
-            BOOST_MATH_BIG_CONSTANT(T, 53, -0.0509990735146777432841),
-            BOOST_MATH_BIG_CONSTANT(T, 53, -0.00772758345802133288487),
-            BOOST_MATH_BIG_CONSTANT(T, 53, -0.000322780120964605683831),
-         };
-         static const T Q[] = {    
-            BOOST_MATH_BIG_CONSTANT(T, 53, 1.0),
-            BOOST_MATH_BIG_CONSTANT(T, 53, 0.455004033050794024546),
-            BOOST_MATH_BIG_CONSTANT(T, 53, 0.0875222600142252549554),
-            BOOST_MATH_BIG_CONSTANT(T, 53, 0.00858571925074406212772),
-            BOOST_MATH_BIG_CONSTANT(T, 53, 0.000370900071787748000569),
-         };
-         T zz = z * z;
-         result = z * (Y + tools::evaluate_polynomial(P, zz) / tools::evaluate_polynomial(Q, zz));
-      }
-   }
-   else if(invert ? (z < 28) : (z < 5.8f))
-   {
-      //
-      // We'll be calculating erfc:
-      //
-      invert = !invert;
-      if(z < 1.5f)
-      {
-         // Maximum Deviation Found:                     3.702e-17
-         // Expected Error Term:                         3.702e-17
-         // Maximum Relative Change in Control Points:   2.845e-04
-         // Max Error found at double precision =        4.841816e-17
-         static const T Y = 0.405935764312744140625f;
-         static const T P[] = {    
-            BOOST_MATH_BIG_CONSTANT(T, 53, -0.098090592216281240205),
-            BOOST_MATH_BIG_CONSTANT(T, 53, 0.178114665841120341155),
-            BOOST_MATH_BIG_CONSTANT(T, 53, 0.191003695796775433986),
-            BOOST_MATH_BIG_CONSTANT(T, 53, 0.0888900368967884466578),
-            BOOST_MATH_BIG_CONSTANT(T, 53, 0.0195049001251218801359),
-            BOOST_MATH_BIG_CONSTANT(T, 53, 0.00180424538297014223957),
-         };
-         static const T Q[] = {    
-            BOOST_MATH_BIG_CONSTANT(T, 53, 1.0),
-            BOOST_MATH_BIG_CONSTANT(T, 53, 1.84759070983002217845),
-            BOOST_MATH_BIG_CONSTANT(T, 53, 1.42628004845511324508),
-            BOOST_MATH_BIG_CONSTANT(T, 53, 0.578052804889902404909),
-            BOOST_MATH_BIG_CONSTANT(T, 53, 0.12385097467900864233),
-            BOOST_MATH_BIG_CONSTANT(T, 53, 0.0113385233577001411017),
-            BOOST_MATH_BIG_CONSTANT(T, 53, 0.337511472483094676155e-5),
-         };
-         BOOST_MATH_INSTRUMENT_VARIABLE(Y);
-         BOOST_MATH_INSTRUMENT_VARIABLE(P[0]);
-         BOOST_MATH_INSTRUMENT_VARIABLE(Q[0]);
-         BOOST_MATH_INSTRUMENT_VARIABLE(z);
-         result = Y + tools::evaluate_polynomial(P, T(z - 0.5)) / tools::evaluate_polynomial(Q, T(z - 0.5));
-         BOOST_MATH_INSTRUMENT_VARIABLE(result);
-         result *= exp(-z * z) / z;
-         BOOST_MATH_INSTRUMENT_VARIABLE(result);
-      }
-      else if(z < 2.5f)
-      {
-         // Max Error found at double precision =        6.599585e-18
-         // Maximum Deviation Found:                     3.909e-18
-         // Expected Error Term:                         3.909e-18
-         // Maximum Relative Change in Control Points:   9.886e-05
-         static const T Y = 0.50672817230224609375f;
-         static const T P[] = {    
-            BOOST_MATH_BIG_CONSTANT(T, 53, -0.0243500476207698441272),
-            BOOST_MATH_BIG_CONSTANT(T, 53, 0.0386540375035707201728),
-            BOOST_MATH_BIG_CONSTANT(T, 53, 0.04394818964209516296),
-            BOOST_MATH_BIG_CONSTANT(T, 53, 0.0175679436311802092299),
-            BOOST_MATH_BIG_CONSTANT(T, 53, 0.00323962406290842133584),
-            BOOST_MATH_BIG_CONSTANT(T, 53, 0.000235839115596880717416),
-         };
-         static const T Q[] = {    
-            BOOST_MATH_BIG_CONSTANT(T, 53, 1),
-            BOOST_MATH_BIG_CONSTANT(T, 53, 1.53991494948552447182),
-            BOOST_MATH_BIG_CONSTANT(T, 53, 0.982403709157920235114),
-            BOOST_MATH_BIG_CONSTANT(T, 53, 0.325732924782444448493),
-            BOOST_MATH_BIG_CONSTANT(T, 53, 0.0563921837420478160373),
-            BOOST_MATH_BIG_CONSTANT(T, 53, 0.00410369723978904575884),
-         };
-         result = Y + tools::evaluate_polynomial(P, T(z - 1.5)) / tools::evaluate_polynomial(Q, T(z - 1.5));
-         result *= exp(-z * z) / z;
-      }
-      else if(z < 4.5f)
-      {
-         // Maximum Deviation Found:                     1.512e-17
-         // Expected Error Term:                         1.512e-17
-         // Maximum Relative Change in Control Points:   2.222e-04
-         // Max Error found at double precision =        2.062515e-17
-         static const T Y = 0.5405750274658203125f;
-         static const T P[] = {    
-            BOOST_MATH_BIG_CONSTANT(T, 53, 0.00295276716530971662634),
-            BOOST_MATH_BIG_CONSTANT(T, 53, 0.0137384425896355332126),
-            BOOST_MATH_BIG_CONSTANT(T, 53, 0.00840807615555585383007),
-            BOOST_MATH_BIG_CONSTANT(T, 53, 0.00212825620914618649141),
-            BOOST_MATH_BIG_CONSTANT(T, 53, 0.000250269961544794627958),
-            BOOST_MATH_BIG_CONSTANT(T, 53, 0.113212406648847561139e-4),
-         };
-         static const T Q[] = {    
-            BOOST_MATH_BIG_CONSTANT(T, 53, 1),
-            BOOST_MATH_BIG_CONSTANT(T, 53, 1.04217814166938418171),
-            BOOST_MATH_BIG_CONSTANT(T, 53, 0.442597659481563127003),
-            BOOST_MATH_BIG_CONSTANT(T, 53, 0.0958492726301061423444),
-            BOOST_MATH_BIG_CONSTANT(T, 53, 0.0105982906484876531489),
-            BOOST_MATH_BIG_CONSTANT(T, 53, 0.000479411269521714493907),
-         };
-         result = Y + tools::evaluate_polynomial(P, T(z - 3.5)) / tools::evaluate_polynomial(Q, T(z - 3.5));
-         result *= exp(-z * z) / z;
-      }
-      else
-      {
-         // Max Error found at double precision =        2.997958e-17
-         // Maximum Deviation Found:                     2.860e-17
-         // Expected Error Term:                         2.859e-17
-         // Maximum Relative Change in Control Points:   1.357e-05
-         static const T Y = 0.5579090118408203125f;
-         static const T P[] = {    
-            BOOST_MATH_BIG_CONSTANT(T, 53, 0.00628057170626964891937),
-            BOOST_MATH_BIG_CONSTANT(T, 53, 0.0175389834052493308818),
-            BOOST_MATH_BIG_CONSTANT(T, 53, -0.212652252872804219852),
-            BOOST_MATH_BIG_CONSTANT(T, 53, -0.687717681153649930619),
-            BOOST_MATH_BIG_CONSTANT(T, 53, -2.5518551727311523996),
-            BOOST_MATH_BIG_CONSTANT(T, 53, -3.22729451764143718517),
-            BOOST_MATH_BIG_CONSTANT(T, 53, -2.8175401114513378771),
-         };
-         static const T Q[] = {    
-            BOOST_MATH_BIG_CONSTANT(T, 53, 1),
-            BOOST_MATH_BIG_CONSTANT(T, 53, 2.79257750980575282228),
-            BOOST_MATH_BIG_CONSTANT(T, 53, 11.0567237927800161565),
-            BOOST_MATH_BIG_CONSTANT(T, 53, 15.930646027911794143),
-            BOOST_MATH_BIG_CONSTANT(T, 53, 22.9367376522880577224),
-            BOOST_MATH_BIG_CONSTANT(T, 53, 13.5064170191802889145),
-            BOOST_MATH_BIG_CONSTANT(T, 53, 5.48409182238641741584),
-         };
-         result = Y + tools::evaluate_polynomial(P, T(1 / z)) / tools::evaluate_polynomial(Q, T(1 / z));
-         result *= exp(-z * z) / z;
-      }
-   }
-   else
-   {
-      //
-      // Any value of z larger than 28 will underflow to zero:
-      //
-      result = 0;
-      invert = !invert;
-   }
-
-   if(invert)
-   {
-      result = 1 - result;
-   }
-
-   return result;
-} // template <class T, class Lanczos>T erf_imp(T z, bool invert, const Lanczos& l, const mpl::int_<53>& t)
-
-
-template <class T, class Policy>
-T erf_imp(T z, bool invert, const Policy& pol, const mpl::int_<64>& t)
-{
-   BOOST_MATH_STD_USING
-
-   BOOST_MATH_INSTRUMENT_CODE("64-bit precision erf_imp called");
-
-   if(z < 0)
-   {
-      if(!invert)
-         return -erf_imp(T(-z), invert, pol, t);
-      else if(z < -0.5)
-         return 2 - erf_imp(T(-z), invert, pol, t);
-      else
-         return 1 + erf_imp(T(-z), false, pol, t);
-   }
-
-   T result;
-
-   //
-   // Big bunch of selection statements now to pick which
-   // implementation to use, try to put most likely options
-   // first:
-   //
-   if(z < 0.5)
-   {
-      //
-      // We're going to calculate erf:
-      //
-      if(z == 0)
-      {
-         result = 0;
-      }
-      else if(z < 1e-10)
-      {
-         static const T c = BOOST_MATH_BIG_CONSTANT(T, 64, 0.003379167095512573896158903121545171688);
-         result = z * 1.125 + z * c;
-      }
-      else
-      {
-         // Max Error found at long double precision =   1.623299e-20
-         // Maximum Deviation Found:                     4.326e-22
-         // Expected Error Term:                         -4.326e-22
-         // Maximum Relative Change in Control Points:   1.474e-04
-         static const T Y = 1.044948577880859375f;
-         static const T P[] = {    
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.0834305892146531988966),
-            BOOST_MATH_BIG_CONSTANT(T, 64, -0.338097283075565413695),
-            BOOST_MATH_BIG_CONSTANT(T, 64, -0.0509602734406067204596),
-            BOOST_MATH_BIG_CONSTANT(T, 64, -0.00904906346158537794396),
-            BOOST_MATH_BIG_CONSTANT(T, 64, -0.000489468651464798669181),
-            BOOST_MATH_BIG_CONSTANT(T, 64, -0.200305626366151877759e-4),
-         };
-         static const T Q[] = {    
-            BOOST_MATH_BIG_CONSTANT(T, 64, 1),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.455817300515875172439),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.0916537354356241792007),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.0102722652675910031202),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.000650511752687851548735),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.189532519105655496778e-4),
-         };
-         result = z * (Y + tools::evaluate_polynomial(P, T(z * z)) / tools::evaluate_polynomial(Q, T(z * z)));
-      }
-   }
-   else if(invert ? (z < 110) : (z < 6.4f))
-   {
-      //
-      // We'll be calculating erfc:
-      //
-      invert = !invert;
-      if(z < 1.5)
-      {
-         // Max Error found at long double precision =   3.239590e-20
-         // Maximum Deviation Found:                     2.241e-20
-         // Expected Error Term:                         -2.241e-20
-         // Maximum Relative Change in Control Points:   5.110e-03
-         static const T Y = 0.405935764312744140625f;
-         static const T P[] = {    
-            BOOST_MATH_BIG_CONSTANT(T, 64, -0.0980905922162812031672),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.159989089922969141329),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.222359821619935712378),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.127303921703577362312),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.0384057530342762400273),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.00628431160851156719325),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.000441266654514391746428),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.266689068336295642561e-7),
-         };
-         static const T Q[] = {    
-            BOOST_MATH_BIG_CONSTANT(T, 64, 1),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 2.03237474985469469291),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 1.78355454954969405222),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.867940326293760578231),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.248025606990021698392),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.0396649631833002269861),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.00279220237309449026796),
-         };
-         result = Y + tools::evaluate_polynomial(P, T(z - 0.5f)) / tools::evaluate_polynomial(Q, T(z - 0.5f));
-         result *= exp(-z * z) / z;
-      }
-      else if(z < 2.5)
-      {
-         // Max Error found at long double precision =   3.686211e-21
-         // Maximum Deviation Found:                     1.495e-21
-         // Expected Error Term:                         -1.494e-21
-         // Maximum Relative Change in Control Points:   1.793e-04
-         static const T Y = 0.50672817230224609375f;
-         static const T P[] = {    
-            BOOST_MATH_BIG_CONSTANT(T, 64, -0.024350047620769840217),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.0343522687935671451309),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.0505420824305544949541),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.0257479325917757388209),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.00669349844190354356118),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.00090807914416099524444),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.515917266698050027934e-4),
-         };
-         static const T Q[] = {    
-            BOOST_MATH_BIG_CONSTANT(T, 64, 1),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 1.71657861671930336344),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 1.26409634824280366218),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.512371437838969015941),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.120902623051120950935),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.0158027197831887485261),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.000897871370778031611439),
-         };
-         result = Y + tools::evaluate_polynomial(P, T(z - 1.5f)) / tools::evaluate_polynomial(Q, T(z - 1.5f));
-         result *= exp(-z * z) / z;
-      }
-      else if(z < 4.5)
-      {
-         // Maximum Deviation Found:                     1.107e-20
-         // Expected Error Term:                         -1.106e-20
-         // Maximum Relative Change in Control Points:   1.709e-04
-         // Max Error found at long double precision =   1.446908e-20
-         static const T Y  = 0.5405750274658203125f;
-         static const T P[] = {    
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.0029527671653097284033),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.0141853245895495604051),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.0104959584626432293901),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.00343963795976100077626),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.00059065441194877637899),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.523435380636174008685e-4),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.189896043050331257262e-5),
-         };
-         static const T Q[] = {    
-            BOOST_MATH_BIG_CONSTANT(T, 64, 1),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 1.19352160185285642574),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.603256964363454392857),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.165411142458540585835),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.0259729870946203166468),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.00221657568292893699158),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.804149464190309799804e-4),
-         };
-         result = Y + tools::evaluate_polynomial(P, T(z - 3.5f)) / tools::evaluate_polynomial(Q, T(z - 3.5f));
-         result *= exp(-z * z) / z;
-      }
-      else
-      {
-         // Max Error found at long double precision =   7.961166e-21
-         // Maximum Deviation Found:                     6.677e-21
-         // Expected Error Term:                         6.676e-21
-         // Maximum Relative Change in Control Points:   2.319e-05
-         static const T Y = 0.55825519561767578125f;
-         static const T P[] = {    
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.00593438793008050214106),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 0.0280666231009089713937),
-            BOOST_MATH_BIG_CONSTANT(T, 64, -0.141597835204583050043),
-            BOOST_MATH_BIG_CONSTANT(T, 64, -0.978088201154300548842),
-            BOOST_MATH_BIG_CONSTANT(T, 64, -5.47351527796012049443),
-            BOOST_MATH_BIG_CONSTANT(T, 64, -13.8677304660245326627),
-            BOOST_MATH_BIG_CONSTANT(T, 64, -27.1274948720539821722),
-            BOOST_MATH_BIG_CONSTANT(T, 64, -29.2545152747009461519),
-            BOOST_MATH_BIG_CONSTANT(T, 64, -16.8865774499799676937),
-         };
-         static const T Q[] = {    
-            BOOST_MATH_BIG_CONSTANT(T, 64, 1),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 4.72948911186645394541),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 23.6750543147695749212),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 60.0021517335693186785),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 131.766251645149522868),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 178.167924971283482513),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 182.499390505915222699),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 104.365251479578577989),
-            BOOST_MATH_BIG_CONSTANT(T, 64, 30.8365511891224291717),
-         };
-         result = Y + tools::evaluate_polynomial(P, T(1 / z)) / tools::evaluate_polynomial(Q, T(1 / z));
-         result *= exp(-z * z) / z;
-      }
-   }
-   else
-   {
-      //
-      // Any value of z larger than 110 will underflow to zero:
-      //
-      result = 0;
-      invert = !invert;
-   }
-
-   if(invert)
-   {
-      result = 1 - result;
-   }
-
-   return result;
-} // template <class T, class Lanczos>T erf_imp(T z, bool invert, const Lanczos& l, const mpl::int_<64>& t)
-
-
-template <class T, class Policy>
-T erf_imp(T z, bool invert, const Policy& pol, const mpl::int_<113>& t)
-{
-   BOOST_MATH_STD_USING
-
-   BOOST_MATH_INSTRUMENT_CODE("113-bit precision erf_imp called");
-
-   if(z < 0)
-   {
-      if(!invert)
-         return -erf_imp(T(-z), invert, pol, t);
-      else if(z < -0.5)
-         return 2 - erf_imp(T(-z), invert, pol, t);
-      else
-         return 1 + erf_imp(T(-z), false, pol, t);
-   }
-
-   T result;
-
-   //
-   // Big bunch of selection statements now to pick which
-   // implementation to use, try to put most likely options
-   // first:
-   //
-   if(z < 0.5)
-   {
-      //
-      // We're going to calculate erf:
-      //
-      if(z == 0)
-      {
-         result = 0;
-      }
-      else if(z < 1e-20)
-      {
-         static const T c = BOOST_MATH_BIG_CONSTANT(T, 113, 0.003379167095512573896158903121545171688);
-         result = z * 1.125 + z * c;
-      }
-      else
-      {
-         // Max Error found at long double precision =   2.342380e-35
-         // Maximum Deviation Found:                     6.124e-36
-         // Expected Error Term:                         -6.124e-36
-         // Maximum Relative Change in Control Points:   3.492e-10
-         static const T Y = 1.0841522216796875f;
-         static const T P[] = {    
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.0442269454158250738961589031215451778),
-            BOOST_MATH_BIG_CONSTANT(T, 113, -0.35549265736002144875335323556961233),
-            BOOST_MATH_BIG_CONSTANT(T, 113, -0.0582179564566667896225454670863270393),
-            BOOST_MATH_BIG_CONSTANT(T, 113, -0.0112694696904802304229950538453123925),
-            BOOST_MATH_BIG_CONSTANT(T, 113, -0.000805730648981801146251825329609079099),
-            BOOST_MATH_BIG_CONSTANT(T, 113, -0.566304966591936566229702842075966273e-4),
-            BOOST_MATH_BIG_CONSTANT(T, 113, -0.169655010425186987820201021510002265e-5),
-            BOOST_MATH_BIG_CONSTANT(T, 113, -0.344448249920445916714548295433198544e-7),
-         };
-         static const T Q[] = {    
-            BOOST_MATH_BIG_CONSTANT(T, 113, 1),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.466542092785657604666906909196052522),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.100005087012526447295176964142107611),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.0128341535890117646540050072234142603),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.00107150448466867929159660677016658186),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.586168368028999183607733369248338474e-4),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.196230608502104324965623171516808796e-5),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.313388521582925207734229967907890146e-7),
-         };
-         result = z * (Y + tools::evaluate_polynomial(P, T(z * z)) / tools::evaluate_polynomial(Q, T(z * z)));
-      }
-   }
-   else if(invert ? (z < 110) : (z < 8.65f))
-   {
-      //
-      // We'll be calculating erfc:
-      //
-      invert = !invert;
-      if(z < 1)
-      {
-         // Max Error found at long double precision =   3.246278e-35
-         // Maximum Deviation Found:                     1.388e-35
-         // Expected Error Term:                         1.387e-35
-         // Maximum Relative Change in Control Points:   6.127e-05
-         static const T Y = 0.371877193450927734375f;
-         static const T P[] = {    
-            BOOST_MATH_BIG_CONSTANT(T, 113, -0.0640320213544647969396032886581290455),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.200769874440155895637857443946706731),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.378447199873537170666487408805779826),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.30521399466465939450398642044975127),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.146890026406815277906781824723458196),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.0464837937749539978247589252732769567),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.00987895759019540115099100165904822903),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.00137507575429025512038051025154301132),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.0001144764551085935580772512359680516),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.436544865032836914773944382339900079e-5),
-         };
-         static const T Q[] = {    
-            BOOST_MATH_BIG_CONSTANT(T, 113, 1),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 2.47651182872457465043733800302427977),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 2.78706486002517996428836400245547955),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 1.87295924621659627926365005293130693),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.829375825174365625428280908787261065),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.251334771307848291593780143950311514),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.0522110268876176186719436765734722473),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.00718332151250963182233267040106902368),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.000595279058621482041084986219276392459),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.226988669466501655990637599399326874e-4),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.270666232259029102353426738909226413e-10),
-         };
-         result = Y + tools::evaluate_polynomial(P, T(z - 0.5f)) / tools::evaluate_polynomial(Q, T(z - 0.5f));
-         result *= exp(-z * z) / z;
-      }
-      else if(z < 1.5)
-      {
-         // Max Error found at long double precision =   2.215785e-35
-         // Maximum Deviation Found:                     1.539e-35
-         // Expected Error Term:                         1.538e-35
-         // Maximum Relative Change in Control Points:   6.104e-05
-         static const T Y = 0.45658016204833984375f;
-         static const T P[] = {    
-            BOOST_MATH_BIG_CONSTANT(T, 113, -0.0289965858925328393392496555094848345),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.0868181194868601184627743162571779226),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.169373435121178901746317404936356745),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.13350446515949251201104889028133486),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.0617447837290183627136837688446313313),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.0185618495228251406703152962489700468),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.00371949406491883508764162050169531013),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.000485121708792921297742105775823900772),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.376494706741453489892108068231400061e-4),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.133166058052466262415271732172490045e-5),
-         };
-         static const T Q[] = {    
-            BOOST_MATH_BIG_CONSTANT(T, 113, 1),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 2.32970330146503867261275580968135126),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 2.46325715420422771961250513514928746),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 1.55307882560757679068505047390857842),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.644274289865972449441174485441409076),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.182609091063258208068606847453955649),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.0354171651271241474946129665801606795),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.00454060370165285246451879969534083997),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.000349871943711566546821198612518656486),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.123749319840299552925421880481085392e-4),
-         };
-         result = Y + tools::evaluate_polynomial(P, T(z - 1.0f)) / tools::evaluate_polynomial(Q, T(z - 1.0f));
-         result *= exp(-z * z) / z;
-      }
-      else if(z < 2.25)
-      {
-         // Maximum Deviation Found:                     1.418e-35
-         // Expected Error Term:                         1.418e-35
-         // Maximum Relative Change in Control Points:   1.316e-04
-         // Max Error found at long double precision =   1.998462e-35
-         static const T Y = 0.50250148773193359375f;
-         static const T P[] = {    
-            BOOST_MATH_BIG_CONSTANT(T, 113, -0.0201233630504573402185161184151016606),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.0331864357574860196516686996302305002),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.0716562720864787193337475444413405461),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.0545835322082103985114927569724880658),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.0236692635189696678976549720784989593),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.00656970902163248872837262539337601845),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.00120282643299089441390490459256235021),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.000142123229065182650020762792081622986),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.991531438367015135346716277792989347e-5),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.312857043762117596999398067153076051e-6),
-         };
-         static const T Q[] = {    
-            BOOST_MATH_BIG_CONSTANT(T, 113, 1),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 2.13506082409097783827103424943508554),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 2.06399257267556230937723190496806215),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 1.18678481279932541314830499880691109),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.447733186643051752513538142316799562),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.11505680005657879437196953047542148),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.020163993632192726170219663831914034),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.00232708971840141388847728782209730585),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.000160733201627963528519726484608224112),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.507158721790721802724402992033269266e-5),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.18647774409821470950544212696270639e-12),
-         };
-         result = Y + tools::evaluate_polynomial(P, T(z - 1.5f)) / tools::evaluate_polynomial(Q, T(z - 1.5f));
-         result *= exp(-z * z) / z;
-      }
-      else if (z < 3)
-      {
-         // Maximum Deviation Found:                     3.575e-36
-         // Expected Error Term:                         3.575e-36
-         // Maximum Relative Change in Control Points:   7.103e-05
-         // Max Error found at long double precision =   5.794737e-36
-         static const T Y = 0.52896785736083984375f;
-         static const T P[] = {    
-            BOOST_MATH_BIG_CONSTANT(T, 113, -0.00902152521745813634562524098263360074),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.0145207142776691539346923710537580927),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.0301681239582193983824211995978678571),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.0215548540823305814379020678660434461),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.00864683476267958365678294164340749949),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.00219693096885585491739823283511049902),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.000364961639163319762492184502159894371),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.388174251026723752769264051548703059e-4),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.241918026931789436000532513553594321e-5),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.676586625472423508158937481943649258e-7),
-         };
-         static const T Q[] = {    
-            BOOST_MATH_BIG_CONSTANT(T, 113, 1),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 1.93669171363907292305550231764920001),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 1.69468476144051356810672506101377494),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.880023580986436640372794392579985511),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.299099106711315090710836273697708402),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.0690593962363545715997445583603382337),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.0108427016361318921960863149875360222),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.00111747247208044534520499324234317695),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.686843205749767250666787987163701209e-4),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.192093541425429248675532015101904262e-5),
-         };
-         result = Y + tools::evaluate_polynomial(P, T(z - 2.25f)) / tools::evaluate_polynomial(Q, T(z - 2.25f));
-         result *= exp(-z * z) / z;
-      }
-      else if(z < 3.5)
-      {
-         // Maximum Deviation Found:                     8.126e-37
-         // Expected Error Term:                         -8.126e-37
-         // Maximum Relative Change in Control Points:   1.363e-04
-         // Max Error found at long double precision =   1.747062e-36
-         static const T Y = 0.54037380218505859375f;
-         static const T P[] = {    
-            BOOST_MATH_BIG_CONSTANT(T, 113, -0.0033703486408887424921155540591370375),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.0104948043110005245215286678898115811),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.0148530118504000311502310457390417795),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.00816693029245443090102738825536188916),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.00249716579989140882491939681805594585),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.0004655591010047353023978045800916647),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.531129557920045295895085236636025323e-4),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.343526765122727069515775194111741049e-5),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.971120407556888763695313774578711839e-7),
-         };
-         static const T Q[] = {    
-            BOOST_MATH_BIG_CONSTANT(T, 113, 1),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 1.59911256167540354915906501335919317),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 1.136006830764025173864831382946934),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.468565867990030871678574840738423023),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.122821824954470343413956476900662236),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.0209670914950115943338996513330141633),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.00227845718243186165620199012883547257),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.000144243326443913171313947613547085553),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.407763415954267700941230249989140046e-5),
-         };
-         result = Y + tools::evaluate_polynomial(P, T(z - 3.0f)) / tools::evaluate_polynomial(Q, T(z - 3.0f));
-         result *= exp(-z * z) / z;
-      }
-      else if(z < 5.5)
-      {
-         // Maximum Deviation Found:                     5.804e-36
-         // Expected Error Term:                         -5.803e-36
-         // Maximum Relative Change in Control Points:   2.475e-05
-         // Max Error found at long double precision =   1.349545e-35
-         static const T Y = 0.55000019073486328125f;
-         static const T P[] = {    
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.00118142849742309772151454518093813615),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.0072201822885703318172366893469382745),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.0078782276276860110721875733778481505),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.00418229166204362376187593976656261146),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.00134198400587769200074194304298642705),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.000283210387078004063264777611497435572),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.405687064094911866569295610914844928e-4),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.39348283801568113807887364414008292e-5),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.248798540917787001526976889284624449e-6),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.929502490223452372919607105387474751e-8),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.156161469668275442569286723236274457e-9),
-         };
-         static const T Q[] = {    
-            BOOST_MATH_BIG_CONSTANT(T, 113, 1),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 1.52955245103668419479878456656709381),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 1.06263944820093830054635017117417064),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.441684612681607364321013134378316463),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.121665258426166960049773715928906382),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.0232134512374747691424978642874321434),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.00310778180686296328582860464875562636),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.000288361770756174705123674838640161693),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.177529187194133944622193191942300132e-4),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.655068544833064069223029299070876623e-6),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.11005507545746069573608988651927452e-7),
-         };
-         result = Y + tools::evaluate_polynomial(P, T(z - 4.5f)) / tools::evaluate_polynomial(Q, T(z - 4.5f));
-         result *= exp(-z * z) / z;
-      }
-      else if(z < 7.5)
-      {
-         // Maximum Deviation Found:                     1.007e-36
-         // Expected Error Term:                         1.007e-36
-         // Maximum Relative Change in Control Points:   1.027e-03
-         // Max Error found at long double precision =   2.646420e-36
-         static const T Y = 0.5574436187744140625f;
-         static const T P[] = {    
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.000293236907400849056269309713064107674),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.00225110719535060642692275221961480162),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.00190984458121502831421717207849429799),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.000747757733460111743833929141001680706),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.000170663175280949889583158597373928096),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.246441188958013822253071608197514058e-4),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.229818000860544644974205957895688106e-5),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.134886977703388748488480980637704864e-6),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.454764611880548962757125070106650958e-8),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.673002744115866600294723141176820155e-10),
-         };
-         static const T Q[] = {    
-            BOOST_MATH_BIG_CONSTANT(T, 113, 1),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 1.12843690320861239631195353379313367),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.569900657061622955362493442186537259),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.169094404206844928112348730277514273),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.0324887449084220415058158657252147063),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.00419252877436825753042680842608219552),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.00036344133176118603523976748563178578),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.204123895931375107397698245752850347e-4),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.674128352521481412232785122943508729e-6),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.997637501418963696542159244436245077e-8),
-         };
-         result = Y + tools::evaluate_polynomial(P, T(z - 6.5f)) / tools::evaluate_polynomial(Q, T(z - 6.5f));
-         result *= exp(-z * z) / z;
-      }
-      else if(z < 11.5)
-      {
-         // Maximum Deviation Found:                     8.380e-36
-         // Expected Error Term:                         8.380e-36
-         // Maximum Relative Change in Control Points:   2.632e-06
-         // Max Error found at long double precision =   9.849522e-36
-         static const T Y = 0.56083202362060546875f;
-         static const T P[] = {    
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.000282420728751494363613829834891390121),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.00175387065018002823433704079355125161),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.0021344978564889819420775336322920375),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.00124151356560137532655039683963075661),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.000423600733566948018555157026862139644),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.914030340865175237133613697319509698e-4),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.126999927156823363353809747017945494e-4),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.110610959842869849776179749369376402e-5),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.55075079477173482096725348704634529e-7),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.119735694018906705225870691331543806e-8),
-         };
-         static const T Q[] = {    
-            BOOST_MATH_BIG_CONSTANT(T, 113, 1),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 1.69889613396167354566098060039549882),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 1.28824647372749624464956031163282674),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.572297795434934493541628008224078717),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.164157697425571712377043857240773164),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.0315311145224594430281219516531649562),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.00405588922155632380812945849777127458),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.000336929033691445666232029762868642417),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.164033049810404773469413526427932109e-4),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.356615210500531410114914617294694857e-6),
-         };
-         result = Y + tools::evaluate_polynomial(P, T(z / 2 - 4.75f)) / tools::evaluate_polynomial(Q, T(z / 2 - 4.75f));
-         result *= exp(-z * z) / z;
-      }
-      else
-      {
-         // Maximum Deviation Found:                     1.132e-35
-         // Expected Error Term:                         -1.132e-35
-         // Maximum Relative Change in Control Points:   4.674e-04
-         // Max Error found at long double precision =   1.162590e-35
-         static const T Y = 0.5632686614990234375f;
-         static const T P[] = {    
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.000920922048732849448079451574171836943),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 0.00321439044532288750501700028748922439),
-            BOOST_MATH_BIG_CONSTANT(T, 113, -0.250455263029390118657884864261823431),
-            BOOST_MATH_BIG_CONSTANT(T, 113, -0.906807635364090342031792404764598142),
-            BOOST_MATH_BIG_CONSTANT(T, 113, -8.92233572835991735876688745989985565),
-            BOOST_MATH_BIG_CONSTANT(T, 113, -21.7797433494422564811782116907878495),
-            BOOST_MATH_BIG_CONSTANT(T, 113, -91.1451915251976354349734589601171659),
-            BOOST_MATH_BIG_CONSTANT(T, 113, -144.1279109655993927069052125017673),
-            BOOST_MATH_BIG_CONSTANT(T, 113, -313.845076581796338665519022313775589),
-            BOOST_MATH_BIG_CONSTANT(T, 113, -273.11378811923343424081101235736475),
-            BOOST_MATH_BIG_CONSTANT(T, 113, -271.651566205951067025696102600443452),
-            BOOST_MATH_BIG_CONSTANT(T, 113, -60.0530577077238079968843307523245547),
-         };
-         static const T Q[] = {    
-            BOOST_MATH_BIG_CONSTANT(T, 113, 1),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 3.49040448075464744191022350947892036),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 34.3563592467165971295915749548313227),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 84.4993232033879023178285731843850461),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 376.005865281206894120659401340373818),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 629.95369438888946233003926191755125),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 1568.35771983533158591604513304269098),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 1646.02452040831961063640827116581021),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 2299.96860633240298708910425594484895),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 1222.73204392037452750381340219906374),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 799.359797306084372350264298361110448),
-            BOOST_MATH_BIG_CONSTANT(T, 113, 72.7415265778588087243442792401576737),
-         };
-         result = Y + tools::evaluate_polynomial(P, T(1 / z)) / tools::evaluate_polynomial(Q, T(1 / z));
-         result *= exp(-z * z) / z;
-      }
-   }
-   else
-   {
-      //
-      // Any value of z larger than 110 will underflow to zero:
-      //
-      result = 0;
-      invert = !invert;
-   }
-
-   if(invert)
-   {
-      result = 1 - result;
-   }
-
-   return result;
-} // template <class T, class Lanczos>T erf_imp(T z, bool invert, const Lanczos& l, const mpl::int_<113>& t)
-
-template <class T, class Policy, class tag>
-struct erf_initializer
-{
-   struct init
-   {
-      init()
-      {
-         do_init(tag());
-      }
-      static void do_init(const mpl::int_<0>&){}
-      static void do_init(const mpl::int_<53>&)
-      {
-         boost::math::erf(static_cast<T>(1e-12), Policy());
-         boost::math::erf(static_cast<T>(0.25), Policy());
-         boost::math::erf(static_cast<T>(1.25), Policy());
-         boost::math::erf(static_cast<T>(2.25), Policy());
-         boost::math::erf(static_cast<T>(4.25), Policy());
-         boost::math::erf(static_cast<T>(5.25), Policy());
-      }
-      static void do_init(const mpl::int_<64>&)
-      {
-         boost::math::erf(static_cast<T>(1e-12), Policy());
-         boost::math::erf(static_cast<T>(0.25), Policy());
-         boost::math::erf(static_cast<T>(1.25), Policy());
-         boost::math::erf(static_cast<T>(2.25), Policy());
-         boost::math::erf(static_cast<T>(4.25), Policy());
-         boost::math::erf(static_cast<T>(5.25), Policy());
-      }
-      static void do_init(const mpl::int_<113>&)
-      {
-         boost::math::erf(static_cast<T>(1e-22), Policy());
-         boost::math::erf(static_cast<T>(0.25), Policy());
-         boost::math::erf(static_cast<T>(1.25), Policy());
-         boost::math::erf(static_cast<T>(2.125), Policy());
-         boost::math::erf(static_cast<T>(2.75), Policy());
-         boost::math::erf(static_cast<T>(3.25), Policy());
-         boost::math::erf(static_cast<T>(5.25), Policy());
-         boost::math::erf(static_cast<T>(7.25), Policy());
-         boost::math::erf(static_cast<T>(11.25), Policy());
-         boost::math::erf(static_cast<T>(12.5), Policy());
-      }
-      void force_instantiate()const{}
-   };
-   static const init initializer;
-   static void force_instantiate()
-   {
-      initializer.force_instantiate();
-   }
-};
-
-template <class T, class Policy, class tag>
-const typename erf_initializer<T, Policy, tag>::init erf_initializer<T, Policy, tag>::initializer;
-
-} // namespace detail
-
-template <class T, class Policy>
-inline typename tools::promote_args<T>::type erf(T z, const Policy& /* pol */)
-{
-   typedef typename tools::promote_args<T>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   typedef typename policies::precision<result_type, Policy>::type precision_type;
-   typedef typename policies::normalise<
-      Policy, 
-      policies::promote_float<false>, 
-      policies::promote_double<false>, 
-      policies::discrete_quantile<>,
-      policies::assert_undefined<> >::type forwarding_policy;
-
-   BOOST_MATH_INSTRUMENT_CODE("result_type = " << typeid(result_type).name());
-   BOOST_MATH_INSTRUMENT_CODE("value_type = " << typeid(value_type).name());
-   BOOST_MATH_INSTRUMENT_CODE("precision_type = " << typeid(precision_type).name());
-
-   typedef typename mpl::if_<
-      mpl::less_equal<precision_type, mpl::int_<0> >,
-      mpl::int_<0>,
-      typename mpl::if_<
-         mpl::less_equal<precision_type, mpl::int_<53> >,
-         mpl::int_<53>,  // double
-         typename mpl::if_<
-            mpl::less_equal<precision_type, mpl::int_<64> >,
-            mpl::int_<64>, // 80-bit long double
-            typename mpl::if_<
-               mpl::less_equal<precision_type, mpl::int_<113> >,
-               mpl::int_<113>, // 128-bit long double
-               mpl::int_<0> // too many bits, use generic version.
-            >::type
-         >::type
-      >::type
-   >::type tag_type;
-
-   BOOST_MATH_INSTRUMENT_CODE("tag_type = " << typeid(tag_type).name());
-
-   detail::erf_initializer<value_type, forwarding_policy, tag_type>::force_instantiate(); // Force constants to be initialized before main
-
-   return policies::checked_narrowing_cast<result_type, forwarding_policy>(detail::erf_imp(
-      static_cast<value_type>(z),
-      false,
-      forwarding_policy(),
-      tag_type()), "boost::math::erf<%1%>(%1%, %1%)");
-}
-
-template <class T, class Policy>
-inline typename tools::promote_args<T>::type erfc(T z, const Policy& /* pol */)
-{
-   typedef typename tools::promote_args<T>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   typedef typename policies::precision<result_type, Policy>::type precision_type;
-   typedef typename policies::normalise<
-      Policy, 
-      policies::promote_float<false>, 
-      policies::promote_double<false>, 
-      policies::discrete_quantile<>,
-      policies::assert_undefined<> >::type forwarding_policy;
-
-   BOOST_MATH_INSTRUMENT_CODE("result_type = " << typeid(result_type).name());
-   BOOST_MATH_INSTRUMENT_CODE("value_type = " << typeid(value_type).name());
-   BOOST_MATH_INSTRUMENT_CODE("precision_type = " << typeid(precision_type).name());
-
-   typedef typename mpl::if_<
-      mpl::less_equal<precision_type, mpl::int_<0> >,
-      mpl::int_<0>,
-      typename mpl::if_<
-         mpl::less_equal<precision_type, mpl::int_<53> >,
-         mpl::int_<53>,  // double
-         typename mpl::if_<
-            mpl::less_equal<precision_type, mpl::int_<64> >,
-            mpl::int_<64>, // 80-bit long double
-            typename mpl::if_<
-               mpl::less_equal<precision_type, mpl::int_<113> >,
-               mpl::int_<113>, // 128-bit long double
-               mpl::int_<0> // too many bits, use generic version.
-            >::type
-         >::type
-      >::type
-   >::type tag_type;
-
-   BOOST_MATH_INSTRUMENT_CODE("tag_type = " << typeid(tag_type).name());
-
-   detail::erf_initializer<value_type, forwarding_policy, tag_type>::force_instantiate(); // Force constants to be initialized before main
-
-   return policies::checked_narrowing_cast<result_type, forwarding_policy>(detail::erf_imp(
-      static_cast<value_type>(z),
-      true,
-      forwarding_policy(),
-      tag_type()), "boost::math::erfc<%1%>(%1%, %1%)");
-}
-
-template <class T>
-inline typename tools::promote_args<T>::type erf(T z)
-{
-   return boost::math::erf(z, policies::policy<>());
-}
-
-template <class T>
-inline typename tools::promote_args<T>::type erfc(T z)
-{
-   return boost::math::erfc(z, policies::policy<>());
-}
-
-} // namespace math
-} // namespace boost
-
-#include <boost/math/special_functions/detail/erf_inv.hpp>
-
-#endif // BOOST_MATH_SPECIAL_ERF_HPP
-
-
-
-
diff --git a/boost/math/special_functions/expint.hpp b/boost/math/special_functions/expint.hpp
deleted file mode 100644
index 1c86d28..0000000
--- a/boost/math/special_functions/expint.hpp
+++ /dev/null
@@ -1,1671 +0,0 @@
-//  Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_EXPINT_HPP
-#define BOOST_MATH_EXPINT_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/math/tools/precision.hpp>
-#include <boost/math/tools/promotion.hpp>
-#include <boost/math/tools/fraction.hpp>
-#include <boost/math/tools/series.hpp>
-#include <boost/math/policies/error_handling.hpp>
-#include <boost/math/special_functions/digamma.hpp>
-#include <boost/math/special_functions/log1p.hpp>
-#include <boost/math/special_functions/pow.hpp>
-
-namespace boost{ namespace math{
-
-template <class T, class Policy>
-inline typename tools::promote_args<T>::type
-   expint(unsigned n, T z, const Policy& /*pol*/);
-   
-namespace detail{
-
-template <class T>
-inline T expint_1_rational(const T& z, const mpl::int_<0>&)
-{
-   // this function is never actually called
-   BOOST_ASSERT(0);
-   return z;
-}
-
-template <class T>
-T expint_1_rational(const T& z, const mpl::int_<53>&)
-{
-   BOOST_MATH_STD_USING
-   T result;
-   if(z <= 1)
-   {
-      // Maximum Deviation Found:                     2.006e-18
-      // Expected Error Term:                         2.006e-18
-      // Max error found at double precision:         2.760e-17
-      static const T Y = 0.66373538970947265625F;
-      static const T P[6] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 53, 0.0865197248079397976498),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 0.0320913665303559189999),
-         BOOST_MATH_BIG_CONSTANT(T, 53, -0.245088216639761496153),
-         BOOST_MATH_BIG_CONSTANT(T, 53, -0.0368031736257943745142),
-         BOOST_MATH_BIG_CONSTANT(T, 53, -0.00399167106081113256961),
-         BOOST_MATH_BIG_CONSTANT(T, 53, -0.000111507792921197858394)
-      };
-      static const T Q[6] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 53, 1),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 0.37091387659397013215),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 0.056770677104207528384),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 0.00427347600017103698101),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 0.000131049900798434683324),
-         BOOST_MATH_BIG_CONSTANT(T, 53, -0.528611029520217142048e-6)
-      };
-      result = tools::evaluate_polynomial(P, z) 
-         / tools::evaluate_polynomial(Q, z);
-      result += z - log(z) - Y;
-   }
-   else if(z < -boost::math::tools::log_min_value<T>())
-   {
-      // Maximum Deviation Found (interpolated):      1.444e-17
-      // Max error found at double precision:         3.119e-17
-      static const T P[11] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 53, -0.121013190657725568138e-18),
-         BOOST_MATH_BIG_CONSTANT(T, 53, -0.999999999999998811143),
-         BOOST_MATH_BIG_CONSTANT(T, 53, -43.3058660811817946037),
-         BOOST_MATH_BIG_CONSTANT(T, 53, -724.581482791462469795),
-         BOOST_MATH_BIG_CONSTANT(T, 53, -6046.8250112711035463),
-         BOOST_MATH_BIG_CONSTANT(T, 53, -27182.6254466733970467),
-         BOOST_MATH_BIG_CONSTANT(T, 53, -66598.2652345418633509),
-         BOOST_MATH_BIG_CONSTANT(T, 53, -86273.1567711649528784),
-         BOOST_MATH_BIG_CONSTANT(T, 53, -54844.4587226402067411),
-         BOOST_MATH_BIG_CONSTANT(T, 53, -14751.4895786128450662),
-         BOOST_MATH_BIG_CONSTANT(T, 53, -1185.45720315201027667)
-      };
-      static const T Q[12] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 53, 1),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 45.3058660811801465927),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 809.193214954550328455),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 7417.37624454689546708),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 38129.5594484818471461),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 113057.05869159631492),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 192104.047790227984431),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 180329.498380501819718),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 86722.3403467334749201),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 18455.4124737722049515),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 1229.20784182403048905),
-         BOOST_MATH_BIG_CONSTANT(T, 53, -0.776491285282330997549)
-      };
-      T recip = 1 / z;
-      result = 1 + tools::evaluate_polynomial(P, recip)
-         / tools::evaluate_polynomial(Q, recip);
-      result *= exp(-z) * recip;
-   }
-   else
-   {
-      result = 0;
-   }
-   return result;
-}
-
-template <class T>
-T expint_1_rational(const T& z, const mpl::int_<64>&)
-{
-   BOOST_MATH_STD_USING
-   T result;
-   if(z <= 1)
-   {
-      // Maximum Deviation Found:                     3.807e-20
-      // Expected Error Term:                         3.807e-20
-      // Max error found at long double precision:    6.249e-20
-
-      static const T Y = 0.66373538970947265625F;
-      static const T P[6] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.0865197248079397956816),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.0275114007037026844633),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.246594388074877139824),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.0237624819878732642231),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.00259113319641673986276),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.30853660894346057053e-4)
-      };
-      static const T Q[7] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 64, 1),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.317978365797784100273),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.0393622602554758722511),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.00204062029115966323229),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.732512107100088047854e-5),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.202872781770207871975e-5),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.52779248094603709945e-7)
-      };
-      result = tools::evaluate_polynomial(P, z) 
-         / tools::evaluate_polynomial(Q, z);
-      result += z - log(z) - Y;
-   }
-   else if(z < -boost::math::tools::log_min_value<T>())
-   {
-      // Maximum Deviation Found (interpolated):     2.220e-20
-      // Max error found at long double precision:   1.346e-19
-      static const T P[14] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.534401189080684443046e-23),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.999999999999999999905),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -62.1517806091379402505),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -1568.45688271895145277),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -21015.3431990874009619),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -164333.011755931661949),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -777917.270775426696103),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -2244188.56195255112937),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -3888702.98145335643429),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -3909822.65621952648353),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -2149033.9538897398457),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -584705.537139793925189),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -65815.2605361889477244),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -2038.82870680427258038)
-      };
-      static const T Q[14] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 64, 1),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 64.1517806091379399478),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 1690.76044393722763785),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 24035.9534033068949426),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 203679.998633572361706),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 1074661.58459976978285),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 3586552.65020899358773),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 7552186.84989547621411),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 9853333.79353054111434),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 7689642.74550683631258),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 3385553.35146759180739),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 763218.072732396428725),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 73930.2995984054930821),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 2063.86994219629165937)
-      };
-      T recip = 1 / z;
-      result = 1 + tools::evaluate_polynomial(P, recip)
-         / tools::evaluate_polynomial(Q, recip);
-      result *= exp(-z) * recip;
-   }
-   else
-   {
-      result = 0;
-   }
-   return result;
-}
-
-template <class T>
-T expint_1_rational(const T& z, const mpl::int_<113>&)
-{
-   BOOST_MATH_STD_USING
-   T result;
-   if(z <= 1)
-   {
-      // Maximum Deviation Found:                     2.477e-35
-      // Expected Error Term:                         2.477e-35
-      // Max error found at long double precision:    6.810e-35
-
-      static const T Y = 0.66373538970947265625F;
-      static const T P[10] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.0865197248079397956434879099175975937),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.0369066175910795772830865304506087759),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.24272036838415474665971599314725545),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.0502166331248948515282379137550178307),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.00768384138547489410285101483730424919),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.000612574337702109683505224915484717162),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.380207107950635046971492617061708534e-4),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.136528159460768830763009294683628406e-5),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.346839106212658259681029388908658618e-7),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.340500302777838063940402160594523429e-9)
-      };
-      static const T Q[10] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 113, 1),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.426568827778942588160423015589537302),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.0841384046470893490592450881447510148),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.0100557215850668029618957359471132995),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.000799334870474627021737357294799839363),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.434452090903862735242423068552687688e-4),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.15829674748799079874182885081231252e-5),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.354406206738023762100882270033082198e-7),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.369373328141051577845488477377890236e-9),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.274149801370933606409282434677600112e-12)
-      };
-      result = tools::evaluate_polynomial(P, z) 
-         / tools::evaluate_polynomial(Q, z);
-      result += z - log(z) - Y;
-   }
-   else if(z <= 4)
-   {
-      // Max error in interpolated form:             5.614e-35
-      // Max error found at long double precision:   7.979e-35
-
-      static const T Y = 0.70190334320068359375F;
-
-      static const T P[16] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.298096656795020369955077350585959794),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 12.9314045995266142913135497455971247),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 226.144334921582637462526628217345501),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 2070.83670924261732722117682067381405),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 10715.1115684330959908244769731347186),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 30728.7876355542048019664777316053311),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 38520.6078609349855436936232610875297),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -27606.0780981527583168728339620565165),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -169026.485055785605958655247592604835),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -254361.919204983608659069868035092282),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -195765.706874132267953259272028679935),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -83352.6826013533205474990119962408675),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -19251.6828496869586415162597993050194),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -2226.64251774578542836725386936102339),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -109.009437301400845902228611986479816),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -1.51492042209561411434644938098833499)
-      };
-      static const T Q[16] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 113, 1),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 46.734521442032505570517810766704587),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 908.694714348462269000247450058595655),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 9701.76053033673927362784882748513195),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 63254.2815292641314236625196594947774),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 265115.641285880437335106541757711092),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 732707.841188071900498536533086567735),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 1348514.02492635723327306628712057794),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 1649986.81455283047769673308781585991),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 1326000.828522976970116271208812099),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 683643.09490612171772350481773951341),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 217640.505137263607952365685653352229),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 40288.3467237411710881822569476155485),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 3932.89353979531632559232883283175754),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 169.845369689596739824177412096477219),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 2.17607292280092201170768401876895354)
-      };
-      T recip = 1 / z;
-      result = Y + tools::evaluate_polynomial(P, recip)
-         / tools::evaluate_polynomial(Q, recip);
-      result *= exp(-z) * recip;
-   }
-   else if(z < -boost::math::tools::log_min_value<T>())
-   {
-      // Max error in interpolated form:             4.413e-35
-      // Max error found at long double precision:   8.928e-35
-
-      static const T P[19] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.559148411832951463689610809550083986e-40),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.999999999999999999999999999999999997),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -166.542326331163836642960118190147367),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -12204.639128796330005065904675153652),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -520807.069767086071806275022036146855),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -14435981.5242137970691490903863125326),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -274574945.737064301247496460758654196),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -3691611582.99810039356254671781473079),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -35622515944.8255047299363690814678763),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -248040014774.502043161750715548451142),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -1243190389769.53458416330946622607913),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -4441730126135.54739052731990368425339),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -11117043181899.7388524310281751971366),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -18976497615396.9717776601813519498961),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -21237496819711.1011661104761906067131),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -14695899122092.5161620333466757812848),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -5737221535080.30569711574295785864903),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -1077042281708.42654526404581272546244),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -68028222642.1941480871395695677675137)
-      };
-      static const T Q[20] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 113, 1),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 168.542326331163836642960118190147311),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 12535.7237814586576783518249115343619),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 544891.263372016404143120911148640627),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 15454474.7241010258634446523045237762),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 302495899.896629522673410325891717381),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 4215565948.38886507646911672693270307),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 42552409471.7951815668506556705733344),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 313592377066.753173979584098301610186),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 1688763640223.4541980740597514904542),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 6610992294901.59589748057620192145704),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 18601637235659.6059890851321772682606),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 36944278231087.2571020964163402941583),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 50425858518481.7497071917028793820058),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 45508060902865.0899967797848815980644),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 25649955002765.3817331501988304758142),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 8259575619094.6518520988612711292331),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 1299981487496.12607474362723586264515),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 70242279152.8241187845178443118302693),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -37633302.9409263839042721539363416685)
-      };
-      T recip = 1 / z;
-      result = 1 + tools::evaluate_polynomial(P, recip)
-         / tools::evaluate_polynomial(Q, recip);
-      result *= exp(-z) * recip;
-   }
-   else
-   {
-      result = 0;
-   }
-   return result;
-}
-
-template <class T>
-struct expint_fraction
-{
-   typedef std::pair<T,T> result_type;
-   expint_fraction(unsigned n_, T z_) : b(n_ + z_), i(-1), n(n_){}
-   std::pair<T,T> operator()()
-   {
-      std::pair<T,T> result = std::make_pair(-static_cast<T>((i+1) * (n+i)), b);
-      b += 2;
-      ++i;
-      return result;
-   }
-private:
-   T b;
-   int i;
-   unsigned n;
-};
-
-template <class T, class Policy>
-inline T expint_as_fraction(unsigned n, T z, const Policy& pol)
-{
-   BOOST_MATH_STD_USING
-   BOOST_MATH_INSTRUMENT_VARIABLE(z)
-   boost::uintmax_t max_iter = policies::get_max_series_iterations<Policy>();
-   expint_fraction<T> f(n, z);
-   T result = tools::continued_fraction_b(
-      f, 
-      boost::math::policies::get_epsilon<T, Policy>(),
-      max_iter);
-   policies::check_series_iterations<T>("boost::math::expint_continued_fraction<%1%>(unsigned,%1%)", max_iter, pol);
-   BOOST_MATH_INSTRUMENT_VARIABLE(result)
-   BOOST_MATH_INSTRUMENT_VARIABLE(max_iter)
-   result = exp(-z) / result;
-   BOOST_MATH_INSTRUMENT_VARIABLE(result)
-   return result;
-}
-
-template <class T>
-struct expint_series
-{
-   typedef T result_type;
-   expint_series(unsigned k_, T z_, T x_k_, T denom_, T fact_) 
-      : k(k_), z(z_), x_k(x_k_), denom(denom_), fact(fact_){}
-   T operator()()
-   {
-      x_k *= -z;
-      denom += 1;
-      fact *= ++k;
-      return x_k / (denom * fact);
-   }
-private:
-   unsigned k;
-   T z;
-   T x_k;
-   T denom;
-   T fact;
-};
-
-template <class T, class Policy>
-inline T expint_as_series(unsigned n, T z, const Policy& pol)
-{
-   BOOST_MATH_STD_USING
-   boost::uintmax_t max_iter = policies::get_max_series_iterations<Policy>();
-
-   BOOST_MATH_INSTRUMENT_VARIABLE(z)
-
-   T result = 0;
-   T x_k = -1;
-   T denom = T(1) - n;
-   T fact = 1;
-   unsigned k = 0;
-   for(; k < n - 1;)
-   {
-      result += x_k / (denom * fact);
-      denom += 1;
-      x_k *= -z;
-      fact *= ++k;
-   }
-   BOOST_MATH_INSTRUMENT_VARIABLE(result)
-   result += pow(-z, static_cast<T>(n - 1)) 
-      * (boost::math::digamma(static_cast<T>(n)) - log(z)) / fact;
-   BOOST_MATH_INSTRUMENT_VARIABLE(result)
-
-   expint_series<T> s(k, z, x_k, denom, fact);
-   result = tools::sum_series(s, policies::get_epsilon<T, Policy>(), max_iter, result);
-   policies::check_series_iterations<T>("boost::math::expint_series<%1%>(unsigned,%1%)", max_iter, pol);
-   BOOST_MATH_INSTRUMENT_VARIABLE(result)
-   BOOST_MATH_INSTRUMENT_VARIABLE(max_iter)
-   return result;
-}
-
-template <class T, class Policy, class Tag>
-T expint_imp(unsigned n, T z, const Policy& pol, const Tag& tag)
-{
-   BOOST_MATH_STD_USING
-   static const char* function = "boost::math::expint<%1%>(unsigned, %1%)";
-   if(z < 0)
-      return policies::raise_domain_error<T>(function, "Function requires z >= 0 but got %1%.", z, pol);
-   if(z == 0)
-      return n == 1 ? policies::raise_overflow_error<T>(function, 0, pol) : T(1 / (static_cast<T>(n - 1)));
-
-   T result;
-
-   bool f;
-   if(n < 3)
-   {
-      f = z < 0.5;
-   }
-   else
-   {
-      f = z < (static_cast<T>(n - 2) / static_cast<T>(n - 1));
-   }
-#ifdef BOOST_MSVC
-#  pragma warning(push)
-#  pragma warning(disable:4127) // conditional expression is constant
-#endif
-   if(n == 0)
-      result = exp(-z) / z;
-   else if((n == 1) && (Tag::value))
-   {
-      result = expint_1_rational(z, tag);
-   }
-   else if(f)
-      result = expint_as_series(n, z, pol);
-   else
-      result = expint_as_fraction(n, z, pol);
-#ifdef BOOST_MSVC
-#  pragma warning(pop)
-#endif
-
-   return result;
-}
-
-template <class T>
-struct expint_i_series
-{
-   typedef T result_type;
-   expint_i_series(T z_) : k(0), z_k(1), z(z_){}
-   T operator()()
-   {
-      z_k *= z / ++k;
-      return z_k / k;
-   }
-private:
-   unsigned k;
-   T z_k;
-   T z;
-};
-
-template <class T, class Policy>
-T expint_i_as_series(T z, const Policy& pol)
-{
-   BOOST_MATH_STD_USING
-   T result = log(z); // (log(z) - log(1 / z)) / 2;
-   result += constants::euler<T>();
-   expint_i_series<T> s(z);
-   boost::uintmax_t max_iter = policies::get_max_series_iterations<Policy>();
-   result = tools::sum_series(s, policies::get_epsilon<T, Policy>(), max_iter, result);
-   policies::check_series_iterations<T>("boost::math::expint_i_series<%1%>(%1%)", max_iter, pol);
-   return result;
-}
-
-template <class T, class Policy, class Tag>
-T expint_i_imp(T z, const Policy& pol, const Tag& tag)
-{
-   static const char* function = "boost::math::expint<%1%>(%1%)";
-   if(z < 0)
-      return -expint_imp(1, T(-z), pol, tag);
-   if(z == 0)
-      return -policies::raise_overflow_error<T>(function, 0, pol);
-   return expint_i_as_series(z, pol);
-}
-
-template <class T, class Policy>
-T expint_i_imp(T z, const Policy& pol, const mpl::int_<53>& tag)
-{
-   BOOST_MATH_STD_USING
-   static const char* function = "boost::math::expint<%1%>(%1%)";
-   if(z < 0)
-      return -expint_imp(1, T(-z), pol, tag);
-   if(z == 0)
-      return -policies::raise_overflow_error<T>(function, 0, pol);
-
-   T result;
-
-   if(z <= 6)
-   {
-      // Maximum Deviation Found:                     2.852e-18
-      // Expected Error Term:                         2.852e-18
-      // Max Error found at double precision =        Poly: 2.636335e-16   Cheb: 4.187027e-16
-      static const T P[10] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 53, 2.98677224343598593013),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 0.356343618769377415068),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 0.780836076283730801839),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 0.114670926327032002811),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 0.0499434773576515260534),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 0.00726224593341228159561),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 0.00115478237227804306827),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 0.000116419523609765200999),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 0.798296365679269702435e-5),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 0.2777056254402008721e-6)
-      };
-      static const T Q[8] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 53, 1),
-         BOOST_MATH_BIG_CONSTANT(T, 53, -1.17090412365413911947),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 0.62215109846016746276),
-         BOOST_MATH_BIG_CONSTANT(T, 53, -0.195114782069495403315),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 0.0391523431392967238166),
-         BOOST_MATH_BIG_CONSTANT(T, 53, -0.00504800158663705747345),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 0.000389034007436065401822),
-         BOOST_MATH_BIG_CONSTANT(T, 53, -0.138972589601781706598e-4)
-      };
-
-      static const T c1 = BOOST_MATH_BIG_CONSTANT(T, 53, 1677624236387711.0);
-      static const T c2 = BOOST_MATH_BIG_CONSTANT(T, 53, 4503599627370496.0);
-      static const T r1 = static_cast<T>(c1 / c2);
-      static const T r2 = BOOST_MATH_BIG_CONSTANT(T, 53, 0.131401834143860282009280387409357165515556574352422001206362e-16);
-      static const T r = static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 53, 0.372507410781366634461991866580119133535689497771654051555657435242200120636201854384926049951548942392));
-      T t = (z / 3) - 1;
-      result = tools::evaluate_polynomial(P, t) 
-         / tools::evaluate_polynomial(Q, t);
-      t = (z - r1) - r2;
-      result *= t;
-      if(fabs(t) < 0.1)
-      {
-         result += boost::math::log1p(t / r);
-      }
-      else
-      {
-         result += log(z / r);
-      }
-   }
-   else if (z <= 10)
-   {
-      // Maximum Deviation Found:                     6.546e-17
-      // Expected Error Term:                         6.546e-17
-      // Max Error found at double precision =        Poly: 6.890169e-17   Cheb: 6.772128e-17
-      static const T Y = 1.158985137939453125F;
-      static const T P[8] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 53, 0.00139324086199402804173),
-         BOOST_MATH_BIG_CONSTANT(T, 53, -0.0349921221823888744966),
-         BOOST_MATH_BIG_CONSTANT(T, 53, -0.0264095520754134848538),
-         BOOST_MATH_BIG_CONSTANT(T, 53, -0.00761224003005476438412),
-         BOOST_MATH_BIG_CONSTANT(T, 53, -0.00247496209592143627977),
-         BOOST_MATH_BIG_CONSTANT(T, 53, -0.000374885917942100256775),
-         BOOST_MATH_BIG_CONSTANT(T, 53, -0.554086272024881826253e-4),
-         BOOST_MATH_BIG_CONSTANT(T, 53, -0.396487648924804510056e-5)
-      };
-      static const T Q[8] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 53, 1),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 0.744625566823272107711),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 0.329061095011767059236),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 0.100128624977313872323),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 0.0223851099128506347278),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 0.00365334190742316650106),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 0.000402453408512476836472),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 0.263649630720255691787e-4)
-      };
-      T t = z / 2 - 4;
-      result = Y + tools::evaluate_polynomial(P, t)
-         / tools::evaluate_polynomial(Q, t);
-      result *= exp(z) / z;
-      result += z;
-   }
-   else if(z <= 20)
-   {
-      // Maximum Deviation Found:                     1.843e-17
-      // Expected Error Term:                         -1.842e-17
-      // Max Error found at double precision =        Poly: 4.375868e-17   Cheb: 5.860967e-17
-
-      static const T Y = 1.0869731903076171875F;
-      static const T P[9] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 53, -0.00893891094356945667451),
-         BOOST_MATH_BIG_CONSTANT(T, 53, -0.0484607730127134045806),
-         BOOST_MATH_BIG_CONSTANT(T, 53, -0.0652810444222236895772),
-         BOOST_MATH_BIG_CONSTANT(T, 53, -0.0478447572647309671455),
-         BOOST_MATH_BIG_CONSTANT(T, 53, -0.0226059218923777094596),
-         BOOST_MATH_BIG_CONSTANT(T, 53, -0.00720603636917482065907),
-         BOOST_MATH_BIG_CONSTANT(T, 53, -0.00155941947035972031334),
-         BOOST_MATH_BIG_CONSTANT(T, 53, -0.000209750022660200888349),
-         BOOST_MATH_BIG_CONSTANT(T, 53, -0.138652200349182596186e-4)
-      };
-      static const T Q[9] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 53, 1),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 1.97017214039061194971),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 1.86232465043073157508),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 1.09601437090337519977),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 0.438873285773088870812),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 0.122537731979686102756),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 0.0233458478275769288159),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 0.00278170769163303669021),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 0.000159150281166108755531)
-      };
-      T t = z / 5 - 3;
-      result = Y + tools::evaluate_polynomial(P, t)
-         / tools::evaluate_polynomial(Q, t);
-      result *= exp(z) / z;
-      result += z;
-   }
-   else if(z <= 40)
-   {
-      // Maximum Deviation Found:                     5.102e-18
-      // Expected Error Term:                         5.101e-18
-      // Max Error found at double precision =        Poly: 1.441088e-16   Cheb: 1.864792e-16
-
-
-      static const T Y = 1.03937530517578125F;
-      static const T P[9] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 53, -0.00356165148914447597995),
-         BOOST_MATH_BIG_CONSTANT(T, 53, -0.0229930320357982333406),
-         BOOST_MATH_BIG_CONSTANT(T, 53, -0.0449814350482277917716),
-         BOOST_MATH_BIG_CONSTANT(T, 53, -0.0453759383048193402336),
-         BOOST_MATH_BIG_CONSTANT(T, 53, -0.0272050837209380717069),
-         BOOST_MATH_BIG_CONSTANT(T, 53, -0.00994403059883350813295),
-         BOOST_MATH_BIG_CONSTANT(T, 53, -0.00207592267812291726961),
-         BOOST_MATH_BIG_CONSTANT(T, 53, -0.000192178045857733706044),
-         BOOST_MATH_BIG_CONSTANT(T, 53, -0.113161784705911400295e-9)
-      };
-      static const T Q[9] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 53, 1),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 2.84354408840148561131),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 3.6599610090072393012),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 2.75088464344293083595),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 1.2985244073998398643),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 0.383213198510794507409),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 0.0651165455496281337831),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 0.00488071077519227853585)
-      };
-      T t = z / 10 - 3;
-      result = Y + tools::evaluate_polynomial(P, t)
-         / tools::evaluate_polynomial(Q, t);
-      result *= exp(z) / z;
-      result += z;
-   }
-   else
-   {
-      // Max Error found at double precision =        3.381886e-17
-      static const T exp40 = static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 53, 2.35385266837019985407899910749034804508871617254555467236651e17));
-      static const T Y= 1.013065338134765625F;
-      static const T P[6] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 53, -0.0130653381347656243849),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 0.19029710559486576682),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 94.7365094537197236011),
-         BOOST_MATH_BIG_CONSTANT(T, 53, -2516.35323679844256203),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 18932.0850014925993025),
-         BOOST_MATH_BIG_CONSTANT(T, 53, -38703.1431362056714134)
-      };
-      static const T Q[7] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 53, 1),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 61.9733592849439884145),
-         BOOST_MATH_BIG_CONSTANT(T, 53, -2354.56211323420194283),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 22329.1459489893079041),
-         BOOST_MATH_BIG_CONSTANT(T, 53, -70126.245140396567133),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 54738.2833147775537106),
-         BOOST_MATH_BIG_CONSTANT(T, 53, 8297.16296356518409347)
-      };
-      T t = 1 / z;
-      result = Y + tools::evaluate_polynomial(P, t)
-         / tools::evaluate_polynomial(Q, t);
-      if(z < 41)
-         result *= exp(z) / z;
-      else
-      {
-         // Avoid premature overflow if we can:
-         t = z - 40;
-         if(t > tools::log_max_value<T>())
-         {
-            result = policies::raise_overflow_error<T>(function, 0, pol);
-         }
-         else
-         {
-            result *= exp(z - 40) / z;
-            if(result > tools::max_value<T>() / exp40)
-            {
-               result = policies::raise_overflow_error<T>(function, 0, pol);
-            }
-            else
-            {
-               result *= exp40;
-            }
-         }
-      }
-      result += z;
-   }
-   return result;
-}
-
-template <class T, class Policy>
-T expint_i_imp(T z, const Policy& pol, const mpl::int_<64>& tag)
-{
-   BOOST_MATH_STD_USING
-   static const char* function = "boost::math::expint<%1%>(%1%)";
-   if(z < 0)
-      return -expint_imp(1, T(-z), pol, tag);
-   if(z == 0)
-      return -policies::raise_overflow_error<T>(function, 0, pol);
-
-   T result;
-
-   if(z <= 6)
-   {
-      // Maximum Deviation Found:                     3.883e-21
-      // Expected Error Term:                         3.883e-21
-      // Max Error found at long double precision =   Poly: 3.344801e-19   Cheb: 4.989937e-19
-
-      static const T P[11] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 64, 2.98677224343598593764),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.25891613550886736592),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.789323584998672832285),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.092432587824602399339),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.0514236978728625906656),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.00658477469745132977921),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.00124914538197086254233),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.000131429679565472408551),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.11293331317982763165e-4),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.629499283139417444244e-6),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.177833045143692498221e-7)
-      };
-      static const T Q[9] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 64, 1),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -1.20352377969742325748),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.66707904942606479811),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.223014531629140771914),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.0493340022262908008636),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.00741934273050807310677),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.00074353567782087939294),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.455861727069603367656e-4),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.131515429329812837701e-5)
-      };
-
-      static const T c1 = BOOST_MATH_BIG_CONSTANT(T, 64, 1677624236387711.0);
-      static const T c2 = BOOST_MATH_BIG_CONSTANT(T, 64, 4503599627370496.0);
-      static const T r1 = c1 / c2;
-      static const T r2 = BOOST_MATH_BIG_CONSTANT(T, 64, 0.131401834143860282009280387409357165515556574352422001206362e-16);
-      static const T r = static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.372507410781366634461991866580119133535689497771654051555657435242200120636201854384926049951548942392));
-      T t = (z / 3) - 1;
-      result = tools::evaluate_polynomial(P, t) 
-         / tools::evaluate_polynomial(Q, t);
-      t = (z - r1) - r2;
-      result *= t;
-      if(fabs(t) < 0.1)
-      {
-         result += boost::math::log1p(t / r);
-      }
-      else
-      {
-         result += log(z / r);
-      }
-   }
-   else if (z <= 10)
-   {
-      // Maximum Deviation Found:                     2.622e-21
-      // Expected Error Term:                         -2.622e-21
-      // Max Error found at long double precision =   Poly: 1.208328e-20   Cheb: 1.073723e-20
-
-      static const T Y = 1.158985137939453125F;
-      static const T P[9] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.00139324086199409049399),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.0345238388952337563247),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.0382065278072592940767),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.0156117003070560727392),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.00383276012430495387102),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.000697070540945496497992),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.877310384591205930343e-4),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.623067256376494930067e-5),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.377246883283337141444e-6)
-      };
-      static const T Q[10] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 64, 1),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 1.08073635708902053767),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.553681133533942532909),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.176763647137553797451),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.0387891748253869928121),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.0060603004848394727017),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.000670519492939992806051),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.4947357050100855646e-4),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.204339282037446434827e-5),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.146951181174930425744e-7)
-      };
-      T t = z / 2 - 4;
-      result = Y + tools::evaluate_polynomial(P, t)
-         / tools::evaluate_polynomial(Q, t);
-      result *= exp(z) / z;
-      result += z;
-   }
-   else if(z <= 20)
-   {
-      // Maximum Deviation Found:                     3.220e-20
-      // Expected Error Term:                         3.220e-20
-      // Max Error found at long double precision =   Poly: 7.696841e-20   Cheb: 6.205163e-20
-
-
-      static const T Y = 1.0869731903076171875F;
-      static const T P[10] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.00893891094356946995368),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.0487562980088748775943),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.0670568657950041926085),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.0509577352851442932713),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.02551800927409034206),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.00892913759760086687083),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.00224469630207344379888),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.000392477245911296982776),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.44424044184395578775e-4),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.252788029251437017959e-5)
-      };
-      static const T Q[10] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 64, 1),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 2.00323265503572414261),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 1.94688958187256383178),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 1.19733638134417472296),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.513137726038353385661),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.159135395578007264547),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.0358233587351620919881),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.0056716655597009417875),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.000577048986213535829925),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.290976943033493216793e-4)
-      };
-      T t = z / 5 - 3;
-      result = Y + tools::evaluate_polynomial(P, t)
-         / tools::evaluate_polynomial(Q, t);
-      result *= exp(z) / z;
-      result += z;
-   }
-   else if(z <= 40)
-   {
-      // Maximum Deviation Found:                     2.940e-21
-      // Expected Error Term:                         -2.938e-21
-      // Max Error found at long double precision =   Poly: 3.419893e-19   Cheb: 3.359874e-19
-
-      static const T Y = 1.03937530517578125F;
-      static const T P[12] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.00356165148914447278177),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.0240235006148610849678),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.0516699967278057976119),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.0586603078706856245674),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.0409960120868776180825),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.0185485073689590665153),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.00537842101034123222417),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.000920988084778273760609),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.716742618812210980263e-4),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.504623302166487346677e-9),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.712662196671896837736e-10),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.533769629702262072175e-11)
-      };
-      static const T Q[9] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 64, 1),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 3.13286733695729715455),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 4.49281223045653491929),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 3.84900294427622911374),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 2.15205199043580378211),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.802912186540269232424),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.194793170017818925388),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.0280128013584653182994),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.00182034930799902922549)
-      };
-      T t = z / 10 - 3;
-      result = Y + tools::evaluate_polynomial(P, t)
-         / tools::evaluate_polynomial(Q, t);
-      BOOST_MATH_INSTRUMENT_VARIABLE(result)
-      result *= exp(z) / z;
-      BOOST_MATH_INSTRUMENT_VARIABLE(result)
-      result += z;
-      BOOST_MATH_INSTRUMENT_VARIABLE(result)
-   }
-   else
-   {
-      // Maximum Deviation Found:                     3.536e-20
-      // Max Error found at long double precision =   Poly: 1.310671e-19   Cheb: 8.630943e-11
-
-      static const T exp40 = static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 2.35385266837019985407899910749034804508871617254555467236651e17));
-      static const T Y= 1.013065338134765625F;
-      static const T P[9] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.0130653381347656250004),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.644487780349757303739),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 143.995670348227433964),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -13918.9322758014173709),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 476260.975133624194484),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -7437102.15135982802122),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 53732298.8764767916542),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -160695051.957997452509),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 137839271.592778020028)
-      };
-      static const T Q[9] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 64, 1),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 27.2103343964943718802),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -8785.48528692879413676),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 397530.290000322626766),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -7356441.34957799368252),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 63050914.5343400957524),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -246143779.638307701369),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 384647824.678554961174),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -166288297.874583961493)
-      };
-      T t = 1 / z;
-      result = Y + tools::evaluate_polynomial(P, t)
-         / tools::evaluate_polynomial(Q, t);
-      if(z < 41)
-         result *= exp(z) / z;
-      else
-      {
-         // Avoid premature overflow if we can:
-         t = z - 40;
-         if(t > tools::log_max_value<T>())
-         {
-            result = policies::raise_overflow_error<T>(function, 0, pol);
-         }
-         else
-         {
-            result *= exp(z - 40) / z;
-            if(result > tools::max_value<T>() / exp40)
-            {
-               result = policies::raise_overflow_error<T>(function, 0, pol);
-            }
-            else
-            {
-               result *= exp40;
-            }
-         }
-      }
-      result += z;
-   }
-   return result;
-}
-
-template <class T>
-void expint_i_imp_113a(T& result, const T& z)
-{
-   BOOST_MATH_STD_USING
-   // Maximum Deviation Found:                     1.230e-36
-   // Expected Error Term:                         -1.230e-36
-   // Max Error found at long double precision =   Poly: 4.355299e-34   Cheb: 7.512581e-34
-
-
-   static const T P[15] = {    
-      BOOST_MATH_BIG_CONSTANT(T, 113, 2.98677224343598593765287235997328555),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.333256034674702967028780537349334037),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.851831522798101228384971644036708463),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.0657854833494646206186773614110374948),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.0630065662557284456000060708977935073),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.00311759191425309373327784154659649232),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.00176213568201493949664478471656026771),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.491548660404172089488535218163952295e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.207764227621061706075562107748176592e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.225445398156913584846374273379402765e-6),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.996939977231410319761273881672601592e-7),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.212546902052178643330520878928100847e-9),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.154646053060262871360159325115980023e-9),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.143971277122049197323415503594302307e-11),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.306243138978114692252817805327426657e-13)
-   };
-   static const T Q[15] = {    
-      BOOST_MATH_BIG_CONSTANT(T, 113, 1),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -1.40178870313943798705491944989231793),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.943810968269701047641218856758605284),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.405026631534345064600850391026113165),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.123924153524614086482627660399122762),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.0286364505373369439591132549624317707),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.00516148845910606985396596845494015963),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.000738330799456364820380739850924783649),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.843737760991856114061953265870882637e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.767957673431982543213661388914587589e-5),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.549136847313854595809952100614840031e-6),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.299801381513743676764008325949325404e-7),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.118419479055346106118129130945423483e-8),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.30372295663095470359211949045344607e-10),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.382742953753485333207877784720070523e-12)
-   };
-
-   static const T c1 = BOOST_MATH_BIG_CONSTANT(T, 113, 1677624236387711.0);
-   static const T c2 = BOOST_MATH_BIG_CONSTANT(T, 113, 4503599627370496.0);
-   static const T c3 = BOOST_MATH_BIG_CONSTANT(T, 113, 266514582277687.0);
-   static const T c4 = BOOST_MATH_BIG_CONSTANT(T, 113, 4503599627370496.0);
-   static const T c5 = BOOST_MATH_BIG_CONSTANT(T, 113, 4503599627370496.0);
-   static const T r1 = c1 / c2;
-   static const T r2 = c3 / c4 / c5;
-   static const T r3 = static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 0.283806480836357377069325311780969887585024578164571984232357e-31));
-   static const T r = static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 0.372507410781366634461991866580119133535689497771654051555657435242200120636201854384926049951548942392));
-   T t = (z / 3) - 1;
-   result = tools::evaluate_polynomial(P, t) 
-      / tools::evaluate_polynomial(Q, t);
-   t = ((z - r1) - r2) - r3;
-   result *= t;
-   if(fabs(t) < 0.1)
-   {
-      result += boost::math::log1p(t / r);
-   }
-   else
-   {
-      result += log(z / r);
-   }
-}
-
-template <class T>
-void expint_i_113b(T& result, const T& z)
-{
-   BOOST_MATH_STD_USING
-   // Maximum Deviation Found:                     7.779e-36
-   // Expected Error Term:                         -7.779e-36
-   // Max Error found at long double precision =   Poly: 2.576723e-35   Cheb: 1.236001e-34
-
-   static const T Y = 1.158985137939453125F;
-   static const T P[15] = {    
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.00139324086199409049282472239613554817),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.0338173111691991289178779840307998955),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.0555972290794371306259684845277620556),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.0378677976003456171563136909186202177),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.0152221583517528358782902783914356667),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.00428283334203873035104248217403126905),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.000922782631491644846511553601323435286),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.000155513428088853161562660696055496696),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.205756580255359882813545261519317096e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.220327406578552089820753181821115181e-5),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.189483157545587592043421445645377439e-6),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.122426571518570587750898968123803867e-7),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.635187358949437991465353268374523944e-9),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.203015132965870311935118337194860863e-10),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.384276705503357655108096065452950822e-12)
-   };
-   static const T Q[15] = {    
-      BOOST_MATH_BIG_CONSTANT(T, 113, 1),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 1.58784732785354597996617046880946257),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 1.18550755302279446339364262338114098),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.55598993549661368604527040349702836),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.184290888380564236919107835030984453),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.0459658051803613282360464632326866113),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.0089505064268613225167835599456014705),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.00139042673882987693424772855926289077),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.000174210708041584097450805790176479012),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.176324034009707558089086875136647376e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.142935845999505649273084545313710581e-5),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.907502324487057260675816233312747784e-7),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.431044337808893270797934621235918418e-8),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.139007266881450521776529705677086902e-9),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.234715286125516430792452741830364672e-11)
-   };
-   T t = z / 2 - 4;
-   result = Y + tools::evaluate_polynomial(P, t)
-      / tools::evaluate_polynomial(Q, t);
-   result *= exp(z) / z;
-   result += z;
-}
-
-template <class T>
-void expint_i_113c(T& result, const T& z)
-{
-   BOOST_MATH_STD_USING
-   // Maximum Deviation Found:                     1.082e-34
-   // Expected Error Term:                         1.080e-34
-   // Max Error found at long double precision =   Poly: 1.958294e-34   Cheb: 2.472261e-34
-
-
-   static const T Y = 1.091579437255859375F;
-   static const T P[17] = {    
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.00685089599550151282724924894258520532),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.0443313550253580053324487059748497467),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.071538561252424027443296958795814874),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.0622923153354102682285444067843300583),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.0361631270264607478205393775461208794),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.0153192826839624850298106509601033261),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.00496967904961260031539602977748408242),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.00126989079663425780800919171538920589),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.000258933143097125199914724875206326698),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.422110326689204794443002330541441956e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.546004547590412661451073996127115221e-5),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.546775260262202177131068692199272241e-6),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.404157632825805803833379568956559215e-7),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.200612596196561323832327013027419284e-8),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.502538501472133913417609379765434153e-10),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.326283053716799774936661568391296584e-13),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.869226483473172853557775877908693647e-15)
-   };
-   static const T Q[15] = {    
-      BOOST_MATH_BIG_CONSTANT(T, 113, 1),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 2.23227220874479061894038229141871087),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 2.40221000361027971895657505660959863),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 1.65476320985936174728238416007084214),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.816828602963895720369875535001248227),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.306337922909446903672123418670921066),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.0902400121654409267774593230720600752),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.0212708882169429206498765100993228086),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.00404442626252467471957713495828165491),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.0006195601618842253612635241404054589),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.755930932686543009521454653994321843e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.716004532773778954193609582677482803e-5),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.500881663076471627699290821742924233e-6),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.233593219218823384508105943657387644e-7),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.554900353169148897444104962034267682e-9)
-   };
-   T t = z / 4 - 3.5;
-   result = Y + tools::evaluate_polynomial(P, t)
-      / tools::evaluate_polynomial(Q, t);
-   result *= exp(z) / z;
-   result += z;
-}
-
-template <class T>
-void expint_i_113d(T& result, const T& z)
-{
-   BOOST_MATH_STD_USING
-   // Maximum Deviation Found:                     3.163e-35
-   // Expected Error Term:                         3.163e-35
-   // Max Error found at long double precision =   Poly: 4.158110e-35   Cheb: 5.385532e-35
-
-   static const T Y = 1.051731109619140625F;
-   static const T P[14] = {    
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.00144552494420652573815404828020593565),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.0126747451594545338365684731262912741),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.01757394877502366717526779263438073),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.0126838952395506921945756139424722588),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.0060045057928894974954756789352443522),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.00205349237147226126653803455793107903),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.000532606040579654887676082220195624207),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.000107344687098019891474772069139014662),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.169536802705805811859089949943435152e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.20863311729206543881826553010120078e-5),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.195670358542116256713560296776654385e-6),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.133291168587253145439184028259772437e-7),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.595500337089495614285777067722823397e-9),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.133141358866324100955927979606981328e-10)
-   };
-   static const T Q[14] = {    
-      BOOST_MATH_BIG_CONSTANT(T, 113, 1),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 1.72490783907582654629537013560044682),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 1.44524329516800613088375685659759765),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.778241785539308257585068744978050181),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.300520486589206605184097270225725584),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.0879346899691339661394537806057953957),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.0200802415843802892793583043470125006),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.00362842049172586254520256100538273214),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.000519731362862955132062751246769469957),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.584092147914050999895178697392282665e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.501851497707855358002773398333542337e-5),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.313085677467921096644895738538865537e-6),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.127552010539733113371132321521204458e-7),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.25737310826983451144405899970774587e-9)
-   };
-   T t = z / 4 - 5.5;
-   result = Y + tools::evaluate_polynomial(P, t)
-      / tools::evaluate_polynomial(Q, t);
-   BOOST_MATH_INSTRUMENT_VARIABLE(result)
-   result *= exp(z) / z;
-   BOOST_MATH_INSTRUMENT_VARIABLE(result)
-   result += z;
-   BOOST_MATH_INSTRUMENT_VARIABLE(result)
-}
-
-template <class T>
-void expint_i_113e(T& result, const T& z)
-{
-   BOOST_MATH_STD_USING
-   // Maximum Deviation Found:                     7.972e-36
-   // Expected Error Term:                         7.962e-36
-   // Max Error found at long double precision =   Poly: 1.711721e-34   Cheb: 3.100018e-34
-
-   static const T Y = 1.032726287841796875F;
-   static const T P[15] = {    
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.00141056919297307534690895009969373233),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.0123384175302540291339020257071411437),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.0298127270706864057791526083667396115),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.0390686759471630584626293670260768098),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.0338226792912607409822059922949035589),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.0211659736179834946452561197559654582),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.0100428887460879377373158821400070313),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.00370717396015165148484022792801682932),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.0010768667551001624764329000496561659),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.000246127328761027039347584096573123531),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.437318110527818613580613051861991198e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.587532682329299591501065482317771497e-5),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.565697065670893984610852937110819467e-6),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.350233957364028523971768887437839573e-7),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.105428907085424234504608142258423505e-8)
-   };
-   static const T Q[16] = {    
-      BOOST_MATH_BIG_CONSTANT(T, 113, 1),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 3.17261315255467581204685605414005525),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 4.85267952971640525245338392887217426),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 4.74341914912439861451492872946725151),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 3.31108463283559911602405970817931801),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 1.74657006336994649386607925179848899),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.718255607416072737965933040353653244),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.234037553177354542791975767960643864),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.0607470145906491602476833515412605389),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.0125048143774226921434854172947548724),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.00201034366420433762935768458656609163),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.000244823338417452367656368849303165721),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.213511655166983177960471085462540807e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.119323998465870686327170541547982932e-5),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.322153582559488797803027773591727565e-7),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.161635525318683508633792845159942312e-16)
-   };
-   T t = z / 8 - 4.25;
-   result = Y + tools::evaluate_polynomial(P, t)
-      / tools::evaluate_polynomial(Q, t);
-   BOOST_MATH_INSTRUMENT_VARIABLE(result)
-   result *= exp(z) / z;
-   BOOST_MATH_INSTRUMENT_VARIABLE(result)
-   result += z;
-   BOOST_MATH_INSTRUMENT_VARIABLE(result)
-}
-
-template <class T>
-void expint_i_113f(T& result, const T& z)
-{
-   BOOST_MATH_STD_USING
-   // Maximum Deviation Found:                     4.469e-36
-   // Expected Error Term:                         4.468e-36
-   // Max Error found at long double precision =   Poly: 1.288958e-35   Cheb: 2.304586e-35
-
-   static const T Y = 1.0216197967529296875F;
-   static const T P[12] = {    
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.000322999116096627043476023926572650045),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.00385606067447365187909164609294113346),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.00686514524727568176735949971985244415),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.00606260649593050194602676772589601799),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.00334382362017147544335054575436194357),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.00126108534260253075708625583630318043),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.000337881489347846058951220431209276776),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.648480902304640018785370650254018022e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.87652644082970492211455290209092766e-5),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.794712243338068631557849449519994144e-6),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.434084023639508143975983454830954835e-7),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.107839681938752337160494412638656696e-8)
-   };
-   static const T Q[12] = {    
-      BOOST_MATH_BIG_CONSTANT(T, 113, 1),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 2.09913805456661084097134805151524958),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 2.07041755535439919593503171320431849),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 1.26406517226052371320416108604874734),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.529689923703770353961553223973435569),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.159578150879536711042269658656115746),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.0351720877642000691155202082629857131),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.00565313621289648752407123620997063122),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.000646920278540515480093843570291218295),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.499904084850091676776993523323213591e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.233740058688179614344680531486267142e-5),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.498800627828842754845418576305379469e-7)
-   };
-   T t = z / 7 - 7;
-   result = Y + tools::evaluate_polynomial(P, t)
-      / tools::evaluate_polynomial(Q, t);
-   BOOST_MATH_INSTRUMENT_VARIABLE(result)
-   result *= exp(z) / z;
-   BOOST_MATH_INSTRUMENT_VARIABLE(result)
-   result += z;
-   BOOST_MATH_INSTRUMENT_VARIABLE(result)
-}
-
-template <class T>
-void expint_i_113g(T& result, const T& z)
-{
-   BOOST_MATH_STD_USING
-   // Maximum Deviation Found:                     5.588e-35
-   // Expected Error Term:                         -5.566e-35
-   // Max Error found at long double precision =   Poly: 9.976345e-35   Cheb: 8.358865e-35
-
-   static const T Y = 1.015148162841796875F;
-   static const T P[11] = {    
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.000435714784725086961464589957142615216),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.00432114324353830636009453048419094314),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.0100740363285526177522819204820582424),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.0116744115827059174392383504427640362),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.00816145387784261141360062395898644652),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.00371380272673500791322744465394211508),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.00112958263488611536502153195005736563),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.000228316462389404645183269923754256664),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.29462181955852860250359064291292577e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.21972450610957417963227028788460299e-5),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.720558173805289167524715527536874694e-7)
-   };
-   static const T Q[11] = {    
-      BOOST_MATH_BIG_CONSTANT(T, 113, 1),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 2.95918362458402597039366979529287095),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 3.96472247520659077944638411856748924),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 3.15563251550528513747923714884142131),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 1.64674612007093983894215359287448334),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.58695020129846594405856226787156424),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.144358385319329396231755457772362793),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.024146911506411684815134916238348063),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.0026257132337460784266874572001650153),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.000167479843750859222348869769094711093),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.475673638665358075556452220192497036e-5)
-   };
-   T t = z / 14 - 5;
-   result = Y + tools::evaluate_polynomial(P, t)
-      / tools::evaluate_polynomial(Q, t);
-   BOOST_MATH_INSTRUMENT_VARIABLE(result)
-   result *= exp(z) / z;
-   BOOST_MATH_INSTRUMENT_VARIABLE(result)
-   result += z;
-   BOOST_MATH_INSTRUMENT_VARIABLE(result)
-}
-
-template <class T>
-void expint_i_113h(T& result, const T& z)
-{
-   BOOST_MATH_STD_USING
-   // Maximum Deviation Found:                     4.448e-36
-   // Expected Error Term:                         4.445e-36
-   // Max Error found at long double precision =   Poly: 2.058532e-35   Cheb: 2.165465e-27
-
-   static const T Y= 1.00849151611328125F;
-   static const T P[9] = {    
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.0084915161132812500000001440233607358),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 1.84479378737716028341394223076147872),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -130.431146923726715674081563022115568),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 4336.26945491571504885214176203512015),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -76279.0031974974730095170437591004177),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 729577.956271997673695191455111727774),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -3661928.69330208734947103004900349266),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 8570600.041606912735872059184527855),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -6758379.93672362080947905580906028645)
-   };
-   static const T Q[10] = {    
-      BOOST_MATH_BIG_CONSTANT(T, 113, 1),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -99.4868026047611434569541483506091713),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 3879.67753690517114249705089803055473),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -76495.82413252517165830203774900806),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 820773.726408311894342553758526282667),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -4803087.64956923577571031564909646579),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 14521246.227703545012713173740895477),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -19762752.0196769712258527849159393044),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 8354144.67882768405803322344185185517),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 355076.853106511136734454134915432571)
-   };
-   T t = 1 / z;
-   result = Y + tools::evaluate_polynomial(P, t)
-      / tools::evaluate_polynomial(Q, t);
-   result *= exp(z) / z;
-   result += z;
-}
-
-template <class T, class Policy>
-T expint_i_imp(T z, const Policy& pol, const mpl::int_<113>& tag)
-{
-   BOOST_MATH_STD_USING
-   static const char* function = "boost::math::expint<%1%>(%1%)";
-   if(z < 0)
-      return -expint_imp(1, T(-z), pol, tag);
-   if(z == 0)
-      return -policies::raise_overflow_error<T>(function, 0, pol);
-
-   T result;
-
-   if(z <= 6)
-   {
-      expint_i_imp_113a(result, z);
-   }
-   else if (z <= 10)
-   {
-      expint_i_113b(result, z);
-   }
-   else if(z <= 18)
-   {
-      expint_i_113c(result, z);
-   }
-   else if(z <= 26)
-   {
-      expint_i_113d(result, z);
-   }
-   else if(z <= 42)
-   {
-      expint_i_113e(result, z);
-   }
-   else if(z <= 56)
-   {
-      expint_i_113f(result, z);
-   }
-   else if(z <= 84)
-   {
-      expint_i_113g(result, z);
-   }
-   else if(z <= 210)
-   {
-      expint_i_113h(result, z);
-   }
-   else // z > 210
-   {
-      // Maximum Deviation Found:                     3.963e-37
-      // Expected Error Term:                         3.963e-37
-      // Max Error found at long double precision =   Poly: 1.248049e-36   Cheb: 2.843486e-29
-
-      static const T exp40 = static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 2.35385266837019985407899910749034804508871617254555467236651e17));
-      static const T Y= 1.00252532958984375F;
-      static const T P[8] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.00252532958984375000000000000000000085),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 1.16591386866059087390621952073890359),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -67.8483431314018462417456828499277579),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 1567.68688154683822956359536287575892),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -17335.4683325819116482498725687644986),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 93632.6567462673524739954389166550069),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -225025.189335919133214440347510936787),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 175864.614717440010942804684741336853)
-      };
-      static const T Q[9] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 113, 1),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -65.6998869881600212224652719706425129),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 1642.73850032324014781607859416890077),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -19937.2610222467322481947237312818575),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 124136.267326632742667972126625064538),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -384614.251466704550678760562965502293),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 523355.035910385688578278384032026998),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -217809.552260834025885677791936351294),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -8555.81719551123640677261226549550872)
-      };
-      T t = 1 / z;
-      result = Y + tools::evaluate_polynomial(P, t)
-         / tools::evaluate_polynomial(Q, t);
-      if(z < 41)
-         result *= exp(z) / z;
-      else
-      {
-         // Avoid premature overflow if we can:
-         t = z - 40;
-         if(t > tools::log_max_value<T>())
-         {
-            result = policies::raise_overflow_error<T>(function, 0, pol);
-         }
-         else
-         {
-            result *= exp(z - 40) / z;
-            if(result > tools::max_value<T>() / exp40)
-            {
-               result = policies::raise_overflow_error<T>(function, 0, pol);
-            }
-            else
-            {
-               result *= exp40;
-            }
-         }
-      }
-      result += z;
-   }
-   return result;
-}
-
-template <class T, class Policy, class tag>
-struct expint_i_initializer
-{
-   struct init
-   {
-      init()
-      {
-         do_init(tag());
-      }
-      static void do_init(const mpl::int_<0>&){}
-      static void do_init(const mpl::int_<53>&)
-      {
-         boost::math::expint(T(5));
-         boost::math::expint(T(7));
-         boost::math::expint(T(18));
-         boost::math::expint(T(38));
-         boost::math::expint(T(45));
-      }
-      static void do_init(const mpl::int_<64>&)
-      {
-         boost::math::expint(T(5));
-         boost::math::expint(T(7));
-         boost::math::expint(T(18));
-         boost::math::expint(T(38));
-         boost::math::expint(T(45));
-      }
-      static void do_init(const mpl::int_<113>&)
-      {
-         boost::math::expint(T(5));
-         boost::math::expint(T(7));
-         boost::math::expint(T(17));
-         boost::math::expint(T(25));
-         boost::math::expint(T(40));
-         boost::math::expint(T(50));
-         boost::math::expint(T(80));
-         boost::math::expint(T(200));
-         boost::math::expint(T(220));
-      }
-      void force_instantiate()const{}
-   };
-   static const init initializer;
-   static void force_instantiate()
-   {
-      initializer.force_instantiate();
-   }
-};
-
-template <class T, class Policy, class tag>
-const typename expint_i_initializer<T, Policy, tag>::init expint_i_initializer<T, Policy, tag>::initializer;
-
-template <class T, class Policy, class tag>
-struct expint_1_initializer
-{
-   struct init
-   {
-      init()
-      {
-         do_init(tag());
-      }
-      static void do_init(const mpl::int_<0>&){}
-      static void do_init(const mpl::int_<53>&)
-      {
-         boost::math::expint(1, T(0.5));
-         boost::math::expint(1, T(2));
-      }
-      static void do_init(const mpl::int_<64>&)
-      {
-         boost::math::expint(1, T(0.5));
-         boost::math::expint(1, T(2));
-      }
-      static void do_init(const mpl::int_<113>&)
-      {
-         boost::math::expint(1, T(0.5));
-         boost::math::expint(1, T(2));
-         boost::math::expint(1, T(6));
-      }
-      void force_instantiate()const{}
-   };
-   static const init initializer;
-   static void force_instantiate()
-   {
-      initializer.force_instantiate();
-   }
-};
-
-template <class T, class Policy, class tag>
-const typename expint_1_initializer<T, Policy, tag>::init expint_1_initializer<T, Policy, tag>::initializer;
-
-template <class T, class Policy>
-inline typename tools::promote_args<T>::type
-   expint_forwarder(T z, const Policy& /*pol*/, mpl::true_ const&)
-{
-   typedef typename tools::promote_args<T>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   typedef typename policies::precision<result_type, Policy>::type precision_type;
-   typedef typename policies::normalise<
-      Policy, 
-      policies::promote_float<false>, 
-      policies::promote_double<false>, 
-      policies::discrete_quantile<>,
-      policies::assert_undefined<> >::type forwarding_policy;
-   typedef typename mpl::if_<
-      mpl::less_equal<precision_type, mpl::int_<0> >,
-      mpl::int_<0>,
-      typename mpl::if_<
-         mpl::less_equal<precision_type, mpl::int_<53> >,
-         mpl::int_<53>,  // double
-         typename mpl::if_<
-            mpl::less_equal<precision_type, mpl::int_<64> >,
-            mpl::int_<64>, // 80-bit long double
-            typename mpl::if_<
-               mpl::less_equal<precision_type, mpl::int_<113> >,
-               mpl::int_<113>, // 128-bit long double
-               mpl::int_<0> // too many bits, use generic version.
-            >::type
-         >::type
-      >::type
-   >::type tag_type;
-
-   expint_i_initializer<value_type, forwarding_policy, tag_type>::force_instantiate();
-
-   return policies::checked_narrowing_cast<result_type, forwarding_policy>(detail::expint_i_imp(
-      static_cast<value_type>(z),
-      forwarding_policy(),
-      tag_type()), "boost::math::expint<%1%>(%1%)");
-}
-
-template <class T>
-inline typename tools::promote_args<T>::type
-expint_forwarder(unsigned n, T z, const mpl::false_&)
-{
-   return boost::math::expint(n, z, policies::policy<>());
-}
-
-} // namespace detail
-
-template <class T, class Policy>
-inline typename tools::promote_args<T>::type
-   expint(unsigned n, T z, const Policy& /*pol*/)
-{
-   typedef typename tools::promote_args<T>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   typedef typename policies::precision<result_type, Policy>::type precision_type;
-   typedef typename policies::normalise<
-      Policy, 
-      policies::promote_float<false>, 
-      policies::promote_double<false>, 
-      policies::discrete_quantile<>,
-      policies::assert_undefined<> >::type forwarding_policy;
-   typedef typename mpl::if_<
-      mpl::less_equal<precision_type, mpl::int_<0> >,
-      mpl::int_<0>,
-      typename mpl::if_<
-         mpl::less_equal<precision_type, mpl::int_<53> >,
-         mpl::int_<53>,  // double
-         typename mpl::if_<
-            mpl::less_equal<precision_type, mpl::int_<64> >,
-            mpl::int_<64>, // 80-bit long double
-            typename mpl::if_<
-               mpl::less_equal<precision_type, mpl::int_<113> >,
-               mpl::int_<113>, // 128-bit long double
-               mpl::int_<0> // too many bits, use generic version.
-            >::type
-         >::type
-      >::type
-   >::type tag_type;
-
-   detail::expint_1_initializer<value_type, forwarding_policy, tag_type>::force_instantiate();
-
-   return policies::checked_narrowing_cast<result_type, forwarding_policy>(detail::expint_imp(
-      n,
-      static_cast<value_type>(z),
-      forwarding_policy(),
-      tag_type()), "boost::math::expint<%1%>(unsigned, %1%)");
-}
-
-template <class T, class U>
-inline typename detail::expint_result<T, U>::type
-   expint(T const z, U const u)
-{
-   typedef typename policies::is_policy<U>::type tag_type;
-   return detail::expint_forwarder(z, u, tag_type());
-}
-
-template <class T>
-inline typename tools::promote_args<T>::type
-   expint(T z)
-{
-   return expint(z, policies::policy<>());
-}
-
-}} // namespaces
-
-#endif // BOOST_MATH_EXPINT_HPP
-
-
diff --git a/boost/math/special_functions/expm1.hpp b/boost/math/special_functions/expm1.hpp
deleted file mode 100644
index 7423dc5..0000000
--- a/boost/math/special_functions/expm1.hpp
+++ /dev/null
@@ -1,343 +0,0 @@
-//  (C) Copyright John Maddock 2006.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_EXPM1_INCLUDED
-#define BOOST_MATH_EXPM1_INCLUDED
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/config/no_tr1/cmath.hpp>
-#include <math.h> // platform's ::expm1
-#include <boost/limits.hpp>
-#include <boost/math/tools/config.hpp>
-#include <boost/math/tools/series.hpp>
-#include <boost/math/tools/precision.hpp>
-#include <boost/math/tools/big_constant.hpp>
-#include <boost/math/policies/error_handling.hpp>
-#include <boost/math/tools/rational.hpp>
-#include <boost/math/special_functions/math_fwd.hpp>
-#include <boost/mpl/less_equal.hpp>
-
-#ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-#  include <boost/static_assert.hpp>
-#else
-#  include <boost/assert.hpp>
-#endif
-
-namespace boost{ namespace math{
-
-namespace detail
-{
-  // Functor expm1_series returns the next term in the Taylor series
-  // x^k / k!
-  // each time that operator() is invoked.
-  //
-  template <class T>
-  struct expm1_series
-  {
-     typedef T result_type;
-
-     expm1_series(T x)
-        : k(0), m_x(x), m_term(1) {}
-
-     T operator()()
-     {
-        ++k;
-        m_term *= m_x;
-        m_term /= k;
-        return m_term;
-     }
-
-     int count()const
-     {
-        return k;
-     }
-
-  private:
-     int k;
-     const T m_x;
-     T m_term;
-     expm1_series(const expm1_series&);
-     expm1_series& operator=(const expm1_series&);
-  };
-
-template <class T, class Policy, class tag>
-struct expm1_initializer
-{
-   struct init
-   {
-      init()
-      {
-         do_init(tag());
-      }
-      template <int N>
-      static void do_init(const mpl::int_<N>&){}
-      static void do_init(const mpl::int_<64>&)
-      {
-         expm1(T(0.5));
-      }
-      static void do_init(const mpl::int_<113>&)
-      {
-         expm1(T(0.5));
-      }
-      void force_instantiate()const{}
-   };
-   static const init initializer;
-   static void force_instantiate()
-   {
-      initializer.force_instantiate();
-   }
-};
-
-template <class T, class Policy, class tag>
-const typename expm1_initializer<T, Policy, tag>::init expm1_initializer<T, Policy, tag>::initializer;
-
-//
-// Algorithm expm1 is part of C99, but is not yet provided by many compilers.
-//
-// This version uses a Taylor series expansion for 0.5 > |x| > epsilon.
-//
-template <class T, class Policy>
-T expm1_imp(T x, const mpl::int_<0>&, const Policy& pol)
-{
-   BOOST_MATH_STD_USING
-
-   T a = fabs(x);
-   if(a > T(0.5f))
-   {
-      if(a >= tools::log_max_value<T>())
-      {
-         if(x > 0)
-            return policies::raise_overflow_error<T>("boost::math::expm1<%1%>(%1%)", 0, pol);
-         return -1;
-      }
-      return exp(x) - T(1);
-   }
-   if(a < tools::epsilon<T>())
-      return x;
-   detail::expm1_series<T> s(x);
-   boost::uintmax_t max_iter = policies::get_max_series_iterations<Policy>();
-#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582)) && !BOOST_WORKAROUND(__EDG_VERSION__, <= 245)
-   T result = tools::sum_series(s, policies::get_epsilon<T, Policy>(), max_iter);
-#else
-   T zero = 0;
-   T result = tools::sum_series(s, policies::get_epsilon<T, Policy>(), max_iter, zero);
-#endif
-   policies::check_series_iterations<T>("boost::math::expm1<%1%>(%1%)", max_iter, pol);
-   return result;
-}
-
-template <class T, class P>
-T expm1_imp(T x, const mpl::int_<53>&, const P& pol)
-{
-   BOOST_MATH_STD_USING
-
-   T a = fabs(x);
-   if(a > T(0.5L))
-   {
-      if(a >= tools::log_max_value<T>())
-      {
-         if(x > 0)
-            return policies::raise_overflow_error<T>("boost::math::expm1<%1%>(%1%)", 0, pol);
-         return -1;
-      }
-      return exp(x) - T(1);
-   }
-   if(a < tools::epsilon<T>())
-      return x;
-
-   static const float Y = 0.10281276702880859e1f;
-   static const T n[] = { static_cast<T>(-0.28127670288085937e-1), static_cast<T>(0.51278186299064534e0), static_cast<T>(-0.6310029069350198e-1), static_cast<T>(0.11638457975729296e-1), static_cast<T>(-0.52143390687521003e-3), static_cast<T>(0.21491399776965688e-4) };
-   static const T d[] = { 1, static_cast<T>(-0.45442309511354755e0), static_cast<T>(0.90850389570911714e-1), static_cast<T>(-0.10088963629815502e-1), static_cast<T>(0.63003407478692265e-3), static_cast<T>(-0.17976570003654402e-4) };
-
-   T result = x * Y + x * tools::evaluate_polynomial(n, x) / tools::evaluate_polynomial(d, x);
-   return result;
-}
-
-template <class T, class P>
-T expm1_imp(T x, const mpl::int_<64>&, const P& pol)
-{
-   BOOST_MATH_STD_USING
-
-   T a = fabs(x);
-   if(a > T(0.5L))
-   {
-      if(a >= tools::log_max_value<T>())
-      {
-         if(x > 0)
-            return policies::raise_overflow_error<T>("boost::math::expm1<%1%>(%1%)", 0, pol);
-         return -1;
-      }
-      return exp(x) - T(1);
-   }
-   if(a < tools::epsilon<T>())
-      return x;
-
-   static const float Y = 0.10281276702880859375e1f;
-   static const T n[] = { 
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.281276702880859375e-1), 
-       BOOST_MATH_BIG_CONSTANT(T, 64, 0.512980290285154286358e0), 
-       BOOST_MATH_BIG_CONSTANT(T, 64, -0.667758794592881019644e-1),
-       BOOST_MATH_BIG_CONSTANT(T, 64, 0.131432469658444745835e-1),
-       BOOST_MATH_BIG_CONSTANT(T, 64, -0.72303795326880286965e-3),
-       BOOST_MATH_BIG_CONSTANT(T, 64, 0.447441185192951335042e-4),
-       BOOST_MATH_BIG_CONSTANT(T, 64, -0.714539134024984593011e-6)
-   };
-   static const T d[] = { 
-      BOOST_MATH_BIG_CONSTANT(T, 64, 1.0),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.461477618025562520389e0),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.961237488025708540713e-1),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.116483957658204450739e-1),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.873308008461557544458e-3),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.387922804997682392562e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.807473180049193557294e-6)
-   };
-
-   T result = x * Y + x * tools::evaluate_polynomial(n, x) / tools::evaluate_polynomial(d, x);
-   return result;
-}
-
-template <class T, class P>
-T expm1_imp(T x, const mpl::int_<113>&, const P& pol)
-{
-   BOOST_MATH_STD_USING
-
-   T a = fabs(x);
-   if(a > T(0.5L))
-   {
-      if(a >= tools::log_max_value<T>())
-      {
-         if(x > 0)
-            return policies::raise_overflow_error<T>("boost::math::expm1<%1%>(%1%)", 0, pol);
-         return -1;
-      }
-      return exp(x) - T(1);
-   }
-   if(a < tools::epsilon<T>())
-      return x;
-
-   static const float Y = 0.10281276702880859375e1f;
-   static const T n[] = { 
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.28127670288085937499999999999999999854e-1),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.51278156911210477556524452177540792214e0),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.63263178520747096729500254678819588223e-1),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.14703285606874250425508446801230572252e-1),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.8675686051689527802425310407898459386e-3),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.88126359618291165384647080266133492399e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.25963087867706310844432390015463138953e-5),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.14226691087800461778631773363204081194e-6),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.15995603306536496772374181066765665596e-8),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.45261820069007790520447958280473183582e-10)
-   };
-   static const T d[] = { 
-      BOOST_MATH_BIG_CONSTANT(T, 113, 1.0),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.45441264709074310514348137469214538853e0),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.96827131936192217313133611655555298106e-1),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.12745248725908178612540554584374876219e-1),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.11473613871583259821612766907781095472e-2),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.73704168477258911962046591907690764416e-4),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.34087499397791555759285503797256103259e-5),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.11114024704296196166272091230695179724e-6),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.23987051614110848595909588343223896577e-8),
-      BOOST_MATH_BIG_CONSTANT(T, 113, -0.29477341859111589208776402638429026517e-10),
-      BOOST_MATH_BIG_CONSTANT(T, 113, 0.13222065991022301420255904060628100924e-12)
-   };
-
-   T result = x * Y + x * tools::evaluate_polynomial(n, x) / tools::evaluate_polynomial(d, x);
-   return result;
-}
-
-} // namespace detail
-
-template <class T, class Policy>
-inline typename tools::promote_args<T>::type expm1(T x, const Policy& /* pol */)
-{
-   typedef typename tools::promote_args<T>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   typedef typename policies::precision<result_type, Policy>::type precision_type;
-   typedef typename policies::normalise<
-      Policy, 
-      policies::promote_float<false>, 
-      policies::promote_double<false>, 
-      policies::discrete_quantile<>,
-      policies::assert_undefined<> >::type forwarding_policy;
-
-   typedef typename mpl::if_c<
-      ::std::numeric_limits<result_type>::is_specialized == 0,
-      mpl::int_<0>,  // no numeric_limits, use generic solution
-      typename mpl::if_<
-         typename mpl::less_equal<precision_type, mpl::int_<53> >::type,
-         mpl::int_<53>,  // double
-         typename mpl::if_<
-            typename mpl::less_equal<precision_type, mpl::int_<64> >::type,
-            mpl::int_<64>, // 80-bit long double
-            typename mpl::if_<
-               typename mpl::less_equal<precision_type, mpl::int_<113> >::type,
-               mpl::int_<113>, // 128-bit long double
-               mpl::int_<0> // too many bits, use generic version.
-            >::type
-         >::type
-      >::type
-   >::type tag_type;
-
-   detail::expm1_initializer<value_type, forwarding_policy, tag_type>::force_instantiate();
-   
-   return policies::checked_narrowing_cast<result_type, forwarding_policy>(detail::expm1_imp(
-      static_cast<value_type>(x),
-      tag_type(), forwarding_policy()), "boost::math::expm1<%1%>(%1%)");
-}
-
-#ifdef expm1
-#  ifndef BOOST_HAS_expm1
-#     define BOOST_HAS_expm1
-#  endif
-#  undef expm1
-#endif
-
-#if defined(BOOST_HAS_EXPM1) && !(defined(__osf__) && defined(__DECCXX_VER))
-#  ifdef BOOST_MATH_USE_C99
-inline float expm1(float x, const policies::policy<>&){ return ::expm1f(x); }
-#     ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
-inline long double expm1(long double x, const policies::policy<>&){ return ::expm1l(x); }
-#     endif
-#  else
-inline float expm1(float x, const policies::policy<>&){ return static_cast<float>(::expm1(x)); }
-#  endif
-inline double expm1(double x, const policies::policy<>&){ return ::expm1(x); }
-#endif
-
-template <class T>
-inline typename tools::promote_args<T>::type expm1(T x)
-{
-   return expm1(x, policies::policy<>());
-}
-
-#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
-inline float expm1(float z)
-{
-   return expm1<float>(z);
-}
-inline double expm1(double z)
-{
-   return expm1<double>(z);
-}
-#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
-inline long double expm1(long double z)
-{
-   return expm1<long double>(z);
-}
-#endif
-#endif
-
-} // namespace math
-} // namespace boost
-
-#endif // BOOST_MATH_HYPOT_INCLUDED
-
-
-
-
diff --git a/boost/math/special_functions/factorials.hpp b/boost/math/special_functions/factorials.hpp
deleted file mode 100644
index c788c46..0000000
--- a/boost/math/special_functions/factorials.hpp
+++ /dev/null
@@ -1,239 +0,0 @@
-//  Copyright John Maddock 2006, 2010.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_SP_FACTORIALS_HPP
-#define BOOST_MATH_SP_FACTORIALS_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/math/special_functions/gamma.hpp>
-#include <boost/math/special_functions/math_fwd.hpp>
-#include <boost/math/special_functions/detail/unchecked_factorial.hpp>
-#include <boost/array.hpp>
-#ifdef BOOST_MSVC
-#pragma warning(push) // Temporary until lexical cast fixed.
-#pragma warning(disable: 4127 4701)
-#endif
-#ifdef BOOST_MSVC
-#pragma warning(pop)
-#endif
-#include <boost/config/no_tr1/cmath.hpp>
-
-namespace boost { namespace math
-{
-
-template <class T, class Policy>
-inline T factorial(unsigned i, const Policy& pol)
-{
-   BOOST_STATIC_ASSERT(!boost::is_integral<T>::value);
-   // factorial<unsigned int>(n) is not implemented
-   // because it would overflow integral type T for too small n
-   // to be useful. Use instead a floating-point type,
-   // and convert to an unsigned type if essential, for example:
-   // unsigned int nfac = static_cast<unsigned int>(factorial<double>(n));
-   // See factorial documentation for more detail.
-
-   BOOST_MATH_STD_USING // Aid ADL for floor.
-
-   if(i <= max_factorial<T>::value)
-      return unchecked_factorial<T>(i);
-   T result = boost::math::tgamma(static_cast<T>(i+1), pol);
-   if(result > tools::max_value<T>())
-      return result; // Overflowed value! (But tgamma will have signalled the error already).
-   return floor(result + 0.5f);
-}
-
-template <class T>
-inline T factorial(unsigned i)
-{
-   return factorial<T>(i, policies::policy<>());
-}
-/*
-// Can't have these in a policy enabled world?
-template<>
-inline float factorial<float>(unsigned i)
-{
-   if(i <= max_factorial<float>::value)
-      return unchecked_factorial<float>(i);
-   return tools::overflow_error<float>(BOOST_CURRENT_FUNCTION);
-}
-
-template<>
-inline double factorial<double>(unsigned i)
-{
-   if(i <= max_factorial<double>::value)
-      return unchecked_factorial<double>(i);
-   return tools::overflow_error<double>(BOOST_CURRENT_FUNCTION);
-}
-*/
-template <class T, class Policy>
-T double_factorial(unsigned i, const Policy& pol)
-{
-   BOOST_STATIC_ASSERT(!boost::is_integral<T>::value);
-   BOOST_MATH_STD_USING  // ADL lookup of std names
-   if(i & 1)
-   {
-      // odd i:
-      if(i < max_factorial<T>::value)
-      {
-         unsigned n = (i - 1) / 2;
-         return ceil(unchecked_factorial<T>(i) / (ldexp(T(1), (int)n) * unchecked_factorial<T>(n)) - 0.5f);
-      }
-      //
-      // Fallthrough: i is too large to use table lookup, try the
-      // gamma function instead.
-      //
-      T result = boost::math::tgamma(static_cast<T>(i) / 2 + 1, pol) / sqrt(constants::pi<T>());
-      if(ldexp(tools::max_value<T>(), -static_cast<int>(i+1) / 2) > result)
-         return ceil(result * ldexp(T(1), static_cast<int>(i+1) / 2) - 0.5f);
-   }
-   else
-   {
-      // even i:
-      unsigned n = i / 2;
-      T result = factorial<T>(n, pol);
-      if(ldexp(tools::max_value<T>(), -(int)n) > result)
-         return result * ldexp(T(1), (int)n);
-   }
-   //
-   // If we fall through to here then the result is infinite:
-   //
-   return policies::raise_overflow_error<T>("boost::math::double_factorial<%1%>(unsigned)", 0, pol);
-}
-
-template <class T>
-inline T double_factorial(unsigned i)
-{
-   return double_factorial<T>(i, policies::policy<>());
-}
-
-namespace detail{
-
-template <class T, class Policy>
-T rising_factorial_imp(T x, int n, const Policy& pol)
-{
-   BOOST_STATIC_ASSERT(!boost::is_integral<T>::value);
-   if(x < 0)
-   {
-      //
-      // For x less than zero, we really have a falling
-      // factorial, modulo a possible change of sign.
-      //
-      // Note that the falling factorial isn't defined
-      // for negative n, so we'll get rid of that case
-      // first:
-      //
-      bool inv = false;
-      if(n < 0)
-      {
-         x += n;
-         n = -n;
-         inv = true;
-      }
-      T result = ((n&1) ? -1 : 1) * falling_factorial(-x, n, pol);
-      if(inv)
-         result = 1 / result;
-      return result;
-   }
-   if(n == 0)
-      return 1;
-   //
-   // We don't optimise this for small n, because
-   // tgamma_delta_ratio is alreay optimised for that
-   // use case:
-   //
-   return 1 / boost::math::tgamma_delta_ratio(x, static_cast<T>(n), pol);
-}
-
-template <class T, class Policy>
-inline T falling_factorial_imp(T x, unsigned n, const Policy& pol)
-{
-   BOOST_STATIC_ASSERT(!boost::is_integral<T>::value);
-   BOOST_MATH_STD_USING // ADL of std names
-   if(x == 0)
-      return 0;
-   if(x < 0)
-   {
-      //
-      // For x < 0 we really have a rising factorial
-      // modulo a possible change of sign:
-      //
-      return (n&1 ? -1 : 1) * rising_factorial(-x, n, pol);
-   }
-   if(n == 0)
-      return 1;
-   if(x < n-1)
-   {
-      //
-      // x+1-n will be negative and tgamma_delta_ratio won't
-      // handle it, split the product up into three parts:
-      //
-      T xp1 = x + 1;
-      unsigned n2 = itrunc((T)floor(xp1), pol);
-      if(n2 == xp1)
-         return 0;
-      T result = boost::math::tgamma_delta_ratio(xp1, -static_cast<T>(n2), pol);
-      x -= n2;
-      result *= x;
-      ++n2;
-      if(n2 < n)
-         result *= falling_factorial(x - 1, n - n2, pol);
-      return result;
-   }
-   //
-   // Simple case: just the ratio of two
-   // (positive argument) gamma functions.
-   // Note that we don't optimise this for small n,
-   // because tgamma_delta_ratio is alreay optimised
-   // for that use case:
-   //
-   return boost::math::tgamma_delta_ratio(x + 1, -static_cast<T>(n), pol);
-}
-
-} // namespace detail
-
-template <class RT>
-inline typename tools::promote_args<RT>::type
-   falling_factorial(RT x, unsigned n)
-{
-   typedef typename tools::promote_args<RT>::type result_type;
-   return detail::falling_factorial_imp(
-      static_cast<result_type>(x), n, policies::policy<>());
-}
-
-template <class RT, class Policy>
-inline typename tools::promote_args<RT>::type
-   falling_factorial(RT x, unsigned n, const Policy& pol)
-{
-   typedef typename tools::promote_args<RT>::type result_type;
-   return detail::falling_factorial_imp(
-      static_cast<result_type>(x), n, pol);
-}
-
-template <class RT>
-inline typename tools::promote_args<RT>::type
-   rising_factorial(RT x, int n)
-{
-   typedef typename tools::promote_args<RT>::type result_type;
-   return detail::rising_factorial_imp(
-      static_cast<result_type>(x), n, policies::policy<>());
-}
-
-template <class RT, class Policy>
-inline typename tools::promote_args<RT>::type
-   rising_factorial(RT x, int n, const Policy& pol)
-{
-   typedef typename tools::promote_args<RT>::type result_type;
-   return detail::rising_factorial_imp(
-      static_cast<result_type>(x), n, pol);
-}
-
-} // namespace math
-} // namespace boost
-
-#endif // BOOST_MATH_SP_FACTORIALS_HPP
-
diff --git a/boost/math/special_functions/fpclassify.hpp b/boost/math/special_functions/fpclassify.hpp
deleted file mode 100644
index 75f57b0..0000000
--- a/boost/math/special_functions/fpclassify.hpp
+++ /dev/null
@@ -1,606 +0,0 @@
-//  Copyright John Maddock 2005-2008.
-//  Copyright (c) 2006-2008 Johan Rade
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_FPCLASSIFY_HPP
-#define BOOST_MATH_FPCLASSIFY_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <math.h>
-#include <boost/config/no_tr1/cmath.hpp>
-#include <boost/limits.hpp>
-#include <boost/math/tools/real_cast.hpp>
-#include <boost/type_traits/is_floating_point.hpp>
-#include <boost/math/special_functions/math_fwd.hpp>
-#include <boost/math/special_functions/detail/fp_traits.hpp>
-/*!
-  \file fpclassify.hpp
-  \brief Classify floating-point value as normal, subnormal, zero, infinite, or NaN.
-  \version 1.0
-  \author John Maddock
- */
-
-/*
-
-1. If the platform is C99 compliant, then the native floating point
-classification functions are used.  However, note that we must only
-define the functions which call std::fpclassify etc if that function
-really does exist: otherwise a compiler may reject the code even though
-the template is never instantiated.
-
-2. If the platform is not C99 compliant, and the binary format for
-a floating point type (float, double or long double) can be determined
-at compile time, then the following algorithm is used:
-
-        If all exponent bits, the flag bit (if there is one),
-        and all significand bits are 0, then the number is zero.
-
-        If all exponent bits and the flag bit (if there is one) are 0,
-        and at least one significand bit is 1, then the number is subnormal.
-
-        If all exponent bits are 1 and all significand bits are 0,
-        then the number is infinity.
-
-        If all exponent bits are 1 and at least one significand bit is 1,
-        then the number is a not-a-number.
-
-        Otherwise the number is normal.
-
-        This algorithm works for the IEEE 754 representation,
-        and also for several non IEEE 754 formats.
-
-    Most formats have the structure
-        sign bit + exponent bits + significand bits.
-
-    A few have the structure
-        sign bit + exponent bits + flag bit + significand bits.
-    The flag bit is 0 for zero and subnormal numbers,
-        and 1 for normal numbers and NaN.
-        It is 0 (Motorola 68K) or 1 (Intel) for infinity.
-
-    To get the bits, the four or eight most significant bytes are copied
-    into an uint32_t or uint64_t and bit masks are applied.
-    This covers all the exponent bits and the flag bit (if there is one),
-    but not always all the significand bits.
-    Some of the functions below have two implementations,
-    depending on whether all the significand bits are copied or not.
-
-3. If the platform is not C99 compliant, and the binary format for
-a floating point type (float, double or long double) can not be determined
-at compile time, then comparison with std::numeric_limits values
-is used.
-
-*/
-
-#if defined(_MSC_VER) || defined(__BORLANDC__)
-#include <float.h>
-#endif
-
-#ifdef BOOST_NO_STDC_NAMESPACE
-  namespace std{ using ::abs; using ::fabs; }
-#endif
-
-namespace boost{
-
-//
-// This must not be located in any namespace under boost::math
-// otherwise we can get into an infinite loop if isnan is
-// a #define for "isnan" !
-//
-namespace math_detail{
-
-#ifdef BOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable:4800)
-#endif
-
-template <class T>
-inline bool is_nan_helper(T t, const boost::true_type&)
-{
-#ifdef isnan
-   return isnan(t);
-#elif defined(BOOST_MATH_DISABLE_STD_FPCLASSIFY) || !defined(BOOST_HAS_FPCLASSIFY)
-   (void)t;
-   return false;
-#else // BOOST_HAS_FPCLASSIFY
-   return (BOOST_FPCLASSIFY_PREFIX fpclassify(t) == (int)FP_NAN);
-#endif
-}
-
-#ifdef BOOST_MSVC
-#pragma warning(pop)
-#endif
-
-template <class T>
-inline bool is_nan_helper(T, const boost::false_type&)
-{
-   return false;
-}
-
-}
-
-namespace math{
-
-namespace detail{
-
-#ifdef BOOST_MATH_USE_STD_FPCLASSIFY
-template <class T>
-inline int fpclassify_imp BOOST_NO_MACRO_EXPAND(T t, const native_tag&)
-{
-   return (std::fpclassify)(t);
-}
-#endif
-
-template <class T>
-inline int fpclassify_imp BOOST_NO_MACRO_EXPAND(T t, const generic_tag<true>&)
-{
-   BOOST_MATH_INSTRUMENT_VARIABLE(t);
-
-   // whenever possible check for Nan's first:
-#if defined(BOOST_HAS_FPCLASSIFY)  && !defined(BOOST_MATH_DISABLE_STD_FPCLASSIFY)
-   if(::boost::math_detail::is_nan_helper(t, ::boost::is_floating_point<T>()))
-      return FP_NAN;
-#elif defined(isnan)
-   if(boost::math_detail::is_nan_helper(t, ::boost::is_floating_point<T>()))
-      return FP_NAN;
-#elif defined(_MSC_VER) || defined(__BORLANDC__)
-   if(::_isnan(boost::math::tools::real_cast<double>(t)))
-      return FP_NAN;
-#endif
-   // std::fabs broken on a few systems especially for long long!!!!
-   T at = (t < T(0)) ? -t : t;
-
-   // Use a process of exclusion to figure out
-   // what kind of type we have, this relies on
-   // IEEE conforming reals that will treat
-   // Nan's as unordered.  Some compilers
-   // don't do this once optimisations are
-   // turned on, hence the check for nan's above.
-   if(at <= (std::numeric_limits<T>::max)())
-   {
-      if(at >= (std::numeric_limits<T>::min)())
-         return FP_NORMAL;
-      return (at != 0) ? FP_SUBNORMAL : FP_ZERO;
-   }
-   else if(at > (std::numeric_limits<T>::max)())
-      return FP_INFINITE;
-   return FP_NAN;
-}
-
-template <class T>
-inline int fpclassify_imp BOOST_NO_MACRO_EXPAND(T t, const generic_tag<false>&)
-{
-#ifdef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-   if(std::numeric_limits<T>::is_specialized)
-      return fpclassify_imp(t, generic_tag<true>());
-#endif
-   //
-   // An unknown type with no numeric_limits support,
-   // so what are we supposed to do we do here?
-   //
-   BOOST_MATH_INSTRUMENT_VARIABLE(t);
-
-   return t == 0 ? FP_ZERO : FP_NORMAL;
-}
-
-template<class T>
-int fpclassify_imp BOOST_NO_MACRO_EXPAND(T x, ieee_copy_all_bits_tag)
-{
-   typedef BOOST_DEDUCED_TYPENAME fp_traits<T>::type traits;
-
-   BOOST_MATH_INSTRUMENT_VARIABLE(x);
-
-   BOOST_DEDUCED_TYPENAME traits::bits a;
-   traits::get_bits(x,a);
-   BOOST_MATH_INSTRUMENT_VARIABLE(a);
-   a &= traits::exponent | traits::flag | traits::significand;
-   BOOST_MATH_INSTRUMENT_VARIABLE((traits::exponent | traits::flag | traits::significand));
-   BOOST_MATH_INSTRUMENT_VARIABLE(a);
-
-   if(a <= traits::significand) {
-      if(a == 0)
-         return FP_ZERO;
-      else
-         return FP_SUBNORMAL;
-   }
-
-   if(a < traits::exponent) return FP_NORMAL;
-
-   a &= traits::significand;
-   if(a == 0) return FP_INFINITE;
-
-   return FP_NAN;
-}
-
-template<class T>
-int fpclassify_imp BOOST_NO_MACRO_EXPAND(T x, ieee_copy_leading_bits_tag)
-{
-   typedef BOOST_DEDUCED_TYPENAME fp_traits<T>::type traits;
-
-   BOOST_MATH_INSTRUMENT_VARIABLE(x);
-
-   BOOST_DEDUCED_TYPENAME traits::bits a;
-   traits::get_bits(x,a);
-   a &= traits::exponent | traits::flag | traits::significand;
-
-   if(a <= traits::significand) {
-      if(x == 0)
-         return FP_ZERO;
-      else
-         return FP_SUBNORMAL;
-   }
-
-   if(a < traits::exponent) return FP_NORMAL;
-
-   a &= traits::significand;
-   traits::set_bits(x,a);
-   if(x == 0) return FP_INFINITE;
-
-   return FP_NAN;
-}
-
-#if defined(BOOST_MATH_USE_STD_FPCLASSIFY) && (defined(BOOST_MATH_NO_NATIVE_LONG_DOUBLE_FP_CLASSIFY) || defined(BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS))
-inline int fpclassify_imp BOOST_NO_MACRO_EXPAND(long double t, const native_tag&)
-{
-   return boost::math::detail::fpclassify_imp(t, generic_tag<true>());
-}
-#endif
-
-}  // namespace detail
-
-template <class T>
-inline int fpclassify BOOST_NO_MACRO_EXPAND(T t)
-{
-   typedef typename detail::fp_traits<T>::type traits;
-   typedef typename traits::method method;
-   typedef typename tools::promote_args_permissive<T>::type value_type;
-#ifdef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-   if(std::numeric_limits<T>::is_specialized && detail::is_generic_tag_false(static_cast<method*>(0)))
-      return detail::fpclassify_imp(static_cast<value_type>(t), detail::generic_tag<true>());
-   return detail::fpclassify_imp(static_cast<value_type>(t), method());
-#else
-   return detail::fpclassify_imp(static_cast<value_type>(t), method());
-#endif
-}
-
-#ifdef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
-template <>
-inline int fpclassify<long double> BOOST_NO_MACRO_EXPAND(long double t)
-{
-   typedef detail::fp_traits<long double>::type traits;
-   typedef traits::method method;
-   typedef long double value_type;
-#ifdef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-   if(std::numeric_limits<long double>::is_specialized && detail::is_generic_tag_false(static_cast<method*>(0)))
-      return detail::fpclassify_imp(static_cast<value_type>(t), detail::generic_tag<true>());
-   return detail::fpclassify_imp(static_cast<value_type>(t), method());
-#else
-   return detail::fpclassify_imp(static_cast<value_type>(t), method());
-#endif
-}
-#endif
-
-namespace detail {
-
-#ifdef BOOST_MATH_USE_STD_FPCLASSIFY
-    template<class T>
-    inline bool isfinite_impl(T x, native_tag const&)
-    {
-        return (std::isfinite)(x);
-    }
-#endif
-
-    template<class T>
-    inline bool isfinite_impl(T x, generic_tag<true> const&)
-    {
-        return x >= -(std::numeric_limits<T>::max)()
-            && x <= (std::numeric_limits<T>::max)();
-    }
-
-    template<class T>
-    inline bool isfinite_impl(T x, generic_tag<false> const&)
-    {
-#ifdef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-      if(std::numeric_limits<T>::is_specialized)
-         return isfinite_impl(x, generic_tag<true>());
-#endif
-       (void)x; // warning supression.
-       return true;
-    }
-
-    template<class T>
-    inline bool isfinite_impl(T x, ieee_tag const&)
-    {
-        typedef BOOST_DEDUCED_TYPENAME detail::fp_traits<T>::type traits;
-        BOOST_DEDUCED_TYPENAME traits::bits a;
-        traits::get_bits(x,a);
-        a &= traits::exponent;
-        return a != traits::exponent;
-    }
-
-#if defined(BOOST_MATH_USE_STD_FPCLASSIFY) && defined(BOOST_MATH_NO_NATIVE_LONG_DOUBLE_FP_CLASSIFY)
-inline bool isfinite_impl BOOST_NO_MACRO_EXPAND(long double t, const native_tag&)
-{
-   return boost::math::detail::isfinite_impl(t, generic_tag<true>());
-}
-#endif
-
-}
-
-template<class T>
-inline bool (isfinite)(T x)
-{ //!< \brief return true if floating-point type t is finite.
-   typedef typename detail::fp_traits<T>::type traits;
-   typedef typename traits::method method;
-   // typedef typename boost::is_floating_point<T>::type fp_tag;
-   typedef typename tools::promote_args_permissive<T>::type value_type;
-   return detail::isfinite_impl(static_cast<value_type>(x), method());
-}
-
-#ifdef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
-template<>
-inline bool (isfinite)(long double x)
-{ //!< \brief return true if floating-point type t is finite.
-   typedef detail::fp_traits<long double>::type traits;
-   typedef traits::method method;
-   typedef boost::is_floating_point<long double>::type fp_tag;
-   typedef long double value_type;
-   return detail::isfinite_impl(static_cast<value_type>(x), method());
-}
-#endif
-
-//------------------------------------------------------------------------------
-
-namespace detail {
-
-#ifdef BOOST_MATH_USE_STD_FPCLASSIFY
-    template<class T>
-    inline bool isnormal_impl(T x, native_tag const&)
-    {
-        return (std::isnormal)(x);
-    }
-#endif
-
-    template<class T>
-    inline bool isnormal_impl(T x, generic_tag<true> const&)
-    {
-        if(x < 0) x = -x;
-        return x >= (std::numeric_limits<T>::min)()
-            && x <= (std::numeric_limits<T>::max)();
-    }
-
-    template<class T>
-    inline bool isnormal_impl(T x, generic_tag<false> const&)
-    {
-#ifdef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-      if(std::numeric_limits<T>::is_specialized)
-         return isnormal_impl(x, generic_tag<true>());
-#endif
-       return !(x == 0);
-    }
-
-    template<class T>
-    inline bool isnormal_impl(T x, ieee_tag const&)
-    {
-        typedef BOOST_DEDUCED_TYPENAME detail::fp_traits<T>::type traits;
-        BOOST_DEDUCED_TYPENAME traits::bits a;
-        traits::get_bits(x,a);
-        a &= traits::exponent | traits::flag;
-        return (a != 0) && (a < traits::exponent);
-    }
-
-#if defined(BOOST_MATH_USE_STD_FPCLASSIFY) && defined(BOOST_MATH_NO_NATIVE_LONG_DOUBLE_FP_CLASSIFY)
-inline bool isnormal_impl BOOST_NO_MACRO_EXPAND(long double t, const native_tag&)
-{
-   return boost::math::detail::isnormal_impl(t, generic_tag<true>());
-}
-#endif
-
-}
-
-template<class T>
-inline bool (isnormal)(T x)
-{
-   typedef typename detail::fp_traits<T>::type traits;
-   typedef typename traits::method method;
-   //typedef typename boost::is_floating_point<T>::type fp_tag;
-   typedef typename tools::promote_args_permissive<T>::type value_type;
-   return detail::isnormal_impl(static_cast<value_type>(x), method());
-}
-
-#ifdef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
-template<>
-inline bool (isnormal)(long double x)
-{
-   typedef detail::fp_traits<long double>::type traits;
-   typedef traits::method method;
-   typedef boost::is_floating_point<long double>::type fp_tag;
-   typedef long double value_type;
-   return detail::isnormal_impl(static_cast<value_type>(x), method());
-}
-#endif
-
-//------------------------------------------------------------------------------
-
-namespace detail {
-
-#ifdef BOOST_MATH_USE_STD_FPCLASSIFY
-    template<class T>
-    inline bool isinf_impl(T x, native_tag const&)
-    {
-        return (std::isinf)(x);
-    }
-#endif
-
-    template<class T>
-    inline bool isinf_impl(T x, generic_tag<true> const&)
-    {
-        (void)x; // in case the compiler thinks that x is unused because std::numeric_limits<T>::has_infinity is false
-        return std::numeric_limits<T>::has_infinity
-            && ( x == std::numeric_limits<T>::infinity()
-                 || x == -std::numeric_limits<T>::infinity());
-    }
-
-    template<class T>
-    inline bool isinf_impl(T x, generic_tag<false> const&)
-    {
-#ifdef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-      if(std::numeric_limits<T>::is_specialized)
-         return isinf_impl(x, generic_tag<true>());
-#endif
-        (void)x; // warning supression.
-        return false;
-    }
-
-    template<class T>
-    inline bool isinf_impl(T x, ieee_copy_all_bits_tag const&)
-    {
-        typedef BOOST_DEDUCED_TYPENAME fp_traits<T>::type traits;
-
-        BOOST_DEDUCED_TYPENAME traits::bits a;
-        traits::get_bits(x,a);
-        a &= traits::exponent | traits::significand;
-        return a == traits::exponent;
-    }
-
-    template<class T>
-    inline bool isinf_impl(T x, ieee_copy_leading_bits_tag const&)
-    {
-        typedef BOOST_DEDUCED_TYPENAME fp_traits<T>::type traits;
-
-        BOOST_DEDUCED_TYPENAME traits::bits a;
-        traits::get_bits(x,a);
-        a &= traits::exponent | traits::significand;
-        if(a != traits::exponent)
-            return false;
-
-        traits::set_bits(x,0);
-        return x == 0;
-    }
-
-#if defined(BOOST_MATH_USE_STD_FPCLASSIFY) && defined(BOOST_MATH_NO_NATIVE_LONG_DOUBLE_FP_CLASSIFY)
-inline bool isinf_impl BOOST_NO_MACRO_EXPAND(long double t, const native_tag&)
-{
-   return boost::math::detail::isinf_impl(t, generic_tag<true>());
-}
-#endif
-
-}   // namespace detail
-
-template<class T>
-inline bool (isinf)(T x)
-{
-   typedef typename detail::fp_traits<T>::type traits;
-   typedef typename traits::method method;
-   // typedef typename boost::is_floating_point<T>::type fp_tag;
-   typedef typename tools::promote_args_permissive<T>::type value_type;
-   return detail::isinf_impl(static_cast<value_type>(x), method());
-}
-
-#ifdef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
-template<>
-inline bool (isinf)(long double x)
-{
-   typedef detail::fp_traits<long double>::type traits;
-   typedef traits::method method;
-   typedef boost::is_floating_point<long double>::type fp_tag;
-   typedef long double value_type;
-   return detail::isinf_impl(static_cast<value_type>(x), method());
-}
-#endif
-
-//------------------------------------------------------------------------------
-
-namespace detail {
-
-#ifdef BOOST_MATH_USE_STD_FPCLASSIFY
-    template<class T>
-    inline bool isnan_impl(T x, native_tag const&)
-    {
-        return (std::isnan)(x);
-    }
-#endif
-
-    template<class T>
-    inline bool isnan_impl(T x, generic_tag<true> const&)
-    {
-        return std::numeric_limits<T>::has_infinity
-            ? !(x <= std::numeric_limits<T>::infinity())
-            : x != x;
-    }
-
-    template<class T>
-    inline bool isnan_impl(T x, generic_tag<false> const&)
-    {
-#ifdef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-      if(std::numeric_limits<T>::is_specialized)
-         return isnan_impl(x, generic_tag<true>());
-#endif
-        (void)x; // warning supression
-        return false;
-    }
-
-    template<class T>
-    inline bool isnan_impl(T x, ieee_copy_all_bits_tag const&)
-    {
-        typedef BOOST_DEDUCED_TYPENAME fp_traits<T>::type traits;
-
-        BOOST_DEDUCED_TYPENAME traits::bits a;
-        traits::get_bits(x,a);
-        a &= traits::exponent | traits::significand;
-        return a > traits::exponent;
-    }
-
-    template<class T>
-    inline bool isnan_impl(T x, ieee_copy_leading_bits_tag const&)
-    {
-        typedef BOOST_DEDUCED_TYPENAME fp_traits<T>::type traits;
-
-        BOOST_DEDUCED_TYPENAME traits::bits a;
-        traits::get_bits(x,a);
-
-        a &= traits::exponent | traits::significand;
-        if(a < traits::exponent)
-            return false;
-
-        a &= traits::significand;
-        traits::set_bits(x,a);
-        return x != 0;
-    }
-
-}   // namespace detail
-
-template<class T>
-inline bool (isnan)(T x)
-{ //!< \brief return true if floating-point type t is NaN (Not A Number).
-   typedef typename detail::fp_traits<T>::type traits;
-   typedef typename traits::method method;
-   // typedef typename boost::is_floating_point<T>::type fp_tag;
-   return detail::isnan_impl(x, method());
-}
-
-#ifdef isnan
-template <> inline bool isnan BOOST_NO_MACRO_EXPAND<float>(float t){ return ::boost::math_detail::is_nan_helper(t, boost::true_type()); }
-template <> inline bool isnan BOOST_NO_MACRO_EXPAND<double>(double t){ return ::boost::math_detail::is_nan_helper(t, boost::true_type()); }
-template <> inline bool isnan BOOST_NO_MACRO_EXPAND<long double>(long double t){ return ::boost::math_detail::is_nan_helper(t, boost::true_type()); }
-#elif defined(BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS)
-template<>
-inline bool (isnan)(long double x)
-{ //!< \brief return true if floating-point type t is NaN (Not A Number).
-   typedef detail::fp_traits<long double>::type traits;
-   typedef traits::method method;
-   typedef boost::is_floating_point<long double>::type fp_tag;
-   return detail::isnan_impl(x, method());
-}
-#endif
-
-} // namespace math
-} // namespace boost
-
-#endif // BOOST_MATH_FPCLASSIFY_HPP
-
diff --git a/boost/math/special_functions/gamma.hpp b/boost/math/special_functions/gamma.hpp
deleted file mode 100644
index 8e661a1..0000000
--- a/boost/math/special_functions/gamma.hpp
+++ /dev/null
@@ -1,1704 +0,0 @@
-
-//  Copyright John Maddock 2006-7.
-//  Copyright Paul A. Bristow 2007.
-
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_SF_GAMMA_HPP
-#define BOOST_MATH_SF_GAMMA_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/config.hpp>
-#include <boost/math/tools/series.hpp>
-#include <boost/math/tools/fraction.hpp>
-#include <boost/math/tools/precision.hpp>
-#include <boost/math/tools/promotion.hpp>
-#include <boost/math/policies/error_handling.hpp>
-#include <boost/math/constants/constants.hpp>
-#include <boost/math/special_functions/math_fwd.hpp>
-#include <boost/math/special_functions/log1p.hpp>
-#include <boost/math/special_functions/trunc.hpp>
-#include <boost/math/special_functions/powm1.hpp>
-#include <boost/math/special_functions/sqrt1pm1.hpp>
-#include <boost/math/special_functions/lanczos.hpp>
-#include <boost/math/special_functions/fpclassify.hpp>
-#include <boost/math/special_functions/detail/igamma_large.hpp>
-#include <boost/math/special_functions/detail/unchecked_factorial.hpp>
-#include <boost/math/special_functions/detail/lgamma_small.hpp>
-#include <boost/type_traits/is_convertible.hpp>
-#include <boost/assert.hpp>
-#include <boost/mpl/greater.hpp>
-#include <boost/mpl/equal_to.hpp>
-#include <boost/mpl/greater.hpp>
-
-#include <boost/config/no_tr1/cmath.hpp>
-#include <algorithm>
-
-#ifdef BOOST_MSVC
-# pragma warning(push)
-# pragma warning(disable: 4702) // unreachable code (return after domain_error throw).
-# pragma warning(disable: 4127) // conditional expression is constant.
-# pragma warning(disable: 4100) // unreferenced formal parameter.
-// Several variables made comments,
-// but some difficulty as whether referenced on not may depend on macro values.
-// So to be safe, 4100 warnings suppressed.
-// TODO - revisit this?
-#endif
-
-namespace boost{ namespace math{
-
-namespace detail{
-
-template <class T>
-inline bool is_odd(T v, const boost::true_type&)
-{
-   int i = static_cast<int>(v);
-   return i&1;
-}
-template <class T>
-inline bool is_odd(T v, const boost::false_type&)
-{
-   // Oh dear can't cast T to int!
-   BOOST_MATH_STD_USING
-   T modulus = v - 2 * floor(v/2);
-   return static_cast<bool>(modulus != 0);
-}
-template <class T>
-inline bool is_odd(T v)
-{
-   return is_odd(v, ::boost::is_convertible<T, int>());
-}
-
-template <class T>
-T sinpx(T z)
-{
-   // Ad hoc function calculates x * sin(pi * x),
-   // taking extra care near when x is near a whole number.
-   BOOST_MATH_STD_USING
-   int sign = 1;
-   if(z < 0)
-   {
-      z = -z;
-   }
-   else
-   {
-      sign = -sign;
-   }
-   T fl = floor(z);
-   T dist;
-   if(is_odd(fl))
-   {
-      fl += 1;
-      dist = fl - z;
-      sign = -sign;
-   }
-   else
-   {
-      dist = z - fl;
-   }
-   BOOST_ASSERT(fl >= 0);
-   if(dist > 0.5)
-      dist = 1 - dist;
-   T result = sin(dist*boost::math::constants::pi<T>());
-   return sign*z*result;
-} // template <class T> T sinpx(T z)
-//
-// tgamma(z), with Lanczos support:
-//
-template <class T, class Policy, class Lanczos>
-T gamma_imp(T z, const Policy& pol, const Lanczos& l)
-{
-   BOOST_MATH_STD_USING
-
-   T result = 1;
-
-#ifdef BOOST_MATH_INSTRUMENT
-   static bool b = false;
-   if(!b)
-   {
-      std::cout << "tgamma_imp called with " << typeid(z).name() << " " << typeid(l).name() << std::endl;
-      b = true;
-   }
-#endif
-   static const char* function = "boost::math::tgamma<%1%>(%1%)";
-
-   if(z <= 0)
-   {
-      if(floor(z) == z)
-         return policies::raise_pole_error<T>(function, "Evaluation of tgamma at a negative integer %1%.", z, pol);
-      if(z <= -20)
-      {
-         result = gamma_imp(T(-z), pol, l) * sinpx(z);
-         BOOST_MATH_INSTRUMENT_VARIABLE(result);
-         if((fabs(result) < 1) && (tools::max_value<T>() * fabs(result) < boost::math::constants::pi<T>()))
-            return policies::raise_overflow_error<T>(function, "Result of tgamma is too large to represent.", pol);
-         result = -boost::math::constants::pi<T>() / result;
-         if(result == 0)
-            return policies::raise_underflow_error<T>(function, "Result of tgamma is too small to represent.", pol);
-         if((boost::math::fpclassify)(result) == (int)FP_SUBNORMAL)
-            return policies::raise_denorm_error<T>(function, "Result of tgamma is denormalized.", result, pol);
-         BOOST_MATH_INSTRUMENT_VARIABLE(result);
-         return result;
-      }
-
-      // shift z to > 1:
-      while(z < 0)
-      {
-         result /= z;
-         z += 1;
-      }
-   }
-   BOOST_MATH_INSTRUMENT_VARIABLE(result);
-   if((floor(z) == z) && (z < max_factorial<T>::value))
-   {
-      result *= unchecked_factorial<T>(itrunc(z, pol) - 1);
-      BOOST_MATH_INSTRUMENT_VARIABLE(result);
-   }
-   else
-   {
-      result *= Lanczos::lanczos_sum(z);
-      T zgh = (z + static_cast<T>(Lanczos::g()) - boost::math::constants::half<T>());
-      T lzgh = log(zgh);
-      BOOST_MATH_INSTRUMENT_VARIABLE(result);
-      BOOST_MATH_INSTRUMENT_VARIABLE(tools::log_max_value<T>());
-      if(z * lzgh > tools::log_max_value<T>())
-      {
-         // we're going to overflow unless this is done with care:
-         BOOST_MATH_INSTRUMENT_VARIABLE(zgh);
-         if(lzgh * z / 2 > tools::log_max_value<T>())
-            return policies::raise_overflow_error<T>(function, "Result of tgamma is too large to represent.", pol);
-         T hp = pow(zgh, (z / 2) - T(0.25));
-         BOOST_MATH_INSTRUMENT_VARIABLE(hp);
-         result *= hp / exp(zgh);
-         BOOST_MATH_INSTRUMENT_VARIABLE(result);
-         if(tools::max_value<T>() / hp < result)
-            return policies::raise_overflow_error<T>(function, "Result of tgamma is too large to represent.", pol);
-         result *= hp;
-         BOOST_MATH_INSTRUMENT_VARIABLE(result);
-      }
-      else
-      {
-         BOOST_MATH_INSTRUMENT_VARIABLE(zgh);
-         BOOST_MATH_INSTRUMENT_VARIABLE(pow(zgh, z - boost::math::constants::half<T>()));
-         BOOST_MATH_INSTRUMENT_VARIABLE(exp(zgh));
-         result *= pow(zgh, z - boost::math::constants::half<T>()) / exp(zgh);
-         BOOST_MATH_INSTRUMENT_VARIABLE(result);
-      }
-   }
-   return result;
-}
-//
-// lgamma(z) with Lanczos support:
-//
-template <class T, class Policy, class Lanczos>
-T lgamma_imp(T z, const Policy& pol, const Lanczos& l, int* sign = 0)
-{
-#ifdef BOOST_MATH_INSTRUMENT
-   static bool b = false;
-   if(!b)
-   {
-      std::cout << "lgamma_imp called with " << typeid(z).name() << " " << typeid(l).name() << std::endl;
-      b = true;
-   }
-#endif
-
-   BOOST_MATH_STD_USING
-
-   static const char* function = "boost::math::lgamma<%1%>(%1%)";
-
-   T result = 0;
-   int sresult = 1;
-   if(z <= 0)
-   {
-      // reflection formula:
-      if(floor(z) == z)
-         return policies::raise_pole_error<T>(function, "Evaluation of lgamma at a negative integer %1%.", z, pol);
-
-      T t = sinpx(z);
-      z = -z;
-      if(t < 0)
-      {
-         t = -t;
-      }
-      else
-      {
-         sresult = -sresult;
-      }
-      result = log(boost::math::constants::pi<T>()) - lgamma_imp(z, pol, l) - log(t);
-   }
-   else if(z < 15)
-   {
-      typedef typename policies::precision<T, Policy>::type precision_type;
-      typedef typename mpl::if_<
-         mpl::and_<
-            mpl::less_equal<precision_type, mpl::int_<64> >, 
-            mpl::greater<precision_type, mpl::int_<0> > 
-         >,
-         mpl::int_<64>,
-         typename mpl::if_<
-            mpl::and_<
-               mpl::less_equal<precision_type, mpl::int_<113> >,
-               mpl::greater<precision_type, mpl::int_<0> > 
-            >,
-            mpl::int_<113>, mpl::int_<0> >::type
-          >::type tag_type;
-      result = lgamma_small_imp<T>(z, T(z - 1), T(z - 2), tag_type(), pol, l);
-   }
-   else if((z >= 3) && (z < 100) && (std::numeric_limits<T>::max_exponent >= 1024))
-   {
-      // taking the log of tgamma reduces the error, no danger of overflow here:
-      result = log(gamma_imp(z, pol, l));
-   }
-   else
-   {
-      // regular evaluation:
-      T zgh = static_cast<T>(z + Lanczos::g() - boost::math::constants::half<T>());
-      result = log(zgh) - 1;
-      result *= z - 0.5f;
-      result += log(Lanczos::lanczos_sum_expG_scaled(z));
-   }
-
-   if(sign)
-      *sign = sresult;
-   return result;
-}
-
-//
-// Incomplete gamma functions follow:
-//
-template <class T>
-struct upper_incomplete_gamma_fract
-{
-private:
-   T z, a;
-   int k;
-public:
-   typedef std::pair<T,T> result_type;
-
-   upper_incomplete_gamma_fract(T a1, T z1)
-      : z(z1-a1+1), a(a1), k(0)
-   {
-   }
-
-   result_type operator()()
-   {
-      ++k;
-      z += 2;
-      return result_type(k * (a - k), z);
-   }
-};
-
-template <class T>
-inline T upper_gamma_fraction(T a, T z, T eps)
-{
-   // Multiply result by z^a * e^-z to get the full
-   // upper incomplete integral.  Divide by tgamma(z)
-   // to normalise.
-   upper_incomplete_gamma_fract<T> f(a, z);
-   return 1 / (z - a + 1 + boost::math::tools::continued_fraction_a(f, eps));
-}
-
-template <class T>
-struct lower_incomplete_gamma_series
-{
-private:
-   T a, z, result;
-public:
-   typedef T result_type;
-   lower_incomplete_gamma_series(T a1, T z1) : a(a1), z(z1), result(1){}
-
-   T operator()()
-   {
-      T r = result;
-      a += 1;
-      result *= z/a;
-      return r;
-   }
-};
-
-template <class T, class Policy>
-inline T lower_gamma_series(T a, T z, const Policy& pol, T init_value = 0)
-{
-   // Multiply result by ((z^a) * (e^-z) / a) to get the full
-   // lower incomplete integral. Then divide by tgamma(a)
-   // to get the normalised value.
-   lower_incomplete_gamma_series<T> s(a, z);
-   boost::uintmax_t max_iter = policies::get_max_series_iterations<Policy>();
-   T factor = policies::get_epsilon<T, Policy>();
-   T result = boost::math::tools::sum_series(s, factor, max_iter, init_value);
-   policies::check_series_iterations<T>("boost::math::detail::lower_gamma_series<%1%>(%1%)", max_iter, pol);
-   return result;
-}
-
-//
-// Fully generic tgamma and lgamma use the incomplete partial
-// sums added together:
-//
-template <class T, class Policy>
-T gamma_imp(T z, const Policy& pol, const lanczos::undefined_lanczos& l)
-{
-   static const char* function = "boost::math::tgamma<%1%>(%1%)";
-   BOOST_MATH_STD_USING
-   if((z <= 0) && (floor(z) == z))
-      return policies::raise_pole_error<T>(function, "Evaluation of tgamma at a negative integer %1%.", z, pol);
-   if(z <= -20)
-   {
-      T result = gamma_imp(T(-z), pol, l) * sinpx(z);
-      if((fabs(result) < 1) && (tools::max_value<T>() * fabs(result) < boost::math::constants::pi<T>()))
-         return policies::raise_overflow_error<T>(function, "Result of tgamma is too large to represent.", pol);
-      result = -boost::math::constants::pi<T>() / result;
-      if(result == 0)
-         return policies::raise_underflow_error<T>(function, "Result of tgamma is too small to represent.", pol);
-      if((boost::math::fpclassify)(result) == (int)FP_SUBNORMAL)
-         return policies::raise_denorm_error<T>(function, "Result of tgamma is denormalized.", result, pol);
-      return result;
-   }
-   //
-   // The upper gamma fraction is *very* slow for z < 6, actually it's very
-   // slow to converge everywhere but recursing until z > 6 gets rid of the
-   // worst of it's behaviour.
-   //
-   T prefix = 1;
-   while(z < 6)
-   {
-      prefix /= z;
-      z += 1;
-   }
-   BOOST_MATH_INSTRUMENT_CODE(prefix);
-   if((floor(z) == z) && (z < max_factorial<T>::value))
-   {
-      prefix *= unchecked_factorial<T>(itrunc(z, pol) - 1);
-   }
-   else
-   {
-      prefix = prefix * pow(z / boost::math::constants::e<T>(), z);
-      BOOST_MATH_INSTRUMENT_CODE(prefix);
-      T sum = detail::lower_gamma_series(z, z, pol) / z;
-      BOOST_MATH_INSTRUMENT_CODE(sum);
-      sum += detail::upper_gamma_fraction(z, z, ::boost::math::policies::get_epsilon<T, Policy>());
-      BOOST_MATH_INSTRUMENT_CODE(sum);
-      if(fabs(tools::max_value<T>() / prefix) < fabs(sum))
-         return policies::raise_overflow_error<T>(function, "Result of tgamma is too large to represent.", pol);
-      BOOST_MATH_INSTRUMENT_CODE((sum * prefix));
-      return sum * prefix;
-   }
-   return prefix;
-}
-
-template <class T, class Policy>
-T lgamma_imp(T z, const Policy& pol, const lanczos::undefined_lanczos& l, int*sign)
-{
-   BOOST_MATH_STD_USING
-
-   static const char* function = "boost::math::lgamma<%1%>(%1%)";
-   T result = 0;
-   int sresult = 1;
-   if(z <= 0)
-   {
-      if(floor(z) == z)
-         return policies::raise_pole_error<T>(function, "Evaluation of tgamma at a negative integer %1%.", z, pol);
-      T t = detail::sinpx(z);
-      z = -z;
-      if(t < 0)
-      {
-         t = -t;
-      }
-      else
-      {
-         sresult = -sresult;
-      }
-      result = log(boost::math::constants::pi<T>()) - lgamma_imp(z, pol, l, 0) - log(t);
-   }
-   else if((z != 1) && (z != 2))
-   {
-      T limit = (std::max)(T(z+1), T(10));
-      T prefix = z * log(limit) - limit;
-      T sum = detail::lower_gamma_series(z, limit, pol) / z;
-      sum += detail::upper_gamma_fraction(z, limit, ::boost::math::policies::get_epsilon<T, Policy>());
-      result = log(sum) + prefix;
-   }
-   if(sign)
-      *sign = sresult;
-   return result;
-}
-//
-// This helper calculates tgamma(dz+1)-1 without cancellation errors,
-// used by the upper incomplete gamma with z < 1:
-//
-template <class T, class Policy, class Lanczos>
-T tgammap1m1_imp(T dz, Policy const& pol, const Lanczos& l)
-{
-   BOOST_MATH_STD_USING
-
-   typedef typename policies::precision<T,Policy>::type precision_type;
-
-   typedef typename mpl::if_<
-      mpl::or_<
-         mpl::less_equal<precision_type, mpl::int_<0> >,
-         mpl::greater<precision_type, mpl::int_<113> >
-      >,
-      typename mpl::if_<
-         is_same<Lanczos, lanczos::lanczos24m113>,
-         mpl::int_<113>,
-         mpl::int_<0>
-      >::type,
-      typename mpl::if_<
-         mpl::less_equal<precision_type, mpl::int_<64> >,
-         mpl::int_<64>, mpl::int_<113> >::type
-       >::type tag_type;
-
-   T result;
-   if(dz < 0)
-   {
-      if(dz < -0.5)
-      {
-         // Best method is simply to subtract 1 from tgamma:
-         result = boost::math::tgamma(1+dz, pol) - 1;
-         BOOST_MATH_INSTRUMENT_CODE(result);
-      }
-      else
-      {
-         // Use expm1 on lgamma:
-         result = boost::math::expm1(-boost::math::log1p(dz, pol) 
-            + lgamma_small_imp<T>(dz+2, dz + 1, dz, tag_type(), pol, l));
-         BOOST_MATH_INSTRUMENT_CODE(result);
-      }
-   }
-   else
-   {
-      if(dz < 2)
-      {
-         // Use expm1 on lgamma:
-         result = boost::math::expm1(lgamma_small_imp<T>(dz+1, dz, dz-1, tag_type(), pol, l), pol);
-         BOOST_MATH_INSTRUMENT_CODE(result);
-      }
-      else
-      {
-         // Best method is simply to subtract 1 from tgamma:
-         result = boost::math::tgamma(1+dz, pol) - 1;
-         BOOST_MATH_INSTRUMENT_CODE(result);
-      }
-   }
-
-   return result;
-}
-
-template <class T, class Policy>
-inline T tgammap1m1_imp(T dz, Policy const& pol,
-                 const ::boost::math::lanczos::undefined_lanczos& l)
-{
-   BOOST_MATH_STD_USING // ADL of std names
-   //
-   // There should be a better solution than this, but the
-   // algebra isn't easy for the general case....
-   // Start by subracting 1 from tgamma:
-   //
-   T result = gamma_imp(T(1 + dz), pol, l) - 1;
-   BOOST_MATH_INSTRUMENT_CODE(result);
-   //
-   // Test the level of cancellation error observed: we loose one bit
-   // for each power of 2 the result is less than 1.  If we would get
-   // more bits from our most precise lgamma rational approximation, 
-   // then use that instead:
-   //
-   BOOST_MATH_INSTRUMENT_CODE((dz > -0.5));
-   BOOST_MATH_INSTRUMENT_CODE((dz < 2));
-   BOOST_MATH_INSTRUMENT_CODE((ldexp(1.0, boost::math::policies::digits<T, Policy>()) * fabs(result) < 1e34));
-   if((dz > -0.5) && (dz < 2) && (ldexp(1.0, boost::math::policies::digits<T, Policy>()) * fabs(result) < 1e34))
-   {
-      result = tgammap1m1_imp(dz, pol, boost::math::lanczos::lanczos24m113());
-      BOOST_MATH_INSTRUMENT_CODE(result);
-   }
-   return result;
-}
-
-//
-// Series representation for upper fraction when z is small:
-//
-template <class T>
-struct small_gamma2_series
-{
-   typedef T result_type;
-
-   small_gamma2_series(T a_, T x_) : result(-x_), x(-x_), apn(a_+1), n(1){}
-
-   T operator()()
-   {
-      T r = result / (apn);
-      result *= x;
-      result /= ++n;
-      apn += 1;
-      return r;
-   }
-
-private:
-   T result, x, apn;
-   int n;
-};
-//
-// calculate power term prefix (z^a)(e^-z) used in the non-normalised
-// incomplete gammas:
-//
-template <class T, class Policy>
-T full_igamma_prefix(T a, T z, const Policy& pol)
-{
-   BOOST_MATH_STD_USING
-
-   T prefix;
-   T alz = a * log(z);
-
-   if(z >= 1)
-   {
-      if((alz < tools::log_max_value<T>()) && (-z > tools::log_min_value<T>()))
-      {
-         prefix = pow(z, a) * exp(-z);
-      }
-      else if(a >= 1)
-      {
-         prefix = pow(z / exp(z/a), a);
-      }
-      else
-      {
-         prefix = exp(alz - z);
-      }
-   }
-   else
-   {
-      if(alz > tools::log_min_value<T>())
-      {
-         prefix = pow(z, a) * exp(-z);
-      }
-      else if(z/a < tools::log_max_value<T>())
-      {
-         prefix = pow(z / exp(z/a), a);
-      }
-      else
-      {
-         prefix = exp(alz - z);
-      }
-   }
-   //
-   // This error handling isn't very good: it happens after the fact
-   // rather than before it...
-   //
-   if((boost::math::fpclassify)(prefix) == (int)FP_INFINITE)
-      policies::raise_overflow_error<T>("boost::math::detail::full_igamma_prefix<%1%>(%1%, %1%)", "Result of incomplete gamma function is too large to represent.", pol);
-
-   return prefix;
-}
-//
-// Compute (z^a)(e^-z)/tgamma(a)
-// most if the error occurs in this function:
-//
-template <class T, class Policy, class Lanczos>
-T regularised_gamma_prefix(T a, T z, const Policy& pol, const Lanczos& l)
-{
-   BOOST_MATH_STD_USING
-   T agh = a + static_cast<T>(Lanczos::g()) - T(0.5);
-   T prefix;
-   T d = ((z - a) - static_cast<T>(Lanczos::g()) + T(0.5)) / agh;
-
-   if(a < 1)
-   {
-      //
-      // We have to treat a < 1 as a special case because our Lanczos
-      // approximations are optimised against the factorials with a > 1,
-      // and for high precision types especially (128-bit reals for example)
-      // very small values of a can give rather eroneous results for gamma
-      // unless we do this:
-      //
-      // TODO: is this still required?  Lanczos approx should be better now?
-      //
-      if(z <= tools::log_min_value<T>())
-      {
-         // Oh dear, have to use logs, should be free of cancellation errors though:
-         return exp(a * log(z) - z - lgamma_imp(a, pol, l));
-      }
-      else
-      {
-         // direct calculation, no danger of overflow as gamma(a) < 1/a
-         // for small a.
-         return pow(z, a) * exp(-z) / gamma_imp(a, pol, l);
-      }
-   }
-   else if((fabs(d*d*a) <= 100) && (a > 150))
-   {
-      // special case for large a and a ~ z.
-      prefix = a * boost::math::log1pmx(d, pol) + z * static_cast<T>(0.5 - Lanczos::g()) / agh;
-      prefix = exp(prefix);
-   }
-   else
-   {
-      //
-      // general case.
-      // direct computation is most accurate, but use various fallbacks
-      // for different parts of the problem domain:
-      //
-      T alz = a * log(z / agh);
-      T amz = a - z;
-      if(((std::min)(alz, amz) <= tools::log_min_value<T>()) || ((std::max)(alz, amz) >= tools::log_max_value<T>()))
-      {
-         T amza = amz / a;
-         if(((std::min)(alz, amz)/2 > tools::log_min_value<T>()) && ((std::max)(alz, amz)/2 < tools::log_max_value<T>()))
-         {
-            // compute square root of the result and then square it:
-            T sq = pow(z / agh, a / 2) * exp(amz / 2);
-            prefix = sq * sq;
-         }
-         else if(((std::min)(alz, amz)/4 > tools::log_min_value<T>()) && ((std::max)(alz, amz)/4 < tools::log_max_value<T>()) && (z > a))
-         {
-            // compute the 4th root of the result then square it twice:
-            T sq = pow(z / agh, a / 4) * exp(amz / 4);
-            prefix = sq * sq;
-            prefix *= prefix;
-         }
-         else if((amza > tools::log_min_value<T>()) && (amza < tools::log_max_value<T>()))
-         {
-            prefix = pow((z * exp(amza)) / agh, a);
-         }
-         else
-         {
-            prefix = exp(alz + amz);
-         }
-      }
-      else
-      {
-         prefix = pow(z / agh, a) * exp(amz);
-      }
-   }
-   prefix *= sqrt(agh / boost::math::constants::e<T>()) / Lanczos::lanczos_sum_expG_scaled(a);
-   return prefix;
-}
-//
-// And again, without Lanczos support:
-//
-template <class T, class Policy>
-T regularised_gamma_prefix(T a, T z, const Policy& pol, const lanczos::undefined_lanczos&)
-{
-   BOOST_MATH_STD_USING
-
-   T limit = (std::max)(T(10), a);
-   T sum = detail::lower_gamma_series(a, limit, pol) / a;
-   sum += detail::upper_gamma_fraction(a, limit, ::boost::math::policies::get_epsilon<T, Policy>());
-
-   if(a < 10)
-   {
-      // special case for small a:
-      T prefix = pow(z / 10, a);
-      prefix *= exp(10-z);
-      if(0 == prefix)
-      {
-         prefix = pow((z * exp((10-z)/a)) / 10, a);
-      }
-      prefix /= sum;
-      return prefix;
-   }
-
-   T zoa = z / a;
-   T amz = a - z;
-   T alzoa = a * log(zoa);
-   T prefix;
-   if(((std::min)(alzoa, amz) <= tools::log_min_value<T>()) || ((std::max)(alzoa, amz) >= tools::log_max_value<T>()))
-   {
-      T amza = amz / a;
-      if((amza <= tools::log_min_value<T>()) || (amza >= tools::log_max_value<T>()))
-      {
-         prefix = exp(alzoa + amz);
-      }
-      else
-      {
-         prefix = pow(zoa * exp(amza), a);
-      }
-   }
-   else
-   {
-      prefix = pow(zoa, a) * exp(amz);
-   }
-   prefix /= sum;
-   return prefix;
-}
-//
-// Upper gamma fraction for very small a:
-//
-template <class T, class Policy>
-inline T tgamma_small_upper_part(T a, T x, const Policy& pol, T* pgam = 0, bool invert = false, T* pderivative = 0)
-{
-   BOOST_MATH_STD_USING  // ADL of std functions.
-   //
-   // Compute the full upper fraction (Q) when a is very small:
-   //
-   T result;
-   result = boost::math::tgamma1pm1(a, pol);
-   if(pgam)
-      *pgam = (result + 1) / a;
-   T p = boost::math::powm1(x, a, pol);
-   result -= p;
-   result /= a;
-   detail::small_gamma2_series<T> s(a, x);
-   boost::uintmax_t max_iter = policies::get_max_series_iterations<Policy>() - 10;
-   p += 1;
-   if(pderivative)
-      *pderivative = p / (*pgam * exp(x));
-   T init_value = invert ? *pgam : 0;
-   result = -p * tools::sum_series(s, boost::math::policies::get_epsilon<T, Policy>(), max_iter, (init_value - result) / p);
-   policies::check_series_iterations<T>("boost::math::tgamma_small_upper_part<%1%>(%1%, %1%)", max_iter, pol);
-   if(invert)
-      result = -result;
-   return result;
-}
-//
-// Upper gamma fraction for integer a:
-//
-template <class T, class Policy>
-inline T finite_gamma_q(T a, T x, Policy const& pol, T* pderivative = 0)
-{
-   //
-   // Calculates normalised Q when a is an integer:
-   //
-   BOOST_MATH_STD_USING
-   T e = exp(-x);
-   T sum = e;
-   if(sum != 0)
-   {
-      T term = sum;
-      for(unsigned n = 1; n < a; ++n)
-      {
-         term /= n;
-         term *= x;
-         sum += term;
-      }
-   }
-   if(pderivative)
-   {
-      *pderivative = e * pow(x, a) / boost::math::unchecked_factorial<T>(itrunc(T(a - 1), pol));
-   }
-   return sum;
-}
-//
-// Upper gamma fraction for half integer a:
-//
-template <class T, class Policy>
-T finite_half_gamma_q(T a, T x, T* p_derivative, const Policy& pol)
-{
-   //
-   // Calculates normalised Q when a is a half-integer:
-   //
-   BOOST_MATH_STD_USING
-   T e = boost::math::erfc(sqrt(x), pol);
-   if((e != 0) && (a > 1))
-   {
-      T term = exp(-x) / sqrt(constants::pi<T>() * x);
-      term *= x;
-      static const T half = T(1) / 2;
-      term /= half;
-      T sum = term;
-      for(unsigned n = 2; n < a; ++n)
-      {
-         term /= n - half;
-         term *= x;
-         sum += term;
-      }
-      e += sum;
-      if(p_derivative)
-      {
-         *p_derivative = 0;
-      }
-   }
-   else if(p_derivative)
-   {
-      // We'll be dividing by x later, so calculate derivative * x:
-      *p_derivative = sqrt(x) * exp(-x) / constants::root_pi<T>();
-   }
-   return e;
-}
-//
-// Main incomplete gamma entry point, handles all four incomplete gamma's:
-//
-template <class T, class Policy>
-T gamma_incomplete_imp(T a, T x, bool normalised, bool invert, 
-                       const Policy& pol, T* p_derivative)
-{
-   static const char* function = "boost::math::gamma_p<%1%>(%1%, %1%)";
-   if(a <= 0)
-      policies::raise_domain_error<T>(function, "Argument a to the incomplete gamma function must be greater than zero (got a=%1%).", a, pol);
-   if(x < 0)
-      policies::raise_domain_error<T>(function, "Argument x to the incomplete gamma function must be >= 0 (got x=%1%).", x, pol);
-
-   BOOST_MATH_STD_USING
-
-   typedef typename lanczos::lanczos<T, Policy>::type lanczos_type;
-
-   T result = 0; // Just to avoid warning C4701: potentially uninitialized local variable 'result' used
-
-   BOOST_ASSERT((p_derivative == 0) || (normalised == true));
-
-   bool is_int, is_half_int;
-   bool is_small_a = (a < 30) && (a <= x + 1) && (x < tools::log_max_value<T>());
-   if(is_small_a)
-   {
-      T fa = floor(a);
-      is_int = (fa == a);
-      is_half_int = is_int ? false : (fabs(fa - a) == 0.5f);
-   }
-   else
-   {
-      is_int = is_half_int = false;
-   }
-
-   int eval_method;
-   
-   if(is_int && (x > 0.6))
-   {
-      // calculate Q via finite sum:
-      invert = !invert;
-      eval_method = 0;
-   }
-   else if(is_half_int && (x > 0.2))
-   {
-      // calculate Q via finite sum for half integer a:
-      invert = !invert;
-      eval_method = 1;
-   }
-   else if(x < 0.5)
-   {
-      //
-      // Changeover criterion chosen to give a changeover at Q ~ 0.33
-      //
-      if(-0.4 / log(x) < a)
-      {
-         eval_method = 2;
-      }
-      else
-      {
-         eval_method = 3;
-      }
-   }
-   else if(x < 1.1)
-   {
-      //
-      // Changover here occurs when P ~ 0.75 or Q ~ 0.25:
-      //
-      if(x * 0.75f < a)
-      {
-         eval_method = 2;
-      }
-      else
-      {
-         eval_method = 3;
-      }
-   }
-   else
-   {
-      //
-      // Begin by testing whether we're in the "bad" zone
-      // where the result will be near 0.5 and the usual
-      // series and continued fractions are slow to converge:
-      //
-      bool use_temme = false;
-      if(normalised && std::numeric_limits<T>::is_specialized && (a > 20))
-      {
-         T sigma = fabs((x-a)/a);
-         if((a > 200) && (policies::digits<T, Policy>() <= 113))
-         {
-            //
-            // This limit is chosen so that we use Temme's expansion
-            // only if the result would be larger than about 10^-6.
-            // Below that the regular series and continued fractions
-            // converge OK, and if we use Temme's method we get increasing
-            // errors from the dominant erfc term as it's (inexact) argument
-            // increases in magnitude.
-            //
-            if(20 / a > sigma * sigma)
-               use_temme = true;
-         }
-         else if(policies::digits<T, Policy>() <= 64)
-         {
-            // Note in this zone we can't use Temme's expansion for 
-            // types longer than an 80-bit real:
-            // it would require too many terms in the polynomials.
-            if(sigma < 0.4)
-               use_temme = true;
-         }
-      }
-      if(use_temme)
-      {
-         eval_method = 5;
-      }
-      else
-      {
-         //
-         // Regular case where the result will not be too close to 0.5.
-         //
-         // Changeover here occurs at P ~ Q ~ 0.5
-         // Note that series computation of P is about x2 faster than continued fraction
-         // calculation of Q, so try and use the CF only when really necessary, especially
-         // for small x.
-         //
-         if(x - (1 / (3 * x)) < a)
-         {
-            eval_method = 2;
-         }
-         else
-         {
-            eval_method = 4;
-            invert = !invert;
-         }
-      }
-   }
-
-   switch(eval_method)
-   {
-   case 0:
-      {
-         result = finite_gamma_q(a, x, pol, p_derivative);
-         if(normalised == false)
-            result *= boost::math::tgamma(a, pol);
-         break;
-      }
-   case 1:
-      {
-         result = finite_half_gamma_q(a, x, p_derivative, pol);
-         if(normalised == false)
-            result *= boost::math::tgamma(a, pol);
-         if(p_derivative && (*p_derivative == 0))
-            *p_derivative = regularised_gamma_prefix(a, x, pol, lanczos_type());
-         break;
-      }
-   case 2:
-      {
-         // Compute P:
-         result = normalised ? regularised_gamma_prefix(a, x, pol, lanczos_type()) : full_igamma_prefix(a, x, pol);
-         if(p_derivative)
-            *p_derivative = result;
-         if(result != 0)
-         {
-            T init_value = 0;
-            if(invert)
-            {
-               init_value = -a * (normalised ? 1 : boost::math::tgamma(a, pol)) / result;
-            }
-            result *= detail::lower_gamma_series(a, x, pol, init_value) / a;
-            if(invert)
-            {
-               invert = false;
-               result = -result;
-            }
-         }
-         break;
-      }
-   case 3:
-      {
-         // Compute Q:
-         invert = !invert;
-         T g;
-         result = tgamma_small_upper_part(a, x, pol, &g, invert, p_derivative);
-         invert = false;
-         if(normalised)
-            result /= g;
-         break;
-      }
-   case 4:
-      {
-         // Compute Q:
-         result = normalised ? regularised_gamma_prefix(a, x, pol, lanczos_type()) : full_igamma_prefix(a, x, pol);
-         if(p_derivative)
-            *p_derivative = result;
-         if(result != 0)
-            result *= upper_gamma_fraction(a, x, policies::get_epsilon<T, Policy>());
-         break;
-      }
-   case 5:
-      {
-         //
-         // Use compile time dispatch to the appropriate
-         // Temme asymptotic expansion.  This may be dead code
-         // if T does not have numeric limits support, or has
-         // too many digits for the most precise version of
-         // these expansions, in that case we'll be calling
-         // an empty function.
-         //
-         typedef typename policies::precision<T, Policy>::type precision_type;
-
-         typedef typename mpl::if_<
-            mpl::or_<mpl::equal_to<precision_type, mpl::int_<0> >,
-            mpl::greater<precision_type, mpl::int_<113> > >,
-            mpl::int_<0>,
-            typename mpl::if_<
-               mpl::less_equal<precision_type, mpl::int_<53> >,
-               mpl::int_<53>,
-               typename mpl::if_<
-                  mpl::less_equal<precision_type, mpl::int_<64> >,
-                  mpl::int_<64>,
-                  mpl::int_<113>
-               >::type
-            >::type
-         >::type tag_type;
-
-         result = igamma_temme_large(a, x, pol, static_cast<tag_type const*>(0));
-         if(x >= a)
-            invert = !invert;
-         if(p_derivative)
-            *p_derivative = regularised_gamma_prefix(a, x, pol, lanczos_type());
-         break;
-      }
-   }
-
-   if(normalised && (result > 1))
-      result = 1;
-   if(invert)
-   {
-      T gam = normalised ? 1 : boost::math::tgamma(a, pol);
-      result = gam - result;
-   }
-   if(p_derivative)
-   {
-      //
-      // Need to convert prefix term to derivative:
-      //
-      if((x < 1) && (tools::max_value<T>() * x < *p_derivative))
-      {
-         // overflow, just return an arbitrarily large value:
-         *p_derivative = tools::max_value<T>() / 2;
-      }
-
-      *p_derivative /= x;
-   }
-
-   return result;
-}
-
-//
-// Ratios of two gamma functions:
-//
-template <class T, class Policy, class Lanczos>
-T tgamma_delta_ratio_imp_lanczos(T z, T delta, const Policy& pol, const Lanczos&)
-{
-   BOOST_MATH_STD_USING
-   T zgh = z + Lanczos::g() - constants::half<T>();
-   T result;
-   if(fabs(delta) < 10)
-   {
-      result = exp((constants::half<T>() - z) * boost::math::log1p(delta / zgh, pol));
-   }
-   else
-   {
-      result = pow(zgh / (zgh + delta), z - constants::half<T>());
-   }
-   result *= pow(constants::e<T>() / (zgh + delta), delta);
-   result *= Lanczos::lanczos_sum(z) / Lanczos::lanczos_sum(T(z + delta));
-   return result;
-}
-//
-// And again without Lanczos support this time:
-//
-template <class T, class Policy>
-T tgamma_delta_ratio_imp_lanczos(T z, T delta, const Policy& pol, const lanczos::undefined_lanczos&)
-{
-   BOOST_MATH_STD_USING
-   //
-   // The upper gamma fraction is *very* slow for z < 6, actually it's very
-   // slow to converge everywhere but recursing until z > 6 gets rid of the
-   // worst of it's behaviour.
-   //
-   T prefix = 1;
-   T zd = z + delta;
-   while((zd < 6) && (z < 6))
-   {
-      prefix /= z;
-      prefix *= zd;
-      z += 1;
-      zd += 1;
-   }
-   if(delta < 10)
-   {
-      prefix *= exp(-z * boost::math::log1p(delta / z, pol));
-   }
-   else
-   {
-      prefix *= pow(z / zd, z);
-   }
-   prefix *= pow(constants::e<T>() / zd, delta);
-   T sum = detail::lower_gamma_series(z, z, pol) / z;
-   sum += detail::upper_gamma_fraction(z, z, ::boost::math::policies::get_epsilon<T, Policy>());
-   T sumd = detail::lower_gamma_series(zd, zd, pol) / zd;
-   sumd += detail::upper_gamma_fraction(zd, zd, ::boost::math::policies::get_epsilon<T, Policy>());
-   sum /= sumd;
-   if(fabs(tools::max_value<T>() / prefix) < fabs(sum))
-      return policies::raise_overflow_error<T>("boost::math::tgamma_delta_ratio<%1%>(%1%, %1%)", "Result of tgamma is too large to represent.", pol);
-   return sum * prefix;
-}
-
-template <class T, class Policy>
-T tgamma_delta_ratio_imp(T z, T delta, const Policy& pol)
-{
-   BOOST_MATH_STD_USING
-
-   if(z <= 0)
-      policies::raise_domain_error<T>("boost::math::tgamma_delta_ratio<%1%>(%1%, %1%)", "Gamma function ratios only implemented for positive arguments (got a=%1%).", z, pol);
-   if(z+delta <= 0)
-      policies::raise_domain_error<T>("boost::math::tgamma_delta_ratio<%1%>(%1%, %1%)", "Gamma function ratios only implemented for positive arguments (got b=%1%).", z+delta, pol);
-
-   if(floor(delta) == delta)
-   {
-      if(floor(z) == z)
-      {
-         //
-         // Both z and delta are integers, see if we can just use table lookup
-         // of the factorials to get the result:
-         //
-         if((z <= max_factorial<T>::value) && (z + delta <= max_factorial<T>::value))
-         {
-            return unchecked_factorial<T>((unsigned)itrunc(z, pol) - 1) / unchecked_factorial<T>((unsigned)itrunc(T(z + delta), pol) - 1);
-         }
-      }
-      if(fabs(delta) < 20)
-      {
-         //
-         // delta is a small integer, we can use a finite product:
-         //
-         if(delta == 0)
-            return 1;
-         if(delta < 0)
-         {
-            z -= 1;
-            T result = z;
-            while(0 != (delta += 1))
-            {
-               z -= 1;
-               result *= z;
-            }
-            return result;
-         }
-         else
-         {
-            T result = 1 / z;
-            while(0 != (delta -= 1))
-            {
-               z += 1;
-               result /= z;
-            }
-            return result;
-         }
-      }
-   }
-   typedef typename lanczos::lanczos<T, Policy>::type lanczos_type;
-   return tgamma_delta_ratio_imp_lanczos(z, delta, pol, lanczos_type());
-}
-
-template <class T, class Policy>
-T tgamma_ratio_imp(T x, T y, const Policy& pol)
-{
-   BOOST_MATH_STD_USING
-
-   if((x <= tools::min_value<T>()) || (boost::math::isinf)(x))
-      policies::raise_domain_error<T>("boost::math::tgamma_ratio<%1%>(%1%, %1%)", "Gamma function ratios only implemented for positive arguments (got a=%1%).", x, pol);
-   if((y <= tools::min_value<T>()) || (boost::math::isinf)(y))
-      policies::raise_domain_error<T>("boost::math::tgamma_ratio<%1%>(%1%, %1%)", "Gamma function ratios only implemented for positive arguments (got b=%1%).", y, pol);
-
-   if((x < max_factorial<T>::value) && (y < max_factorial<T>::value))
-   {
-      // Rather than subtracting values, lets just call the gamma functions directly:
-      return boost::math::tgamma(x, pol) / boost::math::tgamma(y, pol);
-   }
-   T prefix = 1;
-   if(x < 1)
-   {
-      if(y < 2 * max_factorial<T>::value)
-      {
-         // We need to sidestep on x as well, otherwise we'll underflow
-         // before we get to factor in the prefix term:
-         prefix /= x;
-         x += 1;
-         while(y >=  max_factorial<T>::value)
-         {
-            y -= 1;
-            prefix /= y;
-         }
-         return prefix * boost::math::tgamma(x, pol) / boost::math::tgamma(y, pol);
-      }
-      //
-      // result is almost certainly going to underflow to zero, try logs just in case:
-      //
-      return exp(boost::math::lgamma(x, pol) - boost::math::lgamma(y, pol));
-   }
-   if(y < 1)
-   {
-      if(x < 2 * max_factorial<T>::value)
-      {
-         // We need to sidestep on y as well, otherwise we'll overflow
-         // before we get to factor in the prefix term:
-         prefix *= y;
-         y += 1;
-         while(x >= max_factorial<T>::value)
-         {
-            x -= 1;
-            prefix *= x;
-         }
-         return prefix * boost::math::tgamma(x, pol) / boost::math::tgamma(y, pol);
-      }
-      //
-      // Result will almost certainly overflow, try logs just in case:
-      //
-      return exp(boost::math::lgamma(x, pol) - boost::math::lgamma(y, pol));
-   }
-   //
-   // Regular case, x and y both large and similar in magnitude:
-   //
-   return boost::math::tgamma_delta_ratio(x, y - x, pol);
-}
-
-template <class T, class Policy>
-T gamma_p_derivative_imp(T a, T x, const Policy& pol)
-{
-   //
-   // Usual error checks first:
-   //
-   if(a <= 0)
-      policies::raise_domain_error<T>("boost::math::gamma_p_derivative<%1%>(%1%, %1%)", "Argument a to the incomplete gamma function must be greater than zero (got a=%1%).", a, pol);
-   if(x < 0)
-      policies::raise_domain_error<T>("boost::math::gamma_p_derivative<%1%>(%1%, %1%)", "Argument x to the incomplete gamma function must be >= 0 (got x=%1%).", x, pol);
-   //
-   // Now special cases:
-   //
-   if(x == 0)
-   {
-      return (a > 1) ? 0 :
-         (a == 1) ? 1 : policies::raise_overflow_error<T>("boost::math::gamma_p_derivative<%1%>(%1%, %1%)", 0, pol);
-   }
-   //
-   // Normal case:
-   //
-   typedef typename lanczos::lanczos<T, Policy>::type lanczos_type;
-   T f1 = detail::regularised_gamma_prefix(a, x, pol, lanczos_type());
-   if((x < 1) && (tools::max_value<T>() * x < f1))
-   {
-      // overflow:
-      return policies::raise_overflow_error<T>("boost::math::gamma_p_derivative<%1%>(%1%, %1%)", 0, pol);
-   }
-
-   f1 /= x;
-
-   return f1;
-}
-
-template <class T, class Policy>
-inline typename tools::promote_args<T>::type 
-   tgamma(T z, const Policy& /* pol */, const mpl::true_)
-{
-   BOOST_FPU_EXCEPTION_GUARD
-   typedef typename tools::promote_args<T>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   typedef typename lanczos::lanczos<value_type, Policy>::type evaluation_type;
-   typedef typename policies::normalise<
-      Policy, 
-      policies::promote_float<false>, 
-      policies::promote_double<false>, 
-      policies::discrete_quantile<>,
-      policies::assert_undefined<> >::type forwarding_policy;
-   return policies::checked_narrowing_cast<result_type, forwarding_policy>(detail::gamma_imp(static_cast<value_type>(z), forwarding_policy(), evaluation_type()), "boost::math::tgamma<%1%>(%1%)");
-}
-
-template <class T, class Policy>
-struct igamma_initializer
-{
-   struct init
-   {
-      init()
-      {
-         typedef typename policies::precision<T, Policy>::type precision_type;
-
-         typedef typename mpl::if_<
-            mpl::or_<mpl::equal_to<precision_type, mpl::int_<0> >,
-            mpl::greater<precision_type, mpl::int_<113> > >,
-            mpl::int_<0>,
-            typename mpl::if_<
-               mpl::less_equal<precision_type, mpl::int_<53> >,
-               mpl::int_<53>,
-               typename mpl::if_<
-                  mpl::less_equal<precision_type, mpl::int_<64> >,
-                  mpl::int_<64>,
-                  mpl::int_<113>
-               >::type
-            >::type
-         >::type tag_type;
-
-         do_init(tag_type());
-      }
-      template <int N>
-      static void do_init(const mpl::int_<N>&)
-      {
-         boost::math::gamma_p(static_cast<T>(400), static_cast<T>(400), Policy());
-      }
-      static void do_init(const mpl::int_<53>&){}
-      void force_instantiate()const{}
-   };
-   static const init initializer;
-   static void force_instantiate()
-   {
-      initializer.force_instantiate();
-   }
-};
-
-template <class T, class Policy>
-const typename igamma_initializer<T, Policy>::init igamma_initializer<T, Policy>::initializer;
-
-template <class T, class Policy>
-struct lgamma_initializer
-{
-   struct init
-   {
-      init()
-      {
-         typedef typename policies::precision<T, Policy>::type precision_type;
-         typedef typename mpl::if_<
-            mpl::and_<
-               mpl::less_equal<precision_type, mpl::int_<64> >, 
-               mpl::greater<precision_type, mpl::int_<0> > 
-            >,
-            mpl::int_<64>,
-            typename mpl::if_<
-               mpl::and_<
-                  mpl::less_equal<precision_type, mpl::int_<113> >,
-                  mpl::greater<precision_type, mpl::int_<0> > 
-               >,
-               mpl::int_<113>, mpl::int_<0> >::type
-             >::type tag_type;
-         do_init(tag_type());
-      }
-      static void do_init(const mpl::int_<64>&)
-      {
-         boost::math::lgamma(static_cast<T>(2.5), Policy());
-         boost::math::lgamma(static_cast<T>(1.25), Policy());
-         boost::math::lgamma(static_cast<T>(1.75), Policy());
-      }
-      static void do_init(const mpl::int_<113>&)
-      {
-         boost::math::lgamma(static_cast<T>(2.5), Policy());
-         boost::math::lgamma(static_cast<T>(1.25), Policy());
-         boost::math::lgamma(static_cast<T>(1.5), Policy());
-         boost::math::lgamma(static_cast<T>(1.75), Policy());
-      }
-      static void do_init(const mpl::int_<0>&)
-      {
-      }
-      void force_instantiate()const{}
-   };
-   static const init initializer;
-   static void force_instantiate()
-   {
-      initializer.force_instantiate();
-   }
-};
-
-template <class T, class Policy>
-const typename lgamma_initializer<T, Policy>::init lgamma_initializer<T, Policy>::initializer;
-
-template <class T1, class T2, class Policy>
-inline typename tools::promote_args<T1, T2>::type
-   tgamma(T1 a, T2 z, const Policy&, const mpl::false_)
-{
-   BOOST_FPU_EXCEPTION_GUARD
-   typedef typename tools::promote_args<T1, T2>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   // typedef typename lanczos::lanczos<value_type, Policy>::type evaluation_type;
-   typedef typename policies::normalise<
-      Policy, 
-      policies::promote_float<false>, 
-      policies::promote_double<false>, 
-      policies::discrete_quantile<>,
-      policies::assert_undefined<> >::type forwarding_policy;
-
-   igamma_initializer<value_type, forwarding_policy>::force_instantiate();
-
-   return policies::checked_narrowing_cast<result_type, forwarding_policy>(
-      detail::gamma_incomplete_imp(static_cast<value_type>(a),
-      static_cast<value_type>(z), false, true,
-      forwarding_policy(), static_cast<value_type*>(0)), "boost::math::tgamma<%1%>(%1%, %1%)");
-}
-
-template <class T1, class T2>
-inline typename tools::promote_args<T1, T2>::type
-   tgamma(T1 a, T2 z, const mpl::false_ tag)
-{
-   return tgamma(a, z, policies::policy<>(), tag);
-}
-
-
-} // namespace detail
-
-template <class T>
-inline typename tools::promote_args<T>::type 
-   tgamma(T z)
-{
-   return tgamma(z, policies::policy<>());
-}
-
-template <class T, class Policy>
-inline typename tools::promote_args<T>::type 
-   lgamma(T z, int* sign, const Policy&)
-{
-   BOOST_FPU_EXCEPTION_GUARD
-   typedef typename tools::promote_args<T>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   typedef typename lanczos::lanczos<value_type, Policy>::type evaluation_type;
-   typedef typename policies::normalise<
-      Policy, 
-      policies::promote_float<false>, 
-      policies::promote_double<false>, 
-      policies::discrete_quantile<>,
-      policies::assert_undefined<> >::type forwarding_policy;
-
-   detail::lgamma_initializer<value_type, forwarding_policy>::force_instantiate();
-
-   return policies::checked_narrowing_cast<result_type, forwarding_policy>(detail::lgamma_imp(static_cast<value_type>(z), forwarding_policy(), evaluation_type(), sign), "boost::math::lgamma<%1%>(%1%)");
-}
-
-template <class T>
-inline typename tools::promote_args<T>::type 
-   lgamma(T z, int* sign)
-{
-   return lgamma(z, sign, policies::policy<>());
-}
-
-template <class T, class Policy>
-inline typename tools::promote_args<T>::type 
-   lgamma(T x, const Policy& pol)
-{
-   return ::boost::math::lgamma(x, 0, pol);
-}
-
-template <class T>
-inline typename tools::promote_args<T>::type 
-   lgamma(T x)
-{
-   return ::boost::math::lgamma(x, 0, policies::policy<>());
-}
-
-template <class T, class Policy>
-inline typename tools::promote_args<T>::type 
-   tgamma1pm1(T z, const Policy& /* pol */)
-{
-   BOOST_FPU_EXCEPTION_GUARD
-   typedef typename tools::promote_args<T>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   typedef typename lanczos::lanczos<value_type, Policy>::type evaluation_type;
-   typedef typename policies::normalise<
-      Policy, 
-      policies::promote_float<false>, 
-      policies::promote_double<false>, 
-      policies::discrete_quantile<>,
-      policies::assert_undefined<> >::type forwarding_policy;
-
-   return policies::checked_narrowing_cast<typename remove_cv<result_type>::type, forwarding_policy>(detail::tgammap1m1_imp(static_cast<value_type>(z), forwarding_policy(), evaluation_type()), "boost::math::tgamma1pm1<%!%>(%1%)");
-}
-
-template <class T>
-inline typename tools::promote_args<T>::type 
-   tgamma1pm1(T z)
-{
-   return tgamma1pm1(z, policies::policy<>());
-}
-
-//
-// Full upper incomplete gamma:
-//
-template <class T1, class T2>
-inline typename tools::promote_args<T1, T2>::type
-   tgamma(T1 a, T2 z)
-{
-   //
-   // Type T2 could be a policy object, or a value, select the 
-   // right overload based on T2:
-   //
-   typedef typename policies::is_policy<T2>::type maybe_policy;
-   return detail::tgamma(a, z, maybe_policy());
-}
-template <class T1, class T2, class Policy>
-inline typename tools::promote_args<T1, T2>::type
-   tgamma(T1 a, T2 z, const Policy& pol)
-{
-   return detail::tgamma(a, z, pol, mpl::false_());
-}
-//
-// Full lower incomplete gamma:
-//
-template <class T1, class T2, class Policy>
-inline typename tools::promote_args<T1, T2>::type
-   tgamma_lower(T1 a, T2 z, const Policy&)
-{
-   BOOST_FPU_EXCEPTION_GUARD
-   typedef typename tools::promote_args<T1, T2>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   // typedef typename lanczos::lanczos<value_type, Policy>::type evaluation_type;
-   typedef typename policies::normalise<
-      Policy, 
-      policies::promote_float<false>, 
-      policies::promote_double<false>, 
-      policies::discrete_quantile<>,
-      policies::assert_undefined<> >::type forwarding_policy;
-
-   detail::igamma_initializer<value_type, forwarding_policy>::force_instantiate();
-
-   return policies::checked_narrowing_cast<result_type, forwarding_policy>(
-      detail::gamma_incomplete_imp(static_cast<value_type>(a),
-      static_cast<value_type>(z), false, false,
-      forwarding_policy(), static_cast<value_type*>(0)), "tgamma_lower<%1%>(%1%, %1%)");
-}
-template <class T1, class T2>
-inline typename tools::promote_args<T1, T2>::type
-   tgamma_lower(T1 a, T2 z)
-{
-   return tgamma_lower(a, z, policies::policy<>());
-}
-//
-// Regularised upper incomplete gamma:
-//
-template <class T1, class T2, class Policy>
-inline typename tools::promote_args<T1, T2>::type
-   gamma_q(T1 a, T2 z, const Policy& /* pol */)
-{
-   BOOST_FPU_EXCEPTION_GUARD
-   typedef typename tools::promote_args<T1, T2>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   // typedef typename lanczos::lanczos<value_type, Policy>::type evaluation_type;
-   typedef typename policies::normalise<
-      Policy, 
-      policies::promote_float<false>, 
-      policies::promote_double<false>, 
-      policies::discrete_quantile<>,
-      policies::assert_undefined<> >::type forwarding_policy;
-
-   detail::igamma_initializer<value_type, forwarding_policy>::force_instantiate();
-
-   return policies::checked_narrowing_cast<result_type, forwarding_policy>(
-      detail::gamma_incomplete_imp(static_cast<value_type>(a),
-      static_cast<value_type>(z), true, true,
-      forwarding_policy(), static_cast<value_type*>(0)), "gamma_q<%1%>(%1%, %1%)");
-}
-template <class T1, class T2>
-inline typename tools::promote_args<T1, T2>::type
-   gamma_q(T1 a, T2 z)
-{
-   return gamma_q(a, z, policies::policy<>());
-}
-//
-// Regularised lower incomplete gamma:
-//
-template <class T1, class T2, class Policy>
-inline typename tools::promote_args<T1, T2>::type
-   gamma_p(T1 a, T2 z, const Policy&)
-{
-   BOOST_FPU_EXCEPTION_GUARD
-   typedef typename tools::promote_args<T1, T2>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   // typedef typename lanczos::lanczos<value_type, Policy>::type evaluation_type;
-   typedef typename policies::normalise<
-      Policy, 
-      policies::promote_float<false>, 
-      policies::promote_double<false>, 
-      policies::discrete_quantile<>,
-      policies::assert_undefined<> >::type forwarding_policy;
-
-   detail::igamma_initializer<value_type, forwarding_policy>::force_instantiate();
-
-   return policies::checked_narrowing_cast<result_type, forwarding_policy>(
-      detail::gamma_incomplete_imp(static_cast<value_type>(a),
-      static_cast<value_type>(z), true, false,
-      forwarding_policy(), static_cast<value_type*>(0)), "gamma_p<%1%>(%1%, %1%)");
-}
-template <class T1, class T2>
-inline typename tools::promote_args<T1, T2>::type
-   gamma_p(T1 a, T2 z)
-{
-   return gamma_p(a, z, policies::policy<>());
-}
-
-// ratios of gamma functions:
-template <class T1, class T2, class Policy>
-inline typename tools::promote_args<T1, T2>::type 
-   tgamma_delta_ratio(T1 z, T2 delta, const Policy& /* pol */)
-{
-   BOOST_FPU_EXCEPTION_GUARD
-   typedef typename tools::promote_args<T1, T2>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   typedef typename policies::normalise<
-      Policy, 
-      policies::promote_float<false>, 
-      policies::promote_double<false>, 
-      policies::discrete_quantile<>,
-      policies::assert_undefined<> >::type forwarding_policy;
-
-   return policies::checked_narrowing_cast<result_type, forwarding_policy>(detail::tgamma_delta_ratio_imp(static_cast<value_type>(z), static_cast<value_type>(delta), forwarding_policy()), "boost::math::tgamma_delta_ratio<%1%>(%1%, %1%)");
-}
-template <class T1, class T2>
-inline typename tools::promote_args<T1, T2>::type 
-   tgamma_delta_ratio(T1 z, T2 delta)
-{
-   return tgamma_delta_ratio(z, delta, policies::policy<>());
-}
-template <class T1, class T2, class Policy>
-inline typename tools::promote_args<T1, T2>::type 
-   tgamma_ratio(T1 a, T2 b, const Policy&)
-{
-   typedef typename tools::promote_args<T1, T2>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   typedef typename policies::normalise<
-      Policy, 
-      policies::promote_float<false>, 
-      policies::promote_double<false>, 
-      policies::discrete_quantile<>,
-      policies::assert_undefined<> >::type forwarding_policy;
-
-   return policies::checked_narrowing_cast<result_type, forwarding_policy>(detail::tgamma_ratio_imp(static_cast<value_type>(a), static_cast<value_type>(b), forwarding_policy()), "boost::math::tgamma_delta_ratio<%1%>(%1%, %1%)");
-}
-template <class T1, class T2>
-inline typename tools::promote_args<T1, T2>::type 
-   tgamma_ratio(T1 a, T2 b)
-{
-   return tgamma_ratio(a, b, policies::policy<>());
-}
-
-template <class T1, class T2, class Policy>
-inline typename tools::promote_args<T1, T2>::type 
-   gamma_p_derivative(T1 a, T2 x, const Policy&)
-{
-   BOOST_FPU_EXCEPTION_GUARD
-   typedef typename tools::promote_args<T1, T2>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   typedef typename policies::normalise<
-      Policy, 
-      policies::promote_float<false>, 
-      policies::promote_double<false>, 
-      policies::discrete_quantile<>,
-      policies::assert_undefined<> >::type forwarding_policy;
-
-   return policies::checked_narrowing_cast<result_type, forwarding_policy>(detail::gamma_p_derivative_imp(static_cast<value_type>(a), static_cast<value_type>(x), forwarding_policy()), "boost::math::gamma_p_derivative<%1%>(%1%, %1%)");
-}
-template <class T1, class T2>
-inline typename tools::promote_args<T1, T2>::type 
-   gamma_p_derivative(T1 a, T2 x)
-{
-   return gamma_p_derivative(a, x, policies::policy<>());
-}
-
-} // namespace math
-} // namespace boost
-
-#ifdef BOOST_MSVC
-# pragma warning(pop)
-#endif
-
-#include <boost/math/special_functions/detail/igamma_inverse.hpp>
-#include <boost/math/special_functions/detail/gamma_inva.hpp>
-#include <boost/math/special_functions/erf.hpp>
-
-#endif // BOOST_MATH_SF_GAMMA_HPP
-
-
-
-
diff --git a/boost/math/special_functions/hankel.hpp b/boost/math/special_functions/hankel.hpp
deleted file mode 100644
index 76ceb65..0000000
--- a/boost/math/special_functions/hankel.hpp
+++ /dev/null
@@ -1,179 +0,0 @@
-// Copyright John Maddock 2012.
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt
-// or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_HANKEL_HPP
-#define BOOST_MATH_HANKEL_HPP
-
-#include <boost/math/special_functions/bessel.hpp>
-
-namespace boost{ namespace math{
-
-namespace detail{
-
-template <class T, class Policy>
-std::complex<T> hankel_imp(T v, T x, const bessel_no_int_tag&, const Policy& pol, int sign)
-{
-   BOOST_MATH_STD_USING
-   static const char* function = "boost::math::cyl_hankel_1<%1%>(%1%,%1%)";
-
-   if(x < 0)
-   {
-      bool isint_v = floor(v) == v;
-      T j, y;
-      bessel_jy(v, -x, &j, &y, need_j | need_y, pol);
-      std::complex<T> cx(x), cv(v);
-      std::complex<T> j_result, y_result;
-      if(isint_v)
-      {
-         int s = (iround(v) & 1) ? -1 : 1;
-         j_result = j * s;
-         y_result = T(s) * (y - (2 / constants::pi<T>()) * (log(-x) - log(cx)) * j);
-      }
-      else
-      {
-         j_result = pow(cx, v) * pow(-cx, -v) * j;
-         T p1 = pow(-x, v);
-         std::complex<T> p2 = pow(cx, v);
-         y_result = p1 * y / p2
-            + (p2 / p1 - p1 / p2) * j / tan(constants::pi<T>() * v);
-      }
-      // multiply y_result by i:
-      y_result = std::complex<T>(-sign * y_result.imag(), sign * y_result.real());
-      return j_result + y_result;
-   }
-
-   if(x == 0)
-   {
-      if(v == 0)
-      {
-         // J is 1, Y is -INF
-         return std::complex<T>(1, sign * -policies::raise_overflow_error<T>(function, 0, pol));
-      }
-      else
-      {
-         // At least one of J and Y is complex infinity:
-         return std::complex<T>(policies::raise_overflow_error<T>(function, 0, pol), sign * policies::raise_overflow_error<T>(function, 0, pol));
-      }
-   }
-
-   T j, y;
-   bessel_jy(v, x, &j, &y, need_j | need_y, pol);
-   return std::complex<T>(j, sign * y);
-}
-
-template <class T, class Policy>
-std::complex<T> hankel_imp(int v, T x, const bessel_int_tag&, const Policy& pol, int sign);
-
-template <class T, class Policy>
-inline std::complex<T> hankel_imp(T v, T x, const bessel_maybe_int_tag&, const Policy& pol, int sign)
-{
-   BOOST_MATH_STD_USING  // ADL of std names.
-   int ival = detail::iconv(v, pol);
-   if(0 == v - ival)
-   {
-      return hankel_imp(ival, x, bessel_int_tag(), pol, sign);
-   }
-   return hankel_imp(v, x, bessel_no_int_tag(), pol, sign);
-}
-
-template <class T, class Policy>
-inline std::complex<T> hankel_imp(int v, T x, const bessel_int_tag&, const Policy& pol, int sign)
-{
-   BOOST_MATH_STD_USING
-   if((std::abs(v) < 200) && (x > 0))
-      return std::complex<T>(bessel_jn(v, x, pol), sign * bessel_yn(v, x, pol));
-   return hankel_imp(static_cast<T>(v), x, bessel_no_int_tag(), pol, sign);
-}
-
-template <class T, class Policy>
-inline std::complex<T> sph_hankel_imp(T v, T x, const Policy& pol, int sign)
-{
-   BOOST_MATH_STD_USING
-   return constants::root_half_pi<T>() * hankel_imp(v + 0.5f, x, bessel_no_int_tag(), pol, sign) / sqrt(std::complex<T>(x));
-}
-
-} // namespace detail
-
-template <class T1, class T2, class Policy>
-inline std::complex<typename detail::bessel_traits<T1, T2, Policy>::result_type> cyl_hankel_1(T1 v, T2 x, const Policy& pol)
-{
-   BOOST_FPU_EXCEPTION_GUARD
-   typedef typename detail::bessel_traits<T1, T2, Policy>::result_type result_type;
-   typedef typename detail::bessel_traits<T1, T2, Policy>::optimisation_tag tag_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   return policies::checked_narrowing_cast<std::complex<result_type>, Policy>(detail::hankel_imp<value_type>(v, static_cast<value_type>(x), tag_type(), pol, 1), "boost::math::cyl_hankel_1<%1%>(%1%,%1%)");
-}
-
-template <class T1, class T2>
-inline std::complex<typename detail::bessel_traits<T1, T2, policies::policy<> >::result_type> cyl_hankel_1(T1 v, T2 x)
-{
-   return cyl_hankel_1(v, x, policies::policy<>());
-}
-
-template <class T1, class T2, class Policy>
-inline std::complex<typename detail::bessel_traits<T1, T2, Policy>::result_type> cyl_hankel_2(T1 v, T2 x, const Policy& pol)
-{
-   BOOST_FPU_EXCEPTION_GUARD
-   typedef typename detail::bessel_traits<T1, T2, Policy>::result_type result_type;
-   typedef typename detail::bessel_traits<T1, T2, Policy>::optimisation_tag tag_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   return policies::checked_narrowing_cast<std::complex<result_type>, Policy>(detail::hankel_imp<value_type>(v, static_cast<value_type>(x), tag_type(), pol, -1), "boost::math::cyl_hankel_1<%1%>(%1%,%1%)");
-}
-
-template <class T1, class T2>
-inline std::complex<typename detail::bessel_traits<T1, T2, policies::policy<> >::result_type> cyl_hankel_2(T1 v, T2 x)
-{
-   return cyl_hankel_2(v, x, policies::policy<>());
-}
-
-template <class T1, class T2, class Policy>
-inline std::complex<typename detail::bessel_traits<T1, T2, Policy>::result_type> sph_hankel_1(T1 v, T2 x, const Policy&)
-{
-   BOOST_FPU_EXCEPTION_GUARD
-   typedef typename detail::bessel_traits<T1, T2, Policy>::result_type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   typedef typename policies::normalise<
-      Policy, 
-      policies::promote_float<false>, 
-      policies::promote_double<false>, 
-      policies::discrete_quantile<>,
-      policies::assert_undefined<> >::type forwarding_policy;
-
-   return policies::checked_narrowing_cast<std::complex<result_type>, Policy>(detail::sph_hankel_imp<value_type>(static_cast<value_type>(v), static_cast<value_type>(x), forwarding_policy(), 1), "boost::math::sph_hankel_1<%1%>(%1%,%1%)");
-}
-
-template <class T1, class T2>
-inline std::complex<typename detail::bessel_traits<T1, T2, policies::policy<> >::result_type> sph_hankel_1(T1 v, T2 x)
-{
-   return sph_hankel_1(v, x, policies::policy<>());
-}
-
-template <class T1, class T2, class Policy>
-inline std::complex<typename detail::bessel_traits<T1, T2, Policy>::result_type> sph_hankel_2(T1 v, T2 x, const Policy&)
-{
-   BOOST_FPU_EXCEPTION_GUARD
-   typedef typename detail::bessel_traits<T1, T2, Policy>::result_type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   typedef typename policies::normalise<
-      Policy, 
-      policies::promote_float<false>, 
-      policies::promote_double<false>, 
-      policies::discrete_quantile<>,
-      policies::assert_undefined<> >::type forwarding_policy;
-
-   return policies::checked_narrowing_cast<std::complex<result_type>, Policy>(detail::sph_hankel_imp<value_type>(static_cast<value_type>(v), static_cast<value_type>(x), forwarding_policy(), -1), "boost::math::sph_hankel_1<%1%>(%1%,%1%)");
-}
-
-template <class T1, class T2>
-inline std::complex<typename detail::bessel_traits<T1, T2, policies::policy<> >::result_type> sph_hankel_2(T1 v, T2 x)
-{
-   return sph_hankel_2(v, x, policies::policy<>());
-}
-
-}} // namespaces
-
-#endif // BOOST_MATH_HANKEL_HPP
-
diff --git a/boost/math/special_functions/hermite.hpp b/boost/math/special_functions/hermite.hpp
deleted file mode 100644
index 1221f41..0000000
--- a/boost/math/special_functions/hermite.hpp
+++ /dev/null
@@ -1,76 +0,0 @@
-
-//  (C) Copyright John Maddock 2006.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_SPECIAL_HERMITE_HPP
-#define BOOST_MATH_SPECIAL_HERMITE_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/math/special_functions/math_fwd.hpp>
-#include <boost/math/tools/config.hpp>
-#include <boost/math/policies/error_handling.hpp>
-
-namespace boost{
-namespace math{
-
-// Recurrance relation for Hermite polynomials:
-template <class T1, class T2, class T3>
-inline typename tools::promote_args<T1, T2, T3>::type 
-   hermite_next(unsigned n, T1 x, T2 Hn, T3 Hnm1)
-{
-   return (2 * x * Hn - 2 * n * Hnm1);
-}
-
-namespace detail{
-
-// Implement Hermite polynomials via recurrance:
-template <class T>
-T hermite_imp(unsigned n, T x)
-{
-   T p0 = 1;
-   T p1 = 2 * x;
-
-   if(n == 0)
-      return p0;
-
-   unsigned c = 1;
-
-   while(c < n)
-   {
-      std::swap(p0, p1);
-      p1 = hermite_next(c, x, p0, p1);
-      ++c;
-   }
-   return p1;
-}
-
-} // namespace detail
-
-template <class T, class Policy>
-inline typename tools::promote_args<T>::type 
-   hermite(unsigned n, T x, const Policy&)
-{
-   typedef typename tools::promote_args<T>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   return policies::checked_narrowing_cast<result_type, Policy>(detail::hermite_imp(n, static_cast<value_type>(x)), "boost::math::hermite<%1%>(unsigned, %1%)");
-}
-
-template <class T>
-inline typename tools::promote_args<T>::type 
-   hermite(unsigned n, T x)
-{
-   return boost::math::hermite(n, x, policies::policy<>());
-}
-
-} // namespace math
-} // namespace boost
-
-#endif // BOOST_MATH_SPECIAL_HERMITE_HPP
-
-
-
diff --git a/boost/math/special_functions/hypot.hpp b/boost/math/special_functions/hypot.hpp
deleted file mode 100644
index efe1a3f..0000000
--- a/boost/math/special_functions/hypot.hpp
+++ /dev/null
@@ -1,86 +0,0 @@
-//  (C) Copyright John Maddock 2005-2006.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_HYPOT_INCLUDED
-#define BOOST_MATH_HYPOT_INCLUDED
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/math/tools/config.hpp>
-#include <boost/math/tools/precision.hpp>
-#include <boost/math/policies/error_handling.hpp>
-#include <boost/math/special_functions/math_fwd.hpp>
-#include <boost/config/no_tr1/cmath.hpp>
-#include <algorithm> // for swap
-
-#ifdef BOOST_NO_STDC_NAMESPACE
-namespace std{ using ::sqrt; using ::fabs; }
-#endif
-
-namespace boost{ namespace math{ namespace detail{
-
-template <class T, class Policy>
-T hypot_imp(T x, T y, const Policy& pol)
-{
-   //
-   // Normalize x and y, so that both are positive and x >= y:
-   //
-   using std::fabs; using std::sqrt; // ADL of std names
-
-   x = fabs(x);
-   y = fabs(y);
-
-#ifdef BOOST_MSVC
-#pragma warning(push) 
-#pragma warning(disable: 4127)
-#endif
-   // special case, see C99 Annex F:
-   if(std::numeric_limits<T>::has_infinity
-      && ((x == std::numeric_limits<T>::infinity())
-      || (y == std::numeric_limits<T>::infinity())))
-      return policies::raise_overflow_error<T>("boost::math::hypot<%1%>(%1%,%1%)", 0, pol);
-#ifdef BOOST_MSVC
-#pragma warning(pop)
-#endif
-
-   if(y > x)
-      (std::swap)(x, y);
-
-   if(x * tools::epsilon<T>() >= y)
-      return x;
-
-   T rat = y / x;
-   return x * sqrt(1 + rat*rat);
-} // template <class T> T hypot(T x, T y)
-
-}
-
-template <class T1, class T2>
-inline typename tools::promote_args<T1, T2>::type 
-   hypot(T1 x, T2 y)
-{
-   typedef typename tools::promote_args<T1, T2>::type result_type;
-   return detail::hypot_imp(
-      static_cast<result_type>(x), static_cast<result_type>(y), policies::policy<>());
-}
-
-template <class T1, class T2, class Policy>
-inline typename tools::promote_args<T1, T2>::type 
-   hypot(T1 x, T2 y, const Policy& pol)
-{
-   typedef typename tools::promote_args<T1, T2>::type result_type;
-   return detail::hypot_imp(
-      static_cast<result_type>(x), static_cast<result_type>(y), pol);
-}
-
-} // namespace math
-} // namespace boost
-
-#endif // BOOST_MATH_HYPOT_INCLUDED
-
-
-
diff --git a/boost/math/special_functions/jacobi_elliptic.hpp b/boost/math/special_functions/jacobi_elliptic.hpp
deleted file mode 100644
index 60ef97e..0000000
--- a/boost/math/special_functions/jacobi_elliptic.hpp
+++ /dev/null
@@ -1,320 +0,0 @@
-// Copyright John Maddock 2012.
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt
-// or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_JACOBI_ELLIPTIC_HPP
-#define BOOST_MATH_JACOBI_ELLIPTIC_HPP
-
-#include <boost/math/tools/precision.hpp>
-#include <boost/math/tools/promotion.hpp>
-#include <boost/math/policies/error_handling.hpp>
-
-namespace boost{ namespace math{
-
-namespace detail{
-
-template <class T, class Policy>
-T jacobi_recurse(const T& x, const T& k, T anm1, T bnm1, unsigned N, T* pTn, const Policy& pol)
-{
-   BOOST_MATH_STD_USING
-   ++N;
-   T Tn;
-   T cn = (anm1 - bnm1) / 2;
-   T an = (anm1 + bnm1) / 2;
-   if(cn < policies::get_epsilon<T, Policy>())
-   {
-      Tn = ldexp(T(1), (int)N) * x * an;
-   }
-   else
-      Tn = jacobi_recurse<T>(x, k, an, sqrt(anm1 * bnm1), N, 0, pol);
-   if(pTn)
-      *pTn = Tn;
-   return (Tn + asin((cn / an) * sin(Tn))) / 2;
-}
-
-template <class T, class Policy>
-T jacobi_imp(const T& x, const T& k, T* cn, T* dn, const Policy& pol, const char* function)
-{
-   BOOST_MATH_STD_USING
-   if(k < 0)
-   {
-      *cn = policies::raise_domain_error<T>(function, "Modulus k must be positive but got %1%.", k, pol);
-      *dn = *cn;
-      return *cn;
-   }
-   if(k > 1)
-   {
-      T xp = x * k;
-      T kp = 1 / k;
-      T snp, cnp, dnp;
-      snp = jacobi_imp(xp, kp, &cnp, &dnp, pol, function);
-      *cn = dnp;
-      *dn = cnp;
-      return snp * kp;
-   }
-   //
-   // Special cases first:
-   //
-   if(x == 0)
-   {
-      *cn = *dn = 1;
-      return 0;
-   }
-   if(k == 0)
-   {
-      *cn = cos(x);
-      *dn = 1;
-      return sin(x);
-   }
-   if(k == 1)
-   {
-      *cn = *dn = 1 / cosh(x);
-      return tanh(x);
-   }
-   //
-   // Asymptotic forms from A&S 16.13:
-   //
-   if(k < tools::forth_root_epsilon<T>())
-   {
-      T su = sin(x);
-      T cu = cos(x);
-      T m = k * k;
-      *dn = 1 - m * su * su / 2;
-      *cn = cu + m * (x - su * cu) * su / 4;
-      return su - m * (x - su * cu) * cu / 4;
-   }
-   /*  Can't get this to work to adequate precision - disabled for now...
-   //
-   // Asymptotic forms from A&S 16.15:
-   //
-   if(k > 1 - tools::root_epsilon<T>())
-   {
-      T tu = tanh(x);
-      T su = sinh(x);
-      T cu = cosh(x);
-      T sec = 1 / cu;
-      T kp = 1 - k;
-      T m1 = 2 * kp - kp * kp;
-      *dn = sec + m1 * (su * cu + x) * tu * sec / 4;
-      *cn = sec - m1 * (su * cu - x) * tu * sec / 4;
-      T sn = tu;
-      T sn2 = m1 * (x * sec * sec - tu) / 4;
-      T sn3 = (72 * x * cu + 4 * (8 * x * x - 5) * su - 19 * sinh(3 * x) + sinh(5 * x)) * sec * sec * sec * m1 * m1 / 512;
-      return sn + sn2 - sn3;
-   }*/
-   T T1;
-   T kc = 1 - k;
-   T k_prime = k < 0.5 ? T(sqrt(1 - k * k)) : T(sqrt(2 * kc - kc * kc));
-   T T0 = jacobi_recurse(x, k, T(1), k_prime, 0, &T1, pol);
-   *cn = cos(T0);
-   *dn = cos(T0) / cos(T1 - T0);
-   return sin(T0);
-}
-
-} // namespace detail
-
-template <class T, class U, class V, class Policy>
-inline typename tools::promote_args<T, U, V>::type jacobi_elliptic(T k, U theta, V* pcn, V* pdn, const Policy&)
-{
-   BOOST_FPU_EXCEPTION_GUARD
-   typedef typename tools::promote_args<T>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   typedef typename policies::normalise<
-      Policy, 
-      policies::promote_float<false>, 
-      policies::promote_double<false>, 
-      policies::discrete_quantile<>,
-      policies::assert_undefined<> >::type forwarding_policy;
-
-   static const char* function = "boost::math::jacobi_elliptic<%1%>(%1%)";
-
-   value_type sn, cn, dn;
-   sn = detail::jacobi_imp<value_type>(static_cast<value_type>(theta), static_cast<value_type>(k), &cn, &dn, forwarding_policy(), function);
-   if(pcn)
-      *pcn = policies::checked_narrowing_cast<result_type, Policy>(cn, function);
-   if(pdn)
-      *pdn = policies::checked_narrowing_cast<result_type, Policy>(dn, function);
-   return policies::checked_narrowing_cast<result_type, Policy>(sn, function);;
-}
-
-template <class T, class U, class V>
-inline typename tools::promote_args<T, U, V>::type jacobi_elliptic(T k, U theta, V* pcn, V* pdn)
-{
-   return jacobi_elliptic(k, theta, pcn, pdn, policies::policy<>());
-}
-
-template <class U, class T, class Policy>
-inline typename tools::promote_args<T, U>::type jacobi_sn(U k, T theta, const Policy& pol)
-{
-   typedef typename tools::promote_args<T, U>::type result_type;
-   return jacobi_elliptic(static_cast<result_type>(k), static_cast<result_type>(theta), static_cast<result_type*>(0), static_cast<result_type*>(0), pol);
-}
-
-template <class U, class T>
-inline typename tools::promote_args<T, U>::type jacobi_sn(U k, T theta)
-{
-   return jacobi_sn(k, theta, policies::policy<>());
-}
-
-template <class T, class U, class Policy>
-inline typename tools::promote_args<T, U>::type jacobi_cn(T k, U theta, const Policy& pol)
-{
-   typedef typename tools::promote_args<T, U>::type result_type;
-   result_type cn;
-   jacobi_elliptic(static_cast<result_type>(k), static_cast<result_type>(theta), &cn, static_cast<result_type*>(0), pol);
-   return cn;
-}
-
-template <class T, class U>
-inline typename tools::promote_args<T, U>::type jacobi_cn(T k, U theta)
-{
-   return jacobi_cn(k, theta, policies::policy<>());
-}
-
-template <class T, class U, class Policy>
-inline typename tools::promote_args<T, U>::type jacobi_dn(T k, U theta, const Policy& pol)
-{
-   typedef typename tools::promote_args<T, U>::type result_type;
-   result_type dn;
-   jacobi_elliptic(static_cast<result_type>(k), static_cast<result_type>(theta), static_cast<result_type*>(0), &dn, pol);
-   return dn;
-}
-
-template <class T, class U>
-inline typename tools::promote_args<T, U>::type jacobi_dn(T k, U theta)
-{
-   return jacobi_dn(k, theta, policies::policy<>());
-}
-
-template <class T, class U, class Policy>
-inline typename tools::promote_args<T, U>::type jacobi_cd(T k, U theta, const Policy& pol)
-{
-   typedef typename tools::promote_args<T, U>::type result_type;
-   result_type cn, dn;
-   jacobi_elliptic(static_cast<result_type>(k), static_cast<result_type>(theta), &cn, &dn, pol);
-   return cn / dn;
-}
-
-template <class T, class U>
-inline typename tools::promote_args<T, U>::type jacobi_cd(T k, U theta)
-{
-   return jacobi_cd(k, theta, policies::policy<>());
-}
-
-template <class T, class U, class Policy>
-inline typename tools::promote_args<T, U>::type jacobi_dc(T k, U theta, const Policy& pol)
-{
-   typedef typename tools::promote_args<T, U>::type result_type;
-   result_type cn, dn;
-   jacobi_elliptic(static_cast<result_type>(k), static_cast<result_type>(theta), &cn, &dn, pol);
-   return dn / cn;
-}
-
-template <class T, class U>
-inline typename tools::promote_args<T, U>::type jacobi_dc(T k, U theta)
-{
-   return jacobi_dc(k, theta, policies::policy<>());
-}
-
-template <class T, class U, class Policy>
-inline typename tools::promote_args<T, U>::type jacobi_ns(T k, U theta, const Policy& pol)
-{
-   typedef typename tools::promote_args<T, U>::type result_type;
-   return 1 / jacobi_elliptic(static_cast<result_type>(k), static_cast<result_type>(theta), static_cast<result_type*>(0), static_cast<result_type*>(0), pol);
-}
-
-template <class T, class U>
-inline typename tools::promote_args<T, U>::type jacobi_ns(T k, U theta)
-{
-   return jacobi_ns(k, theta, policies::policy<>());
-}
-
-template <class T, class U, class Policy>
-inline typename tools::promote_args<T, U>::type jacobi_sd(T k, U theta, const Policy& pol)
-{
-   typedef typename tools::promote_args<T, U>::type result_type;
-   result_type sn, dn;
-   sn = jacobi_elliptic(static_cast<result_type>(k), static_cast<result_type>(theta), static_cast<result_type*>(0), &dn, pol);
-   return sn / dn;
-}
-
-template <class T, class U>
-inline typename tools::promote_args<T, U>::type jacobi_sd(T k, U theta)
-{
-   return jacobi_sd(k, theta, policies::policy<>());
-}
-
-template <class T, class U, class Policy>
-inline typename tools::promote_args<T, U>::type jacobi_ds(T k, U theta, const Policy& pol)
-{
-   typedef typename tools::promote_args<T, U>::type result_type;
-   result_type sn, dn;
-   sn = jacobi_elliptic(static_cast<result_type>(k), static_cast<result_type>(theta), static_cast<result_type*>(0), &dn, pol);
-   return dn / sn;
-}
-
-template <class T, class U>
-inline typename tools::promote_args<T, U>::type jacobi_ds(T k, U theta)
-{
-   return jacobi_ds(k, theta, policies::policy<>());
-}
-
-template <class T, class U, class Policy>
-inline typename tools::promote_args<T, U>::type jacobi_nc(T k, U theta, const Policy& pol)
-{
-   return 1 / jacobi_cn(k, theta, pol);
-}
-
-template <class T, class U>
-inline typename tools::promote_args<T, U>::type jacobi_nc(T k, U theta)
-{
-   return jacobi_nc(k, theta, policies::policy<>());
-}
-
-template <class T, class U, class Policy>
-inline typename tools::promote_args<T, U>::type jacobi_nd(T k, U theta, const Policy& pol)
-{
-   return 1 / jacobi_dn(k, theta, pol);
-}
-
-template <class T, class U>
-inline typename tools::promote_args<T, U>::type jacobi_nd(T k, U theta)
-{
-   return jacobi_nd(k, theta, policies::policy<>());
-}
-
-template <class T, class U, class Policy>
-inline typename tools::promote_args<T, U>::type jacobi_sc(T k, U theta, const Policy& pol)
-{
-   typedef typename tools::promote_args<T, U>::type result_type;
-   result_type sn, cn;
-   sn = jacobi_elliptic(static_cast<result_type>(k), static_cast<result_type>(theta), &cn, static_cast<result_type*>(0), pol);
-   return sn / cn;
-}
-
-template <class T, class U>
-inline typename tools::promote_args<T, U>::type jacobi_sc(T k, U theta)
-{
-   return jacobi_sc(k, theta, policies::policy<>());
-}
-
-template <class T, class U, class Policy>
-inline typename tools::promote_args<T, U>::type jacobi_cs(T k, U theta, const Policy& pol)
-{
-   typedef typename tools::promote_args<T, U>::type result_type;
-   result_type sn, cn;
-   sn = jacobi_elliptic(static_cast<result_type>(k), static_cast<result_type>(theta), &cn, static_cast<result_type*>(0), pol);
-   return cn / sn;
-}
-
-template <class T, class U>
-inline typename tools::promote_args<T, U>::type jacobi_cs(T k, U theta)
-{
-   return jacobi_cs(k, theta, policies::policy<>());
-}
-
-}} // namespaces
-
-#endif // BOOST_MATH_JACOBI_ELLIPTIC_HPP
diff --git a/boost/math/special_functions/laguerre.hpp b/boost/math/special_functions/laguerre.hpp
deleted file mode 100644
index 070927f..0000000
--- a/boost/math/special_functions/laguerre.hpp
+++ /dev/null
@@ -1,139 +0,0 @@
-
-//  (C) Copyright John Maddock 2006.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_SPECIAL_LAGUERRE_HPP
-#define BOOST_MATH_SPECIAL_LAGUERRE_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/math/special_functions/math_fwd.hpp>
-#include <boost/math/tools/config.hpp>
-#include <boost/math/policies/error_handling.hpp>
-
-namespace boost{
-namespace math{
-
-// Recurrance relation for Laguerre polynomials:
-template <class T1, class T2, class T3>
-inline typename tools::promote_args<T1, T2, T3>::type  
-   laguerre_next(unsigned n, T1 x, T2 Ln, T3 Lnm1)
-{
-   typedef typename tools::promote_args<T1, T2, T3>::type result_type;
-   return ((2 * n + 1 - result_type(x)) * result_type(Ln) - n * result_type(Lnm1)) / (n + 1);
-}
-
-namespace detail{
-
-// Implement Laguerre polynomials via recurrance:
-template <class T>
-T laguerre_imp(unsigned n, T x)
-{
-   T p0 = 1;
-   T p1 = 1 - x;
-
-   if(n == 0)
-      return p0;
-
-   unsigned c = 1;
-
-   while(c < n)
-   {
-      std::swap(p0, p1);
-      p1 = laguerre_next(c, x, p0, p1);
-      ++c;
-   }
-   return p1;
-}
-
-template <class T, class Policy>
-inline typename tools::promote_args<T>::type 
-laguerre(unsigned n, T x, const Policy&, const mpl::true_&)
-{
-   typedef typename tools::promote_args<T>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   return policies::checked_narrowing_cast<result_type, Policy>(detail::laguerre_imp(n, static_cast<value_type>(x)), "boost::math::laguerre<%1%>(unsigned, %1%)");
-}
-
-template <class T>
-inline typename tools::promote_args<T>::type 
-   laguerre(unsigned n, unsigned m, T x, const mpl::false_&)
-{
-   return boost::math::laguerre(n, m, x, policies::policy<>());
-}
-
-} // namespace detail
-
-template <class T>
-inline typename tools::promote_args<T>::type 
-   laguerre(unsigned n, T x)
-{
-   return laguerre(n, x, policies::policy<>());
-}
-
-// Recurrence for associated polynomials:
-template <class T1, class T2, class T3>
-inline typename tools::promote_args<T1, T2, T3>::type  
-   laguerre_next(unsigned n, unsigned l, T1 x, T2 Pl, T3 Plm1)
-{
-   typedef typename tools::promote_args<T1, T2, T3>::type result_type;
-   return ((2 * n + l + 1 - result_type(x)) * result_type(Pl) - (n + l) * result_type(Plm1)) / (n+1);
-}
-
-namespace detail{
-// Laguerre Associated Polynomial:
-template <class T, class Policy>
-T laguerre_imp(unsigned n, unsigned m, T x, const Policy& pol)
-{
-   // Special cases:
-   if(m == 0)
-      return boost::math::laguerre(n, x, pol);
-
-   T p0 = 1;
-   
-   if(n == 0)
-      return p0;
-
-   T p1 = m + 1 - x;
-
-   unsigned c = 1;
-
-   while(c < n)
-   {
-      std::swap(p0, p1);
-      p1 = laguerre_next(c, m, x, p0, p1);
-      ++c;
-   }
-   return p1;
-}
-
-}
-
-template <class T, class Policy>
-inline typename tools::promote_args<T>::type 
-   laguerre(unsigned n, unsigned m, T x, const Policy& pol)
-{
-   typedef typename tools::promote_args<T>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   return policies::checked_narrowing_cast<result_type, Policy>(detail::laguerre_imp(n, m, static_cast<value_type>(x), pol), "boost::math::laguerre<%1%>(unsigned, unsigned, %1%)");
-}
-
-template <class T1, class T2>
-inline typename laguerre_result<T1, T2>::type 
-   laguerre(unsigned n, T1 m, T2 x)
-{
-   typedef typename policies::is_policy<T2>::type tag_type;
-   return detail::laguerre(n, m, x, tag_type());
-}
-
-} // namespace math
-} // namespace boost
-
-#endif // BOOST_MATH_SPECIAL_LAGUERRE_HPP
-
-
-
diff --git a/boost/math/special_functions/lanczos.hpp b/boost/math/special_functions/lanczos.hpp
deleted file mode 100644
index ed89154..0000000
--- a/boost/math/special_functions/lanczos.hpp
+++ /dev/null
@@ -1,1296 +0,0 @@
-//  (C) Copyright John Maddock 2006.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_SPECIAL_FUNCTIONS_LANCZOS
-#define BOOST_MATH_SPECIAL_FUNCTIONS_LANCZOS
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/config.hpp>
-#include <boost/math/tools/big_constant.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/limits.hpp>
-#include <boost/cstdint.hpp>
-#include <boost/math/tools/rational.hpp>
-#include <boost/math/policies/policy.hpp>
-#include <boost/mpl/less_equal.hpp>
-
-#include <limits.h>
-
-namespace boost{ namespace math{ namespace lanczos{
-
-//
-// Individual lanczos approximations start here.
-//
-// Optimal values for G for each N are taken from
-// http://web.mala.bc.ca/pughg/phdThesis/phdThesis.pdf,
-// as are the theoretical error bounds.
-//
-// Constants calculated using the method described by Godfrey
-// http://my.fit.edu/~gabdo/gamma.txt and elaborated by Toth at
-// http://www.rskey.org/gamma.htm using NTL::RR at 1000 bit precision.
-//
-// Begin with a small helper to force initialization of constants prior
-// to main.  This makes the constant initialization thread safe, even
-// when called with a user-defined number type.
-//
-template <class Lanczos, class T>
-struct lanczos_initializer
-{
-   struct init
-   {
-      init()
-      {
-         T t(1);
-         Lanczos::lanczos_sum(t);
-         Lanczos::lanczos_sum_expG_scaled(t);
-         Lanczos::lanczos_sum_near_1(t);
-         Lanczos::lanczos_sum_near_2(t);
-         Lanczos::g();
-      }
-      void force_instantiate()const{}
-   };
-   static const init initializer;
-   static void force_instantiate()
-   {
-      initializer.force_instantiate();
-   }
-};
-template <class Lanczos, class T>
-typename lanczos_initializer<Lanczos, T>::init const lanczos_initializer<Lanczos, T>::initializer;
-//
-// Lanczos Coefficients for N=6 G=5.581
-// Max experimental error (with arbitary precision arithmetic) 9.516e-12
-// Generated with compiler: Microsoft Visual C++ version 8.0 on Win32 at Mar 23 2006
-//
-struct lanczos6 : public mpl::int_<35>
-{
-   //
-   // Produces slightly better than float precision when evaluated at
-   // double precision:
-   //
-   template <class T>
-   static T lanczos_sum(const T& z)
-   {
-      lanczos_initializer<lanczos6, T>::force_instantiate(); // Ensure our constants get initialized before main()
-      static const T num[6] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 35, 8706.349592549009182288174442774377925882)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 35, 8523.650341121874633477483696775067709735)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 35, 3338.029219476423550899999750161289306564)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 35, 653.6424994294008795995653541449610986791)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 35, 63.99951844938187085666201263218840287667)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 35, 2.506628274631006311133031631822390264407))
-      };
-      static const BOOST_MATH_INT_TABLE_TYPE(T, boost::uint16_t) denom[6] = {
-         static_cast<boost::uint16_t>(0u),
-         static_cast<boost::uint16_t>(24u),
-         static_cast<boost::uint16_t>(50u),
-         static_cast<boost::uint16_t>(35u),
-         static_cast<boost::uint16_t>(10u),
-         static_cast<boost::uint16_t>(1u)
-      };
-      return boost::math::tools::evaluate_rational(num, denom, z);
-   }
-
-   template <class T>
-   static T lanczos_sum_expG_scaled(const T& z)
-   {
-      lanczos_initializer<lanczos6, T>::force_instantiate(); // Ensure our constants get initialized before main()
-      static const T num[6] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 35, 32.81244541029783471623665933780748627823)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 35, 32.12388941444332003446077108933558534361)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 35, 12.58034729455216106950851080138931470954)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 35, 2.463444478353241423633780693218408889251)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 35, 0.2412010548258800231126240760264822486599)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 35, 0.009446967704539249494420221613134244048319))
-      };
-      static const BOOST_MATH_INT_TABLE_TYPE(T, boost::uint16_t) denom[6] = {
-         static_cast<boost::uint16_t>(0u),
-         static_cast<boost::uint16_t>(24u),
-         static_cast<boost::uint16_t>(50u),
-         static_cast<boost::uint16_t>(35u),
-         static_cast<boost::uint16_t>(10u),
-         static_cast<boost::uint16_t>(1u)
-      };
-      return boost::math::tools::evaluate_rational(num, denom, z);
-   }
-
-
-   template<class T>
-   static T lanczos_sum_near_1(const T& dz)
-   {
-      lanczos_initializer<lanczos6, T>::force_instantiate(); // Ensure our constants get initialized before main()
-      static const T d[5] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 35, 2.044879010930422922760429926121241330235)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 35, -2.751366405578505366591317846728753993668)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 35, 1.02282965224225004296750609604264824677)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 35, -0.09786124911582813985028889636665335893627)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 35, 0.0009829742267506615183144364420540766510112)),
-      };
-      T result = 0;
-      for(unsigned k = 1; k <= sizeof(d)/sizeof(d[0]); ++k)
-      {
-         result += (-d[k-1]*dz)/(k*dz + k*k);
-      }
-      return result;
-   }
-
-   template<class T>
-   static T lanczos_sum_near_2(const T& dz)
-   {
-      lanczos_initializer<lanczos6, T>::force_instantiate(); // Ensure our constants get initialized before main()
-      static const T d[5] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 35, 5.748142489536043490764289256167080091892)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 35, -7.734074268282457156081021756682138251825)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 35, 2.875167944990511006997713242805893543947)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 35, -0.2750873773533504542306766137703788781776)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 35, 0.002763134585812698552178368447708846850353)),
-      };
-      T result = 0;
-      T z = dz + 2;
-      for(unsigned k = 1; k <= sizeof(d)/sizeof(d[0]); ++k)
-      {
-         result += (-d[k-1]*dz)/(z + k*z + k*k - 1);
-      }
-      return result;
-   }
-
-   static double g(){ return 5.581000000000000405009359383257105946541; }
-};
-
-//
-// Lanczos Coefficients for N=11 G=10.900511
-// Max experimental error (with arbitary precision arithmetic) 2.16676e-19
-// Generated with compiler: Microsoft Visual C++ version 8.0 on Win32 at Mar 23 2006
-//
-struct lanczos11 : public mpl::int_<60>
-{
-   //
-   // Produces slightly better than double precision when evaluated at
-   // extended-double precision:
-   //
-   template <class T>
-   static T lanczos_sum(const T& z)
-   {
-      lanczos_initializer<lanczos11, T>::force_instantiate(); // Ensure our constants get initialized before main()
-      static const T num[11] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 60, 38474670393.31776828316099004518914832218)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 60, 36857665043.51950660081971227404959150474)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 60, 15889202453.72942008945006665994637853242)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 60, 4059208354.298834770194507810788393801607)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 60, 680547661.1834733286087695557084801366446)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 60, 78239755.00312005289816041245285376206263)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 60, 6246580.776401795264013335510453568106366)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 60, 341986.3488721347032223777872763188768288)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 60, 12287.19451182455120096222044424100527629)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 60, 261.6140441641668190791708576058805625502)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 60, 2.506628274631000502415573855452633787834))
-      };
-      static const BOOST_MATH_INT_TABLE_TYPE(T, boost::uint32_t) denom[11] = {
-         static_cast<boost::uint32_t>(0u),
-         static_cast<boost::uint32_t>(362880u),
-         static_cast<boost::uint32_t>(1026576u),
-         static_cast<boost::uint32_t>(1172700u),
-         static_cast<boost::uint32_t>(723680u),
-         static_cast<boost::uint32_t>(269325u),
-         static_cast<boost::uint32_t>(63273u),
-         static_cast<boost::uint32_t>(9450u),
-         static_cast<boost::uint32_t>(870u),
-         static_cast<boost::uint32_t>(45u),
-         static_cast<boost::uint32_t>(1u)
-      };
-      return boost::math::tools::evaluate_rational(num, denom, z);
-   }
-
-   template <class T>
-   static T lanczos_sum_expG_scaled(const T& z)
-   {
-      lanczos_initializer<lanczos11, T>::force_instantiate(); // Ensure our constants get initialized before main()
-      static const T num[11] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 60, 709811.662581657956893540610814842699825)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 60, 679979.847415722640161734319823103390728)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 60, 293136.785721159725251629480984140341656)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 60, 74887.5403291467179935942448101441897121)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 60, 12555.29058241386295096255111537516768137)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 60, 1443.42992444170669746078056942194198252)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 60, 115.2419459613734722083208906727972935065)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 60, 6.30923920573262762719523981992008976989)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 60, 0.2266840463022436475495508977579735223818)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 60, 0.004826466289237661857584712046231435101741)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 60, 0.4624429436045378766270459638520555557321e-4))
-      };
-      static const BOOST_MATH_INT_TABLE_TYPE(T, boost::uint32_t) denom[11] = {
-         static_cast<boost::uint32_t>(0u),
-         static_cast<boost::uint32_t>(362880u),
-         static_cast<boost::uint32_t>(1026576u),
-         static_cast<boost::uint32_t>(1172700u),
-         static_cast<boost::uint32_t>(723680u),
-         static_cast<boost::uint32_t>(269325u),
-         static_cast<boost::uint32_t>(63273u),
-         static_cast<boost::uint32_t>(9450u),
-         static_cast<boost::uint32_t>(870u),
-         static_cast<boost::uint32_t>(45u),
-         static_cast<boost::uint32_t>(1u)
-      };
-      return boost::math::tools::evaluate_rational(num, denom, z);
-   }
-
-
-   template<class T>
-   static T lanczos_sum_near_1(const T& dz)
-   {
-      lanczos_initializer<lanczos11, T>::force_instantiate(); // Ensure our constants get initialized before main()
-      static const T d[10] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 60, 4.005853070677940377969080796551266387954)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 60, -13.17044315127646469834125159673527183164)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 60, 17.19146865350790353683895137079288129318)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 60, -11.36446409067666626185701599196274701126)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 60, 4.024801119349323770107694133829772634737)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 60, -0.7445703262078094128346501724255463005006)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 60, 0.06513861351917497265045550019547857713172)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 60, -0.00217899958561830354633560009312512312758)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 60, 0.17655204574495137651670832229571934738e-4)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 60, -0.1036282091079938047775645941885460820853e-7)),
-      };
-      T result = 0;
-      for(unsigned k = 1; k <= sizeof(d)/sizeof(d[0]); ++k)
-      {
-         result += (-d[k-1]*dz)/(k*dz + k*k);
-      }
-      return result;
-   }
-
-   template<class T>
-   static T lanczos_sum_near_2(const T& dz)
-   {
-      lanczos_initializer<lanczos11, T>::force_instantiate(); // Ensure our constants get initialized before main()
-      static const T d[10] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 60, 19.05889633808148715159575716844556056056)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 60, -62.66183664701721716960978577959655644762)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 60, 81.7929198065004751699057192860287512027)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 60, -54.06941772964234828416072865069196553015)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 60, 19.14904664790693019642068229478769661515)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 60, -3.542488556926667589704590409095331790317)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 60, 0.3099140334815639910894627700232804503017)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 60, -0.01036716187296241640634252431913030440825)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 60, 0.8399926504443119927673843789048514017761e-4)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 60, -0.493038376656195010308610694048822561263e-7)),
-      };
-      T result = 0;
-      T z = dz + 2;
-      for(unsigned k = 1; k <= sizeof(d)/sizeof(d[0]); ++k)
-      {
-         result += (-d[k-1]*dz)/(z + k*z + k*k - 1);
-      }
-      return result;
-   }
-
-   static double g(){ return 10.90051099999999983936049829935654997826; }
-};
-
-//
-// Lanczos Coefficients for N=13 G=13.144565
-// Max experimental error (with arbitary precision arithmetic) 9.2213e-23
-// Generated with compiler: Microsoft Visual C++ version 8.0 on Win32 at Mar 23 2006
-//
-struct lanczos13 : public mpl::int_<72>
-{
-   //
-   // Produces slightly better than extended-double precision when evaluated at
-   // higher precision:
-   //
-   template <class T>
-   static T lanczos_sum(const T& z)
-   {
-      lanczos_initializer<lanczos13, T>::force_instantiate(); // Ensure our constants get initialized before main()
-      static const T num[13] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 72, 44012138428004.60895436261759919070125699)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 72, 41590453358593.20051581730723108131357995)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 72, 18013842787117.99677796276038389462742949)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 72, 4728736263475.388896889723995205703970787)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 72, 837910083628.4046470415724300225777912264)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 72, 105583707273.4299344907359855510105321192)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 72, 9701363618.494999493386608345339104922694)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 72, 654914397.5482052641016767125048538245644)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 72, 32238322.94213356530668889463945849409184)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 72, 1128514.219497091438040721811544858643121)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 72, 26665.79378459858944762533958798805525125)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 72, 381.8801248632926870394389468349331394196)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 72, 2.506628274631000502415763426076722427007))
-      };
-      static const BOOST_MATH_INT_TABLE_TYPE(T, boost::uint32_t) denom[13] = {
-         static_cast<boost::uint32_t>(0u),
-         static_cast<boost::uint32_t>(39916800u),
-         static_cast<boost::uint32_t>(120543840u),
-         static_cast<boost::uint32_t>(150917976u),
-         static_cast<boost::uint32_t>(105258076u),
-         static_cast<boost::uint32_t>(45995730u),
-         static_cast<boost::uint32_t>(13339535u),
-         static_cast<boost::uint32_t>(2637558u),
-         static_cast<boost::uint32_t>(357423u),
-         static_cast<boost::uint32_t>(32670u),
-         static_cast<boost::uint32_t>(1925u),
-         static_cast<boost::uint32_t>(66u),
-         static_cast<boost::uint32_t>(1u)
-      };
-      return boost::math::tools::evaluate_rational(num, denom, z);
-   }
-
-   template <class T>
-   static T lanczos_sum_expG_scaled(const T& z)
-   {
-      lanczos_initializer<lanczos13, T>::force_instantiate(); // Ensure our constants get initialized before main()
-      static const T num[13] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 72, 86091529.53418537217994842267760536134841)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 72, 81354505.17858011242874285785316135398567)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 72, 35236626.38815461910817650960734605416521)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 72, 9249814.988024471294683815872977672237195)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 72, 1639024.216687146960253839656643518985826)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 72, 206530.8157641225032631778026076868855623)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 72, 18976.70193530288915698282139308582105936)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 72, 1281.068909912559479885759622791374106059)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 72, 63.06093343420234536146194868906771599354)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 72, 2.207470909792527638222674678171050209691)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 72, 0.05216058694613505427476207805814960742102)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 72, 0.0007469903808915448316510079585999893674101)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 72, 0.4903180573459871862552197089738373164184e-5))
-      };
-      static const BOOST_MATH_INT_TABLE_TYPE(T, boost::uint32_t) denom[13] = {
-         static_cast<boost::uint32_t>(0u),
-         static_cast<boost::uint32_t>(39916800u),
-         static_cast<boost::uint32_t>(120543840u),
-         static_cast<boost::uint32_t>(150917976u),
-         static_cast<boost::uint32_t>(105258076u),
-         static_cast<boost::uint32_t>(45995730u),
-         static_cast<boost::uint32_t>(13339535u),
-         static_cast<boost::uint32_t>(2637558u),
-         static_cast<boost::uint32_t>(357423u),
-         static_cast<boost::uint32_t>(32670u),
-         static_cast<boost::uint32_t>(1925u),
-         static_cast<boost::uint32_t>(66u),
-         static_cast<boost::uint32_t>(1u)
-      };
-      return boost::math::tools::evaluate_rational(num, denom, z);
-   }
-
-
-   template<class T>
-   static T lanczos_sum_near_1(const T& dz)
-   {
-      lanczos_initializer<lanczos13, T>::force_instantiate(); // Ensure our constants get initialized before main()
-      static const T d[12] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 72, 4.832115561461656947793029596285626840312)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 72, -19.86441536140337740383120735104359034688)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 72, 33.9927422807443239927197864963170585331)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 72, -31.41520692249765980987427413991250886138)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 72, 17.0270866009599345679868972409543597821)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 72, -5.5077216950865501362506920516723682167)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 72, 1.037811741948214855286817963800439373362)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 72, -0.106640468537356182313660880481398642811)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 72, 0.005276450526660653288757565778182586742831)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 72, -0.0001000935625597121545867453746252064770029)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 72, 0.462590910138598083940803704521211569234e-6)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 72, -0.1735307814426389420248044907765671743012e-9)),
-      };
-      T result = 0;
-      for(unsigned k = 1; k <= sizeof(d)/sizeof(d[0]); ++k)
-      {
-         result += (-d[k-1]*dz)/(k*dz + k*k);
-      }
-      return result;
-   }
-
-   template<class T>
-   static T lanczos_sum_near_2(const T& dz)
-   {
-      lanczos_initializer<lanczos13, T>::force_instantiate(); // Ensure our constants get initialized before main()
-      static const T d[12] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 72, 26.96979819614830698367887026728396466395)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 72, -110.8705424709385114023884328797900204863)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 72, 189.7258846119231466417015694690434770085)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 72, -175.3397202971107486383321670769397356553)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 72, 95.03437648691551457087250340903980824948)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 72, -30.7406022781665264273675797983497141978)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 72, 5.792405601630517993355102578874590410552)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 72, -0.5951993240669148697377539518639997795831)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 72, 0.02944979359164017509944724739946255067671)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 72, -0.0005586586555377030921194246330399163602684)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 72, 0.2581888478270733025288922038673392636029e-5)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 72, -0.9685385411006641478305219367315965391289e-9)),
-      };
-      T result = 0;
-      T z = dz + 2;
-      for(unsigned k = 1; k <= sizeof(d)/sizeof(d[0]); ++k)
-      {
-         result += (-d[k-1]*dz)/(z + k*z + k*k - 1);
-      }
-      return result;
-   }
-
-   static double g(){ return 13.1445650000000000545696821063756942749; }
-};
-
-//
-// Lanczos Coefficients for N=22 G=22.61891
-// Max experimental error (with arbitary precision arithmetic) 2.9524e-38
-// Generated with compiler: Microsoft Visual C++ version 8.0 on Win32 at Mar 23 2006
-//
-struct lanczos22 : public mpl::int_<120>
-{
-   //
-   // Produces slightly better than 128-bit long-double precision when 
-   // evaluated at higher precision:
-   //
-   template <class T>
-   static T lanczos_sum(const T& z)
-   {
-      lanczos_initializer<lanczos22, T>::force_instantiate(); // Ensure our constants get initialized before main()
-      static const T num[22] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 46198410803245094237463011094.12173081986)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 43735859291852324413622037436.321513777)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 19716607234435171720534556386.97481377748)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 5629401471315018442177955161.245623932129)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 1142024910634417138386281569.245580222392)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 175048529315951173131586747.695329230778)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 21044290245653709191654675.41581372963167)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 2033001410561031998451380.335553678782601)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 160394318862140953773928.8736211601848891)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 10444944438396359705707.48957290388740896)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 565075825801617290121.1466393747967538948)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 25475874292116227538.99448534450411942597)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 957135055846602154.6720835535232270205725)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 29874506304047462.23662392445173880821515)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 769651310384737.2749087590725764959689181)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 16193289100889.15989633624378404096011797)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 273781151680.6807433264462376754578933261)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 3630485900.32917021712188739762161583295)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 36374352.05577334277856865691538582936484)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 258945.7742115532455441786924971194951043)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 1167.501919472435718934219997431551246996)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 2.50662827463100050241576528481104525333))
-      };
-      static const BOOST_MATH_INT_TABLE_TYPE(T, boost::uint64_t) denom[22] = {
-         BOOST_MATH_INT_VALUE_SUFFIX(0, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(2432902008176640000, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(8752948036761600000, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(13803759753640704000, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(12870931245150988800, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(8037811822645051776, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(3599979517947607200, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(1206647803780373360, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(311333643161390640, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(63030812099294896, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(10142299865511450, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(1307535010540395, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(135585182899530, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(11310276995381, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(756111184500, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(40171771630, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(1672280820, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(53327946, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(1256850, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(20615, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(210, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(1, uLL)
-      };
-      return boost::math::tools::evaluate_rational(num, denom, z);
-   }
-
-   template <class T>
-   static T lanczos_sum_expG_scaled(const T& z)
-   {
-      lanczos_initializer<lanczos22, T>::force_instantiate(); // Ensure our constants get initialized before main()
-      static const T num[22] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 6939996264376682180.277485395074954356211)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 6570067992110214451.87201438870245659384)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 2961859037444440551.986724631496417064121)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 845657339772791245.3541226499766163431651)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 171556737035449095.2475716923888737881837)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 26296059072490867.7822441885603400926007)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 3161305619652108.433798300149816829198706)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 305400596026022.4774396904484542582526472)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 24094681058862.55120507202622377623528108)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 1569055604375.919477574824168939428328839)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 84886558909.02047889339710230696942513159)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 3827024985.166751989686050643579753162298)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 143782298.9273215199098728674282885500522)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 4487794.24541641841336786238909171265944)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 115618.2025760830513505888216285273541959)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 2432.580773108508276957461757328744780439)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 41.12782532742893597168530008461874360191)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 0.5453771709477689805460179187388702295792)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 0.005464211062612080347167337964166505282809)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 0.388992321263586767037090706042788910953e-4)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 0.1753839324538447655939518484052327068859e-6)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 0.3765495513732730583386223384116545391759e-9))
-      };
-      static const BOOST_MATH_INT_TABLE_TYPE(T, boost::uint64_t) denom[22] = {
-         BOOST_MATH_INT_VALUE_SUFFIX(0, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(2432902008176640000, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(8752948036761600000, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(13803759753640704000, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(12870931245150988800, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(8037811822645051776, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(3599979517947607200, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(1206647803780373360, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(311333643161390640, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(63030812099294896, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(10142299865511450, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(1307535010540395, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(135585182899530, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(11310276995381, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(756111184500, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(40171771630, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(1672280820, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(53327946, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(1256850, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(20615, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(210, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(1, uLL)
-      };
-      return boost::math::tools::evaluate_rational(num, denom, z);
-   }
-
-
-   template<class T>
-   static T lanczos_sum_near_1(const T& dz)
-   {
-      lanczos_initializer<lanczos22, T>::force_instantiate(); // Ensure our constants get initialized before main()
-      static const T d[21] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 8.318998691953337183034781139546384476554)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, -63.15415991415959158214140353299240638675)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 217.3108224383632868591462242669081540163)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, -448.5134281386108366899784093610397354889)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 619.2903759363285456927248474593012711346)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, -604.1630177420625418522025080080444177046)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 428.8166750424646119935047118287362193314)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, -224.6988753721310913866347429589434550302)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 87.32181627555510833499451817622786940961)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, -25.07866854821128965662498003029199058098)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 5.264398125689025351448861011657789005392)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, -0.792518936256495243383586076579921559914)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 0.08317448364744713773350272460937904691566)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, -0.005845345166274053157781068150827567998882)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 0.0002599412126352082483326238522490030412391)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, -0.6748102079670763884917431338234783496303e-5)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 0.908824383434109002762325095643458603605e-7)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, -0.5299325929309389890892469299969669579725e-9)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 0.994306085859549890267983602248532869362e-12)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, -0.3499893692975262747371544905820891835298e-15)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 0.7260746353663365145454867069182884694961e-20)),
-      };
-      T result = 0;
-      for(unsigned k = 1; k <= sizeof(d)/sizeof(d[0]); ++k)
-      {
-         result += (-d[k-1]*dz)/(k*dz + k*k);
-      }
-      return result;
-   }
-
-   template<class T>
-   static T lanczos_sum_near_2(const T& dz)
-   {
-      lanczos_initializer<lanczos22, T>::force_instantiate(); // Ensure our constants get initialized before main()
-      static const T d[21] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 75.39272007105208086018421070699575462226)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, -572.3481967049935412452681346759966390319)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 1969.426202741555335078065370698955484358)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, -4064.74968778032030891520063865996757519)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 5612.452614138013929794736248384309574814)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, -5475.357667500026172903620177988213902339)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 3886.243614216111328329547926490398103492)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, -2036.382026072125407192448069428134470564)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 791.3727954936062108045551843636692287652)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, -227.2808432388436552794021219198885223122)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 47.70974355562144229897637024320739257284)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, -7.182373807798293545187073539819697141572)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 0.7537866989631514559601547530490976100468)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, -0.05297470142240154822658739758236594717787)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 0.00235577330936380542539812701472320434133)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, -0.6115613067659273118098229498679502138802e-4)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 0.8236417010170941915758315020695551724181e-6)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, -0.4802628430993048190311242611330072198089e-8)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 0.9011113376981524418952720279739624707342e-11)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, -0.3171854152689711198382455703658589996796e-14)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 120, 0.6580207998808093935798753964580596673177e-19)),
-      };
-      T result = 0;
-      T z = dz + 2;
-      for(unsigned k = 1; k <= sizeof(d)/sizeof(d[0]); ++k)
-      {
-         result += (-d[k-1]*dz)/(z + k*z + k*k - 1);
-      }
-      return result;
-   }
-
-   static double g(){ return 22.61890999999999962710717227309942245483; }
-};
-
-//
-// Lanczos Coefficients for N=6 G=1.428456135094165802001953125
-// Max experimental error (with arbitary precision arithmetic) 8.111667e-8
-// Generated with compiler: Microsoft Visual C++ version 8.0 on Win32 at Mar 23 2006
-//
-struct lanczos6m24 : public mpl::int_<24>
-{
-   //
-   // Use for float precision, when evaluated as a float:
-   //
-   template <class T>
-   static T lanczos_sum(const T& z)
-   {
-      static const T num[6] = {
-         static_cast<T>(58.52061591769095910314047740215847630266L),
-         static_cast<T>(182.5248962595894264831189414768236280862L),
-         static_cast<T>(211.0971093028510041839168287718170827259L),
-         static_cast<T>(112.2526547883668146736465390902227161763L),
-         static_cast<T>(27.5192015197455403062503721613097825345L),
-         static_cast<T>(2.50662858515256974113978724717473206342L)
-      };
-      static const BOOST_MATH_INT_TABLE_TYPE(T, boost::uint16_t) denom[6] = {
-         static_cast<boost::uint16_t>(0u),
-         static_cast<boost::uint16_t>(24u),
-         static_cast<boost::uint16_t>(50u),
-         static_cast<boost::uint16_t>(35u),
-         static_cast<boost::uint16_t>(10u),
-         static_cast<boost::uint16_t>(1u)
-      };
-      return boost::math::tools::evaluate_rational(num, denom, z);
-   }
-
-   template <class T>
-   static T lanczos_sum_expG_scaled(const T& z)
-   {
-      static const T num[6] = {
-         static_cast<T>(14.0261432874996476619570577285003839357L),
-         static_cast<T>(43.74732405540314316089531289293124360129L),
-         static_cast<T>(50.59547402616588964511581430025589038612L),
-         static_cast<T>(26.90456680562548195593733429204228910299L),
-         static_cast<T>(6.595765571169314946316366571954421695196L),
-         static_cast<T>(0.6007854010515290065101128585795542383721L)
-      };
-      static const BOOST_MATH_INT_TABLE_TYPE(T, boost::uint16_t) denom[6] = {
-         static_cast<boost::uint16_t>(0u),
-         static_cast<boost::uint16_t>(24u),
-         static_cast<boost::uint16_t>(50u),
-         static_cast<boost::uint16_t>(35u),
-         static_cast<boost::uint16_t>(10u),
-         static_cast<boost::uint16_t>(1u)
-      };
-      return boost::math::tools::evaluate_rational(num, denom, z);
-   }
-
-
-   template<class T>
-   static T lanczos_sum_near_1(const T& dz)
-   {
-      static const T d[5] = {
-         static_cast<T>(0.4922488055204602807654354732674868442106L),
-         static_cast<T>(0.004954497451132152436631238060933905650346L),
-         static_cast<T>(-0.003374784572167105840686977985330859371848L),
-         static_cast<T>(0.001924276018962061937026396537786414831385L),
-         static_cast<T>(-0.00056533046336427583708166383712907694434L),
-      };
-      T result = 0;
-      for(unsigned k = 1; k <= sizeof(d)/sizeof(d[0]); ++k)
-      {
-         result += (-d[k-1]*dz)/(k*dz + k*k);
-      }
-      return result;
-   }
-
-   template<class T>
-   static T lanczos_sum_near_2(const T& dz)
-   {
-      static const T d[5] = {
-         static_cast<T>(0.6534966888520080645505805298901130485464L),
-         static_cast<T>(0.006577461728560758362509168026049182707101L),
-         static_cast<T>(-0.004480276069269967207178373559014835978161L),
-         static_cast<T>(0.00255461870648818292376982818026706528842L),
-         static_cast<T>(-0.000750517993690428370380996157470900204524L),
-      };
-      T result = 0;
-      T z = dz + 2;
-      for(unsigned k = 1; k <= sizeof(d)/sizeof(d[0]); ++k)
-      {
-         result += (-d[k-1]*dz)/(z + k*z + k*k - 1);
-      }
-      return result;
-   }
-
-   static double g(){ return 1.428456135094165802001953125; }
-};
-
-//
-// Lanczos Coefficients for N=13 G=6.024680040776729583740234375
-// Max experimental error (with arbitary precision arithmetic) 1.196214e-17
-// Generated with compiler: Microsoft Visual C++ version 8.0 on Win32 at Mar 23 2006
-//
-struct lanczos13m53 : public mpl::int_<53>
-{
-   //
-   // Use for double precision, when evaluated as a double:
-   //
-   template <class T>
-   static T lanczos_sum(const T& z)
-   {
-      static const T num[13] = {
-         static_cast<T>(23531376880.41075968857200767445163675473L),
-         static_cast<T>(42919803642.64909876895789904700198885093L),
-         static_cast<T>(35711959237.35566804944018545154716670596L),
-         static_cast<T>(17921034426.03720969991975575445893111267L),
-         static_cast<T>(6039542586.35202800506429164430729792107L),
-         static_cast<T>(1439720407.311721673663223072794912393972L),
-         static_cast<T>(248874557.8620541565114603864132294232163L),
-         static_cast<T>(31426415.58540019438061423162831820536287L),
-         static_cast<T>(2876370.628935372441225409051620849613599L),
-         static_cast<T>(186056.2653952234950402949897160456992822L),
-         static_cast<T>(8071.672002365816210638002902272250613822L),
-         static_cast<T>(210.8242777515793458725097339207133627117L),
-         static_cast<T>(2.506628274631000270164908177133837338626L)
-      };
-      static const BOOST_MATH_INT_TABLE_TYPE(T, boost::uint32_t) denom[13] = {
-         static_cast<boost::uint32_t>(0u),
-         static_cast<boost::uint32_t>(39916800u),
-         static_cast<boost::uint32_t>(120543840u),
-         static_cast<boost::uint32_t>(150917976u),
-         static_cast<boost::uint32_t>(105258076u),
-         static_cast<boost::uint32_t>(45995730u),
-         static_cast<boost::uint32_t>(13339535u),
-         static_cast<boost::uint32_t>(2637558u),
-         static_cast<boost::uint32_t>(357423u),
-         static_cast<boost::uint32_t>(32670u),
-         static_cast<boost::uint32_t>(1925u),
-         static_cast<boost::uint32_t>(66u),
-         static_cast<boost::uint32_t>(1u)
-      };
-      return boost::math::tools::evaluate_rational(num, denom, z);
-   }
-
-   template <class T>
-   static T lanczos_sum_expG_scaled(const T& z)
-   {
-      static const T num[13] = {
-         static_cast<T>(56906521.91347156388090791033559122686859L),
-         static_cast<T>(103794043.1163445451906271053616070238554L),
-         static_cast<T>(86363131.28813859145546927288977868422342L),
-         static_cast<T>(43338889.32467613834773723740590533316085L),
-         static_cast<T>(14605578.08768506808414169982791359218571L),
-         static_cast<T>(3481712.15498064590882071018964774556468L),
-         static_cast<T>(601859.6171681098786670226533699352302507L),
-         static_cast<T>(75999.29304014542649875303443598909137092L),
-         static_cast<T>(6955.999602515376140356310115515198987526L),
-         static_cast<T>(449.9445569063168119446858607650988409623L),
-         static_cast<T>(19.51992788247617482847860966235652136208L),
-         static_cast<T>(0.5098416655656676188125178644804694509993L),
-         static_cast<T>(0.006061842346248906525783753964555936883222L)
-      };
-      static const BOOST_MATH_INT_TABLE_TYPE(T, boost::uint32_t) denom[13] = {
-         static_cast<boost::uint32_t>(0u),
-         static_cast<boost::uint32_t>(39916800u),
-         static_cast<boost::uint32_t>(120543840u),
-         static_cast<boost::uint32_t>(150917976u),
-         static_cast<boost::uint32_t>(105258076u),
-         static_cast<boost::uint32_t>(45995730u),
-         static_cast<boost::uint32_t>(13339535u),
-         static_cast<boost::uint32_t>(2637558u),
-         static_cast<boost::uint32_t>(357423u),
-         static_cast<boost::uint32_t>(32670u),
-         static_cast<boost::uint32_t>(1925u),
-         static_cast<boost::uint32_t>(66u),
-         static_cast<boost::uint32_t>(1u)
-      };
-      return boost::math::tools::evaluate_rational(num, denom, z);
-   }
-
-
-   template<class T>
-   static T lanczos_sum_near_1(const T& dz)
-   {
-      static const T d[12] = {
-         static_cast<T>(2.208709979316623790862569924861841433016L),
-         static_cast<T>(-3.327150580651624233553677113928873034916L),
-         static_cast<T>(1.483082862367253753040442933770164111678L),
-         static_cast<T>(-0.1993758927614728757314233026257810172008L),
-         static_cast<T>(0.004785200610085071473880915854204301886437L),
-         static_cast<T>(-0.1515973019871092388943437623825208095123e-5L),
-         static_cast<T>(-0.2752907702903126466004207345038327818713e-7L),
-         static_cast<T>(0.3075580174791348492737947340039992829546e-7L),
-         static_cast<T>(-0.1933117898880828348692541394841204288047e-7L),
-         static_cast<T>(0.8690926181038057039526127422002498960172e-8L),
-         static_cast<T>(-0.2499505151487868335680273909354071938387e-8L),
-         static_cast<T>(0.3394643171893132535170101292240837927725e-9L),
-      };
-      T result = 0;
-      for(unsigned k = 1; k <= sizeof(d)/sizeof(d[0]); ++k)
-      {
-         result += (-d[k-1]*dz)/(k*dz + k*k);
-      }
-      return result;
-   }
-
-   template<class T>
-   static T lanczos_sum_near_2(const T& dz)
-   {
-      static const T d[12] = {
-         static_cast<T>(6.565936202082889535528455955485877361223L),
-         static_cast<T>(-9.8907772644920670589288081640128194231L),
-         static_cast<T>(4.408830289125943377923077727900630927902L),
-         static_cast<T>(-0.5926941084905061794445733628891024027949L),
-         static_cast<T>(0.01422519127192419234315002746252160965831L),
-         static_cast<T>(-0.4506604409707170077136555010018549819192e-5L),
-         static_cast<T>(-0.8183698410724358930823737982119474130069e-7L),
-         static_cast<T>(0.9142922068165324132060550591210267992072e-7L),
-         static_cast<T>(-0.5746670642147041587497159649318454348117e-7L),
-         static_cast<T>(0.2583592566524439230844378948704262291927e-7L),
-         static_cast<T>(-0.7430396708998719707642735577238449585822e-8L),
-         static_cast<T>(0.1009141566987569892221439918230042368112e-8L),
-      };
-      T result = 0;
-      T z = dz + 2;
-      for(unsigned k = 1; k <= sizeof(d)/sizeof(d[0]); ++k)
-      {
-         result += (-d[k-1]*dz)/(z + k*z + k*k - 1);
-      }
-      return result;
-   }
-
-   static double g(){ return 6.024680040776729583740234375; }
-};
-
-//
-// Lanczos Coefficients for N=17 G=12.2252227365970611572265625
-// Max experimental error (with arbitary precision arithmetic) 2.7699e-26
-// Generated with compiler: Microsoft Visual C++ version 8.0 on Win32 at Mar 23 2006
-//
-struct lanczos17m64 : public mpl::int_<64>
-{
-   //
-   // Use for extended-double precision, when evaluated as an extended-double:
-   //
-   template <class T>
-   static T lanczos_sum(const T& z)
-   {
-      lanczos_initializer<lanczos17m64, T>::force_instantiate(); // Ensure our constants get initialized before main()
-      static const T num[17] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 553681095419291969.2230556393350368550504)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 731918863887667017.2511276782146694632234)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 453393234285807339.4627124634539085143364)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 174701893724452790.3546219631779712198035)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 46866125995234723.82897281620357050883077)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 9281280675933215.169109622777099699054272)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1403600894156674.551057997617468721789536)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 165345984157572.7305349809894046783973837)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 15333629842677.31531822808737907246817024)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1123152927963.956626161137169462874517318)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 64763127437.92329018717775593533620578237)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 2908830362.657527782848828237106640944457)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 99764700.56999856729959383751710026787811)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 2525791.604886139959837791244686290089331)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 44516.94034970167828580039370201346554872)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 488.0063567520005730476791712814838113252)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 2.50662827463100050241576877135758834683))
-      };
-      static const BOOST_MATH_INT_TABLE_TYPE(T, boost::uint64_t) denom[17] = {
-         BOOST_MATH_INT_VALUE_SUFFIX(0, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(1307674368000, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(4339163001600, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(6165817614720, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(5056995703824, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(2706813345600, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(1009672107080, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(272803210680, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(54631129553, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(8207628000, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(928095740, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(78558480, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(4899622, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(218400, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(6580, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(120, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(1, uLL)
-      };
-      return boost::math::tools::evaluate_rational(num, denom, z);
-   }
-
-   template <class T>
-   static T lanczos_sum_expG_scaled(const T& z)
-   {
-      lanczos_initializer<lanczos17m64, T>::force_instantiate(); // Ensure our constants get initialized before main()
-      static const T num[17] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 2715894658327.717377557655133124376674911)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 3590179526097.912105038525528721129550434)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 2223966599737.814969312127353235818710172)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 856940834518.9562481809925866825485883417)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 229885871668.749072933597446453399395469)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 45526171687.54610815813502794395753410032)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 6884887713.165178784550917647709216424823)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 811048596.1407531864760282453852372777439)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 75213915.96540822314499613623119501704812)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 5509245.417224265151697527957954952830126)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 317673.5368435419126714931842182369574221)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 14268.27989845035520147014373320337523596)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 489.3618720403263670213909083601787814792)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 12.38941330038454449295883217865458609584)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.2183627389504614963941574507281683147897)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.002393749522058449186690627996063983095463)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.1229541408909435212800785616808830746135e-4))
-      };
-      static const BOOST_MATH_INT_TABLE_TYPE(T, boost::uint64_t) denom[17] = {
-         BOOST_MATH_INT_VALUE_SUFFIX(0, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(1307674368000, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(4339163001600, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(6165817614720, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(5056995703824, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(2706813345600, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(1009672107080, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(272803210680, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(54631129553, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(8207628000, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(928095740, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(78558480, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(4899622, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(218400, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(6580, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(120, uLL),
-         BOOST_MATH_INT_VALUE_SUFFIX(1, uLL)
-      };
-      return boost::math::tools::evaluate_rational(num, denom, z);
-   }
-
-
-   template<class T>
-   static T lanczos_sum_near_1(const T& dz)
-   {
-      lanczos_initializer<lanczos17m64, T>::force_instantiate(); // Ensure our constants get initialized before main()
-      static const T d[16] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 4.493645054286536365763334986866616581265)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -16.95716370392468543800733966378143997694)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 26.19196892983737527836811770970479846644)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -21.3659076437988814488356323758179283908)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 9.913992596774556590710751047594507535764)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -2.62888300018780199210536267080940382158)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.3807056693542503606384861890663080735588)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -0.02714647489697685807340312061034730486958)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.0007815484715461206757220527133967191796747)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -0.6108630817371501052576880554048972272435e-5)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.5037380238864836824167713635482801545086e-8)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -0.1483232144262638814568926925964858237006e-13)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.1346609158752142460943888149156716841693e-14)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -0.660492688923978805315914918995410340796e-15)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.1472114697343266749193617793755763792681e-15)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -0.1410901942033374651613542904678399264447e-16)),
-      };
-      T result = 0;
-      for(unsigned k = 1; k <= sizeof(d)/sizeof(d[0]); ++k)
-      {
-         result += (-d[k-1]*dz)/(k*dz + k*k);
-      }
-      return result;
-   }
-
-   template<class T>
-   static T lanczos_sum_near_2(const T& dz)
-   {
-      lanczos_initializer<lanczos17m64, T>::force_instantiate(); // Ensure our constants get initialized before main()
-      static const T d[16] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 23.56409085052261327114594781581930373708)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -88.92116338946308797946237246006238652361)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 137.3472822086847596961177383569603988797)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -112.0400438263562152489272966461114852861)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 51.98768915202973863076166956576777843805)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -13.78552090862799358221343319574970124948)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 1.996371068830872830250406773917646121742)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -0.1423525874909934506274738563671862576161)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.004098338646046865122459664947239111298524)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -0.3203286637326511000882086573060433529094e-4)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.2641536751640138646146395939004587594407e-7)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -0.7777876663062235617693516558976641009819e-13)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.7061443477097101636871806229515157914789e-14)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -0.3463537849537988455590834887691613484813e-14)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, 0.7719578215795234036320348283011129450595e-15)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 64, -0.7398586479708476329563577384044188912075e-16)),
-      };
-      T result = 0;
-      T z = dz + 2;
-      for(unsigned k = 1; k <= sizeof(d)/sizeof(d[0]); ++k)
-      {
-         result += (-d[k-1]*dz)/(z + k*z + k*k - 1);
-      }
-      return result;
-   }
-
-   static double g(){ return 12.2252227365970611572265625; }
-};
-
-//
-// Lanczos Coefficients for N=24 G=20.3209821879863739013671875
-// Max experimental error (with arbitary precision arithmetic) 1.0541e-38
-// Generated with compiler: Microsoft Visual C++ version 8.0 on Win32 at Mar 23 2006
-//
-struct lanczos24m113 : public mpl::int_<113>
-{
-   //
-   // Use for long-double precision, when evaluated as an long-double:
-   //
-   template <class T>
-   static T lanczos_sum(const T& z)
-   {
-      lanczos_initializer<lanczos24m113, T>::force_instantiate(); // Ensure our constants get initialized before main()
-      static const T num[24] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 2029889364934367661624137213253.22102954656825019111612712252027267955023987678816620961507)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 2338599599286656537526273232565.2727349714338768161421882478417543004440597874814359063158)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 1288527989493833400335117708406.3953711906175960449186720680201425446299360322830739180195)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 451779745834728745064649902914.550539158066332484594436145043388809847364393288132164411521)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 113141284461097964029239556815.291212318665536114012605167994061291631013303788706545334708)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 21533689802794625866812941616.7509064680880468667055339259146063256555368135236149614592432)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 3235510315314840089932120340.71494940111731241353655381919722177496659303550321056514776757)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 393537392344185475704891959.081297108513472083749083165179784098220158201055270548272414314)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 39418265082950435024868801.5005452240816902251477336582325944930252142622315101857742955673)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 3290158764187118871697791.05850632319194734270969161036889516414516566453884272345518372696)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 230677110449632078321772.618245845856640677845629174549731890660612368500786684333975350954)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 13652233645509183190158.5916189185218250859402806777406323001463296297553612462737044693697)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 683661466754325350495.216655026531202476397782296585200982429378069417193575896602446904762)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 28967871782219334117.0122379171041074970463982134039409352925258212207710168851968215545064)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 1036104088560167006.2022834098572346459442601718514554488352117620272232373622553429728555)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 31128490785613152.8380102669349814751268126141105475287632676569913936040772990253369753962)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 779327504127342.536207878988196814811198475410572992436243686674896894543126229424358472541)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 16067543181294.643350688789124777020407337133926174150582333950666044399234540521336771876)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 268161795520.300916569439413185778557212729611517883948634711190170998896514639936969855484)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 3533216359.10528191668842486732408440112703691790824611391987708562111396961696753452085068)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 35378979.5479656110614685178752543826919239614088343789329169535932709470588426584501652577)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 253034.881362204346444503097491737872930637147096453940375713745904094735506180552724766444)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 1151.61895453463992438325318456328526085882924197763140514450975619271382783957699017875304)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 2.50662827463100050241576528481104515966515623051532908941425544355490413900497467936202516))
-      };
-      static const T denom[24] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 0)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 0.112400072777760768e22)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 0.414847677933545472e22)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 6756146673770930688000.0)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 6548684852703068697600.0)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 4280722865357147142912.0)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 2021687376910682741568.0)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 720308216440924653696.0)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 199321978221066137360.0)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 43714229649594412832.0)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 7707401101297361068.0)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 1103230881185949736.0)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 129006659818331295.0)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 12363045847086207.0)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 971250460939913.0)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 62382416421941.0)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 3256091103430.0)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 136717357942.0)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 4546047198.0)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 116896626)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 2240315)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 30107)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 253)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 1))
-      };
-      return boost::math::tools::evaluate_rational(num, denom, z);
-   }
-
-   template <class T>
-   static T lanczos_sum_expG_scaled(const T& z)
-   {
-      lanczos_initializer<lanczos24m113, T>::force_instantiate(); // Ensure our constants get initialized before main()
-      static const T num[24] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 3035162425359883494754.02878223286972654682199012688209026810841953293372712802258398358538)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 3496756894406430103600.16057175075063458536101374170860226963245118484234495645518505519827)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 1926652656689320888654.01954015145958293168365236755537645929361841917596501251362171653478)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 675517066488272766316.083023742440619929434602223726894748181327187670231286180156444871912)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 169172853104918752780.086262749564831660238912144573032141700464995906149421555926000038492)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 32197935167225605785.6444116302160245528783954573163541751756353183343357329404208062043808)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 4837849542714083249.37587447454818124327561966323276633775195138872820542242539845253171632)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 588431038090493242.308438203986649553459461798968819276505178004064031201740043314534404158)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 58939585141634058.6206417889192563007809470547755357240808035714047014324843817783741669733)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 4919561837722192.82991866530802080996138070630296720420704876654726991998309206256077395868)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 344916580244240.407442753122831512004021081677987651622305356145640394384006997569631719101)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 20413302960687.8250598845969238472629322716685686993835561234733641729957841485003560103066)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 1022234822943.78400752460970689311934727763870970686747383486600540378889311406851534545789)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 43313787191.9821354846952908076307094286897439975815501673706144217246093900159173598852503)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 1549219505.59667418528481770869280437577581951167003505825834192510436144666564648361001914)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 46544421.1998761919380541579358096705925369145324466147390364674998568485110045455014967149)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 1165278.06807504975090675074910052763026564833951579556132777702952882101173607903881127542)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 24024.759267256769471083727721827405338569868270177779485912486668586611981795179894572115)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 400.965008113421955824358063769761286758463521789765880962939528760888853281920872064838918)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 5.28299015654478269617039029170846385138134929147421558771949982217659507918482272439717603)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 0.0528999024412510102409256676599360516359062802002483877724963720047531347449011629466149805)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 0.000378346710654740685454266569593414561162134092347356968516522170279688139165340746957511115)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 0.172194142179211139195966608011235161516824700287310869949928393345257114743230967204370963e-5)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 0.374799931707148855771381263542708435935402853962736029347951399323367765509988401336565436e-8))
-      };
-      static const T denom[24] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 0)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 0.112400072777760768e22)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 0.414847677933545472e22)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 6756146673770930688000.0)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 6548684852703068697600.0)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 4280722865357147142912.0)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 2021687376910682741568.0)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 720308216440924653696.0)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 199321978221066137360.0)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 43714229649594412832.0)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 7707401101297361068.0)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 1103230881185949736.0)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 129006659818331295.0)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 12363045847086207.0)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 971250460939913.0)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 62382416421941.0)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 3256091103430.0)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 136717357942.0)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 4546047198.0)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 116896626)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 2240315)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 30107)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 253)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 1))
-      };
-      return boost::math::tools::evaluate_rational(num, denom, z);
-   }
-
-
-   template<class T>
-   static T lanczos_sum_near_1(const T& dz)
-   {
-      lanczos_initializer<lanczos24m113, T>::force_instantiate(); // Ensure our constants get initialized before main()
-      static const T d[23] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 7.4734083002469026177867421609938203388868806387315406134072298925733950040583068760685908)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, -50.4225805042247530267317342133388132970816607563062253708655085754357843064134941138154171)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 152.288200621747008570784082624444625293884063492396162110698238568311211546361189979357019)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, -271.894959539150384169327513139846971255640842175739337449692360299099322742181325023644769)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 319.240102980202312307047586791116902719088581839891008532114107693294261542869734803906793)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, -259.493144143048088289689500935518073716201741349569864988870534417890269467336454358361499)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 149.747518319689708813209645403067832020714660918583227716408482877303972685262557460145835)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, -61.9261301009341333289187201425188698128684426428003249782448828881580630606817104372760037)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 18.3077524177286961563937379403377462608113523887554047531153187277072451294845795496072365)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, -3.82011322251948043097070160584761236869363471824695092089556195047949392738162970152230254)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 0.549382685505691522516705902336780999493262538301283190963770663549981309645795228539620711)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, -0.0524814679715180697633723771076668718265358076235229045603747927518423453658004287459638024)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 0.00315392664003333528534120626687784812050217700942910879712808180705014754163256855643360698)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, -0.000110098373127648510519799564665442121339511198561008748083409549601095293123407080388658329)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 0.19809382866681658224945717689377373458866950897791116315219376038432014207446832310901893e-5)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, -0.152278977408600291408265615203504153130482270424202400677280558181047344681214058227949755e-7)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 0.364344768076106268872239259083188037615571711218395765792787047015406264051536972018235217e-10)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, -0.148897510480440424971521542520683536298361220674662555578951242811522959610991621951203526e-13)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 0.261199241161582662426512749820666625442516059622425213340053324061794752786482115387573582e-18)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, -0.780072664167099103420998436901014795601783313858454665485256897090476089641613851903791529e-24)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 0.303465867587106629530056603454807425512962762653755513440561256044986695349304176849392735e-24)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, -0.615420597971283870342083342286977366161772327800327789325710571275345878439656918541092056e-25)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 0.499641233843540749369110053005439398774706583601830828776209650445427083113181961630763702e-26)),
-      };
-      T result = 0;
-      for(unsigned k = 1; k <= sizeof(d)/sizeof(d[0]); ++k)
-      {
-         result += (-d[k-1]*dz)/(k*dz + k*k);
-      }
-      return result;
-   }
-
-   template<class T>
-   static T lanczos_sum_near_2(const T& dz)
-   {
-      lanczos_initializer<lanczos24m113, T>::force_instantiate(); // Ensure our constants get initialized before main()
-      static const T d[23] = {
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 61.4165001061101455341808888883960361969557848005400286332291451422461117307237198559485365)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, -414.372973678657049667308134761613915623353625332248315105320470271523320700386200587519147)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 1251.50505818554680171298972755376376836161706773644771875668053742215217922228357204561873)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, -2234.43389421602399514176336175766511311493214354568097811220122848998413358085613880612158)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 2623.51647746991904821899989145639147785427273427135380151752779100215839537090464785708684)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, -2132.51572435428751962745870184529534443305617818870214348386131243463614597272260797772423)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 1230.62572059218405766499842067263311220019173335523810725664442147670956427061920234820189)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, -508.90919151163744999377586956023909888833335885805154492270846381061182696305011395981929)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 150.453184562246579758706538566480316921938628645961177699894388251635886834047343195475395)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, -31.3937061525822497422230490071156186113405446381476081565548185848237169870395131828731397)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 4.51482916590287954234936829724231512565732528859217337795452389161322923867318809206313688)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, -0.431292919341108177524462194102701868233551186625103849565527515201492276412231365776131952)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 0.0259189820815586225636729971503340447445001375909094681698918294680345547092233915092128323)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, -0.000904788882557558697594884691337532557729219389814315972435534723829065673966567231504429712)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 0.162793589759218213439218473348810982422449144393340433592232065020562974405674317564164312e-4)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, -0.125142926178202562426432039899709511761368233479483128438847484617555752948755923647214487e-6)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 0.299418680048132583204152682950097239197934281178261879500770485862852229898797687301941982e-9)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, -0.122364035267809278675627784883078206654408225276233049012165202996967011873995261617995421e-12)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 0.21465364366598631597052073538883430194257709353929022544344097235100199405814005393447785e-17)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, -0.641064035802907518396608051803921688237330857546406669209280666066685733941549058513986818e-23)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 0.249388374622173329690271566855185869111237201309011956145463506483151054813346819490278951e-23)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, -0.505752900177513489906064295001851463338022055787536494321532352380960774349054239257683149e-24)),
-         static_cast<T>(BOOST_MATH_BIG_CONSTANT(T, 113, 0.410605371184590959139968810080063542546949719163227555918846829816144878123034347778284006e-25)),
-      };
-      T result = 0;
-      T z = dz + 2;
-      for(unsigned k = 1; k <= sizeof(d)/sizeof(d[0]); ++k)
-      {
-         result += (-d[k-1]*dz)/(z + k*z + k*k - 1);
-      }
-      return result;
-   }
-
-   static double g(){ return 20.3209821879863739013671875; }
-};
-
-
-//
-// placeholder for no lanczos info available:
-//
-struct undefined_lanczos : public mpl::int_<INT_MAX - 1> { };
-
-#if 0
-#ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-#define BOOST_MATH_FLT_DIGITS ::std::numeric_limits<float>::digits
-#define BOOST_MATH_DBL_DIGITS ::std::numeric_limits<double>::digits
-#define BOOST_MATH_LDBL_DIGITS ::std::numeric_limits<long double>::digits
-#else
-#define BOOST_MATH_FLT_DIGITS FLT_MANT_DIG
-#define BOOST_MATH_DBL_DIGITS DBL_MANT_DIG
-#define BOOST_MATH_LDBL_DIGITS LDBL_MANT_DIG
-#endif
-#endif
-
-typedef mpl::list<
-   lanczos6m24, 
-/*   lanczos6, */
-   lanczos13m53, 
-/*   lanczos13, */
-   lanczos17m64, 
-   lanczos24m113, 
-   lanczos22, 
-   undefined_lanczos> lanczos_list;
-
-template <class Real, class Policy>
-struct lanczos
-{
-   typedef typename mpl::if_<
-      typename mpl::less_equal<
-         typename policies::precision<Real, Policy>::type,
-         mpl::int_<0>
-      >::type,
-      mpl::int_<INT_MAX - 2>,
-      typename policies::precision<Real, Policy>::type
-   >::type target_precision;
-
-   typedef typename mpl::deref<typename mpl::find_if<
-      lanczos_list, 
-      mpl::less_equal<target_precision, mpl::_1> >::type>::type type;
-};
-
-} // namespace lanczos
-} // namespace math
-} // namespace boost
-
-#if !defined(_CRAYC) && !defined(__CUDACC__) && (!defined(__GNUC__) || (__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ > 3)))
-#if (defined(_M_IX86_FP) && (_M_IX86_FP >= 2)) || defined(__SSE2__)
-#include <boost/math/special_functions/detail/lanczos_sse2.hpp>
-#endif
-#endif
-
-#endif // BOOST_MATH_SPECIAL_FUNCTIONS_LANCZOS
-
-
-
-
diff --git a/boost/math/special_functions/legendre.hpp b/boost/math/special_functions/legendre.hpp
deleted file mode 100644
index 79e9756..0000000
--- a/boost/math/special_functions/legendre.hpp
+++ /dev/null
@@ -1,194 +0,0 @@
-
-//  (C) Copyright John Maddock 2006.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_SPECIAL_LEGENDRE_HPP
-#define BOOST_MATH_SPECIAL_LEGENDRE_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/math/special_functions/math_fwd.hpp>
-#include <boost/math/special_functions/factorials.hpp>
-#include <boost/math/tools/config.hpp>
-
-namespace boost{
-namespace math{
-
-// Recurrance relation for legendre P and Q polynomials:
-template <class T1, class T2, class T3>
-inline typename tools::promote_args<T1, T2, T3>::type
-   legendre_next(unsigned l, T1 x, T2 Pl, T3 Plm1)
-{
-   typedef typename tools::promote_args<T1, T2, T3>::type result_type;
-   return ((2 * l + 1) * result_type(x) * result_type(Pl) - l * result_type(Plm1)) / (l + 1);
-}
-
-namespace detail{
-
-// Implement Legendre P and Q polynomials via recurrance:
-template <class T, class Policy>
-T legendre_imp(unsigned l, T x, const Policy& pol, bool second = false)
-{
-   static const char* function = "boost::math::legrendre_p<%1%>(unsigned, %1%)";
-   // Error handling:
-   if((x < -1) || (x > 1))
-      return policies::raise_domain_error<T>(
-         function,
-         "The Legendre Polynomial is defined for"
-         " -1 <= x <= 1, but got x = %1%.", x, pol);
-
-   T p0, p1;
-   if(second)
-   {
-      // A solution of the second kind (Q):
-      p0 = (boost::math::log1p(x, pol) - boost::math::log1p(-x, pol)) / 2;
-      p1 = x * p0 - 1;
-   }
-   else
-   {
-      // A solution of the first kind (P):
-      p0 = 1;
-      p1 = x;
-   }
-   if(l == 0)
-      return p0;
-
-   unsigned n = 1;
-
-   while(n < l)
-   {
-      std::swap(p0, p1);
-      p1 = boost::math::legendre_next(n, x, p0, p1);
-      ++n;
-   }
-   return p1;
-}
-
-} // namespace detail
-
-template <class T, class Policy>
-inline typename tools::promote_args<T>::type 
-   legendre_p(int l, T x, const Policy& pol)
-{
-   typedef typename tools::promote_args<T>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   static const char* function = "boost::math::legendre_p<%1%>(unsigned, %1%)";
-   if(l < 0)
-      return policies::checked_narrowing_cast<result_type, Policy>(detail::legendre_imp(-l-1, static_cast<value_type>(x), pol, false), function);
-   return policies::checked_narrowing_cast<result_type, Policy>(detail::legendre_imp(l, static_cast<value_type>(x), pol, false), function);
-}
-
-template <class T>
-inline typename tools::promote_args<T>::type 
-   legendre_p(int l, T x)
-{
-   return boost::math::legendre_p(l, x, policies::policy<>());
-}
-
-template <class T, class Policy>
-inline typename tools::promote_args<T>::type 
-   legendre_q(unsigned l, T x, const Policy& pol)
-{
-   typedef typename tools::promote_args<T>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   return policies::checked_narrowing_cast<result_type, Policy>(detail::legendre_imp(l, static_cast<value_type>(x), pol, true), "boost::math::legendre_q<%1%>(unsigned, %1%)");
-}
-
-template <class T>
-inline typename tools::promote_args<T>::type 
-   legendre_q(unsigned l, T x)
-{
-   return boost::math::legendre_q(l, x, policies::policy<>());
-}
-
-// Recurrence for associated polynomials:
-template <class T1, class T2, class T3>
-inline typename tools::promote_args<T1, T2, T3>::type 
-   legendre_next(unsigned l, unsigned m, T1 x, T2 Pl, T3 Plm1)
-{
-   typedef typename tools::promote_args<T1, T2, T3>::type result_type;
-   return ((2 * l + 1) * result_type(x) * result_type(Pl) - (l + m) * result_type(Plm1)) / (l + 1 - m);
-}
-
-namespace detail{
-// Legendre P associated polynomial:
-template <class T, class Policy>
-T legendre_p_imp(int l, int m, T x, T sin_theta_power, const Policy& pol)
-{
-   // Error handling:
-   if((x < -1) || (x > 1))
-      return policies::raise_domain_error<T>(
-      "boost::math::legendre_p<%1%>(int, int, %1%)",
-         "The associated Legendre Polynomial is defined for"
-         " -1 <= x <= 1, but got x = %1%.", x, pol);
-   // Handle negative arguments first:
-   if(l < 0)
-      return legendre_p_imp(-l-1, m, x, sin_theta_power, pol);
-   if(m < 0)
-   {
-      int sign = (m&1) ? -1 : 1;
-      return sign * boost::math::tgamma_ratio(static_cast<T>(l+m+1), static_cast<T>(l+1-m), pol) * legendre_p_imp(l, -m, x, sin_theta_power, pol);
-   }
-   // Special cases:
-   if(m > l)
-      return 0;
-   if(m == 0)
-      return boost::math::legendre_p(l, x, pol);
-
-   T p0 = boost::math::double_factorial<T>(2 * m - 1, pol) * sin_theta_power;
-
-   if(m&1)
-      p0 *= -1;
-   if(m == l)
-      return p0;
-
-   T p1 = x * (2 * m + 1) * p0;
-
-   int n = m + 1;
-
-   while(n < l)
-   {
-      std::swap(p0, p1);
-      p1 = boost::math::legendre_next(n, m, x, p0, p1);
-      ++n;
-   }
-   return p1;
-}
-
-template <class T, class Policy>
-inline T legendre_p_imp(int l, int m, T x, const Policy& pol)
-{
-   BOOST_MATH_STD_USING
-   // TODO: we really could use that mythical "pow1p" function here:
-   return legendre_p_imp(l, m, x, static_cast<T>(pow(1 - x*x, T(abs(m))/2)), pol);
-}
-
-}
-
-template <class T, class Policy>
-inline typename tools::promote_args<T>::type
-   legendre_p(int l, int m, T x, const Policy& pol)
-{
-   typedef typename tools::promote_args<T>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   return policies::checked_narrowing_cast<result_type, Policy>(detail::legendre_p_imp(l, m, static_cast<value_type>(x), pol), "bost::math::legendre_p<%1%>(int, int, %1%)");
-}
-
-template <class T>
-inline typename tools::promote_args<T>::type
-   legendre_p(int l, int m, T x)
-{
-   return boost::math::legendre_p(l, m, x, policies::policy<>());
-}
-
-} // namespace math
-} // namespace boost
-
-#endif // BOOST_MATH_SPECIAL_LEGENDRE_HPP
-
-
-
diff --git a/boost/math/special_functions/log1p.hpp b/boost/math/special_functions/log1p.hpp
deleted file mode 100644
index 989bdc2..0000000
--- a/boost/math/special_functions/log1p.hpp
+++ /dev/null
@@ -1,503 +0,0 @@
-//  (C) Copyright John Maddock 2005-2006.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_LOG1P_INCLUDED
-#define BOOST_MATH_LOG1P_INCLUDED
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/config/no_tr1/cmath.hpp>
-#include <math.h> // platform's ::log1p
-#include <boost/limits.hpp>
-#include <boost/math/tools/config.hpp>
-#include <boost/math/tools/series.hpp>
-#include <boost/math/tools/rational.hpp>
-#include <boost/math/tools/big_constant.hpp>
-#include <boost/math/policies/error_handling.hpp>
-#include <boost/math/special_functions/math_fwd.hpp>
-
-#ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-#  include <boost/static_assert.hpp>
-#else
-#  include <boost/assert.hpp>
-#endif
-
-namespace boost{ namespace math{
-
-namespace detail
-{
-  // Functor log1p_series returns the next term in the Taylor series
-  //   pow(-1, k-1)*pow(x, k) / k
-  // each time that operator() is invoked.
-  //
-  template <class T>
-  struct log1p_series
-  {
-     typedef T result_type;
-
-     log1p_series(T x)
-        : k(0), m_mult(-x), m_prod(-1){}
-
-     T operator()()
-     {
-        m_prod *= m_mult;
-        return m_prod / ++k;
-     }
-
-     int count()const
-     {
-        return k;
-     }
-
-  private:
-     int k;
-     const T m_mult;
-     T m_prod;
-     log1p_series(const log1p_series&);
-     log1p_series& operator=(const log1p_series&);
-  };
-
-// Algorithm log1p is part of C99, but is not yet provided by many compilers.
-//
-// This version uses a Taylor series expansion for 0.5 > x > epsilon, which may
-// require up to std::numeric_limits<T>::digits+1 terms to be calculated. 
-// It would be much more efficient to use the equivalence:
-//   log(1+x) == (log(1+x) * x) / ((1-x) - 1)
-// Unfortunately many optimizing compilers make such a mess of this, that 
-// it performs no better than log(1+x): which is to say not very well at all.
-//
-template <class T, class Policy>
-T log1p_imp(T const & x, const Policy& pol, const mpl::int_<0>&)
-{ // The function returns the natural logarithm of 1 + x.
-   typedef typename tools::promote_args<T>::type result_type;
-   BOOST_MATH_STD_USING
-
-   static const char* function = "boost::math::log1p<%1%>(%1%)";
-
-   if(x < -1)
-      return policies::raise_domain_error<T>(
-         function, "log1p(x) requires x > -1, but got x = %1%.", x, pol);
-   if(x == -1)
-      return -policies::raise_overflow_error<T>(
-         function, 0, pol);
-
-   result_type a = abs(result_type(x));
-   if(a > result_type(0.5f))
-      return log(1 + result_type(x));
-   // Note that without numeric_limits specialisation support, 
-   // epsilon just returns zero, and our "optimisation" will always fail:
-   if(a < tools::epsilon<result_type>())
-      return x;
-   detail::log1p_series<result_type> s(x);
-   boost::uintmax_t max_iter = policies::get_max_series_iterations<Policy>();
-#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582)) && !BOOST_WORKAROUND(__EDG_VERSION__, <= 245)
-   result_type result = tools::sum_series(s, policies::get_epsilon<result_type, Policy>(), max_iter);
-#else
-   result_type zero = 0;
-   result_type result = tools::sum_series(s, policies::get_epsilon<result_type, Policy>(), max_iter, zero);
-#endif
-   policies::check_series_iterations<T>(function, max_iter, pol);
-   return result;
-}
-
-template <class T, class Policy>
-T log1p_imp(T const& x, const Policy& pol, const mpl::int_<53>&)
-{ // The function returns the natural logarithm of 1 + x.
-   BOOST_MATH_STD_USING
-
-   static const char* function = "boost::math::log1p<%1%>(%1%)";
-
-   if(x < -1)
-      return policies::raise_domain_error<T>(
-         function, "log1p(x) requires x > -1, but got x = %1%.", x, pol);
-   if(x == -1)
-      return -policies::raise_overflow_error<T>(
-         function, 0, pol);
-
-   T a = fabs(x);
-   if(a > 0.5f)
-      return log(1 + x);
-   // Note that without numeric_limits specialisation support, 
-   // epsilon just returns zero, and our "optimisation" will always fail:
-   if(a < tools::epsilon<T>())
-      return x;
-
-   // Maximum Deviation Found:                     1.846e-017
-   // Expected Error Term:                         1.843e-017
-   // Maximum Relative Change in Control Points:   8.138e-004
-   // Max Error found at double precision =        3.250766e-016
-   static const T P[] = {    
-       0.15141069795941984e-16L,
-       0.35495104378055055e-15L,
-       0.33333333333332835L,
-       0.99249063543365859L,
-       1.1143969784156509L,
-       0.58052937949269651L,
-       0.13703234928513215L,
-       0.011294864812099712L
-     };
-   static const T Q[] = {    
-       1L,
-       3.7274719063011499L,
-       5.5387948649720334L,
-       4.159201143419005L,
-       1.6423855110312755L,
-       0.31706251443180914L,
-       0.022665554431410243L,
-       -0.29252538135177773e-5L
-     };
-
-   T result = 1 - x / 2 + tools::evaluate_polynomial(P, x) / tools::evaluate_polynomial(Q, x);
-   result *= x;
-
-   return result;
-}
-
-template <class T, class Policy>
-T log1p_imp(T const& x, const Policy& pol, const mpl::int_<64>&)
-{ // The function returns the natural logarithm of 1 + x.
-   BOOST_MATH_STD_USING
-
-   static const char* function = "boost::math::log1p<%1%>(%1%)";
-
-   if(x < -1)
-      return policies::raise_domain_error<T>(
-         function, "log1p(x) requires x > -1, but got x = %1%.", x, pol);
-   if(x == -1)
-      return -policies::raise_overflow_error<T>(
-         function, 0, pol);
-
-   T a = fabs(x);
-   if(a > 0.5f)
-      return log(1 + x);
-   // Note that without numeric_limits specialisation support, 
-   // epsilon just returns zero, and our "optimisation" will always fail:
-   if(a < tools::epsilon<T>())
-      return x;
-
-   // Maximum Deviation Found:                     8.089e-20
-   // Expected Error Term:                         8.088e-20
-   // Maximum Relative Change in Control Points:   9.648e-05
-   // Max Error found at long double precision =   2.242324e-19
-   static const T P[] = {    
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.807533446680736736712e-19),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.490881544804798926426e-18),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.333333333333333373941),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 1.17141290782087994162),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 1.62790522814926264694),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 1.13156411870766876113),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.408087379932853785336),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.0706537026422828914622),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.00441709903782239229447)
-   };
-   static const T Q[] = {    
-      BOOST_MATH_BIG_CONSTANT(T, 64, 1),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 4.26423872346263928361),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 7.48189472704477708962),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 6.94757016732904280913),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 3.6493508622280767304),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 1.06884863623790638317),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.158292216998514145947),
-      BOOST_MATH_BIG_CONSTANT(T, 64, 0.00885295524069924328658),
-      BOOST_MATH_BIG_CONSTANT(T, 64, -0.560026216133415663808e-6)
-   };
-
-   T result = 1 - x / 2 + tools::evaluate_polynomial(P, x) / tools::evaluate_polynomial(Q, x);
-   result *= x;
-
-   return result;
-}
-
-template <class T, class Policy>
-T log1p_imp(T const& x, const Policy& pol, const mpl::int_<24>&)
-{ // The function returns the natural logarithm of 1 + x.
-   BOOST_MATH_STD_USING
-
-   static const char* function = "boost::math::log1p<%1%>(%1%)";
-
-   if(x < -1)
-      return policies::raise_domain_error<T>(
-         function, "log1p(x) requires x > -1, but got x = %1%.", x, pol);
-   if(x == -1)
-      return -policies::raise_overflow_error<T>(
-         function, 0, pol);
-
-   T a = fabs(x);
-   if(a > 0.5f)
-      return log(1 + x);
-   // Note that without numeric_limits specialisation support, 
-   // epsilon just returns zero, and our "optimisation" will always fail:
-   if(a < tools::epsilon<T>())
-      return x;
-
-   // Maximum Deviation Found:                     6.910e-08
-   // Expected Error Term:                         6.910e-08
-   // Maximum Relative Change in Control Points:   2.509e-04
-   // Max Error found at double precision =        6.910422e-08
-   // Max Error found at float precision =         8.357242e-08
-   static const T P[] = {    
-      -0.671192866803148236519e-7L,
-      0.119670999140731844725e-6L,
-      0.333339469182083148598L,
-      0.237827183019664122066L
-   };
-   static const T Q[] = {    
-      1L,
-      1.46348272586988539733L,
-      0.497859871350117338894L,
-      -0.00471666268910169651936L
-   };
-
-   T result = 1 - x / 2 + tools::evaluate_polynomial(P, x) / tools::evaluate_polynomial(Q, x);
-   result *= x;
-
-   return result;
-}
-
-template <class T, class Policy, class tag>
-struct log1p_initializer
-{
-   struct init
-   {
-      init()
-      {
-         do_init(tag());
-      }
-      template <int N>
-      static void do_init(const mpl::int_<N>&){}
-      static void do_init(const mpl::int_<64>&)
-      {
-         boost::math::log1p(static_cast<T>(0.25), Policy());
-      }
-      void force_instantiate()const{}
-   };
-   static const init initializer;
-   static void force_instantiate()
-   {
-      initializer.force_instantiate();
-   }
-};
-
-template <class T, class Policy, class tag>
-const typename log1p_initializer<T, Policy, tag>::init log1p_initializer<T, Policy, tag>::initializer;
-
-
-} // namespace detail
-
-template <class T, class Policy>
-inline typename tools::promote_args<T>::type log1p(T x, const Policy&)
-{ 
-   typedef typename tools::promote_args<T>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   typedef typename policies::precision<result_type, Policy>::type precision_type;
-   typedef typename policies::normalise<
-      Policy, 
-      policies::promote_float<false>, 
-      policies::promote_double<false>, 
-      policies::discrete_quantile<>,
-      policies::assert_undefined<> >::type forwarding_policy;
-
-   typedef typename mpl::if_<
-      mpl::less_equal<precision_type, mpl::int_<0> >,
-      mpl::int_<0>,
-      typename mpl::if_<
-         mpl::less_equal<precision_type, mpl::int_<53> >,
-         mpl::int_<53>,  // double
-         typename mpl::if_<
-            mpl::less_equal<precision_type, mpl::int_<64> >,
-            mpl::int_<64>, // 80-bit long double
-            mpl::int_<0> // too many bits, use generic version.
-         >::type
-      >::type
-   >::type tag_type;
-
-   detail::log1p_initializer<value_type, forwarding_policy, tag_type>::force_instantiate();
-
-   return policies::checked_narrowing_cast<result_type, forwarding_policy>(
-      detail::log1p_imp(static_cast<value_type>(x), forwarding_policy(), tag_type()), "boost::math::log1p<%1%>(%1%)");
-}
-
-#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
-// These overloads work around a type deduction bug:
-inline float log1p(float z)
-{
-   return log1p<float>(z);
-}
-inline double log1p(double z)
-{
-   return log1p<double>(z);
-}
-#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
-inline long double log1p(long double z)
-{
-   return log1p<long double>(z);
-}
-#endif
-#endif
-
-#ifdef log1p
-#  ifndef BOOST_HAS_LOG1P
-#     define BOOST_HAS_LOG1P
-#  endif
-#  undef log1p
-#endif
-
-#if defined(BOOST_HAS_LOG1P) && !(defined(__osf__) && defined(__DECCXX_VER))
-#  ifdef BOOST_MATH_USE_C99
-template <class Policy>
-inline float log1p(float x, const Policy& pol)
-{ 
-   if(x < -1)
-      return policies::raise_domain_error<float>(
-         "log1p<%1%>(%1%)", "log1p(x) requires x > -1, but got x = %1%.", x, pol);
-   if(x == -1)
-      return -policies::raise_overflow_error<float>(
-         "log1p<%1%>(%1%)", 0, pol);
-   return ::log1pf(x); 
-}
-#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
-template <class Policy>
-inline long double log1p(long double x, const Policy& pol)
-{ 
-   if(x < -1)
-      return policies::raise_domain_error<long double>(
-         "log1p<%1%>(%1%)", "log1p(x) requires x > -1, but got x = %1%.", x, pol);
-   if(x == -1)
-      return -policies::raise_overflow_error<long double>(
-         "log1p<%1%>(%1%)", 0, pol);
-   return ::log1pl(x); 
-}
-#endif
-#else
-template <class Policy>
-inline float log1p(float x, const Policy& pol)
-{ 
-   if(x < -1)
-      return policies::raise_domain_error<float>(
-         "log1p<%1%>(%1%)", "log1p(x) requires x > -1, but got x = %1%.", x, pol);
-   if(x == -1)
-      return -policies::raise_overflow_error<float>(
-         "log1p<%1%>(%1%)", 0, pol);
-   return ::log1p(x); 
-}
-#endif
-template <class Policy>
-inline double log1p(double x, const Policy& pol)
-{ 
-   if(x < -1)
-      return policies::raise_domain_error<double>(
-         "log1p<%1%>(%1%)", "log1p(x) requires x > -1, but got x = %1%.", x, pol);
-   if(x == -1)
-      return -policies::raise_overflow_error<double>(
-         "log1p<%1%>(%1%)", 0, pol);
-   return ::log1p(x); 
-}
-#elif defined(_MSC_VER) && (BOOST_MSVC >= 1400)
-//
-// You should only enable this branch if you are absolutely sure
-// that your compilers optimizer won't mess this code up!!
-// Currently tested with VC8 and Intel 9.1.
-//
-template <class Policy>
-inline double log1p(double x, const Policy& pol)
-{
-   if(x < -1)
-      return policies::raise_domain_error<double>(
-         "log1p<%1%>(%1%)", "log1p(x) requires x > -1, but got x = %1%.", x, pol);
-   if(x == -1)
-      return -policies::raise_overflow_error<double>(
-         "log1p<%1%>(%1%)", 0, pol);
-   double u = 1+x;
-   if(u == 1.0) 
-      return x; 
-   else
-      return ::log(u)*(x/(u-1.0));
-}
-template <class Policy>
-inline float log1p(float x, const Policy& pol)
-{
-   return static_cast<float>(boost::math::log1p(static_cast<double>(x), pol));
-}
-#ifndef _WIN32_WCE
-//
-// For some reason this fails to compile under WinCE...
-// Needs more investigation.
-//
-template <class Policy>
-inline long double log1p(long double x, const Policy& pol)
-{
-   if(x < -1)
-      return policies::raise_domain_error<long double>(
-         "log1p<%1%>(%1%)", "log1p(x) requires x > -1, but got x = %1%.", x, pol);
-   if(x == -1)
-      return -policies::raise_overflow_error<long double>(
-         "log1p<%1%>(%1%)", 0, pol);
-   long double u = 1+x;
-   if(u == 1.0) 
-      return x; 
-   else
-      return ::logl(u)*(x/(u-1.0));
-}
-#endif
-#endif
-
-template <class T>
-inline typename tools::promote_args<T>::type log1p(T x)
-{
-   return boost::math::log1p(x, policies::policy<>());
-}
-//
-// Compute log(1+x)-x:
-//
-template <class T, class Policy>
-inline typename tools::promote_args<T>::type 
-   log1pmx(T x, const Policy& pol)
-{
-   typedef typename tools::promote_args<T>::type result_type;
-   BOOST_MATH_STD_USING
-   static const char* function = "boost::math::log1pmx<%1%>(%1%)";
-
-   if(x < -1)
-      return policies::raise_domain_error<T>(
-         function, "log1pmx(x) requires x > -1, but got x = %1%.", x, pol);
-   if(x == -1)
-      return -policies::raise_overflow_error<T>(
-         function, 0, pol);
-
-   result_type a = abs(result_type(x));
-   if(a > result_type(0.95f))
-      return log(1 + result_type(x)) - result_type(x);
-   // Note that without numeric_limits specialisation support, 
-   // epsilon just returns zero, and our "optimisation" will always fail:
-   if(a < tools::epsilon<result_type>())
-      return -x * x / 2;
-   boost::math::detail::log1p_series<T> s(x);
-   s();
-   boost::uintmax_t max_iter = policies::get_max_series_iterations<Policy>();
-#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582))
-   T zero = 0;
-   T result = boost::math::tools::sum_series(s, policies::get_epsilon<T, Policy>(), max_iter, zero);
-#else
-   T result = boost::math::tools::sum_series(s, policies::get_epsilon<T, Policy>(), max_iter);
-#endif
-   policies::check_series_iterations<T>(function, max_iter, pol);
-   return result;
-}
-
-template <class T>
-inline typename tools::promote_args<T>::type log1pmx(T x)
-{
-   return log1pmx(x, policies::policy<>());
-}
-
-} // namespace math
-} // namespace boost
-
-#endif // BOOST_MATH_LOG1P_INCLUDED
-
-
-
diff --git a/boost/math/special_functions/math_fwd.hpp b/boost/math/special_functions/math_fwd.hpp
deleted file mode 100644
index 9de38ec..0000000
--- a/boost/math/special_functions/math_fwd.hpp
+++ /dev/null
@@ -1,1408 +0,0 @@
-// math_fwd.hpp
-
-// TODO revise completely for new distribution classes.
-
-// Copyright Paul A. Bristow 2006.
-// Copyright John Maddock 2006.
-
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt
-// or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// Omnibus list of forward declarations of math special functions.
-
-// IT = Integer type.
-// RT = Real type (built-in floating-point types, float, double, long double) & User Defined Types
-// AT = Integer or Real type
-
-#ifndef BOOST_MATH_SPECIAL_MATH_FWD_HPP
-#define BOOST_MATH_SPECIAL_MATH_FWD_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/math/special_functions/detail/round_fwd.hpp>
-#include <boost/math/tools/promotion.hpp> // for argument promotion.
-#include <boost/math/policies/policy.hpp>
-#include <boost/mpl/comparison.hpp>
-#include <boost/config/no_tr1/complex.hpp>
-
-#define BOOST_NO_MACRO_EXPAND /**/
-
-namespace boost
-{
-   namespace math
-   { // Math functions (in roughly alphabetic order).
-
-   // Beta functions.
-   template <class RT1, class RT2>
-   typename tools::promote_args<RT1, RT2>::type
-         beta(RT1 a, RT2 b); // Beta function (2 arguments).
-
-   template <class RT1, class RT2, class A>
-   typename tools::promote_args<RT1, RT2, A>::type
-         beta(RT1 a, RT2 b, A x); // Beta function (3 arguments).
-
-   template <class RT1, class RT2, class RT3, class Policy>
-   typename tools::promote_args<RT1, RT2, RT3>::type
-         beta(RT1 a, RT2 b, RT3 x, const Policy& pol); // Beta function (3 arguments).
-
-   template <class RT1, class RT2, class RT3>
-   typename tools::promote_args<RT1, RT2, RT3>::type
-         betac(RT1 a, RT2 b, RT3 x);
-
-   template <class RT1, class RT2, class RT3, class Policy>
-   typename tools::promote_args<RT1, RT2, RT3>::type
-         betac(RT1 a, RT2 b, RT3 x, const Policy& pol);
-
-   template <class RT1, class RT2, class RT3>
-   typename tools::promote_args<RT1, RT2, RT3>::type
-         ibeta(RT1 a, RT2 b, RT3 x); // Incomplete beta function.
-
-   template <class RT1, class RT2, class RT3, class Policy>
-   typename tools::promote_args<RT1, RT2, RT3>::type
-         ibeta(RT1 a, RT2 b, RT3 x, const Policy& pol); // Incomplete beta function.
-
-   template <class RT1, class RT2, class RT3>
-   typename tools::promote_args<RT1, RT2, RT3>::type
-         ibetac(RT1 a, RT2 b, RT3 x); // Incomplete beta complement function.
-
-   template <class RT1, class RT2, class RT3, class Policy>
-   typename tools::promote_args<RT1, RT2, RT3>::type
-         ibetac(RT1 a, RT2 b, RT3 x, const Policy& pol); // Incomplete beta complement function.
-
-   template <class T1, class T2, class T3, class T4>
-   typename tools::promote_args<T1, T2, T3, T4>::type
-         ibeta_inv(T1 a, T2 b, T3 p, T4* py);
-
-   template <class T1, class T2, class T3, class T4, class Policy>
-   typename tools::promote_args<T1, T2, T3, T4>::type
-         ibeta_inv(T1 a, T2 b, T3 p, T4* py, const Policy& pol);
-
-   template <class RT1, class RT2, class RT3>
-   typename tools::promote_args<RT1, RT2, RT3>::type
-         ibeta_inv(RT1 a, RT2 b, RT3 p); // Incomplete beta inverse function.
-
-   template <class RT1, class RT2, class RT3, class Policy>
-   typename tools::promote_args<RT1, RT2, RT3>::type
-         ibeta_inv(RT1 a, RT2 b, RT3 p, const Policy&); // Incomplete beta inverse function.
-
-   template <class RT1, class RT2, class RT3>
-   typename tools::promote_args<RT1, RT2, RT3>::type
-         ibeta_inva(RT1 a, RT2 b, RT3 p); // Incomplete beta inverse function.
-
-   template <class RT1, class RT2, class RT3, class Policy>
-   typename tools::promote_args<RT1, RT2, RT3>::type
-         ibeta_inva(RT1 a, RT2 b, RT3 p, const Policy&); // Incomplete beta inverse function.
-
-   template <class RT1, class RT2, class RT3>
-   typename tools::promote_args<RT1, RT2, RT3>::type
-         ibeta_invb(RT1 a, RT2 b, RT3 p); // Incomplete beta inverse function.
-
-   template <class RT1, class RT2, class RT3, class Policy>
-   typename tools::promote_args<RT1, RT2, RT3>::type
-         ibeta_invb(RT1 a, RT2 b, RT3 p, const Policy&); // Incomplete beta inverse function.
-
-   template <class T1, class T2, class T3, class T4>
-   typename tools::promote_args<T1, T2, T3, T4>::type
-         ibetac_inv(T1 a, T2 b, T3 q, T4* py);
-
-   template <class T1, class T2, class T3, class T4, class Policy>
-   typename tools::promote_args<T1, T2, T3, T4>::type
-         ibetac_inv(T1 a, T2 b, T3 q, T4* py, const Policy& pol);
-
-   template <class RT1, class RT2, class RT3>
-   typename tools::promote_args<RT1, RT2, RT3>::type
-         ibetac_inv(RT1 a, RT2 b, RT3 q); // Incomplete beta complement inverse function.
-
-   template <class RT1, class RT2, class RT3, class Policy>
-   typename tools::promote_args<RT1, RT2, RT3>::type
-         ibetac_inv(RT1 a, RT2 b, RT3 q, const Policy&); // Incomplete beta complement inverse function.
-
-   template <class RT1, class RT2, class RT3>
-   typename tools::promote_args<RT1, RT2, RT3>::type
-         ibetac_inva(RT1 a, RT2 b, RT3 q); // Incomplete beta complement inverse function.
-
-   template <class RT1, class RT2, class RT3, class Policy>
-   typename tools::promote_args<RT1, RT2, RT3>::type
-         ibetac_inva(RT1 a, RT2 b, RT3 q, const Policy&); // Incomplete beta complement inverse function.
-
-   template <class RT1, class RT2, class RT3>
-   typename tools::promote_args<RT1, RT2, RT3>::type
-         ibetac_invb(RT1 a, RT2 b, RT3 q); // Incomplete beta complement inverse function.
-
-   template <class RT1, class RT2, class RT3, class Policy>
-   typename tools::promote_args<RT1, RT2, RT3>::type
-         ibetac_invb(RT1 a, RT2 b, RT3 q, const Policy&); // Incomplete beta complement inverse function.
-
-   template <class RT1, class RT2, class RT3>
-   typename tools::promote_args<RT1, RT2, RT3>::type
-         ibeta_derivative(RT1 a, RT2 b, RT3 x);  // derivative of incomplete beta
-
-   template <class RT1, class RT2, class RT3, class Policy>
-   typename tools::promote_args<RT1, RT2, RT3>::type
-         ibeta_derivative(RT1 a, RT2 b, RT3 x, const Policy& pol);  // derivative of incomplete beta
-
-   // erf & erfc error functions.
-   template <class RT> // Error function.
-   typename tools::promote_args<RT>::type erf(RT z);
-   template <class RT, class Policy> // Error function.
-   typename tools::promote_args<RT>::type erf(RT z, const Policy&);
-
-   template <class RT>// Error function complement.
-   typename tools::promote_args<RT>::type erfc(RT z);
-   template <class RT, class Policy>// Error function complement.
-   typename tools::promote_args<RT>::type erfc(RT z, const Policy&);
-
-   template <class RT>// Error function inverse.
-   typename tools::promote_args<RT>::type erf_inv(RT z);
-   template <class RT, class Policy>// Error function inverse.
-   typename tools::promote_args<RT>::type erf_inv(RT z, const Policy& pol);
-
-   template <class RT>// Error function complement inverse.
-   typename tools::promote_args<RT>::type erfc_inv(RT z);
-   template <class RT, class Policy>// Error function complement inverse.
-   typename tools::promote_args<RT>::type erfc_inv(RT z, const Policy& pol);
-
-   // Polynomials:
-   template <class T1, class T2, class T3>
-   typename tools::promote_args<T1, T2, T3>::type
-         legendre_next(unsigned l, T1 x, T2 Pl, T3 Plm1);
-
-   template <class T>
-   typename tools::promote_args<T>::type
-         legendre_p(int l, T x);
-
-   template <class T, class Policy>
-   typename tools::promote_args<T>::type
-         legendre_p(int l, T x, const Policy& pol);
-
-   template <class T>
-   typename tools::promote_args<T>::type
-         legendre_q(unsigned l, T x);
-
-   template <class T, class Policy>
-   typename tools::promote_args<T>::type
-         legendre_q(unsigned l, T x, const Policy& pol);
-
-   template <class T1, class T2, class T3>
-   typename tools::promote_args<T1, T2, T3>::type
-         legendre_next(unsigned l, unsigned m, T1 x, T2 Pl, T3 Plm1);
-
-   template <class T>
-   typename tools::promote_args<T>::type
-         legendre_p(int l, int m, T x);
-
-   template <class T, class Policy>
-   typename tools::promote_args<T>::type
-         legendre_p(int l, int m, T x, const Policy& pol);
-
-   template <class T1, class T2, class T3>
-   typename tools::promote_args<T1, T2, T3>::type
-         laguerre_next(unsigned n, T1 x, T2 Ln, T3 Lnm1);
-
-   template <class T1, class T2, class T3>
-   typename tools::promote_args<T1, T2, T3>::type
-      laguerre_next(unsigned n, unsigned l, T1 x, T2 Pl, T3 Plm1);
-
-   template <class T>
-   typename tools::promote_args<T>::type
-      laguerre(unsigned n, T x);
-
-   template <class T, class Policy>
-   typename tools::promote_args<T>::type
-      laguerre(unsigned n, unsigned m, T x, const Policy& pol);
-
-   template <class T1, class T2>
-   struct laguerre_result
-   {
-      typedef typename mpl::if_<
-         policies::is_policy<T2>,
-         typename tools::promote_args<T1>::type,
-         typename tools::promote_args<T2>::type
-      >::type type;
-   };
-
-   template <class T1, class T2>
-   typename laguerre_result<T1, T2>::type
-      laguerre(unsigned n, T1 m, T2 x);
-
-   template <class T>
-   typename tools::promote_args<T>::type
-      hermite(unsigned n, T x);
-
-   template <class T, class Policy>
-   typename tools::promote_args<T>::type
-      hermite(unsigned n, T x, const Policy& pol);
-
-   template <class T1, class T2, class T3>
-   typename tools::promote_args<T1, T2, T3>::type
-      hermite_next(unsigned n, T1 x, T2 Hn, T3 Hnm1);
-
-   template <class T1, class T2>
-   std::complex<typename tools::promote_args<T1, T2>::type>
-         spherical_harmonic(unsigned n, int m, T1 theta, T2 phi);
-
-   template <class T1, class T2, class Policy>
-   std::complex<typename tools::promote_args<T1, T2>::type>
-      spherical_harmonic(unsigned n, int m, T1 theta, T2 phi, const Policy& pol);
-
-   template <class T1, class T2>
-   typename tools::promote_args<T1, T2>::type
-         spherical_harmonic_r(unsigned n, int m, T1 theta, T2 phi);
-
-   template <class T1, class T2, class Policy>
-   typename tools::promote_args<T1, T2>::type
-      spherical_harmonic_r(unsigned n, int m, T1 theta, T2 phi, const Policy& pol);
-
-   template <class T1, class T2>
-   typename tools::promote_args<T1, T2>::type
-         spherical_harmonic_i(unsigned n, int m, T1 theta, T2 phi);
-
-   template <class T1, class T2, class Policy>
-   typename tools::promote_args<T1, T2>::type
-      spherical_harmonic_i(unsigned n, int m, T1 theta, T2 phi, const Policy& pol);
-
-   // Elliptic integrals:
-   template <class T1, class T2, class T3>
-   typename tools::promote_args<T1, T2, T3>::type
-         ellint_rf(T1 x, T2 y, T3 z);
-
-   template <class T1, class T2, class T3, class Policy>
-   typename tools::promote_args<T1, T2, T3>::type
-         ellint_rf(T1 x, T2 y, T3 z, const Policy& pol);
-
-   template <class T1, class T2, class T3>
-   typename tools::promote_args<T1, T2, T3>::type
-         ellint_rd(T1 x, T2 y, T3 z);
-
-   template <class T1, class T2, class T3, class Policy>
-   typename tools::promote_args<T1, T2, T3>::type
-         ellint_rd(T1 x, T2 y, T3 z, const Policy& pol);
-
-   template <class T1, class T2>
-   typename tools::promote_args<T1, T2>::type
-         ellint_rc(T1 x, T2 y);
-
-   template <class T1, class T2, class Policy>
-   typename tools::promote_args<T1, T2>::type
-         ellint_rc(T1 x, T2 y, const Policy& pol);
-
-   template <class T1, class T2, class T3, class T4>
-   typename tools::promote_args<T1, T2, T3, T4>::type
-         ellint_rj(T1 x, T2 y, T3 z, T4 p);
-
-   template <class T1, class T2, class T3, class T4, class Policy>
-   typename tools::promote_args<T1, T2, T3, T4>::type
-         ellint_rj(T1 x, T2 y, T3 z, T4 p, const Policy& pol);
-
-   template <typename T>
-   typename tools::promote_args<T>::type ellint_2(T k);
-
-   template <class T1, class T2>
-   typename tools::promote_args<T1, T2>::type ellint_2(T1 k, T2 phi);
-
-   template <class T1, class T2, class Policy>
-   typename tools::promote_args<T1, T2>::type ellint_2(T1 k, T2 phi, const Policy& pol);
-
-   template <typename T>
-   typename tools::promote_args<T>::type ellint_1(T k);
-
-   template <class T1, class T2>
-   typename tools::promote_args<T1, T2>::type ellint_1(T1 k, T2 phi);
-
-   template <class T1, class T2, class Policy>
-   typename tools::promote_args<T1, T2>::type ellint_1(T1 k, T2 phi, const Policy& pol);
-
-   namespace detail{
-
-   template <class T, class U, class V>
-   struct ellint_3_result
-   {
-      typedef typename mpl::if_<
-         policies::is_policy<V>,
-         typename tools::promote_args<T, U>::type,
-         typename tools::promote_args<T, U, V>::type
-      >::type type;
-   };
-
-   } // namespace detail
-
-
-   template <class T1, class T2, class T3>
-   typename detail::ellint_3_result<T1, T2, T3>::type ellint_3(T1 k, T2 v, T3 phi);
-
-   template <class T1, class T2, class T3, class Policy>
-   typename tools::promote_args<T1, T2, T3>::type ellint_3(T1 k, T2 v, T3 phi, const Policy& pol);
-
-   template <class T1, class T2>
-   typename tools::promote_args<T1, T2>::type ellint_3(T1 k, T2 v);
-
-   // Factorial functions.
-   // Note: not for integral types, at present.
-   template <class RT>
-   struct max_factorial;
-   template <class RT>
-   RT factorial(unsigned int);
-   template <class RT, class Policy>
-   RT factorial(unsigned int, const Policy& pol);
-   template <class RT>
-   RT unchecked_factorial(unsigned int BOOST_MATH_APPEND_EXPLICIT_TEMPLATE_TYPE(RT));
-   template <class RT>
-   RT double_factorial(unsigned i);
-   template <class RT, class Policy>
-   RT double_factorial(unsigned i, const Policy& pol);
-
-   template <class RT>
-   typename tools::promote_args<RT>::type falling_factorial(RT x, unsigned n);
-
-   template <class RT, class Policy>
-   typename tools::promote_args<RT>::type falling_factorial(RT x, unsigned n, const Policy& pol);
-
-   template <class RT>
-   typename tools::promote_args<RT>::type rising_factorial(RT x, int n);
-
-   template <class RT, class Policy>
-   typename tools::promote_args<RT>::type rising_factorial(RT x, int n, const Policy& pol);
-
-   // Gamma functions.
-   template <class RT>
-   typename tools::promote_args<RT>::type tgamma(RT z);
-
-   template <class RT>
-   typename tools::promote_args<RT>::type tgamma1pm1(RT z);
-
-   template <class RT, class Policy>
-   typename tools::promote_args<RT>::type tgamma1pm1(RT z, const Policy& pol);
-
-   template <class RT1, class RT2>
-   typename tools::promote_args<RT1, RT2>::type tgamma(RT1 a, RT2 z);
-
-   template <class RT1, class RT2, class Policy>
-   typename tools::promote_args<RT1, RT2>::type tgamma(RT1 a, RT2 z, const Policy& pol);
-
-   template <class RT>
-   typename tools::promote_args<RT>::type lgamma(RT z, int* sign);
-
-   template <class RT, class Policy>
-   typename tools::promote_args<RT>::type lgamma(RT z, int* sign, const Policy& pol);
-
-   template <class RT>
-   typename tools::promote_args<RT>::type lgamma(RT x);
-
-   template <class RT, class Policy>
-   typename tools::promote_args<RT>::type lgamma(RT x, const Policy& pol);
-
-   template <class RT1, class RT2>
-   typename tools::promote_args<RT1, RT2>::type tgamma_lower(RT1 a, RT2 z);
-
-   template <class RT1, class RT2, class Policy>
-   typename tools::promote_args<RT1, RT2>::type tgamma_lower(RT1 a, RT2 z, const Policy&);
-
-   template <class RT1, class RT2>
-   typename tools::promote_args<RT1, RT2>::type gamma_q(RT1 a, RT2 z);
-
-   template <class RT1, class RT2, class Policy>
-   typename tools::promote_args<RT1, RT2>::type gamma_q(RT1 a, RT2 z, const Policy&);
-
-   template <class RT1, class RT2>
-   typename tools::promote_args<RT1, RT2>::type gamma_p(RT1 a, RT2 z);
-
-   template <class RT1, class RT2, class Policy>
-   typename tools::promote_args<RT1, RT2>::type gamma_p(RT1 a, RT2 z, const Policy&);
-
-   template <class T1, class T2>
-   typename tools::promote_args<T1, T2>::type tgamma_delta_ratio(T1 z, T2 delta);
-
-   template <class T1, class T2, class Policy>
-   typename tools::promote_args<T1, T2>::type tgamma_delta_ratio(T1 z, T2 delta, const Policy&);
-
-   template <class T1, class T2>
-   typename tools::promote_args<T1, T2>::type tgamma_ratio(T1 a, T2 b);
-
-   template <class T1, class T2, class Policy>
-   typename tools::promote_args<T1, T2>::type tgamma_ratio(T1 a, T2 b, const Policy&);
-
-   template <class T1, class T2>
-   typename tools::promote_args<T1, T2>::type gamma_p_derivative(T1 a, T2 x);
-
-   template <class T1, class T2, class Policy>
-   typename tools::promote_args<T1, T2>::type gamma_p_derivative(T1 a, T2 x, const Policy&);
-
-   // gamma inverse.
-   template <class T1, class T2>
-   typename tools::promote_args<T1, T2>::type gamma_p_inv(T1 a, T2 p);
-
-   template <class T1, class T2, class Policy>
-   typename tools::promote_args<T1, T2>::type gamma_p_inva(T1 a, T2 p, const Policy&);
-
-   template <class T1, class T2>
-   typename tools::promote_args<T1, T2>::type gamma_p_inva(T1 a, T2 p);
-
-   template <class T1, class T2, class Policy>
-   typename tools::promote_args<T1, T2>::type gamma_p_inv(T1 a, T2 p, const Policy&);
-
-   template <class T1, class T2>
-   typename tools::promote_args<T1, T2>::type gamma_q_inv(T1 a, T2 q);
-
-   template <class T1, class T2, class Policy>
-   typename tools::promote_args<T1, T2>::type gamma_q_inv(T1 a, T2 q, const Policy&);
-
-   template <class T1, class T2>
-   typename tools::promote_args<T1, T2>::type gamma_q_inva(T1 a, T2 q);
-
-   template <class T1, class T2, class Policy>
-   typename tools::promote_args<T1, T2>::type gamma_q_inva(T1 a, T2 q, const Policy&);
-
-   // digamma:
-   template <class T>
-   typename tools::promote_args<T>::type digamma(T x);
-
-   template <class T, class Policy>
-   typename tools::promote_args<T>::type digamma(T x, const Policy&);
-
-   // Hypotenuse function sqrt(x ^ 2 + y ^ 2).
-   template <class T1, class T2>
-   typename tools::promote_args<T1, T2>::type
-         hypot(T1 x, T2 y);
-
-   template <class T1, class T2, class Policy>
-   typename tools::promote_args<T1, T2>::type
-         hypot(T1 x, T2 y, const Policy&);
-
-   // cbrt - cube root.
-   template <class RT>
-   typename tools::promote_args<RT>::type cbrt(RT z);
-
-   template <class RT, class Policy>
-   typename tools::promote_args<RT>::type cbrt(RT z, const Policy&);
-
-   // log1p is log(x + 1)
-   template <class T>
-   typename tools::promote_args<T>::type log1p(T);
-
-   template <class T, class Policy>
-   typename tools::promote_args<T>::type log1p(T, const Policy&);
-
-   // log1pmx is log(x + 1) - x
-   template <class T>
-   typename tools::promote_args<T>::type log1pmx(T);
-
-   template <class T, class Policy>
-   typename tools::promote_args<T>::type log1pmx(T, const Policy&);
-
-   // Exp (x) minus 1 functions.
-   template <class T>
-   typename tools::promote_args<T>::type expm1(T);
-
-   template <class T, class Policy>
-   typename tools::promote_args<T>::type expm1(T, const Policy&);
-
-   // Power - 1
-   template <class T1, class T2>
-   typename tools::promote_args<T1, T2>::type
-         powm1(const T1 a, const T2 z);
-
-   template <class T1, class T2, class Policy>
-   typename tools::promote_args<T1, T2>::type
-         powm1(const T1 a, const T2 z, const Policy&);
-
-   // sqrt(1+x) - 1
-   template <class T>
-   typename tools::promote_args<T>::type sqrt1pm1(const T& val);
-
-   template <class T, class Policy>
-   typename tools::promote_args<T>::type sqrt1pm1(const T& val, const Policy&);
-
-   // sinus cardinals:
-   template <class T>
-   typename tools::promote_args<T>::type sinc_pi(T x);
-
-   template <class T, class Policy>
-   typename tools::promote_args<T>::type sinc_pi(T x, const Policy&);
-
-   template <class T>
-   typename tools::promote_args<T>::type sinhc_pi(T x);
-
-   template <class T, class Policy>
-   typename tools::promote_args<T>::type sinhc_pi(T x, const Policy&);
-
-   // inverse hyperbolics:
-   template<typename T>
-   typename tools::promote_args<T>::type asinh(T x);
-
-   template<typename T, class Policy>
-   typename tools::promote_args<T>::type asinh(T x, const Policy&);
-
-   template<typename T>
-   typename tools::promote_args<T>::type acosh(T x);
-
-   template<typename T, class Policy>
-   typename tools::promote_args<T>::type acosh(T x, const Policy&);
-
-   template<typename T>
-   typename tools::promote_args<T>::type atanh(T x);
-
-   template<typename T, class Policy>
-   typename tools::promote_args<T>::type atanh(T x, const Policy&);
-
-   namespace detail{
-
-      typedef mpl::int_<0> bessel_no_int_tag;      // No integer optimisation possible.
-      typedef mpl::int_<1> bessel_maybe_int_tag;   // Maybe integer optimisation.
-      typedef mpl::int_<2> bessel_int_tag;         // Definite integer optimistaion.
-
-      template <class T1, class T2, class Policy>
-      struct bessel_traits
-      {
-         typedef typename tools::promote_args<
-            T1, T2
-         >::type result_type;
-
-         typedef typename policies::precision<result_type, Policy>::type precision_type;
-
-         typedef typename mpl::if_<
-            mpl::or_<
-               mpl::less_equal<precision_type, mpl::int_<0> >,
-               mpl::greater<precision_type, mpl::int_<64> > >,
-            bessel_no_int_tag,
-            typename mpl::if_<
-               is_integral<T1>,
-               bessel_int_tag,
-               bessel_maybe_int_tag
-            >::type
-         >::type optimisation_tag;
-      };
-   } // detail
-
-   // Bessel functions:
-   template <class T1, class T2, class Policy>
-   typename detail::bessel_traits<T1, T2, Policy>::result_type cyl_bessel_j(T1 v, T2 x, const Policy& pol);
-
-   template <class T1, class T2>
-   typename detail::bessel_traits<T1, T2, policies::policy<> >::result_type cyl_bessel_j(T1 v, T2 x);
-
-   template <class T, class Policy>
-   typename detail::bessel_traits<T, T, Policy>::result_type sph_bessel(unsigned v, T x, const Policy& pol);
-
-   template <class T>
-   typename detail::bessel_traits<T, T, policies::policy<> >::result_type sph_bessel(unsigned v, T x);
-
-   template <class T1, class T2, class Policy>
-   typename detail::bessel_traits<T1, T2, Policy>::result_type cyl_bessel_i(T1 v, T2 x, const Policy& pol);
-
-   template <class T1, class T2>
-   typename detail::bessel_traits<T1, T2, policies::policy<> >::result_type cyl_bessel_i(T1 v, T2 x);
-
-   template <class T1, class T2, class Policy>
-   typename detail::bessel_traits<T1, T2, Policy>::result_type cyl_bessel_k(T1 v, T2 x, const Policy& pol);
-
-   template <class T1, class T2>
-   typename detail::bessel_traits<T1, T2, policies::policy<> >::result_type cyl_bessel_k(T1 v, T2 x);
-
-   template <class T1, class T2, class Policy>
-   typename detail::bessel_traits<T1, T2, Policy>::result_type cyl_neumann(T1 v, T2 x, const Policy& pol);
-
-   template <class T1, class T2>
-   typename detail::bessel_traits<T1, T2, policies::policy<> >::result_type cyl_neumann(T1 v, T2 x);
-
-   template <class T, class Policy>
-   typename detail::bessel_traits<T, T, Policy>::result_type sph_neumann(unsigned v, T x, const Policy& pol);
-
-   template <class T>
-   typename detail::bessel_traits<T, T, policies::policy<> >::result_type sph_neumann(unsigned v, T x);
-
-   template <class T, class Policy>
-   typename detail::bessel_traits<T, T, Policy>::result_type cyl_bessel_j_zero(T v, int m, const Policy& pol);
-
-   template <class T>
-   typename detail::bessel_traits<T, T, policies::policy<> >::result_type cyl_bessel_j_zero(T v, int m);
-
-   template <class T, class OutputIterator>
-   OutputIterator cyl_bessel_j_zero(T v,
-                          int start_index,
-                          unsigned number_of_zeros,
-                          OutputIterator out_it);
-
-   template <class T, class OutputIterator, class Policy>
-   OutputIterator cyl_bessel_j_zero(T v,
-                          int start_index,
-                          unsigned number_of_zeros,
-                          OutputIterator out_it,
-                          const Policy&);
-
-   template <class T, class Policy>
-   typename detail::bessel_traits<T, T, Policy>::result_type cyl_neumann_zero(T v, int m, const Policy& pol);
-
-   template <class T>
-   typename detail::bessel_traits<T, T, policies::policy<> >::result_type cyl_neumann_zero(T v, int m);
-
-   template <class T, class OutputIterator>
-   OutputIterator cyl_neumann_zero(T v,
-                         int start_index,
-                         unsigned number_of_zeros,
-                         OutputIterator out_it);
-
-   template <class T, class OutputIterator, class Policy>
-   OutputIterator cyl_neumann_zero(T v,
-                         int start_index,
-                         unsigned number_of_zeros,
-                         OutputIterator out_it,
-                         const Policy&);
-
-   template <class T1, class T2>
-   std::complex<typename detail::bessel_traits<T1, T2, policies::policy<> >::result_type> cyl_hankel_1(T1 v, T2 x);
-
-   template <class T1, class T2, class Policy>
-   std::complex<typename detail::bessel_traits<T1, T2, Policy>::result_type> cyl_hankel_1(T1 v, T2 x, const Policy& pol);
-
-   template <class T1, class T2, class Policy>
-   std::complex<typename detail::bessel_traits<T1, T2, Policy>::result_type> cyl_hankel_2(T1 v, T2 x, const Policy& pol);
-
-   template <class T1, class T2>
-   std::complex<typename detail::bessel_traits<T1, T2, policies::policy<> >::result_type> cyl_hankel_2(T1 v, T2 x);
-
-   template <class T1, class T2, class Policy>
-   std::complex<typename detail::bessel_traits<T1, T2, Policy>::result_type> sph_hankel_1(T1 v, T2 x, const Policy& pol);
-
-   template <class T1, class T2>
-   std::complex<typename detail::bessel_traits<T1, T2, policies::policy<> >::result_type> sph_hankel_1(T1 v, T2 x);
-
-   template <class T1, class T2, class Policy>
-   std::complex<typename detail::bessel_traits<T1, T2, Policy>::result_type> sph_hankel_2(T1 v, T2 x, const Policy& pol);
-
-   template <class T1, class T2>
-   std::complex<typename detail::bessel_traits<T1, T2, policies::policy<> >::result_type> sph_hankel_2(T1 v, T2 x);
-
-   template <class T, class Policy>
-   typename tools::promote_args<T>::type airy_ai(T x, const Policy&);
-
-   template <class T>
-   typename tools::promote_args<T>::type airy_ai(T x);
-
-   template <class T, class Policy>
-   typename tools::promote_args<T>::type airy_bi(T x, const Policy&);
-
-   template <class T>
-   typename tools::promote_args<T>::type airy_bi(T x);
-
-   template <class T, class Policy>
-   typename tools::promote_args<T>::type airy_ai_prime(T x, const Policy&);
-
-   template <class T>
-   typename tools::promote_args<T>::type airy_ai_prime(T x);
-
-   template <class T, class Policy>
-   typename tools::promote_args<T>::type airy_bi_prime(T x, const Policy&);
-
-   template <class T>
-   typename tools::promote_args<T>::type airy_bi_prime(T x);
-
-   template <class T>
-   T airy_ai_zero(unsigned m);
-   template <class T, class Policy>
-   T airy_ai_zero(unsigned m, const Policy&);
-
-   template <class OutputIterator>
-   OutputIterator airy_ai_zero(
-                     unsigned start_index,
-                     unsigned number_of_zeros,
-                     OutputIterator out_it);
-   template <class OutputIterator, class Policy>
-   OutputIterator airy_ai_zero(
-                     unsigned start_index,
-                     unsigned number_of_zeros,
-                     OutputIterator out_it,
-                     const Policy&);
-
-   template <class T>
-   T airy_bi_zero(unsigned m);
-   template <class T, class Policy>
-   T airy_bi_zero(unsigned m, const Policy&);
-
-   template <class OutputIterator>
-   OutputIterator airy_bi_zero(
-                     unsigned start_index,
-                     unsigned number_of_zeros,
-                     OutputIterator out_it);
-   template <class OutputIterator, class Policy>
-   OutputIterator airy_bi_zero(
-                     unsigned start_index,
-                     unsigned number_of_zeros,
-                     OutputIterator out_it,
-                     const Policy&);
-
-   template <class T, class Policy>
-   typename tools::promote_args<T>::type sin_pi(T x, const Policy&);
-
-   template <class T>
-   typename tools::promote_args<T>::type sin_pi(T x);
-
-   template <class T, class Policy>
-   typename tools::promote_args<T>::type cos_pi(T x, const Policy&);
-
-   template <class T>
-   typename tools::promote_args<T>::type cos_pi(T x);
-
-   template <class T>
-   int fpclassify BOOST_NO_MACRO_EXPAND(T t);
-
-   template <class T>
-   bool isfinite BOOST_NO_MACRO_EXPAND(T z);
-
-   template <class T>
-   bool isinf BOOST_NO_MACRO_EXPAND(T t);
-
-   template <class T>
-   bool isnan BOOST_NO_MACRO_EXPAND(T t);
-
-   template <class T>
-   bool isnormal BOOST_NO_MACRO_EXPAND(T t);
-
-   template<class T>
-   int signbit BOOST_NO_MACRO_EXPAND(T x);
-
-   template <class T>
-   int sign BOOST_NO_MACRO_EXPAND(const T& z);
-
-   template <class T, class U>
-   typename tools::promote_args_permissive<T, U>::type copysign BOOST_NO_MACRO_EXPAND(const T& x, const U& y);
-
-   template <class T>
-   typename tools::promote_args_permissive<T>::type changesign BOOST_NO_MACRO_EXPAND(const T& z);
-
-   // Exponential integrals:
-   namespace detail{
-
-   template <class T, class U>
-   struct expint_result
-   {
-      typedef typename mpl::if_<
-         policies::is_policy<U>,
-         typename tools::promote_args<T>::type,
-         typename tools::promote_args<U>::type
-      >::type type;
-   };
-
-   } // namespace detail
-
-   template <class T, class Policy>
-   typename tools::promote_args<T>::type expint(unsigned n, T z, const Policy&);
-
-   template <class T, class U>
-   typename detail::expint_result<T, U>::type expint(T const z, U const u);
-
-   template <class T>
-   typename tools::promote_args<T>::type expint(T z);
-
-   // Zeta:
-   template <class T, class Policy>
-   typename tools::promote_args<T>::type zeta(T s, const Policy&);
-
-   // Owen's T function:
-   template <class T1, class T2, class Policy>
-   typename tools::promote_args<T1, T2>::type owens_t(T1 h, T2 a, const Policy& pol);
-
-   template <class T1, class T2>
-   typename tools::promote_args<T1, T2>::type owens_t(T1 h, T2 a);
-
-   // Jacobi Functions:
-   template <class T, class U, class V, class Policy>
-   typename tools::promote_args<T, U, V>::type jacobi_elliptic(T k, U theta, V* pcn, V* pdn, const Policy&);
-
-   template <class T, class U, class V>
-   typename tools::promote_args<T, U, V>::type jacobi_elliptic(T k, U theta, V* pcn = 0, V* pdn = 0);
-
-   template <class U, class T, class Policy>
-   typename tools::promote_args<T, U>::type jacobi_sn(U k, T theta, const Policy& pol);
-
-   template <class U, class T>
-   typename tools::promote_args<T, U>::type jacobi_sn(U k, T theta);
-
-   template <class T, class U, class Policy>
-   typename tools::promote_args<T, U>::type jacobi_cn(T k, U theta, const Policy& pol);
-
-   template <class T, class U>
-   typename tools::promote_args<T, U>::type jacobi_cn(T k, U theta);
-
-   template <class T, class U, class Policy>
-   typename tools::promote_args<T, U>::type jacobi_dn(T k, U theta, const Policy& pol);
-
-   template <class T, class U>
-   typename tools::promote_args<T, U>::type jacobi_dn(T k, U theta);
-
-   template <class T, class U, class Policy>
-   typename tools::promote_args<T, U>::type jacobi_cd(T k, U theta, const Policy& pol);
-
-   template <class T, class U>
-   typename tools::promote_args<T, U>::type jacobi_cd(T k, U theta);
-
-   template <class T, class U, class Policy>
-   typename tools::promote_args<T, U>::type jacobi_dc(T k, U theta, const Policy& pol);
-
-   template <class T, class U>
-   typename tools::promote_args<T, U>::type jacobi_dc(T k, U theta);
-
-   template <class T, class U, class Policy>
-   typename tools::promote_args<T, U>::type jacobi_ns(T k, U theta, const Policy& pol);
-
-   template <class T, class U>
-   typename tools::promote_args<T, U>::type jacobi_ns(T k, U theta);
-
-   template <class T, class U, class Policy>
-   typename tools::promote_args<T, U>::type jacobi_sd(T k, U theta, const Policy& pol);
-
-   template <class T, class U>
-   typename tools::promote_args<T, U>::type jacobi_sd(T k, U theta);
-
-   template <class T, class U, class Policy>
-   typename tools::promote_args<T, U>::type jacobi_ds(T k, U theta, const Policy& pol);
-
-   template <class T, class U>
-   typename tools::promote_args<T, U>::type jacobi_ds(T k, U theta);
-
-   template <class T, class U, class Policy>
-   typename tools::promote_args<T, U>::type jacobi_nc(T k, U theta, const Policy& pol);
-
-   template <class T, class U>
-   typename tools::promote_args<T, U>::type jacobi_nc(T k, U theta);
-
-   template <class T, class U, class Policy>
-   typename tools::promote_args<T, U>::type jacobi_nd(T k, U theta, const Policy& pol);
-
-   template <class T, class U>
-   typename tools::promote_args<T, U>::type jacobi_nd(T k, U theta);
-
-   template <class T, class U, class Policy>
-   typename tools::promote_args<T, U>::type jacobi_sc(T k, U theta, const Policy& pol);
-
-   template <class T, class U>
-   typename tools::promote_args<T, U>::type jacobi_sc(T k, U theta);
-
-   template <class T, class U, class Policy>
-   typename tools::promote_args<T, U>::type jacobi_cs(T k, U theta, const Policy& pol);
-
-   template <class T, class U>
-   typename tools::promote_args<T, U>::type jacobi_cs(T k, U theta);
-
-
-   template <class T>
-   typename tools::promote_args<T>::type zeta(T s);
-
-   // pow:
-   template <int N, typename T, class Policy>
-   typename tools::promote_args<T>::type pow(T base, const Policy& policy);
-
-   template <int N, typename T>
-   typename tools::promote_args<T>::type pow(T base);
-
-   // next:
-   template <class T, class U, class Policy>
-   typename tools::promote_args<T, U>::type nextafter(const T&, const U&, const Policy&);
-   template <class T, class U>
-   typename tools::promote_args<T, U>::type nextafter(const T&, const U&);
-   template <class T, class Policy>
-   typename tools::promote_args<T>::type float_next(const T&, const Policy&);
-   template <class T>
-   typename tools::promote_args<T>::type float_next(const T&);
-   template <class T, class Policy>
-   typename tools::promote_args<T>::type float_prior(const T&, const Policy&);
-   template <class T>
-   typename tools::promote_args<T>::type float_prior(const T&);
-   template <class T, class U, class Policy>
-   typename tools::promote_args<T, U>::type float_distance(const T&, const U&, const Policy&);
-   template <class T, class U>
-   typename tools::promote_args<T, U>::type float_distance(const T&, const U&);
-   template <class T, class Policy>
-   typename tools::promote_args<T>::type float_advance(T val, int distance, const Policy& pol);
-   template <class T>
-   typename tools::promote_args<T>::type float_advance(const T& val, int distance);
-
-    } // namespace math
-} // namespace boost
-
-#ifdef BOOST_HAS_LONG_LONG
-#define BOOST_MATH_DETAIL_LL_FUNC(Policy)\
-   \
-   template <class T>\
-   inline T modf(const T& v, boost::long_long_type* ipart){ using boost::math::modf; return modf(v, ipart, Policy()); }\
-   \
-   template <class T>\
-   inline boost::long_long_type lltrunc(const T& v){ using boost::math::lltrunc; return lltrunc(v, Policy()); }\
-   \
-   template <class T>\
-   inline boost::long_long_type llround(const T& v){ using boost::math::llround; return llround(v, Policy()); }\
-
-#else
-#define BOOST_MATH_DETAIL_LL_FUNC(Policy)
-#endif
-
-#define BOOST_MATH_DECLARE_SPECIAL_FUNCTIONS(Policy)\
-   \
-   BOOST_MATH_DETAIL_LL_FUNC(Policy)\
-   \
-   template <class RT1, class RT2>\
-   inline typename boost::math::tools::promote_args<RT1, RT2>::type \
-   beta(RT1 a, RT2 b) { return ::boost::math::beta(a, b, Policy()); }\
-\
-   template <class RT1, class RT2, class A>\
-   inline typename boost::math::tools::promote_args<RT1, RT2, A>::type \
-   beta(RT1 a, RT2 b, A x){ return ::boost::math::beta(a, b, x, Policy()); }\
-\
-   template <class RT1, class RT2, class RT3>\
-   inline typename boost::math::tools::promote_args<RT1, RT2, RT3>::type \
-   betac(RT1 a, RT2 b, RT3 x) { return ::boost::math::betac(a, b, x, Policy()); }\
-\
-   template <class RT1, class RT2, class RT3>\
-   inline typename boost::math::tools::promote_args<RT1, RT2, RT3>::type \
-   ibeta(RT1 a, RT2 b, RT3 x){ return ::boost::math::ibeta(a, b, x, Policy()); }\
-\
-   template <class RT1, class RT2, class RT3>\
-   inline typename boost::math::tools::promote_args<RT1, RT2, RT3>::type \
-   ibetac(RT1 a, RT2 b, RT3 x){ return ::boost::math::ibetac(a, b, x, Policy()); }\
-\
-   template <class T1, class T2, class T3, class T4>\
-   inline typename boost::math::tools::promote_args<T1, T2, T3, T4>::type  \
-   ibeta_inv(T1 a, T2 b, T3 p, T4* py){ return ::boost::math::ibeta_inv(a, b, p, py, Policy()); }\
-\
-   template <class RT1, class RT2, class RT3>\
-   inline typename boost::math::tools::promote_args<RT1, RT2, RT3>::type \
-   ibeta_inv(RT1 a, RT2 b, RT3 p){ return ::boost::math::ibeta_inv(a, b, p, Policy()); }\
-\
-   template <class T1, class T2, class T3, class T4>\
-   inline typename boost::math::tools::promote_args<T1, T2, T3, T4>::type \
-   ibetac_inv(T1 a, T2 b, T3 q, T4* py){ return ::boost::math::ibetac_inv(a, b, q, py, Policy()); }\
-\
-   template <class RT1, class RT2, class RT3>\
-   inline typename boost::math::tools::promote_args<RT1, RT2, RT3>::type \
-   ibeta_inva(RT1 a, RT2 b, RT3 p){ return ::boost::math::ibeta_inva(a, b, p, Policy()); }\
-\
-   template <class T1, class T2, class T3>\
-   inline typename boost::math::tools::promote_args<T1, T2, T3>::type \
-   ibetac_inva(T1 a, T2 b, T3 q){ return ::boost::math::ibetac_inva(a, b, q, Policy()); }\
-\
-   template <class RT1, class RT2, class RT3>\
-   inline typename boost::math::tools::promote_args<RT1, RT2, RT3>::type \
-   ibeta_invb(RT1 a, RT2 b, RT3 p){ return ::boost::math::ibeta_invb(a, b, p, Policy()); }\
-\
-   template <class T1, class T2, class T3>\
-   inline typename boost::math::tools::promote_args<T1, T2, T3>::type \
-   ibetac_invb(T1 a, T2 b, T3 q){ return ::boost::math::ibetac_invb(a, b, q, Policy()); }\
-\
-   template <class RT1, class RT2, class RT3>\
-   inline typename boost::math::tools::promote_args<RT1, RT2, RT3>::type \
-   ibetac_inv(RT1 a, RT2 b, RT3 q){ return ::boost::math::ibetac_inv(a, b, q, Policy()); }\
-\
-   template <class RT1, class RT2, class RT3>\
-   inline typename boost::math::tools::promote_args<RT1, RT2, RT3>::type \
-   ibeta_derivative(RT1 a, RT2 b, RT3 x){ return ::boost::math::ibeta_derivative(a, b, x, Policy()); }\
-\
-   template <class RT>\
-   inline typename boost::math::tools::promote_args<RT>::type erf(RT z) { return ::boost::math::erf(z, Policy()); }\
-\
-   template <class RT>\
-   inline typename boost::math::tools::promote_args<RT>::type erfc(RT z){ return ::boost::math::erfc(z, Policy()); }\
-\
-   template <class RT>\
-   inline typename boost::math::tools::promote_args<RT>::type erf_inv(RT z) { return ::boost::math::erf_inv(z, Policy()); }\
-\
-   template <class RT>\
-   inline typename boost::math::tools::promote_args<RT>::type erfc_inv(RT z){ return ::boost::math::erfc_inv(z, Policy()); }\
-\
-   using boost::math::legendre_next;\
-\
-   template <class T>\
-   inline typename boost::math::tools::promote_args<T>::type \
-   legendre_p(int l, T x){ return ::boost::math::legendre_p(l, x, Policy()); }\
-\
-   template <class T>\
-   inline typename boost::math::tools::promote_args<T>::type \
-   legendre_q(unsigned l, T x){ return ::boost::math::legendre_q(l, x, Policy()); }\
-\
-   using ::boost::math::legendre_next;\
-\
-   template <class T>\
-   inline typename boost::math::tools::promote_args<T>::type \
-   legendre_p(int l, int m, T x){ return ::boost::math::legendre_p(l, m, x, Policy()); }\
-\
-   using ::boost::math::laguerre_next;\
-\
-   template <class T>\
-   inline typename boost::math::tools::promote_args<T>::type \
-   laguerre(unsigned n, T x){ return ::boost::math::laguerre(n, x, Policy()); }\
-\
-   template <class T1, class T2>\
-   inline typename boost::math::laguerre_result<T1, T2>::type \
-   laguerre(unsigned n, T1 m, T2 x) { return ::boost::math::laguerre(n, m, x, Policy()); }\
-\
-   template <class T>\
-   inline typename boost::math::tools::promote_args<T>::type \
-   hermite(unsigned n, T x){ return ::boost::math::hermite(n, x, Policy()); }\
-\
-   using boost::math::hermite_next;\
-\
-   template <class T1, class T2>\
-   inline std::complex<typename boost::math::tools::promote_args<T1, T2>::type> \
-   spherical_harmonic(unsigned n, int m, T1 theta, T2 phi){ return boost::math::spherical_harmonic(n, m, theta, phi, Policy()); }\
-\
-   template <class T1, class T2>\
-   inline typename boost::math::tools::promote_args<T1, T2>::type \
-   spherical_harmonic_r(unsigned n, int m, T1 theta, T2 phi){ return ::boost::math::spherical_harmonic_r(n, m, theta, phi, Policy()); }\
-\
-   template <class T1, class T2>\
-   inline typename boost::math::tools::promote_args<T1, T2>::type \
-   spherical_harmonic_i(unsigned n, int m, T1 theta, T2 phi){ return boost::math::spherical_harmonic_i(n, m, theta, phi, Policy()); }\
-\
-   template <class T1, class T2, class Policy>\
-   inline typename boost::math::tools::promote_args<T1, T2>::type \
-      spherical_harmonic_i(unsigned n, int m, T1 theta, T2 phi, const Policy& pol);\
-\
-   template <class T1, class T2, class T3>\
-   inline typename boost::math::tools::promote_args<T1, T2, T3>::type \
-   ellint_rf(T1 x, T2 y, T3 z){ return ::boost::math::ellint_rf(x, y, z, Policy()); }\
-\
-   template <class T1, class T2, class T3>\
-   inline typename boost::math::tools::promote_args<T1, T2, T3>::type \
-   ellint_rd(T1 x, T2 y, T3 z){ return ::boost::math::ellint_rd(x, y, z, Policy()); }\
-\
-   template <class T1, class T2>\
-   inline typename boost::math::tools::promote_args<T1, T2>::type \
-   ellint_rc(T1 x, T2 y){ return ::boost::math::ellint_rc(x, y, Policy()); }\
-\
-   template <class T1, class T2, class T3, class T4>\
-   inline typename boost::math::tools::promote_args<T1, T2, T3, T4>::type \
-   ellint_rj(T1 x, T2 y, T3 z, T4 p){ return boost::math::ellint_rj(x, y, z, p, Policy()); }\
-\
-   template <typename T>\
-   inline typename boost::math::tools::promote_args<T>::type ellint_2(T k){ return boost::math::ellint_2(k, Policy()); }\
-\
-   template <class T1, class T2>\
-   inline typename boost::math::tools::promote_args<T1, T2>::type ellint_2(T1 k, T2 phi){ return boost::math::ellint_2(k, phi, Policy()); }\
-\
-   template <typename T>\
-   inline typename boost::math::tools::promote_args<T>::type ellint_1(T k){ return boost::math::ellint_1(k, Policy()); }\
-\
-   template <class T1, class T2>\
-   inline typename boost::math::tools::promote_args<T1, T2>::type ellint_1(T1 k, T2 phi){ return boost::math::ellint_1(k, phi, Policy()); }\
-\
-   template <class T1, class T2, class T3>\
-   inline typename boost::math::tools::promote_args<T1, T2, T3>::type ellint_3(T1 k, T2 v, T3 phi){ return boost::math::ellint_3(k, v, phi, Policy()); }\
-\
-   template <class T1, class T2>\
-   inline typename boost::math::tools::promote_args<T1, T2>::type ellint_3(T1 k, T2 v){ return boost::math::ellint_3(k, v, Policy()); }\
-\
-   using boost::math::max_factorial;\
-   template <class RT>\
-   inline RT factorial(unsigned int i) { return boost::math::factorial<RT>(i, Policy()); }\
-   using boost::math::unchecked_factorial;\
-   template <class RT>\
-   inline RT double_factorial(unsigned i){ return boost::math::double_factorial<RT>(i, Policy()); }\
-   template <class RT>\
-   inline typename boost::math::tools::promote_args<RT>::type falling_factorial(RT x, unsigned n){ return boost::math::falling_factorial(x, n, Policy()); }\
-   template <class RT>\
-   inline typename boost::math::tools::promote_args<RT>::type rising_factorial(RT x, unsigned n){ return boost::math::rising_factorial(x, n, Policy()); }\
-\
-   template <class RT>\
-   inline typename boost::math::tools::promote_args<RT>::type tgamma(RT z){ return boost::math::tgamma(z, Policy()); }\
-\
-   template <class RT>\
-   inline typename boost::math::tools::promote_args<RT>::type tgamma1pm1(RT z){ return boost::math::tgamma1pm1(z, Policy()); }\
-\
-   template <class RT1, class RT2>\
-   inline typename boost::math::tools::promote_args<RT1, RT2>::type tgamma(RT1 a, RT2 z){ return boost::math::tgamma(a, z, Policy()); }\
-\
-   template <class RT>\
-   inline typename boost::math::tools::promote_args<RT>::type lgamma(RT z, int* sign){ return boost::math::lgamma(z, sign, Policy()); }\
-\
-   template <class RT>\
-   inline typename boost::math::tools::promote_args<RT>::type lgamma(RT x){ return boost::math::lgamma(x, Policy()); }\
-\
-   template <class RT1, class RT2>\
-   inline typename boost::math::tools::promote_args<RT1, RT2>::type tgamma_lower(RT1 a, RT2 z){ return boost::math::tgamma_lower(a, z, Policy()); }\
-\
-   template <class RT1, class RT2>\
-   inline typename boost::math::tools::promote_args<RT1, RT2>::type gamma_q(RT1 a, RT2 z){ return boost::math::gamma_q(a, z, Policy()); }\
-\
-   template <class RT1, class RT2>\
-   inline typename boost::math::tools::promote_args<RT1, RT2>::type gamma_p(RT1 a, RT2 z){ return boost::math::gamma_p(a, z, Policy()); }\
-\
-   template <class T1, class T2>\
-   inline typename boost::math::tools::promote_args<T1, T2>::type tgamma_delta_ratio(T1 z, T2 delta){ return boost::math::tgamma_delta_ratio(z, delta, Policy()); }\
-\
-   template <class T1, class T2>\
-   inline typename boost::math::tools::promote_args<T1, T2>::type tgamma_ratio(T1 a, T2 b) { return boost::math::tgamma_ratio(a, b, Policy()); }\
-\
-   template <class T1, class T2>\
-   inline typename boost::math::tools::promote_args<T1, T2>::type gamma_p_derivative(T1 a, T2 x){ return boost::math::gamma_p_derivative(a, x, Policy()); }\
-\
-   template <class T1, class T2>\
-   inline typename boost::math::tools::promote_args<T1, T2>::type gamma_p_inv(T1 a, T2 p){ return boost::math::gamma_p_inv(a, p, Policy()); }\
-\
-   template <class T1, class T2>\
-   inline typename boost::math::tools::promote_args<T1, T2>::type gamma_p_inva(T1 a, T2 p){ return boost::math::gamma_p_inva(a, p, Policy()); }\
-\
-   template <class T1, class T2>\
-   inline typename boost::math::tools::promote_args<T1, T2>::type gamma_q_inv(T1 a, T2 q){ return boost::math::gamma_q_inv(a, q, Policy()); }\
-\
-   template <class T1, class T2>\
-   inline typename boost::math::tools::promote_args<T1, T2>::type gamma_q_inva(T1 a, T2 q){ return boost::math::gamma_q_inva(a, q, Policy()); }\
-\
-   template <class T>\
-   inline typename boost::math::tools::promote_args<T>::type digamma(T x){ return boost::math::digamma(x, Policy()); }\
-\
-   template <class T1, class T2>\
-   inline typename boost::math::tools::promote_args<T1, T2>::type \
-   hypot(T1 x, T2 y){ return boost::math::hypot(x, y, Policy()); }\
-\
-   template <class RT>\
-   inline typename boost::math::tools::promote_args<RT>::type cbrt(RT z){ return boost::math::cbrt(z, Policy()); }\
-\
-   template <class T>\
-   inline typename boost::math::tools::promote_args<T>::type log1p(T x){ return boost::math::log1p(x, Policy()); }\
-\
-   template <class T>\
-   inline typename boost::math::tools::promote_args<T>::type log1pmx(T x){ return boost::math::log1pmx(x, Policy()); }\
-\
-   template <class T>\
-   inline typename boost::math::tools::promote_args<T>::type expm1(T x){ return boost::math::expm1(x, Policy()); }\
-\
-   template <class T1, class T2>\
-   inline typename boost::math::tools::promote_args<T1, T2>::type \
-   powm1(const T1 a, const T2 z){ return boost::math::powm1(a, z, Policy()); }\
-\
-   template <class T>\
-   inline typename boost::math::tools::promote_args<T>::type sqrt1pm1(const T& val){ return boost::math::sqrt1pm1(val, Policy()); }\
-\
-   template <class T>\
-   inline typename boost::math::tools::promote_args<T>::type sinc_pi(T x){ return boost::math::sinc_pi(x, Policy()); }\
-\
-   template <class T>\
-   inline typename boost::math::tools::promote_args<T>::type sinhc_pi(T x){ return boost::math::sinhc_pi(x, Policy()); }\
-\
-   template<typename T>\
-   inline typename boost::math::tools::promote_args<T>::type asinh(const T x){ return boost::math::asinh(x, Policy()); }\
-\
-   template<typename T>\
-   inline typename boost::math::tools::promote_args<T>::type acosh(const T x){ return boost::math::acosh(x, Policy()); }\
-\
-   template<typename T>\
-   inline typename boost::math::tools::promote_args<T>::type atanh(const T x){ return boost::math::atanh(x, Policy()); }\
-\
-   template <class T1, class T2>\
-   inline typename boost::math::detail::bessel_traits<T1, T2, Policy >::result_type cyl_bessel_j(T1 v, T2 x)\
-   { return boost::math::cyl_bessel_j(v, x, Policy()); }\
-\
-   template <class T>\
-   inline typename boost::math::detail::bessel_traits<T, T, Policy >::result_type sph_bessel(unsigned v, T x)\
-   { return boost::math::sph_bessel(v, x, Policy()); }\
-\
-   template <class T1, class T2>\
-   inline typename boost::math::detail::bessel_traits<T1, T2, Policy >::result_type \
-   cyl_bessel_i(T1 v, T2 x) { return boost::math::cyl_bessel_i(v, x, Policy()); }\
-\
-   template <class T1, class T2>\
-   inline typename boost::math::detail::bessel_traits<T1, T2, Policy >::result_type \
-   cyl_bessel_k(T1 v, T2 x) { return boost::math::cyl_bessel_k(v, x, Policy()); }\
-\
-   template <class T1, class T2>\
-   inline typename boost::math::detail::bessel_traits<T1, T2, Policy >::result_type \
-   cyl_neumann(T1 v, T2 x){ return boost::math::cyl_neumann(v, x, Policy()); }\
-\
-   template <class T>\
-   inline typename boost::math::detail::bessel_traits<T, T, Policy >::result_type \
-   sph_neumann(unsigned v, T x){ return boost::math::sph_neumann(v, x, Policy()); }\
-\
-   template <class T>\
-   inline typename boost::math::detail::bessel_traits<T, T, Policy >::result_type cyl_bessel_j_zero(T v, int m)\
-   { return boost::math::cyl_bessel_j_zero(v, m, Policy()); }\
-\
-template <class OutputIterator, class T>\
-   inline void cyl_bessel_j_zero(T v,\
-                                 int start_index,\
-                                 unsigned number_of_zeros,\
-                                 OutputIterator out_it)\
-   { boost::math::cyl_bessel_j_zero(v, start_index, number_of_zeros, out_it, Policy()); }\
-\
-   template <class T>\
-   inline typename boost::math::detail::bessel_traits<T, T, Policy >::result_type cyl_neumann_zero(T v, int m)\
-   { return boost::math::cyl_neumann_zero(v, m, Policy()); }\
-\
-template <class OutputIterator, class T>\
-   inline void cyl_neumann_zero(T v,\
-                                int start_index,\
-                                unsigned number_of_zeros,\
-                                OutputIterator out_it)\
-   { boost::math::cyl_neumann_zero(v, start_index, number_of_zeros, out_it, Policy()); }\
-\
-   template <class T>\
-   inline typename boost::math::tools::promote_args<T>::type sin_pi(T x){ return boost::math::sin_pi(x); }\
-\
-   template <class T>\
-   inline typename boost::math::tools::promote_args<T>::type cos_pi(T x){ return boost::math::cos_pi(x); }\
-\
-   using boost::math::fpclassify;\
-   using boost::math::isfinite;\
-   using boost::math::isinf;\
-   using boost::math::isnan;\
-   using boost::math::isnormal;\
-   using boost::math::signbit;\
-   using boost::math::sign;\
-   using boost::math::copysign;\
-   using boost::math::changesign;\
-   \
-   template <class T, class U>\
-   inline typename boost::math::tools::promote_args<T,U>::type expint(T const& z, U const& u)\
-   { return boost::math::expint(z, u, Policy()); }\
-   \
-   template <class T>\
-   inline typename boost::math::tools::promote_args<T>::type expint(T z){ return boost::math::expint(z, Policy()); }\
-   \
-   template <class T>\
-   inline typename boost::math::tools::promote_args<T>::type zeta(T s){ return boost::math::zeta(s, Policy()); }\
-   \
-   template <class T>\
-   inline T round(const T& v){ using boost::math::round; return round(v, Policy()); }\
-   \
-   template <class T>\
-   inline int iround(const T& v){ using boost::math::iround; return iround(v, Policy()); }\
-   \
-   template <class T>\
-   inline long lround(const T& v){ using boost::math::lround; return lround(v, Policy()); }\
-   \
-   template <class T>\
-   inline T trunc(const T& v){ using boost::math::trunc; return trunc(v, Policy()); }\
-   \
-   template <class T>\
-   inline int itrunc(const T& v){ using boost::math::itrunc; return itrunc(v, Policy()); }\
-   \
-   template <class T>\
-   inline long ltrunc(const T& v){ using boost::math::ltrunc; return ltrunc(v, Policy()); }\
-   \
-   template <class T>\
-   inline T modf(const T& v, T* ipart){ using boost::math::modf; return modf(v, ipart, Policy()); }\
-   \
-   template <class T>\
-   inline T modf(const T& v, int* ipart){ using boost::math::modf; return modf(v, ipart, Policy()); }\
-   \
-   template <class T>\
-   inline T modf(const T& v, long* ipart){ using boost::math::modf; return modf(v, ipart, Policy()); }\
-   \
-   template <int N, class T>\
-   inline typename boost::math::tools::promote_args<T>::type pow(T v){ return boost::math::pow<N>(v, Policy()); }\
-   \
-   template <class T> T nextafter(const T& a, const T& b){ return boost::math::nextafter(a, b, Policy()); }\
-   template <class T> T float_next(const T& a){ return boost::math::float_next(a, Policy()); }\
-   template <class T> T float_prior(const T& a){ return boost::math::float_prior(a, Policy()); }\
-   template <class T> T float_distance(const T& a, const T& b){ return boost::math::float_distance(a, b, Policy()); }\
-   \
-   template <class RT1, class RT2>\
-   inline typename boost::math::tools::promote_args<RT1, RT2>::type owens_t(RT1 a, RT2 z){ return boost::math::owens_t(a, z, Policy()); }\
-   \
-   template <class T1, class T2>\
-   inline std::complex<typename boost::math::detail::bessel_traits<T1, T2, Policy >::result_type> cyl_hankel_1(T1 v, T2 x)\
-   {  return boost::math::cyl_hankel_1(v, x, Policy()); }\
-   \
-   template <class T1, class T2>\
-   inline std::complex<typename boost::math::detail::bessel_traits<T1, T2, Policy >::result_type> cyl_hankel_2(T1 v, T2 x)\
-   { return boost::math::cyl_hankel_2(v, x, Policy()); }\
-   \
-   template <class T1, class T2>\
-   inline std::complex<typename boost::math::detail::bessel_traits<T1, T2, Policy >::result_type> sph_hankel_1(T1 v, T2 x)\
-   { return boost::math::sph_hankel_1(v, x, Policy()); }\
-   \
-   template <class T1, class T2>\
-   inline std::complex<typename boost::math::detail::bessel_traits<T1, T2, Policy >::result_type> sph_hankel_2(T1 v, T2 x)\
-   { return boost::math::sph_hankel_2(v, x, Policy()); }\
-   \
-   template <class T>\
-   inline typename boost::math::tools::promote_args<T>::type jacobi_elliptic(T k, T theta, T* pcn, T* pdn)\
-   { return boost::math::jacobi_elliptic(k, theta, pcn, pdn, Policy()); }\
-   \
-   template <class U, class T>\
-   inline typename boost::math::tools::promote_args<T, U>::type jacobi_sn(U k, T theta)\
-   { return boost::math::jacobi_sn(k, theta, Policy()); }\
-   \
-   template <class T, class U>\
-   inline typename boost::math::tools::promote_args<T, U>::type jacobi_cn(T k, U theta)\
-   { return boost::math::jacobi_cn(k, theta, Policy()); }\
-   \
-   template <class T, class U>\
-   inline typename boost::math::tools::promote_args<T, U>::type jacobi_dn(T k, U theta)\
-   { return boost::math::jacobi_dn(k, theta, Policy()); }\
-   \
-   template <class T, class U>\
-   inline typename boost::math::tools::promote_args<T, U>::type jacobi_cd(T k, U theta)\
-   { return boost::math::jacobi_cd(k, theta, Policy()); }\
-   \
-   template <class T, class U>\
-   inline typename boost::math::tools::promote_args<T, U>::type jacobi_dc(T k, U theta)\
-   { return boost::math::jacobi_dc(k, theta, Policy()); }\
-   \
-   template <class T, class U>\
-   inline typename boost::math::tools::promote_args<T, U>::type jacobi_ns(T k, U theta)\
-   { return boost::math::jacobi_ns(k, theta, Policy()); }\
-   \
-   template <class T, class U>\
-   inline typename boost::math::tools::promote_args<T, U>::type jacobi_sd(T k, U theta)\
-   { return boost::math::jacobi_sd(k, theta, Policy()); }\
-   \
-   template <class T, class U>\
-   inline typename boost::math::tools::promote_args<T, U>::type jacobi_ds(T k, U theta)\
-   { return boost::math::jacobi_ds(k, theta, Policy()); }\
-   \
-   template <class T, class U>\
-   inline typename boost::math::tools::promote_args<T, U>::type jacobi_nc(T k, U theta)\
-   { return boost::math::jacobi_nc(k, theta, Policy()); }\
-   \
-   template <class T, class U>\
-   inline typename boost::math::tools::promote_args<T, U>::type jacobi_nd(T k, U theta)\
-   { return boost::math::jacobi_nd(k, theta, Policy()); }\
-   \
-   template <class T, class U>\
-   inline typename boost::math::tools::promote_args<T, U>::type jacobi_sc(T k, U theta)\
-   { return boost::math::jacobi_sc(k, theta, Policy()); }\
-   \
-   template <class T, class U>\
-   inline typename boost::math::tools::promote_args<T, U>::type jacobi_cs(T k, U theta)\
-   { return boost::math::jacobi_cs(k, theta, Policy()); }\
-   \
-   template <class T>\
-   inline typename boost::math::tools::promote_args<T>::type airy_ai(T x)\
-   {  return boost::math::airy_ai(x, Policy());  }\
-   \
-   template <class T>\
-   inline typename boost::math::tools::promote_args<T>::type airy_bi(T x)\
-   {  return boost::math::airy_bi(x, Policy());  }\
-   \
-   template <class T>\
-   inline typename boost::math::tools::promote_args<T>::type airy_ai_prime(T x)\
-   {  return boost::math::airy_ai_prime(x, Policy());  }\
-   \
-   template <class T>\
-   inline typename boost::math::tools::promote_args<T>::type airy_bi_prime(T x)\
-   {  return boost::math::airy_bi_prime(x, Policy());  }\
-   \
-   template <class T>\
-   inline T airy_ai_zero(int m)\
-   { return boost::math::airy_ai_zero<T>(m, Policy()); }\
-   template <class T, class OutputIterator>\
-   OutputIterator airy_ai_zero(int start_index, unsigned number_of_zeros, OutputIterator out_it)\
-   { return boost::math::airy_ai_zero<T>(start_index, number_of_zeros, out_it, Policy()); }\
-   \
-   template <class T>\
-   inline T airy_bi_zero(int m)\
-   { return boost::math::airy_bi_zero<T>(m, Policy()); }\
-   template <class T, class OutputIterator>\
-   OutputIterator airy_bi_zero(int start_index, unsigned number_of_zeros, OutputIterator out_it)\
-   { return boost::math::airy_bi_zero<T>(start_index, number_of_zeros, out_it, Policy()); }\
-   \
-
-
-
-
-
-#endif // BOOST_MATH_SPECIAL_MATH_FWD_HPP
-
-
diff --git a/boost/math/special_functions/modf.hpp b/boost/math/special_functions/modf.hpp
deleted file mode 100644
index 48b15fe..0000000
--- a/boost/math/special_functions/modf.hpp
+++ /dev/null
@@ -1,70 +0,0 @@
-//  Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_MODF_HPP
-#define BOOST_MATH_MODF_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/math/tools/config.hpp>
-#include <boost/math/special_functions/trunc.hpp>
-
-namespace boost{ namespace math{
-
-template <class T, class Policy>
-inline T modf(const T& v, T* ipart, const Policy& pol)
-{
-   *ipart = trunc(v, pol);
-   return v - *ipart;
-}
-template <class T>
-inline T modf(const T& v, T* ipart)
-{
-   return modf(v, ipart, policies::policy<>());
-}
-
-template <class T, class Policy>
-inline T modf(const T& v, int* ipart, const Policy& pol)
-{
-   *ipart = itrunc(v, pol);
-   return v - *ipart;
-}
-template <class T>
-inline T modf(const T& v, int* ipart)
-{
-   return modf(v, ipart, policies::policy<>());
-}
-
-template <class T, class Policy>
-inline T modf(const T& v, long* ipart, const Policy& pol)
-{
-   *ipart = ltrunc(v, pol);
-   return v - *ipart;
-}
-template <class T>
-inline T modf(const T& v, long* ipart)
-{
-   return modf(v, ipart, policies::policy<>());
-}
-
-#ifdef BOOST_HAS_LONG_LONG
-template <class T, class Policy>
-inline T modf(const T& v, boost::long_long_type* ipart, const Policy& pol)
-{
-   *ipart = lltrunc(v, pol);
-   return v - *ipart;
-}
-template <class T>
-inline T modf(const T& v, boost::long_long_type* ipart)
-{
-   return modf(v, ipart, policies::policy<>());
-}
-#endif
-
-}} // namespaces
-
-#endif // BOOST_MATH_MODF_HPP
diff --git a/boost/math/special_functions/next.hpp b/boost/math/special_functions/next.hpp
deleted file mode 100644
index 38f5216..0000000
--- a/boost/math/special_functions/next.hpp
+++ /dev/null
@@ -1,490 +0,0 @@
-//  (C) Copyright John Maddock 2008.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_SPECIAL_NEXT_HPP
-#define BOOST_MATH_SPECIAL_NEXT_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/math/policies/error_handling.hpp>
-#include <boost/math/special_functions/fpclassify.hpp>
-#include <boost/math/special_functions/sign.hpp>
-#include <boost/math/special_functions/trunc.hpp>
-
-#ifdef BOOST_MSVC
-#include <float.h>
-#endif
-
-namespace boost{ namespace math{
-
-namespace detail{
-
-template <class T>
-inline T get_smallest_value(mpl::true_ const&)
-{
-   //
-   // numeric_limits lies about denorms being present - particularly
-   // when this can be turned on or off at runtime, as is the case
-   // when using the SSE2 registers in DAZ or FTZ mode.
-   //
-   static const T m = std::numeric_limits<T>::denorm_min();
-   return ((tools::min_value<T>() - m) == tools::min_value<T>()) ? tools::min_value<T>() : m;
-}
-
-template <class T>
-inline T get_smallest_value(mpl::false_ const&)
-{
-   return tools::min_value<T>();
-}
-
-template <class T>
-inline T get_smallest_value()
-{
-#if defined(BOOST_MSVC) && (BOOST_MSVC <= 1310)
-   return get_smallest_value<T>(mpl::bool_<std::numeric_limits<T>::is_specialized && (std::numeric_limits<T>::has_denorm == 1)>());
-#else
-   return get_smallest_value<T>(mpl::bool_<std::numeric_limits<T>::is_specialized && (std::numeric_limits<T>::has_denorm == std::denorm_present)>());
-#endif
-}
-
-//
-// Returns the smallest value that won't generate denorms when
-// we calculate the value of the least-significant-bit:
-//
-template <class T>
-T get_min_shift_value();
-
-template <class T>
-struct min_shift_initializer
-{
-   struct init
-   {
-      init()
-      {
-         do_init();
-      }
-      static void do_init()
-      {
-         get_min_shift_value<T>();
-      }
-      void force_instantiate()const{}
-   };
-   static const init initializer;
-   static void force_instantiate()
-   {
-      initializer.force_instantiate();
-   }
-};
-
-template <class T>
-const typename min_shift_initializer<T>::init min_shift_initializer<T>::initializer;
-
-
-template <class T>
-inline T get_min_shift_value()
-{
-   BOOST_MATH_STD_USING
-   static const T val = ldexp(tools::min_value<T>(), tools::digits<T>() + 1);
-   min_shift_initializer<T>::force_instantiate();
-
-   return val;
-}
-
-template <class T, class Policy>
-T float_next_imp(const T& val, const Policy& pol)
-{
-   BOOST_MATH_STD_USING
-   int expon;
-   static const char* function = "float_next<%1%>(%1%)";
-
-   int fpclass = (boost::math::fpclassify)(val);
-
-   if((fpclass == FP_NAN) || (fpclass == FP_INFINITE))
-   {
-      if(val < 0)
-         return -tools::max_value<T>();
-      return policies::raise_domain_error<T>(
-         function,
-         "Argument must be finite, but got %1%", val, pol);
-   }
-
-   if(val >= tools::max_value<T>())
-      return policies::raise_overflow_error<T>(function, 0, pol);
-
-   if(val == 0)
-      return detail::get_smallest_value<T>();
-
-   if((fpclass != FP_SUBNORMAL) && (fpclass != FP_ZERO) && (fabs(val) < detail::get_min_shift_value<T>()) && (val != -tools::min_value<T>()))
-   {
-      //
-      // Special case: if the value of the least significant bit is a denorm, and the result
-      // would not be a denorm, then shift the input, increment, and shift back.
-      // This avoids issues with the Intel SSE2 registers when the FTZ or DAZ flags are set.
-      //
-      return ldexp(float_next(T(ldexp(val, 2 * tools::digits<T>())), pol), -2 * tools::digits<T>());
-   }
-
-   if(-0.5f == frexp(val, &expon))
-      --expon; // reduce exponent when val is a power of two, and negative.
-   T diff = ldexp(T(1), expon - tools::digits<T>());
-   if(diff == 0)
-      diff = detail::get_smallest_value<T>();
-   return val + diff;
-}
-
-}
-
-template <class T, class Policy>
-inline typename tools::promote_args<T>::type float_next(const T& val, const Policy& pol)
-{
-   typedef typename tools::promote_args<T>::type result_type;
-   return detail::float_next_imp(static_cast<result_type>(val), pol);
-}
-
-#if 0 //def BOOST_MSVC
-//
-// We used to use ::_nextafter here, but doing so fails when using
-// the SSE2 registers if the FTZ or DAZ flags are set, so use our own
-// - albeit slower - code instead as at least that gives the correct answer.
-//
-template <class Policy>
-inline double float_next(const double& val, const Policy& pol)
-{
-   static const char* function = "float_next<%1%>(%1%)";
-
-   if(!(boost::math::isfinite)(val) && (val > 0))
-      return policies::raise_domain_error<double>(
-         function,
-         "Argument must be finite, but got %1%", val, pol);
-
-   if(val >= tools::max_value<double>())
-      return policies::raise_overflow_error<double>(function, 0, pol);
-
-   return ::_nextafter(val, tools::max_value<double>());
-}
-#endif
-
-template <class T>
-inline typename tools::promote_args<T>::type float_next(const T& val)
-{
-   return float_next(val, policies::policy<>());
-}
-
-namespace detail{
-
-template <class T, class Policy>
-T float_prior_imp(const T& val, const Policy& pol)
-{
-   BOOST_MATH_STD_USING
-   int expon;
-   static const char* function = "float_prior<%1%>(%1%)";
-
-   int fpclass = (boost::math::fpclassify)(val);
-
-   if((fpclass == FP_NAN) || (fpclass == FP_INFINITE))
-   {
-      if(val > 0)
-         return tools::max_value<T>();
-      return policies::raise_domain_error<T>(
-         function,
-         "Argument must be finite, but got %1%", val, pol);
-   }
-
-   if(val <= -tools::max_value<T>())
-      return -policies::raise_overflow_error<T>(function, 0, pol);
-
-   if(val == 0)
-      return -detail::get_smallest_value<T>();
-
-   if((fpclass != FP_SUBNORMAL) && (fpclass != FP_ZERO) && (fabs(val) < detail::get_min_shift_value<T>()) && (val != tools::min_value<T>()))
-   {
-      //
-      // Special case: if the value of the least significant bit is a denorm, and the result
-      // would not be a denorm, then shift the input, increment, and shift back.
-      // This avoids issues with the Intel SSE2 registers when the FTZ or DAZ flags are set.
-      //
-      return ldexp(float_prior(T(ldexp(val, 2 * tools::digits<T>())), pol), -2 * tools::digits<T>());
-   }
-
-   T remain = frexp(val, &expon);
-   if(remain == 0.5)
-      --expon; // when val is a power of two we must reduce the exponent
-   T diff = ldexp(T(1), expon - tools::digits<T>());
-   if(diff == 0)
-      diff = detail::get_smallest_value<T>();
-   return val - diff;
-}
-
-}
-
-template <class T, class Policy>
-inline typename tools::promote_args<T>::type float_prior(const T& val, const Policy& pol)
-{
-   typedef typename tools::promote_args<T>::type result_type;
-   return detail::float_prior_imp(static_cast<result_type>(val), pol);
-}
-
-#if 0 //def BOOST_MSVC
-//
-// We used to use ::_nextafter here, but doing so fails when using
-// the SSE2 registers if the FTZ or DAZ flags are set, so use our own
-// - albeit slower - code instead as at least that gives the correct answer.
-//
-template <class Policy>
-inline double float_prior(const double& val, const Policy& pol)
-{
-   static const char* function = "float_prior<%1%>(%1%)";
-
-   if(!(boost::math::isfinite)(val) && (val < 0))
-      return policies::raise_domain_error<double>(
-         function,
-         "Argument must be finite, but got %1%", val, pol);
-
-   if(val <= -tools::max_value<double>())
-      return -policies::raise_overflow_error<double>(function, 0, pol);
-
-   return ::_nextafter(val, -tools::max_value<double>());
-}
-#endif
-
-template <class T>
-inline typename tools::promote_args<T>::type float_prior(const T& val)
-{
-   return float_prior(val, policies::policy<>());
-}
-
-template <class T, class U, class Policy>
-inline typename tools::promote_args<T, U>::type nextafter(const T& val, const U& direction, const Policy& pol)
-{
-   typedef typename tools::promote_args<T, U>::type result_type;
-   return val < direction ? boost::math::float_next<result_type>(val, pol) : val == direction ? val : boost::math::float_prior<result_type>(val, pol);
-}
-
-template <class T, class U>
-inline typename tools::promote_args<T, U>::type nextafter(const T& val, const U& direction)
-{
-   return nextafter(val, direction, policies::policy<>());
-}
-
-namespace detail{
-
-template <class T, class Policy>
-T float_distance_imp(const T& a, const T& b, const Policy& pol)
-{
-   BOOST_MATH_STD_USING
-   //
-   // Error handling:
-   //
-   static const char* function = "float_distance<%1%>(%1%, %1%)";
-   if(!(boost::math::isfinite)(a))
-      return policies::raise_domain_error<T>(
-         function,
-         "Argument a must be finite, but got %1%", a, pol);
-   if(!(boost::math::isfinite)(b))
-      return policies::raise_domain_error<T>(
-         function,
-         "Argument b must be finite, but got %1%", b, pol);
-   //
-   // Special cases:
-   //
-   if(a > b)
-      return -float_distance(b, a, pol);
-   if(a == b)
-      return 0;
-   if(a == 0)
-      return 1 + fabs(float_distance(static_cast<T>((b < 0) ? T(-detail::get_smallest_value<T>()) : detail::get_smallest_value<T>()), b, pol));
-   if(b == 0)
-      return 1 + fabs(float_distance(static_cast<T>((a < 0) ? T(-detail::get_smallest_value<T>()) : detail::get_smallest_value<T>()), a, pol));
-   if(boost::math::sign(a) != boost::math::sign(b))
-      return 2 + fabs(float_distance(static_cast<T>((b < 0) ? T(-detail::get_smallest_value<T>()) : detail::get_smallest_value<T>()), b, pol))
-         + fabs(float_distance(static_cast<T>((a < 0) ? T(-detail::get_smallest_value<T>()) : detail::get_smallest_value<T>()), a, pol));
-   //
-   // By the time we get here, both a and b must have the same sign, we want
-   // b > a and both postive for the following logic:
-   //
-   if(a < 0)
-      return float_distance(static_cast<T>(-b), static_cast<T>(-a), pol);
-
-   BOOST_ASSERT(a >= 0);
-   BOOST_ASSERT(b >= a);
-
-   int expon;
-   //
-   // Note that if a is a denorm then the usual formula fails
-   // because we actually have fewer than tools::digits<T>()
-   // significant bits in the representation:
-   //
-   frexp(((boost::math::fpclassify)(a) == FP_SUBNORMAL) ? tools::min_value<T>() : a, &expon);
-   T upper = ldexp(T(1), expon);
-   T result = 0;
-   expon = tools::digits<T>() - expon;
-   //
-   // If b is greater than upper, then we *must* split the calculation
-   // as the size of the ULP changes with each order of magnitude change:
-   //
-   if(b > upper)
-   {
-      result = float_distance(upper, b);
-   }
-   //
-   // Use compensated double-double addition to avoid rounding
-   // errors in the subtraction:
-   //
-   T mb, x, y, z;
-   if(((boost::math::fpclassify)(a) == FP_SUBNORMAL) || (b - a < tools::min_value<T>()))
-   {
-      //
-      // Special case - either one end of the range is a denormal, or else the difference is.
-      // The regular code will fail if we're using the SSE2 registers on Intel and either
-      // the FTZ or DAZ flags are set.
-      //
-      T a2 = ldexp(a, tools::digits<T>());
-      T b2 = ldexp(b, tools::digits<T>());
-      mb = -(std::min)(T(ldexp(upper, tools::digits<T>())), b2);
-      x = a2 + mb;
-      z = x - a2;
-      y = (a2 - (x - z)) + (mb - z);
-
-      expon -= tools::digits<T>();
-   }
-   else
-   {
-      mb = -(std::min)(upper, b);
-      x = a + mb;
-      z = x - a;
-      y = (a - (x - z)) + (mb - z);
-   }
-   if(x < 0)
-   {
-      x = -x;
-      y = -y;
-   }
-   result += ldexp(x, expon) + ldexp(y, expon);
-   //
-   // Result must be an integer:
-   //
-   BOOST_ASSERT(result == floor(result));
-   return result;
-}
-
-}
-
-template <class T, class U, class Policy>
-inline typename tools::promote_args<T, U>::type float_distance(const T& a, const U& b, const Policy& pol)
-{
-   typedef typename tools::promote_args<T, U>::type result_type;
-   return detail::float_distance_imp(static_cast<result_type>(a), static_cast<result_type>(b), pol);
-}
-
-template <class T, class U>
-typename tools::promote_args<T, U>::type float_distance(const T& a, const U& b)
-{
-   return boost::math::float_distance(a, b, policies::policy<>());
-}
-
-namespace detail{
-
-template <class T, class Policy>
-T float_advance_imp(T val, int distance, const Policy& pol)
-{
-   BOOST_MATH_STD_USING
-   //
-   // Error handling:
-   //
-   static const char* function = "float_advance<%1%>(%1%, int)";
-
-   int fpclass = (boost::math::fpclassify)(val);
-
-   if((fpclass == FP_NAN) || (fpclass == FP_INFINITE))
-      return policies::raise_domain_error<T>(
-         function,
-         "Argument val must be finite, but got %1%", val, pol);
-
-   if(val < 0)
-      return -float_advance(-val, -distance, pol);
-   if(distance == 0)
-      return val;
-   if(distance == 1)
-      return float_next(val, pol);
-   if(distance == -1)
-      return float_prior(val, pol);
-
-   if(fabs(val) < detail::get_min_shift_value<T>())
-   {
-      //
-      // Special case: if the value of the least significant bit is a denorm,
-      // implement in terms of float_next/float_prior.
-      // This avoids issues with the Intel SSE2 registers when the FTZ or DAZ flags are set.
-      //
-      if(distance > 0)
-      {
-         do{ val = float_next(val, pol); } while(--distance);
-      }
-      else
-      {
-         do{ val = float_prior(val, pol); } while(++distance);
-      }
-      return val;
-   }
-
-   int expon;
-   frexp(val, &expon);
-   T limit = ldexp((distance < 0 ? T(0.5f) : T(1)), expon);
-   if(val <= tools::min_value<T>())
-   {
-      limit = sign(T(distance)) * tools::min_value<T>();
-   }
-   T limit_distance = float_distance(val, limit);
-   while(fabs(limit_distance) < abs(distance))
-   {
-      distance -= itrunc(limit_distance);
-      val = limit;
-      if(distance < 0)
-      {
-         limit /= 2;
-         expon--;
-      }
-      else
-      {
-         limit *= 2;
-         expon++;
-      }
-      limit_distance = float_distance(val, limit);
-      if(distance && (limit_distance == 0))
-      {
-         policies::raise_evaluation_error<T>(function, "Internal logic failed while trying to increment floating point value %1%: most likely your FPU is in non-IEEE conforming mode.", val, pol);
-      }
-   }
-   if((0.5f == frexp(val, &expon)) && (distance < 0))
-      --expon;
-   T diff = 0;
-   if(val != 0)
-      diff = distance * ldexp(T(1), expon - tools::digits<T>());
-   if(diff == 0)
-      diff = distance * detail::get_smallest_value<T>();
-   return val += diff;
-}
-
-}
-
-template <class T, class Policy>
-inline typename tools::promote_args<T>::type float_advance(T val, int distance, const Policy& pol)
-{
-   typedef typename tools::promote_args<T>::type result_type;
-   return detail::float_advance_imp(static_cast<result_type>(val), distance, pol);
-}
-
-template <class T>
-inline typename tools::promote_args<T>::type float_advance(const T& val, int distance)
-{
-   return boost::math::float_advance(val, distance, policies::policy<>());
-}
-
-}} // namespaces
-
-#endif // BOOST_MATH_SPECIAL_NEXT_HPP
-
diff --git a/boost/math/special_functions/owens_t.hpp b/boost/math/special_functions/owens_t.hpp
deleted file mode 100644
index 7b439f0..0000000
--- a/boost/math/special_functions/owens_t.hpp
+++ /dev/null
@@ -1,1061 +0,0 @@
-// Copyright Benjamin Sobotta 2012
-
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_OWENS_T_HPP
-#define BOOST_OWENS_T_HPP
-
-// Reference:
-// Mike Patefield, David Tandy
-// FAST AND ACCURATE CALCULATION OF OWEN'S T-FUNCTION
-// Journal of Statistical Software, 5 (5), 1-25
-
-#ifdef _MSC_VER
-#  pragma once
-#endif
-
-#include <boost/config/no_tr1/cmath.hpp>
-#include <boost/math/special_functions/erf.hpp>
-#include <boost/math/special_functions/expm1.hpp>
-#include <boost/throw_exception.hpp>
-#include <boost/assert.hpp>
-#include <boost/math/constants/constants.hpp>
-#include <boost/math/tools/big_constant.hpp>
-
-#include <stdexcept>
-
-namespace boost
-{
-   namespace math
-   {
-      namespace detail
-      {
-         // owens_t_znorm1(x) = P(-oo<Z<=x)-0.5 with Z being normally distributed.
-         template<typename RealType>
-         inline RealType owens_t_znorm1(const RealType x)
-         {
-            using namespace boost::math::constants;
-            return erf(x*one_div_root_two<RealType>())*half<RealType>();
-         } // RealType owens_t_znorm1(const RealType x)
-
-         // owens_t_znorm2(x) = P(x<=Z<oo) with Z being normally distributed.
-         template<typename RealType>
-         inline RealType owens_t_znorm2(const RealType x)
-         {
-            using namespace boost::math::constants;
-            return erfc(x*one_div_root_two<RealType>())*half<RealType>();
-         } // RealType owens_t_znorm2(const RealType x)
-
-         // Auxiliary function, it computes an array key that is used to determine
-         // the specific computation method for Owen's T and the order thereof
-         // used in owens_t_dispatch.
-         template<typename RealType>
-         inline unsigned short owens_t_compute_code(const RealType h, const RealType a)
-         {
-            static const RealType hrange[] =
-            {0.02, 0.06, 0.09, 0.125, 0.26, 0.4,  0.6,  1.6,  1.7,  2.33,  2.4,  3.36, 3.4,  4.8};
-
-            static const RealType arange[] = {0.025, 0.09, 0.15, 0.36, 0.5, 0.9, 0.99999};
-            /*
-            original select array from paper:
-            1, 1, 2,13,13,13,13,13,13,13,13,16,16,16, 9
-            1, 2, 2, 3, 3, 5, 5,14,14,15,15,16,16,16, 9
-            2, 2, 3, 3, 3, 5, 5,15,15,15,15,16,16,16,10
-            2, 2, 3, 5, 5, 5, 5, 7, 7,16,16,16,16,16,10
-            2, 3, 3, 5, 5, 6, 6, 8, 8,17,17,17,12,12,11
-            2, 3, 5, 5, 5, 6, 6, 8, 8,17,17,17,12,12,12
-            2, 3, 4, 4, 6, 6, 8, 8,17,17,17,17,17,12,12
-            2, 3, 4, 4, 6, 6,18,18,18,18,17,17,17,12,12
-            */                  
-            // subtract one because the array is written in FORTRAN in mind - in C arrays start @ zero
-            static const unsigned short select[] =
-            {
-               0,    0 ,   1  , 12   ,12 ,  12  , 12  , 12 ,  12  , 12  , 12  , 15  , 15 ,  15  ,  8,
-               0  ,  1  ,  1   , 2 ,   2   , 4  ,  4  , 13 ,  13  , 14  , 14 ,  15  , 15  , 15  ,  8,
-               1  ,  1   , 2 ,   2  ,  2  ,  4   , 4  , 14  , 14 ,  14  , 14 ,  15  , 15 ,  15  ,  9,
-               1  ,  1   , 2 ,   4  ,  4  ,  4   , 4  ,  6  ,  6 ,  15  , 15 ,  15 ,  15 ,  15  ,  9,
-               1  ,  2   , 2  ,  4  ,  4  ,  5   , 5  ,  7  ,  7  , 16   ,16 ,  16 ,  11 ,  11 ,  10,
-               1  ,  2   , 4  ,  4   , 4  ,  5   , 5  ,  7  ,  7  , 16  , 16 ,  16 ,  11  , 11 ,  11,
-               1  ,  2   , 3  ,  3  ,  5  ,  5   , 7  ,  7  , 16 ,  16  , 16 ,  16 ,  16  , 11 ,  11,
-               1  ,  2   , 3   , 3   , 5  ,  5 ,  17  , 17  , 17 ,  17  , 16 ,  16 ,  16 ,  11 ,  11
-            };
-
-            unsigned short ihint = 14, iaint = 7;
-            for(unsigned short i = 0; i != 14; i++)
-            {
-               if( h <= hrange[i] )
-               {
-                  ihint = i;
-                  break;
-               }
-            } // for(unsigned short i = 0; i != 14; i++)
-
-            for(unsigned short i = 0; i != 7; i++)
-            {
-               if( a <= arange[i] )
-               {
-                  iaint = i;
-                  break;
-               }
-            } // for(unsigned short i = 0; i != 7; i++)
-
-            // interprete select array as 8x15 matrix
-            return select[iaint*15 + ihint];
-
-         } // unsigned short owens_t_compute_code(const RealType h, const RealType a)
-
-         template<typename RealType>
-         inline unsigned short owens_t_get_order_imp(const unsigned short icode, RealType, const mpl::int_<53>&)
-         {
-            static const unsigned short ord[] = {2, 3, 4, 5, 7, 10, 12, 18, 10, 20, 30, 0, 4, 7, 8, 20, 0, 0}; // 18 entries
-
-            BOOST_ASSERT(icode<18);
-
-            return ord[icode];
-         } // unsigned short owens_t_get_order(const unsigned short icode, RealType, mpl::int<53> const&)
-
-         template<typename RealType>
-         inline unsigned short owens_t_get_order_imp(const unsigned short icode, RealType, const mpl::int_<64>&)
-        {
-           // method ================>>>       {1, 1, 1, 1, 1,  1,  1,  1,  2,  2,  2,  3, 4,  4,  4,  4,  5, 6}
-           static const unsigned short ord[] = {3, 4, 5, 6, 8, 11, 13, 19, 10, 20, 30,  0, 7, 10, 11, 23,  0, 0}; // 18 entries
-
-          BOOST_ASSERT(icode<18);
-
-          return ord[icode];
-        } // unsigned short owens_t_get_order(const unsigned short icode, RealType, mpl::int<64> const&)
-
-         template<typename RealType, typename Policy>
-         inline unsigned short owens_t_get_order(const unsigned short icode, RealType r, const Policy&)
-         {
-            typedef typename policies::precision<RealType, Policy>::type precision_type;
-            typedef typename mpl::if_<
-               mpl::or_<
-                  mpl::less_equal<precision_type, mpl::int_<0> >,
-                  mpl::greater<precision_type, mpl::int_<53> >
-               >,
-               mpl::int_<64>,
-               mpl::int_<53>
-            >::type tag_type;
-
-            return owens_t_get_order_imp(icode, r, tag_type());
-         }
-
-         // compute the value of Owen's T function with method T1 from the reference paper
-         template<typename RealType>
-         inline RealType owens_t_T1(const RealType h, const RealType a, const unsigned short m)
-         {
-            BOOST_MATH_STD_USING
-            using namespace boost::math::constants;
-
-            const RealType hs = -h*h*half<RealType>();
-            const RealType dhs = exp( hs );
-            const RealType as = a*a;
-
-            unsigned short j=1;
-            RealType jj = 1;
-            RealType aj = a * one_div_two_pi<RealType>();
-            RealType dj = expm1( hs );
-            RealType gj = hs*dhs;
-
-            RealType val = atan( a ) * one_div_two_pi<RealType>();
-
-            while( true )
-            {
-               val += dj*aj/jj;
-
-               if( m <= j )
-                  break;
-
-               j++;
-               jj += static_cast<RealType>(2);
-               aj *= as;
-               dj = gj - dj;
-               gj *= hs / static_cast<RealType>(j);
-            } // while( true )
-
-            return val;
-         } // RealType owens_t_T1(const RealType h, const RealType a, const unsigned short m)
-
-         // compute the value of Owen's T function with method T2 from the reference paper
-         template<typename RealType, class Policy>
-         inline RealType owens_t_T2(const RealType h, const RealType a, const unsigned short m, const RealType ah, const Policy&, const mpl::false_&)
-         {
-            BOOST_MATH_STD_USING
-            using namespace boost::math::constants;
-
-            const unsigned short maxii = m+m+1;
-            const RealType hs = h*h;
-            const RealType as = -a*a;
-            const RealType y = static_cast<RealType>(1) / hs;
-
-            unsigned short ii = 1;
-            RealType val = 0;
-            RealType vi = a * exp( -ah*ah*half<RealType>() ) * one_div_root_two_pi<RealType>();
-            RealType z = owens_t_znorm1(ah)/h;
-
-            while( true )
-            {
-               val += z;
-               if( maxii <= ii )
-               {
-                  val *= exp( -hs*half<RealType>() ) * one_div_root_two_pi<RealType>();
-                  break;
-               } // if( maxii <= ii )
-               z = y * ( vi - static_cast<RealType>(ii) * z );
-               vi *= as;
-               ii += 2;
-            } // while( true )
-
-            return val;
-         } // RealType owens_t_T2(const RealType h, const RealType a, const unsigned short m, const RealType ah)
-
-         // compute the value of Owen's T function with method T3 from the reference paper
-         template<typename RealType>
-         inline RealType owens_t_T3_imp(const RealType h, const RealType a, const RealType ah, const mpl::int_<53>&)
-         {
-            BOOST_MATH_STD_USING
-            using namespace boost::math::constants;
-
-      const unsigned short m = 20;
-
-            static const RealType c2[] =
-            {
-               0.99999999999999987510,
-               -0.99999999999988796462,      0.99999999998290743652,
-               -0.99999999896282500134,      0.99999996660459362918,
-               -0.99999933986272476760,      0.99999125611136965852,
-               -0.99991777624463387686,      0.99942835555870132569,
-               -0.99697311720723000295,      0.98751448037275303682,
-               -0.95915857980572882813,      0.89246305511006708555,
-               -0.76893425990463999675,      0.58893528468484693250,
-               -0.38380345160440256652,      0.20317601701045299653,
-               -0.82813631607004984866E-01,  0.24167984735759576523E-01,
-               -0.44676566663971825242E-02,  0.39141169402373836468E-03
-            };
-
-            const RealType as = a*a;
-            const RealType hs = h*h;
-            const RealType y = static_cast<RealType>(1)/hs;
-
-            RealType ii = 1;
-            unsigned short i = 0;
-            RealType vi = a * exp( -ah*ah*half<RealType>() ) * one_div_root_two_pi<RealType>();
-            RealType zi = owens_t_znorm1(ah)/h;
-            RealType val = 0;
-
-            while( true )
-            {
-               BOOST_ASSERT(i < 21);
-               val += zi*c2[i];
-               if( m <= i ) // if( m < i+1 )
-               {
-                  val *= exp( -hs*half<RealType>() ) * one_div_root_two_pi<RealType>();
-                  break;
-               } // if( m < i )
-               zi = y * (ii*zi - vi);
-               vi *= as;
-               ii += 2;
-               i++;
-            } // while( true )
-
-            return val;
-         } // RealType owens_t_T3(const RealType h, const RealType a, const RealType ah)
-
-        // compute the value of Owen's T function with method T3 from the reference paper
-        template<class RealType>
-        inline RealType owens_t_T3_imp(const RealType h, const RealType a, const RealType ah, const mpl::int_<64>&)
-        {
-          BOOST_MATH_STD_USING
-          using namespace boost::math::constants;
-          
-          const unsigned short m = 30;
-
-          static const RealType c2[] =
-          {
-             BOOST_MATH_BIG_CONSTANT(RealType, 260, 0.99999999999999999999999729978162447266851932041876728736094298092917625009873),
-             BOOST_MATH_BIG_CONSTANT(RealType, 260, -0.99999999999999999999467056379678391810626533251885323416799874878563998732905968),
-             BOOST_MATH_BIG_CONSTANT(RealType, 260, 0.99999999999999999824849349313270659391127814689133077036298754586814091034842536),
-             BOOST_MATH_BIG_CONSTANT(RealType, 260, -0.9999999999999997703859616213643405880166422891953033591551179153879839440241685),
-             BOOST_MATH_BIG_CONSTANT(RealType, 260, 0.99999999999998394883415238173334565554173013941245103172035286759201504179038147),
-             BOOST_MATH_BIG_CONSTANT(RealType, 260, -0.9999999999993063616095509371081203145247992197457263066869044528823599399470977),
-             BOOST_MATH_BIG_CONSTANT(RealType, 260, 0.9999999999797336340409464429599229870590160411238245275855903767652432017766116267),
-             BOOST_MATH_BIG_CONSTANT(RealType, 260, -0.999999999574958412069046680119051639753412378037565521359444170241346845522403274),
-             BOOST_MATH_BIG_CONSTANT(RealType, 260, 0.9999999933226234193375324943920160947158239076786103108097456617750134812033362048),
-             BOOST_MATH_BIG_CONSTANT(RealType, 260, -0.9999999188923242461073033481053037468263536806742737922476636768006622772762168467),
-             BOOST_MATH_BIG_CONSTANT(RealType, 260, 0.9999992195143483674402853783549420883055129680082932629160081128947764415749728967),
-             BOOST_MATH_BIG_CONSTANT(RealType, 260, -0.999993935137206712830997921913316971472227199741857386575097250553105958772041501),
-             BOOST_MATH_BIG_CONSTANT(RealType, 260, 0.99996135597690552745362392866517133091672395614263398912807169603795088421057688716),
-             BOOST_MATH_BIG_CONSTANT(RealType, 260, -0.99979556366513946026406788969630293820987757758641211293079784585126692672425362469),
-             BOOST_MATH_BIG_CONSTANT(RealType, 260, 0.999092789629617100153486251423850590051366661947344315423226082520411961968929483),
-             BOOST_MATH_BIG_CONSTANT(RealType, 260, -0.996593837411918202119308620432614600338157335862888580671450938858935084316004769854),
-             BOOST_MATH_BIG_CONSTANT(RealType, 260, 0.98910017138386127038463510314625339359073956513420458166238478926511821146316469589567),
-             BOOST_MATH_BIG_CONSTANT(RealType, 260, -0.970078558040693314521331982203762771512160168582494513347846407314584943870399016019),
-             BOOST_MATH_BIG_CONSTANT(RealType, 260, 0.92911438683263187495758525500033707204091967947532160289872782771388170647150321633673),
-             BOOST_MATH_BIG_CONSTANT(RealType, 260, -0.8542058695956156057286980736842905011429254735181323743367879525470479126968822863),
-             BOOST_MATH_BIG_CONSTANT(RealType, 260, 0.73796526033030091233118357742803709382964420335559408722681794195743240930748630755),
-             BOOST_MATH_BIG_CONSTANT(RealType, 260, -0.58523469882837394570128599003785154144164680587615878645171632791404210655891158),
-             BOOST_MATH_BIG_CONSTANT(RealType, 260, 0.415997776145676306165661663581868460503874205343014196580122174949645271353372263),
-             BOOST_MATH_BIG_CONSTANT(RealType, 260, -0.2588210875241943574388730510317252236407805082485246378222935376279663808416534365),
-             BOOST_MATH_BIG_CONSTANT(RealType, 260, 0.1375535825163892648504646951500265585055789019410617565727090346559210218472356689),
-             BOOST_MATH_BIG_CONSTANT(RealType, 260, -0.0607952766325955730493900985022020434830339794955745989150270485056436844239206648),
-             BOOST_MATH_BIG_CONSTANT(RealType, 260, 0.0216337683299871528059836483840390514275488679530797294557060229266785853764115),
-             BOOST_MATH_BIG_CONSTANT(RealType, 260, -0.00593405693455186729876995814181203900550014220428843483927218267309209471516256),
-             BOOST_MATH_BIG_CONSTANT(RealType, 260, 0.0011743414818332946510474576182739210553333860106811865963485870668929503649964142),
-             BOOST_MATH_BIG_CONSTANT(RealType, 260, -1.489155613350368934073453260689881330166342484405529981510694514036264969925132e-4),
-             BOOST_MATH_BIG_CONSTANT(RealType, 260, 9.072354320794357587710929507988814669454281514268844884841547607134260303118208e-6)
-          };
-
-          const RealType as = a*a;
-          const RealType hs = h*h;
-          const RealType y = 1 / hs;
-
-          RealType ii = 1;
-          unsigned short i = 0;
-          RealType vi = a * exp( -ah*ah*half<RealType>() ) * one_div_root_two_pi<RealType>();
-          RealType zi = owens_t_znorm1(ah)/h;
-          RealType val = 0;
-
-          while( true )
-          {
-              BOOST_ASSERT(i < 31);
-              val += zi*c2[i];
-              if( m <= i ) // if( m < i+1 )
-              {
-                val *= exp( -hs*half<RealType>() ) * one_div_root_two_pi<RealType>();
-                break;
-              } // if( m < i )
-              zi = y * (ii*zi - vi);
-              vi *= as;
-              ii += 2;
-              i++;
-          } // while( true )
-
-          return val;
-        } // RealType owens_t_T3(const RealType h, const RealType a, const RealType ah)
-
-        template<class RealType, class Policy>
-        inline RealType owens_t_T3(const RealType h, const RealType a, const RealType ah, const Policy&)
-        {
-            typedef typename policies::precision<RealType, Policy>::type precision_type;
-            typedef typename mpl::if_<
-               mpl::or_<
-                  mpl::less_equal<precision_type, mpl::int_<0> >,
-                  mpl::greater<precision_type, mpl::int_<53> >
-               >,
-               mpl::int_<64>,
-               mpl::int_<53>
-            >::type tag_type;
-
-            return owens_t_T3_imp(h, a, ah, tag_type());
-        }
-
-         // compute the value of Owen's T function with method T4 from the reference paper
-         template<typename RealType>
-         inline RealType owens_t_T4(const RealType h, const RealType a, const unsigned short m)
-         {
-            BOOST_MATH_STD_USING
-            using namespace boost::math::constants;
-
-            const unsigned short maxii = m+m+1;
-            const RealType hs = h*h;
-            const RealType as = -a*a;
-
-            unsigned short ii = 1;
-            RealType ai = a * exp( -hs*(static_cast<RealType>(1)-as)*half<RealType>() ) * one_div_two_pi<RealType>();
-            RealType yi = 1;
-            RealType val = 0;
-
-            while( true )
-            {
-               val += ai*yi;
-               if( maxii <= ii )
-                  break;
-               ii += 2;
-               yi = (static_cast<RealType>(1)-hs*yi) / static_cast<RealType>(ii);
-               ai *= as;
-            } // while( true )
-
-            return val;
-         } // RealType owens_t_T4(const RealType h, const RealType a, const unsigned short m)
-
-         // compute the value of Owen's T function with method T5 from the reference paper
-         template<typename RealType>
-         inline RealType owens_t_T5_imp(const RealType h, const RealType a, const mpl::int_<53>&)
-         {
-            BOOST_MATH_STD_USING
-            /*
-               NOTICE:
-               - The pts[] array contains the squares (!) of the abscissas, i.e. the roots of the Legendre
-                 polynomial P_n(x), instead of the plain roots as required in Gauss-Legendre
-                 quadrature, because T5(h,a,m) contains only x^2 terms.
-               - The wts[] array contains the weights for Gauss-Legendre quadrature scaled with a factor
-                 of 1/(2*pi) according to T5(h,a,m).
-             */
-
-            const unsigned short m = 13;
-            static const RealType pts[] = {0.35082039676451715489E-02,
-               0.31279042338030753740E-01,  0.85266826283219451090E-01,
-               0.16245071730812277011,      0.25851196049125434828,
-               0.36807553840697533536,      0.48501092905604697475,
-               0.60277514152618576821,      0.71477884217753226516,
-               0.81475510988760098605,      0.89711029755948965867,
-               0.95723808085944261843,      0.99178832974629703586};
-            static const RealType wts[] = { 0.18831438115323502887E-01,
-               0.18567086243977649478E-01,  0.18042093461223385584E-01,
-               0.17263829606398753364E-01,  0.16243219975989856730E-01,
-               0.14994592034116704829E-01,  0.13535474469662088392E-01,
-               0.11886351605820165233E-01,  0.10070377242777431897E-01,
-               0.81130545742299586629E-02,  0.60419009528470238773E-02,
-               0.38862217010742057883E-02,  0.16793031084546090448E-02};
-
-            const RealType as = a*a;
-            const RealType hs = -h*h*boost::math::constants::half<RealType>();
-
-            RealType val = 0;
-            for(unsigned short i = 0; i < m; ++i)
-            {
-               BOOST_ASSERT(i < 13);
-               const RealType r = static_cast<RealType>(1) + as*pts[i];
-               val += wts[i] * exp( hs*r ) / r;
-            } // for(unsigned short i = 0; i < m; ++i)
-
-            return val*a;
-         } // RealType owens_t_T5(const RealType h, const RealType a)
-
-        // compute the value of Owen's T function with method T5 from the reference paper
-        template<typename RealType>
-        inline RealType owens_t_T5_imp(const RealType h, const RealType a, const mpl::int_<64>&)
-        {
-          BOOST_MATH_STD_USING
-            /*
-              NOTICE:
-              - The pts[] array contains the squares (!) of the abscissas, i.e. the roots of the Legendre
-              polynomial P_n(x), instead of the plain roots as required in Gauss-Legendre
-              quadrature, because T5(h,a,m) contains only x^2 terms.
-              - The wts[] array contains the weights for Gauss-Legendre quadrature scaled with a factor
-              of 1/(2*pi) according to T5(h,a,m).
-            */
-
-          const unsigned short m = 19;
-          static const RealType pts[] = {
-               BOOST_MATH_BIG_CONSTANT(RealType, 64, 0.0016634282895983227941),
-               BOOST_MATH_BIG_CONSTANT(RealType, 64, 0.014904509242697054183),
-               BOOST_MATH_BIG_CONSTANT(RealType, 64, 0.04103478879005817919),
-               BOOST_MATH_BIG_CONSTANT(RealType, 64, 0.079359853513391511008),
-               BOOST_MATH_BIG_CONSTANT(RealType, 64, 0.1288612130237615133),
-               BOOST_MATH_BIG_CONSTANT(RealType, 64, 0.18822336642448518856),
-               BOOST_MATH_BIG_CONSTANT(RealType, 64, 0.25586876186122962384),
-               BOOST_MATH_BIG_CONSTANT(RealType, 64, 0.32999972011807857222),
-               BOOST_MATH_BIG_CONSTANT(RealType, 64, 0.40864620815774761438),
-               BOOST_MATH_BIG_CONSTANT(RealType, 64, 0.48971819306044782365),
-               BOOST_MATH_BIG_CONSTANT(RealType, 64, 0.57106118513245543894),
-               BOOST_MATH_BIG_CONSTANT(RealType, 64, 0.6505134942981533829),
-               BOOST_MATH_BIG_CONSTANT(RealType, 64, 0.72596367859928091618),
-               BOOST_MATH_BIG_CONSTANT(RealType, 64, 0.79540665919549865924),
-               BOOST_MATH_BIG_CONSTANT(RealType, 64, 0.85699701386308739244),
-               BOOST_MATH_BIG_CONSTANT(RealType, 64, 0.90909804422384697594),
-               BOOST_MATH_BIG_CONSTANT(RealType, 64, 0.95032536436570154409),
-               BOOST_MATH_BIG_CONSTANT(RealType, 64, 0.97958418733152273717),
-               BOOST_MATH_BIG_CONSTANT(RealType, 64, 0.99610366384229088321)
-          };
-          static const RealType wts[] = {
-               BOOST_MATH_BIG_CONSTANT(RealType, 64, 0.012975111395684900835),
-               BOOST_MATH_BIG_CONSTANT(RealType, 64, 0.012888764187499150078),
-               BOOST_MATH_BIG_CONSTANT(RealType, 64, 0.012716644398857307844),
-               BOOST_MATH_BIG_CONSTANT(RealType, 64, 0.012459897461364705691),
-               BOOST_MATH_BIG_CONSTANT(RealType, 64, 0.012120231988292330388),
-               BOOST_MATH_BIG_CONSTANT(RealType, 64, 0.011699908404856841158),
-               BOOST_MATH_BIG_CONSTANT(RealType, 64, 0.011201723906897224448),
-               BOOST_MATH_BIG_CONSTANT(RealType, 64, 0.010628993848522759853),
-               BOOST_MATH_BIG_CONSTANT(RealType, 64, 0.0099855296835573320047),
-               BOOST_MATH_BIG_CONSTANT(RealType, 64, 0.0092756136096132857933),
-               BOOST_MATH_BIG_CONSTANT(RealType, 64, 0.0085039700881139589055),
-               BOOST_MATH_BIG_CONSTANT(RealType, 64, 0.0076757344408814561254),
-               BOOST_MATH_BIG_CONSTANT(RealType, 64, 0.0067964187616556459109),
-               BOOST_MATH_BIG_CONSTANT(RealType, 64, 0.005871875456524750363),
-               BOOST_MATH_BIG_CONSTANT(RealType, 64, 0.0049082589542498110071),
-               BOOST_MATH_BIG_CONSTANT(RealType, 64, 0.0039119870792519721409),
-               BOOST_MATH_BIG_CONSTANT(RealType, 64, 0.0028897090921170700834),
-               BOOST_MATH_BIG_CONSTANT(RealType, 64, 0.0018483371329504443947),
-               BOOST_MATH_BIG_CONSTANT(RealType, 64, 0.00079623320100438873578)
-          };
-
-          const RealType as = a*a;
-          const RealType hs = -h*h*boost::math::constants::half<RealType>();
-
-          RealType val = 0;
-          for(unsigned short i = 0; i < m; ++i)
-            {
-              BOOST_ASSERT(i < 19);
-              const RealType r = 1 + as*pts[i];
-              val += wts[i] * exp( hs*r ) / r;
-            } // for(unsigned short i = 0; i < m; ++i)
-
-          return val*a;
-        } // RealType owens_t_T5(const RealType h, const RealType a)
-
-        template<class RealType, class Policy>
-        inline RealType owens_t_T5(const RealType h, const RealType a, const Policy&)
-        {
-            typedef typename policies::precision<RealType, Policy>::type precision_type;
-            typedef typename mpl::if_<
-               mpl::or_<
-                  mpl::less_equal<precision_type, mpl::int_<0> >,
-                  mpl::greater<precision_type, mpl::int_<53> >
-               >,
-               mpl::int_<64>,
-               mpl::int_<53>
-            >::type tag_type;
-
-            return owens_t_T5_imp(h, a, tag_type());
-        }
-
-
-         // compute the value of Owen's T function with method T6 from the reference paper
-         template<typename RealType>
-         inline RealType owens_t_T6(const RealType h, const RealType a)
-         {
-            BOOST_MATH_STD_USING
-            using namespace boost::math::constants;
-
-            const RealType normh = owens_t_znorm2( h );
-            const RealType y = static_cast<RealType>(1) - a;
-            const RealType r = atan2(y, static_cast<RealType>(1 + a) );
-
-            RealType val = normh * ( static_cast<RealType>(1) - normh ) * half<RealType>();
-
-            if( r != 0 )
-               val -= r * exp( -y*h*h*half<RealType>()/r ) * one_div_two_pi<RealType>();
-
-            return val;
-         } // RealType owens_t_T6(const RealType h, const RealType a, const unsigned short m)
-
-         template <class T, class Policy>
-         std::pair<T, T> owens_t_T1_accelerated(T h, T a, const Policy& pol)
-         {
-            //
-            // This is the same series as T1, but:
-            // * The Taylor series for atan has been combined with that for T1, 
-            //   reducing but not eliminating cancellation error.
-            // * The resulting alternating series is then accelerated using method 1
-            //   from H. Cohen, F. Rodriguez Villegas, D. Zagier, 
-            //   "Convergence acceleration of alternating series", Bonn, (1991).
-            //
-            BOOST_MATH_STD_USING
-            static const char* function = "boost::math::owens_t<%1%>(%1%, %1%)";
-            T half_h_h = h * h / 2;
-            T a_pow = a;
-            T aa = a * a;
-            T exp_term = exp(-h * h / 2);
-            T one_minus_dj_sum = exp_term; 
-            T sum = a_pow * exp_term;
-            T dj_pow = exp_term;
-            T term = sum;
-            T abs_err;
-            int j = 1;
-
-            //
-            // Normally with this form of series acceleration we can calculate
-            // up front how many terms will be required - based on the assumption
-            // that each term decreases in size by a factor of 3.  However,
-            // that assumption does not apply here, as the underlying T1 series can 
-            // go quite strongly divergent in the early terms, before strongly
-            // converging later.  Various "guestimates" have been tried to take account
-            // of this, but they don't always work.... so instead set "n" to the 
-            // largest value that won't cause overflow later, and abort iteration
-            // when the last accelerated term was small enough...
-            //
-            int n;
-            try
-            {
-               n = itrunc(T(tools::log_max_value<T>() / 6));
-            }
-            catch(...)
-            {
-               n = (std::numeric_limits<int>::max)();
-            }
-            n = (std::min)(n, 1500);
-            T d = pow(3 + sqrt(T(8)), n);
-            d = (d + 1 / d) / 2;
-            T b = -1;
-            T c = -d;
-            c = b - c;
-            sum *= c;
-            b = -n * n * b * 2;
-            abs_err = ldexp(fabs(sum), -tools::digits<T>());
-
-            while(j < n)
-            {
-               a_pow *= aa;
-               dj_pow *= half_h_h / j;
-               one_minus_dj_sum += dj_pow;
-               term = one_minus_dj_sum * a_pow / (2 * j + 1);
-               c = b - c;
-               sum += c * term;
-               abs_err += ldexp((std::max)(T(fabs(sum)), T(fabs(c*term))), -tools::digits<T>());
-               b = (j + n) * (j - n) * b / ((j + T(0.5)) * (j + 1));
-               ++j;
-               //
-               // Include an escape route to prevent calculating too many terms:
-               //
-               if((j > 10) && (fabs(sum * tools::epsilon<T>()) > fabs(c * term)))
-                  break;
-            }
-            abs_err += fabs(c * term);
-            if(sum < 0)  // sum must always be positive, if it's negative something really bad has happend:
-               policies::raise_evaluation_error(function, 0, T(0), pol);
-            return std::pair<T, T>((sum / d) / boost::math::constants::two_pi<T>(), abs_err / sum);
-         }
-
-         template<typename RealType, class Policy>
-         inline RealType owens_t_T2(const RealType h, const RealType a, const unsigned short m, const RealType ah, const Policy&, const mpl::true_&)
-         {
-            BOOST_MATH_STD_USING
-            using namespace boost::math::constants;
-
-            const unsigned short maxii = m+m+1;
-            const RealType hs = h*h;
-            const RealType as = -a*a;
-            const RealType y = static_cast<RealType>(1) / hs;
-
-            unsigned short ii = 1;
-            RealType val = 0;
-            RealType vi = a * exp( -ah*ah*half<RealType>() ) / root_two_pi<RealType>();
-            RealType z = owens_t_znorm1(ah)/h;
-            RealType last_z = fabs(z);
-            RealType lim = policies::get_epsilon<RealType, Policy>();
-
-            while( true )
-            {
-               val += z;
-               //
-               // This series stops converging after a while, so put a limit
-               // on how far we go before returning our best guess:
-               //
-               if((fabs(lim * val) > fabs(z)) || ((ii > maxii) && (fabs(z) > last_z)) || (z == 0))
-               {
-                  val *= exp( -hs*half<RealType>() ) / root_two_pi<RealType>();
-                  break;
-               } // if( maxii <= ii )
-               last_z = fabs(z);
-               z = y * ( vi - static_cast<RealType>(ii) * z );
-               vi *= as;
-               ii += 2;
-            } // while( true )
-
-            return val;
-         } // RealType owens_t_T2(const RealType h, const RealType a, const unsigned short m, const RealType ah)
-
-         template<typename RealType, class Policy>
-         inline std::pair<RealType, RealType> owens_t_T2_accelerated(const RealType h, const RealType a, const RealType ah, const Policy&)
-         {
-            //
-            // This is the same series as T2, but with acceleration applied.
-            // Note that we have to be *very* careful to check that nothing bad
-            // has happened during evaluation - this series will go divergent
-            // and/or fail to alternate at a drop of a hat! :-(
-            //
-            BOOST_MATH_STD_USING
-            using namespace boost::math::constants;
-
-            const RealType hs = h*h;
-            const RealType as = -a*a;
-            const RealType y = static_cast<RealType>(1) / hs;
-
-            unsigned short ii = 1;
-            RealType val = 0;
-            RealType vi = a * exp( -ah*ah*half<RealType>() ) / root_two_pi<RealType>();
-            RealType z = boost::math::detail::owens_t_znorm1(ah)/h;
-            RealType last_z = fabs(z);
-
-            //
-            // Normally with this form of series acceleration we can calculate
-            // up front how many terms will be required - based on the assumption
-            // that each term decreases in size by a factor of 3.  However,
-            // that assumption does not apply here, as the underlying T1 series can 
-            // go quite strongly divergent in the early terms, before strongly
-            // converging later.  Various "guestimates" have been tried to take account
-            // of this, but they don't always work.... so instead set "n" to the 
-            // largest value that won't cause overflow later, and abort iteration
-            // when the last accelerated term was small enough...
-            //
-            int n;
-            try
-            {
-               n = itrunc(RealType(tools::log_max_value<RealType>() / 6));
-            }
-            catch(...)
-            {
-               n = (std::numeric_limits<int>::max)();
-            }
-            n = (std::min)(n, 1500);
-            RealType d = pow(3 + sqrt(RealType(8)), n);
-            d = (d + 1 / d) / 2;
-            RealType b = -1;
-            RealType c = -d;
-            int s = 1;
-
-            for(int k = 0; k < n; ++k)
-            {
-               //
-               // Check for both convergence and whether the series has gone bad:
-               //
-               if(
-                  (fabs(z) > last_z)     // Series has gone divergent, abort
-                  || (fabs(val) * tools::epsilon<RealType>() > fabs(c * s * z))  // Convergence!
-                  || (z * s < 0)         // Series has stopped alternating - all bets are off - abort.
-                  )
-               {
-                  break;
-               }
-               c = b - c;
-               val += c * s * z;
-               b = (k + n) * (k - n) * b / ((k + RealType(0.5)) * (k + 1));
-               last_z = fabs(z);
-               s = -s;
-               z = y * ( vi - static_cast<RealType>(ii) * z );
-               vi *= as;
-               ii += 2;
-            } // while( true )
-            RealType err = fabs(c * z) / val;
-            return std::pair<RealType, RealType>(val * exp( -hs*half<RealType>() ) / (d * root_two_pi<RealType>()), err);
-         } // RealType owens_t_T2_accelerated(const RealType h, const RealType a, const RealType ah, const Policy&)
-
-         template<typename RealType, typename Policy>
-         inline RealType T4_mp(const RealType h, const RealType a, const Policy& pol)
-         {
-            BOOST_MATH_STD_USING
-            
-            const RealType hs = h*h;
-            const RealType as = -a*a;
-
-            unsigned short ii = 1;
-            RealType ai = constants::one_div_two_pi<RealType>() * a * exp( -0.5*hs*(1.0-as) );
-            RealType yi = 1.0;
-            RealType val = 0.0;
-
-            RealType lim = boost::math::policies::get_epsilon<RealType, Policy>();
-
-            while( true )
-            {
-               RealType term = ai*yi;
-               val += term;
-               if((yi != 0) && (fabs(val * lim) > fabs(term)))
-                  break;
-               ii += 2;
-               yi = (1.0-hs*yi) / static_cast<RealType>(ii);
-               ai *= as;
-               if(ii > (std::min)(1500, (int)policies::get_max_series_iterations<Policy>()))
-                  policies::raise_evaluation_error("boost::math::owens_t<%1%>", 0, val, pol);
-            } // while( true )
-
-            return val;
-         } // arg_type owens_t_T4(const arg_type h, const arg_type a, const unsigned short m)
-
-
-         // This routine dispatches the call to one of six subroutines, depending on the values
-         // of h and a.
-         // preconditions: h >= 0, 0<=a<=1, ah=a*h
-         //
-         // Note there are different versions for different precisions....
-         template<typename RealType, typename Policy>
-         inline RealType owens_t_dispatch(const RealType h, const RealType a, const RealType ah, const Policy& pol, mpl::int_<64> const&)
-         {
-            // Simple main case for 64-bit precision or less, this is as per the Patefield-Tandy paper:
-            BOOST_MATH_STD_USING
-            //
-            // Handle some special cases first, these are from
-            // page 1077 of Owen's original paper:
-            //
-            if(h == 0)
-            {
-               return atan(a) * constants::one_div_two_pi<RealType>();
-            }
-            if(a == 0)
-            {
-               return 0;
-            }
-            if(a == 1)
-            {
-               return owens_t_znorm2(RealType(-h)) * owens_t_znorm2(h) / 2;
-            }
-            if(a >= tools::max_value<RealType>())
-            {
-               return owens_t_znorm2(RealType(fabs(h)));
-            }
-            RealType val = 0; // avoid compiler warnings, 0 will be overwritten in any case
-            const unsigned short icode = owens_t_compute_code(h, a);
-            const unsigned short m = owens_t_get_order(icode, val /* just a dummy for the type */, pol);
-            static const unsigned short meth[] = {1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 3, 4, 4, 4, 4, 5, 6}; // 18 entries
-
-            // determine the appropriate method, T1 ... T6
-            switch( meth[icode] )
-            {
-            case 1: // T1
-               val = owens_t_T1(h,a,m);
-               break;
-            case 2: // T2
-               typedef typename policies::precision<RealType, Policy>::type precision_type;
-               typedef mpl::bool_<(precision_type::value == 0) || (precision_type::value > 64)> tag_type;
-               val = owens_t_T2(h, a, m, ah, pol, tag_type());
-               break;
-            case 3: // T3
-               val = owens_t_T3(h,a,ah, pol);
-               break;
-            case 4: // T4
-               val = owens_t_T4(h,a,m);
-               break;
-            case 5: // T5
-               val = owens_t_T5(h,a, pol);
-               break;
-            case 6: // T6
-               val = owens_t_T6(h,a);
-               break;
-            default:
-               BOOST_THROW_EXCEPTION(std::logic_error("selection routine in Owen's T function failed"));
-            }
-            return val;
-         }
-
-         template<typename RealType, typename Policy>
-         inline RealType owens_t_dispatch(const RealType h, const RealType a, const RealType ah, const Policy& pol, const mpl::int_<65>&)
-         {
-            // Arbitrary precision version:
-            BOOST_MATH_STD_USING
-            //
-            // Handle some special cases first, these are from
-            // page 1077 of Owen's original paper:
-            //
-            if(h == 0)
-            {
-               return atan(a) * constants::one_div_two_pi<RealType>();
-            }
-            if(a == 0)
-            {
-               return 0;
-            }
-            if(a == 1)
-            {
-               return owens_t_znorm2(RealType(-h)) * owens_t_znorm2(h) / 2;
-            }
-            if(a >= tools::max_value<RealType>())
-            {
-               return owens_t_znorm2(RealType(fabs(h)));
-            }
-            // Attempt arbitrary precision code, this will throw if it goes wrong:
-            typedef typename boost::math::policies::normalise<Policy, boost::math::policies::evaluation_error<> >::type forwarding_policy;
-            std::pair<RealType, RealType> p1(0, tools::max_value<RealType>()), p2(0, tools::max_value<RealType>());
-            RealType target_precision = policies::get_epsilon<RealType, Policy>() * 1000;
-            bool have_t1(false), have_t2(false);
-            if(ah < 3)
-            {
-               try
-               {
-                  have_t1 = true;
-                  p1 = owens_t_T1_accelerated(h, a, forwarding_policy());
-                  if(p1.second < target_precision)
-                     return p1.first;
-               }
-               catch(const boost::math::evaluation_error&){}  // T1 may fail and throw, that's OK
-            }
-            if(ah > 1)
-            {
-               try
-               {
-                  have_t2 = true;
-                  p2 = owens_t_T2_accelerated(h, a, ah, forwarding_policy());
-                  if(p2.second < target_precision)
-                     return p2.first;
-               }
-               catch(const boost::math::evaluation_error&){}  // T2 may fail and throw, that's OK
-            }
-            //
-            // If we haven't tried T1 yet, do it now - sometimes it succeeds and the number of iterations
-            // is fairly low compared to T4.
-            //
-            if(!have_t1)
-            {
-               try
-               {
-                  have_t1 = true;
-                  p1 = owens_t_T1_accelerated(h, a, forwarding_policy());
-                  if(p1.second < target_precision)
-                     return p1.first;
-               }
-               catch(const boost::math::evaluation_error&){}  // T1 may fail and throw, that's OK
-            }
-            //
-            // If we haven't tried T2 yet, do it now - sometimes it succeeds and the number of iterations
-            // is fairly low compared to T4.
-            //
-            if(!have_t2)
-            {
-               try
-               {
-                  have_t2 = true;
-                  p2 = owens_t_T2_accelerated(h, a, ah, forwarding_policy());
-                  if(p2.second < target_precision)
-                     return p2.first;
-               }
-               catch(const boost::math::evaluation_error&){}  // T2 may fail and throw, that's OK
-            }
-            //
-            // OK, nothing left to do but try the most expensive option which is T4,
-            // this is often slow to converge, but when it does converge it tends to
-            // be accurate:
-            try
-            {
-               return T4_mp(h, a, pol);
-            }
-            catch(const boost::math::evaluation_error&){}  // T4 may fail and throw, that's OK
-            //
-            // Now look back at the results from T1 and T2 and see if either gave better
-            // results than we could get from the 64-bit precision versions.
-            //
-            if((std::min)(p1.second, p2.second) < 1e-20)
-            {
-               return p1.second < p2.second ? p1.first : p2.first;
-            }
-            //
-            // We give up - no arbitrary precision versions succeeded!
-            //
-            return owens_t_dispatch(h, a, ah, pol, mpl::int_<64>());
-         } // RealType owens_t_dispatch(RealType h, RealType a, RealType ah)
-         template<typename RealType, typename Policy>
-         inline RealType owens_t_dispatch(const RealType h, const RealType a, const RealType ah, const Policy& pol, const mpl::int_<0>&)
-         {
-            // We don't know what the precision is until runtime:
-            if(tools::digits<RealType>() <= 64)
-               return owens_t_dispatch(h, a, ah, pol, mpl::int_<64>());
-            return owens_t_dispatch(h, a, ah, pol, mpl::int_<65>());
-         }
-         template<typename RealType, typename Policy>
-         inline RealType owens_t_dispatch(const RealType h, const RealType a, const RealType ah, const Policy& pol)
-         {
-            // Figure out the precision and forward to the correct version:
-            typedef typename policies::precision<RealType, Policy>::type precision_type;
-            typedef typename mpl::if_c<
-               precision_type::value == 0,
-               mpl::int_<0>,
-               typename mpl::if_c<
-                  precision_type::value <= 64,
-                  mpl::int_<64>,
-                  mpl::int_<65>
-               >::type
-            >::type tag_type;
-            return owens_t_dispatch(h, a, ah, pol, tag_type());
-         }
-         // compute Owen's T function, T(h,a), for arbitrary values of h and a
-         template<typename RealType, class Policy>
-         inline RealType owens_t(RealType h, RealType a, const Policy& pol)
-         {
-            BOOST_MATH_STD_USING
-            // exploit that T(-h,a) == T(h,a)
-            h = fabs(h);
-
-            // Use equation (2) in the paper to remap the arguments
-            // such that h>=0 and 0<=a<=1 for the call of the actual
-            // computation routine.
-
-            const RealType fabs_a = fabs(a);
-            const RealType fabs_ah = fabs_a*h;
-
-            RealType val = 0.0; // avoid compiler warnings, 0.0 will be overwritten in any case
-
-            if(fabs_a <= 1)
-            {
-               val = owens_t_dispatch(h, fabs_a, fabs_ah, pol);
-            } // if(fabs_a <= 1.0)
-            else 
-            {
-               if( h <= 0.67 )
-               {
-                  const RealType normh = owens_t_znorm1(h);
-                  const RealType normah = owens_t_znorm1(fabs_ah);
-                  val = static_cast<RealType>(1)/static_cast<RealType>(4) - normh*normah -
-                     owens_t_dispatch(fabs_ah, static_cast<RealType>(1 / fabs_a), h, pol);
-               } // if( h <= 0.67 )
-               else
-               {
-                  const RealType normh = detail::owens_t_znorm2(h);
-                  const RealType normah = detail::owens_t_znorm2(fabs_ah);
-                  val = constants::half<RealType>()*(normh+normah) - normh*normah -
-                     owens_t_dispatch(fabs_ah, static_cast<RealType>(1 / fabs_a), h, pol);
-               } // else [if( h <= 0.67 )]
-            } // else [if(fabs_a <= 1)]
-
-            // exploit that T(h,-a) == -T(h,a)
-            if(a < 0)
-            {
-               return -val;
-            } // if(a < 0)
-
-            return val;
-         } // RealType owens_t(RealType h, RealType a)
-
-         template <class T, class Policy, class tag>
-         struct owens_t_initializer
-         {
-            struct init
-            {
-               init()
-               {
-                  do_init(tag());
-               }
-               template <int N>
-               static void do_init(const mpl::int_<N>&){}
-               static void do_init(const mpl::int_<64>&)
-               {
-                  boost::math::owens_t(static_cast<T>(7), static_cast<T>(0.96875), Policy());
-                  boost::math::owens_t(static_cast<T>(2), static_cast<T>(0.5), Policy());
-               }
-               void force_instantiate()const{}
-            };
-            static const init initializer;
-            static void force_instantiate()
-            {
-               initializer.force_instantiate();
-            }
-         };
-
-         template <class T, class Policy, class tag>
-         const typename owens_t_initializer<T, Policy, tag>::init owens_t_initializer<T, Policy, tag>::initializer;
-
-      } // namespace detail
-
-      template <class T1, class T2, class Policy>
-      inline typename tools::promote_args<T1, T2>::type owens_t(T1 h, T2 a, const Policy& pol)
-      {
-         typedef typename tools::promote_args<T1, T2>::type result_type;
-         typedef typename policies::evaluation<result_type, Policy>::type value_type;
-         typedef typename policies::precision<value_type, Policy>::type precision_type;
-         typedef typename mpl::if_c<
-               precision_type::value == 0,
-               mpl::int_<0>,
-               typename mpl::if_c<
-                  precision_type::value <= 64,
-                  mpl::int_<64>,
-                  mpl::int_<65>
-               >::type
-            >::type tag_type;
-
-         detail::owens_t_initializer<result_type, Policy, tag_type>::force_instantiate();
-            
-         return policies::checked_narrowing_cast<result_type, Policy>(detail::owens_t(static_cast<value_type>(h), static_cast<value_type>(a), pol), "boost::math::owens_t<%1%>(%1%,%1%)");
-      }
-
-      template <class T1, class T2>
-      inline typename tools::promote_args<T1, T2>::type owens_t(T1 h, T2 a)
-      {
-         return owens_t(h, a, policies::policy<>());
-      }
-
-
-   } // namespace math
-} // namespace boost
-
-#endif
-// EOF
diff --git a/boost/math/special_functions/pow.hpp b/boost/math/special_functions/pow.hpp
deleted file mode 100644
index 5423e9c..0000000
--- a/boost/math/special_functions/pow.hpp
+++ /dev/null
@@ -1,140 +0,0 @@
-//   Boost pow.hpp header file
-//   Computes a power with exponent known at compile-time
-
-//  (C) Copyright Bruno Lalande 2008.
-//  Distributed under the Boost Software License, Version 1.0.
-//  (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org for updates, documentation, and revision history.
-
-
-#ifndef BOOST_MATH_POW_HPP
-#define BOOST_MATH_POW_HPP
-
-
-#include <boost/math/policies/policy.hpp>
-#include <boost/math/policies/error_handling.hpp>
-#include <boost/math/tools/promotion.hpp>
-#include <boost/mpl/greater_equal.hpp>
-
-
-namespace boost {
-namespace math {
-
-
-namespace detail {
-
-
-template <int N, int M = N%2>
-struct positive_power
-{
-    template <typename T>
-    static T result(T base)
-    {
-        T power = positive_power<N/2>::result(base);
-        return power * power;
-    }
-};
-
-template <int N>
-struct positive_power<N, 1>
-{
-    template <typename T>
-    static T result(T base)
-    {
-        T power = positive_power<N/2>::result(base);
-        return base * power * power;
-    }
-};
-
-template <>
-struct positive_power<1, 1>
-{
-    template <typename T>
-    static T result(T base){ return base; }
-};
-
-
-template <int N, bool>
-struct power_if_positive
-{
-    template <typename T, class Policy>
-    static T result(T base, const Policy&)
-    { return positive_power<N>::result(base); }
-};
-
-template <int N>
-struct power_if_positive<N, false>
-{
-    template <typename T, class Policy>
-    static T result(T base, const Policy& policy)
-    {
-        if (base == 0)
-        {
-            return policies::raise_overflow_error<T>(
-                       "boost::math::pow(%1%)",
-                       "Attempted to compute a negative power of 0",
-                       policy
-                   );
-        }
-
-        return T(1) / positive_power<-N>::result(base);
-    }
-};
-
-template <>
-struct power_if_positive<0, true>
-{
-    template <typename T, class Policy>
-    static T result(T base, const Policy& policy)
-    {
-        if (base == 0)
-        {
-            return policies::raise_indeterminate_result_error<T>(
-                       "boost::math::pow(%1%)",
-                       "The result of pow<0>(%1%) is undetermined",
-                       base,
-                       T(1),
-                       policy
-                   );
-        }
-
-        return T(1);
-    }
-};
-
-
-template <int N>
-struct select_power_if_positive
-{
-    typedef typename mpl::greater_equal<
-                         mpl::int_<N>,
-                         mpl::int_<0>
-                     >::type is_positive;
-
-    typedef power_if_positive<N, is_positive::value> type;
-};
-
-
-}  // namespace detail
-
-
-template <int N, typename T, class Policy>
-inline typename tools::promote_args<T>::type pow(T base, const Policy& policy)
-{ 
-   typedef typename tools::promote_args<T>::type result_type;
-   return detail::select_power_if_positive<N>::type::result(static_cast<result_type>(base), policy); 
-}
-
-
-template <int N, typename T>
-inline typename tools::promote_args<T>::type pow(T base)
-{ return pow<N>(base, policies::policy<>()); }
-
-
-}  // namespace math
-}  // namespace boost
-
-
-#endif
diff --git a/boost/math/special_functions/powm1.hpp b/boost/math/special_functions/powm1.hpp
deleted file mode 100644
index cb33ae0..0000000
--- a/boost/math/special_functions/powm1.hpp
+++ /dev/null
@@ -1,61 +0,0 @@
-//  (C) Copyright John Maddock 2006.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_POWM1
-#define BOOST_MATH_POWM1
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/math/special_functions/log1p.hpp>
-#include <boost/math/special_functions/expm1.hpp>
-#include <boost/math/special_functions/math_fwd.hpp>
-#include <boost/assert.hpp>
-
-namespace boost{ namespace math{ namespace detail{
-
-template <class T, class Policy>
-inline T powm1_imp(const T a, const T z, const Policy& pol)
-{
-   BOOST_MATH_STD_USING
-
-   if((fabs(a) < 1) || (fabs(z) < 1))
-   {
-      T p = log(a) * z;
-      if(fabs(p) < 2)
-         return boost::math::expm1(p, pol);
-      // otherwise fall though:
-   }
-   return pow(a, z) - 1;
-}
-
-} // detail
-
-template <class T1, class T2>
-inline typename tools::promote_args<T1, T2>::type 
-   powm1(const T1 a, const T2 z)
-{
-   typedef typename tools::promote_args<T1, T2>::type result_type;
-   return detail::powm1_imp(static_cast<result_type>(a), static_cast<result_type>(z), policies::policy<>());
-}
-
-template <class T1, class T2, class Policy>
-inline typename tools::promote_args<T1, T2>::type 
-   powm1(const T1 a, const T2 z, const Policy& pol)
-{
-   typedef typename tools::promote_args<T1, T2>::type result_type;
-   return detail::powm1_imp(static_cast<result_type>(a), static_cast<result_type>(z), pol);
-}
-
-} // namespace math
-} // namespace boost
-
-#endif // BOOST_MATH_POWM1
-
-
-
-
-
diff --git a/boost/math/special_functions/round.hpp b/boost/math/special_functions/round.hpp
deleted file mode 100644
index a2e5349..0000000
--- a/boost/math/special_functions/round.hpp
+++ /dev/null
@@ -1,93 +0,0 @@
-//  Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_ROUND_HPP
-#define BOOST_MATH_ROUND_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/math/tools/config.hpp>
-#include <boost/math/policies/error_handling.hpp>
-#include <boost/math/special_functions/fpclassify.hpp>
-
-namespace boost{ namespace math{
-
-template <class T, class Policy>
-inline typename tools::promote_args<T>::type round(const T& v, const Policy& pol)
-{
-   BOOST_MATH_STD_USING
-   typedef typename tools::promote_args<T>::type result_type;
-   if(!(boost::math::isfinite)(v))
-      return policies::raise_rounding_error("boost::math::round<%1%>(%1%)", 0, static_cast<result_type>(v), static_cast<result_type>(v), pol);
-   return v < 0 ? static_cast<result_type>(ceil(v - 0.5f)) : static_cast<result_type>(floor(v + 0.5f));
-}
-template <class T>
-inline typename tools::promote_args<T>::type round(const T& v)
-{
-   return round(v, policies::policy<>());
-}
-//
-// The following functions will not compile unless T has an
-// implicit convertion to the integer types.  For user-defined
-// number types this will likely not be the case.  In that case
-// these functions should either be specialized for the UDT in
-// question, or else overloads should be placed in the same 
-// namespace as the UDT: these will then be found via argument
-// dependent lookup.  See our concept archetypes for examples.
-//
-template <class T, class Policy>
-inline int iround(const T& v, const Policy& pol)
-{
-   BOOST_MATH_STD_USING
-   T r = boost::math::round(v, pol);
-   if((r > (std::numeric_limits<int>::max)()) || (r < (std::numeric_limits<int>::min)()))
-      return static_cast<int>(policies::raise_rounding_error("boost::math::iround<%1%>(%1%)", 0, v, 0, pol));
-   return static_cast<int>(r);
-}
-template <class T>
-inline int iround(const T& v)
-{
-   return iround(v, policies::policy<>());
-}
-
-template <class T, class Policy>
-inline long lround(const T& v, const Policy& pol)
-{
-   BOOST_MATH_STD_USING
-   T r = boost::math::round(v, pol);
-   if((r > (std::numeric_limits<long>::max)()) || (r < (std::numeric_limits<long>::min)()))
-      return static_cast<long int>(policies::raise_rounding_error("boost::math::lround<%1%>(%1%)", 0, v, 0L, pol));
-   return static_cast<long int>(r);
-}
-template <class T>
-inline long lround(const T& v)
-{
-   return lround(v, policies::policy<>());
-}
-
-#ifdef BOOST_HAS_LONG_LONG
-
-template <class T, class Policy>
-inline boost::long_long_type llround(const T& v, const Policy& pol)
-{
-   BOOST_MATH_STD_USING
-   T r = boost::math::round(v, pol);
-   if((r > (std::numeric_limits<boost::long_long_type>::max)()) || (r < (std::numeric_limits<boost::long_long_type>::min)()))
-      return static_cast<boost::long_long_type>(policies::raise_rounding_error("boost::math::llround<%1%>(%1%)", 0, v, static_cast<boost::long_long_type>(0), pol));
-   return static_cast<boost::long_long_type>(r);
-}
-template <class T>
-inline boost::long_long_type llround(const T& v)
-{
-   return llround(v, policies::policy<>());
-}
-
-#endif
-
-}} // namespaces
-
-#endif // BOOST_MATH_ROUND_HPP
diff --git a/boost/math/special_functions/sign.hpp b/boost/math/special_functions/sign.hpp
deleted file mode 100644
index 75fb012..0000000
--- a/boost/math/special_functions/sign.hpp
+++ /dev/null
@@ -1,150 +0,0 @@
-//  (C) Copyright John Maddock 2006.
-//  (C) Copyright Johan Rade 2006.
-//  (C) Copyright Paul A. Bristow 2011 (added changesign).
-
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_TOOLS_SIGN_HPP
-#define BOOST_MATH_TOOLS_SIGN_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/math/tools/config.hpp>
-#include <boost/math/special_functions/math_fwd.hpp>
-#include <boost/math/special_functions/detail/fp_traits.hpp>
-
-namespace boost{ namespace math{ 
-
-namespace detail {
-
-  // signbit
-
-#ifdef BOOST_MATH_USE_STD_FPCLASSIFY
-    template<class T> 
-    inline int signbit_impl(T x, native_tag const&)
-    {
-        return (std::signbit)(x);
-    }
-#endif
-
-    template<class T> 
-    inline int signbit_impl(T x, generic_tag<true> const&)
-    {
-        return x < 0;
-    }
-
-    template<class T> 
-    inline int signbit_impl(T x, generic_tag<false> const&)
-    {
-        return x < 0;
-    }
-
-    template<class T> 
-    inline int signbit_impl(T x, ieee_copy_all_bits_tag const&)
-    {
-        typedef BOOST_DEDUCED_TYPENAME fp_traits<T>::type traits;
-
-        BOOST_DEDUCED_TYPENAME traits::bits a;
-        traits::get_bits(x,a);
-        return a & traits::sign ? 1 : 0;
-    }
-
-    template<class T> 
-    inline int signbit_impl(T x, ieee_copy_leading_bits_tag const&)
-    {
-        typedef BOOST_DEDUCED_TYPENAME fp_traits<T>::type traits;
-
-        BOOST_DEDUCED_TYPENAME traits::bits a;
-        traits::get_bits(x,a);
-
-        return a & traits::sign ? 1 : 0;
-    }
-
-    // Changesign
-
-    template<class T>
-    inline T (changesign_impl)(T x, generic_tag<true> const&)
-    {
-        return -x;
-    }
-
-    template<class T>
-    inline T (changesign_impl)(T x, generic_tag<false> const&)
-    {
-        return -x;
-    }
-
-
-    template<class T>
-    inline T changesign_impl(T x, ieee_copy_all_bits_tag const&)
-    {
-        typedef BOOST_DEDUCED_TYPENAME fp_traits<T>::sign_change_type traits;
-
-        BOOST_DEDUCED_TYPENAME traits::bits a;
-        traits::get_bits(x,a);
-        a ^= traits::sign;
-        traits::set_bits(x,a);
-        return x;
-    }
-
-    template<class T>
-    inline T (changesign_impl)(T x, ieee_copy_leading_bits_tag const&)
-    {
-        typedef BOOST_DEDUCED_TYPENAME fp_traits<T>::sign_change_type traits;
-
-        BOOST_DEDUCED_TYPENAME traits::bits a;
-        traits::get_bits(x,a);
-        a ^= traits::sign;
-        traits::set_bits(x,a);
-        return x;
-    }
-
-
-}   // namespace detail
-
-template<class T> int (signbit)(T x)
-{ 
-   typedef typename detail::fp_traits<T>::type traits;
-   typedef typename traits::method method;
-   // typedef typename boost::is_floating_point<T>::type fp_tag;
-   typedef typename tools::promote_args_permissive<T>::type result_type;
-   return detail::signbit_impl(static_cast<result_type>(x), method());
-}
-
-template <class T>
-inline int sign BOOST_NO_MACRO_EXPAND(const T& z)
-{
-   return (z == 0) ? 0 : (boost::math::signbit)(z) ? -1 : 1;
-}
-
-template <class T> typename tools::promote_args_permissive<T>::type (changesign)(const T& x)
-{ //!< \brief return unchanged binary pattern of x, except for change of sign bit. 
-   typedef typename detail::fp_traits<T>::sign_change_type traits;
-   typedef typename traits::method method;
-   // typedef typename boost::is_floating_point<T>::type fp_tag;
-   typedef typename tools::promote_args_permissive<T>::type result_type;
-
-   return detail::changesign_impl(static_cast<result_type>(x), method());
-}
-
-template <class T, class U>
-inline typename tools::promote_args_permissive<T, U>::type 
-   copysign BOOST_NO_MACRO_EXPAND(const T& x, const U& y)
-{
-   BOOST_MATH_STD_USING
-   typedef typename tools::promote_args_permissive<T, U>::type result_type;
-   return (boost::math::signbit)(static_cast<result_type>(x)) != (boost::math::signbit)(static_cast<result_type>(y)) 
-      ? (boost::math::changesign)(static_cast<result_type>(x)) : static_cast<result_type>(x);
-}
-
-} // namespace math
-} // namespace boost
-
-
-#endif // BOOST_MATH_TOOLS_SIGN_HPP
-
-
diff --git a/boost/math/special_functions/sin_pi.hpp b/boost/math/special_functions/sin_pi.hpp
deleted file mode 100644
index 38c02bc..0000000
--- a/boost/math/special_functions/sin_pi.hpp
+++ /dev/null
@@ -1,70 +0,0 @@
-//  Copyright (c) 2007 John Maddock
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_SIN_PI_HPP
-#define BOOST_MATH_SIN_PI_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/config/no_tr1/cmath.hpp>
-#include <boost/math/tools/config.hpp>
-#include <boost/math/special_functions/trunc.hpp>
-#include <boost/math/tools/promotion.hpp>
-#include <boost/math/constants/constants.hpp>
-
-namespace boost{ namespace math{ namespace detail{
-
-template <class T, class Policy>
-T sin_pi_imp(T x, const Policy& pol)
-{
-   BOOST_MATH_STD_USING // ADL of std names
-   if(x < 0)
-      return -sin_pi(-x);
-   // sin of pi*x:
-   bool invert;
-   if(x < 0.5)
-      return sin(constants::pi<T>() * x);
-   if(x < 1)
-   {
-      invert = true;
-      x = -x;
-   }
-   else
-      invert = false;
-
-   T rem = floor(x);
-   if(itrunc(rem, pol) & 1)
-      invert = !invert;
-   rem = x - rem;
-   if(rem > 0.5f)
-      rem = 1 - rem;
-   if(rem == 0.5f)
-      return static_cast<T>(invert ? -1 : 1);
-   
-   rem = sin(constants::pi<T>() * rem);
-   return invert ? T(-rem) : rem;
-}
-
-} // namespace detail
-
-template <class T, class Policy>
-inline typename tools::promote_args<T>::type sin_pi(T x, const Policy& pol)
-{
-   typedef typename tools::promote_args<T>::type result_type;
-   return boost::math::detail::sin_pi_imp<result_type>(x, pol);
-}
-
-template <class T>
-inline typename tools::promote_args<T>::type sin_pi(T x)
-{
-   return boost::math::sin_pi(x, policies::policy<>());
-}
-
-} // namespace math
-} // namespace boost
-#endif
-
diff --git a/boost/math/special_functions/sinc.hpp b/boost/math/special_functions/sinc.hpp
deleted file mode 100644
index 84fbf0e..0000000
--- a/boost/math/special_functions/sinc.hpp
+++ /dev/null
@@ -1,145 +0,0 @@
-//  boost sinc.hpp header file
-
-//  (C) Copyright Hubert Holin 2001.
-//  Distributed under the Boost Software License, Version 1.0. (See
-//  accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-
-// See http://www.boost.org for updates, documentation, and revision history.
-
-#ifndef BOOST_SINC_HPP
-#define BOOST_SINC_HPP
-
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/math/tools/config.hpp>
-#include <boost/math/tools/precision.hpp>
-#include <boost/math/policies/policy.hpp>
-#include <boost/math/special_functions/math_fwd.hpp>
-#include <boost/config/no_tr1/cmath.hpp>
-#include <boost/limits.hpp>
-#include <string>
-#include <stdexcept>
-
-
-#include <boost/config.hpp>
-
-
-// These are the the "Sinus Cardinal" functions.
-
-namespace boost
-{
-    namespace math
-    {
-       namespace detail
-       {
-        // This is the "Sinus Cardinal" of index Pi.
-
-        template<typename T>
-        inline T    sinc_pi_imp(const T x)
-        {
-            BOOST_MATH_STD_USING
-
-            T const    taylor_0_bound = tools::epsilon<T>();
-            T const    taylor_2_bound = tools::root_epsilon<T>();
-            T const    taylor_n_bound = tools::forth_root_epsilon<T>();
-
-            if    (abs(x) >= taylor_n_bound)
-            {
-                return(sin(x)/x);
-            }
-            else
-            {
-                // approximation by taylor series in x at 0 up to order 0
-                T    result = static_cast<T>(1);
-
-                if    (abs(x) >= taylor_0_bound)
-                {
-                    T    x2 = x*x;
-
-                    // approximation by taylor series in x at 0 up to order 2
-                    result -= x2/static_cast<T>(6);
-
-                    if    (abs(x) >= taylor_2_bound)
-                    {
-                        // approximation by taylor series in x at 0 up to order 4
-                        result += (x2*x2)/static_cast<T>(120);
-                    }
-                }
-
-                return(result);
-            }
-        }
-
-       } // namespace detail
-
-       template <class T>
-       inline typename tools::promote_args<T>::type sinc_pi(T x)
-       {
-          typedef typename tools::promote_args<T>::type result_type;
-          return detail::sinc_pi_imp(static_cast<result_type>(x));
-       }
-
-       template <class T, class Policy>
-       inline typename tools::promote_args<T>::type sinc_pi(T x, const Policy&)
-       {
-          typedef typename tools::promote_args<T>::type result_type;
-          return detail::sinc_pi_imp(static_cast<result_type>(x));
-       }
-
-#ifndef    BOOST_NO_TEMPLATE_TEMPLATES
-        template<typename T, template<typename> class U>
-        inline U<T>    sinc_pi(const U<T> x)
-        {
-            BOOST_MATH_STD_USING
-            using    ::std::numeric_limits;
-
-            T const    taylor_0_bound = tools::epsilon<T>();
-            T const    taylor_2_bound = tools::root_epsilon<T>();
-            T const    taylor_n_bound = tools::forth_root_epsilon<T>();
-
-            if    (abs(x) >= taylor_n_bound)
-            {
-                return(sin(x)/x);
-            }
-            else
-            {
-                // approximation by taylor series in x at 0 up to order 0
-#ifdef __MWERKS__
-                U<T>    result = static_cast<U<T> >(1);
-#else
-                U<T>    result = U<T>(1);
-#endif
-
-                if    (abs(x) >= taylor_0_bound)
-                {
-                    U<T>    x2 = x*x;
-
-                    // approximation by taylor series in x at 0 up to order 2
-                    result -= x2/static_cast<T>(6);
-
-                    if    (abs(x) >= taylor_2_bound)
-                    {
-                        // approximation by taylor series in x at 0 up to order 4
-                        result += (x2*x2)/static_cast<T>(120);
-                    }
-                }
-
-                return(result);
-            }
-        }
-
-        template<typename T, template<typename> class U, class Policy>
-        inline U<T>    sinc_pi(const U<T> x, const Policy&)
-        {
-           return sinc_pi(x);
-        }
-#endif    /* BOOST_NO_TEMPLATE_TEMPLATES */
-    }
-}
-
-#endif /* BOOST_SINC_HPP */
-
diff --git a/boost/math/special_functions/sinhc.hpp b/boost/math/special_functions/sinhc.hpp
deleted file mode 100644
index d19a4b7..0000000
--- a/boost/math/special_functions/sinhc.hpp
+++ /dev/null
@@ -1,167 +0,0 @@
-//  boost sinhc.hpp header file
-
-//  (C) Copyright Hubert Holin 2001.
-//  Distributed under the Boost Software License, Version 1.0. (See
-//  accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-
-// See http://www.boost.org for updates, documentation, and revision history.
-
-#ifndef BOOST_SINHC_HPP
-#define BOOST_SINHC_HPP
-
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/math/tools/config.hpp>
-#include <boost/math/tools/precision.hpp>
-#include <boost/math/special_functions/math_fwd.hpp>
-#include <boost/config/no_tr1/cmath.hpp>
-#include <boost/limits.hpp>
-#include <string>
-#include <stdexcept>
-
-#include <boost/config.hpp>
-
-
-// These are the the "Hyperbolic Sinus Cardinal" functions.
-
-namespace boost
-{
-    namespace math
-    {
-       namespace detail
-       {
-#if        defined(__GNUC__) && (__GNUC__ < 3)
-        // gcc 2.x ignores function scope using declarations,
-        // put them in the scope of the enclosing namespace instead:
-
-        using    ::std::abs;
-        using    ::std::sqrt;
-        using    ::std::sinh;
-
-        using    ::std::numeric_limits;
-#endif    /* defined(__GNUC__) && (__GNUC__ < 3) */
-
-        // This is the "Hyperbolic Sinus Cardinal" of index Pi.
-
-        template<typename T>
-        inline T    sinhc_pi_imp(const T x)
-        {
-#if defined(BOOST_NO_STDC_NAMESPACE) && !defined(__SUNPRO_CC)
-            using    ::abs;
-            using    ::sinh;
-            using    ::sqrt;
-#else    /* BOOST_NO_STDC_NAMESPACE */
-            using    ::std::abs;
-            using    ::std::sinh;
-            using    ::std::sqrt;
-#endif    /* BOOST_NO_STDC_NAMESPACE */
-
-            static T const    taylor_0_bound = tools::epsilon<T>();
-            static T const    taylor_2_bound = sqrt(taylor_0_bound);
-            static T const    taylor_n_bound = sqrt(taylor_2_bound);
-
-            if    (abs(x) >= taylor_n_bound)
-            {
-                return(sinh(x)/x);
-            }
-            else
-            {
-                // approximation by taylor series in x at 0 up to order 0
-                T    result = static_cast<T>(1);
-
-                if    (abs(x) >= taylor_0_bound)
-                {
-                    T    x2 = x*x;
-
-                    // approximation by taylor series in x at 0 up to order 2
-                    result += x2/static_cast<T>(6);
-
-                    if    (abs(x) >= taylor_2_bound)
-                    {
-                        // approximation by taylor series in x at 0 up to order 4
-                        result += (x2*x2)/static_cast<T>(120);
-                    }
-                }
-
-                return(result);
-            }
-        }
-
-       } // namespace detail
-
-       template <class T>
-       inline typename tools::promote_args<T>::type sinhc_pi(T x)
-       {
-          typedef typename tools::promote_args<T>::type result_type;
-          return detail::sinhc_pi_imp(static_cast<result_type>(x));
-       }
-
-       template <class T, class Policy>
-       inline typename tools::promote_args<T>::type sinhc_pi(T x, const Policy&)
-       {
-          return boost::math::sinhc_pi(x);
-       }
-
-#ifdef    BOOST_NO_TEMPLATE_TEMPLATES
-#else    /* BOOST_NO_TEMPLATE_TEMPLATES */
-        template<typename T, template<typename> class U>
-        inline U<T>    sinhc_pi(const U<T> x)
-        {
-#if defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL) || defined(__GNUC__)
-            using namespace std;
-#elif    defined(BOOST_NO_STDC_NAMESPACE) && !defined(__SUNPRO_CC)
-            using    ::abs;
-            using    ::sinh;
-            using    ::sqrt;
-#else    /* BOOST_NO_STDC_NAMESPACE */
-            using    ::std::abs;
-            using    ::std::sinh;
-            using    ::std::sqrt;
-#endif    /* BOOST_NO_STDC_NAMESPACE */
-
-            using    ::std::numeric_limits;
-
-            static T const    taylor_0_bound = tools::epsilon<T>();
-            static T const    taylor_2_bound = sqrt(taylor_0_bound);
-            static T const    taylor_n_bound = sqrt(taylor_2_bound);
-
-            if    (abs(x) >= taylor_n_bound)
-            {
-                return(sinh(x)/x);
-            }
-            else
-            {
-                // approximation by taylor series in x at 0 up to order 0
-#ifdef __MWERKS__
-                U<T>    result = static_cast<U<T> >(1);
-#else
-                U<T>    result = U<T>(1);
-#endif
-
-                if    (abs(x) >= taylor_0_bound)
-                {
-                    U<T>    x2 = x*x;
-
-                    // approximation by taylor series in x at 0 up to order 2
-                    result += x2/static_cast<T>(6);
-
-                    if    (abs(x) >= taylor_2_bound)
-                    {
-                        // approximation by taylor series in x at 0 up to order 4
-                        result += (x2*x2)/static_cast<T>(120);
-                    }
-                }
-
-                return(result);
-            }
-        }
-#endif    /* BOOST_NO_TEMPLATE_TEMPLATES */
-    }
-}
-
-#endif /* BOOST_SINHC_HPP */
-
diff --git a/boost/math/special_functions/spherical_harmonic.hpp b/boost/math/special_functions/spherical_harmonic.hpp
deleted file mode 100644
index 73513ae..0000000
--- a/boost/math/special_functions/spherical_harmonic.hpp
+++ /dev/null
@@ -1,204 +0,0 @@
-
-//  (C) Copyright John Maddock 2006.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_SPECIAL_SPHERICAL_HARMONIC_HPP
-#define BOOST_MATH_SPECIAL_SPHERICAL_HARMONIC_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/math/special_functions/legendre.hpp>
-#include <boost/math/tools/workaround.hpp>
-#include <complex>
-
-namespace boost{
-namespace math{
-
-namespace detail{
-
-//
-// Calculates the prefix term that's common to the real
-// and imaginary parts.  Does *not* fix up the sign of the result
-// though.
-//
-template <class T, class Policy>
-inline T spherical_harmonic_prefix(unsigned n, unsigned m, T theta, const Policy& pol)
-{
-   BOOST_MATH_STD_USING
-
-   if(m > n)
-      return 0;
-
-   T sin_theta = sin(theta);
-   T x = cos(theta);
-
-   T leg = detail::legendre_p_imp(n, m, x, static_cast<T>(pow(fabs(sin_theta), T(m))), pol);
-   
-   T prefix = boost::math::tgamma_delta_ratio(static_cast<T>(n - m + 1), static_cast<T>(2 * m), pol);
-   prefix *= (2 * n + 1) / (4 * constants::pi<T>());
-   prefix = sqrt(prefix);
-   return prefix * leg;
-}
-//
-// Real Part:
-//
-template <class T, class Policy>
-T spherical_harmonic_r(unsigned n, int m, T theta, T phi, const Policy& pol)
-{
-   BOOST_MATH_STD_USING  // ADL of std functions
-
-   bool sign = false;
-   if(m < 0)
-   {
-      // Reflect and adjust sign if m < 0:
-      sign = m&1;
-      m = abs(m);
-   }
-   if(m&1)
-   {
-      // Check phase if theta is outside [0, PI]:
-      T mod = boost::math::tools::fmod_workaround(theta, T(2 * constants::pi<T>()));
-      if(mod < 0)
-         mod += 2 * constants::pi<T>();
-      if(mod > constants::pi<T>())
-         sign = !sign;
-   }
-   // Get the value and adjust sign as required:
-   T prefix = spherical_harmonic_prefix(n, m, theta, pol);
-   prefix *= cos(m * phi);
-   return sign ? T(-prefix) : prefix;
-}
-
-template <class T, class Policy>
-T spherical_harmonic_i(unsigned n, int m, T theta, T phi, const Policy& pol)
-{
-   BOOST_MATH_STD_USING  // ADL of std functions
-
-   bool sign = false;
-   if(m < 0)
-   {
-      // Reflect and adjust sign if m < 0:
-      sign = !(m&1);
-      m = abs(m);
-   }
-   if(m&1)
-   {
-      // Check phase if theta is outside [0, PI]:
-      T mod = boost::math::tools::fmod_workaround(theta, T(2 * constants::pi<T>()));
-      if(mod < 0)
-         mod += 2 * constants::pi<T>();
-      if(mod > constants::pi<T>())
-         sign = !sign;
-   }
-   // Get the value and adjust sign as required:
-   T prefix = spherical_harmonic_prefix(n, m, theta, pol);
-   prefix *= sin(m * phi);
-   return sign ? T(-prefix) : prefix;
-}
-
-template <class T, class U, class Policy>
-std::complex<T> spherical_harmonic(unsigned n, int m, U theta, U phi, const Policy& pol)
-{
-   BOOST_MATH_STD_USING
-   //
-   // Sort out the signs:
-   //
-   bool r_sign = false;
-   bool i_sign = false;
-   if(m < 0)
-   {
-      // Reflect and adjust sign if m < 0:
-      r_sign = m&1;
-      i_sign = !(m&1);
-      m = abs(m);
-   }
-   if(m&1)
-   {
-      // Check phase if theta is outside [0, PI]:
-      U mod = boost::math::tools::fmod_workaround(theta, U(2 * constants::pi<U>()));
-      if(mod < 0)
-         mod += 2 * constants::pi<U>();
-      if(mod > constants::pi<U>())
-      {
-         r_sign = !r_sign;
-         i_sign = !i_sign;
-      }
-   }
-   //
-   // Calculate the value:
-   //
-   U prefix = spherical_harmonic_prefix(n, m, theta, pol);
-   U r = prefix * cos(m * phi);
-   U i = prefix * sin(m * phi);
-   //
-   // Add in the signs:
-   //
-   if(r_sign)
-      r = -r;
-   if(i_sign)
-      i = -i;
-   static const char* function = "boost::math::spherical_harmonic<%1%>(int, int, %1%, %1%)";
-   return std::complex<T>(policies::checked_narrowing_cast<T, Policy>(r, function), policies::checked_narrowing_cast<T, Policy>(i, function));
-}
-
-} // namespace detail
-
-template <class T1, class T2, class Policy>
-inline std::complex<typename tools::promote_args<T1, T2>::type> 
-   spherical_harmonic(unsigned n, int m, T1 theta, T2 phi, const Policy& pol)
-{
-   typedef typename tools::promote_args<T1, T2>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   return detail::spherical_harmonic<result_type, value_type>(n, m, static_cast<value_type>(theta), static_cast<value_type>(phi), pol);
-}
-
-template <class T1, class T2>
-inline std::complex<typename tools::promote_args<T1, T2>::type> 
-   spherical_harmonic(unsigned n, int m, T1 theta, T2 phi)
-{
-   return boost::math::spherical_harmonic(n, m, theta, phi, policies::policy<>());
-}
-
-template <class T1, class T2, class Policy>
-inline typename tools::promote_args<T1, T2>::type 
-   spherical_harmonic_r(unsigned n, int m, T1 theta, T2 phi, const Policy& pol)
-{
-   typedef typename tools::promote_args<T1, T2>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   return policies::checked_narrowing_cast<result_type, Policy>(detail::spherical_harmonic_r(n, m, static_cast<value_type>(theta), static_cast<value_type>(phi), pol), "bost::math::spherical_harmonic_r<%1%>(unsigned, int, %1%, %1%)");
-}
-
-template <class T1, class T2>
-inline typename tools::promote_args<T1, T2>::type 
-   spherical_harmonic_r(unsigned n, int m, T1 theta, T2 phi)
-{
-   return boost::math::spherical_harmonic_r(n, m, theta, phi, policies::policy<>());
-}
-
-template <class T1, class T2, class Policy>
-inline typename tools::promote_args<T1, T2>::type 
-   spherical_harmonic_i(unsigned n, int m, T1 theta, T2 phi, const Policy& pol)
-{
-   typedef typename tools::promote_args<T1, T2>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   return policies::checked_narrowing_cast<result_type, Policy>(detail::spherical_harmonic_i(n, m, static_cast<value_type>(theta), static_cast<value_type>(phi), pol), "boost::math::spherical_harmonic_i<%1%>(unsigned, int, %1%, %1%)");
-}
-
-template <class T1, class T2>
-inline typename tools::promote_args<T1, T2>::type 
-   spherical_harmonic_i(unsigned n, int m, T1 theta, T2 phi)
-{
-   return boost::math::spherical_harmonic_i(n, m, theta, phi, policies::policy<>());
-}
-
-} // namespace math
-} // namespace boost
-
-#endif // BOOST_MATH_SPECIAL_SPHERICAL_HARMONIC_HPP
-
-
-
diff --git a/boost/math/special_functions/sqrt1pm1.hpp b/boost/math/special_functions/sqrt1pm1.hpp
deleted file mode 100644
index ad0203e..0000000
--- a/boost/math/special_functions/sqrt1pm1.hpp
+++ /dev/null
@@ -1,48 +0,0 @@
-//  (C) Copyright John Maddock 2006.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_SQRT1PM1
-#define BOOST_MATH_SQRT1PM1
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/math/special_functions/log1p.hpp>
-#include <boost/math/special_functions/expm1.hpp>
-#include <boost/math/special_functions/math_fwd.hpp>
-
-//
-// This algorithm computes sqrt(1+x)-1 for small x:
-//
-
-namespace boost{ namespace math{
-
-template <class T, class Policy>
-inline typename tools::promote_args<T>::type sqrt1pm1(const T& val, const Policy& pol)
-{
-   typedef typename tools::promote_args<T>::type result_type;
-   BOOST_MATH_STD_USING
-
-   if(fabs(result_type(val)) > 0.75)
-      return sqrt(1 + result_type(val)) - 1;
-   return boost::math::expm1(boost::math::log1p(val, pol) / 2, pol);
-}
-
-template <class T>
-inline typename tools::promote_args<T>::type sqrt1pm1(const T& val)
-{
-   return sqrt1pm1(val, policies::policy<>());
-}
-
-} // namespace math
-} // namespace boost
-
-#endif // BOOST_MATH_SQRT1PM1
-
-
-
-
-
diff --git a/boost/math/special_functions/trunc.hpp b/boost/math/special_functions/trunc.hpp
deleted file mode 100644
index 8e515f3..0000000
--- a/boost/math/special_functions/trunc.hpp
+++ /dev/null
@@ -1,96 +0,0 @@
-//  Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_TRUNC_HPP
-#define BOOST_MATH_TRUNC_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/math/tools/config.hpp>
-#include <boost/math/policies/error_handling.hpp>
-#include <boost/math/special_functions/fpclassify.hpp>
-
-namespace boost{ namespace math{
-
-template <class T, class Policy>
-inline typename tools::promote_args<T>::type trunc(const T& v, const Policy& pol)
-{
-   BOOST_MATH_STD_USING
-   typedef typename tools::promote_args<T>::type result_type;
-   if(!(boost::math::isfinite)(v))
-      return policies::raise_rounding_error("boost::math::trunc<%1%>(%1%)", 0, static_cast<result_type>(v), static_cast<result_type>(v), pol);
-   return (v >= 0) ? static_cast<result_type>(floor(v)) : static_cast<result_type>(ceil(v));
-}
-template <class T>
-inline typename tools::promote_args<T>::type trunc(const T& v)
-{
-   return trunc(v, policies::policy<>());
-}
-//
-// The following functions will not compile unless T has an
-// implicit convertion to the integer types.  For user-defined
-// number types this will likely not be the case.  In that case
-// these functions should either be specialized for the UDT in
-// question, or else overloads should be placed in the same 
-// namespace as the UDT: these will then be found via argument
-// dependent lookup.  See our concept archetypes for examples.
-//
-template <class T, class Policy>
-inline int itrunc(const T& v, const Policy& pol)
-{
-   BOOST_MATH_STD_USING
-   typedef typename tools::promote_args<T>::type result_type;
-   result_type r = boost::math::trunc(v, pol);
-   if((r > (std::numeric_limits<int>::max)()) || (r < (std::numeric_limits<int>::min)()))
-      return static_cast<int>(policies::raise_rounding_error("boost::math::itrunc<%1%>(%1%)", 0, static_cast<result_type>(v), 0, pol));
-   return static_cast<int>(r);
-}
-template <class T>
-inline int itrunc(const T& v)
-{
-   return itrunc(v, policies::policy<>());
-}
-
-template <class T, class Policy>
-inline long ltrunc(const T& v, const Policy& pol)
-{
-   BOOST_MATH_STD_USING
-   typedef typename tools::promote_args<T>::type result_type;
-   result_type r = boost::math::trunc(v, pol);
-   if((r > (std::numeric_limits<long>::max)()) || (r < (std::numeric_limits<long>::min)()))
-      return static_cast<long>(policies::raise_rounding_error("boost::math::ltrunc<%1%>(%1%)", 0, static_cast<result_type>(v), 0L, pol));
-   return static_cast<long>(r);
-}
-template <class T>
-inline long ltrunc(const T& v)
-{
-   return ltrunc(v, policies::policy<>());
-}
-
-#ifdef BOOST_HAS_LONG_LONG
-
-template <class T, class Policy>
-inline boost::long_long_type lltrunc(const T& v, const Policy& pol)
-{
-   BOOST_MATH_STD_USING
-   typedef typename tools::promote_args<T>::type result_type;
-   result_type r = boost::math::trunc(v, pol);
-   if((r > (std::numeric_limits<boost::long_long_type>::max)()) || (r < (std::numeric_limits<boost::long_long_type>::min)()))
-      return static_cast<boost::long_long_type>(policies::raise_rounding_error("boost::math::lltrunc<%1%>(%1%)", 0, v, static_cast<boost::long_long_type>(0), pol));
-   return static_cast<boost::long_long_type>(r);
-}
-template <class T>
-inline boost::long_long_type lltrunc(const T& v)
-{
-   return lltrunc(v, policies::policy<>());
-}
-
-#endif
-
-}} // namespaces
-
-#endif // BOOST_MATH_TRUNC_HPP
diff --git a/boost/math/special_functions/zeta.hpp b/boost/math/special_functions/zeta.hpp
deleted file mode 100644
index 6c82fa4..0000000
--- a/boost/math/special_functions/zeta.hpp
+++ /dev/null
@@ -1,995 +0,0 @@
-//  Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_ZETA_HPP
-#define BOOST_MATH_ZETA_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/math/tools/precision.hpp>
-#include <boost/math/tools/series.hpp>
-#include <boost/math/tools/big_constant.hpp>
-#include <boost/math/policies/error_handling.hpp>
-#include <boost/math/special_functions/gamma.hpp>
-#include <boost/math/special_functions/sin_pi.hpp>
-
-namespace boost{ namespace math{ namespace detail{
-
-#if 0
-//
-// This code is commented out because we have a better more rapidly converging series
-// now.  Retained for future reference and in case the new code causes any issues down the line....
-//
-
-template <class T, class Policy>
-struct zeta_series_cache_size
-{
-   //
-   // Work how large to make our cache size when evaluating the series 
-   // evaluation:  normally this is just large enough for the series
-   // to have converged, but for arbitrary precision types we need a 
-   // really large cache to achieve reasonable precision in a reasonable 
-   // time.  This is important when constructing rational approximations
-   // to zeta for example.
-   //
-   typedef typename boost::math::policies::precision<T,Policy>::type precision_type;
-   typedef typename mpl::if_<
-      mpl::less_equal<precision_type, mpl::int_<0> >,
-      mpl::int_<5000>,
-      typename mpl::if_<
-         mpl::less_equal<precision_type, mpl::int_<64> >,
-         mpl::int_<70>,
-         typename mpl::if_<
-            mpl::less_equal<precision_type, mpl::int_<113> >,
-            mpl::int_<100>,
-            mpl::int_<5000>
-         >::type
-      >::type
-   >::type type;
-};
-
-template <class T, class Policy>
-T zeta_series_imp(T s, T sc, const Policy&)
-{
-   //
-   // Series evaluation from:
-   // Havil, J. Gamma: Exploring Euler's Constant. 
-   // Princeton, NJ: Princeton University Press, 2003.
-   //
-   // See also http://mathworld.wolfram.com/RiemannZetaFunction.html
-   //
-   BOOST_MATH_STD_USING
-   T sum = 0;
-   T mult = 0.5;
-   T change;
-   typedef typename zeta_series_cache_size<T,Policy>::type cache_size;
-   T powers[cache_size::value] = { 0, };
-   unsigned n = 0;
-   do{
-      T binom = -static_cast<T>(n);
-      T nested_sum = 1;
-      if(n < sizeof(powers) / sizeof(powers[0]))
-         powers[n] = pow(static_cast<T>(n + 1), -s);
-      for(unsigned k = 1; k <= n; ++k)
-      {
-         T p;
-         if(k < sizeof(powers) / sizeof(powers[0]))
-         {
-            p = powers[k];
-            //p = pow(k + 1, -s);
-         }
-         else
-            p = pow(static_cast<T>(k + 1), -s);
-         nested_sum += binom * p;
-        binom *= (k - static_cast<T>(n)) / (k + 1);
-      }
-      change = mult * nested_sum;
-      sum += change;
-      mult /= 2;
-      ++n;
-   }while(fabs(change / sum) > tools::epsilon<T>());
-
-   return sum * 1 / -boost::math::powm1(T(2), sc);
-}
-
-//
-// Classical p-series:
-//
-template <class T>
-struct zeta_series2
-{
-   typedef T result_type;
-   zeta_series2(T _s) : s(-_s), k(1){}
-   T operator()()
-   {
-      BOOST_MATH_STD_USING
-      return pow(static_cast<T>(k++), s);
-   }
-private:
-   T s;
-   unsigned k;
-};
-
-template <class T, class Policy>
-inline T zeta_series2_imp(T s, const Policy& pol)
-{
-   boost::uintmax_t max_iter = policies::get_max_series_iterations<Policy>();;
-   zeta_series2<T> f(s);
-   T result = tools::sum_series(
-      f, 
-      policies::get_epsilon<T, Policy>(),
-      max_iter);
-   policies::check_series_iterations<T>("boost::math::zeta_series2<%1%>(%1%)", max_iter, pol);
-   return result;
-}
-#endif
-
-template <class T, class Policy>
-T zeta_polynomial_series(T s, T sc, Policy const &)
-{
-   //
-   // This is algorithm 3 from:
-   // 
-   // "An Efficient Algorithm for the Riemann Zeta Function", P. Borwein, 
-   // Canadian Mathematical Society, Conference Proceedings.
-   // See: http://www.cecm.sfu.ca/personal/pborwein/PAPERS/P155.pdf
-   //
-   BOOST_MATH_STD_USING
-   int n = itrunc(T(log(boost::math::tools::epsilon<T>()) / -2));
-   T sum = 0;
-   T two_n = ldexp(T(1), n);
-   int ej_sign = 1;
-   for(int j = 0; j < n; ++j)
-   {
-      sum += ej_sign * -two_n / pow(T(j + 1), s);
-      ej_sign = -ej_sign; 
-   }
-   T ej_sum = 1;
-   T ej_term = 1;
-   for(int j = n; j <= 2 * n - 1; ++j)
-   {
-      sum += ej_sign * (ej_sum - two_n) / pow(T(j + 1), s);
-      ej_sign = -ej_sign;
-      ej_term *= 2 * n - j;
-      ej_term /= j - n + 1;
-      ej_sum += ej_term;
-   }
-   return -sum / (two_n * (-powm1(T(2), sc)));
-}
-
-template <class T, class Policy>
-T zeta_imp_prec(T s, T sc, const Policy& pol, const mpl::int_<0>&)
-{
-   BOOST_MATH_STD_USING
-   T result;
-   result = zeta_polynomial_series(s, sc, pol); 
-#if 0
-   // Old code archived for future reference:
-
-   //
-   // Only use power series if it will converge in 100 
-   // iterations or less: the more iterations it consumes
-   // the slower convergence becomes so we have to be very 
-   // careful in it's usage.
-   //
-   if (s > -log(tools::epsilon<T>()) / 4.5)
-      result = detail::zeta_series2_imp(s, pol);
-   else
-      result = detail::zeta_series_imp(s, sc, pol);
-#endif
-   return result;
-}
-
-template <class T, class Policy>
-inline T zeta_imp_prec(T s, T sc, const Policy&, const mpl::int_<53>&)
-{
-   BOOST_MATH_STD_USING
-   T result;
-   if(s < 1)
-   {
-      // Rational Approximation
-      // Maximum Deviation Found:                     2.020e-18
-      // Expected Error Term:                         -2.020e-18
-      // Max error found at double precision:         3.994987e-17
-      static const T P[6] = {    
-         0.24339294433593750202L,
-         -0.49092470516353571651L,
-         0.0557616214776046784287L,
-         -0.00320912498879085894856L,
-         0.000451534528645796438704L,
-         -0.933241270357061460782e-5L,
-        };
-      static const T Q[6] = {    
-         1L,
-         -0.279960334310344432495L,
-         0.0419676223309986037706L,
-         -0.00413421406552171059003L,
-         0.00024978985622317935355L,
-         -0.101855788418564031874e-4L,
-      };
-      result = tools::evaluate_polynomial(P, sc) / tools::evaluate_polynomial(Q, sc);
-      result -= 1.2433929443359375F;
-      result += (sc);
-      result /= (sc);
-   }
-   else if(s <= 2)
-   {
-      // Maximum Deviation Found:        9.007e-20
-      // Expected Error Term:            9.007e-20
-      static const T P[6] = {    
-         0.577215664901532860516,
-         0.243210646940107164097,
-         0.0417364673988216497593,
-         0.00390252087072843288378,
-         0.000249606367151877175456,
-         0.110108440976732897969e-4,
-      };
-      static const T Q[6] = {    
-         1,
-         0.295201277126631761737,
-         0.043460910607305495864,
-         0.00434930582085826330659,
-         0.000255784226140488490982,
-         0.10991819782396112081e-4,
-      };
-      result = tools::evaluate_polynomial(P, T(-sc)) / tools::evaluate_polynomial(Q, T(-sc));
-      result += 1 / (-sc);
-   }
-   else if(s <= 4)
-   {
-      // Maximum Deviation Found:          5.946e-22
-      // Expected Error Term:              -5.946e-22
-      static const float Y = 0.6986598968505859375;
-      static const T P[6] = {    
-         -0.0537258300023595030676,
-         0.0445163473292365591906,
-         0.0128677673534519952905,
-         0.00097541770457391752726,
-         0.769875101573654070925e-4,
-         0.328032510000383084155e-5,
-      };
-      static const T Q[7] = {    
-         1,
-         0.33383194553034051422,
-         0.0487798431291407621462,
-         0.00479039708573558490716,
-         0.000270776703956336357707,
-         0.106951867532057341359e-4,
-         0.236276623974978646399e-7,
-      };
-      result = tools::evaluate_polynomial(P, T(s - 2)) / tools::evaluate_polynomial(Q, T(s - 2));
-      result += Y + 1 / (-sc);
-   }
-   else if(s <= 7)
-   {
-      // Maximum Deviation Found:                     2.955e-17
-      // Expected Error Term:                         2.955e-17
-      // Max error found at double precision:         2.009135e-16
-
-      static const T P[6] = {    
-         -2.49710190602259410021,
-         -2.60013301809475665334,
-         -0.939260435377109939261,
-         -0.138448617995741530935,
-         -0.00701721240549802377623,
-         -0.229257310594893932383e-4,
-      };
-      static const T Q[9] = {    
-         1,
-         0.706039025937745133628,
-         0.15739599649558626358,
-         0.0106117950976845084417,
-         -0.36910273311764618902e-4,
-         0.493409563927590008943e-5,
-         -0.234055487025287216506e-6,
-         0.718833729365459760664e-8,
-         -0.1129200113474947419e-9,
-      };
-      result = tools::evaluate_polynomial(P, T(s - 4)) / tools::evaluate_polynomial(Q, T(s - 4));
-      result = 1 + exp(result);
-   }
-   else if(s < 15)
-   {
-      // Maximum Deviation Found:                     7.117e-16
-      // Expected Error Term:                         7.117e-16
-      // Max error found at double precision:         9.387771e-16
-      static const T P[7] = {    
-         -4.78558028495135619286,
-         -1.89197364881972536382,
-         -0.211407134874412820099,
-         -0.000189204758260076688518,
-         0.00115140923889178742086,
-         0.639949204213164496988e-4,
-         0.139348932445324888343e-5,
-        };
-      static const T Q[9] = {    
-         1,
-         0.244345337378188557777,
-         0.00873370754492288653669,
-         -0.00117592765334434471562,
-         -0.743743682899933180415e-4,
-         -0.21750464515767984778e-5,
-         0.471001264003076486547e-8,
-         -0.833378440625385520576e-10,
-         0.699841545204845636531e-12,
-        };
-      result = tools::evaluate_polynomial(P, T(s - 7)) / tools::evaluate_polynomial(Q, T(s - 7));
-      result = 1 + exp(result);
-   }
-   else if(s < 36)
-   {
-      // Max error in interpolated form:             1.668e-17
-      // Max error found at long double precision:   1.669714e-17
-      static const T P[8] = {    
-         -10.3948950573308896825,
-         -2.85827219671106697179,
-         -0.347728266539245787271,
-         -0.0251156064655346341766,
-         -0.00119459173416968685689,
-         -0.382529323507967522614e-4,
-         -0.785523633796723466968e-6,
-         -0.821465709095465524192e-8,
-      };
-      static const T Q[10] = {    
-         1,
-         0.208196333572671890965,
-         0.0195687657317205033485,
-         0.00111079638102485921877,
-         0.408507746266039256231e-4,
-         0.955561123065693483991e-6,
-         0.118507153474022900583e-7,
-         0.222609483627352615142e-14,
-      };
-      result = tools::evaluate_polynomial(P, T(s - 15)) / tools::evaluate_polynomial(Q, T(s - 15));
-      result = 1 + exp(result);
-   }
-   else if(s < 56)
-   {
-      result = 1 + pow(T(2), -s);
-   }
-   else
-   {
-      result = 1;
-   }
-   return result;
-}
-
-template <class T, class Policy>
-T zeta_imp_prec(T s, T sc, const Policy&, const mpl::int_<64>&)
-{
-   BOOST_MATH_STD_USING
-   T result;
-   if(s < 1)
-   {
-      // Rational Approximation
-      // Maximum Deviation Found:                     3.099e-20
-      // Expected Error Term:                         3.099e-20
-      // Max error found at long double precision:    5.890498e-20
-      static const T P[6] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.243392944335937499969),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.496837806864865688082),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.0680008039723709987107),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.00511620413006619942112),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.000455369899250053003335),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.279496685273033761927e-4),
-        };
-      static const T Q[7] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 64, 1),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.30425480068225790522),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.050052748580371598736),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.00519355671064700627862),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.000360623385771198350257),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.159600883054550987633e-4),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.339770279812410586032e-6),
-      };
-      result = tools::evaluate_polynomial(P, sc) / tools::evaluate_polynomial(Q, sc);
-      result -= 1.2433929443359375F;
-      result += (sc);
-      result /= (sc);
-   }
-   else if(s <= 2)
-   {
-      // Maximum Deviation Found:                     1.059e-21
-      // Expected Error Term:                         1.059e-21
-      // Max error found at long double precision:    1.626303e-19
-
-      static const T P[6] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.577215664901532860605),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.222537368917162139445),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.0356286324033215682729),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.00304465292366350081446),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.000178102511649069421904),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.700867470265983665042e-5),
-      };
-      static const T Q[7] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 64, 1),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.259385759149531030085),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.0373974962106091316854),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.00332735159183332820617),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.000188690420706998606469),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.635994377921861930071e-5),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.226583954978371199405e-7),
-      };
-      result = tools::evaluate_polynomial(P, T(-sc)) / tools::evaluate_polynomial(Q, T(-sc));
-      result += 1 / (-sc);
-   }
-   else if(s <= 4)
-   {
-      // Maximum Deviation Found:          5.946e-22
-      // Expected Error Term:              -5.946e-22
-      static const float Y = 0.6986598968505859375;
-      static const T P[7] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.053725830002359501027),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.0470551187571475844778),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.0101339410415759517471),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.00100240326666092854528),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.685027119098122814867e-4),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.390972820219765942117e-5),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.540319769113543934483e-7),
-      };
-      static const T Q[8] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 64, 1.0),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.286577739726542730421),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.0447355811517733225843),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.00430125107610252363302),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.000284956969089786662045),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.116188101609848411329e-4),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.278090318191657278204e-6),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.19683620233222028478e-8),
-      };
-      result = tools::evaluate_polynomial(P, T(s - 2)) / tools::evaluate_polynomial(Q, T(s - 2));
-      result += Y + 1 / (-sc);
-   }
-   else if(s <= 7)
-   {
-      // Max error found at long double precision: 8.132216e-19
-      static const T P[8] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 64, -2.49710190602259407065),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -3.36664913245960625334),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -1.77180020623777595452),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.464717885249654313933),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.0643694921293579472583),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.00464265386202805715487),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.000165556579779704340166),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.252884970740994069582e-5),
-      };
-      static const T Q[9] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 64, 1.0),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 1.01300131390690459085),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.387898115758643503827),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.0695071490045701135188),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.00586908595251442839291),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.000217752974064612188616),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.397626583349419011731e-5),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.927884739284359700764e-8),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.119810501805618894381e-9),
-      };
-      result = tools::evaluate_polynomial(P, T(s - 4)) / tools::evaluate_polynomial(Q, T(s - 4));
-      result = 1 + exp(result);
-   }
-   else if(s < 15)
-   {
-      // Max error in interpolated form:              1.133e-18
-      // Max error found at long double precision:    2.183198e-18
-      static const T P[9] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 64, -4.78558028495135548083),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -3.23873322238609358947),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.892338582881021799922),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.131326296217965913809),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.0115651591773783712996),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.000657728968362695775205),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.252051328129449973047e-4),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.626503445372641798925e-6),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.815696314790853893484e-8),
-        };
-      static const T Q[9] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 64, 1.0),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.525765665400123515036),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.10852641753657122787),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.0115669945375362045249),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.000732896513858274091966),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.30683952282420248448e-4),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.819649214609633126119e-6),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.117957556472335968146e-7),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.193432300973017671137e-12),
-        };
-      result = tools::evaluate_polynomial(P, T(s - 7)) / tools::evaluate_polynomial(Q, T(s - 7));
-      result = 1 + exp(result);
-   }
-   else if(s < 42)
-   {
-      // Max error in interpolated form:             1.668e-17
-      // Max error found at long double precision:   1.669714e-17
-      static const T P[9] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 64, -10.3948950573308861781),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -2.82646012777913950108),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.342144362739570333665),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.0249285145498722647472),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.00122493108848097114118),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.423055371192592850196e-4),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.1025215577185967488e-5),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.165096762663509467061e-7),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.145392555873022044329e-9),
-      };
-      static const T Q[10] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 64, 1.0),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.205135978585281988052),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.0192359357875879453602),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.00111496452029715514119),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.434928449016693986857e-4),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.116911068726610725891e-5),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.206704342290235237475e-7),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.209772836100827647474e-9),
-         BOOST_MATH_BIG_CONSTANT(T, 64, -0.939798249922234703384e-16),
-         BOOST_MATH_BIG_CONSTANT(T, 64, 0.264584017421245080294e-18),
-      };
-      result = tools::evaluate_polynomial(P, T(s - 15)) / tools::evaluate_polynomial(Q, T(s - 15));
-      result = 1 + exp(result);
-   }
-   else if(s < 63)
-   {
-      result = 1 + pow(T(2), -s);
-   }
-   else
-   {
-      result = 1;
-   }
-   return result;
-}
-
-template <class T, class Policy>
-T zeta_imp_prec(T s, T sc, const Policy&, const mpl::int_<113>&)
-{
-   BOOST_MATH_STD_USING
-   T result;
-   if(s < 1)
-   {
-      // Rational Approximation
-      // Maximum Deviation Found:                     9.493e-37
-      // Expected Error Term:                         9.492e-37
-      // Max error found at long double precision:    7.281332e-31
-
-      static const T P[10] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 113, -1),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.0353008629988648122808504280990313668),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.0107795651204927743049369868548706909),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.000523961870530500751114866884685172975),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.661805838304910731947595897966487515e-4),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.658932670403818558510656304189164638e-5),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.103437265642266106533814021041010453e-6),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.116818787212666457105375746642927737e-7),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.660690993901506912123512551294239036e-9),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.113103113698388531428914333768142527e-10),
-        };
-      static const T Q[11] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 113, 1),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.387483472099602327112637481818565459),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.0802265315091063135271497708694776875),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.0110727276164171919280036408995078164),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.00112552716946286252000434849173787243),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.874554160748626916455655180296834352e-4),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.530097847491828379568636739662278322e-5),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.248461553590496154705565904497247452e-6),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.881834921354014787309644951507523899e-8),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.217062446168217797598596496310953025e-9),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.315823200002384492377987848307151168e-11),
-      };
-      result = tools::evaluate_polynomial(P, sc) / tools::evaluate_polynomial(Q, sc);
-      result += (sc);
-      result /= (sc);
-   }
-   else if(s <= 2)
-   {
-      // Maximum Deviation Found:                     1.616e-37
-      // Expected Error Term:                         -1.615e-37
-
-      static const T P[10] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.577215664901532860606512090082402431),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.255597968739771510415479842335906308),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.0494056503552807274142218876983542205),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.00551372778611700965268920983472292325),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.00043667616723970574871427830895192731),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.268562259154821957743669387915239528e-4),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.109249633923016310141743084480436612e-5),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.273895554345300227466534378753023924e-7),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.583103205551702720149237384027795038e-9),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.835774625259919268768735944711219256e-11),
-      };
-      static const T Q[11] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 113, 1),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.316661751179735502065583176348292881),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.0540401806533507064453851182728635272),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.00598621274107420237785899476374043797),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.000474907812321704156213038740142079615),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.272125421722314389581695715835862418e-4),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.112649552156479800925522445229212933e-5),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.301838975502992622733000078063330461e-7),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.422960728687211282539769943184270106e-9),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.377105263588822468076813329270698909e-11),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.581926559304525152432462127383600681e-13),
-      };
-      result = tools::evaluate_polynomial(P, T(-sc)) / tools::evaluate_polynomial(Q, T(-sc));
-      result += 1 / (-sc);
-   }
-   else if(s <= 4)
-   {
-      // Maximum Deviation Found:                     1.891e-36
-      // Expected Error Term:                         -1.891e-36
-      // Max error found: 2.171527e-35
-
-      static const float Y = 0.6986598968505859375;
-      static const T P[11] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.0537258300023595010275848333539748089),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.0429086930802630159457448174466342553),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.0136148228754303412510213395034056857),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.00190231601036042925183751238033763915),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.000186880390916311438818302549192456581),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.145347370745893262394287982691323657e-4),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.805843276446813106414036600485884885e-6),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.340818159286739137503297172091882574e-7),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.115762357488748996526167305116837246e-8),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.231904754577648077579913403645767214e-10),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.340169592866058506675897646629036044e-12),
-      };
-      static const T Q[12] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 113, 1),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.363755247765087100018556983050520554),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.0696581979014242539385695131258321598),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.00882208914484611029571547753782014817),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.000815405623261946661762236085660996718),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.571366167062457197282642344940445452e-4),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.309278269271853502353954062051797838e-5),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.12822982083479010834070516053794262e-6),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.397876357325018976733953479182110033e-8),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.8484432107648683277598472295289279e-10),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.105677416606909614301995218444080615e-11),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.547223964564003701979951154093005354e-15),
-      };
-      result = tools::evaluate_polynomial(P, T(s - 2)) / tools::evaluate_polynomial(Q, T(s - 2));
-      result += Y + 1 / (-sc);
-   }
-   else if(s <= 6)
-   {
-      // Max error in interpolated form:             1.510e-37
-      // Max error found at long double precision:   2.769266e-34
-
-      static const T Y = 3.28348541259765625F;
-
-      static const T P[13] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.786383506575062179339611614117697622),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.495766593395271370974685959652073976),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.409116737851754766422360889037532228),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.57340744006238263817895456842655987),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.280479899797421910694892949057963111),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.0753148409447590257157585696212649869),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.0122934003684672788499099362823748632),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.00126148398446193639247961370266962927),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.828465038179772939844657040917364896e-4),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.361008916706050977143208468690645684e-5),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.109879825497910544424797771195928112e-6),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.214539416789686920918063075528797059e-8),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.15090220092460596872172844424267351e-10),
-      };
-      static const T Q[14] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 113, 1),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 1.69490865837142338462982225731926485),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 1.22697696630994080733321401255942464),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.495409420862526540074366618006341533),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.122368084916843823462872905024259633),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.0191412993625268971656513890888208623),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.00191401538628980617753082598351559642),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.000123318142456272424148930280876444459),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.531945488232526067889835342277595709e-5),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.161843184071894368337068779669116236e-6),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.305796079600152506743828859577462778e-8),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.233582592298450202680170811044408894e-10),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.275363878344548055574209713637734269e-13),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.221564186807357535475441900517843892e-15),
-      };
-      result = tools::evaluate_polynomial(P, T(s - 4)) / tools::evaluate_polynomial(Q, T(s - 4));
-      result -= Y;
-      result = 1 + exp(result);
-   }
-   else if(s < 10)
-   {
-      // Max error in interpolated form:             1.999e-34
-      // Max error found at long double precision:   2.156186e-33
-
-      static const T P[13] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 113, -4.0545627381873738086704293881227365),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -4.70088348734699134347906176097717782),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -2.36921550900925512951976617607678789),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.684322583796369508367726293719322866),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.126026534540165129870721937592996324),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.015636903921778316147260572008619549),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.00135442294754728549644376325814460807),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.842793965853572134365031384646117061e-4),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.385602133791111663372015460784978351e-5),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.130458500394692067189883214401478539e-6),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.315861074947230418778143153383660035e-8),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.500334720512030826996373077844707164e-10),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.420204769185233365849253969097184005e-12),
-        };
-      static const T Q[14] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 113, 1),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.97663511666410096104783358493318814),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.40878780231201806504987368939673249),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.0963890666609396058945084107597727252),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.0142207619090854604824116070866614505),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.00139010220902667918476773423995750877),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.940669540194694997889636696089994734e-4),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.458220848507517004399292480807026602e-5),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.16345521617741789012782420625435495e-6),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.414007452533083304371566316901024114e-8),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.68701473543366328016953742622661377e-10),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.603461891080716585087883971886075863e-12),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.294670713571839023181857795866134957e-16),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.147003914536437243143096875069813451e-18),
-        };
-      result = tools::evaluate_polynomial(P, T(s - 6)) / tools::evaluate_polynomial(Q, T(s - 6));
-      result = 1 + exp(result);
-   }
-   else if(s < 17)
-   {
-      // Max error in interpolated form:             1.641e-32
-      // Max error found at long double precision:   1.696121e-32
-      static const T P[13] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 113, -6.91319491921722925920883787894829678),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -3.65491257639481960248690596951049048),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.813557553449954526442644544105257881),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.0994317301685870959473658713841138083),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.00726896610245676520248617014211734906),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.000317253318715075854811266230916762929),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.66851422826636750855184211580127133e-5),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.879464154730985406003332577806849971e-7),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.113838903158254250631678791998294628e-7),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.379184410304927316385211327537817583e-9),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.612992858643904887150527613446403867e-11),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.347873737198164757035457841688594788e-13),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.289187187441625868404494665572279364e-15),
-        };
-      static const T Q[14] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 113, 1),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.427310044448071818775721584949868806),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.074602514873055756201435421385243062),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.00688651562174480772901425121653945942),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.000360174847635115036351323894321880445),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.973556847713307543918865405758248777e-5),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.853455848314516117964634714780874197e-8),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.118203513654855112421673192194622826e-7),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.462521662511754117095006543363328159e-9),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.834212591919475633107355719369463143e-11),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.5354594751002702935740220218582929e-13),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.406451690742991192964889603000756203e-15),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.887948682401000153828241615760146728e-19),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.34980761098820347103967203948619072e-21),
-        };
-      result = tools::evaluate_polynomial(P, T(s - 10)) / tools::evaluate_polynomial(Q, T(s - 10));
-      result = 1 + exp(result);
-   }
-   else if(s < 30)
-   {
-      // Max error in interpolated form:             1.563e-31
-      // Max error found at long double precision:   1.562725e-31
-
-      static const T P[13] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 113, -11.7824798233959252791987402769438322),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -4.36131215284987731928174218354118102),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.732260980060982349410898496846972204),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.0744985185694913074484248803015717388),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.00517228281320594683022294996292250527),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.000260897206152101522569969046299309939),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.989553462123121764865178453128769948e-5),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.286916799741891410827712096608826167e-6),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.637262477796046963617949532211619729e-8),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.106796831465628373325491288787760494e-9),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.129343095511091870860498356205376823e-11),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.102397936697965977221267881716672084e-13),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.402663128248642002351627980255756363e-16),
-      };
-      static const T Q[14] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 113, 1),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.311288325355705609096155335186466508),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.0438318468940415543546769437752132748),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.00374396349183199548610264222242269536),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.000218707451200585197339671707189281302),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.927578767487930747532953583797351219e-5),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.294145760625753561951137473484889639e-6),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.704618586690874460082739479535985395e-8),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.126333332872897336219649130062221257e-9),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.16317315713773503718315435769352765e-11),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.137846712823719515148344938160275695e-13),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.580975420554224366450994232723910583e-16),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.291354445847552426900293580511392459e-22),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.73614324724785855925025452085443636e-25),
-      };
-      result = tools::evaluate_polynomial(P, T(s - 17)) / tools::evaluate_polynomial(Q, T(s - 17));
-      result = 1 + exp(result);
-   }
-   else if(s < 74)
-   {
-      // Max error in interpolated form:             2.311e-27
-      // Max error found at long double precision:   2.297544e-27
-      static const T P[14] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 113, -20.7944102007844314586649688802236072),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -4.95759941987499442499908748130192187),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.563290752832461751889194629200298688),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.0406197001137935911912457120706122877),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.0020846534789473022216888863613422293),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.808095978462109173749395599401375667e-4),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.244706022206249301640890603610060959e-5),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.589477682919645930544382616501666572e-7),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.113699573675553496343617442433027672e-8),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.174767860183598149649901223128011828e-10),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.210051620306761367764549971980026474e-12),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.189187969537370950337212675466400599e-14),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.116313253429564048145641663778121898e-16),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.376708747782400769427057630528578187e-19),
-      };
-      static const T Q[16] = {    
-         BOOST_MATH_BIG_CONSTANT(T, 113, 1),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.205076752981410805177554569784219717),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.0202526722696670378999575738524540269),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.001278305290005994980069466658219057),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.576404779858501791742255670403304787e-4),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.196477049872253010859712483984252067e-5),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.521863830500876189501054079974475762e-7),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.109524209196868135198775445228552059e-8),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.181698713448644481083966260949267825e-10),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.234793316975091282090312036524695562e-12),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.227490441461460571047545264251399048e-14),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.151500292036937400913870642638520668e-16),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.543475775154780935815530649335936121e-19),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.241647013434111434636554455083309352e-28),
-         BOOST_MATH_BIG_CONSTANT(T, 113, -0.557103423021951053707162364713587374e-31),
-         BOOST_MATH_BIG_CONSTANT(T, 113, 0.618708773442584843384712258199645166e-34),
-      };
-      result = tools::evaluate_polynomial(P, T(s - 30)) / tools::evaluate_polynomial(Q, T(s - 30));
-      result = 1 + exp(result);
-   }
-   else if(s < 117)
-   {
-      result = 1 + pow(T(2), -s);
-   }
-   else
-   {
-      result = 1;
-   }
-   return result;
-}
-
-template <class T, class Policy, class Tag>
-T zeta_imp(T s, T sc, const Policy& pol, const Tag& tag)
-{
-   BOOST_MATH_STD_USING
-   if(sc == 0)
-      return policies::raise_pole_error<T>(
-         "boost::math::zeta<%1%>", 
-         "Evaluation of zeta function at pole %1%", 
-         s, pol);
-   T result;
-   if(fabs(s) < tools::root_epsilon<T>())
-   {
-      result = -0.5f - constants::log_root_two_pi<T, Policy>() * s;
-   }
-   else if(s < 0)
-   {
-      std::swap(s, sc);
-      if(floor(sc/2) == sc/2)
-         result = 0;
-      else
-      {
-         result = boost::math::sin_pi(0.5f * sc, pol)
-            * 2 * pow(2 * constants::pi<T>(), -s) 
-            * boost::math::tgamma(s, pol) 
-            * zeta_imp(s, sc, pol, tag);
-      }
-   }
-   else
-   {
-      result = zeta_imp_prec(s, sc, pol, tag);
-   }
-   return result;
-}
-
-template <class T, class Policy, class tag>
-struct zeta_initializer
-{
-   struct init
-   {
-      init()
-      {
-         do_init(tag());
-      }
-      static void do_init(const mpl::int_<0>&){}
-      static void do_init(const mpl::int_<53>&){}
-      static void do_init(const mpl::int_<64>&)
-      {
-         boost::math::zeta(static_cast<T>(0.5), Policy());
-         boost::math::zeta(static_cast<T>(1.5), Policy());
-         boost::math::zeta(static_cast<T>(3.5), Policy());
-         boost::math::zeta(static_cast<T>(6.5), Policy());
-         boost::math::zeta(static_cast<T>(14.5), Policy());
-         boost::math::zeta(static_cast<T>(40.5), Policy());
-      }
-      static void do_init(const mpl::int_<113>&)
-      {
-         boost::math::zeta(static_cast<T>(0.5), Policy());
-         boost::math::zeta(static_cast<T>(1.5), Policy());
-         boost::math::zeta(static_cast<T>(3.5), Policy());
-         boost::math::zeta(static_cast<T>(5.5), Policy());
-         boost::math::zeta(static_cast<T>(9.5), Policy());
-         boost::math::zeta(static_cast<T>(16.5), Policy());
-         boost::math::zeta(static_cast<T>(25), Policy());
-         boost::math::zeta(static_cast<T>(70), Policy());
-      }
-      void force_instantiate()const{}
-   };
-   static const init initializer;
-   static void force_instantiate()
-   {
-      initializer.force_instantiate();
-   }
-};
-
-template <class T, class Policy, class tag>
-const typename zeta_initializer<T, Policy, tag>::init zeta_initializer<T, Policy, tag>::initializer;
-
-} // detail
-
-template <class T, class Policy>
-inline typename tools::promote_args<T>::type zeta(T s, const Policy&)
-{
-   typedef typename tools::promote_args<T>::type result_type;
-   typedef typename policies::evaluation<result_type, Policy>::type value_type;
-   typedef typename policies::precision<result_type, Policy>::type precision_type;
-   typedef typename policies::normalise<
-      Policy, 
-      policies::promote_float<false>, 
-      policies::promote_double<false>, 
-      policies::discrete_quantile<>,
-      policies::assert_undefined<> >::type forwarding_policy;
-   typedef typename mpl::if_<
-      mpl::less_equal<precision_type, mpl::int_<0> >,
-      mpl::int_<0>,
-      typename mpl::if_<
-         mpl::less_equal<precision_type, mpl::int_<53> >,
-         mpl::int_<53>,  // double
-         typename mpl::if_<
-            mpl::less_equal<precision_type, mpl::int_<64> >,
-            mpl::int_<64>, // 80-bit long double
-            typename mpl::if_<
-               mpl::less_equal<precision_type, mpl::int_<113> >,
-               mpl::int_<113>, // 128-bit long double
-               mpl::int_<0> // too many bits, use generic version.
-            >::type
-         >::type
-      >::type
-   >::type tag_type;
-   //typedef mpl::int_<0> tag_type;
-
-   detail::zeta_initializer<value_type, forwarding_policy, tag_type>::force_instantiate();
-
-   return policies::checked_narrowing_cast<result_type, forwarding_policy>(detail::zeta_imp(
-      static_cast<value_type>(s),
-      static_cast<value_type>(1 - static_cast<value_type>(s)),
-      forwarding_policy(),
-      tag_type()), "boost::math::zeta<%1%>(%1%)");
-}
-
-template <class T>
-inline typename tools::promote_args<T>::type zeta(T s)
-{
-   return zeta(s, policies::policy<>());
-}
-
-}} // namespaces
-
-#endif // BOOST_MATH_ZETA_HPP
-
-
-
diff --git a/boost/math/tools/big_constant.hpp b/boost/math/tools/big_constant.hpp
deleted file mode 100644
index c5654b1..0000000
--- a/boost/math/tools/big_constant.hpp
+++ /dev/null
@@ -1,67 +0,0 @@
-
-//  Copyright (c) 2011 John Maddock
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_TOOLS_BIG_CONSTANT_HPP
-#define BOOST_MATH_TOOLS_BIG_CONSTANT_HPP
-
-#include <boost/math/tools/config.hpp>
-#ifndef BOOST_MATH_NO_LEXICAL_CAST
-#include <boost/lexical_cast.hpp>
-#endif
-#include <boost/type_traits/is_convertible.hpp>
-
-namespace boost{ namespace math{ 
-
-namespace tools{
-
-template <class T>
-inline BOOST_CONSTEXPR_OR_CONST T make_big_value(long double v, const char*, mpl::true_ const&, mpl::false_ const&)
-{
-   return static_cast<T>(v);
-}
-template <class T>
-inline BOOST_CONSTEXPR_OR_CONST T make_big_value(long double v, const char*, mpl::true_ const&, mpl::true_ const&)
-{
-   return static_cast<T>(v);
-}
-#ifndef BOOST_MATH_NO_LEXICAL_CAST
-template <class T>
-inline T make_big_value(long double, const char* s, mpl::false_ const&, mpl::false_ const&)
-{
-   return boost::lexical_cast<T>(s);
-}
-#endif
-template <class T>
-inline BOOST_CONSTEXPR const char* make_big_value(long double, const char* s, mpl::false_ const&, mpl::true_ const&)
-{
-   return s;
-}
-
-//
-// For constants which might fit in a long double (if it's big enough):
-//
-#define BOOST_MATH_BIG_CONSTANT(T, D, x)\
-   boost::math::tools::make_big_value<T>(\
-      BOOST_JOIN(x, L), \
-      BOOST_STRINGIZE(x), \
-      mpl::bool_< (is_convertible<long double, T>::value) && \
-         ((D <= std::numeric_limits<long double>::digits) \
-          || is_floating_point<T>::value \
-          || (std::numeric_limits<T>::is_specialized && \
-             (std::numeric_limits<T>::digits10 <= std::numeric_limits<long double>::digits10))) >(), \
-      boost::is_convertible<const char*, T>())
-//
-// For constants too huge for any conceivable long double (and which generate compiler errors if we try and declare them as such):
-//
-#define BOOST_MATH_HUGE_CONSTANT(T, D, x)\
-   boost::math::tools::make_big_value<T>(0.0L, BOOST_STRINGIZE(x), \
-   mpl::bool_<is_floating_point<T>::value || (std::numeric_limits<T>::is_specialized && std::numeric_limits<T>::max_exponent <= std::numeric_limits<long double>::max_exponent && std::numeric_limits<T>::digits <= std::numeric_limits<long double>::digits)>(), \
-   boost::is_convertible<const char*, T>())
-
-}}} // namespaces
-
-#endif
-
diff --git a/boost/math/tools/config.hpp b/boost/math/tools/config.hpp
deleted file mode 100644
index 6dfb629..0000000
--- a/boost/math/tools/config.hpp
+++ /dev/null
@@ -1,352 +0,0 @@
-//  Copyright (c) 2006-7 John Maddock
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_TOOLS_CONFIG_HPP
-#define BOOST_MATH_TOOLS_CONFIG_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/config.hpp>
-#include <boost/cstdint.hpp> // for boost::uintmax_t
-#include <boost/detail/workaround.hpp>
-#include <algorithm>  // for min and max
-#include <boost/config/no_tr1/cmath.hpp>
-#include <climits>
-#include <cfloat>
-#if (defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__))
-#  include <math.h>
-#endif
-
-#include <boost/math/tools/user.hpp>
-
-#if (defined(__CYGWIN__) || defined(__FreeBSD__) || defined(__NetBSD__) \
-   || (defined(__hppa) && !defined(__OpenBSD__)) || (defined(__NO_LONG_DOUBLE_MATH) && (DBL_MANT_DIG != LDBL_MANT_DIG))) \
-   && !defined(BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS)
-#  define BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
-#endif
-#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582))
-//
-// Borland post 5.8.2 uses Dinkumware's std C lib which
-// doesn't have true long double precision.  Earlier
-// versions are problematic too:
-//
-#  define BOOST_MATH_NO_REAL_CONCEPT_TESTS
-#  define BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
-#  define BOOST_MATH_CONTROL_FP _control87(MCW_EM,MCW_EM)
-#  include <float.h>
-#endif
-#ifdef __IBMCPP__
-//
-// For reasons I don't unserstand, the tests with IMB's compiler all
-// pass at long double precision, but fail with real_concept, those tests
-// are disabled for now.  (JM 2012).
-#  define BOOST_MATH_NO_REAL_CONCEPT_TESTS
-#endif
-#if (defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__)) && ((LDBL_MANT_DIG == 106) || (__LDBL_MANT_DIG__ == 106)) && !defined(BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS)
-//
-// Darwin's rather strange "double double" is rather hard to
-// support, it should be possible given enough effort though...
-//
-#  define BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
-#endif
-#if defined(unix) && defined(__INTEL_COMPILER) && (__INTEL_COMPILER <= 1000) && !defined(BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS)
-//
-// Intel compiler prior to version 10 has sporadic problems
-// calling the long double overloads of the std lib math functions:
-// calling ::powl is OK, but std::pow(long double, long double) 
-// may segfault depending upon the value of the arguments passed 
-// and the specific Linux distribution.
-//
-// We'll be conservative and disable long double support for this compiler.
-//
-// Comment out this #define and try building the tests to determine whether
-// your Intel compiler version has this issue or not.
-//
-#  define BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
-#endif
-#if defined(unix) && defined(__INTEL_COMPILER)
-//
-// Intel compiler has sporadic issues compiling std::fpclassify depending on
-// the exact OS version used.  Use our own code for this as we know it works
-// well on Intel processors:
-//
-#define BOOST_MATH_DISABLE_STD_FPCLASSIFY
-#endif
-
-#if defined(BOOST_MSVC) && !defined(_WIN32_WCE)
-   // Better safe than sorry, our tests don't support hardware exceptions:
-#  define BOOST_MATH_CONTROL_FP _control87(MCW_EM,MCW_EM)
-#endif
-
-#ifdef __IBMCPP__
-#  define BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS
-#endif
-
-#if (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901))
-#  define BOOST_MATH_USE_C99
-#endif
-
-#if (defined(__hpux) && !defined(__hppa))
-#  define BOOST_MATH_USE_C99
-#endif
-
-#if defined(__GNUC__) && defined(_GLIBCXX_USE_C99)
-#  define BOOST_MATH_USE_C99
-#endif
-
-#if defined(_LIBCPP_VERSION) && !defined(_MSC_VER)
-#  define BOOST_MATH_USE_C99
-#endif
-
-#if defined(__CYGWIN__) || defined(__HP_aCC) || defined(BOOST_INTEL) \
-  || defined(BOOST_NO_NATIVE_LONG_DOUBLE_FP_CLASSIFY) \
-  || (defined(__GNUC__) && !defined(BOOST_MATH_USE_C99))\
-  || defined(BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS)
-#  define BOOST_MATH_NO_NATIVE_LONG_DOUBLE_FP_CLASSIFY
-#endif
-
-#if defined(BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS) || BOOST_WORKAROUND(__SUNPRO_CC, <= 0x590)
-
-#  include "boost/type.hpp"
-#  include "boost/non_type.hpp"
-
-#  define BOOST_MATH_EXPLICIT_TEMPLATE_TYPE(t)         boost::type<t>* = 0
-#  define BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(t)    boost::type<t>*
-#  define BOOST_MATH_EXPLICIT_TEMPLATE_NON_TYPE(t, v)  boost::non_type<t, v>* = 0
-#  define BOOST_MATH_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)  boost::non_type<t, v>*
-
-#  define BOOST_MATH_APPEND_EXPLICIT_TEMPLATE_TYPE(t)         \
-             , BOOST_MATH_EXPLICIT_TEMPLATE_TYPE(t)
-#  define BOOST_MATH_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC(t)    \
-             , BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(t)
-#  define BOOST_MATH_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(t, v)  \
-             , BOOST_MATH_EXPLICIT_TEMPLATE_NON_TYPE(t, v)
-#  define BOOST_MATH_APPEND_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)  \
-             , BOOST_MATH_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)
-
-#else
-
-// no workaround needed: expand to nothing
-
-#  define BOOST_MATH_EXPLICIT_TEMPLATE_TYPE(t)
-#  define BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(t)
-#  define BOOST_MATH_EXPLICIT_TEMPLATE_NON_TYPE(t, v)
-#  define BOOST_MATH_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)
-
-#  define BOOST_MATH_APPEND_EXPLICIT_TEMPLATE_TYPE(t)
-#  define BOOST_MATH_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC(t)
-#  define BOOST_MATH_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(t, v)
-#  define BOOST_MATH_APPEND_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)
-
-
-#endif // defined BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
-
-#if (defined(__SUNPRO_CC) || defined(__hppa) || defined(__GNUC__)) && !defined(BOOST_MATH_SMALL_CONSTANT)
-// Sun's compiler emits a hard error if a constant underflows,
-// as does aCC on PA-RISC, while gcc issues a large number of warnings:
-#  define BOOST_MATH_SMALL_CONSTANT(x) 0
-#else
-#  define BOOST_MATH_SMALL_CONSTANT(x) x
-#endif
-
-
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1400)
-//
-// Define if constants too large for a float cause "bad"
-// values to be stored in the data, rather than infinity
-// or a suitably large value.
-//
-#  define BOOST_MATH_BUGGY_LARGE_FLOAT_CONSTANTS
-#endif
-//
-// Tune performance options for specific compilers:
-//
-#ifdef BOOST_MSVC
-#  define BOOST_MATH_POLY_METHOD 2
-#elif defined(BOOST_INTEL)
-#  define BOOST_MATH_POLY_METHOD 2
-#  define BOOST_MATH_RATIONAL_METHOD 2
-#elif defined(__GNUC__)
-#  define BOOST_MATH_POLY_METHOD 3
-#  define BOOST_MATH_RATIONAL_METHOD 3
-#  define BOOST_MATH_INT_TABLE_TYPE(RT, IT) RT
-#  define BOOST_MATH_INT_VALUE_SUFFIX(RV, SUF) RV##.0L
-#endif
-
-#if defined(BOOST_NO_LONG_LONG) && !defined(BOOST_MATH_INT_TABLE_TYPE)
-#  define BOOST_MATH_INT_TABLE_TYPE(RT, IT) RT
-#  define BOOST_MATH_INT_VALUE_SUFFIX(RV, SUF) RV##.0L
-#endif
-
-//
-// The maximum order of polynomial that will be evaluated 
-// via an unrolled specialisation:
-//
-#ifndef BOOST_MATH_MAX_POLY_ORDER
-#  define BOOST_MATH_MAX_POLY_ORDER 17
-#endif 
-//
-// Set the method used to evaluate polynomials and rationals:
-//
-#ifndef BOOST_MATH_POLY_METHOD
-#  define BOOST_MATH_POLY_METHOD 1
-#endif 
-#ifndef BOOST_MATH_RATIONAL_METHOD
-#  define BOOST_MATH_RATIONAL_METHOD 0
-#endif 
-//
-// decide whether to store constants as integers or reals:
-//
-#ifndef BOOST_MATH_INT_TABLE_TYPE
-#  define BOOST_MATH_INT_TABLE_TYPE(RT, IT) IT
-#endif
-#ifndef BOOST_MATH_INT_VALUE_SUFFIX
-#  define BOOST_MATH_INT_VALUE_SUFFIX(RV, SUF) RV##SUF
-#endif
-//
-// Test whether to support __float128:
-//
-#if defined(_GLIBCXX_USE_FLOAT128) && defined(BOOST_GCC) && !defined(__STRICT_ANSI__)
-//
-// Only enable this when the compiler really is GCC as clang and probably 
-// intel too don't support __float128 yet :-(
-//
-#  define BOOST_MATH_USE_FLOAT128
-#endif
-//
-// Check for WinCE with no iostream support:
-//
-#if defined(_WIN32_WCE) && !defined(__SGI_STL_PORT)
-#  define BOOST_MATH_NO_LEXICAL_CAST
-#endif
-
-//
-// Helper macro for controlling the FP behaviour:
-//
-#ifndef BOOST_MATH_CONTROL_FP
-#  define BOOST_MATH_CONTROL_FP
-#endif
-//
-// Helper macro for using statements:
-//
-#define BOOST_MATH_STD_USING_CORE \
-   using std::abs;\
-   using std::acos;\
-   using std::cos;\
-   using std::fmod;\
-   using std::modf;\
-   using std::tan;\
-   using std::asin;\
-   using std::cosh;\
-   using std::frexp;\
-   using std::pow;\
-   using std::tanh;\
-   using std::atan;\
-   using std::exp;\
-   using std::ldexp;\
-   using std::sin;\
-   using std::atan2;\
-   using std::fabs;\
-   using std::log;\
-   using std::sinh;\
-   using std::ceil;\
-   using std::floor;\
-   using std::log10;\
-   using std::sqrt;
-
-#define BOOST_MATH_STD_USING BOOST_MATH_STD_USING_CORE
-
-namespace boost{ namespace math{
-namespace tools
-{
-
-template <class T>
-inline T max BOOST_PREVENT_MACRO_SUBSTITUTION(T a, T b, T c)
-{
-   return (std::max)((std::max)(a, b), c);
-}
-
-template <class T>
-inline T max BOOST_PREVENT_MACRO_SUBSTITUTION(T a, T b, T c, T d)
-{
-   return (std::max)((std::max)(a, b), (std::max)(c, d));
-}
-
-} // namespace tools
-
-template <class T>
-void suppress_unused_variable_warning(const T&)
-{
-}
-
-}} // namespace boost namespace math
-
-#if ((defined(__linux__) && !defined(__UCLIBC__)) || defined(__QNX__) || defined(__IBMCPP__)) && !defined(BOOST_NO_FENV_H)
-
-   #include <boost/detail/fenv.hpp>
-
-#  ifdef FE_ALL_EXCEPT
-
-namespace boost{ namespace math{
-   namespace detail
-   {
-   struct fpu_guard
-   {
-      fpu_guard()
-      {
-         fegetexceptflag(&m_flags, FE_ALL_EXCEPT);
-         feclearexcept(FE_ALL_EXCEPT);
-      }
-      ~fpu_guard()
-      {
-         fesetexceptflag(&m_flags, FE_ALL_EXCEPT);
-      }
-   private:
-      fexcept_t m_flags;
-   };
-
-   } // namespace detail
-   }} // namespaces
-
-#    define BOOST_FPU_EXCEPTION_GUARD boost::math::detail::fpu_guard local_guard_object;
-#    define BOOST_MATH_INSTRUMENT_FPU do{ fexcept_t cpu_flags; fegetexceptflag(&cpu_flags, FE_ALL_EXCEPT); BOOST_MATH_INSTRUMENT_VARIABLE(cpu_flags); } while(0); 
-
-#  else
-
-#    define BOOST_FPU_EXCEPTION_GUARD
-#    define BOOST_MATH_INSTRUMENT_FPU
-
-#  endif
-
-#else // All other platforms.
-#  define BOOST_FPU_EXCEPTION_GUARD
-#  define BOOST_MATH_INSTRUMENT_FPU
-#endif
-
-#ifdef BOOST_MATH_INSTRUMENT
-
-#  include <iostream>
-#  include <iomanip>
-#  include <typeinfo>
-
-#  define BOOST_MATH_INSTRUMENT_CODE(x) \
-      std::cout << std::setprecision(35) << __FILE__ << ":" << __LINE__ << " " << x << std::endl;
-#  define BOOST_MATH_INSTRUMENT_VARIABLE(name) BOOST_MATH_INSTRUMENT_CODE(BOOST_STRINGIZE(name) << " = " << name)
-
-#else
-
-#  define BOOST_MATH_INSTRUMENT_CODE(x)
-#  define BOOST_MATH_INSTRUMENT_VARIABLE(name)
-
-#endif
-
-#endif // BOOST_MATH_TOOLS_CONFIG_HPP
-
-
-
-
-
diff --git a/boost/math/tools/detail/polynomial_horner1_10.hpp b/boost/math/tools/detail/polynomial_horner1_10.hpp
deleted file mode 100644
index b13d6a3..0000000
--- a/boost/math/tools/detail/polynomial_horner1_10.hpp
+++ /dev/null
@@ -1,84 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_10_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_10_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<5>*)
-{
-   return static_cast<V>((((a[4] * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<6>*)
-{
-   return static_cast<V>(((((a[5] * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<7>*)
-{
-   return static_cast<V>((((((a[6] * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<8>*)
-{
-   return static_cast<V>(((((((a[7] * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<9>*)
-{
-   return static_cast<V>((((((((a[8] * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<10>*)
-{
-   return static_cast<V>(((((((((a[9] * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner1_11.hpp b/boost/math/tools/detail/polynomial_horner1_11.hpp
deleted file mode 100644
index f0cf67e..0000000
--- a/boost/math/tools/detail/polynomial_horner1_11.hpp
+++ /dev/null
@@ -1,90 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_11_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_11_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<5>*)
-{
-   return static_cast<V>((((a[4] * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<6>*)
-{
-   return static_cast<V>(((((a[5] * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<7>*)
-{
-   return static_cast<V>((((((a[6] * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<8>*)
-{
-   return static_cast<V>(((((((a[7] * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<9>*)
-{
-   return static_cast<V>((((((((a[8] * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<10>*)
-{
-   return static_cast<V>(((((((((a[9] * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<11>*)
-{
-   return static_cast<V>((((((((((a[10] * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner1_12.hpp b/boost/math/tools/detail/polynomial_horner1_12.hpp
deleted file mode 100644
index 03b974c..0000000
--- a/boost/math/tools/detail/polynomial_horner1_12.hpp
+++ /dev/null
@@ -1,96 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_12_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_12_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<5>*)
-{
-   return static_cast<V>((((a[4] * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<6>*)
-{
-   return static_cast<V>(((((a[5] * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<7>*)
-{
-   return static_cast<V>((((((a[6] * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<8>*)
-{
-   return static_cast<V>(((((((a[7] * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<9>*)
-{
-   return static_cast<V>((((((((a[8] * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<10>*)
-{
-   return static_cast<V>(((((((((a[9] * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<11>*)
-{
-   return static_cast<V>((((((((((a[10] * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<12>*)
-{
-   return static_cast<V>(((((((((((a[11] * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner1_13.hpp b/boost/math/tools/detail/polynomial_horner1_13.hpp
deleted file mode 100644
index b947f54..0000000
--- a/boost/math/tools/detail/polynomial_horner1_13.hpp
+++ /dev/null
@@ -1,102 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_13_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_13_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<5>*)
-{
-   return static_cast<V>((((a[4] * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<6>*)
-{
-   return static_cast<V>(((((a[5] * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<7>*)
-{
-   return static_cast<V>((((((a[6] * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<8>*)
-{
-   return static_cast<V>(((((((a[7] * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<9>*)
-{
-   return static_cast<V>((((((((a[8] * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<10>*)
-{
-   return static_cast<V>(((((((((a[9] * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<11>*)
-{
-   return static_cast<V>((((((((((a[10] * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<12>*)
-{
-   return static_cast<V>(((((((((((a[11] * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<13>*)
-{
-   return static_cast<V>((((((((((((a[12] * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner1_14.hpp b/boost/math/tools/detail/polynomial_horner1_14.hpp
deleted file mode 100644
index 8374e38..0000000
--- a/boost/math/tools/detail/polynomial_horner1_14.hpp
+++ /dev/null
@@ -1,108 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_14_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_14_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<5>*)
-{
-   return static_cast<V>((((a[4] * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<6>*)
-{
-   return static_cast<V>(((((a[5] * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<7>*)
-{
-   return static_cast<V>((((((a[6] * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<8>*)
-{
-   return static_cast<V>(((((((a[7] * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<9>*)
-{
-   return static_cast<V>((((((((a[8] * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<10>*)
-{
-   return static_cast<V>(((((((((a[9] * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<11>*)
-{
-   return static_cast<V>((((((((((a[10] * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<12>*)
-{
-   return static_cast<V>(((((((((((a[11] * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<13>*)
-{
-   return static_cast<V>((((((((((((a[12] * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<14>*)
-{
-   return static_cast<V>(((((((((((((a[13] * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner1_15.hpp b/boost/math/tools/detail/polynomial_horner1_15.hpp
deleted file mode 100644
index ebfa463..0000000
--- a/boost/math/tools/detail/polynomial_horner1_15.hpp
+++ /dev/null
@@ -1,114 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_15_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_15_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<5>*)
-{
-   return static_cast<V>((((a[4] * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<6>*)
-{
-   return static_cast<V>(((((a[5] * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<7>*)
-{
-   return static_cast<V>((((((a[6] * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<8>*)
-{
-   return static_cast<V>(((((((a[7] * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<9>*)
-{
-   return static_cast<V>((((((((a[8] * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<10>*)
-{
-   return static_cast<V>(((((((((a[9] * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<11>*)
-{
-   return static_cast<V>((((((((((a[10] * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<12>*)
-{
-   return static_cast<V>(((((((((((a[11] * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<13>*)
-{
-   return static_cast<V>((((((((((((a[12] * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<14>*)
-{
-   return static_cast<V>(((((((((((((a[13] * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<15>*)
-{
-   return static_cast<V>((((((((((((((a[14] * x + a[13]) * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner1_16.hpp b/boost/math/tools/detail/polynomial_horner1_16.hpp
deleted file mode 100644
index 60eb4dc..0000000
--- a/boost/math/tools/detail/polynomial_horner1_16.hpp
+++ /dev/null
@@ -1,120 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_16_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_16_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<5>*)
-{
-   return static_cast<V>((((a[4] * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<6>*)
-{
-   return static_cast<V>(((((a[5] * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<7>*)
-{
-   return static_cast<V>((((((a[6] * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<8>*)
-{
-   return static_cast<V>(((((((a[7] * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<9>*)
-{
-   return static_cast<V>((((((((a[8] * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<10>*)
-{
-   return static_cast<V>(((((((((a[9] * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<11>*)
-{
-   return static_cast<V>((((((((((a[10] * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<12>*)
-{
-   return static_cast<V>(((((((((((a[11] * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<13>*)
-{
-   return static_cast<V>((((((((((((a[12] * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<14>*)
-{
-   return static_cast<V>(((((((((((((a[13] * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<15>*)
-{
-   return static_cast<V>((((((((((((((a[14] * x + a[13]) * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<16>*)
-{
-   return static_cast<V>(((((((((((((((a[15] * x + a[14]) * x + a[13]) * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner1_17.hpp b/boost/math/tools/detail/polynomial_horner1_17.hpp
deleted file mode 100644
index 6233f1b..0000000
--- a/boost/math/tools/detail/polynomial_horner1_17.hpp
+++ /dev/null
@@ -1,126 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_17_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_17_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<5>*)
-{
-   return static_cast<V>((((a[4] * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<6>*)
-{
-   return static_cast<V>(((((a[5] * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<7>*)
-{
-   return static_cast<V>((((((a[6] * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<8>*)
-{
-   return static_cast<V>(((((((a[7] * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<9>*)
-{
-   return static_cast<V>((((((((a[8] * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<10>*)
-{
-   return static_cast<V>(((((((((a[9] * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<11>*)
-{
-   return static_cast<V>((((((((((a[10] * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<12>*)
-{
-   return static_cast<V>(((((((((((a[11] * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<13>*)
-{
-   return static_cast<V>((((((((((((a[12] * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<14>*)
-{
-   return static_cast<V>(((((((((((((a[13] * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<15>*)
-{
-   return static_cast<V>((((((((((((((a[14] * x + a[13]) * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<16>*)
-{
-   return static_cast<V>(((((((((((((((a[15] * x + a[14]) * x + a[13]) * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<17>*)
-{
-   return static_cast<V>((((((((((((((((a[16] * x + a[15]) * x + a[14]) * x + a[13]) * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner1_18.hpp b/boost/math/tools/detail/polynomial_horner1_18.hpp
deleted file mode 100644
index 2a06def..0000000
--- a/boost/math/tools/detail/polynomial_horner1_18.hpp
+++ /dev/null
@@ -1,132 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_18_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_18_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<5>*)
-{
-   return static_cast<V>((((a[4] * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<6>*)
-{
-   return static_cast<V>(((((a[5] * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<7>*)
-{
-   return static_cast<V>((((((a[6] * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<8>*)
-{
-   return static_cast<V>(((((((a[7] * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<9>*)
-{
-   return static_cast<V>((((((((a[8] * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<10>*)
-{
-   return static_cast<V>(((((((((a[9] * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<11>*)
-{
-   return static_cast<V>((((((((((a[10] * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<12>*)
-{
-   return static_cast<V>(((((((((((a[11] * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<13>*)
-{
-   return static_cast<V>((((((((((((a[12] * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<14>*)
-{
-   return static_cast<V>(((((((((((((a[13] * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<15>*)
-{
-   return static_cast<V>((((((((((((((a[14] * x + a[13]) * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<16>*)
-{
-   return static_cast<V>(((((((((((((((a[15] * x + a[14]) * x + a[13]) * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<17>*)
-{
-   return static_cast<V>((((((((((((((((a[16] * x + a[15]) * x + a[14]) * x + a[13]) * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<18>*)
-{
-   return static_cast<V>(((((((((((((((((a[17] * x + a[16]) * x + a[15]) * x + a[14]) * x + a[13]) * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner1_19.hpp b/boost/math/tools/detail/polynomial_horner1_19.hpp
deleted file mode 100644
index 8f0da8b..0000000
--- a/boost/math/tools/detail/polynomial_horner1_19.hpp
+++ /dev/null
@@ -1,138 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_19_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_19_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<5>*)
-{
-   return static_cast<V>((((a[4] * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<6>*)
-{
-   return static_cast<V>(((((a[5] * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<7>*)
-{
-   return static_cast<V>((((((a[6] * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<8>*)
-{
-   return static_cast<V>(((((((a[7] * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<9>*)
-{
-   return static_cast<V>((((((((a[8] * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<10>*)
-{
-   return static_cast<V>(((((((((a[9] * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<11>*)
-{
-   return static_cast<V>((((((((((a[10] * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<12>*)
-{
-   return static_cast<V>(((((((((((a[11] * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<13>*)
-{
-   return static_cast<V>((((((((((((a[12] * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<14>*)
-{
-   return static_cast<V>(((((((((((((a[13] * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<15>*)
-{
-   return static_cast<V>((((((((((((((a[14] * x + a[13]) * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<16>*)
-{
-   return static_cast<V>(((((((((((((((a[15] * x + a[14]) * x + a[13]) * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<17>*)
-{
-   return static_cast<V>((((((((((((((((a[16] * x + a[15]) * x + a[14]) * x + a[13]) * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<18>*)
-{
-   return static_cast<V>(((((((((((((((((a[17] * x + a[16]) * x + a[15]) * x + a[14]) * x + a[13]) * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<19>*)
-{
-   return static_cast<V>((((((((((((((((((a[18] * x + a[17]) * x + a[16]) * x + a[15]) * x + a[14]) * x + a[13]) * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner1_2.hpp b/boost/math/tools/detail/polynomial_horner1_2.hpp
deleted file mode 100644
index a0b10d5..0000000
--- a/boost/math/tools/detail/polynomial_horner1_2.hpp
+++ /dev/null
@@ -1,36 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_2_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_2_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner1_20.hpp b/boost/math/tools/detail/polynomial_horner1_20.hpp
deleted file mode 100644
index d1a886d..0000000
--- a/boost/math/tools/detail/polynomial_horner1_20.hpp
+++ /dev/null
@@ -1,144 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_20_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_20_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<5>*)
-{
-   return static_cast<V>((((a[4] * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<6>*)
-{
-   return static_cast<V>(((((a[5] * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<7>*)
-{
-   return static_cast<V>((((((a[6] * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<8>*)
-{
-   return static_cast<V>(((((((a[7] * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<9>*)
-{
-   return static_cast<V>((((((((a[8] * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<10>*)
-{
-   return static_cast<V>(((((((((a[9] * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<11>*)
-{
-   return static_cast<V>((((((((((a[10] * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<12>*)
-{
-   return static_cast<V>(((((((((((a[11] * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<13>*)
-{
-   return static_cast<V>((((((((((((a[12] * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<14>*)
-{
-   return static_cast<V>(((((((((((((a[13] * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<15>*)
-{
-   return static_cast<V>((((((((((((((a[14] * x + a[13]) * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<16>*)
-{
-   return static_cast<V>(((((((((((((((a[15] * x + a[14]) * x + a[13]) * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<17>*)
-{
-   return static_cast<V>((((((((((((((((a[16] * x + a[15]) * x + a[14]) * x + a[13]) * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<18>*)
-{
-   return static_cast<V>(((((((((((((((((a[17] * x + a[16]) * x + a[15]) * x + a[14]) * x + a[13]) * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<19>*)
-{
-   return static_cast<V>((((((((((((((((((a[18] * x + a[17]) * x + a[16]) * x + a[15]) * x + a[14]) * x + a[13]) * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<20>*)
-{
-   return static_cast<V>(((((((((((((((((((a[19] * x + a[18]) * x + a[17]) * x + a[16]) * x + a[15]) * x + a[14]) * x + a[13]) * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner1_3.hpp b/boost/math/tools/detail/polynomial_horner1_3.hpp
deleted file mode 100644
index 715a69a..0000000
--- a/boost/math/tools/detail/polynomial_horner1_3.hpp
+++ /dev/null
@@ -1,42 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_3_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_3_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner1_4.hpp b/boost/math/tools/detail/polynomial_horner1_4.hpp
deleted file mode 100644
index d74b7a6..0000000
--- a/boost/math/tools/detail/polynomial_horner1_4.hpp
+++ /dev/null
@@ -1,48 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_4_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_4_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner1_5.hpp b/boost/math/tools/detail/polynomial_horner1_5.hpp
deleted file mode 100644
index bb66e6c..0000000
--- a/boost/math/tools/detail/polynomial_horner1_5.hpp
+++ /dev/null
@@ -1,54 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_5_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_5_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<5>*)
-{
-   return static_cast<V>((((a[4] * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner1_6.hpp b/boost/math/tools/detail/polynomial_horner1_6.hpp
deleted file mode 100644
index a29c271..0000000
--- a/boost/math/tools/detail/polynomial_horner1_6.hpp
+++ /dev/null
@@ -1,60 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_6_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_6_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<5>*)
-{
-   return static_cast<V>((((a[4] * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<6>*)
-{
-   return static_cast<V>(((((a[5] * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner1_7.hpp b/boost/math/tools/detail/polynomial_horner1_7.hpp
deleted file mode 100644
index 093ab89..0000000
--- a/boost/math/tools/detail/polynomial_horner1_7.hpp
+++ /dev/null
@@ -1,66 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_7_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_7_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<5>*)
-{
-   return static_cast<V>((((a[4] * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<6>*)
-{
-   return static_cast<V>(((((a[5] * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<7>*)
-{
-   return static_cast<V>((((((a[6] * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner1_8.hpp b/boost/math/tools/detail/polynomial_horner1_8.hpp
deleted file mode 100644
index a3d329a..0000000
--- a/boost/math/tools/detail/polynomial_horner1_8.hpp
+++ /dev/null
@@ -1,72 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_8_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_8_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<5>*)
-{
-   return static_cast<V>((((a[4] * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<6>*)
-{
-   return static_cast<V>(((((a[5] * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<7>*)
-{
-   return static_cast<V>((((((a[6] * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<8>*)
-{
-   return static_cast<V>(((((((a[7] * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner1_9.hpp b/boost/math/tools/detail/polynomial_horner1_9.hpp
deleted file mode 100644
index e90f578..0000000
--- a/boost/math/tools/detail/polynomial_horner1_9.hpp
+++ /dev/null
@@ -1,78 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_9_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_9_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<5>*)
-{
-   return static_cast<V>((((a[4] * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<6>*)
-{
-   return static_cast<V>(((((a[5] * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<7>*)
-{
-   return static_cast<V>((((((a[6] * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<8>*)
-{
-   return static_cast<V>(((((((a[7] * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<9>*)
-{
-   return static_cast<V>((((((((a[8] * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner2_10.hpp b/boost/math/tools/detail/polynomial_horner2_10.hpp
deleted file mode 100644
index 7c4101f..0000000
--- a/boost/math/tools/detail/polynomial_horner2_10.hpp
+++ /dev/null
@@ -1,90 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_10_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_10_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<5>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((a[4] * x2 + a[2]) * x2 + a[0] + (a[3] * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<6>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((a[5] * x2 + a[3]) * x2 + a[1]) * x + (a[4] * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<7>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((a[5] * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<8>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<9>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((((a[8] * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + (((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<10>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((((a[9] * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + (((a[8] * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]);
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner2_11.hpp b/boost/math/tools/detail/polynomial_horner2_11.hpp
deleted file mode 100644
index bebd1e6..0000000
--- a/boost/math/tools/detail/polynomial_horner2_11.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_11_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_11_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<5>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((a[4] * x2 + a[2]) * x2 + a[0] + (a[3] * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<6>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((a[5] * x2 + a[3]) * x2 + a[1]) * x + (a[4] * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<7>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((a[5] * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<8>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<9>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((((a[8] * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + (((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<10>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((((a[9] * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + (((a[8] * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<11>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((((a[10] * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((((a[9] * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner2_12.hpp b/boost/math/tools/detail/polynomial_horner2_12.hpp
deleted file mode 100644
index c4da24a..0000000
--- a/boost/math/tools/detail/polynomial_horner2_12.hpp
+++ /dev/null
@@ -1,104 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_12_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_12_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<5>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((a[4] * x2 + a[2]) * x2 + a[0] + (a[3] * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<6>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((a[5] * x2 + a[3]) * x2 + a[1]) * x + (a[4] * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<7>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((a[5] * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<8>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<9>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((((a[8] * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + (((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<10>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((((a[9] * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + (((a[8] * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<11>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((((a[10] * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((((a[9] * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<12>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((((((a[11] * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((((a[10] * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]);
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner2_13.hpp b/boost/math/tools/detail/polynomial_horner2_13.hpp
deleted file mode 100644
index 5d7dddc..0000000
--- a/boost/math/tools/detail/polynomial_horner2_13.hpp
+++ /dev/null
@@ -1,111 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_13_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_13_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<5>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((a[4] * x2 + a[2]) * x2 + a[0] + (a[3] * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<6>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((a[5] * x2 + a[3]) * x2 + a[1]) * x + (a[4] * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<7>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((a[5] * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<8>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<9>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((((a[8] * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + (((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<10>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((((a[9] * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + (((a[8] * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<11>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((((a[10] * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((((a[9] * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<12>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((((((a[11] * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((((a[10] * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<13>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((((((a[12] * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + (((((a[11] * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner2_14.hpp b/boost/math/tools/detail/polynomial_horner2_14.hpp
deleted file mode 100644
index 21a5a37..0000000
--- a/boost/math/tools/detail/polynomial_horner2_14.hpp
+++ /dev/null
@@ -1,118 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_14_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_14_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<5>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((a[4] * x2 + a[2]) * x2 + a[0] + (a[3] * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<6>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((a[5] * x2 + a[3]) * x2 + a[1]) * x + (a[4] * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<7>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((a[5] * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<8>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<9>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((((a[8] * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + (((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<10>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((((a[9] * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + (((a[8] * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<11>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((((a[10] * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((((a[9] * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<12>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((((((a[11] * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((((a[10] * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<13>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((((((a[12] * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + (((((a[11] * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<14>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((((((a[13] * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + (((((a[12] * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]);
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner2_15.hpp b/boost/math/tools/detail/polynomial_horner2_15.hpp
deleted file mode 100644
index 7b41214..0000000
--- a/boost/math/tools/detail/polynomial_horner2_15.hpp
+++ /dev/null
@@ -1,125 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_15_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_15_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<5>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((a[4] * x2 + a[2]) * x2 + a[0] + (a[3] * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<6>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((a[5] * x2 + a[3]) * x2 + a[1]) * x + (a[4] * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<7>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((a[5] * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<8>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<9>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((((a[8] * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + (((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<10>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((((a[9] * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + (((a[8] * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<11>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((((a[10] * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((((a[9] * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<12>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((((((a[11] * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((((a[10] * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<13>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((((((a[12] * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + (((((a[11] * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<14>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((((((a[13] * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + (((((a[12] * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<15>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((((((a[14] * x2 + a[12]) * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((((((a[13] * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner2_16.hpp b/boost/math/tools/detail/polynomial_horner2_16.hpp
deleted file mode 100644
index aa3763a..0000000
--- a/boost/math/tools/detail/polynomial_horner2_16.hpp
+++ /dev/null
@@ -1,132 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_16_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_16_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<5>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((a[4] * x2 + a[2]) * x2 + a[0] + (a[3] * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<6>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((a[5] * x2 + a[3]) * x2 + a[1]) * x + (a[4] * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<7>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((a[5] * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<8>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<9>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((((a[8] * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + (((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<10>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((((a[9] * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + (((a[8] * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<11>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((((a[10] * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((((a[9] * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<12>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((((((a[11] * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((((a[10] * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<13>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((((((a[12] * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + (((((a[11] * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<14>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((((((a[13] * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + (((((a[12] * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<15>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((((((a[14] * x2 + a[12]) * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((((((a[13] * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<16>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((((((((a[15] * x2 + a[13]) * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((((((a[14] * x2 + a[12]) * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]);
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner2_17.hpp b/boost/math/tools/detail/polynomial_horner2_17.hpp
deleted file mode 100644
index 6ed5566..0000000
--- a/boost/math/tools/detail/polynomial_horner2_17.hpp
+++ /dev/null
@@ -1,139 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_17_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_17_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<5>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((a[4] * x2 + a[2]) * x2 + a[0] + (a[3] * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<6>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((a[5] * x2 + a[3]) * x2 + a[1]) * x + (a[4] * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<7>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((a[5] * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<8>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<9>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((((a[8] * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + (((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<10>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((((a[9] * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + (((a[8] * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<11>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((((a[10] * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((((a[9] * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<12>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((((((a[11] * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((((a[10] * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<13>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((((((a[12] * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + (((((a[11] * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<14>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((((((a[13] * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + (((((a[12] * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<15>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((((((a[14] * x2 + a[12]) * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((((((a[13] * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<16>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((((((((a[15] * x2 + a[13]) * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((((((a[14] * x2 + a[12]) * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<17>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((((((((a[16] * x2 + a[14]) * x2 + a[12]) * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + (((((((a[15] * x2 + a[13]) * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner2_18.hpp b/boost/math/tools/detail/polynomial_horner2_18.hpp
deleted file mode 100644
index 02c72b8..0000000
--- a/boost/math/tools/detail/polynomial_horner2_18.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_18_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_18_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<5>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((a[4] * x2 + a[2]) * x2 + a[0] + (a[3] * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<6>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((a[5] * x2 + a[3]) * x2 + a[1]) * x + (a[4] * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<7>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((a[5] * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<8>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<9>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((((a[8] * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + (((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<10>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((((a[9] * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + (((a[8] * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<11>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((((a[10] * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((((a[9] * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<12>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((((((a[11] * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((((a[10] * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<13>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((((((a[12] * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + (((((a[11] * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<14>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((((((a[13] * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + (((((a[12] * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<15>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((((((a[14] * x2 + a[12]) * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((((((a[13] * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<16>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((((((((a[15] * x2 + a[13]) * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((((((a[14] * x2 + a[12]) * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<17>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((((((((a[16] * x2 + a[14]) * x2 + a[12]) * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + (((((((a[15] * x2 + a[13]) * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<18>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((((((((a[17] * x2 + a[15]) * x2 + a[13]) * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + (((((((a[16] * x2 + a[14]) * x2 + a[12]) * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]);
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner2_19.hpp b/boost/math/tools/detail/polynomial_horner2_19.hpp
deleted file mode 100644
index 6e36ace..0000000
--- a/boost/math/tools/detail/polynomial_horner2_19.hpp
+++ /dev/null
@@ -1,153 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_19_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_19_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<5>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((a[4] * x2 + a[2]) * x2 + a[0] + (a[3] * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<6>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((a[5] * x2 + a[3]) * x2 + a[1]) * x + (a[4] * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<7>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((a[5] * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<8>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<9>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((((a[8] * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + (((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<10>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((((a[9] * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + (((a[8] * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<11>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((((a[10] * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((((a[9] * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<12>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((((((a[11] * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((((a[10] * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<13>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((((((a[12] * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + (((((a[11] * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<14>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((((((a[13] * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + (((((a[12] * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<15>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((((((a[14] * x2 + a[12]) * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((((((a[13] * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<16>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((((((((a[15] * x2 + a[13]) * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((((((a[14] * x2 + a[12]) * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<17>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((((((((a[16] * x2 + a[14]) * x2 + a[12]) * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + (((((((a[15] * x2 + a[13]) * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<18>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((((((((a[17] * x2 + a[15]) * x2 + a[13]) * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + (((((((a[16] * x2 + a[14]) * x2 + a[12]) * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<19>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((((((((a[18] * x2 + a[16]) * x2 + a[14]) * x2 + a[12]) * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((((((((a[17] * x2 + a[15]) * x2 + a[13]) * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner2_2.hpp b/boost/math/tools/detail/polynomial_horner2_2.hpp
deleted file mode 100644
index e2a4e7f..0000000
--- a/boost/math/tools/detail/polynomial_horner2_2.hpp
+++ /dev/null
@@ -1,48 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_2_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_2_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner2_20.hpp b/boost/math/tools/detail/polynomial_horner2_20.hpp
deleted file mode 100644
index e394b6b..0000000
--- a/boost/math/tools/detail/polynomial_horner2_20.hpp
+++ /dev/null
@@ -1,160 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_20_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_20_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<5>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((a[4] * x2 + a[2]) * x2 + a[0] + (a[3] * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<6>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((a[5] * x2 + a[3]) * x2 + a[1]) * x + (a[4] * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<7>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((a[5] * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<8>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<9>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((((a[8] * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + (((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<10>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((((a[9] * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + (((a[8] * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<11>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((((a[10] * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((((a[9] * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<12>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((((((a[11] * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((((a[10] * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<13>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((((((a[12] * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + (((((a[11] * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<14>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((((((a[13] * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + (((((a[12] * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<15>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((((((a[14] * x2 + a[12]) * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((((((a[13] * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<16>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((((((((a[15] * x2 + a[13]) * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((((((a[14] * x2 + a[12]) * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<17>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((((((((a[16] * x2 + a[14]) * x2 + a[12]) * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + (((((((a[15] * x2 + a[13]) * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<18>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((((((((a[17] * x2 + a[15]) * x2 + a[13]) * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + (((((((a[16] * x2 + a[14]) * x2 + a[12]) * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<19>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((((((((a[18] * x2 + a[16]) * x2 + a[14]) * x2 + a[12]) * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((((((((a[17] * x2 + a[15]) * x2 + a[13]) * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<20>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((((((((((a[19] * x2 + a[17]) * x2 + a[15]) * x2 + a[13]) * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((((((((a[18] * x2 + a[16]) * x2 + a[14]) * x2 + a[12]) * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]);
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner2_3.hpp b/boost/math/tools/detail/polynomial_horner2_3.hpp
deleted file mode 100644
index 187b86c..0000000
--- a/boost/math/tools/detail/polynomial_horner2_3.hpp
+++ /dev/null
@@ -1,48 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_3_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_3_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner2_4.hpp b/boost/math/tools/detail/polynomial_horner2_4.hpp
deleted file mode 100644
index 84badc3..0000000
--- a/boost/math/tools/detail/polynomial_horner2_4.hpp
+++ /dev/null
@@ -1,48 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_4_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_4_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner2_5.hpp b/boost/math/tools/detail/polynomial_horner2_5.hpp
deleted file mode 100644
index 287b4be..0000000
--- a/boost/math/tools/detail/polynomial_horner2_5.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_5_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_5_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<5>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((a[4] * x2 + a[2]) * x2 + a[0] + (a[3] * x2 + a[1]) * x);
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner2_6.hpp b/boost/math/tools/detail/polynomial_horner2_6.hpp
deleted file mode 100644
index 3662d44..0000000
--- a/boost/math/tools/detail/polynomial_horner2_6.hpp
+++ /dev/null
@@ -1,62 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_6_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_6_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<5>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((a[4] * x2 + a[2]) * x2 + a[0] + (a[3] * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<6>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((a[5] * x2 + a[3]) * x2 + a[1]) * x + (a[4] * x2 + a[2]) * x2 + a[0]);
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner2_7.hpp b/boost/math/tools/detail/polynomial_horner2_7.hpp
deleted file mode 100644
index 78ed0df..0000000
--- a/boost/math/tools/detail/polynomial_horner2_7.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_7_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_7_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<5>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((a[4] * x2 + a[2]) * x2 + a[0] + (a[3] * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<6>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((a[5] * x2 + a[3]) * x2 + a[1]) * x + (a[4] * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<7>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((a[5] * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner2_8.hpp b/boost/math/tools/detail/polynomial_horner2_8.hpp
deleted file mode 100644
index ac8e941..0000000
--- a/boost/math/tools/detail/polynomial_horner2_8.hpp
+++ /dev/null
@@ -1,76 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_8_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_8_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<5>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((a[4] * x2 + a[2]) * x2 + a[0] + (a[3] * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<6>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((a[5] * x2 + a[3]) * x2 + a[1]) * x + (a[4] * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<7>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((a[5] * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<8>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0]);
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner2_9.hpp b/boost/math/tools/detail/polynomial_horner2_9.hpp
deleted file mode 100644
index e1a3d17..0000000
--- a/boost/math/tools/detail/polynomial_horner2_9.hpp
+++ /dev/null
@@ -1,83 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_9_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_9_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<5>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((a[4] * x2 + a[2]) * x2 + a[0] + (a[3] * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<6>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((a[5] * x2 + a[3]) * x2 + a[1]) * x + (a[4] * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<7>*)
-{
-   V x2 = x * x;
-   return static_cast<V>(((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((a[5] * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<8>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<9>*)
-{
-   V x2 = x * x;
-   return static_cast<V>((((a[8] * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + (((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x);
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner3_10.hpp b/boost/math/tools/detail/polynomial_horner3_10.hpp
deleted file mode 100644
index 69736d7..0000000
--- a/boost/math/tools/detail/polynomial_horner3_10.hpp
+++ /dev/null
@@ -1,156 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Unrolled polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_10_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_10_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<5>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[4] * x2 + a[2]);
-   t[1] = static_cast<V>(a[3] * x2 + a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<6>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[5] * x2 + a[3];
-   t[1] = a[4] * x2 + a[2];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<7>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[6] * x2 + a[4]);
-   t[1] = static_cast<V>(a[5] * x2 + a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<8>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[7] * x2 + a[5];
-   t[1] = a[6] * x2 + a[4];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[3]);
-   t[1] += static_cast<V>(a[2]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<9>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[8] * x2 + a[6]);
-   t[1] = static_cast<V>(a[7] * x2 + a[5]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[4]);
-   t[1] += static_cast<V>(a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<10>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[9] * x2 + a[7];
-   t[1] = a[8] * x2 + a[6];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[5]);
-   t[1] += static_cast<V>(a[4]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[3]);
-   t[1] += static_cast<V>(a[2]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner3_11.hpp b/boost/math/tools/detail/polynomial_horner3_11.hpp
deleted file mode 100644
index 273ed53..0000000
--- a/boost/math/tools/detail/polynomial_horner3_11.hpp
+++ /dev/null
@@ -1,181 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Unrolled polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_11_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_11_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<5>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[4] * x2 + a[2]);
-   t[1] = static_cast<V>(a[3] * x2 + a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<6>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[5] * x2 + a[3];
-   t[1] = a[4] * x2 + a[2];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<7>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[6] * x2 + a[4]);
-   t[1] = static_cast<V>(a[5] * x2 + a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<8>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[7] * x2 + a[5];
-   t[1] = a[6] * x2 + a[4];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[3]);
-   t[1] += static_cast<V>(a[2]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<9>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[8] * x2 + a[6]);
-   t[1] = static_cast<V>(a[7] * x2 + a[5]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[4]);
-   t[1] += static_cast<V>(a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<10>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[9] * x2 + a[7];
-   t[1] = a[8] * x2 + a[6];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[5]);
-   t[1] += static_cast<V>(a[4]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[3]);
-   t[1] += static_cast<V>(a[2]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<11>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[10] * x2 + a[8]);
-   t[1] = static_cast<V>(a[9] * x2 + a[7]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[6]);
-   t[1] += static_cast<V>(a[5]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[4]);
-   t[1] += static_cast<V>(a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner3_12.hpp b/boost/math/tools/detail/polynomial_horner3_12.hpp
deleted file mode 100644
index 3405674..0000000
--- a/boost/math/tools/detail/polynomial_horner3_12.hpp
+++ /dev/null
@@ -1,208 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Unrolled polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_12_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_12_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<5>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[4] * x2 + a[2]);
-   t[1] = static_cast<V>(a[3] * x2 + a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<6>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[5] * x2 + a[3];
-   t[1] = a[4] * x2 + a[2];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<7>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[6] * x2 + a[4]);
-   t[1] = static_cast<V>(a[5] * x2 + a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<8>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[7] * x2 + a[5];
-   t[1] = a[6] * x2 + a[4];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[3]);
-   t[1] += static_cast<V>(a[2]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<9>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[8] * x2 + a[6]);
-   t[1] = static_cast<V>(a[7] * x2 + a[5]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[4]);
-   t[1] += static_cast<V>(a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<10>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[9] * x2 + a[7];
-   t[1] = a[8] * x2 + a[6];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[5]);
-   t[1] += static_cast<V>(a[4]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[3]);
-   t[1] += static_cast<V>(a[2]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<11>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[10] * x2 + a[8]);
-   t[1] = static_cast<V>(a[9] * x2 + a[7]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[6]);
-   t[1] += static_cast<V>(a[5]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[4]);
-   t[1] += static_cast<V>(a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<12>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[11] * x2 + a[9];
-   t[1] = a[10] * x2 + a[8];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[7]);
-   t[1] += static_cast<V>(a[6]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[5]);
-   t[1] += static_cast<V>(a[4]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[3]);
-   t[1] += static_cast<V>(a[2]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner3_13.hpp b/boost/math/tools/detail/polynomial_horner3_13.hpp
deleted file mode 100644
index 849c93e..0000000
--- a/boost/math/tools/detail/polynomial_horner3_13.hpp
+++ /dev/null
@@ -1,237 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Unrolled polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_13_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_13_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<5>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[4] * x2 + a[2]);
-   t[1] = static_cast<V>(a[3] * x2 + a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<6>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[5] * x2 + a[3];
-   t[1] = a[4] * x2 + a[2];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<7>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[6] * x2 + a[4]);
-   t[1] = static_cast<V>(a[5] * x2 + a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<8>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[7] * x2 + a[5];
-   t[1] = a[6] * x2 + a[4];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[3]);
-   t[1] += static_cast<V>(a[2]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<9>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[8] * x2 + a[6]);
-   t[1] = static_cast<V>(a[7] * x2 + a[5]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[4]);
-   t[1] += static_cast<V>(a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<10>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[9] * x2 + a[7];
-   t[1] = a[8] * x2 + a[6];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[5]);
-   t[1] += static_cast<V>(a[4]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[3]);
-   t[1] += static_cast<V>(a[2]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<11>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[10] * x2 + a[8]);
-   t[1] = static_cast<V>(a[9] * x2 + a[7]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[6]);
-   t[1] += static_cast<V>(a[5]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[4]);
-   t[1] += static_cast<V>(a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<12>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[11] * x2 + a[9];
-   t[1] = a[10] * x2 + a[8];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[7]);
-   t[1] += static_cast<V>(a[6]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[5]);
-   t[1] += static_cast<V>(a[4]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[3]);
-   t[1] += static_cast<V>(a[2]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<13>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[12] * x2 + a[10]);
-   t[1] = static_cast<V>(a[11] * x2 + a[9]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[8]);
-   t[1] += static_cast<V>(a[7]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[6]);
-   t[1] += static_cast<V>(a[5]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[4]);
-   t[1] += static_cast<V>(a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner3_14.hpp b/boost/math/tools/detail/polynomial_horner3_14.hpp
deleted file mode 100644
index f5ac1df..0000000
--- a/boost/math/tools/detail/polynomial_horner3_14.hpp
+++ /dev/null
@@ -1,268 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Unrolled polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_14_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_14_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<5>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[4] * x2 + a[2]);
-   t[1] = static_cast<V>(a[3] * x2 + a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<6>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[5] * x2 + a[3];
-   t[1] = a[4] * x2 + a[2];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<7>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[6] * x2 + a[4]);
-   t[1] = static_cast<V>(a[5] * x2 + a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<8>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[7] * x2 + a[5];
-   t[1] = a[6] * x2 + a[4];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[3]);
-   t[1] += static_cast<V>(a[2]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<9>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[8] * x2 + a[6]);
-   t[1] = static_cast<V>(a[7] * x2 + a[5]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[4]);
-   t[1] += static_cast<V>(a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<10>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[9] * x2 + a[7];
-   t[1] = a[8] * x2 + a[6];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[5]);
-   t[1] += static_cast<V>(a[4]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[3]);
-   t[1] += static_cast<V>(a[2]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<11>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[10] * x2 + a[8]);
-   t[1] = static_cast<V>(a[9] * x2 + a[7]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[6]);
-   t[1] += static_cast<V>(a[5]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[4]);
-   t[1] += static_cast<V>(a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<12>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[11] * x2 + a[9];
-   t[1] = a[10] * x2 + a[8];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[7]);
-   t[1] += static_cast<V>(a[6]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[5]);
-   t[1] += static_cast<V>(a[4]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[3]);
-   t[1] += static_cast<V>(a[2]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<13>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[12] * x2 + a[10]);
-   t[1] = static_cast<V>(a[11] * x2 + a[9]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[8]);
-   t[1] += static_cast<V>(a[7]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[6]);
-   t[1] += static_cast<V>(a[5]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[4]);
-   t[1] += static_cast<V>(a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<14>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[13] * x2 + a[11];
-   t[1] = a[12] * x2 + a[10];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[9]);
-   t[1] += static_cast<V>(a[8]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[7]);
-   t[1] += static_cast<V>(a[6]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[5]);
-   t[1] += static_cast<V>(a[4]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[3]);
-   t[1] += static_cast<V>(a[2]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner3_15.hpp b/boost/math/tools/detail/polynomial_horner3_15.hpp
deleted file mode 100644
index b57af7e..0000000
--- a/boost/math/tools/detail/polynomial_horner3_15.hpp
+++ /dev/null
@@ -1,301 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Unrolled polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_15_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_15_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<5>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[4] * x2 + a[2]);
-   t[1] = static_cast<V>(a[3] * x2 + a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<6>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[5] * x2 + a[3];
-   t[1] = a[4] * x2 + a[2];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<7>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[6] * x2 + a[4]);
-   t[1] = static_cast<V>(a[5] * x2 + a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<8>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[7] * x2 + a[5];
-   t[1] = a[6] * x2 + a[4];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[3]);
-   t[1] += static_cast<V>(a[2]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<9>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[8] * x2 + a[6]);
-   t[1] = static_cast<V>(a[7] * x2 + a[5]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[4]);
-   t[1] += static_cast<V>(a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<10>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[9] * x2 + a[7];
-   t[1] = a[8] * x2 + a[6];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[5]);
-   t[1] += static_cast<V>(a[4]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[3]);
-   t[1] += static_cast<V>(a[2]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<11>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[10] * x2 + a[8]);
-   t[1] = static_cast<V>(a[9] * x2 + a[7]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[6]);
-   t[1] += static_cast<V>(a[5]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[4]);
-   t[1] += static_cast<V>(a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<12>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[11] * x2 + a[9];
-   t[1] = a[10] * x2 + a[8];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[7]);
-   t[1] += static_cast<V>(a[6]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[5]);
-   t[1] += static_cast<V>(a[4]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[3]);
-   t[1] += static_cast<V>(a[2]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<13>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[12] * x2 + a[10]);
-   t[1] = static_cast<V>(a[11] * x2 + a[9]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[8]);
-   t[1] += static_cast<V>(a[7]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[6]);
-   t[1] += static_cast<V>(a[5]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[4]);
-   t[1] += static_cast<V>(a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<14>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[13] * x2 + a[11];
-   t[1] = a[12] * x2 + a[10];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[9]);
-   t[1] += static_cast<V>(a[8]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[7]);
-   t[1] += static_cast<V>(a[6]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[5]);
-   t[1] += static_cast<V>(a[4]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[3]);
-   t[1] += static_cast<V>(a[2]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<15>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[14] * x2 + a[12]);
-   t[1] = static_cast<V>(a[13] * x2 + a[11]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[10]);
-   t[1] += static_cast<V>(a[9]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[8]);
-   t[1] += static_cast<V>(a[7]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[6]);
-   t[1] += static_cast<V>(a[5]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[4]);
-   t[1] += static_cast<V>(a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner3_16.hpp b/boost/math/tools/detail/polynomial_horner3_16.hpp
deleted file mode 100644
index 1fc8560..0000000
--- a/boost/math/tools/detail/polynomial_horner3_16.hpp
+++ /dev/null
@@ -1,336 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Unrolled polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_16_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_16_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<5>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[4] * x2 + a[2]);
-   t[1] = static_cast<V>(a[3] * x2 + a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<6>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[5] * x2 + a[3];
-   t[1] = a[4] * x2 + a[2];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<7>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[6] * x2 + a[4]);
-   t[1] = static_cast<V>(a[5] * x2 + a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<8>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[7] * x2 + a[5];
-   t[1] = a[6] * x2 + a[4];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[3]);
-   t[1] += static_cast<V>(a[2]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<9>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[8] * x2 + a[6]);
-   t[1] = static_cast<V>(a[7] * x2 + a[5]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[4]);
-   t[1] += static_cast<V>(a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<10>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[9] * x2 + a[7];
-   t[1] = a[8] * x2 + a[6];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[5]);
-   t[1] += static_cast<V>(a[4]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[3]);
-   t[1] += static_cast<V>(a[2]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<11>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[10] * x2 + a[8]);
-   t[1] = static_cast<V>(a[9] * x2 + a[7]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[6]);
-   t[1] += static_cast<V>(a[5]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[4]);
-   t[1] += static_cast<V>(a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<12>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[11] * x2 + a[9];
-   t[1] = a[10] * x2 + a[8];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[7]);
-   t[1] += static_cast<V>(a[6]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[5]);
-   t[1] += static_cast<V>(a[4]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[3]);
-   t[1] += static_cast<V>(a[2]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<13>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[12] * x2 + a[10]);
-   t[1] = static_cast<V>(a[11] * x2 + a[9]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[8]);
-   t[1] += static_cast<V>(a[7]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[6]);
-   t[1] += static_cast<V>(a[5]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[4]);
-   t[1] += static_cast<V>(a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<14>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[13] * x2 + a[11];
-   t[1] = a[12] * x2 + a[10];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[9]);
-   t[1] += static_cast<V>(a[8]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[7]);
-   t[1] += static_cast<V>(a[6]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[5]);
-   t[1] += static_cast<V>(a[4]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[3]);
-   t[1] += static_cast<V>(a[2]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<15>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[14] * x2 + a[12]);
-   t[1] = static_cast<V>(a[13] * x2 + a[11]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[10]);
-   t[1] += static_cast<V>(a[9]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[8]);
-   t[1] += static_cast<V>(a[7]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[6]);
-   t[1] += static_cast<V>(a[5]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[4]);
-   t[1] += static_cast<V>(a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<16>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[15] * x2 + a[13];
-   t[1] = a[14] * x2 + a[12];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[11]);
-   t[1] += static_cast<V>(a[10]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[9]);
-   t[1] += static_cast<V>(a[8]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[7]);
-   t[1] += static_cast<V>(a[6]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[5]);
-   t[1] += static_cast<V>(a[4]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[3]);
-   t[1] += static_cast<V>(a[2]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner3_17.hpp b/boost/math/tools/detail/polynomial_horner3_17.hpp
deleted file mode 100644
index 4a0d0aa..0000000
--- a/boost/math/tools/detail/polynomial_horner3_17.hpp
+++ /dev/null
@@ -1,373 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Unrolled polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_17_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_17_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<5>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[4] * x2 + a[2]);
-   t[1] = static_cast<V>(a[3] * x2 + a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<6>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[5] * x2 + a[3];
-   t[1] = a[4] * x2 + a[2];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<7>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[6] * x2 + a[4]);
-   t[1] = static_cast<V>(a[5] * x2 + a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<8>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[7] * x2 + a[5];
-   t[1] = a[6] * x2 + a[4];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[3]);
-   t[1] += static_cast<V>(a[2]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<9>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[8] * x2 + a[6]);
-   t[1] = static_cast<V>(a[7] * x2 + a[5]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[4]);
-   t[1] += static_cast<V>(a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<10>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[9] * x2 + a[7];
-   t[1] = a[8] * x2 + a[6];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[5]);
-   t[1] += static_cast<V>(a[4]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[3]);
-   t[1] += static_cast<V>(a[2]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<11>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[10] * x2 + a[8]);
-   t[1] = static_cast<V>(a[9] * x2 + a[7]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[6]);
-   t[1] += static_cast<V>(a[5]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[4]);
-   t[1] += static_cast<V>(a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<12>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[11] * x2 + a[9];
-   t[1] = a[10] * x2 + a[8];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[7]);
-   t[1] += static_cast<V>(a[6]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[5]);
-   t[1] += static_cast<V>(a[4]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[3]);
-   t[1] += static_cast<V>(a[2]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<13>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[12] * x2 + a[10]);
-   t[1] = static_cast<V>(a[11] * x2 + a[9]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[8]);
-   t[1] += static_cast<V>(a[7]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[6]);
-   t[1] += static_cast<V>(a[5]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[4]);
-   t[1] += static_cast<V>(a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<14>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[13] * x2 + a[11];
-   t[1] = a[12] * x2 + a[10];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[9]);
-   t[1] += static_cast<V>(a[8]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[7]);
-   t[1] += static_cast<V>(a[6]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[5]);
-   t[1] += static_cast<V>(a[4]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[3]);
-   t[1] += static_cast<V>(a[2]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<15>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[14] * x2 + a[12]);
-   t[1] = static_cast<V>(a[13] * x2 + a[11]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[10]);
-   t[1] += static_cast<V>(a[9]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[8]);
-   t[1] += static_cast<V>(a[7]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[6]);
-   t[1] += static_cast<V>(a[5]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[4]);
-   t[1] += static_cast<V>(a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<16>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[15] * x2 + a[13];
-   t[1] = a[14] * x2 + a[12];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[11]);
-   t[1] += static_cast<V>(a[10]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[9]);
-   t[1] += static_cast<V>(a[8]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[7]);
-   t[1] += static_cast<V>(a[6]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[5]);
-   t[1] += static_cast<V>(a[4]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[3]);
-   t[1] += static_cast<V>(a[2]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<17>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[16] * x2 + a[14]);
-   t[1] = static_cast<V>(a[15] * x2 + a[13]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[12]);
-   t[1] += static_cast<V>(a[11]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[10]);
-   t[1] += static_cast<V>(a[9]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[8]);
-   t[1] += static_cast<V>(a[7]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[6]);
-   t[1] += static_cast<V>(a[5]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[4]);
-   t[1] += static_cast<V>(a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner3_18.hpp b/boost/math/tools/detail/polynomial_horner3_18.hpp
deleted file mode 100644
index 899117d..0000000
--- a/boost/math/tools/detail/polynomial_horner3_18.hpp
+++ /dev/null
@@ -1,412 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Unrolled polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_18_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_18_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<5>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[4] * x2 + a[2]);
-   t[1] = static_cast<V>(a[3] * x2 + a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<6>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[5] * x2 + a[3];
-   t[1] = a[4] * x2 + a[2];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<7>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[6] * x2 + a[4]);
-   t[1] = static_cast<V>(a[5] * x2 + a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<8>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[7] * x2 + a[5];
-   t[1] = a[6] * x2 + a[4];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[3]);
-   t[1] += static_cast<V>(a[2]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<9>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[8] * x2 + a[6]);
-   t[1] = static_cast<V>(a[7] * x2 + a[5]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[4]);
-   t[1] += static_cast<V>(a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<10>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[9] * x2 + a[7];
-   t[1] = a[8] * x2 + a[6];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[5]);
-   t[1] += static_cast<V>(a[4]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[3]);
-   t[1] += static_cast<V>(a[2]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<11>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[10] * x2 + a[8]);
-   t[1] = static_cast<V>(a[9] * x2 + a[7]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[6]);
-   t[1] += static_cast<V>(a[5]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[4]);
-   t[1] += static_cast<V>(a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<12>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[11] * x2 + a[9];
-   t[1] = a[10] * x2 + a[8];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[7]);
-   t[1] += static_cast<V>(a[6]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[5]);
-   t[1] += static_cast<V>(a[4]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[3]);
-   t[1] += static_cast<V>(a[2]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<13>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[12] * x2 + a[10]);
-   t[1] = static_cast<V>(a[11] * x2 + a[9]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[8]);
-   t[1] += static_cast<V>(a[7]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[6]);
-   t[1] += static_cast<V>(a[5]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[4]);
-   t[1] += static_cast<V>(a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<14>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[13] * x2 + a[11];
-   t[1] = a[12] * x2 + a[10];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[9]);
-   t[1] += static_cast<V>(a[8]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[7]);
-   t[1] += static_cast<V>(a[6]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[5]);
-   t[1] += static_cast<V>(a[4]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[3]);
-   t[1] += static_cast<V>(a[2]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<15>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[14] * x2 + a[12]);
-   t[1] = static_cast<V>(a[13] * x2 + a[11]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[10]);
-   t[1] += static_cast<V>(a[9]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[8]);
-   t[1] += static_cast<V>(a[7]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[6]);
-   t[1] += static_cast<V>(a[5]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[4]);
-   t[1] += static_cast<V>(a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<16>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[15] * x2 + a[13];
-   t[1] = a[14] * x2 + a[12];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[11]);
-   t[1] += static_cast<V>(a[10]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[9]);
-   t[1] += static_cast<V>(a[8]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[7]);
-   t[1] += static_cast<V>(a[6]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[5]);
-   t[1] += static_cast<V>(a[4]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[3]);
-   t[1] += static_cast<V>(a[2]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<17>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[16] * x2 + a[14]);
-   t[1] = static_cast<V>(a[15] * x2 + a[13]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[12]);
-   t[1] += static_cast<V>(a[11]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[10]);
-   t[1] += static_cast<V>(a[9]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[8]);
-   t[1] += static_cast<V>(a[7]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[6]);
-   t[1] += static_cast<V>(a[5]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[4]);
-   t[1] += static_cast<V>(a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<18>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[17] * x2 + a[15];
-   t[1] = a[16] * x2 + a[14];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[13]);
-   t[1] += static_cast<V>(a[12]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[11]);
-   t[1] += static_cast<V>(a[10]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[9]);
-   t[1] += static_cast<V>(a[8]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[7]);
-   t[1] += static_cast<V>(a[6]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[5]);
-   t[1] += static_cast<V>(a[4]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[3]);
-   t[1] += static_cast<V>(a[2]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner3_19.hpp b/boost/math/tools/detail/polynomial_horner3_19.hpp
deleted file mode 100644
index 7c4f728..0000000
--- a/boost/math/tools/detail/polynomial_horner3_19.hpp
+++ /dev/null
@@ -1,453 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Unrolled polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_19_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_19_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<5>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[4] * x2 + a[2]);
-   t[1] = static_cast<V>(a[3] * x2 + a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<6>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[5] * x2 + a[3];
-   t[1] = a[4] * x2 + a[2];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<7>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[6] * x2 + a[4]);
-   t[1] = static_cast<V>(a[5] * x2 + a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<8>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[7] * x2 + a[5];
-   t[1] = a[6] * x2 + a[4];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[3]);
-   t[1] += static_cast<V>(a[2]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<9>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[8] * x2 + a[6]);
-   t[1] = static_cast<V>(a[7] * x2 + a[5]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[4]);
-   t[1] += static_cast<V>(a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<10>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[9] * x2 + a[7];
-   t[1] = a[8] * x2 + a[6];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[5]);
-   t[1] += static_cast<V>(a[4]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[3]);
-   t[1] += static_cast<V>(a[2]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<11>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[10] * x2 + a[8]);
-   t[1] = static_cast<V>(a[9] * x2 + a[7]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[6]);
-   t[1] += static_cast<V>(a[5]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[4]);
-   t[1] += static_cast<V>(a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<12>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[11] * x2 + a[9];
-   t[1] = a[10] * x2 + a[8];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[7]);
-   t[1] += static_cast<V>(a[6]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[5]);
-   t[1] += static_cast<V>(a[4]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[3]);
-   t[1] += static_cast<V>(a[2]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<13>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[12] * x2 + a[10]);
-   t[1] = static_cast<V>(a[11] * x2 + a[9]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[8]);
-   t[1] += static_cast<V>(a[7]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[6]);
-   t[1] += static_cast<V>(a[5]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[4]);
-   t[1] += static_cast<V>(a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<14>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[13] * x2 + a[11];
-   t[1] = a[12] * x2 + a[10];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[9]);
-   t[1] += static_cast<V>(a[8]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[7]);
-   t[1] += static_cast<V>(a[6]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[5]);
-   t[1] += static_cast<V>(a[4]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[3]);
-   t[1] += static_cast<V>(a[2]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<15>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[14] * x2 + a[12]);
-   t[1] = static_cast<V>(a[13] * x2 + a[11]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[10]);
-   t[1] += static_cast<V>(a[9]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[8]);
-   t[1] += static_cast<V>(a[7]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[6]);
-   t[1] += static_cast<V>(a[5]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[4]);
-   t[1] += static_cast<V>(a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<16>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[15] * x2 + a[13];
-   t[1] = a[14] * x2 + a[12];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[11]);
-   t[1] += static_cast<V>(a[10]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[9]);
-   t[1] += static_cast<V>(a[8]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[7]);
-   t[1] += static_cast<V>(a[6]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[5]);
-   t[1] += static_cast<V>(a[4]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[3]);
-   t[1] += static_cast<V>(a[2]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<17>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[16] * x2 + a[14]);
-   t[1] = static_cast<V>(a[15] * x2 + a[13]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[12]);
-   t[1] += static_cast<V>(a[11]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[10]);
-   t[1] += static_cast<V>(a[9]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[8]);
-   t[1] += static_cast<V>(a[7]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[6]);
-   t[1] += static_cast<V>(a[5]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[4]);
-   t[1] += static_cast<V>(a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<18>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[17] * x2 + a[15];
-   t[1] = a[16] * x2 + a[14];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[13]);
-   t[1] += static_cast<V>(a[12]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[11]);
-   t[1] += static_cast<V>(a[10]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[9]);
-   t[1] += static_cast<V>(a[8]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[7]);
-   t[1] += static_cast<V>(a[6]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[5]);
-   t[1] += static_cast<V>(a[4]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[3]);
-   t[1] += static_cast<V>(a[2]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<19>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[18] * x2 + a[16]);
-   t[1] = static_cast<V>(a[17] * x2 + a[15]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[14]);
-   t[1] += static_cast<V>(a[13]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[12]);
-   t[1] += static_cast<V>(a[11]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[10]);
-   t[1] += static_cast<V>(a[9]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[8]);
-   t[1] += static_cast<V>(a[7]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[6]);
-   t[1] += static_cast<V>(a[5]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[4]);
-   t[1] += static_cast<V>(a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner3_2.hpp b/boost/math/tools/detail/polynomial_horner3_2.hpp
deleted file mode 100644
index 372630c..0000000
--- a/boost/math/tools/detail/polynomial_horner3_2.hpp
+++ /dev/null
@@ -1,48 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Unrolled polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_2_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_2_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner3_20.hpp b/boost/math/tools/detail/polynomial_horner3_20.hpp
deleted file mode 100644
index b20e0d5..0000000
--- a/boost/math/tools/detail/polynomial_horner3_20.hpp
+++ /dev/null
@@ -1,496 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Unrolled polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_20_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_20_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<5>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[4] * x2 + a[2]);
-   t[1] = static_cast<V>(a[3] * x2 + a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<6>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[5] * x2 + a[3];
-   t[1] = a[4] * x2 + a[2];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<7>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[6] * x2 + a[4]);
-   t[1] = static_cast<V>(a[5] * x2 + a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<8>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[7] * x2 + a[5];
-   t[1] = a[6] * x2 + a[4];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[3]);
-   t[1] += static_cast<V>(a[2]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<9>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[8] * x2 + a[6]);
-   t[1] = static_cast<V>(a[7] * x2 + a[5]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[4]);
-   t[1] += static_cast<V>(a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<10>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[9] * x2 + a[7];
-   t[1] = a[8] * x2 + a[6];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[5]);
-   t[1] += static_cast<V>(a[4]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[3]);
-   t[1] += static_cast<V>(a[2]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<11>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[10] * x2 + a[8]);
-   t[1] = static_cast<V>(a[9] * x2 + a[7]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[6]);
-   t[1] += static_cast<V>(a[5]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[4]);
-   t[1] += static_cast<V>(a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<12>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[11] * x2 + a[9];
-   t[1] = a[10] * x2 + a[8];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[7]);
-   t[1] += static_cast<V>(a[6]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[5]);
-   t[1] += static_cast<V>(a[4]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[3]);
-   t[1] += static_cast<V>(a[2]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<13>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[12] * x2 + a[10]);
-   t[1] = static_cast<V>(a[11] * x2 + a[9]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[8]);
-   t[1] += static_cast<V>(a[7]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[6]);
-   t[1] += static_cast<V>(a[5]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[4]);
-   t[1] += static_cast<V>(a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<14>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[13] * x2 + a[11];
-   t[1] = a[12] * x2 + a[10];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[9]);
-   t[1] += static_cast<V>(a[8]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[7]);
-   t[1] += static_cast<V>(a[6]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[5]);
-   t[1] += static_cast<V>(a[4]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[3]);
-   t[1] += static_cast<V>(a[2]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<15>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[14] * x2 + a[12]);
-   t[1] = static_cast<V>(a[13] * x2 + a[11]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[10]);
-   t[1] += static_cast<V>(a[9]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[8]);
-   t[1] += static_cast<V>(a[7]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[6]);
-   t[1] += static_cast<V>(a[5]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[4]);
-   t[1] += static_cast<V>(a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<16>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[15] * x2 + a[13];
-   t[1] = a[14] * x2 + a[12];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[11]);
-   t[1] += static_cast<V>(a[10]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[9]);
-   t[1] += static_cast<V>(a[8]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[7]);
-   t[1] += static_cast<V>(a[6]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[5]);
-   t[1] += static_cast<V>(a[4]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[3]);
-   t[1] += static_cast<V>(a[2]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<17>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[16] * x2 + a[14]);
-   t[1] = static_cast<V>(a[15] * x2 + a[13]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[12]);
-   t[1] += static_cast<V>(a[11]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[10]);
-   t[1] += static_cast<V>(a[9]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[8]);
-   t[1] += static_cast<V>(a[7]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[6]);
-   t[1] += static_cast<V>(a[5]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[4]);
-   t[1] += static_cast<V>(a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<18>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[17] * x2 + a[15];
-   t[1] = a[16] * x2 + a[14];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[13]);
-   t[1] += static_cast<V>(a[12]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[11]);
-   t[1] += static_cast<V>(a[10]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[9]);
-   t[1] += static_cast<V>(a[8]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[7]);
-   t[1] += static_cast<V>(a[6]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[5]);
-   t[1] += static_cast<V>(a[4]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[3]);
-   t[1] += static_cast<V>(a[2]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<19>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[18] * x2 + a[16]);
-   t[1] = static_cast<V>(a[17] * x2 + a[15]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[14]);
-   t[1] += static_cast<V>(a[13]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[12]);
-   t[1] += static_cast<V>(a[11]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[10]);
-   t[1] += static_cast<V>(a[9]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[8]);
-   t[1] += static_cast<V>(a[7]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[6]);
-   t[1] += static_cast<V>(a[5]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[4]);
-   t[1] += static_cast<V>(a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<20>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[19] * x2 + a[17];
-   t[1] = a[18] * x2 + a[16];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[15]);
-   t[1] += static_cast<V>(a[14]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[13]);
-   t[1] += static_cast<V>(a[12]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[11]);
-   t[1] += static_cast<V>(a[10]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[9]);
-   t[1] += static_cast<V>(a[8]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[7]);
-   t[1] += static_cast<V>(a[6]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[5]);
-   t[1] += static_cast<V>(a[4]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[3]);
-   t[1] += static_cast<V>(a[2]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner3_3.hpp b/boost/math/tools/detail/polynomial_horner3_3.hpp
deleted file mode 100644
index cc6b1a9..0000000
--- a/boost/math/tools/detail/polynomial_horner3_3.hpp
+++ /dev/null
@@ -1,48 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Unrolled polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_3_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_3_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner3_4.hpp b/boost/math/tools/detail/polynomial_horner3_4.hpp
deleted file mode 100644
index 74192f0..0000000
--- a/boost/math/tools/detail/polynomial_horner3_4.hpp
+++ /dev/null
@@ -1,48 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Unrolled polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_4_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_4_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner3_5.hpp b/boost/math/tools/detail/polynomial_horner3_5.hpp
deleted file mode 100644
index 73d1900..0000000
--- a/boost/math/tools/detail/polynomial_horner3_5.hpp
+++ /dev/null
@@ -1,61 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Unrolled polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_5_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_5_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<5>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[4] * x2 + a[2]);
-   t[1] = static_cast<V>(a[3] * x2 + a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner3_6.hpp b/boost/math/tools/detail/polynomial_horner3_6.hpp
deleted file mode 100644
index da02574..0000000
--- a/boost/math/tools/detail/polynomial_horner3_6.hpp
+++ /dev/null
@@ -1,76 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Unrolled polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_6_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_6_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<5>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[4] * x2 + a[2]);
-   t[1] = static_cast<V>(a[3] * x2 + a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<6>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[5] * x2 + a[3];
-   t[1] = a[4] * x2 + a[2];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner3_7.hpp b/boost/math/tools/detail/polynomial_horner3_7.hpp
deleted file mode 100644
index d45a622..0000000
--- a/boost/math/tools/detail/polynomial_horner3_7.hpp
+++ /dev/null
@@ -1,93 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Unrolled polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_7_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_7_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<5>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[4] * x2 + a[2]);
-   t[1] = static_cast<V>(a[3] * x2 + a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<6>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[5] * x2 + a[3];
-   t[1] = a[4] * x2 + a[2];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<7>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[6] * x2 + a[4]);
-   t[1] = static_cast<V>(a[5] * x2 + a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner3_8.hpp b/boost/math/tools/detail/polynomial_horner3_8.hpp
deleted file mode 100644
index d0198bf..0000000
--- a/boost/math/tools/detail/polynomial_horner3_8.hpp
+++ /dev/null
@@ -1,112 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Unrolled polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_8_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_8_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<5>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[4] * x2 + a[2]);
-   t[1] = static_cast<V>(a[3] * x2 + a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<6>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[5] * x2 + a[3];
-   t[1] = a[4] * x2 + a[2];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<7>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[6] * x2 + a[4]);
-   t[1] = static_cast<V>(a[5] * x2 + a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<8>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[7] * x2 + a[5];
-   t[1] = a[6] * x2 + a[4];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[3]);
-   t[1] += static_cast<V>(a[2]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/polynomial_horner3_9.hpp b/boost/math/tools/detail/polynomial_horner3_9.hpp
deleted file mode 100644
index b3e0b19..0000000
--- a/boost/math/tools/detail/polynomial_horner3_9.hpp
+++ /dev/null
@@ -1,133 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Unrolled polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_EVAL_9_HPP
-#define BOOST_MATH_TOOLS_POLY_EVAL_9_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>(a[1] * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<5>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[4] * x2 + a[2]);
-   t[1] = static_cast<V>(a[3] * x2 + a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<6>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[5] * x2 + a[3];
-   t[1] = a[4] * x2 + a[2];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<7>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[6] * x2 + a[4]);
-   t[1] = static_cast<V>(a[5] * x2 + a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<8>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = a[7] * x2 + a[5];
-   t[1] = a[6] * x2 + a[4];
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[3]);
-   t[1] += static_cast<V>(a[2]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[1]);
-   t[1] += static_cast<V>(a[0]);
-   t[0] *= x;
-   return t[0] + t[1];
-}
-
-template <class T, class V>
-inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<9>*)
-{
-   V x2 = x * x;
-   V t[2];
-   t[0] = static_cast<V>(a[8] * x2 + a[6]);
-   t[1] = static_cast<V>(a[7] * x2 + a[5]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[4]);
-   t[1] += static_cast<V>(a[3]);
-   t[0] *= x2;
-   t[1] *= x2;
-   t[0] += static_cast<V>(a[2]);
-   t[1] += static_cast<V>(a[1]);
-   t[0] *= x2;
-   t[0] += static_cast<V>(a[0]);
-   t[1] *= x;
-   return t[0] + t[1];
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner1_10.hpp b/boost/math/tools/detail/rational_horner1_10.hpp
deleted file mode 100644
index 919ba6d..0000000
--- a/boost/math/tools/detail/rational_horner1_10.hpp
+++ /dev/null
@@ -1,138 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_RAT_10_HPP
-#define BOOST_MATH_TOOLS_POLY_RAT_10_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   if(x <= 1)
-     return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((a[0] * z + a[1]) / (b[0] * z + b[1]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((a[0] * z + a[1]) * z + a[2]) / ((b[0] * z + b[1]) * z + b[2]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) / (((b[0] * z + b[1]) * z + b[2]) * z + b[3]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<5>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((a[4] * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((b[4] * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) / ((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<6>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((a[5] * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((b[5] * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) / (((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<7>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((a[6] * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((b[6] * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) / ((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<8>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((((a[7] * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((((b[7] * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) / (((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<9>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((((a[8] * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((((b[8] * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) / ((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<10>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((((((a[9] * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((((((b[9] * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) / (((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]));
-   }
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner1_11.hpp b/boost/math/tools/detail/rational_horner1_11.hpp
deleted file mode 100644
index e17bfbc..0000000
--- a/boost/math/tools/detail/rational_horner1_11.hpp
+++ /dev/null
@@ -1,150 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_RAT_11_HPP
-#define BOOST_MATH_TOOLS_POLY_RAT_11_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   if(x <= 1)
-     return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((a[0] * z + a[1]) / (b[0] * z + b[1]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((a[0] * z + a[1]) * z + a[2]) / ((b[0] * z + b[1]) * z + b[2]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) / (((b[0] * z + b[1]) * z + b[2]) * z + b[3]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<5>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((a[4] * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((b[4] * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) / ((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<6>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((a[5] * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((b[5] * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) / (((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<7>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((a[6] * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((b[6] * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) / ((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<8>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((((a[7] * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((((b[7] * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) / (((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<9>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((((a[8] * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((((b[8] * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) / ((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<10>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((((((a[9] * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((((((b[9] * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) / (((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<11>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((((((a[10] * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((((((b[10] * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) / ((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]));
-   }
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner1_12.hpp b/boost/math/tools/detail/rational_horner1_12.hpp
deleted file mode 100644
index 67b430a..0000000
--- a/boost/math/tools/detail/rational_horner1_12.hpp
+++ /dev/null
@@ -1,162 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_RAT_12_HPP
-#define BOOST_MATH_TOOLS_POLY_RAT_12_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   if(x <= 1)
-     return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((a[0] * z + a[1]) / (b[0] * z + b[1]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((a[0] * z + a[1]) * z + a[2]) / ((b[0] * z + b[1]) * z + b[2]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) / (((b[0] * z + b[1]) * z + b[2]) * z + b[3]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<5>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((a[4] * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((b[4] * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) / ((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<6>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((a[5] * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((b[5] * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) / (((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<7>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((a[6] * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((b[6] * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) / ((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<8>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((((a[7] * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((((b[7] * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) / (((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<9>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((((a[8] * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((((b[8] * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) / ((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<10>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((((((a[9] * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((((((b[9] * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) / (((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<11>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((((((a[10] * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((((((b[10] * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) / ((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<12>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((((((((a[11] * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((((((((b[11] * x + b[10]) * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) * z + a[11]) / (((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]) * z + b[11]));
-   }
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner1_13.hpp b/boost/math/tools/detail/rational_horner1_13.hpp
deleted file mode 100644
index 33ae675..0000000
--- a/boost/math/tools/detail/rational_horner1_13.hpp
+++ /dev/null
@@ -1,174 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_RAT_13_HPP
-#define BOOST_MATH_TOOLS_POLY_RAT_13_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   if(x <= 1)
-     return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((a[0] * z + a[1]) / (b[0] * z + b[1]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((a[0] * z + a[1]) * z + a[2]) / ((b[0] * z + b[1]) * z + b[2]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) / (((b[0] * z + b[1]) * z + b[2]) * z + b[3]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<5>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((a[4] * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((b[4] * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) / ((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<6>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((a[5] * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((b[5] * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) / (((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<7>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((a[6] * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((b[6] * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) / ((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<8>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((((a[7] * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((((b[7] * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) / (((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<9>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((((a[8] * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((((b[8] * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) / ((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<10>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((((((a[9] * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((((((b[9] * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) / (((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<11>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((((((a[10] * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((((((b[10] * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) / ((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<12>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((((((((a[11] * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((((((((b[11] * x + b[10]) * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) * z + a[11]) / (((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]) * z + b[11]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<13>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((((((((a[12] * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((((((((b[12] * x + b[11]) * x + b[10]) * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) * z + a[11]) * z + a[12]) / ((((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]) * z + b[11]) * z + b[12]));
-   }
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner1_14.hpp b/boost/math/tools/detail/rational_horner1_14.hpp
deleted file mode 100644
index 0c5f188..0000000
--- a/boost/math/tools/detail/rational_horner1_14.hpp
+++ /dev/null
@@ -1,186 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_RAT_14_HPP
-#define BOOST_MATH_TOOLS_POLY_RAT_14_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   if(x <= 1)
-     return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((a[0] * z + a[1]) / (b[0] * z + b[1]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((a[0] * z + a[1]) * z + a[2]) / ((b[0] * z + b[1]) * z + b[2]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) / (((b[0] * z + b[1]) * z + b[2]) * z + b[3]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<5>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((a[4] * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((b[4] * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) / ((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<6>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((a[5] * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((b[5] * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) / (((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<7>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((a[6] * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((b[6] * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) / ((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<8>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((((a[7] * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((((b[7] * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) / (((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<9>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((((a[8] * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((((b[8] * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) / ((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<10>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((((((a[9] * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((((((b[9] * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) / (((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<11>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((((((a[10] * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((((((b[10] * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) / ((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<12>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((((((((a[11] * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((((((((b[11] * x + b[10]) * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) * z + a[11]) / (((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]) * z + b[11]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<13>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((((((((a[12] * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((((((((b[12] * x + b[11]) * x + b[10]) * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) * z + a[11]) * z + a[12]) / ((((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]) * z + b[11]) * z + b[12]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<14>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((((((((((a[13] * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((((((((((b[13] * x + b[12]) * x + b[11]) * x + b[10]) * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) * z + a[11]) * z + a[12]) * z + a[13]) / (((((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]) * z + b[11]) * z + b[12]) * z + b[13]));
-   }
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner1_15.hpp b/boost/math/tools/detail/rational_horner1_15.hpp
deleted file mode 100644
index 8481907..0000000
--- a/boost/math/tools/detail/rational_horner1_15.hpp
+++ /dev/null
@@ -1,198 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_RAT_15_HPP
-#define BOOST_MATH_TOOLS_POLY_RAT_15_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   if(x <= 1)
-     return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((a[0] * z + a[1]) / (b[0] * z + b[1]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((a[0] * z + a[1]) * z + a[2]) / ((b[0] * z + b[1]) * z + b[2]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) / (((b[0] * z + b[1]) * z + b[2]) * z + b[3]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<5>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((a[4] * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((b[4] * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) / ((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<6>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((a[5] * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((b[5] * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) / (((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<7>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((a[6] * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((b[6] * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) / ((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<8>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((((a[7] * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((((b[7] * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) / (((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<9>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((((a[8] * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((((b[8] * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) / ((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<10>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((((((a[9] * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((((((b[9] * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) / (((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<11>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((((((a[10] * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((((((b[10] * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) / ((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<12>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((((((((a[11] * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((((((((b[11] * x + b[10]) * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) * z + a[11]) / (((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]) * z + b[11]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<13>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((((((((a[12] * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((((((((b[12] * x + b[11]) * x + b[10]) * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) * z + a[11]) * z + a[12]) / ((((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]) * z + b[11]) * z + b[12]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<14>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((((((((((a[13] * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((((((((((b[13] * x + b[12]) * x + b[11]) * x + b[10]) * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) * z + a[11]) * z + a[12]) * z + a[13]) / (((((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]) * z + b[11]) * z + b[12]) * z + b[13]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<15>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((((((((((a[14] * x + a[13]) * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((((((((((b[14] * x + b[13]) * x + b[12]) * x + b[11]) * x + b[10]) * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) * z + a[11]) * z + a[12]) * z + a[13]) * z + a[14]) / ((((((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]) * z + b[11]) * z + b[12]) * z + b[13]) * z + b[14]));
-   }
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner1_16.hpp b/boost/math/tools/detail/rational_horner1_16.hpp
deleted file mode 100644
index e0661f8..0000000
--- a/boost/math/tools/detail/rational_horner1_16.hpp
+++ /dev/null
@@ -1,210 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_RAT_16_HPP
-#define BOOST_MATH_TOOLS_POLY_RAT_16_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   if(x <= 1)
-     return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((a[0] * z + a[1]) / (b[0] * z + b[1]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((a[0] * z + a[1]) * z + a[2]) / ((b[0] * z + b[1]) * z + b[2]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) / (((b[0] * z + b[1]) * z + b[2]) * z + b[3]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<5>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((a[4] * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((b[4] * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) / ((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<6>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((a[5] * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((b[5] * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) / (((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<7>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((a[6] * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((b[6] * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) / ((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<8>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((((a[7] * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((((b[7] * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) / (((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<9>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((((a[8] * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((((b[8] * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) / ((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<10>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((((((a[9] * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((((((b[9] * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) / (((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<11>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((((((a[10] * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((((((b[10] * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) / ((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<12>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((((((((a[11] * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((((((((b[11] * x + b[10]) * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) * z + a[11]) / (((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]) * z + b[11]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<13>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((((((((a[12] * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((((((((b[12] * x + b[11]) * x + b[10]) * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) * z + a[11]) * z + a[12]) / ((((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]) * z + b[11]) * z + b[12]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<14>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((((((((((a[13] * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((((((((((b[13] * x + b[12]) * x + b[11]) * x + b[10]) * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) * z + a[11]) * z + a[12]) * z + a[13]) / (((((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]) * z + b[11]) * z + b[12]) * z + b[13]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<15>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((((((((((a[14] * x + a[13]) * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((((((((((b[14] * x + b[13]) * x + b[12]) * x + b[11]) * x + b[10]) * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) * z + a[11]) * z + a[12]) * z + a[13]) * z + a[14]) / ((((((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]) * z + b[11]) * z + b[12]) * z + b[13]) * z + b[14]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<16>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((((((((((((a[15] * x + a[14]) * x + a[13]) * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((((((((((((b[15] * x + b[14]) * x + b[13]) * x + b[12]) * x + b[11]) * x + b[10]) * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) * z + a[11]) * z + a[12]) * z + a[13]) * z + a[14]) * z + a[15]) / (((((((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]) * z + b[11]) * z + b[12]) * z + b[13]) * z + b[14]) * z + b[15]));
-   }
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner1_17.hpp b/boost/math/tools/detail/rational_horner1_17.hpp
deleted file mode 100644
index f123da4..0000000
--- a/boost/math/tools/detail/rational_horner1_17.hpp
+++ /dev/null
@@ -1,222 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_RAT_17_HPP
-#define BOOST_MATH_TOOLS_POLY_RAT_17_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   if(x <= 1)
-     return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((a[0] * z + a[1]) / (b[0] * z + b[1]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((a[0] * z + a[1]) * z + a[2]) / ((b[0] * z + b[1]) * z + b[2]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) / (((b[0] * z + b[1]) * z + b[2]) * z + b[3]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<5>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((a[4] * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((b[4] * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) / ((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<6>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((a[5] * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((b[5] * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) / (((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<7>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((a[6] * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((b[6] * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) / ((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<8>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((((a[7] * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((((b[7] * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) / (((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<9>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((((a[8] * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((((b[8] * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) / ((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<10>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((((((a[9] * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((((((b[9] * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) / (((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<11>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((((((a[10] * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((((((b[10] * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) / ((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<12>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((((((((a[11] * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((((((((b[11] * x + b[10]) * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) * z + a[11]) / (((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]) * z + b[11]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<13>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((((((((a[12] * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((((((((b[12] * x + b[11]) * x + b[10]) * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) * z + a[11]) * z + a[12]) / ((((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]) * z + b[11]) * z + b[12]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<14>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((((((((((a[13] * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((((((((((b[13] * x + b[12]) * x + b[11]) * x + b[10]) * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) * z + a[11]) * z + a[12]) * z + a[13]) / (((((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]) * z + b[11]) * z + b[12]) * z + b[13]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<15>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((((((((((a[14] * x + a[13]) * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((((((((((b[14] * x + b[13]) * x + b[12]) * x + b[11]) * x + b[10]) * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) * z + a[11]) * z + a[12]) * z + a[13]) * z + a[14]) / ((((((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]) * z + b[11]) * z + b[12]) * z + b[13]) * z + b[14]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<16>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((((((((((((a[15] * x + a[14]) * x + a[13]) * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((((((((((((b[15] * x + b[14]) * x + b[13]) * x + b[12]) * x + b[11]) * x + b[10]) * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) * z + a[11]) * z + a[12]) * z + a[13]) * z + a[14]) * z + a[15]) / (((((((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]) * z + b[11]) * z + b[12]) * z + b[13]) * z + b[14]) * z + b[15]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<17>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((((((((((((a[16] * x + a[15]) * x + a[14]) * x + a[13]) * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((((((((((((b[16] * x + b[15]) * x + b[14]) * x + b[13]) * x + b[12]) * x + b[11]) * x + b[10]) * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) * z + a[11]) * z + a[12]) * z + a[13]) * z + a[14]) * z + a[15]) * z + a[16]) / ((((((((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]) * z + b[11]) * z + b[12]) * z + b[13]) * z + b[14]) * z + b[15]) * z + b[16]));
-   }
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner1_18.hpp b/boost/math/tools/detail/rational_horner1_18.hpp
deleted file mode 100644
index 718ace8..0000000
--- a/boost/math/tools/detail/rational_horner1_18.hpp
+++ /dev/null
@@ -1,234 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_RAT_18_HPP
-#define BOOST_MATH_TOOLS_POLY_RAT_18_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   if(x <= 1)
-     return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((a[0] * z + a[1]) / (b[0] * z + b[1]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((a[0] * z + a[1]) * z + a[2]) / ((b[0] * z + b[1]) * z + b[2]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) / (((b[0] * z + b[1]) * z + b[2]) * z + b[3]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<5>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((a[4] * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((b[4] * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) / ((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<6>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((a[5] * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((b[5] * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) / (((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<7>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((a[6] * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((b[6] * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) / ((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<8>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((((a[7] * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((((b[7] * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) / (((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<9>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((((a[8] * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((((b[8] * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) / ((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<10>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((((((a[9] * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((((((b[9] * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) / (((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<11>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((((((a[10] * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((((((b[10] * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) / ((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<12>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((((((((a[11] * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((((((((b[11] * x + b[10]) * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) * z + a[11]) / (((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]) * z + b[11]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<13>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((((((((a[12] * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((((((((b[12] * x + b[11]) * x + b[10]) * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) * z + a[11]) * z + a[12]) / ((((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]) * z + b[11]) * z + b[12]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<14>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((((((((((a[13] * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((((((((((b[13] * x + b[12]) * x + b[11]) * x + b[10]) * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) * z + a[11]) * z + a[12]) * z + a[13]) / (((((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]) * z + b[11]) * z + b[12]) * z + b[13]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<15>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((((((((((a[14] * x + a[13]) * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((((((((((b[14] * x + b[13]) * x + b[12]) * x + b[11]) * x + b[10]) * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) * z + a[11]) * z + a[12]) * z + a[13]) * z + a[14]) / ((((((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]) * z + b[11]) * z + b[12]) * z + b[13]) * z + b[14]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<16>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((((((((((((a[15] * x + a[14]) * x + a[13]) * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((((((((((((b[15] * x + b[14]) * x + b[13]) * x + b[12]) * x + b[11]) * x + b[10]) * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) * z + a[11]) * z + a[12]) * z + a[13]) * z + a[14]) * z + a[15]) / (((((((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]) * z + b[11]) * z + b[12]) * z + b[13]) * z + b[14]) * z + b[15]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<17>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((((((((((((a[16] * x + a[15]) * x + a[14]) * x + a[13]) * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((((((((((((b[16] * x + b[15]) * x + b[14]) * x + b[13]) * x + b[12]) * x + b[11]) * x + b[10]) * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) * z + a[11]) * z + a[12]) * z + a[13]) * z + a[14]) * z + a[15]) * z + a[16]) / ((((((((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]) * z + b[11]) * z + b[12]) * z + b[13]) * z + b[14]) * z + b[15]) * z + b[16]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<18>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((((((((((((((a[17] * x + a[16]) * x + a[15]) * x + a[14]) * x + a[13]) * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((((((((((((((b[17] * x + b[16]) * x + b[15]) * x + b[14]) * x + b[13]) * x + b[12]) * x + b[11]) * x + b[10]) * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((((((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) * z + a[11]) * z + a[12]) * z + a[13]) * z + a[14]) * z + a[15]) * z + a[16]) * z + a[17]) / (((((((((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]) * z + b[11]) * z + b[12]) * z + b[13]) * z + b[14]) * z + b[15]) * z + b[16]) * z + b[17]));
-   }
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner1_19.hpp b/boost/math/tools/detail/rational_horner1_19.hpp
deleted file mode 100644
index c849ba8..0000000
--- a/boost/math/tools/detail/rational_horner1_19.hpp
+++ /dev/null
@@ -1,246 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_RAT_19_HPP
-#define BOOST_MATH_TOOLS_POLY_RAT_19_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   if(x <= 1)
-     return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((a[0] * z + a[1]) / (b[0] * z + b[1]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((a[0] * z + a[1]) * z + a[2]) / ((b[0] * z + b[1]) * z + b[2]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) / (((b[0] * z + b[1]) * z + b[2]) * z + b[3]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<5>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((a[4] * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((b[4] * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) / ((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<6>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((a[5] * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((b[5] * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) / (((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<7>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((a[6] * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((b[6] * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) / ((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<8>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((((a[7] * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((((b[7] * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) / (((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<9>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((((a[8] * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((((b[8] * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) / ((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<10>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((((((a[9] * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((((((b[9] * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) / (((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<11>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((((((a[10] * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((((((b[10] * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) / ((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<12>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((((((((a[11] * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((((((((b[11] * x + b[10]) * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) * z + a[11]) / (((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]) * z + b[11]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<13>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((((((((a[12] * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((((((((b[12] * x + b[11]) * x + b[10]) * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) * z + a[11]) * z + a[12]) / ((((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]) * z + b[11]) * z + b[12]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<14>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((((((((((a[13] * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((((((((((b[13] * x + b[12]) * x + b[11]) * x + b[10]) * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) * z + a[11]) * z + a[12]) * z + a[13]) / (((((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]) * z + b[11]) * z + b[12]) * z + b[13]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<15>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((((((((((a[14] * x + a[13]) * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((((((((((b[14] * x + b[13]) * x + b[12]) * x + b[11]) * x + b[10]) * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) * z + a[11]) * z + a[12]) * z + a[13]) * z + a[14]) / ((((((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]) * z + b[11]) * z + b[12]) * z + b[13]) * z + b[14]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<16>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((((((((((((a[15] * x + a[14]) * x + a[13]) * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((((((((((((b[15] * x + b[14]) * x + b[13]) * x + b[12]) * x + b[11]) * x + b[10]) * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) * z + a[11]) * z + a[12]) * z + a[13]) * z + a[14]) * z + a[15]) / (((((((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]) * z + b[11]) * z + b[12]) * z + b[13]) * z + b[14]) * z + b[15]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<17>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((((((((((((a[16] * x + a[15]) * x + a[14]) * x + a[13]) * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((((((((((((b[16] * x + b[15]) * x + b[14]) * x + b[13]) * x + b[12]) * x + b[11]) * x + b[10]) * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) * z + a[11]) * z + a[12]) * z + a[13]) * z + a[14]) * z + a[15]) * z + a[16]) / ((((((((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]) * z + b[11]) * z + b[12]) * z + b[13]) * z + b[14]) * z + b[15]) * z + b[16]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<18>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((((((((((((((a[17] * x + a[16]) * x + a[15]) * x + a[14]) * x + a[13]) * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((((((((((((((b[17] * x + b[16]) * x + b[15]) * x + b[14]) * x + b[13]) * x + b[12]) * x + b[11]) * x + b[10]) * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((((((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) * z + a[11]) * z + a[12]) * z + a[13]) * z + a[14]) * z + a[15]) * z + a[16]) * z + a[17]) / (((((((((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]) * z + b[11]) * z + b[12]) * z + b[13]) * z + b[14]) * z + b[15]) * z + b[16]) * z + b[17]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<19>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((((((((((((((a[18] * x + a[17]) * x + a[16]) * x + a[15]) * x + a[14]) * x + a[13]) * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((((((((((((((b[18] * x + b[17]) * x + b[16]) * x + b[15]) * x + b[14]) * x + b[13]) * x + b[12]) * x + b[11]) * x + b[10]) * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x [...]
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((((((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) * z + a[11]) * z + a[12]) * z + a[13]) * z + a[14]) * z + a[15]) * z + a[16]) * z + a[17]) * z + a[18]) / ((((((((((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]) * z + b[11]) * z + b[12]) * z + b[13]) * z + b[14]) * z + b[15]) * z + [...]
-   }
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner1_2.hpp b/boost/math/tools/detail/rational_horner1_2.hpp
deleted file mode 100644
index 87e41ab..0000000
--- a/boost/math/tools/detail/rational_horner1_2.hpp
+++ /dev/null
@@ -1,42 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_RAT_2_HPP
-#define BOOST_MATH_TOOLS_POLY_RAT_2_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   if(x <= 1)
-     return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((a[0] * z + a[1]) / (b[0] * z + b[1]));
-   }
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner1_20.hpp b/boost/math/tools/detail/rational_horner1_20.hpp
deleted file mode 100644
index e05eaaa..0000000
--- a/boost/math/tools/detail/rational_horner1_20.hpp
+++ /dev/null
@@ -1,258 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_RAT_20_HPP
-#define BOOST_MATH_TOOLS_POLY_RAT_20_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   if(x <= 1)
-     return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((a[0] * z + a[1]) / (b[0] * z + b[1]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((a[0] * z + a[1]) * z + a[2]) / ((b[0] * z + b[1]) * z + b[2]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) / (((b[0] * z + b[1]) * z + b[2]) * z + b[3]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<5>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((a[4] * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((b[4] * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) / ((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<6>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((a[5] * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((b[5] * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) / (((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<7>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((a[6] * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((b[6] * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) / ((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<8>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((((a[7] * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((((b[7] * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) / (((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<9>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((((a[8] * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((((b[8] * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) / ((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<10>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((((((a[9] * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((((((b[9] * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) / (((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<11>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((((((a[10] * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((((((b[10] * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) / ((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<12>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((((((((a[11] * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((((((((b[11] * x + b[10]) * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) * z + a[11]) / (((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]) * z + b[11]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<13>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((((((((a[12] * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((((((((b[12] * x + b[11]) * x + b[10]) * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) * z + a[11]) * z + a[12]) / ((((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]) * z + b[11]) * z + b[12]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<14>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((((((((((a[13] * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((((((((((b[13] * x + b[12]) * x + b[11]) * x + b[10]) * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) * z + a[11]) * z + a[12]) * z + a[13]) / (((((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]) * z + b[11]) * z + b[12]) * z + b[13]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<15>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((((((((((a[14] * x + a[13]) * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((((((((((b[14] * x + b[13]) * x + b[12]) * x + b[11]) * x + b[10]) * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) * z + a[11]) * z + a[12]) * z + a[13]) * z + a[14]) / ((((((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]) * z + b[11]) * z + b[12]) * z + b[13]) * z + b[14]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<16>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((((((((((((a[15] * x + a[14]) * x + a[13]) * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((((((((((((b[15] * x + b[14]) * x + b[13]) * x + b[12]) * x + b[11]) * x + b[10]) * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) * z + a[11]) * z + a[12]) * z + a[13]) * z + a[14]) * z + a[15]) / (((((((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]) * z + b[11]) * z + b[12]) * z + b[13]) * z + b[14]) * z + b[15]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<17>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((((((((((((a[16] * x + a[15]) * x + a[14]) * x + a[13]) * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((((((((((((b[16] * x + b[15]) * x + b[14]) * x + b[13]) * x + b[12]) * x + b[11]) * x + b[10]) * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) * z + a[11]) * z + a[12]) * z + a[13]) * z + a[14]) * z + a[15]) * z + a[16]) / ((((((((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]) * z + b[11]) * z + b[12]) * z + b[13]) * z + b[14]) * z + b[15]) * z + b[16]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<18>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((((((((((((((a[17] * x + a[16]) * x + a[15]) * x + a[14]) * x + a[13]) * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((((((((((((((b[17] * x + b[16]) * x + b[15]) * x + b[14]) * x + b[13]) * x + b[12]) * x + b[11]) * x + b[10]) * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((((((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) * z + a[11]) * z + a[12]) * z + a[13]) * z + a[14]) * z + a[15]) * z + a[16]) * z + a[17]) / (((((((((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]) * z + b[11]) * z + b[12]) * z + b[13]) * z + b[14]) * z + b[15]) * z + b[16]) * z + b[17]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<19>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((((((((((((((a[18] * x + a[17]) * x + a[16]) * x + a[15]) * x + a[14]) * x + a[13]) * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((((((((((((((b[18] * x + b[17]) * x + b[16]) * x + b[15]) * x + b[14]) * x + b[13]) * x + b[12]) * x + b[11]) * x + b[10]) * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x [...]
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((((((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) * z + a[11]) * z + a[12]) * z + a[13]) * z + a[14]) * z + a[15]) * z + a[16]) * z + a[17]) * z + a[18]) / ((((((((((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]) * z + b[11]) * z + b[12]) * z + b[13]) * z + b[14]) * z + b[15]) * z + [...]
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<20>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((((((((((((((((a[19] * x + a[18]) * x + a[17]) * x + a[16]) * x + a[15]) * x + a[14]) * x + a[13]) * x + a[12]) * x + a[11]) * x + a[10]) * x + a[9]) * x + a[8]) * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((((((((((((((((b[19] * x + b[18]) * x + b[17]) * x + b[16]) * x + b[15]) * x + b[14]) * x + b[13]) * x + b[12]) * x + b[11]) * x + b[10]) * x + b[9]) * x + b[8]) * x + b[7]) * x + b[6]) * x + b[5]) [...]
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((((((((((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) * z + a[9]) * z + a[10]) * z + a[11]) * z + a[12]) * z + a[13]) * z + a[14]) * z + a[15]) * z + a[16]) * z + a[17]) * z + a[18]) * z + a[19]) / (((((((((((((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]) * z + b[9]) * z + b[10]) * z + b[11]) * z + b[12]) * z + b[13]) * z + b[14]) * z [...]
-   }
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner1_3.hpp b/boost/math/tools/detail/rational_horner1_3.hpp
deleted file mode 100644
index ac1b785..0000000
--- a/boost/math/tools/detail/rational_horner1_3.hpp
+++ /dev/null
@@ -1,54 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_RAT_3_HPP
-#define BOOST_MATH_TOOLS_POLY_RAT_3_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   if(x <= 1)
-     return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((a[0] * z + a[1]) / (b[0] * z + b[1]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((a[0] * z + a[1]) * z + a[2]) / ((b[0] * z + b[1]) * z + b[2]));
-   }
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner1_4.hpp b/boost/math/tools/detail/rational_horner1_4.hpp
deleted file mode 100644
index eeced60..0000000
--- a/boost/math/tools/detail/rational_horner1_4.hpp
+++ /dev/null
@@ -1,66 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_RAT_4_HPP
-#define BOOST_MATH_TOOLS_POLY_RAT_4_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   if(x <= 1)
-     return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((a[0] * z + a[1]) / (b[0] * z + b[1]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((a[0] * z + a[1]) * z + a[2]) / ((b[0] * z + b[1]) * z + b[2]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) / (((b[0] * z + b[1]) * z + b[2]) * z + b[3]));
-   }
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner1_5.hpp b/boost/math/tools/detail/rational_horner1_5.hpp
deleted file mode 100644
index 0479f66..0000000
--- a/boost/math/tools/detail/rational_horner1_5.hpp
+++ /dev/null
@@ -1,78 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_RAT_5_HPP
-#define BOOST_MATH_TOOLS_POLY_RAT_5_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   if(x <= 1)
-     return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((a[0] * z + a[1]) / (b[0] * z + b[1]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((a[0] * z + a[1]) * z + a[2]) / ((b[0] * z + b[1]) * z + b[2]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) / (((b[0] * z + b[1]) * z + b[2]) * z + b[3]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<5>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((a[4] * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((b[4] * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) / ((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]));
-   }
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner1_6.hpp b/boost/math/tools/detail/rational_horner1_6.hpp
deleted file mode 100644
index db25996..0000000
--- a/boost/math/tools/detail/rational_horner1_6.hpp
+++ /dev/null
@@ -1,90 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_RAT_6_HPP
-#define BOOST_MATH_TOOLS_POLY_RAT_6_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   if(x <= 1)
-     return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((a[0] * z + a[1]) / (b[0] * z + b[1]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((a[0] * z + a[1]) * z + a[2]) / ((b[0] * z + b[1]) * z + b[2]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) / (((b[0] * z + b[1]) * z + b[2]) * z + b[3]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<5>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((a[4] * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((b[4] * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) / ((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<6>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((a[5] * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((b[5] * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) / (((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]));
-   }
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner1_7.hpp b/boost/math/tools/detail/rational_horner1_7.hpp
deleted file mode 100644
index b431fe9..0000000
--- a/boost/math/tools/detail/rational_horner1_7.hpp
+++ /dev/null
@@ -1,102 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_RAT_7_HPP
-#define BOOST_MATH_TOOLS_POLY_RAT_7_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   if(x <= 1)
-     return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((a[0] * z + a[1]) / (b[0] * z + b[1]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((a[0] * z + a[1]) * z + a[2]) / ((b[0] * z + b[1]) * z + b[2]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) / (((b[0] * z + b[1]) * z + b[2]) * z + b[3]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<5>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((a[4] * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((b[4] * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) / ((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<6>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((a[5] * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((b[5] * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) / (((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<7>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((a[6] * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((b[6] * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) / ((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]));
-   }
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner1_8.hpp b/boost/math/tools/detail/rational_horner1_8.hpp
deleted file mode 100644
index 5a04a7a..0000000
--- a/boost/math/tools/detail/rational_horner1_8.hpp
+++ /dev/null
@@ -1,114 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_RAT_8_HPP
-#define BOOST_MATH_TOOLS_POLY_RAT_8_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   if(x <= 1)
-     return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((a[0] * z + a[1]) / (b[0] * z + b[1]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((a[0] * z + a[1]) * z + a[2]) / ((b[0] * z + b[1]) * z + b[2]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) / (((b[0] * z + b[1]) * z + b[2]) * z + b[3]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<5>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((a[4] * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((b[4] * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) / ((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<6>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((a[5] * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((b[5] * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) / (((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<7>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((a[6] * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((b[6] * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) / ((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<8>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((((a[7] * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((((b[7] * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) / (((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]));
-   }
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner1_9.hpp b/boost/math/tools/detail/rational_horner1_9.hpp
deleted file mode 100644
index 4b5465f..0000000
--- a/boost/math/tools/detail/rational_horner1_9.hpp
+++ /dev/null
@@ -1,126 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using Horners rule
-#ifndef BOOST_MATH_TOOLS_POLY_RAT_9_HPP
-#define BOOST_MATH_TOOLS_POLY_RAT_9_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   if(x <= 1)
-     return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((a[0] * z + a[1]) / (b[0] * z + b[1]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((a[0] * z + a[1]) * z + a[2]) / ((b[0] * z + b[1]) * z + b[2]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) / (((b[0] * z + b[1]) * z + b[2]) * z + b[3]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<5>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((a[4] * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((b[4] * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) / ((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<6>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((a[5] * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((b[5] * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) / (((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<7>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((a[6] * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((b[6] * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) / ((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<8>*)
-{
-   if(x <= 1)
-     return static_cast<V>((((((((a[7] * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / (((((((b[7] * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) / (((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<9>*)
-{
-   if(x <= 1)
-     return static_cast<V>(((((((((a[8] * x + a[7]) * x + a[6]) * x + a[5]) * x + a[4]) * x + a[3]) * x + a[2]) * x + a[1]) * x + a[0]) / ((((((((b[8] * x + b[7]) * x + b[6]) * x + b[5]) * x + b[4]) * x + b[3]) * x + b[2]) * x + b[1]) * x + b[0]));
-   else
-   {
-      V z = 1 / x;
-      return static_cast<V>(((((((((a[0] * z + a[1]) * z + a[2]) * z + a[3]) * z + a[4]) * z + a[5]) * z + a[6]) * z + a[7]) * z + a[8]) / ((((((((b[0] * z + b[1]) * z + b[2]) * z + b[3]) * z + b[4]) * z + b[5]) * z + b[6]) * z + b[7]) * z + b[8]));
-   }
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner2_10.hpp b/boost/math/tools/detail/rational_horner2_10.hpp
deleted file mode 100644
index e26d2d9..0000000
--- a/boost/math/tools/detail/rational_horner2_10.hpp
+++ /dev/null
@@ -1,144 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_RAT_EVAL_10_HPP
-#define BOOST_MATH_TOOLS_RAT_EVAL_10_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<5>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((a[4] * x2 + a[2]) * x2 + a[0] + (a[3] * x2 + a[1]) * x) / ((b[4] * x2 + b[2]) * x2 + b[0] + (b[3] * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((a[0] * z2 + a[2]) * z2 + a[4] + (a[1] * z2 + a[3]) * z) / ((b[0] * z2 + b[2]) * z2 + b[4] + (b[1] * z2 + b[3]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<6>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((a[5] * x2 + a[3]) * x2 + a[1]) * x + (a[4] * x2 + a[2]) * x2 + a[0]) / (((b[5] * x2 + b[3]) * x2 + b[1]) * x + (b[4] * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((a[0] * z2 + a[2]) * z2 + a[4]) * z + (a[1] * z2 + a[3]) * z2 + a[5]) / (((b[0] * z2 + b[2]) * z2 + b[4]) * z + (b[1] * z2 + b[3]) * z2 + b[5]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<7>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((a[5] * x2 + a[3]) * x2 + a[1]) * x) / (((b[6] * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + ((b[5] * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6] + ((a[1] * z2 + a[3]) * z2 + a[5]) * z) / (((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6] + ((b[1] * z2 + b[3]) * z2 + b[5]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<8>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0]) / ((((b[7] * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x + ((b[6] * x2 + b[4]) * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z + ((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) / ((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z + ((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<9>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((((a[8] * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + (((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x) / ((((b[8] * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + (((b[7] * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8] + (((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z) / ((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8] + (((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<10>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((((a[9] * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + (((a[8] * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]) / (((((b[9] * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x + (((b[8] * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z + (((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) / (((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z + (((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]));
-   }
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner2_11.hpp b/boost/math/tools/detail/rational_horner2_11.hpp
deleted file mode 100644
index c05e697..0000000
--- a/boost/math/tools/detail/rational_horner2_11.hpp
+++ /dev/null
@@ -1,160 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_RAT_EVAL_11_HPP
-#define BOOST_MATH_TOOLS_RAT_EVAL_11_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<5>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((a[4] * x2 + a[2]) * x2 + a[0] + (a[3] * x2 + a[1]) * x) / ((b[4] * x2 + b[2]) * x2 + b[0] + (b[3] * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((a[0] * z2 + a[2]) * z2 + a[4] + (a[1] * z2 + a[3]) * z) / ((b[0] * z2 + b[2]) * z2 + b[4] + (b[1] * z2 + b[3]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<6>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((a[5] * x2 + a[3]) * x2 + a[1]) * x + (a[4] * x2 + a[2]) * x2 + a[0]) / (((b[5] * x2 + b[3]) * x2 + b[1]) * x + (b[4] * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((a[0] * z2 + a[2]) * z2 + a[4]) * z + (a[1] * z2 + a[3]) * z2 + a[5]) / (((b[0] * z2 + b[2]) * z2 + b[4]) * z + (b[1] * z2 + b[3]) * z2 + b[5]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<7>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((a[5] * x2 + a[3]) * x2 + a[1]) * x) / (((b[6] * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + ((b[5] * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6] + ((a[1] * z2 + a[3]) * z2 + a[5]) * z) / (((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6] + ((b[1] * z2 + b[3]) * z2 + b[5]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<8>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0]) / ((((b[7] * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x + ((b[6] * x2 + b[4]) * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z + ((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) / ((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z + ((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<9>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((((a[8] * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + (((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x) / ((((b[8] * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + (((b[7] * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8] + (((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z) / ((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8] + (((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<10>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((((a[9] * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + (((a[8] * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]) / (((((b[9] * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x + (((b[8] * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z + (((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) / (((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z + (((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<11>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((((a[10] * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((((a[9] * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x) / (((((b[10] * x2 + b[8]) * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + ((((b[9] * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10] + ((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z) / (((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10] + ((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]) * z));
-   }
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner2_12.hpp b/boost/math/tools/detail/rational_horner2_12.hpp
deleted file mode 100644
index 4ee3734..0000000
--- a/boost/math/tools/detail/rational_horner2_12.hpp
+++ /dev/null
@@ -1,176 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_RAT_EVAL_12_HPP
-#define BOOST_MATH_TOOLS_RAT_EVAL_12_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<5>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((a[4] * x2 + a[2]) * x2 + a[0] + (a[3] * x2 + a[1]) * x) / ((b[4] * x2 + b[2]) * x2 + b[0] + (b[3] * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((a[0] * z2 + a[2]) * z2 + a[4] + (a[1] * z2 + a[3]) * z) / ((b[0] * z2 + b[2]) * z2 + b[4] + (b[1] * z2 + b[3]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<6>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((a[5] * x2 + a[3]) * x2 + a[1]) * x + (a[4] * x2 + a[2]) * x2 + a[0]) / (((b[5] * x2 + b[3]) * x2 + b[1]) * x + (b[4] * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((a[0] * z2 + a[2]) * z2 + a[4]) * z + (a[1] * z2 + a[3]) * z2 + a[5]) / (((b[0] * z2 + b[2]) * z2 + b[4]) * z + (b[1] * z2 + b[3]) * z2 + b[5]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<7>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((a[5] * x2 + a[3]) * x2 + a[1]) * x) / (((b[6] * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + ((b[5] * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6] + ((a[1] * z2 + a[3]) * z2 + a[5]) * z) / (((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6] + ((b[1] * z2 + b[3]) * z2 + b[5]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<8>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0]) / ((((b[7] * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x + ((b[6] * x2 + b[4]) * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z + ((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) / ((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z + ((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<9>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((((a[8] * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + (((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x) / ((((b[8] * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + (((b[7] * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8] + (((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z) / ((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8] + (((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<10>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((((a[9] * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + (((a[8] * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]) / (((((b[9] * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x + (((b[8] * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z + (((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) / (((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z + (((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<11>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((((a[10] * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((((a[9] * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x) / (((((b[10] * x2 + b[8]) * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + ((((b[9] * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10] + ((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z) / (((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10] + ((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<12>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((((((a[11] * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((((a[10] * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]) / ((((((b[11] * x2 + b[9]) * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x + ((((b[10] * x2 + b[8]) * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10]) * z + ((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z2 + a[11]) / ((((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10]) * z + ((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]) * z2 + b[11]));
-   }
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner2_13.hpp b/boost/math/tools/detail/rational_horner2_13.hpp
deleted file mode 100644
index 37977a1..0000000
--- a/boost/math/tools/detail/rational_horner2_13.hpp
+++ /dev/null
@@ -1,192 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_RAT_EVAL_13_HPP
-#define BOOST_MATH_TOOLS_RAT_EVAL_13_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<5>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((a[4] * x2 + a[2]) * x2 + a[0] + (a[3] * x2 + a[1]) * x) / ((b[4] * x2 + b[2]) * x2 + b[0] + (b[3] * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((a[0] * z2 + a[2]) * z2 + a[4] + (a[1] * z2 + a[3]) * z) / ((b[0] * z2 + b[2]) * z2 + b[4] + (b[1] * z2 + b[3]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<6>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((a[5] * x2 + a[3]) * x2 + a[1]) * x + (a[4] * x2 + a[2]) * x2 + a[0]) / (((b[5] * x2 + b[3]) * x2 + b[1]) * x + (b[4] * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((a[0] * z2 + a[2]) * z2 + a[4]) * z + (a[1] * z2 + a[3]) * z2 + a[5]) / (((b[0] * z2 + b[2]) * z2 + b[4]) * z + (b[1] * z2 + b[3]) * z2 + b[5]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<7>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((a[5] * x2 + a[3]) * x2 + a[1]) * x) / (((b[6] * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + ((b[5] * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6] + ((a[1] * z2 + a[3]) * z2 + a[5]) * z) / (((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6] + ((b[1] * z2 + b[3]) * z2 + b[5]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<8>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0]) / ((((b[7] * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x + ((b[6] * x2 + b[4]) * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z + ((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) / ((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z + ((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<9>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((((a[8] * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + (((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x) / ((((b[8] * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + (((b[7] * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8] + (((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z) / ((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8] + (((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<10>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((((a[9] * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + (((a[8] * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]) / (((((b[9] * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x + (((b[8] * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z + (((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) / (((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z + (((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<11>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((((a[10] * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((((a[9] * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x) / (((((b[10] * x2 + b[8]) * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + ((((b[9] * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10] + ((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z) / (((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10] + ((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<12>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((((((a[11] * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((((a[10] * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]) / ((((((b[11] * x2 + b[9]) * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x + ((((b[10] * x2 + b[8]) * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10]) * z + ((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z2 + a[11]) / ((((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10]) * z + ((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]) * z2 + b[11]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<13>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((((((a[12] * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + (((((a[11] * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x) / ((((((b[12] * x2 + b[10]) * x2 + b[8]) * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + (((((b[11] * x2 + b[9]) * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10]) * z2 + a[12] + (((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z2 + a[11]) * z) / ((((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10]) * z2 + b[12] + (((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]) * z2 + b[11]) * z));
-   }
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner2_14.hpp b/boost/math/tools/detail/rational_horner2_14.hpp
deleted file mode 100644
index 78edfbb..0000000
--- a/boost/math/tools/detail/rational_horner2_14.hpp
+++ /dev/null
@@ -1,208 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_RAT_EVAL_14_HPP
-#define BOOST_MATH_TOOLS_RAT_EVAL_14_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<5>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((a[4] * x2 + a[2]) * x2 + a[0] + (a[3] * x2 + a[1]) * x) / ((b[4] * x2 + b[2]) * x2 + b[0] + (b[3] * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((a[0] * z2 + a[2]) * z2 + a[4] + (a[1] * z2 + a[3]) * z) / ((b[0] * z2 + b[2]) * z2 + b[4] + (b[1] * z2 + b[3]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<6>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((a[5] * x2 + a[3]) * x2 + a[1]) * x + (a[4] * x2 + a[2]) * x2 + a[0]) / (((b[5] * x2 + b[3]) * x2 + b[1]) * x + (b[4] * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((a[0] * z2 + a[2]) * z2 + a[4]) * z + (a[1] * z2 + a[3]) * z2 + a[5]) / (((b[0] * z2 + b[2]) * z2 + b[4]) * z + (b[1] * z2 + b[3]) * z2 + b[5]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<7>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((a[5] * x2 + a[3]) * x2 + a[1]) * x) / (((b[6] * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + ((b[5] * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6] + ((a[1] * z2 + a[3]) * z2 + a[5]) * z) / (((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6] + ((b[1] * z2 + b[3]) * z2 + b[5]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<8>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0]) / ((((b[7] * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x + ((b[6] * x2 + b[4]) * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z + ((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) / ((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z + ((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<9>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((((a[8] * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + (((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x) / ((((b[8] * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + (((b[7] * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8] + (((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z) / ((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8] + (((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<10>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((((a[9] * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + (((a[8] * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]) / (((((b[9] * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x + (((b[8] * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z + (((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) / (((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z + (((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<11>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((((a[10] * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((((a[9] * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x) / (((((b[10] * x2 + b[8]) * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + ((((b[9] * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10] + ((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z) / (((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10] + ((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<12>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((((((a[11] * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((((a[10] * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]) / ((((((b[11] * x2 + b[9]) * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x + ((((b[10] * x2 + b[8]) * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10]) * z + ((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z2 + a[11]) / ((((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10]) * z + ((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]) * z2 + b[11]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<13>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((((((a[12] * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + (((((a[11] * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x) / ((((((b[12] * x2 + b[10]) * x2 + b[8]) * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + (((((b[11] * x2 + b[9]) * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10]) * z2 + a[12] + (((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z2 + a[11]) * z) / ((((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10]) * z2 + b[12] + (((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]) * z2 + b[11]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<14>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((((((a[13] * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + (((((a[12] * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]) / (((((((b[13] * x2 + b[11]) * x2 + b[9]) * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x + (((((b[12] * x2 + b[10]) * x2 + b[8]) * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10]) * z2 + a[12]) * z + (((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z2 + a[11]) * z2 + a[13]) / (((((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10]) * z2 + b[12]) * z + (((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]) * z2 + b[11]) * z2 + b[13]));
-   }
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner2_15.hpp b/boost/math/tools/detail/rational_horner2_15.hpp
deleted file mode 100644
index 3cf4ef5..0000000
--- a/boost/math/tools/detail/rational_horner2_15.hpp
+++ /dev/null
@@ -1,224 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_RAT_EVAL_15_HPP
-#define BOOST_MATH_TOOLS_RAT_EVAL_15_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<5>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((a[4] * x2 + a[2]) * x2 + a[0] + (a[3] * x2 + a[1]) * x) / ((b[4] * x2 + b[2]) * x2 + b[0] + (b[3] * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((a[0] * z2 + a[2]) * z2 + a[4] + (a[1] * z2 + a[3]) * z) / ((b[0] * z2 + b[2]) * z2 + b[4] + (b[1] * z2 + b[3]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<6>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((a[5] * x2 + a[3]) * x2 + a[1]) * x + (a[4] * x2 + a[2]) * x2 + a[0]) / (((b[5] * x2 + b[3]) * x2 + b[1]) * x + (b[4] * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((a[0] * z2 + a[2]) * z2 + a[4]) * z + (a[1] * z2 + a[3]) * z2 + a[5]) / (((b[0] * z2 + b[2]) * z2 + b[4]) * z + (b[1] * z2 + b[3]) * z2 + b[5]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<7>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((a[5] * x2 + a[3]) * x2 + a[1]) * x) / (((b[6] * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + ((b[5] * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6] + ((a[1] * z2 + a[3]) * z2 + a[5]) * z) / (((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6] + ((b[1] * z2 + b[3]) * z2 + b[5]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<8>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0]) / ((((b[7] * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x + ((b[6] * x2 + b[4]) * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z + ((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) / ((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z + ((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<9>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((((a[8] * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + (((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x) / ((((b[8] * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + (((b[7] * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8] + (((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z) / ((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8] + (((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<10>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((((a[9] * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + (((a[8] * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]) / (((((b[9] * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x + (((b[8] * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z + (((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) / (((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z + (((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<11>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((((a[10] * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((((a[9] * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x) / (((((b[10] * x2 + b[8]) * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + ((((b[9] * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10] + ((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z) / (((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10] + ((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<12>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((((((a[11] * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((((a[10] * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]) / ((((((b[11] * x2 + b[9]) * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x + ((((b[10] * x2 + b[8]) * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10]) * z + ((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z2 + a[11]) / ((((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10]) * z + ((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]) * z2 + b[11]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<13>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((((((a[12] * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + (((((a[11] * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x) / ((((((b[12] * x2 + b[10]) * x2 + b[8]) * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + (((((b[11] * x2 + b[9]) * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10]) * z2 + a[12] + (((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z2 + a[11]) * z) / ((((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10]) * z2 + b[12] + (((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]) * z2 + b[11]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<14>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((((((a[13] * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + (((((a[12] * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]) / (((((((b[13] * x2 + b[11]) * x2 + b[9]) * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x + (((((b[12] * x2 + b[10]) * x2 + b[8]) * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10]) * z2 + a[12]) * z + (((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z2 + a[11]) * z2 + a[13]) / (((((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10]) * z2 + b[12]) * z + (((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]) * z2 + b[11]) * z2 + b[13]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<15>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((((((a[14] * x2 + a[12]) * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((((((a[13] * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x) / (((((((b[14] * x2 + b[12]) * x2 + b[10]) * x2 + b[8]) * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + ((((((b[13] * x2 + b[11]) * x2 + b[9]) * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10]) * z2 + a[12]) * z2 + a[14] + ((((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z2 + a[11]) * z2 + a[13]) * z) / (((((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10]) * z2 + b[12]) * z2 + b[14] + ((((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]) * z2 + b[11]) * z2 + b[13]) * z));
-   }
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner2_16.hpp b/boost/math/tools/detail/rational_horner2_16.hpp
deleted file mode 100644
index 3936a1b..0000000
--- a/boost/math/tools/detail/rational_horner2_16.hpp
+++ /dev/null
@@ -1,240 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_RAT_EVAL_16_HPP
-#define BOOST_MATH_TOOLS_RAT_EVAL_16_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<5>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((a[4] * x2 + a[2]) * x2 + a[0] + (a[3] * x2 + a[1]) * x) / ((b[4] * x2 + b[2]) * x2 + b[0] + (b[3] * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((a[0] * z2 + a[2]) * z2 + a[4] + (a[1] * z2 + a[3]) * z) / ((b[0] * z2 + b[2]) * z2 + b[4] + (b[1] * z2 + b[3]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<6>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((a[5] * x2 + a[3]) * x2 + a[1]) * x + (a[4] * x2 + a[2]) * x2 + a[0]) / (((b[5] * x2 + b[3]) * x2 + b[1]) * x + (b[4] * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((a[0] * z2 + a[2]) * z2 + a[4]) * z + (a[1] * z2 + a[3]) * z2 + a[5]) / (((b[0] * z2 + b[2]) * z2 + b[4]) * z + (b[1] * z2 + b[3]) * z2 + b[5]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<7>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((a[5] * x2 + a[3]) * x2 + a[1]) * x) / (((b[6] * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + ((b[5] * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6] + ((a[1] * z2 + a[3]) * z2 + a[5]) * z) / (((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6] + ((b[1] * z2 + b[3]) * z2 + b[5]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<8>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0]) / ((((b[7] * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x + ((b[6] * x2 + b[4]) * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z + ((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) / ((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z + ((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<9>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((((a[8] * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + (((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x) / ((((b[8] * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + (((b[7] * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8] + (((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z) / ((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8] + (((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<10>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((((a[9] * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + (((a[8] * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]) / (((((b[9] * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x + (((b[8] * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z + (((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) / (((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z + (((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<11>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((((a[10] * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((((a[9] * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x) / (((((b[10] * x2 + b[8]) * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + ((((b[9] * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10] + ((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z) / (((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10] + ((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<12>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((((((a[11] * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((((a[10] * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]) / ((((((b[11] * x2 + b[9]) * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x + ((((b[10] * x2 + b[8]) * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10]) * z + ((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z2 + a[11]) / ((((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10]) * z + ((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]) * z2 + b[11]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<13>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((((((a[12] * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + (((((a[11] * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x) / ((((((b[12] * x2 + b[10]) * x2 + b[8]) * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + (((((b[11] * x2 + b[9]) * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10]) * z2 + a[12] + (((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z2 + a[11]) * z) / ((((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10]) * z2 + b[12] + (((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]) * z2 + b[11]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<14>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((((((a[13] * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + (((((a[12] * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]) / (((((((b[13] * x2 + b[11]) * x2 + b[9]) * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x + (((((b[12] * x2 + b[10]) * x2 + b[8]) * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10]) * z2 + a[12]) * z + (((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z2 + a[11]) * z2 + a[13]) / (((((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10]) * z2 + b[12]) * z + (((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]) * z2 + b[11]) * z2 + b[13]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<15>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((((((a[14] * x2 + a[12]) * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((((((a[13] * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x) / (((((((b[14] * x2 + b[12]) * x2 + b[10]) * x2 + b[8]) * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + ((((((b[13] * x2 + b[11]) * x2 + b[9]) * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10]) * z2 + a[12]) * z2 + a[14] + ((((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z2 + a[11]) * z2 + a[13]) * z) / (((((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10]) * z2 + b[12]) * z2 + b[14] + ((((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]) * z2 + b[11]) * z2 + b[13]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<16>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((((((((a[15] * x2 + a[13]) * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((((((a[14] * x2 + a[12]) * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]) / ((((((((b[15] * x2 + b[13]) * x2 + b[11]) * x2 + b[9]) * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x + ((((((b[14] * x2 + b[12]) * x2 + b[10]) * x2 + b[8]) * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10]) * z2 + a[12]) * z2 + a[14]) * z + ((((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z2 + a[11]) * z2 + a[13]) * z2 + a[15]) / ((((((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10]) * z2 + b[12]) * z2 + b[14]) * z + ((((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]) * z2 + b[11]) * z2 + b[13]) * z2 + b[15]));
-   }
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner2_17.hpp b/boost/math/tools/detail/rational_horner2_17.hpp
deleted file mode 100644
index 4d253b9..0000000
--- a/boost/math/tools/detail/rational_horner2_17.hpp
+++ /dev/null
@@ -1,256 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_RAT_EVAL_17_HPP
-#define BOOST_MATH_TOOLS_RAT_EVAL_17_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<5>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((a[4] * x2 + a[2]) * x2 + a[0] + (a[3] * x2 + a[1]) * x) / ((b[4] * x2 + b[2]) * x2 + b[0] + (b[3] * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((a[0] * z2 + a[2]) * z2 + a[4] + (a[1] * z2 + a[3]) * z) / ((b[0] * z2 + b[2]) * z2 + b[4] + (b[1] * z2 + b[3]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<6>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((a[5] * x2 + a[3]) * x2 + a[1]) * x + (a[4] * x2 + a[2]) * x2 + a[0]) / (((b[5] * x2 + b[3]) * x2 + b[1]) * x + (b[4] * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((a[0] * z2 + a[2]) * z2 + a[4]) * z + (a[1] * z2 + a[3]) * z2 + a[5]) / (((b[0] * z2 + b[2]) * z2 + b[4]) * z + (b[1] * z2 + b[3]) * z2 + b[5]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<7>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((a[5] * x2 + a[3]) * x2 + a[1]) * x) / (((b[6] * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + ((b[5] * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6] + ((a[1] * z2 + a[3]) * z2 + a[5]) * z) / (((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6] + ((b[1] * z2 + b[3]) * z2 + b[5]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<8>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0]) / ((((b[7] * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x + ((b[6] * x2 + b[4]) * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z + ((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) / ((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z + ((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<9>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((((a[8] * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + (((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x) / ((((b[8] * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + (((b[7] * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8] + (((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z) / ((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8] + (((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<10>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((((a[9] * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + (((a[8] * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]) / (((((b[9] * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x + (((b[8] * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z + (((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) / (((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z + (((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<11>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((((a[10] * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((((a[9] * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x) / (((((b[10] * x2 + b[8]) * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + ((((b[9] * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10] + ((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z) / (((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10] + ((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<12>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((((((a[11] * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((((a[10] * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]) / ((((((b[11] * x2 + b[9]) * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x + ((((b[10] * x2 + b[8]) * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10]) * z + ((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z2 + a[11]) / ((((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10]) * z + ((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]) * z2 + b[11]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<13>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((((((a[12] * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + (((((a[11] * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x) / ((((((b[12] * x2 + b[10]) * x2 + b[8]) * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + (((((b[11] * x2 + b[9]) * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10]) * z2 + a[12] + (((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z2 + a[11]) * z) / ((((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10]) * z2 + b[12] + (((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]) * z2 + b[11]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<14>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((((((a[13] * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + (((((a[12] * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]) / (((((((b[13] * x2 + b[11]) * x2 + b[9]) * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x + (((((b[12] * x2 + b[10]) * x2 + b[8]) * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10]) * z2 + a[12]) * z + (((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z2 + a[11]) * z2 + a[13]) / (((((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10]) * z2 + b[12]) * z + (((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]) * z2 + b[11]) * z2 + b[13]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<15>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((((((a[14] * x2 + a[12]) * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((((((a[13] * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x) / (((((((b[14] * x2 + b[12]) * x2 + b[10]) * x2 + b[8]) * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + ((((((b[13] * x2 + b[11]) * x2 + b[9]) * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10]) * z2 + a[12]) * z2 + a[14] + ((((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z2 + a[11]) * z2 + a[13]) * z) / (((((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10]) * z2 + b[12]) * z2 + b[14] + ((((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]) * z2 + b[11]) * z2 + b[13]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<16>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((((((((a[15] * x2 + a[13]) * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((((((a[14] * x2 + a[12]) * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]) / ((((((((b[15] * x2 + b[13]) * x2 + b[11]) * x2 + b[9]) * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x + ((((((b[14] * x2 + b[12]) * x2 + b[10]) * x2 + b[8]) * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10]) * z2 + a[12]) * z2 + a[14]) * z + ((((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z2 + a[11]) * z2 + a[13]) * z2 + a[15]) / ((((((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10]) * z2 + b[12]) * z2 + b[14]) * z + ((((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]) * z2 + b[11]) * z2 + b[13]) * z2 + b[15]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<17>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((((((((a[16] * x2 + a[14]) * x2 + a[12]) * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + (((((((a[15] * x2 + a[13]) * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x) / ((((((((b[16] * x2 + b[14]) * x2 + b[12]) * x2 + b[10]) * x2 + b[8]) * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + (((((((b[15] * x2 + b[13]) * x2 + b[11]) * x2 + b[9]) * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10]) * z2 + a[12]) * z2 + a[14]) * z2 + a[16] + (((((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z2 + a[11]) * z2 + a[13]) * z2 + a[15]) * z) / ((((((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10]) * z2 + b[12]) * z2 + b[14]) * z2 + b[16] + (((((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]) * z2 + b[11]) * z2 + b[13]) * z2 + b[15]) * z));
-   }
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner2_18.hpp b/boost/math/tools/detail/rational_horner2_18.hpp
deleted file mode 100644
index 6c213ec..0000000
--- a/boost/math/tools/detail/rational_horner2_18.hpp
+++ /dev/null
@@ -1,272 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_RAT_EVAL_18_HPP
-#define BOOST_MATH_TOOLS_RAT_EVAL_18_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<5>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((a[4] * x2 + a[2]) * x2 + a[0] + (a[3] * x2 + a[1]) * x) / ((b[4] * x2 + b[2]) * x2 + b[0] + (b[3] * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((a[0] * z2 + a[2]) * z2 + a[4] + (a[1] * z2 + a[3]) * z) / ((b[0] * z2 + b[2]) * z2 + b[4] + (b[1] * z2 + b[3]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<6>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((a[5] * x2 + a[3]) * x2 + a[1]) * x + (a[4] * x2 + a[2]) * x2 + a[0]) / (((b[5] * x2 + b[3]) * x2 + b[1]) * x + (b[4] * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((a[0] * z2 + a[2]) * z2 + a[4]) * z + (a[1] * z2 + a[3]) * z2 + a[5]) / (((b[0] * z2 + b[2]) * z2 + b[4]) * z + (b[1] * z2 + b[3]) * z2 + b[5]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<7>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((a[5] * x2 + a[3]) * x2 + a[1]) * x) / (((b[6] * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + ((b[5] * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6] + ((a[1] * z2 + a[3]) * z2 + a[5]) * z) / (((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6] + ((b[1] * z2 + b[3]) * z2 + b[5]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<8>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0]) / ((((b[7] * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x + ((b[6] * x2 + b[4]) * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z + ((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) / ((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z + ((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<9>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((((a[8] * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + (((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x) / ((((b[8] * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + (((b[7] * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8] + (((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z) / ((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8] + (((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<10>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((((a[9] * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + (((a[8] * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]) / (((((b[9] * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x + (((b[8] * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z + (((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) / (((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z + (((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<11>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((((a[10] * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((((a[9] * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x) / (((((b[10] * x2 + b[8]) * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + ((((b[9] * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10] + ((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z) / (((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10] + ((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<12>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((((((a[11] * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((((a[10] * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]) / ((((((b[11] * x2 + b[9]) * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x + ((((b[10] * x2 + b[8]) * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10]) * z + ((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z2 + a[11]) / ((((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10]) * z + ((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]) * z2 + b[11]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<13>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((((((a[12] * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + (((((a[11] * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x) / ((((((b[12] * x2 + b[10]) * x2 + b[8]) * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + (((((b[11] * x2 + b[9]) * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10]) * z2 + a[12] + (((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z2 + a[11]) * z) / ((((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10]) * z2 + b[12] + (((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]) * z2 + b[11]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<14>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((((((a[13] * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + (((((a[12] * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]) / (((((((b[13] * x2 + b[11]) * x2 + b[9]) * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x + (((((b[12] * x2 + b[10]) * x2 + b[8]) * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10]) * z2 + a[12]) * z + (((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z2 + a[11]) * z2 + a[13]) / (((((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10]) * z2 + b[12]) * z + (((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]) * z2 + b[11]) * z2 + b[13]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<15>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((((((a[14] * x2 + a[12]) * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((((((a[13] * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x) / (((((((b[14] * x2 + b[12]) * x2 + b[10]) * x2 + b[8]) * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + ((((((b[13] * x2 + b[11]) * x2 + b[9]) * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10]) * z2 + a[12]) * z2 + a[14] + ((((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z2 + a[11]) * z2 + a[13]) * z) / (((((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10]) * z2 + b[12]) * z2 + b[14] + ((((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]) * z2 + b[11]) * z2 + b[13]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<16>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((((((((a[15] * x2 + a[13]) * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((((((a[14] * x2 + a[12]) * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]) / ((((((((b[15] * x2 + b[13]) * x2 + b[11]) * x2 + b[9]) * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x + ((((((b[14] * x2 + b[12]) * x2 + b[10]) * x2 + b[8]) * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10]) * z2 + a[12]) * z2 + a[14]) * z + ((((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z2 + a[11]) * z2 + a[13]) * z2 + a[15]) / ((((((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10]) * z2 + b[12]) * z2 + b[14]) * z + ((((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]) * z2 + b[11]) * z2 + b[13]) * z2 + b[15]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<17>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((((((((a[16] * x2 + a[14]) * x2 + a[12]) * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + (((((((a[15] * x2 + a[13]) * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x) / ((((((((b[16] * x2 + b[14]) * x2 + b[12]) * x2 + b[10]) * x2 + b[8]) * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + (((((((b[15] * x2 + b[13]) * x2 + b[11]) * x2 + b[9]) * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10]) * z2 + a[12]) * z2 + a[14]) * z2 + a[16] + (((((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z2 + a[11]) * z2 + a[13]) * z2 + a[15]) * z) / ((((((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10]) * z2 + b[12]) * z2 + b[14]) * z2 + b[16] + (((((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]) * z2 + b[11]) * z2 + b[13]) * z2 + b[15]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<18>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((((((((a[17] * x2 + a[15]) * x2 + a[13]) * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + (((((((a[16] * x2 + a[14]) * x2 + a[12]) * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]) / (((((((((b[17] * x2 + b[15]) * x2 + b[13]) * x2 + b[11]) * x2 + b[9]) * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x + (((((((b[16] * x2 + b[14]) * x2 + b[12]) * x2 + b[10]) * x2 + b[8]) * x2 + b[6]) * x2  [...]
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10]) * z2 + a[12]) * z2 + a[14]) * z2 + a[16]) * z + (((((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z2 + a[11]) * z2 + a[13]) * z2 + a[15]) * z2 + a[17]) / (((((((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10]) * z2 + b[12]) * z2 + b[14]) * z2 + b[16]) * z + (((((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]) * z2 + b[11]) * z2 + b [...]
-   }
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner2_19.hpp b/boost/math/tools/detail/rational_horner2_19.hpp
deleted file mode 100644
index 88e0b9f..0000000
--- a/boost/math/tools/detail/rational_horner2_19.hpp
+++ /dev/null
@@ -1,288 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_RAT_EVAL_19_HPP
-#define BOOST_MATH_TOOLS_RAT_EVAL_19_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<5>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((a[4] * x2 + a[2]) * x2 + a[0] + (a[3] * x2 + a[1]) * x) / ((b[4] * x2 + b[2]) * x2 + b[0] + (b[3] * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((a[0] * z2 + a[2]) * z2 + a[4] + (a[1] * z2 + a[3]) * z) / ((b[0] * z2 + b[2]) * z2 + b[4] + (b[1] * z2 + b[3]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<6>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((a[5] * x2 + a[3]) * x2 + a[1]) * x + (a[4] * x2 + a[2]) * x2 + a[0]) / (((b[5] * x2 + b[3]) * x2 + b[1]) * x + (b[4] * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((a[0] * z2 + a[2]) * z2 + a[4]) * z + (a[1] * z2 + a[3]) * z2 + a[5]) / (((b[0] * z2 + b[2]) * z2 + b[4]) * z + (b[1] * z2 + b[3]) * z2 + b[5]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<7>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((a[5] * x2 + a[3]) * x2 + a[1]) * x) / (((b[6] * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + ((b[5] * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6] + ((a[1] * z2 + a[3]) * z2 + a[5]) * z) / (((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6] + ((b[1] * z2 + b[3]) * z2 + b[5]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<8>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0]) / ((((b[7] * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x + ((b[6] * x2 + b[4]) * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z + ((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) / ((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z + ((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<9>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((((a[8] * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + (((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x) / ((((b[8] * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + (((b[7] * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8] + (((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z) / ((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8] + (((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<10>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((((a[9] * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + (((a[8] * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]) / (((((b[9] * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x + (((b[8] * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z + (((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) / (((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z + (((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<11>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((((a[10] * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((((a[9] * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x) / (((((b[10] * x2 + b[8]) * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + ((((b[9] * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10] + ((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z) / (((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10] + ((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<12>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((((((a[11] * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((((a[10] * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]) / ((((((b[11] * x2 + b[9]) * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x + ((((b[10] * x2 + b[8]) * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10]) * z + ((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z2 + a[11]) / ((((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10]) * z + ((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]) * z2 + b[11]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<13>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((((((a[12] * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + (((((a[11] * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x) / ((((((b[12] * x2 + b[10]) * x2 + b[8]) * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + (((((b[11] * x2 + b[9]) * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10]) * z2 + a[12] + (((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z2 + a[11]) * z) / ((((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10]) * z2 + b[12] + (((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]) * z2 + b[11]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<14>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((((((a[13] * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + (((((a[12] * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]) / (((((((b[13] * x2 + b[11]) * x2 + b[9]) * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x + (((((b[12] * x2 + b[10]) * x2 + b[8]) * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10]) * z2 + a[12]) * z + (((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z2 + a[11]) * z2 + a[13]) / (((((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10]) * z2 + b[12]) * z + (((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]) * z2 + b[11]) * z2 + b[13]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<15>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((((((a[14] * x2 + a[12]) * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((((((a[13] * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x) / (((((((b[14] * x2 + b[12]) * x2 + b[10]) * x2 + b[8]) * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + ((((((b[13] * x2 + b[11]) * x2 + b[9]) * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10]) * z2 + a[12]) * z2 + a[14] + ((((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z2 + a[11]) * z2 + a[13]) * z) / (((((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10]) * z2 + b[12]) * z2 + b[14] + ((((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]) * z2 + b[11]) * z2 + b[13]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<16>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((((((((a[15] * x2 + a[13]) * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((((((a[14] * x2 + a[12]) * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]) / ((((((((b[15] * x2 + b[13]) * x2 + b[11]) * x2 + b[9]) * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x + ((((((b[14] * x2 + b[12]) * x2 + b[10]) * x2 + b[8]) * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10]) * z2 + a[12]) * z2 + a[14]) * z + ((((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z2 + a[11]) * z2 + a[13]) * z2 + a[15]) / ((((((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10]) * z2 + b[12]) * z2 + b[14]) * z + ((((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]) * z2 + b[11]) * z2 + b[13]) * z2 + b[15]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<17>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((((((((a[16] * x2 + a[14]) * x2 + a[12]) * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + (((((((a[15] * x2 + a[13]) * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x) / ((((((((b[16] * x2 + b[14]) * x2 + b[12]) * x2 + b[10]) * x2 + b[8]) * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + (((((((b[15] * x2 + b[13]) * x2 + b[11]) * x2 + b[9]) * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10]) * z2 + a[12]) * z2 + a[14]) * z2 + a[16] + (((((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z2 + a[11]) * z2 + a[13]) * z2 + a[15]) * z) / ((((((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10]) * z2 + b[12]) * z2 + b[14]) * z2 + b[16] + (((((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]) * z2 + b[11]) * z2 + b[13]) * z2 + b[15]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<18>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((((((((a[17] * x2 + a[15]) * x2 + a[13]) * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + (((((((a[16] * x2 + a[14]) * x2 + a[12]) * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]) / (((((((((b[17] * x2 + b[15]) * x2 + b[13]) * x2 + b[11]) * x2 + b[9]) * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x + (((((((b[16] * x2 + b[14]) * x2 + b[12]) * x2 + b[10]) * x2 + b[8]) * x2 + b[6]) * x2  [...]
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10]) * z2 + a[12]) * z2 + a[14]) * z2 + a[16]) * z + (((((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z2 + a[11]) * z2 + a[13]) * z2 + a[15]) * z2 + a[17]) / (((((((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10]) * z2 + b[12]) * z2 + b[14]) * z2 + b[16]) * z + (((((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]) * z2 + b[11]) * z2 + b [...]
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<19>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((((((((a[18] * x2 + a[16]) * x2 + a[14]) * x2 + a[12]) * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((((((((a[17] * x2 + a[15]) * x2 + a[13]) * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x) / (((((((((b[18] * x2 + b[16]) * x2 + b[14]) * x2 + b[12]) * x2 + b[10]) * x2 + b[8]) * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + ((((((((b[17] * x2 + b[15]) * x2 + b[13]) * x2 + b[11]) * x2 + [...]
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10]) * z2 + a[12]) * z2 + a[14]) * z2 + a[16]) * z2 + a[18] + ((((((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z2 + a[11]) * z2 + a[13]) * z2 + a[15]) * z2 + a[17]) * z) / (((((((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10]) * z2 + b[12]) * z2 + b[14]) * z2 + b[16]) * z2 + b[18] + ((((((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9 [...]
-   }
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner2_2.hpp b/boost/math/tools/detail/rational_horner2_2.hpp
deleted file mode 100644
index 35b5abb..0000000
--- a/boost/math/tools/detail/rational_horner2_2.hpp
+++ /dev/null
@@ -1,48 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_RAT_EVAL_2_HPP
-#define BOOST_MATH_TOOLS_RAT_EVAL_2_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner2_20.hpp b/boost/math/tools/detail/rational_horner2_20.hpp
deleted file mode 100644
index dc73fdd..0000000
--- a/boost/math/tools/detail/rational_horner2_20.hpp
+++ /dev/null
@@ -1,304 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_RAT_EVAL_20_HPP
-#define BOOST_MATH_TOOLS_RAT_EVAL_20_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<5>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((a[4] * x2 + a[2]) * x2 + a[0] + (a[3] * x2 + a[1]) * x) / ((b[4] * x2 + b[2]) * x2 + b[0] + (b[3] * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((a[0] * z2 + a[2]) * z2 + a[4] + (a[1] * z2 + a[3]) * z) / ((b[0] * z2 + b[2]) * z2 + b[4] + (b[1] * z2 + b[3]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<6>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((a[5] * x2 + a[3]) * x2 + a[1]) * x + (a[4] * x2 + a[2]) * x2 + a[0]) / (((b[5] * x2 + b[3]) * x2 + b[1]) * x + (b[4] * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((a[0] * z2 + a[2]) * z2 + a[4]) * z + (a[1] * z2 + a[3]) * z2 + a[5]) / (((b[0] * z2 + b[2]) * z2 + b[4]) * z + (b[1] * z2 + b[3]) * z2 + b[5]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<7>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((a[5] * x2 + a[3]) * x2 + a[1]) * x) / (((b[6] * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + ((b[5] * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6] + ((a[1] * z2 + a[3]) * z2 + a[5]) * z) / (((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6] + ((b[1] * z2 + b[3]) * z2 + b[5]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<8>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0]) / ((((b[7] * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x + ((b[6] * x2 + b[4]) * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z + ((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) / ((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z + ((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<9>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((((a[8] * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + (((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x) / ((((b[8] * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + (((b[7] * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8] + (((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z) / ((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8] + (((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<10>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((((a[9] * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + (((a[8] * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]) / (((((b[9] * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x + (((b[8] * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z + (((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) / (((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z + (((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<11>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((((a[10] * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((((a[9] * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x) / (((((b[10] * x2 + b[8]) * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + ((((b[9] * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10] + ((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z) / (((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10] + ((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<12>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((((((a[11] * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((((a[10] * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]) / ((((((b[11] * x2 + b[9]) * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x + ((((b[10] * x2 + b[8]) * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10]) * z + ((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z2 + a[11]) / ((((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10]) * z + ((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]) * z2 + b[11]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<13>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((((((a[12] * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + (((((a[11] * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x) / ((((((b[12] * x2 + b[10]) * x2 + b[8]) * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + (((((b[11] * x2 + b[9]) * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10]) * z2 + a[12] + (((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z2 + a[11]) * z) / ((((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10]) * z2 + b[12] + (((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]) * z2 + b[11]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<14>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((((((a[13] * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + (((((a[12] * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]) / (((((((b[13] * x2 + b[11]) * x2 + b[9]) * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x + (((((b[12] * x2 + b[10]) * x2 + b[8]) * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10]) * z2 + a[12]) * z + (((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z2 + a[11]) * z2 + a[13]) / (((((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10]) * z2 + b[12]) * z + (((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]) * z2 + b[11]) * z2 + b[13]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<15>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((((((a[14] * x2 + a[12]) * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((((((a[13] * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x) / (((((((b[14] * x2 + b[12]) * x2 + b[10]) * x2 + b[8]) * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + ((((((b[13] * x2 + b[11]) * x2 + b[9]) * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10]) * z2 + a[12]) * z2 + a[14] + ((((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z2 + a[11]) * z2 + a[13]) * z) / (((((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10]) * z2 + b[12]) * z2 + b[14] + ((((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]) * z2 + b[11]) * z2 + b[13]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<16>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((((((((a[15] * x2 + a[13]) * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((((((a[14] * x2 + a[12]) * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]) / ((((((((b[15] * x2 + b[13]) * x2 + b[11]) * x2 + b[9]) * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x + ((((((b[14] * x2 + b[12]) * x2 + b[10]) * x2 + b[8]) * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10]) * z2 + a[12]) * z2 + a[14]) * z + ((((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z2 + a[11]) * z2 + a[13]) * z2 + a[15]) / ((((((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10]) * z2 + b[12]) * z2 + b[14]) * z + ((((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]) * z2 + b[11]) * z2 + b[13]) * z2 + b[15]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<17>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((((((((a[16] * x2 + a[14]) * x2 + a[12]) * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + (((((((a[15] * x2 + a[13]) * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x) / ((((((((b[16] * x2 + b[14]) * x2 + b[12]) * x2 + b[10]) * x2 + b[8]) * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + (((((((b[15] * x2 + b[13]) * x2 + b[11]) * x2 + b[9]) * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10]) * z2 + a[12]) * z2 + a[14]) * z2 + a[16] + (((((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z2 + a[11]) * z2 + a[13]) * z2 + a[15]) * z) / ((((((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10]) * z2 + b[12]) * z2 + b[14]) * z2 + b[16] + (((((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]) * z2 + b[11]) * z2 + b[13]) * z2 + b[15]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<18>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((((((((a[17] * x2 + a[15]) * x2 + a[13]) * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + (((((((a[16] * x2 + a[14]) * x2 + a[12]) * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]) / (((((((((b[17] * x2 + b[15]) * x2 + b[13]) * x2 + b[11]) * x2 + b[9]) * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x + (((((((b[16] * x2 + b[14]) * x2 + b[12]) * x2 + b[10]) * x2 + b[8]) * x2 + b[6]) * x2  [...]
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10]) * z2 + a[12]) * z2 + a[14]) * z2 + a[16]) * z + (((((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z2 + a[11]) * z2 + a[13]) * z2 + a[15]) * z2 + a[17]) / (((((((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10]) * z2 + b[12]) * z2 + b[14]) * z2 + b[16]) * z + (((((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9]) * z2 + b[11]) * z2 + b [...]
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<19>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((((((((a[18] * x2 + a[16]) * x2 + a[14]) * x2 + a[12]) * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((((((((a[17] * x2 + a[15]) * x2 + a[13]) * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x) / (((((((((b[18] * x2 + b[16]) * x2 + b[14]) * x2 + b[12]) * x2 + b[10]) * x2 + b[8]) * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + ((((((((b[17] * x2 + b[15]) * x2 + b[13]) * x2 + b[11]) * x2 + [...]
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10]) * z2 + a[12]) * z2 + a[14]) * z2 + a[16]) * z2 + a[18] + ((((((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z2 + a[11]) * z2 + a[13]) * z2 + a[15]) * z2 + a[17]) * z) / (((((((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10]) * z2 + b[12]) * z2 + b[14]) * z2 + b[16]) * z2 + b[18] + ((((((((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z2 + b[9 [...]
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<20>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((((((((((a[19] * x2 + a[17]) * x2 + a[15]) * x2 + a[13]) * x2 + a[11]) * x2 + a[9]) * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((((((((a[18] * x2 + a[16]) * x2 + a[14]) * x2 + a[12]) * x2 + a[10]) * x2 + a[8]) * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]) / ((((((((((b[19] * x2 + b[17]) * x2 + b[15]) * x2 + b[13]) * x2 + b[11]) * x2 + b[9]) * x2 + b[7]) * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x + ((((((((b[18] * x2 + b[16]) * x2 + b[14]) [...]
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((((((((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8]) * z2 + a[10]) * z2 + a[12]) * z2 + a[14]) * z2 + a[16]) * z2 + a[18]) * z + ((((((((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z2 + a[9]) * z2 + a[11]) * z2 + a[13]) * z2 + a[15]) * z2 + a[17]) * z2 + a[19]) / ((((((((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8]) * z2 + b[10]) * z2 + b[12]) * z2 + b[14]) * z2 + b[16]) * z2 + b[18]) * z + ((((((((b[1] * z2 + b[3]) * z2 + b[5]) *  [...]
-   }
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner2_3.hpp b/boost/math/tools/detail/rational_horner2_3.hpp
deleted file mode 100644
index 8838ac1..0000000
--- a/boost/math/tools/detail/rational_horner2_3.hpp
+++ /dev/null
@@ -1,48 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_RAT_EVAL_3_HPP
-#define BOOST_MATH_TOOLS_RAT_EVAL_3_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner2_4.hpp b/boost/math/tools/detail/rational_horner2_4.hpp
deleted file mode 100644
index 5fe5ada..0000000
--- a/boost/math/tools/detail/rational_horner2_4.hpp
+++ /dev/null
@@ -1,48 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_RAT_EVAL_4_HPP
-#define BOOST_MATH_TOOLS_RAT_EVAL_4_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner2_5.hpp b/boost/math/tools/detail/rational_horner2_5.hpp
deleted file mode 100644
index 48b8498..0000000
--- a/boost/math/tools/detail/rational_horner2_5.hpp
+++ /dev/null
@@ -1,64 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_RAT_EVAL_5_HPP
-#define BOOST_MATH_TOOLS_RAT_EVAL_5_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<5>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((a[4] * x2 + a[2]) * x2 + a[0] + (a[3] * x2 + a[1]) * x) / ((b[4] * x2 + b[2]) * x2 + b[0] + (b[3] * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((a[0] * z2 + a[2]) * z2 + a[4] + (a[1] * z2 + a[3]) * z) / ((b[0] * z2 + b[2]) * z2 + b[4] + (b[1] * z2 + b[3]) * z));
-   }
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner2_6.hpp b/boost/math/tools/detail/rational_horner2_6.hpp
deleted file mode 100644
index 83631ea..0000000
--- a/boost/math/tools/detail/rational_horner2_6.hpp
+++ /dev/null
@@ -1,80 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_RAT_EVAL_6_HPP
-#define BOOST_MATH_TOOLS_RAT_EVAL_6_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<5>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((a[4] * x2 + a[2]) * x2 + a[0] + (a[3] * x2 + a[1]) * x) / ((b[4] * x2 + b[2]) * x2 + b[0] + (b[3] * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((a[0] * z2 + a[2]) * z2 + a[4] + (a[1] * z2 + a[3]) * z) / ((b[0] * z2 + b[2]) * z2 + b[4] + (b[1] * z2 + b[3]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<6>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((a[5] * x2 + a[3]) * x2 + a[1]) * x + (a[4] * x2 + a[2]) * x2 + a[0]) / (((b[5] * x2 + b[3]) * x2 + b[1]) * x + (b[4] * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((a[0] * z2 + a[2]) * z2 + a[4]) * z + (a[1] * z2 + a[3]) * z2 + a[5]) / (((b[0] * z2 + b[2]) * z2 + b[4]) * z + (b[1] * z2 + b[3]) * z2 + b[5]));
-   }
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner2_7.hpp b/boost/math/tools/detail/rational_horner2_7.hpp
deleted file mode 100644
index 3ed86ea..0000000
--- a/boost/math/tools/detail/rational_horner2_7.hpp
+++ /dev/null
@@ -1,96 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_RAT_EVAL_7_HPP
-#define BOOST_MATH_TOOLS_RAT_EVAL_7_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<5>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((a[4] * x2 + a[2]) * x2 + a[0] + (a[3] * x2 + a[1]) * x) / ((b[4] * x2 + b[2]) * x2 + b[0] + (b[3] * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((a[0] * z2 + a[2]) * z2 + a[4] + (a[1] * z2 + a[3]) * z) / ((b[0] * z2 + b[2]) * z2 + b[4] + (b[1] * z2 + b[3]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<6>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((a[5] * x2 + a[3]) * x2 + a[1]) * x + (a[4] * x2 + a[2]) * x2 + a[0]) / (((b[5] * x2 + b[3]) * x2 + b[1]) * x + (b[4] * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((a[0] * z2 + a[2]) * z2 + a[4]) * z + (a[1] * z2 + a[3]) * z2 + a[5]) / (((b[0] * z2 + b[2]) * z2 + b[4]) * z + (b[1] * z2 + b[3]) * z2 + b[5]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<7>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((a[5] * x2 + a[3]) * x2 + a[1]) * x) / (((b[6] * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + ((b[5] * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6] + ((a[1] * z2 + a[3]) * z2 + a[5]) * z) / (((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6] + ((b[1] * z2 + b[3]) * z2 + b[5]) * z));
-   }
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner2_8.hpp b/boost/math/tools/detail/rational_horner2_8.hpp
deleted file mode 100644
index f8b36ec..0000000
--- a/boost/math/tools/detail/rational_horner2_8.hpp
+++ /dev/null
@@ -1,112 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_RAT_EVAL_8_HPP
-#define BOOST_MATH_TOOLS_RAT_EVAL_8_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<5>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((a[4] * x2 + a[2]) * x2 + a[0] + (a[3] * x2 + a[1]) * x) / ((b[4] * x2 + b[2]) * x2 + b[0] + (b[3] * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((a[0] * z2 + a[2]) * z2 + a[4] + (a[1] * z2 + a[3]) * z) / ((b[0] * z2 + b[2]) * z2 + b[4] + (b[1] * z2 + b[3]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<6>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((a[5] * x2 + a[3]) * x2 + a[1]) * x + (a[4] * x2 + a[2]) * x2 + a[0]) / (((b[5] * x2 + b[3]) * x2 + b[1]) * x + (b[4] * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((a[0] * z2 + a[2]) * z2 + a[4]) * z + (a[1] * z2 + a[3]) * z2 + a[5]) / (((b[0] * z2 + b[2]) * z2 + b[4]) * z + (b[1] * z2 + b[3]) * z2 + b[5]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<7>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((a[5] * x2 + a[3]) * x2 + a[1]) * x) / (((b[6] * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + ((b[5] * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6] + ((a[1] * z2 + a[3]) * z2 + a[5]) * z) / (((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6] + ((b[1] * z2 + b[3]) * z2 + b[5]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<8>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0]) / ((((b[7] * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x + ((b[6] * x2 + b[4]) * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z + ((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) / ((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z + ((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]));
-   }
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner2_9.hpp b/boost/math/tools/detail/rational_horner2_9.hpp
deleted file mode 100644
index 88cc4e5..0000000
--- a/boost/math/tools/detail/rational_horner2_9.hpp
+++ /dev/null
@@ -1,128 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_RAT_EVAL_9_HPP
-#define BOOST_MATH_TOOLS_RAT_EVAL_9_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<5>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((a[4] * x2 + a[2]) * x2 + a[0] + (a[3] * x2 + a[1]) * x) / ((b[4] * x2 + b[2]) * x2 + b[0] + (b[3] * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((a[0] * z2 + a[2]) * z2 + a[4] + (a[1] * z2 + a[3]) * z) / ((b[0] * z2 + b[2]) * z2 + b[4] + (b[1] * z2 + b[3]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<6>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((a[5] * x2 + a[3]) * x2 + a[1]) * x + (a[4] * x2 + a[2]) * x2 + a[0]) / (((b[5] * x2 + b[3]) * x2 + b[1]) * x + (b[4] * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((a[0] * z2 + a[2]) * z2 + a[4]) * z + (a[1] * z2 + a[3]) * z2 + a[5]) / (((b[0] * z2 + b[2]) * z2 + b[4]) * z + (b[1] * z2 + b[3]) * z2 + b[5]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<7>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>((((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((a[5] * x2 + a[3]) * x2 + a[1]) * x) / (((b[6] * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + ((b[5] * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6] + ((a[1] * z2 + a[3]) * z2 + a[5]) * z) / (((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6] + ((b[1] * z2 + b[3]) * z2 + b[5]) * z));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<8>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0]) / ((((b[7] * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x + ((b[6] * x2 + b[4]) * x2 + b[2]) * x2 + b[0]));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z + ((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) / ((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z + ((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]));
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<9>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      return static_cast<V>(((((a[8] * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + (((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x) / ((((b[8] * x2 + b[6]) * x2 + b[4]) * x2 + b[2]) * x2 + b[0] + (((b[7] * x2 + b[5]) * x2 + b[3]) * x2 + b[1]) * x));
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      return static_cast<V>(((((a[0] * z2 + a[2]) * z2 + a[4]) * z2 + a[6]) * z2 + a[8] + (((a[1] * z2 + a[3]) * z2 + a[5]) * z2 + a[7]) * z) / ((((b[0] * z2 + b[2]) * z2 + b[4]) * z2 + b[6]) * z2 + b[8] + (((b[1] * z2 + b[3]) * z2 + b[5]) * z2 + b[7]) * z));
-   }
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner3_10.hpp b/boost/math/tools/detail/rational_horner3_10.hpp
deleted file mode 100644
index 019ffda..0000000
--- a/boost/math/tools/detail/rational_horner3_10.hpp
+++ /dev/null
@@ -1,396 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_RAT_EVAL_10_HPP
-#define BOOST_MATH_TOOLS_RAT_EVAL_10_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<5>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[4] * x2 + a[2];
-      t[1] = a[3] * x2 + a[1];
-      t[2] = b[4] * x2 + b[2];
-      t[3] = b[3] * x2 + b[1];
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[2] += static_cast<V>(b[4]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<6>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[5] * x2 + a[3];
-      t[1] = a[4] * x2 + a[2];
-      t[2] = b[5] * x2 + b[3];
-      t[3] = b[4] * x2 + b[2];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<7>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[6] * x2 + a[4];
-      t[1] = a[5] * x2 + a[3];
-      t[2] = b[6] * x2 + b[4];
-      t[3] = b[5] * x2 + b[3];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[2] += static_cast<V>(b[6]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<8>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[7] * x2 + a[5];
-      t[1] = a[6] * x2 + a[4];
-      t[2] = b[7] * x2 + b[5];
-      t[3] = b[6] * x2 + b[4];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[3]);
-      t[1] += static_cast<V>(a[2]);
-      t[2] += static_cast<V>(b[3]);
-      t[3] += static_cast<V>(b[2]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<9>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[8] * x2 + a[6];
-      t[1] = a[7] * x2 + a[5];
-      t[2] = b[8] * x2 + b[6];
-      t[3] = b[7] * x2 + b[5];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[3]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[3]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[2] += static_cast<V>(b[8]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<10>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[9] * x2 + a[7];
-      t[1] = a[8] * x2 + a[6];
-      t[2] = b[9] * x2 + b[7];
-      t[3] = b[8] * x2 + b[6];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[5]);
-      t[1] += static_cast<V>(a[4]);
-      t[2] += static_cast<V>(b[5]);
-      t[3] += static_cast<V>(b[4]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[3]);
-      t[1] += static_cast<V>(a[2]);
-      t[2] += static_cast<V>(b[3]);
-      t[3] += static_cast<V>(b[2]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner3_11.hpp b/boost/math/tools/detail/rational_horner3_11.hpp
deleted file mode 100644
index 13ce313..0000000
--- a/boost/math/tools/detail/rational_horner3_11.hpp
+++ /dev/null
@@ -1,482 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_RAT_EVAL_11_HPP
-#define BOOST_MATH_TOOLS_RAT_EVAL_11_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<5>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[4] * x2 + a[2];
-      t[1] = a[3] * x2 + a[1];
-      t[2] = b[4] * x2 + b[2];
-      t[3] = b[3] * x2 + b[1];
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[2] += static_cast<V>(b[4]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<6>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[5] * x2 + a[3];
-      t[1] = a[4] * x2 + a[2];
-      t[2] = b[5] * x2 + b[3];
-      t[3] = b[4] * x2 + b[2];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<7>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[6] * x2 + a[4];
-      t[1] = a[5] * x2 + a[3];
-      t[2] = b[6] * x2 + b[4];
-      t[3] = b[5] * x2 + b[3];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[2] += static_cast<V>(b[6]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<8>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[7] * x2 + a[5];
-      t[1] = a[6] * x2 + a[4];
-      t[2] = b[7] * x2 + b[5];
-      t[3] = b[6] * x2 + b[4];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[3]);
-      t[1] += static_cast<V>(a[2]);
-      t[2] += static_cast<V>(b[3]);
-      t[3] += static_cast<V>(b[2]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<9>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[8] * x2 + a[6];
-      t[1] = a[7] * x2 + a[5];
-      t[2] = b[8] * x2 + b[6];
-      t[3] = b[7] * x2 + b[5];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[3]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[3]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[2] += static_cast<V>(b[8]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<10>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[9] * x2 + a[7];
-      t[1] = a[8] * x2 + a[6];
-      t[2] = b[9] * x2 + b[7];
-      t[3] = b[8] * x2 + b[6];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[5]);
-      t[1] += static_cast<V>(a[4]);
-      t[2] += static_cast<V>(b[5]);
-      t[3] += static_cast<V>(b[4]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[3]);
-      t[1] += static_cast<V>(a[2]);
-      t[2] += static_cast<V>(b[3]);
-      t[3] += static_cast<V>(b[2]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<11>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[10] * x2 + a[8];
-      t[1] = a[9] * x2 + a[7];
-      t[2] = b[10] * x2 + b[8];
-      t[3] = b[9] * x2 + b[7];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[3]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[3]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[2] += static_cast<V>(b[10]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner3_12.hpp b/boost/math/tools/detail/rational_horner3_12.hpp
deleted file mode 100644
index 634140b..0000000
--- a/boost/math/tools/detail/rational_horner3_12.hpp
+++ /dev/null
@@ -1,576 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_RAT_EVAL_12_HPP
-#define BOOST_MATH_TOOLS_RAT_EVAL_12_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<5>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[4] * x2 + a[2];
-      t[1] = a[3] * x2 + a[1];
-      t[2] = b[4] * x2 + b[2];
-      t[3] = b[3] * x2 + b[1];
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[2] += static_cast<V>(b[4]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<6>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[5] * x2 + a[3];
-      t[1] = a[4] * x2 + a[2];
-      t[2] = b[5] * x2 + b[3];
-      t[3] = b[4] * x2 + b[2];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<7>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[6] * x2 + a[4];
-      t[1] = a[5] * x2 + a[3];
-      t[2] = b[6] * x2 + b[4];
-      t[3] = b[5] * x2 + b[3];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[2] += static_cast<V>(b[6]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<8>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[7] * x2 + a[5];
-      t[1] = a[6] * x2 + a[4];
-      t[2] = b[7] * x2 + b[5];
-      t[3] = b[6] * x2 + b[4];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[3]);
-      t[1] += static_cast<V>(a[2]);
-      t[2] += static_cast<V>(b[3]);
-      t[3] += static_cast<V>(b[2]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<9>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[8] * x2 + a[6];
-      t[1] = a[7] * x2 + a[5];
-      t[2] = b[8] * x2 + b[6];
-      t[3] = b[7] * x2 + b[5];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[3]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[3]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[2] += static_cast<V>(b[8]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<10>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[9] * x2 + a[7];
-      t[1] = a[8] * x2 + a[6];
-      t[2] = b[9] * x2 + b[7];
-      t[3] = b[8] * x2 + b[6];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[5]);
-      t[1] += static_cast<V>(a[4]);
-      t[2] += static_cast<V>(b[5]);
-      t[3] += static_cast<V>(b[4]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[3]);
-      t[1] += static_cast<V>(a[2]);
-      t[2] += static_cast<V>(b[3]);
-      t[3] += static_cast<V>(b[2]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<11>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[10] * x2 + a[8];
-      t[1] = a[9] * x2 + a[7];
-      t[2] = b[10] * x2 + b[8];
-      t[3] = b[9] * x2 + b[7];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[3]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[3]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[2] += static_cast<V>(b[10]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<12>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[11] * x2 + a[9];
-      t[1] = a[10] * x2 + a[8];
-      t[2] = b[11] * x2 + b[9];
-      t[3] = b[10] * x2 + b[8];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[7]);
-      t[1] += static_cast<V>(a[6]);
-      t[2] += static_cast<V>(b[7]);
-      t[3] += static_cast<V>(b[6]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[5]);
-      t[1] += static_cast<V>(a[4]);
-      t[2] += static_cast<V>(b[5]);
-      t[3] += static_cast<V>(b[4]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[3]);
-      t[1] += static_cast<V>(a[2]);
-      t[2] += static_cast<V>(b[3]);
-      t[3] += static_cast<V>(b[2]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[11]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[11]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner3_13.hpp b/boost/math/tools/detail/rational_horner3_13.hpp
deleted file mode 100644
index 0b4974a..0000000
--- a/boost/math/tools/detail/rational_horner3_13.hpp
+++ /dev/null
@@ -1,678 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_RAT_EVAL_13_HPP
-#define BOOST_MATH_TOOLS_RAT_EVAL_13_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<5>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[4] * x2 + a[2];
-      t[1] = a[3] * x2 + a[1];
-      t[2] = b[4] * x2 + b[2];
-      t[3] = b[3] * x2 + b[1];
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[2] += static_cast<V>(b[4]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<6>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[5] * x2 + a[3];
-      t[1] = a[4] * x2 + a[2];
-      t[2] = b[5] * x2 + b[3];
-      t[3] = b[4] * x2 + b[2];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<7>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[6] * x2 + a[4];
-      t[1] = a[5] * x2 + a[3];
-      t[2] = b[6] * x2 + b[4];
-      t[3] = b[5] * x2 + b[3];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[2] += static_cast<V>(b[6]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<8>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[7] * x2 + a[5];
-      t[1] = a[6] * x2 + a[4];
-      t[2] = b[7] * x2 + b[5];
-      t[3] = b[6] * x2 + b[4];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[3]);
-      t[1] += static_cast<V>(a[2]);
-      t[2] += static_cast<V>(b[3]);
-      t[3] += static_cast<V>(b[2]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<9>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[8] * x2 + a[6];
-      t[1] = a[7] * x2 + a[5];
-      t[2] = b[8] * x2 + b[6];
-      t[3] = b[7] * x2 + b[5];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[3]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[3]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[2] += static_cast<V>(b[8]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<10>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[9] * x2 + a[7];
-      t[1] = a[8] * x2 + a[6];
-      t[2] = b[9] * x2 + b[7];
-      t[3] = b[8] * x2 + b[6];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[5]);
-      t[1] += static_cast<V>(a[4]);
-      t[2] += static_cast<V>(b[5]);
-      t[3] += static_cast<V>(b[4]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[3]);
-      t[1] += static_cast<V>(a[2]);
-      t[2] += static_cast<V>(b[3]);
-      t[3] += static_cast<V>(b[2]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<11>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[10] * x2 + a[8];
-      t[1] = a[9] * x2 + a[7];
-      t[2] = b[10] * x2 + b[8];
-      t[3] = b[9] * x2 + b[7];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[3]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[3]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[2] += static_cast<V>(b[10]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<12>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[11] * x2 + a[9];
-      t[1] = a[10] * x2 + a[8];
-      t[2] = b[11] * x2 + b[9];
-      t[3] = b[10] * x2 + b[8];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[7]);
-      t[1] += static_cast<V>(a[6]);
-      t[2] += static_cast<V>(b[7]);
-      t[3] += static_cast<V>(b[6]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[5]);
-      t[1] += static_cast<V>(a[4]);
-      t[2] += static_cast<V>(b[5]);
-      t[3] += static_cast<V>(b[4]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[3]);
-      t[1] += static_cast<V>(a[2]);
-      t[2] += static_cast<V>(b[3]);
-      t[3] += static_cast<V>(b[2]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[11]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[11]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<13>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[12] * x2 + a[10];
-      t[1] = a[11] * x2 + a[9];
-      t[2] = b[12] * x2 + b[10];
-      t[3] = b[11] * x2 + b[9];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[3]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[3]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[11]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[11]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[12]);
-      t[2] += static_cast<V>(b[12]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner3_14.hpp b/boost/math/tools/detail/rational_horner3_14.hpp
deleted file mode 100644
index 63f4e95..0000000
--- a/boost/math/tools/detail/rational_horner3_14.hpp
+++ /dev/null
@@ -1,788 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_RAT_EVAL_14_HPP
-#define BOOST_MATH_TOOLS_RAT_EVAL_14_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<5>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[4] * x2 + a[2];
-      t[1] = a[3] * x2 + a[1];
-      t[2] = b[4] * x2 + b[2];
-      t[3] = b[3] * x2 + b[1];
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[2] += static_cast<V>(b[4]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<6>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[5] * x2 + a[3];
-      t[1] = a[4] * x2 + a[2];
-      t[2] = b[5] * x2 + b[3];
-      t[3] = b[4] * x2 + b[2];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<7>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[6] * x2 + a[4];
-      t[1] = a[5] * x2 + a[3];
-      t[2] = b[6] * x2 + b[4];
-      t[3] = b[5] * x2 + b[3];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[2] += static_cast<V>(b[6]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<8>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[7] * x2 + a[5];
-      t[1] = a[6] * x2 + a[4];
-      t[2] = b[7] * x2 + b[5];
-      t[3] = b[6] * x2 + b[4];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[3]);
-      t[1] += static_cast<V>(a[2]);
-      t[2] += static_cast<V>(b[3]);
-      t[3] += static_cast<V>(b[2]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<9>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[8] * x2 + a[6];
-      t[1] = a[7] * x2 + a[5];
-      t[2] = b[8] * x2 + b[6];
-      t[3] = b[7] * x2 + b[5];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[3]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[3]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[2] += static_cast<V>(b[8]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<10>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[9] * x2 + a[7];
-      t[1] = a[8] * x2 + a[6];
-      t[2] = b[9] * x2 + b[7];
-      t[3] = b[8] * x2 + b[6];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[5]);
-      t[1] += static_cast<V>(a[4]);
-      t[2] += static_cast<V>(b[5]);
-      t[3] += static_cast<V>(b[4]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[3]);
-      t[1] += static_cast<V>(a[2]);
-      t[2] += static_cast<V>(b[3]);
-      t[3] += static_cast<V>(b[2]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<11>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[10] * x2 + a[8];
-      t[1] = a[9] * x2 + a[7];
-      t[2] = b[10] * x2 + b[8];
-      t[3] = b[9] * x2 + b[7];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[3]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[3]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[2] += static_cast<V>(b[10]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<12>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[11] * x2 + a[9];
-      t[1] = a[10] * x2 + a[8];
-      t[2] = b[11] * x2 + b[9];
-      t[3] = b[10] * x2 + b[8];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[7]);
-      t[1] += static_cast<V>(a[6]);
-      t[2] += static_cast<V>(b[7]);
-      t[3] += static_cast<V>(b[6]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[5]);
-      t[1] += static_cast<V>(a[4]);
-      t[2] += static_cast<V>(b[5]);
-      t[3] += static_cast<V>(b[4]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[3]);
-      t[1] += static_cast<V>(a[2]);
-      t[2] += static_cast<V>(b[3]);
-      t[3] += static_cast<V>(b[2]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[11]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[11]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<13>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[12] * x2 + a[10];
-      t[1] = a[11] * x2 + a[9];
-      t[2] = b[12] * x2 + b[10];
-      t[3] = b[11] * x2 + b[9];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[3]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[3]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[11]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[11]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[12]);
-      t[2] += static_cast<V>(b[12]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<14>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[13] * x2 + a[11];
-      t[1] = a[12] * x2 + a[10];
-      t[2] = b[13] * x2 + b[11];
-      t[3] = b[12] * x2 + b[10];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[9]);
-      t[1] += static_cast<V>(a[8]);
-      t[2] += static_cast<V>(b[9]);
-      t[3] += static_cast<V>(b[8]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[7]);
-      t[1] += static_cast<V>(a[6]);
-      t[2] += static_cast<V>(b[7]);
-      t[3] += static_cast<V>(b[6]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[5]);
-      t[1] += static_cast<V>(a[4]);
-      t[2] += static_cast<V>(b[5]);
-      t[3] += static_cast<V>(b[4]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[3]);
-      t[1] += static_cast<V>(a[2]);
-      t[2] += static_cast<V>(b[3]);
-      t[3] += static_cast<V>(b[2]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[11]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[11]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[12]);
-      t[1] += static_cast<V>(a[13]);
-      t[2] += static_cast<V>(b[12]);
-      t[3] += static_cast<V>(b[13]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner3_15.hpp b/boost/math/tools/detail/rational_horner3_15.hpp
deleted file mode 100644
index c13500f..0000000
--- a/boost/math/tools/detail/rational_horner3_15.hpp
+++ /dev/null
@@ -1,906 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_RAT_EVAL_15_HPP
-#define BOOST_MATH_TOOLS_RAT_EVAL_15_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<5>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[4] * x2 + a[2];
-      t[1] = a[3] * x2 + a[1];
-      t[2] = b[4] * x2 + b[2];
-      t[3] = b[3] * x2 + b[1];
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[2] += static_cast<V>(b[4]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<6>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[5] * x2 + a[3];
-      t[1] = a[4] * x2 + a[2];
-      t[2] = b[5] * x2 + b[3];
-      t[3] = b[4] * x2 + b[2];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<7>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[6] * x2 + a[4];
-      t[1] = a[5] * x2 + a[3];
-      t[2] = b[6] * x2 + b[4];
-      t[3] = b[5] * x2 + b[3];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[2] += static_cast<V>(b[6]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<8>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[7] * x2 + a[5];
-      t[1] = a[6] * x2 + a[4];
-      t[2] = b[7] * x2 + b[5];
-      t[3] = b[6] * x2 + b[4];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[3]);
-      t[1] += static_cast<V>(a[2]);
-      t[2] += static_cast<V>(b[3]);
-      t[3] += static_cast<V>(b[2]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<9>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[8] * x2 + a[6];
-      t[1] = a[7] * x2 + a[5];
-      t[2] = b[8] * x2 + b[6];
-      t[3] = b[7] * x2 + b[5];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[3]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[3]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[2] += static_cast<V>(b[8]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<10>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[9] * x2 + a[7];
-      t[1] = a[8] * x2 + a[6];
-      t[2] = b[9] * x2 + b[7];
-      t[3] = b[8] * x2 + b[6];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[5]);
-      t[1] += static_cast<V>(a[4]);
-      t[2] += static_cast<V>(b[5]);
-      t[3] += static_cast<V>(b[4]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[3]);
-      t[1] += static_cast<V>(a[2]);
-      t[2] += static_cast<V>(b[3]);
-      t[3] += static_cast<V>(b[2]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<11>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[10] * x2 + a[8];
-      t[1] = a[9] * x2 + a[7];
-      t[2] = b[10] * x2 + b[8];
-      t[3] = b[9] * x2 + b[7];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[3]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[3]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[2] += static_cast<V>(b[10]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<12>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[11] * x2 + a[9];
-      t[1] = a[10] * x2 + a[8];
-      t[2] = b[11] * x2 + b[9];
-      t[3] = b[10] * x2 + b[8];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[7]);
-      t[1] += static_cast<V>(a[6]);
-      t[2] += static_cast<V>(b[7]);
-      t[3] += static_cast<V>(b[6]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[5]);
-      t[1] += static_cast<V>(a[4]);
-      t[2] += static_cast<V>(b[5]);
-      t[3] += static_cast<V>(b[4]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[3]);
-      t[1] += static_cast<V>(a[2]);
-      t[2] += static_cast<V>(b[3]);
-      t[3] += static_cast<V>(b[2]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[11]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[11]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<13>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[12] * x2 + a[10];
-      t[1] = a[11] * x2 + a[9];
-      t[2] = b[12] * x2 + b[10];
-      t[3] = b[11] * x2 + b[9];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[3]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[3]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[11]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[11]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[12]);
-      t[2] += static_cast<V>(b[12]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<14>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[13] * x2 + a[11];
-      t[1] = a[12] * x2 + a[10];
-      t[2] = b[13] * x2 + b[11];
-      t[3] = b[12] * x2 + b[10];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[9]);
-      t[1] += static_cast<V>(a[8]);
-      t[2] += static_cast<V>(b[9]);
-      t[3] += static_cast<V>(b[8]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[7]);
-      t[1] += static_cast<V>(a[6]);
-      t[2] += static_cast<V>(b[7]);
-      t[3] += static_cast<V>(b[6]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[5]);
-      t[1] += static_cast<V>(a[4]);
-      t[2] += static_cast<V>(b[5]);
-      t[3] += static_cast<V>(b[4]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[3]);
-      t[1] += static_cast<V>(a[2]);
-      t[2] += static_cast<V>(b[3]);
-      t[3] += static_cast<V>(b[2]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[11]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[11]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[12]);
-      t[1] += static_cast<V>(a[13]);
-      t[2] += static_cast<V>(b[12]);
-      t[3] += static_cast<V>(b[13]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<15>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[14] * x2 + a[12];
-      t[1] = a[13] * x2 + a[11];
-      t[2] = b[14] * x2 + b[12];
-      t[3] = b[13] * x2 + b[11];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[3]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[3]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[11]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[11]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[12]);
-      t[1] += static_cast<V>(a[13]);
-      t[2] += static_cast<V>(b[12]);
-      t[3] += static_cast<V>(b[13]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[14]);
-      t[2] += static_cast<V>(b[14]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner3_16.hpp b/boost/math/tools/detail/rational_horner3_16.hpp
deleted file mode 100644
index b1c8977..0000000
--- a/boost/math/tools/detail/rational_horner3_16.hpp
+++ /dev/null
@@ -1,1032 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_RAT_EVAL_16_HPP
-#define BOOST_MATH_TOOLS_RAT_EVAL_16_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<5>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[4] * x2 + a[2];
-      t[1] = a[3] * x2 + a[1];
-      t[2] = b[4] * x2 + b[2];
-      t[3] = b[3] * x2 + b[1];
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[2] += static_cast<V>(b[4]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<6>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[5] * x2 + a[3];
-      t[1] = a[4] * x2 + a[2];
-      t[2] = b[5] * x2 + b[3];
-      t[3] = b[4] * x2 + b[2];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<7>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[6] * x2 + a[4];
-      t[1] = a[5] * x2 + a[3];
-      t[2] = b[6] * x2 + b[4];
-      t[3] = b[5] * x2 + b[3];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[2] += static_cast<V>(b[6]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<8>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[7] * x2 + a[5];
-      t[1] = a[6] * x2 + a[4];
-      t[2] = b[7] * x2 + b[5];
-      t[3] = b[6] * x2 + b[4];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[3]);
-      t[1] += static_cast<V>(a[2]);
-      t[2] += static_cast<V>(b[3]);
-      t[3] += static_cast<V>(b[2]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<9>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[8] * x2 + a[6];
-      t[1] = a[7] * x2 + a[5];
-      t[2] = b[8] * x2 + b[6];
-      t[3] = b[7] * x2 + b[5];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[3]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[3]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[2] += static_cast<V>(b[8]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<10>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[9] * x2 + a[7];
-      t[1] = a[8] * x2 + a[6];
-      t[2] = b[9] * x2 + b[7];
-      t[3] = b[8] * x2 + b[6];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[5]);
-      t[1] += static_cast<V>(a[4]);
-      t[2] += static_cast<V>(b[5]);
-      t[3] += static_cast<V>(b[4]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[3]);
-      t[1] += static_cast<V>(a[2]);
-      t[2] += static_cast<V>(b[3]);
-      t[3] += static_cast<V>(b[2]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<11>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[10] * x2 + a[8];
-      t[1] = a[9] * x2 + a[7];
-      t[2] = b[10] * x2 + b[8];
-      t[3] = b[9] * x2 + b[7];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[3]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[3]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[2] += static_cast<V>(b[10]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<12>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[11] * x2 + a[9];
-      t[1] = a[10] * x2 + a[8];
-      t[2] = b[11] * x2 + b[9];
-      t[3] = b[10] * x2 + b[8];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[7]);
-      t[1] += static_cast<V>(a[6]);
-      t[2] += static_cast<V>(b[7]);
-      t[3] += static_cast<V>(b[6]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[5]);
-      t[1] += static_cast<V>(a[4]);
-      t[2] += static_cast<V>(b[5]);
-      t[3] += static_cast<V>(b[4]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[3]);
-      t[1] += static_cast<V>(a[2]);
-      t[2] += static_cast<V>(b[3]);
-      t[3] += static_cast<V>(b[2]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[11]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[11]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<13>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[12] * x2 + a[10];
-      t[1] = a[11] * x2 + a[9];
-      t[2] = b[12] * x2 + b[10];
-      t[3] = b[11] * x2 + b[9];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[3]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[3]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[11]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[11]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[12]);
-      t[2] += static_cast<V>(b[12]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<14>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[13] * x2 + a[11];
-      t[1] = a[12] * x2 + a[10];
-      t[2] = b[13] * x2 + b[11];
-      t[3] = b[12] * x2 + b[10];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[9]);
-      t[1] += static_cast<V>(a[8]);
-      t[2] += static_cast<V>(b[9]);
-      t[3] += static_cast<V>(b[8]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[7]);
-      t[1] += static_cast<V>(a[6]);
-      t[2] += static_cast<V>(b[7]);
-      t[3] += static_cast<V>(b[6]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[5]);
-      t[1] += static_cast<V>(a[4]);
-      t[2] += static_cast<V>(b[5]);
-      t[3] += static_cast<V>(b[4]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[3]);
-      t[1] += static_cast<V>(a[2]);
-      t[2] += static_cast<V>(b[3]);
-      t[3] += static_cast<V>(b[2]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[11]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[11]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[12]);
-      t[1] += static_cast<V>(a[13]);
-      t[2] += static_cast<V>(b[12]);
-      t[3] += static_cast<V>(b[13]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<15>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[14] * x2 + a[12];
-      t[1] = a[13] * x2 + a[11];
-      t[2] = b[14] * x2 + b[12];
-      t[3] = b[13] * x2 + b[11];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[3]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[3]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[11]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[11]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[12]);
-      t[1] += static_cast<V>(a[13]);
-      t[2] += static_cast<V>(b[12]);
-      t[3] += static_cast<V>(b[13]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[14]);
-      t[2] += static_cast<V>(b[14]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<16>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[15] * x2 + a[13];
-      t[1] = a[14] * x2 + a[12];
-      t[2] = b[15] * x2 + b[13];
-      t[3] = b[14] * x2 + b[12];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[11]);
-      t[1] += static_cast<V>(a[10]);
-      t[2] += static_cast<V>(b[11]);
-      t[3] += static_cast<V>(b[10]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[9]);
-      t[1] += static_cast<V>(a[8]);
-      t[2] += static_cast<V>(b[9]);
-      t[3] += static_cast<V>(b[8]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[7]);
-      t[1] += static_cast<V>(a[6]);
-      t[2] += static_cast<V>(b[7]);
-      t[3] += static_cast<V>(b[6]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[5]);
-      t[1] += static_cast<V>(a[4]);
-      t[2] += static_cast<V>(b[5]);
-      t[3] += static_cast<V>(b[4]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[3]);
-      t[1] += static_cast<V>(a[2]);
-      t[2] += static_cast<V>(b[3]);
-      t[3] += static_cast<V>(b[2]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[11]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[11]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[12]);
-      t[1] += static_cast<V>(a[13]);
-      t[2] += static_cast<V>(b[12]);
-      t[3] += static_cast<V>(b[13]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[14]);
-      t[1] += static_cast<V>(a[15]);
-      t[2] += static_cast<V>(b[14]);
-      t[3] += static_cast<V>(b[15]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner3_17.hpp b/boost/math/tools/detail/rational_horner3_17.hpp
deleted file mode 100644
index 9c3498e..0000000
--- a/boost/math/tools/detail/rational_horner3_17.hpp
+++ /dev/null
@@ -1,1166 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_RAT_EVAL_17_HPP
-#define BOOST_MATH_TOOLS_RAT_EVAL_17_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<5>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[4] * x2 + a[2];
-      t[1] = a[3] * x2 + a[1];
-      t[2] = b[4] * x2 + b[2];
-      t[3] = b[3] * x2 + b[1];
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[2] += static_cast<V>(b[4]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<6>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[5] * x2 + a[3];
-      t[1] = a[4] * x2 + a[2];
-      t[2] = b[5] * x2 + b[3];
-      t[3] = b[4] * x2 + b[2];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<7>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[6] * x2 + a[4];
-      t[1] = a[5] * x2 + a[3];
-      t[2] = b[6] * x2 + b[4];
-      t[3] = b[5] * x2 + b[3];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[2] += static_cast<V>(b[6]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<8>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[7] * x2 + a[5];
-      t[1] = a[6] * x2 + a[4];
-      t[2] = b[7] * x2 + b[5];
-      t[3] = b[6] * x2 + b[4];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[3]);
-      t[1] += static_cast<V>(a[2]);
-      t[2] += static_cast<V>(b[3]);
-      t[3] += static_cast<V>(b[2]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<9>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[8] * x2 + a[6];
-      t[1] = a[7] * x2 + a[5];
-      t[2] = b[8] * x2 + b[6];
-      t[3] = b[7] * x2 + b[5];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[3]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[3]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[2] += static_cast<V>(b[8]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<10>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[9] * x2 + a[7];
-      t[1] = a[8] * x2 + a[6];
-      t[2] = b[9] * x2 + b[7];
-      t[3] = b[8] * x2 + b[6];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[5]);
-      t[1] += static_cast<V>(a[4]);
-      t[2] += static_cast<V>(b[5]);
-      t[3] += static_cast<V>(b[4]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[3]);
-      t[1] += static_cast<V>(a[2]);
-      t[2] += static_cast<V>(b[3]);
-      t[3] += static_cast<V>(b[2]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<11>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[10] * x2 + a[8];
-      t[1] = a[9] * x2 + a[7];
-      t[2] = b[10] * x2 + b[8];
-      t[3] = b[9] * x2 + b[7];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[3]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[3]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[2] += static_cast<V>(b[10]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<12>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[11] * x2 + a[9];
-      t[1] = a[10] * x2 + a[8];
-      t[2] = b[11] * x2 + b[9];
-      t[3] = b[10] * x2 + b[8];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[7]);
-      t[1] += static_cast<V>(a[6]);
-      t[2] += static_cast<V>(b[7]);
-      t[3] += static_cast<V>(b[6]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[5]);
-      t[1] += static_cast<V>(a[4]);
-      t[2] += static_cast<V>(b[5]);
-      t[3] += static_cast<V>(b[4]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[3]);
-      t[1] += static_cast<V>(a[2]);
-      t[2] += static_cast<V>(b[3]);
-      t[3] += static_cast<V>(b[2]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[11]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[11]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<13>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[12] * x2 + a[10];
-      t[1] = a[11] * x2 + a[9];
-      t[2] = b[12] * x2 + b[10];
-      t[3] = b[11] * x2 + b[9];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[3]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[3]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[11]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[11]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[12]);
-      t[2] += static_cast<V>(b[12]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<14>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[13] * x2 + a[11];
-      t[1] = a[12] * x2 + a[10];
-      t[2] = b[13] * x2 + b[11];
-      t[3] = b[12] * x2 + b[10];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[9]);
-      t[1] += static_cast<V>(a[8]);
-      t[2] += static_cast<V>(b[9]);
-      t[3] += static_cast<V>(b[8]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[7]);
-      t[1] += static_cast<V>(a[6]);
-      t[2] += static_cast<V>(b[7]);
-      t[3] += static_cast<V>(b[6]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[5]);
-      t[1] += static_cast<V>(a[4]);
-      t[2] += static_cast<V>(b[5]);
-      t[3] += static_cast<V>(b[4]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[3]);
-      t[1] += static_cast<V>(a[2]);
-      t[2] += static_cast<V>(b[3]);
-      t[3] += static_cast<V>(b[2]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[11]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[11]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[12]);
-      t[1] += static_cast<V>(a[13]);
-      t[2] += static_cast<V>(b[12]);
-      t[3] += static_cast<V>(b[13]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<15>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[14] * x2 + a[12];
-      t[1] = a[13] * x2 + a[11];
-      t[2] = b[14] * x2 + b[12];
-      t[3] = b[13] * x2 + b[11];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[3]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[3]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[11]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[11]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[12]);
-      t[1] += static_cast<V>(a[13]);
-      t[2] += static_cast<V>(b[12]);
-      t[3] += static_cast<V>(b[13]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[14]);
-      t[2] += static_cast<V>(b[14]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<16>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[15] * x2 + a[13];
-      t[1] = a[14] * x2 + a[12];
-      t[2] = b[15] * x2 + b[13];
-      t[3] = b[14] * x2 + b[12];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[11]);
-      t[1] += static_cast<V>(a[10]);
-      t[2] += static_cast<V>(b[11]);
-      t[3] += static_cast<V>(b[10]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[9]);
-      t[1] += static_cast<V>(a[8]);
-      t[2] += static_cast<V>(b[9]);
-      t[3] += static_cast<V>(b[8]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[7]);
-      t[1] += static_cast<V>(a[6]);
-      t[2] += static_cast<V>(b[7]);
-      t[3] += static_cast<V>(b[6]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[5]);
-      t[1] += static_cast<V>(a[4]);
-      t[2] += static_cast<V>(b[5]);
-      t[3] += static_cast<V>(b[4]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[3]);
-      t[1] += static_cast<V>(a[2]);
-      t[2] += static_cast<V>(b[3]);
-      t[3] += static_cast<V>(b[2]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[11]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[11]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[12]);
-      t[1] += static_cast<V>(a[13]);
-      t[2] += static_cast<V>(b[12]);
-      t[3] += static_cast<V>(b[13]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[14]);
-      t[1] += static_cast<V>(a[15]);
-      t[2] += static_cast<V>(b[14]);
-      t[3] += static_cast<V>(b[15]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<17>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[16] * x2 + a[14];
-      t[1] = a[15] * x2 + a[13];
-      t[2] = b[16] * x2 + b[14];
-      t[3] = b[15] * x2 + b[13];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[12]);
-      t[1] += static_cast<V>(a[11]);
-      t[2] += static_cast<V>(b[12]);
-      t[3] += static_cast<V>(b[11]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[3]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[3]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[11]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[11]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[12]);
-      t[1] += static_cast<V>(a[13]);
-      t[2] += static_cast<V>(b[12]);
-      t[3] += static_cast<V>(b[13]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[14]);
-      t[1] += static_cast<V>(a[15]);
-      t[2] += static_cast<V>(b[14]);
-      t[3] += static_cast<V>(b[15]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[16]);
-      t[2] += static_cast<V>(b[16]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner3_18.hpp b/boost/math/tools/detail/rational_horner3_18.hpp
deleted file mode 100644
index 5401e9f..0000000
--- a/boost/math/tools/detail/rational_horner3_18.hpp
+++ /dev/null
@@ -1,1308 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_RAT_EVAL_18_HPP
-#define BOOST_MATH_TOOLS_RAT_EVAL_18_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<5>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[4] * x2 + a[2];
-      t[1] = a[3] * x2 + a[1];
-      t[2] = b[4] * x2 + b[2];
-      t[3] = b[3] * x2 + b[1];
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[2] += static_cast<V>(b[4]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<6>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[5] * x2 + a[3];
-      t[1] = a[4] * x2 + a[2];
-      t[2] = b[5] * x2 + b[3];
-      t[3] = b[4] * x2 + b[2];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<7>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[6] * x2 + a[4];
-      t[1] = a[5] * x2 + a[3];
-      t[2] = b[6] * x2 + b[4];
-      t[3] = b[5] * x2 + b[3];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[2] += static_cast<V>(b[6]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<8>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[7] * x2 + a[5];
-      t[1] = a[6] * x2 + a[4];
-      t[2] = b[7] * x2 + b[5];
-      t[3] = b[6] * x2 + b[4];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[3]);
-      t[1] += static_cast<V>(a[2]);
-      t[2] += static_cast<V>(b[3]);
-      t[3] += static_cast<V>(b[2]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<9>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[8] * x2 + a[6];
-      t[1] = a[7] * x2 + a[5];
-      t[2] = b[8] * x2 + b[6];
-      t[3] = b[7] * x2 + b[5];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[3]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[3]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[2] += static_cast<V>(b[8]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<10>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[9] * x2 + a[7];
-      t[1] = a[8] * x2 + a[6];
-      t[2] = b[9] * x2 + b[7];
-      t[3] = b[8] * x2 + b[6];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[5]);
-      t[1] += static_cast<V>(a[4]);
-      t[2] += static_cast<V>(b[5]);
-      t[3] += static_cast<V>(b[4]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[3]);
-      t[1] += static_cast<V>(a[2]);
-      t[2] += static_cast<V>(b[3]);
-      t[3] += static_cast<V>(b[2]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<11>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[10] * x2 + a[8];
-      t[1] = a[9] * x2 + a[7];
-      t[2] = b[10] * x2 + b[8];
-      t[3] = b[9] * x2 + b[7];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[3]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[3]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[2] += static_cast<V>(b[10]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<12>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[11] * x2 + a[9];
-      t[1] = a[10] * x2 + a[8];
-      t[2] = b[11] * x2 + b[9];
-      t[3] = b[10] * x2 + b[8];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[7]);
-      t[1] += static_cast<V>(a[6]);
-      t[2] += static_cast<V>(b[7]);
-      t[3] += static_cast<V>(b[6]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[5]);
-      t[1] += static_cast<V>(a[4]);
-      t[2] += static_cast<V>(b[5]);
-      t[3] += static_cast<V>(b[4]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[3]);
-      t[1] += static_cast<V>(a[2]);
-      t[2] += static_cast<V>(b[3]);
-      t[3] += static_cast<V>(b[2]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[11]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[11]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<13>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[12] * x2 + a[10];
-      t[1] = a[11] * x2 + a[9];
-      t[2] = b[12] * x2 + b[10];
-      t[3] = b[11] * x2 + b[9];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[3]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[3]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[11]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[11]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[12]);
-      t[2] += static_cast<V>(b[12]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<14>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[13] * x2 + a[11];
-      t[1] = a[12] * x2 + a[10];
-      t[2] = b[13] * x2 + b[11];
-      t[3] = b[12] * x2 + b[10];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[9]);
-      t[1] += static_cast<V>(a[8]);
-      t[2] += static_cast<V>(b[9]);
-      t[3] += static_cast<V>(b[8]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[7]);
-      t[1] += static_cast<V>(a[6]);
-      t[2] += static_cast<V>(b[7]);
-      t[3] += static_cast<V>(b[6]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[5]);
-      t[1] += static_cast<V>(a[4]);
-      t[2] += static_cast<V>(b[5]);
-      t[3] += static_cast<V>(b[4]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[3]);
-      t[1] += static_cast<V>(a[2]);
-      t[2] += static_cast<V>(b[3]);
-      t[3] += static_cast<V>(b[2]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[11]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[11]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[12]);
-      t[1] += static_cast<V>(a[13]);
-      t[2] += static_cast<V>(b[12]);
-      t[3] += static_cast<V>(b[13]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<15>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[14] * x2 + a[12];
-      t[1] = a[13] * x2 + a[11];
-      t[2] = b[14] * x2 + b[12];
-      t[3] = b[13] * x2 + b[11];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[3]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[3]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[11]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[11]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[12]);
-      t[1] += static_cast<V>(a[13]);
-      t[2] += static_cast<V>(b[12]);
-      t[3] += static_cast<V>(b[13]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[14]);
-      t[2] += static_cast<V>(b[14]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<16>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[15] * x2 + a[13];
-      t[1] = a[14] * x2 + a[12];
-      t[2] = b[15] * x2 + b[13];
-      t[3] = b[14] * x2 + b[12];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[11]);
-      t[1] += static_cast<V>(a[10]);
-      t[2] += static_cast<V>(b[11]);
-      t[3] += static_cast<V>(b[10]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[9]);
-      t[1] += static_cast<V>(a[8]);
-      t[2] += static_cast<V>(b[9]);
-      t[3] += static_cast<V>(b[8]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[7]);
-      t[1] += static_cast<V>(a[6]);
-      t[2] += static_cast<V>(b[7]);
-      t[3] += static_cast<V>(b[6]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[5]);
-      t[1] += static_cast<V>(a[4]);
-      t[2] += static_cast<V>(b[5]);
-      t[3] += static_cast<V>(b[4]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[3]);
-      t[1] += static_cast<V>(a[2]);
-      t[2] += static_cast<V>(b[3]);
-      t[3] += static_cast<V>(b[2]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[11]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[11]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[12]);
-      t[1] += static_cast<V>(a[13]);
-      t[2] += static_cast<V>(b[12]);
-      t[3] += static_cast<V>(b[13]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[14]);
-      t[1] += static_cast<V>(a[15]);
-      t[2] += static_cast<V>(b[14]);
-      t[3] += static_cast<V>(b[15]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<17>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[16] * x2 + a[14];
-      t[1] = a[15] * x2 + a[13];
-      t[2] = b[16] * x2 + b[14];
-      t[3] = b[15] * x2 + b[13];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[12]);
-      t[1] += static_cast<V>(a[11]);
-      t[2] += static_cast<V>(b[12]);
-      t[3] += static_cast<V>(b[11]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[3]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[3]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[11]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[11]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[12]);
-      t[1] += static_cast<V>(a[13]);
-      t[2] += static_cast<V>(b[12]);
-      t[3] += static_cast<V>(b[13]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[14]);
-      t[1] += static_cast<V>(a[15]);
-      t[2] += static_cast<V>(b[14]);
-      t[3] += static_cast<V>(b[15]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[16]);
-      t[2] += static_cast<V>(b[16]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<18>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[17] * x2 + a[15];
-      t[1] = a[16] * x2 + a[14];
-      t[2] = b[17] * x2 + b[15];
-      t[3] = b[16] * x2 + b[14];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[13]);
-      t[1] += static_cast<V>(a[12]);
-      t[2] += static_cast<V>(b[13]);
-      t[3] += static_cast<V>(b[12]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[11]);
-      t[1] += static_cast<V>(a[10]);
-      t[2] += static_cast<V>(b[11]);
-      t[3] += static_cast<V>(b[10]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[9]);
-      t[1] += static_cast<V>(a[8]);
-      t[2] += static_cast<V>(b[9]);
-      t[3] += static_cast<V>(b[8]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[7]);
-      t[1] += static_cast<V>(a[6]);
-      t[2] += static_cast<V>(b[7]);
-      t[3] += static_cast<V>(b[6]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[5]);
-      t[1] += static_cast<V>(a[4]);
-      t[2] += static_cast<V>(b[5]);
-      t[3] += static_cast<V>(b[4]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[3]);
-      t[1] += static_cast<V>(a[2]);
-      t[2] += static_cast<V>(b[3]);
-      t[3] += static_cast<V>(b[2]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[11]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[11]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[12]);
-      t[1] += static_cast<V>(a[13]);
-      t[2] += static_cast<V>(b[12]);
-      t[3] += static_cast<V>(b[13]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[14]);
-      t[1] += static_cast<V>(a[15]);
-      t[2] += static_cast<V>(b[14]);
-      t[3] += static_cast<V>(b[15]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[16]);
-      t[1] += static_cast<V>(a[17]);
-      t[2] += static_cast<V>(b[16]);
-      t[3] += static_cast<V>(b[17]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner3_19.hpp b/boost/math/tools/detail/rational_horner3_19.hpp
deleted file mode 100644
index c111b68..0000000
--- a/boost/math/tools/detail/rational_horner3_19.hpp
+++ /dev/null
@@ -1,1458 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_RAT_EVAL_19_HPP
-#define BOOST_MATH_TOOLS_RAT_EVAL_19_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<5>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[4] * x2 + a[2];
-      t[1] = a[3] * x2 + a[1];
-      t[2] = b[4] * x2 + b[2];
-      t[3] = b[3] * x2 + b[1];
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[2] += static_cast<V>(b[4]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<6>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[5] * x2 + a[3];
-      t[1] = a[4] * x2 + a[2];
-      t[2] = b[5] * x2 + b[3];
-      t[3] = b[4] * x2 + b[2];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<7>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[6] * x2 + a[4];
-      t[1] = a[5] * x2 + a[3];
-      t[2] = b[6] * x2 + b[4];
-      t[3] = b[5] * x2 + b[3];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[2] += static_cast<V>(b[6]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<8>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[7] * x2 + a[5];
-      t[1] = a[6] * x2 + a[4];
-      t[2] = b[7] * x2 + b[5];
-      t[3] = b[6] * x2 + b[4];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[3]);
-      t[1] += static_cast<V>(a[2]);
-      t[2] += static_cast<V>(b[3]);
-      t[3] += static_cast<V>(b[2]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<9>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[8] * x2 + a[6];
-      t[1] = a[7] * x2 + a[5];
-      t[2] = b[8] * x2 + b[6];
-      t[3] = b[7] * x2 + b[5];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[3]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[3]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[2] += static_cast<V>(b[8]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<10>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[9] * x2 + a[7];
-      t[1] = a[8] * x2 + a[6];
-      t[2] = b[9] * x2 + b[7];
-      t[3] = b[8] * x2 + b[6];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[5]);
-      t[1] += static_cast<V>(a[4]);
-      t[2] += static_cast<V>(b[5]);
-      t[3] += static_cast<V>(b[4]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[3]);
-      t[1] += static_cast<V>(a[2]);
-      t[2] += static_cast<V>(b[3]);
-      t[3] += static_cast<V>(b[2]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<11>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[10] * x2 + a[8];
-      t[1] = a[9] * x2 + a[7];
-      t[2] = b[10] * x2 + b[8];
-      t[3] = b[9] * x2 + b[7];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[3]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[3]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[2] += static_cast<V>(b[10]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<12>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[11] * x2 + a[9];
-      t[1] = a[10] * x2 + a[8];
-      t[2] = b[11] * x2 + b[9];
-      t[3] = b[10] * x2 + b[8];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[7]);
-      t[1] += static_cast<V>(a[6]);
-      t[2] += static_cast<V>(b[7]);
-      t[3] += static_cast<V>(b[6]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[5]);
-      t[1] += static_cast<V>(a[4]);
-      t[2] += static_cast<V>(b[5]);
-      t[3] += static_cast<V>(b[4]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[3]);
-      t[1] += static_cast<V>(a[2]);
-      t[2] += static_cast<V>(b[3]);
-      t[3] += static_cast<V>(b[2]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[11]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[11]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<13>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[12] * x2 + a[10];
-      t[1] = a[11] * x2 + a[9];
-      t[2] = b[12] * x2 + b[10];
-      t[3] = b[11] * x2 + b[9];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[3]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[3]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[11]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[11]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[12]);
-      t[2] += static_cast<V>(b[12]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<14>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[13] * x2 + a[11];
-      t[1] = a[12] * x2 + a[10];
-      t[2] = b[13] * x2 + b[11];
-      t[3] = b[12] * x2 + b[10];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[9]);
-      t[1] += static_cast<V>(a[8]);
-      t[2] += static_cast<V>(b[9]);
-      t[3] += static_cast<V>(b[8]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[7]);
-      t[1] += static_cast<V>(a[6]);
-      t[2] += static_cast<V>(b[7]);
-      t[3] += static_cast<V>(b[6]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[5]);
-      t[1] += static_cast<V>(a[4]);
-      t[2] += static_cast<V>(b[5]);
-      t[3] += static_cast<V>(b[4]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[3]);
-      t[1] += static_cast<V>(a[2]);
-      t[2] += static_cast<V>(b[3]);
-      t[3] += static_cast<V>(b[2]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[11]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[11]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[12]);
-      t[1] += static_cast<V>(a[13]);
-      t[2] += static_cast<V>(b[12]);
-      t[3] += static_cast<V>(b[13]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<15>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[14] * x2 + a[12];
-      t[1] = a[13] * x2 + a[11];
-      t[2] = b[14] * x2 + b[12];
-      t[3] = b[13] * x2 + b[11];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[3]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[3]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[11]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[11]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[12]);
-      t[1] += static_cast<V>(a[13]);
-      t[2] += static_cast<V>(b[12]);
-      t[3] += static_cast<V>(b[13]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[14]);
-      t[2] += static_cast<V>(b[14]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<16>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[15] * x2 + a[13];
-      t[1] = a[14] * x2 + a[12];
-      t[2] = b[15] * x2 + b[13];
-      t[3] = b[14] * x2 + b[12];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[11]);
-      t[1] += static_cast<V>(a[10]);
-      t[2] += static_cast<V>(b[11]);
-      t[3] += static_cast<V>(b[10]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[9]);
-      t[1] += static_cast<V>(a[8]);
-      t[2] += static_cast<V>(b[9]);
-      t[3] += static_cast<V>(b[8]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[7]);
-      t[1] += static_cast<V>(a[6]);
-      t[2] += static_cast<V>(b[7]);
-      t[3] += static_cast<V>(b[6]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[5]);
-      t[1] += static_cast<V>(a[4]);
-      t[2] += static_cast<V>(b[5]);
-      t[3] += static_cast<V>(b[4]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[3]);
-      t[1] += static_cast<V>(a[2]);
-      t[2] += static_cast<V>(b[3]);
-      t[3] += static_cast<V>(b[2]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[11]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[11]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[12]);
-      t[1] += static_cast<V>(a[13]);
-      t[2] += static_cast<V>(b[12]);
-      t[3] += static_cast<V>(b[13]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[14]);
-      t[1] += static_cast<V>(a[15]);
-      t[2] += static_cast<V>(b[14]);
-      t[3] += static_cast<V>(b[15]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<17>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[16] * x2 + a[14];
-      t[1] = a[15] * x2 + a[13];
-      t[2] = b[16] * x2 + b[14];
-      t[3] = b[15] * x2 + b[13];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[12]);
-      t[1] += static_cast<V>(a[11]);
-      t[2] += static_cast<V>(b[12]);
-      t[3] += static_cast<V>(b[11]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[3]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[3]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[11]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[11]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[12]);
-      t[1] += static_cast<V>(a[13]);
-      t[2] += static_cast<V>(b[12]);
-      t[3] += static_cast<V>(b[13]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[14]);
-      t[1] += static_cast<V>(a[15]);
-      t[2] += static_cast<V>(b[14]);
-      t[3] += static_cast<V>(b[15]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[16]);
-      t[2] += static_cast<V>(b[16]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<18>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[17] * x2 + a[15];
-      t[1] = a[16] * x2 + a[14];
-      t[2] = b[17] * x2 + b[15];
-      t[3] = b[16] * x2 + b[14];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[13]);
-      t[1] += static_cast<V>(a[12]);
-      t[2] += static_cast<V>(b[13]);
-      t[3] += static_cast<V>(b[12]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[11]);
-      t[1] += static_cast<V>(a[10]);
-      t[2] += static_cast<V>(b[11]);
-      t[3] += static_cast<V>(b[10]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[9]);
-      t[1] += static_cast<V>(a[8]);
-      t[2] += static_cast<V>(b[9]);
-      t[3] += static_cast<V>(b[8]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[7]);
-      t[1] += static_cast<V>(a[6]);
-      t[2] += static_cast<V>(b[7]);
-      t[3] += static_cast<V>(b[6]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[5]);
-      t[1] += static_cast<V>(a[4]);
-      t[2] += static_cast<V>(b[5]);
-      t[3] += static_cast<V>(b[4]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[3]);
-      t[1] += static_cast<V>(a[2]);
-      t[2] += static_cast<V>(b[3]);
-      t[3] += static_cast<V>(b[2]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[11]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[11]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[12]);
-      t[1] += static_cast<V>(a[13]);
-      t[2] += static_cast<V>(b[12]);
-      t[3] += static_cast<V>(b[13]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[14]);
-      t[1] += static_cast<V>(a[15]);
-      t[2] += static_cast<V>(b[14]);
-      t[3] += static_cast<V>(b[15]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[16]);
-      t[1] += static_cast<V>(a[17]);
-      t[2] += static_cast<V>(b[16]);
-      t[3] += static_cast<V>(b[17]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<19>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[18] * x2 + a[16];
-      t[1] = a[17] * x2 + a[15];
-      t[2] = b[18] * x2 + b[16];
-      t[3] = b[17] * x2 + b[15];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[14]);
-      t[1] += static_cast<V>(a[13]);
-      t[2] += static_cast<V>(b[14]);
-      t[3] += static_cast<V>(b[13]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[12]);
-      t[1] += static_cast<V>(a[11]);
-      t[2] += static_cast<V>(b[12]);
-      t[3] += static_cast<V>(b[11]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[3]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[3]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[11]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[11]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[12]);
-      t[1] += static_cast<V>(a[13]);
-      t[2] += static_cast<V>(b[12]);
-      t[3] += static_cast<V>(b[13]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[14]);
-      t[1] += static_cast<V>(a[15]);
-      t[2] += static_cast<V>(b[14]);
-      t[3] += static_cast<V>(b[15]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[16]);
-      t[1] += static_cast<V>(a[17]);
-      t[2] += static_cast<V>(b[16]);
-      t[3] += static_cast<V>(b[17]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[18]);
-      t[2] += static_cast<V>(b[18]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner3_2.hpp b/boost/math/tools/detail/rational_horner3_2.hpp
deleted file mode 100644
index 35b5abb..0000000
--- a/boost/math/tools/detail/rational_horner3_2.hpp
+++ /dev/null
@@ -1,48 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_RAT_EVAL_2_HPP
-#define BOOST_MATH_TOOLS_RAT_EVAL_2_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner3_20.hpp b/boost/math/tools/detail/rational_horner3_20.hpp
deleted file mode 100644
index 7bee9b1..0000000
--- a/boost/math/tools/detail/rational_horner3_20.hpp
+++ /dev/null
@@ -1,1616 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_RAT_EVAL_20_HPP
-#define BOOST_MATH_TOOLS_RAT_EVAL_20_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<5>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[4] * x2 + a[2];
-      t[1] = a[3] * x2 + a[1];
-      t[2] = b[4] * x2 + b[2];
-      t[3] = b[3] * x2 + b[1];
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[2] += static_cast<V>(b[4]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<6>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[5] * x2 + a[3];
-      t[1] = a[4] * x2 + a[2];
-      t[2] = b[5] * x2 + b[3];
-      t[3] = b[4] * x2 + b[2];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<7>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[6] * x2 + a[4];
-      t[1] = a[5] * x2 + a[3];
-      t[2] = b[6] * x2 + b[4];
-      t[3] = b[5] * x2 + b[3];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[2] += static_cast<V>(b[6]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<8>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[7] * x2 + a[5];
-      t[1] = a[6] * x2 + a[4];
-      t[2] = b[7] * x2 + b[5];
-      t[3] = b[6] * x2 + b[4];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[3]);
-      t[1] += static_cast<V>(a[2]);
-      t[2] += static_cast<V>(b[3]);
-      t[3] += static_cast<V>(b[2]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<9>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[8] * x2 + a[6];
-      t[1] = a[7] * x2 + a[5];
-      t[2] = b[8] * x2 + b[6];
-      t[3] = b[7] * x2 + b[5];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[3]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[3]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[2] += static_cast<V>(b[8]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<10>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[9] * x2 + a[7];
-      t[1] = a[8] * x2 + a[6];
-      t[2] = b[9] * x2 + b[7];
-      t[3] = b[8] * x2 + b[6];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[5]);
-      t[1] += static_cast<V>(a[4]);
-      t[2] += static_cast<V>(b[5]);
-      t[3] += static_cast<V>(b[4]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[3]);
-      t[1] += static_cast<V>(a[2]);
-      t[2] += static_cast<V>(b[3]);
-      t[3] += static_cast<V>(b[2]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<11>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[10] * x2 + a[8];
-      t[1] = a[9] * x2 + a[7];
-      t[2] = b[10] * x2 + b[8];
-      t[3] = b[9] * x2 + b[7];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[3]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[3]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[2] += static_cast<V>(b[10]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<12>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[11] * x2 + a[9];
-      t[1] = a[10] * x2 + a[8];
-      t[2] = b[11] * x2 + b[9];
-      t[3] = b[10] * x2 + b[8];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[7]);
-      t[1] += static_cast<V>(a[6]);
-      t[2] += static_cast<V>(b[7]);
-      t[3] += static_cast<V>(b[6]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[5]);
-      t[1] += static_cast<V>(a[4]);
-      t[2] += static_cast<V>(b[5]);
-      t[3] += static_cast<V>(b[4]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[3]);
-      t[1] += static_cast<V>(a[2]);
-      t[2] += static_cast<V>(b[3]);
-      t[3] += static_cast<V>(b[2]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[11]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[11]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<13>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[12] * x2 + a[10];
-      t[1] = a[11] * x2 + a[9];
-      t[2] = b[12] * x2 + b[10];
-      t[3] = b[11] * x2 + b[9];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[3]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[3]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[11]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[11]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[12]);
-      t[2] += static_cast<V>(b[12]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<14>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[13] * x2 + a[11];
-      t[1] = a[12] * x2 + a[10];
-      t[2] = b[13] * x2 + b[11];
-      t[3] = b[12] * x2 + b[10];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[9]);
-      t[1] += static_cast<V>(a[8]);
-      t[2] += static_cast<V>(b[9]);
-      t[3] += static_cast<V>(b[8]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[7]);
-      t[1] += static_cast<V>(a[6]);
-      t[2] += static_cast<V>(b[7]);
-      t[3] += static_cast<V>(b[6]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[5]);
-      t[1] += static_cast<V>(a[4]);
-      t[2] += static_cast<V>(b[5]);
-      t[3] += static_cast<V>(b[4]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[3]);
-      t[1] += static_cast<V>(a[2]);
-      t[2] += static_cast<V>(b[3]);
-      t[3] += static_cast<V>(b[2]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[11]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[11]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[12]);
-      t[1] += static_cast<V>(a[13]);
-      t[2] += static_cast<V>(b[12]);
-      t[3] += static_cast<V>(b[13]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<15>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[14] * x2 + a[12];
-      t[1] = a[13] * x2 + a[11];
-      t[2] = b[14] * x2 + b[12];
-      t[3] = b[13] * x2 + b[11];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[3]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[3]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[11]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[11]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[12]);
-      t[1] += static_cast<V>(a[13]);
-      t[2] += static_cast<V>(b[12]);
-      t[3] += static_cast<V>(b[13]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[14]);
-      t[2] += static_cast<V>(b[14]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<16>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[15] * x2 + a[13];
-      t[1] = a[14] * x2 + a[12];
-      t[2] = b[15] * x2 + b[13];
-      t[3] = b[14] * x2 + b[12];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[11]);
-      t[1] += static_cast<V>(a[10]);
-      t[2] += static_cast<V>(b[11]);
-      t[3] += static_cast<V>(b[10]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[9]);
-      t[1] += static_cast<V>(a[8]);
-      t[2] += static_cast<V>(b[9]);
-      t[3] += static_cast<V>(b[8]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[7]);
-      t[1] += static_cast<V>(a[6]);
-      t[2] += static_cast<V>(b[7]);
-      t[3] += static_cast<V>(b[6]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[5]);
-      t[1] += static_cast<V>(a[4]);
-      t[2] += static_cast<V>(b[5]);
-      t[3] += static_cast<V>(b[4]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[3]);
-      t[1] += static_cast<V>(a[2]);
-      t[2] += static_cast<V>(b[3]);
-      t[3] += static_cast<V>(b[2]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[11]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[11]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[12]);
-      t[1] += static_cast<V>(a[13]);
-      t[2] += static_cast<V>(b[12]);
-      t[3] += static_cast<V>(b[13]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[14]);
-      t[1] += static_cast<V>(a[15]);
-      t[2] += static_cast<V>(b[14]);
-      t[3] += static_cast<V>(b[15]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<17>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[16] * x2 + a[14];
-      t[1] = a[15] * x2 + a[13];
-      t[2] = b[16] * x2 + b[14];
-      t[3] = b[15] * x2 + b[13];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[12]);
-      t[1] += static_cast<V>(a[11]);
-      t[2] += static_cast<V>(b[12]);
-      t[3] += static_cast<V>(b[11]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[3]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[3]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[11]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[11]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[12]);
-      t[1] += static_cast<V>(a[13]);
-      t[2] += static_cast<V>(b[12]);
-      t[3] += static_cast<V>(b[13]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[14]);
-      t[1] += static_cast<V>(a[15]);
-      t[2] += static_cast<V>(b[14]);
-      t[3] += static_cast<V>(b[15]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[16]);
-      t[2] += static_cast<V>(b[16]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<18>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[17] * x2 + a[15];
-      t[1] = a[16] * x2 + a[14];
-      t[2] = b[17] * x2 + b[15];
-      t[3] = b[16] * x2 + b[14];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[13]);
-      t[1] += static_cast<V>(a[12]);
-      t[2] += static_cast<V>(b[13]);
-      t[3] += static_cast<V>(b[12]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[11]);
-      t[1] += static_cast<V>(a[10]);
-      t[2] += static_cast<V>(b[11]);
-      t[3] += static_cast<V>(b[10]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[9]);
-      t[1] += static_cast<V>(a[8]);
-      t[2] += static_cast<V>(b[9]);
-      t[3] += static_cast<V>(b[8]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[7]);
-      t[1] += static_cast<V>(a[6]);
-      t[2] += static_cast<V>(b[7]);
-      t[3] += static_cast<V>(b[6]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[5]);
-      t[1] += static_cast<V>(a[4]);
-      t[2] += static_cast<V>(b[5]);
-      t[3] += static_cast<V>(b[4]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[3]);
-      t[1] += static_cast<V>(a[2]);
-      t[2] += static_cast<V>(b[3]);
-      t[3] += static_cast<V>(b[2]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[11]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[11]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[12]);
-      t[1] += static_cast<V>(a[13]);
-      t[2] += static_cast<V>(b[12]);
-      t[3] += static_cast<V>(b[13]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[14]);
-      t[1] += static_cast<V>(a[15]);
-      t[2] += static_cast<V>(b[14]);
-      t[3] += static_cast<V>(b[15]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[16]);
-      t[1] += static_cast<V>(a[17]);
-      t[2] += static_cast<V>(b[16]);
-      t[3] += static_cast<V>(b[17]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<19>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[18] * x2 + a[16];
-      t[1] = a[17] * x2 + a[15];
-      t[2] = b[18] * x2 + b[16];
-      t[3] = b[17] * x2 + b[15];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[14]);
-      t[1] += static_cast<V>(a[13]);
-      t[2] += static_cast<V>(b[14]);
-      t[3] += static_cast<V>(b[13]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[12]);
-      t[1] += static_cast<V>(a[11]);
-      t[2] += static_cast<V>(b[12]);
-      t[3] += static_cast<V>(b[11]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[3]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[3]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[11]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[11]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[12]);
-      t[1] += static_cast<V>(a[13]);
-      t[2] += static_cast<V>(b[12]);
-      t[3] += static_cast<V>(b[13]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[14]);
-      t[1] += static_cast<V>(a[15]);
-      t[2] += static_cast<V>(b[14]);
-      t[3] += static_cast<V>(b[15]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[16]);
-      t[1] += static_cast<V>(a[17]);
-      t[2] += static_cast<V>(b[16]);
-      t[3] += static_cast<V>(b[17]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[18]);
-      t[2] += static_cast<V>(b[18]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<20>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[19] * x2 + a[17];
-      t[1] = a[18] * x2 + a[16];
-      t[2] = b[19] * x2 + b[17];
-      t[3] = b[18] * x2 + b[16];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[15]);
-      t[1] += static_cast<V>(a[14]);
-      t[2] += static_cast<V>(b[15]);
-      t[3] += static_cast<V>(b[14]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[13]);
-      t[1] += static_cast<V>(a[12]);
-      t[2] += static_cast<V>(b[13]);
-      t[3] += static_cast<V>(b[12]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[11]);
-      t[1] += static_cast<V>(a[10]);
-      t[2] += static_cast<V>(b[11]);
-      t[3] += static_cast<V>(b[10]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[9]);
-      t[1] += static_cast<V>(a[8]);
-      t[2] += static_cast<V>(b[9]);
-      t[3] += static_cast<V>(b[8]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[7]);
-      t[1] += static_cast<V>(a[6]);
-      t[2] += static_cast<V>(b[7]);
-      t[3] += static_cast<V>(b[6]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[5]);
-      t[1] += static_cast<V>(a[4]);
-      t[2] += static_cast<V>(b[5]);
-      t[3] += static_cast<V>(b[4]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[3]);
-      t[1] += static_cast<V>(a[2]);
-      t[2] += static_cast<V>(b[3]);
-      t[3] += static_cast<V>(b[2]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[1] += static_cast<V>(a[9]);
-      t[2] += static_cast<V>(b[8]);
-      t[3] += static_cast<V>(b[9]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[10]);
-      t[1] += static_cast<V>(a[11]);
-      t[2] += static_cast<V>(b[10]);
-      t[3] += static_cast<V>(b[11]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[12]);
-      t[1] += static_cast<V>(a[13]);
-      t[2] += static_cast<V>(b[12]);
-      t[3] += static_cast<V>(b[13]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[14]);
-      t[1] += static_cast<V>(a[15]);
-      t[2] += static_cast<V>(b[14]);
-      t[3] += static_cast<V>(b[15]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[16]);
-      t[1] += static_cast<V>(a[17]);
-      t[2] += static_cast<V>(b[16]);
-      t[3] += static_cast<V>(b[17]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[18]);
-      t[1] += static_cast<V>(a[19]);
-      t[2] += static_cast<V>(b[18]);
-      t[3] += static_cast<V>(b[19]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner3_3.hpp b/boost/math/tools/detail/rational_horner3_3.hpp
deleted file mode 100644
index 8838ac1..0000000
--- a/boost/math/tools/detail/rational_horner3_3.hpp
+++ /dev/null
@@ -1,48 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_RAT_EVAL_3_HPP
-#define BOOST_MATH_TOOLS_RAT_EVAL_3_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner3_4.hpp b/boost/math/tools/detail/rational_horner3_4.hpp
deleted file mode 100644
index 5fe5ada..0000000
--- a/boost/math/tools/detail/rational_horner3_4.hpp
+++ /dev/null
@@ -1,48 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_RAT_EVAL_4_HPP
-#define BOOST_MATH_TOOLS_RAT_EVAL_4_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner3_5.hpp b/boost/math/tools/detail/rational_horner3_5.hpp
deleted file mode 100644
index 23a6068..0000000
--- a/boost/math/tools/detail/rational_horner3_5.hpp
+++ /dev/null
@@ -1,86 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_RAT_EVAL_5_HPP
-#define BOOST_MATH_TOOLS_RAT_EVAL_5_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<5>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[4] * x2 + a[2];
-      t[1] = a[3] * x2 + a[1];
-      t[2] = b[4] * x2 + b[2];
-      t[3] = b[3] * x2 + b[1];
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[2] += static_cast<V>(b[4]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner3_6.hpp b/boost/math/tools/detail/rational_horner3_6.hpp
deleted file mode 100644
index 186167d..0000000
--- a/boost/math/tools/detail/rational_horner3_6.hpp
+++ /dev/null
@@ -1,132 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_RAT_EVAL_6_HPP
-#define BOOST_MATH_TOOLS_RAT_EVAL_6_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<5>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[4] * x2 + a[2];
-      t[1] = a[3] * x2 + a[1];
-      t[2] = b[4] * x2 + b[2];
-      t[3] = b[3] * x2 + b[1];
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[2] += static_cast<V>(b[4]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<6>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[5] * x2 + a[3];
-      t[1] = a[4] * x2 + a[2];
-      t[2] = b[5] * x2 + b[3];
-      t[3] = b[4] * x2 + b[2];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner3_7.hpp b/boost/math/tools/detail/rational_horner3_7.hpp
deleted file mode 100644
index e08dce6..0000000
--- a/boost/math/tools/detail/rational_horner3_7.hpp
+++ /dev/null
@@ -1,186 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_RAT_EVAL_7_HPP
-#define BOOST_MATH_TOOLS_RAT_EVAL_7_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<5>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[4] * x2 + a[2];
-      t[1] = a[3] * x2 + a[1];
-      t[2] = b[4] * x2 + b[2];
-      t[3] = b[3] * x2 + b[1];
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[2] += static_cast<V>(b[4]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<6>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[5] * x2 + a[3];
-      t[1] = a[4] * x2 + a[2];
-      t[2] = b[5] * x2 + b[3];
-      t[3] = b[4] * x2 + b[2];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<7>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[6] * x2 + a[4];
-      t[1] = a[5] * x2 + a[3];
-      t[2] = b[6] * x2 + b[4];
-      t[3] = b[5] * x2 + b[3];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[2] += static_cast<V>(b[6]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner3_8.hpp b/boost/math/tools/detail/rational_horner3_8.hpp
deleted file mode 100644
index 3ceb717..0000000
--- a/boost/math/tools/detail/rational_horner3_8.hpp
+++ /dev/null
@@ -1,248 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_RAT_EVAL_8_HPP
-#define BOOST_MATH_TOOLS_RAT_EVAL_8_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<5>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[4] * x2 + a[2];
-      t[1] = a[3] * x2 + a[1];
-      t[2] = b[4] * x2 + b[2];
-      t[3] = b[3] * x2 + b[1];
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[2] += static_cast<V>(b[4]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<6>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[5] * x2 + a[3];
-      t[1] = a[4] * x2 + a[2];
-      t[2] = b[5] * x2 + b[3];
-      t[3] = b[4] * x2 + b[2];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<7>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[6] * x2 + a[4];
-      t[1] = a[5] * x2 + a[3];
-      t[2] = b[6] * x2 + b[4];
-      t[3] = b[5] * x2 + b[3];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[2] += static_cast<V>(b[6]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<8>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[7] * x2 + a[5];
-      t[1] = a[6] * x2 + a[4];
-      t[2] = b[7] * x2 + b[5];
-      t[3] = b[6] * x2 + b[4];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[3]);
-      t[1] += static_cast<V>(a[2]);
-      t[2] += static_cast<V>(b[3]);
-      t[3] += static_cast<V>(b[2]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/detail/rational_horner3_9.hpp b/boost/math/tools/detail/rational_horner3_9.hpp
deleted file mode 100644
index 94dab4c..0000000
--- a/boost/math/tools/detail/rational_horner3_9.hpp
+++ /dev/null
@@ -1,318 +0,0 @@
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-//  This file is machine generated, do not edit by hand
-
-// Polynomial evaluation using second order Horners rule
-#ifndef BOOST_MATH_TOOLS_RAT_EVAL_9_HPP
-#define BOOST_MATH_TOOLS_RAT_EVAL_9_HPP
-
-namespace boost{ namespace math{ namespace tools{ namespace detail{
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T*, const U*, const V&, const mpl::int_<0>*)
-{
-   return static_cast<V>(0);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V&, const mpl::int_<1>*)
-{
-   return static_cast<V>(a[0]) / static_cast<V>(b[0]);
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<2>*)
-{
-   return static_cast<V>((a[1] * x + a[0]) / (b[1] * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<3>*)
-{
-   return static_cast<V>(((a[2] * x + a[1]) * x + a[0]) / ((b[2] * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<4>*)
-{
-   return static_cast<V>((((a[3] * x + a[2]) * x + a[1]) * x + a[0]) / (((b[3] * x + b[2]) * x + b[1]) * x + b[0]));
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<5>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[4] * x2 + a[2];
-      t[1] = a[3] * x2 + a[1];
-      t[2] = b[4] * x2 + b[2];
-      t[3] = b[3] * x2 + b[1];
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[2] += static_cast<V>(b[4]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<6>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[5] * x2 + a[3];
-      t[1] = a[4] * x2 + a[2];
-      t[2] = b[5] * x2 + b[3];
-      t[3] = b[4] * x2 + b[2];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<7>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[6] * x2 + a[4];
-      t[1] = a[5] * x2 + a[3];
-      t[2] = b[6] * x2 + b[4];
-      t[3] = b[5] * x2 + b[3];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[2] += static_cast<V>(b[6]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<8>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[7] * x2 + a[5];
-      t[1] = a[6] * x2 + a[4];
-      t[2] = b[7] * x2 + b[5];
-      t[3] = b[6] * x2 + b[4];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[3]);
-      t[1] += static_cast<V>(a[2]);
-      t[2] += static_cast<V>(b[3]);
-      t[3] += static_cast<V>(b[2]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[1]);
-      t[1] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[1]);
-      t[3] += static_cast<V>(b[0]);
-      t[0] *= x;
-      t[2] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z;
-      t[2] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-template <class T, class U, class V>
-inline V evaluate_rational_c_imp(const T* a, const U* b, const V& x, const mpl::int_<9>*)
-{
-   if(x <= 1)
-   {
-      V x2 = x * x;
-      V t[4];
-      t[0] = a[8] * x2 + a[6];
-      t[1] = a[7] * x2 + a[5];
-      t[2] = b[8] * x2 + b[6];
-      t[3] = b[7] * x2 + b[5];
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[3]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[3]);
-      t[0] *= x2;
-      t[1] *= x2;
-      t[2] *= x2;
-      t[3] *= x2;
-      t[0] += static_cast<V>(a[2]);
-      t[1] += static_cast<V>(a[1]);
-      t[2] += static_cast<V>(b[2]);
-      t[3] += static_cast<V>(b[1]);
-      t[0] *= x2;
-      t[2] *= x2;
-      t[0] += static_cast<V>(a[0]);
-      t[2] += static_cast<V>(b[0]);
-      t[1] *= x;
-      t[3] *= x;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-   else
-   {
-      V z = 1 / x;
-      V z2 = 1 / (x * x);
-      V t[4];
-      t[0] = a[0] * z2 + a[2];
-      t[1] = a[1] * z2 + a[3];
-      t[2] = b[0] * z2 + b[2];
-      t[3] = b[1] * z2 + b[3];
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[4]);
-      t[1] += static_cast<V>(a[5]);
-      t[2] += static_cast<V>(b[4]);
-      t[3] += static_cast<V>(b[5]);
-      t[0] *= z2;
-      t[1] *= z2;
-      t[2] *= z2;
-      t[3] *= z2;
-      t[0] += static_cast<V>(a[6]);
-      t[1] += static_cast<V>(a[7]);
-      t[2] += static_cast<V>(b[6]);
-      t[3] += static_cast<V>(b[7]);
-      t[0] *= z2;
-      t[2] *= z2;
-      t[0] += static_cast<V>(a[8]);
-      t[2] += static_cast<V>(b[8]);
-      t[1] *= z;
-      t[3] *= z;
-      return (t[0] + t[1]) / (t[2] + t[3]);
-   }
-}
-
-
-}}}} // namespaces
-
-#endif // include guard
-
diff --git a/boost/math/tools/fraction.hpp b/boost/math/tools/fraction.hpp
deleted file mode 100644
index b245ddd..0000000
--- a/boost/math/tools/fraction.hpp
+++ /dev/null
@@ -1,252 +0,0 @@
-//  (C) Copyright John Maddock 2005-2006.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_TOOLS_FRACTION_INCLUDED
-#define BOOST_MATH_TOOLS_FRACTION_INCLUDED
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/config/no_tr1/cmath.hpp>
-#include <boost/cstdint.hpp>
-#include <boost/type_traits/integral_constant.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/math/tools/precision.hpp>
-
-namespace boost{ namespace math{ namespace tools{
-
-namespace detail
-{
-
-   template <class T>
-   struct is_pair : public boost::false_type{};
-
-   template <class T, class U>
-   struct is_pair<std::pair<T,U> > : public boost::true_type{};
-
-   template <class Gen>
-   struct fraction_traits_simple
-   {
-       typedef typename Gen::result_type result_type;
-       typedef typename Gen::result_type value_type;
-
-       static result_type a(const value_type&)
-       {
-          return 1;
-       }
-       static result_type b(const value_type& v)
-       {
-          return v;
-       }
-   };
-
-   template <class Gen>
-   struct fraction_traits_pair
-   {
-       typedef typename Gen::result_type value_type;
-       typedef typename value_type::first_type result_type;
-
-       static result_type a(const value_type& v)
-       {
-          return v.first;
-       }
-       static result_type b(const value_type& v)
-       {
-          return v.second;
-       }
-   };
-
-   template <class Gen>
-   struct fraction_traits
-       : public boost::mpl::if_c<
-         is_pair<typename Gen::result_type>::value,
-         fraction_traits_pair<Gen>,
-         fraction_traits_simple<Gen> >::type
-   {
-   };
-
-} // namespace detail
-
-//
-// continued_fraction_b
-// Evaluates:
-//
-// b0 +       a1
-//      ---------------
-//      b1 +     a2
-//           ----------
-//           b2 +   a3
-//                -----
-//                b3 + ...
-//
-// Note that the first a0 returned by generator Gen is disarded.
-//
-template <class Gen, class U>
-inline typename detail::fraction_traits<Gen>::result_type continued_fraction_b(Gen& g, const U& factor, boost::uintmax_t& max_terms)
-{
-   BOOST_MATH_STD_USING // ADL of std names
-
-   typedef detail::fraction_traits<Gen> traits;
-   typedef typename traits::result_type result_type;
-   typedef typename traits::value_type value_type;
-
-   result_type tiny = tools::min_value<result_type>();
-
-   value_type v = g();
-
-   result_type f, C, D, delta;
-   f = traits::b(v);
-   if(f == 0)
-      f = tiny;
-   C = f;
-   D = 0;
-
-   boost::uintmax_t counter(max_terms);
-
-   do{
-      v = g();
-      D = traits::b(v) + traits::a(v) * D;
-      if(D == 0)
-         D = tiny;
-      C = traits::b(v) + traits::a(v) / C;
-      if(C == 0)
-         C = tiny;
-      D = 1/D;
-      delta = C*D;
-      f = f * delta;
-   }while((fabs(delta - 1) > factor) && --counter);
-
-   max_terms = max_terms - counter;
-
-   return f;
-}
-
-template <class Gen, class U>
-inline typename detail::fraction_traits<Gen>::result_type continued_fraction_b(Gen& g, const U& factor)
-{
-   boost::uintmax_t max_terms = (std::numeric_limits<boost::uintmax_t>::max)();
-   return continued_fraction_b(g, factor, max_terms);
-}
-
-template <class Gen>
-inline typename detail::fraction_traits<Gen>::result_type continued_fraction_b(Gen& g, int bits)
-{
-   BOOST_MATH_STD_USING // ADL of std names
-
-   typedef detail::fraction_traits<Gen> traits;
-   typedef typename traits::result_type result_type;
-
-   result_type factor = ldexp(1.0f, 1 - bits); // 1 / pow(result_type(2), bits);
-   boost::uintmax_t max_terms = (std::numeric_limits<boost::uintmax_t>::max)();
-   return continued_fraction_b(g, factor, max_terms);
-}
-
-template <class Gen>
-inline typename detail::fraction_traits<Gen>::result_type continued_fraction_b(Gen& g, int bits, boost::uintmax_t& max_terms)
-{
-   BOOST_MATH_STD_USING // ADL of std names
-
-   typedef detail::fraction_traits<Gen> traits;
-   typedef typename traits::result_type result_type;
-
-   result_type factor = ldexp(1.0f, 1 - bits); // 1 / pow(result_type(2), bits);
-   return continued_fraction_b(g, factor, max_terms);
-}
-
-//
-// continued_fraction_a
-// Evaluates:
-//
-//            a1
-//      ---------------
-//      b1 +     a2
-//           ----------
-//           b2 +   a3
-//                -----
-//                b3 + ...
-//
-// Note that the first a1 and b1 returned by generator Gen are both used.
-//
-template <class Gen, class U>
-inline typename detail::fraction_traits<Gen>::result_type continued_fraction_a(Gen& g, const U& factor, boost::uintmax_t& max_terms)
-{
-   BOOST_MATH_STD_USING // ADL of std names
-
-   typedef detail::fraction_traits<Gen> traits;
-   typedef typename traits::result_type result_type;
-   typedef typename traits::value_type value_type;
-
-   result_type tiny = tools::min_value<result_type>();
-
-   value_type v = g();
-
-   result_type f, C, D, delta, a0;
-   f = traits::b(v);
-   a0 = traits::a(v);
-   if(f == 0)
-      f = tiny;
-   C = f;
-   D = 0;
-
-   boost::uintmax_t counter(max_terms);
-
-   do{
-      v = g();
-      D = traits::b(v) + traits::a(v) * D;
-      if(D == 0)
-         D = tiny;
-      C = traits::b(v) + traits::a(v) / C;
-      if(C == 0)
-         C = tiny;
-      D = 1/D;
-      delta = C*D;
-      f = f * delta;
-   }while((fabs(delta - 1) > factor) && --counter);
-
-   max_terms = max_terms - counter;
-
-   return a0/f;
-}
-
-template <class Gen, class U>
-inline typename detail::fraction_traits<Gen>::result_type continued_fraction_a(Gen& g, const U& factor)
-{
-   boost::uintmax_t max_iter = (std::numeric_limits<boost::uintmax_t>::max)();
-   return continued_fraction_a(g, factor, max_iter);
-}
-
-template <class Gen>
-inline typename detail::fraction_traits<Gen>::result_type continued_fraction_a(Gen& g, int bits)
-{
-   BOOST_MATH_STD_USING // ADL of std names
-
-   typedef detail::fraction_traits<Gen> traits;
-   typedef typename traits::result_type result_type;
-
-   result_type factor = ldexp(1.0f, 1-bits); // 1 / pow(result_type(2), bits);
-   boost::uintmax_t max_iter = (std::numeric_limits<boost::uintmax_t>::max)();
-
-   return continued_fraction_a(g, factor, max_iter);
-}
-
-template <class Gen>
-inline typename detail::fraction_traits<Gen>::result_type continued_fraction_a(Gen& g, int bits, boost::uintmax_t& max_terms)
-{
-   BOOST_MATH_STD_USING // ADL of std names
-
-   typedef detail::fraction_traits<Gen> traits;
-   typedef typename traits::result_type result_type;
-
-   result_type factor = ldexp(1.0f, 1-bits); // 1 / pow(result_type(2), bits);
-   return continued_fraction_a(g, factor, max_terms);
-}
-
-} // namespace tools
-} // namespace math
-} // namespace boost
-
-#endif // BOOST_MATH_TOOLS_FRACTION_INCLUDED
-
diff --git a/boost/math/tools/precision.hpp b/boost/math/tools/precision.hpp
deleted file mode 100644
index 66d2754..0000000
--- a/boost/math/tools/precision.hpp
+++ /dev/null
@@ -1,335 +0,0 @@
-//  Copyright John Maddock 2005-2006.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_TOOLS_PRECISION_INCLUDED
-#define BOOST_MATH_TOOLS_PRECISION_INCLUDED
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/limits.hpp>
-#include <boost/assert.hpp>
-#include <boost/static_assert.hpp>
-#include <boost/mpl/int.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/math/policies/policy.hpp>
-
-// These two are for LDBL_MAN_DIG:
-#include <limits.h>
-#include <math.h>
-
-namespace boost{ namespace math
-{
-namespace tools
-{
-// If T is not specialized, the functions digits, max_value and min_value,
-// all get synthesised automatically from std::numeric_limits.
-// However, if numeric_limits is not specialised for type RealType,
-// for example with NTL::RR type, then you will get a compiler error
-// when code tries to use these functions, unless you explicitly specialise them.
-
-// For example if the precision of RealType varies at runtime,
-// then numeric_limits support may not be appropriate,
-// see boost/math/tools/ntl.hpp  for examples like
-// template <> NTL::RR max_value<NTL::RR> ...
-// See  Conceptual Requirements for Real Number Types.
-
-template <class T>
-inline int digits(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(T))
-{
-#ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-   BOOST_STATIC_ASSERT( ::std::numeric_limits<T>::is_specialized);
-   BOOST_STATIC_ASSERT( ::std::numeric_limits<T>::radix == 2 || ::std::numeric_limits<T>::radix == 10);
-#else
-   BOOST_ASSERT(::std::numeric_limits<T>::is_specialized);
-   BOOST_ASSERT(::std::numeric_limits<T>::radix == 2 || ::std::numeric_limits<T>::radix == 10);
-#endif
-   return std::numeric_limits<T>::radix == 2 
-      ? std::numeric_limits<T>::digits
-      : ((std::numeric_limits<T>::digits + 1) * 1000L) / 301L;
-}
-
-template <class T>
-inline T max_value(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE(T))
-{
-#ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-   BOOST_STATIC_ASSERT( ::std::numeric_limits<T>::is_specialized);
-#else
-   BOOST_ASSERT(::std::numeric_limits<T>::is_specialized);
-#endif
-   return (std::numeric_limits<T>::max)();
-} // Also used as a finite 'infinite' value for - and +infinity, for example:
-// -max_value<double> = -1.79769e+308, max_value<double> = 1.79769e+308.
-
-template <class T>
-inline T min_value(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE(T))
-{
-#ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-   BOOST_STATIC_ASSERT( ::std::numeric_limits<T>::is_specialized);
-#else
-   BOOST_ASSERT(::std::numeric_limits<T>::is_specialized);
-#endif
-   return (std::numeric_limits<T>::min)();
-}
-
-namespace detail{
-//
-// Logarithmic limits come next, note that although
-// we can compute these from the log of the max value
-// that is not in general thread safe (if we cache the value)
-// so it's better to specialise these:
-//
-// For type float first:
-//
-template <class T>
-inline T log_max_value(const mpl::int_<128>& BOOST_MATH_APPEND_EXPLICIT_TEMPLATE_TYPE(T))
-{
-   return 88.0f;
-}
-
-template <class T>
-inline T log_min_value(const mpl::int_<128>& BOOST_MATH_APPEND_EXPLICIT_TEMPLATE_TYPE(T))
-{
-   return -87.0f;
-}
-//
-// Now double:
-//
-template <class T>
-inline T log_max_value(const mpl::int_<1024>& BOOST_MATH_APPEND_EXPLICIT_TEMPLATE_TYPE(T))
-{
-   return 709.0;
-}
-
-template <class T>
-inline T log_min_value(const mpl::int_<1024>& BOOST_MATH_APPEND_EXPLICIT_TEMPLATE_TYPE(T))
-{
-   return -708.0;
-}
-//
-// 80 and 128-bit long doubles:
-//
-template <class T>
-inline T log_max_value(const mpl::int_<16384>& BOOST_MATH_APPEND_EXPLICIT_TEMPLATE_TYPE(T))
-{
-   return 11356.0L;
-}
-
-template <class T>
-inline T log_min_value(const mpl::int_<16384>& BOOST_MATH_APPEND_EXPLICIT_TEMPLATE_TYPE(T))
-{
-   return -11355.0L;
-}
-
-template <class T>
-inline T log_max_value(const mpl::int_<0>& BOOST_MATH_APPEND_EXPLICIT_TEMPLATE_TYPE(T))
-{
-#ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-   BOOST_STATIC_ASSERT( ::std::numeric_limits<T>::is_specialized);
-#else
-   BOOST_ASSERT(::std::numeric_limits<T>::is_specialized);
-#endif
-   BOOST_MATH_STD_USING
-   static const T val = log((std::numeric_limits<T>::max)());
-   return val;
-}
-
-template <class T>
-inline T log_min_value(const mpl::int_<0>& BOOST_MATH_APPEND_EXPLICIT_TEMPLATE_TYPE(T))
-{
-#ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-   BOOST_STATIC_ASSERT( ::std::numeric_limits<T>::is_specialized);
-#else
-   BOOST_ASSERT(::std::numeric_limits<T>::is_specialized);
-#endif
-   BOOST_MATH_STD_USING
-   static const T val = log((std::numeric_limits<T>::min)());
-   return val;
-}
-
-template <class T>
-inline T epsilon(const mpl::true_& BOOST_MATH_APPEND_EXPLICIT_TEMPLATE_TYPE(T))
-{
-   return std::numeric_limits<T>::epsilon();
-}
-
-#if (defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__)) && ((LDBL_MANT_DIG == 106) || (__LDBL_MANT_DIG__ == 106))
-template <>
-inline long double epsilon<long double>(const mpl::true_& BOOST_MATH_APPEND_EXPLICIT_TEMPLATE_TYPE(long double))
-{
-   // numeric_limits on Darwin tells lies here.
-   // This static assert fails for some unknown reason, so
-   // disabled for now...
-   // BOOST_STATIC_ASSERT(std::numeric_limits<long double>::digits == 106);
-   return 2.4651903288156618919116517665087e-32L;
-}
-#endif
-
-template <class T>
-inline T epsilon(const mpl::false_& BOOST_MATH_APPEND_EXPLICIT_TEMPLATE_TYPE(T))
-{
-   BOOST_MATH_STD_USING  // for ADL of std names
-   static const T eps = ldexp(static_cast<T>(1), 1-policies::digits<T, policies::policy<> >());
-   return eps;
-}
-
-} // namespace detail
-
-#ifdef BOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable:4309)
-#endif
-
-template <class T>
-inline T log_max_value(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE(T))
-{
-#ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-   typedef typename mpl::if_c<
-      (std::numeric_limits<T>::radix == 2) &&
-      (std::numeric_limits<T>::max_exponent == 128
-      || std::numeric_limits<T>::max_exponent == 1024
-      || std::numeric_limits<T>::max_exponent == 16384),
-      mpl::int_<(std::numeric_limits<T>::max_exponent > INT_MAX ? INT_MAX : static_cast<int>(std::numeric_limits<T>::max_exponent))>,
-      mpl::int_<0>
-   >::type tag_type;
-   BOOST_STATIC_ASSERT( ::std::numeric_limits<T>::is_specialized);
-   return detail::log_max_value<T>(tag_type());
-#else
-   BOOST_ASSERT(::std::numeric_limits<T>::is_specialized);
-   BOOST_MATH_STD_USING
-   static const T val = log((std::numeric_limits<T>::max)());
-   return val;
-#endif
-}
-
-template <class T>
-inline T log_min_value(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE(T))
-{
-#ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-   typedef typename mpl::if_c<
-      (std::numeric_limits<T>::radix == 2) &&
-      (std::numeric_limits<T>::max_exponent == 128
-      || std::numeric_limits<T>::max_exponent == 1024
-      || std::numeric_limits<T>::max_exponent == 16384),
-      mpl::int_<(std::numeric_limits<T>::max_exponent > INT_MAX ? INT_MAX : static_cast<int>(std::numeric_limits<T>::max_exponent))>,
-      mpl::int_<0>
-   >::type tag_type;
-
-   BOOST_STATIC_ASSERT( ::std::numeric_limits<T>::is_specialized);
-   return detail::log_min_value<T>(tag_type());
-#else
-   BOOST_ASSERT(::std::numeric_limits<T>::is_specialized);
-   BOOST_MATH_STD_USING
-   static const T val = log((std::numeric_limits<T>::min)());
-   return val;
-#endif
-}
-
-#ifdef BOOST_MSVC
-#pragma warning(pop)
-#endif
-
-template <class T>
-inline T epsilon(BOOST_MATH_EXPLICIT_TEMPLATE_TYPE_SPEC(T))
-{
-#ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-   return detail::epsilon<T>(mpl::bool_< ::std::numeric_limits<T>::is_specialized>());
-#else
-   return ::std::numeric_limits<T>::is_specialized ?
-      detail::epsilon<T>(mpl::true_()) :
-      detail::epsilon<T>(mpl::false_());
-#endif
-}
-
-namespace detail{
-
-template <class T>
-inline T root_epsilon_imp(const mpl::int_<24>&)
-{
-   return static_cast<T>(0.00034526698300124390839884978618400831996329879769945L);
-}
-
-template <class T>
-inline T root_epsilon_imp(const T*, const mpl::int_<53>&)
-{
-   return static_cast<T>(0.1490116119384765625e-7L);
-}
-
-template <class T>
-inline T root_epsilon_imp(const T*, const mpl::int_<64>&)
-{
-   return static_cast<T>(0.32927225399135962333569506281281311031656150598474e-9L);
-}
-
-template <class T>
-inline T root_epsilon_imp(const T*, const mpl::int_<113>&)
-{
-   return static_cast<T>(0.1387778780781445675529539585113525390625e-16L);
-}
-
-template <class T, class Tag>
-inline T root_epsilon_imp(const T*, const Tag&)
-{
-   BOOST_MATH_STD_USING
-   static const T r_eps = sqrt(tools::epsilon<T>());
-   return r_eps;
-}
-
-template <class T>
-inline T forth_root_epsilon_imp(const T*, const mpl::int_<24>&)
-{
-   return static_cast<T>(0.018581361171917516667460937040007436176452688944747L);
-}
-
-template <class T>
-inline T forth_root_epsilon_imp(const T*, const mpl::int_<53>&)
-{
-   return static_cast<T>(0.0001220703125L);
-}
-
-template <class T>
-inline T forth_root_epsilon_imp(const T*, const mpl::int_<64>&)
-{
-   return static_cast<T>(0.18145860519450699870567321328132261891067079047605e-4L);
-}
-
-template <class T>
-inline T forth_root_epsilon_imp(const T*, const mpl::int_<113>&)
-{
-   return static_cast<T>(0.37252902984619140625e-8L);
-}
-
-template <class T, class Tag>
-inline T forth_root_epsilon_imp(const T*, const Tag&)
-{
-   BOOST_MATH_STD_USING
-   static const T r_eps = sqrt(sqrt(tools::epsilon<T>()));
-   return r_eps;
-}
-
-}
-
-template <class T>
-inline T root_epsilon()
-{
-   typedef mpl::int_< (::std::numeric_limits<T>::radix == 2) ? std::numeric_limits<T>::digits : 0> tag_type;
-   return detail::root_epsilon_imp(static_cast<T const*>(0), tag_type());
-}
-
-template <class T>
-inline T forth_root_epsilon()
-{
-   typedef mpl::int_< (::std::numeric_limits<T>::radix == 2) ? std::numeric_limits<T>::digits : 0> tag_type;
-   return detail::forth_root_epsilon_imp(static_cast<T const*>(0), tag_type());
-}
-
-} // namespace tools
-} // namespace math
-} // namespace boost
-
-#endif // BOOST_MATH_TOOLS_PRECISION_INCLUDED
-
diff --git a/boost/math/tools/promotion.hpp b/boost/math/tools/promotion.hpp
deleted file mode 100644
index b3ad204..0000000
--- a/boost/math/tools/promotion.hpp
+++ /dev/null
@@ -1,175 +0,0 @@
-// boost\math\tools\promotion.hpp
-
-// Copyright John Maddock 2006.
-// Copyright Paul A. Bristow 2006.
-
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt
-// or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// Promote arguments functions to allow math functions to have arguments
-// provided as integer OR real (floating-point, built-in or UDT)
-// (called ArithmeticType in functions that use promotion)
-// that help to reduce the risk of creating multiple instantiations.
-// Allows creation of an inline wrapper that forwards to a foo(RT, RT) function,
-// so you never get to instantiate any mixed foo(RT, IT) functions.
-
-#ifndef BOOST_MATH_PROMOTION_HPP
-#define BOOST_MATH_PROMOTION_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-// Boost type traits:
-#include <boost/math/tools/config.hpp>
-#include <boost/type_traits/is_floating_point.hpp> // for boost::is_floating_point;
-#include <boost/type_traits/is_integral.hpp> // for boost::is_integral
-#include <boost/type_traits/is_convertible.hpp> // for boost::is_convertible
-#include <boost/type_traits/is_same.hpp>// for boost::is_same
-#include <boost/type_traits/remove_cv.hpp>// for boost::remove_cv
-// Boost Template meta programming:
-#include <boost/mpl/if.hpp> // for boost::mpl::if_c.
-#include <boost/mpl/and.hpp> // for boost::mpl::if_c.
-#include <boost/mpl/or.hpp> // for boost::mpl::if_c.
-#include <boost/mpl/not.hpp> // for boost::mpl::if_c.
-
-#ifdef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
-#include <boost/static_assert.hpp>
-#endif
-
-namespace boost
-{
-  namespace math
-  {
-    namespace tools
-    {
-      // If either T1 or T2 is an integer type,
-      // pretend it was a double (for the purposes of further analysis).
-      // Then pick the wider of the two floating-point types
-      // as the actual signature to forward to.
-      // For example:
-      // foo(int, short) -> double foo(double, double);
-      // foo(int, float) -> double foo(double, double);
-      // Note: NOT float foo(float, float)
-      // foo(int, double) -> foo(double, double);
-      // foo(double, float) -> double foo(double, double);
-      // foo(double, float) -> double foo(double, double);
-      // foo(any-int-or-float-type, long double) -> foo(long double, long double);
-      // but ONLY float foo(float, float) is unchanged.
-      // So the only way to get an entirely float version is to call foo(1.F, 2.F),
-      // But since most (all?) the math functions convert to double internally,
-      // probably there would not be the hoped-for gain by using float here.
-
-      // This follows the C-compatible conversion rules of pow, etc
-      // where pow(int, float) is converted to pow(double, double).
-
-      template <class T>
-      struct promote_arg
-      { // If T is integral type, then promote to double.
-        typedef typename mpl::if_<is_integral<T>, double, T>::type type;
-      };
-      // These full specialisations reduce mpl::if_ usage and speed up
-      // compilation:
-      template <> struct promote_arg<float> { typedef float type; };
-      template <> struct promote_arg<double>{ typedef double type; };
-      template <> struct promote_arg<long double> { typedef long double type; };
-      template <> struct promote_arg<int> {  typedef double type; };
-
-      template <class T1, class T2>
-      struct promote_args_2
-      { // Promote, if necessary, & pick the wider of the two floating-point types.
-        // for both parameter types, if integral promote to double.
-        typedef typename promote_arg<T1>::type T1P; // T1 perhaps promoted.
-        typedef typename promote_arg<T2>::type T2P; // T2 perhaps promoted.
-
-        typedef typename mpl::if_<
-          typename mpl::and_<is_floating_point<T1P>, is_floating_point<T2P> >::type, // both T1P and T2P are floating-point?
-          typename mpl::if_< typename mpl::or_<is_same<long double, T1P>, is_same<long double, T2P> >::type, // either long double?
-            long double, // then result type is long double.
-            typename mpl::if_< typename mpl::or_<is_same<double, T1P>, is_same<double, T2P> >::type, // either double?
-            double, // result type is double.
-          float // else result type is float.
-          >::type
-          >::type,
-          // else one or the other is a user-defined type:
-          typename mpl::if_< typename mpl::and_<mpl::not_<is_floating_point<T2P> >, ::boost::is_convertible<T1P, T2P> >, T2P, T1P>::type>::type type;
-      }; // promote_arg2
-      // These full specialisations reduce mpl::if_ usage and speed up
-      // compilation:
-      template <> struct promote_args_2<float, float> { typedef float type; };
-      template <> struct promote_args_2<double, double>{ typedef double type; };
-      template <> struct promote_args_2<long double, long double> { typedef long double type; };
-      template <> struct promote_args_2<int, int> {  typedef double type; };
-      template <> struct promote_args_2<int, float> {  typedef double type; };
-      template <> struct promote_args_2<float, int> {  typedef double type; };
-      template <> struct promote_args_2<int, double> {  typedef double type; };
-      template <> struct promote_args_2<double, int> {  typedef double type; };
-      template <> struct promote_args_2<int, long double> {  typedef long double type; };
-      template <> struct promote_args_2<long double, int> {  typedef long double type; };
-      template <> struct promote_args_2<float, double> {  typedef double type; };
-      template <> struct promote_args_2<double, float> {  typedef double type; };
-      template <> struct promote_args_2<float, long double> {  typedef long double type; };
-      template <> struct promote_args_2<long double, float> {  typedef long double type; };
-      template <> struct promote_args_2<double, long double> {  typedef long double type; };
-      template <> struct promote_args_2<long double, double> {  typedef long double type; };
-
-      template <class T1, class T2=float, class T3=float, class T4=float, class T5=float, class T6=float>
-      struct promote_args
-      {
-         typedef typename promote_args_2<
-            typename remove_cv<T1>::type,
-            typename promote_args_2<
-               typename remove_cv<T2>::type,
-               typename promote_args_2<
-                  typename remove_cv<T3>::type,
-                  typename promote_args_2<
-                     typename remove_cv<T4>::type,
-                     typename promote_args_2<
-                        typename remove_cv<T5>::type, typename remove_cv<T6>::type
-                     >::type
-                  >::type
-               >::type
-            >::type
-         >::type type;
-
-#ifdef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
-         //
-         // Guard against use of long double if it's not supported:
-         //
-         BOOST_STATIC_ASSERT_MSG((0 == ::boost::is_same<type, long double>::value), "Sorry, but this platform does not have sufficient long double support for the special functions to be reliably implemented.");
-#endif
-      };
-
-      //
-      // This struct is the same as above, but has no static assert on long double usage,
-      // it should be used only on functions that can be implemented for long double
-      // even when std lib support is missing or broken for that type.
-      //
-      template <class T1, class T2=float, class T3=float, class T4=float, class T5=float, class T6=float>
-      struct promote_args_permissive
-      {
-         typedef typename promote_args_2<
-            typename remove_cv<T1>::type,
-            typename promote_args_2<
-               typename remove_cv<T2>::type,
-               typename promote_args_2<
-                  typename remove_cv<T3>::type,
-                  typename promote_args_2<
-                     typename remove_cv<T4>::type,
-                     typename promote_args_2<
-                        typename remove_cv<T5>::type, typename remove_cv<T6>::type
-                     >::type
-                  >::type
-               >::type
-            >::type
-         >::type type;
-      };
-
-    } // namespace tools
-  } // namespace math
-} // namespace boost
-
-#endif // BOOST_MATH_PROMOTION_HPP
-
diff --git a/boost/math/tools/rational.hpp b/boost/math/tools/rational.hpp
deleted file mode 100644
index accffea..0000000
--- a/boost/math/tools/rational.hpp
+++ /dev/null
@@ -1,333 +0,0 @@
-//  (C) Copyright John Maddock 2006.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_TOOLS_RATIONAL_HPP
-#define BOOST_MATH_TOOLS_RATIONAL_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/array.hpp>
-#include <boost/math/tools/config.hpp>
-#include <boost/mpl/int.hpp>
-
-#if BOOST_MATH_POLY_METHOD == 1
-#  define BOOST_HEADER() <BOOST_JOIN(boost/math/tools/detail/polynomial_horner1_, BOOST_MATH_MAX_POLY_ORDER).hpp>
-#  include BOOST_HEADER()
-#  undef BOOST_HEADER
-#elif BOOST_MATH_POLY_METHOD == 2
-#  define BOOST_HEADER() <BOOST_JOIN(boost/math/tools/detail/polynomial_horner2_, BOOST_MATH_MAX_POLY_ORDER).hpp>
-#  include BOOST_HEADER()
-#  undef BOOST_HEADER
-#elif BOOST_MATH_POLY_METHOD == 3
-#  define BOOST_HEADER() <BOOST_JOIN(boost/math/tools/detail/polynomial_horner3_, BOOST_MATH_MAX_POLY_ORDER).hpp>
-#  include BOOST_HEADER()
-#  undef BOOST_HEADER
-#endif
-#if BOOST_MATH_RATIONAL_METHOD == 1
-#  define BOOST_HEADER() <BOOST_JOIN(boost/math/tools/detail/rational_horner1_, BOOST_MATH_MAX_POLY_ORDER).hpp>
-#  include BOOST_HEADER()
-#  undef BOOST_HEADER
-#elif BOOST_MATH_RATIONAL_METHOD == 2
-#  define BOOST_HEADER() <BOOST_JOIN(boost/math/tools/detail/rational_horner2_, BOOST_MATH_MAX_POLY_ORDER).hpp>
-#  include BOOST_HEADER()
-#  undef BOOST_HEADER
-#elif BOOST_MATH_RATIONAL_METHOD == 3
-#  define BOOST_HEADER() <BOOST_JOIN(boost/math/tools/detail/rational_horner3_, BOOST_MATH_MAX_POLY_ORDER).hpp>
-#  include BOOST_HEADER()
-#  undef BOOST_HEADER
-#endif
-
-#if 0
-//
-// This just allows dependency trackers to find the headers
-// used in the above PP-magic.
-//
-#include <boost/math/tools/detail/polynomial_horner1_2.hpp>
-#include <boost/math/tools/detail/polynomial_horner1_3.hpp>
-#include <boost/math/tools/detail/polynomial_horner1_4.hpp>
-#include <boost/math/tools/detail/polynomial_horner1_5.hpp>
-#include <boost/math/tools/detail/polynomial_horner1_6.hpp>
-#include <boost/math/tools/detail/polynomial_horner1_7.hpp>
-#include <boost/math/tools/detail/polynomial_horner1_8.hpp>
-#include <boost/math/tools/detail/polynomial_horner1_9.hpp>
-#include <boost/math/tools/detail/polynomial_horner1_10.hpp>
-#include <boost/math/tools/detail/polynomial_horner1_11.hpp>
-#include <boost/math/tools/detail/polynomial_horner1_12.hpp>
-#include <boost/math/tools/detail/polynomial_horner1_13.hpp>
-#include <boost/math/tools/detail/polynomial_horner1_14.hpp>
-#include <boost/math/tools/detail/polynomial_horner1_15.hpp>
-#include <boost/math/tools/detail/polynomial_horner1_16.hpp>
-#include <boost/math/tools/detail/polynomial_horner1_17.hpp>
-#include <boost/math/tools/detail/polynomial_horner1_18.hpp>
-#include <boost/math/tools/detail/polynomial_horner1_19.hpp>
-#include <boost/math/tools/detail/polynomial_horner1_20.hpp>
-#include <boost/math/tools/detail/polynomial_horner2_2.hpp>
-#include <boost/math/tools/detail/polynomial_horner2_3.hpp>
-#include <boost/math/tools/detail/polynomial_horner2_4.hpp>
-#include <boost/math/tools/detail/polynomial_horner2_5.hpp>
-#include <boost/math/tools/detail/polynomial_horner2_6.hpp>
-#include <boost/math/tools/detail/polynomial_horner2_7.hpp>
-#include <boost/math/tools/detail/polynomial_horner2_8.hpp>
-#include <boost/math/tools/detail/polynomial_horner2_9.hpp>
-#include <boost/math/tools/detail/polynomial_horner2_10.hpp>
-#include <boost/math/tools/detail/polynomial_horner2_11.hpp>
-#include <boost/math/tools/detail/polynomial_horner2_12.hpp>
-#include <boost/math/tools/detail/polynomial_horner2_13.hpp>
-#include <boost/math/tools/detail/polynomial_horner2_14.hpp>
-#include <boost/math/tools/detail/polynomial_horner2_15.hpp>
-#include <boost/math/tools/detail/polynomial_horner2_16.hpp>
-#include <boost/math/tools/detail/polynomial_horner2_17.hpp>
-#include <boost/math/tools/detail/polynomial_horner2_18.hpp>
-#include <boost/math/tools/detail/polynomial_horner2_19.hpp>
-#include <boost/math/tools/detail/polynomial_horner2_20.hpp>
-#include <boost/math/tools/detail/polynomial_horner3_2.hpp>
-#include <boost/math/tools/detail/polynomial_horner3_3.hpp>
-#include <boost/math/tools/detail/polynomial_horner3_4.hpp>
-#include <boost/math/tools/detail/polynomial_horner3_5.hpp>
-#include <boost/math/tools/detail/polynomial_horner3_6.hpp>
-#include <boost/math/tools/detail/polynomial_horner3_7.hpp>
-#include <boost/math/tools/detail/polynomial_horner3_8.hpp>
-#include <boost/math/tools/detail/polynomial_horner3_9.hpp>
-#include <boost/math/tools/detail/polynomial_horner3_10.hpp>
-#include <boost/math/tools/detail/polynomial_horner3_11.hpp>
-#include <boost/math/tools/detail/polynomial_horner3_12.hpp>
-#include <boost/math/tools/detail/polynomial_horner3_13.hpp>
-#include <boost/math/tools/detail/polynomial_horner3_14.hpp>
-#include <boost/math/tools/detail/polynomial_horner3_15.hpp>
-#include <boost/math/tools/detail/polynomial_horner3_16.hpp>
-#include <boost/math/tools/detail/polynomial_horner3_17.hpp>
-#include <boost/math/tools/detail/polynomial_horner3_18.hpp>
-#include <boost/math/tools/detail/polynomial_horner3_19.hpp>
-#include <boost/math/tools/detail/polynomial_horner3_20.hpp>
-#include <boost/math/tools/detail/rational_horner1_2.hpp>
-#include <boost/math/tools/detail/rational_horner1_3.hpp>
-#include <boost/math/tools/detail/rational_horner1_4.hpp>
-#include <boost/math/tools/detail/rational_horner1_5.hpp>
-#include <boost/math/tools/detail/rational_horner1_6.hpp>
-#include <boost/math/tools/detail/rational_horner1_7.hpp>
-#include <boost/math/tools/detail/rational_horner1_8.hpp>
-#include <boost/math/tools/detail/rational_horner1_9.hpp>
-#include <boost/math/tools/detail/rational_horner1_10.hpp>
-#include <boost/math/tools/detail/rational_horner1_11.hpp>
-#include <boost/math/tools/detail/rational_horner1_12.hpp>
-#include <boost/math/tools/detail/rational_horner1_13.hpp>
-#include <boost/math/tools/detail/rational_horner1_14.hpp>
-#include <boost/math/tools/detail/rational_horner1_15.hpp>
-#include <boost/math/tools/detail/rational_horner1_16.hpp>
-#include <boost/math/tools/detail/rational_horner1_17.hpp>
-#include <boost/math/tools/detail/rational_horner1_18.hpp>
-#include <boost/math/tools/detail/rational_horner1_19.hpp>
-#include <boost/math/tools/detail/rational_horner1_20.hpp>
-#include <boost/math/tools/detail/rational_horner2_2.hpp>
-#include <boost/math/tools/detail/rational_horner2_3.hpp>
-#include <boost/math/tools/detail/rational_horner2_4.hpp>
-#include <boost/math/tools/detail/rational_horner2_5.hpp>
-#include <boost/math/tools/detail/rational_horner2_6.hpp>
-#include <boost/math/tools/detail/rational_horner2_7.hpp>
-#include <boost/math/tools/detail/rational_horner2_8.hpp>
-#include <boost/math/tools/detail/rational_horner2_9.hpp>
-#include <boost/math/tools/detail/rational_horner2_10.hpp>
-#include <boost/math/tools/detail/rational_horner2_11.hpp>
-#include <boost/math/tools/detail/rational_horner2_12.hpp>
-#include <boost/math/tools/detail/rational_horner2_13.hpp>
-#include <boost/math/tools/detail/rational_horner2_14.hpp>
-#include <boost/math/tools/detail/rational_horner2_15.hpp>
-#include <boost/math/tools/detail/rational_horner2_16.hpp>
-#include <boost/math/tools/detail/rational_horner2_17.hpp>
-#include <boost/math/tools/detail/rational_horner2_18.hpp>
-#include <boost/math/tools/detail/rational_horner2_19.hpp>
-#include <boost/math/tools/detail/rational_horner2_20.hpp>
-#include <boost/math/tools/detail/rational_horner3_2.hpp>
-#include <boost/math/tools/detail/rational_horner3_3.hpp>
-#include <boost/math/tools/detail/rational_horner3_4.hpp>
-#include <boost/math/tools/detail/rational_horner3_5.hpp>
-#include <boost/math/tools/detail/rational_horner3_6.hpp>
-#include <boost/math/tools/detail/rational_horner3_7.hpp>
-#include <boost/math/tools/detail/rational_horner3_8.hpp>
-#include <boost/math/tools/detail/rational_horner3_9.hpp>
-#include <boost/math/tools/detail/rational_horner3_10.hpp>
-#include <boost/math/tools/detail/rational_horner3_11.hpp>
-#include <boost/math/tools/detail/rational_horner3_12.hpp>
-#include <boost/math/tools/detail/rational_horner3_13.hpp>
-#include <boost/math/tools/detail/rational_horner3_14.hpp>
-#include <boost/math/tools/detail/rational_horner3_15.hpp>
-#include <boost/math/tools/detail/rational_horner3_16.hpp>
-#include <boost/math/tools/detail/rational_horner3_17.hpp>
-#include <boost/math/tools/detail/rational_horner3_18.hpp>
-#include <boost/math/tools/detail/rational_horner3_19.hpp>
-#include <boost/math/tools/detail/rational_horner3_20.hpp>
-#endif
-
-namespace boost{ namespace math{ namespace tools{
-
-//
-// Forward declaration to keep two phase lookup happy:
-//
-template <class T, class U>
-U evaluate_polynomial(const T* poly, U const& z, std::size_t count);
-
-namespace detail{
-
-template <class T, class V, class Tag>
-inline V evaluate_polynomial_c_imp(const T* a, const V& val, const Tag*)
-{
-   return evaluate_polynomial(a, val, Tag::value);
-}
-
-} // namespace detail
-
-//
-// Polynomial evaluation with runtime size.
-// This requires a for-loop which may be more expensive than
-// the loop expanded versions above:
-//
-template <class T, class U>
-inline U evaluate_polynomial(const T* poly, U const& z, std::size_t count)
-{
-   BOOST_ASSERT(count > 0);
-   U sum = static_cast<U>(poly[count - 1]);
-   for(int i = static_cast<int>(count) - 2; i >= 0; --i)
-   {
-      sum *= z;
-      sum += static_cast<U>(poly[i]);
-   }
-   return sum;
-}
-//
-// Compile time sized polynomials, just inline forwarders to the
-// implementations above:
-//
-template <std::size_t N, class T, class V>
-inline V evaluate_polynomial(const T(&a)[N], const V& val)
-{
-   typedef mpl::int_<N> tag_type;
-   return detail::evaluate_polynomial_c_imp(static_cast<const T*>(a), val, static_cast<tag_type const*>(0));
-}
-
-template <std::size_t N, class T, class V>
-inline V evaluate_polynomial(const boost::array<T,N>& a, const V& val)
-{
-   typedef mpl::int_<N> tag_type;
-   return detail::evaluate_polynomial_c_imp(static_cast<const T*>(a.data()), val, static_cast<tag_type const*>(0));
-}
-//
-// Even polynomials are trivial: just square the argument!
-//
-template <class T, class U>
-inline U evaluate_even_polynomial(const T* poly, U z, std::size_t count)
-{
-   return evaluate_polynomial(poly, U(z*z), count);
-}
-
-template <std::size_t N, class T, class V>
-inline V evaluate_even_polynomial(const T(&a)[N], const V& z)
-{
-   return evaluate_polynomial(a, V(z*z));
-}
-
-template <std::size_t N, class T, class V>
-inline V evaluate_even_polynomial(const boost::array<T,N>& a, const V& z)
-{
-   return evaluate_polynomial(a, V(z*z));
-}
-//
-// Odd polynomials come next:
-//
-template <class T, class U>
-inline U evaluate_odd_polynomial(const T* poly, U z, std::size_t count)
-{
-   return poly[0] + z * evaluate_polynomial(poly+1, U(z*z), count-1);
-}
-
-template <std::size_t N, class T, class V>
-inline V evaluate_odd_polynomial(const T(&a)[N], const V& z)
-{
-   typedef mpl::int_<N-1> tag_type;
-   return a[0] + z * detail::evaluate_polynomial_c_imp(static_cast<const T*>(a) + 1, V(z*z), static_cast<tag_type const*>(0));
-}
-
-template <std::size_t N, class T, class V>
-inline V evaluate_odd_polynomial(const boost::array<T,N>& a, const V& z)
-{
-   typedef mpl::int_<N-1> tag_type;
-   return a[0] + z * detail::evaluate_polynomial_c_imp(static_cast<const T*>(a.data()) + 1, V(z*z), static_cast<tag_type const*>(0));
-}
-
-template <class T, class U, class V>
-V evaluate_rational(const T* num, const U* denom, const V& z_, std::size_t count);
-
-namespace detail{
-
-template <class T, class U, class V, class Tag>
-inline V evaluate_rational_c_imp(const T* num, const U* denom, const V& z, const Tag*)
-{
-   return boost::math::tools::evaluate_rational(num, denom, z, Tag::value);
-}
-
-}
-//
-// Rational functions: numerator and denominator must be
-// equal in size.  These always have a for-loop and so may be less
-// efficient than evaluating a pair of polynomials. However, there
-// are some tricks we can use to prevent overflow that might otherwise
-// occur in polynomial evaluation, if z is large.  This is important
-// in our Lanczos code for example.
-//
-template <class T, class U, class V>
-V evaluate_rational(const T* num, const U* denom, const V& z_, std::size_t count)
-{
-   V z(z_);
-   V s1, s2;
-   if(z <= 1)
-   {
-      s1 = static_cast<V>(num[count-1]);
-      s2 = static_cast<V>(denom[count-1]);
-      for(int i = (int)count - 2; i >= 0; --i)
-      {
-         s1 *= z;
-         s2 *= z;
-         s1 += num[i];
-         s2 += denom[i];
-      }
-   }
-   else
-   {
-      z = 1 / z;
-      s1 = static_cast<V>(num[0]);
-      s2 = static_cast<V>(denom[0]);
-      for(unsigned i = 1; i < count; ++i)
-      {
-         s1 *= z;
-         s2 *= z;
-         s1 += num[i];
-         s2 += denom[i];
-      }
-   }
-   return s1 / s2;
-}
-
-template <std::size_t N, class T, class U, class V>
-inline V evaluate_rational(const T(&a)[N], const U(&b)[N], const V& z)
-{
-   return detail::evaluate_rational_c_imp(a, b, z, static_cast<const mpl::int_<N>*>(0));
-}
-
-template <std::size_t N, class T, class U, class V>
-inline V evaluate_rational(const boost::array<T,N>& a, const boost::array<U,N>& b, const V& z)
-{
-   return detail::evaluate_rational_c_imp(a.data(), b.data(), z, static_cast<mpl::int_<N>*>(0));
-}
-
-} // namespace tools
-} // namespace math
-} // namespace boost
-
-#endif // BOOST_MATH_TOOLS_RATIONAL_HPP
-
-
-
-
diff --git a/boost/math/tools/real_cast.hpp b/boost/math/tools/real_cast.hpp
deleted file mode 100644
index 9b854e3..0000000
--- a/boost/math/tools/real_cast.hpp
+++ /dev/null
@@ -1,29 +0,0 @@
-//  Copyright John Maddock 2006.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_TOOLS_REAL_CAST_HPP
-#define BOOST_MATH_TOOLS_REAL_CAST_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-namespace boost{ namespace math
-{
-  namespace tools
-  {
-    template <class To, class T>
-    inline To real_cast(T t)
-    {
-       return static_cast<To>(t);
-    }
-  } // namespace tools
-} // namespace math
-} // namespace boost
-
-#endif // BOOST_MATH_TOOLS_REAL_CAST_HPP
-
-
-
diff --git a/boost/math/tools/roots.hpp b/boost/math/tools/roots.hpp
deleted file mode 100644
index 7ef7d99..0000000
--- a/boost/math/tools/roots.hpp
+++ /dev/null
@@ -1,542 +0,0 @@
-//  (C) Copyright John Maddock 2006.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_TOOLS_NEWTON_SOLVER_HPP
-#define BOOST_MATH_TOOLS_NEWTON_SOLVER_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <utility>
-#include <boost/config/no_tr1/cmath.hpp>
-#include <stdexcept>
-
-#include <boost/math/tools/config.hpp>
-#include <boost/cstdint.hpp>
-#include <boost/assert.hpp>
-#include <boost/throw_exception.hpp>
-
-#ifdef BOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable: 4512)
-#endif
-#include <boost/math/tools/tuple.hpp>
-#ifdef BOOST_MSVC
-#pragma warning(pop)
-#endif
-
-#include <boost/math/special_functions/sign.hpp>
-#include <boost/math/tools/toms748_solve.hpp>
-#include <boost/math/policies/error_handling.hpp>
-
-namespace boost{ namespace math{ namespace tools{
-
-namespace detail{
-
-template <class Tuple, class T>
-inline void unpack_0(const Tuple& t, T& val)
-{ val = boost::math::get<0>(t); }
-
-template <class F, class T>
-void handle_zero_derivative(F f,
-                            T& last_f0,
-                            const T& f0,
-                            T& delta,
-                            T& result,
-                            T& guess,
-                            const T& min,
-                            const T& max)
-{
-   if(last_f0 == 0)
-   {
-      // this must be the first iteration, pretend that we had a
-      // previous one at either min or max:
-      if(result == min)
-      {
-         guess = max;
-      }
-      else
-      {
-         guess = min;
-      }
-      unpack_0(f(guess), last_f0);
-      delta = guess - result;
-   }
-   if(sign(last_f0) * sign(f0) < 0)
-   {
-      // we've crossed over so move in opposite direction to last step:
-      if(delta < 0)
-      {
-         delta = (result - min) / 2;
-      }
-      else
-      {
-         delta = (result - max) / 2;
-      }
-   }
-   else
-   {
-      // move in same direction as last step:
-      if(delta < 0)
-      {
-         delta = (result - max) / 2;
-      }
-      else
-      {
-         delta = (result - min) / 2;
-      }
-   }
-}
-
-} // namespace
-
-template <class F, class T, class Tol, class Policy>
-std::pair<T, T> bisect(F f, T min, T max, Tol tol, boost::uintmax_t& max_iter, const Policy& pol)
-{
-   T fmin = f(min);
-   T fmax = f(max);
-   if(fmin == 0)
-      return std::make_pair(min, min);
-   if(fmax == 0)
-      return std::make_pair(max, max);
-
-   //
-   // Error checking:
-   //
-   static const char* function = "boost::math::tools::bisect<%1%>";
-   if(min >= max)
-   {
-      policies::raise_evaluation_error(function, 
-         "Arguments in wrong order in boost::math::tools::bisect (first arg=%1%)", min, pol);
-   }
-   if(fmin * fmax >= 0)
-   {
-      policies::raise_evaluation_error(function, 
-         "No change of sign in boost::math::tools::bisect, either there is no root to find, or there are multiple roots in the interval (f(min) = %1%).", fmin, pol);
-   }
-
-   //
-   // Three function invocations so far:
-   //
-   boost::uintmax_t count = max_iter;
-   if(count < 3)
-      count = 0;
-   else
-      count -= 3;
-
-   while(count && (0 == tol(min, max)))
-   {
-      T mid = (min + max) / 2;
-      T fmid = f(mid);
-      if((mid == max) || (mid == min))
-         break;
-      if(fmid == 0)
-      {
-         min = max = mid;
-         break;
-      }
-      else if(sign(fmid) * sign(fmin) < 0)
-      {
-         max = mid;
-         fmax = fmid;
-      }
-      else
-      {
-         min = mid;
-         fmin = fmid;
-      }
-      --count;
-   }
-
-   max_iter -= count;
-
-#ifdef BOOST_MATH_INSTRUMENT
-   std::cout << "Bisection iteration, final count = " << max_iter << std::endl;
-
-   static boost::uintmax_t max_count = 0;
-   if(max_iter > max_count)
-   {
-      max_count = max_iter;
-      std::cout << "Maximum iterations: " << max_iter << std::endl;
-   }
-#endif
-
-   return std::make_pair(min, max);
-}
-
-template <class F, class T, class Tol>
-inline std::pair<T, T> bisect(F f, T min, T max, Tol tol, boost::uintmax_t& max_iter)
-{
-   return bisect(f, min, max, tol, max_iter, policies::policy<>());
-}
-
-template <class F, class T, class Tol>
-inline std::pair<T, T> bisect(F f, T min, T max, Tol tol)
-{
-   boost::uintmax_t m = (std::numeric_limits<boost::uintmax_t>::max)();
-   return bisect(f, min, max, tol, m, policies::policy<>());
-}
-
-template <class F, class T>
-T newton_raphson_iterate(F f, T guess, T min, T max, int digits, boost::uintmax_t& max_iter)
-{
-   BOOST_MATH_STD_USING
-
-   T f0(0), f1, last_f0(0);
-   T result = guess;
-
-   T factor = static_cast<T>(ldexp(1.0, 1 - digits));
-   T delta = 1;
-   T delta1 = tools::max_value<T>();
-   T delta2 = tools::max_value<T>();
-
-   boost::uintmax_t count(max_iter);
-
-   do{
-      last_f0 = f0;
-      delta2 = delta1;
-      delta1 = delta;
-      boost::math::tie(f0, f1) = f(result);
-      if(0 == f0)
-         break;
-      if(f1 == 0)
-      {
-         // Oops zero derivative!!!
-#ifdef BOOST_MATH_INSTRUMENT
-         std::cout << "Newton iteration, zero derivative found" << std::endl;
-#endif
-         detail::handle_zero_derivative(f, last_f0, f0, delta, result, guess, min, max);
-      }
-      else
-      {
-         delta = f0 / f1;
-      }
-#ifdef BOOST_MATH_INSTRUMENT
-      std::cout << "Newton iteration, delta = " << delta << std::endl;
-#endif
-      if(fabs(delta * 2) > fabs(delta2))
-      {
-         // last two steps haven't converged, try bisection:
-         delta = (delta > 0) ? (result - min) / 2 : (result - max) / 2;
-      }
-      guess = result;
-      result -= delta;
-      if(result <= min)
-      {
-         delta = 0.5F * (guess - min);
-         result = guess - delta;
-         if((result == min) || (result == max))
-            break;
-      }
-      else if(result >= max)
-      {
-         delta = 0.5F * (guess - max);
-         result = guess - delta;
-         if((result == min) || (result == max))
-            break;
-      }
-      // update brackets:
-      if(delta > 0)
-         max = guess;
-      else
-         min = guess;
-   }while(--count && (fabs(result * factor) < fabs(delta)));
-
-   max_iter -= count;
-
-#ifdef BOOST_MATH_INSTRUMENT
-   std::cout << "Newton Raphson iteration, final count = " << max_iter << std::endl;
-
-   static boost::uintmax_t max_count = 0;
-   if(max_iter > max_count)
-   {
-      max_count = max_iter;
-      std::cout << "Maximum iterations: " << max_iter << std::endl;
-   }
-#endif
-
-   return result;
-}
-
-template <class F, class T>
-inline T newton_raphson_iterate(F f, T guess, T min, T max, int digits)
-{
-   boost::uintmax_t m = (std::numeric_limits<boost::uintmax_t>::max)();
-   return newton_raphson_iterate(f, guess, min, max, digits, m);
-}
-
-template <class F, class T>
-T halley_iterate(F f, T guess, T min, T max, int digits, boost::uintmax_t& max_iter)
-{
-   BOOST_MATH_STD_USING
-
-   T f0(0), f1, f2;
-   T result = guess;
-
-   T factor = static_cast<T>(ldexp(1.0, 1 - digits));
-   T delta = (std::max)(T(10000000 * guess), T(10000000));  // arbitarily large delta
-   T last_f0 = 0;
-   T delta1 = delta;
-   T delta2 = delta;
-
-   bool out_of_bounds_sentry = false;
-
-#ifdef BOOST_MATH_INSTRUMENT
-   std::cout << "Halley iteration, limit = " << factor << std::endl;
-#endif
-
-   boost::uintmax_t count(max_iter);
-
-   do{
-      last_f0 = f0;
-      delta2 = delta1;
-      delta1 = delta;
-      boost::math::tie(f0, f1, f2) = f(result);
-
-      BOOST_MATH_INSTRUMENT_VARIABLE(f0);
-      BOOST_MATH_INSTRUMENT_VARIABLE(f1);
-      BOOST_MATH_INSTRUMENT_VARIABLE(f2);
-      
-      if(0 == f0)
-         break;
-      if((f1 == 0) && (f2 == 0))
-      {
-         // Oops zero derivative!!!
-#ifdef BOOST_MATH_INSTRUMENT
-         std::cout << "Halley iteration, zero derivative found" << std::endl;
-#endif
-         detail::handle_zero_derivative(f, last_f0, f0, delta, result, guess, min, max);
-      }
-      else
-      {
-         if(f2 != 0)
-         {
-            T denom = 2 * f0;
-            T num = 2 * f1 - f0 * (f2 / f1);
-
-            BOOST_MATH_INSTRUMENT_VARIABLE(denom);
-            BOOST_MATH_INSTRUMENT_VARIABLE(num);
-
-            if((fabs(num) < 1) && (fabs(denom) >= fabs(num) * tools::max_value<T>()))
-            {
-               // possible overflow, use Newton step:
-               delta = f0 / f1;
-            }
-            else
-               delta = denom / num;
-            if(delta * f1 / f0 < 0)
-            {
-               // Oh dear, we have a problem as Newton and Halley steps
-               // disagree about which way we should move.  Probably
-               // there is cancelation error in the calculation of the
-               // Halley step, or else the derivatives are so small
-               // that their values are basically trash.  We will move
-               // in the direction indicated by a Newton step, but
-               // by no more than twice the current guess value, otherwise
-               // we can jump way out of bounds if we're not careful.
-               // See https://svn.boost.org/trac/boost/ticket/8314.
-               delta = f0 / f1;
-               if(fabs(delta) > 2 * fabs(guess))
-                  delta = (delta < 0 ? -1 : 1) * 2 * fabs(guess);
-            }
-         }
-         else
-            delta = f0 / f1;
-      }
-#ifdef BOOST_MATH_INSTRUMENT
-      std::cout << "Halley iteration, delta = " << delta << std::endl;
-#endif
-      T convergence = fabs(delta / delta2);
-      if((convergence > 0.8) && (convergence < 2))
-      {
-         // last two steps haven't converged, try bisection:
-         delta = (delta > 0) ? (result - min) / 2 : (result - max) / 2;
-         if(fabs(delta) > result)
-            delta = sign(delta) * result; // protect against huge jumps!
-         // reset delta2 so that this branch will *not* be taken on the
-         // next iteration:
-         delta2 = delta * 3;
-         BOOST_MATH_INSTRUMENT_VARIABLE(delta);
-      }
-      guess = result;
-      result -= delta;
-      BOOST_MATH_INSTRUMENT_VARIABLE(result);
-
-      // check for out of bounds step:
-      if(result < min)
-      {
-         T diff = ((fabs(min) < 1) && (fabs(result) > 1) && (tools::max_value<T>() / fabs(result) < fabs(min))) ? T(1000)  : T(result / min);
-         if(fabs(diff) < 1)
-            diff = 1 / diff;
-         if(!out_of_bounds_sentry && (diff > 0) && (diff < 3))
-         {
-            // Only a small out of bounds step, lets assume that the result
-            // is probably approximately at min:
-            delta = 0.99f * (guess  - min);
-            result = guess - delta;
-            out_of_bounds_sentry = true; // only take this branch once!
-         }
-         else
-         {
-            delta = (guess - min) / 2;
-            result = guess - delta;
-            if((result == min) || (result == max))
-               break;
-         }
-      }
-      else if(result > max)
-      {
-         T diff = ((fabs(max) < 1) && (fabs(result) > 1) && (tools::max_value<T>() / fabs(result) < fabs(max))) ? T(1000) : T(result / max);
-         if(fabs(diff) < 1)
-            diff = 1 / diff;
-         if(!out_of_bounds_sentry && (diff > 0) && (diff < 3))
-         {
-            // Only a small out of bounds step, lets assume that the result
-            // is probably approximately at min:
-            delta = 0.99f * (guess  - max);
-            result = guess - delta;
-            out_of_bounds_sentry = true; // only take this branch once!
-         }
-         else
-         {
-            delta = (guess - max) / 2;
-            result = guess - delta;
-            if((result == min) || (result == max))
-               break;
-         }
-      }
-      // update brackets:
-      if(delta > 0)
-         max = guess;
-      else
-         min = guess;
-   }while(--count && (fabs(result * factor) < fabs(delta)));
-
-   max_iter -= count;
-
-#ifdef BOOST_MATH_INSTRUMENT
-   std::cout << "Halley iteration, final count = " << max_iter << std::endl;
-#endif
-
-   return result;
-}
-
-template <class F, class T>
-inline T halley_iterate(F f, T guess, T min, T max, int digits)
-{
-   boost::uintmax_t m = (std::numeric_limits<boost::uintmax_t>::max)();
-   return halley_iterate(f, guess, min, max, digits, m);
-}
-
-template <class F, class T>
-T schroeder_iterate(F f, T guess, T min, T max, int digits, boost::uintmax_t& max_iter)
-{
-   BOOST_MATH_STD_USING
-
-   T f0(0), f1, f2, last_f0(0);
-   T result = guess;
-
-   T factor = static_cast<T>(ldexp(1.0, 1 - digits));
-   T delta = 0;
-   T delta1 = tools::max_value<T>();
-   T delta2 = tools::max_value<T>();
-
-#ifdef BOOST_MATH_INSTRUMENT
-   std::cout << "Schroeder iteration, limit = " << factor << std::endl;
-#endif
-
-   boost::uintmax_t count(max_iter);
-
-   do{
-      last_f0 = f0;
-      delta2 = delta1;
-      delta1 = delta;
-      boost::math::tie(f0, f1, f2) = f(result);
-      if(0 == f0)
-         break;
-      if((f1 == 0) && (f2 == 0))
-      {
-         // Oops zero derivative!!!
-#ifdef BOOST_MATH_INSTRUMENT
-         std::cout << "Halley iteration, zero derivative found" << std::endl;
-#endif
-         detail::handle_zero_derivative(f, last_f0, f0, delta, result, guess, min, max);
-      }
-      else
-      {
-         T ratio = f0 / f1;
-         if(ratio / result < 0.1)
-         {
-            delta = ratio + (f2 / (2 * f1)) * ratio * ratio;
-            // check second derivative doesn't over compensate:
-            if(delta * ratio < 0)
-               delta = ratio;
-         }
-         else
-            delta = ratio;  // fall back to Newton iteration.
-      }
-      if(fabs(delta * 2) > fabs(delta2))
-      {
-         // last two steps haven't converged, try bisection:
-         delta = (delta > 0) ? (result - min) / 2 : (result - max) / 2;
-      }
-      guess = result;
-      result -= delta;
-#ifdef BOOST_MATH_INSTRUMENT
-      std::cout << "Halley iteration, delta = " << delta << std::endl;
-#endif
-      if(result <= min)
-      {
-         delta = 0.5F * (guess - min);
-         result = guess - delta;
-         if((result == min) || (result == max))
-            break;
-      }
-      else if(result >= max)
-      {
-         delta = 0.5F * (guess - max);
-         result = guess - delta;
-         if((result == min) || (result == max))
-            break;
-      }
-      // update brackets:
-      if(delta > 0)
-         max = guess;
-      else
-         min = guess;
-   }while(--count && (fabs(result * factor) < fabs(delta)));
-
-   max_iter -= count;
-
-#ifdef BOOST_MATH_INSTRUMENT
-   std::cout << "Schroeder iteration, final count = " << max_iter << std::endl;
-
-   static boost::uintmax_t max_count = 0;
-   if(max_iter > max_count)
-   {
-      max_count = max_iter;
-      std::cout << "Maximum iterations: " << max_iter << std::endl;
-   }
-#endif
-
-   return result;
-}
-
-template <class F, class T>
-inline T schroeder_iterate(F f, T guess, T min, T max, int digits)
-{
-   boost::uintmax_t m = (std::numeric_limits<boost::uintmax_t>::max)();
-   return schroeder_iterate(f, guess, min, max, digits, m);
-}
-
-} // namespace tools
-} // namespace math
-} // namespace boost
-
-#endif // BOOST_MATH_TOOLS_NEWTON_SOLVER_HPP
-
-
-
diff --git a/boost/math/tools/series.hpp b/boost/math/tools/series.hpp
deleted file mode 100644
index a32a33f..0000000
--- a/boost/math/tools/series.hpp
+++ /dev/null
@@ -1,158 +0,0 @@
-//  (C) Copyright John Maddock 2005-2006.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_TOOLS_SERIES_INCLUDED
-#define BOOST_MATH_TOOLS_SERIES_INCLUDED
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/config/no_tr1/cmath.hpp>
-#include <boost/cstdint.hpp>
-#include <boost/limits.hpp>
-#include <boost/math/tools/config.hpp>
-
-namespace boost{ namespace math{ namespace tools{
-
-//
-// Simple series summation come first:
-//
-template <class Functor, class U, class V>
-inline typename Functor::result_type sum_series(Functor& func, const U& factor, boost::uintmax_t& max_terms, const V& init_value)
-{
-   BOOST_MATH_STD_USING
-
-   typedef typename Functor::result_type result_type;
-
-   boost::uintmax_t counter = max_terms;
-
-   result_type result = init_value;
-   result_type next_term;
-   do{
-      next_term = func();
-      result += next_term;
-   }
-   while((fabs(factor * result) < fabs(next_term)) && --counter);
-
-   // set max_terms to the actual number of terms of the series evaluated:
-   max_terms = max_terms - counter;
-
-   return result;
-}
-
-template <class Functor, class U>
-inline typename Functor::result_type sum_series(Functor& func, const U& factor, boost::uintmax_t& max_terms)
-{
-   typename Functor::result_type init_value = 0;
-   return sum_series(func, factor, max_terms, init_value);
-}
-
-template <class Functor, class U>
-inline typename Functor::result_type sum_series(Functor& func, int bits, boost::uintmax_t& max_terms, const U& init_value)
-{
-   BOOST_MATH_STD_USING
-   typedef typename Functor::result_type result_type;
-   result_type factor = ldexp(result_type(1), 1 - bits);
-   return sum_series(func, factor, max_terms, init_value);
-}
-
-template <class Functor>
-inline typename Functor::result_type sum_series(Functor& func, int bits)
-{
-   BOOST_MATH_STD_USING
-   typedef typename Functor::result_type result_type;
-   boost::uintmax_t iters = (std::numeric_limits<boost::uintmax_t>::max)();
-   result_type init_val = 0;
-   return sum_series(func, bits, iters, init_val);
-}
-
-template <class Functor>
-inline typename Functor::result_type sum_series(Functor& func, int bits, boost::uintmax_t& max_terms)
-{
-   BOOST_MATH_STD_USING
-   typedef typename Functor::result_type result_type;
-   result_type init_val = 0;
-   return sum_series(func, bits, max_terms, init_val);
-}
-
-template <class Functor, class U>
-inline typename Functor::result_type sum_series(Functor& func, int bits, const U& init_value)
-{
-   BOOST_MATH_STD_USING
-   boost::uintmax_t iters = (std::numeric_limits<boost::uintmax_t>::max)();
-   return sum_series(func, bits, iters, init_value);
-}
-
-//
-// Algorithm kahan_sum_series invokes Functor func until the N'th
-// term is too small to have any effect on the total, the terms
-// are added using the Kahan summation method.
-//
-// CAUTION: Optimizing compilers combined with extended-precision
-// machine registers conspire to render this algorithm partly broken:
-// double rounding of intermediate terms (first to a long double machine
-// register, and then to a double result) cause the rounding error computed
-// by the algorithm to be off by up to 1ulp.  However this occurs rarely, and
-// in any case the result is still much better than a naive summation.
-//
-template <class Functor>
-inline typename Functor::result_type kahan_sum_series(Functor& func, int bits)
-{
-   BOOST_MATH_STD_USING
-
-   typedef typename Functor::result_type result_type;
-
-   result_type factor = pow(result_type(2), bits);
-   result_type result = func();
-   result_type next_term, y, t;
-   result_type carry = 0;
-   do{
-      next_term = func();
-      y = next_term - carry;
-      t = result + y;
-      carry = t - result;
-      carry -= y;
-      result = t;
-   }
-   while(fabs(result) < fabs(factor * next_term));
-   return result;
-}
-
-template <class Functor>
-inline typename Functor::result_type kahan_sum_series(Functor& func, int bits, boost::uintmax_t& max_terms)
-{
-   BOOST_MATH_STD_USING
-
-   typedef typename Functor::result_type result_type;
-
-   boost::uintmax_t counter = max_terms;
-
-   result_type factor = ldexp(result_type(1), bits);
-   result_type result = func();
-   result_type next_term, y, t;
-   result_type carry = 0;
-   do{
-      next_term = func();
-      y = next_term - carry;
-      t = result + y;
-      carry = t - result;
-      carry -= y;
-      result = t;
-   }
-   while((fabs(result) < fabs(factor * next_term)) && --counter);
-
-   // set max_terms to the actual number of terms of the series evaluated:
-   max_terms = max_terms - counter;
-
-   return result;
-}
-
-} // namespace tools
-} // namespace math
-} // namespace boost
-
-#endif // BOOST_MATH_TOOLS_SERIES_INCLUDED
-
diff --git a/boost/math/tools/toms748_solve.hpp b/boost/math/tools/toms748_solve.hpp
deleted file mode 100644
index 1310ff2..0000000
--- a/boost/math/tools/toms748_solve.hpp
+++ /dev/null
@@ -1,585 +0,0 @@
-//  (C) Copyright John Maddock 2006.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_TOOLS_SOLVE_ROOT_HPP
-#define BOOST_MATH_TOOLS_SOLVE_ROOT_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/math/tools/precision.hpp>
-#include <boost/math/policies/error_handling.hpp>
-#include <boost/math/tools/config.hpp>
-#include <boost/math/special_functions/sign.hpp>
-#include <boost/cstdint.hpp>
-#include <limits>
-
-namespace boost{ namespace math{ namespace tools{
-
-template <class T>
-class eps_tolerance
-{
-public:
-   eps_tolerance(unsigned bits)
-   {
-      BOOST_MATH_STD_USING
-      eps = (std::max)(T(ldexp(1.0F, 1-bits)), T(4 * tools::epsilon<T>()));
-   }
-   bool operator()(const T& a, const T& b)
-   {
-      BOOST_MATH_STD_USING
-      return fabs(a - b) <= (eps * (std::min)(fabs(a), fabs(b)));
-   }
-private:
-   T eps;
-};
-
-struct equal_floor
-{
-   equal_floor(){}
-   template <class T>
-   bool operator()(const T& a, const T& b)
-   {
-      BOOST_MATH_STD_USING
-      return floor(a) == floor(b);
-   }
-};
-
-struct equal_ceil
-{
-   equal_ceil(){}
-   template <class T>
-   bool operator()(const T& a, const T& b)
-   {
-      BOOST_MATH_STD_USING
-      return ceil(a) == ceil(b);
-   }
-};
-
-struct equal_nearest_integer
-{
-   equal_nearest_integer(){}
-   template <class T>
-   bool operator()(const T& a, const T& b)
-   {
-      BOOST_MATH_STD_USING
-      return floor(a + 0.5f) == floor(b + 0.5f);
-   }
-};
-
-namespace detail{
-
-template <class F, class T>
-void bracket(F f, T& a, T& b, T c, T& fa, T& fb, T& d, T& fd)
-{
-   //
-   // Given a point c inside the existing enclosing interval
-   // [a, b] sets a = c if f(c) == 0, otherwise finds the new 
-   // enclosing interval: either [a, c] or [c, b] and sets
-   // d and fd to the point that has just been removed from
-   // the interval.  In other words d is the third best guess
-   // to the root.
-   //
-   BOOST_MATH_STD_USING  // For ADL of std math functions
-   T tol = tools::epsilon<T>() * 2;
-   //
-   // If the interval [a,b] is very small, or if c is too close 
-   // to one end of the interval then we need to adjust the
-   // location of c accordingly:
-   //
-   if((b - a) < 2 * tol * a)
-   {
-      c = a + (b - a) / 2;
-   }
-   else if(c <= a + fabs(a) * tol)
-   {
-      c = a + fabs(a) * tol;
-   }
-   else if(c >= b - fabs(b) * tol)
-   {
-      c = b - fabs(a) * tol;
-   }
-   //
-   // OK, lets invoke f(c):
-   //
-   T fc = f(c);
-   //
-   // if we have a zero then we have an exact solution to the root:
-   //
-   if(fc == 0)
-   {
-      a = c;
-      fa = 0;
-      d = 0;
-      fd = 0;
-      return;
-   }
-   //
-   // Non-zero fc, update the interval:
-   //
-   if(boost::math::sign(fa) * boost::math::sign(fc) < 0)
-   {
-      d = b;
-      fd = fb;
-      b = c;
-      fb = fc;
-   }
-   else
-   {
-      d = a;
-      fd = fa;
-      a = c;
-      fa= fc;
-   }
-}
-
-template <class T>
-inline T safe_div(T num, T denom, T r)
-{
-   //
-   // return num / denom without overflow,
-   // return r if overflow would occur.
-   //
-   BOOST_MATH_STD_USING  // For ADL of std math functions
-
-   if(fabs(denom) < 1)
-   {
-      if(fabs(denom * tools::max_value<T>()) <= fabs(num))
-         return r;
-   }
-   return num / denom;
-}
-
-template <class T>
-inline T secant_interpolate(const T& a, const T& b, const T& fa, const T& fb)
-{
-   //
-   // Performs standard secant interpolation of [a,b] given
-   // function evaluations f(a) and f(b).  Performs a bisection
-   // if secant interpolation would leave us very close to either
-   // a or b.  Rationale: we only call this function when at least
-   // one other form of interpolation has already failed, so we know
-   // that the function is unlikely to be smooth with a root very
-   // close to a or b.
-   //
-   BOOST_MATH_STD_USING  // For ADL of std math functions
-
-   T tol = tools::epsilon<T>() * 5;
-   T c = a - (fa / (fb - fa)) * (b - a);
-   if((c <= a + fabs(a) * tol) || (c >= b - fabs(b) * tol))
-      return (a + b) / 2;
-   return c;
-}
-
-template <class T>
-T quadratic_interpolate(const T& a, const T& b, T const& d,
-                           const T& fa, const T& fb, T const& fd, 
-                           unsigned count)
-{
-   //
-   // Performs quadratic interpolation to determine the next point,
-   // takes count Newton steps to find the location of the
-   // quadratic polynomial.
-   //
-   // Point d must lie outside of the interval [a,b], it is the third
-   // best approximation to the root, after a and b.
-   //
-   // Note: this does not guarentee to find a root
-   // inside [a, b], so we fall back to a secant step should
-   // the result be out of range.
-   //
-   // Start by obtaining the coefficients of the quadratic polynomial:
-   //
-   T B = safe_div(T(fb - fa), T(b - a), tools::max_value<T>());
-   T A = safe_div(T(fd - fb), T(d - b), tools::max_value<T>());
-   A = safe_div(T(A - B), T(d - a), T(0));
-
-   if(A == 0)
-   {
-      // failure to determine coefficients, try a secant step:
-      return secant_interpolate(a, b, fa, fb);
-   }
-   //
-   // Determine the starting point of the Newton steps:
-   //
-   T c;
-   if(boost::math::sign(A) * boost::math::sign(fa) > 0)
-   {
-      c = a;
-   }
-   else
-   {
-      c = b;
-   }
-   //
-   // Take the Newton steps:
-   //
-   for(unsigned i = 1; i <= count; ++i)
-   {
-      //c -= safe_div(B * c, (B + A * (2 * c - a - b)), 1 + c - a);
-      c -= safe_div(T(fa+(B+A*(c-b))*(c-a)), T(B + A * (2 * c - a - b)), T(1 + c - a));
-   }
-   if((c <= a) || (c >= b))
-   {
-      // Oops, failure, try a secant step:
-      c = secant_interpolate(a, b, fa, fb);
-   }
-   return c;
-}
-
-template <class T>
-T cubic_interpolate(const T& a, const T& b, const T& d, 
-                    const T& e, const T& fa, const T& fb, 
-                    const T& fd, const T& fe)
-{
-   //
-   // Uses inverse cubic interpolation of f(x) at points 
-   // [a,b,d,e] to obtain an approximate root of f(x).
-   // Points d and e lie outside the interval [a,b]
-   // and are the third and forth best approximations
-   // to the root that we have found so far.
-   //
-   // Note: this does not guarentee to find a root
-   // inside [a, b], so we fall back to quadratic
-   // interpolation in case of an erroneous result.
-   //
-   BOOST_MATH_INSTRUMENT_CODE(" a = " << a << " b = " << b
-      << " d = " << d << " e = " << e << " fa = " << fa << " fb = " << fb 
-      << " fd = " << fd << " fe = " << fe);
-   T q11 = (d - e) * fd / (fe - fd);
-   T q21 = (b - d) * fb / (fd - fb);
-   T q31 = (a - b) * fa / (fb - fa);
-   T d21 = (b - d) * fd / (fd - fb);
-   T d31 = (a - b) * fb / (fb - fa);
-   BOOST_MATH_INSTRUMENT_CODE(
-      "q11 = " << q11 << " q21 = " << q21 << " q31 = " << q31
-      << " d21 = " << d21 << " d31 = " << d31);
-   T q22 = (d21 - q11) * fb / (fe - fb);
-   T q32 = (d31 - q21) * fa / (fd - fa);
-   T d32 = (d31 - q21) * fd / (fd - fa);
-   T q33 = (d32 - q22) * fa / (fe - fa);
-   T c = q31 + q32 + q33 + a;
-   BOOST_MATH_INSTRUMENT_CODE(
-      "q22 = " << q22 << " q32 = " << q32 << " d32 = " << d32
-      << " q33 = " << q33 << " c = " << c);
-
-   if((c <= a) || (c >= b))
-   {
-      // Out of bounds step, fall back to quadratic interpolation:
-      c = quadratic_interpolate(a, b, d, fa, fb, fd, 3);
-   BOOST_MATH_INSTRUMENT_CODE(
-      "Out of bounds interpolation, falling back to quadratic interpolation. c = " << c);
-   }
-
-   return c;
-}
-
-} // namespace detail
-
-template <class F, class T, class Tol, class Policy>
-std::pair<T, T> toms748_solve(F f, const T& ax, const T& bx, const T& fax, const T& fbx, Tol tol, boost::uintmax_t& max_iter, const Policy& pol)
-{
-   //
-   // Main entry point and logic for Toms Algorithm 748
-   // root finder.
-   //
-   BOOST_MATH_STD_USING  // For ADL of std math functions
-
-   static const char* function = "boost::math::tools::toms748_solve<%1%>";
-
-   boost::uintmax_t count = max_iter;
-   T a, b, fa, fb, c, u, fu, a0, b0, d, fd, e, fe;
-   static const T mu = 0.5f;
-
-   // initialise a, b and fa, fb:
-   a = ax;
-   b = bx;
-   if(a >= b)
-      policies::raise_domain_error(
-         function, 
-         "Parameters a and b out of order: a=%1%", a, pol);
-   fa = fax;
-   fb = fbx;
-
-   if(tol(a, b) || (fa == 0) || (fb == 0))
-   {
-      max_iter = 0;
-      if(fa == 0)
-         b = a;
-      else if(fb == 0)
-         a = b;
-      return std::make_pair(a, b);
-   }
-
-   if(boost::math::sign(fa) * boost::math::sign(fb) > 0)
-      policies::raise_domain_error(
-         function, 
-         "Parameters a and b do not bracket the root: a=%1%", a, pol);
-   // dummy value for fd, e and fe:
-   fe = e = fd = 1e5F;
-
-   if(fa != 0)
-   {
-      //
-      // On the first step we take a secant step:
-      //
-      c = detail::secant_interpolate(a, b, fa, fb);
-      detail::bracket(f, a, b, c, fa, fb, d, fd);
-      --count;
-      BOOST_MATH_INSTRUMENT_CODE(" a = " << a << " b = " << b);
-
-      if(count && (fa != 0) && !tol(a, b))
-      {
-         //
-         // On the second step we take a quadratic interpolation:
-         //
-         c = detail::quadratic_interpolate(a, b, d, fa, fb, fd, 2);
-         e = d;
-         fe = fd;
-         detail::bracket(f, a, b, c, fa, fb, d, fd);
-         --count;
-         BOOST_MATH_INSTRUMENT_CODE(" a = " << a << " b = " << b);
-      }
-   }
-
-   while(count && (fa != 0) && !tol(a, b))
-   {
-      // save our brackets:
-      a0 = a;
-      b0 = b;
-      //
-      // Starting with the third step taken
-      // we can use either quadratic or cubic interpolation.
-      // Cubic interpolation requires that all four function values
-      // fa, fb, fd, and fe are distinct, should that not be the case
-      // then variable prof will get set to true, and we'll end up
-      // taking a quadratic step instead.
-      //
-      T min_diff = tools::min_value<T>() * 32;
-      bool prof = (fabs(fa - fb) < min_diff) || (fabs(fa - fd) < min_diff) || (fabs(fa - fe) < min_diff) || (fabs(fb - fd) < min_diff) || (fabs(fb - fe) < min_diff) || (fabs(fd - fe) < min_diff);
-      if(prof)
-      {
-         c = detail::quadratic_interpolate(a, b, d, fa, fb, fd, 2);
-         BOOST_MATH_INSTRUMENT_CODE("Can't take cubic step!!!!");
-      }
-      else
-      {
-         c = detail::cubic_interpolate(a, b, d, e, fa, fb, fd, fe);
-      }
-      //
-      // re-bracket, and check for termination:
-      //
-      e = d;
-      fe = fd;
-      detail::bracket(f, a, b, c, fa, fb, d, fd);
-      if((0 == --count) || (fa == 0) || tol(a, b))
-         break;
-      BOOST_MATH_INSTRUMENT_CODE(" a = " << a << " b = " << b);
-      //
-      // Now another interpolated step:
-      //
-      prof = (fabs(fa - fb) < min_diff) || (fabs(fa - fd) < min_diff) || (fabs(fa - fe) < min_diff) || (fabs(fb - fd) < min_diff) || (fabs(fb - fe) < min_diff) || (fabs(fd - fe) < min_diff);
-      if(prof)
-      {
-         c = detail::quadratic_interpolate(a, b, d, fa, fb, fd, 3);
-         BOOST_MATH_INSTRUMENT_CODE("Can't take cubic step!!!!");
-      }
-      else
-      {
-         c = detail::cubic_interpolate(a, b, d, e, fa, fb, fd, fe);
-      }
-      //
-      // Bracket again, and check termination condition, update e:
-      //
-      detail::bracket(f, a, b, c, fa, fb, d, fd);
-      if((0 == --count) || (fa == 0) || tol(a, b))
-         break;
-      BOOST_MATH_INSTRUMENT_CODE(" a = " << a << " b = " << b);
-      //
-      // Now we take a double-length secant step:
-      //
-      if(fabs(fa) < fabs(fb))
-      {
-         u = a;
-         fu = fa;
-      }
-      else
-      {
-         u = b;
-         fu = fb;
-      }
-      c = u - 2 * (fu / (fb - fa)) * (b - a);
-      if(fabs(c - u) > (b - a) / 2)
-      {
-         c = a + (b - a) / 2;
-      }
-      //
-      // Bracket again, and check termination condition:
-      //
-      e = d;
-      fe = fd;
-      detail::bracket(f, a, b, c, fa, fb, d, fd);
-      BOOST_MATH_INSTRUMENT_CODE(" a = " << a << " b = " << b);
-      BOOST_MATH_INSTRUMENT_CODE(" tol = " << T((fabs(a) - fabs(b)) / fabs(a)));
-      if((0 == --count) || (fa == 0) || tol(a, b))
-         break;
-      //
-      // And finally... check to see if an additional bisection step is 
-      // to be taken, we do this if we're not converging fast enough:
-      //
-      if((b - a) < mu * (b0 - a0))
-         continue;
-      //
-      // bracket again on a bisection:
-      //
-      e = d;
-      fe = fd;
-      detail::bracket(f, a, b, T(a + (b - a) / 2), fa, fb, d, fd);
-      --count;
-      BOOST_MATH_INSTRUMENT_CODE("Not converging: Taking a bisection!!!!");
-      BOOST_MATH_INSTRUMENT_CODE(" a = " << a << " b = " << b);
-   } // while loop
-
-   max_iter -= count;
-   if(fa == 0)
-   {
-      b = a;
-   }
-   else if(fb == 0)
-   {
-      a = b;
-   }
-   return std::make_pair(a, b);
-}
-
-template <class F, class T, class Tol>
-inline std::pair<T, T> toms748_solve(F f, const T& ax, const T& bx, const T& fax, const T& fbx, Tol tol, boost::uintmax_t& max_iter)
-{
-   return toms748_solve(f, ax, bx, fax, fbx, tol, max_iter, policies::policy<>());
-}
-
-template <class F, class T, class Tol, class Policy>
-inline std::pair<T, T> toms748_solve(F f, const T& ax, const T& bx, Tol tol, boost::uintmax_t& max_iter, const Policy& pol)
-{
-   max_iter -= 2;
-   std::pair<T, T> r = toms748_solve(f, ax, bx, f(ax), f(bx), tol, max_iter, pol);
-   max_iter += 2;
-   return r;
-}
-
-template <class F, class T, class Tol>
-inline std::pair<T, T> toms748_solve(F f, const T& ax, const T& bx, Tol tol, boost::uintmax_t& max_iter)
-{
-   return toms748_solve(f, ax, bx, tol, max_iter, policies::policy<>());
-}
-
-template <class F, class T, class Tol, class Policy>
-std::pair<T, T> bracket_and_solve_root(F f, const T& guess, T factor, bool rising, Tol tol, boost::uintmax_t& max_iter, const Policy& pol)
-{
-   BOOST_MATH_STD_USING
-   static const char* function = "boost::math::tools::bracket_and_solve_root<%1%>";
-   //
-   // Set up inital brackets:
-   //
-   T a = guess;
-   T b = a;
-   T fa = f(a);
-   T fb = fa;
-   //
-   // Set up invocation count:
-   //
-   boost::uintmax_t count = max_iter - 1;
-
-   if((fa < 0) == (guess < 0 ? !rising : rising))
-   {
-      //
-      // Zero is to the right of b, so walk upwards
-      // until we find it:
-      //
-      while((boost::math::sign)(fb) == (boost::math::sign)(fa))
-      {
-         if(count == 0)
-            policies::raise_evaluation_error(function, "Unable to bracket root, last nearest value was %1%", b, pol);
-         //
-         // Heuristic: every 20 iterations we double the growth factor in case the
-         // initial guess was *really* bad !
-         //
-         if((max_iter - count) % 20 == 0)
-            factor *= 2;
-         //
-         // Now go ahead and move our guess by "factor":
-         //
-         a = b;
-         fa = fb;
-         b *= factor;
-         fb = f(b);
-         --count;
-         BOOST_MATH_INSTRUMENT_CODE("a = " << a << " b = " << b << " fa = " << fa << " fb = " << fb << " count = " << count);
-      }
-   }
-   else
-   {
-      //
-      // Zero is to the left of a, so walk downwards
-      // until we find it:
-      //
-      while((boost::math::sign)(fb) == (boost::math::sign)(fa))
-      {
-         if(fabs(a) < tools::min_value<T>())
-         {
-            // Escape route just in case the answer is zero!
-            max_iter -= count;
-            max_iter += 1;
-            return a > 0 ? std::make_pair(T(0), T(a)) : std::make_pair(T(a), T(0)); 
-         }
-         if(count == 0)
-            policies::raise_evaluation_error(function, "Unable to bracket root, last nearest value was %1%", a, pol);
-         //
-         // Heuristic: every 20 iterations we double the growth factor in case the
-         // initial guess was *really* bad !
-         //
-         if((max_iter - count) % 20 == 0)
-            factor *= 2;
-         //
-         // Now go ahead and move are guess by "factor":
-         //
-         b = a;
-         fb = fa;
-         a /= factor;
-         fa = f(a);
-         --count;
-         BOOST_MATH_INSTRUMENT_CODE("a = " << a << " b = " << b << " fa = " << fa << " fb = " << fb << " count = " << count);
-      }
-   }
-   max_iter -= count;
-   max_iter += 1;
-   std::pair<T, T> r = toms748_solve(
-      f, 
-      (a < 0 ? b : a), 
-      (a < 0 ? a : b), 
-      (a < 0 ? fb : fa), 
-      (a < 0 ? fa : fb), 
-      tol, 
-      count, 
-      pol);
-   max_iter += count;
-   BOOST_MATH_INSTRUMENT_CODE("max_iter = " << max_iter << " count = " << count);
-   return r;
-}
-
-template <class F, class T, class Tol>
-inline std::pair<T, T> bracket_and_solve_root(F f, const T& guess, const T& factor, bool rising, Tol tol, boost::uintmax_t& max_iter)
-{
-   return bracket_and_solve_root(f, guess, factor, rising, tol, max_iter, policies::policy<>());
-}
-
-} // namespace tools
-} // namespace math
-} // namespace boost
-
-
-#endif // BOOST_MATH_TOOLS_SOLVE_ROOT_HPP
-
diff --git a/boost/math/tools/tuple.hpp b/boost/math/tools/tuple.hpp
deleted file mode 100644
index e8d6df8..0000000
--- a/boost/math/tools/tuple.hpp
+++ /dev/null
@@ -1,112 +0,0 @@
-//  (C) Copyright John Maddock 2010.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_TUPLE_HPP_INCLUDED
-#  define BOOST_MATH_TUPLE_HPP_INCLUDED
-#  include <boost/config.hpp>
-
-#include <boost/tr1/detail/config.hpp>  // for BOOST_HAS_TR1_TUPLE
-
-#ifndef BOOST_NO_CXX11_HDR_TUPLE
-
-#include <tuple>
-
-namespace boost{ namespace math{
-
-using ::std::tuple;
-
-// [6.1.3.2] Tuple creation functions
-using ::std::ignore;
-using ::std::make_tuple;
-using ::std::tie;
-using ::std::get;
-
-// [6.1.3.3] Tuple helper classes
-using ::std::tuple_size;
-using ::std::tuple_element;
-
-}}
-
-#elif defined(BOOST_HAS_TR1_TUPLE)
-
-#include <boost/tr1/tuple.hpp>
-
-namespace boost{ namespace math{
-
-using ::std::tr1::tuple;
-
-// [6.1.3.2] Tuple creation functions
-using ::std::tr1::ignore;
-using ::std::tr1::make_tuple;
-using ::std::tr1::tie;
-using ::std::tr1::get;
-
-// [6.1.3.3] Tuple helper classes
-using ::std::tr1::tuple_size;
-using ::std::tr1::tuple_element;
-
-}}
-
-#elif (defined(__BORLANDC__) && (__BORLANDC__ <= 0x600)) || defined(__IBMCPP__)
-
-#include <boost/tuple/tuple.hpp>
-#include <boost/tuple/tuple_comparison.hpp>
-#include <boost/type_traits/integral_constant.hpp>
-
-namespace boost{ namespace math{
-
-using ::boost::tuple;
-
-// [6.1.3.2] Tuple creation functions
-using ::boost::tuples::ignore;
-using ::boost::make_tuple;
-using ::boost::tie;
-
-// [6.1.3.3] Tuple helper classes
-template <class T> 
-struct tuple_size 
-   : public ::boost::integral_constant
-   < ::std::size_t, ::boost::tuples::length<T>::value>
-{};
-
-template < int I, class T>
-struct tuple_element
-{
-   typedef typename boost::tuples::element<I,T>::type type;
-};
-
-#if !BOOST_WORKAROUND(__BORLANDC__, < 0x0582)
-// [6.1.3.4] Element access
-using ::boost::get;
-#endif
-
-} } // namespaces
-
-#else
-
-#include <boost/fusion/include/tuple.hpp>
-#include <boost/fusion/include/std_pair.hpp>
-
-namespace boost{ namespace math{
-
-using ::boost::fusion::tuple;
-
-// [6.1.3.2] Tuple creation functions
-using ::boost::fusion::ignore;
-using ::boost::fusion::make_tuple;
-using ::boost::fusion::tie;
-using ::boost::fusion::get;
-
-// [6.1.3.3] Tuple helper classes
-using ::boost::fusion::tuple_size;
-using ::boost::fusion::tuple_element;
-
-}}
-
-#endif
-
-#endif
-
-
diff --git a/boost/math/tools/user.hpp b/boost/math/tools/user.hpp
deleted file mode 100644
index c1bdaf7..0000000
--- a/boost/math/tools/user.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-// Copyright John Maddock 2007.
-// Copyright Paul A. Bristow 2007.
-
-// Use, modification and distribution are subject to the
-// Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt
-// or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_TOOLS_USER_HPP
-#define BOOST_MATH_TOOLS_USER_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-// This file can be modified by the user to change the default policies.
-// See "Changing the Policy Defaults" in documentation.
-
-// define this if the platform has no long double functions,
-// or if the long double versions have only double precision:
-//
-// #define BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS
-//
-// Performance tuning options:
-//
-// #define BOOST_MATH_POLY_METHOD 3
-// #define BOOST_MATH_RATIONAL_METHOD 3
-//
-// The maximum order of polynomial that will be evaluated
-// via an unrolled specialisation:
-//
-// #define BOOST_MATH_MAX_POLY_ORDER 17
-//
-// decide whether to store constants as integers or reals:
-//
-// #define BOOST_MATH_INT_TABLE_TYPE(RT, IT) IT
-
-//
-// Default policies follow:
-//
-// Domain errors:
-//
-// #define BOOST_MATH_DOMAIN_ERROR_POLICY throw_on_error
-//
-// Pole errors:
-//
-// #define BOOST_MATH_POLE_ERROR_POLICY throw_on_error
-//
-// Overflow Errors:
-//
-// #define BOOST_MATH_OVERFLOW_ERROR_POLICY throw_on_error
-//
-// Internal Evaluation Errors:
-//
-// #define BOOST_MATH_EVALUATION_ERROR_POLICY throw_on_error
-//
-// Underfow:
-//
-// #define BOOST_MATH_UNDERFLOW_ERROR_POLICY ignore_error
-//
-// Denorms:
-//
-// #define BOOST_MATH_DENORM_ERROR_POLICY ignore_error
-//
-// Max digits to use for internal calculations:
-//
-// #define BOOST_MATH_DIGITS10_POLICY 0
-//
-// Promote floats to doubles internally?
-//
-// #define BOOST_MATH_PROMOTE_FLOAT_POLICY true
-//
-// Promote doubles to long double internally:
-//
-// #define BOOST_MATH_PROMOTE_DOUBLE_POLICY true
-//
-// What do discrete quantiles return?
-//
-// #define BOOST_MATH_DISCRETE_QUANTILE_POLICY integer_round_outwards
-//
-// If a function is mathematically undefined
-// (for example the Cauchy distribution has no mean),
-// then do we stop the code from compiling?
-//
-// #define BOOST_MATH_ASSERT_UNDEFINED_POLICY true
-//
-// Maximum series iterstions permitted:
-//
-// #define BOOST_MATH_MAX_SERIES_ITERATION_POLICY 1000000
-//
-// Maximum root finding steps permitted:
-//
-// define BOOST_MATH_MAX_ROOT_ITERATION_POLICY 200
-
-#endif // BOOST_MATH_TOOLS_USER_HPP
-
-
diff --git a/boost/math/tools/workaround.hpp b/boost/math/tools/workaround.hpp
deleted file mode 100644
index 2010681..0000000
--- a/boost/math/tools/workaround.hpp
+++ /dev/null
@@ -1,38 +0,0 @@
-//  Copyright (c) 2006-7 John Maddock
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_MATH_TOOLS_WORHAROUND_HPP
-#define BOOST_MATH_TOOLS_WORHAROUND_HPP
-
-#ifdef _MSC_VER
-#pragma once
-#endif
-
-#include <boost/math/tools/config.hpp>
-
-namespace boost{ namespace math{ namespace tools{
-//
-// We call this short forwarding function so that we can work around a bug
-// on Darwin that causes std::fmod to return a NaN.  The test case is:
-// std::fmod(1185.0L, 1.5L);
-//
-template <class T>
-inline T fmod_workaround(T a, T b)
-{
-   BOOST_MATH_STD_USING
-   return fmod(a, b);
-}
-#if (defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__)) && ((LDBL_MANT_DIG == 106) || (__LDBL_MANT_DIG__ == 106))
-template <>
-inline long double fmod_workaround(long double a, long double b)
-{
-   return ::fmodl(a, b);
-}
-#endif
-
-}}} // namespaces
-
-#endif // BOOST_MATH_TOOLS_WORHAROUND_HPP
-
diff --git a/boost/memory_order.hpp b/boost/memory_order.hpp
deleted file mode 100644
index 4945af6..0000000
--- a/boost/memory_order.hpp
+++ /dev/null
@@ -1,53 +0,0 @@
-#ifndef BOOST_MEMORY_ORDER_HPP_INCLUDED
-#define BOOST_MEMORY_ORDER_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//  boost/memory_order.hpp
-//
-//  Defines enum boost::memory_order per the C++0x working draft
-//
-//  Copyright (c) 2008, 2009 Peter Dimov
-//
-//  Distributed under the Boost Software License, Version 1.0.
-//  See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-
-
-namespace boost
-{
-
-//
-// Enum values are chosen so that code that needs to insert
-// a trailing fence for acquire semantics can use a single
-// test such as:
-//
-// if( mo & memory_order_acquire ) { ...fence... }
-//
-// For leading fences one can use:
-//
-// if( mo & memory_order_release ) { ...fence... }
-//
-// Architectures such as Alpha that need a fence on consume
-// can use:
-//
-// if( mo & ( memory_order_acquire | memory_order_consume ) ) { ...fence... }
-//
-
-enum memory_order
-{
-    memory_order_relaxed = 0,
-    memory_order_acquire = 1,
-    memory_order_release = 2,
-    memory_order_acq_rel = 3, // acquire | release
-    memory_order_seq_cst = 7, // acq_rel | 4
-    memory_order_consume = 8
-};
-
-} // namespace boost
-
-#endif // #ifndef BOOST_MEMORY_ORDER_HPP_INCLUDED
diff --git a/boost/mpl/O1_size.hpp b/boost/mpl/O1_size.hpp
deleted file mode 100644
index 8baaa79..0000000
--- a/boost/mpl/O1_size.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-
-#ifndef BOOST_MPL_O1_SIZE_HPP_INCLUDED
-#define BOOST_MPL_O1_SIZE_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: O1_size.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/O1_size_fwd.hpp>
-#include <boost/mpl/sequence_tag.hpp>
-#include <boost/mpl/aux_/O1_size_impl.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-
-namespace boost { namespace mpl {
-
-// returns sequence size if it's an O(1) operation; otherwise returns -1
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(Sequence)
-    >
-struct O1_size
-    : O1_size_impl< typename sequence_tag<Sequence>::type >
-        ::template apply< Sequence >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1, O1_size, (Sequence))
-};
-
-BOOST_MPL_AUX_NA_SPEC(1, O1_size)
-
-}}
-
-#endif // BOOST_MPL_O1_SIZE_HPP_INCLUDED
diff --git a/boost/mpl/O1_size_fwd.hpp b/boost/mpl/O1_size_fwd.hpp
deleted file mode 100644
index d975382..0000000
--- a/boost/mpl/O1_size_fwd.hpp
+++ /dev/null
@@ -1,24 +0,0 @@
-
-#ifndef BOOST_MPL_O1_SIZE_FWD_HPP_INCLUDED
-#define BOOST_MPL_O1_SIZE_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: O1_size_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-namespace boost { namespace mpl {
-
-template< typename Tag > struct O1_size_impl;
-template< typename Sequence > struct O1_size;
-
-}}
-
-#endif // BOOST_MPL_O1_SIZE_FWD_HPP_INCLUDED
diff --git a/boost/mpl/advance.hpp b/boost/mpl/advance.hpp
deleted file mode 100644
index d811a80..0000000
--- a/boost/mpl/advance.hpp
+++ /dev/null
@@ -1,76 +0,0 @@
-
-#ifndef BOOST_MPL_ADVANCE_HPP_INCLUDED
-#define BOOST_MPL_ADVANCE_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: advance.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/advance_fwd.hpp>
-#include <boost/mpl/less.hpp>
-#include <boost/mpl/negate.hpp>
-#include <boost/mpl/long.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/tag.hpp>
-#include <boost/mpl/apply_wrap.hpp>
-#include <boost/mpl/aux_/advance_forward.hpp>
-#include <boost/mpl/aux_/advance_backward.hpp>
-#include <boost/mpl/aux_/value_wknd.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/nttp_decl.hpp>
-
-namespace boost { namespace mpl {
-
-// default implementation for forward/bidirectional iterators
-template< typename Tag >
-struct advance_impl
-{
-    template< typename Iterator, typename N > struct apply
-    {
-        typedef typename less< N,long_<0> >::type backward_;
-        typedef typename if_< backward_, negate<N>, N >::type offset_;
-
-        typedef typename if_<
-              backward_
-            , aux::advance_backward< BOOST_MPL_AUX_VALUE_WKND(offset_)::value >
-            , aux::advance_forward< BOOST_MPL_AUX_VALUE_WKND(offset_)::value >
-            >::type f_;
-
-        typedef typename apply_wrap1<f_,Iterator>::type type;
-    };
-};
-
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(Iterator)
-    , typename BOOST_MPL_AUX_NA_PARAM(N)
-    >
-struct advance
-    : advance_impl< typename tag<Iterator>::type >
-        ::template apply<Iterator,N>
-{
-};
-
-template<
-      typename Iterator
-    , BOOST_MPL_AUX_NTTP_DECL(long, N)
-    >
-struct advance_c
-    : advance_impl< typename tag<Iterator>::type >
-        ::template apply<Iterator,long_<N> >
-{
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, advance)
-
-}}
-
-#endif // BOOST_MPL_ADVANCE_HPP_INCLUDED
diff --git a/boost/mpl/advance_fwd.hpp b/boost/mpl/advance_fwd.hpp
deleted file mode 100644
index 08ba5fc..0000000
--- a/boost/mpl/advance_fwd.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-
-#ifndef BOOST_MPL_ADVANCE_FWD_HPP_INCLUDED
-#define BOOST_MPL_ADVANCE_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: advance_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/common_name_wknd.hpp>
-
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_COMMON_NAME_WKND(advance)
-
-template< typename Tag > struct advance_impl;
-template< typename Iterator, typename N > struct advance;
-
-}}
-
-#endif // BOOST_MPL_ADVANCE_FWD_HPP_INCLUDED
diff --git a/boost/mpl/always.hpp b/boost/mpl/always.hpp
deleted file mode 100644
index 5094b3e..0000000
--- a/boost/mpl/always.hpp
+++ /dev/null
@@ -1,39 +0,0 @@
-
-#ifndef BOOST_MPL_ALWAYS_HPP_INCLUDED
-#define BOOST_MPL_ALWAYS_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: always.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/preprocessor/def_params_tail.hpp>
-#include <boost/mpl/aux_/na.hpp>
-#include <boost/mpl/aux_/arity_spec.hpp>
-
-namespace boost { namespace mpl {
-
-template< typename Value > struct always
-{
-    template<
-          typename T
-        BOOST_MPL_PP_NESTED_DEF_PARAMS_TAIL(1, typename T, na)
-        >
-    struct apply
-    {
-        typedef Value type;
-    };
-};
-
-BOOST_MPL_AUX_ARITY_SPEC(1, always)
-
-}}
-
-#endif // BOOST_MPL_ALWAYS_HPP_INCLUDED
diff --git a/boost/mpl/and.hpp b/boost/mpl/and.hpp
deleted file mode 100644
index da257c8..0000000
--- a/boost/mpl/and.hpp
+++ /dev/null
@@ -1,60 +0,0 @@
-
-#ifndef BOOST_MPL_AND_HPP_INCLUDED
-#define BOOST_MPL_AND_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: and.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-#   include <boost/mpl/bool.hpp>
-#   include <boost/mpl/aux_/nested_type_wknd.hpp>
-#   include <boost/mpl/aux_/na_spec.hpp>
-#   include <boost/mpl/aux_/lambda_support.hpp>
-
-// agurt, 19/may/04: workaround a conflict with <iso646.h> header's 
-// 'or' and 'and' macros, see http://tinyurl.com/3et69; 'defined(and)'
-// has to be checked in a separate condition, otherwise GCC complains 
-// about 'and' being an alternative token
-#if defined(_MSC_VER) 
-#ifndef __GCCXML__
-#if defined(and) 
-#   pragma push_macro("and")
-#   undef and
-#   define and(x)
-#endif
-#endif
-#endif
-
-#   define BOOST_MPL_PREPROCESSED_HEADER and.hpp
-#   include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#if defined(_MSC_VER)
-#ifndef __GCCXML__
-#if defined(and) 
-#   pragma pop_macro("and")
-#endif
-#endif
-#endif
-
-#else
-
-#   define AUX778076_OP_NAME and_
-#   define AUX778076_OP_VALUE1 false
-#   define AUX778076_OP_VALUE2 true
-#   include <boost/mpl/aux_/logical_op.hpp>
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_AND_HPP_INCLUDED
diff --git a/boost/mpl/apply.hpp b/boost/mpl/apply.hpp
deleted file mode 100644
index b0455bc..0000000
--- a/boost/mpl/apply.hpp
+++ /dev/null
@@ -1,229 +0,0 @@
-
-#if !defined(BOOST_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef BOOST_MPL_APPLY_HPP_INCLUDED
-#define BOOST_MPL_APPLY_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: apply.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-#   include <boost/mpl/apply_fwd.hpp>
-#   include <boost/mpl/apply_wrap.hpp>
-#   include <boost/mpl/placeholders.hpp>
-#   include <boost/mpl/lambda.hpp>
-#   include <boost/mpl/aux_/na.hpp>
-#   include <boost/mpl/aux_/lambda_support.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-#   define BOOST_MPL_PREPROCESSED_HEADER apply.hpp
-#   include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <boost/mpl/limits/arity.hpp>
-#   include <boost/mpl/aux_/preprocessor/params.hpp>
-#   include <boost/mpl/aux_/preprocessor/default_params.hpp>
-#   include <boost/mpl/aux_/preprocessor/partial_spec_params.hpp>
-#   include <boost/mpl/aux_/preprocessor/enum.hpp>
-#   include <boost/mpl/aux_/config/lambda.hpp>
-#   include <boost/mpl/aux_/config/dtp.hpp>
-#   include <boost/mpl/aux_/nttp_decl.hpp>
-#   include <boost/mpl/aux_/config/eti.hpp>
-#   include <boost/mpl/aux_/config/msvc.hpp>
-#   include <boost/mpl/aux_/config/workaround.hpp>
-
-#   include <boost/preprocessor/comma_if.hpp>
-#   include <boost/preprocessor/inc.hpp>
-#   include <boost/preprocessor/iterate.hpp>
-#   include <boost/preprocessor/cat.hpp>
-
-namespace boost { namespace mpl {
-
-// local macros, #undef-ined at the end of the header
-#   define AUX778076_APPLY_PARAMS(param) \
-    BOOST_MPL_PP_PARAMS( \
-          BOOST_MPL_LIMIT_METAFUNCTION_ARITY \
-        , param \
-        ) \
-    /**/
-
-#   define AUX778076_APPLY_DEF_PARAMS(param, value) \
-    BOOST_MPL_PP_DEFAULT_PARAMS( \
-          BOOST_MPL_LIMIT_METAFUNCTION_ARITY \
-        , param \
-        , value \
-        ) \
-    /**/
-
-#   define AUX778076_APPLY_N_PARAMS(n, param) \
-    BOOST_MPL_PP_PARAMS(n, param) \
-    /**/
-
-#   define AUX778076_APPLY_N_COMMA_PARAMS(n, param) \
-    BOOST_PP_COMMA_IF(n) \
-    BOOST_MPL_PP_PARAMS(n, param) \
-    /**/
-
-#   define AUX778076_APPLY_N_PARTIAL_SPEC_PARAMS(n, param, def) \
-    BOOST_PP_COMMA_IF(n) \
-    BOOST_MPL_PP_PARTIAL_SPEC_PARAMS(n, param, def) \
-    /**/
-    
-#   define AUX778076_APPLY_N_SPEC_PARAMS(n, param) \
-    BOOST_MPL_PP_ENUM(BOOST_PP_INC(n), param) \
-    /**/
-
-
-#define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, <boost/mpl/apply.hpp>))
-#include BOOST_PP_ITERATE()
-
-#   if !defined(BOOST_MPL_CFG_NO_APPLY_TEMPLATE)
-// real C++ version is already taken care of
-#   if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-namespace aux {
-// apply_count_args
-#define AUX778076_COUNT_ARGS_PREFIX apply
-#define AUX778076_COUNT_ARGS_DEFAULT na
-#define AUX778076_COUNT_ARGS_ARITY BOOST_MPL_LIMIT_METAFUNCTION_ARITY
-#include <boost/mpl/aux_/count_args.hpp>
-}
-
-
-template<
-      typename F, AUX778076_APPLY_DEF_PARAMS(typename T, na)
-    >
-struct apply
-    : aux::apply_chooser< 
-          aux::apply_count_args< AUX778076_APPLY_PARAMS(T) >::value
-        >::template result_< F, AUX778076_APPLY_PARAMS(T) >::type
-{
-};
-
-#   endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#   endif // BOOST_MPL_CFG_NO_APPLY_TEMPLATE
-
-#   undef AUX778076_APPLY_N_SPEC_PARAMS
-#   undef AUX778076_APPLY_N_PARTIAL_SPEC_PARAMS
-#   undef AUX778076_APPLY_N_COMMA_PARAMS
-#   undef AUX778076_APPLY_N_PARAMS
-#   undef AUX778076_APPLY_DEF_PARAMS
-#   undef AUX778076_APPLY_PARAMS
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_APPLY_HPP_INCLUDED
-
-///// iteration, depth == 1
-
-// For gcc 4.4 compatability, we must include the
-// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
-#else // BOOST_PP_IS_ITERATING
-#if BOOST_PP_ITERATION_DEPTH() == 1
-
-#   define i_ BOOST_PP_FRAME_ITERATION(1)
-
-template<
-      typename F AUX778076_APPLY_N_COMMA_PARAMS(i_, typename T)
-    >
-struct BOOST_PP_CAT(apply,i_)
-#if !BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-    : BOOST_PP_CAT(apply_wrap,i_)< 
-          typename lambda<F>::type
-        AUX778076_APPLY_N_COMMA_PARAMS(i_, T)
-        >
-{
-#else
-{
-    typedef typename BOOST_PP_CAT(apply_wrap,i_)< 
-          typename lambda<F>::type
-        AUX778076_APPLY_N_COMMA_PARAMS(i_, T)
-        >::type type;
-#endif
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          BOOST_PP_INC(i_)
-        , BOOST_PP_CAT(apply,i_)
-        , (F AUX778076_APPLY_N_COMMA_PARAMS(i_,T))
-        )
-};
-
-
-#if defined(BOOST_MPL_CFG_MSVC_ETI_BUG)
-/// workaround for ETI bug
-template<>
-struct BOOST_PP_CAT(apply,i_)<AUX778076_APPLY_N_SPEC_PARAMS(i_, int)>
-{
-    typedef int type;
-};
-#endif
-
-#   if !defined(BOOST_MPL_CFG_NO_APPLY_TEMPLATE)
-#   if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-#if i_ == BOOST_MPL_LIMIT_METAFUNCTION_ARITY
-/// primary template (not a specialization!)
-template<
-      typename F AUX778076_APPLY_N_COMMA_PARAMS(i_, typename T)
-    >
-struct apply
-    : BOOST_PP_CAT(apply,i_)< F AUX778076_APPLY_N_COMMA_PARAMS(i_, T) >
-{
-};
-#else
-template<
-      typename F AUX778076_APPLY_N_COMMA_PARAMS(i_, typename T)
-    >
-struct apply< F AUX778076_APPLY_N_PARTIAL_SPEC_PARAMS(i_, T, na) >
-    : BOOST_PP_CAT(apply,i_)< F AUX778076_APPLY_N_COMMA_PARAMS(i_, T) >
-{
-};
-#endif
-
-#   else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#if !defined(BOOST_MPL_CFG_NO_APPLY_TEMPLATE)
-namespace aux {
-
-template<>
-struct apply_chooser<i_>
-{
-    template<
-          typename F, AUX778076_APPLY_PARAMS(typename T)
-        >
-    struct result_
-    {
-        typedef BOOST_PP_CAT(apply,i_)<
-              F AUX778076_APPLY_N_COMMA_PARAMS(i_, T)
-            > type;
-    };
-};
-
-} // namespace aux
-#endif
-
-#   endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#   endif // BOOST_MPL_CFG_NO_APPLY_TEMPLATE
-
-#   undef i_
-
-#endif // BOOST_PP_ITERATION_DEPTH()
-#endif // BOOST_PP_IS_ITERATING
diff --git a/boost/mpl/apply_fwd.hpp b/boost/mpl/apply_fwd.hpp
deleted file mode 100644
index 8cbdfaf..0000000
--- a/boost/mpl/apply_fwd.hpp
+++ /dev/null
@@ -1,107 +0,0 @@
-
-#if !defined(BOOST_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef BOOST_MPL_APPLY_FWD_HPP_INCLUDED
-#define BOOST_MPL_APPLY_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: apply_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-#   include <boost/mpl/aux_/na.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-#   define BOOST_MPL_PREPROCESSED_HEADER apply_fwd.hpp
-#   include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <boost/mpl/limits/arity.hpp>
-#   include <boost/mpl/aux_/preprocessor/params.hpp>
-#   include <boost/mpl/aux_/preprocessor/default_params.hpp>
-#   include <boost/mpl/aux_/config/ctps.hpp>
-#   include <boost/mpl/aux_/nttp_decl.hpp>
-
-#   include <boost/preprocessor/comma_if.hpp>
-#   include <boost/preprocessor/iterate.hpp>
-#   include <boost/preprocessor/cat.hpp>
-
-// agurt, 15/jan/02: top-level 'apply' template gives an ICE on MSVC
-// (for known reasons)
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-#   define BOOST_MPL_CFG_NO_APPLY_TEMPLATE
-#endif
-
-namespace boost { namespace mpl {
-
-// local macro, #undef-ined at the end of the header
-#   define AUX778076_APPLY_DEF_PARAMS(param, value) \
-    BOOST_MPL_PP_DEFAULT_PARAMS( \
-          BOOST_MPL_LIMIT_METAFUNCTION_ARITY \
-        , param \
-        , value \
-        ) \
-    /**/
-
-#   define AUX778076_APPLY_N_COMMA_PARAMS(n, param) \
-    BOOST_PP_COMMA_IF(n) \
-    BOOST_MPL_PP_PARAMS(n, param) \
-    /**/
-
-#   if !defined(BOOST_MPL_CFG_NO_APPLY_TEMPLATE)
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-// forward declaration
-template<
-      typename F, AUX778076_APPLY_DEF_PARAMS(typename T, na)
-    >
-struct apply;
-#else
-namespace aux {
-template< BOOST_AUX_NTTP_DECL(int, arity_) > struct apply_chooser;
-}
-#endif
-
-#   endif // BOOST_MPL_CFG_NO_APPLY_TEMPLATE
-
-#define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, <boost/mpl/apply_fwd.hpp>))
-#include BOOST_PP_ITERATE()
-
-
-#   undef AUX778076_APPLY_N_COMMA_PARAMS
-#   undef AUX778076_APPLY_DEF_PARAMS
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_APPLY_FWD_HPP_INCLUDED
-
-///// iteration
-
-#else
-#define i_ BOOST_PP_FRAME_ITERATION(1)
-
-template<
-      typename F AUX778076_APPLY_N_COMMA_PARAMS(i_, typename T)
-    >
-struct BOOST_PP_CAT(apply,i_);
-
-#undef i_
-#endif // BOOST_PP_IS_ITERATING
diff --git a/boost/mpl/apply_wrap.hpp b/boost/mpl/apply_wrap.hpp
deleted file mode 100644
index 5c5c6df..0000000
--- a/boost/mpl/apply_wrap.hpp
+++ /dev/null
@@ -1,234 +0,0 @@
-
-#if !defined(BOOST_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef BOOST_MPL_APPLY_WRAP_HPP_INCLUDED
-#define BOOST_MPL_APPLY_WRAP_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2008
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: apply_wrap.hpp 49272 2008-10-11 06:50:46Z agurtovoy $
-// $Date: 2008-10-10 23:50:46 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49272 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-#   include <boost/mpl/aux_/arity.hpp>
-#   include <boost/mpl/aux_/has_apply.hpp>
-#   include <boost/mpl/aux_/na.hpp>
-#   include <boost/mpl/aux_/msvc_never_true.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-#   define BOOST_MPL_PREPROCESSED_HEADER apply_wrap.hpp
-#   include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <boost/mpl/limits/arity.hpp>
-#   include <boost/mpl/aux_/preprocessor/params.hpp>
-#   include <boost/mpl/aux_/preprocessor/enum.hpp>
-#   include <boost/mpl/aux_/preprocessor/add.hpp>
-#   include <boost/mpl/aux_/config/bcc.hpp>
-#   include <boost/mpl/aux_/config/ctps.hpp>
-#   include <boost/mpl/aux_/config/dtp.hpp>
-#   include <boost/mpl/aux_/config/eti.hpp>
-#   include <boost/mpl/aux_/config/msvc.hpp>
-#   include <boost/mpl/aux_/config/workaround.hpp>
-
-#   include <boost/preprocessor/comma_if.hpp>
-#   include <boost/preprocessor/logical/and.hpp>
-#   include <boost/preprocessor/inc.hpp>
-#   include <boost/preprocessor/iterate.hpp>
-
-
-namespace boost { namespace mpl {
-
-// local macros, #undef-ined at the end of the header
-#   define AUX778076_APPLY_WRAP_PARAMS(n, param) \
-    BOOST_MPL_PP_PARAMS(n, param) \
-    /**/
-
-#   define AUX778076_APPLY_WRAP_SPEC_PARAMS(n, param) \
-    BOOST_MPL_PP_ENUM(BOOST_PP_INC(n), param) \
-    /**/
-
-
-#define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, <boost/mpl/apply_wrap.hpp>))
-#include BOOST_PP_ITERATE()
-
-
-#   undef AUX778076_APPLY_WRAP_SPEC_PARAMS
-#   undef AUX778076_APPLY_WRAP_PARAMS
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_APPLY_WRAP_HPP_INCLUDED
-
-///// iteration, depth == 1
-
-// For gcc 4.4 compatability, we must include the
-// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
-#else // BOOST_PP_IS_ITERATING
-#if BOOST_PP_ITERATION_DEPTH() == 1
-
-#   define i_ BOOST_PP_FRAME_ITERATION(1)
-
-#   if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-// MSVC version
-
-#define AUX778076_MSVC_DTW_NAME BOOST_PP_CAT(msvc_apply,i_)
-#define AUX778076_MSVC_DTW_ORIGINAL_NAME apply
-#define AUX778076_MSVC_DTW_ARITY i_
-#include <boost/mpl/aux_/msvc_dtw.hpp>
-
-template<
-      typename F BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, typename T)
-    >
-struct BOOST_PP_CAT(apply_wrap,i_)
-{
-    // Metafunction forwarding confuses vc6
-    typedef typename BOOST_PP_CAT(msvc_apply,i_)<F>::template result_<
-          AUX778076_APPLY_WRAP_PARAMS(i_, T)
-        >::type type;
-};
-
-#   elif defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
-// MWCW/Borland version
-
-template<
-      int N, typename F BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, typename T)
-    >
-struct BOOST_PP_CAT(apply_wrap_impl,i_);
-
-#define BOOST_PP_ITERATION_PARAMS_2 \
-    (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY - i_, <boost/mpl/apply_wrap.hpp>))
-#include BOOST_PP_ITERATE()
-
-template<
-      typename F BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, typename T)
-    >
-struct BOOST_PP_CAT(apply_wrap,i_)
-    : BOOST_PP_CAT(apply_wrap_impl,i_)<
-          ::boost::mpl::aux::arity<F,i_>::value
-        , F
-        BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, T)
-        >::type
-{
-};
-
-#   else
-// ISO98 C++, with minor concession to vc7
-
-template<
-      typename F BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, typename T)
-#if i_ == 0
-    , typename has_apply_ = typename aux::has_apply<F>::type
-#endif
-    >
-struct BOOST_PP_CAT(apply_wrap,i_)
-// metafunction forwarding confuses MSVC 7.0
-#if !BOOST_WORKAROUND(BOOST_MSVC, == 1300)
-    : F::template apply< AUX778076_APPLY_WRAP_PARAMS(i_, T) >
-{
-#else
-{    
-    typedef typename F::template apply<
-         AUX778076_APPLY_WRAP_PARAMS(i_, T)
-        >::type type;
-#endif
-};
-
-#if i_ == 0 && !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-template< typename F >
-struct BOOST_PP_CAT(apply_wrap,i_)<F,true_>
-    : F::apply
-{
-};
-#endif
-
-#   endif // workarounds
-
-#if defined(BOOST_MPL_CFG_MSVC_ETI_BUG)
-/// workaround for ETI bug
-template<>
-struct BOOST_PP_CAT(apply_wrap,i_)<AUX778076_APPLY_WRAP_SPEC_PARAMS(i_, int)>
-{
-    typedef int type;
-};
-#endif
-
-#   undef i_
-
-///// iteration, depth == 2
-
-#elif BOOST_PP_ITERATION_DEPTH() == 2
-
-#   define j_ BOOST_PP_FRAME_ITERATION(2)
-
-#if i_ == 0 && j_ == 0 \
-    && defined(BOOST_MPL_CFG_BCC590_WORKAROUNDS) \
-    && !defined(BOOST_MPL_CFG_NO_HAS_APPLY)
-
-template< typename F, bool F_has_apply >
-struct apply_wrap_impl0_bcb {
-    typedef typename F::template apply< na > type;
-};
-
-template< typename F >
-struct apply_wrap_impl0_bcb< F, true > {
-    typedef typename F::apply type;
-};
-
-template<
-      typename F BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, typename T)
-    >
-struct BOOST_PP_CAT(apply_wrap_impl,i_)<
-          BOOST_MPL_PP_ADD(i_, j_)
-        , F
-        BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, T)
-        >
-{
-    typedef apply_wrap_impl0_bcb< F, aux::has_apply< F >::value >::type type;
-};
-#else
-
-template<
-      typename F BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, typename T)
-    >
-struct BOOST_PP_CAT(apply_wrap_impl,i_)<
-          BOOST_MPL_PP_ADD(i_, j_)
-        , F
-        BOOST_PP_COMMA_IF(i_) AUX778076_APPLY_WRAP_PARAMS(i_, T)
-        >
-{
-    typedef typename F::template apply<
-          AUX778076_APPLY_WRAP_PARAMS(i_, T)
-#if i_ == 0 && j_ == 0
-/// since the defaults are "lost", we have to pass *something* even for nullary
-/// metafunction classes
-        na
-#else
-        BOOST_PP_COMMA_IF(BOOST_PP_AND(i_, j_)) BOOST_MPL_PP_ENUM(j_, na)
-#endif
-        > type;
-};
-
-#endif
-
-#   undef j_
-
-#endif // BOOST_PP_ITERATION_DEPTH()
-#endif // BOOST_PP_IS_ITERATING
diff --git a/boost/mpl/arg.hpp b/boost/mpl/arg.hpp
deleted file mode 100644
index c323a1a..0000000
--- a/boost/mpl/arg.hpp
+++ /dev/null
@@ -1,131 +0,0 @@
-
-#if !defined(BOOST_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef BOOST_MPL_ARG_HPP_INCLUDED
-#define BOOST_MPL_ARG_HPP_INCLUDED
-
-// Copyright Peter Dimov 2001-2002
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: arg.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-#   include <boost/mpl/arg_fwd.hpp>
-#   include <boost/mpl/aux_/na.hpp>
-#   include <boost/mpl/aux_/na_assert.hpp>
-#   include <boost/mpl/aux_/arity_spec.hpp>
-#   include <boost/mpl/aux_/arg_typedef.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/static_constant.hpp>
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-#   define BOOST_MPL_PREPROCESSED_HEADER arg.hpp
-#   include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <boost/mpl/limits/arity.hpp>
-#   include <boost/mpl/aux_/preprocessor/default_params.hpp>
-#   include <boost/mpl/aux_/preprocessor/params.hpp>
-#   include <boost/mpl/aux_/config/lambda.hpp>
-#   include <boost/mpl/aux_/config/dtp.hpp>
-#   include <boost/mpl/aux_/nttp_decl.hpp>
-
-#   include <boost/preprocessor/iterate.hpp>
-#   include <boost/preprocessor/inc.hpp>
-#   include <boost/preprocessor/cat.hpp>
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-
-// local macro, #undef-ined at the end of the header
-#if !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
-#   define AUX778076_ARG_N_DEFAULT_PARAMS(param,value) \
-    BOOST_MPL_PP_DEFAULT_PARAMS( \
-          BOOST_MPL_LIMIT_METAFUNCTION_ARITY \
-        , param \
-        , value \
-        ) \
-    /**/
-#else
-#   define AUX778076_ARG_N_DEFAULT_PARAMS(param,value) \
-    BOOST_MPL_PP_PARAMS( \
-          BOOST_MPL_LIMIT_METAFUNCTION_ARITY \
-        , param \
-        ) \
-    /**/
-#endif
-
-#define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, <boost/mpl/arg.hpp>))
-#include BOOST_PP_ITERATE()
-
-
-#   undef AUX778076_ARG_N_DEFAULT_PARAMS
-
-BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int,arg)
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_ARG_HPP_INCLUDED
-
-///// iteration
-
-#else
-#define i_ BOOST_PP_FRAME_ITERATION(1)
-
-#if i_ > 0
-
-template<> struct arg<i_>
-{
-    BOOST_STATIC_CONSTANT(int, value = i_);
-    typedef arg<BOOST_PP_INC(i_)> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          AUX778076_ARG_N_DEFAULT_PARAMS(typename U, na)
-        >
-    struct apply
-    {
-        typedef BOOST_PP_CAT(U,i_) type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-#else
-
-template<> struct arg<-1>
-{
-    BOOST_STATIC_CONSTANT(int, value = -1);
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          AUX778076_ARG_N_DEFAULT_PARAMS(typename U, na)
-        >
-    struct apply
-    {
-        typedef U1 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-#endif // i_ > 0
-
-#undef i_
-#endif // BOOST_PP_IS_ITERATING
diff --git a/boost/mpl/arg_fwd.hpp b/boost/mpl/arg_fwd.hpp
deleted file mode 100644
index f79e056..0000000
--- a/boost/mpl/arg_fwd.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-
-#ifndef BOOST_MPL_ARG_FWD_HPP_INCLUDED
-#define BOOST_MPL_ARG_FWD_HPP_INCLUDED
-
-// Copyright Peter Dimov 2001-2002
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: arg_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/adl_barrier.hpp>
-#include <boost/mpl/aux_/nttp_decl.hpp>
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-
-template< BOOST_MPL_AUX_NTTP_DECL(int, N) > struct arg;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-BOOST_MPL_AUX_ADL_BARRIER_DECL(arg)
-
-#endif // BOOST_MPL_ARG_FWD_HPP_INCLUDED
diff --git a/boost/mpl/assert.hpp b/boost/mpl/assert.hpp
deleted file mode 100644
index 7a5818e..0000000
--- a/boost/mpl/assert.hpp
+++ /dev/null
@@ -1,438 +0,0 @@
-
-#ifndef BOOST_MPL_ASSERT_HPP_INCLUDED
-#define BOOST_MPL_ASSERT_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2006
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: assert.hpp 86514 2013-10-29 13:15:03Z bemandawes $
-// $Date: 2013-10-29 06:15:03 -0700 (Tue, 29 Oct 2013) $
-// $Revision: 86514 $
-
-#include <boost/mpl/not.hpp>
-#include <boost/mpl/aux_/value_wknd.hpp>
-#include <boost/mpl/aux_/nested_type_wknd.hpp>
-#include <boost/mpl/aux_/yes_no.hpp>
-#include <boost/mpl/aux_/na.hpp>
-#include <boost/mpl/aux_/adl_barrier.hpp>
-
-#include <boost/mpl/aux_/config/nttp.hpp>
-#include <boost/mpl/aux_/config/dtp.hpp>
-#include <boost/mpl/aux_/config/gcc.hpp>
-#include <boost/mpl/aux_/config/msvc.hpp>
-#include <boost/mpl/aux_/config/static_constant.hpp>
-#include <boost/mpl/aux_/config/pp_counter.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#include <boost/preprocessor/cat.hpp>
-
-#include <boost/config.hpp> // make sure 'size_t' is placed into 'std'
-#include <cstddef>
-
-#if BOOST_WORKAROUND(BOOST_MSVC, == 1700)
-#include <boost/mpl/if.hpp>
-#endif
-
-#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \
-    || (BOOST_MPL_CFG_GCC != 0) \
-    || BOOST_WORKAROUND(__IBMCPP__, <= 600)
-#   define BOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES
-#endif
-
-#if BOOST_WORKAROUND(__MWERKS__, < 0x3202) \
-    || BOOST_WORKAROUND(__EDG_VERSION__, <= 238) \
-    || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \
-    || BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
-#   define BOOST_MPL_CFG_ASSERT_BROKEN_POINTER_TO_POINTER_TO_MEMBER
-#endif
-
-// agurt, 10/nov/06: use enums for Borland (which cannot cope with static constants) 
-// and GCC (which issues "unused variable" warnings when static constants are used 
-// at a function scope)
-#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \
-    || (BOOST_MPL_CFG_GCC != 0)
-#   define BOOST_MPL_AUX_ASSERT_CONSTANT(T, expr) enum { expr }
-#else
-#   define BOOST_MPL_AUX_ASSERT_CONSTANT(T, expr) BOOST_STATIC_CONSTANT(T, expr)
-#endif
-
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-
-struct failed {};
-
-// agurt, 24/aug/04: MSVC 7.1 workaround here and below: return/accept 
-// 'assert<false>' by reference; can't apply it unconditionally -- apparently it
-// degrades the quality of GCC diagnostics
-#if BOOST_WORKAROUND(BOOST_MSVC, == 1310)
-#   define AUX778076_ASSERT_ARG(x) x&
-#else
-#   define AUX778076_ASSERT_ARG(x) x
-#endif
-
-template< bool C >  struct assert        { typedef void* type; };
-template<>          struct assert<false> { typedef AUX778076_ASSERT_ARG(assert) type; };
-
-template< bool C >
-int assertion_failed( typename assert<C>::type );
-
-template< bool C >
-struct assertion
-{
-    static int failed( assert<false> );
-};
-
-template<>
-struct assertion<true>
-{
-    static int failed( void* );
-};
-
-struct assert_
-{
-#if !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
-    template< typename T1, typename T2 = na, typename T3 = na, typename T4 = na > struct types {};
-#endif
-    static assert_ const arg;
-    enum relations { equal = 1, not_equal, greater, greater_equal, less, less_equal };
-};
-
-
-#if !defined(BOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES)
-
-bool operator==( failed, failed );
-bool operator!=( failed, failed );
-bool operator>( failed, failed );
-bool operator>=( failed, failed );
-bool operator<( failed, failed );
-bool operator<=( failed, failed );
-
-#if defined(__EDG_VERSION__)
-template< bool (*)(failed, failed), long x, long y > struct assert_relation {};
-#   define BOOST_MPL_AUX_ASSERT_RELATION(x, y, r) assert_relation<r,x,y>
-#else
-template< BOOST_MPL_AUX_NTTP_DECL(long, x), BOOST_MPL_AUX_NTTP_DECL(long, y), bool (*)(failed, failed) > 
-struct assert_relation {};
-#   define BOOST_MPL_AUX_ASSERT_RELATION(x, y, r) assert_relation<x,y,r>
-#endif
-
-#else // BOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES
-
-boost::mpl::aux::weighted_tag<1>::type operator==( assert_, assert_ );
-boost::mpl::aux::weighted_tag<2>::type operator!=( assert_, assert_ );
-boost::mpl::aux::weighted_tag<3>::type operator>(  assert_, assert_ );
-boost::mpl::aux::weighted_tag<4>::type operator>=( assert_, assert_ );
-boost::mpl::aux::weighted_tag<5>::type operator<( assert_, assert_ );
-boost::mpl::aux::weighted_tag<6>::type operator<=( assert_, assert_ );
-
-template< assert_::relations r, long x, long y > struct assert_relation {};
-
-#endif 
-
-#if BOOST_WORKAROUND(BOOST_MSVC, == 1700)
-
-template<class Pred>
-struct extract_assert_pred;
-
-template<class Pred>
-struct extract_assert_pred<void(Pred)> { typedef Pred type; };
-
-template<class Pred>
-struct eval_assert {
-    typedef typename extract_assert_pred<Pred>::type P;
-    typedef typename P::type p_type;
-    typedef typename ::boost::mpl::if_c<p_type::value,
-        AUX778076_ASSERT_ARG(assert<false>),
-        failed ************ P::************
-    >::type type;
-};
-
-template<class Pred>
-struct eval_assert_not {
-    typedef typename extract_assert_pred<Pred>::type P;
-    typedef typename P::type p_type;
-    typedef typename ::boost::mpl::if_c<!p_type::value,
-        AUX778076_ASSERT_ARG(assert<false>),
-        failed ************ ::boost::mpl::not_<P>::************
-    >::type type;
-};
-
-template< typename T >
-T make_assert_arg();
-
-#elif !defined(BOOST_MPL_CFG_ASSERT_BROKEN_POINTER_TO_POINTER_TO_MEMBER)
-
-template< bool > struct assert_arg_pred_impl { typedef int type; };
-template<> struct assert_arg_pred_impl<true> { typedef void* type; };
-
-template< typename P > struct assert_arg_pred
-{
-    typedef typename P::type p_type;
-    typedef typename assert_arg_pred_impl< p_type::value >::type type;
-};
-
-template< typename P > struct assert_arg_pred_not
-{
-    typedef typename P::type p_type;
-    BOOST_MPL_AUX_ASSERT_CONSTANT( bool, p = !p_type::value );
-    typedef typename assert_arg_pred_impl<p>::type type;
-};
-
-template< typename Pred >
-failed ************ (Pred::************ 
-      assert_arg( void (*)(Pred), typename assert_arg_pred<Pred>::type )
-    );
-
-template< typename Pred >
-failed ************ (boost::mpl::not_<Pred>::************ 
-      assert_not_arg( void (*)(Pred), typename assert_arg_pred_not<Pred>::type )
-    );
-
-template< typename Pred >
-AUX778076_ASSERT_ARG(assert<false>)
-assert_arg( void (*)(Pred), typename assert_arg_pred_not<Pred>::type );
-
-template< typename Pred >
-AUX778076_ASSERT_ARG(assert<false>)
-assert_not_arg( void (*)(Pred), typename assert_arg_pred<Pred>::type );
-
-
-#else // BOOST_MPL_CFG_ASSERT_BROKEN_POINTER_TO_POINTER_TO_MEMBER
-        
-template< bool c, typename Pred > struct assert_arg_type_impl
-{
-    typedef failed      ************ Pred::* mwcw83_wknd;
-    typedef mwcw83_wknd ************* type;
-};
-
-template< typename Pred > struct assert_arg_type_impl<true,Pred>
-{
-    typedef AUX778076_ASSERT_ARG(assert<false>) type;
-};
-
-template< typename Pred > struct assert_arg_type
-    : assert_arg_type_impl< BOOST_MPL_AUX_VALUE_WKND(BOOST_MPL_AUX_NESTED_TYPE_WKND(Pred))::value, Pred >
-{
-};
-
-template< typename Pred >
-typename assert_arg_type<Pred>::type 
-assert_arg(void (*)(Pred), int);
-
-template< typename Pred >
-typename assert_arg_type< boost::mpl::not_<Pred> >::type 
-assert_not_arg(void (*)(Pred), int);
-
-#   if !defined(BOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES)
-template< long x, long y, bool (*r)(failed, failed) >
-typename assert_arg_type_impl< false,BOOST_MPL_AUX_ASSERT_RELATION(x,y,r) >::type
-assert_rel_arg( BOOST_MPL_AUX_ASSERT_RELATION(x,y,r) );
-#   else
-template< assert_::relations r, long x, long y >
-typename assert_arg_type_impl< false,assert_relation<r,x,y> >::type
-assert_rel_arg( assert_relation<r,x,y> );
-#   endif
-
-#endif // BOOST_MPL_CFG_ASSERT_BROKEN_POINTER_TO_POINTER_TO_MEMBER
-
-#undef AUX778076_ASSERT_ARG
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-
-#if BOOST_WORKAROUND(BOOST_MSVC, == 1700)
-
-// BOOST_MPL_ASSERT((pred<x,...>))
-
-#define BOOST_MPL_ASSERT(pred) \
-BOOST_MPL_AUX_ASSERT_CONSTANT( \
-      std::size_t \
-    , BOOST_PP_CAT(mpl_assertion_in_line_,BOOST_MPL_AUX_PP_COUNTER()) = sizeof( \
-          boost::mpl::assertion_failed<false>( \
-              boost::mpl::make_assert_arg< \
-                  typename boost::mpl::eval_assert<void pred>::type \
-                >() \
-            ) \
-        ) \
-    ) \
-/**/
-
-// BOOST_MPL_ASSERT_NOT((pred<x,...>))
-
-#define BOOST_MPL_ASSERT_NOT(pred) \
-BOOST_MPL_AUX_ASSERT_CONSTANT( \
-      std::size_t \
-    , BOOST_PP_CAT(mpl_assertion_in_line_,BOOST_MPL_AUX_PP_COUNTER()) = sizeof( \
-          boost::mpl::assertion_failed<false>( \
-              boost::mpl::make_assert_arg< \
-                  typename boost::mpl::eval_assert_not<void pred>::type \
-                >() \
-            ) \
-        ) \
-    ) \
-/**/
-
-#else
-
-// BOOST_MPL_ASSERT((pred<x,...>))
-
-#define BOOST_MPL_ASSERT(pred) \
-BOOST_MPL_AUX_ASSERT_CONSTANT( \
-      std::size_t \
-    , BOOST_PP_CAT(mpl_assertion_in_line_,BOOST_MPL_AUX_PP_COUNTER()) = sizeof( \
-          boost::mpl::assertion_failed<false>( \
-              boost::mpl::assert_arg( (void (*) pred)0, 1 ) \
-            ) \
-        ) \
-    ) \
-/**/
-
-// BOOST_MPL_ASSERT_NOT((pred<x,...>))
-
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
-#   define BOOST_MPL_ASSERT_NOT(pred) \
-enum { \
-      BOOST_PP_CAT(mpl_assertion_in_line_,BOOST_MPL_AUX_PP_COUNTER()) = sizeof( \
-          boost::mpl::assertion<false>::failed( \
-              boost::mpl::assert_not_arg( (void (*) pred)0, 1 ) \
-            ) \
-        ) \
-}\
-/**/
-#else
-#   define BOOST_MPL_ASSERT_NOT(pred) \
-BOOST_MPL_AUX_ASSERT_CONSTANT( \
-      std::size_t \
-    , BOOST_PP_CAT(mpl_assertion_in_line_,BOOST_MPL_AUX_PP_COUNTER()) = sizeof( \
-          boost::mpl::assertion_failed<false>( \
-              boost::mpl::assert_not_arg( (void (*) pred)0, 1 ) \
-            ) \
-        ) \
-   ) \
-/**/
-#endif
-
-#endif
-
-// BOOST_MPL_ASSERT_RELATION(x, ==|!=|<=|<|>=|>, y)
-
-#if defined(BOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES)
-
-#   if !defined(BOOST_MPL_CFG_ASSERT_BROKEN_POINTER_TO_POINTER_TO_MEMBER)
-// agurt, 9/nov/06: 'enum' below is a workaround for gcc 4.0.4/4.1.1 bugs #29522 and #29518
-#   define BOOST_MPL_ASSERT_RELATION_IMPL(counter, x, rel, y)      \
-enum { BOOST_PP_CAT(mpl_assert_rel_value,counter) = (x rel y) }; \
-BOOST_MPL_AUX_ASSERT_CONSTANT( \
-      std::size_t \
-    , BOOST_PP_CAT(mpl_assertion_in_line_,counter) = sizeof( \
-        boost::mpl::assertion_failed<BOOST_PP_CAT(mpl_assert_rel_value,counter)>( \
-            (boost::mpl::failed ************ ( boost::mpl::assert_relation< \
-                  boost::mpl::assert_::relations( sizeof( \
-                      boost::mpl::assert_::arg rel boost::mpl::assert_::arg \
-                    ) ) \
-                , x \
-                , y \
-                >::************)) 0 ) \
-        ) \
-    ) \
-/**/
-#   else
-#   define BOOST_MPL_ASSERT_RELATION_IMPL(counter, x, rel, y)    \
-BOOST_MPL_AUX_ASSERT_CONSTANT( \
-      std::size_t \
-    , BOOST_PP_CAT(mpl_assert_rel,counter) = sizeof( \
-          boost::mpl::assert_::arg rel boost::mpl::assert_::arg \
-        ) \
-    ); \
-BOOST_MPL_AUX_ASSERT_CONSTANT( bool, BOOST_PP_CAT(mpl_assert_rel_value,counter) = (x rel y) ); \
-BOOST_MPL_AUX_ASSERT_CONSTANT( \
-      std::size_t \
-    , BOOST_PP_CAT(mpl_assertion_in_line_,counter) = sizeof( \
-        boost::mpl::assertion_failed<BOOST_PP_CAT(mpl_assert_rel_value,counter)>( \
-              boost::mpl::assert_rel_arg( boost::mpl::assert_relation< \
-                  boost::mpl::assert_::relations(BOOST_PP_CAT(mpl_assert_rel,counter)) \
-                , x \
-                , y \
-                >() ) \
-            ) \
-        ) \
-    ) \
-/**/
-#   endif
-
-#   define BOOST_MPL_ASSERT_RELATION(x, rel, y) \
-BOOST_MPL_ASSERT_RELATION_IMPL(BOOST_MPL_AUX_PP_COUNTER(), x, rel, y) \
-/**/
-
-#else // !BOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES
-
-#   if defined(BOOST_MPL_CFG_ASSERT_BROKEN_POINTER_TO_POINTER_TO_MEMBER)
-#   define BOOST_MPL_ASSERT_RELATION(x, rel, y) \
-BOOST_MPL_AUX_ASSERT_CONSTANT( \
-      std::size_t \
-    , BOOST_PP_CAT(mpl_assertion_in_line_,BOOST_MPL_AUX_PP_COUNTER()) = sizeof( \
-        boost::mpl::assertion_failed<(x rel y)>( boost::mpl::assert_rel_arg( \
-              boost::mpl::BOOST_MPL_AUX_ASSERT_RELATION(x,y,(&boost::mpl::operator rel))() \
-            ) ) \
-        ) \
-    ) \
-/**/
-#   else
-#   define BOOST_MPL_ASSERT_RELATION(x, rel, y) \
-BOOST_MPL_AUX_ASSERT_CONSTANT( \
-      std::size_t \
-    , BOOST_PP_CAT(mpl_assertion_in_line_,BOOST_MPL_AUX_PP_COUNTER()) = sizeof( \
-        boost::mpl::assertion_failed<(x rel y)>( (boost::mpl::failed ************ ( \
-            boost::mpl::BOOST_MPL_AUX_ASSERT_RELATION(x,y,(&boost::mpl::operator rel))::************))0 ) \
-        ) \
-    ) \
-/**/
-#   endif
-
-#endif
-
-
-// BOOST_MPL_ASSERT_MSG( (pred<x,...>::value), USER_PROVIDED_MESSAGE, (types<x,...>) ) 
-
-#if BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3202))
-#   define BOOST_MPL_ASSERT_MSG_IMPL( counter, c, msg, types_ ) \
-struct msg; \
-typedef struct BOOST_PP_CAT(msg,counter) : boost::mpl::assert_ \
-{ \
-    using boost::mpl::assert_::types; \
-    static boost::mpl::failed ************ (msg::************ assert_arg()) types_ \
-    { return 0; } \
-} BOOST_PP_CAT(mpl_assert_arg,counter); \
-BOOST_MPL_AUX_ASSERT_CONSTANT( \
-      std::size_t \
-    , BOOST_PP_CAT(mpl_assertion_in_line_,counter) = sizeof( \
-        boost::mpl::assertion<(c)>::failed( BOOST_PP_CAT(mpl_assert_arg,counter)::assert_arg() ) \
-        ) \
-    ) \
-/**/
-#else
-#   define BOOST_MPL_ASSERT_MSG_IMPL( counter, c, msg, types_ )  \
-struct msg; \
-typedef struct BOOST_PP_CAT(msg,counter) : boost::mpl::assert_ \
-{ \
-    static boost::mpl::failed ************ (msg::************ assert_arg()) types_ \
-    { return 0; } \
-} BOOST_PP_CAT(mpl_assert_arg,counter); \
-BOOST_MPL_AUX_ASSERT_CONSTANT( \
-      std::size_t \
-    , BOOST_PP_CAT(mpl_assertion_in_line_,counter) = sizeof( \
-        boost::mpl::assertion_failed<(c)>( BOOST_PP_CAT(mpl_assert_arg,counter)::assert_arg() ) \
-        ) \
-    ) \
-/**/
-#endif
-
-#define BOOST_MPL_ASSERT_MSG( c, msg, types_ ) \
-BOOST_MPL_ASSERT_MSG_IMPL( BOOST_MPL_AUX_PP_COUNTER(), c, msg, types_ ) \
-/**/
-
-#endif // BOOST_MPL_ASSERT_HPP_INCLUDED
diff --git a/boost/mpl/at.hpp b/boost/mpl/at.hpp
deleted file mode 100644
index d247d71..0000000
--- a/boost/mpl/at.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-
-#ifndef BOOST_MPL_AT_HPP_INCLUDED
-#define BOOST_MPL_AT_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: at.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/at_fwd.hpp>
-#include <boost/mpl/aux_/at_impl.hpp>
-#include <boost/mpl/long.hpp>
-#include <boost/mpl/sequence_tag.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-#include <boost/mpl/aux_/nttp_decl.hpp>
-
-namespace boost { namespace mpl {
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(Sequence)
-    , typename BOOST_MPL_AUX_NA_PARAM(N)
-    >
-struct at
-    : at_impl< typename sequence_tag<Sequence>::type >
-        ::template apply< Sequence,N >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2,at,(Sequence,N))
-};
-
-template<
-      typename Sequence
-    , BOOST_MPL_AUX_NTTP_DECL(long, N)
-    >
-struct at_c
-    : at_impl< typename sequence_tag<Sequence>::type >
-        ::template apply< Sequence,mpl::long_<N> >
-{
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, at)
-
-}}
-
-#endif // BOOST_MPL_AT_HPP_INCLUDED
diff --git a/boost/mpl/at_fwd.hpp b/boost/mpl/at_fwd.hpp
deleted file mode 100644
index a4825f0..0000000
--- a/boost/mpl/at_fwd.hpp
+++ /dev/null
@@ -1,24 +0,0 @@
-
-#ifndef BOOST_MPL_AT_FWD_HPP_INCLUDED
-#define BOOST_MPL_AT_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: at_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-namespace boost { namespace mpl {
-
-template< typename Tag > struct at_impl;
-template< typename Sequence, typename N > struct at;
-
-}}
-
-#endif // BOOST_MPL_AT_FWD_HPP_INCLUDED
diff --git a/boost/mpl/aux_/O1_size_impl.hpp b/boost/mpl/aux_/O1_size_impl.hpp
deleted file mode 100644
index 614730d..0000000
--- a/boost/mpl/aux_/O1_size_impl.hpp
+++ /dev/null
@@ -1,87 +0,0 @@
-
-#ifndef BOOST_MPL_O1_SIZE_IMPL_HPP_INCLUDED
-#define BOOST_MPL_O1_SIZE_IMPL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: O1_size_impl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/O1_size_fwd.hpp>
-#include <boost/mpl/long.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/aux_/has_size.hpp>
-#include <boost/mpl/aux_/config/forwarding.hpp>
-#include <boost/mpl/aux_/config/static_constant.hpp>
-#include <boost/mpl/aux_/config/msvc.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-namespace boost { namespace mpl {
-
-// default implementation - returns 'Sequence::size' if sequence has a 'size'
-// member, and -1 otherwise; conrete sequences might override it by 
-// specializing either the 'O1_size_impl' or the primary 'O1_size' template
-
-#   if !BOOST_WORKAROUND(BOOST_MSVC, < 1300) \
-    && !BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3003))
-
-namespace aux {
-template< typename Sequence > struct O1_size_impl
-    : Sequence::size
-{
-};
-}
-
-template< typename Tag >
-struct O1_size_impl
-{
-    template< typename Sequence > struct apply
-#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING)
-        : if_<
-              aux::has_size<Sequence>
-            , aux::O1_size_impl<Sequence>
-            , long_<-1>
-            >::type
-    {
-#else
-    {
-        typedef typename if_<
-              aux::has_size<Sequence>
-            , aux::O1_size_impl<Sequence>
-            , long_<-1>
-            >::type type;
-
-        BOOST_STATIC_CONSTANT(long, value =
-              (if_<
-                  aux::has_size<Sequence>
-                , aux::O1_size_impl<Sequence>
-                , long_<-1>
-                >::type::value)
-            );
-#endif
-    };
-};
-
-#   else // BOOST_MSVC
-
-template< typename Tag >
-struct O1_size_impl
-{
-    template< typename Sequence > struct apply
-        : long_<-1>
-        {
-        };
-};
-
-#   endif
-
-}}
-
-#endif // BOOST_MPL_O1_SIZE_IMPL_HPP_INCLUDED
diff --git a/boost/mpl/aux_/adl_barrier.hpp b/boost/mpl/aux_/adl_barrier.hpp
deleted file mode 100644
index 077f46f..0000000
--- a/boost/mpl/aux_/adl_barrier.hpp
+++ /dev/null
@@ -1,48 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_ADL_BARRIER_HPP_INCLUDED
-#define BOOST_MPL_AUX_ADL_BARRIER_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: adl_barrier.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/config/adl.hpp>
-#include <boost/mpl/aux_/config/gcc.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_ADL_BARRIER_NAMESPACE)
-
-#   define BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE mpl_
-#   define BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN namespace mpl_ {
-#   define BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE }
-#   define BOOST_MPL_AUX_ADL_BARRIER_DECL(type) \
-    namespace boost { namespace mpl { \
-    using ::BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::type; \
-    } } \
-/**/
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-namespace BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE { namespace aux {} }
-namespace boost { namespace mpl { using namespace BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE; 
-namespace aux { using namespace BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::aux; }
-}}
-#endif
-
-#else // BOOST_MPL_CFG_NO_ADL_BARRIER_NAMESPACE
-
-#   define BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE boost::mpl
-#   define BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN namespace boost { namespace mpl {
-#   define BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE }}
-#   define BOOST_MPL_AUX_ADL_BARRIER_DECL(type) /**/
-
-#endif
-
-#endif // BOOST_MPL_AUX_ADL_BARRIER_HPP_INCLUDED
diff --git a/boost/mpl/aux_/advance_backward.hpp b/boost/mpl/aux_/advance_backward.hpp
deleted file mode 100644
index d44c59f..0000000
--- a/boost/mpl/aux_/advance_backward.hpp
+++ /dev/null
@@ -1,128 +0,0 @@
-
-#if !defined(BOOST_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef BOOST_MPL_AUX778076_ADVANCE_BACKWARD_HPP_INCLUDED
-#define BOOST_MPL_AUX778076_ADVANCE_BACKWARD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: advance_backward.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-#   include <boost/mpl/prior.hpp>
-#   include <boost/mpl/apply_wrap.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if    !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-#   define BOOST_MPL_PREPROCESSED_HEADER advance_backward.hpp
-#   include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <boost/mpl/limits/unrolling.hpp>
-#   include <boost/mpl/aux_/nttp_decl.hpp>
-#   include <boost/mpl/aux_/config/eti.hpp>
-
-#   include <boost/preprocessor/iterate.hpp>
-#   include <boost/preprocessor/cat.hpp>
-#   include <boost/preprocessor/inc.hpp>
-
-namespace boost { namespace mpl { namespace aux {
-
-// forward declaration
-template< BOOST_MPL_AUX_NTTP_DECL(long, N) > struct advance_backward;
-
-#   define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(0, BOOST_MPL_LIMIT_UNROLLING, <boost/mpl/aux_/advance_backward.hpp>))
-#   include BOOST_PP_ITERATE()
-
-// implementation for N that exceeds BOOST_MPL_LIMIT_UNROLLING
-template< BOOST_MPL_AUX_NTTP_DECL(long, N) >
-struct advance_backward
-{
-    template< typename Iterator > struct apply
-    {
-        typedef typename apply_wrap1<
-              advance_backward<BOOST_MPL_LIMIT_UNROLLING>
-            , Iterator
-            >::type chunk_result_;
-
-        typedef typename apply_wrap1<
-              advance_backward<(
-                (N - BOOST_MPL_LIMIT_UNROLLING) < 0
-                    ? 0
-                    : N - BOOST_MPL_LIMIT_UNROLLING
-                    )>
-            , chunk_result_
-            >::type type;
-    };
-};
-
-}}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_AUX778076_ADVANCE_BACKWARD_HPP_INCLUDED
-
-///// iteration, depth == 1
-
-// For gcc 4.4 compatability, we must include the
-// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
-#else // BOOST_PP_IS_ITERATING
-#if BOOST_PP_ITERATION_DEPTH() == 1
-#define i_ BOOST_PP_FRAME_ITERATION(1)
-
-template<>
-struct advance_backward< BOOST_PP_FRAME_ITERATION(1) >
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-
-#if i_ > 0
-#   define BOOST_PP_ITERATION_PARAMS_2 \
-    (3,(1, BOOST_PP_FRAME_ITERATION(1), <boost/mpl/aux_/advance_backward.hpp>))
-#   include BOOST_PP_ITERATE()
-#endif
-
-        typedef BOOST_PP_CAT(iter,BOOST_PP_FRAME_ITERATION(1)) type;
-    };
-
-#if defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG)
-    /// ETI workaround
-    template<> struct apply<int>
-    {
-        typedef int type;
-    };
-#endif
-};
-
-#undef i_
-
-///// iteration, depth == 2
-
-#elif BOOST_PP_ITERATION_DEPTH() == 2
-
-#   define AUX778076_ITER_0 BOOST_PP_CAT(iter,BOOST_PP_DEC(BOOST_PP_FRAME_ITERATION(2)))
-#   define AUX778076_ITER_1 BOOST_PP_CAT(iter,BOOST_PP_FRAME_ITERATION(2))
-
-        typedef typename prior<AUX778076_ITER_0>::type AUX778076_ITER_1;
-        
-#   undef AUX778076_ITER_1
-#   undef AUX778076_ITER_0
-
-#endif // BOOST_PP_ITERATION_DEPTH()
-#endif // BOOST_PP_IS_ITERATING
diff --git a/boost/mpl/aux_/advance_forward.hpp b/boost/mpl/aux_/advance_forward.hpp
deleted file mode 100644
index 4edd3ea..0000000
--- a/boost/mpl/aux_/advance_forward.hpp
+++ /dev/null
@@ -1,127 +0,0 @@
-
-#if !defined(BOOST_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef BOOST_MPL_AUX_ADVANCE_FORWARD_HPP_INCLUDED
-#define BOOST_MPL_AUX_ADVANCE_FORWARD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: advance_forward.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-#   include <boost/mpl/next.hpp>
-#   include <boost/mpl/apply_wrap.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if    !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-#   define BOOST_MPL_PREPROCESSED_HEADER advance_forward.hpp
-#   include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <boost/mpl/limits/unrolling.hpp>
-#   include <boost/mpl/aux_/nttp_decl.hpp>
-#   include <boost/mpl/aux_/config/eti.hpp>
-
-#   include <boost/preprocessor/iterate.hpp>
-#   include <boost/preprocessor/cat.hpp>
-#   include <boost/preprocessor/inc.hpp>
-
-namespace boost { namespace mpl { namespace aux {
-
-// forward declaration
-template< BOOST_MPL_AUX_NTTP_DECL(long, N) > struct advance_forward;
-
-#   define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(0, BOOST_MPL_LIMIT_UNROLLING, <boost/mpl/aux_/advance_forward.hpp>))
-#   include BOOST_PP_ITERATE()
-
-// implementation for N that exceeds BOOST_MPL_LIMIT_UNROLLING
-template< BOOST_MPL_AUX_NTTP_DECL(long, N) > 
-struct advance_forward
-{
-    template< typename Iterator > struct apply
-    {
-        typedef typename apply_wrap1<
-              advance_forward<BOOST_MPL_LIMIT_UNROLLING>
-            , Iterator
-            >::type chunk_result_;
-
-        typedef typename apply_wrap1<
-              advance_forward<(
-                (N - BOOST_MPL_LIMIT_UNROLLING) < 0
-                    ? 0
-                    : N - BOOST_MPL_LIMIT_UNROLLING
-                    )>
-            , chunk_result_
-            >::type type;
-    };
-};
-
-}}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_AUX_ADVANCE_FORWARD_HPP_INCLUDED
-
-///// iteration, depth == 1
-
-// For gcc 4.4 compatability, we must include the
-// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
-#else // BOOST_PP_IS_ITERATING
-#if BOOST_PP_ITERATION_DEPTH() == 1
-#define i_ BOOST_PP_FRAME_ITERATION(1)
-
-template<>
-struct advance_forward< BOOST_PP_FRAME_ITERATION(1) >
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-
-#if i_ > 0
-#   define BOOST_PP_ITERATION_PARAMS_2 \
-    (3,(1, i_, <boost/mpl/aux_/advance_forward.hpp>))
-#   include BOOST_PP_ITERATE()
-#endif
-        typedef BOOST_PP_CAT(iter,i_) type;
-    };
-
-#if defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG)
-    /// ETI workaround
-    template<> struct apply<int>
-    {
-        typedef int type;
-    };
-#endif
-};
-
-#undef i_
-
-///// iteration, depth == 2
-
-#elif BOOST_PP_ITERATION_DEPTH() == 2
-
-#   define AUX778076_ITER_0 BOOST_PP_CAT(iter,BOOST_PP_DEC(BOOST_PP_FRAME_ITERATION(2)))
-#   define AUX778076_ITER_1 BOOST_PP_CAT(iter,BOOST_PP_FRAME_ITERATION(2))
-
-        typedef typename next<AUX778076_ITER_0>::type AUX778076_ITER_1;
-        
-#   undef AUX778076_ITER_1
-#   undef AUX778076_ITER_0
-
-#endif // BOOST_PP_ITERATION_DEPTH()
-#endif // BOOST_PP_IS_ITERATING
diff --git a/boost/mpl/aux_/arg_typedef.hpp b/boost/mpl/aux_/arg_typedef.hpp
deleted file mode 100644
index ed5e5bd..0000000
--- a/boost/mpl/aux_/arg_typedef.hpp
+++ /dev/null
@@ -1,31 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_ARG_TYPEDEF_HPP_INCLUDED
-#define BOOST_MPL_AUX_ARG_TYPEDEF_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: arg_typedef.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/config/lambda.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#if defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) \
-    || BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
-    
-#   define BOOST_MPL_AUX_ARG_TYPEDEF(T, name) typedef T name;
-
-#else
-
-#   define BOOST_MPL_AUX_ARG_TYPEDEF(T, name) /**/
-
-#endif
-
-#endif // BOOST_MPL_AUX_ARG_TYPEDEF_HPP_INCLUDED
diff --git a/boost/mpl/aux_/arithmetic_op.hpp b/boost/mpl/aux_/arithmetic_op.hpp
deleted file mode 100644
index 0a310b7..0000000
--- a/boost/mpl/aux_/arithmetic_op.hpp
+++ /dev/null
@@ -1,92 +0,0 @@
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: arithmetic_op.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-#   include <boost/mpl/integral_c.hpp>
-#   include <boost/mpl/aux_/largest_int.hpp>
-#   include <boost/mpl/aux_/value_wknd.hpp>
-#endif
-
-#if !defined(AUX778076_OP_PREFIX)
-#   define AUX778076_OP_PREFIX AUX778076_OP_NAME
-#endif
-
-#include <boost/mpl/aux_/numeric_op.hpp>
-#include <boost/mpl/aux_/config/static_constant.hpp>
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-#   define BOOST_MPL_PREPROCESSED_HEADER AUX778076_OP_PREFIX.hpp
-#   include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <boost/mpl/aux_/config/workaround.hpp>
-#   include <boost/preprocessor/cat.hpp>
-
-
-namespace boost { namespace mpl {
-
-#if defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC)
-namespace aux {
-template< typename T, T n1, T n2 >
-struct BOOST_PP_CAT(AUX778076_OP_PREFIX,_wknd)
-{
-    BOOST_STATIC_CONSTANT(T, value = (n1 AUX778076_OP_TOKEN n2));
-    typedef integral_c<T,value> type;
-};
-}
-#endif
-
-template<>
-struct AUX778076_OP_IMPL_NAME<integral_c_tag,integral_c_tag>
-{
-    template< typename N1, typename N2 > struct apply
-#if !defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC)
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  AUX778076_OP_TOKEN BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-#else
-        : aux::BOOST_PP_CAT(AUX778076_OP_PREFIX,_wknd)<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , N1::value
-            , N2::value
-            >::type
-#endif
-    {
-    };
-};
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#undef AUX778076_OP_TAG_NAME
-#undef AUX778076_OP_IMPL_NAME
-#undef AUX778076_OP_ARITY
-#undef AUX778076_OP_PREFIX
-#undef AUX778076_OP_NAME
-#undef AUX778076_OP_TOKEN
diff --git a/boost/mpl/aux_/arity.hpp b/boost/mpl/aux_/arity.hpp
deleted file mode 100644
index adedcc6..0000000
--- a/boost/mpl/aux_/arity.hpp
+++ /dev/null
@@ -1,39 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_ARITY_HPP_INCLUDED
-#define BOOST_MPL_AUX_ARITY_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: arity.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/config/dtp.hpp>
-
-#if defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
-
-#   include <boost/mpl/aux_/nttp_decl.hpp>
-#   include <boost/mpl/aux_/config/static_constant.hpp>
-
-namespace boost { namespace mpl { namespace aux {
-
-// agurt, 15/mar/02: it's possible to implement the template so that it will 
-// "just work" and do not require any specialization, but not on the compilers
-// that require the arity workaround in the first place
-template< typename F, BOOST_MPL_AUX_NTTP_DECL(int, N) >
-struct arity
-{
-    BOOST_STATIC_CONSTANT(int, value = N);
-};
-
-}}}
-
-#endif // BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES
-
-#endif // BOOST_MPL_AUX_ARITY_HPP_INCLUDED
diff --git a/boost/mpl/aux_/arity_spec.hpp b/boost/mpl/aux_/arity_spec.hpp
deleted file mode 100644
index 6ae5cc7..0000000
--- a/boost/mpl/aux_/arity_spec.hpp
+++ /dev/null
@@ -1,67 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_ARITY_SPEC_HPP_INCLUDED
-#define BOOST_MPL_AUX_ARITY_SPEC_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: arity_spec.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/int.hpp>
-#include <boost/mpl/limits/arity.hpp>
-#include <boost/mpl/aux_/config/dtp.hpp>
-#include <boost/mpl/aux_/preprocessor/params.hpp>
-#include <boost/mpl/aux_/arity.hpp>
-#include <boost/mpl/aux_/template_arity_fwd.hpp>
-#include <boost/mpl/aux_/config/ttp.hpp>
-#include <boost/mpl/aux_/config/lambda.hpp>
-#include <boost/mpl/aux_/config/static_constant.hpp>
-
-#if defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
-#   define BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(i,type,name) \
-namespace aux { \
-template< BOOST_MPL_AUX_NTTP_DECL(int, N), BOOST_MPL_PP_PARAMS(i,type T) > \
-struct arity< \
-      name< BOOST_MPL_PP_PARAMS(i,T) > \
-    , N \
-    > \
-{ \
-    BOOST_STATIC_CONSTANT(int \
-        , value = BOOST_MPL_LIMIT_METAFUNCTION_ARITY \
-        ); \
-}; \
-} \
-/**/
-#else
-#   define BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(i,type,name) /**/
-#endif
-
-#   define BOOST_MPL_AUX_ARITY_SPEC(i,name) \
-    BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(i,typename,name) \
-/**/
-
-
-#if defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) \
-    && !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT)
-#   define BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(i, name) \
-namespace aux { \
-template< BOOST_MPL_PP_PARAMS(i,typename T) > \
-struct template_arity< name<BOOST_MPL_PP_PARAMS(i,T)> > \
-    : int_<i> \
-{ \
-}; \
-} \
-/**/
-#else
-#   define BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(i, name) /**/
-#endif
-
-
-#endif // BOOST_MPL_AUX_ARITY_SPEC_HPP_INCLUDED
diff --git a/boost/mpl/aux_/at_impl.hpp b/boost/mpl/aux_/at_impl.hpp
deleted file mode 100644
index 4af7cfe..0000000
--- a/boost/mpl/aux_/at_impl.hpp
+++ /dev/null
@@ -1,45 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_AT_IMPL_HPP_INCLUDED
-#define BOOST_MPL_AUX_AT_IMPL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: at_impl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/begin_end.hpp>
-#include <boost/mpl/advance.hpp>
-#include <boost/mpl/deref.hpp>
-#include <boost/mpl/aux_/traits_lambda_spec.hpp>
-
-namespace boost { namespace mpl {
-
-// default implementation; conrete sequences might override it by 
-// specializing either the 'at_impl' or the primary 'at' template
-
-template< typename Tag >
-struct at_impl
-{
-    template< typename Sequence, typename N > struct apply
-    {
-        typedef typename advance<
-              typename begin<Sequence>::type
-            , N
-            >::type iter_;
-
-        typedef typename deref<iter_>::type type;
-    };
-};
-
-BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(2, at_impl)
-
-}}
-
-#endif // BOOST_MPL_AUX_AT_IMPL_HPP_INCLUDED
diff --git a/boost/mpl/aux_/begin_end_impl.hpp b/boost/mpl/aux_/begin_end_impl.hpp
deleted file mode 100644
index 1a220a2..0000000
--- a/boost/mpl/aux_/begin_end_impl.hpp
+++ /dev/null
@@ -1,101 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_BEGIN_END_IMPL_HPP_INCLUDED
-#define BOOST_MPL_AUX_BEGIN_END_IMPL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: begin_end_impl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/begin_end_fwd.hpp>
-#include <boost/mpl/sequence_tag_fwd.hpp>
-#include <boost/mpl/void.hpp>
-#include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/aux_/has_begin.hpp>
-#include <boost/mpl/aux_/na.hpp>
-#include <boost/mpl/aux_/traits_lambda_spec.hpp>
-#include <boost/mpl/aux_/config/eti.hpp>
-
-namespace boost { namespace mpl {
-
-
-namespace aux { 
-
-template< typename Sequence > 
-struct begin_type 
-{ 
-    typedef typename Sequence::begin type; 
-};
-template< typename Sequence > 
-struct end_type
-{ 
-    typedef typename Sequence::end type; 
-};
-
-}
-
-// default implementation; conrete sequences might override it by 
-// specializing either the 'begin_impl/end_impl' or the primary 
-// 'begin/end' templates
-
-template< typename Tag >
-struct begin_impl
-{
-    template< typename Sequence > struct apply
-    {
-        typedef typename eval_if<aux::has_begin<Sequence, true_>,
-                                 aux::begin_type<Sequence>, void_>::type type;
-    };
-};
-
-template< typename Tag >
-struct end_impl
-{
-    template< typename Sequence > struct apply
-    {
-        typedef typename eval_if<aux::has_begin<Sequence, true_>,
-                                 aux::end_type<Sequence>, void_>::type type;
-    };
-};
-
-// specialize 'begin_trait/end_trait' for two pre-defined tags
-
-#   define AUX778076_IMPL_SPEC(name, tag, result) \
-template<> \
-struct name##_impl<tag> \
-{ \
-    template< typename Sequence > struct apply \
-    { \
-        typedef result type; \
-    }; \
-}; \
-/**/
-
-// a sequence with nested 'begin/end' typedefs; just query them
-AUX778076_IMPL_SPEC(begin, nested_begin_end_tag, typename Sequence::begin)
-AUX778076_IMPL_SPEC(end, nested_begin_end_tag, typename Sequence::end)
-
-// if a type 'T' does not contain 'begin/end' or 'tag' members 
-// and doesn't specialize either 'begin/end' or 'begin_impl/end_impl' 
-// templates, then we end up here
-AUX778076_IMPL_SPEC(begin, non_sequence_tag, void_)
-AUX778076_IMPL_SPEC(end, non_sequence_tag, void_)
-AUX778076_IMPL_SPEC(begin, na, void_)
-AUX778076_IMPL_SPEC(end, na, void_)
-
-#   undef AUX778076_IMPL_SPEC
-
-
-BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC_IMPL(1,begin_impl)
-BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC_IMPL(1,end_impl)
-
-}}
-
-#endif // BOOST_MPL_AUX_BEGIN_END_IMPL_HPP_INCLUDED
diff --git a/boost/mpl/aux_/clear_impl.hpp b/boost/mpl/aux_/clear_impl.hpp
deleted file mode 100644
index 3850086..0000000
--- a/boost/mpl/aux_/clear_impl.hpp
+++ /dev/null
@@ -1,35 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_CLEAR_IMPL_HPP_INCLUDED
-#define BOOST_MPL_AUX_CLEAR_IMPL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: clear_impl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/clear_fwd.hpp>
-#include <boost/mpl/aux_/traits_lambda_spec.hpp>
-#include <boost/mpl/aux_/config/eti.hpp>
-
-namespace boost { namespace mpl {
-
-// no default implementation; the definition is needed to make MSVC happy
-
-template< typename Tag >
-struct clear_impl
-{
-    template< typename Sequence > struct apply;
-};
-
-BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(1, clear_impl)
-
-}}
-
-#endif // BOOST_MPL_AUX_CLEAR_IMPL_HPP_INCLUDED
diff --git a/boost/mpl/aux_/common_name_wknd.hpp b/boost/mpl/aux_/common_name_wknd.hpp
deleted file mode 100644
index a6c7898..0000000
--- a/boost/mpl/aux_/common_name_wknd.hpp
+++ /dev/null
@@ -1,34 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_COMMON_NAME_WKND_HPP_INCLUDED
-#define BOOST_MPL_AUX_COMMON_NAME_WKND_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: common_name_wknd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#if BOOST_WORKAROUND(__BORLANDC__, < 0x561)
-// agurt, 12/nov/02: to suppress the bogus "Cannot have both a template class 
-// and function named 'xxx'" diagnostic
-#   define BOOST_MPL_AUX_COMMON_NAME_WKND(name) \
-namespace name_##wknd { \
-template< typename > void name(); \
-} \
-/**/
-
-#else
-
-#   define BOOST_MPL_AUX_COMMON_NAME_WKND(name) /**/
-
-#endif // __BORLANDC__
-
-#endif // BOOST_MPL_AUX_COMMON_NAME_WKND_HPP_INCLUDED
diff --git a/boost/mpl/aux_/comparison_op.hpp b/boost/mpl/aux_/comparison_op.hpp
deleted file mode 100644
index f0850a4..0000000
--- a/boost/mpl/aux_/comparison_op.hpp
+++ /dev/null
@@ -1,83 +0,0 @@
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: comparison_op.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-#   include <boost/mpl/bool.hpp>
-#   include <boost/mpl/aux_/value_wknd.hpp>
-#endif
-
-#if !defined(AUX778076_OP_PREFIX)
-#   define AUX778076_OP_PREFIX AUX778076_OP_NAME
-#endif
-
-#define AUX778076_OP_ARITY 2
-
-#include <boost/mpl/aux_/numeric_op.hpp>
-#include <boost/mpl/aux_/config/static_constant.hpp>
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-#   define BOOST_MPL_PREPROCESSED_HEADER AUX778076_OP_PREFIX.hpp
-#   include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <boost/mpl/aux_/config/integral.hpp>
-#   include <boost/preprocessor/cat.hpp>
-
-namespace boost { namespace mpl {
-
-// MSVC workaround: implement less in terms of greater
-#if 0 AUX778076_OP_TOKEN 1 && !(1 AUX778076_OP_TOKEN 0) && !(0 AUX778076_OP_TOKEN 0)
-#   define AUX778076_OP(N1, N2) \
-    ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > BOOST_MPL_AUX_VALUE_WKND(N1)::value ) \
-/**/
-#else
-#   define AUX778076_OP(N1, N2) \
-    ( BOOST_MPL_AUX_VALUE_WKND(N1)::value \
-          AUX778076_OP_TOKEN BOOST_MPL_AUX_VALUE_WKND(N2)::value \
-        ) \
-/**/
-#endif
-
-template<>
-struct AUX778076_OP_IMPL_NAME<integral_c_tag,integral_c_tag>
-{
-    template< typename N1, typename N2 > struct apply
-#if !defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC)
-        : bool_< AUX778076_OP(N1, N2) >
-    {
-#else
-    {
-        BOOST_STATIC_CONSTANT(bool, value = AUX778076_OP(N1, N2));
-        typedef bool_<value> type;
-#endif
-    };
-};
-
-#undef AUX778076_OP
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#undef AUX778076_OP_TAG_NAME
-#undef AUX778076_OP_IMPL_NAME
-#undef AUX778076_OP_ARITY
-#undef AUX778076_OP_PREFIX
-#undef AUX778076_OP_NAME
-#undef AUX778076_OP_TOKEN
diff --git a/boost/mpl/aux_/config/adl.hpp b/boost/mpl/aux_/config/adl.hpp
deleted file mode 100644
index d6ead71..0000000
--- a/boost/mpl/aux_/config/adl.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_CONFIG_ADL_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_ADL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: adl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/config/msvc.hpp>
-#include <boost/mpl/aux_/config/intel.hpp>
-#include <boost/mpl/aux_/config/gcc.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-// agurt, 25/apr/04: technically, the ADL workaround is only needed for GCC,
-// but putting everything expect public, user-specializable metafunctions into
-// a separate global namespace has a nice side effect of reducing the length 
-// of template instantiation symbols, so we apply the workaround on all 
-// platforms that can handle it
-
-#if !defined(BOOST_MPL_CFG_NO_ADL_BARRIER_NAMESPACE) \
-    && (   BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1400)) \
-        || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \
-        || BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) \
-        || BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3202)) \
-        || BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION, BOOST_TESTED_AT(810)) \
-        )
-
-#   define BOOST_MPL_CFG_NO_ADL_BARRIER_NAMESPACE
-
-#endif
-
-#endif // BOOST_MPL_AUX_CONFIG_ADL_HPP_INCLUDED
diff --git a/boost/mpl/aux_/config/arrays.hpp b/boost/mpl/aux_/config/arrays.hpp
deleted file mode 100644
index d801cf7..0000000
--- a/boost/mpl/aux_/config/arrays.hpp
+++ /dev/null
@@ -1,30 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_CONFIG_ARRAYS_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_ARRAYS_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: arrays.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/config/msvc.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#if    !defined(BOOST_MPL_CFG_NO_DEPENDENT_ARRAY_TYPES) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE) \
-    && ( BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \
-        || BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \
-        )
-
-#   define BOOST_MPL_CFG_NO_DEPENDENT_ARRAY_TYPES
-
-#endif
-
-#endif // BOOST_MPL_AUX_CONFIG_ARRAYS_HPP_INCLUDED
diff --git a/boost/mpl/aux_/config/bcc.hpp b/boost/mpl/aux_/config/bcc.hpp
deleted file mode 100644
index f4817ca..0000000
--- a/boost/mpl/aux_/config/bcc.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_CONFIG_BCC_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_BCC_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2008
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: bcc.hpp 49272 2008-10-11 06:50:46Z agurtovoy $
-// $Date: 2004-09-02 10:41:37 -0500 (Thu, 02 Sep 2004) $
-// $Revision: 24874 $
-
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#if    !defined(BOOST_MPL_CFG_BCC590_WORKAROUNDS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE) \
-    && BOOST_WORKAROUND(__BORLANDC__, >= 0x590) \
-    && BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610))
-
-#   define BOOST_MPL_CFG_BCC590_WORKAROUNDS
-
-#endif
-
-#endif // BOOST_MPL_AUX_CONFIG_BCC_HPP_INCLUDED
diff --git a/boost/mpl/aux_/config/bind.hpp b/boost/mpl/aux_/config/bind.hpp
deleted file mode 100644
index 02a7814..0000000
--- a/boost/mpl/aux_/config/bind.hpp
+++ /dev/null
@@ -1,33 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_CONFIG_BIND_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_BIND_HPP_INCLUDED
-
-// Copyright David Abrahams 2002
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: bind.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/config/msvc.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#if    !defined(BOOST_MPL_CFG_NO_BIND_TEMPLATE) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE) \
-    && (   BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \
-        || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \
-        )
-
-#   define BOOST_MPL_CFG_NO_BIND_TEMPLATE
-
-#endif
-
-//#define BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT
-
-#endif // BOOST_MPL_AUX_CONFIG_BIND_HPP_INCLUDED
diff --git a/boost/mpl/aux_/config/compiler.hpp b/boost/mpl/aux_/config/compiler.hpp
deleted file mode 100644
index e80ccde..0000000
--- a/boost/mpl/aux_/config/compiler.hpp
+++ /dev/null
@@ -1,66 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_CONFIG_COMPILER_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_COMPILER_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2008
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: compiler.hpp 53189 2009-05-22 20:07:55Z hkaiser $
-// $Date: 2009-05-22 13:07:55 -0700 (Fri, 22 May 2009) $
-// $Revision: 53189 $
-
-#if !defined(BOOST_MPL_CFG_COMPILER_DIR)
-
-#   include <boost/mpl/aux_/config/dtp.hpp>
-#   include <boost/mpl/aux_/config/ttp.hpp>
-#   include <boost/mpl/aux_/config/ctps.hpp>
-#   include <boost/mpl/aux_/config/msvc.hpp>
-#   include <boost/mpl/aux_/config/gcc.hpp>
-#   include <boost/mpl/aux_/config/workaround.hpp>
-
-#   if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-#       define BOOST_MPL_CFG_COMPILER_DIR msvc60
-
-#   elif BOOST_WORKAROUND(BOOST_MSVC, == 1300)
-#       define BOOST_MPL_CFG_COMPILER_DIR msvc70
-
-#   elif BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0304))
-#       define BOOST_MPL_CFG_COMPILER_DIR gcc
-
-#   elif BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610))
-#       if !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
-#           define BOOST_MPL_CFG_COMPILER_DIR bcc551
-#       elif BOOST_WORKAROUND(__BORLANDC__, >= 0x590)
-#           define BOOST_MPL_CFG_COMPILER_DIR bcc
-#       else
-#           define BOOST_MPL_CFG_COMPILER_DIR bcc_pre590
-#       endif
-
-#   elif BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
-#       define BOOST_MPL_CFG_COMPILER_DIR dmc
-
-#   elif defined(__MWERKS__)
-#       if defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
-#           define BOOST_MPL_CFG_COMPILER_DIR mwcw
-#       else
-#           define BOOST_MPL_CFG_COMPILER_DIR plain
-#       endif
-
-#   elif defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-#       define BOOST_MPL_CFG_COMPILER_DIR no_ctps
-
-#   elif defined(BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS)
-#       define BOOST_MPL_CFG_COMPILER_DIR no_ttp
-
-#   else
-#       define BOOST_MPL_CFG_COMPILER_DIR plain
-#   endif
-
-#endif // BOOST_MPL_CFG_COMPILER_DIR
-
-#endif // BOOST_MPL_AUX_CONFIG_COMPILER_HPP_INCLUDED
diff --git a/boost/mpl/aux_/config/ctps.hpp b/boost/mpl/aux_/config/ctps.hpp
deleted file mode 100644
index 9a4aaf7..0000000
--- a/boost/mpl/aux_/config/ctps.hpp
+++ /dev/null
@@ -1,30 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_CONFIG_CTPS_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_CTPS_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: ctps.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/config/workaround.hpp>
-#include <boost/config.hpp>
-
-#if    !defined(BOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE) \
-    && BOOST_WORKAROUND(__BORLANDC__, < 0x582)
-
-#   define BOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC
-
-#endif
-
-// BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION is defined in <boost/config.hpp>
-
-#endif // BOOST_MPL_AUX_CONFIG_CTPS_HPP_INCLUDED
diff --git a/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp b/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp
deleted file mode 100644
index f5f53f7..0000000
--- a/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp
+++ /dev/null
@@ -1,27 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_CONFIG_DMC_AMBIGUOUS_CTPS_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_DMC_AMBIGUOUS_CTPS_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: dmc_ambiguous_ctps.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#if    !defined(BOOST_MPL_CFG_DMC_AMBIGUOUS_CTPS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE) \
-    && BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
-
-#   define BOOST_MPL_CFG_DMC_AMBIGUOUS_CTPS
-
-#endif
-
-#endif // BOOST_MPL_AUX_CONFIG_DMC_AMBIGUOUS_CTPS_HPP_INCLUDED
diff --git a/boost/mpl/aux_/config/dtp.hpp b/boost/mpl/aux_/config/dtp.hpp
deleted file mode 100644
index e53929b..0000000
--- a/boost/mpl/aux_/config/dtp.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_CONFIG_DTP_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_DTP_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: dtp.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-// MWCW 7.x-8.0 "losts" default template parameters of nested class 
-// templates when their owner classes are passed as arguments to other 
-// templates; Borland 5.5.1 "forgets" them from the very beginning (if 
-// the owner class is a class template), and Borland 5.6 isn't even
-// able to compile a definition of nested class template with DTP
-
-#if    !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE) \
-    && BOOST_WORKAROUND(__BORLANDC__, >= 0x560) \
-    && BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610))
-
-#   define BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES
-
-#endif
-
-
-#if    !defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE) \
-    && (   BOOST_WORKAROUND(__MWERKS__, <= 0x3001) \
-        || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \
-        || defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES) \
-        )
-        
-#   define BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES
-
-#endif
-
-#endif // BOOST_MPL_AUX_CONFIG_DTP_HPP_INCLUDED
diff --git a/boost/mpl/aux_/config/eti.hpp b/boost/mpl/aux_/config/eti.hpp
deleted file mode 100644
index c3fd1c6..0000000
--- a/boost/mpl/aux_/config/eti.hpp
+++ /dev/null
@@ -1,47 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_CONFIG_ETI_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_ETI_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: eti.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/config/msvc.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-// flags for MSVC 6.5's so-called "early template instantiation bug"
-#if    !defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE) \
-    && BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-
-#   define BOOST_MPL_CFG_MSVC_60_ETI_BUG
-
-#endif
-
-#if    !defined(BOOST_MPL_CFG_MSVC_70_ETI_BUG) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE) \
-    && BOOST_WORKAROUND(BOOST_MSVC, == 1300)
-
-#   define BOOST_MPL_CFG_MSVC_70_ETI_BUG
-
-#endif
-
-#if    !defined(BOOST_MPL_CFG_MSVC_ETI_BUG) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE) \
-    && ( defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG) \
-        || defined(BOOST_MPL_CFG_MSVC_70_ETI_BUG) \
-        )
-
-#   define BOOST_MPL_CFG_MSVC_ETI_BUG
-
-#endif
-
-#endif // BOOST_MPL_AUX_CONFIG_ETI_HPP_INCLUDED
diff --git a/boost/mpl/aux_/config/forwarding.hpp b/boost/mpl/aux_/config/forwarding.hpp
deleted file mode 100644
index 0919d07..0000000
--- a/boost/mpl/aux_/config/forwarding.hpp
+++ /dev/null
@@ -1,27 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_CONFIG_FORWARDING_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_FORWARDING_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: forwarding.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#if    !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE) \
-    && BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610))
-
-#   define BOOST_MPL_CFG_NO_NESTED_FORWARDING
-
-#endif
-
-#endif // BOOST_MPL_AUX_CONFIG_FORWARDING_HPP_INCLUDED
diff --git a/boost/mpl/aux_/config/gcc.hpp b/boost/mpl/aux_/config/gcc.hpp
deleted file mode 100644
index b9d8f7d..0000000
--- a/boost/mpl/aux_/config/gcc.hpp
+++ /dev/null
@@ -1,23 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_CONFIG_GCC_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_GCC_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: gcc.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if defined(__GNUC__) && !defined(__EDG_VERSION__)
-#   define BOOST_MPL_CFG_GCC ((__GNUC__ << 8) | __GNUC_MINOR__)
-#else
-#   define BOOST_MPL_CFG_GCC 0
-#endif
-
-#endif // BOOST_MPL_AUX_CONFIG_GCC_HPP_INCLUDED
diff --git a/boost/mpl/aux_/config/has_apply.hpp b/boost/mpl/aux_/config/has_apply.hpp
deleted file mode 100644
index cc52eba..0000000
--- a/boost/mpl/aux_/config/has_apply.hpp
+++ /dev/null
@@ -1,32 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_CONFIG_HAS_APPLY_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_HAS_APPLY_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: has_apply.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/config/has_xxx.hpp>
-#include <boost/mpl/aux_/config/msvc.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_HAS_APPLY) \
-    && (   defined(BOOST_MPL_CFG_NO_HAS_XXX) \
-        || BOOST_WORKAROUND(__EDG_VERSION__, < 300) \
-        || BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \
-        || BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3202)) \
-        )
-
-#   define BOOST_MPL_CFG_NO_HAS_APPLY
-
-#endif
-
-#endif // BOOST_MPL_AUX_CONFIG_HAS_APPLY_HPP_INCLUDED
diff --git a/boost/mpl/aux_/config/has_xxx.hpp b/boost/mpl/aux_/config/has_xxx.hpp
deleted file mode 100644
index 1139b68..0000000
--- a/boost/mpl/aux_/config/has_xxx.hpp
+++ /dev/null
@@ -1,34 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_CONFIG_HAS_XXX_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_HAS_XXX_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2002-2004
-// Copyright David Abrahams 2002-2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: has_xxx.hpp 63518 2010-07-02 08:32:03Z agurtovoy $
-// $Date: 2010-07-02 01:32:03 -0700 (Fri, 02 Jul 2010) $
-// $Revision: 63518 $
-
-#include <boost/mpl/aux_/config/overload_resolution.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-// agurt, 11/jan/03: signals a stub-only 'has_xxx' implementation
-
-#if !defined(BOOST_MPL_CFG_NO_HAS_XXX) \
-    && (   defined(BOOST_MPL_CFG_BROKEN_OVERLOAD_RESOLUTION) \
-        || BOOST_WORKAROUND(__GNUC__, <= 2) \
-        || BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) \
-        )
-
-#   define BOOST_MPL_CFG_NO_HAS_XXX
-#   define BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE
-
-#endif
-
-#endif // BOOST_MPL_AUX_CONFIG_HAS_XXX_HPP_INCLUDED
diff --git a/boost/mpl/aux_/config/integral.hpp b/boost/mpl/aux_/config/integral.hpp
deleted file mode 100644
index 6a89160..0000000
--- a/boost/mpl/aux_/config/integral.hpp
+++ /dev/null
@@ -1,38 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_CONFIG_INTEGRAL_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_INTEGRAL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: integral.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/config/msvc.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#if    !defined(BOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE) \
-    && BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610))
-
-#   define BOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS
-
-#endif
-
-#if    !defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE) \
-    && ( BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \
-        || BOOST_WORKAROUND(__EDG_VERSION__, <= 238) \
-        )
-
-#   define BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC
-
-#endif
-
-#endif // BOOST_MPL_AUX_CONFIG_INTEGRAL_HPP_INCLUDED
diff --git a/boost/mpl/aux_/config/intel.hpp b/boost/mpl/aux_/config/intel.hpp
deleted file mode 100644
index 141a952..0000000
--- a/boost/mpl/aux_/config/intel.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_CONFIG_INTEL_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_INTEL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: intel.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-
-// BOOST_INTEL_CXX_VERSION is defined here:
-#include <boost/config.hpp>
-
-#endif // BOOST_MPL_AUX_CONFIG_INTEL_HPP_INCLUDED
diff --git a/boost/mpl/aux_/config/lambda.hpp b/boost/mpl/aux_/config/lambda.hpp
deleted file mode 100644
index 7be16bf..0000000
--- a/boost/mpl/aux_/config/lambda.hpp
+++ /dev/null
@@ -1,32 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_CONFIG_LAMBDA_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_LAMBDA_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: lambda.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/config/ttp.hpp>
-#include <boost/mpl/aux_/config/ctps.hpp>
-
-// agurt, 15/jan/02: full-fledged implementation requires both 
-// template template parameters _and_ partial specialization
-
-#if    !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) \
-    && (   defined(BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS) \
-        || defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
-        )
-
-#   define BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT
-
-#endif
-
-#endif // BOOST_MPL_AUX_CONFIG_LAMBDA_HPP_INCLUDED
diff --git a/boost/mpl/aux_/config/msvc.hpp b/boost/mpl/aux_/config/msvc.hpp
deleted file mode 100644
index fe89cda..0000000
--- a/boost/mpl/aux_/config/msvc.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_CONFIG_MSVC_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_MSVC_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: msvc.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-
-// BOOST_MSVC is defined here:
-#include <boost/config.hpp>
-
-#endif // BOOST_MPL_AUX_CONFIG_MSVC_HPP_INCLUDED
diff --git a/boost/mpl/aux_/config/msvc_typename.hpp b/boost/mpl/aux_/config/msvc_typename.hpp
deleted file mode 100644
index 603e275..0000000
--- a/boost/mpl/aux_/config/msvc_typename.hpp
+++ /dev/null
@@ -1,26 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_CONFIG_MSVC_TYPENAME_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_MSVC_TYPENAME_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: msvc_typename.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/config/msvc.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
-#   define BOOST_MSVC_TYPENAME
-#else
-#   define BOOST_MSVC_TYPENAME typename
-#endif
-
-#endif // BOOST_MPL_AUX_CONFIG_MSVC_TYPENAME_HPP_INCLUDED
diff --git a/boost/mpl/aux_/config/nttp.hpp b/boost/mpl/aux_/config/nttp.hpp
deleted file mode 100644
index f8bd39e..0000000
--- a/boost/mpl/aux_/config/nttp.hpp
+++ /dev/null
@@ -1,41 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_CONFIG_NTTP_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_NTTP_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: nttp.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/config/msvc.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-// MSVC 6.5 ICE-s on the code as simple as this (see "aux_/nttp_decl.hpp"
-// for a workaround):
-//
-//    namespace std {
-//    template< typename Char > struct string;
-//    }
-//
-//    void foo(std::string<char>);
-//
-//    namespace boost { namespace mpl {
-//    template< int > struct arg;
-//    }}
-
-#if    !defined(BOOST_MPL_CFG_NTTP_BUG) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE) \
-    && BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-
-#   define BOOST_MPL_CFG_NTTP_BUG
-
-#endif
-
-#endif // BOOST_MPL_AUX_CONFIG_NTTP_HPP_INCLUDED
diff --git a/boost/mpl/aux_/config/overload_resolution.hpp b/boost/mpl/aux_/config/overload_resolution.hpp
deleted file mode 100644
index 9de579f..0000000
--- a/boost/mpl/aux_/config/overload_resolution.hpp
+++ /dev/null
@@ -1,29 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_CONFIG_OVERLOAD_RESOLUTION_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_OVERLOAD_RESOLUTION_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: overload_resolution.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#if    !defined(BOOST_MPL_CFG_BROKEN_OVERLOAD_RESOLUTION) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE) \
-    && (   BOOST_WORKAROUND(__BORLANDC__, < 0x590) \
-        || BOOST_WORKAROUND(__MWERKS__, < 0x3001) \
-        )
-
-#   define BOOST_MPL_CFG_BROKEN_OVERLOAD_RESOLUTION
-
-#endif
-
-#endif // BOOST_MPL_AUX_CONFIG_OVERLOAD_RESOLUTION_HPP_INCLUDED
diff --git a/boost/mpl/aux_/config/pp_counter.hpp b/boost/mpl/aux_/config/pp_counter.hpp
deleted file mode 100644
index 4592272..0000000
--- a/boost/mpl/aux_/config/pp_counter.hpp
+++ /dev/null
@@ -1,26 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_CONFIG_PP_COUNTER_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_PP_COUNTER_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2006
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: pp_counter.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(BOOST_MPL_AUX_PP_COUNTER)
-#   include <boost/mpl/aux_/config/msvc.hpp>
-#   if BOOST_WORKAROUND(BOOST_MSVC, >= 1300)
-#       define BOOST_MPL_AUX_PP_COUNTER() __COUNTER__
-#   else
-#       define BOOST_MPL_AUX_PP_COUNTER() __LINE__
-#   endif
-#endif
-
-#endif // BOOST_MPL_AUX_CONFIG_PP_COUNTER_HPP_INCLUDED
diff --git a/boost/mpl/aux_/config/preprocessor.hpp b/boost/mpl/aux_/config/preprocessor.hpp
deleted file mode 100644
index 39190c4..0000000
--- a/boost/mpl/aux_/config/preprocessor.hpp
+++ /dev/null
@@ -1,39 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_CONFIG_PREPROCESSOR_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_PREPROCESSOR_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: preprocessor.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#if !defined(BOOST_MPL_CFG_BROKEN_PP_MACRO_EXPANSION) \
-    && (   BOOST_WORKAROUND(__MWERKS__, <= 0x3003) \
-        || BOOST_WORKAROUND(__BORLANDC__, < 0x582) \
-        || BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(502)) \
-        )
-
-#   define BOOST_MPL_CFG_BROKEN_PP_MACRO_EXPANSION
-
-#endif
-
-#if !defined(BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES)
-#   define BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES
-#endif
-
-#if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING) \
-    && BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
-#   define BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING
-#endif
-
-
-#endif // BOOST_MPL_AUX_CONFIG_PREPROCESSOR_HPP_INCLUDED
diff --git a/boost/mpl/aux_/config/static_constant.hpp b/boost/mpl/aux_/config/static_constant.hpp
deleted file mode 100644
index 02cf9c4..0000000
--- a/boost/mpl/aux_/config/static_constant.hpp
+++ /dev/null
@@ -1,25 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_CONFIG_STATIC_CONSTANT_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_STATIC_CONSTANT_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: static_constant.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-// BOOST_STATIC_CONSTANT is defined here:
-#   include <boost/config.hpp>
-#else
-// undef the macro for the preprocessing mode
-#   undef BOOST_STATIC_CONSTANT
-#endif
-
-#endif // BOOST_MPL_AUX_CONFIG_STATIC_CONSTANT_HPP_INCLUDED
diff --git a/boost/mpl/aux_/config/ttp.hpp b/boost/mpl/aux_/config/ttp.hpp
deleted file mode 100644
index 879ec1d..0000000
--- a/boost/mpl/aux_/config/ttp.hpp
+++ /dev/null
@@ -1,41 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_CONFIG_TTP_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_TTP_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: ttp.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/config/msvc.hpp>
-#include <boost/mpl/aux_/config/gcc.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS) \
-    && ( defined(BOOST_NO_TEMPLATE_TEMPLATES) \
-      || BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT( 0x590) ) \
-       )
-
-#   define BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS
-
-#endif
-
-
-#if    !defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE) \
-    && (   BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0302)) \
-        || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \
-        )
-
-#   define BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING
-
-#endif
-
-#endif // BOOST_MPL_AUX_CONFIG_TTP_HPP_INCLUDED
diff --git a/boost/mpl/aux_/config/typeof.hpp b/boost/mpl/aux_/config/typeof.hpp
deleted file mode 100644
index 2244d2c..0000000
--- a/boost/mpl/aux_/config/typeof.hpp
+++ /dev/null
@@ -1,38 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_CONFIG_TYPEOF_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_TYPEOF_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: typeof.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/config/gcc.hpp>
-
-#if !defined(BOOST_MPL_CFG_HAS_TYPEOF) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE) \
-    && (   defined(BOOST_MPL_CFG_GCC) && BOOST_MPL_CFG_GCC >= 0x0302 \
-        || defined(__MWERKS__) && __MWERKS__ >= 0x3000 \
-        )
-
-#   define BOOST_MPL_CFG_HAS_TYPEOF
-
-#endif
-
-
-#if !defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE) \
-    && defined(BOOST_MPL_CFG_HAS_TYPEOF)
-
-#   define BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
-
-#endif
-
-#endif // BOOST_MPL_AUX_CONFIG_TYPEOF_HPP_INCLUDED
diff --git a/boost/mpl/aux_/config/use_preprocessed.hpp b/boost/mpl/aux_/config/use_preprocessed.hpp
deleted file mode 100644
index 4494366..0000000
--- a/boost/mpl/aux_/config/use_preprocessed.hpp
+++ /dev/null
@@ -1,19 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_CONFIG_USE_PREPROCESSED_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_USE_PREPROCESSED_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: use_preprocessed.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-// #define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_AUX_CONFIG_USE_PREPROCESSED_HPP_INCLUDED
diff --git a/boost/mpl/aux_/config/workaround.hpp b/boost/mpl/aux_/config/workaround.hpp
deleted file mode 100644
index 8ec172f..0000000
--- a/boost/mpl/aux_/config/workaround.hpp
+++ /dev/null
@@ -1,19 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_CONFIG_WORKAROUND_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONFIG_WORKAROUND_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: workaround.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/detail/workaround.hpp>
-
-#endif // BOOST_MPL_AUX_CONFIG_WORKAROUND_HPP_INCLUDED
diff --git a/boost/mpl/aux_/contains_impl.hpp b/boost/mpl/aux_/contains_impl.hpp
deleted file mode 100644
index 2dcb609..0000000
--- a/boost/mpl/aux_/contains_impl.hpp
+++ /dev/null
@@ -1,61 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_CONTAINS_IMPL_HPP_INCLUDED
-#define BOOST_MPL_AUX_CONTAINS_IMPL_HPP_INCLUDED
-
-// Copyright Eric Friedman 2002
-// Copyright Aleksey Gurtovoy 2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: contains_impl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/contains_fwd.hpp>
-#include <boost/mpl/begin_end.hpp>
-#include <boost/mpl/find.hpp>
-#include <boost/mpl/not.hpp>
-#include <boost/mpl/aux_/traits_lambda_spec.hpp>
-#include <boost/mpl/aux_/config/forwarding.hpp>
-#include <boost/mpl/aux_/config/static_constant.hpp>
-
-#include <boost/type_traits/is_same.hpp>
-
-namespace boost { namespace mpl {
-
-template< typename Tag >
-struct contains_impl
-{
-    template< typename Sequence, typename T > struct apply
-#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING)
-        : not_< is_same<
-              typename find<Sequence,T>::type
-            , typename end<Sequence>::type
-            > >
-    {
-#else
-    {
-        typedef not_< is_same<
-              typename find<Sequence,T>::type
-            , typename end<Sequence>::type
-            > > type;
-
-        BOOST_STATIC_CONSTANT(bool, value = 
-              (not_< is_same<
-                  typename find<Sequence,T>::type
-                , typename end<Sequence>::type
-                > >::value)
-            );
-#endif
-    };
-};
-
-BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(2,contains_impl)
-
-}}
-
-#endif // BOOST_MPL_AUX_CONTAINS_IMPL_HPP_INCLUDED
diff --git a/boost/mpl/aux_/count_args.hpp b/boost/mpl/aux_/count_args.hpp
deleted file mode 100644
index 1ab000d..0000000
--- a/boost/mpl/aux_/count_args.hpp
+++ /dev/null
@@ -1,105 +0,0 @@
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: count_args.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/preprocessor/expr_if.hpp>
-#include <boost/preprocessor/inc.hpp>
-#include <boost/preprocessor/cat.hpp>
-
-#if !defined(AUX778076_COUNT_ARGS_PARAM_NAME)
-#   define AUX778076_COUNT_ARGS_PARAM_NAME T
-#endif
-
-#if !defined(AUX778076_COUNT_ARGS_TEMPLATE_PARAM)
-#   define AUX778076_COUNT_ARGS_TEMPLATE_PARAM typename AUX778076_COUNT_ARGS_PARAM_NAME
-#endif
-
-// local macros, #undef-ined at the end of the header
-
-#if !defined(AUX778076_COUNT_ARGS_USE_STANDARD_PP_PRIMITIVES)
-
-#   include <boost/mpl/aux_/preprocessor/repeat.hpp>
-#   include <boost/mpl/aux_/preprocessor/params.hpp>
-
-#   define AUX778076_COUNT_ARGS_REPEAT BOOST_MPL_PP_REPEAT
-#   define AUX778076_COUNT_ARGS_PARAMS(param) \
-    BOOST_MPL_PP_PARAMS( \
-          AUX778076_COUNT_ARGS_ARITY \
-        , param \
-        ) \
-    /**/
-
-#else
-
-#   include <boost/preprocessor/enum_shifted_params.hpp>
-#   include <boost/preprocessor/repeat.hpp>
-#   include <boost/preprocessor/inc.hpp>
-
-#   define AUX778076_COUNT_ARGS_REPEAT BOOST_PP_REPEAT
-#   define AUX778076_COUNT_ARGS_PARAMS(param) \
-    BOOST_PP_ENUM_SHIFTED_PARAMS( \
-          BOOST_PP_INC(AUX778076_COUNT_ARGS_ARITY) \
-        , param \
-        ) \
-    /**/
-
-#endif // AUX778076_COUNT_ARGS_USE_STANDARD_PP_PRIMITIVES
-
-
-#define AUX778076_IS_ARG_TEMPLATE_NAME \
-    BOOST_PP_CAT(is_,BOOST_PP_CAT(AUX778076_COUNT_ARGS_PREFIX,_arg)) \
-/**/
-
-#define AUX778076_COUNT_ARGS_FUNC(unused, i, param) \
-    BOOST_PP_EXPR_IF(i, +) \
-    AUX778076_IS_ARG_TEMPLATE_NAME<BOOST_PP_CAT(param,BOOST_PP_INC(i))>::value \
-/**/
-
-// is_<xxx>_arg
-template< AUX778076_COUNT_ARGS_TEMPLATE_PARAM >
-struct AUX778076_IS_ARG_TEMPLATE_NAME
-{
-    BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template<>
-struct AUX778076_IS_ARG_TEMPLATE_NAME<AUX778076_COUNT_ARGS_DEFAULT>
-{
-    BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-// <xxx>_count_args
-template<
-      AUX778076_COUNT_ARGS_PARAMS(AUX778076_COUNT_ARGS_TEMPLATE_PARAM)
-    >
-struct BOOST_PP_CAT(AUX778076_COUNT_ARGS_PREFIX,_count_args)
-{
-    BOOST_STATIC_CONSTANT(int, value = AUX778076_COUNT_ARGS_REPEAT(
-          AUX778076_COUNT_ARGS_ARITY
-        , AUX778076_COUNT_ARGS_FUNC
-        , AUX778076_COUNT_ARGS_PARAM_NAME
-        ));
-};
-
-#undef AUX778076_COUNT_ARGS_FUNC
-#undef AUX778076_IS_ARG_TEMPLATE_NAME
-#undef AUX778076_COUNT_ARGS_PARAMS
-#undef AUX778076_COUNT_ARGS_REPEAT
-
-#undef AUX778076_COUNT_ARGS_ARITY
-#undef AUX778076_COUNT_ARGS_DEFAULT
-#undef AUX778076_COUNT_ARGS_PREFIX
-#undef AUX778076_COUNT_ARGS_USE_STANDARD_PP_PRIMITIVES
-#undef AUX778076_COUNT_ARGS_TEMPLATE_PARAM
-#undef AUX778076_COUNT_ARGS_PARAM_NAME
diff --git a/boost/mpl/aux_/find_if_pred.hpp b/boost/mpl/aux_/find_if_pred.hpp
deleted file mode 100644
index c07d89d..0000000
--- a/boost/mpl/aux_/find_if_pred.hpp
+++ /dev/null
@@ -1,31 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_FIND_IF_PRED_HPP_INCLUDED
-#define BOOST_MPL_AUX_FIND_IF_PRED_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Eric Friedman 2002
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-#include <boost/mpl/aux_/iter_apply.hpp>
-#include <boost/mpl/not.hpp>
-
-namespace boost { namespace mpl { namespace aux {
-
-template< typename Predicate >
-struct find_if_pred
-{
-    template< typename Iterator >
-    struct apply
-    {
-        typedef not_< aux::iter_apply1<Predicate,Iterator> > type;
-    };
-};
-
-}}}
-
-#endif // BOOST_MPL_AUX_FIND_IF_PRED_HPP_INCLUDED
diff --git a/boost/mpl/aux_/fold_impl.hpp b/boost/mpl/aux_/fold_impl.hpp
deleted file mode 100644
index cc64022..0000000
--- a/boost/mpl/aux_/fold_impl.hpp
+++ /dev/null
@@ -1,43 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_FOLD_IMPL_HPP_INCLUDED
-#define BOOST_MPL_AUX_FOLD_IMPL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: fold_impl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-#   include <boost/mpl/next_prior.hpp>
-#   include <boost/mpl/apply.hpp>
-#   include <boost/mpl/deref.hpp>
-#   include <boost/mpl/aux_/config/ctps.hpp>
-#   if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-#       include <boost/mpl/if.hpp>
-#       include <boost/type_traits/is_same.hpp>
-#   endif
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-#   define BOOST_MPL_PREPROCESSED_HEADER fold_impl.hpp
-#   include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-#   define AUX778076_FOLD_IMPL_OP(iter) typename deref<iter>::type
-#   define AUX778076_FOLD_IMPL_NAME_PREFIX fold
-#   include <boost/mpl/aux_/fold_impl_body.hpp>
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_AUX_FOLD_IMPL_HPP_INCLUDED
diff --git a/boost/mpl/aux_/fold_impl_body.hpp b/boost/mpl/aux_/fold_impl_body.hpp
deleted file mode 100644
index 0750990..0000000
--- a/boost/mpl/aux_/fold_impl_body.hpp
+++ /dev/null
@@ -1,365 +0,0 @@
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-#if !defined(BOOST_PP_IS_ITERATING)
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: fold_impl_body.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#   include <boost/mpl/limits/unrolling.hpp>
-#   include <boost/mpl/aux_/preprocessor/repeat.hpp>
-#   include <boost/mpl/aux_/config/workaround.hpp>
-#   include <boost/mpl/aux_/config/ctps.hpp>
-#   include <boost/mpl/aux_/nttp_decl.hpp>
-#   include <boost/mpl/aux_/config/eti.hpp>
-
-#   include <boost/preprocessor/iterate.hpp>
-#   include <boost/preprocessor/dec.hpp>
-#   include <boost/preprocessor/cat.hpp>
-
-// local macros, #undef-ined at the end of the header
-
-#   define AUX778076_ITER_FOLD_STEP(unused, i, unused2) \
-    typedef typename apply2< \
-          ForwardOp \
-        , BOOST_PP_CAT(state,i) \
-        , AUX778076_FOLD_IMPL_OP(BOOST_PP_CAT(iter,i)) \
-        >::type BOOST_PP_CAT(state,BOOST_PP_INC(i)); \
-    typedef typename mpl::next<BOOST_PP_CAT(iter,i)>::type \
-        BOOST_PP_CAT(iter,BOOST_PP_INC(i)); \
-    /**/
-
-#   define AUX778076_FOLD_IMPL_NAME \
-    BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_impl) \
-    /**/
-
-#   define AUX778076_FOLD_CHUNK_NAME \
-    BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_chunk) \
-    /**/
-
-namespace boost { namespace mpl { namespace aux {
-
-/// forward declaration
-template<
-      BOOST_MPL_AUX_NTTP_DECL(int, N)
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    > 
-struct AUX778076_FOLD_IMPL_NAME;
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-#   if !BOOST_WORKAROUND(__BORLANDC__, < 0x600)
-
-#   define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(0, BOOST_MPL_LIMIT_UNROLLING, <boost/mpl/aux_/fold_impl_body.hpp>))
-#   include BOOST_PP_ITERATE()
-
-// implementation for N that exceeds BOOST_MPL_LIMIT_UNROLLING
-template<
-      BOOST_MPL_AUX_NTTP_DECL(int, N)
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    > 
-struct AUX778076_FOLD_IMPL_NAME
-{
-    typedef AUX778076_FOLD_IMPL_NAME<
-          BOOST_MPL_LIMIT_UNROLLING
-        , First
-        , Last
-        , State
-        , ForwardOp
-        > chunk_;
-
-    typedef AUX778076_FOLD_IMPL_NAME<
-          ( (N - BOOST_MPL_LIMIT_UNROLLING) < 0 ? 0 : N - BOOST_MPL_LIMIT_UNROLLING )
-        , typename chunk_::iterator
-        , Last
-        , typename chunk_::state
-        , ForwardOp
-        > res_;
-        
-    typedef typename res_::state state;
-    typedef typename res_::iterator iterator;
-};
-
-// fallback implementation for sequences of unknown size
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    > 
-struct AUX778076_FOLD_IMPL_NAME<-1,First,Last,State,ForwardOp>
-    : AUX778076_FOLD_IMPL_NAME<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State,AUX778076_FOLD_IMPL_OP(First)>::type
-        , ForwardOp
-        >
-{
-};
-
-template<
-      typename Last
-    , typename State
-    , typename ForwardOp
-    > 
-struct AUX778076_FOLD_IMPL_NAME<-1,Last,Last,State,ForwardOp>
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-#   else // BOOST_WORKAROUND(__BORLANDC__, < 0x600)
-
-// Borland have some serious problems with the unrolled version, so
-// we always use a basic implementation
-template<
-      BOOST_MPL_AUX_NTTP_DECL(int, N)
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    > 
-struct AUX778076_FOLD_IMPL_NAME
-{
-    typedef AUX778076_FOLD_IMPL_NAME<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State,AUX778076_FOLD_IMPL_OP(First)>::type
-        , ForwardOp
-        > res_;
-
-    typedef typename res_::state state;
-    typedef typename res_::iterator iterator;
-    typedef state type;
-};
-
-template<
-      BOOST_MPL_AUX_NTTP_DECL(int, N)
-     , typename Last
-    , typename State
-    , typename ForwardOp
-    > 
-struct AUX778076_FOLD_IMPL_NAME<N,Last,Last,State,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-    typedef state type;
-};
-
-#   endif // BOOST_WORKAROUND(__BORLANDC__, < 0x600)
- 
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-template< BOOST_MPL_AUX_NTTP_DECL(int, N) >
-struct AUX778076_FOLD_CHUNK_NAME;
-
-#   define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(0, BOOST_MPL_LIMIT_UNROLLING, <boost/mpl/aux_/fold_impl_body.hpp>))
-#   include BOOST_PP_ITERATE()
-
-// implementation for N that exceeds BOOST_MPL_LIMIT_UNROLLING
-template< BOOST_MPL_AUX_NTTP_DECL(int, N) > 
-struct AUX778076_FOLD_CHUNK_NAME
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        > 
-    struct result_
-    {
-        typedef AUX778076_FOLD_IMPL_NAME<
-              BOOST_MPL_LIMIT_UNROLLING
-            , First
-            , Last
-            , State
-            , ForwardOp
-            > chunk_;
-
-        typedef AUX778076_FOLD_IMPL_NAME<
-              ( (N - BOOST_MPL_LIMIT_UNROLLING) < 0 ? 0 : N - BOOST_MPL_LIMIT_UNROLLING )
-            , typename chunk_::iterator
-            , Last
-            , typename chunk_::state
-            , ForwardOp
-            > res_;
-
-        typedef typename res_::state state;
-        typedef typename res_::iterator iterator;
-    };
-};
-
-// fallback implementation for sequences of unknown size
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    > 
-struct BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_step);
-
-template<
-      typename Last
-    , typename State
-    >
-struct BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_null_step)
-{
-    typedef Last iterator;
-    typedef State state;
-};
-
-template<> 
-struct AUX778076_FOLD_CHUNK_NAME<-1>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        > 
-    struct result_
-    {
-        typedef typename if_<
-              typename is_same<First,Last>::type
-            , BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_null_step)<Last,State>
-            , BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_step)<First,Last,State,ForwardOp>
-            >::type res_;
-
-        typedef typename res_::state state;
-        typedef typename res_::iterator iterator;
-    };
-
-#if defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG)
-    /// ETI workaround
-    template<> struct result_<int,int,int,int>
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-#endif
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    > 
-struct BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_step)
-{
-    // can't inherit here - it breaks MSVC 7.0
-    typedef AUX778076_FOLD_CHUNK_NAME<-1>::template result_<
-          typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State,AUX778076_FOLD_IMPL_OP(First)>::type
-        , ForwardOp
-        > chunk_;
-
-    typedef typename chunk_::state state;
-    typedef typename chunk_::iterator iterator;
-};
-
-template<
-      BOOST_MPL_AUX_NTTP_DECL(int, N)
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    > 
-struct AUX778076_FOLD_IMPL_NAME
-    : AUX778076_FOLD_CHUNK_NAME<N>
-        ::template result_<First,Last,State,ForwardOp>
-{
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-}}}
-
-#   undef AUX778076_FOLD_IMPL_NAME
-#   undef AUX778076_FOLD_CHUNK_NAME
-#   undef AUX778076_ITER_FOLD_STEP
-
-#undef AUX778076_FOLD_IMPL_OP
-#undef AUX778076_FOLD_IMPL_NAME_PREFIX
-
-///// iteration
-
-#else
-
-#   define n_ BOOST_PP_FRAME_ITERATION(1)
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct AUX778076_FOLD_IMPL_NAME<n_,First,Last,State,ForwardOp>
-{
-    typedef First iter0;
-    typedef State state0;
-
-    BOOST_MPL_PP_REPEAT(n_, AUX778076_ITER_FOLD_STEP, unused)
-
-    typedef BOOST_PP_CAT(state,n_) state;
-    typedef BOOST_PP_CAT(iter,n_) iterator;
-};
-
-#else
-
-template<> struct AUX778076_FOLD_CHUNK_NAME<n_>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-
-        BOOST_MPL_PP_REPEAT(n_, AUX778076_ITER_FOLD_STEP, unused)
-
-        typedef BOOST_PP_CAT(state,n_) state;
-        typedef BOOST_PP_CAT(iter,n_) iterator;
-    };
-
-#if defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG)
-    /// ETI workaround
-    template<> struct result_<int,int,int,int>
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-#endif
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#   undef n_
-
-#endif // BOOST_PP_IS_ITERATING
diff --git a/boost/mpl/aux_/full_lambda.hpp b/boost/mpl/aux_/full_lambda.hpp
deleted file mode 100644
index e931199..0000000
--- a/boost/mpl/aux_/full_lambda.hpp
+++ /dev/null
@@ -1,354 +0,0 @@
-
-#if !defined(BOOST_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef BOOST_MPL_AUX_FULL_LAMBDA_HPP_INCLUDED
-#define BOOST_MPL_AUX_FULL_LAMBDA_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: full_lambda.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-#   include <boost/mpl/lambda_fwd.hpp>
-#   include <boost/mpl/bind_fwd.hpp>
-#   include <boost/mpl/protect.hpp>
-#   include <boost/mpl/quote.hpp>
-#   include <boost/mpl/arg.hpp>
-#   include <boost/mpl/bool.hpp>
-#   include <boost/mpl/int_fwd.hpp>
-#   include <boost/mpl/aux_/template_arity.hpp>
-#   include <boost/mpl/aux_/na_spec.hpp>
-#   include <boost/mpl/aux_/config/ttp.hpp>
-#   if defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING)
-#       include <boost/mpl/if.hpp>
-#   endif
-#endif
-
-#include <boost/mpl/aux_/lambda_arity_param.hpp>
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-#   define BOOST_MPL_PREPROCESSED_HEADER full_lambda.hpp
-#   include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <boost/mpl/limits/arity.hpp>
-#   include <boost/mpl/aux_/preprocessor/default_params.hpp>
-#   include <boost/mpl/aux_/preprocessor/params.hpp>
-#   include <boost/mpl/aux_/preprocessor/enum.hpp>
-#   include <boost/mpl/aux_/preprocessor/repeat.hpp>
-#   include <boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp>
-
-#   include <boost/preprocessor/iterate.hpp>
-#   include <boost/preprocessor/comma_if.hpp>
-#   include <boost/preprocessor/inc.hpp>
-#   include <boost/preprocessor/cat.hpp>
-
-namespace boost { namespace mpl {
-
-// local macros, #undef-ined at the end of the header
-#   define AUX778076_LAMBDA_PARAMS(i_, param) \
-    BOOST_MPL_PP_PARAMS(i_, param) \
-    /**/
-
-#   define AUX778076_BIND_PARAMS(param) \
-    BOOST_MPL_PP_PARAMS( \
-          BOOST_MPL_LIMIT_METAFUNCTION_ARITY \
-        , param \
-        ) \
-    /**/
-
-#   define AUX778076_BIND_N_PARAMS(i_, param) \
-    BOOST_PP_COMMA_IF(i_) \
-    BOOST_MPL_PP_PARAMS(i_, param) \
-    /**/
-
-#   define AUX778076_ARITY_PARAM(param) \
-    BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(param) \
-    /**/
-
-
-#define n_ BOOST_MPL_LIMIT_METAFUNCTION_ARITY
-namespace aux {
-
-template<
-      BOOST_MPL_PP_DEFAULT_PARAMS(n_,bool C,false)
-    >
-struct lambda_or
-    : true_
-{
-};
-
-template<>
-struct lambda_or< BOOST_MPL_PP_ENUM(n_,false) >
-    : false_
-{
-};
-
-} // namespace aux
-#undef n_
-
-template<
-      typename T
-    , typename Tag
-    AUX778076_ARITY_PARAM(typename Arity)
-    >
-struct lambda
-{
-    typedef false_ is_le;
-    typedef T result_;
-    typedef T type;
-};
-
-template<
-      typename T
-    >
-struct is_lambda_expression
-    : lambda<T>::is_le
-{
-};
-
-
-template< int N, typename Tag >
-struct lambda< arg<N>,Tag AUX778076_ARITY_PARAM(int_<-1>) >
-{
-    typedef true_ is_le;
-    typedef mpl::arg<N> result_; // qualified for the sake of MIPSpro 7.41
-    typedef mpl::protect<result_> type; 
-};
-
-
-#define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, <boost/mpl/aux_/full_lambda.hpp>))
-#include BOOST_PP_ITERATE()
-
-/// special case for 'protect'
-template< typename T, typename Tag >
-struct lambda< mpl::protect<T>,Tag AUX778076_ARITY_PARAM(int_<1>) >
-{
-    typedef false_ is_le;
-    typedef mpl::protect<T> result_;
-    typedef result_ type;
-};
-
-/// specializations for the main 'bind' form
-template<
-      typename F, AUX778076_BIND_PARAMS(typename T)
-    , typename Tag
-    >
-struct lambda<
-          bind<F,AUX778076_BIND_PARAMS(T)>
-        , Tag
-        AUX778076_ARITY_PARAM(int_<BOOST_PP_INC(BOOST_MPL_LIMIT_METAFUNCTION_ARITY)>)
-        >
-{
-    typedef false_ is_le;
-    typedef bind<F, AUX778076_BIND_PARAMS(T)> result_;
-    typedef result_ type;
-};
-
-
-#if defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING)
-
-template<
-      typename F
-    , typename Tag1
-    , typename Tag2
-    , typename Arity
-    >
-struct lambda<
-          lambda<F,Tag1,Arity>
-        , Tag2
-        , int_<3>
-        >
-{
-    typedef lambda< F,Tag2 > l1;
-    typedef lambda< Tag1,Tag2 > l2;
-
-    typedef typename l1::is_le is_le;
-    typedef bind1< quote1<aux::template_arity>, typename l1::result_ > arity_;
-    typedef lambda< typename if_<is_le,arity_,Arity>::type,Tag2 > l3;
-    
-    typedef aux::le_result3<is_le, Tag2, mpl::lambda, l1, l2, l3> le_result_;
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-#elif !defined(BOOST_MPL_CFG_DMC_AMBIGUOUS_CTPS)
-
-/// workaround for MWCW 8.3+/EDG < 303, leads to ambiguity on Digital Mars
-template<
-      typename F, typename Tag1, typename Tag2
-    >
-struct lambda<
-          lambda< F,Tag1 >
-        , Tag2
-        >
-{
-    typedef lambda< F,Tag2 > l1;
-    typedef lambda< Tag1,Tag2 > l2;
-    
-    typedef typename l1::is_le is_le;
-    typedef aux::le_result2<is_le, Tag2, mpl::lambda, l1, l2> le_result_;
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-#endif
-
-#   undef AUX778076_ARITY_PARAM
-#   undef AUX778076_BIND_N_PARAMS
-#   undef AUX778076_BIND_PARAMS
-#   undef AUX778076_LAMBDA_PARAMS
-
-#if !defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING)
-BOOST_MPL_AUX_NA_SPEC(2, lambda)
-#else
-BOOST_MPL_AUX_NA_SPEC2(2, 3, lambda)
-#endif
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_AUX_FULL_LAMBDA_HPP_INCLUDED
-
-///// iteration, depth == 1
-
-// For gcc 4.4 compatability, we must include the
-// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
-#else // BOOST_PP_IS_ITERATING
-#if BOOST_PP_ITERATION_DEPTH() == 1
-#define i_ BOOST_PP_FRAME_ITERATION(1)
-
-#if i_ > 0
-
-namespace aux {
-
-#   define AUX778076_RESULT(unused, i_, T) \
-    BOOST_PP_COMMA_IF(i_) \
-    typename BOOST_PP_CAT(T, BOOST_PP_INC(i_))::result_ \
-    /**/
-
-#   define AUX778076_TYPE(unused, i_, T) \
-    BOOST_PP_COMMA_IF(i_) \
-    typename BOOST_PP_CAT(T, BOOST_PP_INC(i_))::type \
-    /**/
-
-template<
-      typename IsLE, typename Tag
-    , template< AUX778076_LAMBDA_PARAMS(i_, typename P) > class F
-    , AUX778076_LAMBDA_PARAMS(i_, typename L)
-    >
-struct BOOST_PP_CAT(le_result,i_)
-{
-    typedef F<
-          BOOST_MPL_PP_REPEAT(i_, AUX778076_TYPE, L)
-        > result_;
-    
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< AUX778076_LAMBDA_PARAMS(i_, typename P) > class F
-    , AUX778076_LAMBDA_PARAMS(i_, typename L)
-    >
-struct BOOST_PP_CAT(le_result,i_)< true_,Tag,F,AUX778076_LAMBDA_PARAMS(i_, L) >
-{
-    typedef BOOST_PP_CAT(bind,i_)<
-          BOOST_PP_CAT(quote,i_)<F,Tag>
-        , BOOST_MPL_PP_REPEAT(i_, AUX778076_RESULT, L)
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-#   undef AUX778076_TYPE
-#   undef AUX778076_RESULT
-
-} // namespace aux
-
-
-#   define AUX778076_LAMBDA_TYPEDEF(unused, i_, T) \
-    typedef lambda< BOOST_PP_CAT(T, BOOST_PP_INC(i_)), Tag > \
-        BOOST_PP_CAT(l,BOOST_PP_INC(i_)); \
-/**/
-
-#   define AUX778076_IS_LE_TYPEDEF(unused, i_, unused2) \
-    typedef typename BOOST_PP_CAT(l,BOOST_PP_INC(i_))::is_le \
-        BOOST_PP_CAT(is_le,BOOST_PP_INC(i_)); \
-/**/
-
-#   define AUX778076_IS_LAMBDA_EXPR(unused, i_, unused2) \
-    BOOST_PP_COMMA_IF(i_) \
-    BOOST_PP_CAT(is_le,BOOST_PP_INC(i_))::value \
-/**/
-
-template<
-      template< AUX778076_LAMBDA_PARAMS(i_, typename P) > class F
-    , AUX778076_LAMBDA_PARAMS(i_, typename T)
-    , typename Tag
-    >
-struct lambda< 
-          F<AUX778076_LAMBDA_PARAMS(i_, T)>
-        , Tag
-        AUX778076_ARITY_PARAM(int_<i_>)
-        >
-{
-    BOOST_MPL_PP_REPEAT(i_, AUX778076_LAMBDA_TYPEDEF, T)
-    BOOST_MPL_PP_REPEAT(i_, AUX778076_IS_LE_TYPEDEF, unused)
-
-    typedef typename aux::lambda_or<
-          BOOST_MPL_PP_REPEAT(i_, AUX778076_IS_LAMBDA_EXPR, unused)
-        >::type is_le;
-
-    typedef aux::BOOST_PP_CAT(le_result,i_)<
-          is_le, Tag, F, AUX778076_LAMBDA_PARAMS(i_, l)
-        > le_result_;
-    
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-
-#   undef AUX778076_IS_LAMBDA_EXPR
-#   undef AUX778076_IS_LE_TYPEDEF
-#   undef AUX778076_LAMBDA_TYPEDEF
-
-#endif // i_ > 0
-
-template<
-      typename F AUX778076_BIND_N_PARAMS(i_, typename T)
-    , typename Tag
-    >
-struct lambda<
-          BOOST_PP_CAT(bind,i_)<F AUX778076_BIND_N_PARAMS(i_, T)>
-        , Tag
-        AUX778076_ARITY_PARAM(int_<BOOST_PP_INC(i_)>)
-        >
-{
-    typedef false_ is_le;
-    typedef BOOST_PP_CAT(bind,i_)<
-          F
-        AUX778076_BIND_N_PARAMS(i_, T)
-        > result_;
-        
-    typedef result_ type;
-};
-
-#undef i_
-#endif // BOOST_PP_ITERATION_DEPTH()
-#endif // BOOST_PP_IS_ITERATING
diff --git a/boost/mpl/aux_/has_apply.hpp b/boost/mpl/aux_/has_apply.hpp
deleted file mode 100644
index cfb496e..0000000
--- a/boost/mpl/aux_/has_apply.hpp
+++ /dev/null
@@ -1,32 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_HAS_APPLY_HPP_INCLUDED
-#define BOOST_MPL_AUX_HAS_APPLY_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: has_apply.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/has_xxx.hpp>
-#include <boost/mpl/aux_/config/has_apply.hpp>
-
-namespace boost { namespace mpl { namespace aux {
-#if !defined(BOOST_MPL_CFG_NO_HAS_APPLY)
-BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_apply, apply, false)
-#else
-template< typename T, typename fallback_ = false_ >
-struct has_apply
-    : fallback_
-{
-};
-#endif
-}}}
-
-#endif // BOOST_MPL_AUX_HAS_APPLY_HPP_INCLUDED
diff --git a/boost/mpl/aux_/has_begin.hpp b/boost/mpl/aux_/has_begin.hpp
deleted file mode 100644
index c2b3bdb..0000000
--- a/boost/mpl/aux_/has_begin.hpp
+++ /dev/null
@@ -1,23 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_HAS_BEGIN_HPP_INCLUDED
-#define BOOST_MPL_AUX_HAS_BEGIN_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: has_begin.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/has_xxx.hpp>
-
-namespace boost { namespace mpl { namespace aux {
-BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_begin, begin, true)
-}}}
-
-#endif // BOOST_MPL_AUX_HAS_BEGIN_HPP_INCLUDED
diff --git a/boost/mpl/aux_/has_rebind.hpp b/boost/mpl/aux_/has_rebind.hpp
deleted file mode 100644
index f07e79e..0000000
--- a/boost/mpl/aux_/has_rebind.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_HAS_REBIND_HPP_INCLUDED
-#define BOOST_MPL_AUX_HAS_REBIND_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: has_rebind.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/config/msvc.hpp>
-#include <boost/mpl/aux_/config/intel.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#if BOOST_WORKAROUND(__EDG_VERSION__, <= 244) && !defined(BOOST_INTEL_CXX_VERSION)
-#   include <boost/mpl/has_xxx.hpp>
-#elif BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-#   include <boost/mpl/has_xxx.hpp>
-#   include <boost/mpl/if.hpp>
-#   include <boost/mpl/bool.hpp>
-#   include <boost/mpl/aux_/msvc_is_class.hpp>
-#elif BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610))
-#   include <boost/mpl/if.hpp>
-#   include <boost/mpl/bool.hpp>
-#   include <boost/mpl/aux_/yes_no.hpp>
-#   include <boost/mpl/aux_/config/static_constant.hpp>
-#   include <boost/type_traits/is_class.hpp>
-#else
-#   include <boost/mpl/aux_/type_wrapper.hpp>
-#   include <boost/mpl/aux_/yes_no.hpp>
-#   include <boost/mpl/aux_/config/static_constant.hpp>
-#endif
-
-namespace boost { namespace mpl { namespace aux {
-
-#if BOOST_WORKAROUND(__EDG_VERSION__, <= 244) && !defined(BOOST_INTEL_CXX_VERSION)
-
-BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_rebind, rebind, false)
-
-#elif BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-
-BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_rebind_impl, rebind, false)
-
-template< typename T >
-struct has_rebind
-    : if_< 
-          msvc_is_class<T>
-        , has_rebind_impl<T>
-        , bool_<false>
-        >::type
-{
-};
-
-#else // the rest
-
-template< typename T > struct has_rebind_tag {};
-no_tag operator|(has_rebind_tag<int>, void const volatile*);
-
-#   if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610))
-template< typename T >
-struct has_rebind
-{
-    static has_rebind_tag<T>* get();
-    BOOST_STATIC_CONSTANT(bool, value = 
-          sizeof(has_rebind_tag<int>() | get()) == sizeof(yes_tag)
-        );
-};
-#   else // __BORLANDC__
-template< typename T >
-struct has_rebind_impl
-{
-    static T* get();
-    BOOST_STATIC_CONSTANT(bool, value = 
-          sizeof(has_rebind_tag<int>() | get()) == sizeof(yes_tag)
-        );
-};
-
-template< typename T >
-struct has_rebind
-    : if_< 
-          is_class<T>
-        , has_rebind_impl<T>
-        , bool_<false>
-        >::type
-{
-};
-#   endif // __BORLANDC__
-
-#endif
-
-}}}
-
-#endif // BOOST_MPL_AUX_HAS_REBIND_HPP_INCLUDED
diff --git a/boost/mpl/aux_/has_size.hpp b/boost/mpl/aux_/has_size.hpp
deleted file mode 100644
index 23588af..0000000
--- a/boost/mpl/aux_/has_size.hpp
+++ /dev/null
@@ -1,23 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_HAS_SIZE_HPP_INCLUDED
-#define BOOST_MPL_AUX_HAS_SIZE_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: has_size.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/has_xxx.hpp>
-
-namespace boost { namespace mpl { namespace aux {
-BOOST_MPL_HAS_XXX_TRAIT_DEF(size)
-}}}
-
-#endif // BOOST_MPL_AUX_HAS_SIZE_HPP_INCLUDED
diff --git a/boost/mpl/aux_/has_tag.hpp b/boost/mpl/aux_/has_tag.hpp
deleted file mode 100644
index 915a8b6..0000000
--- a/boost/mpl/aux_/has_tag.hpp
+++ /dev/null
@@ -1,23 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_HAS_TAG_HPP_INCLUDED
-#define BOOST_MPL_AUX_HAS_TAG_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: has_tag.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/has_xxx.hpp>
-
-namespace boost { namespace mpl { namespace aux {
-BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_tag, tag, false)
-}}}
-
-#endif // BOOST_MPL_AUX_HAS_TAG_HPP_INCLUDED
diff --git a/boost/mpl/aux_/has_type.hpp b/boost/mpl/aux_/has_type.hpp
deleted file mode 100644
index 4f05072..0000000
--- a/boost/mpl/aux_/has_type.hpp
+++ /dev/null
@@ -1,23 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_HAS_TYPE_HPP_INCLUDED
-#define BOOST_MPL_AUX_HAS_TYPE_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: has_type.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/has_xxx.hpp>
-
-namespace boost { namespace mpl { namespace aux {
-BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_type, type, true)
-}}}
-
-#endif // BOOST_MPL_AUX_HAS_TYPE_HPP_INCLUDED
diff --git a/boost/mpl/aux_/include_preprocessed.hpp b/boost/mpl/aux_/include_preprocessed.hpp
deleted file mode 100644
index 162b05c..0000000
--- a/boost/mpl/aux_/include_preprocessed.hpp
+++ /dev/null
@@ -1,42 +0,0 @@
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-// Copyright Aleksey Gurtovoy 2000-2006
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: include_preprocessed.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/config/compiler.hpp>
-#include <boost/mpl/aux_/config/preprocessor.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-#include <boost/preprocessor/cat.hpp>
-#include <boost/preprocessor/stringize.hpp>
-
-#if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING)
-#   define AUX778076_PREPROCESSED_HEADER \
-    BOOST_MPL_CFG_COMPILER_DIR/BOOST_MPL_PREPROCESSED_HEADER \
-/**/
-#else
-#   define AUX778076_PREPROCESSED_HEADER \
-    BOOST_PP_CAT(BOOST_MPL_CFG_COMPILER_DIR,/)##BOOST_MPL_PREPROCESSED_HEADER \
-/**/
-#endif
-
-#if BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(700))
-#   define AUX778076_INCLUDE_STRING BOOST_PP_STRINGIZE(boost/mpl/aux_/preprocessed/AUX778076_PREPROCESSED_HEADER)
-#   include AUX778076_INCLUDE_STRING
-#   undef AUX778076_INCLUDE_STRING
-#else
-#   include BOOST_PP_STRINGIZE(boost/mpl/aux_/preprocessed/AUX778076_PREPROCESSED_HEADER)
-#endif
-
-#   undef AUX778076_PREPROCESSED_HEADER
-
-#undef BOOST_MPL_PREPROCESSED_HEADER
diff --git a/boost/mpl/aux_/inserter_algorithm.hpp b/boost/mpl/aux_/inserter_algorithm.hpp
deleted file mode 100644
index 2d7e1d9..0000000
--- a/boost/mpl/aux_/inserter_algorithm.hpp
+++ /dev/null
@@ -1,159 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_INSERTER_ALGORITHM_HPP_INCLUDED
-#define BOOST_MPL_AUX_INSERTER_ALGORITHM_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-// Copyright David Abrahams 2003-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: inserter_algorithm.hpp 55648 2009-08-18 05:16:53Z agurtovoy $
-// $Date: 2009-08-17 22:16:53 -0700 (Mon, 17 Aug 2009) $
-// $Revision: 55648 $
-
-#include <boost/mpl/back_inserter.hpp>
-#include <boost/mpl/front_inserter.hpp>
-#include <boost/mpl/push_back.hpp>
-#include <boost/mpl/push_front.hpp>
-#include <boost/mpl/back_inserter.hpp>
-#include <boost/mpl/front_inserter.hpp>
-#include <boost/mpl/clear.hpp>
-#include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/aux_/na.hpp>
-#include <boost/mpl/aux_/common_name_wknd.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/preprocessor/params.hpp>
-#include <boost/mpl/aux_/preprocessor/default_params.hpp>
-#include <boost/mpl/aux_/config/ctps.hpp>
-
-#include <boost/preprocessor/arithmetic/dec.hpp>
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-#   define BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(arity, name) \
-BOOST_MPL_AUX_COMMON_NAME_WKND(name) \
-template< \
-      BOOST_MPL_PP_DEFAULT_PARAMS(arity, typename P, na) \
-    > \
-struct name \
-    : aux::name##_impl<BOOST_MPL_PP_PARAMS(arity, P)> \
-{ \
-}; \
-\
-template< \
-      BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), typename P) \
-    > \
-struct name< BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), P),na > \
-    : if_< has_push_back< typename clear<P1>::type> \
-        , aux::name##_impl< \
-              BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), P) \
-            , back_inserter< typename clear<P1>::type > \
-            > \
-        , aux::reverse_##name##_impl< \
-              BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), P) \
-            , front_inserter< typename clear<P1>::type > \
-            > \
-        >::type \
-{ \
-}; \
-\
-template< \
-      BOOST_MPL_PP_DEFAULT_PARAMS(arity, typename P, na) \
-    > \
-struct reverse_##name \
-    : aux::reverse_##name##_impl<BOOST_MPL_PP_PARAMS(arity, P)> \
-{ \
-}; \
-\
-template< \
-      BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), typename P) \
-    > \
-struct reverse_##name< BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), P),na > \
-    : if_< has_push_back<P1> \
-        , aux::reverse_##name##_impl< \
-              BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), P) \
-            , back_inserter< typename clear<P1>::type > \
-            > \
-        , aux::name##_impl< \
-              BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), P) \
-            , front_inserter< typename clear<P1>::type > \
-            > \
-        >::type \
-{ \
-}; \
-BOOST_MPL_AUX_NA_SPEC(arity, name) \
-BOOST_MPL_AUX_NA_SPEC(arity, reverse_##name) \
-/**/
-
-#else
-
-#   define BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(arity, name) \
-BOOST_MPL_AUX_COMMON_NAME_WKND(name) \
-template< \
-      BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), typename P) \
-    > \
-struct def_##name##_impl \
-    : if_< has_push_back<P1> \
-        , aux::name##_impl< \
-              BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), P) \
-            , back_inserter< typename clear<P1>::type > \
-            > \
-        , aux::reverse_##name##_impl< \
-              BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), P) \
-            , front_inserter< typename clear<P1>::type > \
-            > \
-        >::type \
-{ \
-}; \
-\
-template< \
-      BOOST_MPL_PP_DEFAULT_PARAMS(arity, typename P, na) \
-    > \
-struct name \
-{ \
-    typedef typename eval_if< \
-          is_na<BOOST_PP_CAT(P, arity)> \
-        , def_##name##_impl<BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), P)> \
-        , aux::name##_impl<BOOST_MPL_PP_PARAMS(arity, P)> \
-        >::type type; \
-}; \
-\
-template< \
-      BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), typename P) \
-    > \
-struct def_reverse_##name##_impl \
-    : if_< has_push_back<P1> \
-        , aux::reverse_##name##_impl< \
-              BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), P) \
-            , back_inserter< typename clear<P1>::type > \
-            > \
-        , aux::name##_impl< \
-              BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), P) \
-            , front_inserter< typename clear<P1>::type > \
-            > \
-        >::type \
-{ \
-}; \
-template< \
-      BOOST_MPL_PP_DEFAULT_PARAMS(arity, typename P, na) \
-    > \
-struct reverse_##name \
-{ \
-    typedef typename eval_if< \
-          is_na<BOOST_PP_CAT(P, arity)> \
-        , def_reverse_##name##_impl<BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(arity), P)> \
-        , aux::reverse_##name##_impl<BOOST_MPL_PP_PARAMS(arity, P)> \
-        >::type type; \
-}; \
-BOOST_MPL_AUX_NA_SPEC(arity, name) \
-BOOST_MPL_AUX_NA_SPEC(arity, reverse_##name) \
-/**/
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#endif // BOOST_MPL_AUX_INSERTER_ALGORITHM_HPP_INCLUDED
diff --git a/boost/mpl/aux_/integral_wrapper.hpp b/boost/mpl/aux_/integral_wrapper.hpp
deleted file mode 100644
index d36e7cb..0000000
--- a/boost/mpl/aux_/integral_wrapper.hpp
+++ /dev/null
@@ -1,93 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2006
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: integral_wrapper.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION!
-
-#include <boost/mpl/integral_c_tag.hpp>
-#include <boost/mpl/aux_/static_cast.hpp>
-#include <boost/mpl/aux_/nttp_decl.hpp>
-#include <boost/mpl/aux_/config/static_constant.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#include <boost/preprocessor/cat.hpp>
-
-#if !defined(AUX_WRAPPER_NAME)
-#   define AUX_WRAPPER_NAME BOOST_PP_CAT(AUX_WRAPPER_VALUE_TYPE,_)
-#endif
-
-#if !defined(AUX_WRAPPER_PARAMS)
-#   define AUX_WRAPPER_PARAMS(N) BOOST_MPL_AUX_NTTP_DECL(AUX_WRAPPER_VALUE_TYPE, N)
-#endif
-
-#if !defined(AUX_WRAPPER_INST)
-#   if BOOST_WORKAROUND(__MWERKS__, <= 0x2407)
-#       define AUX_WRAPPER_INST(value) AUX_WRAPPER_NAME< value >
-#   else 
-#       define AUX_WRAPPER_INST(value) BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::AUX_WRAPPER_NAME< value >
-#   endif
-#endif
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-
-template< AUX_WRAPPER_PARAMS(N) >
-struct AUX_WRAPPER_NAME
-{
-    BOOST_STATIC_CONSTANT(AUX_WRAPPER_VALUE_TYPE, value = N);
-// agurt, 08/mar/03: SGI MIPSpro C++ workaround, have to #ifdef because some 
-// other compilers (e.g. MSVC) are not particulary happy about it
-#if BOOST_WORKAROUND(__EDG_VERSION__, <= 238)
-    typedef struct AUX_WRAPPER_NAME type;
-#else
-    typedef AUX_WRAPPER_NAME type;
-#endif
-    typedef AUX_WRAPPER_VALUE_TYPE value_type;
-    typedef integral_c_tag tag;
-
-// have to #ifdef here: some compilers don't like the 'N + 1' form (MSVC),
-// while some other don't like 'value + 1' (Borland), and some don't like
-// either
-#if BOOST_WORKAROUND(__EDG_VERSION__, <= 243)
- private:
-    BOOST_STATIC_CONSTANT(AUX_WRAPPER_VALUE_TYPE, next_value = BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (N + 1)));
-    BOOST_STATIC_CONSTANT(AUX_WRAPPER_VALUE_TYPE, prior_value = BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (N - 1)));
- public:
-    typedef AUX_WRAPPER_INST(next_value) next;
-    typedef AUX_WRAPPER_INST(prior_value) prior;
-#elif BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x561)) \
-    || BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(502)) \
-    || (BOOST_WORKAROUND(__HP_aCC, <= 53800) && (BOOST_WORKAROUND(__hpxstd98, != 1)))
-    typedef AUX_WRAPPER_INST( BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (N + 1)) ) next;
-    typedef AUX_WRAPPER_INST( BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (N - 1)) ) prior;
-#else
-    typedef AUX_WRAPPER_INST( BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (value + 1)) ) next;
-    typedef AUX_WRAPPER_INST( BOOST_MPL_AUX_STATIC_CAST(AUX_WRAPPER_VALUE_TYPE, (value - 1)) ) prior;
-#endif
-
-    // enables uniform function call syntax for families of overloaded 
-    // functions that return objects of both arithmetic ('int', 'long',
-    // 'double', etc.) and wrapped integral types (for an example, see 
-    // "mpl/example/power.cpp")
-    operator AUX_WRAPPER_VALUE_TYPE() const { return static_cast<AUX_WRAPPER_VALUE_TYPE>(this->value); } 
-};
-
-#if !defined(BOOST_NO_INCLASS_MEMBER_INITIALIZATION)
-template< AUX_WRAPPER_PARAMS(N) >
-AUX_WRAPPER_VALUE_TYPE const AUX_WRAPPER_INST(N)::value;
-#endif
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-
-#undef AUX_WRAPPER_NAME
-#undef AUX_WRAPPER_PARAMS
-#undef AUX_WRAPPER_INST
-#undef AUX_WRAPPER_VALUE_TYPE
diff --git a/boost/mpl/aux_/is_msvc_eti_arg.hpp b/boost/mpl/aux_/is_msvc_eti_arg.hpp
deleted file mode 100644
index 917b57c..0000000
--- a/boost/mpl/aux_/is_msvc_eti_arg.hpp
+++ /dev/null
@@ -1,64 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_IS_MSVC_ETI_ARG_HPP_INCLUDED
-#define BOOST_MPL_AUX_IS_MSVC_ETI_ARG_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: is_msvc_eti_arg.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/yes_no.hpp>
-#include <boost/mpl/aux_/config/eti.hpp>
-#include <boost/mpl/aux_/config/static_constant.hpp>
-
-namespace boost { namespace mpl { namespace aux {
-
-#if defined(BOOST_MPL_CFG_MSVC_ETI_BUG)
-
-#if defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG)
-
-template< typename T >
-struct is_msvc_eti_arg
-{ 
-    BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-#else // BOOST_MPL_CFG_MSVC_60_ETI_BUG
-
-struct eti_int_convertible
-{
-    eti_int_convertible(int);
-};
-
-template< typename T >
-struct is_msvc_eti_arg
-{ 
-    static no_tag test(...);
-    static yes_tag test(eti_int_convertible);
-    static T& get();
-
-    BOOST_STATIC_CONSTANT(bool, value = 
-          sizeof(test(get())) == sizeof(yes_tag)
-        );
-};
-
-#endif
-
-template<>
-struct is_msvc_eti_arg<int>
-{ 
-    BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-#endif // BOOST_MPL_CFG_MSVC_ETI_BUG
-
-}}}
-
-#endif // BOOST_MPL_AUX_IS_MSVC_ETI_ARG_HPP_INCLUDED
diff --git a/boost/mpl/aux_/iter_apply.hpp b/boost/mpl/aux_/iter_apply.hpp
deleted file mode 100644
index fee4d81..0000000
--- a/boost/mpl/aux_/iter_apply.hpp
+++ /dev/null
@@ -1,47 +0,0 @@
-
-#ifndef BOOST_MPL_ITER_APPLY_HPP_INCLUDED
-#define BOOST_MPL_ITER_APPLY_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: iter_apply.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/apply.hpp>
-#include <boost/mpl/deref.hpp>
-
-namespace boost { namespace mpl { namespace aux {
-
-template<
-      typename F
-    , typename Iterator
-    >
-struct iter_apply1
-    : apply1< F,typename deref<Iterator>::type >
-{
-};
-
-template<
-      typename F
-    , typename Iterator1
-    , typename Iterator2
-    >
-struct iter_apply2
-    : apply2<
-          F
-        , typename deref<Iterator1>::type
-        , typename deref<Iterator2>::type
-        >
-{
-};
-
-}}}
-
-#endif // BOOST_MPL_ITER_APPLY_HPP_INCLUDED
diff --git a/boost/mpl/aux_/iter_fold_if_impl.hpp b/boost/mpl/aux_/iter_fold_if_impl.hpp
deleted file mode 100644
index ad80250..0000000
--- a/boost/mpl/aux_/iter_fold_if_impl.hpp
+++ /dev/null
@@ -1,210 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_ITER_FOLD_IF_IMPL_HPP_INCLUDED
-#define BOOST_MPL_AUX_ITER_FOLD_IF_IMPL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright David Abrahams 2001-2002
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: iter_fold_if_impl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-#   include <boost/mpl/identity.hpp>
-#   include <boost/mpl/next.hpp>
-#   include <boost/mpl/if.hpp>
-#   include <boost/mpl/apply.hpp>
-#   include <boost/mpl/aux_/value_wknd.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-#   define BOOST_MPL_PREPROCESSED_HEADER iter_fold_if_impl.hpp
-#   include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <boost/mpl/limits/unrolling.hpp>
-#   include <boost/preprocessor/arithmetic/sub.hpp>
-#   include <boost/preprocessor/repeat.hpp>
-#   include <boost/preprocessor/inc.hpp>
-#   include <boost/preprocessor/dec.hpp>
-#   include <boost/preprocessor/cat.hpp>
-
-namespace boost { namespace mpl { namespace aux {
-
-template< typename Iterator, typename State >
-struct iter_fold_if_null_step
-{
-    typedef State state;
-    typedef Iterator iterator;
-};
-
-template< bool >
-struct iter_fold_if_step_impl
-{
-    template<
-          typename Iterator
-        , typename State
-        , typename StateOp
-        , typename IteratorOp
-        >
-    struct result_
-    {
-        typedef typename apply2<StateOp,State,Iterator>::type state;
-        typedef typename IteratorOp::type iterator;
-    };
-};
-
-template<>
-struct iter_fold_if_step_impl<false>
-{
-    template<
-          typename Iterator
-        , typename State
-        , typename StateOp
-        , typename IteratorOp
-        >
-    struct result_
-    {
-        typedef State state;
-        typedef Iterator iterator;
-    };
-};
-
-// agurt, 25/jun/02: MSVC 6.5 workaround, had to get rid of inheritance 
-// here and in 'iter_fold_if_backward_step', because sometimes it interfered 
-// with the "early template instantiation bug" in _really_ ugly ways
-template<
-      typename Iterator
-    , typename State
-    , typename ForwardOp
-    , typename Predicate
-    >
-struct iter_fold_if_forward_step
-{
-    typedef typename apply2<Predicate,State,Iterator>::type not_last;
-    typedef typename iter_fold_if_step_impl<
-          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
-        >::template result_< Iterator,State,ForwardOp,mpl::next<Iterator> > impl_;
-
-    typedef typename impl_::state state;
-    typedef typename impl_::iterator iterator;
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename BackwardOp
-    , typename Predicate
-    >
-struct iter_fold_if_backward_step
-{
-    typedef typename apply2<Predicate,State,Iterator>::type not_last;
-    typedef typename iter_fold_if_step_impl<
-          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
-        >::template result_< Iterator,State,BackwardOp,identity<Iterator> > impl_;
-
-    typedef typename impl_::state state;
-    typedef typename impl_::iterator iterator;
-};
-
-
-// local macros, #undef-ined at the end of the header
-
-#   define AUX_ITER_FOLD_FORWARD_STEP(unused, i, unused2) \
-    typedef iter_fold_if_forward_step< \
-          typename BOOST_PP_CAT(forward_step,i)::iterator \
-        , typename BOOST_PP_CAT(forward_step,i)::state \
-        , ForwardOp \
-        , ForwardPredicate \
-        > BOOST_PP_CAT(forward_step, BOOST_PP_INC(i)); \
-    /**/
-
-#   define AUX_ITER_FOLD_BACKWARD_STEP_FUNC(i) \
-    typedef iter_fold_if_backward_step< \
-          typename BOOST_PP_CAT(forward_step,BOOST_PP_DEC(i))::iterator \
-        , typename BOOST_PP_CAT(backward_step,i)::state \
-        , BackwardOp \
-        , BackwardPredicate \
-        > BOOST_PP_CAT(backward_step,BOOST_PP_DEC(i)); \
-    /**/
-
-#   define AUX_ITER_FOLD_BACKWARD_STEP(unused, i, unused2) \
-    AUX_ITER_FOLD_BACKWARD_STEP_FUNC( \
-        BOOST_PP_SUB_D(1,BOOST_MPL_LIMIT_UNROLLING,i) \
-        ) \
-    /**/
-
-#   define AUX_LAST_FORWARD_STEP \
-    BOOST_PP_CAT(forward_step, BOOST_MPL_LIMIT_UNROLLING) \
-    /**/
-
-#   define AUX_LAST_BACKWARD_STEP \
-    BOOST_PP_CAT(backward_step, BOOST_MPL_LIMIT_UNROLLING) \
-    /**/
-
-template<
-      typename Iterator
-    , typename State
-    , typename ForwardOp
-    , typename ForwardPredicate
-    , typename BackwardOp
-    , typename BackwardPredicate
-    >
-struct iter_fold_if_impl
-{
- private:
-    typedef iter_fold_if_null_step<Iterator,State> forward_step0;
-    BOOST_PP_REPEAT(
-          BOOST_MPL_LIMIT_UNROLLING
-        , AUX_ITER_FOLD_FORWARD_STEP
-        , unused
-        )
-    
-    typedef typename if_<
-          typename AUX_LAST_FORWARD_STEP::not_last
-        , iter_fold_if_impl<
-              typename AUX_LAST_FORWARD_STEP::iterator
-            , typename AUX_LAST_FORWARD_STEP::state
-            , ForwardOp
-            , ForwardPredicate
-            , BackwardOp
-            , BackwardPredicate
-            >
-        , iter_fold_if_null_step<
-              typename AUX_LAST_FORWARD_STEP::iterator
-            , typename AUX_LAST_FORWARD_STEP::state
-            >
-        >::type AUX_LAST_BACKWARD_STEP;
-
-    BOOST_PP_REPEAT(
-          BOOST_MPL_LIMIT_UNROLLING
-        , AUX_ITER_FOLD_BACKWARD_STEP
-        , unused
-        )
-
- public:
-    typedef typename backward_step0::state state;
-    typedef typename AUX_LAST_BACKWARD_STEP::iterator iterator;
-};
-
-#   undef AUX_LAST_BACKWARD_STEP
-#   undef AUX_LAST_FORWARD_STEP
-#   undef AUX_ITER_FOLD_BACKWARD_STEP
-#   undef AUX_ITER_FOLD_BACKWARD_STEP_FUNC
-#   undef AUX_ITER_FOLD_FORWARD_STEP
-
-}}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_AUX_ITER_FOLD_IF_IMPL_HPP_INCLUDED
diff --git a/boost/mpl/aux_/iter_fold_impl.hpp b/boost/mpl/aux_/iter_fold_impl.hpp
deleted file mode 100644
index 7bc5720..0000000
--- a/boost/mpl/aux_/iter_fold_impl.hpp
+++ /dev/null
@@ -1,42 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_ITER_FOLD_IMPL_HPP_INCLUDED
-#define BOOST_MPL_AUX_ITER_FOLD_IMPL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: iter_fold_impl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-#   include <boost/mpl/next_prior.hpp>
-#   include <boost/mpl/apply.hpp>
-#   include <boost/mpl/aux_/config/ctps.hpp>
-#   if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-#       include <boost/mpl/if.hpp>
-#       include <boost/type_traits/is_same.hpp>
-#   endif
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-#   define BOOST_MPL_PREPROCESSED_HEADER iter_fold_impl.hpp
-#   include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-#   define AUX778076_FOLD_IMPL_OP(iter) iter
-#   define AUX778076_FOLD_IMPL_NAME_PREFIX iter_fold
-#   include <boost/mpl/aux_/fold_impl_body.hpp>
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_AUX_ITER_FOLD_IMPL_HPP_INCLUDED
diff --git a/boost/mpl/aux_/lambda_arity_param.hpp b/boost/mpl/aux_/lambda_arity_param.hpp
deleted file mode 100644
index 5418f2c..0000000
--- a/boost/mpl/aux_/lambda_arity_param.hpp
+++ /dev/null
@@ -1,25 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_LAMBDA_ARITY_PARAM_HPP_INCLUDED
-#define BOOST_MPL_AUX_LAMBDA_ARITY_PARAM_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: lambda_arity_param.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/config/ttp.hpp>
-
-#if !defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING)
-#   define BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(param)    
-#else
-#   define BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(param) , param
-#endif
-
-#endif // BOOST_MPL_AUX_LAMBDA_ARITY_PARAM_HPP_INCLUDED
diff --git a/boost/mpl/aux_/lambda_no_ctps.hpp b/boost/mpl/aux_/lambda_no_ctps.hpp
deleted file mode 100644
index 1c383b4..0000000
--- a/boost/mpl/aux_/lambda_no_ctps.hpp
+++ /dev/null
@@ -1,193 +0,0 @@
-
-#if !defined(BOOST_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef BOOST_MPL_AUX_LAMBDA_NO_CTPS_HPP_INCLUDED
-#define BOOST_MPL_AUX_LAMBDA_NO_CTPS_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: lambda_no_ctps.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-#   include <boost/mpl/lambda_fwd.hpp>
-#   include <boost/mpl/bind_fwd.hpp>
-#   include <boost/mpl/protect.hpp>
-#   include <boost/mpl/is_placeholder.hpp>
-#   include <boost/mpl/if.hpp>
-#   include <boost/mpl/identity.hpp>
-#   include <boost/mpl/bool.hpp>
-#   include <boost/mpl/aux_/na_spec.hpp>
-#   include <boost/mpl/aux_/lambda_support.hpp>
-#   include <boost/mpl/aux_/template_arity.hpp>
-#   include <boost/mpl/aux_/value_wknd.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if    !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-#   define BOOST_MPL_PREPROCESSED_HEADER lambda_no_ctps.hpp
-#   include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <boost/mpl/limits/arity.hpp>
-#   include <boost/mpl/aux_/preprocessor/params.hpp>
-#   include <boost/mpl/aux_/preprocessor/default_params.hpp>
-#   include <boost/mpl/aux_/preprocessor/repeat.hpp>
-#   include <boost/mpl/aux_/preprocessor/enum.hpp>
-#   include <boost/mpl/aux_/config/msvc.hpp>
-#   include <boost/mpl/aux_/config/workaround.hpp>
-
-#   include <boost/preprocessor/comma_if.hpp>
-#   include <boost/preprocessor/iterate.hpp>
-#   include <boost/preprocessor/inc.hpp>
-#   include <boost/preprocessor/cat.hpp>
-
-namespace boost { namespace mpl {
-
-#   define AUX778076_LAMBDA_PARAMS(i_, param) \
-    BOOST_MPL_PP_PARAMS(i_, param) \
-    /**/
-
-namespace aux {
-
-#define n_ BOOST_MPL_LIMIT_METAFUNCTION_ARITY
-template<
-      BOOST_MPL_PP_DEFAULT_PARAMS(n_,bool C,false)
-    >
-struct lambda_or
-    : true_
-{
-};
-
-template<>
-struct lambda_or< BOOST_MPL_PP_ENUM(n_,false) >
-    : false_
-{
-};
-#undef n_
-
-template< typename Arity > struct lambda_impl
-{
-    template< typename T, typename Tag, typename Protect > struct result_
-    {
-        typedef T type;
-        typedef is_placeholder<T> is_le;
-    };
-};
-
-#define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(1, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, <boost/mpl/aux_/lambda_no_ctps.hpp>))
-#include BOOST_PP_ITERATE()
-
-} // namespace aux
-
-template<
-      typename T
-    , typename Tag
-    , typename Protect
-    >
-struct lambda
-{
-    /// Metafunction forwarding confuses MSVC 6.x
-    typedef typename aux::template_arity<T>::type arity_;
-    typedef typename aux::lambda_impl<arity_>
-        ::template result_< T,Tag,Protect > l_;
-
-    typedef typename l_::type type;
-    typedef typename l_::is_le is_le;
-    
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect))
-};
-
-BOOST_MPL_AUX_NA_SPEC2(1, 3, lambda)
-
-template<
-      typename T
-    >
-struct is_lambda_expression
-    : lambda<T>::is_le
-{
-};
-
-#   undef AUX778076_LAMBDA_PARAMS
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_AUX_LAMBDA_NO_CTPS_HPP_INCLUDED
-
-///// iteration, depth == 1
-
-#else
-
-#define i_ BOOST_PP_FRAME_ITERATION(1)
-
-#   define AUX778076_LAMBDA_TYPEDEF(unused, i_, F) \
-    typedef lambda< \
-          typename F::BOOST_PP_CAT(arg,BOOST_PP_INC(i_)) \
-        , Tag \
-        , false_ \
-        > BOOST_PP_CAT(l,BOOST_PP_INC(i_)); \
-    /**/
-
-#   define AUX778076_IS_LE_TYPEDEF(unused, i_, unused2) \
-    typedef typename BOOST_PP_CAT(l,BOOST_PP_INC(i_))::is_le \
-        BOOST_PP_CAT(is_le,BOOST_PP_INC(i_)); \
-    /**/
-
-#   define AUX778076_IS_LAMBDA_EXPR(unused, i_, unused2) \
-    BOOST_PP_COMMA_IF(i_) \
-    BOOST_MPL_AUX_MSVC_VALUE_WKND(BOOST_PP_CAT(is_le,BOOST_PP_INC(i_)))::value \
-    /**/
-
-#   define AUX778076_LAMBDA_RESULT(unused, i_, unused2) \
-    , typename BOOST_PP_CAT(l,BOOST_PP_INC(i_))::type \
-    /**/
-
-template<> struct lambda_impl< int_<i_> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        BOOST_MPL_PP_REPEAT(i_, AUX778076_LAMBDA_TYPEDEF, F)
-        BOOST_MPL_PP_REPEAT(i_, AUX778076_IS_LE_TYPEDEF, unused)
-
-        typedef aux::lambda_or<
-              BOOST_MPL_PP_REPEAT(i_, AUX778076_IS_LAMBDA_EXPR, unused)
-            > is_le;
-
-        typedef BOOST_PP_CAT(bind,i_)<
-              typename F::rebind
-            BOOST_MPL_PP_REPEAT(i_, AUX778076_LAMBDA_RESULT, unused)
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-    
-        typedef typename type_::type type;
-    };
-};
-
-#   undef AUX778076_LAMBDA_RESULT
-#   undef AUX778076_IS_LAMBDA_EXPR
-#   undef AUX778076_IS_LE_TYPEDEF
-#   undef AUX778076_LAMBDA_TYPEDEF
-
-#undef i_
-
-#endif // BOOST_PP_IS_ITERATING
diff --git a/boost/mpl/aux_/lambda_spec.hpp b/boost/mpl/aux_/lambda_spec.hpp
deleted file mode 100644
index 52b1dcd..0000000
--- a/boost/mpl/aux_/lambda_spec.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_LAMBDA_SPEC_HPP_INCLUDED
-#define BOOST_MPL_AUX_LAMBDA_SPEC_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2007
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: lambda_spec.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/void.hpp>
-#include <boost/mpl/lambda_fwd.hpp>
-#include <boost/mpl/int_fwd.hpp>
-#include <boost/mpl/aux_/preprocessor/params.hpp>
-#include <boost/mpl/aux_/lambda_arity_param.hpp>
-#include <boost/mpl/aux_/config/lambda.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT)
-
-#   define BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(i, name) \
-template< \
-      BOOST_MPL_PP_PARAMS(i, typename T) \
-    , typename Tag \
-    > \
-struct lambda< \
-      name< BOOST_MPL_PP_PARAMS(i, T) > \
-    , Tag \
-    BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(int_<i>) \
-    > \
-{ \
-    typedef false_ is_le; \
-    typedef name< BOOST_MPL_PP_PARAMS(i, T) > result_; \
-    typedef result_ type; \
-}; \
-/**/
-
-#else
-
-#   define BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(i, name) /**/
-
-#endif
-
-#endif // BOOST_MPL_AUX_LAMBDA_SPEC_HPP_INCLUDED
diff --git a/boost/mpl/aux_/lambda_support.hpp b/boost/mpl/aux_/lambda_support.hpp
deleted file mode 100644
index 2d25348..0000000
--- a/boost/mpl/aux_/lambda_support.hpp
+++ /dev/null
@@ -1,169 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_LAMBDA_SUPPORT_HPP_INCLUDED
-#define BOOST_MPL_AUX_LAMBDA_SUPPORT_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: lambda_support.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/config/lambda.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT)
-
-#   define BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) /**/
-#   define BOOST_MPL_AUX_LAMBDA_SUPPORT(i,name,params) /**/
-
-#else
-
-#   include <boost/mpl/int_fwd.hpp>
-#   include <boost/mpl/aux_/yes_no.hpp>
-#   include <boost/mpl/aux_/na_fwd.hpp>
-#   include <boost/mpl/aux_/preprocessor/params.hpp>
-#   include <boost/mpl/aux_/preprocessor/enum.hpp>
-#   include <boost/mpl/aux_/config/msvc.hpp>
-#   include <boost/mpl/aux_/config/workaround.hpp>
-
-#   include <boost/preprocessor/tuple/to_list.hpp>
-#   include <boost/preprocessor/list/for_each_i.hpp>
-#   include <boost/preprocessor/inc.hpp>
-#   include <boost/preprocessor/cat.hpp>
-
-#   define BOOST_MPL_AUX_LAMBDA_SUPPORT_ARG_TYPEDEF_FUNC(R,typedef_,i,param) \
-    typedef_ param BOOST_PP_CAT(arg,BOOST_PP_INC(i)); \
-    /**/
-
-// agurt, 07/mar/03: restore an old revision for the sake of SGI MIPSpro C++
-#if BOOST_WORKAROUND(__EDG_VERSION__, <= 238) 
-
-#   define BOOST_MPL_AUX_LAMBDA_SUPPORT(i, name, params) \
-    typedef BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::int_<i> arity; \
-    BOOST_PP_LIST_FOR_EACH_I_R( \
-          1 \
-        , BOOST_MPL_AUX_LAMBDA_SUPPORT_ARG_TYPEDEF_FUNC \
-        , typedef \
-        , BOOST_PP_TUPLE_TO_LIST(i,params) \
-        ) \
-    struct rebind \
-    { \
-        template< BOOST_MPL_PP_PARAMS(i,typename U) > struct apply \
-            : name< BOOST_MPL_PP_PARAMS(i,U) > \
-        { \
-        }; \
-    }; \
-    /**/
-
-#   define BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(i, name, params) \
-    /**/
-
-#elif BOOST_WORKAROUND(__EDG_VERSION__, <= 244) && !defined(BOOST_INTEL_CXX_VERSION)
-// agurt, 18/jan/03: old EDG-based compilers actually enforce 11.4 para 9
-// (in strict mode), so we have to provide an alternative to the 
-// MSVC-optimized implementation
-
-#   define BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \
-    typedef BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::int_<i> arity; \
-    BOOST_PP_LIST_FOR_EACH_I_R( \
-          1 \
-        , BOOST_MPL_AUX_LAMBDA_SUPPORT_ARG_TYPEDEF_FUNC \
-        , typedef \
-        , BOOST_PP_TUPLE_TO_LIST(i,params) \
-        ) \
-    struct rebind; \
-/**/
-
-#   define BOOST_MPL_AUX_LAMBDA_SUPPORT(i, name, params) \
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \
-}; \
-template< BOOST_MPL_PP_PARAMS(i,typename T) > \
-struct name<BOOST_MPL_PP_PARAMS(i,T)>::rebind \
-{ \
-    template< BOOST_MPL_PP_PARAMS(i,typename U) > struct apply \
-        : name< BOOST_MPL_PP_PARAMS(i,U) > \
-    { \
-    }; \
-/**/
-
-#else // __EDG_VERSION__
-
-namespace boost { namespace mpl { namespace aux {
-template< typename T > struct has_rebind_tag;
-}}}
-
-#   define BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \
-    typedef BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::int_<i> arity; \
-    BOOST_PP_LIST_FOR_EACH_I_R( \
-          1 \
-        , BOOST_MPL_AUX_LAMBDA_SUPPORT_ARG_TYPEDEF_FUNC \
-        , typedef \
-        , BOOST_PP_TUPLE_TO_LIST(i,params) \
-        ) \
-    friend class BOOST_PP_CAT(name,_rebind); \
-    typedef BOOST_PP_CAT(name,_rebind) rebind; \
-/**/
-
-#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610))
-#   define BOOST_MPL_AUX_LAMBDA_SUPPORT_HAS_REBIND(i, name, params) \
-template< BOOST_MPL_PP_PARAMS(i,typename T) > \
-::boost::mpl::aux::yes_tag operator|( \
-      ::boost::mpl::aux::has_rebind_tag<int> \
-    , name<BOOST_MPL_PP_PARAMS(i,T)>* \
-    ); \
-::boost::mpl::aux::no_tag operator|( \
-      ::boost::mpl::aux::has_rebind_tag<int> \
-    , name< BOOST_MPL_PP_ENUM(i,::boost::mpl::na) >* \
-    ); \
-/**/
-#elif !BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-#   define BOOST_MPL_AUX_LAMBDA_SUPPORT_HAS_REBIND(i, name, params) \
-template< BOOST_MPL_PP_PARAMS(i,typename T) > \
-::boost::mpl::aux::yes_tag operator|( \
-      ::boost::mpl::aux::has_rebind_tag<int> \
-    , ::boost::mpl::aux::has_rebind_tag< name<BOOST_MPL_PP_PARAMS(i,T)> >* \
-    ); \
-/**/
-#else
-#   define BOOST_MPL_AUX_LAMBDA_SUPPORT_HAS_REBIND(i, name, params) /**/
-#endif
-
-#   if !defined(__BORLANDC__)
-#   define BOOST_MPL_AUX_LAMBDA_SUPPORT(i, name, params) \
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \
-}; \
-BOOST_MPL_AUX_LAMBDA_SUPPORT_HAS_REBIND(i, name, params) \
-class BOOST_PP_CAT(name,_rebind) \
-{ \
- public: \
-    template< BOOST_MPL_PP_PARAMS(i,typename U) > struct apply \
-        : name< BOOST_MPL_PP_PARAMS(i,U) > \
-    { \
-    }; \
-/**/
-#   else
-#   define BOOST_MPL_AUX_LAMBDA_SUPPORT(i, name, params) \
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \
-}; \
-BOOST_MPL_AUX_LAMBDA_SUPPORT_HAS_REBIND(i, name, params) \
-class BOOST_PP_CAT(name,_rebind) \
-{ \
- public: \
-    template< BOOST_MPL_PP_PARAMS(i,typename U) > struct apply \
-    { \
-        typedef typename name< BOOST_MPL_PP_PARAMS(i,U) >::type type; \
-    }; \
-/**/
-#   endif // __BORLANDC__
-
-#endif // __EDG_VERSION__
-
-#endif // BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT
-
-#endif // BOOST_MPL_AUX_LAMBDA_SUPPORT_HPP_INCLUDED
diff --git a/boost/mpl/aux_/largest_int.hpp b/boost/mpl/aux_/largest_int.hpp
deleted file mode 100644
index 1b9f1cf..0000000
--- a/boost/mpl/aux_/largest_int.hpp
+++ /dev/null
@@ -1,63 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_LARGEST_INT_HPP_INCLUDED
-#define BOOST_MPL_AUX_LARGEST_INT_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: largest_int.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/int.hpp>
-#include <boost/mpl/aux_/config/integral.hpp>
-#include <boost/config.hpp>
-
-namespace boost { namespace mpl { namespace aux {
-
-template< typename T > struct integral_rank;
-
-template<> struct integral_rank<bool>           : int_<1> {};
-template<> struct integral_rank<signed char>    : int_<2> {};
-template<> struct integral_rank<char>           : int_<3> {};
-template<> struct integral_rank<unsigned char>  : int_<4> {};
-#if !defined(BOOST_NO_INTRINSIC_WCHAR_T)
-template<> struct integral_rank<wchar_t>        : int_<5> {};
-#endif
-template<> struct integral_rank<short>          : int_<6> {};
-template<> struct integral_rank<unsigned short> : int_<7> {};
-template<> struct integral_rank<int>            : int_<8> {};
-template<> struct integral_rank<unsigned int>   : int_<9> {};
-template<> struct integral_rank<long>           : int_<10> {};
-template<> struct integral_rank<unsigned long>  : int_<11> {};
-
-#if defined(BOOST_HAS_LONG_LONG)
-template<> struct integral_rank<long_long_type> : int_<12> {};
-template<> struct integral_rank<ulong_long_type>: int_<13> {};
-#endif
-
-template< typename T1, typename T2 > struct largest_int
-#if !defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC)
-    : if_c< 
-          ( integral_rank<T1>::value >= integral_rank<T2>::value )
-        , T1
-        , T2
-        >
-{
-#else
-{
-    enum { rank1 = integral_rank<T1>::value };
-    enum { rank2 = integral_rank<T2>::value };
-    typedef typename if_c< (rank1 >= rank2),T1,T2 >::type type;
-#endif
-};
-
-}}}
-
-#endif // BOOST_MPL_AUX_LARGEST_INT_HPP_INCLUDED
diff --git a/boost/mpl/aux_/logical_op.hpp b/boost/mpl/aux_/logical_op.hpp
deleted file mode 100644
index d964049..0000000
--- a/boost/mpl/aux_/logical_op.hpp
+++ /dev/null
@@ -1,165 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: logical_op.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION!
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-#   include <boost/mpl/bool.hpp>
-#   include <boost/mpl/aux_/nested_type_wknd.hpp>
-#   include <boost/mpl/aux_/na_spec.hpp>
-#   include <boost/mpl/aux_/lambda_support.hpp>
-#endif
-
-#include <boost/mpl/limits/arity.hpp>
-#include <boost/mpl/aux_/preprocessor/params.hpp>
-#include <boost/mpl/aux_/preprocessor/ext_params.hpp>
-#include <boost/mpl/aux_/preprocessor/def_params_tail.hpp>
-#include <boost/mpl/aux_/preprocessor/enum.hpp>
-#include <boost/mpl/aux_/preprocessor/sub.hpp>
-#include <boost/mpl/aux_/config/ctps.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#include <boost/preprocessor/dec.hpp>
-#include <boost/preprocessor/inc.hpp>
-#include <boost/preprocessor/cat.hpp>
-
-namespace boost { namespace mpl {
-
-#   define AUX778076_PARAMS(param, sub) \
-    BOOST_MPL_PP_PARAMS( \
-          BOOST_MPL_PP_SUB(BOOST_MPL_LIMIT_METAFUNCTION_ARITY, sub) \
-        , param \
-        ) \
-    /**/
-
-#   define AUX778076_SHIFTED_PARAMS(param, sub) \
-    BOOST_MPL_PP_EXT_PARAMS( \
-          2, BOOST_MPL_PP_SUB(BOOST_PP_INC(BOOST_MPL_LIMIT_METAFUNCTION_ARITY), sub) \
-        , param \
-        ) \
-    /**/
-
-#   define AUX778076_SPEC_PARAMS(param) \
-    BOOST_MPL_PP_ENUM( \
-          BOOST_PP_DEC(BOOST_MPL_LIMIT_METAFUNCTION_ARITY) \
-        , param \
-        ) \
-    /**/
-
-namespace aux {
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template< bool C_, AUX778076_PARAMS(typename T, 1) >
-struct BOOST_PP_CAT(AUX778076_OP_NAME,impl)
-    : BOOST_PP_CAT(AUX778076_OP_VALUE1,_)
-{
-};
-
-template< AUX778076_PARAMS(typename T, 1) >
-struct BOOST_PP_CAT(AUX778076_OP_NAME,impl)< AUX778076_OP_VALUE2,AUX778076_PARAMS(T, 1) >
-    : BOOST_PP_CAT(AUX778076_OP_NAME,impl)<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , AUX778076_SHIFTED_PARAMS(T, 1)
-        , BOOST_PP_CAT(AUX778076_OP_VALUE2,_)
-        >
-{
-};
-
-template<>
-struct BOOST_PP_CAT(AUX778076_OP_NAME,impl)<
-          AUX778076_OP_VALUE2
-        , AUX778076_SPEC_PARAMS(BOOST_PP_CAT(AUX778076_OP_VALUE2,_))
-        >
-    : BOOST_PP_CAT(AUX778076_OP_VALUE2,_)
-{
-};
-
-#else
-
-template< bool C_ > struct BOOST_PP_CAT(AUX778076_OP_NAME,impl)
-{
-    template< AUX778076_PARAMS(typename T, 1) > struct result_
-        : BOOST_PP_CAT(AUX778076_OP_VALUE1,_)
-    {
-    };
-};
-
-template<> struct BOOST_PP_CAT(AUX778076_OP_NAME,impl)<AUX778076_OP_VALUE2>
-{
-    template< AUX778076_PARAMS(typename T, 1) > struct result_
-        : BOOST_PP_CAT(AUX778076_OP_NAME,impl)< 
-              BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-            >::template result_< AUX778076_SHIFTED_PARAMS(T,1),BOOST_PP_CAT(AUX778076_OP_VALUE2,_) >
-    {
-    };
-
-#if BOOST_WORKAROUND(BOOST_MSVC, == 1300)
-    template<> struct result_<AUX778076_SPEC_PARAMS(BOOST_PP_CAT(AUX778076_OP_VALUE2,_))>
-        : BOOST_PP_CAT(AUX778076_OP_VALUE2,_)
-    {
-    };
-};
-#else
-};
-
-template<>
-struct BOOST_PP_CAT(AUX778076_OP_NAME,impl)<AUX778076_OP_VALUE2>
-    ::result_< AUX778076_SPEC_PARAMS(BOOST_PP_CAT(AUX778076_OP_VALUE2,_)) >
-        : BOOST_PP_CAT(AUX778076_OP_VALUE2,_)
-{
-};
-#endif // BOOST_MSVC == 1300
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace aux
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
-    BOOST_MPL_PP_DEF_PARAMS_TAIL(2, typename T, BOOST_PP_CAT(AUX778076_OP_VALUE2,_))
-    >
-struct AUX778076_OP_NAME
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-    : aux::BOOST_PP_CAT(AUX778076_OP_NAME,impl)<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , AUX778076_SHIFTED_PARAMS(T,0)
-        >
-#else
-    : aux::BOOST_PP_CAT(AUX778076_OP_NAME,impl)< 
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        >::template result_< AUX778076_SHIFTED_PARAMS(T,0) >
-#endif
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          BOOST_MPL_LIMIT_METAFUNCTION_ARITY
-        , AUX778076_OP_NAME
-        , (AUX778076_PARAMS(T, 0))
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC2(
-      2
-    , BOOST_MPL_LIMIT_METAFUNCTION_ARITY
-    , AUX778076_OP_NAME
-    )
-
-}}
-
-#undef AUX778076_SPEC_PARAMS
-#undef AUX778076_SHIFTED_PARAMS
-#undef AUX778076_PARAMS
-#undef AUX778076_OP_NAME
-#undef AUX778076_OP_VALUE1
-#undef AUX778076_OP_VALUE2
diff --git a/boost/mpl/aux_/msvc_dtw.hpp b/boost/mpl/aux_/msvc_dtw.hpp
deleted file mode 100644
index b8953f5..0000000
--- a/boost/mpl/aux_/msvc_dtw.hpp
+++ /dev/null
@@ -1,68 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: msvc_dtw.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION!
-
-#include <boost/mpl/aux_/preprocessor/params.hpp>
-
-// local macros, #undef-ined at the end of the header
-#define AUX778076_DTW_PARAMS(param) \
-    BOOST_MPL_PP_PARAMS(AUX778076_MSVC_DTW_ARITY, param) \
-/**/
-
-#define AUX778076_DTW_ORIGINAL_NAME \
-    AUX778076_MSVC_DTW_ORIGINAL_NAME \
-/**/
-
-// warning: not a well-formed C++
-// workaround for MSVC 6.5's "dependent template typedef bug"
-
-template< typename F>
-struct AUX778076_MSVC_DTW_NAME
-{
-    template< bool > struct f_ : F {};
-    template<> struct f_<true>
-    {
-#if AUX778076_MSVC_DTW_ARITY > 0
-        template< AUX778076_DTW_PARAMS(typename P) > struct AUX778076_DTW_ORIGINAL_NAME
-        {
-            typedef int type;
-        };
-    };
-
-    template< AUX778076_DTW_PARAMS(typename T) > struct result_
-        : f_< aux::msvc_never_true<F>::value >
-            ::template AUX778076_DTW_ORIGINAL_NAME< AUX778076_DTW_PARAMS(T) >
-    {
-    };
-#else
-        template< typename P = int > struct AUX778076_DTW_ORIGINAL_NAME
-        {
-            typedef int type;
-        };
-    };
-
-    template< typename T = int > struct result_
-        : f_< aux::msvc_never_true<F>::value >
-            ::template AUX778076_DTW_ORIGINAL_NAME<>
-    {
-    };
-#endif
-};
-
-#undef AUX778076_DTW_ORIGINAL_NAME
-#undef AUX778076_DTW_PARAMS
-
-#undef AUX778076_MSVC_DTW_NAME
-#undef AUX778076_MSVC_DTW_ORIGINAL_NAME
-#undef AUX778076_MSVC_DTW_ARITY
diff --git a/boost/mpl/aux_/msvc_eti_base.hpp b/boost/mpl/aux_/msvc_eti_base.hpp
deleted file mode 100644
index 61bd38a..0000000
--- a/boost/mpl/aux_/msvc_eti_base.hpp
+++ /dev/null
@@ -1,77 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_MSVC_ETI_BASE_HPP_INCLUDED
-#define BOOST_MPL_AUX_MSVC_ETI_BASE_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: msvc_eti_base.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/is_msvc_eti_arg.hpp>
-#include <boost/mpl/aux_/config/eti.hpp>
-#include <boost/mpl/aux_/config/gcc.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-namespace boost { namespace mpl { namespace aux {
-
-#if defined(BOOST_MPL_CFG_MSVC_70_ETI_BUG)
-
-template< bool > struct msvc_eti_base_impl
-{
-    template< typename T > struct result_
-        : T
-    {
-        typedef T type;
-    };
-};
-
-template<> struct msvc_eti_base_impl<true>
-{
-    template< typename T > struct result_
-    {
-        typedef result_ type;
-        typedef result_ first;
-        typedef result_ second;
-        typedef result_ tag;
-        enum { value = 0 };
-    };
-};
-
-template< typename T > struct msvc_eti_base
-    : msvc_eti_base_impl< is_msvc_eti_arg<T>::value >
-        ::template result_<T>
-{
-};
-
-#else // !BOOST_MPL_CFG_MSVC_70_ETI_BUG
-
-template< typename T > struct msvc_eti_base
-    : T
-{
-#if BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0304))
-    msvc_eti_base();
-#endif
-    typedef T type;
-};
-
-#endif 
-
-template<> struct msvc_eti_base<int>
-{
-    typedef msvc_eti_base type;
-    typedef msvc_eti_base first;
-    typedef msvc_eti_base second;
-    typedef msvc_eti_base tag;
-    enum { value = 0 };
-};
-
-}}}
-
-#endif // BOOST_MPL_AUX_MSVC_ETI_BASE_HPP_INCLUDED
diff --git a/boost/mpl/aux_/msvc_is_class.hpp b/boost/mpl/aux_/msvc_is_class.hpp
deleted file mode 100644
index 54a2c57..0000000
--- a/boost/mpl/aux_/msvc_is_class.hpp
+++ /dev/null
@@ -1,58 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_MSVC_IS_CLASS_HPP_INCLUDED
-#define BOOST_MPL_AUX_MSVC_IS_CLASS_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: msvc_is_class.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/aux_/type_wrapper.hpp>
-#include <boost/mpl/aux_/yes_no.hpp>
-
-#include <boost/type_traits/is_reference.hpp>
-
-namespace boost { namespace mpl { namespace aux {
-
-template< typename T > struct is_class_helper
-{
-    typedef int (T::* type)();
-};
-
-// MSVC 6.x-specific lightweight 'is_class' implementation; 
-// Distinguishing feature: does not instantiate the type being tested.
-template< typename T >
-struct msvc_is_class_impl
-{
-    template< typename U>
-    static yes_tag  test(type_wrapper<U>*, /*typename*/ is_class_helper<U>::type = 0);
-    static no_tag   test(void const volatile*, ...);
-
-    enum { value = sizeof(test((type_wrapper<T>*)0)) == sizeof(yes_tag) };
-    typedef bool_<value> type;
-};
-
-// agurt, 17/sep/04: have to check for 'is_reference' upfront to avoid ICEs in
-// complex metaprograms
-template< typename T >
-struct msvc_is_class
-    : if_<
-          is_reference<T>
-        , false_
-        , msvc_is_class_impl<T>
-        >::type
-{
-};
-
-}}}
-
-#endif // BOOST_MPL_AUX_MSVC_IS_CLASS_HPP_INCLUDED
diff --git a/boost/mpl/aux_/msvc_never_true.hpp b/boost/mpl/aux_/msvc_never_true.hpp
deleted file mode 100644
index ca35adc..0000000
--- a/boost/mpl/aux_/msvc_never_true.hpp
+++ /dev/null
@@ -1,34 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_MSVC_NEVER_TRUE_HPP_INCLUDED
-#define BOOST_MPL_AUX_MSVC_NEVER_TRUE_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: msvc_never_true.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/config/msvc.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
-
-namespace boost { namespace mpl { namespace aux {
-
-template< typename T >
-struct msvc_never_true
-{
-    enum { value = false };
-};
-
-}}}
-
-#endif // BOOST_MSVC
-
-#endif // BOOST_MPL_AUX_MSVC_NEVER_TRUE_HPP_INCLUDED
diff --git a/boost/mpl/aux_/msvc_type.hpp b/boost/mpl/aux_/msvc_type.hpp
deleted file mode 100644
index 643fd83..0000000
--- a/boost/mpl/aux_/msvc_type.hpp
+++ /dev/null
@@ -1,62 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_MSVC_TYPE_HPP_INCLUDED
-#define BOOST_MPL_AUX_MSVC_TYPE_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: msvc_type.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/config/eti.hpp>
-#include <boost/mpl/aux_/is_msvc_eti_arg.hpp>
-
-namespace boost { namespace mpl { namespace aux {
-
-#if defined(BOOST_MPL_CFG_MSVC_70_ETI_BUG)
-
-template< bool > struct msvc_type_impl
-{
-    template< typename T > struct result_
-    {
-        typedef typename T::type type;
-    };
-};
-
-template<> struct msvc_type_impl<true>
-{
-    template< typename T > struct result_
-    {
-        typedef result_ type;
-    };
-};
-
-template< typename T > struct msvc_type
-    : msvc_type_impl< is_msvc_eti_arg<T>::value >
-        ::template result_<T>
-{
-};
-
-#else // BOOST_MPL_CFG_MSVC_70_ETI_BUG
-
-template< typename T > struct msvc_type 
-{
-    typedef typename T::type type;
-};
-
-template<> struct msvc_type<int>
-{
-    typedef int type;
-};
-
-#endif
-
-}}}
-
-#endif // BOOST_MPL_AUX_MSVC_TYPE_HPP_INCLUDED
diff --git a/boost/mpl/aux_/na.hpp b/boost/mpl/aux_/na.hpp
deleted file mode 100644
index b75fcdd..0000000
--- a/boost/mpl/aux_/na.hpp
+++ /dev/null
@@ -1,95 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_NA_HPP_INCLUDED
-#define BOOST_MPL_AUX_NA_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: na.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/aux_/na_fwd.hpp>
-#include <boost/mpl/aux_/config/msvc.hpp>
-#include <boost/mpl/aux_/config/ctps.hpp>
-
-namespace boost { namespace mpl {
-
-template< typename T >
-struct is_na
-    : false_
-{
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-    using false_::value;
-#endif
-};
-
-template<>
-struct is_na<na>
-    : true_
-{
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-    using true_::value;
-#endif
-};
-
-template< typename T >
-struct is_not_na
-    : true_
-{
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-    using true_::value;
-#endif
-};
-
-template<>
-struct is_not_na<na>
-    : false_
-{
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-    using false_::value;
-#endif
-};
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-template< typename T, typename U > struct if_na
-{
-    typedef T type;
-};
-
-template< typename U > struct if_na<na,U>
-{
-    typedef U type;
-};
-#else
-template< typename T > struct if_na_impl
-{
-    template< typename U > struct apply
-    {
-        typedef T type;
-    };
-};
-
-template<> struct if_na_impl<na>
-{
-    template< typename U > struct apply
-    {
-        typedef U type;
-    };
-};
-
-template< typename T, typename U > struct if_na
-    : if_na_impl<T>::template apply<U>
-{
-};
-#endif
-
-}}
-
-#endif // BOOST_MPL_AUX_NA_HPP_INCLUDED
diff --git a/boost/mpl/aux_/na_assert.hpp b/boost/mpl/aux_/na_assert.hpp
deleted file mode 100644
index df88ba3..0000000
--- a/boost/mpl/aux_/na_assert.hpp
+++ /dev/null
@@ -1,34 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_NA_ASSERT_HPP_INCLUDED
-#define BOOST_MPL_AUX_NA_ASSERT_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: na_assert.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/na.hpp>
-#include <boost/mpl/aux_/config/msvc.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#if !BOOST_WORKAROUND(_MSC_FULL_VER, <= 140050601)    \
-    && !BOOST_WORKAROUND(__EDG_VERSION__, <= 243)
-#   include <boost/mpl/assert.hpp>
-#   define BOOST_MPL_AUX_ASSERT_NOT_NA(x) \
-    BOOST_MPL_ASSERT_NOT((boost::mpl::is_na<type>)) \
-/**/
-#else
-#   include <boost/static_assert.hpp>
-#   define BOOST_MPL_AUX_ASSERT_NOT_NA(x) \
-    BOOST_STATIC_ASSERT(!boost::mpl::is_na<x>::value) \
-/**/
-#endif
-
-#endif // BOOST_MPL_AUX_NA_ASSERT_HPP_INCLUDED
diff --git a/boost/mpl/aux_/na_fwd.hpp b/boost/mpl/aux_/na_fwd.hpp
deleted file mode 100644
index 2409fc8..0000000
--- a/boost/mpl/aux_/na_fwd.hpp
+++ /dev/null
@@ -1,31 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_NA_FWD_HPP_INCLUDED
-#define BOOST_MPL_AUX_NA_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: na_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/adl_barrier.hpp>
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-
-// n.a. == not available
-struct na
-{
-    typedef na type;
-    enum { value = 0 };
-};
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-BOOST_MPL_AUX_ADL_BARRIER_DECL(na)
-
-#endif // BOOST_MPL_AUX_NA_FWD_HPP_INCLUDED
diff --git a/boost/mpl/aux_/na_spec.hpp b/boost/mpl/aux_/na_spec.hpp
deleted file mode 100644
index 6cd7721..0000000
--- a/boost/mpl/aux_/na_spec.hpp
+++ /dev/null
@@ -1,175 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_NA_SPEC_HPP_INCLUDED
-#define BOOST_MPL_AUX_NA_SPEC_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: na_spec.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-#   include <boost/mpl/lambda_fwd.hpp>
-#   include <boost/mpl/int.hpp>
-#   include <boost/mpl/bool.hpp>
-#   include <boost/mpl/aux_/na.hpp>
-#   include <boost/mpl/aux_/arity.hpp>
-#   include <boost/mpl/aux_/template_arity_fwd.hpp>
-#endif
-
-#include <boost/mpl/aux_/preprocessor/params.hpp>
-#include <boost/mpl/aux_/preprocessor/enum.hpp>
-#include <boost/mpl/aux_/preprocessor/def_params_tail.hpp>
-#include <boost/mpl/aux_/lambda_arity_param.hpp>
-#include <boost/mpl/aux_/config/dtp.hpp>
-#include <boost/mpl/aux_/config/eti.hpp>
-#include <boost/mpl/aux_/nttp_decl.hpp>
-#include <boost/mpl/aux_/config/ttp.hpp>
-#include <boost/mpl/aux_/config/lambda.hpp>
-#include <boost/mpl/aux_/config/overload_resolution.hpp>
-
-
-#define BOOST_MPL_AUX_NA_PARAMS(i) \
-    BOOST_MPL_PP_ENUM(i, na) \
-/**/
-
-#if defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
-#   define BOOST_MPL_AUX_NA_SPEC_ARITY(i, name) \
-namespace aux { \
-template< BOOST_MPL_AUX_NTTP_DECL(int, N) > \
-struct arity< \
-          name< BOOST_MPL_AUX_NA_PARAMS(i) > \
-        , N \
-        > \
-    : int_< BOOST_MPL_LIMIT_METAFUNCTION_ARITY > \
-{ \
-}; \
-} \
-/**/
-#else
-#   define BOOST_MPL_AUX_NA_SPEC_ARITY(i, name) /**/
-#endif
-
-#define BOOST_MPL_AUX_NA_SPEC_MAIN(i, name) \
-template<> \
-struct name< BOOST_MPL_AUX_NA_PARAMS(i) > \
-{ \
-    template< \
-          BOOST_MPL_PP_PARAMS(i, typename T) \
-        BOOST_MPL_PP_NESTED_DEF_PARAMS_TAIL(i, typename T, na) \
-        > \
-    struct apply \
-        : name< BOOST_MPL_PP_PARAMS(i, T) > \
-    { \
-    }; \
-}; \
-/**/
-
-#if defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT)
-#   define BOOST_MPL_AUX_NA_SPEC_LAMBDA(i, name) \
-template<> \
-struct lambda< \
-      name< BOOST_MPL_AUX_NA_PARAMS(i) > \
-    , void_ \
-    , true_ \
-    > \
-{ \
-    typedef false_ is_le; \
-    typedef name< BOOST_MPL_AUX_NA_PARAMS(i) > type; \
-}; \
-template<> \
-struct lambda< \
-      name< BOOST_MPL_AUX_NA_PARAMS(i) > \
-    , void_ \
-    , false_ \
-    > \
-{ \
-    typedef false_ is_le; \
-    typedef name< BOOST_MPL_AUX_NA_PARAMS(i) > type; \
-}; \
-/**/
-#else
-#   define BOOST_MPL_AUX_NA_SPEC_LAMBDA(i, name) \
-template< typename Tag > \
-struct lambda< \
-      name< BOOST_MPL_AUX_NA_PARAMS(i) > \
-    , Tag \
-    BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(int_<-1>) \
-    > \
-{ \
-    typedef false_ is_le; \
-    typedef name< BOOST_MPL_AUX_NA_PARAMS(i) > result_; \
-    typedef name< BOOST_MPL_AUX_NA_PARAMS(i) > type; \
-}; \
-/**/
-#endif
-
-#if defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) \
-    || defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) \
-        && defined(BOOST_MPL_CFG_BROKEN_OVERLOAD_RESOLUTION)
-#   define BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(i, j, name) \
-namespace aux { \
-template< BOOST_MPL_PP_PARAMS(j, typename T) > \
-struct template_arity< \
-          name< BOOST_MPL_PP_PARAMS(j, T) > \
-        > \
-    : int_<j> \
-{ \
-}; \
-\
-template<> \
-struct template_arity< \
-          name< BOOST_MPL_PP_ENUM(i, na) > \
-        > \
-    : int_<-1> \
-{ \
-}; \
-} \
-/**/
-#else
-#   define BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(i, j, name) /**/
-#endif
-
-#if defined(BOOST_MPL_CFG_MSVC_ETI_BUG)
-#   define BOOST_MPL_AUX_NA_SPEC_ETI(i, name) \
-template<> \
-struct name< BOOST_MPL_PP_ENUM(i, int) > \
-{ \
-    typedef int type; \
-    enum { value = 0 }; \
-}; \
-/**/
-#else
-#   define BOOST_MPL_AUX_NA_SPEC_ETI(i, name) /**/
-#endif
-
-#define BOOST_MPL_AUX_NA_PARAM(param) param = na
-
-#define BOOST_MPL_AUX_NA_SPEC_NO_ETI(i, name) \
-BOOST_MPL_AUX_NA_SPEC_MAIN(i, name) \
-BOOST_MPL_AUX_NA_SPEC_LAMBDA(i, name) \
-BOOST_MPL_AUX_NA_SPEC_ARITY(i, name) \
-BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(i, i, name) \
-/**/
-
-#define BOOST_MPL_AUX_NA_SPEC(i, name) \
-BOOST_MPL_AUX_NA_SPEC_NO_ETI(i, name) \
-BOOST_MPL_AUX_NA_SPEC_ETI(i, name) \
-/**/
-
-#define BOOST_MPL_AUX_NA_SPEC2(i, j, name) \
-BOOST_MPL_AUX_NA_SPEC_MAIN(i, name) \
-BOOST_MPL_AUX_NA_SPEC_ETI(i, name) \
-BOOST_MPL_AUX_NA_SPEC_LAMBDA(i, name) \
-BOOST_MPL_AUX_NA_SPEC_ARITY(i, name) \
-BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(i, j, name) \
-/**/
-
-
-#endif // BOOST_MPL_AUX_NA_SPEC_HPP_INCLUDED
diff --git a/boost/mpl/aux_/nested_type_wknd.hpp b/boost/mpl/aux_/nested_type_wknd.hpp
deleted file mode 100644
index cc46286..0000000
--- a/boost/mpl/aux_/nested_type_wknd.hpp
+++ /dev/null
@@ -1,48 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_NESTED_TYPE_WKND_HPP_INCLUDED
-#define BOOST_MPL_AUX_NESTED_TYPE_WKND_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: nested_type_wknd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/config/gcc.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#if BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0302)) \
-    || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x561)) \
-    || BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x530)) \
-    || BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
-
-namespace boost { namespace mpl { namespace aux {
-template< typename T > struct nested_type_wknd
-    : T::type
-{
-};
-}}}
-
-#if BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
-#   define BOOST_MPL_AUX_NESTED_TYPE_WKND(T) \
-    aux::nested_type_wknd<T> \
-/**/
-#else
-#   define BOOST_MPL_AUX_NESTED_TYPE_WKND(T) \
-    ::boost::mpl::aux::nested_type_wknd<T> \
-/**/
-#endif
-
-#else // !BOOST_MPL_CFG_GCC et al.
-
-#   define BOOST_MPL_AUX_NESTED_TYPE_WKND(T) T::type
-
-#endif 
-
-#endif // BOOST_MPL_AUX_NESTED_TYPE_WKND_HPP_INCLUDED
diff --git a/boost/mpl/aux_/nttp_decl.hpp b/boost/mpl/aux_/nttp_decl.hpp
deleted file mode 100644
index 65e2929..0000000
--- a/boost/mpl/aux_/nttp_decl.hpp
+++ /dev/null
@@ -1,35 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_NTTP_DECL_HPP_INCLUDED
-#define BOOST_MPL_AUX_NTTP_DECL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: nttp_decl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/config/nttp.hpp>
-
-#if defined(BOOST_MPL_CFG_NTTP_BUG)
-
-typedef bool        _mpl_nttp_bool;
-typedef int         _mpl_nttp_int;
-typedef unsigned    _mpl_nttp_unsigned;
-typedef long        _mpl_nttp_long;
-
-#   include <boost/preprocessor/cat.hpp>
-#   define BOOST_MPL_AUX_NTTP_DECL(T, x) BOOST_PP_CAT(_mpl_nttp_,T) x /**/
-
-#else
-
-#   define BOOST_MPL_AUX_NTTP_DECL(T, x) T x /**/
-
-#endif
-
-#endif // BOOST_MPL_AUX_NTTP_DECL_HPP_INCLUDED
diff --git a/boost/mpl/aux_/numeric_cast_utils.hpp b/boost/mpl/aux_/numeric_cast_utils.hpp
deleted file mode 100644
index 11f04ed..0000000
--- a/boost/mpl/aux_/numeric_cast_utils.hpp
+++ /dev/null
@@ -1,77 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_NUMERIC_CAST_HPP_INCLUDED
-#define BOOST_MPL_AUX_NUMERIC_CAST_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: numeric_cast_utils.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/numeric_cast.hpp>
-#include <boost/mpl/apply_wrap.hpp>
-#include <boost/mpl/aux_/config/forwarding.hpp>
-
-namespace boost { namespace mpl { namespace aux {
-
-template<
-      typename F
-    , typename Tag1
-    , typename Tag2
-    >
-struct cast1st_impl
-{
-    template< typename N1, typename N2 > struct apply
-#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING)
-        : apply_wrap2< 
-              F
-            , typename apply_wrap1< BOOST_MPL_AUX_NUMERIC_CAST<Tag1,Tag2>,N1 >::type
-            , N2
-            >
-    {
-#else
-    {
-    typedef typename apply_wrap2< 
-              F
-            , typename apply_wrap1< BOOST_MPL_AUX_NUMERIC_CAST<Tag1,Tag2>,N1 >::type
-            , N2
-            >::type type;
-#endif
-    };
-};
-
-template<
-      typename F
-    , typename Tag1
-    , typename Tag2
-    >
-struct cast2nd_impl
-{
-    template< typename N1, typename N2 > struct apply
-#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING)
-        : apply_wrap2< 
-              F
-            , N1
-            , typename apply_wrap1< BOOST_MPL_AUX_NUMERIC_CAST<Tag2,Tag1>,N2 >::type
-            >
-    {
-#else
-    {
-        typedef typename apply_wrap2< 
-              F
-            , N1
-            , typename apply_wrap1< BOOST_MPL_AUX_NUMERIC_CAST<Tag2,Tag1>,N2 >::type
-            >::type type;
-#endif
-    };
-};
-
-}}}
-
-#endif // BOOST_MPL_AUX_NUMERIC_CAST_HPP_INCLUDED
diff --git a/boost/mpl/aux_/numeric_op.hpp b/boost/mpl/aux_/numeric_op.hpp
deleted file mode 100644
index 896935c..0000000
--- a/boost/mpl/aux_/numeric_op.hpp
+++ /dev/null
@@ -1,315 +0,0 @@
-
-#if !defined(BOOST_PP_IS_ITERATING)
-
-///// header body
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION!
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: numeric_op.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-#   include <boost/mpl/numeric_cast.hpp>
-#   include <boost/mpl/apply_wrap.hpp>
-#   include <boost/mpl/if.hpp>
-#   include <boost/mpl/tag.hpp>
-#   include <boost/mpl/aux_/numeric_cast_utils.hpp>
-#   include <boost/mpl/aux_/na.hpp>
-#   include <boost/mpl/aux_/na_spec.hpp>
-#   include <boost/mpl/aux_/lambda_support.hpp>
-#   include <boost/mpl/aux_/msvc_eti_base.hpp>
-#   include <boost/mpl/aux_/value_wknd.hpp>
-#   include <boost/mpl/aux_/config/eti.hpp>
-#   include <boost/mpl/aux_/nttp_decl.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/static_constant.hpp>
-
-#if defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    || defined(BOOST_MPL_PREPROCESSING_MODE)
-
-#   include <boost/mpl/limits/arity.hpp>
-#   include <boost/mpl/aux_/preprocessor/partial_spec_params.hpp>
-#   include <boost/mpl/aux_/preprocessor/def_params_tail.hpp>
-#   include <boost/mpl/aux_/preprocessor/repeat.hpp>
-#   include <boost/mpl/aux_/preprocessor/ext_params.hpp>
-#   include <boost/mpl/aux_/preprocessor/params.hpp>
-#   include <boost/mpl/aux_/preprocessor/enum.hpp>
-#   include <boost/mpl/aux_/preprocessor/add.hpp>
-#   include <boost/mpl/aux_/preprocessor/sub.hpp>
-#   include <boost/mpl/aux_/config/ctps.hpp>
-#   include <boost/mpl/aux_/config/eti.hpp>
-#   include <boost/mpl/aux_/config/msvc.hpp>
-#   include <boost/mpl/aux_/config/workaround.hpp>
-
-#   include <boost/preprocessor/dec.hpp>
-#   include <boost/preprocessor/inc.hpp>
-#   include <boost/preprocessor/iterate.hpp>
-#   include <boost/preprocessor/cat.hpp>
-
-
-#if !defined(AUX778076_OP_ARITY)
-#   define AUX778076_OP_ARITY BOOST_MPL_LIMIT_METAFUNCTION_ARITY
-#endif
-
-#if !defined(AUX778076_OP_IMPL_NAME)
-#   define AUX778076_OP_IMPL_NAME BOOST_PP_CAT(AUX778076_OP_PREFIX,_impl)
-#endif
-
-#if !defined(AUX778076_OP_TAG_NAME)
-#   define AUX778076_OP_TAG_NAME BOOST_PP_CAT(AUX778076_OP_PREFIX,_tag)
-#endif
-
-namespace boost { namespace mpl {
-
-template< 
-      typename Tag1
-    , typename Tag2
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value 
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value 
-    >
-struct AUX778076_OP_IMPL_NAME
-    : if_c<
-          ( tag1_ > tag2_ )
-#else
-    >
-struct AUX778076_OP_IMPL_NAME
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-#endif
-        , aux::cast2nd_impl< AUX778076_OP_IMPL_NAME<Tag1,Tag1>,Tag1,Tag2 >
-        , aux::cast1st_impl< AUX778076_OP_IMPL_NAME<Tag2,Tag2>,Tag1,Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct AUX778076_OP_IMPL_NAME<na,na>
-{
-    template< typename U1, typename U2 > struct apply 
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value = 0);
-    };
-};
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-template< typename Tag > struct AUX778076_OP_IMPL_NAME<na,Tag>
-{
-    template< typename U1, typename U2 > struct apply 
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value = 0);
-    };
-};
-
-template< typename Tag > struct AUX778076_OP_IMPL_NAME<Tag,na>
-{
-    template< typename U1, typename U2 > struct apply 
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value = 0);
-    };
-};
-#else
-template<> struct AUX778076_OP_IMPL_NAME<na,integral_c_tag>
-{
-    template< typename U1, typename U2 > struct apply 
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value = 0);
-    };
-};
-
-template<> struct AUX778076_OP_IMPL_NAME<integral_c_tag,na>
-{
-    template< typename U1, typename U2 > struct apply 
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value = 0);
-    };
-};
-#endif
-
-
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
-    && BOOST_WORKAROUND(BOOST_MSVC, >= 1300)
-template< typename T > struct AUX778076_OP_TAG_NAME
-    : tag<T,na>
-{
-};
-#else
-template< typename T > struct AUX778076_OP_TAG_NAME
-{
-    typedef typename T::tag type;
-};
-#endif
-
-
-#if AUX778076_OP_ARITY != 2
-
-#   if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-#   define AUX778076_OP_RIGHT_OPERAND(unused, i, N) , BOOST_PP_CAT(N, BOOST_MPL_PP_ADD(i, 2))>
-#   define AUX778076_OP_N_CALLS(i, N) \
-    BOOST_MPL_PP_REPEAT( BOOST_PP_DEC(i), BOOST_MPL_PP_REPEAT_IDENTITY_FUNC, AUX778076_OP_NAME< ) \
-    N1 BOOST_MPL_PP_REPEAT( BOOST_MPL_PP_SUB(i, 1), AUX778076_OP_RIGHT_OPERAND, N ) \
-/**/
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    BOOST_MPL_PP_DEF_PARAMS_TAIL(2, typename N, na)
-    >
-struct AUX778076_OP_NAME
-    : AUX778076_OP_N_CALLS(AUX778076_OP_ARITY, N)
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          AUX778076_OP_ARITY
-        , AUX778076_OP_NAME
-        , ( BOOST_MPL_PP_PARAMS(AUX778076_OP_ARITY, N) )
-        )
-};
-
-#define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,( BOOST_PP_DEC(AUX778076_OP_ARITY), 2, <boost/mpl/aux_/numeric_op.hpp> ))
-#include BOOST_PP_ITERATE()
-
-#   undef AUX778076_OP_N_CALLS
-#   undef AUX778076_OP_RIGHT_OPERAND
-
-#   else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-/// forward declaration
-template< 
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct BOOST_PP_CAT(AUX778076_OP_NAME,2);
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    BOOST_MPL_PP_DEF_PARAMS_TAIL(2, typename N, na)
-    >
-struct AUX778076_OP_NAME
-#if BOOST_WORKAROUND(BOOST_MSVC, == 1300)
-    : aux::msvc_eti_base< typename if_<
-#else
-    : if_<
-#endif
-          is_na<N3>
-        , BOOST_PP_CAT(AUX778076_OP_NAME,2)<N1,N2>
-        , AUX778076_OP_NAME<
-              BOOST_PP_CAT(AUX778076_OP_NAME,2)<N1,N2>
-            , BOOST_MPL_PP_EXT_PARAMS(3, BOOST_PP_INC(AUX778076_OP_ARITY), N)
-            >
-        >::type
-#if BOOST_WORKAROUND(BOOST_MSVC, == 1300)
-    >
-#endif
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          AUX778076_OP_ARITY
-        , AUX778076_OP_NAME
-        , ( BOOST_MPL_PP_PARAMS(AUX778076_OP_ARITY, N) )
-        )
-};
-
-template< 
-      typename N1
-    , typename N2
-    >
-struct BOOST_PP_CAT(AUX778076_OP_NAME,2)
-
-#endif
-
-#else // AUX778076_OP_ARITY == 2
-
-template< 
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct AUX778076_OP_NAME
-
-#endif
-
-#if !defined(BOOST_MPL_CFG_MSVC_ETI_BUG)
-    : AUX778076_OP_IMPL_NAME<
-          typename AUX778076_OP_TAG_NAME<N1>::type
-        , typename AUX778076_OP_TAG_NAME<N2>::type
-        >::template apply<N1,N2>::type
-#else
-    : aux::msvc_eti_base< typename apply_wrap2<
-          AUX778076_OP_IMPL_NAME<
-              typename AUX778076_OP_TAG_NAME<N1>::type
-            , typename AUX778076_OP_TAG_NAME<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-#endif
-{
-#if AUX778076_OP_ARITY != 2
-
-#   if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          AUX778076_OP_ARITY
-        , AUX778076_OP_NAME
-        , ( BOOST_MPL_PP_PARTIAL_SPEC_PARAMS(2, N, na) )
-        )
-#   else
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, BOOST_PP_CAT(AUX778076_OP_NAME,2), (N1, N2))
-#   endif
-
-#else
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, AUX778076_OP_NAME, (N1, N2))
-#endif
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, AUX778076_OP_ARITY, AUX778076_OP_NAME)
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-///// iteration, depth == 1
-
-// For gcc 4.4 compatability, we must include the
-// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
-#else // BOOST_PP_IS_ITERATING
-#if BOOST_PP_ITERATION_DEPTH() == 1
-
-#   define i_ BOOST_PP_FRAME_ITERATION(1)
-
-template<
-      BOOST_MPL_PP_PARAMS(i_, typename N)
-    >
-struct AUX778076_OP_NAME<BOOST_MPL_PP_PARTIAL_SPEC_PARAMS(i_, N, na)>
-#if i_ != 2
-    : AUX778076_OP_N_CALLS(i_, N)
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          AUX778076_OP_ARITY
-        , AUX778076_OP_NAME
-        , ( BOOST_MPL_PP_PARTIAL_SPEC_PARAMS(i_, N, na) )
-        )
-};
-#endif
-
-#   undef i_
-
-#endif // BOOST_PP_ITERATION_DEPTH()
-#endif // BOOST_PP_IS_ITERATING
diff --git a/boost/mpl/aux_/preprocessed/bcc/advance_backward.hpp b/boost/mpl/aux_/preprocessed/bcc/advance_backward.hpp
deleted file mode 100644
index 5cb50dc..0000000
--- a/boost/mpl/aux_/preprocessed/bcc/advance_backward.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "advance_backward.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-template< long N > struct advance_backward;
-template<>
-struct advance_backward<0>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef iter0 type;
-    };
-};
-
-template<>
-struct advance_backward<1>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef iter1 type;
-    };
-};
-
-template<>
-struct advance_backward<2>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef iter2 type;
-    };
-};
-
-template<>
-struct advance_backward<3>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef typename prior<iter2>::type iter3;
-        typedef iter3 type;
-    };
-};
-
-template<>
-struct advance_backward<4>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef typename prior<iter2>::type iter3;
-        typedef typename prior<iter3>::type iter4;
-        typedef iter4 type;
-    };
-};
-
-template< long N >
-struct advance_backward
-{
-    template< typename Iterator > struct apply
-    {
-        typedef typename apply_wrap1<
-              advance_backward<4>
-            , Iterator
-            >::type chunk_result_;
-
-        typedef typename apply_wrap1<
-              advance_backward<(
-                (N - 4) < 0
-                    ? 0
-                    : N - 4
-                    )>
-            , chunk_result_
-            >::type type;
-    };
-};
-
-}}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc/advance_forward.hpp b/boost/mpl/aux_/preprocessed/bcc/advance_forward.hpp
deleted file mode 100644
index 9654ee3..0000000
--- a/boost/mpl/aux_/preprocessed/bcc/advance_forward.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "advance_forward.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-template< long N > struct advance_forward;
-template<>
-struct advance_forward<0>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef iter0 type;
-    };
-};
-
-template<>
-struct advance_forward<1>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef iter1 type;
-    };
-};
-
-template<>
-struct advance_forward<2>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef iter2 type;
-    };
-};
-
-template<>
-struct advance_forward<3>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef typename next<iter2>::type iter3;
-        typedef iter3 type;
-    };
-};
-
-template<>
-struct advance_forward<4>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef typename next<iter2>::type iter3;
-        typedef typename next<iter3>::type iter4;
-        typedef iter4 type;
-    };
-};
-
-template< long N >
-struct advance_forward
-{
-    template< typename Iterator > struct apply
-    {
-        typedef typename apply_wrap1<
-              advance_forward<4>
-            , Iterator
-            >::type chunk_result_;
-
-        typedef typename apply_wrap1<
-              advance_forward<(
-                (N - 4) < 0
-                    ? 0
-                    : N - 4
-                    )>
-            , chunk_result_
-            >::type type;
-    };
-};
-
-}}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc/and.hpp b/boost/mpl/aux_/preprocessed/bcc/and.hpp
deleted file mode 100644
index f345689..0000000
--- a/boost/mpl/aux_/preprocessed/bcc/and.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "and.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template< bool C_, typename T1, typename T2, typename T3, typename T4 >
-struct and_impl
-    : false_
-{
-};
-
-template< typename T1, typename T2, typename T3, typename T4 >
-struct and_impl< true,T1,T2,T3,T4 >
-    : and_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4
-        , true_
-        >
-{
-};
-
-template<>
-struct and_impl<
-          true
-        , true_, true_, true_, true_
-        >
-    : true_
-{
-};
-
-} // namespace aux
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
-    , typename T3 = true_, typename T4 = true_, typename T5 = true_
-    >
-struct and_
-
-    : aux::and_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4, T5
-        >
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , and_
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC2(
-      2
-    , 5
-    , and_
-    )
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc/apply.hpp b/boost/mpl/aux_/preprocessed/bcc/apply.hpp
deleted file mode 100644
index bce7c2c..0000000
--- a/boost/mpl/aux_/preprocessed/bcc/apply.hpp
+++ /dev/null
@@ -1,169 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "apply.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename F
-    >
-struct apply0
-
-    : apply_wrap0<
-          typename lambda<F>::type
-       
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          1
-        , apply0
-        , (F )
-        )
-};
-
-template<
-      typename F
-    >
-struct apply< F,na,na,na,na,na >
-    : apply0<F>
-{
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply1
-
-    : apply_wrap1<
-          typename lambda<F>::type
-        , T1
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          2
-        , apply1
-        , (F, T1)
-        )
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply< F,T1,na,na,na,na >
-    : apply1< F,T1 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply2
-
-    : apply_wrap2<
-          typename lambda<F>::type
-        , T1, T2
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          3
-        , apply2
-        , (F, T1, T2)
-        )
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply< F,T1,T2,na,na,na >
-    : apply2< F,T1,T2 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply3
-
-    : apply_wrap3<
-          typename lambda<F>::type
-        , T1, T2, T3
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          4
-        , apply3
-        , (F, T1, T2, T3)
-        )
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply< F,T1,T2,T3,na,na >
-    : apply3< F,T1,T2,T3 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply4
-
-    : apply_wrap4<
-          typename lambda<F>::type
-        , T1, T2, T3, T4
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , apply4
-        , (F, T1, T2, T3, T4)
-        )
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply< F,T1,T2,T3,T4,na >
-    : apply4< F,T1,T2,T3,T4 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply5
-
-    : apply_wrap5<
-          typename lambda<F>::type
-        , T1, T2, T3, T4, T5
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          6
-        , apply5
-        , (F, T1, T2, T3, T4, T5)
-        )
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply
-    : apply5< F,T1,T2,T3,T4,T5 >
-{
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc/apply_fwd.hpp b/boost/mpl/aux_/preprocessed/bcc/apply_fwd.hpp
deleted file mode 100644
index 1ba706f..0000000
--- a/boost/mpl/aux_/preprocessed/bcc/apply_fwd.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "apply_fwd.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename F, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na
-    >
-struct apply;
-
-template<
-      typename F
-    >
-struct apply0;
-
-template<
-      typename F, typename T1
-    >
-struct apply1;
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply2;
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply3;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply4;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply5;
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc/apply_wrap.hpp b/boost/mpl/aux_/preprocessed/bcc/apply_wrap.hpp
deleted file mode 100644
index 45b75c7..0000000
--- a/boost/mpl/aux_/preprocessed/bcc/apply_wrap.hpp
+++ /dev/null
@@ -1,461 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2008
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "apply_wrap.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      int N, typename F
-    >
-struct apply_wrap_impl0;
-
-template< typename F, bool F_has_apply >
-struct apply_wrap_impl0_bcb {
-    typedef typename F::template apply<na> type;
-};
-
-template< typename F >
-struct apply_wrap_impl0_bcb< F,true > {
-    typedef typename F::apply type;
-};
-
-template<
-      typename F
-    >
-struct apply_wrap_impl0<
-          0
-        , F
-       
-        >
-{
-    typedef apply_wrap_impl0_bcb< F, aux::has_apply<F>::value >::type type;
-};
-
-template<
-      typename F
-    >
-struct apply_wrap_impl0<
-          1
-        , F
-       
-        >
-{
-    typedef typename F::template apply<
-         
-        na
-        > type;
-};
-
-template<
-      typename F
-    >
-struct apply_wrap_impl0<
-          2
-        , F
-       
-        >
-{
-    typedef typename F::template apply<
-         
-        na, na
-
-        > type;
-};
-
-template<
-      typename F
-    >
-struct apply_wrap_impl0<
-          3
-        , F
-       
-        >
-{
-    typedef typename F::template apply<
-         
-        na, na, na
-
-        > type;
-};
-
-template<
-      typename F
-    >
-struct apply_wrap_impl0<
-          4
-        , F
-       
-        >
-{
-    typedef typename F::template apply<
-         
-        na, na, na, na
-
-        > type;
-};
-
-template<
-      typename F
-    >
-struct apply_wrap_impl0<
-          5
-        , F
-       
-        >
-{
-    typedef typename F::template apply<
-         
-        na, na, na, na, na
-
-        > type;
-};
-
-template<
-      typename F
-    >
-struct apply_wrap0
-    : apply_wrap_impl0<
-          ::boost::mpl::aux::arity< F,0 >::value
-        , F
-       
-        >::type
-{
-};
-
-template<
-      int N, typename F, typename T1
-    >
-struct apply_wrap_impl1;
-
-template<
-      typename F, typename T1
-    >
-struct apply_wrap_impl1<
-          1
-        , F
-        , T1
-        >
-{
-    typedef typename F::template apply<
-          T1
-        > type;
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply_wrap_impl1<
-          2
-        , F
-        , T1
-        >
-{
-    typedef typename F::template apply<
-          T1
-        , na
-
-        > type;
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply_wrap_impl1<
-          3
-        , F
-        , T1
-        >
-{
-    typedef typename F::template apply<
-          T1
-        , na, na
-
-        > type;
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply_wrap_impl1<
-          4
-        , F
-        , T1
-        >
-{
-    typedef typename F::template apply<
-          T1
-        , na, na, na
-
-        > type;
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply_wrap_impl1<
-          5
-        , F
-        , T1
-        >
-{
-    typedef typename F::template apply<
-          T1
-        , na, na, na, na
-
-        > type;
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply_wrap1
-    : apply_wrap_impl1<
-          ::boost::mpl::aux::arity< F,1 >::value
-        , F
-        , T1
-        >::type
-{
-};
-
-template<
-      int N, typename F, typename T1, typename T2
-    >
-struct apply_wrap_impl2;
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply_wrap_impl2<
-          2
-        , F
-        , T1, T2
-        >
-{
-    typedef typename F::template apply<
-          T1, T2
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply_wrap_impl2<
-          3
-        , F
-        , T1, T2
-        >
-{
-    typedef typename F::template apply<
-          T1, T2
-
-        , na
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply_wrap_impl2<
-          4
-        , F
-        , T1, T2
-        >
-{
-    typedef typename F::template apply<
-          T1, T2
-
-        , na, na
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply_wrap_impl2<
-          5
-        , F
-        , T1, T2
-        >
-{
-    typedef typename F::template apply<
-          T1, T2
-
-        , na, na, na
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply_wrap2
-    : apply_wrap_impl2<
-          ::boost::mpl::aux::arity< F,2 >::value
-        , F
-        , T1, T2
-        >::type
-{
-};
-
-template<
-      int N, typename F, typename T1, typename T2, typename T3
-    >
-struct apply_wrap_impl3;
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply_wrap_impl3<
-          3
-        , F
-        , T1, T2, T3
-        >
-{
-    typedef typename F::template apply<
-          T1, T2, T3
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply_wrap_impl3<
-          4
-        , F
-        , T1, T2, T3
-        >
-{
-    typedef typename F::template apply<
-          T1, T2, T3
-
-        , na
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply_wrap_impl3<
-          5
-        , F
-        , T1, T2, T3
-        >
-{
-    typedef typename F::template apply<
-          T1, T2, T3
-
-        , na, na
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply_wrap3
-    : apply_wrap_impl3<
-          ::boost::mpl::aux::arity< F,3 >::value
-        , F
-        , T1, T2, T3
-        >::type
-{
-};
-
-template<
-      int N, typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply_wrap_impl4;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply_wrap_impl4<
-          4
-        , F
-        , T1, T2, T3, T4
-        >
-{
-    typedef typename F::template apply<
-          T1, T2, T3, T4
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply_wrap_impl4<
-          5
-        , F
-        , T1, T2, T3, T4
-        >
-{
-    typedef typename F::template apply<
-          T1, T2, T3, T4
-
-        , na
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply_wrap4
-    : apply_wrap_impl4<
-          ::boost::mpl::aux::arity< F,4 >::value
-        , F
-        , T1, T2, T3, T4
-        >::type
-{
-};
-
-template<
-      int N, typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply_wrap_impl5;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply_wrap_impl5<
-          5
-        , F
-        , T1, T2, T3, T4, T5
-        >
-{
-    typedef typename F::template apply<
-          T1, T2, T3, T4, T5
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply_wrap5
-    : apply_wrap_impl5<
-          ::boost::mpl::aux::arity< F,5 >::value
-        , F
-        , T1, T2, T3, T4, T5
-        >::type
-{
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc/arg.hpp b/boost/mpl/aux_/preprocessed/bcc/arg.hpp
deleted file mode 100644
index 3ac4340..0000000
--- a/boost/mpl/aux_/preprocessed/bcc/arg.hpp
+++ /dev/null
@@ -1,117 +0,0 @@
-
-// Copyright Peter Dimov 2001-2002
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "arg.hpp" header
-// -- DO NOT modify by hand!
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-template<> struct arg< -1 >
-{
-    BOOST_STATIC_CONSTANT(int, value  = -1);
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-        typedef U1 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<1>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 1);
-    typedef arg<2> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-        typedef U1 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<2>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 2);
-    typedef arg<3> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-        typedef U2 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<3>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 3);
-    typedef arg<4> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-        typedef U3 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<4>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 4);
-    typedef arg<5> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-        typedef U4 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<5>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 5);
-    typedef arg<6> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-        typedef U5 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg)
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
diff --git a/boost/mpl/aux_/preprocessed/bcc/basic_bind.hpp b/boost/mpl/aux_/preprocessed/bcc/basic_bind.hpp
deleted file mode 100644
index 74b0029..0000000
--- a/boost/mpl/aux_/preprocessed/bcc/basic_bind.hpp
+++ /dev/null
@@ -1,300 +0,0 @@
-
-// Copyright Peter Dimov 2001
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "basic_bind.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template<
-      typename T, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg
-{
-    typedef T type;
-};
-
-template<
-      int N, typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg< arg<N>, U1, U2, U3, U4, U5 >
-{
-    typedef typename apply_wrap5<mpl::arg<N>, U1, U2, U3, U4, U5>::type type;
-};
-
-} // namespace aux
-
-template<
-      typename F
-    >
-struct bind0
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-
-     public:
-        typedef typename apply_wrap0<
-              f_
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind0<F>, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind0<F> f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
-
-template<
-      typename F, typename T1
-    >
-struct bind1
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-
-     public:
-        typedef typename apply_wrap1<
-              f_
-            , typename t1::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename U1, typename U2, typename U3
-    , typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind1< F,T1 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind1< F,T1 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-
-     public:
-        typedef typename apply_wrap2<
-              f_
-            , typename t1::type, typename t2::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename U1, typename U2
-    , typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind2< F,T1,T2 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind2< F,T1,T2 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-
-     public:
-        typedef typename apply_wrap3<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename U1
-    , typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind3< F,T1,T2,T3 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind4
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
-
-     public:
-        typedef typename apply_wrap4<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind4< F,T1,T2,T3,T4 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind5
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
-        typedef aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 > t5;
-
-     public:
-        typedef typename apply_wrap5<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type, typename t5::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind5< F,T1,T2,T3,T4,T5 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc/bind.hpp b/boost/mpl/aux_/preprocessed/bcc/bind.hpp
deleted file mode 100644
index e769a0c..0000000
--- a/boost/mpl/aux_/preprocessed/bcc/bind.hpp
+++ /dev/null
@@ -1,397 +0,0 @@
-
-// Copyright Peter Dimov 2001
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "bind.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template<
-      typename T, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg
-{
-    typedef T type;
-};
-
-template<
-      typename T
-    , typename Arg
-    >
-struct replace_unnamed_arg
-{
-    typedef Arg next;
-    typedef T type;
-};
-
-template<
-      typename Arg
-    >
-struct replace_unnamed_arg< arg< -1 >, Arg >
-{
-    typedef typename Arg::next next;
-    typedef Arg type;
-};
-
-template<
-      int N, typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg< arg<N>, U1, U2, U3, U4, U5 >
-{
-    typedef typename apply_wrap5<mpl::arg<N>, U1, U2, U3, U4, U5>::type type;
-};
-
-} // namespace aux
-
-template<
-      typename F
-    >
-struct bind0
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-     public:
-        typedef typename apply_wrap0<
-              f_
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind0<F>, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind0<F> f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
-
-template<
-      typename F, typename T1
-    >
-struct bind1
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-     public:
-        typedef typename apply_wrap1<
-              f_
-            , typename t1::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename U1, typename U2, typename U3
-    , typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind1< F,T1 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind1< F,T1 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-     public:
-        typedef typename apply_wrap2<
-              f_
-            , typename t1::type, typename t2::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename U1, typename U2
-    , typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind2< F,T1,T2 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind2< F,T1,T2 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-     public:
-        typedef typename apply_wrap3<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename U1
-    , typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind3< F,T1,T2,T3 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind4
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef aux::replace_unnamed_arg< T4,n4 > r4;
-        typedef typename r4::type a4;
-        typedef typename r4::next n5;
-        typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
-        ///
-     public:
-        typedef typename apply_wrap4<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind4< F,T1,T2,T3,T4 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind5
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef aux::replace_unnamed_arg< T4,n4 > r4;
-        typedef typename r4::type a4;
-        typedef typename r4::next n5;
-        typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
-        ///
-        typedef aux::replace_unnamed_arg< T5,n5 > r5;
-        typedef typename r5::type a5;
-        typedef typename r5::next n6;
-        typedef aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 > t5;
-        ///
-     public:
-        typedef typename apply_wrap5<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type, typename t5::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind5< F,T1,T2,T3,T4,T5 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc/bind_fwd.hpp b/boost/mpl/aux_/preprocessed/bcc/bind_fwd.hpp
deleted file mode 100644
index 962b5c9..0000000
--- a/boost/mpl/aux_/preprocessed/bcc/bind_fwd.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "bind_fwd.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename F
-    >
-struct bind0;
-
-template<
-      typename F, typename T1
-    >
-struct bind1;
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2;
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind4;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind5;
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc/bitand.hpp b/boost/mpl/aux_/preprocessed/bcc/bitand.hpp
deleted file mode 100644
index 527b689..0000000
--- a/boost/mpl/aux_/preprocessed/bcc/bitand.hpp
+++ /dev/null
@@ -1,147 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "bitand.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitand_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< bitand_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< bitand_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitand_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitand_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitand_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitand_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct bitand_
-    : bitand_< bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>, N5>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitand_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct bitand_< N1,N2,N3,N4,na >
-
-    : bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitand_
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct bitand_< N1,N2,N3,na,na >
-
-    : bitand_< bitand_< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitand_
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct bitand_< N1,N2,na,na,na >
-    : bitand_impl<
-          typename bitand_tag<N1>::type
-        , typename bitand_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitand_
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct bitand_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  & BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc/bitor.hpp b/boost/mpl/aux_/preprocessed/bcc/bitor.hpp
deleted file mode 100644
index 3f0d5ca..0000000
--- a/boost/mpl/aux_/preprocessed/bcc/bitor.hpp
+++ /dev/null
@@ -1,147 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "bitor.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitor_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< bitor_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< bitor_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitor_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitor_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitor_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitor_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct bitor_
-    : bitor_< bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>, N5>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitor_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct bitor_< N1,N2,N3,N4,na >
-
-    : bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitor_
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct bitor_< N1,N2,N3,na,na >
-
-    : bitor_< bitor_< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitor_
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct bitor_< N1,N2,na,na,na >
-    : bitor_impl<
-          typename bitor_tag<N1>::type
-        , typename bitor_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitor_
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct bitor_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  | BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc/bitxor.hpp b/boost/mpl/aux_/preprocessed/bcc/bitxor.hpp
deleted file mode 100644
index 06996c0..0000000
--- a/boost/mpl/aux_/preprocessed/bcc/bitxor.hpp
+++ /dev/null
@@ -1,147 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "bitxor.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitxor_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< bitxor_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< bitxor_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitxor_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitxor_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitxor_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitxor_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct bitxor_
-    : bitxor_< bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>, N5>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitxor_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct bitxor_< N1,N2,N3,N4,na >
-
-    : bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitxor_
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct bitxor_< N1,N2,N3,na,na >
-
-    : bitxor_< bitxor_< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitxor_
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct bitxor_< N1,N2,na,na,na >
-    : bitxor_impl<
-          typename bitxor_tag<N1>::type
-        , typename bitxor_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitxor_
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct bitxor_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  ^ BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc/deque.hpp b/boost/mpl/aux_/preprocessed/bcc/deque.hpp
deleted file mode 100644
index 06505c9..0000000
--- a/boost/mpl/aux_/preprocessed/bcc/deque.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "deque.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct deque;
-
-template<
-     
-    >
-struct deque<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector0<  >
-{
-    typedef vector0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct deque<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector1<T0>
-{
-    typedef typename vector1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct deque<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector2< T0,T1 >
-{
-    typedef typename vector2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct deque<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector3< T0,T1,T2 >
-{
-    typedef typename vector3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct deque<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector4< T0,T1,T2,T3 >
-{
-    typedef typename vector4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct deque<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector5< T0,T1,T2,T3,T4 >
-{
-    typedef typename vector5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : vector15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : vector16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : vector17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : vector18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : vector19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct deque
-    : vector20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc/divides.hpp b/boost/mpl/aux_/preprocessed/bcc/divides.hpp
deleted file mode 100644
index 6b4178a..0000000
--- a/boost/mpl/aux_/preprocessed/bcc/divides.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "divides.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct divides_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< divides_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< divides_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct divides_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct divides_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct divides_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct divides_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct divides
-    : divides< divides< divides< divides< N1,N2 >, N3>, N4>, N5>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , divides
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct divides< N1,N2,N3,N4,na >
-
-    : divides< divides< divides< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , divides
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct divides< N1,N2,N3,na,na >
-
-    : divides< divides< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , divides
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct divides< N1,N2,na,na,na >
-    : divides_impl<
-          typename divides_tag<N1>::type
-        , typename divides_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , divides
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, divides)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct divides_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  / BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc/equal_to.hpp b/boost/mpl/aux_/preprocessed/bcc/equal_to.hpp
deleted file mode 100644
index 901a93c..0000000
--- a/boost/mpl/aux_/preprocessed/bcc/equal_to.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "equal_to.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct equal_to_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct equal_to_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct equal_to_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct equal_to_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct equal_to_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct equal_to
-
-    : equal_to_impl<
-          typename equal_to_tag<N1>::type
-        , typename equal_to_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct equal_to_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value  == BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc/fold_impl.hpp b/boost/mpl/aux_/preprocessed/bcc/fold_impl.hpp
deleted file mode 100644
index 45ab4e7..0000000
--- a/boost/mpl/aux_/preprocessed/bcc/fold_impl.hpp
+++ /dev/null
@@ -1,180 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl;
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 0,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef state0 state;
-    typedef iter0 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 1,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    
-
-    typedef state1 state;
-    typedef iter1 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 2,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    
-
-    typedef state2 state;
-    typedef iter2 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 3,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    
-
-    typedef state3 state;
-    typedef iter3 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 4,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp, state3, typename deref<iter3>::type >::type state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef state4 state;
-    typedef iter4 iterator;
-};
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl
-{
-    typedef fold_impl<
-          4
-        , First
-        , Last
-        , State
-        , ForwardOp
-        > chunk_;
-
-    typedef fold_impl<
-          ( (N - 4) < 0 ? 0 : N - 4 )
-        , typename chunk_::iterator
-        , Last
-        , typename chunk_::state
-        , ForwardOp
-        > res_;
-
-    typedef typename res_::state state;
-    typedef typename res_::iterator iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< -1,First,Last,State,ForwardOp >
-    : fold_impl<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State, typename deref<First>::type>::type
-        , ForwardOp
-        >
-{
-};
-
-template<
-      typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< -1,Last,Last,State,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/bcc/full_lambda.hpp b/boost/mpl/aux_/preprocessed/bcc/full_lambda.hpp
deleted file mode 100644
index 8b2bf59..0000000
--- a/boost/mpl/aux_/preprocessed/bcc/full_lambda.hpp
+++ /dev/null
@@ -1,558 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "full_lambda.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template<
-      bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false
-    , bool C5 = false
-    >
-struct lambda_or
-    : true_
-{
-};
-
-template<>
-struct lambda_or< false,false,false,false,false >
-    : false_
-{
-};
-
-} // namespace aux
-
-template<
-      typename T
-    , typename Tag
-    , typename Arity
-    >
-struct lambda
-{
-    typedef false_ is_le;
-    typedef T result_;
-    typedef T type;
-};
-
-template<
-      typename T
-    >
-struct is_lambda_expression
-    : lambda<T>::is_le
-{
-};
-
-template< int N, typename Tag >
-struct lambda< arg<N>,Tag, int_< -1 > >
-{
-    typedef true_ is_le;
-    typedef mpl::arg<N> result_; // qualified for the sake of MIPSpro 7.41
-    typedef mpl::protect<result_> type;
-};
-
-template<
-      typename F
-    , typename Tag
-    >
-struct lambda<
-          bind0<F>
-        , Tag
-        , int_<1>
-        >
-{
-    typedef false_ is_le;
-    typedef bind0<
-          F
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1 > class F
-    , typename L1
-    >
-struct le_result1
-{
-    typedef F<
-          typename L1::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1 > class F
-    , typename L1
-    >
-struct le_result1< true_,Tag,F,L1 >
-{
-    typedef bind1<
-          quote1< F,Tag >
-        , typename L1::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1 > class F
-    , typename T1
-    , typename Tag
-    >
-struct lambda<
-          F<T1>
-        , Tag
-        , int_<1>
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef typename l1::is_le is_le1;
-    typedef typename aux::lambda_or<
-          is_le1::value
-        >::type is_le;
-
-    typedef aux::le_result1<
-          is_le, Tag, F, l1
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1
-    , typename Tag
-    >
-struct lambda<
-          bind1< F,T1 >
-        , Tag
-        , int_<2>
-        >
-{
-    typedef false_ is_le;
-    typedef bind1<
-          F
-        , T1
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2 > class F
-    , typename L1, typename L2
-    >
-struct le_result2
-{
-    typedef F<
-          typename L1::type, typename L2::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2 > class F
-    , typename L1, typename L2
-    >
-struct le_result2< true_,Tag,F,L1,L2 >
-{
-    typedef bind2<
-          quote2< F,Tag >
-        , typename L1::result_, typename L2::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2 > class F
-    , typename T1, typename T2
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2 >
-        , Tag
-        , int_<2>
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value
-        >::type is_le;
-
-    typedef aux::le_result2<
-          is_le, Tag, F, l1, l2
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    , typename Tag
-    >
-struct lambda<
-          bind2< F,T1,T2 >
-        , Tag
-        , int_<3>
-        >
-{
-    typedef false_ is_le;
-    typedef bind2<
-          F
-        , T1, T2
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3 > class F
-    , typename L1, typename L2, typename L3
-    >
-struct le_result3
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3 > class F
-    , typename L1, typename L2, typename L3
-    >
-struct le_result3< true_,Tag,F,L1,L2,L3 >
-{
-    typedef bind3<
-          quote3< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2, typename P3 > class F
-    , typename T1, typename T2, typename T3
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3 >
-        , Tag
-        , int_<3>
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value
-        >::type is_le;
-
-    typedef aux::le_result3<
-          is_le, Tag, F, l1, l2, l3
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    , typename Tag
-    >
-struct lambda<
-          bind3< F,T1,T2,T3 >
-        , Tag
-        , int_<4>
-        >
-{
-    typedef false_ is_le;
-    typedef bind3<
-          F
-        , T1, T2, T3
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename L1, typename L2, typename L3, typename L4
-    >
-struct le_result4
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        , typename L4::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename L1, typename L2, typename L3, typename L4
-    >
-struct le_result4< true_,Tag,F,L1,L2,L3,L4 >
-{
-    typedef bind4<
-          quote4< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        , typename L4::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename T1, typename T2, typename T3, typename T4
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3,T4 >
-        , Tag
-        , int_<4>
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    typedef lambda< T4,Tag > l4;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    typedef typename l4::is_le is_le4;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value, is_le4::value
-        >::type is_le;
-
-    typedef aux::le_result4<
-          is_le, Tag, F, l1, l2, l3, l4
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename Tag
-    >
-struct lambda<
-          bind4< F,T1,T2,T3,T4 >
-        , Tag
-        , int_<5>
-        >
-{
-    typedef false_ is_le;
-    typedef bind4<
-          F
-        , T1, T2, T3, T4
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
-    , typename L1, typename L2, typename L3, typename L4, typename L5
-    >
-struct le_result5
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        , typename L4::type, typename L5::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
-    , typename L1, typename L2, typename L3, typename L4, typename L5
-    >
-struct le_result5< true_,Tag,F,L1,L2,L3,L4,L5 >
-{
-    typedef bind5<
-          quote5< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        , typename L4::result_, typename L5::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template<
-          typename P1, typename P2, typename P3, typename P4
-        , typename P5
-        >
-      class F
-    , typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3,T4,T5 >
-        , Tag
-        , int_<5>
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    typedef lambda< T4,Tag > l4;
-    typedef lambda< T5,Tag > l5;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    typedef typename l4::is_le is_le4;
-    typedef typename l5::is_le is_le5;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value, is_le4::value
-        , is_le5::value
-        >::type is_le;
-
-    typedef aux::le_result5<
-          is_le, Tag, F, l1, l2, l3, l4, l5
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    , typename Tag
-    >
-struct lambda<
-          bind5< F,T1,T2,T3,T4,T5 >
-        , Tag
-        , int_<6>
-        >
-{
-    typedef false_ is_le;
-    typedef bind5<
-          F
-        , T1, T2, T3, T4, T5
-        > result_;
-
-    typedef result_ type;
-};
-
-/// special case for 'protect'
-template< typename T, typename Tag >
-struct lambda< mpl::protect<T>,Tag, int_<1> >
-{
-    typedef false_ is_le;
-    typedef mpl::protect<T> result_;
-    typedef result_ type;
-};
-
-/// specializations for the main 'bind' form
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    , typename Tag
-    >
-struct lambda<
-          bind< F,T1,T2,T3,T4,T5 >
-        , Tag
-        , int_<6>
-        >
-{
-    typedef false_ is_le;
-    typedef bind< F,T1,T2,T3,T4,T5 > result_;
-    typedef result_ type;
-};
-
-template<
-      typename F
-    , typename Tag1
-    , typename Tag2
-    , typename Arity
-    >
-struct lambda<
-          lambda< F,Tag1,Arity >
-        , Tag2
-        , int_<3>
-        >
-{
-    typedef lambda< F,Tag2 > l1;
-    typedef lambda< Tag1,Tag2 > l2;
-    typedef typename l1::is_le is_le;
-    typedef bind1< quote1<aux::template_arity>, typename l1::result_ > arity_;
-    typedef lambda< typename if_< is_le,arity_,Arity >::type, Tag2 > l3;
-    typedef aux::le_result3<is_le, Tag2, mpl::lambda, l1, l2, l3> le_result_;
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 3, lambda)
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc/greater.hpp b/boost/mpl/aux_/preprocessed/bcc/greater.hpp
deleted file mode 100644
index 3d1c3dc..0000000
--- a/boost/mpl/aux_/preprocessed/bcc/greater.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "greater.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct greater_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< greater_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< greater_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct greater_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct greater_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct greater
-
-    : greater_impl<
-          typename greater_tag<N1>::type
-        , typename greater_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, greater)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct greater_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value > BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc/greater_equal.hpp b/boost/mpl/aux_/preprocessed/bcc/greater_equal.hpp
deleted file mode 100644
index fb01186..0000000
--- a/boost/mpl/aux_/preprocessed/bcc/greater_equal.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "greater_equal.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct greater_equal_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< greater_equal_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct greater_equal_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_equal_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_equal_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct greater_equal_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct greater_equal
-
-    : greater_equal_impl<
-          typename greater_equal_tag<N1>::type
-        , typename greater_equal_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct greater_equal_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc/inherit.hpp b/boost/mpl/aux_/preprocessed/bcc/inherit.hpp
deleted file mode 100644
index 6adcc01..0000000
--- a/boost/mpl/aux_/preprocessed/bcc/inherit.hpp
+++ /dev/null
@@ -1,139 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "inherit.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
-    >
-struct inherit2
-    : T1, T2
-{
-    typedef inherit2 type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2))
-};
-
-template< typename T1 >
-struct inherit2< T1,empty_base >
-{
-    typedef T1 type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (T1, empty_base))
-};
-
-template< typename T2 >
-struct inherit2< empty_base,T2 >
-{
-    typedef T2 type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, T2))
-};
-
-template<>
-struct inherit2< empty_base,empty_base >
-{
-    typedef empty_base type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, empty_base))
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, inherit2)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na
-    >
-struct inherit3
-    : inherit2<
-          typename inherit2<
-              T1, T2
-            >::type
-        , T3
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          3
-        , inherit3
-        , ( T1, T2, T3)
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC(3, inherit3)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
-    >
-struct inherit4
-    : inherit2<
-          typename inherit3<
-              T1, T2, T3
-            >::type
-        , T4
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          4
-        , inherit4
-        , ( T1, T2, T3, T4)
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC(4, inherit4)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
-    , typename T5 = na
-    >
-struct inherit5
-    : inherit2<
-          typename inherit4<
-              T1, T2, T3, T4
-            >::type
-        , T5
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , inherit5
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC(5, inherit5)
-
-/// primary template
-
-template<
-      typename T1 = empty_base, typename T2 = empty_base
-    , typename T3 = empty_base, typename T4 = empty_base
-    , typename T5 = empty_base
-    >
-struct inherit
-    : inherit5< T1,T2,T3,T4,T5 >
-{
-};
-
-template<>
-struct inherit< na,na,na,na,na >
-{
-    template<
-
-          typename T1, typename T2, typename T3, typename T4, typename T5
-
-        >
-    struct apply
-        : inherit< T1,T2,T3,T4,T5 >
-    {
-    };
-};
-
-BOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit)
-BOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit)
-BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit)
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc/iter_fold_if_impl.hpp b/boost/mpl/aux_/preprocessed/bcc/iter_fold_if_impl.hpp
deleted file mode 100644
index b767e95..0000000
--- a/boost/mpl/aux_/preprocessed/bcc/iter_fold_if_impl.hpp
+++ /dev/null
@@ -1,133 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright David Abrahams 2001-2002
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "iter_fold_if_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-template< typename Iterator, typename State >
-struct iter_fold_if_null_step
-{
-    typedef State state;
-    typedef Iterator iterator;
-};
-
-template< bool >
-struct iter_fold_if_step_impl
-{
-    template<
-          typename Iterator
-        , typename State
-        , typename StateOp
-        , typename IteratorOp
-        >
-    struct result_
-    {
-        typedef typename apply2< StateOp,State,Iterator >::type state;
-        typedef typename IteratorOp::type iterator;
-    };
-};
-
-template<>
-struct iter_fold_if_step_impl<false>
-{
-    template<
-          typename Iterator
-        , typename State
-        , typename StateOp
-        , typename IteratorOp
-        >
-    struct result_
-    {
-        typedef State state;
-        typedef Iterator iterator;
-    };
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename ForwardOp
-    , typename Predicate
-    >
-struct iter_fold_if_forward_step
-{
-    typedef typename apply2< Predicate,State,Iterator >::type not_last;
-    typedef typename iter_fold_if_step_impl<
-          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
-        >::template result_< Iterator,State,ForwardOp, mpl::next<Iterator> > impl_;
-
-    typedef typename impl_::state state;
-    typedef typename impl_::iterator iterator;
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename BackwardOp
-    , typename Predicate
-    >
-struct iter_fold_if_backward_step
-{
-    typedef typename apply2< Predicate,State,Iterator >::type not_last;
-    typedef typename iter_fold_if_step_impl<
-          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
-        >::template result_< Iterator,State,BackwardOp, identity<Iterator> > impl_;
-
-    typedef typename impl_::state state;
-    typedef typename impl_::iterator iterator;
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename ForwardOp
-    , typename ForwardPredicate
-    , typename BackwardOp
-    , typename BackwardPredicate
-    >
-struct iter_fold_if_impl
-{
- private:
-    typedef iter_fold_if_null_step< Iterator,State > forward_step0;
-    typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1;
-    typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2;
-    typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3;
-    typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4;
-    
-
-    typedef typename if_<
-          typename forward_step4::not_last
-        , iter_fold_if_impl<
-              typename forward_step4::iterator
-            , typename forward_step4::state
-            , ForwardOp
-            , ForwardPredicate
-            , BackwardOp
-            , BackwardPredicate
-            >
-        , iter_fold_if_null_step<
-              typename forward_step4::iterator
-            , typename forward_step4::state
-            >
-        >::type backward_step4;
-
-    typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3;
-    typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2;
-    typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1;
-    typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0;
-    
-
- public:
-    typedef typename backward_step0::state state;
-    typedef typename backward_step4::iterator iterator;
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/bcc/iter_fold_impl.hpp b/boost/mpl/aux_/preprocessed/bcc/iter_fold_impl.hpp
deleted file mode 100644
index 1dd216c..0000000
--- a/boost/mpl/aux_/preprocessed/bcc/iter_fold_impl.hpp
+++ /dev/null
@@ -1,180 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "iter_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl;
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 0,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef state0 state;
-    typedef iter0 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 1,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    
-
-    typedef state1 state;
-    typedef iter1 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 2,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    
-
-    typedef state2 state;
-    typedef iter2 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 3,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,state2,iter2 >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    
-
-    typedef state3 state;
-    typedef iter3 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 4,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,state2,iter2 >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp,state3,iter3 >::type state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef state4 state;
-    typedef iter4 iterator;
-};
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl
-{
-    typedef iter_fold_impl<
-          4
-        , First
-        , Last
-        , State
-        , ForwardOp
-        > chunk_;
-
-    typedef iter_fold_impl<
-          ( (N - 4) < 0 ? 0 : N - 4 )
-        , typename chunk_::iterator
-        , Last
-        , typename chunk_::state
-        , ForwardOp
-        > res_;
-
-    typedef typename res_::state state;
-    typedef typename res_::iterator iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< -1,First,Last,State,ForwardOp >
-    : iter_fold_impl<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2< ForwardOp,State,First >::type
-        , ForwardOp
-        >
-{
-};
-
-template<
-      typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< -1,Last,Last,State,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/bcc/lambda_no_ctps.hpp b/boost/mpl/aux_/preprocessed/bcc/lambda_no_ctps.hpp
deleted file mode 100644
index 75b30ce..0000000
--- a/boost/mpl/aux_/preprocessed/bcc/lambda_no_ctps.hpp
+++ /dev/null
@@ -1,229 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "lambda_no_ctps.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template<
-      bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false
-    , bool C5 = false
-    >
-struct lambda_or
-    : true_
-{
-};
-
-template<>
-struct lambda_or< false,false,false,false,false >
-    : false_
-{
-};
-
-template< typename Arity > struct lambda_impl
-{
-    template< typename T, typename Tag, typename Protect > struct result_
-    {
-        typedef T type;
-        typedef is_placeholder<T> is_le;
-    };
-};
-
-template<> struct lambda_impl< int_<1> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef typename l1::is_le is_le1;
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value
-            > is_le;
-
-        typedef bind1<
-              typename F::rebind
-            , typename l1::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<2> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        
-
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value
-            > is_le;
-
-        typedef bind2<
-              typename F::rebind
-            , typename l1::type, typename l2::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<3> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        
-
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value
-            > is_le;
-
-        typedef bind3<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<4> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        typedef lambda< typename F::arg4, Tag, false_ > l4;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        typedef typename l4::is_le is_le4;
-        
-
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value
-            > is_le;
-
-        typedef bind4<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            , typename l4::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<5> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        typedef lambda< typename F::arg4, Tag, false_ > l4;
-        typedef lambda< typename F::arg5, Tag, false_ > l5;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        typedef typename l4::is_le is_le4;
-        typedef typename l5::is_le is_le5;
-        
-
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value
-            > is_le;
-
-        typedef bind5<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            , typename l4::type, typename l5::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename T
-    , typename Tag
-    , typename Protect
-    >
-struct lambda
-{
-    /// Metafunction forwarding confuses MSVC 6.x
-    typedef typename aux::template_arity<T>::type arity_;
-    typedef typename aux::lambda_impl<arity_>
-        ::template result_< T,Tag,Protect > l_;
-
-    typedef typename l_::type type;
-    typedef typename l_::is_le is_le;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect))
-};
-
-BOOST_MPL_AUX_NA_SPEC2(1, 3, lambda)
-
-template<
-      typename T
-    >
-struct is_lambda_expression
-    : lambda<T>::is_le
-{
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc/less.hpp b/boost/mpl/aux_/preprocessed/bcc/less.hpp
deleted file mode 100644
index 0b6ce1d..0000000
--- a/boost/mpl/aux_/preprocessed/bcc/less.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "less.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct less_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< less_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< less_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct less_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct less_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct less
-
-    : less_impl<
-          typename less_tag<N1>::type
-        , typename less_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, less)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct less_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > BOOST_MPL_AUX_VALUE_WKND(N1)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc/less_equal.hpp b/boost/mpl/aux_/preprocessed/bcc/less_equal.hpp
deleted file mode 100644
index 0010e08..0000000
--- a/boost/mpl/aux_/preprocessed/bcc/less_equal.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "less_equal.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct less_equal_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< less_equal_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< less_equal_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct less_equal_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_equal_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_equal_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct less_equal_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct less_equal
-
-    : less_equal_impl<
-          typename less_equal_tag<N1>::type
-        , typename less_equal_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct less_equal_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc/list.hpp b/boost/mpl/aux_/preprocessed/bcc/list.hpp
deleted file mode 100644
index cbd58ac..0000000
--- a/boost/mpl/aux_/preprocessed/bcc/list.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "list.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct list;
-
-template<
-     
-    >
-struct list<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list0<  >
-{
-    typedef list0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct list<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list1<T0>
-{
-    typedef typename list1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct list<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list2< T0,T1 >
-{
-    typedef typename list2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct list<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list3< T0,T1,T2 >
-{
-    typedef typename list3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct list<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list4< T0,T1,T2,T3 >
-{
-    typedef typename list4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct list<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list5< T0,T1,T2,T3,T4 >
-{
-    typedef typename list5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename list6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename list7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename list8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : list15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename list15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : list16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename list16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : list17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename list17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : list18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename list18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : list19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename list19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct list
-    : list20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename list20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc/list_c.hpp b/boost/mpl/aux_/preprocessed/bcc/list_c.hpp
deleted file mode 100644
index 495c3f7..0000000
--- a/boost/mpl/aux_/preprocessed/bcc/list_c.hpp
+++ /dev/null
@@ -1,328 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "list_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct list_c;
-
-template<
-      typename T
-    >
-struct list_c<
-          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list0_c<T>
-{
-    typedef typename list0_c<T>::type type;
-};
-
-template<
-      typename T, long C0
-    >
-struct list_c<
-          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list1_c< T,C0 >
-{
-    typedef typename list1_c< T,C0 >::type type;
-};
-
-template<
-      typename T, long C0, long C1
-    >
-struct list_c<
-          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list2_c< T,C0,C1 >
-{
-    typedef typename list2_c< T,C0,C1 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2
-    >
-struct list_c<
-          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list3_c< T,C0,C1,C2 >
-{
-    typedef typename list3_c< T,C0,C1,C2 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3
-    >
-struct list_c<
-          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list4_c< T,C0,C1,C2,C3 >
-{
-    typedef typename list4_c< T,C0,C1,C2,C3 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list5_c< T,C0,C1,C2,C3,C4 >
-{
-    typedef typename list5_c< T,C0,C1,C2,C3,C4 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list6_c< T,C0,C1,C2,C3,C4,C5 >
-{
-    typedef typename list6_c< T,C0,C1,C2,C3,C4,C5 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list7_c< T,C0,C1,C2,C3,C4,C5,C6 >
-{
-    typedef typename list7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX
-        >
-    : list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >
-{
-    typedef typename list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >
-{
-    typedef typename list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >
-{
-    typedef typename list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >
-{
-    typedef typename list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >
-{
-    typedef typename list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >
-{
-    typedef typename list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list14_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        >
-{
-    typedef typename list14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list15_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        >
-{
-    typedef typename list15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list16_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15
-        >
-{
-    typedef typename list16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list17_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16
-        >
-{
-    typedef typename list17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, LONG_MAX, LONG_MAX
-        >
-    : list18_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17
-        >
-{
-    typedef typename list18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, LONG_MAX
-        >
-    : list19_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18
-        >
-{
-    typedef typename list19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct list_c
-    : list20_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, C19
-        >
-{
-    typedef typename list20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc/map.hpp b/boost/mpl/aux_/preprocessed/bcc/map.hpp
deleted file mode 100644
index 80ef156..0000000
--- a/boost/mpl/aux_/preprocessed/bcc/map.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "map.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct map;
-
-template<
-     
-    >
-struct map<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map0<  >
-{
-    typedef map0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct map<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map1<T0>
-{
-    typedef typename map1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct map<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map2< T0,T1 >
-{
-    typedef typename map2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct map<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map3< T0,T1,T2 >
-{
-    typedef typename map3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct map<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map4< T0,T1,T2,T3 >
-{
-    typedef typename map4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct map<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map5< T0,T1,T2,T3,T4 >
-{
-    typedef typename map5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename map6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename map7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename map8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : map15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename map15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : map16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename map16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : map17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename map17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : map18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename map18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : map19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename map19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct map
-    : map20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename map20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc/minus.hpp b/boost/mpl/aux_/preprocessed/bcc/minus.hpp
deleted file mode 100644
index cfddc15..0000000
--- a/boost/mpl/aux_/preprocessed/bcc/minus.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "minus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct minus_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< minus_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< minus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct minus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct minus_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct minus_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct minus_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct minus
-    : minus< minus< minus< minus< N1,N2 >, N3>, N4>, N5>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , minus
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct minus< N1,N2,N3,N4,na >
-
-    : minus< minus< minus< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , minus
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct minus< N1,N2,N3,na,na >
-
-    : minus< minus< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , minus
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct minus< N1,N2,na,na,na >
-    : minus_impl<
-          typename minus_tag<N1>::type
-        , typename minus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , minus
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, minus)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct minus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  - BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc/modulus.hpp b/boost/mpl/aux_/preprocessed/bcc/modulus.hpp
deleted file mode 100644
index eb5eff0..0000000
--- a/boost/mpl/aux_/preprocessed/bcc/modulus.hpp
+++ /dev/null
@@ -1,101 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "modulus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct modulus_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< modulus_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< modulus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct modulus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct modulus_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct modulus_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct modulus_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct modulus
-
-    : modulus_impl<
-          typename modulus_tag<N1>::type
-        , typename modulus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, modulus)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct modulus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  % BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc/not_equal_to.hpp b/boost/mpl/aux_/preprocessed/bcc/not_equal_to.hpp
deleted file mode 100644
index 68356ee..0000000
--- a/boost/mpl/aux_/preprocessed/bcc/not_equal_to.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "not_equal_to.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct not_equal_to_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< not_equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct not_equal_to_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct not_equal_to_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct not_equal_to_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct not_equal_to_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct not_equal_to
-
-    : not_equal_to_impl<
-          typename not_equal_to_tag<N1>::type
-        , typename not_equal_to_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct not_equal_to_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value != BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc/or.hpp b/boost/mpl/aux_/preprocessed/bcc/or.hpp
deleted file mode 100644
index ff7ce9f..0000000
--- a/boost/mpl/aux_/preprocessed/bcc/or.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "or.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template< bool C_, typename T1, typename T2, typename T3, typename T4 >
-struct or_impl
-    : true_
-{
-};
-
-template< typename T1, typename T2, typename T3, typename T4 >
-struct or_impl< false,T1,T2,T3,T4 >
-    : or_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4
-        , false_
-        >
-{
-};
-
-template<>
-struct or_impl<
-          false
-        , false_, false_, false_, false_
-        >
-    : false_
-{
-};
-
-} // namespace aux
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
-    , typename T3 = false_, typename T4 = false_, typename T5 = false_
-    >
-struct or_
-
-    : aux::or_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4, T5
-        >
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , or_
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC2(
-      2
-    , 5
-    , or_
-    )
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc/placeholders.hpp b/boost/mpl/aux_/preprocessed/bcc/placeholders.hpp
deleted file mode 100644
index b306bbb..0000000
--- a/boost/mpl/aux_/preprocessed/bcc/placeholders.hpp
+++ /dev/null
@@ -1,105 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright Peter Dimov 2001-2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "placeholders.hpp" header
-// -- DO NOT modify by hand!
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg< -1 > _;
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;
-}
-
-}}
-
-/// agurt, 17/mar/02: one more placeholder for the last 'apply#' 
-/// specialization
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<1> _1;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<2> _2;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<3> _3;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<4> _4;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<5> _5;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<6> _6;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6;
-}
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc/plus.hpp b/boost/mpl/aux_/preprocessed/bcc/plus.hpp
deleted file mode 100644
index 82539ab..0000000
--- a/boost/mpl/aux_/preprocessed/bcc/plus.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "plus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct plus_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< plus_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< plus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct plus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct plus_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct plus_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct plus_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct plus
-    : plus< plus< plus< plus< N1,N2 >, N3>, N4>, N5>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , plus
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct plus< N1,N2,N3,N4,na >
-
-    : plus< plus< plus< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , plus
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct plus< N1,N2,N3,na,na >
-
-    : plus< plus< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , plus
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct plus< N1,N2,na,na,na >
-    : plus_impl<
-          typename plus_tag<N1>::type
-        , typename plus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , plus
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, plus)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct plus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  + BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc/quote.hpp b/boost/mpl/aux_/preprocessed/bcc/quote.hpp
deleted file mode 100644
index 677a3f9..0000000
--- a/boost/mpl/aux_/preprocessed/bcc/quote.hpp
+++ /dev/null
@@ -1,119 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2008
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "quote.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template< typename T, bool has_type_ >
-struct quote_impl
-
-{
-    typedef typename T::type type;
-};
-
-template< typename T >
-struct quote_impl< T,false >
-{
-    typedef T type;
-};
-
-template<
-      template< typename P1 > class F
-    , typename Tag = void_
-    >
-struct quote1
-{
-    template< typename U1 > struct apply
-
-    {
-        typedef typename quote_impl<
-              F<U1>
-            , aux::has_type< F<U1> >::value
-            >::type type;
-    };
-};
-
-template<
-      template< typename P1, typename P2 > class F
-    , typename Tag = void_
-    >
-struct quote2
-{
-    template< typename U1, typename U2 > struct apply
-
-    {
-        typedef typename quote_impl<
-              F< U1,U2 >
-            , aux::has_type< F< U1,U2 > >::value
-            >::type type;
-    };
-};
-
-template<
-      template< typename P1, typename P2, typename P3 > class F
-    , typename Tag = void_
-    >
-struct quote3
-{
-    template< typename U1, typename U2, typename U3 > struct apply
-
-    {
-        typedef typename quote_impl<
-              F< U1,U2,U3 >
-            , aux::has_type< F< U1,U2,U3 > >::value
-            >::type type;
-    };
-};
-
-template<
-      template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename Tag = void_
-    >
-struct quote4
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4
-        >
-    struct apply
-
-    {
-        typedef typename quote_impl<
-              F< U1,U2,U3,U4 >
-            , aux::has_type< F< U1,U2,U3,U4 > >::value
-            >::type type;
-    };
-};
-
-template<
-      template<
-          typename P1, typename P2, typename P3, typename P4
-        , typename P5
-        >
-      class F
-    , typename Tag = void_
-    >
-struct quote5
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4
-        , typename U5
-        >
-    struct apply
-
-    {
-        typedef typename quote_impl<
-              F< U1,U2,U3,U4,U5 >
-            , aux::has_type< F< U1,U2,U3,U4,U5 > >::value
-            >::type type;
-    };
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc/reverse_fold_impl.hpp b/boost/mpl/aux_/preprocessed/bcc/reverse_fold_impl.hpp
deleted file mode 100644
index 372f0d2..0000000
--- a/boost/mpl/aux_/preprocessed/bcc/reverse_fold_impl.hpp
+++ /dev/null
@@ -1,295 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "reverse_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl;
-
-template< long N >
-struct reverse_fold_chunk;
-
-template<> struct reverse_fold_chunk<0>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef fwd_state0 bkwd_state0;
-        typedef bkwd_state0 state;
-        typedef iter0 iterator;
-    };
-};
-
-template<> struct reverse_fold_chunk<1>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        
-
-        typedef fwd_state1 bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        typedef bkwd_state0 state;
-        typedef iter1 iterator;
-    };
-};
-
-template<> struct reverse_fold_chunk<2>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        
-
-        typedef fwd_state2 bkwd_state2;
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter2 iterator;
-    };
-};
-
-template<> struct reverse_fold_chunk<3>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        
-
-        typedef fwd_state3 bkwd_state3;
-        typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter3 iterator;
-    };
-};
-
-template<> struct reverse_fold_chunk<4>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef fwd_state4 bkwd_state4;
-        typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3;
-        typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter4 iterator;
-    };
-};
-
-template< long N >
-struct reverse_fold_chunk
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef reverse_fold_impl<
-              ( (N - 4) < 0 ? 0 : N - 4 )
-            , iter4
-            , Last
-            , fwd_state4
-            , BackwardOp
-            , ForwardOp
-            > nested_chunk;
-
-        typedef typename nested_chunk::state bkwd_state4;
-        typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3;
-        typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef typename nested_chunk::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_step;
-
-template<
-      typename Last
-    , typename State
-    >
-struct reverse_fold_null_step
-{
-    typedef Last iterator;
-    typedef State state;
-};
-
-template<>
-struct reverse_fold_chunk< -1 >
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef typename if_<
-              typename is_same< First,Last >::type
-            , reverse_fold_null_step< Last,State >
-            , reverse_fold_step< First,Last,State,BackwardOp,ForwardOp >
-            >::type res_;
-
-        typedef typename res_::state state;
-        typedef typename res_::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_step
-{
-    typedef reverse_fold_chunk< -1 >::template result_<
-          typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State, typename deref<First>::type>::type
-        , BackwardOp
-        , ForwardOp
-        > nested_step;
-
-    typedef typename apply2<
-          BackwardOp
-        , typename nested_step::state
-        , typename deref<First>::type
-        >::type state;
-
-    typedef typename nested_step::iterator iterator;
-};
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl
-    : reverse_fold_chunk<N>
-        ::template result_< First,Last,State,BackwardOp,ForwardOp >
-{
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/bcc/reverse_iter_fold_impl.hpp b/boost/mpl/aux_/preprocessed/bcc/reverse_iter_fold_impl.hpp
deleted file mode 100644
index 44aadf7..0000000
--- a/boost/mpl/aux_/preprocessed/bcc/reverse_iter_fold_impl.hpp
+++ /dev/null
@@ -1,295 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "reverse_iter_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl;
-
-template< long N >
-struct reverse_iter_fold_chunk;
-
-template<> struct reverse_iter_fold_chunk<0>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef fwd_state0 bkwd_state0;
-        typedef bkwd_state0 state;
-        typedef iter0 iterator;
-    };
-};
-
-template<> struct reverse_iter_fold_chunk<1>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        
-
-        typedef fwd_state1 bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        typedef bkwd_state0 state;
-        typedef iter1 iterator;
-    };
-};
-
-template<> struct reverse_iter_fold_chunk<2>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        
-
-        typedef fwd_state2 bkwd_state2;
-        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter2 iterator;
-    };
-};
-
-template<> struct reverse_iter_fold_chunk<3>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        
-
-        typedef fwd_state3 bkwd_state3;
-        typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter3 iterator;
-    };
-};
-
-template<> struct reverse_iter_fold_chunk<4>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef fwd_state4 bkwd_state4;
-        typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3;
-        typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter4 iterator;
-    };
-};
-
-template< long N >
-struct reverse_iter_fold_chunk
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef reverse_iter_fold_impl<
-              ( (N - 4) < 0 ? 0 : N - 4 )
-            , iter4
-            , Last
-            , fwd_state4
-            , BackwardOp
-            , ForwardOp
-            > nested_chunk;
-
-        typedef typename nested_chunk::state bkwd_state4;
-        typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3;
-        typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef typename nested_chunk::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_step;
-
-template<
-      typename Last
-    , typename State
-    >
-struct reverse_iter_fold_null_step
-{
-    typedef Last iterator;
-    typedef State state;
-};
-
-template<>
-struct reverse_iter_fold_chunk< -1 >
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef typename if_<
-              typename is_same< First,Last >::type
-            , reverse_iter_fold_null_step< Last,State >
-            , reverse_iter_fold_step< First,Last,State,BackwardOp,ForwardOp >
-            >::type res_;
-
-        typedef typename res_::state state;
-        typedef typename res_::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_step
-{
-    typedef reverse_iter_fold_chunk< -1 >::template result_<
-          typename mpl::next<First>::type
-        , Last
-        , typename apply2< ForwardOp,State,First >::type
-        , BackwardOp
-        , ForwardOp
-        > nested_step;
-
-    typedef typename apply2<
-          BackwardOp
-        , typename nested_step::state
-        , First
-        >::type state;
-
-    typedef typename nested_step::iterator iterator;
-};
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl
-    : reverse_iter_fold_chunk<N>
-        ::template result_< First,Last,State,BackwardOp,ForwardOp >
-{
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/bcc/set.hpp b/boost/mpl/aux_/preprocessed/bcc/set.hpp
deleted file mode 100644
index ace3a4f..0000000
--- a/boost/mpl/aux_/preprocessed/bcc/set.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "set.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct set;
-
-template<
-     
-    >
-struct set<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set0<  >
-{
-    typedef set0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct set<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set1<T0>
-{
-    typedef typename set1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct set<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set2< T0,T1 >
-{
-    typedef typename set2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct set<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set3< T0,T1,T2 >
-{
-    typedef typename set3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct set<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set4< T0,T1,T2,T3 >
-{
-    typedef typename set4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct set<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set5< T0,T1,T2,T3,T4 >
-{
-    typedef typename set5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename set6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename set7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename set8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : set15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename set15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : set16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename set16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : set17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename set17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : set18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename set18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : set19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename set19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct set
-    : set20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename set20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc/set_c.hpp b/boost/mpl/aux_/preprocessed/bcc/set_c.hpp
deleted file mode 100644
index 4e6993c..0000000
--- a/boost/mpl/aux_/preprocessed/bcc/set_c.hpp
+++ /dev/null
@@ -1,328 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "set_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct set_c;
-
-template<
-      typename T
-    >
-struct set_c<
-          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set0_c<T>
-{
-    typedef typename set0_c<T>::type type;
-};
-
-template<
-      typename T, long C0
-    >
-struct set_c<
-          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set1_c< T,C0 >
-{
-    typedef typename set1_c< T,C0 >::type type;
-};
-
-template<
-      typename T, long C0, long C1
-    >
-struct set_c<
-          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set2_c< T,C0,C1 >
-{
-    typedef typename set2_c< T,C0,C1 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2
-    >
-struct set_c<
-          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set3_c< T,C0,C1,C2 >
-{
-    typedef typename set3_c< T,C0,C1,C2 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3
-    >
-struct set_c<
-          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set4_c< T,C0,C1,C2,C3 >
-{
-    typedef typename set4_c< T,C0,C1,C2,C3 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set5_c< T,C0,C1,C2,C3,C4 >
-{
-    typedef typename set5_c< T,C0,C1,C2,C3,C4 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set6_c< T,C0,C1,C2,C3,C4,C5 >
-{
-    typedef typename set6_c< T,C0,C1,C2,C3,C4,C5 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set7_c< T,C0,C1,C2,C3,C4,C5,C6 >
-{
-    typedef typename set7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX
-        >
-    : set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >
-{
-    typedef typename set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >
-{
-    typedef typename set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >
-{
-    typedef typename set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >
-{
-    typedef typename set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >
-{
-    typedef typename set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >
-{
-    typedef typename set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set14_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        >
-{
-    typedef typename set14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set15_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        >
-{
-    typedef typename set15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set16_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15
-        >
-{
-    typedef typename set16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set17_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16
-        >
-{
-    typedef typename set17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, LONG_MAX, LONG_MAX
-        >
-    : set18_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17
-        >
-{
-    typedef typename set18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, LONG_MAX
-        >
-    : set19_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18
-        >
-{
-    typedef typename set19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct set_c
-    : set20_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, C19
-        >
-{
-    typedef typename set20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc/shift_left.hpp b/boost/mpl/aux_/preprocessed/bcc/shift_left.hpp
deleted file mode 100644
index 6d19e94..0000000
--- a/boost/mpl/aux_/preprocessed/bcc/shift_left.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "shift_left.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct shift_left_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< shift_left_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< shift_left_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct shift_left_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_left_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_left_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct shift_left_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct shift_left
-
-    : shift_left_impl<
-          typename shift_left_tag<N1>::type
-        , typename shift_left_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct shift_left_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N, typename S > struct apply
-
-        : integral_c<
-              typename N::value_type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N)::value
-                  << BOOST_MPL_AUX_VALUE_WKND(S)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc/shift_right.hpp b/boost/mpl/aux_/preprocessed/bcc/shift_right.hpp
deleted file mode 100644
index dd31d97..0000000
--- a/boost/mpl/aux_/preprocessed/bcc/shift_right.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "shift_right.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct shift_right_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< shift_right_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< shift_right_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct shift_right_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_right_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_right_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct shift_right_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct shift_right
-
-    : shift_right_impl<
-          typename shift_right_tag<N1>::type
-        , typename shift_right_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct shift_right_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N, typename S > struct apply
-
-        : integral_c<
-              typename N::value_type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N)::value
-                  >> BOOST_MPL_AUX_VALUE_WKND(S)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc/template_arity.hpp b/boost/mpl/aux_/preprocessed/bcc/template_arity.hpp
deleted file mode 100644
index b24a0a7..0000000
--- a/boost/mpl/aux_/preprocessed/bcc/template_arity.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "template_arity.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-template< bool >
-struct template_arity_impl
-{
-    template< typename F > struct result_
-        : mpl::int_< -1 >
-    {
-    };
-};
-
-template<>
-struct template_arity_impl<true>
-{
-    template< typename F > struct result_
-        : F::arity
-    {
-    };
-};
-
-template< typename F >
-struct template_arity
-    : template_arity_impl< ::boost::mpl::aux::has_rebind<F>::value >
-        ::template result_<F>
-{
-};
-
-}}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc/times.hpp b/boost/mpl/aux_/preprocessed/bcc/times.hpp
deleted file mode 100644
index ab100f1..0000000
--- a/boost/mpl/aux_/preprocessed/bcc/times.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "times.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct times_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< times_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< times_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct times_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct times_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct times_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct times_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct times
-    : times< times< times< times< N1,N2 >, N3>, N4>, N5>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , times
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct times< N1,N2,N3,N4,na >
-
-    : times< times< times< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , times
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct times< N1,N2,N3,na,na >
-
-    : times< times< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , times
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct times< N1,N2,na,na,na >
-    : times_impl<
-          typename times_tag<N1>::type
-        , typename times_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , times
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, times)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct times_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  * BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc/unpack_args.hpp b/boost/mpl/aux_/preprocessed/bcc/unpack_args.hpp
deleted file mode 100644
index f391dc1..0000000
--- a/boost/mpl/aux_/preprocessed/bcc/unpack_args.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "unpack_args.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template< int size, typename F, typename Args >
-struct unpack_args_impl;
-
-template< typename F, typename Args >
-struct unpack_args_impl< 0,F,Args >
-    : apply0<
-          F
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 1,F,Args >
-    : apply1<
-          F
-        , typename at_c< Args,0 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 2,F,Args >
-    : apply2<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 3,F,Args >
-    : apply3<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        , typename at_c< Args,2 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 4,F,Args >
-    : apply4<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 5,F,Args >
-    : apply5<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
-        , typename at_c< Args,4 >::type
-        >
-{
-};
-
-}
-
-template<
-      typename F
-    >
-struct unpack_args
-{
-    template< typename Args > struct apply
-    {
-        typedef typename aux::unpack_args_impl<
-              size<Args>::value
-            , F
-            , Args
-            >::type type;
-
-    };
-};
-
-BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc/vector.hpp b/boost/mpl/aux_/preprocessed/bcc/vector.hpp
deleted file mode 100644
index 803e217..0000000
--- a/boost/mpl/aux_/preprocessed/bcc/vector.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "vector.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct vector;
-
-template<
-     
-    >
-struct vector<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector0<  >
-{
-    typedef vector0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct vector<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector1<T0>
-{
-    typedef typename vector1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct vector<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector2< T0,T1 >
-{
-    typedef typename vector2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct vector<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector3< T0,T1,T2 >
-{
-    typedef typename vector3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct vector<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector4< T0,T1,T2,T3 >
-{
-    typedef typename vector4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct vector<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector5< T0,T1,T2,T3,T4 >
-{
-    typedef typename vector5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : vector15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : vector16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : vector17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : vector18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : vector19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct vector
-    : vector20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc/vector_c.hpp b/boost/mpl/aux_/preprocessed/bcc/vector_c.hpp
deleted file mode 100644
index 643b7fd..0000000
--- a/boost/mpl/aux_/preprocessed/bcc/vector_c.hpp
+++ /dev/null
@@ -1,309 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2008
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "vector_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct vector_c;
-
-template<
-      typename T
-    >
-struct vector_c<
-          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector0_c<T>
-{
-    typedef typename vector0_c<T>::type type;
-};
-
-template<
-      typename T, long C0
-    >
-struct vector_c<
-          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector1_c< T, T(C0) >
-{
-    typedef typename vector1_c< T, T(C0) >::type type;
-};
-
-template<
-      typename T, long C0, long C1
-    >
-struct vector_c<
-          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector2_c< T, T(C0), T(C1) >
-{
-    typedef typename vector2_c< T, T(C0), T(C1) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2
-    >
-struct vector_c<
-          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector3_c< T, T(C0), T(C1), T(C2) >
-{
-    typedef typename vector3_c< T, T(C0), T(C1), T(C2) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector4_c< T, T(C0), T(C1), T(C2), T(C3) >
-{
-    typedef typename vector4_c< T, T(C0), T(C1), T(C2), T(C3) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) >
-{
-    typedef typename vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) >
-{
-    typedef typename vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) >
-{
-    typedef typename vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX
-        >
-    : vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) >
-{
-    typedef typename vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) >
-{
-    typedef typename vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) >
-{
-    typedef typename vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) >
-{
-    typedef typename vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) >
-{
-    typedef typename vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) >
-{
-    typedef typename vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) >
-{
-    typedef typename vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) >
-{
-    typedef typename vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) >
-{
-    typedef typename vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) >
-{
-    typedef typename vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, LONG_MAX, LONG_MAX
-        >
-    : vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) >
-{
-    typedef typename vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, LONG_MAX
-        >
-    : vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) >
-{
-    typedef typename vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct vector_c
-    : vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) >
-{
-    typedef typename vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc551/advance_backward.hpp b/boost/mpl/aux_/preprocessed/bcc551/advance_backward.hpp
deleted file mode 100644
index 26de94c..0000000
--- a/boost/mpl/aux_/preprocessed/bcc551/advance_backward.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/advance_backward.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-template< long N > struct advance_backward;
-template<>
-struct advance_backward<0>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef iter0 type;
-    };
-};
-
-template<>
-struct advance_backward<1>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef iter1 type;
-    };
-};
-
-template<>
-struct advance_backward<2>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef iter2 type;
-    };
-};
-
-template<>
-struct advance_backward<3>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef typename prior<iter2>::type iter3;
-        typedef iter3 type;
-    };
-};
-
-template<>
-struct advance_backward<4>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef typename prior<iter2>::type iter3;
-        typedef typename prior<iter3>::type iter4;
-        typedef iter4 type;
-    };
-};
-
-template< long N >
-struct advance_backward
-{
-    template< typename Iterator > struct apply
-    {
-        typedef typename apply_wrap1<
-              advance_backward<4>
-            , Iterator
-            >::type chunk_result_;
-
-        typedef typename apply_wrap1<
-              advance_backward<(
-                (N - 4) < 0
-                    ? 0
-                    : N - 4
-                    )>
-            , chunk_result_
-            >::type type;
-    };
-};
-
-}}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc551/advance_forward.hpp b/boost/mpl/aux_/preprocessed/bcc551/advance_forward.hpp
deleted file mode 100644
index b137cc7..0000000
--- a/boost/mpl/aux_/preprocessed/bcc551/advance_forward.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/advance_forward.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-template< long N > struct advance_forward;
-template<>
-struct advance_forward<0>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef iter0 type;
-    };
-};
-
-template<>
-struct advance_forward<1>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef iter1 type;
-    };
-};
-
-template<>
-struct advance_forward<2>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef iter2 type;
-    };
-};
-
-template<>
-struct advance_forward<3>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef typename next<iter2>::type iter3;
-        typedef iter3 type;
-    };
-};
-
-template<>
-struct advance_forward<4>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef typename next<iter2>::type iter3;
-        typedef typename next<iter3>::type iter4;
-        typedef iter4 type;
-    };
-};
-
-template< long N >
-struct advance_forward
-{
-    template< typename Iterator > struct apply
-    {
-        typedef typename apply_wrap1<
-              advance_forward<4>
-            , Iterator
-            >::type chunk_result_;
-
-        typedef typename apply_wrap1<
-              advance_forward<(
-                (N - 4) < 0
-                    ? 0
-                    : N - 4
-                    )>
-            , chunk_result_
-            >::type type;
-    };
-};
-
-}}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc551/and.hpp b/boost/mpl/aux_/preprocessed/bcc551/and.hpp
deleted file mode 100644
index 010ad1f..0000000
--- a/boost/mpl/aux_/preprocessed/bcc551/and.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/and.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template< bool C_, typename T1, typename T2, typename T3, typename T4 >
-struct and_impl
-    : false_
-{
-};
-
-template< typename T1, typename T2, typename T3, typename T4 >
-struct and_impl< true,T1,T2,T3,T4 >
-    : and_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4
-        , true_
-        >
-{
-};
-
-template<>
-struct and_impl<
-          true
-        , true_, true_, true_, true_
-        >
-    : true_
-{
-};
-
-} // namespace aux
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
-    , typename T3 = true_, typename T4 = true_, typename T5 = true_
-    >
-struct and_
-
-    : aux::and_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4, T5
-        >
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , and_
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC2(
-      2
-    , 5
-    , and_
-    )
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc551/apply.hpp b/boost/mpl/aux_/preprocessed/bcc551/apply.hpp
deleted file mode 100644
index e08eacc..0000000
--- a/boost/mpl/aux_/preprocessed/bcc551/apply.hpp
+++ /dev/null
@@ -1,169 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/apply.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename F
-    >
-struct apply0
-
-    : apply_wrap0<
-          typename lambda<F>::type
-       
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          1
-        , apply0
-        , (F )
-        )
-};
-
-template<
-      typename F
-    >
-struct apply< F,na,na,na,na,na >
-    : apply0<F>
-{
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply1
-
-    : apply_wrap1<
-          typename lambda<F>::type
-        , T1
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          2
-        , apply1
-        , (F, T1)
-        )
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply< F,T1,na,na,na,na >
-    : apply1< F,T1 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply2
-
-    : apply_wrap2<
-          typename lambda<F>::type
-        , T1, T2
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          3
-        , apply2
-        , (F, T1, T2)
-        )
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply< F,T1,T2,na,na,na >
-    : apply2< F,T1,T2 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply3
-
-    : apply_wrap3<
-          typename lambda<F>::type
-        , T1, T2, T3
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          4
-        , apply3
-        , (F, T1, T2, T3)
-        )
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply< F,T1,T2,T3,na,na >
-    : apply3< F,T1,T2,T3 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply4
-
-    : apply_wrap4<
-          typename lambda<F>::type
-        , T1, T2, T3, T4
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , apply4
-        , (F, T1, T2, T3, T4)
-        )
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply< F,T1,T2,T3,T4,na >
-    : apply4< F,T1,T2,T3,T4 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply5
-
-    : apply_wrap5<
-          typename lambda<F>::type
-        , T1, T2, T3, T4, T5
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          6
-        , apply5
-        , (F, T1, T2, T3, T4, T5)
-        )
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply
-    : apply5< F,T1,T2,T3,T4,T5 >
-{
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc551/apply_fwd.hpp b/boost/mpl/aux_/preprocessed/bcc551/apply_fwd.hpp
deleted file mode 100644
index b2ed5d5..0000000
--- a/boost/mpl/aux_/preprocessed/bcc551/apply_fwd.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/apply_fwd.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename F, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na
-    >
-struct apply;
-
-template<
-      typename F
-    >
-struct apply0;
-
-template<
-      typename F, typename T1
-    >
-struct apply1;
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply2;
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply3;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply4;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply5;
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc551/apply_wrap.hpp b/boost/mpl/aux_/preprocessed/bcc551/apply_wrap.hpp
deleted file mode 100644
index 2ffe709..0000000
--- a/boost/mpl/aux_/preprocessed/bcc551/apply_wrap.hpp
+++ /dev/null
@@ -1,456 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/apply_wrap.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      int N, typename F
-    >
-struct apply_wrap_impl0;
-
-template<
-      typename F
-    >
-struct apply_wrap_impl0<
-          0
-        , F
-       
-        >
-{
-    typedef typename F::template apply<
-         
-/// since the defaults are "lost", we have to pass *something* even for nullary
-/// metafunction classes
-        na
-        > type;
-};
-
-template<
-      typename F
-    >
-struct apply_wrap_impl0<
-          1
-        , F
-       
-        >
-{
-    typedef typename F::template apply<
-         
-        na
-        > type;
-};
-
-template<
-      typename F
-    >
-struct apply_wrap_impl0<
-          2
-        , F
-       
-        >
-{
-    typedef typename F::template apply<
-         
-        na, na
-
-        > type;
-};
-
-template<
-      typename F
-    >
-struct apply_wrap_impl0<
-          3
-        , F
-       
-        >
-{
-    typedef typename F::template apply<
-         
-        na, na, na
-
-        > type;
-};
-
-template<
-      typename F
-    >
-struct apply_wrap_impl0<
-          4
-        , F
-       
-        >
-{
-    typedef typename F::template apply<
-         
-        na, na, na, na
-
-        > type;
-};
-
-template<
-      typename F
-    >
-struct apply_wrap_impl0<
-          5
-        , F
-       
-        >
-{
-    typedef typename F::template apply<
-         
-        na, na, na, na, na
-
-        > type;
-};
-
-template<
-      typename F
-    >
-struct apply_wrap0
-    : apply_wrap_impl0<
-          ::boost::mpl::aux::arity< F,0 >::value
-        , F
-       
-        >::type
-{
-};
-
-template<
-      int N, typename F, typename T1
-    >
-struct apply_wrap_impl1;
-
-template<
-      typename F, typename T1
-    >
-struct apply_wrap_impl1<
-          1
-        , F
-        , T1
-        >
-{
-    typedef typename F::template apply<
-          T1
-        > type;
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply_wrap_impl1<
-          2
-        , F
-        , T1
-        >
-{
-    typedef typename F::template apply<
-          T1
-        , na
-
-        > type;
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply_wrap_impl1<
-          3
-        , F
-        , T1
-        >
-{
-    typedef typename F::template apply<
-          T1
-        , na, na
-
-        > type;
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply_wrap_impl1<
-          4
-        , F
-        , T1
-        >
-{
-    typedef typename F::template apply<
-          T1
-        , na, na, na
-
-        > type;
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply_wrap_impl1<
-          5
-        , F
-        , T1
-        >
-{
-    typedef typename F::template apply<
-          T1
-        , na, na, na, na
-
-        > type;
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply_wrap1
-    : apply_wrap_impl1<
-          ::boost::mpl::aux::arity< F,1 >::value
-        , F
-        , T1
-        >::type
-{
-};
-
-template<
-      int N, typename F, typename T1, typename T2
-    >
-struct apply_wrap_impl2;
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply_wrap_impl2<
-          2
-        , F
-        , T1, T2
-        >
-{
-    typedef typename F::template apply<
-          T1, T2
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply_wrap_impl2<
-          3
-        , F
-        , T1, T2
-        >
-{
-    typedef typename F::template apply<
-          T1, T2
-
-        , na
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply_wrap_impl2<
-          4
-        , F
-        , T1, T2
-        >
-{
-    typedef typename F::template apply<
-          T1, T2
-
-        , na, na
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply_wrap_impl2<
-          5
-        , F
-        , T1, T2
-        >
-{
-    typedef typename F::template apply<
-          T1, T2
-
-        , na, na, na
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply_wrap2
-    : apply_wrap_impl2<
-          ::boost::mpl::aux::arity< F,2 >::value
-        , F
-        , T1, T2
-        >::type
-{
-};
-
-template<
-      int N, typename F, typename T1, typename T2, typename T3
-    >
-struct apply_wrap_impl3;
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply_wrap_impl3<
-          3
-        , F
-        , T1, T2, T3
-        >
-{
-    typedef typename F::template apply<
-          T1, T2, T3
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply_wrap_impl3<
-          4
-        , F
-        , T1, T2, T3
-        >
-{
-    typedef typename F::template apply<
-          T1, T2, T3
-
-        , na
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply_wrap_impl3<
-          5
-        , F
-        , T1, T2, T3
-        >
-{
-    typedef typename F::template apply<
-          T1, T2, T3
-
-        , na, na
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply_wrap3
-    : apply_wrap_impl3<
-          ::boost::mpl::aux::arity< F,3 >::value
-        , F
-        , T1, T2, T3
-        >::type
-{
-};
-
-template<
-      int N, typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply_wrap_impl4;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply_wrap_impl4<
-          4
-        , F
-        , T1, T2, T3, T4
-        >
-{
-    typedef typename F::template apply<
-          T1, T2, T3, T4
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply_wrap_impl4<
-          5
-        , F
-        , T1, T2, T3, T4
-        >
-{
-    typedef typename F::template apply<
-          T1, T2, T3, T4
-
-        , na
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply_wrap4
-    : apply_wrap_impl4<
-          ::boost::mpl::aux::arity< F,4 >::value
-        , F
-        , T1, T2, T3, T4
-        >::type
-{
-};
-
-template<
-      int N, typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply_wrap_impl5;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply_wrap_impl5<
-          5
-        , F
-        , T1, T2, T3, T4, T5
-        >
-{
-    typedef typename F::template apply<
-          T1, T2, T3, T4, T5
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply_wrap5
-    : apply_wrap_impl5<
-          ::boost::mpl::aux::arity< F,5 >::value
-        , F
-        , T1, T2, T3, T4, T5
-        >::type
-{
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc551/arg.hpp b/boost/mpl/aux_/preprocessed/bcc551/arg.hpp
deleted file mode 100644
index 6f2f8a8..0000000
--- a/boost/mpl/aux_/preprocessed/bcc551/arg.hpp
+++ /dev/null
@@ -1,123 +0,0 @@
-
-// Copyright Peter Dimov 2001-2002
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/arg.hpp" header
-// -- DO NOT modify by hand!
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-template<> struct arg< -1 >
-{
-    BOOST_STATIC_CONSTANT(int, value  = -1);
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U1 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<1>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 1);
-    typedef arg<2> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U1 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<2>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 2);
-    typedef arg<3> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U2 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<3>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 3);
-    typedef arg<4> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U3 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<4>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 4);
-    typedef arg<5> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U4 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<5>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 5);
-    typedef arg<6> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U5 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg)
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
diff --git a/boost/mpl/aux_/preprocessed/bcc551/basic_bind.hpp b/boost/mpl/aux_/preprocessed/bcc551/basic_bind.hpp
deleted file mode 100644
index a29daa0..0000000
--- a/boost/mpl/aux_/preprocessed/bcc551/basic_bind.hpp
+++ /dev/null
@@ -1,306 +0,0 @@
-
-// Copyright Peter Dimov 2001
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/basic_bind.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template<
-      typename T, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg
-{
-    typedef T type;
-};
-
-template<
-      int N, typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg< arg<N>, U1, U2, U3, U4, U5 >
-{
-    typedef typename apply_wrap5<mpl::arg<N>, U1, U2, U3, U4, U5>::type type;
-};
-
-} // namespace aux
-
-template<
-      typename F
-    >
-struct bind0
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-
-     public:
-        typedef typename apply_wrap0<
-              f_
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind0<F>, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind0<F> f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
-
-template<
-      typename F, typename T1
-    >
-struct bind1
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-
-     public:
-        typedef typename apply_wrap1<
-              f_
-            , typename t1::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename U1, typename U2, typename U3
-    , typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind1< F,T1 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind1< F,T1 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-
-     public:
-        typedef typename apply_wrap2<
-              f_
-            , typename t1::type, typename t2::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename U1, typename U2
-    , typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind2< F,T1,T2 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind2< F,T1,T2 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-
-     public:
-        typedef typename apply_wrap3<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename U1
-    , typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind3< F,T1,T2,T3 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind4
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
-
-     public:
-        typedef typename apply_wrap4<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind4< F,T1,T2,T3,T4 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind5
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
-        typedef aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 > t5;
-
-     public:
-        typedef typename apply_wrap5<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type, typename t5::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind5< F,T1,T2,T3,T4,T5 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc551/bind.hpp b/boost/mpl/aux_/preprocessed/bcc551/bind.hpp
deleted file mode 100644
index 34b1b5c..0000000
--- a/boost/mpl/aux_/preprocessed/bcc551/bind.hpp
+++ /dev/null
@@ -1,403 +0,0 @@
-
-// Copyright Peter Dimov 2001
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/bind.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template<
-      typename T, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg
-{
-    typedef T type;
-};
-
-template<
-      typename T
-    , typename Arg
-    >
-struct replace_unnamed_arg
-{
-    typedef Arg next;
-    typedef T type;
-};
-
-template<
-      typename Arg
-    >
-struct replace_unnamed_arg< arg< -1 >, Arg >
-{
-    typedef typename Arg::next next;
-    typedef Arg type;
-};
-
-template<
-      int N, typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg< arg<N>, U1, U2, U3, U4, U5 >
-{
-    typedef typename apply_wrap5<mpl::arg<N>, U1, U2, U3, U4, U5>::type type;
-};
-
-} // namespace aux
-
-template<
-      typename F
-    >
-struct bind0
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-     public:
-        typedef typename apply_wrap0<
-              f_
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind0<F>, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind0<F> f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
-
-template<
-      typename F, typename T1
-    >
-struct bind1
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-     public:
-        typedef typename apply_wrap1<
-              f_
-            , typename t1::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename U1, typename U2, typename U3
-    , typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind1< F,T1 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind1< F,T1 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-     public:
-        typedef typename apply_wrap2<
-              f_
-            , typename t1::type, typename t2::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename U1, typename U2
-    , typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind2< F,T1,T2 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind2< F,T1,T2 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-     public:
-        typedef typename apply_wrap3<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename U1
-    , typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind3< F,T1,T2,T3 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind4
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef aux::replace_unnamed_arg< T4,n4 > r4;
-        typedef typename r4::type a4;
-        typedef typename r4::next n5;
-        typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
-        ///
-     public:
-        typedef typename apply_wrap4<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind4< F,T1,T2,T3,T4 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind5
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef aux::replace_unnamed_arg< T4,n4 > r4;
-        typedef typename r4::type a4;
-        typedef typename r4::next n5;
-        typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
-        ///
-        typedef aux::replace_unnamed_arg< T5,n5 > r5;
-        typedef typename r5::type a5;
-        typedef typename r5::next n6;
-        typedef aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 > t5;
-        ///
-     public:
-        typedef typename apply_wrap5<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type, typename t5::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind5< F,T1,T2,T3,T4,T5 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc551/bind_fwd.hpp b/boost/mpl/aux_/preprocessed/bcc551/bind_fwd.hpp
deleted file mode 100644
index 022cba3..0000000
--- a/boost/mpl/aux_/preprocessed/bcc551/bind_fwd.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/bind_fwd.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename F
-    >
-struct bind0;
-
-template<
-      typename F, typename T1
-    >
-struct bind1;
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2;
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind4;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind5;
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc551/bitand.hpp b/boost/mpl/aux_/preprocessed/bcc551/bitand.hpp
deleted file mode 100644
index 0bbf54e..0000000
--- a/boost/mpl/aux_/preprocessed/bcc551/bitand.hpp
+++ /dev/null
@@ -1,147 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/bitand.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitand_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< bitand_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< bitand_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitand_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitand_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitand_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitand_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct bitand_
-    : bitand_< bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>, N5>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitand_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct bitand_< N1,N2,N3,N4,na >
-
-    : bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitand_
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct bitand_< N1,N2,N3,na,na >
-
-    : bitand_< bitand_< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitand_
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct bitand_< N1,N2,na,na,na >
-    : bitand_impl<
-          typename bitand_tag<N1>::type
-        , typename bitand_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitand_
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct bitand_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  & BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc551/bitor.hpp b/boost/mpl/aux_/preprocessed/bcc551/bitor.hpp
deleted file mode 100644
index 55b31cb..0000000
--- a/boost/mpl/aux_/preprocessed/bcc551/bitor.hpp
+++ /dev/null
@@ -1,147 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/bitor.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitor_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< bitor_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< bitor_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitor_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitor_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitor_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitor_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct bitor_
-    : bitor_< bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>, N5>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitor_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct bitor_< N1,N2,N3,N4,na >
-
-    : bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitor_
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct bitor_< N1,N2,N3,na,na >
-
-    : bitor_< bitor_< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitor_
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct bitor_< N1,N2,na,na,na >
-    : bitor_impl<
-          typename bitor_tag<N1>::type
-        , typename bitor_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitor_
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct bitor_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  | BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc551/bitxor.hpp b/boost/mpl/aux_/preprocessed/bcc551/bitxor.hpp
deleted file mode 100644
index ec19391..0000000
--- a/boost/mpl/aux_/preprocessed/bcc551/bitxor.hpp
+++ /dev/null
@@ -1,147 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/bitxor.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitxor_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< bitxor_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< bitxor_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitxor_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitxor_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitxor_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitxor_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct bitxor_
-    : bitxor_< bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>, N5>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitxor_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct bitxor_< N1,N2,N3,N4,na >
-
-    : bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitxor_
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct bitxor_< N1,N2,N3,na,na >
-
-    : bitxor_< bitxor_< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitxor_
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct bitxor_< N1,N2,na,na,na >
-    : bitxor_impl<
-          typename bitxor_tag<N1>::type
-        , typename bitxor_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitxor_
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct bitxor_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  ^ BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc551/deque.hpp b/boost/mpl/aux_/preprocessed/bcc551/deque.hpp
deleted file mode 100644
index de67398..0000000
--- a/boost/mpl/aux_/preprocessed/bcc551/deque.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/deque.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct deque;
-
-template<
-     
-    >
-struct deque<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector0<  >
-{
-    typedef vector0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct deque<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector1<T0>
-{
-    typedef typename vector1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct deque<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector2< T0,T1 >
-{
-    typedef typename vector2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct deque<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector3< T0,T1,T2 >
-{
-    typedef typename vector3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct deque<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector4< T0,T1,T2,T3 >
-{
-    typedef typename vector4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct deque<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector5< T0,T1,T2,T3,T4 >
-{
-    typedef typename vector5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : vector15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : vector16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : vector17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : vector18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : vector19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct deque
-    : vector20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc551/divides.hpp b/boost/mpl/aux_/preprocessed/bcc551/divides.hpp
deleted file mode 100644
index 86f1682..0000000
--- a/boost/mpl/aux_/preprocessed/bcc551/divides.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/divides.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct divides_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< divides_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< divides_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct divides_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct divides_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct divides_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct divides_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct divides
-    : divides< divides< divides< divides< N1,N2 >, N3>, N4>, N5>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , divides
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct divides< N1,N2,N3,N4,na >
-
-    : divides< divides< divides< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , divides
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct divides< N1,N2,N3,na,na >
-
-    : divides< divides< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , divides
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct divides< N1,N2,na,na,na >
-    : divides_impl<
-          typename divides_tag<N1>::type
-        , typename divides_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , divides
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, divides)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct divides_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  / BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc551/equal_to.hpp b/boost/mpl/aux_/preprocessed/bcc551/equal_to.hpp
deleted file mode 100644
index 62c9945..0000000
--- a/boost/mpl/aux_/preprocessed/bcc551/equal_to.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/equal_to.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct equal_to_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct equal_to_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct equal_to_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct equal_to_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct equal_to_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct equal_to
-
-    : equal_to_impl<
-          typename equal_to_tag<N1>::type
-        , typename equal_to_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct equal_to_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value  == BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc551/fold_impl.hpp b/boost/mpl/aux_/preprocessed/bcc551/fold_impl.hpp
deleted file mode 100644
index 9e7a293..0000000
--- a/boost/mpl/aux_/preprocessed/bcc551/fold_impl.hpp
+++ /dev/null
@@ -1,180 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl;
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 0,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef state0 state;
-    typedef iter0 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 1,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    
-
-    typedef state1 state;
-    typedef iter1 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 2,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    
-
-    typedef state2 state;
-    typedef iter2 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 3,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    
-
-    typedef state3 state;
-    typedef iter3 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 4,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp, state3, typename deref<iter3>::type >::type state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef state4 state;
-    typedef iter4 iterator;
-};
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl
-{
-    typedef fold_impl<
-          4
-        , First
-        , Last
-        , State
-        , ForwardOp
-        > chunk_;
-
-    typedef fold_impl<
-          ( (N - 4) < 0 ? 0 : N - 4 )
-        , typename chunk_::iterator
-        , Last
-        , typename chunk_::state
-        , ForwardOp
-        > res_;
-
-    typedef typename res_::state state;
-    typedef typename res_::iterator iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< -1,First,Last,State,ForwardOp >
-    : fold_impl<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State, typename deref<First>::type>::type
-        , ForwardOp
-        >
-{
-};
-
-template<
-      typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< -1,Last,Last,State,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/bcc551/full_lambda.hpp b/boost/mpl/aux_/preprocessed/bcc551/full_lambda.hpp
deleted file mode 100644
index e3eef71..0000000
--- a/boost/mpl/aux_/preprocessed/bcc551/full_lambda.hpp
+++ /dev/null
@@ -1,558 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/full_lambda.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template<
-      bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false
-    , bool C5 = false
-    >
-struct lambda_or
-    : true_
-{
-};
-
-template<>
-struct lambda_or< false,false,false,false,false >
-    : false_
-{
-};
-
-} // namespace aux
-
-template<
-      typename T
-    , typename Tag
-    , typename Arity
-    >
-struct lambda
-{
-    typedef false_ is_le;
-    typedef T result_;
-    typedef T type;
-};
-
-template<
-      typename T
-    >
-struct is_lambda_expression
-    : lambda<T>::is_le
-{
-};
-
-template< int N, typename Tag >
-struct lambda< arg<N>,Tag, int_< -1 > >
-{
-    typedef true_ is_le;
-    typedef mpl::arg<N> result_; // qualified for the sake of MIPSpro 7.41
-    typedef mpl::protect<result_> type;
-};
-
-template<
-      typename F
-    , typename Tag
-    >
-struct lambda<
-          bind0<F>
-        , Tag
-        , int_<1>
-        >
-{
-    typedef false_ is_le;
-    typedef bind0<
-          F
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1 > class F
-    , typename L1
-    >
-struct le_result1
-{
-    typedef F<
-          typename L1::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1 > class F
-    , typename L1
-    >
-struct le_result1< true_,Tag,F,L1 >
-{
-    typedef bind1<
-          quote1< F,Tag >
-        , typename L1::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1 > class F
-    , typename T1
-    , typename Tag
-    >
-struct lambda<
-          F<T1>
-        , Tag
-        , int_<1>
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef typename l1::is_le is_le1;
-    typedef typename aux::lambda_or<
-          is_le1::value
-        >::type is_le;
-
-    typedef aux::le_result1<
-          is_le, Tag, F, l1
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1
-    , typename Tag
-    >
-struct lambda<
-          bind1< F,T1 >
-        , Tag
-        , int_<2>
-        >
-{
-    typedef false_ is_le;
-    typedef bind1<
-          F
-        , T1
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2 > class F
-    , typename L1, typename L2
-    >
-struct le_result2
-{
-    typedef F<
-          typename L1::type, typename L2::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2 > class F
-    , typename L1, typename L2
-    >
-struct le_result2< true_,Tag,F,L1,L2 >
-{
-    typedef bind2<
-          quote2< F,Tag >
-        , typename L1::result_, typename L2::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2 > class F
-    , typename T1, typename T2
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2 >
-        , Tag
-        , int_<2>
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value
-        >::type is_le;
-
-    typedef aux::le_result2<
-          is_le, Tag, F, l1, l2
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    , typename Tag
-    >
-struct lambda<
-          bind2< F,T1,T2 >
-        , Tag
-        , int_<3>
-        >
-{
-    typedef false_ is_le;
-    typedef bind2<
-          F
-        , T1, T2
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3 > class F
-    , typename L1, typename L2, typename L3
-    >
-struct le_result3
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3 > class F
-    , typename L1, typename L2, typename L3
-    >
-struct le_result3< true_,Tag,F,L1,L2,L3 >
-{
-    typedef bind3<
-          quote3< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2, typename P3 > class F
-    , typename T1, typename T2, typename T3
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3 >
-        , Tag
-        , int_<3>
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value
-        >::type is_le;
-
-    typedef aux::le_result3<
-          is_le, Tag, F, l1, l2, l3
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    , typename Tag
-    >
-struct lambda<
-          bind3< F,T1,T2,T3 >
-        , Tag
-        , int_<4>
-        >
-{
-    typedef false_ is_le;
-    typedef bind3<
-          F
-        , T1, T2, T3
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename L1, typename L2, typename L3, typename L4
-    >
-struct le_result4
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        , typename L4::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename L1, typename L2, typename L3, typename L4
-    >
-struct le_result4< true_,Tag,F,L1,L2,L3,L4 >
-{
-    typedef bind4<
-          quote4< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        , typename L4::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename T1, typename T2, typename T3, typename T4
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3,T4 >
-        , Tag
-        , int_<4>
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    typedef lambda< T4,Tag > l4;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    typedef typename l4::is_le is_le4;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value, is_le4::value
-        >::type is_le;
-
-    typedef aux::le_result4<
-          is_le, Tag, F, l1, l2, l3, l4
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename Tag
-    >
-struct lambda<
-          bind4< F,T1,T2,T3,T4 >
-        , Tag
-        , int_<5>
-        >
-{
-    typedef false_ is_le;
-    typedef bind4<
-          F
-        , T1, T2, T3, T4
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
-    , typename L1, typename L2, typename L3, typename L4, typename L5
-    >
-struct le_result5
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        , typename L4::type, typename L5::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
-    , typename L1, typename L2, typename L3, typename L4, typename L5
-    >
-struct le_result5< true_,Tag,F,L1,L2,L3,L4,L5 >
-{
-    typedef bind5<
-          quote5< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        , typename L4::result_, typename L5::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template<
-          typename P1, typename P2, typename P3, typename P4
-        , typename P5
-        >
-      class F
-    , typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3,T4,T5 >
-        , Tag
-        , int_<5>
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    typedef lambda< T4,Tag > l4;
-    typedef lambda< T5,Tag > l5;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    typedef typename l4::is_le is_le4;
-    typedef typename l5::is_le is_le5;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value, is_le4::value
-        , is_le5::value
-        >::type is_le;
-
-    typedef aux::le_result5<
-          is_le, Tag, F, l1, l2, l3, l4, l5
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    , typename Tag
-    >
-struct lambda<
-          bind5< F,T1,T2,T3,T4,T5 >
-        , Tag
-        , int_<6>
-        >
-{
-    typedef false_ is_le;
-    typedef bind5<
-          F
-        , T1, T2, T3, T4, T5
-        > result_;
-
-    typedef result_ type;
-};
-
-/// special case for 'protect'
-template< typename T, typename Tag >
-struct lambda< mpl::protect<T>,Tag, int_<1> >
-{
-    typedef false_ is_le;
-    typedef mpl::protect<T> result_;
-    typedef result_ type;
-};
-
-/// specializations for the main 'bind' form
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    , typename Tag
-    >
-struct lambda<
-          bind< F,T1,T2,T3,T4,T5 >
-        , Tag
-        , int_<6>
-        >
-{
-    typedef false_ is_le;
-    typedef bind< F,T1,T2,T3,T4,T5 > result_;
-    typedef result_ type;
-};
-
-template<
-      typename F
-    , typename Tag1
-    , typename Tag2
-    , typename Arity
-    >
-struct lambda<
-          lambda< F,Tag1,Arity >
-        , Tag2
-        , int_<3>
-        >
-{
-    typedef lambda< F,Tag2 > l1;
-    typedef lambda< Tag1,Tag2 > l2;
-    typedef typename l1::is_le is_le;
-    typedef bind1< quote1<aux::template_arity>, typename l1::result_ > arity_;
-    typedef lambda< typename if_< is_le,arity_,Arity >::type, Tag2 > l3;
-    typedef aux::le_result3<is_le, Tag2, mpl::lambda, l1, l2, l3> le_result_;
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 3, lambda)
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc551/greater.hpp b/boost/mpl/aux_/preprocessed/bcc551/greater.hpp
deleted file mode 100644
index 14d8e08..0000000
--- a/boost/mpl/aux_/preprocessed/bcc551/greater.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/greater.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct greater_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< greater_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< greater_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct greater_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct greater_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct greater
-
-    : greater_impl<
-          typename greater_tag<N1>::type
-        , typename greater_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, greater)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct greater_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value > BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc551/greater_equal.hpp b/boost/mpl/aux_/preprocessed/bcc551/greater_equal.hpp
deleted file mode 100644
index 2603f91..0000000
--- a/boost/mpl/aux_/preprocessed/bcc551/greater_equal.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/greater_equal.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct greater_equal_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< greater_equal_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct greater_equal_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_equal_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_equal_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct greater_equal_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct greater_equal
-
-    : greater_equal_impl<
-          typename greater_equal_tag<N1>::type
-        , typename greater_equal_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct greater_equal_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc551/inherit.hpp b/boost/mpl/aux_/preprocessed/bcc551/inherit.hpp
deleted file mode 100644
index 00f31c4..0000000
--- a/boost/mpl/aux_/preprocessed/bcc551/inherit.hpp
+++ /dev/null
@@ -1,141 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/inherit.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
-    >
-struct inherit2
-    : T1, T2
-{
-    typedef inherit2 type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2))
-};
-
-template< typename T1 >
-struct inherit2< T1,empty_base >
-{
-    typedef T1 type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (T1, empty_base))
-};
-
-template< typename T2 >
-struct inherit2< empty_base,T2 >
-{
-    typedef T2 type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, T2))
-};
-
-template<>
-struct inherit2< empty_base,empty_base >
-{
-    typedef empty_base type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, empty_base))
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, inherit2)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na
-    >
-struct inherit3
-    : inherit2<
-          typename inherit2<
-              T1, T2
-            >::type
-        , T3
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          3
-        , inherit3
-        , ( T1, T2, T3)
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC(3, inherit3)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
-    >
-struct inherit4
-    : inherit2<
-          typename inherit3<
-              T1, T2, T3
-            >::type
-        , T4
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          4
-        , inherit4
-        , ( T1, T2, T3, T4)
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC(4, inherit4)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
-    , typename T5 = na
-    >
-struct inherit5
-    : inherit2<
-          typename inherit4<
-              T1, T2, T3, T4
-            >::type
-        , T5
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , inherit5
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC(5, inherit5)
-
-/// primary template
-
-template<
-      typename T1 = empty_base, typename T2 = empty_base
-    , typename T3 = empty_base, typename T4 = empty_base
-    , typename T5 = empty_base
-    >
-struct inherit
-    : inherit5< T1,T2,T3,T4,T5 >
-{
-};
-
-template<>
-struct inherit< na,na,na,na,na >
-{
-    template<
-
-          typename T1 = empty_base, typename T2 = empty_base
-        , typename T3 = empty_base, typename T4 = empty_base
-        , typename T5 = empty_base
-
-        >
-    struct apply
-        : inherit< T1,T2,T3,T4,T5 >
-    {
-    };
-};
-
-BOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit)
-BOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit)
-BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit)
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc551/iter_fold_if_impl.hpp b/boost/mpl/aux_/preprocessed/bcc551/iter_fold_if_impl.hpp
deleted file mode 100644
index 6951795..0000000
--- a/boost/mpl/aux_/preprocessed/bcc551/iter_fold_if_impl.hpp
+++ /dev/null
@@ -1,133 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright David Abrahams 2001-2002
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/iter_fold_if_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-template< typename Iterator, typename State >
-struct iter_fold_if_null_step
-{
-    typedef State state;
-    typedef Iterator iterator;
-};
-
-template< bool >
-struct iter_fold_if_step_impl
-{
-    template<
-          typename Iterator
-        , typename State
-        , typename StateOp
-        , typename IteratorOp
-        >
-    struct result_
-    {
-        typedef typename apply2< StateOp,State,Iterator >::type state;
-        typedef typename IteratorOp::type iterator;
-    };
-};
-
-template<>
-struct iter_fold_if_step_impl<false>
-{
-    template<
-          typename Iterator
-        , typename State
-        , typename StateOp
-        , typename IteratorOp
-        >
-    struct result_
-    {
-        typedef State state;
-        typedef Iterator iterator;
-    };
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename ForwardOp
-    , typename Predicate
-    >
-struct iter_fold_if_forward_step
-{
-    typedef typename apply2< Predicate,State,Iterator >::type not_last;
-    typedef typename iter_fold_if_step_impl<
-          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
-        >::template result_< Iterator,State,ForwardOp, mpl::next<Iterator> > impl_;
-
-    typedef typename impl_::state state;
-    typedef typename impl_::iterator iterator;
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename BackwardOp
-    , typename Predicate
-    >
-struct iter_fold_if_backward_step
-{
-    typedef typename apply2< Predicate,State,Iterator >::type not_last;
-    typedef typename iter_fold_if_step_impl<
-          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
-        >::template result_< Iterator,State,BackwardOp, identity<Iterator> > impl_;
-
-    typedef typename impl_::state state;
-    typedef typename impl_::iterator iterator;
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename ForwardOp
-    , typename ForwardPredicate
-    , typename BackwardOp
-    , typename BackwardPredicate
-    >
-struct iter_fold_if_impl
-{
- private:
-    typedef iter_fold_if_null_step< Iterator,State > forward_step0;
-    typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1;
-    typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2;
-    typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3;
-    typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4;
-    
-
-    typedef typename if_<
-          typename forward_step4::not_last
-        , iter_fold_if_impl<
-              typename forward_step4::iterator
-            , typename forward_step4::state
-            , ForwardOp
-            , ForwardPredicate
-            , BackwardOp
-            , BackwardPredicate
-            >
-        , iter_fold_if_null_step<
-              typename forward_step4::iterator
-            , typename forward_step4::state
-            >
-        >::type backward_step4;
-
-    typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3;
-    typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2;
-    typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1;
-    typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0;
-    
-
- public:
-    typedef typename backward_step0::state state;
-    typedef typename backward_step4::iterator iterator;
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/bcc551/iter_fold_impl.hpp b/boost/mpl/aux_/preprocessed/bcc551/iter_fold_impl.hpp
deleted file mode 100644
index 805790e..0000000
--- a/boost/mpl/aux_/preprocessed/bcc551/iter_fold_impl.hpp
+++ /dev/null
@@ -1,180 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/iter_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl;
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 0,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef state0 state;
-    typedef iter0 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 1,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    
-
-    typedef state1 state;
-    typedef iter1 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 2,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    
-
-    typedef state2 state;
-    typedef iter2 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 3,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,state2,iter2 >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    
-
-    typedef state3 state;
-    typedef iter3 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 4,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,state2,iter2 >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp,state3,iter3 >::type state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef state4 state;
-    typedef iter4 iterator;
-};
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl
-{
-    typedef iter_fold_impl<
-          4
-        , First
-        , Last
-        , State
-        , ForwardOp
-        > chunk_;
-
-    typedef iter_fold_impl<
-          ( (N - 4) < 0 ? 0 : N - 4 )
-        , typename chunk_::iterator
-        , Last
-        , typename chunk_::state
-        , ForwardOp
-        > res_;
-
-    typedef typename res_::state state;
-    typedef typename res_::iterator iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< -1,First,Last,State,ForwardOp >
-    : iter_fold_impl<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2< ForwardOp,State,First >::type
-        , ForwardOp
-        >
-{
-};
-
-template<
-      typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< -1,Last,Last,State,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/bcc551/lambda_no_ctps.hpp b/boost/mpl/aux_/preprocessed/bcc551/lambda_no_ctps.hpp
deleted file mode 100644
index 890a198..0000000
--- a/boost/mpl/aux_/preprocessed/bcc551/lambda_no_ctps.hpp
+++ /dev/null
@@ -1,229 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/lambda_no_ctps.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template<
-      bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false
-    , bool C5 = false
-    >
-struct lambda_or
-    : true_
-{
-};
-
-template<>
-struct lambda_or< false,false,false,false,false >
-    : false_
-{
-};
-
-template< typename Arity > struct lambda_impl
-{
-    template< typename T, typename Tag, typename Protect > struct result_
-    {
-        typedef T type;
-        typedef is_placeholder<T> is_le;
-    };
-};
-
-template<> struct lambda_impl< int_<1> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef typename l1::is_le is_le1;
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value
-            > is_le;
-
-        typedef bind1<
-              typename F::rebind
-            , typename l1::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<2> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        
-
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value
-            > is_le;
-
-        typedef bind2<
-              typename F::rebind
-            , typename l1::type, typename l2::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<3> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        
-
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value
-            > is_le;
-
-        typedef bind3<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<4> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        typedef lambda< typename F::arg4, Tag, false_ > l4;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        typedef typename l4::is_le is_le4;
-        
-
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value
-            > is_le;
-
-        typedef bind4<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            , typename l4::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<5> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        typedef lambda< typename F::arg4, Tag, false_ > l4;
-        typedef lambda< typename F::arg5, Tag, false_ > l5;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        typedef typename l4::is_le is_le4;
-        typedef typename l5::is_le is_le5;
-        
-
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value
-            > is_le;
-
-        typedef bind5<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            , typename l4::type, typename l5::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename T
-    , typename Tag
-    , typename Protect
-    >
-struct lambda
-{
-    /// Metafunction forwarding confuses MSVC 6.x
-    typedef typename aux::template_arity<T>::type arity_;
-    typedef typename aux::lambda_impl<arity_>
-        ::template result_< T,Tag,Protect > l_;
-
-    typedef typename l_::type type;
-    typedef typename l_::is_le is_le;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect))
-};
-
-BOOST_MPL_AUX_NA_SPEC2(1, 3, lambda)
-
-template<
-      typename T
-    >
-struct is_lambda_expression
-    : lambda<T>::is_le
-{
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc551/less.hpp b/boost/mpl/aux_/preprocessed/bcc551/less.hpp
deleted file mode 100644
index 4fe3cd1..0000000
--- a/boost/mpl/aux_/preprocessed/bcc551/less.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/less.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct less_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< less_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< less_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct less_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct less_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct less
-
-    : less_impl<
-          typename less_tag<N1>::type
-        , typename less_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, less)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct less_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > BOOST_MPL_AUX_VALUE_WKND(N1)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc551/less_equal.hpp b/boost/mpl/aux_/preprocessed/bcc551/less_equal.hpp
deleted file mode 100644
index ca2894f..0000000
--- a/boost/mpl/aux_/preprocessed/bcc551/less_equal.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/less_equal.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct less_equal_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< less_equal_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< less_equal_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct less_equal_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_equal_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_equal_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct less_equal_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct less_equal
-
-    : less_equal_impl<
-          typename less_equal_tag<N1>::type
-        , typename less_equal_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct less_equal_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc551/list.hpp b/boost/mpl/aux_/preprocessed/bcc551/list.hpp
deleted file mode 100644
index 4e8ad53..0000000
--- a/boost/mpl/aux_/preprocessed/bcc551/list.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/list.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct list;
-
-template<
-     
-    >
-struct list<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list0<  >
-{
-    typedef list0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct list<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list1<T0>
-{
-    typedef typename list1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct list<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list2< T0,T1 >
-{
-    typedef typename list2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct list<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list3< T0,T1,T2 >
-{
-    typedef typename list3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct list<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list4< T0,T1,T2,T3 >
-{
-    typedef typename list4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct list<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list5< T0,T1,T2,T3,T4 >
-{
-    typedef typename list5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename list6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename list7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename list8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : list15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename list15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : list16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename list16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : list17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename list17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : list18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename list18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : list19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename list19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct list
-    : list20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename list20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc551/list_c.hpp b/boost/mpl/aux_/preprocessed/bcc551/list_c.hpp
deleted file mode 100644
index 0b48a7f..0000000
--- a/boost/mpl/aux_/preprocessed/bcc551/list_c.hpp
+++ /dev/null
@@ -1,328 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/list_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct list_c;
-
-template<
-      typename T
-    >
-struct list_c<
-          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list0_c<T>
-{
-    typedef typename list0_c<T>::type type;
-};
-
-template<
-      typename T, long C0
-    >
-struct list_c<
-          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list1_c< T,C0 >
-{
-    typedef typename list1_c< T,C0 >::type type;
-};
-
-template<
-      typename T, long C0, long C1
-    >
-struct list_c<
-          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list2_c< T,C0,C1 >
-{
-    typedef typename list2_c< T,C0,C1 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2
-    >
-struct list_c<
-          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list3_c< T,C0,C1,C2 >
-{
-    typedef typename list3_c< T,C0,C1,C2 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3
-    >
-struct list_c<
-          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list4_c< T,C0,C1,C2,C3 >
-{
-    typedef typename list4_c< T,C0,C1,C2,C3 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list5_c< T,C0,C1,C2,C3,C4 >
-{
-    typedef typename list5_c< T,C0,C1,C2,C3,C4 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list6_c< T,C0,C1,C2,C3,C4,C5 >
-{
-    typedef typename list6_c< T,C0,C1,C2,C3,C4,C5 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list7_c< T,C0,C1,C2,C3,C4,C5,C6 >
-{
-    typedef typename list7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX
-        >
-    : list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >
-{
-    typedef typename list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >
-{
-    typedef typename list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >
-{
-    typedef typename list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >
-{
-    typedef typename list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >
-{
-    typedef typename list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >
-{
-    typedef typename list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list14_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        >
-{
-    typedef typename list14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list15_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        >
-{
-    typedef typename list15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list16_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15
-        >
-{
-    typedef typename list16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list17_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16
-        >
-{
-    typedef typename list17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, LONG_MAX, LONG_MAX
-        >
-    : list18_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17
-        >
-{
-    typedef typename list18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, LONG_MAX
-        >
-    : list19_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18
-        >
-{
-    typedef typename list19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct list_c
-    : list20_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, C19
-        >
-{
-    typedef typename list20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc551/map.hpp b/boost/mpl/aux_/preprocessed/bcc551/map.hpp
deleted file mode 100644
index 837e013..0000000
--- a/boost/mpl/aux_/preprocessed/bcc551/map.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/map.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct map;
-
-template<
-     
-    >
-struct map<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map0<  >
-{
-    typedef map0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct map<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map1<T0>
-{
-    typedef typename map1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct map<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map2< T0,T1 >
-{
-    typedef typename map2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct map<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map3< T0,T1,T2 >
-{
-    typedef typename map3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct map<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map4< T0,T1,T2,T3 >
-{
-    typedef typename map4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct map<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map5< T0,T1,T2,T3,T4 >
-{
-    typedef typename map5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename map6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename map7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename map8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : map15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename map15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : map16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename map16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : map17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename map17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : map18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename map18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : map19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename map19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct map
-    : map20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename map20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc551/minus.hpp b/boost/mpl/aux_/preprocessed/bcc551/minus.hpp
deleted file mode 100644
index 71d4913..0000000
--- a/boost/mpl/aux_/preprocessed/bcc551/minus.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/minus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct minus_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< minus_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< minus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct minus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct minus_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct minus_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct minus_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct minus
-    : minus< minus< minus< minus< N1,N2 >, N3>, N4>, N5>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , minus
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct minus< N1,N2,N3,N4,na >
-
-    : minus< minus< minus< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , minus
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct minus< N1,N2,N3,na,na >
-
-    : minus< minus< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , minus
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct minus< N1,N2,na,na,na >
-    : minus_impl<
-          typename minus_tag<N1>::type
-        , typename minus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , minus
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, minus)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct minus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  - BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc551/modulus.hpp b/boost/mpl/aux_/preprocessed/bcc551/modulus.hpp
deleted file mode 100644
index 224b349..0000000
--- a/boost/mpl/aux_/preprocessed/bcc551/modulus.hpp
+++ /dev/null
@@ -1,101 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/modulus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct modulus_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< modulus_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< modulus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct modulus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct modulus_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct modulus_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct modulus_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct modulus
-
-    : modulus_impl<
-          typename modulus_tag<N1>::type
-        , typename modulus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, modulus)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct modulus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  % BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc551/not_equal_to.hpp b/boost/mpl/aux_/preprocessed/bcc551/not_equal_to.hpp
deleted file mode 100644
index 98b21b1..0000000
--- a/boost/mpl/aux_/preprocessed/bcc551/not_equal_to.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/not_equal_to.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct not_equal_to_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< not_equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct not_equal_to_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct not_equal_to_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct not_equal_to_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct not_equal_to_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct not_equal_to
-
-    : not_equal_to_impl<
-          typename not_equal_to_tag<N1>::type
-        , typename not_equal_to_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct not_equal_to_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value != BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc551/or.hpp b/boost/mpl/aux_/preprocessed/bcc551/or.hpp
deleted file mode 100644
index 31e1aaa..0000000
--- a/boost/mpl/aux_/preprocessed/bcc551/or.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/or.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template< bool C_, typename T1, typename T2, typename T3, typename T4 >
-struct or_impl
-    : true_
-{
-};
-
-template< typename T1, typename T2, typename T3, typename T4 >
-struct or_impl< false,T1,T2,T3,T4 >
-    : or_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4
-        , false_
-        >
-{
-};
-
-template<>
-struct or_impl<
-          false
-        , false_, false_, false_, false_
-        >
-    : false_
-{
-};
-
-} // namespace aux
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
-    , typename T3 = false_, typename T4 = false_, typename T5 = false_
-    >
-struct or_
-
-    : aux::or_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4, T5
-        >
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , or_
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC2(
-      2
-    , 5
-    , or_
-    )
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc551/placeholders.hpp b/boost/mpl/aux_/preprocessed/bcc551/placeholders.hpp
deleted file mode 100644
index ff97364..0000000
--- a/boost/mpl/aux_/preprocessed/bcc551/placeholders.hpp
+++ /dev/null
@@ -1,105 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright Peter Dimov 2001-2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/placeholders.hpp" header
-// -- DO NOT modify by hand!
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg< -1 > _;
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;
-}
-
-}}
-
-/// agurt, 17/mar/02: one more placeholder for the last 'apply#' 
-/// specialization
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<1> _1;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<2> _2;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<3> _3;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<4> _4;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<5> _5;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<6> _6;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6;
-}
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc551/plus.hpp b/boost/mpl/aux_/preprocessed/bcc551/plus.hpp
deleted file mode 100644
index a9f6ee7..0000000
--- a/boost/mpl/aux_/preprocessed/bcc551/plus.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/plus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct plus_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< plus_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< plus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct plus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct plus_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct plus_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct plus_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct plus
-    : plus< plus< plus< plus< N1,N2 >, N3>, N4>, N5>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , plus
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct plus< N1,N2,N3,N4,na >
-
-    : plus< plus< plus< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , plus
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct plus< N1,N2,N3,na,na >
-
-    : plus< plus< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , plus
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct plus< N1,N2,na,na,na >
-    : plus_impl<
-          typename plus_tag<N1>::type
-        , typename plus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , plus
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, plus)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct plus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  + BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc551/quote.hpp b/boost/mpl/aux_/preprocessed/bcc551/quote.hpp
deleted file mode 100644
index e7a7f00..0000000
--- a/boost/mpl/aux_/preprocessed/bcc551/quote.hpp
+++ /dev/null
@@ -1,11 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/quote.hpp" header
-// -- DO NOT modify by hand!
-
diff --git a/boost/mpl/aux_/preprocessed/bcc551/reverse_fold_impl.hpp b/boost/mpl/aux_/preprocessed/bcc551/reverse_fold_impl.hpp
deleted file mode 100644
index 7a07414..0000000
--- a/boost/mpl/aux_/preprocessed/bcc551/reverse_fold_impl.hpp
+++ /dev/null
@@ -1,295 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/reverse_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl;
-
-template< long N >
-struct reverse_fold_chunk;
-
-template<> struct reverse_fold_chunk<0>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef fwd_state0 bkwd_state0;
-        typedef bkwd_state0 state;
-        typedef iter0 iterator;
-    };
-};
-
-template<> struct reverse_fold_chunk<1>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        
-
-        typedef fwd_state1 bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        typedef bkwd_state0 state;
-        typedef iter1 iterator;
-    };
-};
-
-template<> struct reverse_fold_chunk<2>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        
-
-        typedef fwd_state2 bkwd_state2;
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter2 iterator;
-    };
-};
-
-template<> struct reverse_fold_chunk<3>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        
-
-        typedef fwd_state3 bkwd_state3;
-        typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter3 iterator;
-    };
-};
-
-template<> struct reverse_fold_chunk<4>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef fwd_state4 bkwd_state4;
-        typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3;
-        typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter4 iterator;
-    };
-};
-
-template< long N >
-struct reverse_fold_chunk
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef reverse_fold_impl<
-              ( (N - 4) < 0 ? 0 : N - 4 )
-            , iter4
-            , Last
-            , fwd_state4
-            , BackwardOp
-            , ForwardOp
-            > nested_chunk;
-
-        typedef typename nested_chunk::state bkwd_state4;
-        typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3;
-        typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef typename nested_chunk::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_step;
-
-template<
-      typename Last
-    , typename State
-    >
-struct reverse_fold_null_step
-{
-    typedef Last iterator;
-    typedef State state;
-};
-
-template<>
-struct reverse_fold_chunk< -1 >
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef typename if_<
-              typename is_same< First,Last >::type
-            , reverse_fold_null_step< Last,State >
-            , reverse_fold_step< First,Last,State,BackwardOp,ForwardOp >
-            >::type res_;
-
-        typedef typename res_::state state;
-        typedef typename res_::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_step
-{
-    typedef reverse_fold_chunk< -1 >::template result_<
-          typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State, typename deref<First>::type>::type
-        , BackwardOp
-        , ForwardOp
-        > nested_step;
-
-    typedef typename apply2<
-          BackwardOp
-        , typename nested_step::state
-        , typename deref<First>::type
-        >::type state;
-
-    typedef typename nested_step::iterator iterator;
-};
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl
-    : reverse_fold_chunk<N>
-        ::template result_< First,Last,State,BackwardOp,ForwardOp >
-{
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/bcc551/reverse_iter_fold_impl.hpp b/boost/mpl/aux_/preprocessed/bcc551/reverse_iter_fold_impl.hpp
deleted file mode 100644
index 39a4057..0000000
--- a/boost/mpl/aux_/preprocessed/bcc551/reverse_iter_fold_impl.hpp
+++ /dev/null
@@ -1,295 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/reverse_iter_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl;
-
-template< long N >
-struct reverse_iter_fold_chunk;
-
-template<> struct reverse_iter_fold_chunk<0>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef fwd_state0 bkwd_state0;
-        typedef bkwd_state0 state;
-        typedef iter0 iterator;
-    };
-};
-
-template<> struct reverse_iter_fold_chunk<1>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        
-
-        typedef fwd_state1 bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        typedef bkwd_state0 state;
-        typedef iter1 iterator;
-    };
-};
-
-template<> struct reverse_iter_fold_chunk<2>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        
-
-        typedef fwd_state2 bkwd_state2;
-        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter2 iterator;
-    };
-};
-
-template<> struct reverse_iter_fold_chunk<3>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        
-
-        typedef fwd_state3 bkwd_state3;
-        typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter3 iterator;
-    };
-};
-
-template<> struct reverse_iter_fold_chunk<4>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef fwd_state4 bkwd_state4;
-        typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3;
-        typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter4 iterator;
-    };
-};
-
-template< long N >
-struct reverse_iter_fold_chunk
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef reverse_iter_fold_impl<
-              ( (N - 4) < 0 ? 0 : N - 4 )
-            , iter4
-            , Last
-            , fwd_state4
-            , BackwardOp
-            , ForwardOp
-            > nested_chunk;
-
-        typedef typename nested_chunk::state bkwd_state4;
-        typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3;
-        typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef typename nested_chunk::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_step;
-
-template<
-      typename Last
-    , typename State
-    >
-struct reverse_iter_fold_null_step
-{
-    typedef Last iterator;
-    typedef State state;
-};
-
-template<>
-struct reverse_iter_fold_chunk< -1 >
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef typename if_<
-              typename is_same< First,Last >::type
-            , reverse_iter_fold_null_step< Last,State >
-            , reverse_iter_fold_step< First,Last,State,BackwardOp,ForwardOp >
-            >::type res_;
-
-        typedef typename res_::state state;
-        typedef typename res_::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_step
-{
-    typedef reverse_iter_fold_chunk< -1 >::template result_<
-          typename mpl::next<First>::type
-        , Last
-        , typename apply2< ForwardOp,State,First >::type
-        , BackwardOp
-        , ForwardOp
-        > nested_step;
-
-    typedef typename apply2<
-          BackwardOp
-        , typename nested_step::state
-        , First
-        >::type state;
-
-    typedef typename nested_step::iterator iterator;
-};
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl
-    : reverse_iter_fold_chunk<N>
-        ::template result_< First,Last,State,BackwardOp,ForwardOp >
-{
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/bcc551/set.hpp b/boost/mpl/aux_/preprocessed/bcc551/set.hpp
deleted file mode 100644
index 5721922..0000000
--- a/boost/mpl/aux_/preprocessed/bcc551/set.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/set.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct set;
-
-template<
-     
-    >
-struct set<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set0<  >
-{
-    typedef set0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct set<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set1<T0>
-{
-    typedef typename set1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct set<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set2< T0,T1 >
-{
-    typedef typename set2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct set<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set3< T0,T1,T2 >
-{
-    typedef typename set3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct set<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set4< T0,T1,T2,T3 >
-{
-    typedef typename set4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct set<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set5< T0,T1,T2,T3,T4 >
-{
-    typedef typename set5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename set6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename set7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename set8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : set15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename set15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : set16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename set16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : set17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename set17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : set18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename set18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : set19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename set19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct set
-    : set20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename set20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc551/set_c.hpp b/boost/mpl/aux_/preprocessed/bcc551/set_c.hpp
deleted file mode 100644
index cbeb932..0000000
--- a/boost/mpl/aux_/preprocessed/bcc551/set_c.hpp
+++ /dev/null
@@ -1,328 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/set_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct set_c;
-
-template<
-      typename T
-    >
-struct set_c<
-          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set0_c<T>
-{
-    typedef typename set0_c<T>::type type;
-};
-
-template<
-      typename T, long C0
-    >
-struct set_c<
-          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set1_c< T,C0 >
-{
-    typedef typename set1_c< T,C0 >::type type;
-};
-
-template<
-      typename T, long C0, long C1
-    >
-struct set_c<
-          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set2_c< T,C0,C1 >
-{
-    typedef typename set2_c< T,C0,C1 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2
-    >
-struct set_c<
-          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set3_c< T,C0,C1,C2 >
-{
-    typedef typename set3_c< T,C0,C1,C2 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3
-    >
-struct set_c<
-          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set4_c< T,C0,C1,C2,C3 >
-{
-    typedef typename set4_c< T,C0,C1,C2,C3 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set5_c< T,C0,C1,C2,C3,C4 >
-{
-    typedef typename set5_c< T,C0,C1,C2,C3,C4 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set6_c< T,C0,C1,C2,C3,C4,C5 >
-{
-    typedef typename set6_c< T,C0,C1,C2,C3,C4,C5 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set7_c< T,C0,C1,C2,C3,C4,C5,C6 >
-{
-    typedef typename set7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX
-        >
-    : set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >
-{
-    typedef typename set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >
-{
-    typedef typename set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >
-{
-    typedef typename set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >
-{
-    typedef typename set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >
-{
-    typedef typename set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >
-{
-    typedef typename set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set14_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        >
-{
-    typedef typename set14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set15_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        >
-{
-    typedef typename set15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set16_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15
-        >
-{
-    typedef typename set16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set17_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16
-        >
-{
-    typedef typename set17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, LONG_MAX, LONG_MAX
-        >
-    : set18_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17
-        >
-{
-    typedef typename set18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, LONG_MAX
-        >
-    : set19_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18
-        >
-{
-    typedef typename set19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct set_c
-    : set20_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, C19
-        >
-{
-    typedef typename set20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc551/shift_left.hpp b/boost/mpl/aux_/preprocessed/bcc551/shift_left.hpp
deleted file mode 100644
index b5b181c..0000000
--- a/boost/mpl/aux_/preprocessed/bcc551/shift_left.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/shift_left.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct shift_left_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< shift_left_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< shift_left_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct shift_left_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_left_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_left_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct shift_left_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct shift_left
-
-    : shift_left_impl<
-          typename shift_left_tag<N1>::type
-        , typename shift_left_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct shift_left_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N, typename S > struct apply
-
-        : integral_c<
-              typename N::value_type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N)::value
-                  << BOOST_MPL_AUX_VALUE_WKND(S)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc551/shift_right.hpp b/boost/mpl/aux_/preprocessed/bcc551/shift_right.hpp
deleted file mode 100644
index f7a342e..0000000
--- a/boost/mpl/aux_/preprocessed/bcc551/shift_right.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/shift_right.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct shift_right_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< shift_right_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< shift_right_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct shift_right_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_right_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_right_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct shift_right_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct shift_right
-
-    : shift_right_impl<
-          typename shift_right_tag<N1>::type
-        , typename shift_right_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct shift_right_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N, typename S > struct apply
-
-        : integral_c<
-              typename N::value_type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N)::value
-                  >> BOOST_MPL_AUX_VALUE_WKND(S)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc551/template_arity.hpp b/boost/mpl/aux_/preprocessed/bcc551/template_arity.hpp
deleted file mode 100644
index 1164f0f..0000000
--- a/boost/mpl/aux_/preprocessed/bcc551/template_arity.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/template_arity.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-template< bool >
-struct template_arity_impl
-{
-    template< typename F > struct result_
-        : mpl::int_< -1 >
-    {
-    };
-};
-
-template<>
-struct template_arity_impl<true>
-{
-    template< typename F > struct result_
-        : F::arity
-    {
-    };
-};
-
-template< typename F >
-struct template_arity
-    : template_arity_impl< ::boost::mpl::aux::has_rebind<F>::value >
-        ::template result_<F>
-{
-};
-
-}}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc551/times.hpp b/boost/mpl/aux_/preprocessed/bcc551/times.hpp
deleted file mode 100644
index cb97cc4..0000000
--- a/boost/mpl/aux_/preprocessed/bcc551/times.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/times.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct times_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< times_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< times_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct times_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct times_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct times_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct times_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct times
-    : times< times< times< times< N1,N2 >, N3>, N4>, N5>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , times
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct times< N1,N2,N3,N4,na >
-
-    : times< times< times< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , times
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct times< N1,N2,N3,na,na >
-
-    : times< times< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , times
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct times< N1,N2,na,na,na >
-    : times_impl<
-          typename times_tag<N1>::type
-        , typename times_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , times
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, times)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct times_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  * BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc551/unpack_args.hpp b/boost/mpl/aux_/preprocessed/bcc551/unpack_args.hpp
deleted file mode 100644
index ef7c2b0..0000000
--- a/boost/mpl/aux_/preprocessed/bcc551/unpack_args.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/unpack_args.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template< int size, typename F, typename Args >
-struct unpack_args_impl;
-
-template< typename F, typename Args >
-struct unpack_args_impl< 0,F,Args >
-    : apply0<
-          F
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 1,F,Args >
-    : apply1<
-          F
-        , typename at_c< Args,0 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 2,F,Args >
-    : apply2<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 3,F,Args >
-    : apply3<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        , typename at_c< Args,2 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 4,F,Args >
-    : apply4<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 5,F,Args >
-    : apply5<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
-        , typename at_c< Args,4 >::type
-        >
-{
-};
-
-}
-
-template<
-      typename F
-    >
-struct unpack_args
-{
-    template< typename Args > struct apply
-    {
-        typedef typename aux::unpack_args_impl<
-              size<Args>::value
-            , F
-            , Args
-            >::type type;
-
-    };
-};
-
-BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc551/vector.hpp b/boost/mpl/aux_/preprocessed/bcc551/vector.hpp
deleted file mode 100644
index bfa9565..0000000
--- a/boost/mpl/aux_/preprocessed/bcc551/vector.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/vector.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct vector;
-
-template<
-     
-    >
-struct vector<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector0<  >
-{
-    typedef vector0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct vector<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector1<T0>
-{
-    typedef typename vector1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct vector<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector2< T0,T1 >
-{
-    typedef typename vector2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct vector<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector3< T0,T1,T2 >
-{
-    typedef typename vector3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct vector<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector4< T0,T1,T2,T3 >
-{
-    typedef typename vector4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct vector<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector5< T0,T1,T2,T3,T4 >
-{
-    typedef typename vector5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : vector15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : vector16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : vector17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : vector18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : vector19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct vector
-    : vector20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc551/vector_c.hpp b/boost/mpl/aux_/preprocessed/bcc551/vector_c.hpp
deleted file mode 100644
index 0f1560d..0000000
--- a/boost/mpl/aux_/preprocessed/bcc551/vector_c.hpp
+++ /dev/null
@@ -1,309 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/vector_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct vector_c;
-
-template<
-      typename T
-    >
-struct vector_c<
-          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector0_c<T>
-{
-    typedef typename vector0_c<T>::type type;
-};
-
-template<
-      typename T, long C0
-    >
-struct vector_c<
-          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector1_c< T, T(C0) >
-{
-    typedef typename vector1_c< T, T(C0) >::type type;
-};
-
-template<
-      typename T, long C0, long C1
-    >
-struct vector_c<
-          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector2_c< T, T(C0), T(C1) >
-{
-    typedef typename vector2_c< T, T(C0), T(C1) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2
-    >
-struct vector_c<
-          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector3_c< T, T(C0), T(C1), T(C2) >
-{
-    typedef typename vector3_c< T, T(C0), T(C1), T(C2) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector4_c< T, T(C0), T(C1), T(C2), T(C3) >
-{
-    typedef typename vector4_c< T, T(C0), T(C1), T(C2), T(C3) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) >
-{
-    typedef typename vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) >
-{
-    typedef typename vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) >
-{
-    typedef typename vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX
-        >
-    : vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) >
-{
-    typedef typename vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) >
-{
-    typedef typename vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) >
-{
-    typedef typename vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) >
-{
-    typedef typename vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) >
-{
-    typedef typename vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) >
-{
-    typedef typename vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) >
-{
-    typedef typename vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) >
-{
-    typedef typename vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) >
-{
-    typedef typename vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) >
-{
-    typedef typename vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, LONG_MAX, LONG_MAX
-        >
-    : vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) >
-{
-    typedef typename vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, LONG_MAX
-        >
-    : vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) >
-{
-    typedef typename vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct vector_c
-    : vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) >
-{
-    typedef typename vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc_pre590/advance_backward.hpp b/boost/mpl/aux_/preprocessed/bcc_pre590/advance_backward.hpp
deleted file mode 100644
index 5cb50dc..0000000
--- a/boost/mpl/aux_/preprocessed/bcc_pre590/advance_backward.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "advance_backward.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-template< long N > struct advance_backward;
-template<>
-struct advance_backward<0>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef iter0 type;
-    };
-};
-
-template<>
-struct advance_backward<1>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef iter1 type;
-    };
-};
-
-template<>
-struct advance_backward<2>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef iter2 type;
-    };
-};
-
-template<>
-struct advance_backward<3>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef typename prior<iter2>::type iter3;
-        typedef iter3 type;
-    };
-};
-
-template<>
-struct advance_backward<4>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef typename prior<iter2>::type iter3;
-        typedef typename prior<iter3>::type iter4;
-        typedef iter4 type;
-    };
-};
-
-template< long N >
-struct advance_backward
-{
-    template< typename Iterator > struct apply
-    {
-        typedef typename apply_wrap1<
-              advance_backward<4>
-            , Iterator
-            >::type chunk_result_;
-
-        typedef typename apply_wrap1<
-              advance_backward<(
-                (N - 4) < 0
-                    ? 0
-                    : N - 4
-                    )>
-            , chunk_result_
-            >::type type;
-    };
-};
-
-}}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc_pre590/advance_forward.hpp b/boost/mpl/aux_/preprocessed/bcc_pre590/advance_forward.hpp
deleted file mode 100644
index 9654ee3..0000000
--- a/boost/mpl/aux_/preprocessed/bcc_pre590/advance_forward.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "advance_forward.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-template< long N > struct advance_forward;
-template<>
-struct advance_forward<0>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef iter0 type;
-    };
-};
-
-template<>
-struct advance_forward<1>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef iter1 type;
-    };
-};
-
-template<>
-struct advance_forward<2>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef iter2 type;
-    };
-};
-
-template<>
-struct advance_forward<3>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef typename next<iter2>::type iter3;
-        typedef iter3 type;
-    };
-};
-
-template<>
-struct advance_forward<4>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef typename next<iter2>::type iter3;
-        typedef typename next<iter3>::type iter4;
-        typedef iter4 type;
-    };
-};
-
-template< long N >
-struct advance_forward
-{
-    template< typename Iterator > struct apply
-    {
-        typedef typename apply_wrap1<
-              advance_forward<4>
-            , Iterator
-            >::type chunk_result_;
-
-        typedef typename apply_wrap1<
-              advance_forward<(
-                (N - 4) < 0
-                    ? 0
-                    : N - 4
-                    )>
-            , chunk_result_
-            >::type type;
-    };
-};
-
-}}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc_pre590/and.hpp b/boost/mpl/aux_/preprocessed/bcc_pre590/and.hpp
deleted file mode 100644
index f345689..0000000
--- a/boost/mpl/aux_/preprocessed/bcc_pre590/and.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "and.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template< bool C_, typename T1, typename T2, typename T3, typename T4 >
-struct and_impl
-    : false_
-{
-};
-
-template< typename T1, typename T2, typename T3, typename T4 >
-struct and_impl< true,T1,T2,T3,T4 >
-    : and_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4
-        , true_
-        >
-{
-};
-
-template<>
-struct and_impl<
-          true
-        , true_, true_, true_, true_
-        >
-    : true_
-{
-};
-
-} // namespace aux
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
-    , typename T3 = true_, typename T4 = true_, typename T5 = true_
-    >
-struct and_
-
-    : aux::and_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4, T5
-        >
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , and_
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC2(
-      2
-    , 5
-    , and_
-    )
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc_pre590/apply.hpp b/boost/mpl/aux_/preprocessed/bcc_pre590/apply.hpp
deleted file mode 100644
index bce7c2c..0000000
--- a/boost/mpl/aux_/preprocessed/bcc_pre590/apply.hpp
+++ /dev/null
@@ -1,169 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "apply.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename F
-    >
-struct apply0
-
-    : apply_wrap0<
-          typename lambda<F>::type
-       
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          1
-        , apply0
-        , (F )
-        )
-};
-
-template<
-      typename F
-    >
-struct apply< F,na,na,na,na,na >
-    : apply0<F>
-{
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply1
-
-    : apply_wrap1<
-          typename lambda<F>::type
-        , T1
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          2
-        , apply1
-        , (F, T1)
-        )
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply< F,T1,na,na,na,na >
-    : apply1< F,T1 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply2
-
-    : apply_wrap2<
-          typename lambda<F>::type
-        , T1, T2
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          3
-        , apply2
-        , (F, T1, T2)
-        )
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply< F,T1,T2,na,na,na >
-    : apply2< F,T1,T2 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply3
-
-    : apply_wrap3<
-          typename lambda<F>::type
-        , T1, T2, T3
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          4
-        , apply3
-        , (F, T1, T2, T3)
-        )
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply< F,T1,T2,T3,na,na >
-    : apply3< F,T1,T2,T3 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply4
-
-    : apply_wrap4<
-          typename lambda<F>::type
-        , T1, T2, T3, T4
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , apply4
-        , (F, T1, T2, T3, T4)
-        )
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply< F,T1,T2,T3,T4,na >
-    : apply4< F,T1,T2,T3,T4 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply5
-
-    : apply_wrap5<
-          typename lambda<F>::type
-        , T1, T2, T3, T4, T5
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          6
-        , apply5
-        , (F, T1, T2, T3, T4, T5)
-        )
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply
-    : apply5< F,T1,T2,T3,T4,T5 >
-{
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc_pre590/apply_fwd.hpp b/boost/mpl/aux_/preprocessed/bcc_pre590/apply_fwd.hpp
deleted file mode 100644
index 1ba706f..0000000
--- a/boost/mpl/aux_/preprocessed/bcc_pre590/apply_fwd.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "apply_fwd.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename F, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na
-    >
-struct apply;
-
-template<
-      typename F
-    >
-struct apply0;
-
-template<
-      typename F, typename T1
-    >
-struct apply1;
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply2;
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply3;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply4;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply5;
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc_pre590/apply_wrap.hpp b/boost/mpl/aux_/preprocessed/bcc_pre590/apply_wrap.hpp
deleted file mode 100644
index d88129d..0000000
--- a/boost/mpl/aux_/preprocessed/bcc_pre590/apply_wrap.hpp
+++ /dev/null
@@ -1,456 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2008
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "apply_wrap.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      int N, typename F
-    >
-struct apply_wrap_impl0;
-
-template<
-      typename F
-    >
-struct apply_wrap_impl0<
-          0
-        , F
-       
-        >
-{
-    typedef typename F::template apply<
-         
-/// since the defaults are "lost", we have to pass *something* even for nullary
-/// metafunction classes
-        na
-        > type;
-};
-
-template<
-      typename F
-    >
-struct apply_wrap_impl0<
-          1
-        , F
-       
-        >
-{
-    typedef typename F::template apply<
-         
-        na
-        > type;
-};
-
-template<
-      typename F
-    >
-struct apply_wrap_impl0<
-          2
-        , F
-       
-        >
-{
-    typedef typename F::template apply<
-         
-        na, na
-
-        > type;
-};
-
-template<
-      typename F
-    >
-struct apply_wrap_impl0<
-          3
-        , F
-       
-        >
-{
-    typedef typename F::template apply<
-         
-        na, na, na
-
-        > type;
-};
-
-template<
-      typename F
-    >
-struct apply_wrap_impl0<
-          4
-        , F
-       
-        >
-{
-    typedef typename F::template apply<
-         
-        na, na, na, na
-
-        > type;
-};
-
-template<
-      typename F
-    >
-struct apply_wrap_impl0<
-          5
-        , F
-       
-        >
-{
-    typedef typename F::template apply<
-         
-        na, na, na, na, na
-
-        > type;
-};
-
-template<
-      typename F
-    >
-struct apply_wrap0
-    : apply_wrap_impl0<
-          ::boost::mpl::aux::arity< F,0 >::value
-        , F
-       
-        >::type
-{
-};
-
-template<
-      int N, typename F, typename T1
-    >
-struct apply_wrap_impl1;
-
-template<
-      typename F, typename T1
-    >
-struct apply_wrap_impl1<
-          1
-        , F
-        , T1
-        >
-{
-    typedef typename F::template apply<
-          T1
-        > type;
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply_wrap_impl1<
-          2
-        , F
-        , T1
-        >
-{
-    typedef typename F::template apply<
-          T1
-        , na
-
-        > type;
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply_wrap_impl1<
-          3
-        , F
-        , T1
-        >
-{
-    typedef typename F::template apply<
-          T1
-        , na, na
-
-        > type;
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply_wrap_impl1<
-          4
-        , F
-        , T1
-        >
-{
-    typedef typename F::template apply<
-          T1
-        , na, na, na
-
-        > type;
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply_wrap_impl1<
-          5
-        , F
-        , T1
-        >
-{
-    typedef typename F::template apply<
-          T1
-        , na, na, na, na
-
-        > type;
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply_wrap1
-    : apply_wrap_impl1<
-          ::boost::mpl::aux::arity< F,1 >::value
-        , F
-        , T1
-        >::type
-{
-};
-
-template<
-      int N, typename F, typename T1, typename T2
-    >
-struct apply_wrap_impl2;
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply_wrap_impl2<
-          2
-        , F
-        , T1, T2
-        >
-{
-    typedef typename F::template apply<
-          T1, T2
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply_wrap_impl2<
-          3
-        , F
-        , T1, T2
-        >
-{
-    typedef typename F::template apply<
-          T1, T2
-
-        , na
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply_wrap_impl2<
-          4
-        , F
-        , T1, T2
-        >
-{
-    typedef typename F::template apply<
-          T1, T2
-
-        , na, na
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply_wrap_impl2<
-          5
-        , F
-        , T1, T2
-        >
-{
-    typedef typename F::template apply<
-          T1, T2
-
-        , na, na, na
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply_wrap2
-    : apply_wrap_impl2<
-          ::boost::mpl::aux::arity< F,2 >::value
-        , F
-        , T1, T2
-        >::type
-{
-};
-
-template<
-      int N, typename F, typename T1, typename T2, typename T3
-    >
-struct apply_wrap_impl3;
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply_wrap_impl3<
-          3
-        , F
-        , T1, T2, T3
-        >
-{
-    typedef typename F::template apply<
-          T1, T2, T3
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply_wrap_impl3<
-          4
-        , F
-        , T1, T2, T3
-        >
-{
-    typedef typename F::template apply<
-          T1, T2, T3
-
-        , na
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply_wrap_impl3<
-          5
-        , F
-        , T1, T2, T3
-        >
-{
-    typedef typename F::template apply<
-          T1, T2, T3
-
-        , na, na
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply_wrap3
-    : apply_wrap_impl3<
-          ::boost::mpl::aux::arity< F,3 >::value
-        , F
-        , T1, T2, T3
-        >::type
-{
-};
-
-template<
-      int N, typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply_wrap_impl4;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply_wrap_impl4<
-          4
-        , F
-        , T1, T2, T3, T4
-        >
-{
-    typedef typename F::template apply<
-          T1, T2, T3, T4
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply_wrap_impl4<
-          5
-        , F
-        , T1, T2, T3, T4
-        >
-{
-    typedef typename F::template apply<
-          T1, T2, T3, T4
-
-        , na
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply_wrap4
-    : apply_wrap_impl4<
-          ::boost::mpl::aux::arity< F,4 >::value
-        , F
-        , T1, T2, T3, T4
-        >::type
-{
-};
-
-template<
-      int N, typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply_wrap_impl5;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply_wrap_impl5<
-          5
-        , F
-        , T1, T2, T3, T4, T5
-        >
-{
-    typedef typename F::template apply<
-          T1, T2, T3, T4, T5
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply_wrap5
-    : apply_wrap_impl5<
-          ::boost::mpl::aux::arity< F,5 >::value
-        , F
-        , T1, T2, T3, T4, T5
-        >::type
-{
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc_pre590/arg.hpp b/boost/mpl/aux_/preprocessed/bcc_pre590/arg.hpp
deleted file mode 100644
index 3ac4340..0000000
--- a/boost/mpl/aux_/preprocessed/bcc_pre590/arg.hpp
+++ /dev/null
@@ -1,117 +0,0 @@
-
-// Copyright Peter Dimov 2001-2002
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "arg.hpp" header
-// -- DO NOT modify by hand!
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-template<> struct arg< -1 >
-{
-    BOOST_STATIC_CONSTANT(int, value  = -1);
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-        typedef U1 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<1>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 1);
-    typedef arg<2> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-        typedef U1 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<2>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 2);
-    typedef arg<3> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-        typedef U2 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<3>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 3);
-    typedef arg<4> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-        typedef U3 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<4>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 4);
-    typedef arg<5> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-        typedef U4 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<5>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 5);
-    typedef arg<6> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-        typedef U5 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg)
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
diff --git a/boost/mpl/aux_/preprocessed/bcc_pre590/basic_bind.hpp b/boost/mpl/aux_/preprocessed/bcc_pre590/basic_bind.hpp
deleted file mode 100644
index 74b0029..0000000
--- a/boost/mpl/aux_/preprocessed/bcc_pre590/basic_bind.hpp
+++ /dev/null
@@ -1,300 +0,0 @@
-
-// Copyright Peter Dimov 2001
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "basic_bind.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template<
-      typename T, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg
-{
-    typedef T type;
-};
-
-template<
-      int N, typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg< arg<N>, U1, U2, U3, U4, U5 >
-{
-    typedef typename apply_wrap5<mpl::arg<N>, U1, U2, U3, U4, U5>::type type;
-};
-
-} // namespace aux
-
-template<
-      typename F
-    >
-struct bind0
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-
-     public:
-        typedef typename apply_wrap0<
-              f_
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind0<F>, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind0<F> f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
-
-template<
-      typename F, typename T1
-    >
-struct bind1
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-
-     public:
-        typedef typename apply_wrap1<
-              f_
-            , typename t1::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename U1, typename U2, typename U3
-    , typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind1< F,T1 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind1< F,T1 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-
-     public:
-        typedef typename apply_wrap2<
-              f_
-            , typename t1::type, typename t2::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename U1, typename U2
-    , typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind2< F,T1,T2 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind2< F,T1,T2 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-
-     public:
-        typedef typename apply_wrap3<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename U1
-    , typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind3< F,T1,T2,T3 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind4
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
-
-     public:
-        typedef typename apply_wrap4<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind4< F,T1,T2,T3,T4 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind5
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
-        typedef aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 > t5;
-
-     public:
-        typedef typename apply_wrap5<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type, typename t5::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind5< F,T1,T2,T3,T4,T5 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc_pre590/bind.hpp b/boost/mpl/aux_/preprocessed/bcc_pre590/bind.hpp
deleted file mode 100644
index e769a0c..0000000
--- a/boost/mpl/aux_/preprocessed/bcc_pre590/bind.hpp
+++ /dev/null
@@ -1,397 +0,0 @@
-
-// Copyright Peter Dimov 2001
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "bind.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template<
-      typename T, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg
-{
-    typedef T type;
-};
-
-template<
-      typename T
-    , typename Arg
-    >
-struct replace_unnamed_arg
-{
-    typedef Arg next;
-    typedef T type;
-};
-
-template<
-      typename Arg
-    >
-struct replace_unnamed_arg< arg< -1 >, Arg >
-{
-    typedef typename Arg::next next;
-    typedef Arg type;
-};
-
-template<
-      int N, typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg< arg<N>, U1, U2, U3, U4, U5 >
-{
-    typedef typename apply_wrap5<mpl::arg<N>, U1, U2, U3, U4, U5>::type type;
-};
-
-} // namespace aux
-
-template<
-      typename F
-    >
-struct bind0
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-     public:
-        typedef typename apply_wrap0<
-              f_
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind0<F>, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind0<F> f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
-
-template<
-      typename F, typename T1
-    >
-struct bind1
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-     public:
-        typedef typename apply_wrap1<
-              f_
-            , typename t1::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename U1, typename U2, typename U3
-    , typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind1< F,T1 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind1< F,T1 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-     public:
-        typedef typename apply_wrap2<
-              f_
-            , typename t1::type, typename t2::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename U1, typename U2
-    , typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind2< F,T1,T2 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind2< F,T1,T2 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-     public:
-        typedef typename apply_wrap3<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename U1
-    , typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind3< F,T1,T2,T3 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind4
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef aux::replace_unnamed_arg< T4,n4 > r4;
-        typedef typename r4::type a4;
-        typedef typename r4::next n5;
-        typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
-        ///
-     public:
-        typedef typename apply_wrap4<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind4< F,T1,T2,T3,T4 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind5
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4, typename U5
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef aux::replace_unnamed_arg< T4,n4 > r4;
-        typedef typename r4::type a4;
-        typedef typename r4::next n5;
-        typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
-        ///
-        typedef aux::replace_unnamed_arg< T5,n5 > r5;
-        typedef typename r5::type a5;
-        typedef typename r5::next n6;
-        typedef aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 > t5;
-        ///
-     public:
-        typedef typename apply_wrap5<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type, typename t5::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind5< F,T1,T2,T3,T4,T5 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc_pre590/bind_fwd.hpp b/boost/mpl/aux_/preprocessed/bcc_pre590/bind_fwd.hpp
deleted file mode 100644
index 962b5c9..0000000
--- a/boost/mpl/aux_/preprocessed/bcc_pre590/bind_fwd.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "bind_fwd.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename F
-    >
-struct bind0;
-
-template<
-      typename F, typename T1
-    >
-struct bind1;
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2;
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind4;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind5;
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc_pre590/bitand.hpp b/boost/mpl/aux_/preprocessed/bcc_pre590/bitand.hpp
deleted file mode 100644
index 527b689..0000000
--- a/boost/mpl/aux_/preprocessed/bcc_pre590/bitand.hpp
+++ /dev/null
@@ -1,147 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "bitand.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitand_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< bitand_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< bitand_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitand_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitand_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitand_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitand_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct bitand_
-    : bitand_< bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>, N5>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitand_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct bitand_< N1,N2,N3,N4,na >
-
-    : bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitand_
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct bitand_< N1,N2,N3,na,na >
-
-    : bitand_< bitand_< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitand_
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct bitand_< N1,N2,na,na,na >
-    : bitand_impl<
-          typename bitand_tag<N1>::type
-        , typename bitand_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitand_
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct bitand_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  & BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc_pre590/bitor.hpp b/boost/mpl/aux_/preprocessed/bcc_pre590/bitor.hpp
deleted file mode 100644
index 3f0d5ca..0000000
--- a/boost/mpl/aux_/preprocessed/bcc_pre590/bitor.hpp
+++ /dev/null
@@ -1,147 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "bitor.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitor_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< bitor_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< bitor_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitor_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitor_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitor_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitor_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct bitor_
-    : bitor_< bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>, N5>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitor_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct bitor_< N1,N2,N3,N4,na >
-
-    : bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitor_
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct bitor_< N1,N2,N3,na,na >
-
-    : bitor_< bitor_< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitor_
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct bitor_< N1,N2,na,na,na >
-    : bitor_impl<
-          typename bitor_tag<N1>::type
-        , typename bitor_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitor_
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct bitor_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  | BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc_pre590/bitxor.hpp b/boost/mpl/aux_/preprocessed/bcc_pre590/bitxor.hpp
deleted file mode 100644
index 06996c0..0000000
--- a/boost/mpl/aux_/preprocessed/bcc_pre590/bitxor.hpp
+++ /dev/null
@@ -1,147 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "bitxor.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitxor_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< bitxor_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< bitxor_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitxor_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitxor_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitxor_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitxor_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct bitxor_
-    : bitxor_< bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>, N5>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitxor_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct bitxor_< N1,N2,N3,N4,na >
-
-    : bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitxor_
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct bitxor_< N1,N2,N3,na,na >
-
-    : bitxor_< bitxor_< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitxor_
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct bitxor_< N1,N2,na,na,na >
-    : bitxor_impl<
-          typename bitxor_tag<N1>::type
-        , typename bitxor_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitxor_
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct bitxor_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  ^ BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc_pre590/deque.hpp b/boost/mpl/aux_/preprocessed/bcc_pre590/deque.hpp
deleted file mode 100644
index 06505c9..0000000
--- a/boost/mpl/aux_/preprocessed/bcc_pre590/deque.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "deque.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct deque;
-
-template<
-     
-    >
-struct deque<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector0<  >
-{
-    typedef vector0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct deque<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector1<T0>
-{
-    typedef typename vector1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct deque<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector2< T0,T1 >
-{
-    typedef typename vector2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct deque<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector3< T0,T1,T2 >
-{
-    typedef typename vector3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct deque<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector4< T0,T1,T2,T3 >
-{
-    typedef typename vector4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct deque<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector5< T0,T1,T2,T3,T4 >
-{
-    typedef typename vector5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : vector15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : vector16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : vector17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : vector18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : vector19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct deque
-    : vector20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc_pre590/divides.hpp b/boost/mpl/aux_/preprocessed/bcc_pre590/divides.hpp
deleted file mode 100644
index 6b4178a..0000000
--- a/boost/mpl/aux_/preprocessed/bcc_pre590/divides.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "divides.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct divides_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< divides_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< divides_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct divides_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct divides_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct divides_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct divides_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct divides
-    : divides< divides< divides< divides< N1,N2 >, N3>, N4>, N5>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , divides
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct divides< N1,N2,N3,N4,na >
-
-    : divides< divides< divides< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , divides
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct divides< N1,N2,N3,na,na >
-
-    : divides< divides< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , divides
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct divides< N1,N2,na,na,na >
-    : divides_impl<
-          typename divides_tag<N1>::type
-        , typename divides_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , divides
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, divides)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct divides_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  / BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc_pre590/equal_to.hpp b/boost/mpl/aux_/preprocessed/bcc_pre590/equal_to.hpp
deleted file mode 100644
index 901a93c..0000000
--- a/boost/mpl/aux_/preprocessed/bcc_pre590/equal_to.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "equal_to.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct equal_to_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct equal_to_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct equal_to_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct equal_to_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct equal_to_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct equal_to
-
-    : equal_to_impl<
-          typename equal_to_tag<N1>::type
-        , typename equal_to_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct equal_to_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value  == BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc_pre590/fold_impl.hpp b/boost/mpl/aux_/preprocessed/bcc_pre590/fold_impl.hpp
deleted file mode 100644
index 45ab4e7..0000000
--- a/boost/mpl/aux_/preprocessed/bcc_pre590/fold_impl.hpp
+++ /dev/null
@@ -1,180 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl;
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 0,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef state0 state;
-    typedef iter0 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 1,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    
-
-    typedef state1 state;
-    typedef iter1 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 2,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    
-
-    typedef state2 state;
-    typedef iter2 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 3,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    
-
-    typedef state3 state;
-    typedef iter3 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 4,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp, state3, typename deref<iter3>::type >::type state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef state4 state;
-    typedef iter4 iterator;
-};
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl
-{
-    typedef fold_impl<
-          4
-        , First
-        , Last
-        , State
-        , ForwardOp
-        > chunk_;
-
-    typedef fold_impl<
-          ( (N - 4) < 0 ? 0 : N - 4 )
-        , typename chunk_::iterator
-        , Last
-        , typename chunk_::state
-        , ForwardOp
-        > res_;
-
-    typedef typename res_::state state;
-    typedef typename res_::iterator iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< -1,First,Last,State,ForwardOp >
-    : fold_impl<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State, typename deref<First>::type>::type
-        , ForwardOp
-        >
-{
-};
-
-template<
-      typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< -1,Last,Last,State,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/bcc_pre590/full_lambda.hpp b/boost/mpl/aux_/preprocessed/bcc_pre590/full_lambda.hpp
deleted file mode 100644
index 8b2bf59..0000000
--- a/boost/mpl/aux_/preprocessed/bcc_pre590/full_lambda.hpp
+++ /dev/null
@@ -1,558 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "full_lambda.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template<
-      bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false
-    , bool C5 = false
-    >
-struct lambda_or
-    : true_
-{
-};
-
-template<>
-struct lambda_or< false,false,false,false,false >
-    : false_
-{
-};
-
-} // namespace aux
-
-template<
-      typename T
-    , typename Tag
-    , typename Arity
-    >
-struct lambda
-{
-    typedef false_ is_le;
-    typedef T result_;
-    typedef T type;
-};
-
-template<
-      typename T
-    >
-struct is_lambda_expression
-    : lambda<T>::is_le
-{
-};
-
-template< int N, typename Tag >
-struct lambda< arg<N>,Tag, int_< -1 > >
-{
-    typedef true_ is_le;
-    typedef mpl::arg<N> result_; // qualified for the sake of MIPSpro 7.41
-    typedef mpl::protect<result_> type;
-};
-
-template<
-      typename F
-    , typename Tag
-    >
-struct lambda<
-          bind0<F>
-        , Tag
-        , int_<1>
-        >
-{
-    typedef false_ is_le;
-    typedef bind0<
-          F
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1 > class F
-    , typename L1
-    >
-struct le_result1
-{
-    typedef F<
-          typename L1::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1 > class F
-    , typename L1
-    >
-struct le_result1< true_,Tag,F,L1 >
-{
-    typedef bind1<
-          quote1< F,Tag >
-        , typename L1::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1 > class F
-    , typename T1
-    , typename Tag
-    >
-struct lambda<
-          F<T1>
-        , Tag
-        , int_<1>
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef typename l1::is_le is_le1;
-    typedef typename aux::lambda_or<
-          is_le1::value
-        >::type is_le;
-
-    typedef aux::le_result1<
-          is_le, Tag, F, l1
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1
-    , typename Tag
-    >
-struct lambda<
-          bind1< F,T1 >
-        , Tag
-        , int_<2>
-        >
-{
-    typedef false_ is_le;
-    typedef bind1<
-          F
-        , T1
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2 > class F
-    , typename L1, typename L2
-    >
-struct le_result2
-{
-    typedef F<
-          typename L1::type, typename L2::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2 > class F
-    , typename L1, typename L2
-    >
-struct le_result2< true_,Tag,F,L1,L2 >
-{
-    typedef bind2<
-          quote2< F,Tag >
-        , typename L1::result_, typename L2::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2 > class F
-    , typename T1, typename T2
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2 >
-        , Tag
-        , int_<2>
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value
-        >::type is_le;
-
-    typedef aux::le_result2<
-          is_le, Tag, F, l1, l2
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    , typename Tag
-    >
-struct lambda<
-          bind2< F,T1,T2 >
-        , Tag
-        , int_<3>
-        >
-{
-    typedef false_ is_le;
-    typedef bind2<
-          F
-        , T1, T2
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3 > class F
-    , typename L1, typename L2, typename L3
-    >
-struct le_result3
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3 > class F
-    , typename L1, typename L2, typename L3
-    >
-struct le_result3< true_,Tag,F,L1,L2,L3 >
-{
-    typedef bind3<
-          quote3< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2, typename P3 > class F
-    , typename T1, typename T2, typename T3
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3 >
-        , Tag
-        , int_<3>
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value
-        >::type is_le;
-
-    typedef aux::le_result3<
-          is_le, Tag, F, l1, l2, l3
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    , typename Tag
-    >
-struct lambda<
-          bind3< F,T1,T2,T3 >
-        , Tag
-        , int_<4>
-        >
-{
-    typedef false_ is_le;
-    typedef bind3<
-          F
-        , T1, T2, T3
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename L1, typename L2, typename L3, typename L4
-    >
-struct le_result4
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        , typename L4::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename L1, typename L2, typename L3, typename L4
-    >
-struct le_result4< true_,Tag,F,L1,L2,L3,L4 >
-{
-    typedef bind4<
-          quote4< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        , typename L4::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename T1, typename T2, typename T3, typename T4
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3,T4 >
-        , Tag
-        , int_<4>
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    typedef lambda< T4,Tag > l4;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    typedef typename l4::is_le is_le4;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value, is_le4::value
-        >::type is_le;
-
-    typedef aux::le_result4<
-          is_le, Tag, F, l1, l2, l3, l4
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename Tag
-    >
-struct lambda<
-          bind4< F,T1,T2,T3,T4 >
-        , Tag
-        , int_<5>
-        >
-{
-    typedef false_ is_le;
-    typedef bind4<
-          F
-        , T1, T2, T3, T4
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
-    , typename L1, typename L2, typename L3, typename L4, typename L5
-    >
-struct le_result5
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        , typename L4::type, typename L5::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
-    , typename L1, typename L2, typename L3, typename L4, typename L5
-    >
-struct le_result5< true_,Tag,F,L1,L2,L3,L4,L5 >
-{
-    typedef bind5<
-          quote5< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        , typename L4::result_, typename L5::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template<
-          typename P1, typename P2, typename P3, typename P4
-        , typename P5
-        >
-      class F
-    , typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3,T4,T5 >
-        , Tag
-        , int_<5>
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    typedef lambda< T4,Tag > l4;
-    typedef lambda< T5,Tag > l5;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    typedef typename l4::is_le is_le4;
-    typedef typename l5::is_le is_le5;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value, is_le4::value
-        , is_le5::value
-        >::type is_le;
-
-    typedef aux::le_result5<
-          is_le, Tag, F, l1, l2, l3, l4, l5
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    , typename Tag
-    >
-struct lambda<
-          bind5< F,T1,T2,T3,T4,T5 >
-        , Tag
-        , int_<6>
-        >
-{
-    typedef false_ is_le;
-    typedef bind5<
-          F
-        , T1, T2, T3, T4, T5
-        > result_;
-
-    typedef result_ type;
-};
-
-/// special case for 'protect'
-template< typename T, typename Tag >
-struct lambda< mpl::protect<T>,Tag, int_<1> >
-{
-    typedef false_ is_le;
-    typedef mpl::protect<T> result_;
-    typedef result_ type;
-};
-
-/// specializations for the main 'bind' form
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    , typename Tag
-    >
-struct lambda<
-          bind< F,T1,T2,T3,T4,T5 >
-        , Tag
-        , int_<6>
-        >
-{
-    typedef false_ is_le;
-    typedef bind< F,T1,T2,T3,T4,T5 > result_;
-    typedef result_ type;
-};
-
-template<
-      typename F
-    , typename Tag1
-    , typename Tag2
-    , typename Arity
-    >
-struct lambda<
-          lambda< F,Tag1,Arity >
-        , Tag2
-        , int_<3>
-        >
-{
-    typedef lambda< F,Tag2 > l1;
-    typedef lambda< Tag1,Tag2 > l2;
-    typedef typename l1::is_le is_le;
-    typedef bind1< quote1<aux::template_arity>, typename l1::result_ > arity_;
-    typedef lambda< typename if_< is_le,arity_,Arity >::type, Tag2 > l3;
-    typedef aux::le_result3<is_le, Tag2, mpl::lambda, l1, l2, l3> le_result_;
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 3, lambda)
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc_pre590/greater.hpp b/boost/mpl/aux_/preprocessed/bcc_pre590/greater.hpp
deleted file mode 100644
index 3d1c3dc..0000000
--- a/boost/mpl/aux_/preprocessed/bcc_pre590/greater.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "greater.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct greater_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< greater_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< greater_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct greater_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct greater_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct greater
-
-    : greater_impl<
-          typename greater_tag<N1>::type
-        , typename greater_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, greater)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct greater_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value > BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc_pre590/greater_equal.hpp b/boost/mpl/aux_/preprocessed/bcc_pre590/greater_equal.hpp
deleted file mode 100644
index fb01186..0000000
--- a/boost/mpl/aux_/preprocessed/bcc_pre590/greater_equal.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "greater_equal.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct greater_equal_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< greater_equal_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct greater_equal_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_equal_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_equal_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct greater_equal_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct greater_equal
-
-    : greater_equal_impl<
-          typename greater_equal_tag<N1>::type
-        , typename greater_equal_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct greater_equal_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc_pre590/inherit.hpp b/boost/mpl/aux_/preprocessed/bcc_pre590/inherit.hpp
deleted file mode 100644
index 6adcc01..0000000
--- a/boost/mpl/aux_/preprocessed/bcc_pre590/inherit.hpp
+++ /dev/null
@@ -1,139 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "inherit.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
-    >
-struct inherit2
-    : T1, T2
-{
-    typedef inherit2 type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2))
-};
-
-template< typename T1 >
-struct inherit2< T1,empty_base >
-{
-    typedef T1 type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (T1, empty_base))
-};
-
-template< typename T2 >
-struct inherit2< empty_base,T2 >
-{
-    typedef T2 type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, T2))
-};
-
-template<>
-struct inherit2< empty_base,empty_base >
-{
-    typedef empty_base type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, empty_base))
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, inherit2)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na
-    >
-struct inherit3
-    : inherit2<
-          typename inherit2<
-              T1, T2
-            >::type
-        , T3
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          3
-        , inherit3
-        , ( T1, T2, T3)
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC(3, inherit3)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
-    >
-struct inherit4
-    : inherit2<
-          typename inherit3<
-              T1, T2, T3
-            >::type
-        , T4
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          4
-        , inherit4
-        , ( T1, T2, T3, T4)
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC(4, inherit4)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
-    , typename T5 = na
-    >
-struct inherit5
-    : inherit2<
-          typename inherit4<
-              T1, T2, T3, T4
-            >::type
-        , T5
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , inherit5
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC(5, inherit5)
-
-/// primary template
-
-template<
-      typename T1 = empty_base, typename T2 = empty_base
-    , typename T3 = empty_base, typename T4 = empty_base
-    , typename T5 = empty_base
-    >
-struct inherit
-    : inherit5< T1,T2,T3,T4,T5 >
-{
-};
-
-template<>
-struct inherit< na,na,na,na,na >
-{
-    template<
-
-          typename T1, typename T2, typename T3, typename T4, typename T5
-
-        >
-    struct apply
-        : inherit< T1,T2,T3,T4,T5 >
-    {
-    };
-};
-
-BOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit)
-BOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit)
-BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit)
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc_pre590/iter_fold_if_impl.hpp b/boost/mpl/aux_/preprocessed/bcc_pre590/iter_fold_if_impl.hpp
deleted file mode 100644
index b767e95..0000000
--- a/boost/mpl/aux_/preprocessed/bcc_pre590/iter_fold_if_impl.hpp
+++ /dev/null
@@ -1,133 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright David Abrahams 2001-2002
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "iter_fold_if_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-template< typename Iterator, typename State >
-struct iter_fold_if_null_step
-{
-    typedef State state;
-    typedef Iterator iterator;
-};
-
-template< bool >
-struct iter_fold_if_step_impl
-{
-    template<
-          typename Iterator
-        , typename State
-        , typename StateOp
-        , typename IteratorOp
-        >
-    struct result_
-    {
-        typedef typename apply2< StateOp,State,Iterator >::type state;
-        typedef typename IteratorOp::type iterator;
-    };
-};
-
-template<>
-struct iter_fold_if_step_impl<false>
-{
-    template<
-          typename Iterator
-        , typename State
-        , typename StateOp
-        , typename IteratorOp
-        >
-    struct result_
-    {
-        typedef State state;
-        typedef Iterator iterator;
-    };
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename ForwardOp
-    , typename Predicate
-    >
-struct iter_fold_if_forward_step
-{
-    typedef typename apply2< Predicate,State,Iterator >::type not_last;
-    typedef typename iter_fold_if_step_impl<
-          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
-        >::template result_< Iterator,State,ForwardOp, mpl::next<Iterator> > impl_;
-
-    typedef typename impl_::state state;
-    typedef typename impl_::iterator iterator;
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename BackwardOp
-    , typename Predicate
-    >
-struct iter_fold_if_backward_step
-{
-    typedef typename apply2< Predicate,State,Iterator >::type not_last;
-    typedef typename iter_fold_if_step_impl<
-          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
-        >::template result_< Iterator,State,BackwardOp, identity<Iterator> > impl_;
-
-    typedef typename impl_::state state;
-    typedef typename impl_::iterator iterator;
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename ForwardOp
-    , typename ForwardPredicate
-    , typename BackwardOp
-    , typename BackwardPredicate
-    >
-struct iter_fold_if_impl
-{
- private:
-    typedef iter_fold_if_null_step< Iterator,State > forward_step0;
-    typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1;
-    typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2;
-    typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3;
-    typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4;
-    
-
-    typedef typename if_<
-          typename forward_step4::not_last
-        , iter_fold_if_impl<
-              typename forward_step4::iterator
-            , typename forward_step4::state
-            , ForwardOp
-            , ForwardPredicate
-            , BackwardOp
-            , BackwardPredicate
-            >
-        , iter_fold_if_null_step<
-              typename forward_step4::iterator
-            , typename forward_step4::state
-            >
-        >::type backward_step4;
-
-    typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3;
-    typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2;
-    typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1;
-    typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0;
-    
-
- public:
-    typedef typename backward_step0::state state;
-    typedef typename backward_step4::iterator iterator;
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/bcc_pre590/iter_fold_impl.hpp b/boost/mpl/aux_/preprocessed/bcc_pre590/iter_fold_impl.hpp
deleted file mode 100644
index 1dd216c..0000000
--- a/boost/mpl/aux_/preprocessed/bcc_pre590/iter_fold_impl.hpp
+++ /dev/null
@@ -1,180 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "iter_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl;
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 0,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef state0 state;
-    typedef iter0 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 1,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    
-
-    typedef state1 state;
-    typedef iter1 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 2,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    
-
-    typedef state2 state;
-    typedef iter2 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 3,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,state2,iter2 >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    
-
-    typedef state3 state;
-    typedef iter3 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 4,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,state2,iter2 >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp,state3,iter3 >::type state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef state4 state;
-    typedef iter4 iterator;
-};
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl
-{
-    typedef iter_fold_impl<
-          4
-        , First
-        , Last
-        , State
-        , ForwardOp
-        > chunk_;
-
-    typedef iter_fold_impl<
-          ( (N - 4) < 0 ? 0 : N - 4 )
-        , typename chunk_::iterator
-        , Last
-        , typename chunk_::state
-        , ForwardOp
-        > res_;
-
-    typedef typename res_::state state;
-    typedef typename res_::iterator iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< -1,First,Last,State,ForwardOp >
-    : iter_fold_impl<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2< ForwardOp,State,First >::type
-        , ForwardOp
-        >
-{
-};
-
-template<
-      typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< -1,Last,Last,State,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/bcc_pre590/lambda_no_ctps.hpp b/boost/mpl/aux_/preprocessed/bcc_pre590/lambda_no_ctps.hpp
deleted file mode 100644
index 75b30ce..0000000
--- a/boost/mpl/aux_/preprocessed/bcc_pre590/lambda_no_ctps.hpp
+++ /dev/null
@@ -1,229 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "lambda_no_ctps.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template<
-      bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false
-    , bool C5 = false
-    >
-struct lambda_or
-    : true_
-{
-};
-
-template<>
-struct lambda_or< false,false,false,false,false >
-    : false_
-{
-};
-
-template< typename Arity > struct lambda_impl
-{
-    template< typename T, typename Tag, typename Protect > struct result_
-    {
-        typedef T type;
-        typedef is_placeholder<T> is_le;
-    };
-};
-
-template<> struct lambda_impl< int_<1> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef typename l1::is_le is_le1;
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value
-            > is_le;
-
-        typedef bind1<
-              typename F::rebind
-            , typename l1::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<2> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        
-
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value
-            > is_le;
-
-        typedef bind2<
-              typename F::rebind
-            , typename l1::type, typename l2::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<3> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        
-
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value
-            > is_le;
-
-        typedef bind3<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<4> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        typedef lambda< typename F::arg4, Tag, false_ > l4;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        typedef typename l4::is_le is_le4;
-        
-
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value
-            > is_le;
-
-        typedef bind4<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            , typename l4::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<5> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        typedef lambda< typename F::arg4, Tag, false_ > l4;
-        typedef lambda< typename F::arg5, Tag, false_ > l5;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        typedef typename l4::is_le is_le4;
-        typedef typename l5::is_le is_le5;
-        
-
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value
-            > is_le;
-
-        typedef bind5<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            , typename l4::type, typename l5::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename T
-    , typename Tag
-    , typename Protect
-    >
-struct lambda
-{
-    /// Metafunction forwarding confuses MSVC 6.x
-    typedef typename aux::template_arity<T>::type arity_;
-    typedef typename aux::lambda_impl<arity_>
-        ::template result_< T,Tag,Protect > l_;
-
-    typedef typename l_::type type;
-    typedef typename l_::is_le is_le;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect))
-};
-
-BOOST_MPL_AUX_NA_SPEC2(1, 3, lambda)
-
-template<
-      typename T
-    >
-struct is_lambda_expression
-    : lambda<T>::is_le
-{
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc_pre590/less.hpp b/boost/mpl/aux_/preprocessed/bcc_pre590/less.hpp
deleted file mode 100644
index 0b6ce1d..0000000
--- a/boost/mpl/aux_/preprocessed/bcc_pre590/less.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "less.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct less_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< less_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< less_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct less_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct less_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct less
-
-    : less_impl<
-          typename less_tag<N1>::type
-        , typename less_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, less)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct less_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > BOOST_MPL_AUX_VALUE_WKND(N1)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc_pre590/less_equal.hpp b/boost/mpl/aux_/preprocessed/bcc_pre590/less_equal.hpp
deleted file mode 100644
index 0010e08..0000000
--- a/boost/mpl/aux_/preprocessed/bcc_pre590/less_equal.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "less_equal.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct less_equal_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< less_equal_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< less_equal_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct less_equal_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_equal_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_equal_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct less_equal_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct less_equal
-
-    : less_equal_impl<
-          typename less_equal_tag<N1>::type
-        , typename less_equal_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct less_equal_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc_pre590/list.hpp b/boost/mpl/aux_/preprocessed/bcc_pre590/list.hpp
deleted file mode 100644
index cbd58ac..0000000
--- a/boost/mpl/aux_/preprocessed/bcc_pre590/list.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "list.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct list;
-
-template<
-     
-    >
-struct list<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list0<  >
-{
-    typedef list0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct list<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list1<T0>
-{
-    typedef typename list1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct list<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list2< T0,T1 >
-{
-    typedef typename list2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct list<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list3< T0,T1,T2 >
-{
-    typedef typename list3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct list<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list4< T0,T1,T2,T3 >
-{
-    typedef typename list4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct list<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list5< T0,T1,T2,T3,T4 >
-{
-    typedef typename list5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename list6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename list7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename list8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : list15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename list15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : list16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename list16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : list17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename list17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : list18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename list18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : list19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename list19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct list
-    : list20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename list20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc_pre590/list_c.hpp b/boost/mpl/aux_/preprocessed/bcc_pre590/list_c.hpp
deleted file mode 100644
index 495c3f7..0000000
--- a/boost/mpl/aux_/preprocessed/bcc_pre590/list_c.hpp
+++ /dev/null
@@ -1,328 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "list_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct list_c;
-
-template<
-      typename T
-    >
-struct list_c<
-          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list0_c<T>
-{
-    typedef typename list0_c<T>::type type;
-};
-
-template<
-      typename T, long C0
-    >
-struct list_c<
-          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list1_c< T,C0 >
-{
-    typedef typename list1_c< T,C0 >::type type;
-};
-
-template<
-      typename T, long C0, long C1
-    >
-struct list_c<
-          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list2_c< T,C0,C1 >
-{
-    typedef typename list2_c< T,C0,C1 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2
-    >
-struct list_c<
-          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list3_c< T,C0,C1,C2 >
-{
-    typedef typename list3_c< T,C0,C1,C2 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3
-    >
-struct list_c<
-          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list4_c< T,C0,C1,C2,C3 >
-{
-    typedef typename list4_c< T,C0,C1,C2,C3 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list5_c< T,C0,C1,C2,C3,C4 >
-{
-    typedef typename list5_c< T,C0,C1,C2,C3,C4 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list6_c< T,C0,C1,C2,C3,C4,C5 >
-{
-    typedef typename list6_c< T,C0,C1,C2,C3,C4,C5 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list7_c< T,C0,C1,C2,C3,C4,C5,C6 >
-{
-    typedef typename list7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX
-        >
-    : list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >
-{
-    typedef typename list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >
-{
-    typedef typename list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >
-{
-    typedef typename list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >
-{
-    typedef typename list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >
-{
-    typedef typename list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >
-{
-    typedef typename list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list14_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        >
-{
-    typedef typename list14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list15_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        >
-{
-    typedef typename list15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list16_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15
-        >
-{
-    typedef typename list16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list17_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16
-        >
-{
-    typedef typename list17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, LONG_MAX, LONG_MAX
-        >
-    : list18_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17
-        >
-{
-    typedef typename list18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, LONG_MAX
-        >
-    : list19_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18
-        >
-{
-    typedef typename list19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct list_c
-    : list20_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, C19
-        >
-{
-    typedef typename list20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc_pre590/map.hpp b/boost/mpl/aux_/preprocessed/bcc_pre590/map.hpp
deleted file mode 100644
index 80ef156..0000000
--- a/boost/mpl/aux_/preprocessed/bcc_pre590/map.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "map.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct map;
-
-template<
-     
-    >
-struct map<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map0<  >
-{
-    typedef map0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct map<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map1<T0>
-{
-    typedef typename map1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct map<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map2< T0,T1 >
-{
-    typedef typename map2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct map<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map3< T0,T1,T2 >
-{
-    typedef typename map3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct map<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map4< T0,T1,T2,T3 >
-{
-    typedef typename map4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct map<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map5< T0,T1,T2,T3,T4 >
-{
-    typedef typename map5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename map6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename map7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename map8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : map15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename map15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : map16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename map16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : map17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename map17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : map18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename map18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : map19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename map19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct map
-    : map20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename map20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc_pre590/minus.hpp b/boost/mpl/aux_/preprocessed/bcc_pre590/minus.hpp
deleted file mode 100644
index cfddc15..0000000
--- a/boost/mpl/aux_/preprocessed/bcc_pre590/minus.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "minus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct minus_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< minus_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< minus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct minus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct minus_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct minus_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct minus_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct minus
-    : minus< minus< minus< minus< N1,N2 >, N3>, N4>, N5>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , minus
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct minus< N1,N2,N3,N4,na >
-
-    : minus< minus< minus< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , minus
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct minus< N1,N2,N3,na,na >
-
-    : minus< minus< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , minus
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct minus< N1,N2,na,na,na >
-    : minus_impl<
-          typename minus_tag<N1>::type
-        , typename minus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , minus
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, minus)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct minus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  - BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc_pre590/modulus.hpp b/boost/mpl/aux_/preprocessed/bcc_pre590/modulus.hpp
deleted file mode 100644
index eb5eff0..0000000
--- a/boost/mpl/aux_/preprocessed/bcc_pre590/modulus.hpp
+++ /dev/null
@@ -1,101 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "modulus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct modulus_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< modulus_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< modulus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct modulus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct modulus_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct modulus_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct modulus_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct modulus
-
-    : modulus_impl<
-          typename modulus_tag<N1>::type
-        , typename modulus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, modulus)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct modulus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  % BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc_pre590/not_equal_to.hpp b/boost/mpl/aux_/preprocessed/bcc_pre590/not_equal_to.hpp
deleted file mode 100644
index 68356ee..0000000
--- a/boost/mpl/aux_/preprocessed/bcc_pre590/not_equal_to.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "not_equal_to.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct not_equal_to_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< not_equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct not_equal_to_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct not_equal_to_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct not_equal_to_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct not_equal_to_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct not_equal_to
-
-    : not_equal_to_impl<
-          typename not_equal_to_tag<N1>::type
-        , typename not_equal_to_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct not_equal_to_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value != BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc_pre590/or.hpp b/boost/mpl/aux_/preprocessed/bcc_pre590/or.hpp
deleted file mode 100644
index ff7ce9f..0000000
--- a/boost/mpl/aux_/preprocessed/bcc_pre590/or.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "or.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template< bool C_, typename T1, typename T2, typename T3, typename T4 >
-struct or_impl
-    : true_
-{
-};
-
-template< typename T1, typename T2, typename T3, typename T4 >
-struct or_impl< false,T1,T2,T3,T4 >
-    : or_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4
-        , false_
-        >
-{
-};
-
-template<>
-struct or_impl<
-          false
-        , false_, false_, false_, false_
-        >
-    : false_
-{
-};
-
-} // namespace aux
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
-    , typename T3 = false_, typename T4 = false_, typename T5 = false_
-    >
-struct or_
-
-    : aux::or_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4, T5
-        >
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , or_
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC2(
-      2
-    , 5
-    , or_
-    )
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc_pre590/placeholders.hpp b/boost/mpl/aux_/preprocessed/bcc_pre590/placeholders.hpp
deleted file mode 100644
index b306bbb..0000000
--- a/boost/mpl/aux_/preprocessed/bcc_pre590/placeholders.hpp
+++ /dev/null
@@ -1,105 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright Peter Dimov 2001-2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "placeholders.hpp" header
-// -- DO NOT modify by hand!
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg< -1 > _;
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;
-}
-
-}}
-
-/// agurt, 17/mar/02: one more placeholder for the last 'apply#' 
-/// specialization
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<1> _1;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<2> _2;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<3> _3;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<4> _4;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<5> _5;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<6> _6;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6;
-}
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc_pre590/plus.hpp b/boost/mpl/aux_/preprocessed/bcc_pre590/plus.hpp
deleted file mode 100644
index 82539ab..0000000
--- a/boost/mpl/aux_/preprocessed/bcc_pre590/plus.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "plus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct plus_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< plus_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< plus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct plus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct plus_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct plus_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct plus_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct plus
-    : plus< plus< plus< plus< N1,N2 >, N3>, N4>, N5>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , plus
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct plus< N1,N2,N3,N4,na >
-
-    : plus< plus< plus< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , plus
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct plus< N1,N2,N3,na,na >
-
-    : plus< plus< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , plus
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct plus< N1,N2,na,na,na >
-    : plus_impl<
-          typename plus_tag<N1>::type
-        , typename plus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , plus
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, plus)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct plus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  + BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc_pre590/quote.hpp b/boost/mpl/aux_/preprocessed/bcc_pre590/quote.hpp
deleted file mode 100644
index 7f9d18b..0000000
--- a/boost/mpl/aux_/preprocessed/bcc_pre590/quote.hpp
+++ /dev/null
@@ -1,11 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2008
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "quote.hpp" header
-// -- DO NOT modify by hand!
-
diff --git a/boost/mpl/aux_/preprocessed/bcc_pre590/reverse_fold_impl.hpp b/boost/mpl/aux_/preprocessed/bcc_pre590/reverse_fold_impl.hpp
deleted file mode 100644
index 372f0d2..0000000
--- a/boost/mpl/aux_/preprocessed/bcc_pre590/reverse_fold_impl.hpp
+++ /dev/null
@@ -1,295 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "reverse_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl;
-
-template< long N >
-struct reverse_fold_chunk;
-
-template<> struct reverse_fold_chunk<0>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef fwd_state0 bkwd_state0;
-        typedef bkwd_state0 state;
-        typedef iter0 iterator;
-    };
-};
-
-template<> struct reverse_fold_chunk<1>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        
-
-        typedef fwd_state1 bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        typedef bkwd_state0 state;
-        typedef iter1 iterator;
-    };
-};
-
-template<> struct reverse_fold_chunk<2>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        
-
-        typedef fwd_state2 bkwd_state2;
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter2 iterator;
-    };
-};
-
-template<> struct reverse_fold_chunk<3>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        
-
-        typedef fwd_state3 bkwd_state3;
-        typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter3 iterator;
-    };
-};
-
-template<> struct reverse_fold_chunk<4>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef fwd_state4 bkwd_state4;
-        typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3;
-        typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter4 iterator;
-    };
-};
-
-template< long N >
-struct reverse_fold_chunk
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef reverse_fold_impl<
-              ( (N - 4) < 0 ? 0 : N - 4 )
-            , iter4
-            , Last
-            , fwd_state4
-            , BackwardOp
-            , ForwardOp
-            > nested_chunk;
-
-        typedef typename nested_chunk::state bkwd_state4;
-        typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3;
-        typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef typename nested_chunk::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_step;
-
-template<
-      typename Last
-    , typename State
-    >
-struct reverse_fold_null_step
-{
-    typedef Last iterator;
-    typedef State state;
-};
-
-template<>
-struct reverse_fold_chunk< -1 >
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef typename if_<
-              typename is_same< First,Last >::type
-            , reverse_fold_null_step< Last,State >
-            , reverse_fold_step< First,Last,State,BackwardOp,ForwardOp >
-            >::type res_;
-
-        typedef typename res_::state state;
-        typedef typename res_::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_step
-{
-    typedef reverse_fold_chunk< -1 >::template result_<
-          typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State, typename deref<First>::type>::type
-        , BackwardOp
-        , ForwardOp
-        > nested_step;
-
-    typedef typename apply2<
-          BackwardOp
-        , typename nested_step::state
-        , typename deref<First>::type
-        >::type state;
-
-    typedef typename nested_step::iterator iterator;
-};
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl
-    : reverse_fold_chunk<N>
-        ::template result_< First,Last,State,BackwardOp,ForwardOp >
-{
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/bcc_pre590/reverse_iter_fold_impl.hpp b/boost/mpl/aux_/preprocessed/bcc_pre590/reverse_iter_fold_impl.hpp
deleted file mode 100644
index 44aadf7..0000000
--- a/boost/mpl/aux_/preprocessed/bcc_pre590/reverse_iter_fold_impl.hpp
+++ /dev/null
@@ -1,295 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "reverse_iter_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl;
-
-template< long N >
-struct reverse_iter_fold_chunk;
-
-template<> struct reverse_iter_fold_chunk<0>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef fwd_state0 bkwd_state0;
-        typedef bkwd_state0 state;
-        typedef iter0 iterator;
-    };
-};
-
-template<> struct reverse_iter_fold_chunk<1>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        
-
-        typedef fwd_state1 bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        typedef bkwd_state0 state;
-        typedef iter1 iterator;
-    };
-};
-
-template<> struct reverse_iter_fold_chunk<2>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        
-
-        typedef fwd_state2 bkwd_state2;
-        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter2 iterator;
-    };
-};
-
-template<> struct reverse_iter_fold_chunk<3>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        
-
-        typedef fwd_state3 bkwd_state3;
-        typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter3 iterator;
-    };
-};
-
-template<> struct reverse_iter_fold_chunk<4>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef fwd_state4 bkwd_state4;
-        typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3;
-        typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter4 iterator;
-    };
-};
-
-template< long N >
-struct reverse_iter_fold_chunk
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef reverse_iter_fold_impl<
-              ( (N - 4) < 0 ? 0 : N - 4 )
-            , iter4
-            , Last
-            , fwd_state4
-            , BackwardOp
-            , ForwardOp
-            > nested_chunk;
-
-        typedef typename nested_chunk::state bkwd_state4;
-        typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3;
-        typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef typename nested_chunk::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_step;
-
-template<
-      typename Last
-    , typename State
-    >
-struct reverse_iter_fold_null_step
-{
-    typedef Last iterator;
-    typedef State state;
-};
-
-template<>
-struct reverse_iter_fold_chunk< -1 >
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef typename if_<
-              typename is_same< First,Last >::type
-            , reverse_iter_fold_null_step< Last,State >
-            , reverse_iter_fold_step< First,Last,State,BackwardOp,ForwardOp >
-            >::type res_;
-
-        typedef typename res_::state state;
-        typedef typename res_::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_step
-{
-    typedef reverse_iter_fold_chunk< -1 >::template result_<
-          typename mpl::next<First>::type
-        , Last
-        , typename apply2< ForwardOp,State,First >::type
-        , BackwardOp
-        , ForwardOp
-        > nested_step;
-
-    typedef typename apply2<
-          BackwardOp
-        , typename nested_step::state
-        , First
-        >::type state;
-
-    typedef typename nested_step::iterator iterator;
-};
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl
-    : reverse_iter_fold_chunk<N>
-        ::template result_< First,Last,State,BackwardOp,ForwardOp >
-{
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/bcc_pre590/set.hpp b/boost/mpl/aux_/preprocessed/bcc_pre590/set.hpp
deleted file mode 100644
index ace3a4f..0000000
--- a/boost/mpl/aux_/preprocessed/bcc_pre590/set.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "set.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct set;
-
-template<
-     
-    >
-struct set<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set0<  >
-{
-    typedef set0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct set<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set1<T0>
-{
-    typedef typename set1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct set<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set2< T0,T1 >
-{
-    typedef typename set2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct set<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set3< T0,T1,T2 >
-{
-    typedef typename set3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct set<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set4< T0,T1,T2,T3 >
-{
-    typedef typename set4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct set<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set5< T0,T1,T2,T3,T4 >
-{
-    typedef typename set5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename set6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename set7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename set8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : set15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename set15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : set16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename set16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : set17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename set17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : set18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename set18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : set19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename set19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct set
-    : set20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename set20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc_pre590/set_c.hpp b/boost/mpl/aux_/preprocessed/bcc_pre590/set_c.hpp
deleted file mode 100644
index 4e6993c..0000000
--- a/boost/mpl/aux_/preprocessed/bcc_pre590/set_c.hpp
+++ /dev/null
@@ -1,328 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "set_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct set_c;
-
-template<
-      typename T
-    >
-struct set_c<
-          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set0_c<T>
-{
-    typedef typename set0_c<T>::type type;
-};
-
-template<
-      typename T, long C0
-    >
-struct set_c<
-          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set1_c< T,C0 >
-{
-    typedef typename set1_c< T,C0 >::type type;
-};
-
-template<
-      typename T, long C0, long C1
-    >
-struct set_c<
-          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set2_c< T,C0,C1 >
-{
-    typedef typename set2_c< T,C0,C1 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2
-    >
-struct set_c<
-          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set3_c< T,C0,C1,C2 >
-{
-    typedef typename set3_c< T,C0,C1,C2 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3
-    >
-struct set_c<
-          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set4_c< T,C0,C1,C2,C3 >
-{
-    typedef typename set4_c< T,C0,C1,C2,C3 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set5_c< T,C0,C1,C2,C3,C4 >
-{
-    typedef typename set5_c< T,C0,C1,C2,C3,C4 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set6_c< T,C0,C1,C2,C3,C4,C5 >
-{
-    typedef typename set6_c< T,C0,C1,C2,C3,C4,C5 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set7_c< T,C0,C1,C2,C3,C4,C5,C6 >
-{
-    typedef typename set7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX
-        >
-    : set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >
-{
-    typedef typename set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >
-{
-    typedef typename set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >
-{
-    typedef typename set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >
-{
-    typedef typename set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >
-{
-    typedef typename set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >
-{
-    typedef typename set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set14_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        >
-{
-    typedef typename set14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set15_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        >
-{
-    typedef typename set15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set16_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15
-        >
-{
-    typedef typename set16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set17_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16
-        >
-{
-    typedef typename set17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, LONG_MAX, LONG_MAX
-        >
-    : set18_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17
-        >
-{
-    typedef typename set18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, LONG_MAX
-        >
-    : set19_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18
-        >
-{
-    typedef typename set19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct set_c
-    : set20_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, C19
-        >
-{
-    typedef typename set20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc_pre590/shift_left.hpp b/boost/mpl/aux_/preprocessed/bcc_pre590/shift_left.hpp
deleted file mode 100644
index 6d19e94..0000000
--- a/boost/mpl/aux_/preprocessed/bcc_pre590/shift_left.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "shift_left.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct shift_left_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< shift_left_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< shift_left_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct shift_left_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_left_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_left_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct shift_left_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct shift_left
-
-    : shift_left_impl<
-          typename shift_left_tag<N1>::type
-        , typename shift_left_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct shift_left_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N, typename S > struct apply
-
-        : integral_c<
-              typename N::value_type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N)::value
-                  << BOOST_MPL_AUX_VALUE_WKND(S)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc_pre590/shift_right.hpp b/boost/mpl/aux_/preprocessed/bcc_pre590/shift_right.hpp
deleted file mode 100644
index dd31d97..0000000
--- a/boost/mpl/aux_/preprocessed/bcc_pre590/shift_right.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "shift_right.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct shift_right_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< shift_right_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< shift_right_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct shift_right_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_right_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_right_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct shift_right_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct shift_right
-
-    : shift_right_impl<
-          typename shift_right_tag<N1>::type
-        , typename shift_right_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct shift_right_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N, typename S > struct apply
-
-        : integral_c<
-              typename N::value_type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N)::value
-                  >> BOOST_MPL_AUX_VALUE_WKND(S)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc_pre590/template_arity.hpp b/boost/mpl/aux_/preprocessed/bcc_pre590/template_arity.hpp
deleted file mode 100644
index b24a0a7..0000000
--- a/boost/mpl/aux_/preprocessed/bcc_pre590/template_arity.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "template_arity.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-template< bool >
-struct template_arity_impl
-{
-    template< typename F > struct result_
-        : mpl::int_< -1 >
-    {
-    };
-};
-
-template<>
-struct template_arity_impl<true>
-{
-    template< typename F > struct result_
-        : F::arity
-    {
-    };
-};
-
-template< typename F >
-struct template_arity
-    : template_arity_impl< ::boost::mpl::aux::has_rebind<F>::value >
-        ::template result_<F>
-{
-};
-
-}}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc_pre590/times.hpp b/boost/mpl/aux_/preprocessed/bcc_pre590/times.hpp
deleted file mode 100644
index ab100f1..0000000
--- a/boost/mpl/aux_/preprocessed/bcc_pre590/times.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "times.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct times_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< times_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< times_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct times_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct times_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct times_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct times_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct times
-    : times< times< times< times< N1,N2 >, N3>, N4>, N5>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , times
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct times< N1,N2,N3,N4,na >
-
-    : times< times< times< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , times
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct times< N1,N2,N3,na,na >
-
-    : times< times< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , times
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct times< N1,N2,na,na,na >
-    : times_impl<
-          typename times_tag<N1>::type
-        , typename times_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , times
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, times)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct times_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  * BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/bcc_pre590/unpack_args.hpp b/boost/mpl/aux_/preprocessed/bcc_pre590/unpack_args.hpp
deleted file mode 100644
index f391dc1..0000000
--- a/boost/mpl/aux_/preprocessed/bcc_pre590/unpack_args.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "unpack_args.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template< int size, typename F, typename Args >
-struct unpack_args_impl;
-
-template< typename F, typename Args >
-struct unpack_args_impl< 0,F,Args >
-    : apply0<
-          F
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 1,F,Args >
-    : apply1<
-          F
-        , typename at_c< Args,0 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 2,F,Args >
-    : apply2<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 3,F,Args >
-    : apply3<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        , typename at_c< Args,2 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 4,F,Args >
-    : apply4<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 5,F,Args >
-    : apply5<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
-        , typename at_c< Args,4 >::type
-        >
-{
-};
-
-}
-
-template<
-      typename F
-    >
-struct unpack_args
-{
-    template< typename Args > struct apply
-    {
-        typedef typename aux::unpack_args_impl<
-              size<Args>::value
-            , F
-            , Args
-            >::type type;
-
-    };
-};
-
-BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc_pre590/vector.hpp b/boost/mpl/aux_/preprocessed/bcc_pre590/vector.hpp
deleted file mode 100644
index 803e217..0000000
--- a/boost/mpl/aux_/preprocessed/bcc_pre590/vector.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "vector.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct vector;
-
-template<
-     
-    >
-struct vector<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector0<  >
-{
-    typedef vector0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct vector<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector1<T0>
-{
-    typedef typename vector1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct vector<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector2< T0,T1 >
-{
-    typedef typename vector2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct vector<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector3< T0,T1,T2 >
-{
-    typedef typename vector3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct vector<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector4< T0,T1,T2,T3 >
-{
-    typedef typename vector4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct vector<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector5< T0,T1,T2,T3,T4 >
-{
-    typedef typename vector5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : vector15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : vector16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : vector17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : vector18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : vector19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct vector
-    : vector20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/bcc_pre590/vector_c.hpp b/boost/mpl/aux_/preprocessed/bcc_pre590/vector_c.hpp
deleted file mode 100644
index 643b7fd..0000000
--- a/boost/mpl/aux_/preprocessed/bcc_pre590/vector_c.hpp
+++ /dev/null
@@ -1,309 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2008
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "vector_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct vector_c;
-
-template<
-      typename T
-    >
-struct vector_c<
-          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector0_c<T>
-{
-    typedef typename vector0_c<T>::type type;
-};
-
-template<
-      typename T, long C0
-    >
-struct vector_c<
-          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector1_c< T, T(C0) >
-{
-    typedef typename vector1_c< T, T(C0) >::type type;
-};
-
-template<
-      typename T, long C0, long C1
-    >
-struct vector_c<
-          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector2_c< T, T(C0), T(C1) >
-{
-    typedef typename vector2_c< T, T(C0), T(C1) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2
-    >
-struct vector_c<
-          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector3_c< T, T(C0), T(C1), T(C2) >
-{
-    typedef typename vector3_c< T, T(C0), T(C1), T(C2) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector4_c< T, T(C0), T(C1), T(C2), T(C3) >
-{
-    typedef typename vector4_c< T, T(C0), T(C1), T(C2), T(C3) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) >
-{
-    typedef typename vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) >
-{
-    typedef typename vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) >
-{
-    typedef typename vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX
-        >
-    : vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) >
-{
-    typedef typename vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) >
-{
-    typedef typename vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) >
-{
-    typedef typename vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) >
-{
-    typedef typename vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) >
-{
-    typedef typename vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) >
-{
-    typedef typename vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) >
-{
-    typedef typename vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) >
-{
-    typedef typename vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) >
-{
-    typedef typename vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) >
-{
-    typedef typename vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, LONG_MAX, LONG_MAX
-        >
-    : vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) >
-{
-    typedef typename vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, LONG_MAX
-        >
-    : vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) >
-{
-    typedef typename vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct vector_c
-    : vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) >
-{
-    typedef typename vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/dmc/advance_backward.hpp b/boost/mpl/aux_/preprocessed/dmc/advance_backward.hpp
deleted file mode 100644
index 26de94c..0000000
--- a/boost/mpl/aux_/preprocessed/dmc/advance_backward.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/advance_backward.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-template< long N > struct advance_backward;
-template<>
-struct advance_backward<0>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef iter0 type;
-    };
-};
-
-template<>
-struct advance_backward<1>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef iter1 type;
-    };
-};
-
-template<>
-struct advance_backward<2>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef iter2 type;
-    };
-};
-
-template<>
-struct advance_backward<3>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef typename prior<iter2>::type iter3;
-        typedef iter3 type;
-    };
-};
-
-template<>
-struct advance_backward<4>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef typename prior<iter2>::type iter3;
-        typedef typename prior<iter3>::type iter4;
-        typedef iter4 type;
-    };
-};
-
-template< long N >
-struct advance_backward
-{
-    template< typename Iterator > struct apply
-    {
-        typedef typename apply_wrap1<
-              advance_backward<4>
-            , Iterator
-            >::type chunk_result_;
-
-        typedef typename apply_wrap1<
-              advance_backward<(
-                (N - 4) < 0
-                    ? 0
-                    : N - 4
-                    )>
-            , chunk_result_
-            >::type type;
-    };
-};
-
-}}}
-
diff --git a/boost/mpl/aux_/preprocessed/dmc/advance_forward.hpp b/boost/mpl/aux_/preprocessed/dmc/advance_forward.hpp
deleted file mode 100644
index b137cc7..0000000
--- a/boost/mpl/aux_/preprocessed/dmc/advance_forward.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/advance_forward.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-template< long N > struct advance_forward;
-template<>
-struct advance_forward<0>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef iter0 type;
-    };
-};
-
-template<>
-struct advance_forward<1>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef iter1 type;
-    };
-};
-
-template<>
-struct advance_forward<2>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef iter2 type;
-    };
-};
-
-template<>
-struct advance_forward<3>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef typename next<iter2>::type iter3;
-        typedef iter3 type;
-    };
-};
-
-template<>
-struct advance_forward<4>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef typename next<iter2>::type iter3;
-        typedef typename next<iter3>::type iter4;
-        typedef iter4 type;
-    };
-};
-
-template< long N >
-struct advance_forward
-{
-    template< typename Iterator > struct apply
-    {
-        typedef typename apply_wrap1<
-              advance_forward<4>
-            , Iterator
-            >::type chunk_result_;
-
-        typedef typename apply_wrap1<
-              advance_forward<(
-                (N - 4) < 0
-                    ? 0
-                    : N - 4
-                    )>
-            , chunk_result_
-            >::type type;
-    };
-};
-
-}}}
-
diff --git a/boost/mpl/aux_/preprocessed/dmc/and.hpp b/boost/mpl/aux_/preprocessed/dmc/and.hpp
deleted file mode 100644
index 010ad1f..0000000
--- a/boost/mpl/aux_/preprocessed/dmc/and.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/and.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template< bool C_, typename T1, typename T2, typename T3, typename T4 >
-struct and_impl
-    : false_
-{
-};
-
-template< typename T1, typename T2, typename T3, typename T4 >
-struct and_impl< true,T1,T2,T3,T4 >
-    : and_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4
-        , true_
-        >
-{
-};
-
-template<>
-struct and_impl<
-          true
-        , true_, true_, true_, true_
-        >
-    : true_
-{
-};
-
-} // namespace aux
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
-    , typename T3 = true_, typename T4 = true_, typename T5 = true_
-    >
-struct and_
-
-    : aux::and_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4, T5
-        >
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , and_
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC2(
-      2
-    , 5
-    , and_
-    )
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/dmc/apply.hpp b/boost/mpl/aux_/preprocessed/dmc/apply.hpp
deleted file mode 100644
index e08eacc..0000000
--- a/boost/mpl/aux_/preprocessed/dmc/apply.hpp
+++ /dev/null
@@ -1,169 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/apply.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename F
-    >
-struct apply0
-
-    : apply_wrap0<
-          typename lambda<F>::type
-       
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          1
-        , apply0
-        , (F )
-        )
-};
-
-template<
-      typename F
-    >
-struct apply< F,na,na,na,na,na >
-    : apply0<F>
-{
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply1
-
-    : apply_wrap1<
-          typename lambda<F>::type
-        , T1
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          2
-        , apply1
-        , (F, T1)
-        )
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply< F,T1,na,na,na,na >
-    : apply1< F,T1 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply2
-
-    : apply_wrap2<
-          typename lambda<F>::type
-        , T1, T2
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          3
-        , apply2
-        , (F, T1, T2)
-        )
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply< F,T1,T2,na,na,na >
-    : apply2< F,T1,T2 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply3
-
-    : apply_wrap3<
-          typename lambda<F>::type
-        , T1, T2, T3
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          4
-        , apply3
-        , (F, T1, T2, T3)
-        )
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply< F,T1,T2,T3,na,na >
-    : apply3< F,T1,T2,T3 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply4
-
-    : apply_wrap4<
-          typename lambda<F>::type
-        , T1, T2, T3, T4
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , apply4
-        , (F, T1, T2, T3, T4)
-        )
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply< F,T1,T2,T3,T4,na >
-    : apply4< F,T1,T2,T3,T4 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply5
-
-    : apply_wrap5<
-          typename lambda<F>::type
-        , T1, T2, T3, T4, T5
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          6
-        , apply5
-        , (F, T1, T2, T3, T4, T5)
-        )
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply
-    : apply5< F,T1,T2,T3,T4,T5 >
-{
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/dmc/apply_fwd.hpp b/boost/mpl/aux_/preprocessed/dmc/apply_fwd.hpp
deleted file mode 100644
index b2ed5d5..0000000
--- a/boost/mpl/aux_/preprocessed/dmc/apply_fwd.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/apply_fwd.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename F, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na
-    >
-struct apply;
-
-template<
-      typename F
-    >
-struct apply0;
-
-template<
-      typename F, typename T1
-    >
-struct apply1;
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply2;
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply3;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply4;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply5;
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/dmc/apply_wrap.hpp b/boost/mpl/aux_/preprocessed/dmc/apply_wrap.hpp
deleted file mode 100644
index 34d51a1..0000000
--- a/boost/mpl/aux_/preprocessed/dmc/apply_wrap.hpp
+++ /dev/null
@@ -1,84 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/apply_wrap.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename F
-
-    , typename has_apply_ = typename aux::has_apply<F>::type
-
-    >
-struct apply_wrap0
-
-    : F::template apply<  >
-{
-};
-
-template< typename F >
-struct apply_wrap0< F,true_ >
-    : F::apply
-{
-};
-
-template<
-      typename F, typename T1
-
-    >
-struct apply_wrap1
-
-    : F::template apply<T1>
-{
-};
-
-template<
-      typename F, typename T1, typename T2
-
-    >
-struct apply_wrap2
-
-    : F::template apply< T1,T2 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-
-    >
-struct apply_wrap3
-
-    : F::template apply< T1,T2,T3 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-
-    >
-struct apply_wrap4
-
-    : F::template apply< T1,T2,T3,T4 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-
-    >
-struct apply_wrap5
-
-    : F::template apply< T1,T2,T3,T4,T5 >
-{
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/dmc/arg.hpp b/boost/mpl/aux_/preprocessed/dmc/arg.hpp
deleted file mode 100644
index 6f2f8a8..0000000
--- a/boost/mpl/aux_/preprocessed/dmc/arg.hpp
+++ /dev/null
@@ -1,123 +0,0 @@
-
-// Copyright Peter Dimov 2001-2002
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/arg.hpp" header
-// -- DO NOT modify by hand!
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-template<> struct arg< -1 >
-{
-    BOOST_STATIC_CONSTANT(int, value  = -1);
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U1 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<1>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 1);
-    typedef arg<2> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U1 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<2>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 2);
-    typedef arg<3> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U2 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<3>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 3);
-    typedef arg<4> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U3 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<4>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 4);
-    typedef arg<5> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U4 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<5>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 5);
-    typedef arg<6> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U5 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg)
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
diff --git a/boost/mpl/aux_/preprocessed/dmc/basic_bind.hpp b/boost/mpl/aux_/preprocessed/dmc/basic_bind.hpp
deleted file mode 100644
index 1e73429..0000000
--- a/boost/mpl/aux_/preprocessed/dmc/basic_bind.hpp
+++ /dev/null
@@ -1,406 +0,0 @@
-
-// Copyright Peter Dimov 2001
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/basic_bind.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template<
-      typename T, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg
-{
-    typedef T type;
-};
-
-template<
-      int N, typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg< arg<N>, U1, U2, U3, U4, U5 >
-{
-    typedef typename apply_wrap5<mpl::arg<N>, U1, U2, U3, U4, U5>::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg< bind< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 >
-{
-    typedef bind< F,T1,T2,T3,T4,T5 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename F, int dummy_
-    >
-struct bind0
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-
-     public:
-        typedef typename apply_wrap0<
-              f_
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind0<F>, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind0<F> f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
-
-template<
-      typename F, int dummy_
-    >
-struct bind< F,na,na,na,na,na >
-    : bind0<F>
-{
-};
-
-template<
-      typename F, typename T1, int dummy_
-    >
-struct bind1
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-
-     public:
-        typedef typename apply_wrap1<
-              f_
-            , typename t1::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename U1, typename U2, typename U3
-    , typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind1< F,T1 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind1< F,T1 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
-
-template<
-      typename F, typename T1, int dummy_
-    >
-struct bind< F,T1,na,na,na,na >
-    : bind1< F,T1 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, int dummy_
-    >
-struct bind2
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-
-     public:
-        typedef typename apply_wrap2<
-              f_
-            , typename t1::type, typename t2::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename U1, typename U2
-    , typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind2< F,T1,T2 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind2< F,T1,T2 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
-
-template<
-      typename F, typename T1, typename T2, int dummy_
-    >
-struct bind< F,T1,T2,na,na,na >
-    : bind2< F,T1,T2 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, int dummy_
-    >
-struct bind3
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-
-     public:
-        typedef typename apply_wrap3<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename U1
-    , typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind3< F,T1,T2,T3 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
-
-template<
-      typename F, typename T1, typename T2, typename T3, int dummy_
-    >
-struct bind< F,T1,T2,T3,na,na >
-    : bind3< F,T1,T2,T3 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , int dummy_
-    >
-struct bind4
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
-
-     public:
-        typedef typename apply_wrap4<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind4< F,T1,T2,T3,T4 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , int dummy_
-    >
-struct bind< F,T1,T2,T3,T4,na >
-    : bind4< F,T1,T2,T3,T4 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, int dummy_
-    >
-struct bind5
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
-        typedef aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 > t5;
-
-     public:
-        typedef typename apply_wrap5<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type, typename t5::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind5< F,T1,T2,T3,T4,T5 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
-
-/// primary template (not a specialization!)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, int dummy_
-    >
-struct bind
-    : bind5< F,T1,T2,T3,T4,T5 >
-{
-};
-
-/// if_/eval_if specializations
-template< template< typename T1, typename T2, typename T3 > class F, typename Tag >
-struct quote3;
-
-template< typename T1, typename T2, typename T3 > struct if_;
-
-template<
-      typename Tag, typename T1, typename T2, typename T3
-    >
-struct bind3<
-      quote3< if_,Tag >
-    , T1, T2, T3
-    >
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef mpl::arg<1> n1;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef typename if_<
-              typename t1::type
-            , t2, t3
-            >::type f_;
-
-     public:
-        typedef typename f_::type type;
-    };
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/dmc/bind.hpp b/boost/mpl/aux_/preprocessed/dmc/bind.hpp
deleted file mode 100644
index 94bfe1f..0000000
--- a/boost/mpl/aux_/preprocessed/dmc/bind.hpp
+++ /dev/null
@@ -1,515 +0,0 @@
-
-// Copyright Peter Dimov 2001
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/bind.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template<
-      typename T, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg
-{
-    typedef T type;
-};
-
-template<
-      typename T
-    , typename Arg
-    >
-struct replace_unnamed_arg
-{
-    typedef Arg next;
-    typedef T type;
-};
-
-template<
-      typename Arg
-    >
-struct replace_unnamed_arg< arg< -1 >, Arg >
-{
-    typedef typename Arg::next next;
-    typedef Arg type;
-};
-
-template<
-      int N, typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg< arg<N>, U1, U2, U3, U4, U5 >
-{
-    typedef typename apply_wrap5<mpl::arg<N>, U1, U2, U3, U4, U5>::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg< bind< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 >
-{
-    typedef bind< F,T1,T2,T3,T4,T5 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename F, int dummy_
-    >
-struct bind0
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-     public:
-        typedef typename apply_wrap0<
-              f_
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind0<F>, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind0<F> f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
-
-template<
-      typename F, int dummy_
-    >
-struct bind< F,na,na,na,na,na >
-    : bind0<F>
-{
-};
-
-template<
-      typename F, typename T1, int dummy_
-    >
-struct bind1
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-     public:
-        typedef typename apply_wrap1<
-              f_
-            , typename t1::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename U1, typename U2, typename U3
-    , typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind1< F,T1 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind1< F,T1 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
-
-template<
-      typename F, typename T1, int dummy_
-    >
-struct bind< F,T1,na,na,na,na >
-    : bind1< F,T1 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, int dummy_
-    >
-struct bind2
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-     public:
-        typedef typename apply_wrap2<
-              f_
-            , typename t1::type, typename t2::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename U1, typename U2
-    , typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind2< F,T1,T2 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind2< F,T1,T2 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
-
-template<
-      typename F, typename T1, typename T2, int dummy_
-    >
-struct bind< F,T1,T2,na,na,na >
-    : bind2< F,T1,T2 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, int dummy_
-    >
-struct bind3
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-     public:
-        typedef typename apply_wrap3<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename U1
-    , typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind3< F,T1,T2,T3 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
-
-template<
-      typename F, typename T1, typename T2, typename T3, int dummy_
-    >
-struct bind< F,T1,T2,T3,na,na >
-    : bind3< F,T1,T2,T3 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , int dummy_
-    >
-struct bind4
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef aux::replace_unnamed_arg< T4,n4 > r4;
-        typedef typename r4::type a4;
-        typedef typename r4::next n5;
-        typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
-        ///
-     public:
-        typedef typename apply_wrap4<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind4< F,T1,T2,T3,T4 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , int dummy_
-    >
-struct bind< F,T1,T2,T3,T4,na >
-    : bind4< F,T1,T2,T3,T4 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, int dummy_
-    >
-struct bind5
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef aux::replace_unnamed_arg< T4,n4 > r4;
-        typedef typename r4::type a4;
-        typedef typename r4::next n5;
-        typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
-        ///
-        typedef aux::replace_unnamed_arg< T5,n5 > r5;
-        typedef typename r5::type a5;
-        typedef typename r5::next n6;
-        typedef aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 > t5;
-        ///
-     public:
-        typedef typename apply_wrap5<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type, typename t5::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind5< F,T1,T2,T3,T4,T5 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
-
-/// primary template (not a specialization!)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, int dummy_
-    >
-struct bind
-    : bind5< F,T1,T2,T3,T4,T5 >
-{
-};
-
-/// if_/eval_if specializations
-template< template< typename T1, typename T2, typename T3 > class F, typename Tag >
-struct quote3;
-
-template< typename T1, typename T2, typename T3 > struct if_;
-
-template<
-      typename Tag, typename T1, typename T2, typename T3
-    >
-struct bind3<
-      quote3< if_,Tag >
-    , T1, T2, T3
-    >
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef mpl::arg<1> n1;
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef typename if_<
-              typename t1::type
-            , t2, t3
-            >::type f_;
-
-     public:
-        typedef typename f_::type type;
-    };
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/dmc/bind_fwd.hpp b/boost/mpl/aux_/preprocessed/dmc/bind_fwd.hpp
deleted file mode 100644
index 181bc77..0000000
--- a/boost/mpl/aux_/preprocessed/dmc/bind_fwd.hpp
+++ /dev/null
@@ -1,53 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/bind_fwd.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename F, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, int dummy_ = 0
-    >
-struct bind;
-
-template<
-      typename F, int dummy_ = 0
-    >
-struct bind0;
-
-template<
-      typename F, typename T1, int dummy_ = 0
-    >
-struct bind1;
-
-template<
-      typename F, typename T1, typename T2, int dummy_ = 0
-    >
-struct bind2;
-
-template<
-      typename F, typename T1, typename T2, typename T3, int dummy_ = 0
-    >
-struct bind3;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , int dummy_ = 0
-    >
-struct bind4;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, int dummy_ = 0
-    >
-struct bind5;
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/dmc/bitand.hpp b/boost/mpl/aux_/preprocessed/dmc/bitand.hpp
deleted file mode 100644
index 0bbf54e..0000000
--- a/boost/mpl/aux_/preprocessed/dmc/bitand.hpp
+++ /dev/null
@@ -1,147 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/bitand.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitand_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< bitand_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< bitand_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitand_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitand_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitand_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitand_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct bitand_
-    : bitand_< bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>, N5>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitand_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct bitand_< N1,N2,N3,N4,na >
-
-    : bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitand_
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct bitand_< N1,N2,N3,na,na >
-
-    : bitand_< bitand_< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitand_
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct bitand_< N1,N2,na,na,na >
-    : bitand_impl<
-          typename bitand_tag<N1>::type
-        , typename bitand_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitand_
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct bitand_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  & BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/dmc/bitor.hpp b/boost/mpl/aux_/preprocessed/dmc/bitor.hpp
deleted file mode 100644
index 55b31cb..0000000
--- a/boost/mpl/aux_/preprocessed/dmc/bitor.hpp
+++ /dev/null
@@ -1,147 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/bitor.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitor_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< bitor_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< bitor_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitor_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitor_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitor_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitor_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct bitor_
-    : bitor_< bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>, N5>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitor_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct bitor_< N1,N2,N3,N4,na >
-
-    : bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitor_
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct bitor_< N1,N2,N3,na,na >
-
-    : bitor_< bitor_< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitor_
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct bitor_< N1,N2,na,na,na >
-    : bitor_impl<
-          typename bitor_tag<N1>::type
-        , typename bitor_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitor_
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct bitor_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  | BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/dmc/bitxor.hpp b/boost/mpl/aux_/preprocessed/dmc/bitxor.hpp
deleted file mode 100644
index ec19391..0000000
--- a/boost/mpl/aux_/preprocessed/dmc/bitxor.hpp
+++ /dev/null
@@ -1,147 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/bitxor.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitxor_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< bitxor_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< bitxor_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitxor_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitxor_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitxor_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitxor_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct bitxor_
-    : bitxor_< bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>, N5>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitxor_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct bitxor_< N1,N2,N3,N4,na >
-
-    : bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitxor_
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct bitxor_< N1,N2,N3,na,na >
-
-    : bitxor_< bitxor_< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitxor_
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct bitxor_< N1,N2,na,na,na >
-    : bitxor_impl<
-          typename bitxor_tag<N1>::type
-        , typename bitxor_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitxor_
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct bitxor_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  ^ BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/dmc/deque.hpp b/boost/mpl/aux_/preprocessed/dmc/deque.hpp
deleted file mode 100644
index de67398..0000000
--- a/boost/mpl/aux_/preprocessed/dmc/deque.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/deque.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct deque;
-
-template<
-     
-    >
-struct deque<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector0<  >
-{
-    typedef vector0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct deque<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector1<T0>
-{
-    typedef typename vector1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct deque<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector2< T0,T1 >
-{
-    typedef typename vector2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct deque<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector3< T0,T1,T2 >
-{
-    typedef typename vector3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct deque<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector4< T0,T1,T2,T3 >
-{
-    typedef typename vector4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct deque<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector5< T0,T1,T2,T3,T4 >
-{
-    typedef typename vector5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : vector15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : vector16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : vector17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : vector18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : vector19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct deque
-    : vector20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/dmc/divides.hpp b/boost/mpl/aux_/preprocessed/dmc/divides.hpp
deleted file mode 100644
index 86f1682..0000000
--- a/boost/mpl/aux_/preprocessed/dmc/divides.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/divides.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct divides_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< divides_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< divides_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct divides_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct divides_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct divides_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct divides_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct divides
-    : divides< divides< divides< divides< N1,N2 >, N3>, N4>, N5>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , divides
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct divides< N1,N2,N3,N4,na >
-
-    : divides< divides< divides< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , divides
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct divides< N1,N2,N3,na,na >
-
-    : divides< divides< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , divides
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct divides< N1,N2,na,na,na >
-    : divides_impl<
-          typename divides_tag<N1>::type
-        , typename divides_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , divides
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, divides)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct divides_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  / BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/dmc/equal_to.hpp b/boost/mpl/aux_/preprocessed/dmc/equal_to.hpp
deleted file mode 100644
index 62c9945..0000000
--- a/boost/mpl/aux_/preprocessed/dmc/equal_to.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/equal_to.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct equal_to_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct equal_to_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct equal_to_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct equal_to_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct equal_to_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct equal_to
-
-    : equal_to_impl<
-          typename equal_to_tag<N1>::type
-        , typename equal_to_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct equal_to_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value  == BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/dmc/fold_impl.hpp b/boost/mpl/aux_/preprocessed/dmc/fold_impl.hpp
deleted file mode 100644
index 9e7a293..0000000
--- a/boost/mpl/aux_/preprocessed/dmc/fold_impl.hpp
+++ /dev/null
@@ -1,180 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl;
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 0,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef state0 state;
-    typedef iter0 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 1,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    
-
-    typedef state1 state;
-    typedef iter1 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 2,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    
-
-    typedef state2 state;
-    typedef iter2 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 3,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    
-
-    typedef state3 state;
-    typedef iter3 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 4,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp, state3, typename deref<iter3>::type >::type state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef state4 state;
-    typedef iter4 iterator;
-};
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl
-{
-    typedef fold_impl<
-          4
-        , First
-        , Last
-        , State
-        , ForwardOp
-        > chunk_;
-
-    typedef fold_impl<
-          ( (N - 4) < 0 ? 0 : N - 4 )
-        , typename chunk_::iterator
-        , Last
-        , typename chunk_::state
-        , ForwardOp
-        > res_;
-
-    typedef typename res_::state state;
-    typedef typename res_::iterator iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< -1,First,Last,State,ForwardOp >
-    : fold_impl<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State, typename deref<First>::type>::type
-        , ForwardOp
-        >
-{
-};
-
-template<
-      typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< -1,Last,Last,State,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/dmc/full_lambda.hpp b/boost/mpl/aux_/preprocessed/dmc/full_lambda.hpp
deleted file mode 100644
index 026418c..0000000
--- a/boost/mpl/aux_/preprocessed/dmc/full_lambda.hpp
+++ /dev/null
@@ -1,536 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/full_lambda.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template<
-      bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false
-    , bool C5 = false
-    >
-struct lambda_or
-    : true_
-{
-};
-
-template<>
-struct lambda_or< false,false,false,false,false >
-    : false_
-{
-};
-
-} // namespace aux
-
-template<
-      typename T
-    , typename Tag
-   
-    >
-struct lambda
-{
-    typedef false_ is_le;
-    typedef T result_;
-    typedef T type;
-};
-
-template<
-      typename T
-    >
-struct is_lambda_expression
-    : lambda<T>::is_le
-{
-};
-
-template< int N, typename Tag >
-struct lambda< arg<N>, Tag >
-{
-    typedef true_ is_le;
-    typedef mpl::arg<N> result_; // qualified for the sake of MIPSpro 7.41
-    typedef mpl::protect<result_> type;
-};
-
-template<
-      typename F
-    , typename Tag
-    >
-struct lambda<
-          bind0<F>
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind0<
-          F
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1 > class F
-    , typename L1
-    >
-struct le_result1
-{
-    typedef F<
-          typename L1::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1 > class F
-    , typename L1
-    >
-struct le_result1< true_,Tag,F,L1 >
-{
-    typedef bind1<
-          quote1< F,Tag >
-        , typename L1::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1 > class F
-    , typename T1
-    , typename Tag
-    >
-struct lambda<
-          F<T1>
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef typename l1::is_le is_le1;
-    typedef typename aux::lambda_or<
-          is_le1::value
-        >::type is_le;
-
-    typedef aux::le_result1<
-          is_le, Tag, F, l1
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1
-    , typename Tag
-    >
-struct lambda<
-          bind1< F,T1 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind1<
-          F
-        , T1
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2 > class F
-    , typename L1, typename L2
-    >
-struct le_result2
-{
-    typedef F<
-          typename L1::type, typename L2::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2 > class F
-    , typename L1, typename L2
-    >
-struct le_result2< true_,Tag,F,L1,L2 >
-{
-    typedef bind2<
-          quote2< F,Tag >
-        , typename L1::result_, typename L2::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2 > class F
-    , typename T1, typename T2
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value
-        >::type is_le;
-
-    typedef aux::le_result2<
-          is_le, Tag, F, l1, l2
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    , typename Tag
-    >
-struct lambda<
-          bind2< F,T1,T2 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind2<
-          F
-        , T1, T2
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3 > class F
-    , typename L1, typename L2, typename L3
-    >
-struct le_result3
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3 > class F
-    , typename L1, typename L2, typename L3
-    >
-struct le_result3< true_,Tag,F,L1,L2,L3 >
-{
-    typedef bind3<
-          quote3< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2, typename P3 > class F
-    , typename T1, typename T2, typename T3
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value
-        >::type is_le;
-
-    typedef aux::le_result3<
-          is_le, Tag, F, l1, l2, l3
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    , typename Tag
-    >
-struct lambda<
-          bind3< F,T1,T2,T3 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind3<
-          F
-        , T1, T2, T3
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename L1, typename L2, typename L3, typename L4
-    >
-struct le_result4
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        , typename L4::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename L1, typename L2, typename L3, typename L4
-    >
-struct le_result4< true_,Tag,F,L1,L2,L3,L4 >
-{
-    typedef bind4<
-          quote4< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        , typename L4::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename T1, typename T2, typename T3, typename T4
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3,T4 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    typedef lambda< T4,Tag > l4;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    typedef typename l4::is_le is_le4;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value, is_le4::value
-        >::type is_le;
-
-    typedef aux::le_result4<
-          is_le, Tag, F, l1, l2, l3, l4
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename Tag
-    >
-struct lambda<
-          bind4< F,T1,T2,T3,T4 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind4<
-          F
-        , T1, T2, T3, T4
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
-    , typename L1, typename L2, typename L3, typename L4, typename L5
-    >
-struct le_result5
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        , typename L4::type, typename L5::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
-    , typename L1, typename L2, typename L3, typename L4, typename L5
-    >
-struct le_result5< true_,Tag,F,L1,L2,L3,L4,L5 >
-{
-    typedef bind5<
-          quote5< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        , typename L4::result_, typename L5::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template<
-          typename P1, typename P2, typename P3, typename P4
-        , typename P5
-        >
-      class F
-    , typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3,T4,T5 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    typedef lambda< T4,Tag > l4;
-    typedef lambda< T5,Tag > l5;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    typedef typename l4::is_le is_le4;
-    typedef typename l5::is_le is_le5;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value, is_le4::value
-        , is_le5::value
-        >::type is_le;
-
-    typedef aux::le_result5<
-          is_le, Tag, F, l1, l2, l3, l4, l5
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    , typename Tag
-    >
-struct lambda<
-          bind5< F,T1,T2,T3,T4,T5 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind5<
-          F
-        , T1, T2, T3, T4, T5
-        > result_;
-
-    typedef result_ type;
-};
-
-/// special case for 'protect'
-template< typename T, typename Tag >
-struct lambda< mpl::protect<T>, Tag >
-{
-    typedef false_ is_le;
-    typedef mpl::protect<T> result_;
-    typedef result_ type;
-};
-
-/// specializations for the main 'bind' form
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    , typename Tag
-    >
-struct lambda<
-          bind< F,T1,T2,T3,T4,T5 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind< F,T1,T2,T3,T4,T5 > result_;
-    typedef result_ type;
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, lambda)
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/dmc/greater.hpp b/boost/mpl/aux_/preprocessed/dmc/greater.hpp
deleted file mode 100644
index 14d8e08..0000000
--- a/boost/mpl/aux_/preprocessed/dmc/greater.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/greater.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct greater_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< greater_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< greater_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct greater_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct greater_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct greater
-
-    : greater_impl<
-          typename greater_tag<N1>::type
-        , typename greater_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, greater)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct greater_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value > BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/dmc/greater_equal.hpp b/boost/mpl/aux_/preprocessed/dmc/greater_equal.hpp
deleted file mode 100644
index 2603f91..0000000
--- a/boost/mpl/aux_/preprocessed/dmc/greater_equal.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/greater_equal.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct greater_equal_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< greater_equal_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct greater_equal_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_equal_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_equal_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct greater_equal_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct greater_equal
-
-    : greater_equal_impl<
-          typename greater_equal_tag<N1>::type
-        , typename greater_equal_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct greater_equal_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/dmc/inherit.hpp b/boost/mpl/aux_/preprocessed/dmc/inherit.hpp
deleted file mode 100644
index 00f31c4..0000000
--- a/boost/mpl/aux_/preprocessed/dmc/inherit.hpp
+++ /dev/null
@@ -1,141 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/inherit.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
-    >
-struct inherit2
-    : T1, T2
-{
-    typedef inherit2 type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2))
-};
-
-template< typename T1 >
-struct inherit2< T1,empty_base >
-{
-    typedef T1 type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (T1, empty_base))
-};
-
-template< typename T2 >
-struct inherit2< empty_base,T2 >
-{
-    typedef T2 type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, T2))
-};
-
-template<>
-struct inherit2< empty_base,empty_base >
-{
-    typedef empty_base type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, empty_base))
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, inherit2)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na
-    >
-struct inherit3
-    : inherit2<
-          typename inherit2<
-              T1, T2
-            >::type
-        , T3
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          3
-        , inherit3
-        , ( T1, T2, T3)
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC(3, inherit3)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
-    >
-struct inherit4
-    : inherit2<
-          typename inherit3<
-              T1, T2, T3
-            >::type
-        , T4
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          4
-        , inherit4
-        , ( T1, T2, T3, T4)
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC(4, inherit4)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
-    , typename T5 = na
-    >
-struct inherit5
-    : inherit2<
-          typename inherit4<
-              T1, T2, T3, T4
-            >::type
-        , T5
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , inherit5
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC(5, inherit5)
-
-/// primary template
-
-template<
-      typename T1 = empty_base, typename T2 = empty_base
-    , typename T3 = empty_base, typename T4 = empty_base
-    , typename T5 = empty_base
-    >
-struct inherit
-    : inherit5< T1,T2,T3,T4,T5 >
-{
-};
-
-template<>
-struct inherit< na,na,na,na,na >
-{
-    template<
-
-          typename T1 = empty_base, typename T2 = empty_base
-        , typename T3 = empty_base, typename T4 = empty_base
-        , typename T5 = empty_base
-
-        >
-    struct apply
-        : inherit< T1,T2,T3,T4,T5 >
-    {
-    };
-};
-
-BOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit)
-BOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit)
-BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit)
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/dmc/iter_fold_if_impl.hpp b/boost/mpl/aux_/preprocessed/dmc/iter_fold_if_impl.hpp
deleted file mode 100644
index 6951795..0000000
--- a/boost/mpl/aux_/preprocessed/dmc/iter_fold_if_impl.hpp
+++ /dev/null
@@ -1,133 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright David Abrahams 2001-2002
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/iter_fold_if_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-template< typename Iterator, typename State >
-struct iter_fold_if_null_step
-{
-    typedef State state;
-    typedef Iterator iterator;
-};
-
-template< bool >
-struct iter_fold_if_step_impl
-{
-    template<
-          typename Iterator
-        , typename State
-        , typename StateOp
-        , typename IteratorOp
-        >
-    struct result_
-    {
-        typedef typename apply2< StateOp,State,Iterator >::type state;
-        typedef typename IteratorOp::type iterator;
-    };
-};
-
-template<>
-struct iter_fold_if_step_impl<false>
-{
-    template<
-          typename Iterator
-        , typename State
-        , typename StateOp
-        , typename IteratorOp
-        >
-    struct result_
-    {
-        typedef State state;
-        typedef Iterator iterator;
-    };
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename ForwardOp
-    , typename Predicate
-    >
-struct iter_fold_if_forward_step
-{
-    typedef typename apply2< Predicate,State,Iterator >::type not_last;
-    typedef typename iter_fold_if_step_impl<
-          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
-        >::template result_< Iterator,State,ForwardOp, mpl::next<Iterator> > impl_;
-
-    typedef typename impl_::state state;
-    typedef typename impl_::iterator iterator;
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename BackwardOp
-    , typename Predicate
-    >
-struct iter_fold_if_backward_step
-{
-    typedef typename apply2< Predicate,State,Iterator >::type not_last;
-    typedef typename iter_fold_if_step_impl<
-          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
-        >::template result_< Iterator,State,BackwardOp, identity<Iterator> > impl_;
-
-    typedef typename impl_::state state;
-    typedef typename impl_::iterator iterator;
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename ForwardOp
-    , typename ForwardPredicate
-    , typename BackwardOp
-    , typename BackwardPredicate
-    >
-struct iter_fold_if_impl
-{
- private:
-    typedef iter_fold_if_null_step< Iterator,State > forward_step0;
-    typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1;
-    typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2;
-    typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3;
-    typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4;
-    
-
-    typedef typename if_<
-          typename forward_step4::not_last
-        , iter_fold_if_impl<
-              typename forward_step4::iterator
-            , typename forward_step4::state
-            , ForwardOp
-            , ForwardPredicate
-            , BackwardOp
-            , BackwardPredicate
-            >
-        , iter_fold_if_null_step<
-              typename forward_step4::iterator
-            , typename forward_step4::state
-            >
-        >::type backward_step4;
-
-    typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3;
-    typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2;
-    typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1;
-    typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0;
-    
-
- public:
-    typedef typename backward_step0::state state;
-    typedef typename backward_step4::iterator iterator;
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/dmc/iter_fold_impl.hpp b/boost/mpl/aux_/preprocessed/dmc/iter_fold_impl.hpp
deleted file mode 100644
index 805790e..0000000
--- a/boost/mpl/aux_/preprocessed/dmc/iter_fold_impl.hpp
+++ /dev/null
@@ -1,180 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/iter_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl;
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 0,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef state0 state;
-    typedef iter0 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 1,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    
-
-    typedef state1 state;
-    typedef iter1 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 2,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    
-
-    typedef state2 state;
-    typedef iter2 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 3,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,state2,iter2 >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    
-
-    typedef state3 state;
-    typedef iter3 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 4,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,state2,iter2 >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp,state3,iter3 >::type state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef state4 state;
-    typedef iter4 iterator;
-};
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl
-{
-    typedef iter_fold_impl<
-          4
-        , First
-        , Last
-        , State
-        , ForwardOp
-        > chunk_;
-
-    typedef iter_fold_impl<
-          ( (N - 4) < 0 ? 0 : N - 4 )
-        , typename chunk_::iterator
-        , Last
-        , typename chunk_::state
-        , ForwardOp
-        > res_;
-
-    typedef typename res_::state state;
-    typedef typename res_::iterator iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< -1,First,Last,State,ForwardOp >
-    : iter_fold_impl<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2< ForwardOp,State,First >::type
-        , ForwardOp
-        >
-{
-};
-
-template<
-      typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< -1,Last,Last,State,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/dmc/lambda_no_ctps.hpp b/boost/mpl/aux_/preprocessed/dmc/lambda_no_ctps.hpp
deleted file mode 100644
index 890a198..0000000
--- a/boost/mpl/aux_/preprocessed/dmc/lambda_no_ctps.hpp
+++ /dev/null
@@ -1,229 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/lambda_no_ctps.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template<
-      bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false
-    , bool C5 = false
-    >
-struct lambda_or
-    : true_
-{
-};
-
-template<>
-struct lambda_or< false,false,false,false,false >
-    : false_
-{
-};
-
-template< typename Arity > struct lambda_impl
-{
-    template< typename T, typename Tag, typename Protect > struct result_
-    {
-        typedef T type;
-        typedef is_placeholder<T> is_le;
-    };
-};
-
-template<> struct lambda_impl< int_<1> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef typename l1::is_le is_le1;
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value
-            > is_le;
-
-        typedef bind1<
-              typename F::rebind
-            , typename l1::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<2> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        
-
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value
-            > is_le;
-
-        typedef bind2<
-              typename F::rebind
-            , typename l1::type, typename l2::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<3> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        
-
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value
-            > is_le;
-
-        typedef bind3<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<4> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        typedef lambda< typename F::arg4, Tag, false_ > l4;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        typedef typename l4::is_le is_le4;
-        
-
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value
-            > is_le;
-
-        typedef bind4<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            , typename l4::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<5> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        typedef lambda< typename F::arg4, Tag, false_ > l4;
-        typedef lambda< typename F::arg5, Tag, false_ > l5;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        typedef typename l4::is_le is_le4;
-        typedef typename l5::is_le is_le5;
-        
-
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value
-            > is_le;
-
-        typedef bind5<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            , typename l4::type, typename l5::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename T
-    , typename Tag
-    , typename Protect
-    >
-struct lambda
-{
-    /// Metafunction forwarding confuses MSVC 6.x
-    typedef typename aux::template_arity<T>::type arity_;
-    typedef typename aux::lambda_impl<arity_>
-        ::template result_< T,Tag,Protect > l_;
-
-    typedef typename l_::type type;
-    typedef typename l_::is_le is_le;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect))
-};
-
-BOOST_MPL_AUX_NA_SPEC2(1, 3, lambda)
-
-template<
-      typename T
-    >
-struct is_lambda_expression
-    : lambda<T>::is_le
-{
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/dmc/less.hpp b/boost/mpl/aux_/preprocessed/dmc/less.hpp
deleted file mode 100644
index 4fe3cd1..0000000
--- a/boost/mpl/aux_/preprocessed/dmc/less.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/less.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct less_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< less_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< less_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct less_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct less_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct less
-
-    : less_impl<
-          typename less_tag<N1>::type
-        , typename less_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, less)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct less_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > BOOST_MPL_AUX_VALUE_WKND(N1)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/dmc/less_equal.hpp b/boost/mpl/aux_/preprocessed/dmc/less_equal.hpp
deleted file mode 100644
index ca2894f..0000000
--- a/boost/mpl/aux_/preprocessed/dmc/less_equal.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/less_equal.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct less_equal_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< less_equal_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< less_equal_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct less_equal_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_equal_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_equal_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct less_equal_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct less_equal
-
-    : less_equal_impl<
-          typename less_equal_tag<N1>::type
-        , typename less_equal_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct less_equal_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/dmc/list.hpp b/boost/mpl/aux_/preprocessed/dmc/list.hpp
deleted file mode 100644
index 4e8ad53..0000000
--- a/boost/mpl/aux_/preprocessed/dmc/list.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/list.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct list;
-
-template<
-     
-    >
-struct list<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list0<  >
-{
-    typedef list0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct list<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list1<T0>
-{
-    typedef typename list1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct list<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list2< T0,T1 >
-{
-    typedef typename list2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct list<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list3< T0,T1,T2 >
-{
-    typedef typename list3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct list<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list4< T0,T1,T2,T3 >
-{
-    typedef typename list4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct list<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list5< T0,T1,T2,T3,T4 >
-{
-    typedef typename list5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename list6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename list7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename list8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : list15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename list15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : list16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename list16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : list17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename list17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : list18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename list18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : list19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename list19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct list
-    : list20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename list20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/dmc/list_c.hpp b/boost/mpl/aux_/preprocessed/dmc/list_c.hpp
deleted file mode 100644
index 0b48a7f..0000000
--- a/boost/mpl/aux_/preprocessed/dmc/list_c.hpp
+++ /dev/null
@@ -1,328 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/list_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct list_c;
-
-template<
-      typename T
-    >
-struct list_c<
-          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list0_c<T>
-{
-    typedef typename list0_c<T>::type type;
-};
-
-template<
-      typename T, long C0
-    >
-struct list_c<
-          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list1_c< T,C0 >
-{
-    typedef typename list1_c< T,C0 >::type type;
-};
-
-template<
-      typename T, long C0, long C1
-    >
-struct list_c<
-          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list2_c< T,C0,C1 >
-{
-    typedef typename list2_c< T,C0,C1 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2
-    >
-struct list_c<
-          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list3_c< T,C0,C1,C2 >
-{
-    typedef typename list3_c< T,C0,C1,C2 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3
-    >
-struct list_c<
-          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list4_c< T,C0,C1,C2,C3 >
-{
-    typedef typename list4_c< T,C0,C1,C2,C3 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list5_c< T,C0,C1,C2,C3,C4 >
-{
-    typedef typename list5_c< T,C0,C1,C2,C3,C4 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list6_c< T,C0,C1,C2,C3,C4,C5 >
-{
-    typedef typename list6_c< T,C0,C1,C2,C3,C4,C5 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list7_c< T,C0,C1,C2,C3,C4,C5,C6 >
-{
-    typedef typename list7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX
-        >
-    : list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >
-{
-    typedef typename list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >
-{
-    typedef typename list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >
-{
-    typedef typename list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >
-{
-    typedef typename list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >
-{
-    typedef typename list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >
-{
-    typedef typename list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list14_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        >
-{
-    typedef typename list14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list15_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        >
-{
-    typedef typename list15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list16_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15
-        >
-{
-    typedef typename list16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list17_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16
-        >
-{
-    typedef typename list17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, LONG_MAX, LONG_MAX
-        >
-    : list18_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17
-        >
-{
-    typedef typename list18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, LONG_MAX
-        >
-    : list19_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18
-        >
-{
-    typedef typename list19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct list_c
-    : list20_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, C19
-        >
-{
-    typedef typename list20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/dmc/map.hpp b/boost/mpl/aux_/preprocessed/dmc/map.hpp
deleted file mode 100644
index 837e013..0000000
--- a/boost/mpl/aux_/preprocessed/dmc/map.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/map.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct map;
-
-template<
-     
-    >
-struct map<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map0<  >
-{
-    typedef map0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct map<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map1<T0>
-{
-    typedef typename map1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct map<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map2< T0,T1 >
-{
-    typedef typename map2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct map<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map3< T0,T1,T2 >
-{
-    typedef typename map3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct map<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map4< T0,T1,T2,T3 >
-{
-    typedef typename map4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct map<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map5< T0,T1,T2,T3,T4 >
-{
-    typedef typename map5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename map6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename map7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename map8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : map15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename map15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : map16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename map16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : map17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename map17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : map18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename map18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : map19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename map19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct map
-    : map20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename map20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/dmc/minus.hpp b/boost/mpl/aux_/preprocessed/dmc/minus.hpp
deleted file mode 100644
index 71d4913..0000000
--- a/boost/mpl/aux_/preprocessed/dmc/minus.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/minus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct minus_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< minus_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< minus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct minus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct minus_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct minus_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct minus_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct minus
-    : minus< minus< minus< minus< N1,N2 >, N3>, N4>, N5>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , minus
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct minus< N1,N2,N3,N4,na >
-
-    : minus< minus< minus< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , minus
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct minus< N1,N2,N3,na,na >
-
-    : minus< minus< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , minus
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct minus< N1,N2,na,na,na >
-    : minus_impl<
-          typename minus_tag<N1>::type
-        , typename minus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , minus
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, minus)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct minus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  - BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/dmc/modulus.hpp b/boost/mpl/aux_/preprocessed/dmc/modulus.hpp
deleted file mode 100644
index 224b349..0000000
--- a/boost/mpl/aux_/preprocessed/dmc/modulus.hpp
+++ /dev/null
@@ -1,101 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/modulus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct modulus_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< modulus_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< modulus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct modulus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct modulus_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct modulus_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct modulus_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct modulus
-
-    : modulus_impl<
-          typename modulus_tag<N1>::type
-        , typename modulus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, modulus)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct modulus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  % BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/dmc/not_equal_to.hpp b/boost/mpl/aux_/preprocessed/dmc/not_equal_to.hpp
deleted file mode 100644
index 98b21b1..0000000
--- a/boost/mpl/aux_/preprocessed/dmc/not_equal_to.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/not_equal_to.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct not_equal_to_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< not_equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct not_equal_to_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct not_equal_to_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct not_equal_to_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct not_equal_to_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct not_equal_to
-
-    : not_equal_to_impl<
-          typename not_equal_to_tag<N1>::type
-        , typename not_equal_to_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct not_equal_to_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value != BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/dmc/or.hpp b/boost/mpl/aux_/preprocessed/dmc/or.hpp
deleted file mode 100644
index 31e1aaa..0000000
--- a/boost/mpl/aux_/preprocessed/dmc/or.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/or.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template< bool C_, typename T1, typename T2, typename T3, typename T4 >
-struct or_impl
-    : true_
-{
-};
-
-template< typename T1, typename T2, typename T3, typename T4 >
-struct or_impl< false,T1,T2,T3,T4 >
-    : or_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4
-        , false_
-        >
-{
-};
-
-template<>
-struct or_impl<
-          false
-        , false_, false_, false_, false_
-        >
-    : false_
-{
-};
-
-} // namespace aux
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
-    , typename T3 = false_, typename T4 = false_, typename T5 = false_
-    >
-struct or_
-
-    : aux::or_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4, T5
-        >
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , or_
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC2(
-      2
-    , 5
-    , or_
-    )
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/dmc/placeholders.hpp b/boost/mpl/aux_/preprocessed/dmc/placeholders.hpp
deleted file mode 100644
index ff97364..0000000
--- a/boost/mpl/aux_/preprocessed/dmc/placeholders.hpp
+++ /dev/null
@@ -1,105 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright Peter Dimov 2001-2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/placeholders.hpp" header
-// -- DO NOT modify by hand!
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg< -1 > _;
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;
-}
-
-}}
-
-/// agurt, 17/mar/02: one more placeholder for the last 'apply#' 
-/// specialization
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<1> _1;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<2> _2;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<3> _3;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<4> _4;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<5> _5;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<6> _6;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6;
-}
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/dmc/plus.hpp b/boost/mpl/aux_/preprocessed/dmc/plus.hpp
deleted file mode 100644
index a9f6ee7..0000000
--- a/boost/mpl/aux_/preprocessed/dmc/plus.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/plus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct plus_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< plus_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< plus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct plus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct plus_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct plus_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct plus_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct plus
-    : plus< plus< plus< plus< N1,N2 >, N3>, N4>, N5>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , plus
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct plus< N1,N2,N3,N4,na >
-
-    : plus< plus< plus< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , plus
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct plus< N1,N2,N3,na,na >
-
-    : plus< plus< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , plus
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct plus< N1,N2,na,na,na >
-    : plus_impl<
-          typename plus_tag<N1>::type
-        , typename plus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , plus
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, plus)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct plus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  + BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/dmc/quote.hpp b/boost/mpl/aux_/preprocessed/dmc/quote.hpp
deleted file mode 100644
index d7d0420..0000000
--- a/boost/mpl/aux_/preprocessed/dmc/quote.hpp
+++ /dev/null
@@ -1,123 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/quote.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template< typename T, bool has_type_ >
-struct quote_impl
-    : T
-{
-};
-
-template< typename T >
-struct quote_impl< T,false >
-{
-    typedef T type;
-};
-
-template<
-      template< typename P1 > class F
-    , typename Tag = void_
-    >
-struct quote1
-{
-    template< typename U1 > struct apply
-
-        : quote_impl<
-              F<U1>
-            , aux::has_type< F<U1> >::value
-            >
-
-    {
-    };
-};
-
-template<
-      template< typename P1, typename P2 > class F
-    , typename Tag = void_
-    >
-struct quote2
-{
-    template< typename U1, typename U2 > struct apply
-
-        : quote_impl<
-              F< U1,U2 >
-            , aux::has_type< F< U1,U2 > >::value
-            >
-
-    {
-    };
-};
-
-template<
-      template< typename P1, typename P2, typename P3 > class F
-    , typename Tag = void_
-    >
-struct quote3
-{
-    template< typename U1, typename U2, typename U3 > struct apply
-
-        : quote_impl<
-              F< U1,U2,U3 >
-            , aux::has_type< F< U1,U2,U3 > >::value
-            >
-
-    {
-    };
-};
-
-template<
-      template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename Tag = void_
-    >
-struct quote4
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4
-        >
-    struct apply
-
-        : quote_impl<
-              F< U1,U2,U3,U4 >
-            , aux::has_type< F< U1,U2,U3,U4 > >::value
-            >
-
-    {
-    };
-};
-
-template<
-      template<
-          typename P1, typename P2, typename P3, typename P4
-        , typename P5
-        >
-      class F
-    , typename Tag = void_
-    >
-struct quote5
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4
-        , typename U5
-        >
-    struct apply
-
-        : quote_impl<
-              F< U1,U2,U3,U4,U5 >
-            , aux::has_type< F< U1,U2,U3,U4,U5 > >::value
-            >
-
-    {
-    };
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/dmc/reverse_fold_impl.hpp b/boost/mpl/aux_/preprocessed/dmc/reverse_fold_impl.hpp
deleted file mode 100644
index c468684..0000000
--- a/boost/mpl/aux_/preprocessed/dmc/reverse_fold_impl.hpp
+++ /dev/null
@@ -1,231 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/reverse_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl;
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< 0,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef fwd_state0 bkwd_state0;
-    typedef bkwd_state0 state;
-    typedef iter0 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< 1,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    
-
-    typedef fwd_state1 bkwd_state1;
-    typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-    typedef bkwd_state0 state;
-    typedef iter1 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< 2,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    
-
-    typedef fwd_state2 bkwd_state2;
-    typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-    typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter2 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< 3,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    
-
-    typedef fwd_state3 bkwd_state3;
-    typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-    typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-    typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter3 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< 4,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef fwd_state4 bkwd_state4;
-    typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3;
-    typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-    typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-    typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter4 iterator;
-};
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef reverse_fold_impl<
-          ( (N - 4) < 0 ? 0 : N - 4 )
-        , iter4
-        , Last
-        , fwd_state4
-        , BackwardOp
-        , ForwardOp
-        > nested_chunk;
-
-    typedef typename nested_chunk::state bkwd_state4;
-    typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3;
-    typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-    typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-    typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef typename nested_chunk::iterator iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< -1,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef reverse_fold_impl<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State, typename deref<First>::type>::type
-        , BackwardOp
-        , ForwardOp
-        > nested_step;
-
-    typedef typename apply2<
-          BackwardOp
-        , typename nested_step::state
-        , typename deref<First>::type
-        >::type state;
-
-    typedef typename nested_step::iterator iterator;
-};
-
-template<
-      typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< -1,Last,Last,State,BackwardOp,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/dmc/reverse_iter_fold_impl.hpp b/boost/mpl/aux_/preprocessed/dmc/reverse_iter_fold_impl.hpp
deleted file mode 100644
index 658f92a..0000000
--- a/boost/mpl/aux_/preprocessed/dmc/reverse_iter_fold_impl.hpp
+++ /dev/null
@@ -1,231 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/reverse_iter_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl;
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< 0,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef fwd_state0 bkwd_state0;
-    typedef bkwd_state0 state;
-    typedef iter0 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< 1,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    
-
-    typedef fwd_state1 bkwd_state1;
-    typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-    typedef bkwd_state0 state;
-    typedef iter1 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< 2,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    
-
-    typedef fwd_state2 bkwd_state2;
-    typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-    typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter2 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< 3,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    
-
-    typedef fwd_state3 bkwd_state3;
-    typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-    typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-    typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter3 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< 4,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef fwd_state4 bkwd_state4;
-    typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3;
-    typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-    typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-    typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter4 iterator;
-};
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef reverse_iter_fold_impl<
-          ( (N - 4) < 0 ? 0 : N - 4 )
-        , iter4
-        , Last
-        , fwd_state4
-        , BackwardOp
-        , ForwardOp
-        > nested_chunk;
-
-    typedef typename nested_chunk::state bkwd_state4;
-    typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3;
-    typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-    typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-    typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef typename nested_chunk::iterator iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< -1,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef reverse_iter_fold_impl<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2< ForwardOp,State,First >::type
-        , BackwardOp
-        , ForwardOp
-        > nested_step;
-
-    typedef typename apply2<
-          BackwardOp
-        , typename nested_step::state
-        , First
-        >::type state;
-
-    typedef typename nested_step::iterator iterator;
-};
-
-template<
-      typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< -1,Last,Last,State,BackwardOp,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/dmc/set.hpp b/boost/mpl/aux_/preprocessed/dmc/set.hpp
deleted file mode 100644
index 5721922..0000000
--- a/boost/mpl/aux_/preprocessed/dmc/set.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/set.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct set;
-
-template<
-     
-    >
-struct set<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set0<  >
-{
-    typedef set0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct set<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set1<T0>
-{
-    typedef typename set1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct set<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set2< T0,T1 >
-{
-    typedef typename set2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct set<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set3< T0,T1,T2 >
-{
-    typedef typename set3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct set<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set4< T0,T1,T2,T3 >
-{
-    typedef typename set4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct set<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set5< T0,T1,T2,T3,T4 >
-{
-    typedef typename set5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename set6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename set7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename set8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : set15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename set15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : set16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename set16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : set17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename set17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : set18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename set18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : set19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename set19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct set
-    : set20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename set20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/dmc/set_c.hpp b/boost/mpl/aux_/preprocessed/dmc/set_c.hpp
deleted file mode 100644
index cbeb932..0000000
--- a/boost/mpl/aux_/preprocessed/dmc/set_c.hpp
+++ /dev/null
@@ -1,328 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/set_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct set_c;
-
-template<
-      typename T
-    >
-struct set_c<
-          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set0_c<T>
-{
-    typedef typename set0_c<T>::type type;
-};
-
-template<
-      typename T, long C0
-    >
-struct set_c<
-          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set1_c< T,C0 >
-{
-    typedef typename set1_c< T,C0 >::type type;
-};
-
-template<
-      typename T, long C0, long C1
-    >
-struct set_c<
-          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set2_c< T,C0,C1 >
-{
-    typedef typename set2_c< T,C0,C1 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2
-    >
-struct set_c<
-          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set3_c< T,C0,C1,C2 >
-{
-    typedef typename set3_c< T,C0,C1,C2 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3
-    >
-struct set_c<
-          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set4_c< T,C0,C1,C2,C3 >
-{
-    typedef typename set4_c< T,C0,C1,C2,C3 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set5_c< T,C0,C1,C2,C3,C4 >
-{
-    typedef typename set5_c< T,C0,C1,C2,C3,C4 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set6_c< T,C0,C1,C2,C3,C4,C5 >
-{
-    typedef typename set6_c< T,C0,C1,C2,C3,C4,C5 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set7_c< T,C0,C1,C2,C3,C4,C5,C6 >
-{
-    typedef typename set7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX
-        >
-    : set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >
-{
-    typedef typename set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >
-{
-    typedef typename set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >
-{
-    typedef typename set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >
-{
-    typedef typename set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >
-{
-    typedef typename set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >
-{
-    typedef typename set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set14_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        >
-{
-    typedef typename set14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set15_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        >
-{
-    typedef typename set15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set16_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15
-        >
-{
-    typedef typename set16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set17_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16
-        >
-{
-    typedef typename set17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, LONG_MAX, LONG_MAX
-        >
-    : set18_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17
-        >
-{
-    typedef typename set18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, LONG_MAX
-        >
-    : set19_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18
-        >
-{
-    typedef typename set19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct set_c
-    : set20_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, C19
-        >
-{
-    typedef typename set20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/dmc/shift_left.hpp b/boost/mpl/aux_/preprocessed/dmc/shift_left.hpp
deleted file mode 100644
index b5b181c..0000000
--- a/boost/mpl/aux_/preprocessed/dmc/shift_left.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/shift_left.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct shift_left_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< shift_left_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< shift_left_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct shift_left_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_left_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_left_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct shift_left_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct shift_left
-
-    : shift_left_impl<
-          typename shift_left_tag<N1>::type
-        , typename shift_left_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct shift_left_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N, typename S > struct apply
-
-        : integral_c<
-              typename N::value_type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N)::value
-                  << BOOST_MPL_AUX_VALUE_WKND(S)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/dmc/shift_right.hpp b/boost/mpl/aux_/preprocessed/dmc/shift_right.hpp
deleted file mode 100644
index f7a342e..0000000
--- a/boost/mpl/aux_/preprocessed/dmc/shift_right.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/shift_right.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct shift_right_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< shift_right_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< shift_right_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct shift_right_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_right_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_right_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct shift_right_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct shift_right
-
-    : shift_right_impl<
-          typename shift_right_tag<N1>::type
-        , typename shift_right_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct shift_right_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N, typename S > struct apply
-
-        : integral_c<
-              typename N::value_type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N)::value
-                  >> BOOST_MPL_AUX_VALUE_WKND(S)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/dmc/template_arity.hpp b/boost/mpl/aux_/preprocessed/dmc/template_arity.hpp
deleted file mode 100644
index a23fc23..0000000
--- a/boost/mpl/aux_/preprocessed/dmc/template_arity.hpp
+++ /dev/null
@@ -1,11 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/template_arity.hpp" header
-// -- DO NOT modify by hand!
-
diff --git a/boost/mpl/aux_/preprocessed/dmc/times.hpp b/boost/mpl/aux_/preprocessed/dmc/times.hpp
deleted file mode 100644
index cb97cc4..0000000
--- a/boost/mpl/aux_/preprocessed/dmc/times.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/times.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct times_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< times_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< times_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct times_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct times_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct times_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct times_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct times
-    : times< times< times< times< N1,N2 >, N3>, N4>, N5>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , times
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct times< N1,N2,N3,N4,na >
-
-    : times< times< times< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , times
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct times< N1,N2,N3,na,na >
-
-    : times< times< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , times
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct times< N1,N2,na,na,na >
-    : times_impl<
-          typename times_tag<N1>::type
-        , typename times_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , times
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, times)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct times_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  * BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/dmc/unpack_args.hpp b/boost/mpl/aux_/preprocessed/dmc/unpack_args.hpp
deleted file mode 100644
index 2194ce9..0000000
--- a/boost/mpl/aux_/preprocessed/dmc/unpack_args.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/unpack_args.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template< int size, typename F, typename Args >
-struct unpack_args_impl;
-
-template< typename F, typename Args >
-struct unpack_args_impl< 0,F,Args >
-    : apply0<
-          F
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 1,F,Args >
-    : apply1<
-          F
-        , typename at_c< Args,0 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 2,F,Args >
-    : apply2<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 3,F,Args >
-    : apply3<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        , typename at_c< Args,2 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 4,F,Args >
-    : apply4<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 5,F,Args >
-    : apply5<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
-        , typename at_c< Args,4 >::type
-        >
-{
-};
-
-}
-
-template<
-      typename F
-    >
-struct unpack_args
-{
-    template< typename Args > struct apply
-
-        : aux::unpack_args_impl< size<Args>::value,F, Args >
-
-    {
-    };
-};
-
-BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/dmc/vector.hpp b/boost/mpl/aux_/preprocessed/dmc/vector.hpp
deleted file mode 100644
index bfa9565..0000000
--- a/boost/mpl/aux_/preprocessed/dmc/vector.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/vector.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct vector;
-
-template<
-     
-    >
-struct vector<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector0<  >
-{
-    typedef vector0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct vector<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector1<T0>
-{
-    typedef typename vector1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct vector<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector2< T0,T1 >
-{
-    typedef typename vector2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct vector<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector3< T0,T1,T2 >
-{
-    typedef typename vector3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct vector<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector4< T0,T1,T2,T3 >
-{
-    typedef typename vector4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct vector<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector5< T0,T1,T2,T3,T4 >
-{
-    typedef typename vector5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : vector15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : vector16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : vector17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : vector18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : vector19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct vector
-    : vector20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/dmc/vector_c.hpp b/boost/mpl/aux_/preprocessed/dmc/vector_c.hpp
deleted file mode 100644
index 0f1560d..0000000
--- a/boost/mpl/aux_/preprocessed/dmc/vector_c.hpp
+++ /dev/null
@@ -1,309 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/vector_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct vector_c;
-
-template<
-      typename T
-    >
-struct vector_c<
-          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector0_c<T>
-{
-    typedef typename vector0_c<T>::type type;
-};
-
-template<
-      typename T, long C0
-    >
-struct vector_c<
-          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector1_c< T, T(C0) >
-{
-    typedef typename vector1_c< T, T(C0) >::type type;
-};
-
-template<
-      typename T, long C0, long C1
-    >
-struct vector_c<
-          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector2_c< T, T(C0), T(C1) >
-{
-    typedef typename vector2_c< T, T(C0), T(C1) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2
-    >
-struct vector_c<
-          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector3_c< T, T(C0), T(C1), T(C2) >
-{
-    typedef typename vector3_c< T, T(C0), T(C1), T(C2) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector4_c< T, T(C0), T(C1), T(C2), T(C3) >
-{
-    typedef typename vector4_c< T, T(C0), T(C1), T(C2), T(C3) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) >
-{
-    typedef typename vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) >
-{
-    typedef typename vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) >
-{
-    typedef typename vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX
-        >
-    : vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) >
-{
-    typedef typename vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) >
-{
-    typedef typename vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) >
-{
-    typedef typename vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) >
-{
-    typedef typename vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) >
-{
-    typedef typename vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) >
-{
-    typedef typename vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) >
-{
-    typedef typename vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) >
-{
-    typedef typename vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) >
-{
-    typedef typename vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) >
-{
-    typedef typename vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, LONG_MAX, LONG_MAX
-        >
-    : vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) >
-{
-    typedef typename vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, LONG_MAX
-        >
-    : vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) >
-{
-    typedef typename vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct vector_c
-    : vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) >
-{
-    typedef typename vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/gcc/advance_backward.hpp b/boost/mpl/aux_/preprocessed/gcc/advance_backward.hpp
deleted file mode 100644
index 26de94c..0000000
--- a/boost/mpl/aux_/preprocessed/gcc/advance_backward.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/advance_backward.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-template< long N > struct advance_backward;
-template<>
-struct advance_backward<0>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef iter0 type;
-    };
-};
-
-template<>
-struct advance_backward<1>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef iter1 type;
-    };
-};
-
-template<>
-struct advance_backward<2>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef iter2 type;
-    };
-};
-
-template<>
-struct advance_backward<3>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef typename prior<iter2>::type iter3;
-        typedef iter3 type;
-    };
-};
-
-template<>
-struct advance_backward<4>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef typename prior<iter2>::type iter3;
-        typedef typename prior<iter3>::type iter4;
-        typedef iter4 type;
-    };
-};
-
-template< long N >
-struct advance_backward
-{
-    template< typename Iterator > struct apply
-    {
-        typedef typename apply_wrap1<
-              advance_backward<4>
-            , Iterator
-            >::type chunk_result_;
-
-        typedef typename apply_wrap1<
-              advance_backward<(
-                (N - 4) < 0
-                    ? 0
-                    : N - 4
-                    )>
-            , chunk_result_
-            >::type type;
-    };
-};
-
-}}}
-
diff --git a/boost/mpl/aux_/preprocessed/gcc/advance_forward.hpp b/boost/mpl/aux_/preprocessed/gcc/advance_forward.hpp
deleted file mode 100644
index b137cc7..0000000
--- a/boost/mpl/aux_/preprocessed/gcc/advance_forward.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/advance_forward.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-template< long N > struct advance_forward;
-template<>
-struct advance_forward<0>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef iter0 type;
-    };
-};
-
-template<>
-struct advance_forward<1>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef iter1 type;
-    };
-};
-
-template<>
-struct advance_forward<2>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef iter2 type;
-    };
-};
-
-template<>
-struct advance_forward<3>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef typename next<iter2>::type iter3;
-        typedef iter3 type;
-    };
-};
-
-template<>
-struct advance_forward<4>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef typename next<iter2>::type iter3;
-        typedef typename next<iter3>::type iter4;
-        typedef iter4 type;
-    };
-};
-
-template< long N >
-struct advance_forward
-{
-    template< typename Iterator > struct apply
-    {
-        typedef typename apply_wrap1<
-              advance_forward<4>
-            , Iterator
-            >::type chunk_result_;
-
-        typedef typename apply_wrap1<
-              advance_forward<(
-                (N - 4) < 0
-                    ? 0
-                    : N - 4
-                    )>
-            , chunk_result_
-            >::type type;
-    };
-};
-
-}}}
-
diff --git a/boost/mpl/aux_/preprocessed/gcc/and.hpp b/boost/mpl/aux_/preprocessed/gcc/and.hpp
deleted file mode 100644
index 010ad1f..0000000
--- a/boost/mpl/aux_/preprocessed/gcc/and.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/and.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template< bool C_, typename T1, typename T2, typename T3, typename T4 >
-struct and_impl
-    : false_
-{
-};
-
-template< typename T1, typename T2, typename T3, typename T4 >
-struct and_impl< true,T1,T2,T3,T4 >
-    : and_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4
-        , true_
-        >
-{
-};
-
-template<>
-struct and_impl<
-          true
-        , true_, true_, true_, true_
-        >
-    : true_
-{
-};
-
-} // namespace aux
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
-    , typename T3 = true_, typename T4 = true_, typename T5 = true_
-    >
-struct and_
-
-    : aux::and_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4, T5
-        >
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , and_
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC2(
-      2
-    , 5
-    , and_
-    )
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/gcc/apply.hpp b/boost/mpl/aux_/preprocessed/gcc/apply.hpp
deleted file mode 100644
index e08eacc..0000000
--- a/boost/mpl/aux_/preprocessed/gcc/apply.hpp
+++ /dev/null
@@ -1,169 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/apply.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename F
-    >
-struct apply0
-
-    : apply_wrap0<
-          typename lambda<F>::type
-       
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          1
-        , apply0
-        , (F )
-        )
-};
-
-template<
-      typename F
-    >
-struct apply< F,na,na,na,na,na >
-    : apply0<F>
-{
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply1
-
-    : apply_wrap1<
-          typename lambda<F>::type
-        , T1
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          2
-        , apply1
-        , (F, T1)
-        )
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply< F,T1,na,na,na,na >
-    : apply1< F,T1 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply2
-
-    : apply_wrap2<
-          typename lambda<F>::type
-        , T1, T2
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          3
-        , apply2
-        , (F, T1, T2)
-        )
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply< F,T1,T2,na,na,na >
-    : apply2< F,T1,T2 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply3
-
-    : apply_wrap3<
-          typename lambda<F>::type
-        , T1, T2, T3
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          4
-        , apply3
-        , (F, T1, T2, T3)
-        )
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply< F,T1,T2,T3,na,na >
-    : apply3< F,T1,T2,T3 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply4
-
-    : apply_wrap4<
-          typename lambda<F>::type
-        , T1, T2, T3, T4
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , apply4
-        , (F, T1, T2, T3, T4)
-        )
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply< F,T1,T2,T3,T4,na >
-    : apply4< F,T1,T2,T3,T4 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply5
-
-    : apply_wrap5<
-          typename lambda<F>::type
-        , T1, T2, T3, T4, T5
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          6
-        , apply5
-        , (F, T1, T2, T3, T4, T5)
-        )
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply
-    : apply5< F,T1,T2,T3,T4,T5 >
-{
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/gcc/apply_fwd.hpp b/boost/mpl/aux_/preprocessed/gcc/apply_fwd.hpp
deleted file mode 100644
index b2ed5d5..0000000
--- a/boost/mpl/aux_/preprocessed/gcc/apply_fwd.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/apply_fwd.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename F, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na
-    >
-struct apply;
-
-template<
-      typename F
-    >
-struct apply0;
-
-template<
-      typename F, typename T1
-    >
-struct apply1;
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply2;
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply3;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply4;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply5;
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp b/boost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp
deleted file mode 100644
index 34d51a1..0000000
--- a/boost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp
+++ /dev/null
@@ -1,84 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/apply_wrap.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename F
-
-    , typename has_apply_ = typename aux::has_apply<F>::type
-
-    >
-struct apply_wrap0
-
-    : F::template apply<  >
-{
-};
-
-template< typename F >
-struct apply_wrap0< F,true_ >
-    : F::apply
-{
-};
-
-template<
-      typename F, typename T1
-
-    >
-struct apply_wrap1
-
-    : F::template apply<T1>
-{
-};
-
-template<
-      typename F, typename T1, typename T2
-
-    >
-struct apply_wrap2
-
-    : F::template apply< T1,T2 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-
-    >
-struct apply_wrap3
-
-    : F::template apply< T1,T2,T3 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-
-    >
-struct apply_wrap4
-
-    : F::template apply< T1,T2,T3,T4 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-
-    >
-struct apply_wrap5
-
-    : F::template apply< T1,T2,T3,T4,T5 >
-{
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/gcc/arg.hpp b/boost/mpl/aux_/preprocessed/gcc/arg.hpp
deleted file mode 100644
index 6f2f8a8..0000000
--- a/boost/mpl/aux_/preprocessed/gcc/arg.hpp
+++ /dev/null
@@ -1,123 +0,0 @@
-
-// Copyright Peter Dimov 2001-2002
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/arg.hpp" header
-// -- DO NOT modify by hand!
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-template<> struct arg< -1 >
-{
-    BOOST_STATIC_CONSTANT(int, value  = -1);
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U1 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<1>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 1);
-    typedef arg<2> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U1 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<2>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 2);
-    typedef arg<3> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U2 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<3>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 3);
-    typedef arg<4> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U3 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<4>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 4);
-    typedef arg<5> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U4 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<5>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 5);
-    typedef arg<6> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U5 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg)
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
diff --git a/boost/mpl/aux_/preprocessed/gcc/basic_bind.hpp b/boost/mpl/aux_/preprocessed/gcc/basic_bind.hpp
deleted file mode 100644
index b070232..0000000
--- a/boost/mpl/aux_/preprocessed/gcc/basic_bind.hpp
+++ /dev/null
@@ -1,440 +0,0 @@
-
-// Copyright Peter Dimov 2001
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/basic_bind.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template<
-      typename T, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg
-{
-    typedef T type;
-};
-
-template<
-      int N, typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg< arg<N>, U1, U2, U3, U4, U5 >
-{
-    typedef typename apply_wrap5<mpl::arg<N>, U1, U2, U3, U4, U5>::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg< bind< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 >
-{
-    typedef bind< F,T1,T2,T3,T4,T5 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename F
-    >
-struct bind0
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-
-     public:
-        typedef typename apply_wrap0<
-              f_
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind0<F>, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind0<F> f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
-
-template<
-      typename F
-    >
-struct bind< F,na,na,na,na,na >
-    : bind0<F>
-{
-};
-
-template<
-      typename F, typename T1
-    >
-struct bind1
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-
-     public:
-        typedef typename apply_wrap1<
-              f_
-            , typename t1::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename U1, typename U2, typename U3
-    , typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind1< F,T1 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind1< F,T1 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
-
-template<
-      typename F, typename T1
-    >
-struct bind< F,T1,na,na,na,na >
-    : bind1< F,T1 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-
-     public:
-        typedef typename apply_wrap2<
-              f_
-            , typename t1::type, typename t2::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename U1, typename U2
-    , typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind2< F,T1,T2 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind2< F,T1,T2 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind< F,T1,T2,na,na,na >
-    : bind2< F,T1,T2 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-
-     public:
-        typedef typename apply_wrap3<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename U1
-    , typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind3< F,T1,T2,T3 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind< F,T1,T2,T3,na,na >
-    : bind3< F,T1,T2,T3 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind4
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
-
-     public:
-        typedef typename apply_wrap4<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind4< F,T1,T2,T3,T4 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind< F,T1,T2,T3,T4,na >
-    : bind4< F,T1,T2,T3,T4 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind5
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
-        typedef aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 > t5;
-
-     public:
-        typedef typename apply_wrap5<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type, typename t5::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind5< F,T1,T2,T3,T4,T5 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
-
-/// primary template (not a specialization!)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind
-    : bind5< F,T1,T2,T3,T4,T5 >
-{
-};
-
-/// if_/eval_if specializations
-template< template< typename T1, typename T2, typename T3 > class F, typename Tag >
-struct quote3;
-
-template< typename T1, typename T2, typename T3 > struct if_;
-
-template<
-      typename Tag, typename T1, typename T2, typename T3
-    >
-struct bind3<
-      quote3< if_,Tag >
-    , T1, T2, T3
-    >
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef mpl::arg<1> n1;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef typename if_<
-              typename t1::type
-            , t2, t3
-            >::type f_;
-
-     public:
-        typedef typename f_::type type;
-    };
-};
-
-template<
-      template< typename T1, typename T2, typename T3 > class F, typename Tag
-    >
-struct quote3;
-
-template< typename T1, typename T2, typename T3 > struct eval_if;
-
-template<
-      typename Tag, typename T1, typename T2, typename T3
-    >
-struct bind3<
-      quote3< eval_if,Tag >
-    , T1, T2, T3
-    >
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef mpl::arg<1> n1;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef typename eval_if<
-              typename t1::type
-            , t2, t3
-            >::type f_;
-
-     public:
-        typedef typename f_::type type;
-    };
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/gcc/bind.hpp b/boost/mpl/aux_/preprocessed/gcc/bind.hpp
deleted file mode 100644
index 0e9513a..0000000
--- a/boost/mpl/aux_/preprocessed/gcc/bind.hpp
+++ /dev/null
@@ -1,561 +0,0 @@
-
-// Copyright Peter Dimov 2001
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/bind.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template<
-      typename T, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg
-{
-    typedef T type;
-};
-
-template<
-      typename T
-    , typename Arg
-    >
-struct replace_unnamed_arg
-{
-    typedef Arg next;
-    typedef T type;
-};
-
-template<
-      typename Arg
-    >
-struct replace_unnamed_arg< arg< -1 >, Arg >
-{
-    typedef typename Arg::next next;
-    typedef Arg type;
-};
-
-template<
-      int N, typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg< arg<N>, U1, U2, U3, U4, U5 >
-{
-    typedef typename apply_wrap5<mpl::arg<N>, U1, U2, U3, U4, U5>::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg< bind< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 >
-{
-    typedef bind< F,T1,T2,T3,T4,T5 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename F
-    >
-struct bind0
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-     public:
-        typedef typename apply_wrap0<
-              f_
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind0<F>, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind0<F> f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
-
-template<
-      typename F
-    >
-struct bind< F,na,na,na,na,na >
-    : bind0<F>
-{
-};
-
-template<
-      typename F, typename T1
-    >
-struct bind1
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-     public:
-        typedef typename apply_wrap1<
-              f_
-            , typename t1::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename U1, typename U2, typename U3
-    , typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind1< F,T1 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind1< F,T1 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
-
-template<
-      typename F, typename T1
-    >
-struct bind< F,T1,na,na,na,na >
-    : bind1< F,T1 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-     public:
-        typedef typename apply_wrap2<
-              f_
-            , typename t1::type, typename t2::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename U1, typename U2
-    , typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind2< F,T1,T2 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind2< F,T1,T2 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind< F,T1,T2,na,na,na >
-    : bind2< F,T1,T2 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-     public:
-        typedef typename apply_wrap3<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename U1
-    , typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind3< F,T1,T2,T3 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind< F,T1,T2,T3,na,na >
-    : bind3< F,T1,T2,T3 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind4
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef aux::replace_unnamed_arg< T4,n4 > r4;
-        typedef typename r4::type a4;
-        typedef typename r4::next n5;
-        typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
-        ///
-     public:
-        typedef typename apply_wrap4<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind4< F,T1,T2,T3,T4 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind< F,T1,T2,T3,T4,na >
-    : bind4< F,T1,T2,T3,T4 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind5
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef aux::replace_unnamed_arg< T4,n4 > r4;
-        typedef typename r4::type a4;
-        typedef typename r4::next n5;
-        typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
-        ///
-        typedef aux::replace_unnamed_arg< T5,n5 > r5;
-        typedef typename r5::type a5;
-        typedef typename r5::next n6;
-        typedef aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 > t5;
-        ///
-     public:
-        typedef typename apply_wrap5<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type, typename t5::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind5< F,T1,T2,T3,T4,T5 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
-
-/// primary template (not a specialization!)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind
-    : bind5< F,T1,T2,T3,T4,T5 >
-{
-};
-
-/// if_/eval_if specializations
-template< template< typename T1, typename T2, typename T3 > class F, typename Tag >
-struct quote3;
-
-template< typename T1, typename T2, typename T3 > struct if_;
-
-template<
-      typename Tag, typename T1, typename T2, typename T3
-    >
-struct bind3<
-      quote3< if_,Tag >
-    , T1, T2, T3
-    >
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef mpl::arg<1> n1;
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef typename if_<
-              typename t1::type
-            , t2, t3
-            >::type f_;
-
-     public:
-        typedef typename f_::type type;
-    };
-};
-
-template<
-      template< typename T1, typename T2, typename T3 > class F, typename Tag
-    >
-struct quote3;
-
-template< typename T1, typename T2, typename T3 > struct eval_if;
-
-template<
-      typename Tag, typename T1, typename T2, typename T3
-    >
-struct bind3<
-      quote3< eval_if,Tag >
-    , T1, T2, T3
-    >
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef mpl::arg<1> n1;
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef typename eval_if<
-              typename t1::type
-            , t2, t3
-            >::type f_;
-
-     public:
-        typedef typename f_::type type;
-    };
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/gcc/bind_fwd.hpp b/boost/mpl/aux_/preprocessed/gcc/bind_fwd.hpp
deleted file mode 100644
index c4a5060..0000000
--- a/boost/mpl/aux_/preprocessed/gcc/bind_fwd.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/bind_fwd.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename F, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na
-    >
-struct bind;
-
-template<
-      typename F
-    >
-struct bind0;
-
-template<
-      typename F, typename T1
-    >
-struct bind1;
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2;
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind4;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind5;
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/gcc/bitand.hpp b/boost/mpl/aux_/preprocessed/gcc/bitand.hpp
deleted file mode 100644
index 0bbf54e..0000000
--- a/boost/mpl/aux_/preprocessed/gcc/bitand.hpp
+++ /dev/null
@@ -1,147 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/bitand.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitand_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< bitand_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< bitand_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitand_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitand_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitand_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitand_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct bitand_
-    : bitand_< bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>, N5>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitand_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct bitand_< N1,N2,N3,N4,na >
-
-    : bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitand_
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct bitand_< N1,N2,N3,na,na >
-
-    : bitand_< bitand_< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitand_
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct bitand_< N1,N2,na,na,na >
-    : bitand_impl<
-          typename bitand_tag<N1>::type
-        , typename bitand_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitand_
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct bitand_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  & BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/gcc/bitor.hpp b/boost/mpl/aux_/preprocessed/gcc/bitor.hpp
deleted file mode 100644
index 55b31cb..0000000
--- a/boost/mpl/aux_/preprocessed/gcc/bitor.hpp
+++ /dev/null
@@ -1,147 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/bitor.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitor_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< bitor_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< bitor_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitor_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitor_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitor_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitor_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct bitor_
-    : bitor_< bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>, N5>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitor_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct bitor_< N1,N2,N3,N4,na >
-
-    : bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitor_
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct bitor_< N1,N2,N3,na,na >
-
-    : bitor_< bitor_< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitor_
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct bitor_< N1,N2,na,na,na >
-    : bitor_impl<
-          typename bitor_tag<N1>::type
-        , typename bitor_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitor_
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct bitor_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  | BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/gcc/bitxor.hpp b/boost/mpl/aux_/preprocessed/gcc/bitxor.hpp
deleted file mode 100644
index ec19391..0000000
--- a/boost/mpl/aux_/preprocessed/gcc/bitxor.hpp
+++ /dev/null
@@ -1,147 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/bitxor.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitxor_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< bitxor_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< bitxor_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitxor_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitxor_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitxor_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitxor_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct bitxor_
-    : bitxor_< bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>, N5>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitxor_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct bitxor_< N1,N2,N3,N4,na >
-
-    : bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitxor_
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct bitxor_< N1,N2,N3,na,na >
-
-    : bitxor_< bitxor_< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitxor_
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct bitxor_< N1,N2,na,na,na >
-    : bitxor_impl<
-          typename bitxor_tag<N1>::type
-        , typename bitxor_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitxor_
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct bitxor_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  ^ BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/gcc/deque.hpp b/boost/mpl/aux_/preprocessed/gcc/deque.hpp
deleted file mode 100644
index de67398..0000000
--- a/boost/mpl/aux_/preprocessed/gcc/deque.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/deque.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct deque;
-
-template<
-     
-    >
-struct deque<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector0<  >
-{
-    typedef vector0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct deque<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector1<T0>
-{
-    typedef typename vector1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct deque<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector2< T0,T1 >
-{
-    typedef typename vector2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct deque<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector3< T0,T1,T2 >
-{
-    typedef typename vector3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct deque<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector4< T0,T1,T2,T3 >
-{
-    typedef typename vector4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct deque<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector5< T0,T1,T2,T3,T4 >
-{
-    typedef typename vector5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : vector15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : vector16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : vector17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : vector18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : vector19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct deque
-    : vector20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/gcc/divides.hpp b/boost/mpl/aux_/preprocessed/gcc/divides.hpp
deleted file mode 100644
index 86f1682..0000000
--- a/boost/mpl/aux_/preprocessed/gcc/divides.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/divides.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct divides_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< divides_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< divides_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct divides_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct divides_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct divides_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct divides_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct divides
-    : divides< divides< divides< divides< N1,N2 >, N3>, N4>, N5>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , divides
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct divides< N1,N2,N3,N4,na >
-
-    : divides< divides< divides< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , divides
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct divides< N1,N2,N3,na,na >
-
-    : divides< divides< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , divides
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct divides< N1,N2,na,na,na >
-    : divides_impl<
-          typename divides_tag<N1>::type
-        , typename divides_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , divides
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, divides)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct divides_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  / BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/gcc/equal_to.hpp b/boost/mpl/aux_/preprocessed/gcc/equal_to.hpp
deleted file mode 100644
index 62c9945..0000000
--- a/boost/mpl/aux_/preprocessed/gcc/equal_to.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/equal_to.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct equal_to_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct equal_to_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct equal_to_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct equal_to_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct equal_to_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct equal_to
-
-    : equal_to_impl<
-          typename equal_to_tag<N1>::type
-        , typename equal_to_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct equal_to_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value  == BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/gcc/fold_impl.hpp b/boost/mpl/aux_/preprocessed/gcc/fold_impl.hpp
deleted file mode 100644
index 9e7a293..0000000
--- a/boost/mpl/aux_/preprocessed/gcc/fold_impl.hpp
+++ /dev/null
@@ -1,180 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl;
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 0,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef state0 state;
-    typedef iter0 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 1,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    
-
-    typedef state1 state;
-    typedef iter1 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 2,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    
-
-    typedef state2 state;
-    typedef iter2 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 3,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    
-
-    typedef state3 state;
-    typedef iter3 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 4,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp, state3, typename deref<iter3>::type >::type state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef state4 state;
-    typedef iter4 iterator;
-};
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl
-{
-    typedef fold_impl<
-          4
-        , First
-        , Last
-        , State
-        , ForwardOp
-        > chunk_;
-
-    typedef fold_impl<
-          ( (N - 4) < 0 ? 0 : N - 4 )
-        , typename chunk_::iterator
-        , Last
-        , typename chunk_::state
-        , ForwardOp
-        > res_;
-
-    typedef typename res_::state state;
-    typedef typename res_::iterator iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< -1,First,Last,State,ForwardOp >
-    : fold_impl<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State, typename deref<First>::type>::type
-        , ForwardOp
-        >
-{
-};
-
-template<
-      typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< -1,Last,Last,State,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/gcc/full_lambda.hpp b/boost/mpl/aux_/preprocessed/gcc/full_lambda.hpp
deleted file mode 100644
index e3eef71..0000000
--- a/boost/mpl/aux_/preprocessed/gcc/full_lambda.hpp
+++ /dev/null
@@ -1,558 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/full_lambda.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template<
-      bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false
-    , bool C5 = false
-    >
-struct lambda_or
-    : true_
-{
-};
-
-template<>
-struct lambda_or< false,false,false,false,false >
-    : false_
-{
-};
-
-} // namespace aux
-
-template<
-      typename T
-    , typename Tag
-    , typename Arity
-    >
-struct lambda
-{
-    typedef false_ is_le;
-    typedef T result_;
-    typedef T type;
-};
-
-template<
-      typename T
-    >
-struct is_lambda_expression
-    : lambda<T>::is_le
-{
-};
-
-template< int N, typename Tag >
-struct lambda< arg<N>,Tag, int_< -1 > >
-{
-    typedef true_ is_le;
-    typedef mpl::arg<N> result_; // qualified for the sake of MIPSpro 7.41
-    typedef mpl::protect<result_> type;
-};
-
-template<
-      typename F
-    , typename Tag
-    >
-struct lambda<
-          bind0<F>
-        , Tag
-        , int_<1>
-        >
-{
-    typedef false_ is_le;
-    typedef bind0<
-          F
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1 > class F
-    , typename L1
-    >
-struct le_result1
-{
-    typedef F<
-          typename L1::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1 > class F
-    , typename L1
-    >
-struct le_result1< true_,Tag,F,L1 >
-{
-    typedef bind1<
-          quote1< F,Tag >
-        , typename L1::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1 > class F
-    , typename T1
-    , typename Tag
-    >
-struct lambda<
-          F<T1>
-        , Tag
-        , int_<1>
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef typename l1::is_le is_le1;
-    typedef typename aux::lambda_or<
-          is_le1::value
-        >::type is_le;
-
-    typedef aux::le_result1<
-          is_le, Tag, F, l1
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1
-    , typename Tag
-    >
-struct lambda<
-          bind1< F,T1 >
-        , Tag
-        , int_<2>
-        >
-{
-    typedef false_ is_le;
-    typedef bind1<
-          F
-        , T1
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2 > class F
-    , typename L1, typename L2
-    >
-struct le_result2
-{
-    typedef F<
-          typename L1::type, typename L2::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2 > class F
-    , typename L1, typename L2
-    >
-struct le_result2< true_,Tag,F,L1,L2 >
-{
-    typedef bind2<
-          quote2< F,Tag >
-        , typename L1::result_, typename L2::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2 > class F
-    , typename T1, typename T2
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2 >
-        , Tag
-        , int_<2>
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value
-        >::type is_le;
-
-    typedef aux::le_result2<
-          is_le, Tag, F, l1, l2
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    , typename Tag
-    >
-struct lambda<
-          bind2< F,T1,T2 >
-        , Tag
-        , int_<3>
-        >
-{
-    typedef false_ is_le;
-    typedef bind2<
-          F
-        , T1, T2
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3 > class F
-    , typename L1, typename L2, typename L3
-    >
-struct le_result3
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3 > class F
-    , typename L1, typename L2, typename L3
-    >
-struct le_result3< true_,Tag,F,L1,L2,L3 >
-{
-    typedef bind3<
-          quote3< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2, typename P3 > class F
-    , typename T1, typename T2, typename T3
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3 >
-        , Tag
-        , int_<3>
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value
-        >::type is_le;
-
-    typedef aux::le_result3<
-          is_le, Tag, F, l1, l2, l3
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    , typename Tag
-    >
-struct lambda<
-          bind3< F,T1,T2,T3 >
-        , Tag
-        , int_<4>
-        >
-{
-    typedef false_ is_le;
-    typedef bind3<
-          F
-        , T1, T2, T3
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename L1, typename L2, typename L3, typename L4
-    >
-struct le_result4
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        , typename L4::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename L1, typename L2, typename L3, typename L4
-    >
-struct le_result4< true_,Tag,F,L1,L2,L3,L4 >
-{
-    typedef bind4<
-          quote4< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        , typename L4::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename T1, typename T2, typename T3, typename T4
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3,T4 >
-        , Tag
-        , int_<4>
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    typedef lambda< T4,Tag > l4;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    typedef typename l4::is_le is_le4;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value, is_le4::value
-        >::type is_le;
-
-    typedef aux::le_result4<
-          is_le, Tag, F, l1, l2, l3, l4
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename Tag
-    >
-struct lambda<
-          bind4< F,T1,T2,T3,T4 >
-        , Tag
-        , int_<5>
-        >
-{
-    typedef false_ is_le;
-    typedef bind4<
-          F
-        , T1, T2, T3, T4
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
-    , typename L1, typename L2, typename L3, typename L4, typename L5
-    >
-struct le_result5
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        , typename L4::type, typename L5::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
-    , typename L1, typename L2, typename L3, typename L4, typename L5
-    >
-struct le_result5< true_,Tag,F,L1,L2,L3,L4,L5 >
-{
-    typedef bind5<
-          quote5< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        , typename L4::result_, typename L5::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template<
-          typename P1, typename P2, typename P3, typename P4
-        , typename P5
-        >
-      class F
-    , typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3,T4,T5 >
-        , Tag
-        , int_<5>
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    typedef lambda< T4,Tag > l4;
-    typedef lambda< T5,Tag > l5;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    typedef typename l4::is_le is_le4;
-    typedef typename l5::is_le is_le5;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value, is_le4::value
-        , is_le5::value
-        >::type is_le;
-
-    typedef aux::le_result5<
-          is_le, Tag, F, l1, l2, l3, l4, l5
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    , typename Tag
-    >
-struct lambda<
-          bind5< F,T1,T2,T3,T4,T5 >
-        , Tag
-        , int_<6>
-        >
-{
-    typedef false_ is_le;
-    typedef bind5<
-          F
-        , T1, T2, T3, T4, T5
-        > result_;
-
-    typedef result_ type;
-};
-
-/// special case for 'protect'
-template< typename T, typename Tag >
-struct lambda< mpl::protect<T>,Tag, int_<1> >
-{
-    typedef false_ is_le;
-    typedef mpl::protect<T> result_;
-    typedef result_ type;
-};
-
-/// specializations for the main 'bind' form
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    , typename Tag
-    >
-struct lambda<
-          bind< F,T1,T2,T3,T4,T5 >
-        , Tag
-        , int_<6>
-        >
-{
-    typedef false_ is_le;
-    typedef bind< F,T1,T2,T3,T4,T5 > result_;
-    typedef result_ type;
-};
-
-template<
-      typename F
-    , typename Tag1
-    , typename Tag2
-    , typename Arity
-    >
-struct lambda<
-          lambda< F,Tag1,Arity >
-        , Tag2
-        , int_<3>
-        >
-{
-    typedef lambda< F,Tag2 > l1;
-    typedef lambda< Tag1,Tag2 > l2;
-    typedef typename l1::is_le is_le;
-    typedef bind1< quote1<aux::template_arity>, typename l1::result_ > arity_;
-    typedef lambda< typename if_< is_le,arity_,Arity >::type, Tag2 > l3;
-    typedef aux::le_result3<is_le, Tag2, mpl::lambda, l1, l2, l3> le_result_;
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 3, lambda)
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/gcc/greater.hpp b/boost/mpl/aux_/preprocessed/gcc/greater.hpp
deleted file mode 100644
index 14d8e08..0000000
--- a/boost/mpl/aux_/preprocessed/gcc/greater.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/greater.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct greater_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< greater_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< greater_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct greater_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct greater_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct greater
-
-    : greater_impl<
-          typename greater_tag<N1>::type
-        , typename greater_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, greater)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct greater_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value > BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/gcc/greater_equal.hpp b/boost/mpl/aux_/preprocessed/gcc/greater_equal.hpp
deleted file mode 100644
index 2603f91..0000000
--- a/boost/mpl/aux_/preprocessed/gcc/greater_equal.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/greater_equal.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct greater_equal_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< greater_equal_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct greater_equal_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_equal_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_equal_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct greater_equal_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct greater_equal
-
-    : greater_equal_impl<
-          typename greater_equal_tag<N1>::type
-        , typename greater_equal_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct greater_equal_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/gcc/inherit.hpp b/boost/mpl/aux_/preprocessed/gcc/inherit.hpp
deleted file mode 100644
index 00f31c4..0000000
--- a/boost/mpl/aux_/preprocessed/gcc/inherit.hpp
+++ /dev/null
@@ -1,141 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/inherit.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
-    >
-struct inherit2
-    : T1, T2
-{
-    typedef inherit2 type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2))
-};
-
-template< typename T1 >
-struct inherit2< T1,empty_base >
-{
-    typedef T1 type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (T1, empty_base))
-};
-
-template< typename T2 >
-struct inherit2< empty_base,T2 >
-{
-    typedef T2 type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, T2))
-};
-
-template<>
-struct inherit2< empty_base,empty_base >
-{
-    typedef empty_base type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, empty_base))
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, inherit2)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na
-    >
-struct inherit3
-    : inherit2<
-          typename inherit2<
-              T1, T2
-            >::type
-        , T3
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          3
-        , inherit3
-        , ( T1, T2, T3)
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC(3, inherit3)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
-    >
-struct inherit4
-    : inherit2<
-          typename inherit3<
-              T1, T2, T3
-            >::type
-        , T4
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          4
-        , inherit4
-        , ( T1, T2, T3, T4)
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC(4, inherit4)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
-    , typename T5 = na
-    >
-struct inherit5
-    : inherit2<
-          typename inherit4<
-              T1, T2, T3, T4
-            >::type
-        , T5
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , inherit5
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC(5, inherit5)
-
-/// primary template
-
-template<
-      typename T1 = empty_base, typename T2 = empty_base
-    , typename T3 = empty_base, typename T4 = empty_base
-    , typename T5 = empty_base
-    >
-struct inherit
-    : inherit5< T1,T2,T3,T4,T5 >
-{
-};
-
-template<>
-struct inherit< na,na,na,na,na >
-{
-    template<
-
-          typename T1 = empty_base, typename T2 = empty_base
-        , typename T3 = empty_base, typename T4 = empty_base
-        , typename T5 = empty_base
-
-        >
-    struct apply
-        : inherit< T1,T2,T3,T4,T5 >
-    {
-    };
-};
-
-BOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit)
-BOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit)
-BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit)
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/gcc/iter_fold_if_impl.hpp b/boost/mpl/aux_/preprocessed/gcc/iter_fold_if_impl.hpp
deleted file mode 100644
index 6951795..0000000
--- a/boost/mpl/aux_/preprocessed/gcc/iter_fold_if_impl.hpp
+++ /dev/null
@@ -1,133 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright David Abrahams 2001-2002
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/iter_fold_if_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-template< typename Iterator, typename State >
-struct iter_fold_if_null_step
-{
-    typedef State state;
-    typedef Iterator iterator;
-};
-
-template< bool >
-struct iter_fold_if_step_impl
-{
-    template<
-          typename Iterator
-        , typename State
-        , typename StateOp
-        , typename IteratorOp
-        >
-    struct result_
-    {
-        typedef typename apply2< StateOp,State,Iterator >::type state;
-        typedef typename IteratorOp::type iterator;
-    };
-};
-
-template<>
-struct iter_fold_if_step_impl<false>
-{
-    template<
-          typename Iterator
-        , typename State
-        , typename StateOp
-        , typename IteratorOp
-        >
-    struct result_
-    {
-        typedef State state;
-        typedef Iterator iterator;
-    };
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename ForwardOp
-    , typename Predicate
-    >
-struct iter_fold_if_forward_step
-{
-    typedef typename apply2< Predicate,State,Iterator >::type not_last;
-    typedef typename iter_fold_if_step_impl<
-          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
-        >::template result_< Iterator,State,ForwardOp, mpl::next<Iterator> > impl_;
-
-    typedef typename impl_::state state;
-    typedef typename impl_::iterator iterator;
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename BackwardOp
-    , typename Predicate
-    >
-struct iter_fold_if_backward_step
-{
-    typedef typename apply2< Predicate,State,Iterator >::type not_last;
-    typedef typename iter_fold_if_step_impl<
-          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
-        >::template result_< Iterator,State,BackwardOp, identity<Iterator> > impl_;
-
-    typedef typename impl_::state state;
-    typedef typename impl_::iterator iterator;
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename ForwardOp
-    , typename ForwardPredicate
-    , typename BackwardOp
-    , typename BackwardPredicate
-    >
-struct iter_fold_if_impl
-{
- private:
-    typedef iter_fold_if_null_step< Iterator,State > forward_step0;
-    typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1;
-    typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2;
-    typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3;
-    typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4;
-    
-
-    typedef typename if_<
-          typename forward_step4::not_last
-        , iter_fold_if_impl<
-              typename forward_step4::iterator
-            , typename forward_step4::state
-            , ForwardOp
-            , ForwardPredicate
-            , BackwardOp
-            , BackwardPredicate
-            >
-        , iter_fold_if_null_step<
-              typename forward_step4::iterator
-            , typename forward_step4::state
-            >
-        >::type backward_step4;
-
-    typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3;
-    typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2;
-    typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1;
-    typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0;
-    
-
- public:
-    typedef typename backward_step0::state state;
-    typedef typename backward_step4::iterator iterator;
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/gcc/iter_fold_impl.hpp b/boost/mpl/aux_/preprocessed/gcc/iter_fold_impl.hpp
deleted file mode 100644
index 805790e..0000000
--- a/boost/mpl/aux_/preprocessed/gcc/iter_fold_impl.hpp
+++ /dev/null
@@ -1,180 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/iter_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl;
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 0,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef state0 state;
-    typedef iter0 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 1,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    
-
-    typedef state1 state;
-    typedef iter1 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 2,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    
-
-    typedef state2 state;
-    typedef iter2 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 3,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,state2,iter2 >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    
-
-    typedef state3 state;
-    typedef iter3 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 4,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,state2,iter2 >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp,state3,iter3 >::type state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef state4 state;
-    typedef iter4 iterator;
-};
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl
-{
-    typedef iter_fold_impl<
-          4
-        , First
-        , Last
-        , State
-        , ForwardOp
-        > chunk_;
-
-    typedef iter_fold_impl<
-          ( (N - 4) < 0 ? 0 : N - 4 )
-        , typename chunk_::iterator
-        , Last
-        , typename chunk_::state
-        , ForwardOp
-        > res_;
-
-    typedef typename res_::state state;
-    typedef typename res_::iterator iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< -1,First,Last,State,ForwardOp >
-    : iter_fold_impl<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2< ForwardOp,State,First >::type
-        , ForwardOp
-        >
-{
-};
-
-template<
-      typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< -1,Last,Last,State,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/gcc/lambda_no_ctps.hpp b/boost/mpl/aux_/preprocessed/gcc/lambda_no_ctps.hpp
deleted file mode 100644
index 890a198..0000000
--- a/boost/mpl/aux_/preprocessed/gcc/lambda_no_ctps.hpp
+++ /dev/null
@@ -1,229 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/lambda_no_ctps.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template<
-      bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false
-    , bool C5 = false
-    >
-struct lambda_or
-    : true_
-{
-};
-
-template<>
-struct lambda_or< false,false,false,false,false >
-    : false_
-{
-};
-
-template< typename Arity > struct lambda_impl
-{
-    template< typename T, typename Tag, typename Protect > struct result_
-    {
-        typedef T type;
-        typedef is_placeholder<T> is_le;
-    };
-};
-
-template<> struct lambda_impl< int_<1> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef typename l1::is_le is_le1;
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value
-            > is_le;
-
-        typedef bind1<
-              typename F::rebind
-            , typename l1::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<2> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        
-
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value
-            > is_le;
-
-        typedef bind2<
-              typename F::rebind
-            , typename l1::type, typename l2::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<3> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        
-
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value
-            > is_le;
-
-        typedef bind3<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<4> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        typedef lambda< typename F::arg4, Tag, false_ > l4;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        typedef typename l4::is_le is_le4;
-        
-
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value
-            > is_le;
-
-        typedef bind4<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            , typename l4::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<5> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        typedef lambda< typename F::arg4, Tag, false_ > l4;
-        typedef lambda< typename F::arg5, Tag, false_ > l5;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        typedef typename l4::is_le is_le4;
-        typedef typename l5::is_le is_le5;
-        
-
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value
-            > is_le;
-
-        typedef bind5<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            , typename l4::type, typename l5::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename T
-    , typename Tag
-    , typename Protect
-    >
-struct lambda
-{
-    /// Metafunction forwarding confuses MSVC 6.x
-    typedef typename aux::template_arity<T>::type arity_;
-    typedef typename aux::lambda_impl<arity_>
-        ::template result_< T,Tag,Protect > l_;
-
-    typedef typename l_::type type;
-    typedef typename l_::is_le is_le;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect))
-};
-
-BOOST_MPL_AUX_NA_SPEC2(1, 3, lambda)
-
-template<
-      typename T
-    >
-struct is_lambda_expression
-    : lambda<T>::is_le
-{
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/gcc/less.hpp b/boost/mpl/aux_/preprocessed/gcc/less.hpp
deleted file mode 100644
index 4fe3cd1..0000000
--- a/boost/mpl/aux_/preprocessed/gcc/less.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/less.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct less_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< less_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< less_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct less_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct less_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct less
-
-    : less_impl<
-          typename less_tag<N1>::type
-        , typename less_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, less)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct less_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > BOOST_MPL_AUX_VALUE_WKND(N1)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/gcc/less_equal.hpp b/boost/mpl/aux_/preprocessed/gcc/less_equal.hpp
deleted file mode 100644
index ca2894f..0000000
--- a/boost/mpl/aux_/preprocessed/gcc/less_equal.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/less_equal.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct less_equal_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< less_equal_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< less_equal_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct less_equal_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_equal_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_equal_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct less_equal_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct less_equal
-
-    : less_equal_impl<
-          typename less_equal_tag<N1>::type
-        , typename less_equal_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct less_equal_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/gcc/list.hpp b/boost/mpl/aux_/preprocessed/gcc/list.hpp
deleted file mode 100644
index 4e8ad53..0000000
--- a/boost/mpl/aux_/preprocessed/gcc/list.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/list.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct list;
-
-template<
-     
-    >
-struct list<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list0<  >
-{
-    typedef list0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct list<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list1<T0>
-{
-    typedef typename list1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct list<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list2< T0,T1 >
-{
-    typedef typename list2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct list<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list3< T0,T1,T2 >
-{
-    typedef typename list3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct list<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list4< T0,T1,T2,T3 >
-{
-    typedef typename list4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct list<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list5< T0,T1,T2,T3,T4 >
-{
-    typedef typename list5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename list6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename list7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename list8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : list15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename list15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : list16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename list16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : list17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename list17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : list18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename list18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : list19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename list19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct list
-    : list20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename list20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/gcc/list_c.hpp b/boost/mpl/aux_/preprocessed/gcc/list_c.hpp
deleted file mode 100644
index 0b48a7f..0000000
--- a/boost/mpl/aux_/preprocessed/gcc/list_c.hpp
+++ /dev/null
@@ -1,328 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/list_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct list_c;
-
-template<
-      typename T
-    >
-struct list_c<
-          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list0_c<T>
-{
-    typedef typename list0_c<T>::type type;
-};
-
-template<
-      typename T, long C0
-    >
-struct list_c<
-          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list1_c< T,C0 >
-{
-    typedef typename list1_c< T,C0 >::type type;
-};
-
-template<
-      typename T, long C0, long C1
-    >
-struct list_c<
-          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list2_c< T,C0,C1 >
-{
-    typedef typename list2_c< T,C0,C1 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2
-    >
-struct list_c<
-          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list3_c< T,C0,C1,C2 >
-{
-    typedef typename list3_c< T,C0,C1,C2 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3
-    >
-struct list_c<
-          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list4_c< T,C0,C1,C2,C3 >
-{
-    typedef typename list4_c< T,C0,C1,C2,C3 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list5_c< T,C0,C1,C2,C3,C4 >
-{
-    typedef typename list5_c< T,C0,C1,C2,C3,C4 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list6_c< T,C0,C1,C2,C3,C4,C5 >
-{
-    typedef typename list6_c< T,C0,C1,C2,C3,C4,C5 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list7_c< T,C0,C1,C2,C3,C4,C5,C6 >
-{
-    typedef typename list7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX
-        >
-    : list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >
-{
-    typedef typename list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >
-{
-    typedef typename list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >
-{
-    typedef typename list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >
-{
-    typedef typename list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >
-{
-    typedef typename list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >
-{
-    typedef typename list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list14_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        >
-{
-    typedef typename list14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list15_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        >
-{
-    typedef typename list15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list16_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15
-        >
-{
-    typedef typename list16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list17_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16
-        >
-{
-    typedef typename list17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, LONG_MAX, LONG_MAX
-        >
-    : list18_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17
-        >
-{
-    typedef typename list18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, LONG_MAX
-        >
-    : list19_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18
-        >
-{
-    typedef typename list19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct list_c
-    : list20_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, C19
-        >
-{
-    typedef typename list20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/gcc/map.hpp b/boost/mpl/aux_/preprocessed/gcc/map.hpp
deleted file mode 100644
index 837e013..0000000
--- a/boost/mpl/aux_/preprocessed/gcc/map.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/map.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct map;
-
-template<
-     
-    >
-struct map<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map0<  >
-{
-    typedef map0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct map<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map1<T0>
-{
-    typedef typename map1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct map<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map2< T0,T1 >
-{
-    typedef typename map2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct map<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map3< T0,T1,T2 >
-{
-    typedef typename map3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct map<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map4< T0,T1,T2,T3 >
-{
-    typedef typename map4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct map<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map5< T0,T1,T2,T3,T4 >
-{
-    typedef typename map5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename map6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename map7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename map8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : map15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename map15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : map16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename map16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : map17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename map17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : map18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename map18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : map19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename map19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct map
-    : map20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename map20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/gcc/minus.hpp b/boost/mpl/aux_/preprocessed/gcc/minus.hpp
deleted file mode 100644
index 71d4913..0000000
--- a/boost/mpl/aux_/preprocessed/gcc/minus.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/minus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct minus_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< minus_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< minus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct minus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct minus_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct minus_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct minus_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct minus
-    : minus< minus< minus< minus< N1,N2 >, N3>, N4>, N5>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , minus
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct minus< N1,N2,N3,N4,na >
-
-    : minus< minus< minus< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , minus
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct minus< N1,N2,N3,na,na >
-
-    : minus< minus< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , minus
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct minus< N1,N2,na,na,na >
-    : minus_impl<
-          typename minus_tag<N1>::type
-        , typename minus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , minus
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, minus)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct minus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  - BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/gcc/modulus.hpp b/boost/mpl/aux_/preprocessed/gcc/modulus.hpp
deleted file mode 100644
index 224b349..0000000
--- a/boost/mpl/aux_/preprocessed/gcc/modulus.hpp
+++ /dev/null
@@ -1,101 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/modulus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct modulus_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< modulus_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< modulus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct modulus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct modulus_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct modulus_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct modulus_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct modulus
-
-    : modulus_impl<
-          typename modulus_tag<N1>::type
-        , typename modulus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, modulus)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct modulus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  % BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/gcc/not_equal_to.hpp b/boost/mpl/aux_/preprocessed/gcc/not_equal_to.hpp
deleted file mode 100644
index 98b21b1..0000000
--- a/boost/mpl/aux_/preprocessed/gcc/not_equal_to.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/not_equal_to.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct not_equal_to_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< not_equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct not_equal_to_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct not_equal_to_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct not_equal_to_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct not_equal_to_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct not_equal_to
-
-    : not_equal_to_impl<
-          typename not_equal_to_tag<N1>::type
-        , typename not_equal_to_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct not_equal_to_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value != BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/gcc/or.hpp b/boost/mpl/aux_/preprocessed/gcc/or.hpp
deleted file mode 100644
index 31e1aaa..0000000
--- a/boost/mpl/aux_/preprocessed/gcc/or.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/or.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template< bool C_, typename T1, typename T2, typename T3, typename T4 >
-struct or_impl
-    : true_
-{
-};
-
-template< typename T1, typename T2, typename T3, typename T4 >
-struct or_impl< false,T1,T2,T3,T4 >
-    : or_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4
-        , false_
-        >
-{
-};
-
-template<>
-struct or_impl<
-          false
-        , false_, false_, false_, false_
-        >
-    : false_
-{
-};
-
-} // namespace aux
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
-    , typename T3 = false_, typename T4 = false_, typename T5 = false_
-    >
-struct or_
-
-    : aux::or_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4, T5
-        >
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , or_
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC2(
-      2
-    , 5
-    , or_
-    )
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp b/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp
deleted file mode 100644
index ff97364..0000000
--- a/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp
+++ /dev/null
@@ -1,105 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright Peter Dimov 2001-2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/placeholders.hpp" header
-// -- DO NOT modify by hand!
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg< -1 > _;
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;
-}
-
-}}
-
-/// agurt, 17/mar/02: one more placeholder for the last 'apply#' 
-/// specialization
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<1> _1;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<2> _2;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<3> _3;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<4> _4;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<5> _5;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<6> _6;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6;
-}
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/gcc/plus.hpp b/boost/mpl/aux_/preprocessed/gcc/plus.hpp
deleted file mode 100644
index a9f6ee7..0000000
--- a/boost/mpl/aux_/preprocessed/gcc/plus.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/plus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct plus_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< plus_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< plus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct plus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct plus_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct plus_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct plus_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct plus
-    : plus< plus< plus< plus< N1,N2 >, N3>, N4>, N5>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , plus
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct plus< N1,N2,N3,N4,na >
-
-    : plus< plus< plus< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , plus
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct plus< N1,N2,N3,na,na >
-
-    : plus< plus< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , plus
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct plus< N1,N2,na,na,na >
-    : plus_impl<
-          typename plus_tag<N1>::type
-        , typename plus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , plus
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, plus)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct plus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  + BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/gcc/quote.hpp b/boost/mpl/aux_/preprocessed/gcc/quote.hpp
deleted file mode 100644
index 020f093..0000000
--- a/boost/mpl/aux_/preprocessed/gcc/quote.hpp
+++ /dev/null
@@ -1,123 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/quote.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template< typename T, bool has_type_ >
-struct quote_impl
-{
-    typedef typename T::type type;
-};
-
-template< typename T >
-struct quote_impl< T,false >
-{
-    typedef T type;
-};
-
-template<
-      template< typename P1 > class F
-    , typename Tag = void_
-    >
-struct quote1
-{
-    template< typename U1 > struct apply
-
-        : quote_impl<
-              F<U1>
-            , aux::has_type< F<U1> >::value
-            >
-
-    {
-    };
-};
-
-template<
-      template< typename P1, typename P2 > class F
-    , typename Tag = void_
-    >
-struct quote2
-{
-    template< typename U1, typename U2 > struct apply
-
-        : quote_impl<
-              F< U1,U2 >
-            , aux::has_type< F< U1,U2 > >::value
-            >
-
-    {
-    };
-};
-
-template<
-      template< typename P1, typename P2, typename P3 > class F
-    , typename Tag = void_
-    >
-struct quote3
-{
-    template< typename U1, typename U2, typename U3 > struct apply
-
-        : quote_impl<
-              F< U1,U2,U3 >
-            , aux::has_type< F< U1,U2,U3 > >::value
-            >
-
-    {
-    };
-};
-
-template<
-      template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename Tag = void_
-    >
-struct quote4
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4
-        >
-    struct apply
-
-        : quote_impl<
-              F< U1,U2,U3,U4 >
-            , aux::has_type< F< U1,U2,U3,U4 > >::value
-            >
-
-    {
-    };
-};
-
-template<
-      template<
-          typename P1, typename P2, typename P3, typename P4
-        , typename P5
-        >
-      class F
-    , typename Tag = void_
-    >
-struct quote5
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4
-        , typename U5
-        >
-    struct apply
-
-        : quote_impl<
-              F< U1,U2,U3,U4,U5 >
-            , aux::has_type< F< U1,U2,U3,U4,U5 > >::value
-            >
-
-    {
-    };
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/gcc/reverse_fold_impl.hpp b/boost/mpl/aux_/preprocessed/gcc/reverse_fold_impl.hpp
deleted file mode 100644
index c468684..0000000
--- a/boost/mpl/aux_/preprocessed/gcc/reverse_fold_impl.hpp
+++ /dev/null
@@ -1,231 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/reverse_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl;
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< 0,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef fwd_state0 bkwd_state0;
-    typedef bkwd_state0 state;
-    typedef iter0 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< 1,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    
-
-    typedef fwd_state1 bkwd_state1;
-    typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-    typedef bkwd_state0 state;
-    typedef iter1 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< 2,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    
-
-    typedef fwd_state2 bkwd_state2;
-    typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-    typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter2 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< 3,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    
-
-    typedef fwd_state3 bkwd_state3;
-    typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-    typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-    typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter3 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< 4,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef fwd_state4 bkwd_state4;
-    typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3;
-    typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-    typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-    typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter4 iterator;
-};
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef reverse_fold_impl<
-          ( (N - 4) < 0 ? 0 : N - 4 )
-        , iter4
-        , Last
-        , fwd_state4
-        , BackwardOp
-        , ForwardOp
-        > nested_chunk;
-
-    typedef typename nested_chunk::state bkwd_state4;
-    typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3;
-    typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-    typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-    typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef typename nested_chunk::iterator iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< -1,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef reverse_fold_impl<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State, typename deref<First>::type>::type
-        , BackwardOp
-        , ForwardOp
-        > nested_step;
-
-    typedef typename apply2<
-          BackwardOp
-        , typename nested_step::state
-        , typename deref<First>::type
-        >::type state;
-
-    typedef typename nested_step::iterator iterator;
-};
-
-template<
-      typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< -1,Last,Last,State,BackwardOp,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/gcc/reverse_iter_fold_impl.hpp b/boost/mpl/aux_/preprocessed/gcc/reverse_iter_fold_impl.hpp
deleted file mode 100644
index 658f92a..0000000
--- a/boost/mpl/aux_/preprocessed/gcc/reverse_iter_fold_impl.hpp
+++ /dev/null
@@ -1,231 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/reverse_iter_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl;
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< 0,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef fwd_state0 bkwd_state0;
-    typedef bkwd_state0 state;
-    typedef iter0 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< 1,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    
-
-    typedef fwd_state1 bkwd_state1;
-    typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-    typedef bkwd_state0 state;
-    typedef iter1 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< 2,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    
-
-    typedef fwd_state2 bkwd_state2;
-    typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-    typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter2 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< 3,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    
-
-    typedef fwd_state3 bkwd_state3;
-    typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-    typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-    typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter3 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< 4,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef fwd_state4 bkwd_state4;
-    typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3;
-    typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-    typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-    typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter4 iterator;
-};
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef reverse_iter_fold_impl<
-          ( (N - 4) < 0 ? 0 : N - 4 )
-        , iter4
-        , Last
-        , fwd_state4
-        , BackwardOp
-        , ForwardOp
-        > nested_chunk;
-
-    typedef typename nested_chunk::state bkwd_state4;
-    typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3;
-    typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-    typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-    typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef typename nested_chunk::iterator iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< -1,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef reverse_iter_fold_impl<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2< ForwardOp,State,First >::type
-        , BackwardOp
-        , ForwardOp
-        > nested_step;
-
-    typedef typename apply2<
-          BackwardOp
-        , typename nested_step::state
-        , First
-        >::type state;
-
-    typedef typename nested_step::iterator iterator;
-};
-
-template<
-      typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< -1,Last,Last,State,BackwardOp,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/gcc/set.hpp b/boost/mpl/aux_/preprocessed/gcc/set.hpp
deleted file mode 100644
index 5721922..0000000
--- a/boost/mpl/aux_/preprocessed/gcc/set.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/set.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct set;
-
-template<
-     
-    >
-struct set<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set0<  >
-{
-    typedef set0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct set<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set1<T0>
-{
-    typedef typename set1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct set<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set2< T0,T1 >
-{
-    typedef typename set2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct set<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set3< T0,T1,T2 >
-{
-    typedef typename set3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct set<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set4< T0,T1,T2,T3 >
-{
-    typedef typename set4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct set<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set5< T0,T1,T2,T3,T4 >
-{
-    typedef typename set5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename set6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename set7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename set8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : set15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename set15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : set16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename set16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : set17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename set17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : set18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename set18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : set19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename set19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct set
-    : set20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename set20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/gcc/set_c.hpp b/boost/mpl/aux_/preprocessed/gcc/set_c.hpp
deleted file mode 100644
index cbeb932..0000000
--- a/boost/mpl/aux_/preprocessed/gcc/set_c.hpp
+++ /dev/null
@@ -1,328 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/set_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct set_c;
-
-template<
-      typename T
-    >
-struct set_c<
-          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set0_c<T>
-{
-    typedef typename set0_c<T>::type type;
-};
-
-template<
-      typename T, long C0
-    >
-struct set_c<
-          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set1_c< T,C0 >
-{
-    typedef typename set1_c< T,C0 >::type type;
-};
-
-template<
-      typename T, long C0, long C1
-    >
-struct set_c<
-          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set2_c< T,C0,C1 >
-{
-    typedef typename set2_c< T,C0,C1 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2
-    >
-struct set_c<
-          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set3_c< T,C0,C1,C2 >
-{
-    typedef typename set3_c< T,C0,C1,C2 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3
-    >
-struct set_c<
-          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set4_c< T,C0,C1,C2,C3 >
-{
-    typedef typename set4_c< T,C0,C1,C2,C3 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set5_c< T,C0,C1,C2,C3,C4 >
-{
-    typedef typename set5_c< T,C0,C1,C2,C3,C4 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set6_c< T,C0,C1,C2,C3,C4,C5 >
-{
-    typedef typename set6_c< T,C0,C1,C2,C3,C4,C5 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set7_c< T,C0,C1,C2,C3,C4,C5,C6 >
-{
-    typedef typename set7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX
-        >
-    : set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >
-{
-    typedef typename set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >
-{
-    typedef typename set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >
-{
-    typedef typename set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >
-{
-    typedef typename set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >
-{
-    typedef typename set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >
-{
-    typedef typename set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set14_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        >
-{
-    typedef typename set14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set15_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        >
-{
-    typedef typename set15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set16_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15
-        >
-{
-    typedef typename set16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set17_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16
-        >
-{
-    typedef typename set17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, LONG_MAX, LONG_MAX
-        >
-    : set18_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17
-        >
-{
-    typedef typename set18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, LONG_MAX
-        >
-    : set19_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18
-        >
-{
-    typedef typename set19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct set_c
-    : set20_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, C19
-        >
-{
-    typedef typename set20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/gcc/shift_left.hpp b/boost/mpl/aux_/preprocessed/gcc/shift_left.hpp
deleted file mode 100644
index b5b181c..0000000
--- a/boost/mpl/aux_/preprocessed/gcc/shift_left.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/shift_left.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct shift_left_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< shift_left_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< shift_left_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct shift_left_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_left_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_left_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct shift_left_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct shift_left
-
-    : shift_left_impl<
-          typename shift_left_tag<N1>::type
-        , typename shift_left_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct shift_left_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N, typename S > struct apply
-
-        : integral_c<
-              typename N::value_type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N)::value
-                  << BOOST_MPL_AUX_VALUE_WKND(S)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/gcc/shift_right.hpp b/boost/mpl/aux_/preprocessed/gcc/shift_right.hpp
deleted file mode 100644
index f7a342e..0000000
--- a/boost/mpl/aux_/preprocessed/gcc/shift_right.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/shift_right.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct shift_right_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< shift_right_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< shift_right_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct shift_right_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_right_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_right_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct shift_right_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct shift_right
-
-    : shift_right_impl<
-          typename shift_right_tag<N1>::type
-        , typename shift_right_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct shift_right_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N, typename S > struct apply
-
-        : integral_c<
-              typename N::value_type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N)::value
-                  >> BOOST_MPL_AUX_VALUE_WKND(S)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/gcc/template_arity.hpp b/boost/mpl/aux_/preprocessed/gcc/template_arity.hpp
deleted file mode 100644
index daec4b8..0000000
--- a/boost/mpl/aux_/preprocessed/gcc/template_arity.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// *Preprocessed* version of the main "template_arity.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-template< int N > struct arity_tag
-{
-    typedef char (&type)[N + 1];
-};
-
-template<
-      int C1, int C2, int C3, int C4, int C5, int C6
-    >
-struct max_arity
-{
-    BOOST_STATIC_CONSTANT(int, value =
-          ( C6 > 0 ? C6 : ( C5 > 0 ? C5 : ( C4 > 0 ? C4 : ( C3 > 0 ? C3 : ( C2 > 0 ? C2 : ( C1 > 0 ? C1 : -1 ) ) ) ) ) )
-        );
-};
-
-arity_tag<0>::type arity_helper(...);
-
-template<
-      template< typename P1 > class F
-    , typename T1
-    >
-typename arity_tag<1>::type
-arity_helper(type_wrapper< F<T1> >, arity_tag<1>);
-
-template<
-      template< typename P1, typename P2 > class F
-    , typename T1, typename T2
-    >
-typename arity_tag<2>::type
-arity_helper(type_wrapper< F< T1,T2 > >, arity_tag<2>);
-
-template<
-      template< typename P1, typename P2, typename P3 > class F
-    , typename T1, typename T2, typename T3
-    >
-typename arity_tag<3>::type
-arity_helper(type_wrapper< F< T1,T2,T3 > >, arity_tag<3>);
-
-template<
-      template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename T1, typename T2, typename T3, typename T4
-    >
-typename arity_tag<4>::type
-arity_helper(type_wrapper< F< T1,T2,T3,T4 > >, arity_tag<4>);
-
-template<
-      template<
-          typename P1, typename P2, typename P3, typename P4
-        , typename P5
-        >
-      class F
-    , typename T1, typename T2, typename T3, typename T4, typename T5
-    >
-typename arity_tag<5>::type
-arity_helper(type_wrapper< F< T1,T2,T3,T4,T5 > >, arity_tag<5>);
-
-template<
-      template<
-          typename P1, typename P2, typename P3, typename P4
-        , typename P5, typename P6
-        >
-      class F
-    , typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename T6
-    >
-typename arity_tag<6>::type
-arity_helper(type_wrapper< F< T1,T2,T3,T4,T5,T6 > >, arity_tag<6>);
-template< typename F, int N >
-struct template_arity_impl
-{
-    BOOST_STATIC_CONSTANT(int, value =
-          sizeof(::boost::mpl::aux::arity_helper(type_wrapper<F>(), arity_tag<N>())) - 1
-        );
-};
-
-template< typename F >
-struct template_arity
-{
-    BOOST_STATIC_CONSTANT(int, value  = (
-          max_arity< template_arity_impl< F,1 >::value, template_arity_impl< F,2 >::value, template_arity_impl< F,3 >::value, template_arity_impl< F,4 >::value, template_arity_impl< F,5 >::value, template_arity_impl< F,6 >::value >::value
-        ));
-    typedef mpl::int_<value> type;
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/gcc/times.hpp b/boost/mpl/aux_/preprocessed/gcc/times.hpp
deleted file mode 100644
index cb97cc4..0000000
--- a/boost/mpl/aux_/preprocessed/gcc/times.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/times.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct times_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< times_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< times_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct times_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct times_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct times_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct times_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct times
-    : times< times< times< times< N1,N2 >, N3>, N4>, N5>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , times
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct times< N1,N2,N3,N4,na >
-
-    : times< times< times< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , times
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct times< N1,N2,N3,na,na >
-
-    : times< times< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , times
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct times< N1,N2,na,na,na >
-    : times_impl<
-          typename times_tag<N1>::type
-        , typename times_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , times
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, times)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct times_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  * BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/gcc/unpack_args.hpp b/boost/mpl/aux_/preprocessed/gcc/unpack_args.hpp
deleted file mode 100644
index 2194ce9..0000000
--- a/boost/mpl/aux_/preprocessed/gcc/unpack_args.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/unpack_args.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template< int size, typename F, typename Args >
-struct unpack_args_impl;
-
-template< typename F, typename Args >
-struct unpack_args_impl< 0,F,Args >
-    : apply0<
-          F
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 1,F,Args >
-    : apply1<
-          F
-        , typename at_c< Args,0 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 2,F,Args >
-    : apply2<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 3,F,Args >
-    : apply3<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        , typename at_c< Args,2 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 4,F,Args >
-    : apply4<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 5,F,Args >
-    : apply5<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
-        , typename at_c< Args,4 >::type
-        >
-{
-};
-
-}
-
-template<
-      typename F
-    >
-struct unpack_args
-{
-    template< typename Args > struct apply
-
-        : aux::unpack_args_impl< size<Args>::value,F, Args >
-
-    {
-    };
-};
-
-BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/gcc/vector.hpp b/boost/mpl/aux_/preprocessed/gcc/vector.hpp
deleted file mode 100644
index bfa9565..0000000
--- a/boost/mpl/aux_/preprocessed/gcc/vector.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/vector.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct vector;
-
-template<
-     
-    >
-struct vector<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector0<  >
-{
-    typedef vector0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct vector<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector1<T0>
-{
-    typedef typename vector1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct vector<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector2< T0,T1 >
-{
-    typedef typename vector2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct vector<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector3< T0,T1,T2 >
-{
-    typedef typename vector3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct vector<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector4< T0,T1,T2,T3 >
-{
-    typedef typename vector4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct vector<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector5< T0,T1,T2,T3,T4 >
-{
-    typedef typename vector5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : vector15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : vector16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : vector17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : vector18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : vector19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct vector
-    : vector20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/gcc/vector_c.hpp b/boost/mpl/aux_/preprocessed/gcc/vector_c.hpp
deleted file mode 100644
index 0f1560d..0000000
--- a/boost/mpl/aux_/preprocessed/gcc/vector_c.hpp
+++ /dev/null
@@ -1,309 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/vector_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct vector_c;
-
-template<
-      typename T
-    >
-struct vector_c<
-          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector0_c<T>
-{
-    typedef typename vector0_c<T>::type type;
-};
-
-template<
-      typename T, long C0
-    >
-struct vector_c<
-          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector1_c< T, T(C0) >
-{
-    typedef typename vector1_c< T, T(C0) >::type type;
-};
-
-template<
-      typename T, long C0, long C1
-    >
-struct vector_c<
-          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector2_c< T, T(C0), T(C1) >
-{
-    typedef typename vector2_c< T, T(C0), T(C1) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2
-    >
-struct vector_c<
-          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector3_c< T, T(C0), T(C1), T(C2) >
-{
-    typedef typename vector3_c< T, T(C0), T(C1), T(C2) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector4_c< T, T(C0), T(C1), T(C2), T(C3) >
-{
-    typedef typename vector4_c< T, T(C0), T(C1), T(C2), T(C3) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) >
-{
-    typedef typename vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) >
-{
-    typedef typename vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) >
-{
-    typedef typename vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX
-        >
-    : vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) >
-{
-    typedef typename vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) >
-{
-    typedef typename vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) >
-{
-    typedef typename vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) >
-{
-    typedef typename vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) >
-{
-    typedef typename vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) >
-{
-    typedef typename vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) >
-{
-    typedef typename vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) >
-{
-    typedef typename vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) >
-{
-    typedef typename vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) >
-{
-    typedef typename vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, LONG_MAX, LONG_MAX
-        >
-    : vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) >
-{
-    typedef typename vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, LONG_MAX
-        >
-    : vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) >
-{
-    typedef typename vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct vector_c
-    : vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) >
-{
-    typedef typename vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/msvc60/advance_backward.hpp b/boost/mpl/aux_/preprocessed/msvc60/advance_backward.hpp
deleted file mode 100644
index 36337c8..0000000
--- a/boost/mpl/aux_/preprocessed/msvc60/advance_backward.hpp
+++ /dev/null
@@ -1,132 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/advance_backward.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-template< long N > struct advance_backward;
-template<>
-struct advance_backward<0>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef iter0 type;
-    };
-
-    /// ETI workaround
-    template<> struct apply<int>
-    {
-        typedef int type;
-    };
-
-};
-
-template<>
-struct advance_backward<1>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef iter1 type;
-    };
-
-    /// ETI workaround
-    template<> struct apply<int>
-    {
-        typedef int type;
-    };
-
-};
-
-template<>
-struct advance_backward<2>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef iter2 type;
-    };
-
-    /// ETI workaround
-    template<> struct apply<int>
-    {
-        typedef int type;
-    };
-
-};
-
-template<>
-struct advance_backward<3>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef typename prior<iter2>::type iter3;
-        typedef iter3 type;
-    };
-
-    /// ETI workaround
-    template<> struct apply<int>
-    {
-        typedef int type;
-    };
-
-};
-
-template<>
-struct advance_backward<4>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef typename prior<iter2>::type iter3;
-        typedef typename prior<iter3>::type iter4;
-        typedef iter4 type;
-    };
-
-    /// ETI workaround
-    template<> struct apply<int>
-    {
-        typedef int type;
-    };
-
-};
-
-template< long N >
-struct advance_backward
-{
-    template< typename Iterator > struct apply
-    {
-        typedef typename apply_wrap1<
-              advance_backward<4>
-            , Iterator
-            >::type chunk_result_;
-
-        typedef typename apply_wrap1<
-              advance_backward<(
-                (N - 4) < 0
-                    ? 0
-                    : N - 4
-                    )>
-            , chunk_result_
-            >::type type;
-    };
-};
-
-}}}
-
diff --git a/boost/mpl/aux_/preprocessed/msvc60/advance_forward.hpp b/boost/mpl/aux_/preprocessed/msvc60/advance_forward.hpp
deleted file mode 100644
index 4ffbe78..0000000
--- a/boost/mpl/aux_/preprocessed/msvc60/advance_forward.hpp
+++ /dev/null
@@ -1,132 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/advance_forward.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-template< long N > struct advance_forward;
-template<>
-struct advance_forward<0>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef iter0 type;
-    };
-
-    /// ETI workaround
-    template<> struct apply<int>
-    {
-        typedef int type;
-    };
-
-};
-
-template<>
-struct advance_forward<1>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef iter1 type;
-    };
-
-    /// ETI workaround
-    template<> struct apply<int>
-    {
-        typedef int type;
-    };
-
-};
-
-template<>
-struct advance_forward<2>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef iter2 type;
-    };
-
-    /// ETI workaround
-    template<> struct apply<int>
-    {
-        typedef int type;
-    };
-
-};
-
-template<>
-struct advance_forward<3>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef typename next<iter2>::type iter3;
-        typedef iter3 type;
-    };
-
-    /// ETI workaround
-    template<> struct apply<int>
-    {
-        typedef int type;
-    };
-
-};
-
-template<>
-struct advance_forward<4>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef typename next<iter2>::type iter3;
-        typedef typename next<iter3>::type iter4;
-        typedef iter4 type;
-    };
-
-    /// ETI workaround
-    template<> struct apply<int>
-    {
-        typedef int type;
-    };
-
-};
-
-template< long N >
-struct advance_forward
-{
-    template< typename Iterator > struct apply
-    {
-        typedef typename apply_wrap1<
-              advance_forward<4>
-            , Iterator
-            >::type chunk_result_;
-
-        typedef typename apply_wrap1<
-              advance_forward<(
-                (N - 4) < 0
-                    ? 0
-                    : N - 4
-                    )>
-            , chunk_result_
-            >::type type;
-    };
-};
-
-}}}
-
diff --git a/boost/mpl/aux_/preprocessed/msvc60/and.hpp b/boost/mpl/aux_/preprocessed/msvc60/and.hpp
deleted file mode 100644
index 555c800..0000000
--- a/boost/mpl/aux_/preprocessed/msvc60/and.hpp
+++ /dev/null
@@ -1,73 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/and.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< bool C_ > struct and_impl
-{
-    template<
-          typename T1, typename T2, typename T3, typename T4
-        >
-    struct result_
-        : false_
-    {
-    };
-};
-
-template<> struct and_impl<true>
-{
-    template<
-          typename T1, typename T2, typename T3, typename T4
-        >
-    struct result_
-        : and_impl<
-              BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-            >::template result_< T2,T3,T4,true_ >
-    {
-    };
-};
-
-template<>
-struct and_impl<true>
-    ::result_< true_,true_,true_,true_ >
-        : true_
-{
-};
-
-} // namespace aux
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
-    , typename T3 = true_, typename T4 = true_, typename T5 = true_
-    >
-struct and_
-
-    : aux::and_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        >::template result_< T2,T3,T4,T5 >
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , and_
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC2(
-      2
-    , 5
-    , and_
-    )
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/msvc60/apply.hpp b/boost/mpl/aux_/preprocessed/msvc60/apply.hpp
deleted file mode 100644
index a3e2929..0000000
--- a/boost/mpl/aux_/preprocessed/msvc60/apply.hpp
+++ /dev/null
@@ -1,166 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/apply.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename F
-    >
-struct apply0
-
-{
-    typedef typename apply_wrap0<
-          typename lambda<F>::type
-       
-        >::type type;
-
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          1
-        , apply0
-        , (F )
-        )
-};
-
-/// workaround for ETI bug
-template<>
-struct apply0<int>
-{
-    typedef int type;
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply1
-
-{
-    typedef typename apply_wrap1<
-          typename lambda<F>::type
-        , T1
-        >::type type;
-
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          2
-        , apply1
-        , (F, T1)
-        )
-};
-
-/// workaround for ETI bug
-template<>
-struct apply1< int,int >
-{
-    typedef int type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply2
-
-{
-    typedef typename apply_wrap2<
-          typename lambda<F>::type
-        , T1, T2
-        >::type type;
-
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          3
-        , apply2
-        , (F, T1, T2)
-        )
-};
-
-/// workaround for ETI bug
-template<>
-struct apply2< int,int,int >
-{
-    typedef int type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply3
-
-{
-    typedef typename apply_wrap3<
-          typename lambda<F>::type
-        , T1, T2, T3
-        >::type type;
-
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          4
-        , apply3
-        , (F, T1, T2, T3)
-        )
-};
-
-/// workaround for ETI bug
-template<>
-struct apply3< int,int,int,int >
-{
-    typedef int type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply4
-
-{
-    typedef typename apply_wrap4<
-          typename lambda<F>::type
-        , T1, T2, T3, T4
-        >::type type;
-
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , apply4
-        , (F, T1, T2, T3, T4)
-        )
-};
-
-/// workaround for ETI bug
-template<>
-struct apply4< int,int,int,int,int >
-{
-    typedef int type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply5
-
-{
-    typedef typename apply_wrap5<
-          typename lambda<F>::type
-        , T1, T2, T3, T4, T5
-        >::type type;
-
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          6
-        , apply5
-        , (F, T1, T2, T3, T4, T5)
-        )
-};
-
-/// workaround for ETI bug
-template<>
-struct apply5< int,int,int,int,int,int >
-{
-    typedef int type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/msvc60/apply_fwd.hpp b/boost/mpl/aux_/preprocessed/msvc60/apply_fwd.hpp
deleted file mode 100644
index f0f86c1..0000000
--- a/boost/mpl/aux_/preprocessed/msvc60/apply_fwd.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/apply_fwd.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename F
-    >
-struct apply0;
-
-template<
-      typename F, typename T1
-    >
-struct apply1;
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply2;
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply3;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply4;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply5;
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/msvc60/apply_wrap.hpp b/boost/mpl/aux_/preprocessed/msvc60/apply_wrap.hpp
deleted file mode 100644
index 4e89507..0000000
--- a/boost/mpl/aux_/preprocessed/msvc60/apply_wrap.hpp
+++ /dev/null
@@ -1,247 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/apply_wrap.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template< typename F>
-struct msvc_apply0
-{
-    template< bool > struct f_ : F {};
-    template<> struct f_<true>
-    {
-        template< typename P  = int > struct apply
-        {
-            typedef int type;
-        };
-    };
-
-    template< typename T  = int > struct result_
-        : f_< aux::msvc_never_true<F>::value >
-            ::template apply<>
-    {
-    };
-
-};
-
-template<
-      typename F
-    >
-struct apply_wrap0
-{
-    typedef typename msvc_apply0<F>::template result_<
-         
-        >::type type;
-};
-
-/// workaround for ETI bug
-template<>
-struct apply_wrap0<int>
-{
-    typedef int type;
-};
-
-template< typename F>
-struct msvc_apply1
-{
-    template< bool > struct f_ : F {};
-    template<> struct f_<true>
-    {
-        template< typename P1 > struct apply
-        {
-            typedef int type;
-        };
-    };
-
-    template< typename T1 > struct result_
-        : f_< aux::msvc_never_true<F>::value >
-            ::template apply<T1>
-    {
-    };
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply_wrap1
-{
-    typedef typename msvc_apply1<F>::template result_<
-          T1
-        >::type type;
-};
-
-/// workaround for ETI bug
-template<>
-struct apply_wrap1< int,int >
-{
-    typedef int type;
-};
-
-template< typename F>
-struct msvc_apply2
-{
-    template< bool > struct f_ : F {};
-    template<> struct f_<true>
-    {
-        template< typename P1, typename P2 > struct apply
-        {
-            typedef int type;
-        };
-    };
-
-    template< typename T1, typename T2 > struct result_
-        : f_< aux::msvc_never_true<F>::value >
-            ::template apply< T1,T2 >
-    {
-    };
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply_wrap2
-{
-    typedef typename msvc_apply2<F>::template result_<
-          T1, T2
-        >::type type;
-};
-
-/// workaround for ETI bug
-template<>
-struct apply_wrap2< int,int,int >
-{
-    typedef int type;
-};
-
-template< typename F>
-struct msvc_apply3
-{
-    template< bool > struct f_ : F {};
-    template<> struct f_<true>
-    {
-        template< typename P1, typename P2, typename P3 > struct apply
-        {
-            typedef int type;
-        };
-    };
-
-    template< typename T1, typename T2, typename T3 > struct result_
-        : f_< aux::msvc_never_true<F>::value >
-            ::template apply< T1,T2,T3 >
-    {
-    };
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply_wrap3
-{
-    typedef typename msvc_apply3<F>::template result_<
-          T1, T2, T3
-        >::type type;
-};
-
-/// workaround for ETI bug
-template<>
-struct apply_wrap3< int,int,int,int >
-{
-    typedef int type;
-};
-
-template< typename F>
-struct msvc_apply4
-{
-    template< bool > struct f_ : F {};
-    template<> struct f_<true>
-    {
-        template<
-              typename P1, typename P2, typename P3, typename P4
-            >
-        struct apply
-        {
-            typedef int type;
-        };
-    };
-
-    template<
-          typename T1, typename T2, typename T3, typename T4
-        >
-    struct result_
-        : f_< aux::msvc_never_true<F>::value >
-            ::template apply< T1,T2,T3,T4 >
-    {
-    };
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply_wrap4
-{
-    typedef typename msvc_apply4<F>::template result_<
-          T1, T2, T3, T4
-        >::type type;
-};
-
-/// workaround for ETI bug
-template<>
-struct apply_wrap4< int,int,int,int,int >
-{
-    typedef int type;
-};
-
-template< typename F>
-struct msvc_apply5
-{
-    template< bool > struct f_ : F {};
-    template<> struct f_<true>
-    {
-        template<
-              typename P1, typename P2, typename P3, typename P4
-            , typename P5
-            >
-        struct apply
-        {
-            typedef int type;
-        };
-    };
-
-    template<
-          typename T1, typename T2, typename T3, typename T4
-        , typename T5
-        >
-    struct result_
-        : f_< aux::msvc_never_true<F>::value >
-            ::template apply< T1,T2,T3,T4,T5 >
-    {
-    };
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply_wrap5
-{
-    typedef typename msvc_apply5<F>::template result_<
-          T1, T2, T3, T4, T5
-        >::type type;
-};
-
-/// workaround for ETI bug
-template<>
-struct apply_wrap5< int,int,int,int,int,int >
-{
-    typedef int type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/msvc60/arg.hpp b/boost/mpl/aux_/preprocessed/msvc60/arg.hpp
deleted file mode 100644
index 6f2f8a8..0000000
--- a/boost/mpl/aux_/preprocessed/msvc60/arg.hpp
+++ /dev/null
@@ -1,123 +0,0 @@
-
-// Copyright Peter Dimov 2001-2002
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/arg.hpp" header
-// -- DO NOT modify by hand!
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-template<> struct arg< -1 >
-{
-    BOOST_STATIC_CONSTANT(int, value  = -1);
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U1 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<1>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 1);
-    typedef arg<2> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U1 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<2>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 2);
-    typedef arg<3> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U2 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<3>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 3);
-    typedef arg<4> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U3 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<4>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 4);
-    typedef arg<5> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U4 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<5>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 5);
-    typedef arg<6> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U5 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg)
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
diff --git a/boost/mpl/aux_/preprocessed/msvc60/basic_bind.hpp b/boost/mpl/aux_/preprocessed/msvc60/basic_bind.hpp
deleted file mode 100644
index 4f12a40..0000000
--- a/boost/mpl/aux_/preprocessed/msvc60/basic_bind.hpp
+++ /dev/null
@@ -1,328 +0,0 @@
-
-// Copyright Peter Dimov 2001
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/basic_bind.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< bool >
-struct resolve_arg_impl
-{
-    template<
-          typename T, typename U1, typename U2, typename U3
-        , typename U4, typename U5
-        >
-    struct result_
-    {
-        typedef T type;
-    };
-};
-
-template<>
-struct resolve_arg_impl<true>
-{
-    template<
-          typename T, typename U1, typename U2, typename U3
-        , typename U4, typename U5
-        >
-    struct result_
-    {
-        typedef typename apply_wrap5<
-              T
-            , U1, U2, U3, U4, U5
-            >::type type;
-    };
-};
-
-template< typename T > struct is_bind_template;
-
-template<
-      typename T, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg
-    : resolve_arg_impl< is_bind_template<T>::value >
-            ::template result_< T,U1,U2,U3,U4,U5 >
-{
-};
-
-template< int arity_ > struct bind_chooser;
-
-aux::no_tag is_bind_helper(...);
-template< typename T > aux::no_tag is_bind_helper(protect<T>*);
-
-template< int N >
-aux::yes_tag is_bind_helper(arg<N>*);
-
-template< bool is_ref_  = true >
-struct is_bind_template_impl
-{
-    template< typename T > struct result_
-    {
-        BOOST_STATIC_CONSTANT(bool, value  = false);
-    };
-};
-
-template<>
-struct is_bind_template_impl<false>
-{
-    template< typename T > struct result_
-    {
-        BOOST_STATIC_CONSTANT(bool, value =
-              sizeof(aux::is_bind_helper(static_cast<T*>(0)))
-                == sizeof(aux::yes_tag)
-            );
-    };
-};
-
-template< typename T > struct is_bind_template
-    : is_bind_template_impl< ::boost::detail::is_reference_impl<T>::value >
-        ::template result_<T>
-{
-};
-
-} // namespace aux
-
-template<
-      typename F
-    >
-struct bind0
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-
-     public:
-        typedef typename apply_wrap0<
-              f_
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F
-    >
-aux::yes_tag
-is_bind_helper(bind0<F>*);
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
-
-template<
-      typename F, typename T1
-    >
-struct bind1
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-
-     public:
-        typedef typename apply_wrap1<
-              f_
-            , typename t1::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1
-    >
-aux::yes_tag
-is_bind_helper(bind1< F,T1 >*);
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-
-     public:
-        typedef typename apply_wrap2<
-              f_
-            , typename t1::type, typename t2::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2
-    >
-aux::yes_tag
-is_bind_helper(bind2< F,T1,T2 >*);
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-
-     public:
-        typedef typename apply_wrap3<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-aux::yes_tag
-is_bind_helper(bind3< F,T1,T2,T3 >*);
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind4
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
-
-     public:
-        typedef typename apply_wrap4<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-aux::yes_tag
-is_bind_helper(bind4< F,T1,T2,T3,T4 >*);
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind5
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
-        typedef aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 > t5;
-
-     public:
-        typedef typename apply_wrap5<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type, typename t5::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-aux::yes_tag
-is_bind_helper(bind5< F,T1,T2,T3,T4,T5 >*);
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/msvc60/bind.hpp b/boost/mpl/aux_/preprocessed/msvc60/bind.hpp
deleted file mode 100644
index 53c76e8..0000000
--- a/boost/mpl/aux_/preprocessed/msvc60/bind.hpp
+++ /dev/null
@@ -1,432 +0,0 @@
-
-// Copyright Peter Dimov 2001
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/bind.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< bool >
-struct resolve_arg_impl
-{
-    template<
-          typename T, typename U1, typename U2, typename U3
-        , typename U4, typename U5
-        >
-    struct result_
-    {
-        typedef T type;
-    };
-};
-
-template<>
-struct resolve_arg_impl<true>
-{
-    template<
-          typename T, typename U1, typename U2, typename U3
-        , typename U4, typename U5
-        >
-    struct result_
-    {
-        typedef typename apply_wrap5<
-              T
-            , U1, U2, U3, U4, U5
-            >::type type;
-    };
-};
-
-template< typename T > struct is_bind_template;
-
-template<
-      typename T, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg
-    : resolve_arg_impl< is_bind_template<T>::value >
-            ::template result_< T,U1,U2,U3,U4,U5 >
-{
-};
-
-template< typename T >
-struct replace_unnamed_arg_impl
-{
-    template< typename Arg > struct result_
-    {
-        typedef Arg next;
-        typedef T type;
-    };
-};
-
-template<>
-struct replace_unnamed_arg_impl< arg< -1 > >
-{
-    template< typename Arg > struct result_
-    {
-        typedef typename next<Arg>::type next;
-        typedef Arg type;
-    };
-};
-
-template< typename T, typename Arg >
-struct replace_unnamed_arg
-    : replace_unnamed_arg_impl<T>::template result_<Arg>
-{
-};
-
-template< int arity_ > struct bind_chooser;
-
-aux::no_tag is_bind_helper(...);
-template< typename T > aux::no_tag is_bind_helper(protect<T>*);
-
-template< int N >
-aux::yes_tag is_bind_helper(arg<N>*);
-
-template< bool is_ref_  = true >
-struct is_bind_template_impl
-{
-    template< typename T > struct result_
-    {
-        BOOST_STATIC_CONSTANT(bool, value  = false);
-    };
-};
-
-template<>
-struct is_bind_template_impl<false>
-{
-    template< typename T > struct result_
-    {
-        BOOST_STATIC_CONSTANT(bool, value =
-              sizeof(aux::is_bind_helper(static_cast<T*>(0)))
-                == sizeof(aux::yes_tag)
-            );
-    };
-};
-
-template< typename T > struct is_bind_template
-    : is_bind_template_impl< ::boost::detail::is_reference_impl<T>::value >
-        ::template result_<T>
-{
-};
-
-} // namespace aux
-
-template<
-      typename F
-    >
-struct bind0
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-     public:
-        typedef typename apply_wrap0<
-              f_
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F
-    >
-aux::yes_tag
-is_bind_helper(bind0<F>*);
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
-
-template<
-      typename F, typename T1
-    >
-struct bind1
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-     public:
-        typedef typename apply_wrap1<
-              f_
-            , typename t1::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1
-    >
-aux::yes_tag
-is_bind_helper(bind1< F,T1 >*);
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-     public:
-        typedef typename apply_wrap2<
-              f_
-            , typename t1::type, typename t2::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2
-    >
-aux::yes_tag
-is_bind_helper(bind2< F,T1,T2 >*);
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-     public:
-        typedef typename apply_wrap3<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-aux::yes_tag
-is_bind_helper(bind3< F,T1,T2,T3 >*);
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind4
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef aux::replace_unnamed_arg< T4,n4 > r4;
-        typedef typename r4::type a4;
-        typedef typename r4::next n5;
-        typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
-        ///
-     public:
-        typedef typename apply_wrap4<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-aux::yes_tag
-is_bind_helper(bind4< F,T1,T2,T3,T4 >*);
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind5
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef aux::replace_unnamed_arg< T4,n4 > r4;
-        typedef typename r4::type a4;
-        typedef typename r4::next n5;
-        typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
-        ///
-        typedef aux::replace_unnamed_arg< T5,n5 > r5;
-        typedef typename r5::type a5;
-        typedef typename r5::next n6;
-        typedef aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 > t5;
-        ///
-     public:
-        typedef typename apply_wrap5<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type, typename t5::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-aux::yes_tag
-is_bind_helper(bind5< F,T1,T2,T3,T4,T5 >*);
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/msvc60/bind_fwd.hpp b/boost/mpl/aux_/preprocessed/msvc60/bind_fwd.hpp
deleted file mode 100644
index 022cba3..0000000
--- a/boost/mpl/aux_/preprocessed/msvc60/bind_fwd.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/bind_fwd.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename F
-    >
-struct bind0;
-
-template<
-      typename F, typename T1
-    >
-struct bind1;
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2;
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind4;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind5;
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/msvc60/bitand.hpp b/boost/mpl/aux_/preprocessed/msvc60/bitand.hpp
deleted file mode 100644
index e96cf1a..0000000
--- a/boost/mpl/aux_/preprocessed/msvc60/bitand.hpp
+++ /dev/null
@@ -1,149 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/bitand.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
-    >
-struct bitand_impl
-    : if_c<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< bitand_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< bitand_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitand_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct bitand_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct bitand_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitand_tag
-{
-    typedef typename T::tag type;
-};
-
-/// forward declaration
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct bitand_2;
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct bitand_
-
-    : if_<
-
-          is_na<N3>
-        , bitand_2< N1,N2 >
-        , bitand_<
-              bitand_2< N1,N2 >
-            , N3, N4, N5
-            >
-        >::type
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitand_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1
-    , typename N2
-    >
-struct bitand_2
-    : aux::msvc_eti_base< typename apply_wrap2<
-          bitand_impl<
-              typename bitand_tag<N1>::type
-            , typename bitand_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitand_2, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_)
-
-}}
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct bitand_wknd
-{
-    BOOST_STATIC_CONSTANT(T, value  = (n1 & n2));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct bitand_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-        : aux::bitand_wknd<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , N1::value
-            , N2::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/msvc60/bitor.hpp b/boost/mpl/aux_/preprocessed/msvc60/bitor.hpp
deleted file mode 100644
index bbc96ab..0000000
--- a/boost/mpl/aux_/preprocessed/msvc60/bitor.hpp
+++ /dev/null
@@ -1,149 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/bitor.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
-    >
-struct bitor_impl
-    : if_c<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< bitor_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< bitor_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitor_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct bitor_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct bitor_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitor_tag
-{
-    typedef typename T::tag type;
-};
-
-/// forward declaration
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct bitor_2;
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct bitor_
-
-    : if_<
-
-          is_na<N3>
-        , bitor_2< N1,N2 >
-        , bitor_<
-              bitor_2< N1,N2 >
-            , N3, N4, N5
-            >
-        >::type
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitor_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1
-    , typename N2
-    >
-struct bitor_2
-    : aux::msvc_eti_base< typename apply_wrap2<
-          bitor_impl<
-              typename bitor_tag<N1>::type
-            , typename bitor_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitor_2, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_)
-
-}}
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct bitor_wknd
-{
-    BOOST_STATIC_CONSTANT(T, value  = (n1 | n2));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct bitor_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-        : aux::bitor_wknd<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , N1::value
-            , N2::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/msvc60/bitxor.hpp b/boost/mpl/aux_/preprocessed/msvc60/bitxor.hpp
deleted file mode 100644
index 4c14297..0000000
--- a/boost/mpl/aux_/preprocessed/msvc60/bitxor.hpp
+++ /dev/null
@@ -1,149 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/bitxor.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
-    >
-struct bitxor_impl
-    : if_c<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< bitxor_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< bitxor_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitxor_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct bitxor_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct bitxor_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitxor_tag
-{
-    typedef typename T::tag type;
-};
-
-/// forward declaration
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct bitxor_2;
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct bitxor_
-
-    : if_<
-
-          is_na<N3>
-        , bitxor_2< N1,N2 >
-        , bitxor_<
-              bitxor_2< N1,N2 >
-            , N3, N4, N5
-            >
-        >::type
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitxor_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1
-    , typename N2
-    >
-struct bitxor_2
-    : aux::msvc_eti_base< typename apply_wrap2<
-          bitxor_impl<
-              typename bitxor_tag<N1>::type
-            , typename bitxor_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitxor_2, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_)
-
-}}
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct bitxor_wknd
-{
-    BOOST_STATIC_CONSTANT(T, value  = (n1 ^ n2));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct bitxor_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-        : aux::bitxor_wknd<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , N1::value
-            , N2::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/msvc60/deque.hpp b/boost/mpl/aux_/preprocessed/msvc60/deque.hpp
deleted file mode 100644
index a0445d9..0000000
--- a/boost/mpl/aux_/preprocessed/msvc60/deque.hpp
+++ /dev/null
@@ -1,556 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/deque.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct deque_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct deque_chooser<0>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef vector0<
-             
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<1>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector1<
-              T0
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<2>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector2<
-              T0, T1
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<3>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector3<
-              T0, T1, T2
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<4>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector4<
-              T0, T1, T2, T3
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<5>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector5<
-              T0, T1, T2, T3, T4
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<6>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector6<
-              T0, T1, T2, T3, T4, T5
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<7>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector7<
-              T0, T1, T2, T3, T4, T5, T6
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<8>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector8<
-              T0, T1, T2, T3, T4, T5, T6, T7
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<9>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector9<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<10>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector10<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<11>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector11<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<12>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector12<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<13>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector13<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<14>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector14<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<15>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector15<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<16>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector16<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<17>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector17<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<18>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector18<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<19>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector19<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<20>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector20<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_deque_arg
-{
-    BOOST_STATIC_CONSTANT(bool, value  = true);
-};
-
-template<>
-struct is_deque_arg<na>
-{
-    BOOST_STATIC_CONSTANT(bool, value  = false);
-};
-
-template<
-      typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename T6, typename T7, typename T8, typename T9, typename T10
-    , typename T11, typename T12, typename T13, typename T14, typename T15
-    , typename T16, typename T17, typename T18, typename T19, typename T20
-    >
-struct deque_count_args
-{
-    BOOST_STATIC_CONSTANT(int, value =
-          is_deque_arg<T1>::value + is_deque_arg<T2>::value 
-        + is_deque_arg<T3>::value + is_deque_arg<T4>::value 
-        + is_deque_arg<T5>::value + is_deque_arg<T6>::value 
-        + is_deque_arg<T7>::value + is_deque_arg<T8>::value 
-        + is_deque_arg<T9>::value + is_deque_arg<T10>::value 
-        + is_deque_arg<T11>::value + is_deque_arg<T12>::value 
-        + is_deque_arg<T13>::value + is_deque_arg<T14>::value 
-        + is_deque_arg<T15>::value + is_deque_arg<T16>::value 
-        + is_deque_arg<T17>::value + is_deque_arg<T18>::value 
-        + is_deque_arg<T19>::value + is_deque_arg<T20>::value
-        );
-
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct deque_impl
-{
-    typedef aux::deque_count_args<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        > arg_num_;
-
-    typedef typename aux::deque_chooser< arg_num_::value >
-        ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct deque
-    : aux::deque_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type
-{
-    typedef typename aux::deque_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/msvc60/divides.hpp b/boost/mpl/aux_/preprocessed/msvc60/divides.hpp
deleted file mode 100644
index 7681491..0000000
--- a/boost/mpl/aux_/preprocessed/msvc60/divides.hpp
+++ /dev/null
@@ -1,148 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/divides.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
-    >
-struct divides_impl
-    : if_c<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< divides_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< divides_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct divides_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct divides_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct divides_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct divides_tag
-{
-    typedef typename T::tag type;
-};
-
-/// forward declaration
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct divides2;
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct divides
-
-    : if_<
-
-          is_na<N3>
-        , divides2< N1,N2 >
-        , divides<
-              divides2< N1,N2 >
-            , N3, N4, N5
-            >
-        >::type
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , divides
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1
-    , typename N2
-    >
-struct divides2
-    : aux::msvc_eti_base< typename apply_wrap2<
-          divides_impl<
-              typename divides_tag<N1>::type
-            , typename divides_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, divides2, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, divides)
-
-}}
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct divides_wknd
-{
-    BOOST_STATIC_CONSTANT(T, value  = (n1 / n2));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct divides_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-        : aux::divides_wknd<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , N1::value
-            , N2::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/msvc60/equal_to.hpp b/boost/mpl/aux_/preprocessed/msvc60/equal_to.hpp
deleted file mode 100644
index 64e9065..0000000
--- a/boost/mpl/aux_/preprocessed/msvc60/equal_to.hpp
+++ /dev/null
@@ -1,102 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/equal_to.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
-    >
-struct equal_to_impl
-    : if_c<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct equal_to_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct equal_to_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct equal_to_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct equal_to_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct equal_to
-    : aux::msvc_eti_base< typename apply_wrap2<
-          equal_to_impl<
-              typename equal_to_tag<N1>::type
-            , typename equal_to_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct equal_to_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-    {
-        BOOST_STATIC_CONSTANT(bool, value =
-             ( BOOST_MPL_AUX_VALUE_WKND(N1)::value ==
-             BOOST_MPL_AUX_VALUE_WKND(N2)::value )
-            );
-        typedef bool_<value> type;
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/msvc60/fold_impl.hpp b/boost/mpl/aux_/preprocessed/msvc60/fold_impl.hpp
deleted file mode 100644
index 4b3c690..0000000
--- a/boost/mpl/aux_/preprocessed/msvc60/fold_impl.hpp
+++ /dev/null
@@ -1,293 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl;
-
-template< int N >
-struct fold_chunk;
-
-template<> struct fold_chunk<0>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef state0 state;
-        typedef iter0 iterator;
-    };
-
-    /// ETI workaround
-    template<> struct result_< int,int,int,int >
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-
-};
-
-template<> struct fold_chunk<1>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        
-
-        typedef state1 state;
-        typedef iter1 iterator;
-    };
-
-    /// ETI workaround
-    template<> struct result_< int,int,int,int >
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-
-};
-
-template<> struct fold_chunk<2>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        
-
-        typedef state2 state;
-        typedef iter2 iterator;
-    };
-
-    /// ETI workaround
-    template<> struct result_< int,int,int,int >
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-
-};
-
-template<> struct fold_chunk<3>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        
-
-        typedef state3 state;
-        typedef iter3 iterator;
-    };
-
-    /// ETI workaround
-    template<> struct result_< int,int,int,int >
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-
-};
-
-template<> struct fold_chunk<4>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp, state3, typename deref<iter3>::type >::type state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef state4 state;
-        typedef iter4 iterator;
-    };
-
-    /// ETI workaround
-    template<> struct result_< int,int,int,int >
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-
-};
-
-template< int N >
-struct fold_chunk
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef fold_impl<
-              4
-            , First
-            , Last
-            , State
-            , ForwardOp
-            > chunk_;
-
-        typedef fold_impl<
-              ( (N - 4) < 0 ? 0 : N - 4 )
-            , typename chunk_::iterator
-            , Last
-            , typename chunk_::state
-            , ForwardOp
-            > res_;
-
-        typedef typename res_::state state;
-        typedef typename res_::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_step;
-
-template<
-      typename Last
-    , typename State
-    >
-struct fold_null_step
-{
-    typedef Last iterator;
-    typedef State state;
-};
-
-template<>
-struct fold_chunk< -1 >
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef typename if_<
-              typename is_same< First,Last >::type
-            , fold_null_step< Last,State >
-            , fold_step< First,Last,State,ForwardOp >
-            >::type res_;
-
-        typedef typename res_::state state;
-        typedef typename res_::iterator iterator;
-    };
-
-    /// ETI workaround
-    template<> struct result_< int,int,int,int >
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_step
-{
-    typedef fold_chunk< -1 >::template result_<
-          typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State, typename deref<First>::type>::type
-        , ForwardOp
-        > chunk_;
-
-    typedef typename chunk_::state state;
-    typedef typename chunk_::iterator iterator;
-};
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl
-    : fold_chunk<N>
-        ::template result_< First,Last,State,ForwardOp >
-{
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/msvc60/full_lambda.hpp b/boost/mpl/aux_/preprocessed/msvc60/full_lambda.hpp
deleted file mode 100644
index bf81873..0000000
--- a/boost/mpl/aux_/preprocessed/msvc60/full_lambda.hpp
+++ /dev/null
@@ -1,554 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/full_lambda.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template<
-      bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false
-    , bool C5 = false
-    >
-struct lambda_or
-    : true_
-{
-};
-
-template<>
-struct lambda_or< false,false,false,false,false >
-    : false_
-{
-};
-
-} // namespace aux
-
-template<
-      typename T
-    , typename Tag
-   
-    >
-struct lambda
-{
-    typedef false_ is_le;
-    typedef T result_;
-    typedef T type;
-};
-
-template<
-      typename T
-    >
-struct is_lambda_expression
-    : lambda<T>::is_le
-{
-};
-
-template< int N, typename Tag >
-struct lambda< arg<N>, Tag >
-{
-    typedef true_ is_le;
-    typedef mpl::arg<N> result_; // qualified for the sake of MIPSpro 7.41
-    typedef mpl::protect<result_> type;
-};
-
-template<
-      typename F
-    , typename Tag
-    >
-struct lambda<
-          bind0<F>
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind0<
-          F
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1 > class F
-    , typename L1
-    >
-struct le_result1
-{
-    typedef F<
-          typename L1::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1 > class F
-    , typename L1
-    >
-struct le_result1< true_,Tag,F,L1 >
-{
-    typedef bind1<
-          quote1< F,Tag >
-        , typename L1::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1 > class F
-    , typename T1
-    , typename Tag
-    >
-struct lambda<
-          F<T1>
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef typename l1::is_le is_le1;
-    typedef typename aux::lambda_or<
-          is_le1::value
-        >::type is_le;
-
-    typedef aux::le_result1<
-          is_le, Tag, F, l1
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1
-    , typename Tag
-    >
-struct lambda<
-          bind1< F,T1 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind1<
-          F
-        , T1
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2 > class F
-    , typename L1, typename L2
-    >
-struct le_result2
-{
-    typedef F<
-          typename L1::type, typename L2::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2 > class F
-    , typename L1, typename L2
-    >
-struct le_result2< true_,Tag,F,L1,L2 >
-{
-    typedef bind2<
-          quote2< F,Tag >
-        , typename L1::result_, typename L2::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2 > class F
-    , typename T1, typename T2
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value
-        >::type is_le;
-
-    typedef aux::le_result2<
-          is_le, Tag, F, l1, l2
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    , typename Tag
-    >
-struct lambda<
-          bind2< F,T1,T2 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind2<
-          F
-        , T1, T2
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3 > class F
-    , typename L1, typename L2, typename L3
-    >
-struct le_result3
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3 > class F
-    , typename L1, typename L2, typename L3
-    >
-struct le_result3< true_,Tag,F,L1,L2,L3 >
-{
-    typedef bind3<
-          quote3< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2, typename P3 > class F
-    , typename T1, typename T2, typename T3
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value
-        >::type is_le;
-
-    typedef aux::le_result3<
-          is_le, Tag, F, l1, l2, l3
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    , typename Tag
-    >
-struct lambda<
-          bind3< F,T1,T2,T3 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind3<
-          F
-        , T1, T2, T3
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename L1, typename L2, typename L3, typename L4
-    >
-struct le_result4
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        , typename L4::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename L1, typename L2, typename L3, typename L4
-    >
-struct le_result4< true_,Tag,F,L1,L2,L3,L4 >
-{
-    typedef bind4<
-          quote4< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        , typename L4::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename T1, typename T2, typename T3, typename T4
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3,T4 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    typedef lambda< T4,Tag > l4;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    typedef typename l4::is_le is_le4;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value, is_le4::value
-        >::type is_le;
-
-    typedef aux::le_result4<
-          is_le, Tag, F, l1, l2, l3, l4
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename Tag
-    >
-struct lambda<
-          bind4< F,T1,T2,T3,T4 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind4<
-          F
-        , T1, T2, T3, T4
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
-    , typename L1, typename L2, typename L3, typename L4, typename L5
-    >
-struct le_result5
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        , typename L4::type, typename L5::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
-    , typename L1, typename L2, typename L3, typename L4, typename L5
-    >
-struct le_result5< true_,Tag,F,L1,L2,L3,L4,L5 >
-{
-    typedef bind5<
-          quote5< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        , typename L4::result_, typename L5::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template<
-          typename P1, typename P2, typename P3, typename P4
-        , typename P5
-        >
-      class F
-    , typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3,T4,T5 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    typedef lambda< T4,Tag > l4;
-    typedef lambda< T5,Tag > l5;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    typedef typename l4::is_le is_le4;
-    typedef typename l5::is_le is_le5;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value, is_le4::value
-        , is_le5::value
-        >::type is_le;
-
-    typedef aux::le_result5<
-          is_le, Tag, F, l1, l2, l3, l4, l5
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    , typename Tag
-    >
-struct lambda<
-          bind5< F,T1,T2,T3,T4,T5 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind5<
-          F
-        , T1, T2, T3, T4, T5
-        > result_;
-
-    typedef result_ type;
-};
-
-/// special case for 'protect'
-template< typename T, typename Tag >
-struct lambda< mpl::protect<T>, Tag >
-{
-    typedef false_ is_le;
-    typedef mpl::protect<T> result_;
-    typedef result_ type;
-};
-
-/// specializations for the main 'bind' form
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    , typename Tag
-    >
-struct lambda<
-          bind< F,T1,T2,T3,T4,T5 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind< F,T1,T2,T3,T4,T5 > result_;
-    typedef result_ type;
-};
-
-/// workaround for MWCW 8.3+/EDG < 303, leads to ambiguity on Digital Mars
-
-template<
-      typename F, typename Tag1, typename Tag2
-    >
-struct lambda<
-          lambda< F,Tag1 >
-        , Tag2
-        >
-{
-    typedef lambda< F,Tag2 > l1;
-    typedef lambda< Tag1,Tag2 > l2;
-    typedef typename l1::is_le is_le;
-    typedef aux::le_result2<is_le, Tag2, mpl::lambda, l1, l2> le_result_;
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, lambda)
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/msvc60/greater.hpp b/boost/mpl/aux_/preprocessed/msvc60/greater.hpp
deleted file mode 100644
index 5f5662d..0000000
--- a/boost/mpl/aux_/preprocessed/msvc60/greater.hpp
+++ /dev/null
@@ -1,102 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/greater.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
-    >
-struct greater_impl
-    : if_c<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< greater_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< greater_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct greater_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct greater_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct greater_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct greater_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct greater
-    : aux::msvc_eti_base< typename apply_wrap2<
-          greater_impl<
-              typename greater_tag<N1>::type
-            , typename greater_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, greater)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct greater_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-    {
-        BOOST_STATIC_CONSTANT(bool, value =
-             ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >
-             BOOST_MPL_AUX_VALUE_WKND(N2)::value )
-            );
-        typedef bool_<value> type;
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/msvc60/greater_equal.hpp b/boost/mpl/aux_/preprocessed/msvc60/greater_equal.hpp
deleted file mode 100644
index ae776fc..0000000
--- a/boost/mpl/aux_/preprocessed/msvc60/greater_equal.hpp
+++ /dev/null
@@ -1,102 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/greater_equal.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
-    >
-struct greater_equal_impl
-    : if_c<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< greater_equal_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct greater_equal_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct greater_equal_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct greater_equal_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct greater_equal_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct greater_equal
-    : aux::msvc_eti_base< typename apply_wrap2<
-          greater_equal_impl<
-              typename greater_equal_tag<N1>::type
-            , typename greater_equal_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct greater_equal_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-    {
-        BOOST_STATIC_CONSTANT(bool, value =
-             ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >=
-             BOOST_MPL_AUX_VALUE_WKND(N2)::value )
-            );
-        typedef bool_<value> type;
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/msvc60/inherit.hpp b/boost/mpl/aux_/preprocessed/msvc60/inherit.hpp
deleted file mode 100644
index 233a1ec..0000000
--- a/boost/mpl/aux_/preprocessed/msvc60/inherit.hpp
+++ /dev/null
@@ -1,166 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/inherit.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template< bool C1, bool C2 >
-struct inherit2_impl
-{
-    template< typename Derived, typename T1, typename T2 > struct result_
-        : T1, T2
-    {
-        typedef Derived type_;
-    };
-};
-
-template<>
-struct inherit2_impl< false,true >
-{
-    template< typename Derived, typename T1, typename T2 > struct result_
-        : T1
-    {
-        typedef T1 type_;
-    };
-};
-
-template<>
-struct inherit2_impl< true,false >
-{
-    template< typename Derived, typename T1, typename T2 > struct result_
-        : T2
-    {
-        typedef T2 type_;
-    };
-};
-
-template<>
-struct inherit2_impl< true,true >
-{
-    template< typename Derived, typename T1, typename T2 > struct result_
-    {
-        typedef T1 type_;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
-    >
-struct inherit2
-    : aux::inherit2_impl<
-          is_empty_base<T1>::value
-        , is_empty_base<T2>::value
-        >::template result_< inherit2< T1,T2 >,T1, T2 >
-{
-    typedef typename inherit2::type_ type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2))
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, inherit2)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na
-    >
-struct inherit3
-    : inherit2<
-          typename inherit2<
-              T1, T2
-            >::type
-        , T3
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          3
-        , inherit3
-        , ( T1, T2, T3)
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC(3, inherit3)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
-    >
-struct inherit4
-    : inherit2<
-          typename inherit3<
-              T1, T2, T3
-            >::type
-        , T4
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          4
-        , inherit4
-        , ( T1, T2, T3, T4)
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC(4, inherit4)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
-    , typename T5 = na
-    >
-struct inherit5
-    : inherit2<
-          typename inherit4<
-              T1, T2, T3, T4
-            >::type
-        , T5
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , inherit5
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC(5, inherit5)
-
-/// primary template
-
-template<
-      typename T1 = empty_base, typename T2 = empty_base
-    , typename T3 = empty_base, typename T4 = empty_base
-    , typename T5 = empty_base
-    >
-struct inherit
-    : inherit5< T1,T2,T3,T4,T5 >
-{
-};
-
-template<>
-struct inherit< na,na,na,na,na >
-{
-    template<
-
-          typename T1 = empty_base, typename T2 = empty_base
-        , typename T3 = empty_base, typename T4 = empty_base
-        , typename T5 = empty_base
-
-        >
-    struct apply
-        : inherit< T1,T2,T3,T4,T5 >
-    {
-    };
-};
-
-BOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit)
-BOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit)
-BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit)
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/msvc60/iter_fold_if_impl.hpp b/boost/mpl/aux_/preprocessed/msvc60/iter_fold_if_impl.hpp
deleted file mode 100644
index 6951795..0000000
--- a/boost/mpl/aux_/preprocessed/msvc60/iter_fold_if_impl.hpp
+++ /dev/null
@@ -1,133 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright David Abrahams 2001-2002
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/iter_fold_if_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-template< typename Iterator, typename State >
-struct iter_fold_if_null_step
-{
-    typedef State state;
-    typedef Iterator iterator;
-};
-
-template< bool >
-struct iter_fold_if_step_impl
-{
-    template<
-          typename Iterator
-        , typename State
-        , typename StateOp
-        , typename IteratorOp
-        >
-    struct result_
-    {
-        typedef typename apply2< StateOp,State,Iterator >::type state;
-        typedef typename IteratorOp::type iterator;
-    };
-};
-
-template<>
-struct iter_fold_if_step_impl<false>
-{
-    template<
-          typename Iterator
-        , typename State
-        , typename StateOp
-        , typename IteratorOp
-        >
-    struct result_
-    {
-        typedef State state;
-        typedef Iterator iterator;
-    };
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename ForwardOp
-    , typename Predicate
-    >
-struct iter_fold_if_forward_step
-{
-    typedef typename apply2< Predicate,State,Iterator >::type not_last;
-    typedef typename iter_fold_if_step_impl<
-          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
-        >::template result_< Iterator,State,ForwardOp, mpl::next<Iterator> > impl_;
-
-    typedef typename impl_::state state;
-    typedef typename impl_::iterator iterator;
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename BackwardOp
-    , typename Predicate
-    >
-struct iter_fold_if_backward_step
-{
-    typedef typename apply2< Predicate,State,Iterator >::type not_last;
-    typedef typename iter_fold_if_step_impl<
-          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
-        >::template result_< Iterator,State,BackwardOp, identity<Iterator> > impl_;
-
-    typedef typename impl_::state state;
-    typedef typename impl_::iterator iterator;
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename ForwardOp
-    , typename ForwardPredicate
-    , typename BackwardOp
-    , typename BackwardPredicate
-    >
-struct iter_fold_if_impl
-{
- private:
-    typedef iter_fold_if_null_step< Iterator,State > forward_step0;
-    typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1;
-    typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2;
-    typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3;
-    typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4;
-    
-
-    typedef typename if_<
-          typename forward_step4::not_last
-        , iter_fold_if_impl<
-              typename forward_step4::iterator
-            , typename forward_step4::state
-            , ForwardOp
-            , ForwardPredicate
-            , BackwardOp
-            , BackwardPredicate
-            >
-        , iter_fold_if_null_step<
-              typename forward_step4::iterator
-            , typename forward_step4::state
-            >
-        >::type backward_step4;
-
-    typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3;
-    typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2;
-    typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1;
-    typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0;
-    
-
- public:
-    typedef typename backward_step0::state state;
-    typedef typename backward_step4::iterator iterator;
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/msvc60/iter_fold_impl.hpp b/boost/mpl/aux_/preprocessed/msvc60/iter_fold_impl.hpp
deleted file mode 100644
index 69aadc4..0000000
--- a/boost/mpl/aux_/preprocessed/msvc60/iter_fold_impl.hpp
+++ /dev/null
@@ -1,293 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/iter_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl;
-
-template< int N >
-struct iter_fold_chunk;
-
-template<> struct iter_fold_chunk<0>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef state0 state;
-        typedef iter0 iterator;
-    };
-
-    /// ETI workaround
-    template<> struct result_< int,int,int,int >
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-
-};
-
-template<> struct iter_fold_chunk<1>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        
-
-        typedef state1 state;
-        typedef iter1 iterator;
-    };
-
-    /// ETI workaround
-    template<> struct result_< int,int,int,int >
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-
-};
-
-template<> struct iter_fold_chunk<2>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        
-
-        typedef state2 state;
-        typedef iter2 iterator;
-    };
-
-    /// ETI workaround
-    template<> struct result_< int,int,int,int >
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-
-};
-
-template<> struct iter_fold_chunk<3>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp,state2,iter2 >::type state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        
-
-        typedef state3 state;
-        typedef iter3 iterator;
-    };
-
-    /// ETI workaround
-    template<> struct result_< int,int,int,int >
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-
-};
-
-template<> struct iter_fold_chunk<4>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp,state2,iter2 >::type state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp,state3,iter3 >::type state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef state4 state;
-        typedef iter4 iterator;
-    };
-
-    /// ETI workaround
-    template<> struct result_< int,int,int,int >
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-
-};
-
-template< int N >
-struct iter_fold_chunk
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef iter_fold_impl<
-              4
-            , First
-            , Last
-            , State
-            , ForwardOp
-            > chunk_;
-
-        typedef iter_fold_impl<
-              ( (N - 4) < 0 ? 0 : N - 4 )
-            , typename chunk_::iterator
-            , Last
-            , typename chunk_::state
-            , ForwardOp
-            > res_;
-
-        typedef typename res_::state state;
-        typedef typename res_::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_step;
-
-template<
-      typename Last
-    , typename State
-    >
-struct iter_fold_null_step
-{
-    typedef Last iterator;
-    typedef State state;
-};
-
-template<>
-struct iter_fold_chunk< -1 >
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef typename if_<
-              typename is_same< First,Last >::type
-            , iter_fold_null_step< Last,State >
-            , iter_fold_step< First,Last,State,ForwardOp >
-            >::type res_;
-
-        typedef typename res_::state state;
-        typedef typename res_::iterator iterator;
-    };
-
-    /// ETI workaround
-    template<> struct result_< int,int,int,int >
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_step
-{
-    typedef iter_fold_chunk< -1 >::template result_<
-          typename mpl::next<First>::type
-        , Last
-        , typename apply2< ForwardOp,State,First >::type
-        , ForwardOp
-        > chunk_;
-
-    typedef typename chunk_::state state;
-    typedef typename chunk_::iterator iterator;
-};
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl
-    : iter_fold_chunk<N>
-        ::template result_< First,Last,State,ForwardOp >
-{
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/msvc60/lambda_no_ctps.hpp b/boost/mpl/aux_/preprocessed/msvc60/lambda_no_ctps.hpp
deleted file mode 100644
index 890a198..0000000
--- a/boost/mpl/aux_/preprocessed/msvc60/lambda_no_ctps.hpp
+++ /dev/null
@@ -1,229 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/lambda_no_ctps.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template<
-      bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false
-    , bool C5 = false
-    >
-struct lambda_or
-    : true_
-{
-};
-
-template<>
-struct lambda_or< false,false,false,false,false >
-    : false_
-{
-};
-
-template< typename Arity > struct lambda_impl
-{
-    template< typename T, typename Tag, typename Protect > struct result_
-    {
-        typedef T type;
-        typedef is_placeholder<T> is_le;
-    };
-};
-
-template<> struct lambda_impl< int_<1> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef typename l1::is_le is_le1;
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value
-            > is_le;
-
-        typedef bind1<
-              typename F::rebind
-            , typename l1::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<2> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        
-
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value
-            > is_le;
-
-        typedef bind2<
-              typename F::rebind
-            , typename l1::type, typename l2::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<3> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        
-
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value
-            > is_le;
-
-        typedef bind3<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<4> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        typedef lambda< typename F::arg4, Tag, false_ > l4;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        typedef typename l4::is_le is_le4;
-        
-
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value
-            > is_le;
-
-        typedef bind4<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            , typename l4::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<5> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        typedef lambda< typename F::arg4, Tag, false_ > l4;
-        typedef lambda< typename F::arg5, Tag, false_ > l5;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        typedef typename l4::is_le is_le4;
-        typedef typename l5::is_le is_le5;
-        
-
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value
-            > is_le;
-
-        typedef bind5<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            , typename l4::type, typename l5::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename T
-    , typename Tag
-    , typename Protect
-    >
-struct lambda
-{
-    /// Metafunction forwarding confuses MSVC 6.x
-    typedef typename aux::template_arity<T>::type arity_;
-    typedef typename aux::lambda_impl<arity_>
-        ::template result_< T,Tag,Protect > l_;
-
-    typedef typename l_::type type;
-    typedef typename l_::is_le is_le;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect))
-};
-
-BOOST_MPL_AUX_NA_SPEC2(1, 3, lambda)
-
-template<
-      typename T
-    >
-struct is_lambda_expression
-    : lambda<T>::is_le
-{
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/msvc60/less.hpp b/boost/mpl/aux_/preprocessed/msvc60/less.hpp
deleted file mode 100644
index 951f060..0000000
--- a/boost/mpl/aux_/preprocessed/msvc60/less.hpp
+++ /dev/null
@@ -1,102 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/less.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
-    >
-struct less_impl
-    : if_c<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< less_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< less_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct less_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct less_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct less_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct less_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct less
-    : aux::msvc_eti_base< typename apply_wrap2<
-          less_impl<
-              typename less_tag<N1>::type
-            , typename less_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, less)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct less_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-    {
-        BOOST_STATIC_CONSTANT(bool, value =
-             ( BOOST_MPL_AUX_VALUE_WKND(N2)::value >
-             BOOST_MPL_AUX_VALUE_WKND(N1)::value )
-            );
-        typedef bool_<value> type;
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/msvc60/less_equal.hpp b/boost/mpl/aux_/preprocessed/msvc60/less_equal.hpp
deleted file mode 100644
index a56e692..0000000
--- a/boost/mpl/aux_/preprocessed/msvc60/less_equal.hpp
+++ /dev/null
@@ -1,102 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/less_equal.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
-    >
-struct less_equal_impl
-    : if_c<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< less_equal_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< less_equal_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct less_equal_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct less_equal_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct less_equal_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct less_equal_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct less_equal
-    : aux::msvc_eti_base< typename apply_wrap2<
-          less_equal_impl<
-              typename less_equal_tag<N1>::type
-            , typename less_equal_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct less_equal_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-    {
-        BOOST_STATIC_CONSTANT(bool, value =
-             ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <=
-             BOOST_MPL_AUX_VALUE_WKND(N2)::value )
-            );
-        typedef bool_<value> type;
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/msvc60/list.hpp b/boost/mpl/aux_/preprocessed/msvc60/list.hpp
deleted file mode 100644
index e5ea456..0000000
--- a/boost/mpl/aux_/preprocessed/msvc60/list.hpp
+++ /dev/null
@@ -1,556 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/list.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct list_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct list_chooser<0>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef list0<
-             
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<1>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list1<
-              T0
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<2>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list2<
-              T0, T1
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<3>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list3<
-              T0, T1, T2
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<4>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list4<
-              T0, T1, T2, T3
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<5>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list5<
-              T0, T1, T2, T3, T4
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<6>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list6<
-              T0, T1, T2, T3, T4, T5
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<7>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list7<
-              T0, T1, T2, T3, T4, T5, T6
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<8>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list8<
-              T0, T1, T2, T3, T4, T5, T6, T7
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<9>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list9<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<10>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list10<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<11>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list11<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<12>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list12<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<13>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list13<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<14>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list14<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<15>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list15<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<16>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list16<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<17>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list17<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<18>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list18<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<19>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list19<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<20>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list20<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_list_arg
-{
-    BOOST_STATIC_CONSTANT(bool, value  = true);
-};
-
-template<>
-struct is_list_arg<na>
-{
-    BOOST_STATIC_CONSTANT(bool, value  = false);
-};
-
-template<
-      typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename T6, typename T7, typename T8, typename T9, typename T10
-    , typename T11, typename T12, typename T13, typename T14, typename T15
-    , typename T16, typename T17, typename T18, typename T19, typename T20
-    >
-struct list_count_args
-{
-    BOOST_STATIC_CONSTANT(int, value =
-          is_list_arg<T1>::value + is_list_arg<T2>::value 
-        + is_list_arg<T3>::value + is_list_arg<T4>::value 
-        + is_list_arg<T5>::value + is_list_arg<T6>::value 
-        + is_list_arg<T7>::value + is_list_arg<T8>::value 
-        + is_list_arg<T9>::value + is_list_arg<T10>::value 
-        + is_list_arg<T11>::value + is_list_arg<T12>::value 
-        + is_list_arg<T13>::value + is_list_arg<T14>::value 
-        + is_list_arg<T15>::value + is_list_arg<T16>::value 
-        + is_list_arg<T17>::value + is_list_arg<T18>::value 
-        + is_list_arg<T19>::value + is_list_arg<T20>::value
-        );
-
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct list_impl
-{
-    typedef aux::list_count_args<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        > arg_num_;
-
-    typedef typename aux::list_chooser< arg_num_::value >
-        ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct list
-    : aux::list_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type
-{
-    typedef typename aux::list_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/msvc60/list_c.hpp b/boost/mpl/aux_/preprocessed/msvc60/list_c.hpp
deleted file mode 100644
index ab25482..0000000
--- a/boost/mpl/aux_/preprocessed/msvc60/list_c.hpp
+++ /dev/null
@@ -1,534 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/list_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct list_c_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct list_c_chooser<0>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list0_c<
-              T
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<1>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list1_c<
-              T, C0
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<2>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list2_c<
-              T, C0, C1
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<3>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list3_c<
-              T, C0, C1, C2
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<4>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list4_c<
-              T, C0, C1, C2, C3
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<5>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list5_c<
-              T, C0, C1, C2, C3, C4
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<6>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list6_c<
-              T, C0, C1, C2, C3, C4, C5
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<7>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list7_c<
-              T, C0, C1, C2, C3, C4, C5, C6
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<8>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list8_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<9>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list9_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<10>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list10_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<11>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list11_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<12>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list12_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<13>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list13_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<14>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list14_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<15>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list15_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<16>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list16_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<17>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list17_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<18>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list18_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<19>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list19_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<20>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list20_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< long C >
-struct is_list_c_arg
-{
-    BOOST_STATIC_CONSTANT(bool, value  = true);
-};
-
-template<>
-struct is_list_c_arg<LONG_MAX>
-{
-    BOOST_STATIC_CONSTANT(bool, value  = false);
-};
-
-template<
-      long C1, long C2, long C3, long C4, long C5, long C6, long C7, long C8
-    , long C9, long C10, long C11, long C12, long C13, long C14, long C15
-    , long C16, long C17, long C18, long C19, long C20
-    >
-struct list_c_count_args
-{
-    BOOST_STATIC_CONSTANT(int, value =
-          is_list_c_arg<C1>::value + is_list_c_arg<C2>::value 
-        + is_list_c_arg<C3>::value + is_list_c_arg<C4>::value 
-        + is_list_c_arg<C5>::value + is_list_c_arg<C6>::value 
-        + is_list_c_arg<C7>::value + is_list_c_arg<C8>::value 
-        + is_list_c_arg<C9>::value + is_list_c_arg<C10>::value 
-        + is_list_c_arg<C11>::value + is_list_c_arg<C12>::value 
-        + is_list_c_arg<C13>::value + is_list_c_arg<C14>::value 
-        + is_list_c_arg<C15>::value + is_list_c_arg<C16>::value 
-        + is_list_c_arg<C17>::value + is_list_c_arg<C18>::value 
-        + is_list_c_arg<C19>::value + is_list_c_arg<C20>::value
-        );
-
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct list_c_impl
-{
-    typedef aux::list_c_count_args<
-          C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        > arg_num_;
-
-    typedef typename aux::list_c_chooser< arg_num_::value >
-        ::template result_< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct list_c
-    : aux::list_c_impl<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        >::type
-{
-    typedef typename aux::list_c_impl<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/msvc60/map.hpp b/boost/mpl/aux_/preprocessed/msvc60/map.hpp
deleted file mode 100644
index 970e0b7..0000000
--- a/boost/mpl/aux_/preprocessed/msvc60/map.hpp
+++ /dev/null
@@ -1,556 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/map.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct map_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct map_chooser<0>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef map0<
-             
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<1>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map1<
-              T0
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<2>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map2<
-              T0, T1
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<3>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map3<
-              T0, T1, T2
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<4>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map4<
-              T0, T1, T2, T3
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<5>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map5<
-              T0, T1, T2, T3, T4
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<6>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map6<
-              T0, T1, T2, T3, T4, T5
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<7>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map7<
-              T0, T1, T2, T3, T4, T5, T6
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<8>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map8<
-              T0, T1, T2, T3, T4, T5, T6, T7
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<9>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map9<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<10>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map10<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<11>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map11<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<12>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map12<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<13>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map13<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<14>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map14<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<15>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map15<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<16>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map16<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<17>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map17<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<18>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map18<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<19>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map19<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<20>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map20<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_map_arg
-{
-    BOOST_STATIC_CONSTANT(bool, value  = true);
-};
-
-template<>
-struct is_map_arg<na>
-{
-    BOOST_STATIC_CONSTANT(bool, value  = false);
-};
-
-template<
-      typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename T6, typename T7, typename T8, typename T9, typename T10
-    , typename T11, typename T12, typename T13, typename T14, typename T15
-    , typename T16, typename T17, typename T18, typename T19, typename T20
-    >
-struct map_count_args
-{
-    BOOST_STATIC_CONSTANT(int, value =
-          is_map_arg<T1>::value + is_map_arg<T2>::value 
-        + is_map_arg<T3>::value + is_map_arg<T4>::value 
-        + is_map_arg<T5>::value + is_map_arg<T6>::value 
-        + is_map_arg<T7>::value + is_map_arg<T8>::value 
-        + is_map_arg<T9>::value + is_map_arg<T10>::value 
-        + is_map_arg<T11>::value + is_map_arg<T12>::value 
-        + is_map_arg<T13>::value + is_map_arg<T14>::value 
-        + is_map_arg<T15>::value + is_map_arg<T16>::value 
-        + is_map_arg<T17>::value + is_map_arg<T18>::value 
-        + is_map_arg<T19>::value + is_map_arg<T20>::value
-        );
-
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct map_impl
-{
-    typedef aux::map_count_args<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        > arg_num_;
-
-    typedef typename aux::map_chooser< arg_num_::value >
-        ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct map
-    : aux::map_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type
-{
-    typedef typename aux::map_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/msvc60/minus.hpp b/boost/mpl/aux_/preprocessed/msvc60/minus.hpp
deleted file mode 100644
index b47f328..0000000
--- a/boost/mpl/aux_/preprocessed/msvc60/minus.hpp
+++ /dev/null
@@ -1,148 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/minus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
-    >
-struct minus_impl
-    : if_c<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< minus_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< minus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct minus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct minus_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct minus_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct minus_tag
-{
-    typedef typename T::tag type;
-};
-
-/// forward declaration
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct minus2;
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct minus
-
-    : if_<
-
-          is_na<N3>
-        , minus2< N1,N2 >
-        , minus<
-              minus2< N1,N2 >
-            , N3, N4, N5
-            >
-        >::type
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , minus
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1
-    , typename N2
-    >
-struct minus2
-    : aux::msvc_eti_base< typename apply_wrap2<
-          minus_impl<
-              typename minus_tag<N1>::type
-            , typename minus_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, minus2, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, minus)
-
-}}
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct minus_wknd
-{
-    BOOST_STATIC_CONSTANT(T, value  = (n1 - n2));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct minus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-        : aux::minus_wknd<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , N1::value
-            , N2::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/msvc60/modulus.hpp b/boost/mpl/aux_/preprocessed/msvc60/modulus.hpp
deleted file mode 100644
index c12b3f9..0000000
--- a/boost/mpl/aux_/preprocessed/msvc60/modulus.hpp
+++ /dev/null
@@ -1,115 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/modulus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
-    >
-struct modulus_impl
-    : if_c<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< modulus_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< modulus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct modulus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct modulus_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct modulus_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct modulus_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct modulus
-    : aux::msvc_eti_base< typename apply_wrap2<
-          modulus_impl<
-              typename modulus_tag<N1>::type
-            , typename modulus_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, modulus)
-
-}}
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct modulus_wknd
-{
-    BOOST_STATIC_CONSTANT(T, value  = (n1 % n2));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct modulus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-        : aux::modulus_wknd<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , N1::value
-            , N2::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/msvc60/not_equal_to.hpp b/boost/mpl/aux_/preprocessed/msvc60/not_equal_to.hpp
deleted file mode 100644
index 6e56b1e..0000000
--- a/boost/mpl/aux_/preprocessed/msvc60/not_equal_to.hpp
+++ /dev/null
@@ -1,102 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/not_equal_to.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
-    >
-struct not_equal_to_impl
-    : if_c<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< not_equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct not_equal_to_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct not_equal_to_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct not_equal_to_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct not_equal_to_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct not_equal_to
-    : aux::msvc_eti_base< typename apply_wrap2<
-          not_equal_to_impl<
-              typename not_equal_to_tag<N1>::type
-            , typename not_equal_to_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct not_equal_to_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-    {
-        BOOST_STATIC_CONSTANT(bool, value =
-             ( BOOST_MPL_AUX_VALUE_WKND(N1)::value !=
-             BOOST_MPL_AUX_VALUE_WKND(N2)::value )
-            );
-        typedef bool_<value> type;
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/msvc60/or.hpp b/boost/mpl/aux_/preprocessed/msvc60/or.hpp
deleted file mode 100644
index 3f7394e..0000000
--- a/boost/mpl/aux_/preprocessed/msvc60/or.hpp
+++ /dev/null
@@ -1,73 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/or.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< bool C_ > struct or_impl
-{
-    template<
-          typename T1, typename T2, typename T3, typename T4
-        >
-    struct result_
-        : true_
-    {
-    };
-};
-
-template<> struct or_impl<false>
-{
-    template<
-          typename T1, typename T2, typename T3, typename T4
-        >
-    struct result_
-        : or_impl<
-              BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-            >::template result_< T2,T3,T4,false_ >
-    {
-    };
-};
-
-template<>
-struct or_impl<false>
-    ::result_< false_,false_,false_,false_ >
-        : false_
-{
-};
-
-} // namespace aux
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
-    , typename T3 = false_, typename T4 = false_, typename T5 = false_
-    >
-struct or_
-
-    : aux::or_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        >::template result_< T2,T3,T4,T5 >
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , or_
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC2(
-      2
-    , 5
-    , or_
-    )
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/msvc60/placeholders.hpp b/boost/mpl/aux_/preprocessed/msvc60/placeholders.hpp
deleted file mode 100644
index ff97364..0000000
--- a/boost/mpl/aux_/preprocessed/msvc60/placeholders.hpp
+++ /dev/null
@@ -1,105 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright Peter Dimov 2001-2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/placeholders.hpp" header
-// -- DO NOT modify by hand!
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg< -1 > _;
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;
-}
-
-}}
-
-/// agurt, 17/mar/02: one more placeholder for the last 'apply#' 
-/// specialization
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<1> _1;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<2> _2;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<3> _3;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<4> _4;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<5> _5;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<6> _6;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6;
-}
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/msvc60/plus.hpp b/boost/mpl/aux_/preprocessed/msvc60/plus.hpp
deleted file mode 100644
index 1052335..0000000
--- a/boost/mpl/aux_/preprocessed/msvc60/plus.hpp
+++ /dev/null
@@ -1,148 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/plus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
-    >
-struct plus_impl
-    : if_c<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< plus_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< plus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct plus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct plus_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct plus_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct plus_tag
-{
-    typedef typename T::tag type;
-};
-
-/// forward declaration
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct plus2;
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct plus
-
-    : if_<
-
-          is_na<N3>
-        , plus2< N1,N2 >
-        , plus<
-              plus2< N1,N2 >
-            , N3, N4, N5
-            >
-        >::type
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , plus
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1
-    , typename N2
-    >
-struct plus2
-    : aux::msvc_eti_base< typename apply_wrap2<
-          plus_impl<
-              typename plus_tag<N1>::type
-            , typename plus_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, plus2, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, plus)
-
-}}
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct plus_wknd
-{
-    BOOST_STATIC_CONSTANT(T, value  = (n1 + n2));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct plus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-        : aux::plus_wknd<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , N1::value
-            , N2::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/msvc60/quote.hpp b/boost/mpl/aux_/preprocessed/msvc60/quote.hpp
deleted file mode 100644
index e7a7f00..0000000
--- a/boost/mpl/aux_/preprocessed/msvc60/quote.hpp
+++ /dev/null
@@ -1,11 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/quote.hpp" header
-// -- DO NOT modify by hand!
-
diff --git a/boost/mpl/aux_/preprocessed/msvc60/reverse_fold_impl.hpp b/boost/mpl/aux_/preprocessed/msvc60/reverse_fold_impl.hpp
deleted file mode 100644
index adf15b6..0000000
--- a/boost/mpl/aux_/preprocessed/msvc60/reverse_fold_impl.hpp
+++ /dev/null
@@ -1,343 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/reverse_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl;
-
-template< long N >
-struct reverse_fold_chunk;
-
-template<> struct reverse_fold_chunk<0>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef fwd_state0 bkwd_state0;
-        typedef bkwd_state0 state;
-        typedef iter0 iterator;
-    };
-
-    /// ETI workaround
-    template<> struct result_< int,int,int,int,int >
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-
-};
-
-template<> struct reverse_fold_chunk<1>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        
-
-        typedef fwd_state1 bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        typedef bkwd_state0 state;
-        typedef iter1 iterator;
-    };
-
-    /// ETI workaround
-    template<> struct result_< int,int,int,int,int >
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-
-};
-
-template<> struct reverse_fold_chunk<2>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        
-
-        typedef fwd_state2 bkwd_state2;
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter2 iterator;
-    };
-
-    /// ETI workaround
-    template<> struct result_< int,int,int,int,int >
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-
-};
-
-template<> struct reverse_fold_chunk<3>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        
-
-        typedef fwd_state3 bkwd_state3;
-        typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter3 iterator;
-    };
-
-    /// ETI workaround
-    template<> struct result_< int,int,int,int,int >
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-
-};
-
-template<> struct reverse_fold_chunk<4>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef fwd_state4 bkwd_state4;
-        typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3;
-        typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter4 iterator;
-    };
-
-    /// ETI workaround
-    template<> struct result_< int,int,int,int,int >
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-
-};
-
-template< long N >
-struct reverse_fold_chunk
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef reverse_fold_impl<
-              ( (N - 4) < 0 ? 0 : N - 4 )
-            , iter4
-            , Last
-            , fwd_state4
-            , BackwardOp
-            , ForwardOp
-            > nested_chunk;
-
-        typedef typename nested_chunk::state bkwd_state4;
-        typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3;
-        typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef typename nested_chunk::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_step;
-
-template<
-      typename Last
-    , typename State
-    >
-struct reverse_fold_null_step
-{
-    typedef Last iterator;
-    typedef State state;
-};
-
-template<>
-struct reverse_fold_chunk< -1 >
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef typename if_<
-              typename is_same< First,Last >::type
-            , reverse_fold_null_step< Last,State >
-            , reverse_fold_step< First,Last,State,BackwardOp,ForwardOp >
-            >::type res_;
-
-        typedef typename res_::state state;
-        typedef typename res_::iterator iterator;
-    };
-
-    /// ETI workaround
-    template<> struct result_< int,int,int,int,int >
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_step
-{
-    typedef reverse_fold_chunk< -1 >::template result_<
-          typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State, typename deref<First>::type>::type
-        , BackwardOp
-        , ForwardOp
-        > nested_step;
-
-    typedef typename apply2<
-          BackwardOp
-        , typename nested_step::state
-        , typename deref<First>::type
-        >::type state;
-
-    typedef typename nested_step::iterator iterator;
-};
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl
-    : reverse_fold_chunk<N>
-        ::template result_< First,Last,State,BackwardOp,ForwardOp >
-{
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/msvc60/reverse_iter_fold_impl.hpp b/boost/mpl/aux_/preprocessed/msvc60/reverse_iter_fold_impl.hpp
deleted file mode 100644
index 208ad97..0000000
--- a/boost/mpl/aux_/preprocessed/msvc60/reverse_iter_fold_impl.hpp
+++ /dev/null
@@ -1,343 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/reverse_iter_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl;
-
-template< long N >
-struct reverse_iter_fold_chunk;
-
-template<> struct reverse_iter_fold_chunk<0>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef fwd_state0 bkwd_state0;
-        typedef bkwd_state0 state;
-        typedef iter0 iterator;
-    };
-
-    /// ETI workaround
-    template<> struct result_< int,int,int,int,int >
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-
-};
-
-template<> struct reverse_iter_fold_chunk<1>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        
-
-        typedef fwd_state1 bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        typedef bkwd_state0 state;
-        typedef iter1 iterator;
-    };
-
-    /// ETI workaround
-    template<> struct result_< int,int,int,int,int >
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-
-};
-
-template<> struct reverse_iter_fold_chunk<2>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        
-
-        typedef fwd_state2 bkwd_state2;
-        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter2 iterator;
-    };
-
-    /// ETI workaround
-    template<> struct result_< int,int,int,int,int >
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-
-};
-
-template<> struct reverse_iter_fold_chunk<3>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        
-
-        typedef fwd_state3 bkwd_state3;
-        typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter3 iterator;
-    };
-
-    /// ETI workaround
-    template<> struct result_< int,int,int,int,int >
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-
-};
-
-template<> struct reverse_iter_fold_chunk<4>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef fwd_state4 bkwd_state4;
-        typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3;
-        typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter4 iterator;
-    };
-
-    /// ETI workaround
-    template<> struct result_< int,int,int,int,int >
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-
-};
-
-template< long N >
-struct reverse_iter_fold_chunk
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef reverse_iter_fold_impl<
-              ( (N - 4) < 0 ? 0 : N - 4 )
-            , iter4
-            , Last
-            , fwd_state4
-            , BackwardOp
-            , ForwardOp
-            > nested_chunk;
-
-        typedef typename nested_chunk::state bkwd_state4;
-        typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3;
-        typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef typename nested_chunk::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_step;
-
-template<
-      typename Last
-    , typename State
-    >
-struct reverse_iter_fold_null_step
-{
-    typedef Last iterator;
-    typedef State state;
-};
-
-template<>
-struct reverse_iter_fold_chunk< -1 >
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef typename if_<
-              typename is_same< First,Last >::type
-            , reverse_iter_fold_null_step< Last,State >
-            , reverse_iter_fold_step< First,Last,State,BackwardOp,ForwardOp >
-            >::type res_;
-
-        typedef typename res_::state state;
-        typedef typename res_::iterator iterator;
-    };
-
-    /// ETI workaround
-    template<> struct result_< int,int,int,int,int >
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_step
-{
-    typedef reverse_iter_fold_chunk< -1 >::template result_<
-          typename mpl::next<First>::type
-        , Last
-        , typename apply2< ForwardOp,State,First >::type
-        , BackwardOp
-        , ForwardOp
-        > nested_step;
-
-    typedef typename apply2<
-          BackwardOp
-        , typename nested_step::state
-        , First
-        >::type state;
-
-    typedef typename nested_step::iterator iterator;
-};
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl
-    : reverse_iter_fold_chunk<N>
-        ::template result_< First,Last,State,BackwardOp,ForwardOp >
-{
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/msvc60/set.hpp b/boost/mpl/aux_/preprocessed/msvc60/set.hpp
deleted file mode 100644
index 95aaa5c..0000000
--- a/boost/mpl/aux_/preprocessed/msvc60/set.hpp
+++ /dev/null
@@ -1,556 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/set.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct set_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct set_chooser<0>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef set0<
-             
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<1>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set1<
-              T0
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<2>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set2<
-              T0, T1
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<3>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set3<
-              T0, T1, T2
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<4>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set4<
-              T0, T1, T2, T3
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<5>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set5<
-              T0, T1, T2, T3, T4
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<6>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set6<
-              T0, T1, T2, T3, T4, T5
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<7>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set7<
-              T0, T1, T2, T3, T4, T5, T6
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<8>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set8<
-              T0, T1, T2, T3, T4, T5, T6, T7
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<9>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set9<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<10>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set10<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<11>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set11<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<12>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set12<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<13>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set13<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<14>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set14<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<15>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set15<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<16>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set16<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<17>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set17<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<18>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set18<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<19>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set19<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<20>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set20<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_set_arg
-{
-    BOOST_STATIC_CONSTANT(bool, value  = true);
-};
-
-template<>
-struct is_set_arg<na>
-{
-    BOOST_STATIC_CONSTANT(bool, value  = false);
-};
-
-template<
-      typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename T6, typename T7, typename T8, typename T9, typename T10
-    , typename T11, typename T12, typename T13, typename T14, typename T15
-    , typename T16, typename T17, typename T18, typename T19, typename T20
-    >
-struct set_count_args
-{
-    BOOST_STATIC_CONSTANT(int, value =
-          is_set_arg<T1>::value + is_set_arg<T2>::value 
-        + is_set_arg<T3>::value + is_set_arg<T4>::value 
-        + is_set_arg<T5>::value + is_set_arg<T6>::value 
-        + is_set_arg<T7>::value + is_set_arg<T8>::value 
-        + is_set_arg<T9>::value + is_set_arg<T10>::value 
-        + is_set_arg<T11>::value + is_set_arg<T12>::value 
-        + is_set_arg<T13>::value + is_set_arg<T14>::value 
-        + is_set_arg<T15>::value + is_set_arg<T16>::value 
-        + is_set_arg<T17>::value + is_set_arg<T18>::value 
-        + is_set_arg<T19>::value + is_set_arg<T20>::value
-        );
-
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct set_impl
-{
-    typedef aux::set_count_args<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        > arg_num_;
-
-    typedef typename aux::set_chooser< arg_num_::value >
-        ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct set
-    : aux::set_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type
-{
-    typedef typename aux::set_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/msvc60/set_c.hpp b/boost/mpl/aux_/preprocessed/msvc60/set_c.hpp
deleted file mode 100644
index 1ff34f9..0000000
--- a/boost/mpl/aux_/preprocessed/msvc60/set_c.hpp
+++ /dev/null
@@ -1,534 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/set_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct set_c_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct set_c_chooser<0>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set0_c<
-              T
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<1>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set1_c<
-              T, C0
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<2>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set2_c<
-              T, C0, C1
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<3>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set3_c<
-              T, C0, C1, C2
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<4>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set4_c<
-              T, C0, C1, C2, C3
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<5>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set5_c<
-              T, C0, C1, C2, C3, C4
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<6>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set6_c<
-              T, C0, C1, C2, C3, C4, C5
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<7>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set7_c<
-              T, C0, C1, C2, C3, C4, C5, C6
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<8>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set8_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<9>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set9_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<10>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set10_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<11>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set11_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<12>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set12_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<13>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set13_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<14>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set14_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<15>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set15_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<16>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set16_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<17>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set17_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<18>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set18_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<19>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set19_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<20>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set20_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< long C >
-struct is_set_c_arg
-{
-    BOOST_STATIC_CONSTANT(bool, value  = true);
-};
-
-template<>
-struct is_set_c_arg<LONG_MAX>
-{
-    BOOST_STATIC_CONSTANT(bool, value  = false);
-};
-
-template<
-      long C1, long C2, long C3, long C4, long C5, long C6, long C7, long C8
-    , long C9, long C10, long C11, long C12, long C13, long C14, long C15
-    , long C16, long C17, long C18, long C19, long C20
-    >
-struct set_c_count_args
-{
-    BOOST_STATIC_CONSTANT(int, value =
-          is_set_c_arg<C1>::value + is_set_c_arg<C2>::value 
-        + is_set_c_arg<C3>::value + is_set_c_arg<C4>::value 
-        + is_set_c_arg<C5>::value + is_set_c_arg<C6>::value 
-        + is_set_c_arg<C7>::value + is_set_c_arg<C8>::value 
-        + is_set_c_arg<C9>::value + is_set_c_arg<C10>::value 
-        + is_set_c_arg<C11>::value + is_set_c_arg<C12>::value 
-        + is_set_c_arg<C13>::value + is_set_c_arg<C14>::value 
-        + is_set_c_arg<C15>::value + is_set_c_arg<C16>::value 
-        + is_set_c_arg<C17>::value + is_set_c_arg<C18>::value 
-        + is_set_c_arg<C19>::value + is_set_c_arg<C20>::value
-        );
-
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct set_c_impl
-{
-    typedef aux::set_c_count_args<
-          C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        > arg_num_;
-
-    typedef typename aux::set_c_chooser< arg_num_::value >
-        ::template result_< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct set_c
-    : aux::set_c_impl<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        >::type
-{
-    typedef typename aux::set_c_impl<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/msvc60/shift_left.hpp b/boost/mpl/aux_/preprocessed/msvc60/shift_left.hpp
deleted file mode 100644
index 3861ca1..0000000
--- a/boost/mpl/aux_/preprocessed/msvc60/shift_left.hpp
+++ /dev/null
@@ -1,114 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/shift_left.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
-    >
-struct shift_left_impl
-    : if_c<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< shift_left_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< shift_left_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct shift_left_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct shift_left_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct shift_left_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct shift_left_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct shift_left
-    : aux::msvc_eti_base< typename apply_wrap2<
-          shift_left_impl<
-              typename shift_left_tag<N1>::type
-            , typename shift_left_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left)
-
-}}
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename T, typename Shift, T n, Shift s >
-struct shift_left_wknd
-{
-    BOOST_STATIC_CONSTANT(T, value  = (n << s));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct shift_left_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N, typename S > struct apply
-        : aux::shift_left_wknd<
-              typename N::value_type
-            , typename S::value_type
-            , N::value
-            , S::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/msvc60/shift_right.hpp b/boost/mpl/aux_/preprocessed/msvc60/shift_right.hpp
deleted file mode 100644
index 24ea094..0000000
--- a/boost/mpl/aux_/preprocessed/msvc60/shift_right.hpp
+++ /dev/null
@@ -1,114 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/shift_right.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
-    >
-struct shift_right_impl
-    : if_c<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< shift_right_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< shift_right_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct shift_right_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct shift_right_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct shift_right_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct shift_right_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct shift_right
-    : aux::msvc_eti_base< typename apply_wrap2<
-          shift_right_impl<
-              typename shift_right_tag<N1>::type
-            , typename shift_right_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right)
-
-}}
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename T, typename Shift, T n, Shift s >
-struct shift_right_wknd
-{
-    BOOST_STATIC_CONSTANT(T, value  = (n >> s));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct shift_right_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N, typename S > struct apply
-        : aux::shift_right_wknd<
-              typename N::value_type
-            , typename S::value_type
-            , N::value
-            , S::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/msvc60/template_arity.hpp b/boost/mpl/aux_/preprocessed/msvc60/template_arity.hpp
deleted file mode 100644
index 1668771..0000000
--- a/boost/mpl/aux_/preprocessed/msvc60/template_arity.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/template_arity.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-template< bool >
-struct template_arity_impl
-{
-    template< typename F > struct result_
-        : mpl::int_< -1 >
-    {
-    };
-};
-
-template<>
-struct template_arity_impl<true>
-{
-    template< typename F > struct result_
-        : F::arity
-    {
-    };
-};
-
-template< typename F >
-struct template_arity
-    : template_arity_impl< ::boost::mpl::aux::has_rebind<F>::value >
-        ::template result_<F>
-{
-};
-
-template<>
-struct template_arity<int>
-    : mpl::int_< -1 >
-{
-};
-
-}}}
-
diff --git a/boost/mpl/aux_/preprocessed/msvc60/times.hpp b/boost/mpl/aux_/preprocessed/msvc60/times.hpp
deleted file mode 100644
index dee7fd4..0000000
--- a/boost/mpl/aux_/preprocessed/msvc60/times.hpp
+++ /dev/null
@@ -1,148 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/times.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
-    >
-struct times_impl
-    : if_c<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< times_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< times_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct times_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct times_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct times_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct times_tag
-{
-    typedef typename T::tag type;
-};
-
-/// forward declaration
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct times2;
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct times
-
-    : if_<
-
-          is_na<N3>
-        , times2< N1,N2 >
-        , times<
-              times2< N1,N2 >
-            , N3, N4, N5
-            >
-        >::type
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , times
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1
-    , typename N2
-    >
-struct times2
-    : aux::msvc_eti_base< typename apply_wrap2<
-          times_impl<
-              typename times_tag<N1>::type
-            , typename times_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, times2, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, times)
-
-}}
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct times_wknd
-{
-    BOOST_STATIC_CONSTANT(T, value  = (n1 * n2));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct times_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-        : aux::times_wknd<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , N1::value
-            , N2::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/msvc60/unpack_args.hpp b/boost/mpl/aux_/preprocessed/msvc60/unpack_args.hpp
deleted file mode 100644
index 26533dd..0000000
--- a/boost/mpl/aux_/preprocessed/msvc60/unpack_args.hpp
+++ /dev/null
@@ -1,109 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/unpack_args.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template< BOOST_MPL_AUX_NTTP_DECL(int, size) > struct unpack_args_impl
-{
-    template< typename F, typename Args > struct apply;
-};
-
-template<> struct unpack_args_impl<0>
-{
-    template< typename F, typename Args > struct apply
-        : apply0<
-              F
-            >
-    {
-    };
-};
-
-template<> struct unpack_args_impl<1>
-{
-    template< typename F, typename Args > struct apply
-        : apply1<
-              F
-            , typename at_c< Args,0 >::type
-            >
-    {
-    };
-};
-
-template<> struct unpack_args_impl<2>
-{
-    template< typename F, typename Args > struct apply
-        : apply2<
-              F
-            , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-            >
-    {
-    };
-};
-
-template<> struct unpack_args_impl<3>
-{
-    template< typename F, typename Args > struct apply
-        : apply3<
-              F
-            , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-            , typename at_c< Args,2 >::type
-            >
-    {
-    };
-};
-
-template<> struct unpack_args_impl<4>
-{
-    template< typename F, typename Args > struct apply
-        : apply4<
-              F
-            , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-            , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
-            >
-    {
-    };
-};
-
-template<> struct unpack_args_impl<5>
-{
-    template< typename F, typename Args > struct apply
-        : apply5<
-              F
-            , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-            , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
-            , typename at_c< Args,4 >::type
-            >
-    {
-    };
-};
-
-}
-
-template<
-      typename F
-    >
-struct unpack_args
-{
-    template< typename Args > struct apply
-
-        : aux::unpack_args_impl< size<Args>::value >
-            ::template apply< F,Args >
-
-    {
-    };
-};
-
-BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/msvc60/vector.hpp b/boost/mpl/aux_/preprocessed/msvc60/vector.hpp
deleted file mode 100644
index a6c7b62..0000000
--- a/boost/mpl/aux_/preprocessed/msvc60/vector.hpp
+++ /dev/null
@@ -1,556 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/vector.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct vector_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct vector_chooser<0>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef vector0<
-             
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<1>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector1<
-              T0
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<2>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector2<
-              T0, T1
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<3>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector3<
-              T0, T1, T2
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<4>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector4<
-              T0, T1, T2, T3
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<5>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector5<
-              T0, T1, T2, T3, T4
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<6>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector6<
-              T0, T1, T2, T3, T4, T5
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<7>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector7<
-              T0, T1, T2, T3, T4, T5, T6
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<8>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector8<
-              T0, T1, T2, T3, T4, T5, T6, T7
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<9>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector9<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<10>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector10<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<11>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector11<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<12>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector12<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<13>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector13<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<14>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector14<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<15>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector15<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<16>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector16<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<17>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector17<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<18>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector18<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<19>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector19<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<20>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector20<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_vector_arg
-{
-    BOOST_STATIC_CONSTANT(bool, value  = true);
-};
-
-template<>
-struct is_vector_arg<na>
-{
-    BOOST_STATIC_CONSTANT(bool, value  = false);
-};
-
-template<
-      typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename T6, typename T7, typename T8, typename T9, typename T10
-    , typename T11, typename T12, typename T13, typename T14, typename T15
-    , typename T16, typename T17, typename T18, typename T19, typename T20
-    >
-struct vector_count_args
-{
-    BOOST_STATIC_CONSTANT(int, value =
-          is_vector_arg<T1>::value + is_vector_arg<T2>::value 
-        + is_vector_arg<T3>::value + is_vector_arg<T4>::value 
-        + is_vector_arg<T5>::value + is_vector_arg<T6>::value 
-        + is_vector_arg<T7>::value + is_vector_arg<T8>::value 
-        + is_vector_arg<T9>::value + is_vector_arg<T10>::value 
-        + is_vector_arg<T11>::value + is_vector_arg<T12>::value 
-        + is_vector_arg<T13>::value + is_vector_arg<T14>::value 
-        + is_vector_arg<T15>::value + is_vector_arg<T16>::value 
-        + is_vector_arg<T17>::value + is_vector_arg<T18>::value 
-        + is_vector_arg<T19>::value + is_vector_arg<T20>::value
-        );
-
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct vector_impl
-{
-    typedef aux::vector_count_args<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        > arg_num_;
-
-    typedef typename aux::vector_chooser< arg_num_::value >
-        ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct vector
-    : aux::vector_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type
-{
-    typedef typename aux::vector_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/msvc60/vector_c.hpp b/boost/mpl/aux_/preprocessed/msvc60/vector_c.hpp
deleted file mode 100644
index c522d08..0000000
--- a/boost/mpl/aux_/preprocessed/msvc60/vector_c.hpp
+++ /dev/null
@@ -1,534 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/vector_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct vector_c_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<0>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector0_c<
-              T
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<1>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector1_c<
-              T, T(C0)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<2>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector2_c<
-              T, T(C0), T(C1)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<3>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector3_c<
-              T, T(C0), T(C1), T(C2)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<4>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector4_c<
-              T, T(C0), T(C1), T(C2), T(C3)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<5>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector5_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<6>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector6_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<7>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector7_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<8>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector8_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<9>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector9_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<10>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector10_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<11>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector11_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<12>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector12_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<13>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector13_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<14>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector14_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<15>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector15_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<16>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector16_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<17>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector17_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<18>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector18_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<19>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector19_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<20>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector20_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< long C >
-struct is_vector_c_arg
-{
-    BOOST_STATIC_CONSTANT(bool, value  = true);
-};
-
-template<>
-struct is_vector_c_arg<LONG_MAX>
-{
-    BOOST_STATIC_CONSTANT(bool, value  = false);
-};
-
-template<
-      long C1, long C2, long C3, long C4, long C5, long C6, long C7, long C8
-    , long C9, long C10, long C11, long C12, long C13, long C14, long C15
-    , long C16, long C17, long C18, long C19, long C20
-    >
-struct vector_c_count_args
-{
-    BOOST_STATIC_CONSTANT(int, value =
-          is_vector_c_arg<C1>::value + is_vector_c_arg<C2>::value 
-        + is_vector_c_arg<C3>::value + is_vector_c_arg<C4>::value 
-        + is_vector_c_arg<C5>::value + is_vector_c_arg<C6>::value 
-        + is_vector_c_arg<C7>::value + is_vector_c_arg<C8>::value 
-        + is_vector_c_arg<C9>::value + is_vector_c_arg<C10>::value 
-        + is_vector_c_arg<C11>::value + is_vector_c_arg<C12>::value 
-        + is_vector_c_arg<C13>::value + is_vector_c_arg<C14>::value 
-        + is_vector_c_arg<C15>::value + is_vector_c_arg<C16>::value 
-        + is_vector_c_arg<C17>::value + is_vector_c_arg<C18>::value 
-        + is_vector_c_arg<C19>::value + is_vector_c_arg<C20>::value
-        );
-
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct vector_c_impl
-{
-    typedef aux::vector_c_count_args<
-          C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        > arg_num_;
-
-    typedef typename aux::vector_c_chooser< arg_num_::value >
-        ::template result_< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct vector_c
-    : aux::vector_c_impl<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        >::type
-{
-    typedef typename aux::vector_c_impl<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/msvc70/advance_backward.hpp b/boost/mpl/aux_/preprocessed/msvc70/advance_backward.hpp
deleted file mode 100644
index 26de94c..0000000
--- a/boost/mpl/aux_/preprocessed/msvc70/advance_backward.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/advance_backward.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-template< long N > struct advance_backward;
-template<>
-struct advance_backward<0>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef iter0 type;
-    };
-};
-
-template<>
-struct advance_backward<1>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef iter1 type;
-    };
-};
-
-template<>
-struct advance_backward<2>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef iter2 type;
-    };
-};
-
-template<>
-struct advance_backward<3>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef typename prior<iter2>::type iter3;
-        typedef iter3 type;
-    };
-};
-
-template<>
-struct advance_backward<4>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef typename prior<iter2>::type iter3;
-        typedef typename prior<iter3>::type iter4;
-        typedef iter4 type;
-    };
-};
-
-template< long N >
-struct advance_backward
-{
-    template< typename Iterator > struct apply
-    {
-        typedef typename apply_wrap1<
-              advance_backward<4>
-            , Iterator
-            >::type chunk_result_;
-
-        typedef typename apply_wrap1<
-              advance_backward<(
-                (N - 4) < 0
-                    ? 0
-                    : N - 4
-                    )>
-            , chunk_result_
-            >::type type;
-    };
-};
-
-}}}
-
diff --git a/boost/mpl/aux_/preprocessed/msvc70/advance_forward.hpp b/boost/mpl/aux_/preprocessed/msvc70/advance_forward.hpp
deleted file mode 100644
index b137cc7..0000000
--- a/boost/mpl/aux_/preprocessed/msvc70/advance_forward.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/advance_forward.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-template< long N > struct advance_forward;
-template<>
-struct advance_forward<0>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef iter0 type;
-    };
-};
-
-template<>
-struct advance_forward<1>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef iter1 type;
-    };
-};
-
-template<>
-struct advance_forward<2>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef iter2 type;
-    };
-};
-
-template<>
-struct advance_forward<3>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef typename next<iter2>::type iter3;
-        typedef iter3 type;
-    };
-};
-
-template<>
-struct advance_forward<4>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef typename next<iter2>::type iter3;
-        typedef typename next<iter3>::type iter4;
-        typedef iter4 type;
-    };
-};
-
-template< long N >
-struct advance_forward
-{
-    template< typename Iterator > struct apply
-    {
-        typedef typename apply_wrap1<
-              advance_forward<4>
-            , Iterator
-            >::type chunk_result_;
-
-        typedef typename apply_wrap1<
-              advance_forward<(
-                (N - 4) < 0
-                    ? 0
-                    : N - 4
-                    )>
-            , chunk_result_
-            >::type type;
-    };
-};
-
-}}}
-
diff --git a/boost/mpl/aux_/preprocessed/msvc70/and.hpp b/boost/mpl/aux_/preprocessed/msvc70/and.hpp
deleted file mode 100644
index e58640a..0000000
--- a/boost/mpl/aux_/preprocessed/msvc70/and.hpp
+++ /dev/null
@@ -1,71 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/and.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< bool C_ > struct and_impl
-{
-    template<
-          typename T1, typename T2, typename T3, typename T4
-        >
-    struct result_
-        : false_
-    {
-    };
-};
-
-template<> struct and_impl<true>
-{
-    template<
-          typename T1, typename T2, typename T3, typename T4
-        >
-    struct result_
-        : and_impl<
-              BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-            >::template result_< T2,T3,T4,true_ >
-    {
-    };
-
-    template<> struct result_< true_,true_,true_,true_ >
-        : true_
-    {
-    };
-};
-
-} // namespace aux
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
-    , typename T3 = true_, typename T4 = true_, typename T5 = true_
-    >
-struct and_
-
-    : aux::and_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        >::template result_< T2,T3,T4,T5 >
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , and_
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC2(
-      2
-    , 5
-    , and_
-    )
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/msvc70/apply.hpp b/boost/mpl/aux_/preprocessed/msvc70/apply.hpp
deleted file mode 100644
index d46d030..0000000
--- a/boost/mpl/aux_/preprocessed/msvc70/apply.hpp
+++ /dev/null
@@ -1,160 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/apply.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename F
-    >
-struct apply0
-
-    : apply_wrap0<
-          typename lambda<F>::type
-       
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          1
-        , apply0
-        , (F )
-        )
-};
-
-/// workaround for ETI bug
-template<>
-struct apply0<int>
-{
-    typedef int type;
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply1
-
-    : apply_wrap1<
-          typename lambda<F>::type
-        , T1
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          2
-        , apply1
-        , (F, T1)
-        )
-};
-
-/// workaround for ETI bug
-template<>
-struct apply1< int,int >
-{
-    typedef int type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply2
-
-    : apply_wrap2<
-          typename lambda<F>::type
-        , T1, T2
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          3
-        , apply2
-        , (F, T1, T2)
-        )
-};
-
-/// workaround for ETI bug
-template<>
-struct apply2< int,int,int >
-{
-    typedef int type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply3
-
-    : apply_wrap3<
-          typename lambda<F>::type
-        , T1, T2, T3
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          4
-        , apply3
-        , (F, T1, T2, T3)
-        )
-};
-
-/// workaround for ETI bug
-template<>
-struct apply3< int,int,int,int >
-{
-    typedef int type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply4
-
-    : apply_wrap4<
-          typename lambda<F>::type
-        , T1, T2, T3, T4
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , apply4
-        , (F, T1, T2, T3, T4)
-        )
-};
-
-/// workaround for ETI bug
-template<>
-struct apply4< int,int,int,int,int >
-{
-    typedef int type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply5
-
-    : apply_wrap5<
-          typename lambda<F>::type
-        , T1, T2, T3, T4, T5
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          6
-        , apply5
-        , (F, T1, T2, T3, T4, T5)
-        )
-};
-
-/// workaround for ETI bug
-template<>
-struct apply5< int,int,int,int,int,int >
-{
-    typedef int type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/msvc70/apply_fwd.hpp b/boost/mpl/aux_/preprocessed/msvc70/apply_fwd.hpp
deleted file mode 100644
index f0f86c1..0000000
--- a/boost/mpl/aux_/preprocessed/msvc70/apply_fwd.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/apply_fwd.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename F
-    >
-struct apply0;
-
-template<
-      typename F, typename T1
-    >
-struct apply1;
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply2;
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply3;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply4;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply5;
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/msvc70/apply_wrap.hpp b/boost/mpl/aux_/preprocessed/msvc70/apply_wrap.hpp
deleted file mode 100644
index d307517..0000000
--- a/boost/mpl/aux_/preprocessed/msvc70/apply_wrap.hpp
+++ /dev/null
@@ -1,138 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/apply_wrap.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename F
-
-    , typename has_apply_ = typename aux::has_apply<F>::type
-
-    >
-struct apply_wrap0
-
-{
-    typedef typename F::template apply<
-        
-        >::type type;
-
-};
-
-/// workaround for ETI bug
-template<>
-struct apply_wrap0<int>
-{
-    typedef int type;
-};
-
-template<
-      typename F, typename T1
-
-    >
-struct apply_wrap1
-
-{
-    typedef typename F::template apply<
-         T1
-        >::type type;
-
-};
-
-/// workaround for ETI bug
-template<>
-struct apply_wrap1< int,int >
-{
-    typedef int type;
-};
-
-template<
-      typename F, typename T1, typename T2
-
-    >
-struct apply_wrap2
-
-{
-    typedef typename F::template apply<
-         T1, T2
-        >::type type;
-
-};
-
-/// workaround for ETI bug
-template<>
-struct apply_wrap2< int,int,int >
-{
-    typedef int type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-
-    >
-struct apply_wrap3
-
-{
-    typedef typename F::template apply<
-         T1, T2, T3
-        >::type type;
-
-};
-
-/// workaround for ETI bug
-template<>
-struct apply_wrap3< int,int,int,int >
-{
-    typedef int type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-
-    >
-struct apply_wrap4
-
-{
-    typedef typename F::template apply<
-         T1, T2, T3, T4
-        >::type type;
-
-};
-
-/// workaround for ETI bug
-template<>
-struct apply_wrap4< int,int,int,int,int >
-{
-    typedef int type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-
-    >
-struct apply_wrap5
-
-{
-    typedef typename F::template apply<
-         T1, T2, T3, T4, T5
-        >::type type;
-
-};
-
-/// workaround for ETI bug
-template<>
-struct apply_wrap5< int,int,int,int,int,int >
-{
-    typedef int type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/msvc70/arg.hpp b/boost/mpl/aux_/preprocessed/msvc70/arg.hpp
deleted file mode 100644
index 6f2f8a8..0000000
--- a/boost/mpl/aux_/preprocessed/msvc70/arg.hpp
+++ /dev/null
@@ -1,123 +0,0 @@
-
-// Copyright Peter Dimov 2001-2002
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/arg.hpp" header
-// -- DO NOT modify by hand!
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-template<> struct arg< -1 >
-{
-    BOOST_STATIC_CONSTANT(int, value  = -1);
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U1 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<1>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 1);
-    typedef arg<2> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U1 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<2>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 2);
-    typedef arg<3> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U2 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<3>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 3);
-    typedef arg<4> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U3 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<4>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 4);
-    typedef arg<5> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U4 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<5>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 5);
-    typedef arg<6> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U5 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg)
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
diff --git a/boost/mpl/aux_/preprocessed/msvc70/basic_bind.hpp b/boost/mpl/aux_/preprocessed/msvc70/basic_bind.hpp
deleted file mode 100644
index 4f12a40..0000000
--- a/boost/mpl/aux_/preprocessed/msvc70/basic_bind.hpp
+++ /dev/null
@@ -1,328 +0,0 @@
-
-// Copyright Peter Dimov 2001
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/basic_bind.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< bool >
-struct resolve_arg_impl
-{
-    template<
-          typename T, typename U1, typename U2, typename U3
-        , typename U4, typename U5
-        >
-    struct result_
-    {
-        typedef T type;
-    };
-};
-
-template<>
-struct resolve_arg_impl<true>
-{
-    template<
-          typename T, typename U1, typename U2, typename U3
-        , typename U4, typename U5
-        >
-    struct result_
-    {
-        typedef typename apply_wrap5<
-              T
-            , U1, U2, U3, U4, U5
-            >::type type;
-    };
-};
-
-template< typename T > struct is_bind_template;
-
-template<
-      typename T, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg
-    : resolve_arg_impl< is_bind_template<T>::value >
-            ::template result_< T,U1,U2,U3,U4,U5 >
-{
-};
-
-template< int arity_ > struct bind_chooser;
-
-aux::no_tag is_bind_helper(...);
-template< typename T > aux::no_tag is_bind_helper(protect<T>*);
-
-template< int N >
-aux::yes_tag is_bind_helper(arg<N>*);
-
-template< bool is_ref_  = true >
-struct is_bind_template_impl
-{
-    template< typename T > struct result_
-    {
-        BOOST_STATIC_CONSTANT(bool, value  = false);
-    };
-};
-
-template<>
-struct is_bind_template_impl<false>
-{
-    template< typename T > struct result_
-    {
-        BOOST_STATIC_CONSTANT(bool, value =
-              sizeof(aux::is_bind_helper(static_cast<T*>(0)))
-                == sizeof(aux::yes_tag)
-            );
-    };
-};
-
-template< typename T > struct is_bind_template
-    : is_bind_template_impl< ::boost::detail::is_reference_impl<T>::value >
-        ::template result_<T>
-{
-};
-
-} // namespace aux
-
-template<
-      typename F
-    >
-struct bind0
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-
-     public:
-        typedef typename apply_wrap0<
-              f_
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F
-    >
-aux::yes_tag
-is_bind_helper(bind0<F>*);
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
-
-template<
-      typename F, typename T1
-    >
-struct bind1
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-
-     public:
-        typedef typename apply_wrap1<
-              f_
-            , typename t1::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1
-    >
-aux::yes_tag
-is_bind_helper(bind1< F,T1 >*);
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-
-     public:
-        typedef typename apply_wrap2<
-              f_
-            , typename t1::type, typename t2::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2
-    >
-aux::yes_tag
-is_bind_helper(bind2< F,T1,T2 >*);
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-
-     public:
-        typedef typename apply_wrap3<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-aux::yes_tag
-is_bind_helper(bind3< F,T1,T2,T3 >*);
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind4
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
-
-     public:
-        typedef typename apply_wrap4<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-aux::yes_tag
-is_bind_helper(bind4< F,T1,T2,T3,T4 >*);
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind5
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
-        typedef aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 > t5;
-
-     public:
-        typedef typename apply_wrap5<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type, typename t5::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-aux::yes_tag
-is_bind_helper(bind5< F,T1,T2,T3,T4,T5 >*);
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/msvc70/bind.hpp b/boost/mpl/aux_/preprocessed/msvc70/bind.hpp
deleted file mode 100644
index 53c76e8..0000000
--- a/boost/mpl/aux_/preprocessed/msvc70/bind.hpp
+++ /dev/null
@@ -1,432 +0,0 @@
-
-// Copyright Peter Dimov 2001
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/bind.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< bool >
-struct resolve_arg_impl
-{
-    template<
-          typename T, typename U1, typename U2, typename U3
-        , typename U4, typename U5
-        >
-    struct result_
-    {
-        typedef T type;
-    };
-};
-
-template<>
-struct resolve_arg_impl<true>
-{
-    template<
-          typename T, typename U1, typename U2, typename U3
-        , typename U4, typename U5
-        >
-    struct result_
-    {
-        typedef typename apply_wrap5<
-              T
-            , U1, U2, U3, U4, U5
-            >::type type;
-    };
-};
-
-template< typename T > struct is_bind_template;
-
-template<
-      typename T, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg
-    : resolve_arg_impl< is_bind_template<T>::value >
-            ::template result_< T,U1,U2,U3,U4,U5 >
-{
-};
-
-template< typename T >
-struct replace_unnamed_arg_impl
-{
-    template< typename Arg > struct result_
-    {
-        typedef Arg next;
-        typedef T type;
-    };
-};
-
-template<>
-struct replace_unnamed_arg_impl< arg< -1 > >
-{
-    template< typename Arg > struct result_
-    {
-        typedef typename next<Arg>::type next;
-        typedef Arg type;
-    };
-};
-
-template< typename T, typename Arg >
-struct replace_unnamed_arg
-    : replace_unnamed_arg_impl<T>::template result_<Arg>
-{
-};
-
-template< int arity_ > struct bind_chooser;
-
-aux::no_tag is_bind_helper(...);
-template< typename T > aux::no_tag is_bind_helper(protect<T>*);
-
-template< int N >
-aux::yes_tag is_bind_helper(arg<N>*);
-
-template< bool is_ref_  = true >
-struct is_bind_template_impl
-{
-    template< typename T > struct result_
-    {
-        BOOST_STATIC_CONSTANT(bool, value  = false);
-    };
-};
-
-template<>
-struct is_bind_template_impl<false>
-{
-    template< typename T > struct result_
-    {
-        BOOST_STATIC_CONSTANT(bool, value =
-              sizeof(aux::is_bind_helper(static_cast<T*>(0)))
-                == sizeof(aux::yes_tag)
-            );
-    };
-};
-
-template< typename T > struct is_bind_template
-    : is_bind_template_impl< ::boost::detail::is_reference_impl<T>::value >
-        ::template result_<T>
-{
-};
-
-} // namespace aux
-
-template<
-      typename F
-    >
-struct bind0
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-     public:
-        typedef typename apply_wrap0<
-              f_
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F
-    >
-aux::yes_tag
-is_bind_helper(bind0<F>*);
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
-
-template<
-      typename F, typename T1
-    >
-struct bind1
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-     public:
-        typedef typename apply_wrap1<
-              f_
-            , typename t1::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1
-    >
-aux::yes_tag
-is_bind_helper(bind1< F,T1 >*);
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-     public:
-        typedef typename apply_wrap2<
-              f_
-            , typename t1::type, typename t2::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2
-    >
-aux::yes_tag
-is_bind_helper(bind2< F,T1,T2 >*);
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-     public:
-        typedef typename apply_wrap3<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-aux::yes_tag
-is_bind_helper(bind3< F,T1,T2,T3 >*);
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind4
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef aux::replace_unnamed_arg< T4,n4 > r4;
-        typedef typename r4::type a4;
-        typedef typename r4::next n5;
-        typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
-        ///
-     public:
-        typedef typename apply_wrap4<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-aux::yes_tag
-is_bind_helper(bind4< F,T1,T2,T3,T4 >*);
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind5
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef aux::replace_unnamed_arg< T4,n4 > r4;
-        typedef typename r4::type a4;
-        typedef typename r4::next n5;
-        typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
-        ///
-        typedef aux::replace_unnamed_arg< T5,n5 > r5;
-        typedef typename r5::type a5;
-        typedef typename r5::next n6;
-        typedef aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 > t5;
-        ///
-     public:
-        typedef typename apply_wrap5<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type, typename t5::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-aux::yes_tag
-is_bind_helper(bind5< F,T1,T2,T3,T4,T5 >*);
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/msvc70/bind_fwd.hpp b/boost/mpl/aux_/preprocessed/msvc70/bind_fwd.hpp
deleted file mode 100644
index 022cba3..0000000
--- a/boost/mpl/aux_/preprocessed/msvc70/bind_fwd.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/bind_fwd.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename F
-    >
-struct bind0;
-
-template<
-      typename F, typename T1
-    >
-struct bind1;
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2;
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind4;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind5;
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/msvc70/bitand.hpp b/boost/mpl/aux_/preprocessed/msvc70/bitand.hpp
deleted file mode 100644
index e54b4ce..0000000
--- a/boost/mpl/aux_/preprocessed/msvc70/bitand.hpp
+++ /dev/null
@@ -1,151 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/bitand.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
-    >
-struct bitand_impl
-    : if_c<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< bitand_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< bitand_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitand_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct bitand_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct bitand_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitand_tag
-    : tag< T,na >
-{
-};
-
-/// forward declaration
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct bitand_2;
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct bitand_
-
-    : aux::msvc_eti_base< typename if_<
-
-          is_na<N3>
-        , bitand_2< N1,N2 >
-        , bitand_<
-              bitand_2< N1,N2 >
-            , N3, N4, N5
-            >
-        >::type
-
-    >
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitand_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1
-    , typename N2
-    >
-struct bitand_2
-    : aux::msvc_eti_base< typename apply_wrap2<
-          bitand_impl<
-              typename bitand_tag<N1>::type
-            , typename bitand_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitand_2, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_)
-
-}}
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct bitand_wknd
-{
-    BOOST_STATIC_CONSTANT(T, value  = (n1 & n2));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct bitand_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-        : aux::bitand_wknd<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , N1::value
-            , N2::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/msvc70/bitor.hpp b/boost/mpl/aux_/preprocessed/msvc70/bitor.hpp
deleted file mode 100644
index 3b465b3..0000000
--- a/boost/mpl/aux_/preprocessed/msvc70/bitor.hpp
+++ /dev/null
@@ -1,151 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/bitor.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
-    >
-struct bitor_impl
-    : if_c<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< bitor_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< bitor_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitor_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct bitor_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct bitor_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitor_tag
-    : tag< T,na >
-{
-};
-
-/// forward declaration
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct bitor_2;
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct bitor_
-
-    : aux::msvc_eti_base< typename if_<
-
-          is_na<N3>
-        , bitor_2< N1,N2 >
-        , bitor_<
-              bitor_2< N1,N2 >
-            , N3, N4, N5
-            >
-        >::type
-
-    >
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitor_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1
-    , typename N2
-    >
-struct bitor_2
-    : aux::msvc_eti_base< typename apply_wrap2<
-          bitor_impl<
-              typename bitor_tag<N1>::type
-            , typename bitor_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitor_2, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_)
-
-}}
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct bitor_wknd
-{
-    BOOST_STATIC_CONSTANT(T, value  = (n1 | n2));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct bitor_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-        : aux::bitor_wknd<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , N1::value
-            , N2::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/msvc70/bitxor.hpp b/boost/mpl/aux_/preprocessed/msvc70/bitxor.hpp
deleted file mode 100644
index f7c5d43..0000000
--- a/boost/mpl/aux_/preprocessed/msvc70/bitxor.hpp
+++ /dev/null
@@ -1,151 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/bitxor.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
-    >
-struct bitxor_impl
-    : if_c<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< bitxor_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< bitxor_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitxor_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct bitxor_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct bitxor_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitxor_tag
-    : tag< T,na >
-{
-};
-
-/// forward declaration
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct bitxor_2;
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct bitxor_
-
-    : aux::msvc_eti_base< typename if_<
-
-          is_na<N3>
-        , bitxor_2< N1,N2 >
-        , bitxor_<
-              bitxor_2< N1,N2 >
-            , N3, N4, N5
-            >
-        >::type
-
-    >
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitxor_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1
-    , typename N2
-    >
-struct bitxor_2
-    : aux::msvc_eti_base< typename apply_wrap2<
-          bitxor_impl<
-              typename bitxor_tag<N1>::type
-            , typename bitxor_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitxor_2, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_)
-
-}}
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct bitxor_wknd
-{
-    BOOST_STATIC_CONSTANT(T, value  = (n1 ^ n2));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct bitxor_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-        : aux::bitxor_wknd<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , N1::value
-            , N2::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/msvc70/deque.hpp b/boost/mpl/aux_/preprocessed/msvc70/deque.hpp
deleted file mode 100644
index a0445d9..0000000
--- a/boost/mpl/aux_/preprocessed/msvc70/deque.hpp
+++ /dev/null
@@ -1,556 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/deque.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct deque_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct deque_chooser<0>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef vector0<
-             
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<1>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector1<
-              T0
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<2>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector2<
-              T0, T1
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<3>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector3<
-              T0, T1, T2
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<4>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector4<
-              T0, T1, T2, T3
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<5>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector5<
-              T0, T1, T2, T3, T4
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<6>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector6<
-              T0, T1, T2, T3, T4, T5
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<7>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector7<
-              T0, T1, T2, T3, T4, T5, T6
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<8>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector8<
-              T0, T1, T2, T3, T4, T5, T6, T7
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<9>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector9<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<10>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector10<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<11>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector11<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<12>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector12<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<13>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector13<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<14>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector14<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<15>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector15<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<16>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector16<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<17>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector17<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<18>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector18<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<19>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector19<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<20>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector20<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_deque_arg
-{
-    BOOST_STATIC_CONSTANT(bool, value  = true);
-};
-
-template<>
-struct is_deque_arg<na>
-{
-    BOOST_STATIC_CONSTANT(bool, value  = false);
-};
-
-template<
-      typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename T6, typename T7, typename T8, typename T9, typename T10
-    , typename T11, typename T12, typename T13, typename T14, typename T15
-    , typename T16, typename T17, typename T18, typename T19, typename T20
-    >
-struct deque_count_args
-{
-    BOOST_STATIC_CONSTANT(int, value =
-          is_deque_arg<T1>::value + is_deque_arg<T2>::value 
-        + is_deque_arg<T3>::value + is_deque_arg<T4>::value 
-        + is_deque_arg<T5>::value + is_deque_arg<T6>::value 
-        + is_deque_arg<T7>::value + is_deque_arg<T8>::value 
-        + is_deque_arg<T9>::value + is_deque_arg<T10>::value 
-        + is_deque_arg<T11>::value + is_deque_arg<T12>::value 
-        + is_deque_arg<T13>::value + is_deque_arg<T14>::value 
-        + is_deque_arg<T15>::value + is_deque_arg<T16>::value 
-        + is_deque_arg<T17>::value + is_deque_arg<T18>::value 
-        + is_deque_arg<T19>::value + is_deque_arg<T20>::value
-        );
-
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct deque_impl
-{
-    typedef aux::deque_count_args<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        > arg_num_;
-
-    typedef typename aux::deque_chooser< arg_num_::value >
-        ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct deque
-    : aux::deque_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type
-{
-    typedef typename aux::deque_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/msvc70/divides.hpp b/boost/mpl/aux_/preprocessed/msvc70/divides.hpp
deleted file mode 100644
index 0c60c43..0000000
--- a/boost/mpl/aux_/preprocessed/msvc70/divides.hpp
+++ /dev/null
@@ -1,150 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/divides.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
-    >
-struct divides_impl
-    : if_c<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< divides_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< divides_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct divides_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct divides_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct divides_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct divides_tag
-    : tag< T,na >
-{
-};
-
-/// forward declaration
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct divides2;
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct divides
-
-    : aux::msvc_eti_base< typename if_<
-
-          is_na<N3>
-        , divides2< N1,N2 >
-        , divides<
-              divides2< N1,N2 >
-            , N3, N4, N5
-            >
-        >::type
-
-    >
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , divides
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1
-    , typename N2
-    >
-struct divides2
-    : aux::msvc_eti_base< typename apply_wrap2<
-          divides_impl<
-              typename divides_tag<N1>::type
-            , typename divides_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, divides2, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, divides)
-
-}}
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct divides_wknd
-{
-    BOOST_STATIC_CONSTANT(T, value  = (n1 / n2));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct divides_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-        : aux::divides_wknd<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , N1::value
-            , N2::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/msvc70/equal_to.hpp b/boost/mpl/aux_/preprocessed/msvc70/equal_to.hpp
deleted file mode 100644
index 107912b..0000000
--- a/boost/mpl/aux_/preprocessed/msvc70/equal_to.hpp
+++ /dev/null
@@ -1,102 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/equal_to.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
-    >
-struct equal_to_impl
-    : if_c<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct equal_to_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct equal_to_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct equal_to_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct equal_to_tag
-    : tag< T,na >
-{
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct equal_to
-    : aux::msvc_eti_base< typename apply_wrap2<
-          equal_to_impl<
-              typename equal_to_tag<N1>::type
-            , typename equal_to_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct equal_to_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-    {
-        BOOST_STATIC_CONSTANT(bool, value =
-             ( BOOST_MPL_AUX_VALUE_WKND(N1)::value ==
-             BOOST_MPL_AUX_VALUE_WKND(N2)::value )
-            );
-        typedef bool_<value> type;
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/msvc70/fold_impl.hpp b/boost/mpl/aux_/preprocessed/msvc70/fold_impl.hpp
deleted file mode 100644
index 58066d8..0000000
--- a/boost/mpl/aux_/preprocessed/msvc70/fold_impl.hpp
+++ /dev/null
@@ -1,245 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl;
-
-template< int N >
-struct fold_chunk;
-
-template<> struct fold_chunk<0>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef state0 state;
-        typedef iter0 iterator;
-    };
-};
-
-template<> struct fold_chunk<1>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        
-
-        typedef state1 state;
-        typedef iter1 iterator;
-    };
-};
-
-template<> struct fold_chunk<2>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        
-
-        typedef state2 state;
-        typedef iter2 iterator;
-    };
-};
-
-template<> struct fold_chunk<3>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        
-
-        typedef state3 state;
-        typedef iter3 iterator;
-    };
-};
-
-template<> struct fold_chunk<4>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp, state3, typename deref<iter3>::type >::type state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef state4 state;
-        typedef iter4 iterator;
-    };
-};
-
-template< int N >
-struct fold_chunk
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef fold_impl<
-              4
-            , First
-            , Last
-            , State
-            , ForwardOp
-            > chunk_;
-
-        typedef fold_impl<
-              ( (N - 4) < 0 ? 0 : N - 4 )
-            , typename chunk_::iterator
-            , Last
-            , typename chunk_::state
-            , ForwardOp
-            > res_;
-
-        typedef typename res_::state state;
-        typedef typename res_::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_step;
-
-template<
-      typename Last
-    , typename State
-    >
-struct fold_null_step
-{
-    typedef Last iterator;
-    typedef State state;
-};
-
-template<>
-struct fold_chunk< -1 >
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef typename if_<
-              typename is_same< First,Last >::type
-            , fold_null_step< Last,State >
-            , fold_step< First,Last,State,ForwardOp >
-            >::type res_;
-
-        typedef typename res_::state state;
-        typedef typename res_::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_step
-{
-    typedef fold_chunk< -1 >::template result_<
-          typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State, typename deref<First>::type>::type
-        , ForwardOp
-        > chunk_;
-
-    typedef typename chunk_::state state;
-    typedef typename chunk_::iterator iterator;
-};
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl
-    : fold_chunk<N>
-        ::template result_< First,Last,State,ForwardOp >
-{
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/msvc70/full_lambda.hpp b/boost/mpl/aux_/preprocessed/msvc70/full_lambda.hpp
deleted file mode 100644
index bf81873..0000000
--- a/boost/mpl/aux_/preprocessed/msvc70/full_lambda.hpp
+++ /dev/null
@@ -1,554 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/full_lambda.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template<
-      bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false
-    , bool C5 = false
-    >
-struct lambda_or
-    : true_
-{
-};
-
-template<>
-struct lambda_or< false,false,false,false,false >
-    : false_
-{
-};
-
-} // namespace aux
-
-template<
-      typename T
-    , typename Tag
-   
-    >
-struct lambda
-{
-    typedef false_ is_le;
-    typedef T result_;
-    typedef T type;
-};
-
-template<
-      typename T
-    >
-struct is_lambda_expression
-    : lambda<T>::is_le
-{
-};
-
-template< int N, typename Tag >
-struct lambda< arg<N>, Tag >
-{
-    typedef true_ is_le;
-    typedef mpl::arg<N> result_; // qualified for the sake of MIPSpro 7.41
-    typedef mpl::protect<result_> type;
-};
-
-template<
-      typename F
-    , typename Tag
-    >
-struct lambda<
-          bind0<F>
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind0<
-          F
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1 > class F
-    , typename L1
-    >
-struct le_result1
-{
-    typedef F<
-          typename L1::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1 > class F
-    , typename L1
-    >
-struct le_result1< true_,Tag,F,L1 >
-{
-    typedef bind1<
-          quote1< F,Tag >
-        , typename L1::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1 > class F
-    , typename T1
-    , typename Tag
-    >
-struct lambda<
-          F<T1>
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef typename l1::is_le is_le1;
-    typedef typename aux::lambda_or<
-          is_le1::value
-        >::type is_le;
-
-    typedef aux::le_result1<
-          is_le, Tag, F, l1
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1
-    , typename Tag
-    >
-struct lambda<
-          bind1< F,T1 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind1<
-          F
-        , T1
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2 > class F
-    , typename L1, typename L2
-    >
-struct le_result2
-{
-    typedef F<
-          typename L1::type, typename L2::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2 > class F
-    , typename L1, typename L2
-    >
-struct le_result2< true_,Tag,F,L1,L2 >
-{
-    typedef bind2<
-          quote2< F,Tag >
-        , typename L1::result_, typename L2::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2 > class F
-    , typename T1, typename T2
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value
-        >::type is_le;
-
-    typedef aux::le_result2<
-          is_le, Tag, F, l1, l2
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    , typename Tag
-    >
-struct lambda<
-          bind2< F,T1,T2 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind2<
-          F
-        , T1, T2
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3 > class F
-    , typename L1, typename L2, typename L3
-    >
-struct le_result3
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3 > class F
-    , typename L1, typename L2, typename L3
-    >
-struct le_result3< true_,Tag,F,L1,L2,L3 >
-{
-    typedef bind3<
-          quote3< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2, typename P3 > class F
-    , typename T1, typename T2, typename T3
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value
-        >::type is_le;
-
-    typedef aux::le_result3<
-          is_le, Tag, F, l1, l2, l3
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    , typename Tag
-    >
-struct lambda<
-          bind3< F,T1,T2,T3 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind3<
-          F
-        , T1, T2, T3
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename L1, typename L2, typename L3, typename L4
-    >
-struct le_result4
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        , typename L4::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename L1, typename L2, typename L3, typename L4
-    >
-struct le_result4< true_,Tag,F,L1,L2,L3,L4 >
-{
-    typedef bind4<
-          quote4< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        , typename L4::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename T1, typename T2, typename T3, typename T4
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3,T4 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    typedef lambda< T4,Tag > l4;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    typedef typename l4::is_le is_le4;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value, is_le4::value
-        >::type is_le;
-
-    typedef aux::le_result4<
-          is_le, Tag, F, l1, l2, l3, l4
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename Tag
-    >
-struct lambda<
-          bind4< F,T1,T2,T3,T4 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind4<
-          F
-        , T1, T2, T3, T4
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
-    , typename L1, typename L2, typename L3, typename L4, typename L5
-    >
-struct le_result5
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        , typename L4::type, typename L5::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
-    , typename L1, typename L2, typename L3, typename L4, typename L5
-    >
-struct le_result5< true_,Tag,F,L1,L2,L3,L4,L5 >
-{
-    typedef bind5<
-          quote5< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        , typename L4::result_, typename L5::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template<
-          typename P1, typename P2, typename P3, typename P4
-        , typename P5
-        >
-      class F
-    , typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3,T4,T5 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    typedef lambda< T4,Tag > l4;
-    typedef lambda< T5,Tag > l5;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    typedef typename l4::is_le is_le4;
-    typedef typename l5::is_le is_le5;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value, is_le4::value
-        , is_le5::value
-        >::type is_le;
-
-    typedef aux::le_result5<
-          is_le, Tag, F, l1, l2, l3, l4, l5
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    , typename Tag
-    >
-struct lambda<
-          bind5< F,T1,T2,T3,T4,T5 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind5<
-          F
-        , T1, T2, T3, T4, T5
-        > result_;
-
-    typedef result_ type;
-};
-
-/// special case for 'protect'
-template< typename T, typename Tag >
-struct lambda< mpl::protect<T>, Tag >
-{
-    typedef false_ is_le;
-    typedef mpl::protect<T> result_;
-    typedef result_ type;
-};
-
-/// specializations for the main 'bind' form
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    , typename Tag
-    >
-struct lambda<
-          bind< F,T1,T2,T3,T4,T5 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind< F,T1,T2,T3,T4,T5 > result_;
-    typedef result_ type;
-};
-
-/// workaround for MWCW 8.3+/EDG < 303, leads to ambiguity on Digital Mars
-
-template<
-      typename F, typename Tag1, typename Tag2
-    >
-struct lambda<
-          lambda< F,Tag1 >
-        , Tag2
-        >
-{
-    typedef lambda< F,Tag2 > l1;
-    typedef lambda< Tag1,Tag2 > l2;
-    typedef typename l1::is_le is_le;
-    typedef aux::le_result2<is_le, Tag2, mpl::lambda, l1, l2> le_result_;
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, lambda)
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/msvc70/greater.hpp b/boost/mpl/aux_/preprocessed/msvc70/greater.hpp
deleted file mode 100644
index f60a860..0000000
--- a/boost/mpl/aux_/preprocessed/msvc70/greater.hpp
+++ /dev/null
@@ -1,102 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/greater.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
-    >
-struct greater_impl
-    : if_c<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< greater_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< greater_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct greater_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct greater_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct greater_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct greater_tag
-    : tag< T,na >
-{
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct greater
-    : aux::msvc_eti_base< typename apply_wrap2<
-          greater_impl<
-              typename greater_tag<N1>::type
-            , typename greater_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, greater)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct greater_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-    {
-        BOOST_STATIC_CONSTANT(bool, value =
-             ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >
-             BOOST_MPL_AUX_VALUE_WKND(N2)::value )
-            );
-        typedef bool_<value> type;
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/msvc70/greater_equal.hpp b/boost/mpl/aux_/preprocessed/msvc70/greater_equal.hpp
deleted file mode 100644
index 2ab09fd..0000000
--- a/boost/mpl/aux_/preprocessed/msvc70/greater_equal.hpp
+++ /dev/null
@@ -1,102 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/greater_equal.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
-    >
-struct greater_equal_impl
-    : if_c<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< greater_equal_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct greater_equal_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct greater_equal_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct greater_equal_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct greater_equal_tag
-    : tag< T,na >
-{
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct greater_equal
-    : aux::msvc_eti_base< typename apply_wrap2<
-          greater_equal_impl<
-              typename greater_equal_tag<N1>::type
-            , typename greater_equal_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct greater_equal_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-    {
-        BOOST_STATIC_CONSTANT(bool, value =
-             ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >=
-             BOOST_MPL_AUX_VALUE_WKND(N2)::value )
-            );
-        typedef bool_<value> type;
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/msvc70/inherit.hpp b/boost/mpl/aux_/preprocessed/msvc70/inherit.hpp
deleted file mode 100644
index 233a1ec..0000000
--- a/boost/mpl/aux_/preprocessed/msvc70/inherit.hpp
+++ /dev/null
@@ -1,166 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/inherit.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template< bool C1, bool C2 >
-struct inherit2_impl
-{
-    template< typename Derived, typename T1, typename T2 > struct result_
-        : T1, T2
-    {
-        typedef Derived type_;
-    };
-};
-
-template<>
-struct inherit2_impl< false,true >
-{
-    template< typename Derived, typename T1, typename T2 > struct result_
-        : T1
-    {
-        typedef T1 type_;
-    };
-};
-
-template<>
-struct inherit2_impl< true,false >
-{
-    template< typename Derived, typename T1, typename T2 > struct result_
-        : T2
-    {
-        typedef T2 type_;
-    };
-};
-
-template<>
-struct inherit2_impl< true,true >
-{
-    template< typename Derived, typename T1, typename T2 > struct result_
-    {
-        typedef T1 type_;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
-    >
-struct inherit2
-    : aux::inherit2_impl<
-          is_empty_base<T1>::value
-        , is_empty_base<T2>::value
-        >::template result_< inherit2< T1,T2 >,T1, T2 >
-{
-    typedef typename inherit2::type_ type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2))
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, inherit2)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na
-    >
-struct inherit3
-    : inherit2<
-          typename inherit2<
-              T1, T2
-            >::type
-        , T3
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          3
-        , inherit3
-        , ( T1, T2, T3)
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC(3, inherit3)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
-    >
-struct inherit4
-    : inherit2<
-          typename inherit3<
-              T1, T2, T3
-            >::type
-        , T4
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          4
-        , inherit4
-        , ( T1, T2, T3, T4)
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC(4, inherit4)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
-    , typename T5 = na
-    >
-struct inherit5
-    : inherit2<
-          typename inherit4<
-              T1, T2, T3, T4
-            >::type
-        , T5
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , inherit5
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC(5, inherit5)
-
-/// primary template
-
-template<
-      typename T1 = empty_base, typename T2 = empty_base
-    , typename T3 = empty_base, typename T4 = empty_base
-    , typename T5 = empty_base
-    >
-struct inherit
-    : inherit5< T1,T2,T3,T4,T5 >
-{
-};
-
-template<>
-struct inherit< na,na,na,na,na >
-{
-    template<
-
-          typename T1 = empty_base, typename T2 = empty_base
-        , typename T3 = empty_base, typename T4 = empty_base
-        , typename T5 = empty_base
-
-        >
-    struct apply
-        : inherit< T1,T2,T3,T4,T5 >
-    {
-    };
-};
-
-BOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit)
-BOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit)
-BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit)
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/msvc70/iter_fold_if_impl.hpp b/boost/mpl/aux_/preprocessed/msvc70/iter_fold_if_impl.hpp
deleted file mode 100644
index 6951795..0000000
--- a/boost/mpl/aux_/preprocessed/msvc70/iter_fold_if_impl.hpp
+++ /dev/null
@@ -1,133 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright David Abrahams 2001-2002
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/iter_fold_if_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-template< typename Iterator, typename State >
-struct iter_fold_if_null_step
-{
-    typedef State state;
-    typedef Iterator iterator;
-};
-
-template< bool >
-struct iter_fold_if_step_impl
-{
-    template<
-          typename Iterator
-        , typename State
-        , typename StateOp
-        , typename IteratorOp
-        >
-    struct result_
-    {
-        typedef typename apply2< StateOp,State,Iterator >::type state;
-        typedef typename IteratorOp::type iterator;
-    };
-};
-
-template<>
-struct iter_fold_if_step_impl<false>
-{
-    template<
-          typename Iterator
-        , typename State
-        , typename StateOp
-        , typename IteratorOp
-        >
-    struct result_
-    {
-        typedef State state;
-        typedef Iterator iterator;
-    };
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename ForwardOp
-    , typename Predicate
-    >
-struct iter_fold_if_forward_step
-{
-    typedef typename apply2< Predicate,State,Iterator >::type not_last;
-    typedef typename iter_fold_if_step_impl<
-          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
-        >::template result_< Iterator,State,ForwardOp, mpl::next<Iterator> > impl_;
-
-    typedef typename impl_::state state;
-    typedef typename impl_::iterator iterator;
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename BackwardOp
-    , typename Predicate
-    >
-struct iter_fold_if_backward_step
-{
-    typedef typename apply2< Predicate,State,Iterator >::type not_last;
-    typedef typename iter_fold_if_step_impl<
-          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
-        >::template result_< Iterator,State,BackwardOp, identity<Iterator> > impl_;
-
-    typedef typename impl_::state state;
-    typedef typename impl_::iterator iterator;
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename ForwardOp
-    , typename ForwardPredicate
-    , typename BackwardOp
-    , typename BackwardPredicate
-    >
-struct iter_fold_if_impl
-{
- private:
-    typedef iter_fold_if_null_step< Iterator,State > forward_step0;
-    typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1;
-    typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2;
-    typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3;
-    typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4;
-    
-
-    typedef typename if_<
-          typename forward_step4::not_last
-        , iter_fold_if_impl<
-              typename forward_step4::iterator
-            , typename forward_step4::state
-            , ForwardOp
-            , ForwardPredicate
-            , BackwardOp
-            , BackwardPredicate
-            >
-        , iter_fold_if_null_step<
-              typename forward_step4::iterator
-            , typename forward_step4::state
-            >
-        >::type backward_step4;
-
-    typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3;
-    typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2;
-    typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1;
-    typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0;
-    
-
- public:
-    typedef typename backward_step0::state state;
-    typedef typename backward_step4::iterator iterator;
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/msvc70/iter_fold_impl.hpp b/boost/mpl/aux_/preprocessed/msvc70/iter_fold_impl.hpp
deleted file mode 100644
index 50ea754..0000000
--- a/boost/mpl/aux_/preprocessed/msvc70/iter_fold_impl.hpp
+++ /dev/null
@@ -1,245 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/iter_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl;
-
-template< int N >
-struct iter_fold_chunk;
-
-template<> struct iter_fold_chunk<0>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef state0 state;
-        typedef iter0 iterator;
-    };
-};
-
-template<> struct iter_fold_chunk<1>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        
-
-        typedef state1 state;
-        typedef iter1 iterator;
-    };
-};
-
-template<> struct iter_fold_chunk<2>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        
-
-        typedef state2 state;
-        typedef iter2 iterator;
-    };
-};
-
-template<> struct iter_fold_chunk<3>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp,state2,iter2 >::type state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        
-
-        typedef state3 state;
-        typedef iter3 iterator;
-    };
-};
-
-template<> struct iter_fold_chunk<4>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp,state2,iter2 >::type state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp,state3,iter3 >::type state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef state4 state;
-        typedef iter4 iterator;
-    };
-};
-
-template< int N >
-struct iter_fold_chunk
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef iter_fold_impl<
-              4
-            , First
-            , Last
-            , State
-            , ForwardOp
-            > chunk_;
-
-        typedef iter_fold_impl<
-              ( (N - 4) < 0 ? 0 : N - 4 )
-            , typename chunk_::iterator
-            , Last
-            , typename chunk_::state
-            , ForwardOp
-            > res_;
-
-        typedef typename res_::state state;
-        typedef typename res_::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_step;
-
-template<
-      typename Last
-    , typename State
-    >
-struct iter_fold_null_step
-{
-    typedef Last iterator;
-    typedef State state;
-};
-
-template<>
-struct iter_fold_chunk< -1 >
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef typename if_<
-              typename is_same< First,Last >::type
-            , iter_fold_null_step< Last,State >
-            , iter_fold_step< First,Last,State,ForwardOp >
-            >::type res_;
-
-        typedef typename res_::state state;
-        typedef typename res_::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_step
-{
-    typedef iter_fold_chunk< -1 >::template result_<
-          typename mpl::next<First>::type
-        , Last
-        , typename apply2< ForwardOp,State,First >::type
-        , ForwardOp
-        > chunk_;
-
-    typedef typename chunk_::state state;
-    typedef typename chunk_::iterator iterator;
-};
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl
-    : iter_fold_chunk<N>
-        ::template result_< First,Last,State,ForwardOp >
-{
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/msvc70/lambda_no_ctps.hpp b/boost/mpl/aux_/preprocessed/msvc70/lambda_no_ctps.hpp
deleted file mode 100644
index 890a198..0000000
--- a/boost/mpl/aux_/preprocessed/msvc70/lambda_no_ctps.hpp
+++ /dev/null
@@ -1,229 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/lambda_no_ctps.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template<
-      bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false
-    , bool C5 = false
-    >
-struct lambda_or
-    : true_
-{
-};
-
-template<>
-struct lambda_or< false,false,false,false,false >
-    : false_
-{
-};
-
-template< typename Arity > struct lambda_impl
-{
-    template< typename T, typename Tag, typename Protect > struct result_
-    {
-        typedef T type;
-        typedef is_placeholder<T> is_le;
-    };
-};
-
-template<> struct lambda_impl< int_<1> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef typename l1::is_le is_le1;
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value
-            > is_le;
-
-        typedef bind1<
-              typename F::rebind
-            , typename l1::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<2> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        
-
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value
-            > is_le;
-
-        typedef bind2<
-              typename F::rebind
-            , typename l1::type, typename l2::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<3> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        
-
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value
-            > is_le;
-
-        typedef bind3<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<4> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        typedef lambda< typename F::arg4, Tag, false_ > l4;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        typedef typename l4::is_le is_le4;
-        
-
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value
-            > is_le;
-
-        typedef bind4<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            , typename l4::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<5> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        typedef lambda< typename F::arg4, Tag, false_ > l4;
-        typedef lambda< typename F::arg5, Tag, false_ > l5;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        typedef typename l4::is_le is_le4;
-        typedef typename l5::is_le is_le5;
-        
-
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value
-            > is_le;
-
-        typedef bind5<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            , typename l4::type, typename l5::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename T
-    , typename Tag
-    , typename Protect
-    >
-struct lambda
-{
-    /// Metafunction forwarding confuses MSVC 6.x
-    typedef typename aux::template_arity<T>::type arity_;
-    typedef typename aux::lambda_impl<arity_>
-        ::template result_< T,Tag,Protect > l_;
-
-    typedef typename l_::type type;
-    typedef typename l_::is_le is_le;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect))
-};
-
-BOOST_MPL_AUX_NA_SPEC2(1, 3, lambda)
-
-template<
-      typename T
-    >
-struct is_lambda_expression
-    : lambda<T>::is_le
-{
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/msvc70/less.hpp b/boost/mpl/aux_/preprocessed/msvc70/less.hpp
deleted file mode 100644
index 72338de..0000000
--- a/boost/mpl/aux_/preprocessed/msvc70/less.hpp
+++ /dev/null
@@ -1,102 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/less.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
-    >
-struct less_impl
-    : if_c<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< less_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< less_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct less_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct less_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct less_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct less_tag
-    : tag< T,na >
-{
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct less
-    : aux::msvc_eti_base< typename apply_wrap2<
-          less_impl<
-              typename less_tag<N1>::type
-            , typename less_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, less)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct less_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-    {
-        BOOST_STATIC_CONSTANT(bool, value =
-             ( BOOST_MPL_AUX_VALUE_WKND(N2)::value >
-             BOOST_MPL_AUX_VALUE_WKND(N1)::value )
-            );
-        typedef bool_<value> type;
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/msvc70/less_equal.hpp b/boost/mpl/aux_/preprocessed/msvc70/less_equal.hpp
deleted file mode 100644
index b588697..0000000
--- a/boost/mpl/aux_/preprocessed/msvc70/less_equal.hpp
+++ /dev/null
@@ -1,102 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/less_equal.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
-    >
-struct less_equal_impl
-    : if_c<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< less_equal_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< less_equal_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct less_equal_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct less_equal_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct less_equal_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct less_equal_tag
-    : tag< T,na >
-{
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct less_equal
-    : aux::msvc_eti_base< typename apply_wrap2<
-          less_equal_impl<
-              typename less_equal_tag<N1>::type
-            , typename less_equal_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct less_equal_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-    {
-        BOOST_STATIC_CONSTANT(bool, value =
-             ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <=
-             BOOST_MPL_AUX_VALUE_WKND(N2)::value )
-            );
-        typedef bool_<value> type;
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/msvc70/list.hpp b/boost/mpl/aux_/preprocessed/msvc70/list.hpp
deleted file mode 100644
index e5ea456..0000000
--- a/boost/mpl/aux_/preprocessed/msvc70/list.hpp
+++ /dev/null
@@ -1,556 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/list.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct list_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct list_chooser<0>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef list0<
-             
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<1>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list1<
-              T0
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<2>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list2<
-              T0, T1
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<3>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list3<
-              T0, T1, T2
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<4>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list4<
-              T0, T1, T2, T3
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<5>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list5<
-              T0, T1, T2, T3, T4
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<6>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list6<
-              T0, T1, T2, T3, T4, T5
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<7>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list7<
-              T0, T1, T2, T3, T4, T5, T6
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<8>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list8<
-              T0, T1, T2, T3, T4, T5, T6, T7
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<9>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list9<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<10>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list10<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<11>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list11<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<12>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list12<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<13>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list13<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<14>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list14<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<15>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list15<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<16>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list16<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<17>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list17<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<18>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list18<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<19>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list19<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<20>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list20<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_list_arg
-{
-    BOOST_STATIC_CONSTANT(bool, value  = true);
-};
-
-template<>
-struct is_list_arg<na>
-{
-    BOOST_STATIC_CONSTANT(bool, value  = false);
-};
-
-template<
-      typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename T6, typename T7, typename T8, typename T9, typename T10
-    , typename T11, typename T12, typename T13, typename T14, typename T15
-    , typename T16, typename T17, typename T18, typename T19, typename T20
-    >
-struct list_count_args
-{
-    BOOST_STATIC_CONSTANT(int, value =
-          is_list_arg<T1>::value + is_list_arg<T2>::value 
-        + is_list_arg<T3>::value + is_list_arg<T4>::value 
-        + is_list_arg<T5>::value + is_list_arg<T6>::value 
-        + is_list_arg<T7>::value + is_list_arg<T8>::value 
-        + is_list_arg<T9>::value + is_list_arg<T10>::value 
-        + is_list_arg<T11>::value + is_list_arg<T12>::value 
-        + is_list_arg<T13>::value + is_list_arg<T14>::value 
-        + is_list_arg<T15>::value + is_list_arg<T16>::value 
-        + is_list_arg<T17>::value + is_list_arg<T18>::value 
-        + is_list_arg<T19>::value + is_list_arg<T20>::value
-        );
-
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct list_impl
-{
-    typedef aux::list_count_args<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        > arg_num_;
-
-    typedef typename aux::list_chooser< arg_num_::value >
-        ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct list
-    : aux::list_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type
-{
-    typedef typename aux::list_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/msvc70/list_c.hpp b/boost/mpl/aux_/preprocessed/msvc70/list_c.hpp
deleted file mode 100644
index ab25482..0000000
--- a/boost/mpl/aux_/preprocessed/msvc70/list_c.hpp
+++ /dev/null
@@ -1,534 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/list_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct list_c_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct list_c_chooser<0>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list0_c<
-              T
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<1>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list1_c<
-              T, C0
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<2>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list2_c<
-              T, C0, C1
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<3>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list3_c<
-              T, C0, C1, C2
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<4>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list4_c<
-              T, C0, C1, C2, C3
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<5>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list5_c<
-              T, C0, C1, C2, C3, C4
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<6>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list6_c<
-              T, C0, C1, C2, C3, C4, C5
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<7>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list7_c<
-              T, C0, C1, C2, C3, C4, C5, C6
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<8>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list8_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<9>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list9_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<10>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list10_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<11>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list11_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<12>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list12_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<13>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list13_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<14>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list14_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<15>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list15_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<16>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list16_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<17>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list17_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<18>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list18_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<19>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list19_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<20>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list20_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< long C >
-struct is_list_c_arg
-{
-    BOOST_STATIC_CONSTANT(bool, value  = true);
-};
-
-template<>
-struct is_list_c_arg<LONG_MAX>
-{
-    BOOST_STATIC_CONSTANT(bool, value  = false);
-};
-
-template<
-      long C1, long C2, long C3, long C4, long C5, long C6, long C7, long C8
-    , long C9, long C10, long C11, long C12, long C13, long C14, long C15
-    , long C16, long C17, long C18, long C19, long C20
-    >
-struct list_c_count_args
-{
-    BOOST_STATIC_CONSTANT(int, value =
-          is_list_c_arg<C1>::value + is_list_c_arg<C2>::value 
-        + is_list_c_arg<C3>::value + is_list_c_arg<C4>::value 
-        + is_list_c_arg<C5>::value + is_list_c_arg<C6>::value 
-        + is_list_c_arg<C7>::value + is_list_c_arg<C8>::value 
-        + is_list_c_arg<C9>::value + is_list_c_arg<C10>::value 
-        + is_list_c_arg<C11>::value + is_list_c_arg<C12>::value 
-        + is_list_c_arg<C13>::value + is_list_c_arg<C14>::value 
-        + is_list_c_arg<C15>::value + is_list_c_arg<C16>::value 
-        + is_list_c_arg<C17>::value + is_list_c_arg<C18>::value 
-        + is_list_c_arg<C19>::value + is_list_c_arg<C20>::value
-        );
-
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct list_c_impl
-{
-    typedef aux::list_c_count_args<
-          C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        > arg_num_;
-
-    typedef typename aux::list_c_chooser< arg_num_::value >
-        ::template result_< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct list_c
-    : aux::list_c_impl<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        >::type
-{
-    typedef typename aux::list_c_impl<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/msvc70/map.hpp b/boost/mpl/aux_/preprocessed/msvc70/map.hpp
deleted file mode 100644
index 970e0b7..0000000
--- a/boost/mpl/aux_/preprocessed/msvc70/map.hpp
+++ /dev/null
@@ -1,556 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/map.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct map_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct map_chooser<0>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef map0<
-             
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<1>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map1<
-              T0
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<2>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map2<
-              T0, T1
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<3>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map3<
-              T0, T1, T2
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<4>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map4<
-              T0, T1, T2, T3
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<5>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map5<
-              T0, T1, T2, T3, T4
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<6>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map6<
-              T0, T1, T2, T3, T4, T5
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<7>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map7<
-              T0, T1, T2, T3, T4, T5, T6
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<8>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map8<
-              T0, T1, T2, T3, T4, T5, T6, T7
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<9>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map9<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<10>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map10<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<11>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map11<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<12>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map12<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<13>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map13<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<14>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map14<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<15>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map15<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<16>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map16<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<17>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map17<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<18>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map18<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<19>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map19<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<20>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map20<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_map_arg
-{
-    BOOST_STATIC_CONSTANT(bool, value  = true);
-};
-
-template<>
-struct is_map_arg<na>
-{
-    BOOST_STATIC_CONSTANT(bool, value  = false);
-};
-
-template<
-      typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename T6, typename T7, typename T8, typename T9, typename T10
-    , typename T11, typename T12, typename T13, typename T14, typename T15
-    , typename T16, typename T17, typename T18, typename T19, typename T20
-    >
-struct map_count_args
-{
-    BOOST_STATIC_CONSTANT(int, value =
-          is_map_arg<T1>::value + is_map_arg<T2>::value 
-        + is_map_arg<T3>::value + is_map_arg<T4>::value 
-        + is_map_arg<T5>::value + is_map_arg<T6>::value 
-        + is_map_arg<T7>::value + is_map_arg<T8>::value 
-        + is_map_arg<T9>::value + is_map_arg<T10>::value 
-        + is_map_arg<T11>::value + is_map_arg<T12>::value 
-        + is_map_arg<T13>::value + is_map_arg<T14>::value 
-        + is_map_arg<T15>::value + is_map_arg<T16>::value 
-        + is_map_arg<T17>::value + is_map_arg<T18>::value 
-        + is_map_arg<T19>::value + is_map_arg<T20>::value
-        );
-
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct map_impl
-{
-    typedef aux::map_count_args<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        > arg_num_;
-
-    typedef typename aux::map_chooser< arg_num_::value >
-        ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct map
-    : aux::map_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type
-{
-    typedef typename aux::map_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/msvc70/minus.hpp b/boost/mpl/aux_/preprocessed/msvc70/minus.hpp
deleted file mode 100644
index 3237fa6..0000000
--- a/boost/mpl/aux_/preprocessed/msvc70/minus.hpp
+++ /dev/null
@@ -1,150 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/minus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
-    >
-struct minus_impl
-    : if_c<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< minus_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< minus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct minus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct minus_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct minus_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct minus_tag
-    : tag< T,na >
-{
-};
-
-/// forward declaration
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct minus2;
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct minus
-
-    : aux::msvc_eti_base< typename if_<
-
-          is_na<N3>
-        , minus2< N1,N2 >
-        , minus<
-              minus2< N1,N2 >
-            , N3, N4, N5
-            >
-        >::type
-
-    >
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , minus
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1
-    , typename N2
-    >
-struct minus2
-    : aux::msvc_eti_base< typename apply_wrap2<
-          minus_impl<
-              typename minus_tag<N1>::type
-            , typename minus_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, minus2, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, minus)
-
-}}
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct minus_wknd
-{
-    BOOST_STATIC_CONSTANT(T, value  = (n1 - n2));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct minus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-        : aux::minus_wknd<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , N1::value
-            , N2::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/msvc70/modulus.hpp b/boost/mpl/aux_/preprocessed/msvc70/modulus.hpp
deleted file mode 100644
index 9c672c0..0000000
--- a/boost/mpl/aux_/preprocessed/msvc70/modulus.hpp
+++ /dev/null
@@ -1,115 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/modulus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
-    >
-struct modulus_impl
-    : if_c<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< modulus_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< modulus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct modulus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct modulus_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct modulus_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct modulus_tag
-    : tag< T,na >
-{
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct modulus
-    : aux::msvc_eti_base< typename apply_wrap2<
-          modulus_impl<
-              typename modulus_tag<N1>::type
-            , typename modulus_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, modulus)
-
-}}
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct modulus_wknd
-{
-    BOOST_STATIC_CONSTANT(T, value  = (n1 % n2));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct modulus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-        : aux::modulus_wknd<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , N1::value
-            , N2::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/msvc70/not_equal_to.hpp b/boost/mpl/aux_/preprocessed/msvc70/not_equal_to.hpp
deleted file mode 100644
index 1e48e7f..0000000
--- a/boost/mpl/aux_/preprocessed/msvc70/not_equal_to.hpp
+++ /dev/null
@@ -1,102 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/not_equal_to.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
-    >
-struct not_equal_to_impl
-    : if_c<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< not_equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct not_equal_to_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct not_equal_to_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct not_equal_to_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct not_equal_to_tag
-    : tag< T,na >
-{
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct not_equal_to
-    : aux::msvc_eti_base< typename apply_wrap2<
-          not_equal_to_impl<
-              typename not_equal_to_tag<N1>::type
-            , typename not_equal_to_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct not_equal_to_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-    {
-        BOOST_STATIC_CONSTANT(bool, value =
-             ( BOOST_MPL_AUX_VALUE_WKND(N1)::value !=
-             BOOST_MPL_AUX_VALUE_WKND(N2)::value )
-            );
-        typedef bool_<value> type;
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/msvc70/or.hpp b/boost/mpl/aux_/preprocessed/msvc70/or.hpp
deleted file mode 100644
index 8d0ba0a..0000000
--- a/boost/mpl/aux_/preprocessed/msvc70/or.hpp
+++ /dev/null
@@ -1,71 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/or.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< bool C_ > struct or_impl
-{
-    template<
-          typename T1, typename T2, typename T3, typename T4
-        >
-    struct result_
-        : true_
-    {
-    };
-};
-
-template<> struct or_impl<false>
-{
-    template<
-          typename T1, typename T2, typename T3, typename T4
-        >
-    struct result_
-        : or_impl<
-              BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-            >::template result_< T2,T3,T4,false_ >
-    {
-    };
-
-    template<> struct result_< false_,false_,false_,false_ >
-        : false_
-    {
-    };
-};
-
-} // namespace aux
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
-    , typename T3 = false_, typename T4 = false_, typename T5 = false_
-    >
-struct or_
-
-    : aux::or_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        >::template result_< T2,T3,T4,T5 >
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , or_
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC2(
-      2
-    , 5
-    , or_
-    )
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/msvc70/placeholders.hpp b/boost/mpl/aux_/preprocessed/msvc70/placeholders.hpp
deleted file mode 100644
index ff97364..0000000
--- a/boost/mpl/aux_/preprocessed/msvc70/placeholders.hpp
+++ /dev/null
@@ -1,105 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright Peter Dimov 2001-2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/placeholders.hpp" header
-// -- DO NOT modify by hand!
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg< -1 > _;
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;
-}
-
-}}
-
-/// agurt, 17/mar/02: one more placeholder for the last 'apply#' 
-/// specialization
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<1> _1;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<2> _2;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<3> _3;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<4> _4;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<5> _5;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<6> _6;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6;
-}
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/msvc70/plus.hpp b/boost/mpl/aux_/preprocessed/msvc70/plus.hpp
deleted file mode 100644
index c8f3355..0000000
--- a/boost/mpl/aux_/preprocessed/msvc70/plus.hpp
+++ /dev/null
@@ -1,150 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/plus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
-    >
-struct plus_impl
-    : if_c<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< plus_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< plus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct plus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct plus_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct plus_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct plus_tag
-    : tag< T,na >
-{
-};
-
-/// forward declaration
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct plus2;
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct plus
-
-    : aux::msvc_eti_base< typename if_<
-
-          is_na<N3>
-        , plus2< N1,N2 >
-        , plus<
-              plus2< N1,N2 >
-            , N3, N4, N5
-            >
-        >::type
-
-    >
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , plus
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1
-    , typename N2
-    >
-struct plus2
-    : aux::msvc_eti_base< typename apply_wrap2<
-          plus_impl<
-              typename plus_tag<N1>::type
-            , typename plus_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, plus2, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, plus)
-
-}}
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct plus_wknd
-{
-    BOOST_STATIC_CONSTANT(T, value  = (n1 + n2));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct plus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-        : aux::plus_wknd<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , N1::value
-            , N2::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/msvc70/quote.hpp b/boost/mpl/aux_/preprocessed/msvc70/quote.hpp
deleted file mode 100644
index b85880f..0000000
--- a/boost/mpl/aux_/preprocessed/msvc70/quote.hpp
+++ /dev/null
@@ -1,116 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/quote.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-template< bool > struct quote_impl
-{
-    template< typename T > struct result_
-        : T
-    {
-    };
-};
-
-template<> struct quote_impl<false>
-{
-    template< typename T > struct result_
-    {
-        typedef T type;
-    };
-};
-
-template<
-      template< typename P1 > class F
-    , typename Tag = void_
-    >
-struct quote1
-{
-    template< typename U1 > struct apply
-
-        : quote_impl< aux::has_type< F<U1> >::value >
-            ::template result_< F<U1> >
-
-    {
-    };
-};
-
-template<
-      template< typename P1, typename P2 > class F
-    , typename Tag = void_
-    >
-struct quote2
-{
-    template< typename U1, typename U2 > struct apply
-
-        : quote_impl< aux::has_type< F< U1,U2 > >::value >
-            ::template result_< F< U1,U2 > >
-
-    {
-    };
-};
-
-template<
-      template< typename P1, typename P2, typename P3 > class F
-    , typename Tag = void_
-    >
-struct quote3
-{
-    template< typename U1, typename U2, typename U3 > struct apply
-
-        : quote_impl< aux::has_type< F< U1,U2,U3 > >::value >
-            ::template result_< F< U1,U2,U3 > >
-
-    {
-    };
-};
-
-template<
-      template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename Tag = void_
-    >
-struct quote4
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4
-        >
-    struct apply
-
-        : quote_impl< aux::has_type< F< U1,U2,U3,U4 > >::value >
-            ::template result_< F< U1,U2,U3,U4 > >
-
-    {
-    };
-};
-
-template<
-      template<
-          typename P1, typename P2, typename P3, typename P4
-        , typename P5
-        >
-      class F
-    , typename Tag = void_
-    >
-struct quote5
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4
-        , typename U5
-        >
-    struct apply
-
-        : quote_impl< aux::has_type< F< U1,U2,U3,U4,U5 > >::value >
-            ::template result_< F< U1,U2,U3,U4,U5 > >
-
-    {
-    };
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/msvc70/reverse_fold_impl.hpp b/boost/mpl/aux_/preprocessed/msvc70/reverse_fold_impl.hpp
deleted file mode 100644
index 7a07414..0000000
--- a/boost/mpl/aux_/preprocessed/msvc70/reverse_fold_impl.hpp
+++ /dev/null
@@ -1,295 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/reverse_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl;
-
-template< long N >
-struct reverse_fold_chunk;
-
-template<> struct reverse_fold_chunk<0>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef fwd_state0 bkwd_state0;
-        typedef bkwd_state0 state;
-        typedef iter0 iterator;
-    };
-};
-
-template<> struct reverse_fold_chunk<1>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        
-
-        typedef fwd_state1 bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        typedef bkwd_state0 state;
-        typedef iter1 iterator;
-    };
-};
-
-template<> struct reverse_fold_chunk<2>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        
-
-        typedef fwd_state2 bkwd_state2;
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter2 iterator;
-    };
-};
-
-template<> struct reverse_fold_chunk<3>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        
-
-        typedef fwd_state3 bkwd_state3;
-        typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter3 iterator;
-    };
-};
-
-template<> struct reverse_fold_chunk<4>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef fwd_state4 bkwd_state4;
-        typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3;
-        typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter4 iterator;
-    };
-};
-
-template< long N >
-struct reverse_fold_chunk
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef reverse_fold_impl<
-              ( (N - 4) < 0 ? 0 : N - 4 )
-            , iter4
-            , Last
-            , fwd_state4
-            , BackwardOp
-            , ForwardOp
-            > nested_chunk;
-
-        typedef typename nested_chunk::state bkwd_state4;
-        typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3;
-        typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef typename nested_chunk::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_step;
-
-template<
-      typename Last
-    , typename State
-    >
-struct reverse_fold_null_step
-{
-    typedef Last iterator;
-    typedef State state;
-};
-
-template<>
-struct reverse_fold_chunk< -1 >
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef typename if_<
-              typename is_same< First,Last >::type
-            , reverse_fold_null_step< Last,State >
-            , reverse_fold_step< First,Last,State,BackwardOp,ForwardOp >
-            >::type res_;
-
-        typedef typename res_::state state;
-        typedef typename res_::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_step
-{
-    typedef reverse_fold_chunk< -1 >::template result_<
-          typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State, typename deref<First>::type>::type
-        , BackwardOp
-        , ForwardOp
-        > nested_step;
-
-    typedef typename apply2<
-          BackwardOp
-        , typename nested_step::state
-        , typename deref<First>::type
-        >::type state;
-
-    typedef typename nested_step::iterator iterator;
-};
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl
-    : reverse_fold_chunk<N>
-        ::template result_< First,Last,State,BackwardOp,ForwardOp >
-{
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/msvc70/reverse_iter_fold_impl.hpp b/boost/mpl/aux_/preprocessed/msvc70/reverse_iter_fold_impl.hpp
deleted file mode 100644
index 39a4057..0000000
--- a/boost/mpl/aux_/preprocessed/msvc70/reverse_iter_fold_impl.hpp
+++ /dev/null
@@ -1,295 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/reverse_iter_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl;
-
-template< long N >
-struct reverse_iter_fold_chunk;
-
-template<> struct reverse_iter_fold_chunk<0>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef fwd_state0 bkwd_state0;
-        typedef bkwd_state0 state;
-        typedef iter0 iterator;
-    };
-};
-
-template<> struct reverse_iter_fold_chunk<1>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        
-
-        typedef fwd_state1 bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        typedef bkwd_state0 state;
-        typedef iter1 iterator;
-    };
-};
-
-template<> struct reverse_iter_fold_chunk<2>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        
-
-        typedef fwd_state2 bkwd_state2;
-        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter2 iterator;
-    };
-};
-
-template<> struct reverse_iter_fold_chunk<3>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        
-
-        typedef fwd_state3 bkwd_state3;
-        typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter3 iterator;
-    };
-};
-
-template<> struct reverse_iter_fold_chunk<4>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef fwd_state4 bkwd_state4;
-        typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3;
-        typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter4 iterator;
-    };
-};
-
-template< long N >
-struct reverse_iter_fold_chunk
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef reverse_iter_fold_impl<
-              ( (N - 4) < 0 ? 0 : N - 4 )
-            , iter4
-            , Last
-            , fwd_state4
-            , BackwardOp
-            , ForwardOp
-            > nested_chunk;
-
-        typedef typename nested_chunk::state bkwd_state4;
-        typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3;
-        typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef typename nested_chunk::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_step;
-
-template<
-      typename Last
-    , typename State
-    >
-struct reverse_iter_fold_null_step
-{
-    typedef Last iterator;
-    typedef State state;
-};
-
-template<>
-struct reverse_iter_fold_chunk< -1 >
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef typename if_<
-              typename is_same< First,Last >::type
-            , reverse_iter_fold_null_step< Last,State >
-            , reverse_iter_fold_step< First,Last,State,BackwardOp,ForwardOp >
-            >::type res_;
-
-        typedef typename res_::state state;
-        typedef typename res_::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_step
-{
-    typedef reverse_iter_fold_chunk< -1 >::template result_<
-          typename mpl::next<First>::type
-        , Last
-        , typename apply2< ForwardOp,State,First >::type
-        , BackwardOp
-        , ForwardOp
-        > nested_step;
-
-    typedef typename apply2<
-          BackwardOp
-        , typename nested_step::state
-        , First
-        >::type state;
-
-    typedef typename nested_step::iterator iterator;
-};
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl
-    : reverse_iter_fold_chunk<N>
-        ::template result_< First,Last,State,BackwardOp,ForwardOp >
-{
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/msvc70/set.hpp b/boost/mpl/aux_/preprocessed/msvc70/set.hpp
deleted file mode 100644
index 95aaa5c..0000000
--- a/boost/mpl/aux_/preprocessed/msvc70/set.hpp
+++ /dev/null
@@ -1,556 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/set.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct set_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct set_chooser<0>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef set0<
-             
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<1>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set1<
-              T0
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<2>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set2<
-              T0, T1
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<3>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set3<
-              T0, T1, T2
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<4>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set4<
-              T0, T1, T2, T3
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<5>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set5<
-              T0, T1, T2, T3, T4
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<6>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set6<
-              T0, T1, T2, T3, T4, T5
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<7>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set7<
-              T0, T1, T2, T3, T4, T5, T6
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<8>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set8<
-              T0, T1, T2, T3, T4, T5, T6, T7
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<9>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set9<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<10>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set10<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<11>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set11<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<12>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set12<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<13>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set13<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<14>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set14<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<15>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set15<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<16>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set16<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<17>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set17<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<18>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set18<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<19>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set19<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<20>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set20<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_set_arg
-{
-    BOOST_STATIC_CONSTANT(bool, value  = true);
-};
-
-template<>
-struct is_set_arg<na>
-{
-    BOOST_STATIC_CONSTANT(bool, value  = false);
-};
-
-template<
-      typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename T6, typename T7, typename T8, typename T9, typename T10
-    , typename T11, typename T12, typename T13, typename T14, typename T15
-    , typename T16, typename T17, typename T18, typename T19, typename T20
-    >
-struct set_count_args
-{
-    BOOST_STATIC_CONSTANT(int, value =
-          is_set_arg<T1>::value + is_set_arg<T2>::value 
-        + is_set_arg<T3>::value + is_set_arg<T4>::value 
-        + is_set_arg<T5>::value + is_set_arg<T6>::value 
-        + is_set_arg<T7>::value + is_set_arg<T8>::value 
-        + is_set_arg<T9>::value + is_set_arg<T10>::value 
-        + is_set_arg<T11>::value + is_set_arg<T12>::value 
-        + is_set_arg<T13>::value + is_set_arg<T14>::value 
-        + is_set_arg<T15>::value + is_set_arg<T16>::value 
-        + is_set_arg<T17>::value + is_set_arg<T18>::value 
-        + is_set_arg<T19>::value + is_set_arg<T20>::value
-        );
-
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct set_impl
-{
-    typedef aux::set_count_args<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        > arg_num_;
-
-    typedef typename aux::set_chooser< arg_num_::value >
-        ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct set
-    : aux::set_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type
-{
-    typedef typename aux::set_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/msvc70/set_c.hpp b/boost/mpl/aux_/preprocessed/msvc70/set_c.hpp
deleted file mode 100644
index 1ff34f9..0000000
--- a/boost/mpl/aux_/preprocessed/msvc70/set_c.hpp
+++ /dev/null
@@ -1,534 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/set_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct set_c_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct set_c_chooser<0>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set0_c<
-              T
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<1>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set1_c<
-              T, C0
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<2>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set2_c<
-              T, C0, C1
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<3>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set3_c<
-              T, C0, C1, C2
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<4>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set4_c<
-              T, C0, C1, C2, C3
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<5>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set5_c<
-              T, C0, C1, C2, C3, C4
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<6>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set6_c<
-              T, C0, C1, C2, C3, C4, C5
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<7>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set7_c<
-              T, C0, C1, C2, C3, C4, C5, C6
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<8>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set8_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<9>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set9_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<10>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set10_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<11>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set11_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<12>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set12_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<13>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set13_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<14>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set14_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<15>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set15_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<16>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set16_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<17>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set17_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<18>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set18_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<19>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set19_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<20>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set20_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< long C >
-struct is_set_c_arg
-{
-    BOOST_STATIC_CONSTANT(bool, value  = true);
-};
-
-template<>
-struct is_set_c_arg<LONG_MAX>
-{
-    BOOST_STATIC_CONSTANT(bool, value  = false);
-};
-
-template<
-      long C1, long C2, long C3, long C4, long C5, long C6, long C7, long C8
-    , long C9, long C10, long C11, long C12, long C13, long C14, long C15
-    , long C16, long C17, long C18, long C19, long C20
-    >
-struct set_c_count_args
-{
-    BOOST_STATIC_CONSTANT(int, value =
-          is_set_c_arg<C1>::value + is_set_c_arg<C2>::value 
-        + is_set_c_arg<C3>::value + is_set_c_arg<C4>::value 
-        + is_set_c_arg<C5>::value + is_set_c_arg<C6>::value 
-        + is_set_c_arg<C7>::value + is_set_c_arg<C8>::value 
-        + is_set_c_arg<C9>::value + is_set_c_arg<C10>::value 
-        + is_set_c_arg<C11>::value + is_set_c_arg<C12>::value 
-        + is_set_c_arg<C13>::value + is_set_c_arg<C14>::value 
-        + is_set_c_arg<C15>::value + is_set_c_arg<C16>::value 
-        + is_set_c_arg<C17>::value + is_set_c_arg<C18>::value 
-        + is_set_c_arg<C19>::value + is_set_c_arg<C20>::value
-        );
-
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct set_c_impl
-{
-    typedef aux::set_c_count_args<
-          C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        > arg_num_;
-
-    typedef typename aux::set_c_chooser< arg_num_::value >
-        ::template result_< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct set_c
-    : aux::set_c_impl<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        >::type
-{
-    typedef typename aux::set_c_impl<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/msvc70/shift_left.hpp b/boost/mpl/aux_/preprocessed/msvc70/shift_left.hpp
deleted file mode 100644
index 176fc00..0000000
--- a/boost/mpl/aux_/preprocessed/msvc70/shift_left.hpp
+++ /dev/null
@@ -1,114 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/shift_left.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
-    >
-struct shift_left_impl
-    : if_c<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< shift_left_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< shift_left_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct shift_left_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct shift_left_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct shift_left_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct shift_left_tag
-    : tag< T,na >
-{
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct shift_left
-    : aux::msvc_eti_base< typename apply_wrap2<
-          shift_left_impl<
-              typename shift_left_tag<N1>::type
-            , typename shift_left_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left)
-
-}}
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename T, typename Shift, T n, Shift s >
-struct shift_left_wknd
-{
-    BOOST_STATIC_CONSTANT(T, value  = (n << s));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct shift_left_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N, typename S > struct apply
-        : aux::shift_left_wknd<
-              typename N::value_type
-            , typename S::value_type
-            , N::value
-            , S::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/msvc70/shift_right.hpp b/boost/mpl/aux_/preprocessed/msvc70/shift_right.hpp
deleted file mode 100644
index 6b6e01f..0000000
--- a/boost/mpl/aux_/preprocessed/msvc70/shift_right.hpp
+++ /dev/null
@@ -1,114 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/shift_right.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
-    >
-struct shift_right_impl
-    : if_c<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< shift_right_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< shift_right_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct shift_right_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct shift_right_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct shift_right_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct shift_right_tag
-    : tag< T,na >
-{
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct shift_right
-    : aux::msvc_eti_base< typename apply_wrap2<
-          shift_right_impl<
-              typename shift_right_tag<N1>::type
-            , typename shift_right_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right)
-
-}}
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename T, typename Shift, T n, Shift s >
-struct shift_right_wknd
-{
-    BOOST_STATIC_CONSTANT(T, value  = (n >> s));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct shift_right_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N, typename S > struct apply
-        : aux::shift_right_wknd<
-              typename N::value_type
-            , typename S::value_type
-            , N::value
-            , S::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/msvc70/template_arity.hpp b/boost/mpl/aux_/preprocessed/msvc70/template_arity.hpp
deleted file mode 100644
index 1668771..0000000
--- a/boost/mpl/aux_/preprocessed/msvc70/template_arity.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/template_arity.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-template< bool >
-struct template_arity_impl
-{
-    template< typename F > struct result_
-        : mpl::int_< -1 >
-    {
-    };
-};
-
-template<>
-struct template_arity_impl<true>
-{
-    template< typename F > struct result_
-        : F::arity
-    {
-    };
-};
-
-template< typename F >
-struct template_arity
-    : template_arity_impl< ::boost::mpl::aux::has_rebind<F>::value >
-        ::template result_<F>
-{
-};
-
-template<>
-struct template_arity<int>
-    : mpl::int_< -1 >
-{
-};
-
-}}}
-
diff --git a/boost/mpl/aux_/preprocessed/msvc70/times.hpp b/boost/mpl/aux_/preprocessed/msvc70/times.hpp
deleted file mode 100644
index a6ae333..0000000
--- a/boost/mpl/aux_/preprocessed/msvc70/times.hpp
+++ /dev/null
@@ -1,150 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/times.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag1_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag1)::value
-    , BOOST_MPL_AUX_NTTP_DECL(int, tag2_)  = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
-    >
-struct times_impl
-    : if_c<
-          ( tag1_ > tag2_ )
-        , aux::cast2nd_impl< times_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< times_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct times_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct times_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct times_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct times_tag
-    : tag< T,na >
-{
-};
-
-/// forward declaration
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct times2;
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct times
-
-    : aux::msvc_eti_base< typename if_<
-
-          is_na<N3>
-        , times2< N1,N2 >
-        , times<
-              times2< N1,N2 >
-            , N3, N4, N5
-            >
-        >::type
-
-    >
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , times
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1
-    , typename N2
-    >
-struct times2
-    : aux::msvc_eti_base< typename apply_wrap2<
-          times_impl<
-              typename times_tag<N1>::type
-            , typename times_tag<N2>::type
-            >
-        , N1
-        , N2
-        >::type >::type
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, times2, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, times)
-
-}}
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct times_wknd
-{
-    BOOST_STATIC_CONSTANT(T, value  = (n1 * n2));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct times_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-        : aux::times_wknd<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , N1::value
-            , N2::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/msvc70/unpack_args.hpp b/boost/mpl/aux_/preprocessed/msvc70/unpack_args.hpp
deleted file mode 100644
index 26533dd..0000000
--- a/boost/mpl/aux_/preprocessed/msvc70/unpack_args.hpp
+++ /dev/null
@@ -1,109 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/unpack_args.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template< BOOST_MPL_AUX_NTTP_DECL(int, size) > struct unpack_args_impl
-{
-    template< typename F, typename Args > struct apply;
-};
-
-template<> struct unpack_args_impl<0>
-{
-    template< typename F, typename Args > struct apply
-        : apply0<
-              F
-            >
-    {
-    };
-};
-
-template<> struct unpack_args_impl<1>
-{
-    template< typename F, typename Args > struct apply
-        : apply1<
-              F
-            , typename at_c< Args,0 >::type
-            >
-    {
-    };
-};
-
-template<> struct unpack_args_impl<2>
-{
-    template< typename F, typename Args > struct apply
-        : apply2<
-              F
-            , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-            >
-    {
-    };
-};
-
-template<> struct unpack_args_impl<3>
-{
-    template< typename F, typename Args > struct apply
-        : apply3<
-              F
-            , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-            , typename at_c< Args,2 >::type
-            >
-    {
-    };
-};
-
-template<> struct unpack_args_impl<4>
-{
-    template< typename F, typename Args > struct apply
-        : apply4<
-              F
-            , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-            , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
-            >
-    {
-    };
-};
-
-template<> struct unpack_args_impl<5>
-{
-    template< typename F, typename Args > struct apply
-        : apply5<
-              F
-            , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-            , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
-            , typename at_c< Args,4 >::type
-            >
-    {
-    };
-};
-
-}
-
-template<
-      typename F
-    >
-struct unpack_args
-{
-    template< typename Args > struct apply
-
-        : aux::unpack_args_impl< size<Args>::value >
-            ::template apply< F,Args >
-
-    {
-    };
-};
-
-BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/msvc70/vector.hpp b/boost/mpl/aux_/preprocessed/msvc70/vector.hpp
deleted file mode 100644
index a6c7b62..0000000
--- a/boost/mpl/aux_/preprocessed/msvc70/vector.hpp
+++ /dev/null
@@ -1,556 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/vector.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct vector_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct vector_chooser<0>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef vector0<
-             
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<1>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector1<
-              T0
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<2>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector2<
-              T0, T1
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<3>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector3<
-              T0, T1, T2
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<4>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector4<
-              T0, T1, T2, T3
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<5>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector5<
-              T0, T1, T2, T3, T4
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<6>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector6<
-              T0, T1, T2, T3, T4, T5
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<7>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector7<
-              T0, T1, T2, T3, T4, T5, T6
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<8>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector8<
-              T0, T1, T2, T3, T4, T5, T6, T7
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<9>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector9<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<10>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector10<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<11>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector11<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<12>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector12<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<13>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector13<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<14>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector14<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<15>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector15<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<16>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector16<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<17>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector17<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<18>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector18<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<19>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector19<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<20>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector20<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_vector_arg
-{
-    BOOST_STATIC_CONSTANT(bool, value  = true);
-};
-
-template<>
-struct is_vector_arg<na>
-{
-    BOOST_STATIC_CONSTANT(bool, value  = false);
-};
-
-template<
-      typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename T6, typename T7, typename T8, typename T9, typename T10
-    , typename T11, typename T12, typename T13, typename T14, typename T15
-    , typename T16, typename T17, typename T18, typename T19, typename T20
-    >
-struct vector_count_args
-{
-    BOOST_STATIC_CONSTANT(int, value =
-          is_vector_arg<T1>::value + is_vector_arg<T2>::value 
-        + is_vector_arg<T3>::value + is_vector_arg<T4>::value 
-        + is_vector_arg<T5>::value + is_vector_arg<T6>::value 
-        + is_vector_arg<T7>::value + is_vector_arg<T8>::value 
-        + is_vector_arg<T9>::value + is_vector_arg<T10>::value 
-        + is_vector_arg<T11>::value + is_vector_arg<T12>::value 
-        + is_vector_arg<T13>::value + is_vector_arg<T14>::value 
-        + is_vector_arg<T15>::value + is_vector_arg<T16>::value 
-        + is_vector_arg<T17>::value + is_vector_arg<T18>::value 
-        + is_vector_arg<T19>::value + is_vector_arg<T20>::value
-        );
-
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct vector_impl
-{
-    typedef aux::vector_count_args<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        > arg_num_;
-
-    typedef typename aux::vector_chooser< arg_num_::value >
-        ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct vector
-    : aux::vector_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type
-{
-    typedef typename aux::vector_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/msvc70/vector_c.hpp b/boost/mpl/aux_/preprocessed/msvc70/vector_c.hpp
deleted file mode 100644
index c522d08..0000000
--- a/boost/mpl/aux_/preprocessed/msvc70/vector_c.hpp
+++ /dev/null
@@ -1,534 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/vector_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct vector_c_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<0>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector0_c<
-              T
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<1>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector1_c<
-              T, T(C0)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<2>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector2_c<
-              T, T(C0), T(C1)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<3>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector3_c<
-              T, T(C0), T(C1), T(C2)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<4>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector4_c<
-              T, T(C0), T(C1), T(C2), T(C3)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<5>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector5_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<6>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector6_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<7>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector7_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<8>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector8_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<9>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector9_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<10>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector10_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<11>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector11_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<12>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector12_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<13>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector13_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<14>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector14_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<15>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector15_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<16>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector16_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<17>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector17_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<18>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector18_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<19>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector19_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<20>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector20_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< long C >
-struct is_vector_c_arg
-{
-    BOOST_STATIC_CONSTANT(bool, value  = true);
-};
-
-template<>
-struct is_vector_c_arg<LONG_MAX>
-{
-    BOOST_STATIC_CONSTANT(bool, value  = false);
-};
-
-template<
-      long C1, long C2, long C3, long C4, long C5, long C6, long C7, long C8
-    , long C9, long C10, long C11, long C12, long C13, long C14, long C15
-    , long C16, long C17, long C18, long C19, long C20
-    >
-struct vector_c_count_args
-{
-    BOOST_STATIC_CONSTANT(int, value =
-          is_vector_c_arg<C1>::value + is_vector_c_arg<C2>::value 
-        + is_vector_c_arg<C3>::value + is_vector_c_arg<C4>::value 
-        + is_vector_c_arg<C5>::value + is_vector_c_arg<C6>::value 
-        + is_vector_c_arg<C7>::value + is_vector_c_arg<C8>::value 
-        + is_vector_c_arg<C9>::value + is_vector_c_arg<C10>::value 
-        + is_vector_c_arg<C11>::value + is_vector_c_arg<C12>::value 
-        + is_vector_c_arg<C13>::value + is_vector_c_arg<C14>::value 
-        + is_vector_c_arg<C15>::value + is_vector_c_arg<C16>::value 
-        + is_vector_c_arg<C17>::value + is_vector_c_arg<C18>::value 
-        + is_vector_c_arg<C19>::value + is_vector_c_arg<C20>::value
-        );
-
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct vector_c_impl
-{
-    typedef aux::vector_c_count_args<
-          C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        > arg_num_;
-
-    typedef typename aux::vector_c_chooser< arg_num_::value >
-        ::template result_< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct vector_c
-    : aux::vector_c_impl<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        >::type
-{
-    typedef typename aux::vector_c_impl<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/mwcw/advance_backward.hpp b/boost/mpl/aux_/preprocessed/mwcw/advance_backward.hpp
deleted file mode 100644
index 26de94c..0000000
--- a/boost/mpl/aux_/preprocessed/mwcw/advance_backward.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/advance_backward.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-template< long N > struct advance_backward;
-template<>
-struct advance_backward<0>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef iter0 type;
-    };
-};
-
-template<>
-struct advance_backward<1>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef iter1 type;
-    };
-};
-
-template<>
-struct advance_backward<2>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef iter2 type;
-    };
-};
-
-template<>
-struct advance_backward<3>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef typename prior<iter2>::type iter3;
-        typedef iter3 type;
-    };
-};
-
-template<>
-struct advance_backward<4>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef typename prior<iter2>::type iter3;
-        typedef typename prior<iter3>::type iter4;
-        typedef iter4 type;
-    };
-};
-
-template< long N >
-struct advance_backward
-{
-    template< typename Iterator > struct apply
-    {
-        typedef typename apply_wrap1<
-              advance_backward<4>
-            , Iterator
-            >::type chunk_result_;
-
-        typedef typename apply_wrap1<
-              advance_backward<(
-                (N - 4) < 0
-                    ? 0
-                    : N - 4
-                    )>
-            , chunk_result_
-            >::type type;
-    };
-};
-
-}}}
-
diff --git a/boost/mpl/aux_/preprocessed/mwcw/advance_forward.hpp b/boost/mpl/aux_/preprocessed/mwcw/advance_forward.hpp
deleted file mode 100644
index b137cc7..0000000
--- a/boost/mpl/aux_/preprocessed/mwcw/advance_forward.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/advance_forward.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-template< long N > struct advance_forward;
-template<>
-struct advance_forward<0>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef iter0 type;
-    };
-};
-
-template<>
-struct advance_forward<1>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef iter1 type;
-    };
-};
-
-template<>
-struct advance_forward<2>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef iter2 type;
-    };
-};
-
-template<>
-struct advance_forward<3>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef typename next<iter2>::type iter3;
-        typedef iter3 type;
-    };
-};
-
-template<>
-struct advance_forward<4>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef typename next<iter2>::type iter3;
-        typedef typename next<iter3>::type iter4;
-        typedef iter4 type;
-    };
-};
-
-template< long N >
-struct advance_forward
-{
-    template< typename Iterator > struct apply
-    {
-        typedef typename apply_wrap1<
-              advance_forward<4>
-            , Iterator
-            >::type chunk_result_;
-
-        typedef typename apply_wrap1<
-              advance_forward<(
-                (N - 4) < 0
-                    ? 0
-                    : N - 4
-                    )>
-            , chunk_result_
-            >::type type;
-    };
-};
-
-}}}
-
diff --git a/boost/mpl/aux_/preprocessed/mwcw/and.hpp b/boost/mpl/aux_/preprocessed/mwcw/and.hpp
deleted file mode 100644
index 010ad1f..0000000
--- a/boost/mpl/aux_/preprocessed/mwcw/and.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/and.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template< bool C_, typename T1, typename T2, typename T3, typename T4 >
-struct and_impl
-    : false_
-{
-};
-
-template< typename T1, typename T2, typename T3, typename T4 >
-struct and_impl< true,T1,T2,T3,T4 >
-    : and_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4
-        , true_
-        >
-{
-};
-
-template<>
-struct and_impl<
-          true
-        , true_, true_, true_, true_
-        >
-    : true_
-{
-};
-
-} // namespace aux
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
-    , typename T3 = true_, typename T4 = true_, typename T5 = true_
-    >
-struct and_
-
-    : aux::and_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4, T5
-        >
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , and_
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC2(
-      2
-    , 5
-    , and_
-    )
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/mwcw/apply.hpp b/boost/mpl/aux_/preprocessed/mwcw/apply.hpp
deleted file mode 100644
index e08eacc..0000000
--- a/boost/mpl/aux_/preprocessed/mwcw/apply.hpp
+++ /dev/null
@@ -1,169 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/apply.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename F
-    >
-struct apply0
-
-    : apply_wrap0<
-          typename lambda<F>::type
-       
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          1
-        , apply0
-        , (F )
-        )
-};
-
-template<
-      typename F
-    >
-struct apply< F,na,na,na,na,na >
-    : apply0<F>
-{
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply1
-
-    : apply_wrap1<
-          typename lambda<F>::type
-        , T1
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          2
-        , apply1
-        , (F, T1)
-        )
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply< F,T1,na,na,na,na >
-    : apply1< F,T1 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply2
-
-    : apply_wrap2<
-          typename lambda<F>::type
-        , T1, T2
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          3
-        , apply2
-        , (F, T1, T2)
-        )
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply< F,T1,T2,na,na,na >
-    : apply2< F,T1,T2 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply3
-
-    : apply_wrap3<
-          typename lambda<F>::type
-        , T1, T2, T3
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          4
-        , apply3
-        , (F, T1, T2, T3)
-        )
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply< F,T1,T2,T3,na,na >
-    : apply3< F,T1,T2,T3 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply4
-
-    : apply_wrap4<
-          typename lambda<F>::type
-        , T1, T2, T3, T4
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , apply4
-        , (F, T1, T2, T3, T4)
-        )
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply< F,T1,T2,T3,T4,na >
-    : apply4< F,T1,T2,T3,T4 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply5
-
-    : apply_wrap5<
-          typename lambda<F>::type
-        , T1, T2, T3, T4, T5
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          6
-        , apply5
-        , (F, T1, T2, T3, T4, T5)
-        )
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply
-    : apply5< F,T1,T2,T3,T4,T5 >
-{
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/mwcw/apply_fwd.hpp b/boost/mpl/aux_/preprocessed/mwcw/apply_fwd.hpp
deleted file mode 100644
index b2ed5d5..0000000
--- a/boost/mpl/aux_/preprocessed/mwcw/apply_fwd.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/apply_fwd.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename F, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na
-    >
-struct apply;
-
-template<
-      typename F
-    >
-struct apply0;
-
-template<
-      typename F, typename T1
-    >
-struct apply1;
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply2;
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply3;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply4;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply5;
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/mwcw/apply_wrap.hpp b/boost/mpl/aux_/preprocessed/mwcw/apply_wrap.hpp
deleted file mode 100644
index 2ffe709..0000000
--- a/boost/mpl/aux_/preprocessed/mwcw/apply_wrap.hpp
+++ /dev/null
@@ -1,456 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/apply_wrap.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      int N, typename F
-    >
-struct apply_wrap_impl0;
-
-template<
-      typename F
-    >
-struct apply_wrap_impl0<
-          0
-        , F
-       
-        >
-{
-    typedef typename F::template apply<
-         
-/// since the defaults are "lost", we have to pass *something* even for nullary
-/// metafunction classes
-        na
-        > type;
-};
-
-template<
-      typename F
-    >
-struct apply_wrap_impl0<
-          1
-        , F
-       
-        >
-{
-    typedef typename F::template apply<
-         
-        na
-        > type;
-};
-
-template<
-      typename F
-    >
-struct apply_wrap_impl0<
-          2
-        , F
-       
-        >
-{
-    typedef typename F::template apply<
-         
-        na, na
-
-        > type;
-};
-
-template<
-      typename F
-    >
-struct apply_wrap_impl0<
-          3
-        , F
-       
-        >
-{
-    typedef typename F::template apply<
-         
-        na, na, na
-
-        > type;
-};
-
-template<
-      typename F
-    >
-struct apply_wrap_impl0<
-          4
-        , F
-       
-        >
-{
-    typedef typename F::template apply<
-         
-        na, na, na, na
-
-        > type;
-};
-
-template<
-      typename F
-    >
-struct apply_wrap_impl0<
-          5
-        , F
-       
-        >
-{
-    typedef typename F::template apply<
-         
-        na, na, na, na, na
-
-        > type;
-};
-
-template<
-      typename F
-    >
-struct apply_wrap0
-    : apply_wrap_impl0<
-          ::boost::mpl::aux::arity< F,0 >::value
-        , F
-       
-        >::type
-{
-};
-
-template<
-      int N, typename F, typename T1
-    >
-struct apply_wrap_impl1;
-
-template<
-      typename F, typename T1
-    >
-struct apply_wrap_impl1<
-          1
-        , F
-        , T1
-        >
-{
-    typedef typename F::template apply<
-          T1
-        > type;
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply_wrap_impl1<
-          2
-        , F
-        , T1
-        >
-{
-    typedef typename F::template apply<
-          T1
-        , na
-
-        > type;
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply_wrap_impl1<
-          3
-        , F
-        , T1
-        >
-{
-    typedef typename F::template apply<
-          T1
-        , na, na
-
-        > type;
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply_wrap_impl1<
-          4
-        , F
-        , T1
-        >
-{
-    typedef typename F::template apply<
-          T1
-        , na, na, na
-
-        > type;
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply_wrap_impl1<
-          5
-        , F
-        , T1
-        >
-{
-    typedef typename F::template apply<
-          T1
-        , na, na, na, na
-
-        > type;
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply_wrap1
-    : apply_wrap_impl1<
-          ::boost::mpl::aux::arity< F,1 >::value
-        , F
-        , T1
-        >::type
-{
-};
-
-template<
-      int N, typename F, typename T1, typename T2
-    >
-struct apply_wrap_impl2;
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply_wrap_impl2<
-          2
-        , F
-        , T1, T2
-        >
-{
-    typedef typename F::template apply<
-          T1, T2
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply_wrap_impl2<
-          3
-        , F
-        , T1, T2
-        >
-{
-    typedef typename F::template apply<
-          T1, T2
-
-        , na
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply_wrap_impl2<
-          4
-        , F
-        , T1, T2
-        >
-{
-    typedef typename F::template apply<
-          T1, T2
-
-        , na, na
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply_wrap_impl2<
-          5
-        , F
-        , T1, T2
-        >
-{
-    typedef typename F::template apply<
-          T1, T2
-
-        , na, na, na
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply_wrap2
-    : apply_wrap_impl2<
-          ::boost::mpl::aux::arity< F,2 >::value
-        , F
-        , T1, T2
-        >::type
-{
-};
-
-template<
-      int N, typename F, typename T1, typename T2, typename T3
-    >
-struct apply_wrap_impl3;
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply_wrap_impl3<
-          3
-        , F
-        , T1, T2, T3
-        >
-{
-    typedef typename F::template apply<
-          T1, T2, T3
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply_wrap_impl3<
-          4
-        , F
-        , T1, T2, T3
-        >
-{
-    typedef typename F::template apply<
-          T1, T2, T3
-
-        , na
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply_wrap_impl3<
-          5
-        , F
-        , T1, T2, T3
-        >
-{
-    typedef typename F::template apply<
-          T1, T2, T3
-
-        , na, na
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply_wrap3
-    : apply_wrap_impl3<
-          ::boost::mpl::aux::arity< F,3 >::value
-        , F
-        , T1, T2, T3
-        >::type
-{
-};
-
-template<
-      int N, typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply_wrap_impl4;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply_wrap_impl4<
-          4
-        , F
-        , T1, T2, T3, T4
-        >
-{
-    typedef typename F::template apply<
-          T1, T2, T3, T4
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply_wrap_impl4<
-          5
-        , F
-        , T1, T2, T3, T4
-        >
-{
-    typedef typename F::template apply<
-          T1, T2, T3, T4
-
-        , na
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply_wrap4
-    : apply_wrap_impl4<
-          ::boost::mpl::aux::arity< F,4 >::value
-        , F
-        , T1, T2, T3, T4
-        >::type
-{
-};
-
-template<
-      int N, typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply_wrap_impl5;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply_wrap_impl5<
-          5
-        , F
-        , T1, T2, T3, T4, T5
-        >
-{
-    typedef typename F::template apply<
-          T1, T2, T3, T4, T5
-
-        > type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply_wrap5
-    : apply_wrap_impl5<
-          ::boost::mpl::aux::arity< F,5 >::value
-        , F
-        , T1, T2, T3, T4, T5
-        >::type
-{
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/mwcw/arg.hpp b/boost/mpl/aux_/preprocessed/mwcw/arg.hpp
deleted file mode 100644
index 6f2f8a8..0000000
--- a/boost/mpl/aux_/preprocessed/mwcw/arg.hpp
+++ /dev/null
@@ -1,123 +0,0 @@
-
-// Copyright Peter Dimov 2001-2002
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/arg.hpp" header
-// -- DO NOT modify by hand!
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-template<> struct arg< -1 >
-{
-    BOOST_STATIC_CONSTANT(int, value  = -1);
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U1 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<1>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 1);
-    typedef arg<2> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U1 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<2>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 2);
-    typedef arg<3> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U2 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<3>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 3);
-    typedef arg<4> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U3 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<4>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 4);
-    typedef arg<5> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U4 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<5>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 5);
-    typedef arg<6> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U5 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg)
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
diff --git a/boost/mpl/aux_/preprocessed/mwcw/basic_bind.hpp b/boost/mpl/aux_/preprocessed/mwcw/basic_bind.hpp
deleted file mode 100644
index b070232..0000000
--- a/boost/mpl/aux_/preprocessed/mwcw/basic_bind.hpp
+++ /dev/null
@@ -1,440 +0,0 @@
-
-// Copyright Peter Dimov 2001
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/basic_bind.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template<
-      typename T, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg
-{
-    typedef T type;
-};
-
-template<
-      int N, typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg< arg<N>, U1, U2, U3, U4, U5 >
-{
-    typedef typename apply_wrap5<mpl::arg<N>, U1, U2, U3, U4, U5>::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg< bind< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 >
-{
-    typedef bind< F,T1,T2,T3,T4,T5 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename F
-    >
-struct bind0
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-
-     public:
-        typedef typename apply_wrap0<
-              f_
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind0<F>, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind0<F> f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
-
-template<
-      typename F
-    >
-struct bind< F,na,na,na,na,na >
-    : bind0<F>
-{
-};
-
-template<
-      typename F, typename T1
-    >
-struct bind1
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-
-     public:
-        typedef typename apply_wrap1<
-              f_
-            , typename t1::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename U1, typename U2, typename U3
-    , typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind1< F,T1 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind1< F,T1 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
-
-template<
-      typename F, typename T1
-    >
-struct bind< F,T1,na,na,na,na >
-    : bind1< F,T1 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-
-     public:
-        typedef typename apply_wrap2<
-              f_
-            , typename t1::type, typename t2::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename U1, typename U2
-    , typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind2< F,T1,T2 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind2< F,T1,T2 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind< F,T1,T2,na,na,na >
-    : bind2< F,T1,T2 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-
-     public:
-        typedef typename apply_wrap3<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename U1
-    , typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind3< F,T1,T2,T3 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind< F,T1,T2,T3,na,na >
-    : bind3< F,T1,T2,T3 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind4
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
-
-     public:
-        typedef typename apply_wrap4<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind4< F,T1,T2,T3,T4 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind< F,T1,T2,T3,T4,na >
-    : bind4< F,T1,T2,T3,T4 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind5
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
-        typedef aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 > t5;
-
-     public:
-        typedef typename apply_wrap5<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type, typename t5::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind5< F,T1,T2,T3,T4,T5 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
-
-/// primary template (not a specialization!)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind
-    : bind5< F,T1,T2,T3,T4,T5 >
-{
-};
-
-/// if_/eval_if specializations
-template< template< typename T1, typename T2, typename T3 > class F, typename Tag >
-struct quote3;
-
-template< typename T1, typename T2, typename T3 > struct if_;
-
-template<
-      typename Tag, typename T1, typename T2, typename T3
-    >
-struct bind3<
-      quote3< if_,Tag >
-    , T1, T2, T3
-    >
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef mpl::arg<1> n1;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef typename if_<
-              typename t1::type
-            , t2, t3
-            >::type f_;
-
-     public:
-        typedef typename f_::type type;
-    };
-};
-
-template<
-      template< typename T1, typename T2, typename T3 > class F, typename Tag
-    >
-struct quote3;
-
-template< typename T1, typename T2, typename T3 > struct eval_if;
-
-template<
-      typename Tag, typename T1, typename T2, typename T3
-    >
-struct bind3<
-      quote3< eval_if,Tag >
-    , T1, T2, T3
-    >
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef mpl::arg<1> n1;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef typename eval_if<
-              typename t1::type
-            , t2, t3
-            >::type f_;
-
-     public:
-        typedef typename f_::type type;
-    };
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/mwcw/bind.hpp b/boost/mpl/aux_/preprocessed/mwcw/bind.hpp
deleted file mode 100644
index 0e9513a..0000000
--- a/boost/mpl/aux_/preprocessed/mwcw/bind.hpp
+++ /dev/null
@@ -1,561 +0,0 @@
-
-// Copyright Peter Dimov 2001
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/bind.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template<
-      typename T, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg
-{
-    typedef T type;
-};
-
-template<
-      typename T
-    , typename Arg
-    >
-struct replace_unnamed_arg
-{
-    typedef Arg next;
-    typedef T type;
-};
-
-template<
-      typename Arg
-    >
-struct replace_unnamed_arg< arg< -1 >, Arg >
-{
-    typedef typename Arg::next next;
-    typedef Arg type;
-};
-
-template<
-      int N, typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg< arg<N>, U1, U2, U3, U4, U5 >
-{
-    typedef typename apply_wrap5<mpl::arg<N>, U1, U2, U3, U4, U5>::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg< bind< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 >
-{
-    typedef bind< F,T1,T2,T3,T4,T5 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename F
-    >
-struct bind0
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-     public:
-        typedef typename apply_wrap0<
-              f_
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind0<F>, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind0<F> f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
-
-template<
-      typename F
-    >
-struct bind< F,na,na,na,na,na >
-    : bind0<F>
-{
-};
-
-template<
-      typename F, typename T1
-    >
-struct bind1
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-     public:
-        typedef typename apply_wrap1<
-              f_
-            , typename t1::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename U1, typename U2, typename U3
-    , typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind1< F,T1 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind1< F,T1 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
-
-template<
-      typename F, typename T1
-    >
-struct bind< F,T1,na,na,na,na >
-    : bind1< F,T1 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-     public:
-        typedef typename apply_wrap2<
-              f_
-            , typename t1::type, typename t2::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename U1, typename U2
-    , typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind2< F,T1,T2 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind2< F,T1,T2 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind< F,T1,T2,na,na,na >
-    : bind2< F,T1,T2 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-     public:
-        typedef typename apply_wrap3<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename U1
-    , typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind3< F,T1,T2,T3 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind< F,T1,T2,T3,na,na >
-    : bind3< F,T1,T2,T3 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind4
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef aux::replace_unnamed_arg< T4,n4 > r4;
-        typedef typename r4::type a4;
-        typedef typename r4::next n5;
-        typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
-        ///
-     public:
-        typedef typename apply_wrap4<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind4< F,T1,T2,T3,T4 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind< F,T1,T2,T3,T4,na >
-    : bind4< F,T1,T2,T3,T4 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind5
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef aux::replace_unnamed_arg< T4,n4 > r4;
-        typedef typename r4::type a4;
-        typedef typename r4::next n5;
-        typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
-        ///
-        typedef aux::replace_unnamed_arg< T5,n5 > r5;
-        typedef typename r5::type a5;
-        typedef typename r5::next n6;
-        typedef aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 > t5;
-        ///
-     public:
-        typedef typename apply_wrap5<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type, typename t5::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind5< F,T1,T2,T3,T4,T5 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
-
-/// primary template (not a specialization!)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind
-    : bind5< F,T1,T2,T3,T4,T5 >
-{
-};
-
-/// if_/eval_if specializations
-template< template< typename T1, typename T2, typename T3 > class F, typename Tag >
-struct quote3;
-
-template< typename T1, typename T2, typename T3 > struct if_;
-
-template<
-      typename Tag, typename T1, typename T2, typename T3
-    >
-struct bind3<
-      quote3< if_,Tag >
-    , T1, T2, T3
-    >
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef mpl::arg<1> n1;
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef typename if_<
-              typename t1::type
-            , t2, t3
-            >::type f_;
-
-     public:
-        typedef typename f_::type type;
-    };
-};
-
-template<
-      template< typename T1, typename T2, typename T3 > class F, typename Tag
-    >
-struct quote3;
-
-template< typename T1, typename T2, typename T3 > struct eval_if;
-
-template<
-      typename Tag, typename T1, typename T2, typename T3
-    >
-struct bind3<
-      quote3< eval_if,Tag >
-    , T1, T2, T3
-    >
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef mpl::arg<1> n1;
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef typename eval_if<
-              typename t1::type
-            , t2, t3
-            >::type f_;
-
-     public:
-        typedef typename f_::type type;
-    };
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/mwcw/bind_fwd.hpp b/boost/mpl/aux_/preprocessed/mwcw/bind_fwd.hpp
deleted file mode 100644
index c4a5060..0000000
--- a/boost/mpl/aux_/preprocessed/mwcw/bind_fwd.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/bind_fwd.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename F, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na
-    >
-struct bind;
-
-template<
-      typename F
-    >
-struct bind0;
-
-template<
-      typename F, typename T1
-    >
-struct bind1;
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2;
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind4;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind5;
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/mwcw/bitand.hpp b/boost/mpl/aux_/preprocessed/mwcw/bitand.hpp
deleted file mode 100644
index 0bbf54e..0000000
--- a/boost/mpl/aux_/preprocessed/mwcw/bitand.hpp
+++ /dev/null
@@ -1,147 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/bitand.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitand_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< bitand_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< bitand_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitand_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitand_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitand_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitand_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct bitand_
-    : bitand_< bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>, N5>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitand_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct bitand_< N1,N2,N3,N4,na >
-
-    : bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitand_
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct bitand_< N1,N2,N3,na,na >
-
-    : bitand_< bitand_< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitand_
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct bitand_< N1,N2,na,na,na >
-    : bitand_impl<
-          typename bitand_tag<N1>::type
-        , typename bitand_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitand_
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct bitand_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  & BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/mwcw/bitor.hpp b/boost/mpl/aux_/preprocessed/mwcw/bitor.hpp
deleted file mode 100644
index 55b31cb..0000000
--- a/boost/mpl/aux_/preprocessed/mwcw/bitor.hpp
+++ /dev/null
@@ -1,147 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/bitor.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitor_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< bitor_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< bitor_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitor_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitor_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitor_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitor_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct bitor_
-    : bitor_< bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>, N5>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitor_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct bitor_< N1,N2,N3,N4,na >
-
-    : bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitor_
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct bitor_< N1,N2,N3,na,na >
-
-    : bitor_< bitor_< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitor_
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct bitor_< N1,N2,na,na,na >
-    : bitor_impl<
-          typename bitor_tag<N1>::type
-        , typename bitor_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitor_
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct bitor_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  | BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/mwcw/bitxor.hpp b/boost/mpl/aux_/preprocessed/mwcw/bitxor.hpp
deleted file mode 100644
index ec19391..0000000
--- a/boost/mpl/aux_/preprocessed/mwcw/bitxor.hpp
+++ /dev/null
@@ -1,147 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/bitxor.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitxor_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< bitxor_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< bitxor_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitxor_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitxor_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitxor_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitxor_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct bitxor_
-    : bitxor_< bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>, N5>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitxor_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct bitxor_< N1,N2,N3,N4,na >
-
-    : bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitxor_
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct bitxor_< N1,N2,N3,na,na >
-
-    : bitxor_< bitxor_< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitxor_
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct bitxor_< N1,N2,na,na,na >
-    : bitxor_impl<
-          typename bitxor_tag<N1>::type
-        , typename bitxor_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitxor_
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct bitxor_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  ^ BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/mwcw/deque.hpp b/boost/mpl/aux_/preprocessed/mwcw/deque.hpp
deleted file mode 100644
index de67398..0000000
--- a/boost/mpl/aux_/preprocessed/mwcw/deque.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/deque.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct deque;
-
-template<
-     
-    >
-struct deque<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector0<  >
-{
-    typedef vector0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct deque<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector1<T0>
-{
-    typedef typename vector1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct deque<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector2< T0,T1 >
-{
-    typedef typename vector2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct deque<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector3< T0,T1,T2 >
-{
-    typedef typename vector3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct deque<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector4< T0,T1,T2,T3 >
-{
-    typedef typename vector4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct deque<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector5< T0,T1,T2,T3,T4 >
-{
-    typedef typename vector5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : vector15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : vector16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : vector17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : vector18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : vector19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct deque
-    : vector20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/mwcw/divides.hpp b/boost/mpl/aux_/preprocessed/mwcw/divides.hpp
deleted file mode 100644
index 86f1682..0000000
--- a/boost/mpl/aux_/preprocessed/mwcw/divides.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/divides.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct divides_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< divides_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< divides_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct divides_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct divides_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct divides_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct divides_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct divides
-    : divides< divides< divides< divides< N1,N2 >, N3>, N4>, N5>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , divides
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct divides< N1,N2,N3,N4,na >
-
-    : divides< divides< divides< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , divides
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct divides< N1,N2,N3,na,na >
-
-    : divides< divides< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , divides
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct divides< N1,N2,na,na,na >
-    : divides_impl<
-          typename divides_tag<N1>::type
-        , typename divides_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , divides
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, divides)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct divides_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  / BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/mwcw/equal_to.hpp b/boost/mpl/aux_/preprocessed/mwcw/equal_to.hpp
deleted file mode 100644
index 62c9945..0000000
--- a/boost/mpl/aux_/preprocessed/mwcw/equal_to.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/equal_to.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct equal_to_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct equal_to_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct equal_to_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct equal_to_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct equal_to_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct equal_to
-
-    : equal_to_impl<
-          typename equal_to_tag<N1>::type
-        , typename equal_to_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct equal_to_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value  == BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/mwcw/fold_impl.hpp b/boost/mpl/aux_/preprocessed/mwcw/fold_impl.hpp
deleted file mode 100644
index 9e7a293..0000000
--- a/boost/mpl/aux_/preprocessed/mwcw/fold_impl.hpp
+++ /dev/null
@@ -1,180 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl;
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 0,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef state0 state;
-    typedef iter0 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 1,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    
-
-    typedef state1 state;
-    typedef iter1 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 2,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    
-
-    typedef state2 state;
-    typedef iter2 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 3,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    
-
-    typedef state3 state;
-    typedef iter3 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 4,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp, state3, typename deref<iter3>::type >::type state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef state4 state;
-    typedef iter4 iterator;
-};
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl
-{
-    typedef fold_impl<
-          4
-        , First
-        , Last
-        , State
-        , ForwardOp
-        > chunk_;
-
-    typedef fold_impl<
-          ( (N - 4) < 0 ? 0 : N - 4 )
-        , typename chunk_::iterator
-        , Last
-        , typename chunk_::state
-        , ForwardOp
-        > res_;
-
-    typedef typename res_::state state;
-    typedef typename res_::iterator iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< -1,First,Last,State,ForwardOp >
-    : fold_impl<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State, typename deref<First>::type>::type
-        , ForwardOp
-        >
-{
-};
-
-template<
-      typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< -1,Last,Last,State,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/mwcw/full_lambda.hpp b/boost/mpl/aux_/preprocessed/mwcw/full_lambda.hpp
deleted file mode 100644
index bf81873..0000000
--- a/boost/mpl/aux_/preprocessed/mwcw/full_lambda.hpp
+++ /dev/null
@@ -1,554 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/full_lambda.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template<
-      bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false
-    , bool C5 = false
-    >
-struct lambda_or
-    : true_
-{
-};
-
-template<>
-struct lambda_or< false,false,false,false,false >
-    : false_
-{
-};
-
-} // namespace aux
-
-template<
-      typename T
-    , typename Tag
-   
-    >
-struct lambda
-{
-    typedef false_ is_le;
-    typedef T result_;
-    typedef T type;
-};
-
-template<
-      typename T
-    >
-struct is_lambda_expression
-    : lambda<T>::is_le
-{
-};
-
-template< int N, typename Tag >
-struct lambda< arg<N>, Tag >
-{
-    typedef true_ is_le;
-    typedef mpl::arg<N> result_; // qualified for the sake of MIPSpro 7.41
-    typedef mpl::protect<result_> type;
-};
-
-template<
-      typename F
-    , typename Tag
-    >
-struct lambda<
-          bind0<F>
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind0<
-          F
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1 > class F
-    , typename L1
-    >
-struct le_result1
-{
-    typedef F<
-          typename L1::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1 > class F
-    , typename L1
-    >
-struct le_result1< true_,Tag,F,L1 >
-{
-    typedef bind1<
-          quote1< F,Tag >
-        , typename L1::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1 > class F
-    , typename T1
-    , typename Tag
-    >
-struct lambda<
-          F<T1>
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef typename l1::is_le is_le1;
-    typedef typename aux::lambda_or<
-          is_le1::value
-        >::type is_le;
-
-    typedef aux::le_result1<
-          is_le, Tag, F, l1
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1
-    , typename Tag
-    >
-struct lambda<
-          bind1< F,T1 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind1<
-          F
-        , T1
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2 > class F
-    , typename L1, typename L2
-    >
-struct le_result2
-{
-    typedef F<
-          typename L1::type, typename L2::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2 > class F
-    , typename L1, typename L2
-    >
-struct le_result2< true_,Tag,F,L1,L2 >
-{
-    typedef bind2<
-          quote2< F,Tag >
-        , typename L1::result_, typename L2::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2 > class F
-    , typename T1, typename T2
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value
-        >::type is_le;
-
-    typedef aux::le_result2<
-          is_le, Tag, F, l1, l2
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    , typename Tag
-    >
-struct lambda<
-          bind2< F,T1,T2 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind2<
-          F
-        , T1, T2
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3 > class F
-    , typename L1, typename L2, typename L3
-    >
-struct le_result3
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3 > class F
-    , typename L1, typename L2, typename L3
-    >
-struct le_result3< true_,Tag,F,L1,L2,L3 >
-{
-    typedef bind3<
-          quote3< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2, typename P3 > class F
-    , typename T1, typename T2, typename T3
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value
-        >::type is_le;
-
-    typedef aux::le_result3<
-          is_le, Tag, F, l1, l2, l3
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    , typename Tag
-    >
-struct lambda<
-          bind3< F,T1,T2,T3 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind3<
-          F
-        , T1, T2, T3
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename L1, typename L2, typename L3, typename L4
-    >
-struct le_result4
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        , typename L4::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename L1, typename L2, typename L3, typename L4
-    >
-struct le_result4< true_,Tag,F,L1,L2,L3,L4 >
-{
-    typedef bind4<
-          quote4< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        , typename L4::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename T1, typename T2, typename T3, typename T4
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3,T4 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    typedef lambda< T4,Tag > l4;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    typedef typename l4::is_le is_le4;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value, is_le4::value
-        >::type is_le;
-
-    typedef aux::le_result4<
-          is_le, Tag, F, l1, l2, l3, l4
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename Tag
-    >
-struct lambda<
-          bind4< F,T1,T2,T3,T4 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind4<
-          F
-        , T1, T2, T3, T4
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
-    , typename L1, typename L2, typename L3, typename L4, typename L5
-    >
-struct le_result5
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        , typename L4::type, typename L5::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
-    , typename L1, typename L2, typename L3, typename L4, typename L5
-    >
-struct le_result5< true_,Tag,F,L1,L2,L3,L4,L5 >
-{
-    typedef bind5<
-          quote5< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        , typename L4::result_, typename L5::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template<
-          typename P1, typename P2, typename P3, typename P4
-        , typename P5
-        >
-      class F
-    , typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3,T4,T5 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    typedef lambda< T4,Tag > l4;
-    typedef lambda< T5,Tag > l5;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    typedef typename l4::is_le is_le4;
-    typedef typename l5::is_le is_le5;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value, is_le4::value
-        , is_le5::value
-        >::type is_le;
-
-    typedef aux::le_result5<
-          is_le, Tag, F, l1, l2, l3, l4, l5
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    , typename Tag
-    >
-struct lambda<
-          bind5< F,T1,T2,T3,T4,T5 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind5<
-          F
-        , T1, T2, T3, T4, T5
-        > result_;
-
-    typedef result_ type;
-};
-
-/// special case for 'protect'
-template< typename T, typename Tag >
-struct lambda< mpl::protect<T>, Tag >
-{
-    typedef false_ is_le;
-    typedef mpl::protect<T> result_;
-    typedef result_ type;
-};
-
-/// specializations for the main 'bind' form
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    , typename Tag
-    >
-struct lambda<
-          bind< F,T1,T2,T3,T4,T5 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind< F,T1,T2,T3,T4,T5 > result_;
-    typedef result_ type;
-};
-
-/// workaround for MWCW 8.3+/EDG < 303, leads to ambiguity on Digital Mars
-
-template<
-      typename F, typename Tag1, typename Tag2
-    >
-struct lambda<
-          lambda< F,Tag1 >
-        , Tag2
-        >
-{
-    typedef lambda< F,Tag2 > l1;
-    typedef lambda< Tag1,Tag2 > l2;
-    typedef typename l1::is_le is_le;
-    typedef aux::le_result2<is_le, Tag2, mpl::lambda, l1, l2> le_result_;
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, lambda)
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/mwcw/greater.hpp b/boost/mpl/aux_/preprocessed/mwcw/greater.hpp
deleted file mode 100644
index 14d8e08..0000000
--- a/boost/mpl/aux_/preprocessed/mwcw/greater.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/greater.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct greater_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< greater_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< greater_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct greater_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct greater_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct greater
-
-    : greater_impl<
-          typename greater_tag<N1>::type
-        , typename greater_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, greater)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct greater_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value > BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/mwcw/greater_equal.hpp b/boost/mpl/aux_/preprocessed/mwcw/greater_equal.hpp
deleted file mode 100644
index 2603f91..0000000
--- a/boost/mpl/aux_/preprocessed/mwcw/greater_equal.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/greater_equal.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct greater_equal_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< greater_equal_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct greater_equal_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_equal_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_equal_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct greater_equal_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct greater_equal
-
-    : greater_equal_impl<
-          typename greater_equal_tag<N1>::type
-        , typename greater_equal_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct greater_equal_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/mwcw/inherit.hpp b/boost/mpl/aux_/preprocessed/mwcw/inherit.hpp
deleted file mode 100644
index 00f31c4..0000000
--- a/boost/mpl/aux_/preprocessed/mwcw/inherit.hpp
+++ /dev/null
@@ -1,141 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/inherit.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
-    >
-struct inherit2
-    : T1, T2
-{
-    typedef inherit2 type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2))
-};
-
-template< typename T1 >
-struct inherit2< T1,empty_base >
-{
-    typedef T1 type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (T1, empty_base))
-};
-
-template< typename T2 >
-struct inherit2< empty_base,T2 >
-{
-    typedef T2 type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, T2))
-};
-
-template<>
-struct inherit2< empty_base,empty_base >
-{
-    typedef empty_base type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, empty_base))
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, inherit2)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na
-    >
-struct inherit3
-    : inherit2<
-          typename inherit2<
-              T1, T2
-            >::type
-        , T3
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          3
-        , inherit3
-        , ( T1, T2, T3)
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC(3, inherit3)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
-    >
-struct inherit4
-    : inherit2<
-          typename inherit3<
-              T1, T2, T3
-            >::type
-        , T4
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          4
-        , inherit4
-        , ( T1, T2, T3, T4)
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC(4, inherit4)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
-    , typename T5 = na
-    >
-struct inherit5
-    : inherit2<
-          typename inherit4<
-              T1, T2, T3, T4
-            >::type
-        , T5
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , inherit5
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC(5, inherit5)
-
-/// primary template
-
-template<
-      typename T1 = empty_base, typename T2 = empty_base
-    , typename T3 = empty_base, typename T4 = empty_base
-    , typename T5 = empty_base
-    >
-struct inherit
-    : inherit5< T1,T2,T3,T4,T5 >
-{
-};
-
-template<>
-struct inherit< na,na,na,na,na >
-{
-    template<
-
-          typename T1 = empty_base, typename T2 = empty_base
-        , typename T3 = empty_base, typename T4 = empty_base
-        , typename T5 = empty_base
-
-        >
-    struct apply
-        : inherit< T1,T2,T3,T4,T5 >
-    {
-    };
-};
-
-BOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit)
-BOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit)
-BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit)
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/mwcw/iter_fold_if_impl.hpp b/boost/mpl/aux_/preprocessed/mwcw/iter_fold_if_impl.hpp
deleted file mode 100644
index 6951795..0000000
--- a/boost/mpl/aux_/preprocessed/mwcw/iter_fold_if_impl.hpp
+++ /dev/null
@@ -1,133 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright David Abrahams 2001-2002
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/iter_fold_if_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-template< typename Iterator, typename State >
-struct iter_fold_if_null_step
-{
-    typedef State state;
-    typedef Iterator iterator;
-};
-
-template< bool >
-struct iter_fold_if_step_impl
-{
-    template<
-          typename Iterator
-        , typename State
-        , typename StateOp
-        , typename IteratorOp
-        >
-    struct result_
-    {
-        typedef typename apply2< StateOp,State,Iterator >::type state;
-        typedef typename IteratorOp::type iterator;
-    };
-};
-
-template<>
-struct iter_fold_if_step_impl<false>
-{
-    template<
-          typename Iterator
-        , typename State
-        , typename StateOp
-        , typename IteratorOp
-        >
-    struct result_
-    {
-        typedef State state;
-        typedef Iterator iterator;
-    };
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename ForwardOp
-    , typename Predicate
-    >
-struct iter_fold_if_forward_step
-{
-    typedef typename apply2< Predicate,State,Iterator >::type not_last;
-    typedef typename iter_fold_if_step_impl<
-          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
-        >::template result_< Iterator,State,ForwardOp, mpl::next<Iterator> > impl_;
-
-    typedef typename impl_::state state;
-    typedef typename impl_::iterator iterator;
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename BackwardOp
-    , typename Predicate
-    >
-struct iter_fold_if_backward_step
-{
-    typedef typename apply2< Predicate,State,Iterator >::type not_last;
-    typedef typename iter_fold_if_step_impl<
-          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
-        >::template result_< Iterator,State,BackwardOp, identity<Iterator> > impl_;
-
-    typedef typename impl_::state state;
-    typedef typename impl_::iterator iterator;
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename ForwardOp
-    , typename ForwardPredicate
-    , typename BackwardOp
-    , typename BackwardPredicate
-    >
-struct iter_fold_if_impl
-{
- private:
-    typedef iter_fold_if_null_step< Iterator,State > forward_step0;
-    typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1;
-    typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2;
-    typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3;
-    typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4;
-    
-
-    typedef typename if_<
-          typename forward_step4::not_last
-        , iter_fold_if_impl<
-              typename forward_step4::iterator
-            , typename forward_step4::state
-            , ForwardOp
-            , ForwardPredicate
-            , BackwardOp
-            , BackwardPredicate
-            >
-        , iter_fold_if_null_step<
-              typename forward_step4::iterator
-            , typename forward_step4::state
-            >
-        >::type backward_step4;
-
-    typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3;
-    typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2;
-    typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1;
-    typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0;
-    
-
- public:
-    typedef typename backward_step0::state state;
-    typedef typename backward_step4::iterator iterator;
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/mwcw/iter_fold_impl.hpp b/boost/mpl/aux_/preprocessed/mwcw/iter_fold_impl.hpp
deleted file mode 100644
index 805790e..0000000
--- a/boost/mpl/aux_/preprocessed/mwcw/iter_fold_impl.hpp
+++ /dev/null
@@ -1,180 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/iter_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl;
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 0,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef state0 state;
-    typedef iter0 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 1,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    
-
-    typedef state1 state;
-    typedef iter1 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 2,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    
-
-    typedef state2 state;
-    typedef iter2 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 3,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,state2,iter2 >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    
-
-    typedef state3 state;
-    typedef iter3 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 4,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,state2,iter2 >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp,state3,iter3 >::type state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef state4 state;
-    typedef iter4 iterator;
-};
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl
-{
-    typedef iter_fold_impl<
-          4
-        , First
-        , Last
-        , State
-        , ForwardOp
-        > chunk_;
-
-    typedef iter_fold_impl<
-          ( (N - 4) < 0 ? 0 : N - 4 )
-        , typename chunk_::iterator
-        , Last
-        , typename chunk_::state
-        , ForwardOp
-        > res_;
-
-    typedef typename res_::state state;
-    typedef typename res_::iterator iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< -1,First,Last,State,ForwardOp >
-    : iter_fold_impl<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2< ForwardOp,State,First >::type
-        , ForwardOp
-        >
-{
-};
-
-template<
-      typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< -1,Last,Last,State,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/mwcw/lambda_no_ctps.hpp b/boost/mpl/aux_/preprocessed/mwcw/lambda_no_ctps.hpp
deleted file mode 100644
index 890a198..0000000
--- a/boost/mpl/aux_/preprocessed/mwcw/lambda_no_ctps.hpp
+++ /dev/null
@@ -1,229 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/lambda_no_ctps.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template<
-      bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false
-    , bool C5 = false
-    >
-struct lambda_or
-    : true_
-{
-};
-
-template<>
-struct lambda_or< false,false,false,false,false >
-    : false_
-{
-};
-
-template< typename Arity > struct lambda_impl
-{
-    template< typename T, typename Tag, typename Protect > struct result_
-    {
-        typedef T type;
-        typedef is_placeholder<T> is_le;
-    };
-};
-
-template<> struct lambda_impl< int_<1> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef typename l1::is_le is_le1;
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value
-            > is_le;
-
-        typedef bind1<
-              typename F::rebind
-            , typename l1::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<2> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        
-
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value
-            > is_le;
-
-        typedef bind2<
-              typename F::rebind
-            , typename l1::type, typename l2::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<3> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        
-
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value
-            > is_le;
-
-        typedef bind3<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<4> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        typedef lambda< typename F::arg4, Tag, false_ > l4;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        typedef typename l4::is_le is_le4;
-        
-
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value
-            > is_le;
-
-        typedef bind4<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            , typename l4::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<5> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        typedef lambda< typename F::arg4, Tag, false_ > l4;
-        typedef lambda< typename F::arg5, Tag, false_ > l5;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        typedef typename l4::is_le is_le4;
-        typedef typename l5::is_le is_le5;
-        
-
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value
-            > is_le;
-
-        typedef bind5<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            , typename l4::type, typename l5::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename T
-    , typename Tag
-    , typename Protect
-    >
-struct lambda
-{
-    /// Metafunction forwarding confuses MSVC 6.x
-    typedef typename aux::template_arity<T>::type arity_;
-    typedef typename aux::lambda_impl<arity_>
-        ::template result_< T,Tag,Protect > l_;
-
-    typedef typename l_::type type;
-    typedef typename l_::is_le is_le;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect))
-};
-
-BOOST_MPL_AUX_NA_SPEC2(1, 3, lambda)
-
-template<
-      typename T
-    >
-struct is_lambda_expression
-    : lambda<T>::is_le
-{
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/mwcw/less.hpp b/boost/mpl/aux_/preprocessed/mwcw/less.hpp
deleted file mode 100644
index 4fe3cd1..0000000
--- a/boost/mpl/aux_/preprocessed/mwcw/less.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/less.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct less_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< less_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< less_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct less_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct less_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct less
-
-    : less_impl<
-          typename less_tag<N1>::type
-        , typename less_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, less)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct less_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > BOOST_MPL_AUX_VALUE_WKND(N1)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/mwcw/less_equal.hpp b/boost/mpl/aux_/preprocessed/mwcw/less_equal.hpp
deleted file mode 100644
index ca2894f..0000000
--- a/boost/mpl/aux_/preprocessed/mwcw/less_equal.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/less_equal.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct less_equal_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< less_equal_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< less_equal_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct less_equal_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_equal_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_equal_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct less_equal_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct less_equal
-
-    : less_equal_impl<
-          typename less_equal_tag<N1>::type
-        , typename less_equal_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct less_equal_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/mwcw/list.hpp b/boost/mpl/aux_/preprocessed/mwcw/list.hpp
deleted file mode 100644
index 4e8ad53..0000000
--- a/boost/mpl/aux_/preprocessed/mwcw/list.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/list.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct list;
-
-template<
-     
-    >
-struct list<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list0<  >
-{
-    typedef list0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct list<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list1<T0>
-{
-    typedef typename list1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct list<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list2< T0,T1 >
-{
-    typedef typename list2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct list<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list3< T0,T1,T2 >
-{
-    typedef typename list3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct list<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list4< T0,T1,T2,T3 >
-{
-    typedef typename list4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct list<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list5< T0,T1,T2,T3,T4 >
-{
-    typedef typename list5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename list6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename list7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename list8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : list15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename list15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : list16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename list16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : list17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename list17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : list18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename list18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : list19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename list19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct list
-    : list20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename list20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/mwcw/list_c.hpp b/boost/mpl/aux_/preprocessed/mwcw/list_c.hpp
deleted file mode 100644
index 0b48a7f..0000000
--- a/boost/mpl/aux_/preprocessed/mwcw/list_c.hpp
+++ /dev/null
@@ -1,328 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/list_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct list_c;
-
-template<
-      typename T
-    >
-struct list_c<
-          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list0_c<T>
-{
-    typedef typename list0_c<T>::type type;
-};
-
-template<
-      typename T, long C0
-    >
-struct list_c<
-          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list1_c< T,C0 >
-{
-    typedef typename list1_c< T,C0 >::type type;
-};
-
-template<
-      typename T, long C0, long C1
-    >
-struct list_c<
-          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list2_c< T,C0,C1 >
-{
-    typedef typename list2_c< T,C0,C1 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2
-    >
-struct list_c<
-          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list3_c< T,C0,C1,C2 >
-{
-    typedef typename list3_c< T,C0,C1,C2 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3
-    >
-struct list_c<
-          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list4_c< T,C0,C1,C2,C3 >
-{
-    typedef typename list4_c< T,C0,C1,C2,C3 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list5_c< T,C0,C1,C2,C3,C4 >
-{
-    typedef typename list5_c< T,C0,C1,C2,C3,C4 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list6_c< T,C0,C1,C2,C3,C4,C5 >
-{
-    typedef typename list6_c< T,C0,C1,C2,C3,C4,C5 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list7_c< T,C0,C1,C2,C3,C4,C5,C6 >
-{
-    typedef typename list7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX
-        >
-    : list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >
-{
-    typedef typename list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >
-{
-    typedef typename list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >
-{
-    typedef typename list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >
-{
-    typedef typename list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >
-{
-    typedef typename list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >
-{
-    typedef typename list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list14_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        >
-{
-    typedef typename list14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list15_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        >
-{
-    typedef typename list15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list16_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15
-        >
-{
-    typedef typename list16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list17_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16
-        >
-{
-    typedef typename list17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, LONG_MAX, LONG_MAX
-        >
-    : list18_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17
-        >
-{
-    typedef typename list18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, LONG_MAX
-        >
-    : list19_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18
-        >
-{
-    typedef typename list19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct list_c
-    : list20_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, C19
-        >
-{
-    typedef typename list20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/mwcw/map.hpp b/boost/mpl/aux_/preprocessed/mwcw/map.hpp
deleted file mode 100644
index 837e013..0000000
--- a/boost/mpl/aux_/preprocessed/mwcw/map.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/map.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct map;
-
-template<
-     
-    >
-struct map<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map0<  >
-{
-    typedef map0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct map<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map1<T0>
-{
-    typedef typename map1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct map<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map2< T0,T1 >
-{
-    typedef typename map2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct map<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map3< T0,T1,T2 >
-{
-    typedef typename map3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct map<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map4< T0,T1,T2,T3 >
-{
-    typedef typename map4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct map<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map5< T0,T1,T2,T3,T4 >
-{
-    typedef typename map5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename map6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename map7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename map8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : map15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename map15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : map16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename map16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : map17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename map17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : map18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename map18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : map19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename map19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct map
-    : map20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename map20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/mwcw/minus.hpp b/boost/mpl/aux_/preprocessed/mwcw/minus.hpp
deleted file mode 100644
index 71d4913..0000000
--- a/boost/mpl/aux_/preprocessed/mwcw/minus.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/minus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct minus_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< minus_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< minus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct minus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct minus_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct minus_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct minus_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct minus
-    : minus< minus< minus< minus< N1,N2 >, N3>, N4>, N5>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , minus
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct minus< N1,N2,N3,N4,na >
-
-    : minus< minus< minus< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , minus
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct minus< N1,N2,N3,na,na >
-
-    : minus< minus< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , minus
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct minus< N1,N2,na,na,na >
-    : minus_impl<
-          typename minus_tag<N1>::type
-        , typename minus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , minus
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, minus)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct minus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  - BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/mwcw/modulus.hpp b/boost/mpl/aux_/preprocessed/mwcw/modulus.hpp
deleted file mode 100644
index 224b349..0000000
--- a/boost/mpl/aux_/preprocessed/mwcw/modulus.hpp
+++ /dev/null
@@ -1,101 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/modulus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct modulus_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< modulus_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< modulus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct modulus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct modulus_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct modulus_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct modulus_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct modulus
-
-    : modulus_impl<
-          typename modulus_tag<N1>::type
-        , typename modulus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, modulus)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct modulus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  % BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/mwcw/not_equal_to.hpp b/boost/mpl/aux_/preprocessed/mwcw/not_equal_to.hpp
deleted file mode 100644
index 98b21b1..0000000
--- a/boost/mpl/aux_/preprocessed/mwcw/not_equal_to.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/not_equal_to.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct not_equal_to_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< not_equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct not_equal_to_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct not_equal_to_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct not_equal_to_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct not_equal_to_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct not_equal_to
-
-    : not_equal_to_impl<
-          typename not_equal_to_tag<N1>::type
-        , typename not_equal_to_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct not_equal_to_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value != BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/mwcw/or.hpp b/boost/mpl/aux_/preprocessed/mwcw/or.hpp
deleted file mode 100644
index 31e1aaa..0000000
--- a/boost/mpl/aux_/preprocessed/mwcw/or.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/or.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template< bool C_, typename T1, typename T2, typename T3, typename T4 >
-struct or_impl
-    : true_
-{
-};
-
-template< typename T1, typename T2, typename T3, typename T4 >
-struct or_impl< false,T1,T2,T3,T4 >
-    : or_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4
-        , false_
-        >
-{
-};
-
-template<>
-struct or_impl<
-          false
-        , false_, false_, false_, false_
-        >
-    : false_
-{
-};
-
-} // namespace aux
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
-    , typename T3 = false_, typename T4 = false_, typename T5 = false_
-    >
-struct or_
-
-    : aux::or_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4, T5
-        >
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , or_
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC2(
-      2
-    , 5
-    , or_
-    )
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/mwcw/placeholders.hpp b/boost/mpl/aux_/preprocessed/mwcw/placeholders.hpp
deleted file mode 100644
index ff97364..0000000
--- a/boost/mpl/aux_/preprocessed/mwcw/placeholders.hpp
+++ /dev/null
@@ -1,105 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright Peter Dimov 2001-2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/placeholders.hpp" header
-// -- DO NOT modify by hand!
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg< -1 > _;
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;
-}
-
-}}
-
-/// agurt, 17/mar/02: one more placeholder for the last 'apply#' 
-/// specialization
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<1> _1;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<2> _2;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<3> _3;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<4> _4;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<5> _5;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<6> _6;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6;
-}
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/mwcw/plus.hpp b/boost/mpl/aux_/preprocessed/mwcw/plus.hpp
deleted file mode 100644
index a9f6ee7..0000000
--- a/boost/mpl/aux_/preprocessed/mwcw/plus.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/plus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct plus_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< plus_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< plus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct plus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct plus_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct plus_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct plus_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct plus
-    : plus< plus< plus< plus< N1,N2 >, N3>, N4>, N5>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , plus
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct plus< N1,N2,N3,N4,na >
-
-    : plus< plus< plus< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , plus
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct plus< N1,N2,N3,na,na >
-
-    : plus< plus< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , plus
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct plus< N1,N2,na,na,na >
-    : plus_impl<
-          typename plus_tag<N1>::type
-        , typename plus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , plus
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, plus)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct plus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  + BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/mwcw/quote.hpp b/boost/mpl/aux_/preprocessed/mwcw/quote.hpp
deleted file mode 100644
index d7d0420..0000000
--- a/boost/mpl/aux_/preprocessed/mwcw/quote.hpp
+++ /dev/null
@@ -1,123 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/quote.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template< typename T, bool has_type_ >
-struct quote_impl
-    : T
-{
-};
-
-template< typename T >
-struct quote_impl< T,false >
-{
-    typedef T type;
-};
-
-template<
-      template< typename P1 > class F
-    , typename Tag = void_
-    >
-struct quote1
-{
-    template< typename U1 > struct apply
-
-        : quote_impl<
-              F<U1>
-            , aux::has_type< F<U1> >::value
-            >
-
-    {
-    };
-};
-
-template<
-      template< typename P1, typename P2 > class F
-    , typename Tag = void_
-    >
-struct quote2
-{
-    template< typename U1, typename U2 > struct apply
-
-        : quote_impl<
-              F< U1,U2 >
-            , aux::has_type< F< U1,U2 > >::value
-            >
-
-    {
-    };
-};
-
-template<
-      template< typename P1, typename P2, typename P3 > class F
-    , typename Tag = void_
-    >
-struct quote3
-{
-    template< typename U1, typename U2, typename U3 > struct apply
-
-        : quote_impl<
-              F< U1,U2,U3 >
-            , aux::has_type< F< U1,U2,U3 > >::value
-            >
-
-    {
-    };
-};
-
-template<
-      template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename Tag = void_
-    >
-struct quote4
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4
-        >
-    struct apply
-
-        : quote_impl<
-              F< U1,U2,U3,U4 >
-            , aux::has_type< F< U1,U2,U3,U4 > >::value
-            >
-
-    {
-    };
-};
-
-template<
-      template<
-          typename P1, typename P2, typename P3, typename P4
-        , typename P5
-        >
-      class F
-    , typename Tag = void_
-    >
-struct quote5
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4
-        , typename U5
-        >
-    struct apply
-
-        : quote_impl<
-              F< U1,U2,U3,U4,U5 >
-            , aux::has_type< F< U1,U2,U3,U4,U5 > >::value
-            >
-
-    {
-    };
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/mwcw/reverse_fold_impl.hpp b/boost/mpl/aux_/preprocessed/mwcw/reverse_fold_impl.hpp
deleted file mode 100644
index c468684..0000000
--- a/boost/mpl/aux_/preprocessed/mwcw/reverse_fold_impl.hpp
+++ /dev/null
@@ -1,231 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/reverse_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl;
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< 0,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef fwd_state0 bkwd_state0;
-    typedef bkwd_state0 state;
-    typedef iter0 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< 1,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    
-
-    typedef fwd_state1 bkwd_state1;
-    typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-    typedef bkwd_state0 state;
-    typedef iter1 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< 2,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    
-
-    typedef fwd_state2 bkwd_state2;
-    typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-    typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter2 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< 3,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    
-
-    typedef fwd_state3 bkwd_state3;
-    typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-    typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-    typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter3 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< 4,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef fwd_state4 bkwd_state4;
-    typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3;
-    typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-    typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-    typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter4 iterator;
-};
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef reverse_fold_impl<
-          ( (N - 4) < 0 ? 0 : N - 4 )
-        , iter4
-        , Last
-        , fwd_state4
-        , BackwardOp
-        , ForwardOp
-        > nested_chunk;
-
-    typedef typename nested_chunk::state bkwd_state4;
-    typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3;
-    typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-    typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-    typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef typename nested_chunk::iterator iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< -1,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef reverse_fold_impl<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State, typename deref<First>::type>::type
-        , BackwardOp
-        , ForwardOp
-        > nested_step;
-
-    typedef typename apply2<
-          BackwardOp
-        , typename nested_step::state
-        , typename deref<First>::type
-        >::type state;
-
-    typedef typename nested_step::iterator iterator;
-};
-
-template<
-      typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< -1,Last,Last,State,BackwardOp,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/mwcw/reverse_iter_fold_impl.hpp b/boost/mpl/aux_/preprocessed/mwcw/reverse_iter_fold_impl.hpp
deleted file mode 100644
index 658f92a..0000000
--- a/boost/mpl/aux_/preprocessed/mwcw/reverse_iter_fold_impl.hpp
+++ /dev/null
@@ -1,231 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/reverse_iter_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl;
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< 0,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef fwd_state0 bkwd_state0;
-    typedef bkwd_state0 state;
-    typedef iter0 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< 1,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    
-
-    typedef fwd_state1 bkwd_state1;
-    typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-    typedef bkwd_state0 state;
-    typedef iter1 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< 2,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    
-
-    typedef fwd_state2 bkwd_state2;
-    typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-    typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter2 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< 3,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    
-
-    typedef fwd_state3 bkwd_state3;
-    typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-    typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-    typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter3 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< 4,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef fwd_state4 bkwd_state4;
-    typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3;
-    typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-    typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-    typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter4 iterator;
-};
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef reverse_iter_fold_impl<
-          ( (N - 4) < 0 ? 0 : N - 4 )
-        , iter4
-        , Last
-        , fwd_state4
-        , BackwardOp
-        , ForwardOp
-        > nested_chunk;
-
-    typedef typename nested_chunk::state bkwd_state4;
-    typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3;
-    typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-    typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-    typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef typename nested_chunk::iterator iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< -1,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef reverse_iter_fold_impl<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2< ForwardOp,State,First >::type
-        , BackwardOp
-        , ForwardOp
-        > nested_step;
-
-    typedef typename apply2<
-          BackwardOp
-        , typename nested_step::state
-        , First
-        >::type state;
-
-    typedef typename nested_step::iterator iterator;
-};
-
-template<
-      typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< -1,Last,Last,State,BackwardOp,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/mwcw/set.hpp b/boost/mpl/aux_/preprocessed/mwcw/set.hpp
deleted file mode 100644
index 5721922..0000000
--- a/boost/mpl/aux_/preprocessed/mwcw/set.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/set.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct set;
-
-template<
-     
-    >
-struct set<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set0<  >
-{
-    typedef set0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct set<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set1<T0>
-{
-    typedef typename set1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct set<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set2< T0,T1 >
-{
-    typedef typename set2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct set<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set3< T0,T1,T2 >
-{
-    typedef typename set3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct set<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set4< T0,T1,T2,T3 >
-{
-    typedef typename set4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct set<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set5< T0,T1,T2,T3,T4 >
-{
-    typedef typename set5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename set6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename set7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename set8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : set15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename set15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : set16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename set16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : set17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename set17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : set18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename set18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : set19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename set19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct set
-    : set20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename set20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/mwcw/set_c.hpp b/boost/mpl/aux_/preprocessed/mwcw/set_c.hpp
deleted file mode 100644
index cbeb932..0000000
--- a/boost/mpl/aux_/preprocessed/mwcw/set_c.hpp
+++ /dev/null
@@ -1,328 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/set_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct set_c;
-
-template<
-      typename T
-    >
-struct set_c<
-          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set0_c<T>
-{
-    typedef typename set0_c<T>::type type;
-};
-
-template<
-      typename T, long C0
-    >
-struct set_c<
-          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set1_c< T,C0 >
-{
-    typedef typename set1_c< T,C0 >::type type;
-};
-
-template<
-      typename T, long C0, long C1
-    >
-struct set_c<
-          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set2_c< T,C0,C1 >
-{
-    typedef typename set2_c< T,C0,C1 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2
-    >
-struct set_c<
-          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set3_c< T,C0,C1,C2 >
-{
-    typedef typename set3_c< T,C0,C1,C2 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3
-    >
-struct set_c<
-          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set4_c< T,C0,C1,C2,C3 >
-{
-    typedef typename set4_c< T,C0,C1,C2,C3 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set5_c< T,C0,C1,C2,C3,C4 >
-{
-    typedef typename set5_c< T,C0,C1,C2,C3,C4 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set6_c< T,C0,C1,C2,C3,C4,C5 >
-{
-    typedef typename set6_c< T,C0,C1,C2,C3,C4,C5 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set7_c< T,C0,C1,C2,C3,C4,C5,C6 >
-{
-    typedef typename set7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX
-        >
-    : set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >
-{
-    typedef typename set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >
-{
-    typedef typename set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >
-{
-    typedef typename set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >
-{
-    typedef typename set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >
-{
-    typedef typename set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >
-{
-    typedef typename set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set14_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        >
-{
-    typedef typename set14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set15_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        >
-{
-    typedef typename set15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set16_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15
-        >
-{
-    typedef typename set16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set17_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16
-        >
-{
-    typedef typename set17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, LONG_MAX, LONG_MAX
-        >
-    : set18_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17
-        >
-{
-    typedef typename set18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, LONG_MAX
-        >
-    : set19_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18
-        >
-{
-    typedef typename set19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct set_c
-    : set20_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, C19
-        >
-{
-    typedef typename set20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/mwcw/shift_left.hpp b/boost/mpl/aux_/preprocessed/mwcw/shift_left.hpp
deleted file mode 100644
index b5b181c..0000000
--- a/boost/mpl/aux_/preprocessed/mwcw/shift_left.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/shift_left.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct shift_left_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< shift_left_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< shift_left_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct shift_left_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_left_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_left_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct shift_left_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct shift_left
-
-    : shift_left_impl<
-          typename shift_left_tag<N1>::type
-        , typename shift_left_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct shift_left_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N, typename S > struct apply
-
-        : integral_c<
-              typename N::value_type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N)::value
-                  << BOOST_MPL_AUX_VALUE_WKND(S)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/mwcw/shift_right.hpp b/boost/mpl/aux_/preprocessed/mwcw/shift_right.hpp
deleted file mode 100644
index f7a342e..0000000
--- a/boost/mpl/aux_/preprocessed/mwcw/shift_right.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/shift_right.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct shift_right_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< shift_right_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< shift_right_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct shift_right_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_right_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_right_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct shift_right_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct shift_right
-
-    : shift_right_impl<
-          typename shift_right_tag<N1>::type
-        , typename shift_right_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct shift_right_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N, typename S > struct apply
-
-        : integral_c<
-              typename N::value_type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N)::value
-                  >> BOOST_MPL_AUX_VALUE_WKND(S)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/mwcw/template_arity.hpp b/boost/mpl/aux_/preprocessed/mwcw/template_arity.hpp
deleted file mode 100644
index a23fc23..0000000
--- a/boost/mpl/aux_/preprocessed/mwcw/template_arity.hpp
+++ /dev/null
@@ -1,11 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/template_arity.hpp" header
-// -- DO NOT modify by hand!
-
diff --git a/boost/mpl/aux_/preprocessed/mwcw/times.hpp b/boost/mpl/aux_/preprocessed/mwcw/times.hpp
deleted file mode 100644
index cb97cc4..0000000
--- a/boost/mpl/aux_/preprocessed/mwcw/times.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/times.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct times_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< times_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< times_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct times_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct times_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct times_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct times_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct times
-    : times< times< times< times< N1,N2 >, N3>, N4>, N5>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , times
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct times< N1,N2,N3,N4,na >
-
-    : times< times< times< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , times
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct times< N1,N2,N3,na,na >
-
-    : times< times< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , times
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct times< N1,N2,na,na,na >
-    : times_impl<
-          typename times_tag<N1>::type
-        , typename times_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , times
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, times)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct times_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  * BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/mwcw/unpack_args.hpp b/boost/mpl/aux_/preprocessed/mwcw/unpack_args.hpp
deleted file mode 100644
index 2194ce9..0000000
--- a/boost/mpl/aux_/preprocessed/mwcw/unpack_args.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/unpack_args.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template< int size, typename F, typename Args >
-struct unpack_args_impl;
-
-template< typename F, typename Args >
-struct unpack_args_impl< 0,F,Args >
-    : apply0<
-          F
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 1,F,Args >
-    : apply1<
-          F
-        , typename at_c< Args,0 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 2,F,Args >
-    : apply2<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 3,F,Args >
-    : apply3<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        , typename at_c< Args,2 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 4,F,Args >
-    : apply4<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 5,F,Args >
-    : apply5<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
-        , typename at_c< Args,4 >::type
-        >
-{
-};
-
-}
-
-template<
-      typename F
-    >
-struct unpack_args
-{
-    template< typename Args > struct apply
-
-        : aux::unpack_args_impl< size<Args>::value,F, Args >
-
-    {
-    };
-};
-
-BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/mwcw/vector.hpp b/boost/mpl/aux_/preprocessed/mwcw/vector.hpp
deleted file mode 100644
index bfa9565..0000000
--- a/boost/mpl/aux_/preprocessed/mwcw/vector.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/vector.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct vector;
-
-template<
-     
-    >
-struct vector<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector0<  >
-{
-    typedef vector0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct vector<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector1<T0>
-{
-    typedef typename vector1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct vector<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector2< T0,T1 >
-{
-    typedef typename vector2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct vector<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector3< T0,T1,T2 >
-{
-    typedef typename vector3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct vector<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector4< T0,T1,T2,T3 >
-{
-    typedef typename vector4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct vector<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector5< T0,T1,T2,T3,T4 >
-{
-    typedef typename vector5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : vector15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : vector16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : vector17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : vector18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : vector19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct vector
-    : vector20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/mwcw/vector_c.hpp b/boost/mpl/aux_/preprocessed/mwcw/vector_c.hpp
deleted file mode 100644
index 0f1560d..0000000
--- a/boost/mpl/aux_/preprocessed/mwcw/vector_c.hpp
+++ /dev/null
@@ -1,309 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/vector_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct vector_c;
-
-template<
-      typename T
-    >
-struct vector_c<
-          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector0_c<T>
-{
-    typedef typename vector0_c<T>::type type;
-};
-
-template<
-      typename T, long C0
-    >
-struct vector_c<
-          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector1_c< T, T(C0) >
-{
-    typedef typename vector1_c< T, T(C0) >::type type;
-};
-
-template<
-      typename T, long C0, long C1
-    >
-struct vector_c<
-          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector2_c< T, T(C0), T(C1) >
-{
-    typedef typename vector2_c< T, T(C0), T(C1) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2
-    >
-struct vector_c<
-          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector3_c< T, T(C0), T(C1), T(C2) >
-{
-    typedef typename vector3_c< T, T(C0), T(C1), T(C2) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector4_c< T, T(C0), T(C1), T(C2), T(C3) >
-{
-    typedef typename vector4_c< T, T(C0), T(C1), T(C2), T(C3) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) >
-{
-    typedef typename vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) >
-{
-    typedef typename vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) >
-{
-    typedef typename vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX
-        >
-    : vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) >
-{
-    typedef typename vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) >
-{
-    typedef typename vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) >
-{
-    typedef typename vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) >
-{
-    typedef typename vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) >
-{
-    typedef typename vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) >
-{
-    typedef typename vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) >
-{
-    typedef typename vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) >
-{
-    typedef typename vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) >
-{
-    typedef typename vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) >
-{
-    typedef typename vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, LONG_MAX, LONG_MAX
-        >
-    : vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) >
-{
-    typedef typename vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, LONG_MAX
-        >
-    : vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) >
-{
-    typedef typename vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct vector_c
-    : vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) >
-{
-    typedef typename vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/no_ctps/advance_backward.hpp b/boost/mpl/aux_/preprocessed/no_ctps/advance_backward.hpp
deleted file mode 100644
index 26de94c..0000000
--- a/boost/mpl/aux_/preprocessed/no_ctps/advance_backward.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/advance_backward.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-template< long N > struct advance_backward;
-template<>
-struct advance_backward<0>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef iter0 type;
-    };
-};
-
-template<>
-struct advance_backward<1>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef iter1 type;
-    };
-};
-
-template<>
-struct advance_backward<2>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef iter2 type;
-    };
-};
-
-template<>
-struct advance_backward<3>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef typename prior<iter2>::type iter3;
-        typedef iter3 type;
-    };
-};
-
-template<>
-struct advance_backward<4>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef typename prior<iter2>::type iter3;
-        typedef typename prior<iter3>::type iter4;
-        typedef iter4 type;
-    };
-};
-
-template< long N >
-struct advance_backward
-{
-    template< typename Iterator > struct apply
-    {
-        typedef typename apply_wrap1<
-              advance_backward<4>
-            , Iterator
-            >::type chunk_result_;
-
-        typedef typename apply_wrap1<
-              advance_backward<(
-                (N - 4) < 0
-                    ? 0
-                    : N - 4
-                    )>
-            , chunk_result_
-            >::type type;
-    };
-};
-
-}}}
-
diff --git a/boost/mpl/aux_/preprocessed/no_ctps/advance_forward.hpp b/boost/mpl/aux_/preprocessed/no_ctps/advance_forward.hpp
deleted file mode 100644
index b137cc7..0000000
--- a/boost/mpl/aux_/preprocessed/no_ctps/advance_forward.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/advance_forward.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-template< long N > struct advance_forward;
-template<>
-struct advance_forward<0>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef iter0 type;
-    };
-};
-
-template<>
-struct advance_forward<1>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef iter1 type;
-    };
-};
-
-template<>
-struct advance_forward<2>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef iter2 type;
-    };
-};
-
-template<>
-struct advance_forward<3>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef typename next<iter2>::type iter3;
-        typedef iter3 type;
-    };
-};
-
-template<>
-struct advance_forward<4>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef typename next<iter2>::type iter3;
-        typedef typename next<iter3>::type iter4;
-        typedef iter4 type;
-    };
-};
-
-template< long N >
-struct advance_forward
-{
-    template< typename Iterator > struct apply
-    {
-        typedef typename apply_wrap1<
-              advance_forward<4>
-            , Iterator
-            >::type chunk_result_;
-
-        typedef typename apply_wrap1<
-              advance_forward<(
-                (N - 4) < 0
-                    ? 0
-                    : N - 4
-                    )>
-            , chunk_result_
-            >::type type;
-    };
-};
-
-}}}
-
diff --git a/boost/mpl/aux_/preprocessed/no_ctps/and.hpp b/boost/mpl/aux_/preprocessed/no_ctps/and.hpp
deleted file mode 100644
index 555c800..0000000
--- a/boost/mpl/aux_/preprocessed/no_ctps/and.hpp
+++ /dev/null
@@ -1,73 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/and.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< bool C_ > struct and_impl
-{
-    template<
-          typename T1, typename T2, typename T3, typename T4
-        >
-    struct result_
-        : false_
-    {
-    };
-};
-
-template<> struct and_impl<true>
-{
-    template<
-          typename T1, typename T2, typename T3, typename T4
-        >
-    struct result_
-        : and_impl<
-              BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-            >::template result_< T2,T3,T4,true_ >
-    {
-    };
-};
-
-template<>
-struct and_impl<true>
-    ::result_< true_,true_,true_,true_ >
-        : true_
-{
-};
-
-} // namespace aux
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
-    , typename T3 = true_, typename T4 = true_, typename T5 = true_
-    >
-struct and_
-
-    : aux::and_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        >::template result_< T2,T3,T4,T5 >
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , and_
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC2(
-      2
-    , 5
-    , and_
-    )
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/no_ctps/apply.hpp b/boost/mpl/aux_/preprocessed/no_ctps/apply.hpp
deleted file mode 100644
index 9838e79..0000000
--- a/boost/mpl/aux_/preprocessed/no_ctps/apply.hpp
+++ /dev/null
@@ -1,268 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/apply.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename F
-    >
-struct apply0
-
-    : apply_wrap0<
-          typename lambda<F>::type
-       
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          1
-        , apply0
-        , (F )
-        )
-};
-
-namespace aux {
-
-template<>
-struct apply_chooser<0>
-{
-    template<
-          typename F, typename T1, typename T2, typename T3, typename T4
-        , typename T5
-        >
-    struct result_
-    {
-        typedef apply0<
-              F
-            > type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename F, typename T1
-    >
-struct apply1
-
-    : apply_wrap1<
-          typename lambda<F>::type
-        , T1
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          2
-        , apply1
-        , (F, T1)
-        )
-};
-
-namespace aux {
-
-template<>
-struct apply_chooser<1>
-{
-    template<
-          typename F, typename T1, typename T2, typename T3, typename T4
-        , typename T5
-        >
-    struct result_
-    {
-        typedef apply1<
-              F, T1
-            > type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply2
-
-    : apply_wrap2<
-          typename lambda<F>::type
-        , T1, T2
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          3
-        , apply2
-        , (F, T1, T2)
-        )
-};
-
-namespace aux {
-
-template<>
-struct apply_chooser<2>
-{
-    template<
-          typename F, typename T1, typename T2, typename T3, typename T4
-        , typename T5
-        >
-    struct result_
-    {
-        typedef apply2<
-              F, T1, T2
-            > type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply3
-
-    : apply_wrap3<
-          typename lambda<F>::type
-        , T1, T2, T3
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          4
-        , apply3
-        , (F, T1, T2, T3)
-        )
-};
-
-namespace aux {
-
-template<>
-struct apply_chooser<3>
-{
-    template<
-          typename F, typename T1, typename T2, typename T3, typename T4
-        , typename T5
-        >
-    struct result_
-    {
-        typedef apply3<
-              F, T1, T2, T3
-            > type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply4
-
-    : apply_wrap4<
-          typename lambda<F>::type
-        , T1, T2, T3, T4
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , apply4
-        , (F, T1, T2, T3, T4)
-        )
-};
-
-namespace aux {
-
-template<>
-struct apply_chooser<4>
-{
-    template<
-          typename F, typename T1, typename T2, typename T3, typename T4
-        , typename T5
-        >
-    struct result_
-    {
-        typedef apply4<
-              F, T1, T2, T3, T4
-            > type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply5
-
-    : apply_wrap5<
-          typename lambda<F>::type
-        , T1, T2, T3, T4, T5
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          6
-        , apply5
-        , (F, T1, T2, T3, T4, T5)
-        )
-};
-
-namespace aux {
-
-template<>
-struct apply_chooser<5>
-{
-    template<
-          typename F, typename T1, typename T2, typename T3, typename T4
-        , typename T5
-        >
-    struct result_
-    {
-        typedef apply5<
-              F, T1, T2, T3, T4, T5
-            > type;
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_apply_arg
-{
-    static bool const value  = true;
-};
-
-template<>
-struct is_apply_arg<na>
-{
-    static bool const value  = false;
-};
-
-template<
-      typename T1, typename T2, typename T3, typename T4, typename T5
-    >
-struct apply_count_args
-{
-    static int const value  = is_apply_arg<T1>::value + is_apply_arg<T2>::value + is_apply_arg<T3>::value + is_apply_arg<T4>::value + is_apply_arg<T5>::value;
-
-};
-
-}
-
-template<
-      typename F, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na
-    >
-struct apply
-    : aux::apply_chooser<
-          aux::apply_count_args< T1,T2,T3,T4,T5 >::value
-        >::template result_< F,T1,T2,T3,T4,T5 >::type
-{
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/no_ctps/apply_fwd.hpp b/boost/mpl/aux_/preprocessed/no_ctps/apply_fwd.hpp
deleted file mode 100644
index 7de6dad..0000000
--- a/boost/mpl/aux_/preprocessed/no_ctps/apply_fwd.hpp
+++ /dev/null
@@ -1,50 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/apply_fwd.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< BOOST_AUX_NTTP_DECL(int, arity_) > struct apply_chooser;
-}
-
-template<
-      typename F
-    >
-struct apply0;
-
-template<
-      typename F, typename T1
-    >
-struct apply1;
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply2;
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply3;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply4;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply5;
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/no_ctps/apply_wrap.hpp b/boost/mpl/aux_/preprocessed/no_ctps/apply_wrap.hpp
deleted file mode 100644
index efa213d..0000000
--- a/boost/mpl/aux_/preprocessed/no_ctps/apply_wrap.hpp
+++ /dev/null
@@ -1,78 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/apply_wrap.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename F
-
-    , typename has_apply_ = typename aux::has_apply<F>::type
-
-    >
-struct apply_wrap0
-
-    : F::template apply<  >
-{
-};
-
-template<
-      typename F, typename T1
-
-    >
-struct apply_wrap1
-
-    : F::template apply<T1>
-{
-};
-
-template<
-      typename F, typename T1, typename T2
-
-    >
-struct apply_wrap2
-
-    : F::template apply< T1,T2 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-
-    >
-struct apply_wrap3
-
-    : F::template apply< T1,T2,T3 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-
-    >
-struct apply_wrap4
-
-    : F::template apply< T1,T2,T3,T4 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-
-    >
-struct apply_wrap5
-
-    : F::template apply< T1,T2,T3,T4,T5 >
-{
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/no_ctps/arg.hpp b/boost/mpl/aux_/preprocessed/no_ctps/arg.hpp
deleted file mode 100644
index 6f2f8a8..0000000
--- a/boost/mpl/aux_/preprocessed/no_ctps/arg.hpp
+++ /dev/null
@@ -1,123 +0,0 @@
-
-// Copyright Peter Dimov 2001-2002
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/arg.hpp" header
-// -- DO NOT modify by hand!
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-template<> struct arg< -1 >
-{
-    BOOST_STATIC_CONSTANT(int, value  = -1);
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U1 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<1>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 1);
-    typedef arg<2> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U1 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<2>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 2);
-    typedef arg<3> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U2 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<3>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 3);
-    typedef arg<4> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U3 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<4>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 4);
-    typedef arg<5> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U4 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<5>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 5);
-    typedef arg<6> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U5 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg)
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
diff --git a/boost/mpl/aux_/preprocessed/no_ctps/basic_bind.hpp b/boost/mpl/aux_/preprocessed/no_ctps/basic_bind.hpp
deleted file mode 100644
index 254e5b8..0000000
--- a/boost/mpl/aux_/preprocessed/no_ctps/basic_bind.hpp
+++ /dev/null
@@ -1,486 +0,0 @@
-
-// Copyright Peter Dimov 2001
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/basic_bind.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< bool >
-struct resolve_arg_impl
-{
-    template<
-          typename T, typename U1, typename U2, typename U3
-        , typename U4, typename U5
-        >
-    struct result_
-    {
-        typedef T type;
-    };
-};
-
-template<>
-struct resolve_arg_impl<true>
-{
-    template<
-          typename T, typename U1, typename U2, typename U3
-        , typename U4, typename U5
-        >
-    struct result_
-    {
-        typedef typename apply_wrap5<
-              T
-            , U1, U2, U3, U4, U5
-            >::type type;
-    };
-};
-
-template< typename T > struct is_bind_template;
-
-template<
-      typename T, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg
-    : resolve_arg_impl< is_bind_template<T>::value >
-            ::template result_< T,U1,U2,U3,U4,U5 >
-{
-};
-
-template< int arity_ > struct bind_chooser;
-
-aux::no_tag is_bind_helper(...);
-template< typename T > aux::no_tag is_bind_helper(protect<T>*);
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-aux::yes_tag is_bind_helper(bind< F,T1,T2,T3,T4,T5 >*);
-
-template< int N >
-aux::yes_tag is_bind_helper(arg<N>*);
-
-template< bool is_ref_  = true >
-struct is_bind_template_impl
-{
-    template< typename T > struct result_
-    {
-        BOOST_STATIC_CONSTANT(bool, value  = false);
-    };
-};
-
-template<>
-struct is_bind_template_impl<false>
-{
-    template< typename T > struct result_
-    {
-        BOOST_STATIC_CONSTANT(bool, value =
-              sizeof(aux::is_bind_helper(static_cast<T*>(0)))
-                == sizeof(aux::yes_tag)
-            );
-    };
-};
-
-template< typename T > struct is_bind_template
-    : is_bind_template_impl< ::boost::detail::is_reference_impl<T>::value >
-        ::template result_<T>
-{
-};
-
-} // namespace aux
-
-template<
-      typename F
-    >
-struct bind0
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-
-     public:
-        typedef typename apply_wrap0<
-              f_
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F
-    >
-aux::yes_tag
-is_bind_helper(bind0<F>*);
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
-
-namespace aux {
-
-template<>
-struct bind_chooser<0>
-{
-    template<
-          typename F, typename T1, typename T2, typename T3, typename T4
-        , typename T5
-        >
-    struct result_
-    {
-        typedef bind0<F> type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename F, typename T1
-    >
-struct bind1
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-
-     public:
-        typedef typename apply_wrap1<
-              f_
-            , typename t1::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1
-    >
-aux::yes_tag
-is_bind_helper(bind1< F,T1 >*);
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
-
-namespace aux {
-
-template<>
-struct bind_chooser<1>
-{
-    template<
-          typename F, typename T1, typename T2, typename T3, typename T4
-        , typename T5
-        >
-    struct result_
-    {
-        typedef bind1< F,T1 > type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-
-     public:
-        typedef typename apply_wrap2<
-              f_
-            , typename t1::type, typename t2::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2
-    >
-aux::yes_tag
-is_bind_helper(bind2< F,T1,T2 >*);
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
-
-namespace aux {
-
-template<>
-struct bind_chooser<2>
-{
-    template<
-          typename F, typename T1, typename T2, typename T3, typename T4
-        , typename T5
-        >
-    struct result_
-    {
-        typedef bind2< F,T1,T2 > type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-
-     public:
-        typedef typename apply_wrap3<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-aux::yes_tag
-is_bind_helper(bind3< F,T1,T2,T3 >*);
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
-
-namespace aux {
-
-template<>
-struct bind_chooser<3>
-{
-    template<
-          typename F, typename T1, typename T2, typename T3, typename T4
-        , typename T5
-        >
-    struct result_
-    {
-        typedef bind3< F,T1,T2,T3 > type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind4
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
-
-     public:
-        typedef typename apply_wrap4<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-aux::yes_tag
-is_bind_helper(bind4< F,T1,T2,T3,T4 >*);
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
-
-namespace aux {
-
-template<>
-struct bind_chooser<4>
-{
-    template<
-          typename F, typename T1, typename T2, typename T3, typename T4
-        , typename T5
-        >
-    struct result_
-    {
-        typedef bind4< F,T1,T2,T3,T4 > type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind5
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
-        typedef aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 > t5;
-
-     public:
-        typedef typename apply_wrap5<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type, typename t5::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-aux::yes_tag
-is_bind_helper(bind5< F,T1,T2,T3,T4,T5 >*);
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
-
-namespace aux {
-
-template<>
-struct bind_chooser<5>
-{
-    template<
-          typename F, typename T1, typename T2, typename T3, typename T4
-        , typename T5
-        >
-    struct result_
-    {
-        typedef bind5< F,T1,T2,T3,T4,T5 > type;
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_bind_arg
-{
-    BOOST_STATIC_CONSTANT(bool, value  = true);
-};
-
-template<>
-struct is_bind_arg<na>
-{
-    BOOST_STATIC_CONSTANT(bool, value  = false);
-};
-
-template<
-      typename T1, typename T2, typename T3, typename T4, typename T5
-    >
-struct bind_count_args
-{
-    BOOST_STATIC_CONSTANT(int, value =
-          is_bind_arg<T1>::value + is_bind_arg<T2>::value 
-        + is_bind_arg<T3>::value + is_bind_arg<T4>::value 
-        + is_bind_arg<T5>::value
-        );
-
-};
-
-}
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind
-    : aux::bind_chooser<
-          aux::bind_count_args< T1,T2,T3,T4,T5 >::value
-        >::template result_< F,T1,T2,T3,T4,T5 >::type
-{
-};
-
-BOOST_MPL_AUX_ARITY_SPEC(
-      6
-    , bind
-    )
-
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(
-      6
-    , bind
-    )
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/no_ctps/bind.hpp b/boost/mpl/aux_/preprocessed/no_ctps/bind.hpp
deleted file mode 100644
index 12062b4..0000000
--- a/boost/mpl/aux_/preprocessed/no_ctps/bind.hpp
+++ /dev/null
@@ -1,590 +0,0 @@
-
-// Copyright Peter Dimov 2001
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/bind.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< bool >
-struct resolve_arg_impl
-{
-    template<
-          typename T, typename U1, typename U2, typename U3
-        , typename U4, typename U5
-        >
-    struct result_
-    {
-        typedef T type;
-    };
-};
-
-template<>
-struct resolve_arg_impl<true>
-{
-    template<
-          typename T, typename U1, typename U2, typename U3
-        , typename U4, typename U5
-        >
-    struct result_
-    {
-        typedef typename apply_wrap5<
-              T
-            , U1, U2, U3, U4, U5
-            >::type type;
-    };
-};
-
-template< typename T > struct is_bind_template;
-
-template<
-      typename T, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg
-    : resolve_arg_impl< is_bind_template<T>::value >
-            ::template result_< T,U1,U2,U3,U4,U5 >
-{
-};
-
-template< typename T >
-struct replace_unnamed_arg_impl
-{
-    template< typename Arg > struct result_
-    {
-        typedef Arg next;
-        typedef T type;
-    };
-};
-
-template<>
-struct replace_unnamed_arg_impl< arg< -1 > >
-{
-    template< typename Arg > struct result_
-    {
-        typedef typename next<Arg>::type next;
-        typedef Arg type;
-    };
-};
-
-template< typename T, typename Arg >
-struct replace_unnamed_arg
-    : replace_unnamed_arg_impl<T>::template result_<Arg>
-{
-};
-
-template< int arity_ > struct bind_chooser;
-
-aux::no_tag is_bind_helper(...);
-template< typename T > aux::no_tag is_bind_helper(protect<T>*);
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-aux::yes_tag is_bind_helper(bind< F,T1,T2,T3,T4,T5 >*);
-
-template< int N >
-aux::yes_tag is_bind_helper(arg<N>*);
-
-template< bool is_ref_  = true >
-struct is_bind_template_impl
-{
-    template< typename T > struct result_
-    {
-        BOOST_STATIC_CONSTANT(bool, value  = false);
-    };
-};
-
-template<>
-struct is_bind_template_impl<false>
-{
-    template< typename T > struct result_
-    {
-        BOOST_STATIC_CONSTANT(bool, value =
-              sizeof(aux::is_bind_helper(static_cast<T*>(0)))
-                == sizeof(aux::yes_tag)
-            );
-    };
-};
-
-template< typename T > struct is_bind_template
-    : is_bind_template_impl< ::boost::detail::is_reference_impl<T>::value >
-        ::template result_<T>
-{
-};
-
-} // namespace aux
-
-template<
-      typename F
-    >
-struct bind0
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-     public:
-        typedef typename apply_wrap0<
-              f_
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F
-    >
-aux::yes_tag
-is_bind_helper(bind0<F>*);
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
-
-namespace aux {
-
-template<>
-struct bind_chooser<0>
-{
-    template<
-          typename F, typename T1, typename T2, typename T3, typename T4
-        , typename T5
-        >
-    struct result_
-    {
-        typedef bind0<F> type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename F, typename T1
-    >
-struct bind1
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-     public:
-        typedef typename apply_wrap1<
-              f_
-            , typename t1::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1
-    >
-aux::yes_tag
-is_bind_helper(bind1< F,T1 >*);
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
-
-namespace aux {
-
-template<>
-struct bind_chooser<1>
-{
-    template<
-          typename F, typename T1, typename T2, typename T3, typename T4
-        , typename T5
-        >
-    struct result_
-    {
-        typedef bind1< F,T1 > type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-     public:
-        typedef typename apply_wrap2<
-              f_
-            , typename t1::type, typename t2::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2
-    >
-aux::yes_tag
-is_bind_helper(bind2< F,T1,T2 >*);
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
-
-namespace aux {
-
-template<>
-struct bind_chooser<2>
-{
-    template<
-          typename F, typename T1, typename T2, typename T3, typename T4
-        , typename T5
-        >
-    struct result_
-    {
-        typedef bind2< F,T1,T2 > type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-     public:
-        typedef typename apply_wrap3<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-aux::yes_tag
-is_bind_helper(bind3< F,T1,T2,T3 >*);
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
-
-namespace aux {
-
-template<>
-struct bind_chooser<3>
-{
-    template<
-          typename F, typename T1, typename T2, typename T3, typename T4
-        , typename T5
-        >
-    struct result_
-    {
-        typedef bind3< F,T1,T2,T3 > type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind4
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef aux::replace_unnamed_arg< T4,n4 > r4;
-        typedef typename r4::type a4;
-        typedef typename r4::next n5;
-        typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
-        ///
-     public:
-        typedef typename apply_wrap4<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-aux::yes_tag
-is_bind_helper(bind4< F,T1,T2,T3,T4 >*);
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
-
-namespace aux {
-
-template<>
-struct bind_chooser<4>
-{
-    template<
-          typename F, typename T1, typename T2, typename T3, typename T4
-        , typename T5
-        >
-    struct result_
-    {
-        typedef bind4< F,T1,T2,T3,T4 > type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind5
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef aux::replace_unnamed_arg< T4,n4 > r4;
-        typedef typename r4::type a4;
-        typedef typename r4::next n5;
-        typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
-        ///
-        typedef aux::replace_unnamed_arg< T5,n5 > r5;
-        typedef typename r5::type a5;
-        typedef typename r5::next n6;
-        typedef aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 > t5;
-        ///
-     public:
-        typedef typename apply_wrap5<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type, typename t5::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-aux::yes_tag
-is_bind_helper(bind5< F,T1,T2,T3,T4,T5 >*);
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
-
-namespace aux {
-
-template<>
-struct bind_chooser<5>
-{
-    template<
-          typename F, typename T1, typename T2, typename T3, typename T4
-        , typename T5
-        >
-    struct result_
-    {
-        typedef bind5< F,T1,T2,T3,T4,T5 > type;
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_bind_arg
-{
-    BOOST_STATIC_CONSTANT(bool, value  = true);
-};
-
-template<>
-struct is_bind_arg<na>
-{
-    BOOST_STATIC_CONSTANT(bool, value  = false);
-};
-
-template<
-      typename T1, typename T2, typename T3, typename T4, typename T5
-    >
-struct bind_count_args
-{
-    BOOST_STATIC_CONSTANT(int, value =
-          is_bind_arg<T1>::value + is_bind_arg<T2>::value 
-        + is_bind_arg<T3>::value + is_bind_arg<T4>::value 
-        + is_bind_arg<T5>::value
-        );
-
-};
-
-}
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind
-    : aux::bind_chooser<
-          aux::bind_count_args< T1,T2,T3,T4,T5 >::value
-        >::template result_< F,T1,T2,T3,T4,T5 >::type
-{
-};
-
-BOOST_MPL_AUX_ARITY_SPEC(
-      6
-    , bind
-    )
-
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(
-      6
-    , bind
-    )
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/no_ctps/bind_fwd.hpp b/boost/mpl/aux_/preprocessed/no_ctps/bind_fwd.hpp
deleted file mode 100644
index c4a5060..0000000
--- a/boost/mpl/aux_/preprocessed/no_ctps/bind_fwd.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/bind_fwd.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename F, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na
-    >
-struct bind;
-
-template<
-      typename F
-    >
-struct bind0;
-
-template<
-      typename F, typename T1
-    >
-struct bind1;
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2;
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind4;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind5;
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/no_ctps/bitand.hpp b/boost/mpl/aux_/preprocessed/no_ctps/bitand.hpp
deleted file mode 100644
index 020d6ba..0000000
--- a/boost/mpl/aux_/preprocessed/no_ctps/bitand.hpp
+++ /dev/null
@@ -1,134 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/bitand.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitand_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< bitand_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< bitand_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitand_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct bitand_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct bitand_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitand_tag
-{
-    typedef typename T::tag type;
-};
-
-/// forward declaration
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct bitand_2;
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct bitand_
-
-    : if_<
-
-          is_na<N3>
-        , bitand_2< N1,N2 >
-        , bitand_<
-              bitand_2< N1,N2 >
-            , N3, N4, N5
-            >
-        >::type
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitand_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1
-    , typename N2
-    >
-struct bitand_2
-    : bitand_impl<
-          typename bitand_tag<N1>::type
-        , typename bitand_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitand_2, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct bitand_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  & BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/no_ctps/bitor.hpp b/boost/mpl/aux_/preprocessed/no_ctps/bitor.hpp
deleted file mode 100644
index 0474877..0000000
--- a/boost/mpl/aux_/preprocessed/no_ctps/bitor.hpp
+++ /dev/null
@@ -1,134 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/bitor.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitor_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< bitor_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< bitor_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitor_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct bitor_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct bitor_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitor_tag
-{
-    typedef typename T::tag type;
-};
-
-/// forward declaration
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct bitor_2;
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct bitor_
-
-    : if_<
-
-          is_na<N3>
-        , bitor_2< N1,N2 >
-        , bitor_<
-              bitor_2< N1,N2 >
-            , N3, N4, N5
-            >
-        >::type
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitor_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1
-    , typename N2
-    >
-struct bitor_2
-    : bitor_impl<
-          typename bitor_tag<N1>::type
-        , typename bitor_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitor_2, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct bitor_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  | BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/no_ctps/bitxor.hpp b/boost/mpl/aux_/preprocessed/no_ctps/bitxor.hpp
deleted file mode 100644
index 42a9758..0000000
--- a/boost/mpl/aux_/preprocessed/no_ctps/bitxor.hpp
+++ /dev/null
@@ -1,134 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/bitxor.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitxor_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< bitxor_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< bitxor_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitxor_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct bitxor_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct bitxor_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitxor_tag
-{
-    typedef typename T::tag type;
-};
-
-/// forward declaration
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct bitxor_2;
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct bitxor_
-
-    : if_<
-
-          is_na<N3>
-        , bitxor_2< N1,N2 >
-        , bitxor_<
-              bitxor_2< N1,N2 >
-            , N3, N4, N5
-            >
-        >::type
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitxor_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1
-    , typename N2
-    >
-struct bitxor_2
-    : bitxor_impl<
-          typename bitxor_tag<N1>::type
-        , typename bitxor_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitxor_2, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct bitxor_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  ^ BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/no_ctps/deque.hpp b/boost/mpl/aux_/preprocessed/no_ctps/deque.hpp
deleted file mode 100644
index a0445d9..0000000
--- a/boost/mpl/aux_/preprocessed/no_ctps/deque.hpp
+++ /dev/null
@@ -1,556 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/deque.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct deque_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct deque_chooser<0>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef vector0<
-             
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<1>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector1<
-              T0
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<2>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector2<
-              T0, T1
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<3>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector3<
-              T0, T1, T2
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<4>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector4<
-              T0, T1, T2, T3
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<5>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector5<
-              T0, T1, T2, T3, T4
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<6>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector6<
-              T0, T1, T2, T3, T4, T5
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<7>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector7<
-              T0, T1, T2, T3, T4, T5, T6
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<8>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector8<
-              T0, T1, T2, T3, T4, T5, T6, T7
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<9>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector9<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<10>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector10<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<11>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector11<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<12>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector12<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<13>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector13<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<14>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector14<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<15>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector15<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<16>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector16<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<17>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector17<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<18>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector18<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<19>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector19<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct deque_chooser<20>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector20<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_deque_arg
-{
-    BOOST_STATIC_CONSTANT(bool, value  = true);
-};
-
-template<>
-struct is_deque_arg<na>
-{
-    BOOST_STATIC_CONSTANT(bool, value  = false);
-};
-
-template<
-      typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename T6, typename T7, typename T8, typename T9, typename T10
-    , typename T11, typename T12, typename T13, typename T14, typename T15
-    , typename T16, typename T17, typename T18, typename T19, typename T20
-    >
-struct deque_count_args
-{
-    BOOST_STATIC_CONSTANT(int, value =
-          is_deque_arg<T1>::value + is_deque_arg<T2>::value 
-        + is_deque_arg<T3>::value + is_deque_arg<T4>::value 
-        + is_deque_arg<T5>::value + is_deque_arg<T6>::value 
-        + is_deque_arg<T7>::value + is_deque_arg<T8>::value 
-        + is_deque_arg<T9>::value + is_deque_arg<T10>::value 
-        + is_deque_arg<T11>::value + is_deque_arg<T12>::value 
-        + is_deque_arg<T13>::value + is_deque_arg<T14>::value 
-        + is_deque_arg<T15>::value + is_deque_arg<T16>::value 
-        + is_deque_arg<T17>::value + is_deque_arg<T18>::value 
-        + is_deque_arg<T19>::value + is_deque_arg<T20>::value
-        );
-
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct deque_impl
-{
-    typedef aux::deque_count_args<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        > arg_num_;
-
-    typedef typename aux::deque_chooser< arg_num_::value >
-        ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct deque
-    : aux::deque_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type
-{
-    typedef typename aux::deque_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/no_ctps/divides.hpp b/boost/mpl/aux_/preprocessed/no_ctps/divides.hpp
deleted file mode 100644
index 00636dc..0000000
--- a/boost/mpl/aux_/preprocessed/no_ctps/divides.hpp
+++ /dev/null
@@ -1,133 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/divides.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct divides_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< divides_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< divides_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct divides_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct divides_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct divides_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct divides_tag
-{
-    typedef typename T::tag type;
-};
-
-/// forward declaration
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct divides2;
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct divides
-
-    : if_<
-
-          is_na<N3>
-        , divides2< N1,N2 >
-        , divides<
-              divides2< N1,N2 >
-            , N3, N4, N5
-            >
-        >::type
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , divides
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1
-    , typename N2
-    >
-struct divides2
-    : divides_impl<
-          typename divides_tag<N1>::type
-        , typename divides_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, divides2, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, divides)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct divides_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  / BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/no_ctps/equal_to.hpp b/boost/mpl/aux_/preprocessed/no_ctps/equal_to.hpp
deleted file mode 100644
index b14cdda..0000000
--- a/boost/mpl/aux_/preprocessed/no_ctps/equal_to.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/equal_to.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct equal_to_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct equal_to_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct equal_to_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct equal_to_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct equal_to_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct equal_to
-
-    : equal_to_impl<
-          typename equal_to_tag<N1>::type
-        , typename equal_to_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct equal_to_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value  == BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/no_ctps/fold_impl.hpp b/boost/mpl/aux_/preprocessed/no_ctps/fold_impl.hpp
deleted file mode 100644
index 58066d8..0000000
--- a/boost/mpl/aux_/preprocessed/no_ctps/fold_impl.hpp
+++ /dev/null
@@ -1,245 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl;
-
-template< int N >
-struct fold_chunk;
-
-template<> struct fold_chunk<0>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef state0 state;
-        typedef iter0 iterator;
-    };
-};
-
-template<> struct fold_chunk<1>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        
-
-        typedef state1 state;
-        typedef iter1 iterator;
-    };
-};
-
-template<> struct fold_chunk<2>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        
-
-        typedef state2 state;
-        typedef iter2 iterator;
-    };
-};
-
-template<> struct fold_chunk<3>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        
-
-        typedef state3 state;
-        typedef iter3 iterator;
-    };
-};
-
-template<> struct fold_chunk<4>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp, state3, typename deref<iter3>::type >::type state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef state4 state;
-        typedef iter4 iterator;
-    };
-};
-
-template< int N >
-struct fold_chunk
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef fold_impl<
-              4
-            , First
-            , Last
-            , State
-            , ForwardOp
-            > chunk_;
-
-        typedef fold_impl<
-              ( (N - 4) < 0 ? 0 : N - 4 )
-            , typename chunk_::iterator
-            , Last
-            , typename chunk_::state
-            , ForwardOp
-            > res_;
-
-        typedef typename res_::state state;
-        typedef typename res_::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_step;
-
-template<
-      typename Last
-    , typename State
-    >
-struct fold_null_step
-{
-    typedef Last iterator;
-    typedef State state;
-};
-
-template<>
-struct fold_chunk< -1 >
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef typename if_<
-              typename is_same< First,Last >::type
-            , fold_null_step< Last,State >
-            , fold_step< First,Last,State,ForwardOp >
-            >::type res_;
-
-        typedef typename res_::state state;
-        typedef typename res_::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_step
-{
-    typedef fold_chunk< -1 >::template result_<
-          typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State, typename deref<First>::type>::type
-        , ForwardOp
-        > chunk_;
-
-    typedef typename chunk_::state state;
-    typedef typename chunk_::iterator iterator;
-};
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl
-    : fold_chunk<N>
-        ::template result_< First,Last,State,ForwardOp >
-{
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/no_ctps/full_lambda.hpp b/boost/mpl/aux_/preprocessed/no_ctps/full_lambda.hpp
deleted file mode 100644
index bf81873..0000000
--- a/boost/mpl/aux_/preprocessed/no_ctps/full_lambda.hpp
+++ /dev/null
@@ -1,554 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/full_lambda.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template<
-      bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false
-    , bool C5 = false
-    >
-struct lambda_or
-    : true_
-{
-};
-
-template<>
-struct lambda_or< false,false,false,false,false >
-    : false_
-{
-};
-
-} // namespace aux
-
-template<
-      typename T
-    , typename Tag
-   
-    >
-struct lambda
-{
-    typedef false_ is_le;
-    typedef T result_;
-    typedef T type;
-};
-
-template<
-      typename T
-    >
-struct is_lambda_expression
-    : lambda<T>::is_le
-{
-};
-
-template< int N, typename Tag >
-struct lambda< arg<N>, Tag >
-{
-    typedef true_ is_le;
-    typedef mpl::arg<N> result_; // qualified for the sake of MIPSpro 7.41
-    typedef mpl::protect<result_> type;
-};
-
-template<
-      typename F
-    , typename Tag
-    >
-struct lambda<
-          bind0<F>
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind0<
-          F
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1 > class F
-    , typename L1
-    >
-struct le_result1
-{
-    typedef F<
-          typename L1::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1 > class F
-    , typename L1
-    >
-struct le_result1< true_,Tag,F,L1 >
-{
-    typedef bind1<
-          quote1< F,Tag >
-        , typename L1::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1 > class F
-    , typename T1
-    , typename Tag
-    >
-struct lambda<
-          F<T1>
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef typename l1::is_le is_le1;
-    typedef typename aux::lambda_or<
-          is_le1::value
-        >::type is_le;
-
-    typedef aux::le_result1<
-          is_le, Tag, F, l1
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1
-    , typename Tag
-    >
-struct lambda<
-          bind1< F,T1 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind1<
-          F
-        , T1
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2 > class F
-    , typename L1, typename L2
-    >
-struct le_result2
-{
-    typedef F<
-          typename L1::type, typename L2::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2 > class F
-    , typename L1, typename L2
-    >
-struct le_result2< true_,Tag,F,L1,L2 >
-{
-    typedef bind2<
-          quote2< F,Tag >
-        , typename L1::result_, typename L2::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2 > class F
-    , typename T1, typename T2
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value
-        >::type is_le;
-
-    typedef aux::le_result2<
-          is_le, Tag, F, l1, l2
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    , typename Tag
-    >
-struct lambda<
-          bind2< F,T1,T2 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind2<
-          F
-        , T1, T2
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3 > class F
-    , typename L1, typename L2, typename L3
-    >
-struct le_result3
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3 > class F
-    , typename L1, typename L2, typename L3
-    >
-struct le_result3< true_,Tag,F,L1,L2,L3 >
-{
-    typedef bind3<
-          quote3< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2, typename P3 > class F
-    , typename T1, typename T2, typename T3
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value
-        >::type is_le;
-
-    typedef aux::le_result3<
-          is_le, Tag, F, l1, l2, l3
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    , typename Tag
-    >
-struct lambda<
-          bind3< F,T1,T2,T3 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind3<
-          F
-        , T1, T2, T3
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename L1, typename L2, typename L3, typename L4
-    >
-struct le_result4
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        , typename L4::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename L1, typename L2, typename L3, typename L4
-    >
-struct le_result4< true_,Tag,F,L1,L2,L3,L4 >
-{
-    typedef bind4<
-          quote4< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        , typename L4::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename T1, typename T2, typename T3, typename T4
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3,T4 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    typedef lambda< T4,Tag > l4;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    typedef typename l4::is_le is_le4;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value, is_le4::value
-        >::type is_le;
-
-    typedef aux::le_result4<
-          is_le, Tag, F, l1, l2, l3, l4
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename Tag
-    >
-struct lambda<
-          bind4< F,T1,T2,T3,T4 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind4<
-          F
-        , T1, T2, T3, T4
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
-    , typename L1, typename L2, typename L3, typename L4, typename L5
-    >
-struct le_result5
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        , typename L4::type, typename L5::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
-    , typename L1, typename L2, typename L3, typename L4, typename L5
-    >
-struct le_result5< true_,Tag,F,L1,L2,L3,L4,L5 >
-{
-    typedef bind5<
-          quote5< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        , typename L4::result_, typename L5::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template<
-          typename P1, typename P2, typename P3, typename P4
-        , typename P5
-        >
-      class F
-    , typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3,T4,T5 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    typedef lambda< T4,Tag > l4;
-    typedef lambda< T5,Tag > l5;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    typedef typename l4::is_le is_le4;
-    typedef typename l5::is_le is_le5;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value, is_le4::value
-        , is_le5::value
-        >::type is_le;
-
-    typedef aux::le_result5<
-          is_le, Tag, F, l1, l2, l3, l4, l5
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    , typename Tag
-    >
-struct lambda<
-          bind5< F,T1,T2,T3,T4,T5 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind5<
-          F
-        , T1, T2, T3, T4, T5
-        > result_;
-
-    typedef result_ type;
-};
-
-/// special case for 'protect'
-template< typename T, typename Tag >
-struct lambda< mpl::protect<T>, Tag >
-{
-    typedef false_ is_le;
-    typedef mpl::protect<T> result_;
-    typedef result_ type;
-};
-
-/// specializations for the main 'bind' form
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    , typename Tag
-    >
-struct lambda<
-          bind< F,T1,T2,T3,T4,T5 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind< F,T1,T2,T3,T4,T5 > result_;
-    typedef result_ type;
-};
-
-/// workaround for MWCW 8.3+/EDG < 303, leads to ambiguity on Digital Mars
-
-template<
-      typename F, typename Tag1, typename Tag2
-    >
-struct lambda<
-          lambda< F,Tag1 >
-        , Tag2
-        >
-{
-    typedef lambda< F,Tag2 > l1;
-    typedef lambda< Tag1,Tag2 > l2;
-    typedef typename l1::is_le is_le;
-    typedef aux::le_result2<is_le, Tag2, mpl::lambda, l1, l2> le_result_;
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, lambda)
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/no_ctps/greater.hpp b/boost/mpl/aux_/preprocessed/no_ctps/greater.hpp
deleted file mode 100644
index 6fdf8ba..0000000
--- a/boost/mpl/aux_/preprocessed/no_ctps/greater.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/greater.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct greater_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< greater_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< greater_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct greater_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct greater_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct greater_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct greater_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct greater
-
-    : greater_impl<
-          typename greater_tag<N1>::type
-        , typename greater_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, greater)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct greater_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value > BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/no_ctps/greater_equal.hpp b/boost/mpl/aux_/preprocessed/no_ctps/greater_equal.hpp
deleted file mode 100644
index f848eef..0000000
--- a/boost/mpl/aux_/preprocessed/no_ctps/greater_equal.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/greater_equal.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct greater_equal_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< greater_equal_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct greater_equal_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct greater_equal_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct greater_equal_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct greater_equal_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct greater_equal
-
-    : greater_equal_impl<
-          typename greater_equal_tag<N1>::type
-        , typename greater_equal_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct greater_equal_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/no_ctps/inherit.hpp b/boost/mpl/aux_/preprocessed/no_ctps/inherit.hpp
deleted file mode 100644
index 233a1ec..0000000
--- a/boost/mpl/aux_/preprocessed/no_ctps/inherit.hpp
+++ /dev/null
@@ -1,166 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/inherit.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template< bool C1, bool C2 >
-struct inherit2_impl
-{
-    template< typename Derived, typename T1, typename T2 > struct result_
-        : T1, T2
-    {
-        typedef Derived type_;
-    };
-};
-
-template<>
-struct inherit2_impl< false,true >
-{
-    template< typename Derived, typename T1, typename T2 > struct result_
-        : T1
-    {
-        typedef T1 type_;
-    };
-};
-
-template<>
-struct inherit2_impl< true,false >
-{
-    template< typename Derived, typename T1, typename T2 > struct result_
-        : T2
-    {
-        typedef T2 type_;
-    };
-};
-
-template<>
-struct inherit2_impl< true,true >
-{
-    template< typename Derived, typename T1, typename T2 > struct result_
-    {
-        typedef T1 type_;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
-    >
-struct inherit2
-    : aux::inherit2_impl<
-          is_empty_base<T1>::value
-        , is_empty_base<T2>::value
-        >::template result_< inherit2< T1,T2 >,T1, T2 >
-{
-    typedef typename inherit2::type_ type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2))
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, inherit2)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na
-    >
-struct inherit3
-    : inherit2<
-          typename inherit2<
-              T1, T2
-            >::type
-        , T3
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          3
-        , inherit3
-        , ( T1, T2, T3)
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC(3, inherit3)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
-    >
-struct inherit4
-    : inherit2<
-          typename inherit3<
-              T1, T2, T3
-            >::type
-        , T4
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          4
-        , inherit4
-        , ( T1, T2, T3, T4)
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC(4, inherit4)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
-    , typename T5 = na
-    >
-struct inherit5
-    : inherit2<
-          typename inherit4<
-              T1, T2, T3, T4
-            >::type
-        , T5
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , inherit5
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC(5, inherit5)
-
-/// primary template
-
-template<
-      typename T1 = empty_base, typename T2 = empty_base
-    , typename T3 = empty_base, typename T4 = empty_base
-    , typename T5 = empty_base
-    >
-struct inherit
-    : inherit5< T1,T2,T3,T4,T5 >
-{
-};
-
-template<>
-struct inherit< na,na,na,na,na >
-{
-    template<
-
-          typename T1 = empty_base, typename T2 = empty_base
-        , typename T3 = empty_base, typename T4 = empty_base
-        , typename T5 = empty_base
-
-        >
-    struct apply
-        : inherit< T1,T2,T3,T4,T5 >
-    {
-    };
-};
-
-BOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit)
-BOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit)
-BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit)
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/no_ctps/iter_fold_if_impl.hpp b/boost/mpl/aux_/preprocessed/no_ctps/iter_fold_if_impl.hpp
deleted file mode 100644
index 6951795..0000000
--- a/boost/mpl/aux_/preprocessed/no_ctps/iter_fold_if_impl.hpp
+++ /dev/null
@@ -1,133 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright David Abrahams 2001-2002
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/iter_fold_if_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-template< typename Iterator, typename State >
-struct iter_fold_if_null_step
-{
-    typedef State state;
-    typedef Iterator iterator;
-};
-
-template< bool >
-struct iter_fold_if_step_impl
-{
-    template<
-          typename Iterator
-        , typename State
-        , typename StateOp
-        , typename IteratorOp
-        >
-    struct result_
-    {
-        typedef typename apply2< StateOp,State,Iterator >::type state;
-        typedef typename IteratorOp::type iterator;
-    };
-};
-
-template<>
-struct iter_fold_if_step_impl<false>
-{
-    template<
-          typename Iterator
-        , typename State
-        , typename StateOp
-        , typename IteratorOp
-        >
-    struct result_
-    {
-        typedef State state;
-        typedef Iterator iterator;
-    };
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename ForwardOp
-    , typename Predicate
-    >
-struct iter_fold_if_forward_step
-{
-    typedef typename apply2< Predicate,State,Iterator >::type not_last;
-    typedef typename iter_fold_if_step_impl<
-          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
-        >::template result_< Iterator,State,ForwardOp, mpl::next<Iterator> > impl_;
-
-    typedef typename impl_::state state;
-    typedef typename impl_::iterator iterator;
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename BackwardOp
-    , typename Predicate
-    >
-struct iter_fold_if_backward_step
-{
-    typedef typename apply2< Predicate,State,Iterator >::type not_last;
-    typedef typename iter_fold_if_step_impl<
-          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
-        >::template result_< Iterator,State,BackwardOp, identity<Iterator> > impl_;
-
-    typedef typename impl_::state state;
-    typedef typename impl_::iterator iterator;
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename ForwardOp
-    , typename ForwardPredicate
-    , typename BackwardOp
-    , typename BackwardPredicate
-    >
-struct iter_fold_if_impl
-{
- private:
-    typedef iter_fold_if_null_step< Iterator,State > forward_step0;
-    typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1;
-    typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2;
-    typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3;
-    typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4;
-    
-
-    typedef typename if_<
-          typename forward_step4::not_last
-        , iter_fold_if_impl<
-              typename forward_step4::iterator
-            , typename forward_step4::state
-            , ForwardOp
-            , ForwardPredicate
-            , BackwardOp
-            , BackwardPredicate
-            >
-        , iter_fold_if_null_step<
-              typename forward_step4::iterator
-            , typename forward_step4::state
-            >
-        >::type backward_step4;
-
-    typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3;
-    typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2;
-    typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1;
-    typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0;
-    
-
- public:
-    typedef typename backward_step0::state state;
-    typedef typename backward_step4::iterator iterator;
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/no_ctps/iter_fold_impl.hpp b/boost/mpl/aux_/preprocessed/no_ctps/iter_fold_impl.hpp
deleted file mode 100644
index 50ea754..0000000
--- a/boost/mpl/aux_/preprocessed/no_ctps/iter_fold_impl.hpp
+++ /dev/null
@@ -1,245 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/iter_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl;
-
-template< int N >
-struct iter_fold_chunk;
-
-template<> struct iter_fold_chunk<0>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef state0 state;
-        typedef iter0 iterator;
-    };
-};
-
-template<> struct iter_fold_chunk<1>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        
-
-        typedef state1 state;
-        typedef iter1 iterator;
-    };
-};
-
-template<> struct iter_fold_chunk<2>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        
-
-        typedef state2 state;
-        typedef iter2 iterator;
-    };
-};
-
-template<> struct iter_fold_chunk<3>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp,state2,iter2 >::type state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        
-
-        typedef state3 state;
-        typedef iter3 iterator;
-    };
-};
-
-template<> struct iter_fold_chunk<4>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State state0;
-        typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp,state2,iter2 >::type state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp,state3,iter3 >::type state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef state4 state;
-        typedef iter4 iterator;
-    };
-};
-
-template< int N >
-struct iter_fold_chunk
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef iter_fold_impl<
-              4
-            , First
-            , Last
-            , State
-            , ForwardOp
-            > chunk_;
-
-        typedef iter_fold_impl<
-              ( (N - 4) < 0 ? 0 : N - 4 )
-            , typename chunk_::iterator
-            , Last
-            , typename chunk_::state
-            , ForwardOp
-            > res_;
-
-        typedef typename res_::state state;
-        typedef typename res_::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_step;
-
-template<
-      typename Last
-    , typename State
-    >
-struct iter_fold_null_step
-{
-    typedef Last iterator;
-    typedef State state;
-};
-
-template<>
-struct iter_fold_chunk< -1 >
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef typename if_<
-              typename is_same< First,Last >::type
-            , iter_fold_null_step< Last,State >
-            , iter_fold_step< First,Last,State,ForwardOp >
-            >::type res_;
-
-        typedef typename res_::state state;
-        typedef typename res_::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_step
-{
-    typedef iter_fold_chunk< -1 >::template result_<
-          typename mpl::next<First>::type
-        , Last
-        , typename apply2< ForwardOp,State,First >::type
-        , ForwardOp
-        > chunk_;
-
-    typedef typename chunk_::state state;
-    typedef typename chunk_::iterator iterator;
-};
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl
-    : iter_fold_chunk<N>
-        ::template result_< First,Last,State,ForwardOp >
-{
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/no_ctps/lambda_no_ctps.hpp b/boost/mpl/aux_/preprocessed/no_ctps/lambda_no_ctps.hpp
deleted file mode 100644
index 890a198..0000000
--- a/boost/mpl/aux_/preprocessed/no_ctps/lambda_no_ctps.hpp
+++ /dev/null
@@ -1,229 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/lambda_no_ctps.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template<
-      bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false
-    , bool C5 = false
-    >
-struct lambda_or
-    : true_
-{
-};
-
-template<>
-struct lambda_or< false,false,false,false,false >
-    : false_
-{
-};
-
-template< typename Arity > struct lambda_impl
-{
-    template< typename T, typename Tag, typename Protect > struct result_
-    {
-        typedef T type;
-        typedef is_placeholder<T> is_le;
-    };
-};
-
-template<> struct lambda_impl< int_<1> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef typename l1::is_le is_le1;
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value
-            > is_le;
-
-        typedef bind1<
-              typename F::rebind
-            , typename l1::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<2> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        
-
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value
-            > is_le;
-
-        typedef bind2<
-              typename F::rebind
-            , typename l1::type, typename l2::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<3> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        
-
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value
-            > is_le;
-
-        typedef bind3<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<4> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        typedef lambda< typename F::arg4, Tag, false_ > l4;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        typedef typename l4::is_le is_le4;
-        
-
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value
-            > is_le;
-
-        typedef bind4<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            , typename l4::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<5> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        typedef lambda< typename F::arg4, Tag, false_ > l4;
-        typedef lambda< typename F::arg5, Tag, false_ > l5;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        typedef typename l4::is_le is_le4;
-        typedef typename l5::is_le is_le5;
-        
-
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value
-            > is_le;
-
-        typedef bind5<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            , typename l4::type, typename l5::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename T
-    , typename Tag
-    , typename Protect
-    >
-struct lambda
-{
-    /// Metafunction forwarding confuses MSVC 6.x
-    typedef typename aux::template_arity<T>::type arity_;
-    typedef typename aux::lambda_impl<arity_>
-        ::template result_< T,Tag,Protect > l_;
-
-    typedef typename l_::type type;
-    typedef typename l_::is_le is_le;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect))
-};
-
-BOOST_MPL_AUX_NA_SPEC2(1, 3, lambda)
-
-template<
-      typename T
-    >
-struct is_lambda_expression
-    : lambda<T>::is_le
-{
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/no_ctps/less.hpp b/boost/mpl/aux_/preprocessed/no_ctps/less.hpp
deleted file mode 100644
index 7fb35e1..0000000
--- a/boost/mpl/aux_/preprocessed/no_ctps/less.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/less.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct less_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< less_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< less_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct less_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct less_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct less_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct less_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct less
-
-    : less_impl<
-          typename less_tag<N1>::type
-        , typename less_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, less)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct less_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > BOOST_MPL_AUX_VALUE_WKND(N1)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/no_ctps/less_equal.hpp b/boost/mpl/aux_/preprocessed/no_ctps/less_equal.hpp
deleted file mode 100644
index 206ecdc..0000000
--- a/boost/mpl/aux_/preprocessed/no_ctps/less_equal.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/less_equal.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct less_equal_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< less_equal_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< less_equal_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct less_equal_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct less_equal_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct less_equal_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct less_equal_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct less_equal
-
-    : less_equal_impl<
-          typename less_equal_tag<N1>::type
-        , typename less_equal_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct less_equal_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/no_ctps/list.hpp b/boost/mpl/aux_/preprocessed/no_ctps/list.hpp
deleted file mode 100644
index e5ea456..0000000
--- a/boost/mpl/aux_/preprocessed/no_ctps/list.hpp
+++ /dev/null
@@ -1,556 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/list.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct list_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct list_chooser<0>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef list0<
-             
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<1>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list1<
-              T0
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<2>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list2<
-              T0, T1
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<3>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list3<
-              T0, T1, T2
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<4>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list4<
-              T0, T1, T2, T3
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<5>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list5<
-              T0, T1, T2, T3, T4
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<6>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list6<
-              T0, T1, T2, T3, T4, T5
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<7>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list7<
-              T0, T1, T2, T3, T4, T5, T6
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<8>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list8<
-              T0, T1, T2, T3, T4, T5, T6, T7
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<9>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list9<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<10>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list10<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<11>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list11<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<12>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list12<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<13>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list13<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<14>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list14<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<15>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list15<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<16>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list16<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<17>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list17<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<18>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list18<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<19>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list19<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_chooser<20>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename list20<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_list_arg
-{
-    BOOST_STATIC_CONSTANT(bool, value  = true);
-};
-
-template<>
-struct is_list_arg<na>
-{
-    BOOST_STATIC_CONSTANT(bool, value  = false);
-};
-
-template<
-      typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename T6, typename T7, typename T8, typename T9, typename T10
-    , typename T11, typename T12, typename T13, typename T14, typename T15
-    , typename T16, typename T17, typename T18, typename T19, typename T20
-    >
-struct list_count_args
-{
-    BOOST_STATIC_CONSTANT(int, value =
-          is_list_arg<T1>::value + is_list_arg<T2>::value 
-        + is_list_arg<T3>::value + is_list_arg<T4>::value 
-        + is_list_arg<T5>::value + is_list_arg<T6>::value 
-        + is_list_arg<T7>::value + is_list_arg<T8>::value 
-        + is_list_arg<T9>::value + is_list_arg<T10>::value 
-        + is_list_arg<T11>::value + is_list_arg<T12>::value 
-        + is_list_arg<T13>::value + is_list_arg<T14>::value 
-        + is_list_arg<T15>::value + is_list_arg<T16>::value 
-        + is_list_arg<T17>::value + is_list_arg<T18>::value 
-        + is_list_arg<T19>::value + is_list_arg<T20>::value
-        );
-
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct list_impl
-{
-    typedef aux::list_count_args<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        > arg_num_;
-
-    typedef typename aux::list_chooser< arg_num_::value >
-        ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct list
-    : aux::list_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type
-{
-    typedef typename aux::list_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/no_ctps/list_c.hpp b/boost/mpl/aux_/preprocessed/no_ctps/list_c.hpp
deleted file mode 100644
index ab25482..0000000
--- a/boost/mpl/aux_/preprocessed/no_ctps/list_c.hpp
+++ /dev/null
@@ -1,534 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/list_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct list_c_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct list_c_chooser<0>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list0_c<
-              T
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<1>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list1_c<
-              T, C0
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<2>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list2_c<
-              T, C0, C1
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<3>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list3_c<
-              T, C0, C1, C2
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<4>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list4_c<
-              T, C0, C1, C2, C3
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<5>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list5_c<
-              T, C0, C1, C2, C3, C4
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<6>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list6_c<
-              T, C0, C1, C2, C3, C4, C5
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<7>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list7_c<
-              T, C0, C1, C2, C3, C4, C5, C6
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<8>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list8_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<9>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list9_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<10>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list10_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<11>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list11_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<12>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list12_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<13>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list13_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<14>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list14_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<15>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list15_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<16>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list16_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<17>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list17_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<18>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list18_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<19>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list19_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct list_c_chooser<20>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename list20_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< long C >
-struct is_list_c_arg
-{
-    BOOST_STATIC_CONSTANT(bool, value  = true);
-};
-
-template<>
-struct is_list_c_arg<LONG_MAX>
-{
-    BOOST_STATIC_CONSTANT(bool, value  = false);
-};
-
-template<
-      long C1, long C2, long C3, long C4, long C5, long C6, long C7, long C8
-    , long C9, long C10, long C11, long C12, long C13, long C14, long C15
-    , long C16, long C17, long C18, long C19, long C20
-    >
-struct list_c_count_args
-{
-    BOOST_STATIC_CONSTANT(int, value =
-          is_list_c_arg<C1>::value + is_list_c_arg<C2>::value 
-        + is_list_c_arg<C3>::value + is_list_c_arg<C4>::value 
-        + is_list_c_arg<C5>::value + is_list_c_arg<C6>::value 
-        + is_list_c_arg<C7>::value + is_list_c_arg<C8>::value 
-        + is_list_c_arg<C9>::value + is_list_c_arg<C10>::value 
-        + is_list_c_arg<C11>::value + is_list_c_arg<C12>::value 
-        + is_list_c_arg<C13>::value + is_list_c_arg<C14>::value 
-        + is_list_c_arg<C15>::value + is_list_c_arg<C16>::value 
-        + is_list_c_arg<C17>::value + is_list_c_arg<C18>::value 
-        + is_list_c_arg<C19>::value + is_list_c_arg<C20>::value
-        );
-
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct list_c_impl
-{
-    typedef aux::list_c_count_args<
-          C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        > arg_num_;
-
-    typedef typename aux::list_c_chooser< arg_num_::value >
-        ::template result_< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct list_c
-    : aux::list_c_impl<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        >::type
-{
-    typedef typename aux::list_c_impl<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/no_ctps/map.hpp b/boost/mpl/aux_/preprocessed/no_ctps/map.hpp
deleted file mode 100644
index 970e0b7..0000000
--- a/boost/mpl/aux_/preprocessed/no_ctps/map.hpp
+++ /dev/null
@@ -1,556 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/map.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct map_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct map_chooser<0>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef map0<
-             
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<1>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map1<
-              T0
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<2>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map2<
-              T0, T1
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<3>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map3<
-              T0, T1, T2
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<4>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map4<
-              T0, T1, T2, T3
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<5>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map5<
-              T0, T1, T2, T3, T4
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<6>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map6<
-              T0, T1, T2, T3, T4, T5
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<7>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map7<
-              T0, T1, T2, T3, T4, T5, T6
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<8>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map8<
-              T0, T1, T2, T3, T4, T5, T6, T7
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<9>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map9<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<10>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map10<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<11>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map11<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<12>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map12<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<13>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map13<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<14>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map14<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<15>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map15<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<16>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map16<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<17>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map17<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<18>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map18<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<19>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map19<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct map_chooser<20>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename map20<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_map_arg
-{
-    BOOST_STATIC_CONSTANT(bool, value  = true);
-};
-
-template<>
-struct is_map_arg<na>
-{
-    BOOST_STATIC_CONSTANT(bool, value  = false);
-};
-
-template<
-      typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename T6, typename T7, typename T8, typename T9, typename T10
-    , typename T11, typename T12, typename T13, typename T14, typename T15
-    , typename T16, typename T17, typename T18, typename T19, typename T20
-    >
-struct map_count_args
-{
-    BOOST_STATIC_CONSTANT(int, value =
-          is_map_arg<T1>::value + is_map_arg<T2>::value 
-        + is_map_arg<T3>::value + is_map_arg<T4>::value 
-        + is_map_arg<T5>::value + is_map_arg<T6>::value 
-        + is_map_arg<T7>::value + is_map_arg<T8>::value 
-        + is_map_arg<T9>::value + is_map_arg<T10>::value 
-        + is_map_arg<T11>::value + is_map_arg<T12>::value 
-        + is_map_arg<T13>::value + is_map_arg<T14>::value 
-        + is_map_arg<T15>::value + is_map_arg<T16>::value 
-        + is_map_arg<T17>::value + is_map_arg<T18>::value 
-        + is_map_arg<T19>::value + is_map_arg<T20>::value
-        );
-
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct map_impl
-{
-    typedef aux::map_count_args<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        > arg_num_;
-
-    typedef typename aux::map_chooser< arg_num_::value >
-        ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct map
-    : aux::map_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type
-{
-    typedef typename aux::map_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/no_ctps/minus.hpp b/boost/mpl/aux_/preprocessed/no_ctps/minus.hpp
deleted file mode 100644
index 7b49450..0000000
--- a/boost/mpl/aux_/preprocessed/no_ctps/minus.hpp
+++ /dev/null
@@ -1,133 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/minus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct minus_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< minus_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< minus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct minus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct minus_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct minus_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct minus_tag
-{
-    typedef typename T::tag type;
-};
-
-/// forward declaration
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct minus2;
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct minus
-
-    : if_<
-
-          is_na<N3>
-        , minus2< N1,N2 >
-        , minus<
-              minus2< N1,N2 >
-            , N3, N4, N5
-            >
-        >::type
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , minus
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1
-    , typename N2
-    >
-struct minus2
-    : minus_impl<
-          typename minus_tag<N1>::type
-        , typename minus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, minus2, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, minus)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct minus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  - BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/no_ctps/modulus.hpp b/boost/mpl/aux_/preprocessed/no_ctps/modulus.hpp
deleted file mode 100644
index 8badbab..0000000
--- a/boost/mpl/aux_/preprocessed/no_ctps/modulus.hpp
+++ /dev/null
@@ -1,101 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/modulus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct modulus_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< modulus_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< modulus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct modulus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct modulus_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct modulus_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct modulus_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct modulus
-
-    : modulus_impl<
-          typename modulus_tag<N1>::type
-        , typename modulus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, modulus)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct modulus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  % BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/no_ctps/not_equal_to.hpp b/boost/mpl/aux_/preprocessed/no_ctps/not_equal_to.hpp
deleted file mode 100644
index d87d8cd..0000000
--- a/boost/mpl/aux_/preprocessed/no_ctps/not_equal_to.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/not_equal_to.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct not_equal_to_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< not_equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct not_equal_to_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct not_equal_to_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct not_equal_to_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct not_equal_to_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct not_equal_to
-
-    : not_equal_to_impl<
-          typename not_equal_to_tag<N1>::type
-        , typename not_equal_to_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct not_equal_to_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value != BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/no_ctps/or.hpp b/boost/mpl/aux_/preprocessed/no_ctps/or.hpp
deleted file mode 100644
index 3f7394e..0000000
--- a/boost/mpl/aux_/preprocessed/no_ctps/or.hpp
+++ /dev/null
@@ -1,73 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/or.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< bool C_ > struct or_impl
-{
-    template<
-          typename T1, typename T2, typename T3, typename T4
-        >
-    struct result_
-        : true_
-    {
-    };
-};
-
-template<> struct or_impl<false>
-{
-    template<
-          typename T1, typename T2, typename T3, typename T4
-        >
-    struct result_
-        : or_impl<
-              BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-            >::template result_< T2,T3,T4,false_ >
-    {
-    };
-};
-
-template<>
-struct or_impl<false>
-    ::result_< false_,false_,false_,false_ >
-        : false_
-{
-};
-
-} // namespace aux
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
-    , typename T3 = false_, typename T4 = false_, typename T5 = false_
-    >
-struct or_
-
-    : aux::or_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        >::template result_< T2,T3,T4,T5 >
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , or_
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC2(
-      2
-    , 5
-    , or_
-    )
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/no_ctps/placeholders.hpp b/boost/mpl/aux_/preprocessed/no_ctps/placeholders.hpp
deleted file mode 100644
index ff97364..0000000
--- a/boost/mpl/aux_/preprocessed/no_ctps/placeholders.hpp
+++ /dev/null
@@ -1,105 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright Peter Dimov 2001-2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/placeholders.hpp" header
-// -- DO NOT modify by hand!
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg< -1 > _;
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;
-}
-
-}}
-
-/// agurt, 17/mar/02: one more placeholder for the last 'apply#' 
-/// specialization
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<1> _1;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<2> _2;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<3> _3;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<4> _4;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<5> _5;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<6> _6;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6;
-}
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/no_ctps/plus.hpp b/boost/mpl/aux_/preprocessed/no_ctps/plus.hpp
deleted file mode 100644
index a55b24c..0000000
--- a/boost/mpl/aux_/preprocessed/no_ctps/plus.hpp
+++ /dev/null
@@ -1,133 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/plus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct plus_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< plus_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< plus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct plus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct plus_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct plus_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct plus_tag
-{
-    typedef typename T::tag type;
-};
-
-/// forward declaration
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct plus2;
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct plus
-
-    : if_<
-
-          is_na<N3>
-        , plus2< N1,N2 >
-        , plus<
-              plus2< N1,N2 >
-            , N3, N4, N5
-            >
-        >::type
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , plus
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1
-    , typename N2
-    >
-struct plus2
-    : plus_impl<
-          typename plus_tag<N1>::type
-        , typename plus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, plus2, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, plus)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct plus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  + BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/no_ctps/quote.hpp b/boost/mpl/aux_/preprocessed/no_ctps/quote.hpp
deleted file mode 100644
index b85880f..0000000
--- a/boost/mpl/aux_/preprocessed/no_ctps/quote.hpp
+++ /dev/null
@@ -1,116 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/quote.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-template< bool > struct quote_impl
-{
-    template< typename T > struct result_
-        : T
-    {
-    };
-};
-
-template<> struct quote_impl<false>
-{
-    template< typename T > struct result_
-    {
-        typedef T type;
-    };
-};
-
-template<
-      template< typename P1 > class F
-    , typename Tag = void_
-    >
-struct quote1
-{
-    template< typename U1 > struct apply
-
-        : quote_impl< aux::has_type< F<U1> >::value >
-            ::template result_< F<U1> >
-
-    {
-    };
-};
-
-template<
-      template< typename P1, typename P2 > class F
-    , typename Tag = void_
-    >
-struct quote2
-{
-    template< typename U1, typename U2 > struct apply
-
-        : quote_impl< aux::has_type< F< U1,U2 > >::value >
-            ::template result_< F< U1,U2 > >
-
-    {
-    };
-};
-
-template<
-      template< typename P1, typename P2, typename P3 > class F
-    , typename Tag = void_
-    >
-struct quote3
-{
-    template< typename U1, typename U2, typename U3 > struct apply
-
-        : quote_impl< aux::has_type< F< U1,U2,U3 > >::value >
-            ::template result_< F< U1,U2,U3 > >
-
-    {
-    };
-};
-
-template<
-      template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename Tag = void_
-    >
-struct quote4
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4
-        >
-    struct apply
-
-        : quote_impl< aux::has_type< F< U1,U2,U3,U4 > >::value >
-            ::template result_< F< U1,U2,U3,U4 > >
-
-    {
-    };
-};
-
-template<
-      template<
-          typename P1, typename P2, typename P3, typename P4
-        , typename P5
-        >
-      class F
-    , typename Tag = void_
-    >
-struct quote5
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4
-        , typename U5
-        >
-    struct apply
-
-        : quote_impl< aux::has_type< F< U1,U2,U3,U4,U5 > >::value >
-            ::template result_< F< U1,U2,U3,U4,U5 > >
-
-    {
-    };
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/no_ctps/reverse_fold_impl.hpp b/boost/mpl/aux_/preprocessed/no_ctps/reverse_fold_impl.hpp
deleted file mode 100644
index 7a07414..0000000
--- a/boost/mpl/aux_/preprocessed/no_ctps/reverse_fold_impl.hpp
+++ /dev/null
@@ -1,295 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/reverse_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl;
-
-template< long N >
-struct reverse_fold_chunk;
-
-template<> struct reverse_fold_chunk<0>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef fwd_state0 bkwd_state0;
-        typedef bkwd_state0 state;
-        typedef iter0 iterator;
-    };
-};
-
-template<> struct reverse_fold_chunk<1>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        
-
-        typedef fwd_state1 bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        typedef bkwd_state0 state;
-        typedef iter1 iterator;
-    };
-};
-
-template<> struct reverse_fold_chunk<2>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        
-
-        typedef fwd_state2 bkwd_state2;
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter2 iterator;
-    };
-};
-
-template<> struct reverse_fold_chunk<3>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        
-
-        typedef fwd_state3 bkwd_state3;
-        typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter3 iterator;
-    };
-};
-
-template<> struct reverse_fold_chunk<4>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef fwd_state4 bkwd_state4;
-        typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3;
-        typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter4 iterator;
-    };
-};
-
-template< long N >
-struct reverse_fold_chunk
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef reverse_fold_impl<
-              ( (N - 4) < 0 ? 0 : N - 4 )
-            , iter4
-            , Last
-            , fwd_state4
-            , BackwardOp
-            , ForwardOp
-            > nested_chunk;
-
-        typedef typename nested_chunk::state bkwd_state4;
-        typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3;
-        typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-        typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-        typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef typename nested_chunk::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_step;
-
-template<
-      typename Last
-    , typename State
-    >
-struct reverse_fold_null_step
-{
-    typedef Last iterator;
-    typedef State state;
-};
-
-template<>
-struct reverse_fold_chunk< -1 >
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef typename if_<
-              typename is_same< First,Last >::type
-            , reverse_fold_null_step< Last,State >
-            , reverse_fold_step< First,Last,State,BackwardOp,ForwardOp >
-            >::type res_;
-
-        typedef typename res_::state state;
-        typedef typename res_::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_step
-{
-    typedef reverse_fold_chunk< -1 >::template result_<
-          typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State, typename deref<First>::type>::type
-        , BackwardOp
-        , ForwardOp
-        > nested_step;
-
-    typedef typename apply2<
-          BackwardOp
-        , typename nested_step::state
-        , typename deref<First>::type
-        >::type state;
-
-    typedef typename nested_step::iterator iterator;
-};
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl
-    : reverse_fold_chunk<N>
-        ::template result_< First,Last,State,BackwardOp,ForwardOp >
-{
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/no_ctps/reverse_iter_fold_impl.hpp b/boost/mpl/aux_/preprocessed/no_ctps/reverse_iter_fold_impl.hpp
deleted file mode 100644
index 39a4057..0000000
--- a/boost/mpl/aux_/preprocessed/no_ctps/reverse_iter_fold_impl.hpp
+++ /dev/null
@@ -1,295 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/reverse_iter_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl;
-
-template< long N >
-struct reverse_iter_fold_chunk;
-
-template<> struct reverse_iter_fold_chunk<0>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef fwd_state0 bkwd_state0;
-        typedef bkwd_state0 state;
-        typedef iter0 iterator;
-    };
-};
-
-template<> struct reverse_iter_fold_chunk<1>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        
-
-        typedef fwd_state1 bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        typedef bkwd_state0 state;
-        typedef iter1 iterator;
-    };
-};
-
-template<> struct reverse_iter_fold_chunk<2>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        
-
-        typedef fwd_state2 bkwd_state2;
-        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter2 iterator;
-    };
-};
-
-template<> struct reverse_iter_fold_chunk<3>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        
-
-        typedef fwd_state3 bkwd_state3;
-        typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter3 iterator;
-    };
-};
-
-template<> struct reverse_iter_fold_chunk<4>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef fwd_state4 bkwd_state4;
-        typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3;
-        typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef iter4 iterator;
-    };
-};
-
-template< long N >
-struct reverse_iter_fold_chunk
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-        typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-        typedef typename mpl::next<iter0>::type iter1;
-        typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-        typedef typename mpl::next<iter1>::type iter2;
-        typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-        typedef typename mpl::next<iter2>::type iter3;
-        typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4;
-        typedef typename mpl::next<iter3>::type iter4;
-        
-
-        typedef reverse_iter_fold_impl<
-              ( (N - 4) < 0 ? 0 : N - 4 )
-            , iter4
-            , Last
-            , fwd_state4
-            , BackwardOp
-            , ForwardOp
-            > nested_chunk;
-
-        typedef typename nested_chunk::state bkwd_state4;
-        typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3;
-        typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-        typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-        typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-        
-
-        typedef bkwd_state0 state;
-        typedef typename nested_chunk::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_step;
-
-template<
-      typename Last
-    , typename State
-    >
-struct reverse_iter_fold_null_step
-{
-    typedef Last iterator;
-    typedef State state;
-};
-
-template<>
-struct reverse_iter_fold_chunk< -1 >
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef typename if_<
-              typename is_same< First,Last >::type
-            , reverse_iter_fold_null_step< Last,State >
-            , reverse_iter_fold_step< First,Last,State,BackwardOp,ForwardOp >
-            >::type res_;
-
-        typedef typename res_::state state;
-        typedef typename res_::iterator iterator;
-    };
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_step
-{
-    typedef reverse_iter_fold_chunk< -1 >::template result_<
-          typename mpl::next<First>::type
-        , Last
-        , typename apply2< ForwardOp,State,First >::type
-        , BackwardOp
-        , ForwardOp
-        > nested_step;
-
-    typedef typename apply2<
-          BackwardOp
-        , typename nested_step::state
-        , First
-        >::type state;
-
-    typedef typename nested_step::iterator iterator;
-};
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl
-    : reverse_iter_fold_chunk<N>
-        ::template result_< First,Last,State,BackwardOp,ForwardOp >
-{
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/no_ctps/set.hpp b/boost/mpl/aux_/preprocessed/no_ctps/set.hpp
deleted file mode 100644
index 95aaa5c..0000000
--- a/boost/mpl/aux_/preprocessed/no_ctps/set.hpp
+++ /dev/null
@@ -1,556 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/set.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct set_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct set_chooser<0>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef set0<
-             
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<1>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set1<
-              T0
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<2>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set2<
-              T0, T1
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<3>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set3<
-              T0, T1, T2
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<4>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set4<
-              T0, T1, T2, T3
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<5>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set5<
-              T0, T1, T2, T3, T4
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<6>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set6<
-              T0, T1, T2, T3, T4, T5
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<7>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set7<
-              T0, T1, T2, T3, T4, T5, T6
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<8>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set8<
-              T0, T1, T2, T3, T4, T5, T6, T7
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<9>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set9<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<10>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set10<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<11>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set11<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<12>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set12<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<13>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set13<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<14>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set14<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<15>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set15<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<16>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set16<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<17>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set17<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<18>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set18<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<19>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set19<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_chooser<20>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename set20<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_set_arg
-{
-    BOOST_STATIC_CONSTANT(bool, value  = true);
-};
-
-template<>
-struct is_set_arg<na>
-{
-    BOOST_STATIC_CONSTANT(bool, value  = false);
-};
-
-template<
-      typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename T6, typename T7, typename T8, typename T9, typename T10
-    , typename T11, typename T12, typename T13, typename T14, typename T15
-    , typename T16, typename T17, typename T18, typename T19, typename T20
-    >
-struct set_count_args
-{
-    BOOST_STATIC_CONSTANT(int, value =
-          is_set_arg<T1>::value + is_set_arg<T2>::value 
-        + is_set_arg<T3>::value + is_set_arg<T4>::value 
-        + is_set_arg<T5>::value + is_set_arg<T6>::value 
-        + is_set_arg<T7>::value + is_set_arg<T8>::value 
-        + is_set_arg<T9>::value + is_set_arg<T10>::value 
-        + is_set_arg<T11>::value + is_set_arg<T12>::value 
-        + is_set_arg<T13>::value + is_set_arg<T14>::value 
-        + is_set_arg<T15>::value + is_set_arg<T16>::value 
-        + is_set_arg<T17>::value + is_set_arg<T18>::value 
-        + is_set_arg<T19>::value + is_set_arg<T20>::value
-        );
-
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct set_impl
-{
-    typedef aux::set_count_args<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        > arg_num_;
-
-    typedef typename aux::set_chooser< arg_num_::value >
-        ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct set
-    : aux::set_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type
-{
-    typedef typename aux::set_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/no_ctps/set_c.hpp b/boost/mpl/aux_/preprocessed/no_ctps/set_c.hpp
deleted file mode 100644
index 1ff34f9..0000000
--- a/boost/mpl/aux_/preprocessed/no_ctps/set_c.hpp
+++ /dev/null
@@ -1,534 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/set_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct set_c_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct set_c_chooser<0>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set0_c<
-              T
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<1>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set1_c<
-              T, C0
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<2>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set2_c<
-              T, C0, C1
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<3>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set3_c<
-              T, C0, C1, C2
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<4>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set4_c<
-              T, C0, C1, C2, C3
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<5>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set5_c<
-              T, C0, C1, C2, C3, C4
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<6>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set6_c<
-              T, C0, C1, C2, C3, C4, C5
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<7>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set7_c<
-              T, C0, C1, C2, C3, C4, C5, C6
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<8>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set8_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<9>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set9_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<10>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set10_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<11>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set11_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<12>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set12_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<13>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set13_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<14>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set14_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<15>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set15_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<16>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set16_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<17>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set17_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<18>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set18_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<19>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set19_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct set_c_chooser<20>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename set20_c<
-              T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< long C >
-struct is_set_c_arg
-{
-    BOOST_STATIC_CONSTANT(bool, value  = true);
-};
-
-template<>
-struct is_set_c_arg<LONG_MAX>
-{
-    BOOST_STATIC_CONSTANT(bool, value  = false);
-};
-
-template<
-      long C1, long C2, long C3, long C4, long C5, long C6, long C7, long C8
-    , long C9, long C10, long C11, long C12, long C13, long C14, long C15
-    , long C16, long C17, long C18, long C19, long C20
-    >
-struct set_c_count_args
-{
-    BOOST_STATIC_CONSTANT(int, value =
-          is_set_c_arg<C1>::value + is_set_c_arg<C2>::value 
-        + is_set_c_arg<C3>::value + is_set_c_arg<C4>::value 
-        + is_set_c_arg<C5>::value + is_set_c_arg<C6>::value 
-        + is_set_c_arg<C7>::value + is_set_c_arg<C8>::value 
-        + is_set_c_arg<C9>::value + is_set_c_arg<C10>::value 
-        + is_set_c_arg<C11>::value + is_set_c_arg<C12>::value 
-        + is_set_c_arg<C13>::value + is_set_c_arg<C14>::value 
-        + is_set_c_arg<C15>::value + is_set_c_arg<C16>::value 
-        + is_set_c_arg<C17>::value + is_set_c_arg<C18>::value 
-        + is_set_c_arg<C19>::value + is_set_c_arg<C20>::value
-        );
-
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct set_c_impl
-{
-    typedef aux::set_c_count_args<
-          C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        > arg_num_;
-
-    typedef typename aux::set_c_chooser< arg_num_::value >
-        ::template result_< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct set_c
-    : aux::set_c_impl<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        >::type
-{
-    typedef typename aux::set_c_impl<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/no_ctps/shift_left.hpp b/boost/mpl/aux_/preprocessed/no_ctps/shift_left.hpp
deleted file mode 100644
index d14a5e4..0000000
--- a/boost/mpl/aux_/preprocessed/no_ctps/shift_left.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/shift_left.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct shift_left_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< shift_left_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< shift_left_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct shift_left_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct shift_left_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct shift_left_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct shift_left_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct shift_left
-
-    : shift_left_impl<
-          typename shift_left_tag<N1>::type
-        , typename shift_left_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct shift_left_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N, typename S > struct apply
-
-        : integral_c<
-              typename N::value_type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N)::value
-                  << BOOST_MPL_AUX_VALUE_WKND(S)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/no_ctps/shift_right.hpp b/boost/mpl/aux_/preprocessed/no_ctps/shift_right.hpp
deleted file mode 100644
index 08c4915..0000000
--- a/boost/mpl/aux_/preprocessed/no_ctps/shift_right.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/shift_right.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct shift_right_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< shift_right_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< shift_right_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct shift_right_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct shift_right_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct shift_right_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct shift_right_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct shift_right
-
-    : shift_right_impl<
-          typename shift_right_tag<N1>::type
-        , typename shift_right_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct shift_right_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N, typename S > struct apply
-
-        : integral_c<
-              typename N::value_type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N)::value
-                  >> BOOST_MPL_AUX_VALUE_WKND(S)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/no_ctps/template_arity.hpp b/boost/mpl/aux_/preprocessed/no_ctps/template_arity.hpp
deleted file mode 100644
index 1164f0f..0000000
--- a/boost/mpl/aux_/preprocessed/no_ctps/template_arity.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/template_arity.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-template< bool >
-struct template_arity_impl
-{
-    template< typename F > struct result_
-        : mpl::int_< -1 >
-    {
-    };
-};
-
-template<>
-struct template_arity_impl<true>
-{
-    template< typename F > struct result_
-        : F::arity
-    {
-    };
-};
-
-template< typename F >
-struct template_arity
-    : template_arity_impl< ::boost::mpl::aux::has_rebind<F>::value >
-        ::template result_<F>
-{
-};
-
-}}}
-
diff --git a/boost/mpl/aux_/preprocessed/no_ctps/times.hpp b/boost/mpl/aux_/preprocessed/no_ctps/times.hpp
deleted file mode 100644
index fd773cc..0000000
--- a/boost/mpl/aux_/preprocessed/no_ctps/times.hpp
+++ /dev/null
@@ -1,133 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/times.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct times_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< times_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< times_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct times_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct times_impl< na,integral_c_tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template<> struct times_impl< integral_c_tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct times_tag
-{
-    typedef typename T::tag type;
-};
-
-/// forward declaration
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct times2;
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct times
-
-    : if_<
-
-          is_na<N3>
-        , times2< N1,N2 >
-        , times<
-              times2< N1,N2 >
-            , N3, N4, N5
-            >
-        >::type
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , times
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1
-    , typename N2
-    >
-struct times2
-    : times_impl<
-          typename times_tag<N1>::type
-        , typename times_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, times2, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, times)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct times_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  * BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/no_ctps/unpack_args.hpp b/boost/mpl/aux_/preprocessed/no_ctps/unpack_args.hpp
deleted file mode 100644
index 26533dd..0000000
--- a/boost/mpl/aux_/preprocessed/no_ctps/unpack_args.hpp
+++ /dev/null
@@ -1,109 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/unpack_args.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template< BOOST_MPL_AUX_NTTP_DECL(int, size) > struct unpack_args_impl
-{
-    template< typename F, typename Args > struct apply;
-};
-
-template<> struct unpack_args_impl<0>
-{
-    template< typename F, typename Args > struct apply
-        : apply0<
-              F
-            >
-    {
-    };
-};
-
-template<> struct unpack_args_impl<1>
-{
-    template< typename F, typename Args > struct apply
-        : apply1<
-              F
-            , typename at_c< Args,0 >::type
-            >
-    {
-    };
-};
-
-template<> struct unpack_args_impl<2>
-{
-    template< typename F, typename Args > struct apply
-        : apply2<
-              F
-            , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-            >
-    {
-    };
-};
-
-template<> struct unpack_args_impl<3>
-{
-    template< typename F, typename Args > struct apply
-        : apply3<
-              F
-            , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-            , typename at_c< Args,2 >::type
-            >
-    {
-    };
-};
-
-template<> struct unpack_args_impl<4>
-{
-    template< typename F, typename Args > struct apply
-        : apply4<
-              F
-            , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-            , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
-            >
-    {
-    };
-};
-
-template<> struct unpack_args_impl<5>
-{
-    template< typename F, typename Args > struct apply
-        : apply5<
-              F
-            , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-            , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
-            , typename at_c< Args,4 >::type
-            >
-    {
-    };
-};
-
-}
-
-template<
-      typename F
-    >
-struct unpack_args
-{
-    template< typename Args > struct apply
-
-        : aux::unpack_args_impl< size<Args>::value >
-            ::template apply< F,Args >
-
-    {
-    };
-};
-
-BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/no_ctps/vector.hpp b/boost/mpl/aux_/preprocessed/no_ctps/vector.hpp
deleted file mode 100644
index a6c7b62..0000000
--- a/boost/mpl/aux_/preprocessed/no_ctps/vector.hpp
+++ /dev/null
@@ -1,556 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/vector.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct vector_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct vector_chooser<0>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef vector0<
-             
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<1>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector1<
-              T0
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<2>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector2<
-              T0, T1
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<3>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector3<
-              T0, T1, T2
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<4>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector4<
-              T0, T1, T2, T3
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<5>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector5<
-              T0, T1, T2, T3, T4
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<6>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector6<
-              T0, T1, T2, T3, T4, T5
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<7>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector7<
-              T0, T1, T2, T3, T4, T5, T6
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<8>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector8<
-              T0, T1, T2, T3, T4, T5, T6, T7
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<9>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector9<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<10>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector10<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<11>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector11<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<12>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector12<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<13>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector13<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<14>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector14<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<15>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector15<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<16>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector16<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<17>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector17<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<18>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector18<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<19>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector19<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_chooser<20>
-{
-    template<
-          typename T0, typename T1, typename T2, typename T3, typename T4
-        , typename T5, typename T6, typename T7, typename T8, typename T9
-        , typename T10, typename T11, typename T12, typename T13, typename T14
-        , typename T15, typename T16, typename T17, typename T18, typename T19
-        >
-    struct result_
-    {
-        typedef typename vector20<
-              T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< typename T >
-struct is_vector_arg
-{
-    BOOST_STATIC_CONSTANT(bool, value  = true);
-};
-
-template<>
-struct is_vector_arg<na>
-{
-    BOOST_STATIC_CONSTANT(bool, value  = false);
-};
-
-template<
-      typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename T6, typename T7, typename T8, typename T9, typename T10
-    , typename T11, typename T12, typename T13, typename T14, typename T15
-    , typename T16, typename T17, typename T18, typename T19, typename T20
-    >
-struct vector_count_args
-{
-    BOOST_STATIC_CONSTANT(int, value =
-          is_vector_arg<T1>::value + is_vector_arg<T2>::value 
-        + is_vector_arg<T3>::value + is_vector_arg<T4>::value 
-        + is_vector_arg<T5>::value + is_vector_arg<T6>::value 
-        + is_vector_arg<T7>::value + is_vector_arg<T8>::value 
-        + is_vector_arg<T9>::value + is_vector_arg<T10>::value 
-        + is_vector_arg<T11>::value + is_vector_arg<T12>::value 
-        + is_vector_arg<T13>::value + is_vector_arg<T14>::value 
-        + is_vector_arg<T15>::value + is_vector_arg<T16>::value 
-        + is_vector_arg<T17>::value + is_vector_arg<T18>::value 
-        + is_vector_arg<T19>::value + is_vector_arg<T20>::value
-        );
-
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct vector_impl
-{
-    typedef aux::vector_count_args<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        > arg_num_;
-
-    typedef typename aux::vector_chooser< arg_num_::value >
-        ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct vector
-    : aux::vector_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type
-{
-    typedef typename aux::vector_impl<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19
-        >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/no_ctps/vector_c.hpp b/boost/mpl/aux_/preprocessed/no_ctps/vector_c.hpp
deleted file mode 100644
index c522d08..0000000
--- a/boost/mpl/aux_/preprocessed/no_ctps/vector_c.hpp
+++ /dev/null
@@ -1,534 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/vector_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< int N >
-struct vector_c_chooser;
-
-}
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<0>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector0_c<
-              T
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<1>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector1_c<
-              T, T(C0)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<2>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector2_c<
-              T, T(C0), T(C1)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<3>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector3_c<
-              T, T(C0), T(C1), T(C2)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<4>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector4_c<
-              T, T(C0), T(C1), T(C2), T(C3)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<5>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector5_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<6>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector6_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<7>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector7_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<8>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector8_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<9>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector9_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<10>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector10_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<11>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector11_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<12>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector12_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<13>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector13_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<14>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector14_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<15>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector15_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<16>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector16_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<17>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector17_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<18>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector18_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<19>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector19_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template<>
-struct vector_c_chooser<20>
-{
-    template<
-          typename T, long C0, long C1, long C2, long C3, long C4, long C5
-        , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-        , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-        >
-    struct result_
-    {
-        typedef typename vector20_c<
-              T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19)
-            >::type type;
-
-    };
-};
-
-} // namespace aux
-
-namespace aux {
-
-template< long C >
-struct is_vector_c_arg
-{
-    BOOST_STATIC_CONSTANT(bool, value  = true);
-};
-
-template<>
-struct is_vector_c_arg<LONG_MAX>
-{
-    BOOST_STATIC_CONSTANT(bool, value  = false);
-};
-
-template<
-      long C1, long C2, long C3, long C4, long C5, long C6, long C7, long C8
-    , long C9, long C10, long C11, long C12, long C13, long C14, long C15
-    , long C16, long C17, long C18, long C19, long C20
-    >
-struct vector_c_count_args
-{
-    BOOST_STATIC_CONSTANT(int, value =
-          is_vector_c_arg<C1>::value + is_vector_c_arg<C2>::value 
-        + is_vector_c_arg<C3>::value + is_vector_c_arg<C4>::value 
-        + is_vector_c_arg<C5>::value + is_vector_c_arg<C6>::value 
-        + is_vector_c_arg<C7>::value + is_vector_c_arg<C8>::value 
-        + is_vector_c_arg<C9>::value + is_vector_c_arg<C10>::value 
-        + is_vector_c_arg<C11>::value + is_vector_c_arg<C12>::value 
-        + is_vector_c_arg<C13>::value + is_vector_c_arg<C14>::value 
-        + is_vector_c_arg<C15>::value + is_vector_c_arg<C16>::value 
-        + is_vector_c_arg<C17>::value + is_vector_c_arg<C18>::value 
-        + is_vector_c_arg<C19>::value + is_vector_c_arg<C20>::value
-        );
-
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct vector_c_impl
-{
-    typedef aux::vector_c_count_args<
-          C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        > arg_num_;
-
-    typedef typename aux::vector_c_chooser< arg_num_::value >
-        ::template result_< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct vector_c
-    : aux::vector_c_impl<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        >::type
-{
-    typedef typename aux::vector_c_impl<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19
-        >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/no_ttp/advance_backward.hpp b/boost/mpl/aux_/preprocessed/no_ttp/advance_backward.hpp
deleted file mode 100644
index 26de94c..0000000
--- a/boost/mpl/aux_/preprocessed/no_ttp/advance_backward.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/advance_backward.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-template< long N > struct advance_backward;
-template<>
-struct advance_backward<0>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef iter0 type;
-    };
-};
-
-template<>
-struct advance_backward<1>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef iter1 type;
-    };
-};
-
-template<>
-struct advance_backward<2>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef iter2 type;
-    };
-};
-
-template<>
-struct advance_backward<3>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef typename prior<iter2>::type iter3;
-        typedef iter3 type;
-    };
-};
-
-template<>
-struct advance_backward<4>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef typename prior<iter2>::type iter3;
-        typedef typename prior<iter3>::type iter4;
-        typedef iter4 type;
-    };
-};
-
-template< long N >
-struct advance_backward
-{
-    template< typename Iterator > struct apply
-    {
-        typedef typename apply_wrap1<
-              advance_backward<4>
-            , Iterator
-            >::type chunk_result_;
-
-        typedef typename apply_wrap1<
-              advance_backward<(
-                (N - 4) < 0
-                    ? 0
-                    : N - 4
-                    )>
-            , chunk_result_
-            >::type type;
-    };
-};
-
-}}}
-
diff --git a/boost/mpl/aux_/preprocessed/no_ttp/advance_forward.hpp b/boost/mpl/aux_/preprocessed/no_ttp/advance_forward.hpp
deleted file mode 100644
index b137cc7..0000000
--- a/boost/mpl/aux_/preprocessed/no_ttp/advance_forward.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/advance_forward.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-template< long N > struct advance_forward;
-template<>
-struct advance_forward<0>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef iter0 type;
-    };
-};
-
-template<>
-struct advance_forward<1>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef iter1 type;
-    };
-};
-
-template<>
-struct advance_forward<2>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef iter2 type;
-    };
-};
-
-template<>
-struct advance_forward<3>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef typename next<iter2>::type iter3;
-        typedef iter3 type;
-    };
-};
-
-template<>
-struct advance_forward<4>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef typename next<iter2>::type iter3;
-        typedef typename next<iter3>::type iter4;
-        typedef iter4 type;
-    };
-};
-
-template< long N >
-struct advance_forward
-{
-    template< typename Iterator > struct apply
-    {
-        typedef typename apply_wrap1<
-              advance_forward<4>
-            , Iterator
-            >::type chunk_result_;
-
-        typedef typename apply_wrap1<
-              advance_forward<(
-                (N - 4) < 0
-                    ? 0
-                    : N - 4
-                    )>
-            , chunk_result_
-            >::type type;
-    };
-};
-
-}}}
-
diff --git a/boost/mpl/aux_/preprocessed/no_ttp/and.hpp b/boost/mpl/aux_/preprocessed/no_ttp/and.hpp
deleted file mode 100644
index 010ad1f..0000000
--- a/boost/mpl/aux_/preprocessed/no_ttp/and.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/and.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template< bool C_, typename T1, typename T2, typename T3, typename T4 >
-struct and_impl
-    : false_
-{
-};
-
-template< typename T1, typename T2, typename T3, typename T4 >
-struct and_impl< true,T1,T2,T3,T4 >
-    : and_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4
-        , true_
-        >
-{
-};
-
-template<>
-struct and_impl<
-          true
-        , true_, true_, true_, true_
-        >
-    : true_
-{
-};
-
-} // namespace aux
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
-    , typename T3 = true_, typename T4 = true_, typename T5 = true_
-    >
-struct and_
-
-    : aux::and_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4, T5
-        >
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , and_
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC2(
-      2
-    , 5
-    , and_
-    )
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/no_ttp/apply.hpp b/boost/mpl/aux_/preprocessed/no_ttp/apply.hpp
deleted file mode 100644
index e08eacc..0000000
--- a/boost/mpl/aux_/preprocessed/no_ttp/apply.hpp
+++ /dev/null
@@ -1,169 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/apply.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename F
-    >
-struct apply0
-
-    : apply_wrap0<
-          typename lambda<F>::type
-       
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          1
-        , apply0
-        , (F )
-        )
-};
-
-template<
-      typename F
-    >
-struct apply< F,na,na,na,na,na >
-    : apply0<F>
-{
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply1
-
-    : apply_wrap1<
-          typename lambda<F>::type
-        , T1
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          2
-        , apply1
-        , (F, T1)
-        )
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply< F,T1,na,na,na,na >
-    : apply1< F,T1 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply2
-
-    : apply_wrap2<
-          typename lambda<F>::type
-        , T1, T2
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          3
-        , apply2
-        , (F, T1, T2)
-        )
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply< F,T1,T2,na,na,na >
-    : apply2< F,T1,T2 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply3
-
-    : apply_wrap3<
-          typename lambda<F>::type
-        , T1, T2, T3
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          4
-        , apply3
-        , (F, T1, T2, T3)
-        )
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply< F,T1,T2,T3,na,na >
-    : apply3< F,T1,T2,T3 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply4
-
-    : apply_wrap4<
-          typename lambda<F>::type
-        , T1, T2, T3, T4
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , apply4
-        , (F, T1, T2, T3, T4)
-        )
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply< F,T1,T2,T3,T4,na >
-    : apply4< F,T1,T2,T3,T4 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply5
-
-    : apply_wrap5<
-          typename lambda<F>::type
-        , T1, T2, T3, T4, T5
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          6
-        , apply5
-        , (F, T1, T2, T3, T4, T5)
-        )
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply
-    : apply5< F,T1,T2,T3,T4,T5 >
-{
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/no_ttp/apply_fwd.hpp b/boost/mpl/aux_/preprocessed/no_ttp/apply_fwd.hpp
deleted file mode 100644
index b2ed5d5..0000000
--- a/boost/mpl/aux_/preprocessed/no_ttp/apply_fwd.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/apply_fwd.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename F, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na
-    >
-struct apply;
-
-template<
-      typename F
-    >
-struct apply0;
-
-template<
-      typename F, typename T1
-    >
-struct apply1;
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply2;
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply3;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply4;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply5;
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/no_ttp/apply_wrap.hpp b/boost/mpl/aux_/preprocessed/no_ttp/apply_wrap.hpp
deleted file mode 100644
index 34d51a1..0000000
--- a/boost/mpl/aux_/preprocessed/no_ttp/apply_wrap.hpp
+++ /dev/null
@@ -1,84 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/apply_wrap.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename F
-
-    , typename has_apply_ = typename aux::has_apply<F>::type
-
-    >
-struct apply_wrap0
-
-    : F::template apply<  >
-{
-};
-
-template< typename F >
-struct apply_wrap0< F,true_ >
-    : F::apply
-{
-};
-
-template<
-      typename F, typename T1
-
-    >
-struct apply_wrap1
-
-    : F::template apply<T1>
-{
-};
-
-template<
-      typename F, typename T1, typename T2
-
-    >
-struct apply_wrap2
-
-    : F::template apply< T1,T2 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-
-    >
-struct apply_wrap3
-
-    : F::template apply< T1,T2,T3 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-
-    >
-struct apply_wrap4
-
-    : F::template apply< T1,T2,T3,T4 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-
-    >
-struct apply_wrap5
-
-    : F::template apply< T1,T2,T3,T4,T5 >
-{
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/no_ttp/arg.hpp b/boost/mpl/aux_/preprocessed/no_ttp/arg.hpp
deleted file mode 100644
index 6f2f8a8..0000000
--- a/boost/mpl/aux_/preprocessed/no_ttp/arg.hpp
+++ /dev/null
@@ -1,123 +0,0 @@
-
-// Copyright Peter Dimov 2001-2002
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/arg.hpp" header
-// -- DO NOT modify by hand!
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-template<> struct arg< -1 >
-{
-    BOOST_STATIC_CONSTANT(int, value  = -1);
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U1 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<1>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 1);
-    typedef arg<2> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U1 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<2>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 2);
-    typedef arg<3> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U2 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<3>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 3);
-    typedef arg<4> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U3 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<4>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 4);
-    typedef arg<5> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U4 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<5>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 5);
-    typedef arg<6> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U5 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg)
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
diff --git a/boost/mpl/aux_/preprocessed/no_ttp/basic_bind.hpp b/boost/mpl/aux_/preprocessed/no_ttp/basic_bind.hpp
deleted file mode 100644
index 095b84d..0000000
--- a/boost/mpl/aux_/preprocessed/no_ttp/basic_bind.hpp
+++ /dev/null
@@ -1,369 +0,0 @@
-
-// Copyright Peter Dimov 2001
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/basic_bind.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template<
-      typename T, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg
-{
-    typedef T type;
-};
-
-template<
-      int N, typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg< arg<N>, U1, U2, U3, U4, U5 >
-{
-    typedef typename apply_wrap5<mpl::arg<N>, U1, U2, U3, U4, U5>::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg< bind< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 >
-{
-    typedef bind< F,T1,T2,T3,T4,T5 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename F
-    >
-struct bind0
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-
-     public:
-        typedef typename apply_wrap0<
-              f_
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind0<F>, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind0<F> f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
-
-template<
-      typename F
-    >
-struct bind< F,na,na,na,na,na >
-    : bind0<F>
-{
-};
-
-template<
-      typename F, typename T1
-    >
-struct bind1
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-
-     public:
-        typedef typename apply_wrap1<
-              f_
-            , typename t1::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename U1, typename U2, typename U3
-    , typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind1< F,T1 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind1< F,T1 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
-
-template<
-      typename F, typename T1
-    >
-struct bind< F,T1,na,na,na,na >
-    : bind1< F,T1 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-
-     public:
-        typedef typename apply_wrap2<
-              f_
-            , typename t1::type, typename t2::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename U1, typename U2
-    , typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind2< F,T1,T2 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind2< F,T1,T2 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind< F,T1,T2,na,na,na >
-    : bind2< F,T1,T2 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-
-     public:
-        typedef typename apply_wrap3<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename U1
-    , typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind3< F,T1,T2,T3 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind< F,T1,T2,T3,na,na >
-    : bind3< F,T1,T2,T3 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind4
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
-
-     public:
-        typedef typename apply_wrap4<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind4< F,T1,T2,T3,T4 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind< F,T1,T2,T3,T4,na >
-    : bind4< F,T1,T2,T3,T4 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind5
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
-        typedef aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 > t5;
-
-     public:
-        typedef typename apply_wrap5<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type, typename t5::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind5< F,T1,T2,T3,T4,T5 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
-
-/// primary template (not a specialization!)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind
-    : bind5< F,T1,T2,T3,T4,T5 >
-{
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/no_ttp/bind.hpp b/boost/mpl/aux_/preprocessed/no_ttp/bind.hpp
deleted file mode 100644
index 2891440..0000000
--- a/boost/mpl/aux_/preprocessed/no_ttp/bind.hpp
+++ /dev/null
@@ -1,466 +0,0 @@
-
-// Copyright Peter Dimov 2001
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/bind.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template<
-      typename T, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg
-{
-    typedef T type;
-};
-
-template<
-      typename T
-    , typename Arg
-    >
-struct replace_unnamed_arg
-{
-    typedef Arg next;
-    typedef T type;
-};
-
-template<
-      typename Arg
-    >
-struct replace_unnamed_arg< arg< -1 >, Arg >
-{
-    typedef typename Arg::next next;
-    typedef Arg type;
-};
-
-template<
-      int N, typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg< arg<N>, U1, U2, U3, U4, U5 >
-{
-    typedef typename apply_wrap5<mpl::arg<N>, U1, U2, U3, U4, U5>::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg< bind< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 >
-{
-    typedef bind< F,T1,T2,T3,T4,T5 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename F
-    >
-struct bind0
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-     public:
-        typedef typename apply_wrap0<
-              f_
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind0<F>, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind0<F> f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
-
-template<
-      typename F
-    >
-struct bind< F,na,na,na,na,na >
-    : bind0<F>
-{
-};
-
-template<
-      typename F, typename T1
-    >
-struct bind1
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-     public:
-        typedef typename apply_wrap1<
-              f_
-            , typename t1::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename U1, typename U2, typename U3
-    , typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind1< F,T1 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind1< F,T1 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
-
-template<
-      typename F, typename T1
-    >
-struct bind< F,T1,na,na,na,na >
-    : bind1< F,T1 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-     public:
-        typedef typename apply_wrap2<
-              f_
-            , typename t1::type, typename t2::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename U1, typename U2
-    , typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind2< F,T1,T2 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind2< F,T1,T2 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind< F,T1,T2,na,na,na >
-    : bind2< F,T1,T2 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-     public:
-        typedef typename apply_wrap3<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename U1
-    , typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind3< F,T1,T2,T3 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind< F,T1,T2,T3,na,na >
-    : bind3< F,T1,T2,T3 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind4
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef aux::replace_unnamed_arg< T4,n4 > r4;
-        typedef typename r4::type a4;
-        typedef typename r4::next n5;
-        typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
-        ///
-     public:
-        typedef typename apply_wrap4<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind4< F,T1,T2,T3,T4 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind< F,T1,T2,T3,T4,na >
-    : bind4< F,T1,T2,T3,T4 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind5
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef aux::replace_unnamed_arg< T4,n4 > r4;
-        typedef typename r4::type a4;
-        typedef typename r4::next n5;
-        typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
-        ///
-        typedef aux::replace_unnamed_arg< T5,n5 > r5;
-        typedef typename r5::type a5;
-        typedef typename r5::next n6;
-        typedef aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 > t5;
-        ///
-     public:
-        typedef typename apply_wrap5<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type, typename t5::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind5< F,T1,T2,T3,T4,T5 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
-
-/// primary template (not a specialization!)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind
-    : bind5< F,T1,T2,T3,T4,T5 >
-{
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/no_ttp/bind_fwd.hpp b/boost/mpl/aux_/preprocessed/no_ttp/bind_fwd.hpp
deleted file mode 100644
index c4a5060..0000000
--- a/boost/mpl/aux_/preprocessed/no_ttp/bind_fwd.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/bind_fwd.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename F, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na
-    >
-struct bind;
-
-template<
-      typename F
-    >
-struct bind0;
-
-template<
-      typename F, typename T1
-    >
-struct bind1;
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2;
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind4;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind5;
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/no_ttp/bitand.hpp b/boost/mpl/aux_/preprocessed/no_ttp/bitand.hpp
deleted file mode 100644
index 282771b..0000000
--- a/boost/mpl/aux_/preprocessed/no_ttp/bitand.hpp
+++ /dev/null
@@ -1,157 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/bitand.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitand_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< bitand_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< bitand_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitand_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitand_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitand_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitand_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct bitand_
-    : bitand_< bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>, N5>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitand_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct bitand_< N1,N2,N3,N4,na >
-
-    : bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitand_
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct bitand_< N1,N2,N3,na,na >
-
-    : bitand_< bitand_< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitand_
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct bitand_< N1,N2,na,na,na >
-    : bitand_impl<
-          typename bitand_tag<N1>::type
-        , typename bitand_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitand_
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_)
-
-}}
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct bitand_wknd
-{
-    BOOST_STATIC_CONSTANT(T, value  = (n1 & n2));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct bitand_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-        : aux::bitand_wknd<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , N1::value
-            , N2::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/no_ttp/bitor.hpp b/boost/mpl/aux_/preprocessed/no_ttp/bitor.hpp
deleted file mode 100644
index bc9c198..0000000
--- a/boost/mpl/aux_/preprocessed/no_ttp/bitor.hpp
+++ /dev/null
@@ -1,157 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/bitor.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitor_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< bitor_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< bitor_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitor_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitor_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitor_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitor_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct bitor_
-    : bitor_< bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>, N5>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitor_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct bitor_< N1,N2,N3,N4,na >
-
-    : bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitor_
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct bitor_< N1,N2,N3,na,na >
-
-    : bitor_< bitor_< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitor_
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct bitor_< N1,N2,na,na,na >
-    : bitor_impl<
-          typename bitor_tag<N1>::type
-        , typename bitor_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitor_
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_)
-
-}}
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct bitor_wknd
-{
-    BOOST_STATIC_CONSTANT(T, value  = (n1 | n2));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct bitor_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-        : aux::bitor_wknd<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , N1::value
-            , N2::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/no_ttp/bitxor.hpp b/boost/mpl/aux_/preprocessed/no_ttp/bitxor.hpp
deleted file mode 100644
index 76ce540..0000000
--- a/boost/mpl/aux_/preprocessed/no_ttp/bitxor.hpp
+++ /dev/null
@@ -1,157 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/bitxor.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitxor_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< bitxor_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< bitxor_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitxor_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitxor_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitxor_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitxor_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct bitxor_
-    : bitxor_< bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>, N5>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , bitxor_
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct bitxor_< N1,N2,N3,N4,na >
-
-    : bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitxor_
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct bitxor_< N1,N2,N3,na,na >
-
-    : bitxor_< bitxor_< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitxor_
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct bitxor_< N1,N2,na,na,na >
-    : bitxor_impl<
-          typename bitxor_tag<N1>::type
-        , typename bitxor_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitxor_
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_)
-
-}}
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct bitxor_wknd
-{
-    BOOST_STATIC_CONSTANT(T, value  = (n1 ^ n2));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct bitxor_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-        : aux::bitxor_wknd<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , N1::value
-            , N2::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/no_ttp/deque.hpp b/boost/mpl/aux_/preprocessed/no_ttp/deque.hpp
deleted file mode 100644
index de67398..0000000
--- a/boost/mpl/aux_/preprocessed/no_ttp/deque.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/deque.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct deque;
-
-template<
-     
-    >
-struct deque<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector0<  >
-{
-    typedef vector0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct deque<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector1<T0>
-{
-    typedef typename vector1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct deque<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector2< T0,T1 >
-{
-    typedef typename vector2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct deque<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector3< T0,T1,T2 >
-{
-    typedef typename vector3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct deque<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector4< T0,T1,T2,T3 >
-{
-    typedef typename vector4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct deque<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector5< T0,T1,T2,T3,T4 >
-{
-    typedef typename vector5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : vector15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : vector16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : vector17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : vector18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : vector19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct deque
-    : vector20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/no_ttp/divides.hpp b/boost/mpl/aux_/preprocessed/no_ttp/divides.hpp
deleted file mode 100644
index 9bc7fb1..0000000
--- a/boost/mpl/aux_/preprocessed/no_ttp/divides.hpp
+++ /dev/null
@@ -1,156 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/divides.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct divides_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< divides_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< divides_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct divides_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct divides_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct divides_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct divides_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct divides
-    : divides< divides< divides< divides< N1,N2 >, N3>, N4>, N5>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , divides
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct divides< N1,N2,N3,N4,na >
-
-    : divides< divides< divides< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , divides
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct divides< N1,N2,N3,na,na >
-
-    : divides< divides< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , divides
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct divides< N1,N2,na,na,na >
-    : divides_impl<
-          typename divides_tag<N1>::type
-        , typename divides_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , divides
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, divides)
-
-}}
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct divides_wknd
-{
-    BOOST_STATIC_CONSTANT(T, value  = (n1 / n2));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct divides_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-        : aux::divides_wknd<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , N1::value
-            , N2::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/no_ttp/equal_to.hpp b/boost/mpl/aux_/preprocessed/no_ttp/equal_to.hpp
deleted file mode 100644
index fa2dc4a..0000000
--- a/boost/mpl/aux_/preprocessed/no_ttp/equal_to.hpp
+++ /dev/null
@@ -1,98 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/equal_to.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct equal_to_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct equal_to_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct equal_to_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct equal_to_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct equal_to_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct equal_to
-
-    : equal_to_impl<
-          typename equal_to_tag<N1>::type
-        , typename equal_to_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, equal_to, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct equal_to_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-    {
-        BOOST_STATIC_CONSTANT(bool, value =
-             ( BOOST_MPL_AUX_VALUE_WKND(N1)::value ==
-             BOOST_MPL_AUX_VALUE_WKND(N2)::value )
-            );
-        typedef bool_<value> type;
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/no_ttp/fold_impl.hpp b/boost/mpl/aux_/preprocessed/no_ttp/fold_impl.hpp
deleted file mode 100644
index 9e7a293..0000000
--- a/boost/mpl/aux_/preprocessed/no_ttp/fold_impl.hpp
+++ /dev/null
@@ -1,180 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl;
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 0,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef state0 state;
-    typedef iter0 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 1,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    
-
-    typedef state1 state;
-    typedef iter1 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 2,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    
-
-    typedef state2 state;
-    typedef iter2 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 3,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    
-
-    typedef state3 state;
-    typedef iter3 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 4,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp, state3, typename deref<iter3>::type >::type state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef state4 state;
-    typedef iter4 iterator;
-};
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl
-{
-    typedef fold_impl<
-          4
-        , First
-        , Last
-        , State
-        , ForwardOp
-        > chunk_;
-
-    typedef fold_impl<
-          ( (N - 4) < 0 ? 0 : N - 4 )
-        , typename chunk_::iterator
-        , Last
-        , typename chunk_::state
-        , ForwardOp
-        > res_;
-
-    typedef typename res_::state state;
-    typedef typename res_::iterator iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< -1,First,Last,State,ForwardOp >
-    : fold_impl<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State, typename deref<First>::type>::type
-        , ForwardOp
-        >
-{
-};
-
-template<
-      typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< -1,Last,Last,State,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/no_ttp/full_lambda.hpp b/boost/mpl/aux_/preprocessed/no_ttp/full_lambda.hpp
deleted file mode 100644
index bf81873..0000000
--- a/boost/mpl/aux_/preprocessed/no_ttp/full_lambda.hpp
+++ /dev/null
@@ -1,554 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/full_lambda.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template<
-      bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false
-    , bool C5 = false
-    >
-struct lambda_or
-    : true_
-{
-};
-
-template<>
-struct lambda_or< false,false,false,false,false >
-    : false_
-{
-};
-
-} // namespace aux
-
-template<
-      typename T
-    , typename Tag
-   
-    >
-struct lambda
-{
-    typedef false_ is_le;
-    typedef T result_;
-    typedef T type;
-};
-
-template<
-      typename T
-    >
-struct is_lambda_expression
-    : lambda<T>::is_le
-{
-};
-
-template< int N, typename Tag >
-struct lambda< arg<N>, Tag >
-{
-    typedef true_ is_le;
-    typedef mpl::arg<N> result_; // qualified for the sake of MIPSpro 7.41
-    typedef mpl::protect<result_> type;
-};
-
-template<
-      typename F
-    , typename Tag
-    >
-struct lambda<
-          bind0<F>
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind0<
-          F
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1 > class F
-    , typename L1
-    >
-struct le_result1
-{
-    typedef F<
-          typename L1::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1 > class F
-    , typename L1
-    >
-struct le_result1< true_,Tag,F,L1 >
-{
-    typedef bind1<
-          quote1< F,Tag >
-        , typename L1::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1 > class F
-    , typename T1
-    , typename Tag
-    >
-struct lambda<
-          F<T1>
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef typename l1::is_le is_le1;
-    typedef typename aux::lambda_or<
-          is_le1::value
-        >::type is_le;
-
-    typedef aux::le_result1<
-          is_le, Tag, F, l1
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1
-    , typename Tag
-    >
-struct lambda<
-          bind1< F,T1 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind1<
-          F
-        , T1
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2 > class F
-    , typename L1, typename L2
-    >
-struct le_result2
-{
-    typedef F<
-          typename L1::type, typename L2::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2 > class F
-    , typename L1, typename L2
-    >
-struct le_result2< true_,Tag,F,L1,L2 >
-{
-    typedef bind2<
-          quote2< F,Tag >
-        , typename L1::result_, typename L2::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2 > class F
-    , typename T1, typename T2
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value
-        >::type is_le;
-
-    typedef aux::le_result2<
-          is_le, Tag, F, l1, l2
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    , typename Tag
-    >
-struct lambda<
-          bind2< F,T1,T2 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind2<
-          F
-        , T1, T2
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3 > class F
-    , typename L1, typename L2, typename L3
-    >
-struct le_result3
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3 > class F
-    , typename L1, typename L2, typename L3
-    >
-struct le_result3< true_,Tag,F,L1,L2,L3 >
-{
-    typedef bind3<
-          quote3< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2, typename P3 > class F
-    , typename T1, typename T2, typename T3
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value
-        >::type is_le;
-
-    typedef aux::le_result3<
-          is_le, Tag, F, l1, l2, l3
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    , typename Tag
-    >
-struct lambda<
-          bind3< F,T1,T2,T3 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind3<
-          F
-        , T1, T2, T3
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename L1, typename L2, typename L3, typename L4
-    >
-struct le_result4
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        , typename L4::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename L1, typename L2, typename L3, typename L4
-    >
-struct le_result4< true_,Tag,F,L1,L2,L3,L4 >
-{
-    typedef bind4<
-          quote4< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        , typename L4::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename T1, typename T2, typename T3, typename T4
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3,T4 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    typedef lambda< T4,Tag > l4;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    typedef typename l4::is_le is_le4;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value, is_le4::value
-        >::type is_le;
-
-    typedef aux::le_result4<
-          is_le, Tag, F, l1, l2, l3, l4
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename Tag
-    >
-struct lambda<
-          bind4< F,T1,T2,T3,T4 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind4<
-          F
-        , T1, T2, T3, T4
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
-    , typename L1, typename L2, typename L3, typename L4, typename L5
-    >
-struct le_result5
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        , typename L4::type, typename L5::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
-    , typename L1, typename L2, typename L3, typename L4, typename L5
-    >
-struct le_result5< true_,Tag,F,L1,L2,L3,L4,L5 >
-{
-    typedef bind5<
-          quote5< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        , typename L4::result_, typename L5::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template<
-          typename P1, typename P2, typename P3, typename P4
-        , typename P5
-        >
-      class F
-    , typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3,T4,T5 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    typedef lambda< T4,Tag > l4;
-    typedef lambda< T5,Tag > l5;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    typedef typename l4::is_le is_le4;
-    typedef typename l5::is_le is_le5;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value, is_le4::value
-        , is_le5::value
-        >::type is_le;
-
-    typedef aux::le_result5<
-          is_le, Tag, F, l1, l2, l3, l4, l5
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    , typename Tag
-    >
-struct lambda<
-          bind5< F,T1,T2,T3,T4,T5 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind5<
-          F
-        , T1, T2, T3, T4, T5
-        > result_;
-
-    typedef result_ type;
-};
-
-/// special case for 'protect'
-template< typename T, typename Tag >
-struct lambda< mpl::protect<T>, Tag >
-{
-    typedef false_ is_le;
-    typedef mpl::protect<T> result_;
-    typedef result_ type;
-};
-
-/// specializations for the main 'bind' form
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    , typename Tag
-    >
-struct lambda<
-          bind< F,T1,T2,T3,T4,T5 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind< F,T1,T2,T3,T4,T5 > result_;
-    typedef result_ type;
-};
-
-/// workaround for MWCW 8.3+/EDG < 303, leads to ambiguity on Digital Mars
-
-template<
-      typename F, typename Tag1, typename Tag2
-    >
-struct lambda<
-          lambda< F,Tag1 >
-        , Tag2
-        >
-{
-    typedef lambda< F,Tag2 > l1;
-    typedef lambda< Tag1,Tag2 > l2;
-    typedef typename l1::is_le is_le;
-    typedef aux::le_result2<is_le, Tag2, mpl::lambda, l1, l2> le_result_;
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, lambda)
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/no_ttp/greater.hpp b/boost/mpl/aux_/preprocessed/no_ttp/greater.hpp
deleted file mode 100644
index faa3f2b..0000000
--- a/boost/mpl/aux_/preprocessed/no_ttp/greater.hpp
+++ /dev/null
@@ -1,98 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/greater.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct greater_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< greater_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< greater_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct greater_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct greater_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct greater
-
-    : greater_impl<
-          typename greater_tag<N1>::type
-        , typename greater_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, greater)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct greater_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-    {
-        BOOST_STATIC_CONSTANT(bool, value =
-             ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >
-             BOOST_MPL_AUX_VALUE_WKND(N2)::value )
-            );
-        typedef bool_<value> type;
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/no_ttp/greater_equal.hpp b/boost/mpl/aux_/preprocessed/no_ttp/greater_equal.hpp
deleted file mode 100644
index 392d142..0000000
--- a/boost/mpl/aux_/preprocessed/no_ttp/greater_equal.hpp
+++ /dev/null
@@ -1,98 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/greater_equal.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct greater_equal_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< greater_equal_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct greater_equal_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_equal_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_equal_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct greater_equal_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct greater_equal
-
-    : greater_equal_impl<
-          typename greater_equal_tag<N1>::type
-        , typename greater_equal_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, greater_equal, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct greater_equal_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-    {
-        BOOST_STATIC_CONSTANT(bool, value =
-             ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >=
-             BOOST_MPL_AUX_VALUE_WKND(N2)::value )
-            );
-        typedef bool_<value> type;
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/no_ttp/inherit.hpp b/boost/mpl/aux_/preprocessed/no_ttp/inherit.hpp
deleted file mode 100644
index 00f31c4..0000000
--- a/boost/mpl/aux_/preprocessed/no_ttp/inherit.hpp
+++ /dev/null
@@ -1,141 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/inherit.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
-    >
-struct inherit2
-    : T1, T2
-{
-    typedef inherit2 type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1, T2))
-};
-
-template< typename T1 >
-struct inherit2< T1,empty_base >
-{
-    typedef T1 type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (T1, empty_base))
-};
-
-template< typename T2 >
-struct inherit2< empty_base,T2 >
-{
-    typedef T2 type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, T2))
-};
-
-template<>
-struct inherit2< empty_base,empty_base >
-{
-    typedef empty_base type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, empty_base))
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, inherit2)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na
-    >
-struct inherit3
-    : inherit2<
-          typename inherit2<
-              T1, T2
-            >::type
-        , T3
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          3
-        , inherit3
-        , ( T1, T2, T3)
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC(3, inherit3)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
-    >
-struct inherit4
-    : inherit2<
-          typename inherit3<
-              T1, T2, T3
-            >::type
-        , T4
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          4
-        , inherit4
-        , ( T1, T2, T3, T4)
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC(4, inherit4)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
-    , typename T5 = na
-    >
-struct inherit5
-    : inherit2<
-          typename inherit4<
-              T1, T2, T3, T4
-            >::type
-        , T5
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , inherit5
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC(5, inherit5)
-
-/// primary template
-
-template<
-      typename T1 = empty_base, typename T2 = empty_base
-    , typename T3 = empty_base, typename T4 = empty_base
-    , typename T5 = empty_base
-    >
-struct inherit
-    : inherit5< T1,T2,T3,T4,T5 >
-{
-};
-
-template<>
-struct inherit< na,na,na,na,na >
-{
-    template<
-
-          typename T1 = empty_base, typename T2 = empty_base
-        , typename T3 = empty_base, typename T4 = empty_base
-        , typename T5 = empty_base
-
-        >
-    struct apply
-        : inherit< T1,T2,T3,T4,T5 >
-    {
-    };
-};
-
-BOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit)
-BOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit)
-BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit)
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/no_ttp/iter_fold_if_impl.hpp b/boost/mpl/aux_/preprocessed/no_ttp/iter_fold_if_impl.hpp
deleted file mode 100644
index 6951795..0000000
--- a/boost/mpl/aux_/preprocessed/no_ttp/iter_fold_if_impl.hpp
+++ /dev/null
@@ -1,133 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright David Abrahams 2001-2002
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/iter_fold_if_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-template< typename Iterator, typename State >
-struct iter_fold_if_null_step
-{
-    typedef State state;
-    typedef Iterator iterator;
-};
-
-template< bool >
-struct iter_fold_if_step_impl
-{
-    template<
-          typename Iterator
-        , typename State
-        , typename StateOp
-        , typename IteratorOp
-        >
-    struct result_
-    {
-        typedef typename apply2< StateOp,State,Iterator >::type state;
-        typedef typename IteratorOp::type iterator;
-    };
-};
-
-template<>
-struct iter_fold_if_step_impl<false>
-{
-    template<
-          typename Iterator
-        , typename State
-        , typename StateOp
-        , typename IteratorOp
-        >
-    struct result_
-    {
-        typedef State state;
-        typedef Iterator iterator;
-    };
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename ForwardOp
-    , typename Predicate
-    >
-struct iter_fold_if_forward_step
-{
-    typedef typename apply2< Predicate,State,Iterator >::type not_last;
-    typedef typename iter_fold_if_step_impl<
-          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
-        >::template result_< Iterator,State,ForwardOp, mpl::next<Iterator> > impl_;
-
-    typedef typename impl_::state state;
-    typedef typename impl_::iterator iterator;
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename BackwardOp
-    , typename Predicate
-    >
-struct iter_fold_if_backward_step
-{
-    typedef typename apply2< Predicate,State,Iterator >::type not_last;
-    typedef typename iter_fold_if_step_impl<
-          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
-        >::template result_< Iterator,State,BackwardOp, identity<Iterator> > impl_;
-
-    typedef typename impl_::state state;
-    typedef typename impl_::iterator iterator;
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename ForwardOp
-    , typename ForwardPredicate
-    , typename BackwardOp
-    , typename BackwardPredicate
-    >
-struct iter_fold_if_impl
-{
- private:
-    typedef iter_fold_if_null_step< Iterator,State > forward_step0;
-    typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1;
-    typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2;
-    typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3;
-    typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4;
-    
-
-    typedef typename if_<
-          typename forward_step4::not_last
-        , iter_fold_if_impl<
-              typename forward_step4::iterator
-            , typename forward_step4::state
-            , ForwardOp
-            , ForwardPredicate
-            , BackwardOp
-            , BackwardPredicate
-            >
-        , iter_fold_if_null_step<
-              typename forward_step4::iterator
-            , typename forward_step4::state
-            >
-        >::type backward_step4;
-
-    typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3;
-    typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2;
-    typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1;
-    typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0;
-    
-
- public:
-    typedef typename backward_step0::state state;
-    typedef typename backward_step4::iterator iterator;
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/no_ttp/iter_fold_impl.hpp b/boost/mpl/aux_/preprocessed/no_ttp/iter_fold_impl.hpp
deleted file mode 100644
index 805790e..0000000
--- a/boost/mpl/aux_/preprocessed/no_ttp/iter_fold_impl.hpp
+++ /dev/null
@@ -1,180 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/iter_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl;
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 0,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef state0 state;
-    typedef iter0 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 1,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    
-
-    typedef state1 state;
-    typedef iter1 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 2,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    
-
-    typedef state2 state;
-    typedef iter2 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 3,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,state2,iter2 >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    
-
-    typedef state3 state;
-    typedef iter3 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 4,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,state2,iter2 >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp,state3,iter3 >::type state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef state4 state;
-    typedef iter4 iterator;
-};
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl
-{
-    typedef iter_fold_impl<
-          4
-        , First
-        , Last
-        , State
-        , ForwardOp
-        > chunk_;
-
-    typedef iter_fold_impl<
-          ( (N - 4) < 0 ? 0 : N - 4 )
-        , typename chunk_::iterator
-        , Last
-        , typename chunk_::state
-        , ForwardOp
-        > res_;
-
-    typedef typename res_::state state;
-    typedef typename res_::iterator iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< -1,First,Last,State,ForwardOp >
-    : iter_fold_impl<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2< ForwardOp,State,First >::type
-        , ForwardOp
-        >
-{
-};
-
-template<
-      typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< -1,Last,Last,State,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/no_ttp/lambda_no_ctps.hpp b/boost/mpl/aux_/preprocessed/no_ttp/lambda_no_ctps.hpp
deleted file mode 100644
index 890a198..0000000
--- a/boost/mpl/aux_/preprocessed/no_ttp/lambda_no_ctps.hpp
+++ /dev/null
@@ -1,229 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/lambda_no_ctps.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template<
-      bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false
-    , bool C5 = false
-    >
-struct lambda_or
-    : true_
-{
-};
-
-template<>
-struct lambda_or< false,false,false,false,false >
-    : false_
-{
-};
-
-template< typename Arity > struct lambda_impl
-{
-    template< typename T, typename Tag, typename Protect > struct result_
-    {
-        typedef T type;
-        typedef is_placeholder<T> is_le;
-    };
-};
-
-template<> struct lambda_impl< int_<1> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef typename l1::is_le is_le1;
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value
-            > is_le;
-
-        typedef bind1<
-              typename F::rebind
-            , typename l1::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<2> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        
-
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value
-            > is_le;
-
-        typedef bind2<
-              typename F::rebind
-            , typename l1::type, typename l2::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<3> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        
-
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value
-            > is_le;
-
-        typedef bind3<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<4> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        typedef lambda< typename F::arg4, Tag, false_ > l4;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        typedef typename l4::is_le is_le4;
-        
-
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value
-            > is_le;
-
-        typedef bind4<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            , typename l4::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<5> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        typedef lambda< typename F::arg4, Tag, false_ > l4;
-        typedef lambda< typename F::arg5, Tag, false_ > l5;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        typedef typename l4::is_le is_le4;
-        typedef typename l5::is_le is_le5;
-        
-
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value
-            > is_le;
-
-        typedef bind5<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            , typename l4::type, typename l5::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename T
-    , typename Tag
-    , typename Protect
-    >
-struct lambda
-{
-    /// Metafunction forwarding confuses MSVC 6.x
-    typedef typename aux::template_arity<T>::type arity_;
-    typedef typename aux::lambda_impl<arity_>
-        ::template result_< T,Tag,Protect > l_;
-
-    typedef typename l_::type type;
-    typedef typename l_::is_le is_le;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect))
-};
-
-BOOST_MPL_AUX_NA_SPEC2(1, 3, lambda)
-
-template<
-      typename T
-    >
-struct is_lambda_expression
-    : lambda<T>::is_le
-{
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/no_ttp/less.hpp b/boost/mpl/aux_/preprocessed/no_ttp/less.hpp
deleted file mode 100644
index 6451680..0000000
--- a/boost/mpl/aux_/preprocessed/no_ttp/less.hpp
+++ /dev/null
@@ -1,98 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/less.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct less_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< less_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< less_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct less_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct less_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct less
-
-    : less_impl<
-          typename less_tag<N1>::type
-        , typename less_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, less)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct less_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-    {
-        BOOST_STATIC_CONSTANT(bool, value =
-             ( BOOST_MPL_AUX_VALUE_WKND(N2)::value >
-             BOOST_MPL_AUX_VALUE_WKND(N1)::value )
-            );
-        typedef bool_<value> type;
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/no_ttp/less_equal.hpp b/boost/mpl/aux_/preprocessed/no_ttp/less_equal.hpp
deleted file mode 100644
index 00ae0d3..0000000
--- a/boost/mpl/aux_/preprocessed/no_ttp/less_equal.hpp
+++ /dev/null
@@ -1,98 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/less_equal.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct less_equal_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< less_equal_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< less_equal_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct less_equal_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_equal_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_equal_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct less_equal_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct less_equal
-
-    : less_equal_impl<
-          typename less_equal_tag<N1>::type
-        , typename less_equal_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, less_equal, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct less_equal_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-    {
-        BOOST_STATIC_CONSTANT(bool, value =
-             ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <=
-             BOOST_MPL_AUX_VALUE_WKND(N2)::value )
-            );
-        typedef bool_<value> type;
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/no_ttp/list.hpp b/boost/mpl/aux_/preprocessed/no_ttp/list.hpp
deleted file mode 100644
index 4e8ad53..0000000
--- a/boost/mpl/aux_/preprocessed/no_ttp/list.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/list.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct list;
-
-template<
-     
-    >
-struct list<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list0<  >
-{
-    typedef list0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct list<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list1<T0>
-{
-    typedef typename list1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct list<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list2< T0,T1 >
-{
-    typedef typename list2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct list<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list3< T0,T1,T2 >
-{
-    typedef typename list3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct list<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list4< T0,T1,T2,T3 >
-{
-    typedef typename list4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct list<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list5< T0,T1,T2,T3,T4 >
-{
-    typedef typename list5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename list6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename list7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename list8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : list15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename list15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : list16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename list16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : list17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename list17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : list18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename list18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : list19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename list19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct list
-    : list20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename list20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/no_ttp/list_c.hpp b/boost/mpl/aux_/preprocessed/no_ttp/list_c.hpp
deleted file mode 100644
index 0b48a7f..0000000
--- a/boost/mpl/aux_/preprocessed/no_ttp/list_c.hpp
+++ /dev/null
@@ -1,328 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/list_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct list_c;
-
-template<
-      typename T
-    >
-struct list_c<
-          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list0_c<T>
-{
-    typedef typename list0_c<T>::type type;
-};
-
-template<
-      typename T, long C0
-    >
-struct list_c<
-          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list1_c< T,C0 >
-{
-    typedef typename list1_c< T,C0 >::type type;
-};
-
-template<
-      typename T, long C0, long C1
-    >
-struct list_c<
-          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list2_c< T,C0,C1 >
-{
-    typedef typename list2_c< T,C0,C1 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2
-    >
-struct list_c<
-          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list3_c< T,C0,C1,C2 >
-{
-    typedef typename list3_c< T,C0,C1,C2 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3
-    >
-struct list_c<
-          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list4_c< T,C0,C1,C2,C3 >
-{
-    typedef typename list4_c< T,C0,C1,C2,C3 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list5_c< T,C0,C1,C2,C3,C4 >
-{
-    typedef typename list5_c< T,C0,C1,C2,C3,C4 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list6_c< T,C0,C1,C2,C3,C4,C5 >
-{
-    typedef typename list6_c< T,C0,C1,C2,C3,C4,C5 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list7_c< T,C0,C1,C2,C3,C4,C5,C6 >
-{
-    typedef typename list7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX
-        >
-    : list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >
-{
-    typedef typename list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >
-{
-    typedef typename list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >
-{
-    typedef typename list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >
-{
-    typedef typename list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >
-{
-    typedef typename list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >
-{
-    typedef typename list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list14_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        >
-{
-    typedef typename list14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list15_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        >
-{
-    typedef typename list15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list16_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15
-        >
-{
-    typedef typename list16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list17_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16
-        >
-{
-    typedef typename list17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, LONG_MAX, LONG_MAX
-        >
-    : list18_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17
-        >
-{
-    typedef typename list18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, LONG_MAX
-        >
-    : list19_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18
-        >
-{
-    typedef typename list19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct list_c
-    : list20_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, C19
-        >
-{
-    typedef typename list20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/no_ttp/map.hpp b/boost/mpl/aux_/preprocessed/no_ttp/map.hpp
deleted file mode 100644
index 837e013..0000000
--- a/boost/mpl/aux_/preprocessed/no_ttp/map.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/map.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct map;
-
-template<
-     
-    >
-struct map<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map0<  >
-{
-    typedef map0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct map<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map1<T0>
-{
-    typedef typename map1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct map<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map2< T0,T1 >
-{
-    typedef typename map2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct map<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map3< T0,T1,T2 >
-{
-    typedef typename map3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct map<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map4< T0,T1,T2,T3 >
-{
-    typedef typename map4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct map<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map5< T0,T1,T2,T3,T4 >
-{
-    typedef typename map5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename map6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename map7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename map8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : map15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename map15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : map16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename map16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : map17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename map17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : map18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename map18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : map19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename map19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct map
-    : map20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename map20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/no_ttp/minus.hpp b/boost/mpl/aux_/preprocessed/no_ttp/minus.hpp
deleted file mode 100644
index bb67c59..0000000
--- a/boost/mpl/aux_/preprocessed/no_ttp/minus.hpp
+++ /dev/null
@@ -1,156 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/minus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct minus_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< minus_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< minus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct minus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct minus_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct minus_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct minus_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct minus
-    : minus< minus< minus< minus< N1,N2 >, N3>, N4>, N5>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , minus
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct minus< N1,N2,N3,N4,na >
-
-    : minus< minus< minus< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , minus
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct minus< N1,N2,N3,na,na >
-
-    : minus< minus< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , minus
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct minus< N1,N2,na,na,na >
-    : minus_impl<
-          typename minus_tag<N1>::type
-        , typename minus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , minus
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, minus)
-
-}}
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct minus_wknd
-{
-    BOOST_STATIC_CONSTANT(T, value  = (n1 - n2));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct minus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-        : aux::minus_wknd<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , N1::value
-            , N2::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/no_ttp/modulus.hpp b/boost/mpl/aux_/preprocessed/no_ttp/modulus.hpp
deleted file mode 100644
index 6fd0cab..0000000
--- a/boost/mpl/aux_/preprocessed/no_ttp/modulus.hpp
+++ /dev/null
@@ -1,111 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/modulus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct modulus_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< modulus_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< modulus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct modulus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct modulus_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct modulus_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct modulus_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct modulus
-
-    : modulus_impl<
-          typename modulus_tag<N1>::type
-        , typename modulus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, modulus, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, modulus)
-
-}}
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct modulus_wknd
-{
-    BOOST_STATIC_CONSTANT(T, value  = (n1 % n2));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct modulus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-        : aux::modulus_wknd<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , N1::value
-            , N2::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/no_ttp/not_equal_to.hpp b/boost/mpl/aux_/preprocessed/no_ttp/not_equal_to.hpp
deleted file mode 100644
index 7c940a5..0000000
--- a/boost/mpl/aux_/preprocessed/no_ttp/not_equal_to.hpp
+++ /dev/null
@@ -1,98 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/not_equal_to.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct not_equal_to_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< not_equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct not_equal_to_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct not_equal_to_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct not_equal_to_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct not_equal_to_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct not_equal_to
-
-    : not_equal_to_impl<
-          typename not_equal_to_tag<N1>::type
-        , typename not_equal_to_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, not_equal_to, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct not_equal_to_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-    {
-        BOOST_STATIC_CONSTANT(bool, value =
-             ( BOOST_MPL_AUX_VALUE_WKND(N1)::value !=
-             BOOST_MPL_AUX_VALUE_WKND(N2)::value )
-            );
-        typedef bool_<value> type;
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/no_ttp/or.hpp b/boost/mpl/aux_/preprocessed/no_ttp/or.hpp
deleted file mode 100644
index 31e1aaa..0000000
--- a/boost/mpl/aux_/preprocessed/no_ttp/or.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/or.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template< bool C_, typename T1, typename T2, typename T3, typename T4 >
-struct or_impl
-    : true_
-{
-};
-
-template< typename T1, typename T2, typename T3, typename T4 >
-struct or_impl< false,T1,T2,T3,T4 >
-    : or_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4
-        , false_
-        >
-{
-};
-
-template<>
-struct or_impl<
-          false
-        , false_, false_, false_, false_
-        >
-    : false_
-{
-};
-
-} // namespace aux
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
-    , typename T3 = false_, typename T4 = false_, typename T5 = false_
-    >
-struct or_
-
-    : aux::or_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4, T5
-        >
-
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , or_
-        , ( T1, T2, T3, T4, T5)
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC2(
-      2
-    , 5
-    , or_
-    )
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/no_ttp/placeholders.hpp b/boost/mpl/aux_/preprocessed/no_ttp/placeholders.hpp
deleted file mode 100644
index ff97364..0000000
--- a/boost/mpl/aux_/preprocessed/no_ttp/placeholders.hpp
+++ /dev/null
@@ -1,105 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright Peter Dimov 2001-2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/placeholders.hpp" header
-// -- DO NOT modify by hand!
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg< -1 > _;
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;
-}
-
-}}
-
-/// agurt, 17/mar/02: one more placeholder for the last 'apply#' 
-/// specialization
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<1> _1;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<2> _2;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<3> _3;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<4> _4;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<5> _5;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<6> _6;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6;
-}
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/no_ttp/plus.hpp b/boost/mpl/aux_/preprocessed/no_ttp/plus.hpp
deleted file mode 100644
index cecead7..0000000
--- a/boost/mpl/aux_/preprocessed/no_ttp/plus.hpp
+++ /dev/null
@@ -1,156 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/plus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct plus_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< plus_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< plus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct plus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct plus_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct plus_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct plus_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct plus
-    : plus< plus< plus< plus< N1,N2 >, N3>, N4>, N5>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , plus
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct plus< N1,N2,N3,N4,na >
-
-    : plus< plus< plus< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , plus
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct plus< N1,N2,N3,na,na >
-
-    : plus< plus< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , plus
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct plus< N1,N2,na,na,na >
-    : plus_impl<
-          typename plus_tag<N1>::type
-        , typename plus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , plus
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, plus)
-
-}}
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct plus_wknd
-{
-    BOOST_STATIC_CONSTANT(T, value  = (n1 + n2));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct plus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-        : aux::plus_wknd<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , N1::value
-            , N2::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/no_ttp/quote.hpp b/boost/mpl/aux_/preprocessed/no_ttp/quote.hpp
deleted file mode 100644
index e7a7f00..0000000
--- a/boost/mpl/aux_/preprocessed/no_ttp/quote.hpp
+++ /dev/null
@@ -1,11 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/quote.hpp" header
-// -- DO NOT modify by hand!
-
diff --git a/boost/mpl/aux_/preprocessed/no_ttp/reverse_fold_impl.hpp b/boost/mpl/aux_/preprocessed/no_ttp/reverse_fold_impl.hpp
deleted file mode 100644
index c468684..0000000
--- a/boost/mpl/aux_/preprocessed/no_ttp/reverse_fold_impl.hpp
+++ /dev/null
@@ -1,231 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/reverse_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl;
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< 0,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef fwd_state0 bkwd_state0;
-    typedef bkwd_state0 state;
-    typedef iter0 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< 1,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    
-
-    typedef fwd_state1 bkwd_state1;
-    typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-    typedef bkwd_state0 state;
-    typedef iter1 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< 2,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    
-
-    typedef fwd_state2 bkwd_state2;
-    typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-    typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter2 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< 3,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    
-
-    typedef fwd_state3 bkwd_state3;
-    typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-    typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-    typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter3 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< 4,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef fwd_state4 bkwd_state4;
-    typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3;
-    typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-    typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-    typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter4 iterator;
-};
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef reverse_fold_impl<
-          ( (N - 4) < 0 ? 0 : N - 4 )
-        , iter4
-        , Last
-        , fwd_state4
-        , BackwardOp
-        , ForwardOp
-        > nested_chunk;
-
-    typedef typename nested_chunk::state bkwd_state4;
-    typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3;
-    typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-    typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-    typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef typename nested_chunk::iterator iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< -1,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef reverse_fold_impl<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State, typename deref<First>::type>::type
-        , BackwardOp
-        , ForwardOp
-        > nested_step;
-
-    typedef typename apply2<
-          BackwardOp
-        , typename nested_step::state
-        , typename deref<First>::type
-        >::type state;
-
-    typedef typename nested_step::iterator iterator;
-};
-
-template<
-      typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< -1,Last,Last,State,BackwardOp,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/no_ttp/reverse_iter_fold_impl.hpp b/boost/mpl/aux_/preprocessed/no_ttp/reverse_iter_fold_impl.hpp
deleted file mode 100644
index 658f92a..0000000
--- a/boost/mpl/aux_/preprocessed/no_ttp/reverse_iter_fold_impl.hpp
+++ /dev/null
@@ -1,231 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/reverse_iter_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl;
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< 0,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef fwd_state0 bkwd_state0;
-    typedef bkwd_state0 state;
-    typedef iter0 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< 1,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    
-
-    typedef fwd_state1 bkwd_state1;
-    typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-    typedef bkwd_state0 state;
-    typedef iter1 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< 2,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    
-
-    typedef fwd_state2 bkwd_state2;
-    typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-    typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter2 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< 3,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    
-
-    typedef fwd_state3 bkwd_state3;
-    typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-    typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-    typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter3 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< 4,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef fwd_state4 bkwd_state4;
-    typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3;
-    typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-    typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-    typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter4 iterator;
-};
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef reverse_iter_fold_impl<
-          ( (N - 4) < 0 ? 0 : N - 4 )
-        , iter4
-        , Last
-        , fwd_state4
-        , BackwardOp
-        , ForwardOp
-        > nested_chunk;
-
-    typedef typename nested_chunk::state bkwd_state4;
-    typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3;
-    typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-    typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-    typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef typename nested_chunk::iterator iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< -1,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef reverse_iter_fold_impl<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2< ForwardOp,State,First >::type
-        , BackwardOp
-        , ForwardOp
-        > nested_step;
-
-    typedef typename apply2<
-          BackwardOp
-        , typename nested_step::state
-        , First
-        >::type state;
-
-    typedef typename nested_step::iterator iterator;
-};
-
-template<
-      typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< -1,Last,Last,State,BackwardOp,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/no_ttp/set.hpp b/boost/mpl/aux_/preprocessed/no_ttp/set.hpp
deleted file mode 100644
index 5721922..0000000
--- a/boost/mpl/aux_/preprocessed/no_ttp/set.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/set.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct set;
-
-template<
-     
-    >
-struct set<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set0<  >
-{
-    typedef set0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct set<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set1<T0>
-{
-    typedef typename set1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct set<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set2< T0,T1 >
-{
-    typedef typename set2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct set<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set3< T0,T1,T2 >
-{
-    typedef typename set3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct set<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set4< T0,T1,T2,T3 >
-{
-    typedef typename set4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct set<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set5< T0,T1,T2,T3,T4 >
-{
-    typedef typename set5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename set6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename set7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename set8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : set15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename set15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : set16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename set16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : set17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename set17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : set18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename set18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : set19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename set19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct set
-    : set20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename set20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/no_ttp/set_c.hpp b/boost/mpl/aux_/preprocessed/no_ttp/set_c.hpp
deleted file mode 100644
index cbeb932..0000000
--- a/boost/mpl/aux_/preprocessed/no_ttp/set_c.hpp
+++ /dev/null
@@ -1,328 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/set_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct set_c;
-
-template<
-      typename T
-    >
-struct set_c<
-          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set0_c<T>
-{
-    typedef typename set0_c<T>::type type;
-};
-
-template<
-      typename T, long C0
-    >
-struct set_c<
-          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set1_c< T,C0 >
-{
-    typedef typename set1_c< T,C0 >::type type;
-};
-
-template<
-      typename T, long C0, long C1
-    >
-struct set_c<
-          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set2_c< T,C0,C1 >
-{
-    typedef typename set2_c< T,C0,C1 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2
-    >
-struct set_c<
-          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set3_c< T,C0,C1,C2 >
-{
-    typedef typename set3_c< T,C0,C1,C2 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3
-    >
-struct set_c<
-          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set4_c< T,C0,C1,C2,C3 >
-{
-    typedef typename set4_c< T,C0,C1,C2,C3 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set5_c< T,C0,C1,C2,C3,C4 >
-{
-    typedef typename set5_c< T,C0,C1,C2,C3,C4 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set6_c< T,C0,C1,C2,C3,C4,C5 >
-{
-    typedef typename set6_c< T,C0,C1,C2,C3,C4,C5 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set7_c< T,C0,C1,C2,C3,C4,C5,C6 >
-{
-    typedef typename set7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX
-        >
-    : set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >
-{
-    typedef typename set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >
-{
-    typedef typename set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >
-{
-    typedef typename set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >
-{
-    typedef typename set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >
-{
-    typedef typename set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >
-{
-    typedef typename set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set14_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        >
-{
-    typedef typename set14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set15_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        >
-{
-    typedef typename set15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set16_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15
-        >
-{
-    typedef typename set16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set17_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16
-        >
-{
-    typedef typename set17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, LONG_MAX, LONG_MAX
-        >
-    : set18_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17
-        >
-{
-    typedef typename set18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, LONG_MAX
-        >
-    : set19_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18
-        >
-{
-    typedef typename set19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct set_c
-    : set20_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, C19
-        >
-{
-    typedef typename set20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/no_ttp/shift_left.hpp b/boost/mpl/aux_/preprocessed/no_ttp/shift_left.hpp
deleted file mode 100644
index 7ef4672..0000000
--- a/boost/mpl/aux_/preprocessed/no_ttp/shift_left.hpp
+++ /dev/null
@@ -1,110 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/shift_left.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct shift_left_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< shift_left_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< shift_left_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct shift_left_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_left_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_left_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct shift_left_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct shift_left
-
-    : shift_left_impl<
-          typename shift_left_tag<N1>::type
-        , typename shift_left_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left)
-
-}}
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename T, typename Shift, T n, Shift s >
-struct shift_left_wknd
-{
-    BOOST_STATIC_CONSTANT(T, value  = (n << s));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct shift_left_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N, typename S > struct apply
-        : aux::shift_left_wknd<
-              typename N::value_type
-            , typename S::value_type
-            , N::value
-            , S::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/no_ttp/shift_right.hpp b/boost/mpl/aux_/preprocessed/no_ttp/shift_right.hpp
deleted file mode 100644
index 91a98f7..0000000
--- a/boost/mpl/aux_/preprocessed/no_ttp/shift_right.hpp
+++ /dev/null
@@ -1,110 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/shift_right.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct shift_right_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< shift_right_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< shift_right_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct shift_right_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_right_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_right_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct shift_right_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct shift_right
-
-    : shift_right_impl<
-          typename shift_right_tag<N1>::type
-        , typename shift_right_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (N1, N2))
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right)
-
-}}
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename T, typename Shift, T n, Shift s >
-struct shift_right_wknd
-{
-    BOOST_STATIC_CONSTANT(T, value  = (n >> s));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct shift_right_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N, typename S > struct apply
-        : aux::shift_right_wknd<
-              typename N::value_type
-            , typename S::value_type
-            , N::value
-            , S::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/no_ttp/template_arity.hpp b/boost/mpl/aux_/preprocessed/no_ttp/template_arity.hpp
deleted file mode 100644
index 1164f0f..0000000
--- a/boost/mpl/aux_/preprocessed/no_ttp/template_arity.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/template_arity.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-template< bool >
-struct template_arity_impl
-{
-    template< typename F > struct result_
-        : mpl::int_< -1 >
-    {
-    };
-};
-
-template<>
-struct template_arity_impl<true>
-{
-    template< typename F > struct result_
-        : F::arity
-    {
-    };
-};
-
-template< typename F >
-struct template_arity
-    : template_arity_impl< ::boost::mpl::aux::has_rebind<F>::value >
-        ::template result_<F>
-{
-};
-
-}}}
-
diff --git a/boost/mpl/aux_/preprocessed/no_ttp/times.hpp b/boost/mpl/aux_/preprocessed/no_ttp/times.hpp
deleted file mode 100644
index d019b57..0000000
--- a/boost/mpl/aux_/preprocessed/no_ttp/times.hpp
+++ /dev/null
@@ -1,156 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/times.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct times_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< times_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< times_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct times_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct times_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct times_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct times_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct times
-    : times< times< times< times< N1,N2 >, N3>, N4>, N5>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          5
-        , times
-        , ( N1, N2, N3, N4, N5 )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct times< N1,N2,N3,N4,na >
-
-    : times< times< times< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , times
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct times< N1,N2,N3,na,na >
-
-    : times< times< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , times
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct times< N1,N2,na,na,na >
-    : times_impl<
-          typename times_tag<N1>::type
-        , typename times_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , times
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, times)
-
-}}
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename T, T n1, T n2 >
-struct times_wknd
-{
-    BOOST_STATIC_CONSTANT(T, value  = (n1 * n2));
-    typedef integral_c< T,value > type;
-};
-
-}
-
-template<>
-struct times_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-        : aux::times_wknd<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , N1::value
-            , N2::value
-            >::type
-
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/no_ttp/unpack_args.hpp b/boost/mpl/aux_/preprocessed/no_ttp/unpack_args.hpp
deleted file mode 100644
index 2194ce9..0000000
--- a/boost/mpl/aux_/preprocessed/no_ttp/unpack_args.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/unpack_args.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template< int size, typename F, typename Args >
-struct unpack_args_impl;
-
-template< typename F, typename Args >
-struct unpack_args_impl< 0,F,Args >
-    : apply0<
-          F
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 1,F,Args >
-    : apply1<
-          F
-        , typename at_c< Args,0 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 2,F,Args >
-    : apply2<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 3,F,Args >
-    : apply3<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        , typename at_c< Args,2 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 4,F,Args >
-    : apply4<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 5,F,Args >
-    : apply5<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
-        , typename at_c< Args,4 >::type
-        >
-{
-};
-
-}
-
-template<
-      typename F
-    >
-struct unpack_args
-{
-    template< typename Args > struct apply
-
-        : aux::unpack_args_impl< size<Args>::value,F, Args >
-
-    {
-    };
-};
-
-BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/no_ttp/vector.hpp b/boost/mpl/aux_/preprocessed/no_ttp/vector.hpp
deleted file mode 100644
index bfa9565..0000000
--- a/boost/mpl/aux_/preprocessed/no_ttp/vector.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/vector.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct vector;
-
-template<
-     
-    >
-struct vector<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector0<  >
-{
-    typedef vector0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct vector<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector1<T0>
-{
-    typedef typename vector1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct vector<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector2< T0,T1 >
-{
-    typedef typename vector2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct vector<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector3< T0,T1,T2 >
-{
-    typedef typename vector3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct vector<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector4< T0,T1,T2,T3 >
-{
-    typedef typename vector4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct vector<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector5< T0,T1,T2,T3,T4 >
-{
-    typedef typename vector5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : vector15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : vector16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : vector17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : vector18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : vector19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct vector
-    : vector20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/no_ttp/vector_c.hpp b/boost/mpl/aux_/preprocessed/no_ttp/vector_c.hpp
deleted file mode 100644
index 0f1560d..0000000
--- a/boost/mpl/aux_/preprocessed/no_ttp/vector_c.hpp
+++ /dev/null
@@ -1,309 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/vector_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct vector_c;
-
-template<
-      typename T
-    >
-struct vector_c<
-          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector0_c<T>
-{
-    typedef typename vector0_c<T>::type type;
-};
-
-template<
-      typename T, long C0
-    >
-struct vector_c<
-          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector1_c< T, T(C0) >
-{
-    typedef typename vector1_c< T, T(C0) >::type type;
-};
-
-template<
-      typename T, long C0, long C1
-    >
-struct vector_c<
-          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector2_c< T, T(C0), T(C1) >
-{
-    typedef typename vector2_c< T, T(C0), T(C1) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2
-    >
-struct vector_c<
-          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector3_c< T, T(C0), T(C1), T(C2) >
-{
-    typedef typename vector3_c< T, T(C0), T(C1), T(C2) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector4_c< T, T(C0), T(C1), T(C2), T(C3) >
-{
-    typedef typename vector4_c< T, T(C0), T(C1), T(C2), T(C3) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) >
-{
-    typedef typename vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) >
-{
-    typedef typename vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) >
-{
-    typedef typename vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX
-        >
-    : vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) >
-{
-    typedef typename vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) >
-{
-    typedef typename vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) >
-{
-    typedef typename vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) >
-{
-    typedef typename vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) >
-{
-    typedef typename vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) >
-{
-    typedef typename vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) >
-{
-    typedef typename vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) >
-{
-    typedef typename vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) >
-{
-    typedef typename vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) >
-{
-    typedef typename vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, LONG_MAX, LONG_MAX
-        >
-    : vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) >
-{
-    typedef typename vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, LONG_MAX
-        >
-    : vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) >
-{
-    typedef typename vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct vector_c
-    : vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) >
-{
-    typedef typename vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/plain/advance_backward.hpp b/boost/mpl/aux_/preprocessed/plain/advance_backward.hpp
deleted file mode 100644
index 26de94c..0000000
--- a/boost/mpl/aux_/preprocessed/plain/advance_backward.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/advance_backward.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-template< long N > struct advance_backward;
-template<>
-struct advance_backward<0>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef iter0 type;
-    };
-};
-
-template<>
-struct advance_backward<1>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef iter1 type;
-    };
-};
-
-template<>
-struct advance_backward<2>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef iter2 type;
-    };
-};
-
-template<>
-struct advance_backward<3>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef typename prior<iter2>::type iter3;
-        typedef iter3 type;
-    };
-};
-
-template<>
-struct advance_backward<4>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename prior<iter0>::type iter1;
-        typedef typename prior<iter1>::type iter2;
-        typedef typename prior<iter2>::type iter3;
-        typedef typename prior<iter3>::type iter4;
-        typedef iter4 type;
-    };
-};
-
-template< long N >
-struct advance_backward
-{
-    template< typename Iterator > struct apply
-    {
-        typedef typename apply_wrap1<
-              advance_backward<4>
-            , Iterator
-            >::type chunk_result_;
-
-        typedef typename apply_wrap1<
-              advance_backward<(
-                (N - 4) < 0
-                    ? 0
-                    : N - 4
-                    )>
-            , chunk_result_
-            >::type type;
-    };
-};
-
-}}}
-
diff --git a/boost/mpl/aux_/preprocessed/plain/advance_forward.hpp b/boost/mpl/aux_/preprocessed/plain/advance_forward.hpp
deleted file mode 100644
index b137cc7..0000000
--- a/boost/mpl/aux_/preprocessed/plain/advance_forward.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/advance_forward.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-template< long N > struct advance_forward;
-template<>
-struct advance_forward<0>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef iter0 type;
-    };
-};
-
-template<>
-struct advance_forward<1>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef iter1 type;
-    };
-};
-
-template<>
-struct advance_forward<2>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef iter2 type;
-    };
-};
-
-template<>
-struct advance_forward<3>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef typename next<iter2>::type iter3;
-        typedef iter3 type;
-    };
-};
-
-template<>
-struct advance_forward<4>
-{
-    template< typename Iterator > struct apply
-    {
-        typedef Iterator iter0;
-        typedef typename next<iter0>::type iter1;
-        typedef typename next<iter1>::type iter2;
-        typedef typename next<iter2>::type iter3;
-        typedef typename next<iter3>::type iter4;
-        typedef iter4 type;
-    };
-};
-
-template< long N >
-struct advance_forward
-{
-    template< typename Iterator > struct apply
-    {
-        typedef typename apply_wrap1<
-              advance_forward<4>
-            , Iterator
-            >::type chunk_result_;
-
-        typedef typename apply_wrap1<
-              advance_forward<(
-                (N - 4) < 0
-                    ? 0
-                    : N - 4
-                    )>
-            , chunk_result_
-            >::type type;
-    };
-};
-
-}}}
-
diff --git a/boost/mpl/aux_/preprocessed/plain/and.hpp b/boost/mpl/aux_/preprocessed/plain/and.hpp
deleted file mode 100644
index 163913f..0000000
--- a/boost/mpl/aux_/preprocessed/plain/and.hpp
+++ /dev/null
@@ -1,64 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/and.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template< bool C_, typename T1, typename T2, typename T3, typename T4 >
-struct and_impl
-    : false_
-{
-};
-
-template< typename T1, typename T2, typename T3, typename T4 >
-struct and_impl< true,T1,T2,T3,T4 >
-    : and_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4
-        , true_
-        >
-{
-};
-
-template<>
-struct and_impl<
-          true
-        , true_, true_, true_, true_
-        >
-    : true_
-{
-};
-
-} // namespace aux
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
-    , typename T3 = true_, typename T4 = true_, typename T5 = true_
-    >
-struct and_
-
-    : aux::and_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4, T5
-        >
-
-{
-};
-
-BOOST_MPL_AUX_NA_SPEC2(
-      2
-    , 5
-    , and_
-    )
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/plain/apply.hpp b/boost/mpl/aux_/preprocessed/plain/apply.hpp
deleted file mode 100644
index 89d9e4b..0000000
--- a/boost/mpl/aux_/preprocessed/plain/apply.hpp
+++ /dev/null
@@ -1,139 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/apply.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename F
-    >
-struct apply0
-
-    : apply_wrap0<
-          typename lambda<F>::type
-       
-        >
-{
-};
-
-template<
-      typename F
-    >
-struct apply< F,na,na,na,na,na >
-    : apply0<F>
-{
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply1
-
-    : apply_wrap1<
-          typename lambda<F>::type
-        , T1
-        >
-{
-};
-
-template<
-      typename F, typename T1
-    >
-struct apply< F,T1,na,na,na,na >
-    : apply1< F,T1 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply2
-
-    : apply_wrap2<
-          typename lambda<F>::type
-        , T1, T2
-        >
-{
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply< F,T1,T2,na,na,na >
-    : apply2< F,T1,T2 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply3
-
-    : apply_wrap3<
-          typename lambda<F>::type
-        , T1, T2, T3
-        >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply< F,T1,T2,T3,na,na >
-    : apply3< F,T1,T2,T3 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply4
-
-    : apply_wrap4<
-          typename lambda<F>::type
-        , T1, T2, T3, T4
-        >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply< F,T1,T2,T3,T4,na >
-    : apply4< F,T1,T2,T3,T4 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply5
-
-    : apply_wrap5<
-          typename lambda<F>::type
-        , T1, T2, T3, T4, T5
-        >
-{
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply
-    : apply5< F,T1,T2,T3,T4,T5 >
-{
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/plain/apply_fwd.hpp b/boost/mpl/aux_/preprocessed/plain/apply_fwd.hpp
deleted file mode 100644
index b2ed5d5..0000000
--- a/boost/mpl/aux_/preprocessed/plain/apply_fwd.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/apply_fwd.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename F, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na
-    >
-struct apply;
-
-template<
-      typename F
-    >
-struct apply0;
-
-template<
-      typename F, typename T1
-    >
-struct apply1;
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct apply2;
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct apply3;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct apply4;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct apply5;
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/plain/apply_wrap.hpp b/boost/mpl/aux_/preprocessed/plain/apply_wrap.hpp
deleted file mode 100644
index 34d51a1..0000000
--- a/boost/mpl/aux_/preprocessed/plain/apply_wrap.hpp
+++ /dev/null
@@ -1,84 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/apply_wrap.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename F
-
-    , typename has_apply_ = typename aux::has_apply<F>::type
-
-    >
-struct apply_wrap0
-
-    : F::template apply<  >
-{
-};
-
-template< typename F >
-struct apply_wrap0< F,true_ >
-    : F::apply
-{
-};
-
-template<
-      typename F, typename T1
-
-    >
-struct apply_wrap1
-
-    : F::template apply<T1>
-{
-};
-
-template<
-      typename F, typename T1, typename T2
-
-    >
-struct apply_wrap2
-
-    : F::template apply< T1,T2 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-
-    >
-struct apply_wrap3
-
-    : F::template apply< T1,T2,T3 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-
-    >
-struct apply_wrap4
-
-    : F::template apply< T1,T2,T3,T4 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-
-    >
-struct apply_wrap5
-
-    : F::template apply< T1,T2,T3,T4,T5 >
-{
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/plain/arg.hpp b/boost/mpl/aux_/preprocessed/plain/arg.hpp
deleted file mode 100644
index 6f2f8a8..0000000
--- a/boost/mpl/aux_/preprocessed/plain/arg.hpp
+++ /dev/null
@@ -1,123 +0,0 @@
-
-// Copyright Peter Dimov 2001-2002
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/arg.hpp" header
-// -- DO NOT modify by hand!
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-template<> struct arg< -1 >
-{
-    BOOST_STATIC_CONSTANT(int, value  = -1);
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U1 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<1>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 1);
-    typedef arg<2> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U1 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<2>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 2);
-    typedef arg<3> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U2 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<3>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 3);
-    typedef arg<4> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U3 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<4>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 4);
-    typedef arg<5> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U4 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-template<> struct arg<5>
-{
-    BOOST_STATIC_CONSTANT(int, value  = 5);
-    typedef arg<6> next;
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, tag)
-    BOOST_MPL_AUX_ARG_TYPEDEF(na, type)
-
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-        typedef U5 type;
-        BOOST_MPL_AUX_ASSERT_NOT_NA(type);
-    };
-};
-
-BOOST_MPL_AUX_NONTYPE_ARITY_SPEC(1,int, arg)
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
diff --git a/boost/mpl/aux_/preprocessed/plain/basic_bind.hpp b/boost/mpl/aux_/preprocessed/plain/basic_bind.hpp
deleted file mode 100644
index b070232..0000000
--- a/boost/mpl/aux_/preprocessed/plain/basic_bind.hpp
+++ /dev/null
@@ -1,440 +0,0 @@
-
-// Copyright Peter Dimov 2001
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/basic_bind.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template<
-      typename T, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg
-{
-    typedef T type;
-};
-
-template<
-      int N, typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg< arg<N>, U1, U2, U3, U4, U5 >
-{
-    typedef typename apply_wrap5<mpl::arg<N>, U1, U2, U3, U4, U5>::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg< bind< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 >
-{
-    typedef bind< F,T1,T2,T3,T4,T5 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename F
-    >
-struct bind0
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-
-     public:
-        typedef typename apply_wrap0<
-              f_
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind0<F>, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind0<F> f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
-
-template<
-      typename F
-    >
-struct bind< F,na,na,na,na,na >
-    : bind0<F>
-{
-};
-
-template<
-      typename F, typename T1
-    >
-struct bind1
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-
-     public:
-        typedef typename apply_wrap1<
-              f_
-            , typename t1::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename U1, typename U2, typename U3
-    , typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind1< F,T1 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind1< F,T1 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
-
-template<
-      typename F, typename T1
-    >
-struct bind< F,T1,na,na,na,na >
-    : bind1< F,T1 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-
-     public:
-        typedef typename apply_wrap2<
-              f_
-            , typename t1::type, typename t2::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename U1, typename U2
-    , typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind2< F,T1,T2 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind2< F,T1,T2 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind< F,T1,T2,na,na,na >
-    : bind2< F,T1,T2 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-
-     public:
-        typedef typename apply_wrap3<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename U1
-    , typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind3< F,T1,T2,T3 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind< F,T1,T2,T3,na,na >
-    : bind3< F,T1,T2,T3 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind4
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
-
-     public:
-        typedef typename apply_wrap4<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind4< F,T1,T2,T3,T4 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind< F,T1,T2,T3,T4,na >
-    : bind4< F,T1,T2,T3,T4 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind5
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
-        typedef aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 > t5;
-
-     public:
-        typedef typename apply_wrap5<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type, typename t5::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind5< F,T1,T2,T3,T4,T5 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
-
-/// primary template (not a specialization!)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind
-    : bind5< F,T1,T2,T3,T4,T5 >
-{
-};
-
-/// if_/eval_if specializations
-template< template< typename T1, typename T2, typename T3 > class F, typename Tag >
-struct quote3;
-
-template< typename T1, typename T2, typename T3 > struct if_;
-
-template<
-      typename Tag, typename T1, typename T2, typename T3
-    >
-struct bind3<
-      quote3< if_,Tag >
-    , T1, T2, T3
-    >
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef mpl::arg<1> n1;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef typename if_<
-              typename t1::type
-            , t2, t3
-            >::type f_;
-
-     public:
-        typedef typename f_::type type;
-    };
-};
-
-template<
-      template< typename T1, typename T2, typename T3 > class F, typename Tag
-    >
-struct quote3;
-
-template< typename T1, typename T2, typename T3 > struct eval_if;
-
-template<
-      typename Tag, typename T1, typename T2, typename T3
-    >
-struct bind3<
-      quote3< eval_if,Tag >
-    , T1, T2, T3
-    >
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef mpl::arg<1> n1;
-        typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
-        typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
-        typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
-        typedef typename eval_if<
-              typename t1::type
-            , t2, t3
-            >::type f_;
-
-     public:
-        typedef typename f_::type type;
-    };
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/plain/bind.hpp b/boost/mpl/aux_/preprocessed/plain/bind.hpp
deleted file mode 100644
index 0e9513a..0000000
--- a/boost/mpl/aux_/preprocessed/plain/bind.hpp
+++ /dev/null
@@ -1,561 +0,0 @@
-
-// Copyright Peter Dimov 2001
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/bind.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template<
-      typename T, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg
-{
-    typedef T type;
-};
-
-template<
-      typename T
-    , typename Arg
-    >
-struct replace_unnamed_arg
-{
-    typedef Arg next;
-    typedef T type;
-};
-
-template<
-      typename Arg
-    >
-struct replace_unnamed_arg< arg< -1 >, Arg >
-{
-    typedef typename Arg::next next;
-    typedef Arg type;
-};
-
-template<
-      int N, typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg< arg<N>, U1, U2, U3, U4, U5 >
-{
-    typedef typename apply_wrap5<mpl::arg<N>, U1, U2, U3, U4, U5>::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg< bind< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 >
-{
-    typedef bind< F,T1,T2,T3,T4,T5 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-template<
-      typename F
-    >
-struct bind0
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-     public:
-        typedef typename apply_wrap0<
-              f_
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind0<F>, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind0<F> f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
-
-template<
-      typename F
-    >
-struct bind< F,na,na,na,na,na >
-    : bind0<F>
-{
-};
-
-template<
-      typename F, typename T1
-    >
-struct bind1
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-     public:
-        typedef typename apply_wrap1<
-              f_
-            , typename t1::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename U1, typename U2, typename U3
-    , typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind1< F,T1 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind1< F,T1 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
-
-template<
-      typename F, typename T1
-    >
-struct bind< F,T1,na,na,na,na >
-    : bind1< F,T1 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-     public:
-        typedef typename apply_wrap2<
-              f_
-            , typename t1::type, typename t2::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename U1, typename U2
-    , typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind2< F,T1,T2 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind2< F,T1,T2 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind< F,T1,T2,na,na,na >
-    : bind2< F,T1,T2 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-     public:
-        typedef typename apply_wrap3<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename U1
-    , typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind3< F,T1,T2,T3 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind< F,T1,T2,T3,na,na >
-    : bind3< F,T1,T2,T3 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind4
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef aux::replace_unnamed_arg< T4,n4 > r4;
-        typedef typename r4::type a4;
-        typedef typename r4::next n5;
-        typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
-        ///
-     public:
-        typedef typename apply_wrap4<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename U1, typename U2, typename U3, typename U4, typename U5
-    >
-struct resolve_bind_arg<
-      bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind4< F,T1,T2,T3,T4 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind< F,T1,T2,T3,T4,na >
-    : bind4< F,T1,T2,T3,T4 >
-{
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind5
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
-        ///
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef aux::replace_unnamed_arg< T4,n4 > r4;
-        typedef typename r4::type a4;
-        typedef typename r4::next n5;
-        typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
-        ///
-        typedef aux::replace_unnamed_arg< T5,n5 > r5;
-        typedef typename r5::type a5;
-        typedef typename r5::next n6;
-        typedef aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 > t5;
-        ///
-     public:
-        typedef typename apply_wrap5<
-              f_
-            , typename t1::type, typename t2::type, typename t3::type
-            , typename t4::type, typename t5::type
-            >::type type;
-
-    };
-};
-
-namespace aux {
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename U1, typename U2, typename U3, typename U4
-    , typename U5
-    >
-struct resolve_bind_arg<
-      bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5
-    >
-{
-    typedef bind5< F,T1,T2,T3,T4,T5 > f_;
-    typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
-
-/// primary template (not a specialization!)
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind
-    : bind5< F,T1,T2,T3,T4,T5 >
-{
-};
-
-/// if_/eval_if specializations
-template< template< typename T1, typename T2, typename T3 > class F, typename Tag >
-struct quote3;
-
-template< typename T1, typename T2, typename T3 > struct if_;
-
-template<
-      typename Tag, typename T1, typename T2, typename T3
-    >
-struct bind3<
-      quote3< if_,Tag >
-    , T1, T2, T3
-    >
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef mpl::arg<1> n1;
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef typename if_<
-              typename t1::type
-            , t2, t3
-            >::type f_;
-
-     public:
-        typedef typename f_::type type;
-    };
-};
-
-template<
-      template< typename T1, typename T2, typename T3 > class F, typename Tag
-    >
-struct quote3;
-
-template< typename T1, typename T2, typename T3 > struct eval_if;
-
-template<
-      typename Tag, typename T1, typename T2, typename T3
-    >
-struct bind3<
-      quote3< eval_if,Tag >
-    , T1, T2, T3
-    >
-{
-    template<
-          typename U1 = na, typename U2 = na, typename U3 = na
-        , typename U4 = na, typename U5 = na
-        >
-    struct apply
-    {
-     private:
-        typedef mpl::arg<1> n1;
-        typedef aux::replace_unnamed_arg< T1,n1 > r1;
-        typedef typename r1::type a1;
-        typedef typename r1::next n2;
-        typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
-        ///
-        typedef aux::replace_unnamed_arg< T2,n2 > r2;
-        typedef typename r2::type a2;
-        typedef typename r2::next n3;
-        typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
-        ///
-        typedef aux::replace_unnamed_arg< T3,n3 > r3;
-        typedef typename r3::type a3;
-        typedef typename r3::next n4;
-        typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
-        ///
-        typedef typename eval_if<
-              typename t1::type
-            , t2, t3
-            >::type f_;
-
-     public:
-        typedef typename f_::type type;
-    };
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/plain/bind_fwd.hpp b/boost/mpl/aux_/preprocessed/plain/bind_fwd.hpp
deleted file mode 100644
index c4a5060..0000000
--- a/boost/mpl/aux_/preprocessed/plain/bind_fwd.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/bind_fwd.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename F, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na
-    >
-struct bind;
-
-template<
-      typename F
-    >
-struct bind0;
-
-template<
-      typename F, typename T1
-    >
-struct bind1;
-
-template<
-      typename F, typename T1, typename T2
-    >
-struct bind2;
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    >
-struct bind3;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    >
-struct bind4;
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct bind5;
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/plain/bitand.hpp b/boost/mpl/aux_/preprocessed/plain/bitand.hpp
deleted file mode 100644
index ee40fb3..0000000
--- a/boost/mpl/aux_/preprocessed/plain/bitand.hpp
+++ /dev/null
@@ -1,142 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/bitand.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitand_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< bitand_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< bitand_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitand_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitand_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitand_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitand_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct bitand_
-    : bitand_< bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>, N5>
-{
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct bitand_< N1,N2,N3,N4,na >
-
-    : bitand_< bitand_< bitand_< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitand_
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct bitand_< N1,N2,N3,na,na >
-
-    : bitand_< bitand_< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitand_
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct bitand_< N1,N2,na,na,na >
-    : bitand_impl<
-          typename bitand_tag<N1>::type
-        , typename bitand_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitand_
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct bitand_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  & BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/plain/bitor.hpp b/boost/mpl/aux_/preprocessed/plain/bitor.hpp
deleted file mode 100644
index 1e28d3b..0000000
--- a/boost/mpl/aux_/preprocessed/plain/bitor.hpp
+++ /dev/null
@@ -1,142 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/bitor.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitor_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< bitor_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< bitor_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitor_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitor_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitor_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitor_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct bitor_
-    : bitor_< bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>, N5>
-{
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct bitor_< N1,N2,N3,N4,na >
-
-    : bitor_< bitor_< bitor_< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitor_
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct bitor_< N1,N2,N3,na,na >
-
-    : bitor_< bitor_< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitor_
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct bitor_< N1,N2,na,na,na >
-    : bitor_impl<
-          typename bitor_tag<N1>::type
-        , typename bitor_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitor_
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct bitor_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  | BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/plain/bitxor.hpp b/boost/mpl/aux_/preprocessed/plain/bitxor.hpp
deleted file mode 100644
index 2ba879d..0000000
--- a/boost/mpl/aux_/preprocessed/plain/bitxor.hpp
+++ /dev/null
@@ -1,142 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/bitxor.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct bitxor_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< bitxor_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< bitxor_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct bitxor_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitxor_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct bitxor_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct bitxor_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct bitxor_
-    : bitxor_< bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>, N5>
-{
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct bitxor_< N1,N2,N3,N4,na >
-
-    : bitxor_< bitxor_< bitxor_< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitxor_
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct bitxor_< N1,N2,N3,na,na >
-
-    : bitxor_< bitxor_< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitxor_
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct bitxor_< N1,N2,na,na,na >
-    : bitxor_impl<
-          typename bitxor_tag<N1>::type
-        , typename bitxor_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , bitxor_
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct bitxor_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  ^ BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/plain/deque.hpp b/boost/mpl/aux_/preprocessed/plain/deque.hpp
deleted file mode 100644
index de67398..0000000
--- a/boost/mpl/aux_/preprocessed/plain/deque.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/deque.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct deque;
-
-template<
-     
-    >
-struct deque<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector0<  >
-{
-    typedef vector0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct deque<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector1<T0>
-{
-    typedef typename vector1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct deque<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector2< T0,T1 >
-{
-    typedef typename vector2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct deque<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector3< T0,T1,T2 >
-{
-    typedef typename vector3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct deque<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector4< T0,T1,T2,T3 >
-{
-    typedef typename vector4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct deque<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector5< T0,T1,T2,T3,T4 >
-{
-    typedef typename vector5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : vector15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : vector16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : vector17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : vector18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18
-    >
-struct deque<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : vector19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct deque
-    : vector20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/plain/divides.hpp b/boost/mpl/aux_/preprocessed/plain/divides.hpp
deleted file mode 100644
index f365d62..0000000
--- a/boost/mpl/aux_/preprocessed/plain/divides.hpp
+++ /dev/null
@@ -1,141 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/divides.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct divides_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< divides_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< divides_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct divides_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct divides_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct divides_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct divides_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct divides
-    : divides< divides< divides< divides< N1,N2 >, N3>, N4>, N5>
-{
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct divides< N1,N2,N3,N4,na >
-
-    : divides< divides< divides< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , divides
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct divides< N1,N2,N3,na,na >
-
-    : divides< divides< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , divides
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct divides< N1,N2,na,na,na >
-    : divides_impl<
-          typename divides_tag<N1>::type
-        , typename divides_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , divides
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, divides)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct divides_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  / BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/plain/equal_to.hpp b/boost/mpl/aux_/preprocessed/plain/equal_to.hpp
deleted file mode 100644
index bbc6bf0..0000000
--- a/boost/mpl/aux_/preprocessed/plain/equal_to.hpp
+++ /dev/null
@@ -1,92 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/equal_to.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct equal_to_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct equal_to_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct equal_to_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct equal_to_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct equal_to_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct equal_to
-
-    : equal_to_impl<
-          typename equal_to_tag<N1>::type
-        , typename equal_to_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, equal_to)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct equal_to_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value  == BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/plain/fold_impl.hpp b/boost/mpl/aux_/preprocessed/plain/fold_impl.hpp
deleted file mode 100644
index 9e7a293..0000000
--- a/boost/mpl/aux_/preprocessed/plain/fold_impl.hpp
+++ /dev/null
@@ -1,180 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl;
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 0,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef state0 state;
-    typedef iter0 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 1,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    
-
-    typedef state1 state;
-    typedef iter1 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 2,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    
-
-    typedef state2 state;
-    typedef iter2 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 3,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    
-
-    typedef state3 state;
-    typedef iter3 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< 4,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp, state0, typename deref<iter0>::type >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, state1, typename deref<iter1>::type >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, state2, typename deref<iter2>::type >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp, state3, typename deref<iter3>::type >::type state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef state4 state;
-    typedef iter4 iterator;
-};
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl
-{
-    typedef fold_impl<
-          4
-        , First
-        , Last
-        , State
-        , ForwardOp
-        > chunk_;
-
-    typedef fold_impl<
-          ( (N - 4) < 0 ? 0 : N - 4 )
-        , typename chunk_::iterator
-        , Last
-        , typename chunk_::state
-        , ForwardOp
-        > res_;
-
-    typedef typename res_::state state;
-    typedef typename res_::iterator iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< -1,First,Last,State,ForwardOp >
-    : fold_impl<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State, typename deref<First>::type>::type
-        , ForwardOp
-        >
-{
-};
-
-template<
-      typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct fold_impl< -1,Last,Last,State,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/plain/full_lambda.hpp b/boost/mpl/aux_/preprocessed/plain/full_lambda.hpp
deleted file mode 100644
index bf81873..0000000
--- a/boost/mpl/aux_/preprocessed/plain/full_lambda.hpp
+++ /dev/null
@@ -1,554 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/full_lambda.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template<
-      bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false
-    , bool C5 = false
-    >
-struct lambda_or
-    : true_
-{
-};
-
-template<>
-struct lambda_or< false,false,false,false,false >
-    : false_
-{
-};
-
-} // namespace aux
-
-template<
-      typename T
-    , typename Tag
-   
-    >
-struct lambda
-{
-    typedef false_ is_le;
-    typedef T result_;
-    typedef T type;
-};
-
-template<
-      typename T
-    >
-struct is_lambda_expression
-    : lambda<T>::is_le
-{
-};
-
-template< int N, typename Tag >
-struct lambda< arg<N>, Tag >
-{
-    typedef true_ is_le;
-    typedef mpl::arg<N> result_; // qualified for the sake of MIPSpro 7.41
-    typedef mpl::protect<result_> type;
-};
-
-template<
-      typename F
-    , typename Tag
-    >
-struct lambda<
-          bind0<F>
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind0<
-          F
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1 > class F
-    , typename L1
-    >
-struct le_result1
-{
-    typedef F<
-          typename L1::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1 > class F
-    , typename L1
-    >
-struct le_result1< true_,Tag,F,L1 >
-{
-    typedef bind1<
-          quote1< F,Tag >
-        , typename L1::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1 > class F
-    , typename T1
-    , typename Tag
-    >
-struct lambda<
-          F<T1>
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef typename l1::is_le is_le1;
-    typedef typename aux::lambda_or<
-          is_le1::value
-        >::type is_le;
-
-    typedef aux::le_result1<
-          is_le, Tag, F, l1
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1
-    , typename Tag
-    >
-struct lambda<
-          bind1< F,T1 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind1<
-          F
-        , T1
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2 > class F
-    , typename L1, typename L2
-    >
-struct le_result2
-{
-    typedef F<
-          typename L1::type, typename L2::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2 > class F
-    , typename L1, typename L2
-    >
-struct le_result2< true_,Tag,F,L1,L2 >
-{
-    typedef bind2<
-          quote2< F,Tag >
-        , typename L1::result_, typename L2::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2 > class F
-    , typename T1, typename T2
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value
-        >::type is_le;
-
-    typedef aux::le_result2<
-          is_le, Tag, F, l1, l2
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2
-    , typename Tag
-    >
-struct lambda<
-          bind2< F,T1,T2 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind2<
-          F
-        , T1, T2
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3 > class F
-    , typename L1, typename L2, typename L3
-    >
-struct le_result3
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3 > class F
-    , typename L1, typename L2, typename L3
-    >
-struct le_result3< true_,Tag,F,L1,L2,L3 >
-{
-    typedef bind3<
-          quote3< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2, typename P3 > class F
-    , typename T1, typename T2, typename T3
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value
-        >::type is_le;
-
-    typedef aux::le_result3<
-          is_le, Tag, F, l1, l2, l3
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3
-    , typename Tag
-    >
-struct lambda<
-          bind3< F,T1,T2,T3 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind3<
-          F
-        , T1, T2, T3
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename L1, typename L2, typename L3, typename L4
-    >
-struct le_result4
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        , typename L4::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename L1, typename L2, typename L3, typename L4
-    >
-struct le_result4< true_,Tag,F,L1,L2,L3,L4 >
-{
-    typedef bind4<
-          quote4< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        , typename L4::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename T1, typename T2, typename T3, typename T4
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3,T4 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    typedef lambda< T4,Tag > l4;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    typedef typename l4::is_le is_le4;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value, is_le4::value
-        >::type is_le;
-
-    typedef aux::le_result4<
-          is_le, Tag, F, l1, l2, l3, l4
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename Tag
-    >
-struct lambda<
-          bind4< F,T1,T2,T3,T4 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind4<
-          F
-        , T1, T2, T3, T4
-        > result_;
-
-    typedef result_ type;
-};
-
-namespace aux {
-
-template<
-      typename IsLE, typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
-    , typename L1, typename L2, typename L3, typename L4, typename L5
-    >
-struct le_result5
-{
-    typedef F<
-          typename L1::type, typename L2::type, typename L3::type
-        , typename L4::type, typename L5::type
-        > result_;
-
-    typedef result_ type;
-};
-
-template<
-      typename Tag
-    , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
-    , typename L1, typename L2, typename L3, typename L4, typename L5
-    >
-struct le_result5< true_,Tag,F,L1,L2,L3,L4,L5 >
-{
-    typedef bind5<
-          quote5< F,Tag >
-        , typename L1::result_, typename L2::result_, typename L3::result_
-        , typename L4::result_, typename L5::result_
-        > result_;
-
-    typedef mpl::protect<result_> type;
-};
-
-} // namespace aux
-
-template<
-      template<
-          typename P1, typename P2, typename P3, typename P4
-        , typename P5
-        >
-      class F
-    , typename T1, typename T2, typename T3, typename T4, typename T5
-    , typename Tag
-    >
-struct lambda<
-          F< T1,T2,T3,T4,T5 >
-        , Tag
-       
-        >
-{
-    typedef lambda< T1,Tag > l1;
-    typedef lambda< T2,Tag > l2;
-    typedef lambda< T3,Tag > l3;
-    typedef lambda< T4,Tag > l4;
-    typedef lambda< T5,Tag > l5;
-    
-    typedef typename l1::is_le is_le1;
-    typedef typename l2::is_le is_le2;
-    typedef typename l3::is_le is_le3;
-    typedef typename l4::is_le is_le4;
-    typedef typename l5::is_le is_le5;
-    
-
-    typedef typename aux::lambda_or<
-          is_le1::value, is_le2::value, is_le3::value, is_le4::value
-        , is_le5::value
-        >::type is_le;
-
-    typedef aux::le_result5<
-          is_le, Tag, F, l1, l2, l3, l4, l5
-        > le_result_;
-
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    , typename Tag
-    >
-struct lambda<
-          bind5< F,T1,T2,T3,T4,T5 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind5<
-          F
-        , T1, T2, T3, T4, T5
-        > result_;
-
-    typedef result_ type;
-};
-
-/// special case for 'protect'
-template< typename T, typename Tag >
-struct lambda< mpl::protect<T>, Tag >
-{
-    typedef false_ is_le;
-    typedef mpl::protect<T> result_;
-    typedef result_ type;
-};
-
-/// specializations for the main 'bind' form
-
-template<
-      typename F, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    , typename Tag
-    >
-struct lambda<
-          bind< F,T1,T2,T3,T4,T5 >
-        , Tag
-       
-        >
-{
-    typedef false_ is_le;
-    typedef bind< F,T1,T2,T3,T4,T5 > result_;
-    typedef result_ type;
-};
-
-/// workaround for MWCW 8.3+/EDG < 303, leads to ambiguity on Digital Mars
-
-template<
-      typename F, typename Tag1, typename Tag2
-    >
-struct lambda<
-          lambda< F,Tag1 >
-        , Tag2
-        >
-{
-    typedef lambda< F,Tag2 > l1;
-    typedef lambda< Tag1,Tag2 > l2;
-    typedef typename l1::is_le is_le;
-    typedef aux::le_result2<is_le, Tag2, mpl::lambda, l1, l2> le_result_;
-    typedef typename le_result_::result_ result_;
-    typedef typename le_result_::type type;
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, lambda)
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/plain/greater.hpp b/boost/mpl/aux_/preprocessed/plain/greater.hpp
deleted file mode 100644
index 38c8bb3..0000000
--- a/boost/mpl/aux_/preprocessed/plain/greater.hpp
+++ /dev/null
@@ -1,92 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/greater.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct greater_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< greater_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< greater_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct greater_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct greater_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct greater
-
-    : greater_impl<
-          typename greater_tag<N1>::type
-        , typename greater_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, greater)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct greater_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value > BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/plain/greater_equal.hpp b/boost/mpl/aux_/preprocessed/plain/greater_equal.hpp
deleted file mode 100644
index 2aa8370..0000000
--- a/boost/mpl/aux_/preprocessed/plain/greater_equal.hpp
+++ /dev/null
@@ -1,92 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/greater_equal.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct greater_equal_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< greater_equal_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct greater_equal_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_equal_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct greater_equal_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct greater_equal_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct greater_equal
-
-    : greater_equal_impl<
-          typename greater_equal_tag<N1>::type
-        , typename greater_equal_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, greater_equal)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct greater_equal_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/plain/inherit.hpp b/boost/mpl/aux_/preprocessed/plain/inherit.hpp
deleted file mode 100644
index 8b34e71..0000000
--- a/boost/mpl/aux_/preprocessed/plain/inherit.hpp
+++ /dev/null
@@ -1,125 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/inherit.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
-    >
-struct inherit2
-    : T1, T2
-{
-    typedef inherit2 type;
-};
-
-template< typename T1 >
-struct inherit2< T1,empty_base >
-{
-    typedef T1 type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (T1, empty_base))
-};
-
-template< typename T2 >
-struct inherit2< empty_base,T2 >
-{
-    typedef T2 type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, T2))
-};
-
-template<>
-struct inherit2< empty_base,empty_base >
-{
-    typedef empty_base type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base, empty_base))
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, inherit2)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na
-    >
-struct inherit3
-    : inherit2<
-          typename inherit2<
-              T1, T2
-            >::type
-        , T3
-        >
-{
-};
-
-BOOST_MPL_AUX_NA_SPEC(3, inherit3)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
-    >
-struct inherit4
-    : inherit2<
-          typename inherit3<
-              T1, T2, T3
-            >::type
-        , T4
-        >
-{
-};
-
-BOOST_MPL_AUX_NA_SPEC(4, inherit4)
-
-template<
-      typename T1 = na, typename T2 = na, typename T3 = na, typename T4 = na
-    , typename T5 = na
-    >
-struct inherit5
-    : inherit2<
-          typename inherit4<
-              T1, T2, T3, T4
-            >::type
-        , T5
-        >
-{
-};
-
-BOOST_MPL_AUX_NA_SPEC(5, inherit5)
-
-/// primary template
-
-template<
-      typename T1 = empty_base, typename T2 = empty_base
-    , typename T3 = empty_base, typename T4 = empty_base
-    , typename T5 = empty_base
-    >
-struct inherit
-    : inherit5< T1,T2,T3,T4,T5 >
-{
-};
-
-template<>
-struct inherit< na,na,na,na,na >
-{
-    template<
-
-          typename T1 = empty_base, typename T2 = empty_base
-        , typename T3 = empty_base, typename T4 = empty_base
-        , typename T5 = empty_base
-
-        >
-    struct apply
-        : inherit< T1,T2,T3,T4,T5 >
-    {
-    };
-};
-
-BOOST_MPL_AUX_NA_SPEC_LAMBDA(5, inherit)
-BOOST_MPL_AUX_NA_SPEC_ARITY(5, inherit)
-BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(5, 5, inherit)
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/plain/iter_fold_if_impl.hpp b/boost/mpl/aux_/preprocessed/plain/iter_fold_if_impl.hpp
deleted file mode 100644
index 6951795..0000000
--- a/boost/mpl/aux_/preprocessed/plain/iter_fold_if_impl.hpp
+++ /dev/null
@@ -1,133 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright David Abrahams 2001-2002
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/iter_fold_if_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-template< typename Iterator, typename State >
-struct iter_fold_if_null_step
-{
-    typedef State state;
-    typedef Iterator iterator;
-};
-
-template< bool >
-struct iter_fold_if_step_impl
-{
-    template<
-          typename Iterator
-        , typename State
-        , typename StateOp
-        , typename IteratorOp
-        >
-    struct result_
-    {
-        typedef typename apply2< StateOp,State,Iterator >::type state;
-        typedef typename IteratorOp::type iterator;
-    };
-};
-
-template<>
-struct iter_fold_if_step_impl<false>
-{
-    template<
-          typename Iterator
-        , typename State
-        , typename StateOp
-        , typename IteratorOp
-        >
-    struct result_
-    {
-        typedef State state;
-        typedef Iterator iterator;
-    };
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename ForwardOp
-    , typename Predicate
-    >
-struct iter_fold_if_forward_step
-{
-    typedef typename apply2< Predicate,State,Iterator >::type not_last;
-    typedef typename iter_fold_if_step_impl<
-          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
-        >::template result_< Iterator,State,ForwardOp, mpl::next<Iterator> > impl_;
-
-    typedef typename impl_::state state;
-    typedef typename impl_::iterator iterator;
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename BackwardOp
-    , typename Predicate
-    >
-struct iter_fold_if_backward_step
-{
-    typedef typename apply2< Predicate,State,Iterator >::type not_last;
-    typedef typename iter_fold_if_step_impl<
-          BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
-        >::template result_< Iterator,State,BackwardOp, identity<Iterator> > impl_;
-
-    typedef typename impl_::state state;
-    typedef typename impl_::iterator iterator;
-};
-
-template<
-      typename Iterator
-    , typename State
-    , typename ForwardOp
-    , typename ForwardPredicate
-    , typename BackwardOp
-    , typename BackwardPredicate
-    >
-struct iter_fold_if_impl
-{
- private:
-    typedef iter_fold_if_null_step< Iterator,State > forward_step0;
-    typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1;
-    typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2;
-    typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3;
-    typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4;
-    
-
-    typedef typename if_<
-          typename forward_step4::not_last
-        , iter_fold_if_impl<
-              typename forward_step4::iterator
-            , typename forward_step4::state
-            , ForwardOp
-            , ForwardPredicate
-            , BackwardOp
-            , BackwardPredicate
-            >
-        , iter_fold_if_null_step<
-              typename forward_step4::iterator
-            , typename forward_step4::state
-            >
-        >::type backward_step4;
-
-    typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3;
-    typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2;
-    typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1;
-    typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0;
-    
-
- public:
-    typedef typename backward_step0::state state;
-    typedef typename backward_step4::iterator iterator;
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/plain/iter_fold_impl.hpp b/boost/mpl/aux_/preprocessed/plain/iter_fold_impl.hpp
deleted file mode 100644
index 805790e..0000000
--- a/boost/mpl/aux_/preprocessed/plain/iter_fold_impl.hpp
+++ /dev/null
@@ -1,180 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/iter_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl;
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 0,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef state0 state;
-    typedef iter0 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 1,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    
-
-    typedef state1 state;
-    typedef iter1 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 2,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    
-
-    typedef state2 state;
-    typedef iter2 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 3,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,state2,iter2 >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    
-
-    typedef state3 state;
-    typedef iter3 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< 4,First,Last,State,ForwardOp >
-{
-    typedef First iter0;
-    typedef State state0;
-    typedef typename apply2< ForwardOp,state0,iter0 >::type state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,state1,iter1 >::type state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,state2,iter2 >::type state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp,state3,iter3 >::type state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef state4 state;
-    typedef iter4 iterator;
-};
-
-template<
-      int N
-    , typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl
-{
-    typedef iter_fold_impl<
-          4
-        , First
-        , Last
-        , State
-        , ForwardOp
-        > chunk_;
-
-    typedef iter_fold_impl<
-          ( (N - 4) < 0 ? 0 : N - 4 )
-        , typename chunk_::iterator
-        , Last
-        , typename chunk_::state
-        , ForwardOp
-        > res_;
-
-    typedef typename res_::state state;
-    typedef typename res_::iterator iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< -1,First,Last,State,ForwardOp >
-    : iter_fold_impl<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2< ForwardOp,State,First >::type
-        , ForwardOp
-        >
-{
-};
-
-template<
-      typename Last
-    , typename State
-    , typename ForwardOp
-    >
-struct iter_fold_impl< -1,Last,Last,State,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/plain/lambda_no_ctps.hpp b/boost/mpl/aux_/preprocessed/plain/lambda_no_ctps.hpp
deleted file mode 100644
index f8f109c..0000000
--- a/boost/mpl/aux_/preprocessed/plain/lambda_no_ctps.hpp
+++ /dev/null
@@ -1,228 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/lambda_no_ctps.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template<
-      bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false
-    , bool C5 = false
-    >
-struct lambda_or
-    : true_
-{
-};
-
-template<>
-struct lambda_or< false,false,false,false,false >
-    : false_
-{
-};
-
-template< typename Arity > struct lambda_impl
-{
-    template< typename T, typename Tag, typename Protect > struct result_
-    {
-        typedef T type;
-        typedef is_placeholder<T> is_le;
-    };
-};
-
-template<> struct lambda_impl< int_<1> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef typename l1::is_le is_le1;
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value
-            > is_le;
-
-        typedef bind1<
-              typename F::rebind
-            , typename l1::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<2> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        
-
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value
-            > is_le;
-
-        typedef bind2<
-              typename F::rebind
-            , typename l1::type, typename l2::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<3> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        
-
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value
-            > is_le;
-
-        typedef bind3<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<4> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        typedef lambda< typename F::arg4, Tag, false_ > l4;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        typedef typename l4::is_le is_le4;
-        
-
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value
-            > is_le;
-
-        typedef bind4<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            , typename l4::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-template<> struct lambda_impl< int_<5> >
-{
-    template< typename F, typename Tag, typename Protect > struct result_
-    {
-        typedef lambda< typename F::arg1, Tag, false_ > l1;
-        typedef lambda< typename F::arg2, Tag, false_ > l2;
-        typedef lambda< typename F::arg3, Tag, false_ > l3;
-        typedef lambda< typename F::arg4, Tag, false_ > l4;
-        typedef lambda< typename F::arg5, Tag, false_ > l5;
-        
-        typedef typename l1::is_le is_le1;
-        typedef typename l2::is_le is_le2;
-        typedef typename l3::is_le is_le3;
-        typedef typename l4::is_le is_le4;
-        typedef typename l5::is_le is_le5;
-        
-
-        typedef aux::lambda_or<
-              BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value
-            > is_le;
-
-        typedef bind5<
-              typename F::rebind
-            , typename l1::type, typename l2::type, typename l3::type
-            , typename l4::type, typename l5::type
-            > bind_;
-
-        typedef typename if_<
-              is_le
-            , if_< Protect, mpl::protect<bind_>, bind_ >
-            , identity<F>
-            >::type type_;
-
-        typedef typename type_::type type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename T
-    , typename Tag
-    , typename Protect
-    >
-struct lambda
-{
-    /// Metafunction forwarding confuses MSVC 6.x
-    typedef typename aux::template_arity<T>::type arity_;
-    typedef typename aux::lambda_impl<arity_>
-        ::template result_< T,Tag,Protect > l_;
-
-    typedef typename l_::type type;
-    typedef typename l_::is_le is_le;
-};
-
-BOOST_MPL_AUX_NA_SPEC2(1, 3, lambda)
-
-template<
-      typename T
-    >
-struct is_lambda_expression
-    : lambda<T>::is_le
-{
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/plain/less.hpp b/boost/mpl/aux_/preprocessed/plain/less.hpp
deleted file mode 100644
index 928d0e3..0000000
--- a/boost/mpl/aux_/preprocessed/plain/less.hpp
+++ /dev/null
@@ -1,92 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/less.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct less_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< less_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< less_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct less_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct less_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct less
-
-    : less_impl<
-          typename less_tag<N1>::type
-        , typename less_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, less)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct less_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > BOOST_MPL_AUX_VALUE_WKND(N1)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/plain/less_equal.hpp b/boost/mpl/aux_/preprocessed/plain/less_equal.hpp
deleted file mode 100644
index 364cd96..0000000
--- a/boost/mpl/aux_/preprocessed/plain/less_equal.hpp
+++ /dev/null
@@ -1,92 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/less_equal.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct less_equal_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< less_equal_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< less_equal_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct less_equal_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_equal_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct less_equal_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct less_equal_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct less_equal
-
-    : less_equal_impl<
-          typename less_equal_tag<N1>::type
-        , typename less_equal_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, less_equal)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct less_equal_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/plain/list.hpp b/boost/mpl/aux_/preprocessed/plain/list.hpp
deleted file mode 100644
index 4e8ad53..0000000
--- a/boost/mpl/aux_/preprocessed/plain/list.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/list.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct list;
-
-template<
-     
-    >
-struct list<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list0<  >
-{
-    typedef list0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct list<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list1<T0>
-{
-    typedef typename list1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct list<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list2< T0,T1 >
-{
-    typedef typename list2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct list<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list3< T0,T1,T2 >
-{
-    typedef typename list3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct list<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list4< T0,T1,T2,T3 >
-{
-    typedef typename list4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct list<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list5< T0,T1,T2,T3,T4 >
-{
-    typedef typename list5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename list6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename list7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename list8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename list11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename list12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename list13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename list14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : list15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename list15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : list16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename list16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : list17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename list17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : list18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename list18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18
-    >
-struct list<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : list19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename list19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct list
-    : list20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename list20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/plain/list_c.hpp b/boost/mpl/aux_/preprocessed/plain/list_c.hpp
deleted file mode 100644
index 0b48a7f..0000000
--- a/boost/mpl/aux_/preprocessed/plain/list_c.hpp
+++ /dev/null
@@ -1,328 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/list_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct list_c;
-
-template<
-      typename T
-    >
-struct list_c<
-          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list0_c<T>
-{
-    typedef typename list0_c<T>::type type;
-};
-
-template<
-      typename T, long C0
-    >
-struct list_c<
-          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list1_c< T,C0 >
-{
-    typedef typename list1_c< T,C0 >::type type;
-};
-
-template<
-      typename T, long C0, long C1
-    >
-struct list_c<
-          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list2_c< T,C0,C1 >
-{
-    typedef typename list2_c< T,C0,C1 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2
-    >
-struct list_c<
-          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list3_c< T,C0,C1,C2 >
-{
-    typedef typename list3_c< T,C0,C1,C2 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3
-    >
-struct list_c<
-          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list4_c< T,C0,C1,C2,C3 >
-{
-    typedef typename list4_c< T,C0,C1,C2,C3 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list5_c< T,C0,C1,C2,C3,C4 >
-{
-    typedef typename list5_c< T,C0,C1,C2,C3,C4 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list6_c< T,C0,C1,C2,C3,C4,C5 >
-{
-    typedef typename list6_c< T,C0,C1,C2,C3,C4,C5 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list7_c< T,C0,C1,C2,C3,C4,C5,C6 >
-{
-    typedef typename list7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX
-        >
-    : list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >
-{
-    typedef typename list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >
-{
-    typedef typename list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >
-{
-    typedef typename list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >
-{
-    typedef typename list11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >
-{
-    typedef typename list12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >
-{
-    typedef typename list13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list14_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        >
-{
-    typedef typename list14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list15_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        >
-{
-    typedef typename list15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list16_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15
-        >
-{
-    typedef typename list16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : list17_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16
-        >
-{
-    typedef typename list17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, LONG_MAX, LONG_MAX
-        >
-    : list18_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17
-        >
-{
-    typedef typename list18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18
-    >
-struct list_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, LONG_MAX
-        >
-    : list19_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18
-        >
-{
-    typedef typename list19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct list_c
-    : list20_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, C19
-        >
-{
-    typedef typename list20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/plain/map.hpp b/boost/mpl/aux_/preprocessed/plain/map.hpp
deleted file mode 100644
index 837e013..0000000
--- a/boost/mpl/aux_/preprocessed/plain/map.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/map.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct map;
-
-template<
-     
-    >
-struct map<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map0<  >
-{
-    typedef map0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct map<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map1<T0>
-{
-    typedef typename map1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct map<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map2< T0,T1 >
-{
-    typedef typename map2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct map<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map3< T0,T1,T2 >
-{
-    typedef typename map3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct map<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map4< T0,T1,T2,T3 >
-{
-    typedef typename map4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct map<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map5< T0,T1,T2,T3,T4 >
-{
-    typedef typename map5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename map6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename map7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename map8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename map9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename map10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename map11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename map12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename map13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename map14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : map15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename map15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : map16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename map16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : map17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename map17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : map18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename map18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18
-    >
-struct map<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : map19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename map19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct map
-    : map20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename map20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/plain/minus.hpp b/boost/mpl/aux_/preprocessed/plain/minus.hpp
deleted file mode 100644
index 0b8b5ce..0000000
--- a/boost/mpl/aux_/preprocessed/plain/minus.hpp
+++ /dev/null
@@ -1,141 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/minus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct minus_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< minus_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< minus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct minus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct minus_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct minus_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct minus_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct minus
-    : minus< minus< minus< minus< N1,N2 >, N3>, N4>, N5>
-{
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct minus< N1,N2,N3,N4,na >
-
-    : minus< minus< minus< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , minus
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct minus< N1,N2,N3,na,na >
-
-    : minus< minus< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , minus
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct minus< N1,N2,na,na,na >
-    : minus_impl<
-          typename minus_tag<N1>::type
-        , typename minus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , minus
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, minus)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct minus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  - BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/plain/modulus.hpp b/boost/mpl/aux_/preprocessed/plain/modulus.hpp
deleted file mode 100644
index 6a64e49..0000000
--- a/boost/mpl/aux_/preprocessed/plain/modulus.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/modulus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct modulus_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< modulus_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< modulus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct modulus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct modulus_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct modulus_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct modulus_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct modulus
-
-    : modulus_impl<
-          typename modulus_tag<N1>::type
-        , typename modulus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, modulus)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct modulus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  % BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/plain/not_equal_to.hpp b/boost/mpl/aux_/preprocessed/plain/not_equal_to.hpp
deleted file mode 100644
index c08d7f0..0000000
--- a/boost/mpl/aux_/preprocessed/plain/not_equal_to.hpp
+++ /dev/null
@@ -1,92 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/not_equal_to.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct not_equal_to_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< not_equal_to_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct not_equal_to_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct not_equal_to_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct not_equal_to_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct not_equal_to_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct not_equal_to
-
-    : not_equal_to_impl<
-          typename not_equal_to_tag<N1>::type
-        , typename not_equal_to_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, not_equal_to)
-
-}}
-
-namespace boost { namespace mpl {
-
-template<>
-struct not_equal_to_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value != BOOST_MPL_AUX_VALUE_WKND(N2)::value ) >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/plain/or.hpp b/boost/mpl/aux_/preprocessed/plain/or.hpp
deleted file mode 100644
index 986b2e0..0000000
--- a/boost/mpl/aux_/preprocessed/plain/or.hpp
+++ /dev/null
@@ -1,64 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/or.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template< bool C_, typename T1, typename T2, typename T3, typename T4 >
-struct or_impl
-    : true_
-{
-};
-
-template< typename T1, typename T2, typename T3, typename T4 >
-struct or_impl< false,T1,T2,T3,T4 >
-    : or_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4
-        , false_
-        >
-{
-};
-
-template<>
-struct or_impl<
-          false
-        , false_, false_, false_, false_
-        >
-    : false_
-{
-};
-
-} // namespace aux
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
-    , typename T3 = false_, typename T4 = false_, typename T5 = false_
-    >
-struct or_
-
-    : aux::or_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
-        , T2, T3, T4, T5
-        >
-
-{
-};
-
-BOOST_MPL_AUX_NA_SPEC2(
-      2
-    , 5
-    , or_
-    )
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/plain/placeholders.hpp b/boost/mpl/aux_/preprocessed/plain/placeholders.hpp
deleted file mode 100644
index ff97364..0000000
--- a/boost/mpl/aux_/preprocessed/plain/placeholders.hpp
+++ /dev/null
@@ -1,105 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright Peter Dimov 2001-2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/placeholders.hpp" header
-// -- DO NOT modify by hand!
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg< -1 > _;
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;
-}
-
-}}
-
-/// agurt, 17/mar/02: one more placeholder for the last 'apply#' 
-/// specialization
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<1> _1;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_1)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_1;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<2> _2;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_2)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_2;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<3> _3;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_3)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_3;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<4> _4;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_4)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_4;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<5> _5;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_5)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_5;
-}
-
-}}
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<6> _6;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_6)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_6;
-}
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/plain/plus.hpp b/boost/mpl/aux_/preprocessed/plain/plus.hpp
deleted file mode 100644
index ed2e432..0000000
--- a/boost/mpl/aux_/preprocessed/plain/plus.hpp
+++ /dev/null
@@ -1,141 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/plus.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct plus_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< plus_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< plus_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct plus_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct plus_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct plus_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct plus_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct plus
-    : plus< plus< plus< plus< N1,N2 >, N3>, N4>, N5>
-{
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct plus< N1,N2,N3,N4,na >
-
-    : plus< plus< plus< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , plus
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct plus< N1,N2,N3,na,na >
-
-    : plus< plus< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , plus
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct plus< N1,N2,na,na,na >
-    : plus_impl<
-          typename plus_tag<N1>::type
-        , typename plus_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , plus
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, plus)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct plus_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  + BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/plain/quote.hpp b/boost/mpl/aux_/preprocessed/plain/quote.hpp
deleted file mode 100644
index d7d0420..0000000
--- a/boost/mpl/aux_/preprocessed/plain/quote.hpp
+++ /dev/null
@@ -1,123 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/quote.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template< typename T, bool has_type_ >
-struct quote_impl
-    : T
-{
-};
-
-template< typename T >
-struct quote_impl< T,false >
-{
-    typedef T type;
-};
-
-template<
-      template< typename P1 > class F
-    , typename Tag = void_
-    >
-struct quote1
-{
-    template< typename U1 > struct apply
-
-        : quote_impl<
-              F<U1>
-            , aux::has_type< F<U1> >::value
-            >
-
-    {
-    };
-};
-
-template<
-      template< typename P1, typename P2 > class F
-    , typename Tag = void_
-    >
-struct quote2
-{
-    template< typename U1, typename U2 > struct apply
-
-        : quote_impl<
-              F< U1,U2 >
-            , aux::has_type< F< U1,U2 > >::value
-            >
-
-    {
-    };
-};
-
-template<
-      template< typename P1, typename P2, typename P3 > class F
-    , typename Tag = void_
-    >
-struct quote3
-{
-    template< typename U1, typename U2, typename U3 > struct apply
-
-        : quote_impl<
-              F< U1,U2,U3 >
-            , aux::has_type< F< U1,U2,U3 > >::value
-            >
-
-    {
-    };
-};
-
-template<
-      template< typename P1, typename P2, typename P3, typename P4 > class F
-    , typename Tag = void_
-    >
-struct quote4
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4
-        >
-    struct apply
-
-        : quote_impl<
-              F< U1,U2,U3,U4 >
-            , aux::has_type< F< U1,U2,U3,U4 > >::value
-            >
-
-    {
-    };
-};
-
-template<
-      template<
-          typename P1, typename P2, typename P3, typename P4
-        , typename P5
-        >
-      class F
-    , typename Tag = void_
-    >
-struct quote5
-{
-    template<
-          typename U1, typename U2, typename U3, typename U4
-        , typename U5
-        >
-    struct apply
-
-        : quote_impl<
-              F< U1,U2,U3,U4,U5 >
-            , aux::has_type< F< U1,U2,U3,U4,U5 > >::value
-            >
-
-    {
-    };
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/plain/reverse_fold_impl.hpp b/boost/mpl/aux_/preprocessed/plain/reverse_fold_impl.hpp
deleted file mode 100644
index c468684..0000000
--- a/boost/mpl/aux_/preprocessed/plain/reverse_fold_impl.hpp
+++ /dev/null
@@ -1,231 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/reverse_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl;
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< 0,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef fwd_state0 bkwd_state0;
-    typedef bkwd_state0 state;
-    typedef iter0 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< 1,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    
-
-    typedef fwd_state1 bkwd_state1;
-    typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-    typedef bkwd_state0 state;
-    typedef iter1 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< 2,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    
-
-    typedef fwd_state2 bkwd_state2;
-    typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-    typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter2 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< 3,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    
-
-    typedef fwd_state3 bkwd_state3;
-    typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-    typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-    typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter3 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< 4,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef fwd_state4 bkwd_state4;
-    typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3;
-    typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-    typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-    typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter4 iterator;
-};
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp, fwd_state1, typename deref<iter1>::type >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp, fwd_state2, typename deref<iter2>::type >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp, fwd_state3, typename deref<iter3>::type >::type fwd_state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef reverse_fold_impl<
-          ( (N - 4) < 0 ? 0 : N - 4 )
-        , iter4
-        , Last
-        , fwd_state4
-        , BackwardOp
-        , ForwardOp
-        > nested_chunk;
-
-    typedef typename nested_chunk::state bkwd_state4;
-    typedef typename apply2< BackwardOp, bkwd_state4, typename deref<iter3>::type >::type bkwd_state3;
-    typedef typename apply2< BackwardOp, bkwd_state3, typename deref<iter2>::type >::type bkwd_state2;
-    typedef typename apply2< BackwardOp, bkwd_state2, typename deref<iter1>::type >::type bkwd_state1;
-    typedef typename apply2< BackwardOp, bkwd_state1, typename deref<iter0>::type >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef typename nested_chunk::iterator iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< -1,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef reverse_fold_impl<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State, typename deref<First>::type>::type
-        , BackwardOp
-        , ForwardOp
-        > nested_step;
-
-    typedef typename apply2<
-          BackwardOp
-        , typename nested_step::state
-        , typename deref<First>::type
-        >::type state;
-
-    typedef typename nested_step::iterator iterator;
-};
-
-template<
-      typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_fold_impl< -1,Last,Last,State,BackwardOp,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/plain/reverse_iter_fold_impl.hpp b/boost/mpl/aux_/preprocessed/plain/reverse_iter_fold_impl.hpp
deleted file mode 100644
index 658f92a..0000000
--- a/boost/mpl/aux_/preprocessed/plain/reverse_iter_fold_impl.hpp
+++ /dev/null
@@ -1,231 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/reverse_iter_fold_impl.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl { namespace aux {
-
-/// forward declaration
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl;
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< 0,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef fwd_state0 bkwd_state0;
-    typedef bkwd_state0 state;
-    typedef iter0 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< 1,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    
-
-    typedef fwd_state1 bkwd_state1;
-    typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-    typedef bkwd_state0 state;
-    typedef iter1 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< 2,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    
-
-    typedef fwd_state2 bkwd_state2;
-    typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-    typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter2 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< 3,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    
-
-    typedef fwd_state3 bkwd_state3;
-    typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-    typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-    typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter3 iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< 4,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef fwd_state4 bkwd_state4;
-    typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3;
-    typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-    typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-    typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef iter4 iterator;
-};
-
-template<
-      long N
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-    typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1;
-    typedef typename mpl::next<iter0>::type iter1;
-    typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2;
-    typedef typename mpl::next<iter1>::type iter2;
-    typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3;
-    typedef typename mpl::next<iter2>::type iter3;
-    typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4;
-    typedef typename mpl::next<iter3>::type iter4;
-    
-
-    typedef reverse_iter_fold_impl<
-          ( (N - 4) < 0 ? 0 : N - 4 )
-        , iter4
-        , Last
-        , fwd_state4
-        , BackwardOp
-        , ForwardOp
-        > nested_chunk;
-
-    typedef typename nested_chunk::state bkwd_state4;
-    typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3;
-    typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2;
-    typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1;
-    typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0;
-    
-
-    typedef bkwd_state0 state;
-    typedef typename nested_chunk::iterator iterator;
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< -1,First,Last,State,BackwardOp,ForwardOp >
-{
-    typedef reverse_iter_fold_impl<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2< ForwardOp,State,First >::type
-        , BackwardOp
-        , ForwardOp
-        > nested_step;
-
-    typedef typename apply2<
-          BackwardOp
-        , typename nested_step::state
-        , First
-        >::type state;
-
-    typedef typename nested_step::iterator iterator;
-};
-
-template<
-      typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct reverse_iter_fold_impl< -1,Last,Last,State,BackwardOp,ForwardOp >
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-}}}
diff --git a/boost/mpl/aux_/preprocessed/plain/set.hpp b/boost/mpl/aux_/preprocessed/plain/set.hpp
deleted file mode 100644
index 5721922..0000000
--- a/boost/mpl/aux_/preprocessed/plain/set.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/set.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct set;
-
-template<
-     
-    >
-struct set<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set0<  >
-{
-    typedef set0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct set<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set1<T0>
-{
-    typedef typename set1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct set<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set2< T0,T1 >
-{
-    typedef typename set2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct set<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set3< T0,T1,T2 >
-{
-    typedef typename set3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct set<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set4< T0,T1,T2,T3 >
-{
-    typedef typename set4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct set<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set5< T0,T1,T2,T3,T4 >
-{
-    typedef typename set5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename set6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename set7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename set8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename set9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename set10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename set11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename set12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename set13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename set14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : set15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename set15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : set16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename set16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : set17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename set17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : set18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename set18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18
-    >
-struct set<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : set19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename set19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct set
-    : set20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename set20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/plain/set_c.hpp b/boost/mpl/aux_/preprocessed/plain/set_c.hpp
deleted file mode 100644
index cbeb932..0000000
--- a/boost/mpl/aux_/preprocessed/plain/set_c.hpp
+++ /dev/null
@@ -1,328 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/set_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct set_c;
-
-template<
-      typename T
-    >
-struct set_c<
-          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set0_c<T>
-{
-    typedef typename set0_c<T>::type type;
-};
-
-template<
-      typename T, long C0
-    >
-struct set_c<
-          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set1_c< T,C0 >
-{
-    typedef typename set1_c< T,C0 >::type type;
-};
-
-template<
-      typename T, long C0, long C1
-    >
-struct set_c<
-          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set2_c< T,C0,C1 >
-{
-    typedef typename set2_c< T,C0,C1 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2
-    >
-struct set_c<
-          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set3_c< T,C0,C1,C2 >
-{
-    typedef typename set3_c< T,C0,C1,C2 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3
-    >
-struct set_c<
-          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set4_c< T,C0,C1,C2,C3 >
-{
-    typedef typename set4_c< T,C0,C1,C2,C3 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set5_c< T,C0,C1,C2,C3,C4 >
-{
-    typedef typename set5_c< T,C0,C1,C2,C3,C4 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set6_c< T,C0,C1,C2,C3,C4,C5 >
-{
-    typedef typename set6_c< T,C0,C1,C2,C3,C4,C5 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set7_c< T,C0,C1,C2,C3,C4,C5,C6 >
-{
-    typedef typename set7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX
-        >
-    : set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >
-{
-    typedef typename set8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >
-{
-    typedef typename set9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >
-{
-    typedef typename set10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >
-{
-    typedef typename set11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >
-{
-    typedef typename set12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >
-{
-    typedef typename set13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set14_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        >
-{
-    typedef typename set14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set15_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        >
-{
-    typedef typename set15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set16_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15
-        >
-{
-    typedef typename set16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : set17_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16
-        >
-{
-    typedef typename set17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, LONG_MAX, LONG_MAX
-        >
-    : set18_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17
-        >
-{
-    typedef typename set18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18
-    >
-struct set_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, LONG_MAX
-        >
-    : set19_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18
-        >
-{
-    typedef typename set19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct set_c
-    : set20_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, C19
-        >
-{
-    typedef typename set20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/plain/shift_left.hpp b/boost/mpl/aux_/preprocessed/plain/shift_left.hpp
deleted file mode 100644
index cf9c837..0000000
--- a/boost/mpl/aux_/preprocessed/plain/shift_left.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/shift_left.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct shift_left_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< shift_left_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< shift_left_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct shift_left_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_left_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_left_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct shift_left_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct shift_left
-
-    : shift_left_impl<
-          typename shift_left_tag<N1>::type
-        , typename shift_left_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_left)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct shift_left_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N, typename S > struct apply
-
-        : integral_c<
-              typename N::value_type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N)::value
-                  << BOOST_MPL_AUX_VALUE_WKND(S)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/plain/shift_right.hpp b/boost/mpl/aux_/preprocessed/plain/shift_right.hpp
deleted file mode 100644
index 477229f..0000000
--- a/boost/mpl/aux_/preprocessed/plain/shift_right.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Jaap Suter 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/shift_right.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct shift_right_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< shift_right_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< shift_right_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct shift_right_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_right_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct shift_right_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct shift_right_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    >
-struct shift_right
-
-    : shift_right_impl<
-          typename shift_right_tag<N1>::type
-        , typename shift_right_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 2, shift_right)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct shift_right_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N, typename S > struct apply
-
-        : integral_c<
-              typename N::value_type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N)::value
-                  >> BOOST_MPL_AUX_VALUE_WKND(S)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/plain/template_arity.hpp b/boost/mpl/aux_/preprocessed/plain/template_arity.hpp
deleted file mode 100644
index a23fc23..0000000
--- a/boost/mpl/aux_/preprocessed/plain/template_arity.hpp
+++ /dev/null
@@ -1,11 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/aux_/template_arity.hpp" header
-// -- DO NOT modify by hand!
-
diff --git a/boost/mpl/aux_/preprocessed/plain/times.hpp b/boost/mpl/aux_/preprocessed/plain/times.hpp
deleted file mode 100644
index ca88d40..0000000
--- a/boost/mpl/aux_/preprocessed/plain/times.hpp
+++ /dev/null
@@ -1,141 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/times.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename Tag1
-    , typename Tag2
-    >
-struct times_impl
-    : if_c<
-          ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
-              > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
-            )
-
-        , aux::cast2nd_impl< times_impl< Tag1,Tag1 >,Tag1, Tag2 >
-        , aux::cast1st_impl< times_impl< Tag2,Tag2 >,Tag1, Tag2 >
-        >::type
-{
-};
-
-/// for Digital Mars C++/compilers with no CTPS/TTP support
-template<> struct times_impl< na,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct times_impl< na,Tag >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename Tag > struct times_impl< Tag,na >
-{
-    template< typename U1, typename U2 > struct apply
-    {
-        typedef apply type;
-        BOOST_STATIC_CONSTANT(int, value  = 0);
-    };
-};
-
-template< typename T > struct times_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N1)
-    , typename BOOST_MPL_AUX_NA_PARAM(N2)
-    , typename N3 = na, typename N4 = na, typename N5 = na
-    >
-struct times
-    : times< times< times< times< N1,N2 >, N3>, N4>, N5>
-{
-};
-
-template<
-      typename N1, typename N2, typename N3, typename N4
-    >
-struct times< N1,N2,N3,N4,na >
-
-    : times< times< times< N1,N2 >, N3>, N4>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , times
-        , ( N1, N2, N3, N4, na )
-        )
-};
-
-template<
-      typename N1, typename N2, typename N3
-    >
-struct times< N1,N2,N3,na,na >
-
-    : times< times< N1,N2 >, N3>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , times
-        , ( N1, N2, N3, na, na )
-        )
-};
-
-template<
-      typename N1, typename N2
-    >
-struct times< N1,N2,na,na,na >
-    : times_impl<
-          typename times_tag<N1>::type
-        , typename times_tag<N2>::type
-        >::template apply< N1,N2 >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
-          5
-        , times
-        , ( N1, N2, na, na, na )
-        )
-
-};
-
-BOOST_MPL_AUX_NA_SPEC2(2, 5, times)
-
-}}
-
-namespace boost { namespace mpl {
-template<>
-struct times_impl< integral_c_tag,integral_c_tag >
-{
-    template< typename N1, typename N2 > struct apply
-
-        : integral_c<
-              typename aux::largest_int<
-                  typename N1::value_type
-                , typename N2::value_type
-                >::type
-            , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value
-                  * BOOST_MPL_AUX_VALUE_WKND(N2)::value
-                )
-            >
-    {
-    };
-};
-
-}}
diff --git a/boost/mpl/aux_/preprocessed/plain/unpack_args.hpp b/boost/mpl/aux_/preprocessed/plain/unpack_args.hpp
deleted file mode 100644
index 2194ce9..0000000
--- a/boost/mpl/aux_/preprocessed/plain/unpack_args.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/unpack_args.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template< int size, typename F, typename Args >
-struct unpack_args_impl;
-
-template< typename F, typename Args >
-struct unpack_args_impl< 0,F,Args >
-    : apply0<
-          F
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 1,F,Args >
-    : apply1<
-          F
-        , typename at_c< Args,0 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 2,F,Args >
-    : apply2<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 3,F,Args >
-    : apply3<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        , typename at_c< Args,2 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 4,F,Args >
-    : apply4<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
-        >
-{
-};
-
-template< typename F, typename Args >
-struct unpack_args_impl< 5,F,Args >
-    : apply5<
-          F
-        , typename at_c< Args,0 >::type, typename at_c< Args,1 >::type
-        , typename at_c< Args,2 >::type, typename at_c< Args,3 >::type
-        , typename at_c< Args,4 >::type
-        >
-{
-};
-
-}
-
-template<
-      typename F
-    >
-struct unpack_args
-{
-    template< typename Args > struct apply
-
-        : aux::unpack_args_impl< size<Args>::value,F, Args >
-
-    {
-    };
-};
-
-BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, unpack_args)
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/plain/vector.hpp b/boost/mpl/aux_/preprocessed/plain/vector.hpp
deleted file mode 100644
index bfa9565..0000000
--- a/boost/mpl/aux_/preprocessed/plain/vector.hpp
+++ /dev/null
@@ -1,323 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/vector.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0 = na, typename T1 = na, typename T2 = na, typename T3 = na
-    , typename T4 = na, typename T5 = na, typename T6 = na, typename T7 = na
-    , typename T8 = na, typename T9 = na, typename T10 = na, typename T11 = na
-    , typename T12 = na, typename T13 = na, typename T14 = na
-    , typename T15 = na, typename T16 = na, typename T17 = na
-    , typename T18 = na, typename T19 = na
-    >
-struct vector;
-
-template<
-     
-    >
-struct vector<
-          na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector0<  >
-{
-    typedef vector0<  >::type type;
-};
-
-template<
-      typename T0
-    >
-struct vector<
-          T0, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector1<T0>
-{
-    typedef typename vector1<T0>::type type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct vector<
-          T0, T1, na, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector2< T0,T1 >
-{
-    typedef typename vector2< T0,T1 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct vector<
-          T0, T1, T2, na, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector3< T0,T1,T2 >
-{
-    typedef typename vector3< T0,T1,T2 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct vector<
-          T0, T1, T2, T3, na, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector4< T0,T1,T2,T3 >
-{
-    typedef typename vector4< T0,T1,T2,T3 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct vector<
-          T0, T1, T2, T3, T4, na, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector5< T0,T1,T2,T3,T4 >
-{
-    typedef typename vector5< T0,T1,T2,T3,T4 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, na, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector6< T0,T1,T2,T3,T4,T5 >
-{
-    typedef typename vector6< T0,T1,T2,T3,T4,T5 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, na, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector7< T0,T1,T2,T3,T4,T5,T6 >
-{
-    typedef typename vector7< T0,T1,T2,T3,T4,T5,T6 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, na, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector8< T0,T1,T2,T3,T4,T5,T6,T7 >
-{
-    typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-{
-    typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-{
-    typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
-        , na, na, na
-        >
-    : vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-{
-    typedef typename vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, na, na, na, na
-        , na, na, na, na
-        >
-    : vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-{
-    typedef typename vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, na, na, na
-        , na, na, na, na
-        >
-    : vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-{
-    typedef typename vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, na, na
-        , na, na, na, na
-        >
-    : vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-{
-    typedef typename vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, na
-        , na, na, na, na
-        >
-    : vector15<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        >
-{
-    typedef typename vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, na, na, na, na
-        >
-    : vector16<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15
-        >
-{
-    typedef typename vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, na, na, na
-        >
-    : vector17<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16
-        >
-{
-    typedef typename vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, na, na
-        >
-    : vector18<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17
-        >
-{
-    typedef typename vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >::type type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18
-    >
-struct vector<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, na
-        >
-    : vector19<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18
-        >
-{
-    typedef typename vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct vector
-    : vector20<
-          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14
-        , T15, T16, T17, T18, T19
-        >
-{
-    typedef typename vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessed/plain/vector_c.hpp b/boost/mpl/aux_/preprocessed/plain/vector_c.hpp
deleted file mode 100644
index 0f1560d..0000000
--- a/boost/mpl/aux_/preprocessed/plain/vector_c.hpp
+++ /dev/null
@@ -1,309 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/vector_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T, long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX
-    , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX
-    , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX
-    , long C9 = LONG_MAX, long C10 = LONG_MAX, long C11 = LONG_MAX
-    , long C12 = LONG_MAX, long C13 = LONG_MAX, long C14 = LONG_MAX
-    , long C15 = LONG_MAX, long C16 = LONG_MAX, long C17 = LONG_MAX
-    , long C18 = LONG_MAX, long C19 = LONG_MAX
-    >
-struct vector_c;
-
-template<
-      typename T
-    >
-struct vector_c<
-          T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector0_c<T>
-{
-    typedef typename vector0_c<T>::type type;
-};
-
-template<
-      typename T, long C0
-    >
-struct vector_c<
-          T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector1_c< T, T(C0) >
-{
-    typedef typename vector1_c< T, T(C0) >::type type;
-};
-
-template<
-      typename T, long C0, long C1
-    >
-struct vector_c<
-          T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector2_c< T, T(C0), T(C1) >
-{
-    typedef typename vector2_c< T, T(C0), T(C1) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2
-    >
-struct vector_c<
-          T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector3_c< T, T(C0), T(C1), T(C2) >
-{
-    typedef typename vector3_c< T, T(C0), T(C1), T(C2) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector4_c< T, T(C0), T(C1), T(C2), T(C3) >
-{
-    typedef typename vector4_c< T, T(C0), T(C1), T(C2), T(C3) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) >
-{
-    typedef typename vector5_c< T, T(C0), T(C1), T(C2), T(C3), T(C4) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) >
-{
-    typedef typename vector6_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) >
-{
-    typedef typename vector7_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX
-        >
-    : vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) >
-{
-    typedef typename vector8_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) >
-{
-    typedef typename vector9_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        , LONG_MAX
-        >
-    : vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) >
-{
-    typedef typename vector10_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, LONG_MAX, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) >
-{
-    typedef typename vector11_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) >
-{
-    typedef typename vector12_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, LONG_MAX
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) >
-{
-    typedef typename vector13_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) >
-{
-    typedef typename vector14_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) >
-{
-    typedef typename vector15_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) >
-{
-    typedef typename vector16_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, LONG_MAX, LONG_MAX, LONG_MAX
-        >
-    : vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) >
-{
-    typedef typename vector17_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, LONG_MAX, LONG_MAX
-        >
-    : vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) >
-{
-    typedef typename vector18_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17) >::type type;
-};
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18
-    >
-struct vector_c<
-          T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14
-        , C15, C16, C17, C18, LONG_MAX
-        >
-    : vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) >
-{
-    typedef typename vector19_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18) >::type type;
-};
-
-/// primary template (not a specialization!)
-
-template<
-      typename T, long C0, long C1, long C2, long C3, long C4, long C5
-    , long C6, long C7, long C8, long C9, long C10, long C11, long C12
-    , long C13, long C14, long C15, long C16, long C17, long C18, long C19
-    >
-struct vector_c
-    : vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) >
-{
-    typedef typename vector20_c< T, T(C0), T(C1), T(C2), T(C3), T(C4), T(C5), T(C6), T(C7), T(C8), T(C9), T(C10), T(C11), T(C12), T(C13), T(C14), T(C15), T(C16), T(C17), T(C18), T(C19) >::type type;
-};
-
-}}
-
diff --git a/boost/mpl/aux_/preprocessor/add.hpp b/boost/mpl/aux_/preprocessor/add.hpp
deleted file mode 100644
index 26a70e7..0000000
--- a/boost/mpl/aux_/preprocessor/add.hpp
+++ /dev/null
@@ -1,65 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_PREPROCESSOR_ADD_HPP_INCLUDED
-#define BOOST_MPL_AUX_PREPROCESSOR_ADD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: add.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/config/preprocessor.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES)
-
-#   include <boost/mpl/aux_/preprocessor/tuple.hpp>
-
-#if defined(BOOST_MPL_CFG_BROKEN_PP_MACRO_EXPANSION)
-#   include <boost/preprocessor/cat.hpp>
-
-#   define BOOST_MPL_PP_ADD(i,j) \
-    BOOST_MPL_PP_ADD_DELAY(i,j) \
-    /**/
-
-#   define BOOST_MPL_PP_ADD_DELAY(i,j) \
-    BOOST_PP_CAT(BOOST_MPL_PP_TUPLE_11_ELEM_##i,BOOST_MPL_PP_ADD_##j) \
-    /**/
-#else
-#   define BOOST_MPL_PP_ADD(i,j) \
-    BOOST_MPL_PP_ADD_DELAY(i,j) \
-    /**/
-
-#   define BOOST_MPL_PP_ADD_DELAY(i,j) \
-    BOOST_MPL_PP_TUPLE_11_ELEM_##i BOOST_MPL_PP_ADD_##j \
-    /**/
-#endif
-
-#   define BOOST_MPL_PP_ADD_0 (0,1,2,3,4,5,6,7,8,9,10)
-#   define BOOST_MPL_PP_ADD_1 (1,2,3,4,5,6,7,8,9,10,0)
-#   define BOOST_MPL_PP_ADD_2 (2,3,4,5,6,7,8,9,10,0,0)
-#   define BOOST_MPL_PP_ADD_3 (3,4,5,6,7,8,9,10,0,0,0)
-#   define BOOST_MPL_PP_ADD_4 (4,5,6,7,8,9,10,0,0,0,0)
-#   define BOOST_MPL_PP_ADD_5 (5,6,7,8,9,10,0,0,0,0,0)
-#   define BOOST_MPL_PP_ADD_6 (6,7,8,9,10,0,0,0,0,0,0)
-#   define BOOST_MPL_PP_ADD_7 (7,8,9,10,0,0,0,0,0,0,0)
-#   define BOOST_MPL_PP_ADD_8 (8,9,10,0,0,0,0,0,0,0,0)
-#   define BOOST_MPL_PP_ADD_9 (9,10,0,0,0,0,0,0,0,0,0)
-#   define BOOST_MPL_PP_ADD_10 (10,0,0,0,0,0,0,0,0,0,0)
-
-#else
-
-#   include <boost/preprocessor/arithmetic/add.hpp>
-
-#   define BOOST_MPL_PP_ADD(i,j) \
-    BOOST_PP_ADD(i,j) \
-    /**/
-    
-#endif 
-
-#endif // BOOST_MPL_AUX_PREPROCESSOR_ADD_HPP_INCLUDED
diff --git a/boost/mpl/aux_/preprocessor/def_params_tail.hpp b/boost/mpl/aux_/preprocessor/def_params_tail.hpp
deleted file mode 100644
index c51636e..0000000
--- a/boost/mpl/aux_/preprocessor/def_params_tail.hpp
+++ /dev/null
@@ -1,105 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_PREPROCESSOR_DEF_PARAMS_TAIL_HPP_INCLUDED
-#define BOOST_MPL_AUX_PREPROCESSOR_DEF_PARAMS_TAIL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: def_params_tail.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/limits/arity.hpp>
-#include <boost/mpl/aux_/config/dtp.hpp>
-#include <boost/mpl/aux_/config/preprocessor.hpp>
-
-#include <boost/preprocessor/comma_if.hpp>
-#include <boost/preprocessor/logical/and.hpp>
-#include <boost/preprocessor/identity.hpp>
-#include <boost/preprocessor/empty.hpp>
-
-// BOOST_MPL_PP_DEF_PARAMS_TAIL(1,T,value): , T1 = value, .., Tn = value
-// BOOST_MPL_PP_DEF_PARAMS_TAIL(2,T,value): , T2 = value, .., Tn = value
-// BOOST_MPL_PP_DEF_PARAMS_TAIL(n,T,value): <nothing>
-
-#if !defined(BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES)
-
-#   include <boost/mpl/aux_/preprocessor/filter_params.hpp>
-#   include <boost/mpl/aux_/preprocessor/sub.hpp>
-
-#   define BOOST_MPL_PP_DEF_PARAMS_TAIL_IMPL(i, param, value_func) \
-    BOOST_MPL_PP_DEF_PARAMS_TAIL_DELAY_1( \
-          i \
-        , BOOST_MPL_PP_SUB(BOOST_MPL_LIMIT_METAFUNCTION_ARITY,i) \
-        , param \
-        , value_func \
-        ) \
-    /**/
-
-#   define BOOST_MPL_PP_DEF_PARAMS_TAIL_DELAY_1(i, n, param, value_func) \
-    BOOST_MPL_PP_DEF_PARAMS_TAIL_DELAY_2(i,n,param,value_func) \
-    /**/
-
-#   define BOOST_MPL_PP_DEF_PARAMS_TAIL_DELAY_2(i, n, param, value_func) \
-    BOOST_PP_COMMA_IF(BOOST_PP_AND(i,n)) \
-    BOOST_MPL_PP_DEF_PARAMS_TAIL_##i(n,param,value_func) \
-    /**/
-
-#   define BOOST_MPL_PP_DEF_PARAMS_TAIL_0(i,p,v) BOOST_MPL_PP_FILTER_PARAMS_##i(p##1 v(),p##2 v(),p##3 v(),p##4 v(),p##5 v(),p##6 v(),p##7 v(),p##8 v(),p##9 v())
-#   define BOOST_MPL_PP_DEF_PARAMS_TAIL_1(i,p,v) BOOST_MPL_PP_FILTER_PARAMS_##i(p##2 v(),p##3 v(),p##4 v(),p##5 v(),p##6 v(),p##7 v(),p##8 v(),p##9 v(),p1)
-#   define BOOST_MPL_PP_DEF_PARAMS_TAIL_2(i,p,v) BOOST_MPL_PP_FILTER_PARAMS_##i(p##3 v(),p##4 v(),p##5 v(),p##6 v(),p##7 v(),p##8 v(),p##9 v(),p1,p2)
-#   define BOOST_MPL_PP_DEF_PARAMS_TAIL_3(i,p,v) BOOST_MPL_PP_FILTER_PARAMS_##i(p##4 v(),p##5 v(),p##6 v(),p##7 v(),p##8 v(),p##9 v(),p1,p2,p3)
-#   define BOOST_MPL_PP_DEF_PARAMS_TAIL_4(i,p,v) BOOST_MPL_PP_FILTER_PARAMS_##i(p##5 v(),p##6 v(),p##7 v(),p##8 v(),p##9 v(),p1,p2,p3,p4)
-#   define BOOST_MPL_PP_DEF_PARAMS_TAIL_5(i,p,v) BOOST_MPL_PP_FILTER_PARAMS_##i(p##6 v(),p##7 v(),p##8 v(),p##9 v(),p1,p2,p3,p4,p5)
-#   define BOOST_MPL_PP_DEF_PARAMS_TAIL_6(i,p,v) BOOST_MPL_PP_FILTER_PARAMS_##i(p##7 v(),p##8 v(),p##9 v(),p1,p2,p3,p4,p5,p6)
-#   define BOOST_MPL_PP_DEF_PARAMS_TAIL_7(i,p,v) BOOST_MPL_PP_FILTER_PARAMS_##i(p##8 v(),p##9 v(),p1,p2,p3,p4,p5,p6,p7)
-#   define BOOST_MPL_PP_DEF_PARAMS_TAIL_8(i,p,v) BOOST_MPL_PP_FILTER_PARAMS_##i(p##9 v(),p1,p2,p3,p4,p5,p6,p7,p8)
-#   define BOOST_MPL_PP_DEF_PARAMS_TAIL_9(i,p,v) BOOST_MPL_PP_FILTER_PARAMS_##i(p1,p2,p3,p4,p5,p6,p7,p8,p9)
-
-#else
-
-#   include <boost/preprocessor/arithmetic/add.hpp>
-#   include <boost/preprocessor/arithmetic/sub.hpp>
-#   include <boost/preprocessor/inc.hpp>
-#   include <boost/preprocessor/tuple/elem.hpp>
-#   include <boost/preprocessor/repeat.hpp>
-#   include <boost/preprocessor/cat.hpp>
-
-#   define BOOST_MPL_PP_AUX_TAIL_PARAM_FUNC(unused, i, op) \
-    , BOOST_PP_CAT( \
-          BOOST_PP_TUPLE_ELEM(3, 1, op) \
-        , BOOST_PP_ADD_D(1, i, BOOST_PP_INC(BOOST_PP_TUPLE_ELEM(3, 0, op))) \
-        ) BOOST_PP_TUPLE_ELEM(3, 2, op)() \
-    /**/
-
-#   define BOOST_MPL_PP_DEF_PARAMS_TAIL_IMPL(i, param, value_func) \
-    BOOST_PP_REPEAT( \
-          BOOST_PP_SUB_D(1, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, i) \
-        , BOOST_MPL_PP_AUX_TAIL_PARAM_FUNC \
-        , (i, param, value_func) \
-        ) \
-    /**/
-
-
-#endif // BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES
-
-#define BOOST_MPL_PP_DEF_PARAMS_TAIL(i, param, value) \
-    BOOST_MPL_PP_DEF_PARAMS_TAIL_IMPL(i, param, BOOST_PP_IDENTITY(=value)) \
-    /**/
-
-#if !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
-#   define BOOST_MPL_PP_NESTED_DEF_PARAMS_TAIL(i, param, value) \
-    BOOST_MPL_PP_DEF_PARAMS_TAIL_IMPL(i, param, BOOST_PP_IDENTITY(=value)) \
-    /**/
-#else
-#   define BOOST_MPL_PP_NESTED_DEF_PARAMS_TAIL(i, param, value) \
-    BOOST_MPL_PP_DEF_PARAMS_TAIL_IMPL(i, param, BOOST_PP_EMPTY) \
-    /**/
-#endif
-
-#endif // BOOST_MPL_AUX_PREPROCESSOR_DEF_PARAMS_TAIL_HPP_INCLUDED
diff --git a/boost/mpl/aux_/preprocessor/default_params.hpp b/boost/mpl/aux_/preprocessor/default_params.hpp
deleted file mode 100644
index 66d6d03..0000000
--- a/boost/mpl/aux_/preprocessor/default_params.hpp
+++ /dev/null
@@ -1,67 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_PREPROCESSOR_DEFAULT_PARAMS_HPP_INCLUDED
-#define BOOST_MPL_AUX_PREPROCESSOR_DEFAULT_PARAMS_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: default_params.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/config/preprocessor.hpp>
-
-// BOOST_MPL_PP_DEFAULT_PARAMS(0,T,int): <nothing>
-// BOOST_MPL_PP_DEFAULT_PARAMS(1,T,int): T1 = int
-// BOOST_MPL_PP_DEFAULT_PARAMS(2,T,int): T1 = int, T2 = int
-// BOOST_MPL_PP_DEFAULT_PARAMS(n,T,int): T1 = int, T2 = int, .., Tn = int
-
-#if !defined(BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES)
-
-#   include <boost/preprocessor/cat.hpp>
-
-#   define BOOST_MPL_PP_DEFAULT_PARAMS(n,p,v) \
-    BOOST_PP_CAT(BOOST_MPL_PP_DEFAULT_PARAMS_,n)(p,v) \
-    /**/
-    
-#   define BOOST_MPL_PP_DEFAULT_PARAMS_0(p,v)
-#   define BOOST_MPL_PP_DEFAULT_PARAMS_1(p,v) p##1=v
-#   define BOOST_MPL_PP_DEFAULT_PARAMS_2(p,v) p##1=v,p##2=v
-#   define BOOST_MPL_PP_DEFAULT_PARAMS_3(p,v) p##1=v,p##2=v,p##3=v
-#   define BOOST_MPL_PP_DEFAULT_PARAMS_4(p,v) p##1=v,p##2=v,p##3=v,p##4=v
-#   define BOOST_MPL_PP_DEFAULT_PARAMS_5(p,v) p##1=v,p##2=v,p##3=v,p##4=v,p##5=v
-#   define BOOST_MPL_PP_DEFAULT_PARAMS_6(p,v) p##1=v,p##2=v,p##3=v,p##4=v,p##5=v,p##6=v
-#   define BOOST_MPL_PP_DEFAULT_PARAMS_7(p,v) p##1=v,p##2=v,p##3=v,p##4=v,p##5=v,p##6=v,p##7=v
-#   define BOOST_MPL_PP_DEFAULT_PARAMS_8(p,v) p##1=v,p##2=v,p##3=v,p##4=v,p##5=v,p##6=v,p##7=v,p##8=v
-#   define BOOST_MPL_PP_DEFAULT_PARAMS_9(p,v) p##1=v,p##2=v,p##3=v,p##4=v,p##5=v,p##6=v,p##7=v,p##8=v,p##9=v
-
-#else
-
-#   include <boost/preprocessor/tuple/elem.hpp>
-#   include <boost/preprocessor/comma_if.hpp>
-#   include <boost/preprocessor/repeat.hpp>
-#   include <boost/preprocessor/inc.hpp>
-#   include <boost/preprocessor/cat.hpp>
-
-#   define BOOST_MPL_PP_AUX_DEFAULT_PARAM_FUNC(unused, i, pv) \
-    BOOST_PP_COMMA_IF(i) \
-    BOOST_PP_CAT( BOOST_PP_TUPLE_ELEM(2,0,pv), BOOST_PP_INC(i) ) \
-        = BOOST_PP_TUPLE_ELEM(2,1,pv) \
-    /**/
-
-#   define BOOST_MPL_PP_DEFAULT_PARAMS(n, param, value) \
-    BOOST_PP_REPEAT( \
-          n \
-        , BOOST_MPL_PP_AUX_DEFAULT_PARAM_FUNC \
-        , (param,value) \
-        ) \
-    /**/
-
-#endif
-
-#endif // BOOST_MPL_AUX_PREPROCESSOR_DEFAULT_PARAMS_HPP_INCLUDED
diff --git a/boost/mpl/aux_/preprocessor/enum.hpp b/boost/mpl/aux_/preprocessor/enum.hpp
deleted file mode 100644
index 11541a0..0000000
--- a/boost/mpl/aux_/preprocessor/enum.hpp
+++ /dev/null
@@ -1,62 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_PREPROCESSOR_ENUM_HPP_INCLUDED
-#define BOOST_MPL_AUX_PREPROCESSOR_ENUM_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: enum.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/config/preprocessor.hpp>
-
-// BOOST_MPL_PP_ENUM(0,int): <nothing>
-// BOOST_MPL_PP_ENUM(1,int): int
-// BOOST_MPL_PP_ENUM(2,int): int, int
-// BOOST_MPL_PP_ENUM(n,int): int, int, .., int
-
-#if !defined(BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES)
-
-#   include <boost/preprocessor/cat.hpp>
-
-#   define BOOST_MPL_PP_ENUM(n, param) \
-    BOOST_PP_CAT(BOOST_MPL_PP_ENUM_,n)(param) \
-    /**/
-    
-#   define BOOST_MPL_PP_ENUM_0(p)
-#   define BOOST_MPL_PP_ENUM_1(p) p
-#   define BOOST_MPL_PP_ENUM_2(p) p,p
-#   define BOOST_MPL_PP_ENUM_3(p) p,p,p
-#   define BOOST_MPL_PP_ENUM_4(p) p,p,p,p
-#   define BOOST_MPL_PP_ENUM_5(p) p,p,p,p,p
-#   define BOOST_MPL_PP_ENUM_6(p) p,p,p,p,p,p
-#   define BOOST_MPL_PP_ENUM_7(p) p,p,p,p,p,p,p
-#   define BOOST_MPL_PP_ENUM_8(p) p,p,p,p,p,p,p,p
-#   define BOOST_MPL_PP_ENUM_9(p) p,p,p,p,p,p,p,p,p
-
-#else
-
-#   include <boost/preprocessor/comma_if.hpp>
-#   include <boost/preprocessor/repeat.hpp>
-
-#   define BOOST_MPL_PP_AUX_ENUM_FUNC(unused, i, param) \
-    BOOST_PP_COMMA_IF(i) param \
-    /**/
-
-#   define BOOST_MPL_PP_ENUM(n, param) \
-    BOOST_PP_REPEAT( \
-          n \
-        , BOOST_MPL_PP_AUX_ENUM_FUNC \
-        , param \
-        ) \
-    /**/
-
-#endif
-
-#endif // BOOST_MPL_AUX_PREPROCESSOR_ENUM_HPP_INCLUDED
diff --git a/boost/mpl/aux_/preprocessor/ext_params.hpp b/boost/mpl/aux_/preprocessor/ext_params.hpp
deleted file mode 100644
index a89535d..0000000
--- a/boost/mpl/aux_/preprocessor/ext_params.hpp
+++ /dev/null
@@ -1,78 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_PREPROCESSOR_EXT_PARAMS_HPP_INCLUDED
-#define BOOST_MPL_AUX_PREPROCESSOR_EXT_PARAMS_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: ext_params.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/config/preprocessor.hpp>
-
-// BOOST_MPL_PP_EXT_PARAMS(2,2,T): <nothing>
-// BOOST_MPL_PP_EXT_PARAMS(2,3,T): T2
-// BOOST_MPL_PP_EXT_PARAMS(2,4,T): T2, T3
-// BOOST_MPL_PP_EXT_PARAMS(2,n,T): T2, T3, .., Tn-1
-
-#if !defined(BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES)
-
-#   include <boost/mpl/aux_/preprocessor/filter_params.hpp>
-#   include <boost/mpl/aux_/preprocessor/sub.hpp>
-
-#   define BOOST_MPL_PP_EXT_PARAMS(i,j,p) \
-    BOOST_MPL_PP_EXT_PARAMS_DELAY_1(i,BOOST_MPL_PP_SUB(j,i),p) \
-    /**/
-
-#   define BOOST_MPL_PP_EXT_PARAMS_DELAY_1(i,n,p) \
-    BOOST_MPL_PP_EXT_PARAMS_DELAY_2(i,n,p) \
-    /**/
-
-#   define BOOST_MPL_PP_EXT_PARAMS_DELAY_2(i,n,p) \
-    BOOST_MPL_PP_EXT_PARAMS_##i(n,p) \
-    /**/
-
-#   define BOOST_MPL_PP_EXT_PARAMS_1(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p##1,p##2,p##3,p##4,p##5,p##6,p##7,p##8,p##9)
-#   define BOOST_MPL_PP_EXT_PARAMS_2(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p##2,p##3,p##4,p##5,p##6,p##7,p##8,p##9,p1)
-#   define BOOST_MPL_PP_EXT_PARAMS_3(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p##3,p##4,p##5,p##6,p##7,p##8,p##9,p1,p2)
-#   define BOOST_MPL_PP_EXT_PARAMS_4(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p##4,p##5,p##6,p##7,p##8,p##9,p1,p2,p3)
-#   define BOOST_MPL_PP_EXT_PARAMS_5(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p##5,p##6,p##7,p##8,p##9,p1,p2,p3,p4)
-#   define BOOST_MPL_PP_EXT_PARAMS_6(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p##6,p##7,p##8,p##9,p1,p2,p3,p4,p5)
-#   define BOOST_MPL_PP_EXT_PARAMS_7(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p##7,p##8,p##9,p1,p2,p3,p4,p5,p6)
-#   define BOOST_MPL_PP_EXT_PARAMS_8(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p##8,p##9,p1,p2,p3,p4,p5,p6,p7)
-#   define BOOST_MPL_PP_EXT_PARAMS_9(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p##9,p1,p2,p3,p4,p5,p6,p7,p8)
-
-#else
-
-#   include <boost/preprocessor/arithmetic/add.hpp>
-#   include <boost/preprocessor/arithmetic/sub.hpp>
-#   include <boost/preprocessor/comma_if.hpp>
-#   include <boost/preprocessor/repeat.hpp>
-#   include <boost/preprocessor/tuple/elem.hpp>
-#   include <boost/preprocessor/cat.hpp>
-
-#   define BOOST_MPL_PP_AUX_EXT_PARAM_FUNC(unused, i, op) \
-    BOOST_PP_COMMA_IF(i) \
-    BOOST_PP_CAT( \
-          BOOST_PP_TUPLE_ELEM(2,1,op) \
-        , BOOST_PP_ADD_D(1, i, BOOST_PP_TUPLE_ELEM(2,0,op)) \
-        ) \
-    /**/
-
-#   define BOOST_MPL_PP_EXT_PARAMS(i, j, param) \
-    BOOST_PP_REPEAT( \
-          BOOST_PP_SUB_D(1,j,i) \
-        , BOOST_MPL_PP_AUX_EXT_PARAM_FUNC \
-        , (i,param) \
-        ) \
-    /**/
-
-#endif
-
-#endif // BOOST_MPL_AUX_PREPROCESSOR_EXT_PARAMS_HPP_INCLUDED
diff --git a/boost/mpl/aux_/preprocessor/filter_params.hpp b/boost/mpl/aux_/preprocessor/filter_params.hpp
deleted file mode 100644
index fefd984..0000000
--- a/boost/mpl/aux_/preprocessor/filter_params.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_PREPROCESSOR_FILTER_PARAMS_HPP_INCLUDED
-#define BOOST_MPL_AUX_PREPROCESSOR_FILTER_PARAMS_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: filter_params.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#define BOOST_MPL_PP_FILTER_PARAMS_0(p1,p2,p3,p4,p5,p6,p7,p8,p9) 
-#define BOOST_MPL_PP_FILTER_PARAMS_1(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1
-#define BOOST_MPL_PP_FILTER_PARAMS_2(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2
-#define BOOST_MPL_PP_FILTER_PARAMS_3(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2,p3
-#define BOOST_MPL_PP_FILTER_PARAMS_4(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2,p3,p4
-#define BOOST_MPL_PP_FILTER_PARAMS_5(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2,p3,p4,p5
-#define BOOST_MPL_PP_FILTER_PARAMS_6(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2,p3,p4,p5,p6
-#define BOOST_MPL_PP_FILTER_PARAMS_7(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2,p3,p4,p5,p6,p7
-#define BOOST_MPL_PP_FILTER_PARAMS_8(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2,p3,p4,p5,p6,p7,p8
-#define BOOST_MPL_PP_FILTER_PARAMS_9(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2,p3,p4,p5,p6,p7,p8,p9
-
-#endif // BOOST_MPL_AUX_PREPROCESSOR_FILTER_PARAMS_HPP_INCLUDED
diff --git a/boost/mpl/aux_/preprocessor/params.hpp b/boost/mpl/aux_/preprocessor/params.hpp
deleted file mode 100644
index ac861ec..0000000
--- a/boost/mpl/aux_/preprocessor/params.hpp
+++ /dev/null
@@ -1,65 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_PREPROCESSOR_PARAMS_HPP_INCLUDED
-#define BOOST_MPL_AUX_PREPROCESSOR_PARAMS_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: params.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/config/preprocessor.hpp>
-
-// BOOST_MPL_PP_PARAMS(0,T): <nothing>
-// BOOST_MPL_PP_PARAMS(1,T): T1
-// BOOST_MPL_PP_PARAMS(2,T): T1, T2
-// BOOST_MPL_PP_PARAMS(n,T): T1, T2, .., Tn
-
-#if !defined(BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES)
-
-#   include <boost/preprocessor/cat.hpp>
-
-#   define BOOST_MPL_PP_PARAMS(n,p) \
-    BOOST_PP_CAT(BOOST_MPL_PP_PARAMS_,n)(p) \
-    /**/
-
-#   define BOOST_MPL_PP_PARAMS_0(p)
-#   define BOOST_MPL_PP_PARAMS_1(p) p##1
-#   define BOOST_MPL_PP_PARAMS_2(p) p##1,p##2
-#   define BOOST_MPL_PP_PARAMS_3(p) p##1,p##2,p##3
-#   define BOOST_MPL_PP_PARAMS_4(p) p##1,p##2,p##3,p##4
-#   define BOOST_MPL_PP_PARAMS_5(p) p##1,p##2,p##3,p##4,p##5
-#   define BOOST_MPL_PP_PARAMS_6(p) p##1,p##2,p##3,p##4,p##5,p##6
-#   define BOOST_MPL_PP_PARAMS_7(p) p##1,p##2,p##3,p##4,p##5,p##6,p##7
-#   define BOOST_MPL_PP_PARAMS_8(p) p##1,p##2,p##3,p##4,p##5,p##6,p##7,p##8
-#   define BOOST_MPL_PP_PARAMS_9(p) p##1,p##2,p##3,p##4,p##5,p##6,p##7,p##8,p##9
-
-#else
-
-#   include <boost/preprocessor/comma_if.hpp>
-#   include <boost/preprocessor/repeat.hpp>
-#   include <boost/preprocessor/inc.hpp>
-#   include <boost/preprocessor/cat.hpp>
-
-#   define BOOST_MPL_PP_AUX_PARAM_FUNC(unused, i, param) \
-    BOOST_PP_COMMA_IF(i) \
-    BOOST_PP_CAT(param, BOOST_PP_INC(i)) \
-    /**/
-
-#   define BOOST_MPL_PP_PARAMS(n, param) \
-    BOOST_PP_REPEAT( \
-          n \
-        , BOOST_MPL_PP_AUX_PARAM_FUNC \
-        , param \
-        ) \
-    /**/
-
-#endif 
-
-#endif // BOOST_MPL_AUX_PREPROCESSOR_PARAMS_HPP_INCLUDED
diff --git a/boost/mpl/aux_/preprocessor/partial_spec_params.hpp b/boost/mpl/aux_/preprocessor/partial_spec_params.hpp
deleted file mode 100644
index e2e1fa9..0000000
--- a/boost/mpl/aux_/preprocessor/partial_spec_params.hpp
+++ /dev/null
@@ -1,32 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_PREPROCESSOR_PARTIAL_SPEC_PARAMS_HPP_INCLUDED
-#define BOOST_MPL_AUX_PREPROCESSOR_PARTIAL_SPEC_PARAMS_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: partial_spec_params.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/limits/arity.hpp>
-#include <boost/mpl/aux_/preprocessor/params.hpp>
-#include <boost/mpl/aux_/preprocessor/enum.hpp>
-#include <boost/mpl/aux_/preprocessor/sub.hpp>
-#include <boost/preprocessor/comma_if.hpp>
-
-#define BOOST_MPL_PP_PARTIAL_SPEC_PARAMS(n, param, def) \
-BOOST_MPL_PP_PARAMS(n, param) \
-BOOST_PP_COMMA_IF(BOOST_MPL_PP_SUB(BOOST_MPL_LIMIT_METAFUNCTION_ARITY,n)) \
-BOOST_MPL_PP_ENUM( \
-      BOOST_MPL_PP_SUB(BOOST_MPL_LIMIT_METAFUNCTION_ARITY,n) \
-    , def \
-    ) \
-/**/
-
-#endif // BOOST_MPL_AUX_PREPROCESSOR_PARTIAL_SPEC_PARAMS_HPP_INCLUDED
diff --git a/boost/mpl/aux_/preprocessor/range.hpp b/boost/mpl/aux_/preprocessor/range.hpp
deleted file mode 100644
index e69a9e1..0000000
--- a/boost/mpl/aux_/preprocessor/range.hpp
+++ /dev/null
@@ -1,23 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_PREPROCESSOR_RANGE_HPP_INCLUDED
-#define BOOST_MPL_AUX_PREPROCESSOR_RANGE_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: range.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/preprocessor/seq/subseq.hpp>
-
-#define BOOST_MPL_PP_RANGE(first, length) \
-    BOOST_PP_SEQ_SUBSEQ((0)(1)(2)(3)(4)(5)(6)(7)(8)(9), first, length) \
-/**/
-
-#endif // BOOST_MPL_AUX_PREPROCESSOR_RANGE_HPP_INCLUDED
diff --git a/boost/mpl/aux_/preprocessor/repeat.hpp b/boost/mpl/aux_/preprocessor/repeat.hpp
deleted file mode 100644
index 2c314ec..0000000
--- a/boost/mpl/aux_/preprocessor/repeat.hpp
+++ /dev/null
@@ -1,51 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_PREPROCESSOR_REPEAT_HPP_INCLUDED
-#define BOOST_MPL_AUX_PREPROCESSOR_REPEAT_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: repeat.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/config/preprocessor.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES)
-
-#   include <boost/preprocessor/cat.hpp>
-
-#   define BOOST_MPL_PP_REPEAT(n,f,param) \
-    BOOST_PP_CAT(BOOST_MPL_PP_REPEAT_,n)(f,param) \
-    /**/
-    
-#   define BOOST_MPL_PP_REPEAT_0(f,p)
-#   define BOOST_MPL_PP_REPEAT_1(f,p) f(0,0,p)
-#   define BOOST_MPL_PP_REPEAT_2(f,p) f(0,0,p) f(0,1,p)
-#   define BOOST_MPL_PP_REPEAT_3(f,p) f(0,0,p) f(0,1,p) f(0,2,p)
-#   define BOOST_MPL_PP_REPEAT_4(f,p) f(0,0,p) f(0,1,p) f(0,2,p) f(0,3,p)
-#   define BOOST_MPL_PP_REPEAT_5(f,p) f(0,0,p) f(0,1,p) f(0,2,p) f(0,3,p) f(0,4,p)
-#   define BOOST_MPL_PP_REPEAT_6(f,p) f(0,0,p) f(0,1,p) f(0,2,p) f(0,3,p) f(0,4,p) f(0,5,p)
-#   define BOOST_MPL_PP_REPEAT_7(f,p) f(0,0,p) f(0,1,p) f(0,2,p) f(0,3,p) f(0,4,p) f(0,5,p) f(0,6,p)
-#   define BOOST_MPL_PP_REPEAT_8(f,p) f(0,0,p) f(0,1,p) f(0,2,p) f(0,3,p) f(0,4,p) f(0,5,p) f(0,6,p) f(0,7,p)
-#   define BOOST_MPL_PP_REPEAT_9(f,p) f(0,0,p) f(0,1,p) f(0,2,p) f(0,3,p) f(0,4,p) f(0,5,p) f(0,6,p) f(0,7,p) f(0,8,p)
-#   define BOOST_MPL_PP_REPEAT_10(f,p) f(0,0,p) f(0,1,p) f(0,2,p) f(0,3,p) f(0,4,p) f(0,5,p) f(0,6,p) f(0,7,p) f(0,8,p) f(0,9,p)
-
-#else 
-
-#   include <boost/preprocessor/repeat.hpp>
-
-#   define BOOST_MPL_PP_REPEAT(n,f,param) \
-    BOOST_PP_REPEAT(n,f,param) \
-    /**/
-
-#endif 
-
-#define BOOST_MPL_PP_REPEAT_IDENTITY_FUNC(unused1, unused2, x) x
-
-#endif // BOOST_MPL_AUX_PREPROCESSOR_REPEAT_HPP_INCLUDED
diff --git a/boost/mpl/aux_/preprocessor/sub.hpp b/boost/mpl/aux_/preprocessor/sub.hpp
deleted file mode 100644
index 7f5e291..0000000
--- a/boost/mpl/aux_/preprocessor/sub.hpp
+++ /dev/null
@@ -1,65 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_PREPROCESSOR_SUB_HPP_INCLUDED
-#define BOOST_MPL_AUX_PREPROCESSOR_SUB_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: sub.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/config/preprocessor.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_OWN_PP_PRIMITIVES)
-
-#   include <boost/mpl/aux_/preprocessor/tuple.hpp>
-
-#if defined(BOOST_MPL_CFG_BROKEN_PP_MACRO_EXPANSION)
-#   include <boost/preprocessor/cat.hpp>
-
-#   define BOOST_MPL_PP_SUB(i,j) \
-    BOOST_MPL_PP_SUB_DELAY(i,j) \
-    /**/
-
-#   define BOOST_MPL_PP_SUB_DELAY(i,j) \
-    BOOST_PP_CAT(BOOST_MPL_PP_TUPLE_11_ELEM_##i,BOOST_MPL_PP_SUB_##j) \
-    /**/
-#else
-#   define BOOST_MPL_PP_SUB(i,j) \
-    BOOST_MPL_PP_SUB_DELAY(i,j) \
-    /**/
-
-#   define BOOST_MPL_PP_SUB_DELAY(i,j) \
-    BOOST_MPL_PP_TUPLE_11_ELEM_##i BOOST_MPL_PP_SUB_##j \
-    /**/
-#endif
-
-#   define BOOST_MPL_PP_SUB_0 (0,1,2,3,4,5,6,7,8,9,10)
-#   define BOOST_MPL_PP_SUB_1 (0,0,1,2,3,4,5,6,7,8,9)
-#   define BOOST_MPL_PP_SUB_2 (0,0,0,1,2,3,4,5,6,7,8)
-#   define BOOST_MPL_PP_SUB_3 (0,0,0,0,1,2,3,4,5,6,7)
-#   define BOOST_MPL_PP_SUB_4 (0,0,0,0,0,1,2,3,4,5,6)
-#   define BOOST_MPL_PP_SUB_5 (0,0,0,0,0,0,1,2,3,4,5)
-#   define BOOST_MPL_PP_SUB_6 (0,0,0,0,0,0,0,1,2,3,4)
-#   define BOOST_MPL_PP_SUB_7 (0,0,0,0,0,0,0,0,1,2,3)
-#   define BOOST_MPL_PP_SUB_8 (0,0,0,0,0,0,0,0,0,1,2)
-#   define BOOST_MPL_PP_SUB_9 (0,0,0,0,0,0,0,0,0,0,1)
-#   define BOOST_MPL_PP_SUB_10 (0,0,0,0,0,0,0,0,0,0,0)
-
-#else
-
-#   include <boost/preprocessor/arithmetic/sub.hpp>
-
-#   define BOOST_MPL_PP_SUB(i,j) \
-    BOOST_PP_SUB(i,j) \
-    /**/
-    
-#endif
-
-#endif // BOOST_MPL_AUX_PREPROCESSOR_SUB_HPP_INCLUDED
diff --git a/boost/mpl/aux_/preprocessor/tuple.hpp b/boost/mpl/aux_/preprocessor/tuple.hpp
deleted file mode 100644
index ed59407..0000000
--- a/boost/mpl/aux_/preprocessor/tuple.hpp
+++ /dev/null
@@ -1,29 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_PREPROCESSOR_TUPLE_HPP_INCLUDED
-#define BOOST_MPL_AUX_PREPROCESSOR_TUPLE_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: tuple.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#define BOOST_MPL_PP_TUPLE_11_ELEM_0(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e0
-#define BOOST_MPL_PP_TUPLE_11_ELEM_1(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e1
-#define BOOST_MPL_PP_TUPLE_11_ELEM_2(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e2
-#define BOOST_MPL_PP_TUPLE_11_ELEM_3(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e3
-#define BOOST_MPL_PP_TUPLE_11_ELEM_4(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e4
-#define BOOST_MPL_PP_TUPLE_11_ELEM_5(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e5
-#define BOOST_MPL_PP_TUPLE_11_ELEM_6(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e6
-#define BOOST_MPL_PP_TUPLE_11_ELEM_7(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e7
-#define BOOST_MPL_PP_TUPLE_11_ELEM_8(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e8
-#define BOOST_MPL_PP_TUPLE_11_ELEM_9(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e9
-#define BOOST_MPL_PP_TUPLE_11_ELEM_10(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e10
-
-#endif // BOOST_MPL_AUX_PREPROCESSOR_TUPLE_HPP_INCLUDED
diff --git a/boost/mpl/aux_/push_back_impl.hpp b/boost/mpl/aux_/push_back_impl.hpp
deleted file mode 100644
index 732c43c..0000000
--- a/boost/mpl/aux_/push_back_impl.hpp
+++ /dev/null
@@ -1,70 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_PUSH_BACK_IMPL_HPP_INCLUDED
-#define BOOST_MPL_AUX_PUSH_BACK_IMPL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2008
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: push_back_impl.hpp 55679 2009-08-20 07:50:16Z agurtovoy $
-// $Date: 2009-08-20 00:50:16 -0700 (Thu, 20 Aug 2009) $
-// $Revision: 55679 $
-
-#include <boost/mpl/push_back_fwd.hpp>
-#include <boost/mpl/assert.hpp>
-#include <boost/mpl/aux_/has_type.hpp>
-#include <boost/mpl/aux_/traits_lambda_spec.hpp>
-#include <boost/mpl/aux_/config/forwarding.hpp>
-#include <boost/mpl/aux_/config/static_constant.hpp>
-
-#include <boost/type_traits/is_same.hpp>
-
-namespace boost { namespace mpl {
-
-struct has_push_back_arg {};
-
-// agurt 05/feb/04: no default implementation; the stub definition is needed 
-// to enable the default 'has_push_back' implementation below
-template< typename Tag >
-struct push_back_impl
-{
-    template< typename Sequence, typename T > struct apply
-    {
-        // should be instantiated only in the context of 'has_push_back_impl';
-        // if you've got an assert here, you are requesting a 'push_back' 
-        // specialization that doesn't exist.
-        BOOST_MPL_ASSERT_MSG(
-              ( boost::is_same< T, has_push_back_arg >::value )
-            , REQUESTED_PUSH_BACK_SPECIALIZATION_FOR_SEQUENCE_DOES_NOT_EXIST
-            , ( Sequence )
-            );
-    };
-};
-
-template< typename Tag >
-struct has_push_back_impl
-{
-    template< typename Seq > struct apply
-#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING)
-        : aux::has_type< push_back< Seq, has_push_back_arg > >
-    {
-#else
-    {
-        typedef aux::has_type< push_back< Seq, has_push_back_arg > > type;
-        BOOST_STATIC_CONSTANT(bool, value = 
-              (aux::has_type< push_back< Seq, has_push_back_arg > >::value)
-            );
-#endif
-    };
-};
-
-BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(2, push_back_impl)
-BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(1, has_push_back_impl)
-
-}}
-
-#endif // BOOST_MPL_AUX_PUSH_BACK_IMPL_HPP_INCLUDED
diff --git a/boost/mpl/aux_/push_front_impl.hpp b/boost/mpl/aux_/push_front_impl.hpp
deleted file mode 100644
index ae1bc22..0000000
--- a/boost/mpl/aux_/push_front_impl.hpp
+++ /dev/null
@@ -1,71 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_PUSH_FRONT_IMPL_HPP_INCLUDED
-#define BOOST_MPL_AUX_PUSH_FRONT_IMPL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2008
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: push_front_impl.hpp 55679 2009-08-20 07:50:16Z agurtovoy $
-// $Date: 2009-08-20 00:50:16 -0700 (Thu, 20 Aug 2009) $
-// $Revision: 55679 $
-
-#include <boost/mpl/push_front_fwd.hpp>
-#include <boost/mpl/assert.hpp>
-#include <boost/mpl/aux_/has_type.hpp>
-#include <boost/mpl/aux_/traits_lambda_spec.hpp>
-#include <boost/mpl/aux_/config/forwarding.hpp>
-#include <boost/mpl/aux_/config/static_constant.hpp>
-
-#include <boost/type_traits/is_same.hpp>
-
-namespace boost { namespace mpl {
-
-struct has_push_front_arg {};
-
-// agurt 05/feb/04: no default implementation; the stub definition is needed 
-// to enable the default 'has_push_front' implementation below
-
-template< typename Tag >
-struct push_front_impl
-{
-    template< typename Sequence, typename T > struct apply
-    {
-        // should be instantiated only in the context of 'has_push_front_impl';
-        // if you've got an assert here, you are requesting a 'push_front' 
-        // specialization that doesn't exist.
-        BOOST_MPL_ASSERT_MSG(
-              ( boost::is_same< T, has_push_front_arg >::value )
-            , REQUESTED_PUSH_FRONT_SPECIALIZATION_FOR_SEQUENCE_DOES_NOT_EXIST
-            , ( Sequence )
-            );
-    };
-};
-
-template< typename Tag >
-struct has_push_front_impl
-{
-    template< typename Seq > struct apply
-#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING)
-        : aux::has_type< push_front< Seq, has_push_front_arg > >
-    {
-#else
-    {
-        typedef aux::has_type< push_front< Seq, has_push_front_arg > > type;
-        BOOST_STATIC_CONSTANT(bool, value = 
-              (aux::has_type< push_front< Seq, has_push_front_arg > >::value)
-            );
-#endif
-    };
-};
-
-BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(2, push_front_impl)
-BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(1, has_push_front_impl)
-
-}}
-
-#endif // BOOST_MPL_AUX_PUSH_FRONT_IMPL_HPP_INCLUDED
diff --git a/boost/mpl/aux_/reverse_fold_impl.hpp b/boost/mpl/aux_/reverse_fold_impl.hpp
deleted file mode 100644
index 9c17c01..0000000
--- a/boost/mpl/aux_/reverse_fold_impl.hpp
+++ /dev/null
@@ -1,44 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_REVERSE_FOLD_IMPL_HPP_INCLUDED
-#define BOOST_MPL_AUX_REVERSE_FOLD_IMPL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: reverse_fold_impl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-#   include <boost/mpl/next_prior.hpp>
-#   include <boost/mpl/deref.hpp>
-#   include <boost/mpl/apply.hpp>
-#   include <boost/mpl/aux_/config/ctps.hpp>
-#   if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
-    || defined(BOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC)
-#       include <boost/mpl/if.hpp>
-#       include <boost/type_traits/is_same.hpp>
-#   endif
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-#   define BOOST_MPL_PREPROCESSED_HEADER reverse_fold_impl.hpp
-#   include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-#   define AUX778076_FOLD_IMPL_OP(iter) typename deref<iter>::type
-#   define AUX778076_FOLD_IMPL_NAME_PREFIX reverse_fold
-#   include <boost/mpl/aux_/reverse_fold_impl_body.hpp>
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_AUX_REVERSE_FOLD_IMPL_HPP_INCLUDED
diff --git a/boost/mpl/aux_/reverse_fold_impl_body.hpp b/boost/mpl/aux_/reverse_fold_impl_body.hpp
deleted file mode 100644
index c815e0a..0000000
--- a/boost/mpl/aux_/reverse_fold_impl_body.hpp
+++ /dev/null
@@ -1,412 +0,0 @@
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION!
-
-#if !defined(BOOST_PP_IS_ITERATING)
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: reverse_fold_impl_body.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#   include <boost/mpl/limits/unrolling.hpp>
-#   include <boost/mpl/aux_/preprocessor/repeat.hpp>
-#   include <boost/mpl/aux_/config/ctps.hpp>
-#   include <boost/mpl/aux_/nttp_decl.hpp>
-
-#   include <boost/preprocessor/arithmetic/sub.hpp>
-#   include <boost/preprocessor/iterate.hpp>
-#   include <boost/preprocessor/dec.hpp>
-#   include <boost/preprocessor/inc.hpp>
-#   include <boost/preprocessor/cat.hpp>
-
-// local macros, #undef-ined at the end of the header
-
-#   define AUX778076_ITER_FOLD_FORWARD_STEP(unused, n_, unused2) \
-    typedef typename apply2< \
-          ForwardOp \
-        , BOOST_PP_CAT(fwd_state,n_) \
-        , AUX778076_FOLD_IMPL_OP(BOOST_PP_CAT(iter,n_)) \
-        >::type BOOST_PP_CAT(fwd_state,BOOST_PP_INC(n_)); \
-    typedef typename mpl::next<BOOST_PP_CAT(iter,n_)>::type \
-        BOOST_PP_CAT(iter,BOOST_PP_INC(n_)); \
-    /**/
-
-#   define AUX778076_ITER_FOLD_BACKWARD_STEP_FUNC(n_) \
-    typedef typename apply2< \
-          BackwardOp \
-        , BOOST_PP_CAT(bkwd_state,n_) \
-        , AUX778076_FOLD_IMPL_OP(BOOST_PP_CAT(iter,BOOST_PP_DEC(n_))) \
-        >::type BOOST_PP_CAT(bkwd_state,BOOST_PP_DEC(n_)); \
-    /**/
-
-#   define AUX778076_ITER_FOLD_BACKWARD_STEP(unused, n_, j) \
-    AUX778076_ITER_FOLD_BACKWARD_STEP_FUNC( \
-          BOOST_PP_SUB_D(1,j,n_) \
-        ) \
-    /**/
-
-#   define AUX778076_FIRST_BACKWARD_STATE_TYPEDEF(n_) \
-    typedef typename nested_chunk::state BOOST_PP_CAT(bkwd_state,n_);
-    /**/
-
-#   define AUX778076_FOLD_IMPL_NAME \
-    BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_impl) \
-    /**/
-
-#   define AUX778076_FOLD_CHUNK_NAME \
-    BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_chunk) \
-    /**/
-
-namespace boost { namespace mpl { namespace aux {
-
-/// forward declaration
-template<
-      BOOST_MPL_AUX_NTTP_DECL(long, N)
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    > 
-struct AUX778076_FOLD_IMPL_NAME;
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
-    && !defined(BOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC)
-
-#   define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(0, BOOST_MPL_LIMIT_UNROLLING, <boost/mpl/aux_/reverse_fold_impl_body.hpp>))
-#   include BOOST_PP_ITERATE()
-
-// implementation for N that exceeds BOOST_MPL_LIMIT_UNROLLING
-template<
-      BOOST_MPL_AUX_NTTP_DECL(long, N)
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    > 
-struct AUX778076_FOLD_IMPL_NAME
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-
-    BOOST_MPL_PP_REPEAT(
-          BOOST_MPL_LIMIT_UNROLLING
-        , AUX778076_ITER_FOLD_FORWARD_STEP
-        , unused
-        )
-
-    typedef AUX778076_FOLD_IMPL_NAME<
-          ( (N - BOOST_MPL_LIMIT_UNROLLING) < 0 ? 0 : N - BOOST_MPL_LIMIT_UNROLLING )
-        , BOOST_PP_CAT(iter,BOOST_MPL_LIMIT_UNROLLING)
-        , Last
-        , BOOST_PP_CAT(fwd_state,BOOST_MPL_LIMIT_UNROLLING)
-        , BackwardOp
-        , ForwardOp
-        > nested_chunk;
-        
-    AUX778076_FIRST_BACKWARD_STATE_TYPEDEF(BOOST_MPL_LIMIT_UNROLLING)
-
-    BOOST_MPL_PP_REPEAT(
-          BOOST_MPL_LIMIT_UNROLLING
-        , AUX778076_ITER_FOLD_BACKWARD_STEP
-        , BOOST_MPL_LIMIT_UNROLLING
-        )
-
-    typedef bkwd_state0 state;
-    typedef typename nested_chunk::iterator iterator;
-};
-
-// fallback implementation for sequences of unknown size
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    > 
-struct AUX778076_FOLD_IMPL_NAME<-1,First,Last,State,BackwardOp,ForwardOp>
-{
-    typedef AUX778076_FOLD_IMPL_NAME<
-          -1
-        , typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State,AUX778076_FOLD_IMPL_OP(First)>::type
-        , BackwardOp
-        , ForwardOp
-        > nested_step;
-
-    typedef typename apply2<
-          BackwardOp
-        , typename nested_step::state
-        , AUX778076_FOLD_IMPL_OP(First)
-        >::type state;
-
-    typedef typename nested_step::iterator iterator;
-};
-
-template<
-      typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    > 
-struct AUX778076_FOLD_IMPL_NAME<-1,Last,Last,State,BackwardOp,ForwardOp>
-{
-    typedef State state;
-    typedef Last iterator;
-};
-
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-template< BOOST_MPL_AUX_NTTP_DECL(long, N) >
-struct AUX778076_FOLD_CHUNK_NAME;
-
-#   define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(0, BOOST_MPL_LIMIT_UNROLLING, <boost/mpl/aux_/reverse_fold_impl_body.hpp>))
-#   include BOOST_PP_ITERATE()
-
-// implementation for N that exceeds BOOST_MPL_LIMIT_UNROLLING
-template< BOOST_MPL_AUX_NTTP_DECL(long, N) > 
-struct AUX778076_FOLD_CHUNK_NAME
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        > 
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-
-        BOOST_MPL_PP_REPEAT(
-              BOOST_MPL_LIMIT_UNROLLING
-            , AUX778076_ITER_FOLD_FORWARD_STEP
-            , unused
-            )
-
-        typedef AUX778076_FOLD_IMPL_NAME<
-              ( (N - BOOST_MPL_LIMIT_UNROLLING) < 0 ? 0 : N - BOOST_MPL_LIMIT_UNROLLING )
-            , BOOST_PP_CAT(iter,BOOST_MPL_LIMIT_UNROLLING)
-            , Last
-            , BOOST_PP_CAT(fwd_state,BOOST_MPL_LIMIT_UNROLLING)
-            , BackwardOp
-            , ForwardOp
-            > nested_chunk;
-            
-        AUX778076_FIRST_BACKWARD_STATE_TYPEDEF(BOOST_MPL_LIMIT_UNROLLING)
-
-        BOOST_MPL_PP_REPEAT(
-              BOOST_MPL_LIMIT_UNROLLING
-            , AUX778076_ITER_FOLD_BACKWARD_STEP
-            , BOOST_MPL_LIMIT_UNROLLING
-            )
-
-        typedef bkwd_state0 state;
-        typedef typename nested_chunk::iterator iterator;
-    };
-};
-
-// fallback implementation for sequences of unknown size
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    > 
-struct BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_step);
-
-template<
-      typename Last
-    , typename State
-    >
-struct BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_null_step)
-{
-    typedef Last iterator;
-    typedef State state;
-};
-
-template<> 
-struct AUX778076_FOLD_CHUNK_NAME<-1>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        > 
-    struct result_
-    {
-        typedef typename if_<
-              typename is_same<First,Last>::type
-            , BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_null_step)<Last,State>
-            , BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_step)<First,Last,State,BackwardOp,ForwardOp>
-            >::type res_;
-
-        typedef typename res_::state state;
-        typedef typename res_::iterator iterator;
-    };
-
-#if defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG)
-    /// ETI workaround
-    template<> struct result_<int,int,int,int,int>
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-#endif
-};
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    > 
-struct BOOST_PP_CAT(AUX778076_FOLD_IMPL_NAME_PREFIX,_step)
-{
-    typedef AUX778076_FOLD_CHUNK_NAME<-1>::template result_<
-          typename mpl::next<First>::type
-        , Last
-        , typename apply2<ForwardOp,State,AUX778076_FOLD_IMPL_OP(First)>::type
-        , BackwardOp
-        , ForwardOp
-        > nested_step;
-
-    typedef typename apply2<
-          BackwardOp
-        , typename nested_step::state
-        , AUX778076_FOLD_IMPL_OP(First)
-        >::type state;
-
-    typedef typename nested_step::iterator iterator;
-};
-
-template<
-      BOOST_MPL_AUX_NTTP_DECL(long, N)
-    , typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    > 
-struct AUX778076_FOLD_IMPL_NAME
-    : AUX778076_FOLD_CHUNK_NAME<N>
-        ::template result_<First,Last,State,BackwardOp,ForwardOp>
-{
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-}}}
-
-#   undef AUX778076_FIRST_BACKWARD_STATE_TYPEDEF
-#   undef AUX778076_ITER_FOLD_BACKWARD_STEP
-#   undef AUX778076_ITER_FOLD_BACKWARD_STEP_FUNC
-#   undef AUX778076_ITER_FOLD_FORWARD_STEP
-
-#undef AUX778076_FOLD_IMPL_OP
-#undef AUX778076_FOLD_IMPL_NAME_PREFIX
-
-///// iteration
-
-#else
-
-#   define n_ BOOST_PP_FRAME_ITERATION(1)
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
-    && !defined(BOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC)
-
-template<
-      typename First
-    , typename Last
-    , typename State
-    , typename BackwardOp
-    , typename ForwardOp
-    >
-struct AUX778076_FOLD_IMPL_NAME<n_,First,Last,State,BackwardOp,ForwardOp>
-{
-    typedef First iter0;
-    typedef State fwd_state0;
-
-    BOOST_MPL_PP_REPEAT(
-          n_
-        , AUX778076_ITER_FOLD_FORWARD_STEP
-        , unused
-        )
-
-    typedef BOOST_PP_CAT(fwd_state,n_) BOOST_PP_CAT(bkwd_state,n_);
-
-    BOOST_MPL_PP_REPEAT(
-          n_
-        , AUX778076_ITER_FOLD_BACKWARD_STEP
-        , n_
-        )
-
-    typedef bkwd_state0 state;
-    typedef BOOST_PP_CAT(iter,n_) iterator;
-};
-
-#else
-
-template<> struct AUX778076_FOLD_CHUNK_NAME<n_>
-{
-    template<
-          typename First
-        , typename Last
-        , typename State
-        , typename BackwardOp
-        , typename ForwardOp
-        >
-    struct result_
-    {
-        typedef First iter0;
-        typedef State fwd_state0;
-
-        BOOST_MPL_PP_REPEAT(
-              n_
-            , AUX778076_ITER_FOLD_FORWARD_STEP
-            , unused
-            )
-
-        typedef BOOST_PP_CAT(fwd_state,n_) BOOST_PP_CAT(bkwd_state,n_);
-
-        BOOST_MPL_PP_REPEAT(
-              n_
-            , AUX778076_ITER_FOLD_BACKWARD_STEP
-            , n_
-            )
-
-        typedef bkwd_state0 state;
-        typedef BOOST_PP_CAT(iter,n_) iterator;
-    };
-
-#if defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG)
-    /// ETI workaround
-    template<> struct result_<int,int,int,int,int>
-    {
-        typedef int state;
-        typedef int iterator;
-    };
-#endif
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#   undef n_
-
-#endif // BOOST_PP_IS_ITERATING
diff --git a/boost/mpl/aux_/sequence_wrapper.hpp b/boost/mpl/aux_/sequence_wrapper.hpp
deleted file mode 100644
index 8b49c74..0000000
--- a/boost/mpl/aux_/sequence_wrapper.hpp
+++ /dev/null
@@ -1,292 +0,0 @@
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-#if !defined(BOOST_PP_IS_ITERATING)
-
-///// header body
-
-// Copyright Aleksey Gurtovoy 2000-2008
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: sequence_wrapper.hpp 49271 2008-10-11 06:46:00Z agurtovoy $
-// $Date: 2008-10-10 23:46:00 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49271 $
-
-#   include <boost/mpl/aux_/config/ctps.hpp>
-#   include <boost/mpl/aux_/config/static_constant.hpp>
-#   include <boost/mpl/aux_/nttp_decl.hpp>
-
-#   include <boost/preprocessor/arithmetic/sub.hpp>
-#   include <boost/preprocessor/tuple/elem.hpp>
-#   include <boost/preprocessor/enum_params_with_a_default.hpp>
-#   include <boost/preprocessor/enum_params.hpp>
-#   include <boost/preprocessor/enum.hpp>
-#   include <boost/preprocessor/repeat.hpp>
-#   include <boost/preprocessor/comma_if.hpp>
-#   include <boost/preprocessor/iterate.hpp>
-
-#if defined(BOOST_MPL_PREPROCESSING_MODE)
-#   undef LONG_MAX
-#endif
-
-namespace boost { namespace mpl {
-
-#if !defined(AUX778076_SEQUENCE_BASE_NAME)
-#   define AUX778076_SEQUENCE_BASE_NAME AUX778076_SEQUENCE_NAME
-#endif
-
-#if !defined(AUX778076_SEQUENCE_INTEGRAL_WRAPPER)
-
-#   define AUX778076_SEQUENCE_PARAM_NAME T
-#   define AUX778076_SEQUENCE_TEMPLATE_PARAM typename T
-#   define AUX778076_SEQUENCE_DEFAULT na
-
-#   define AUX778076_SEQUENCE_NAME_N(n) \
-    BOOST_PP_CAT(AUX778076_SEQUENCE_BASE_NAME,n) \
-    /**/
-
-#   define AUX778076_SEQUENCE_PARAMS() \
-    BOOST_PP_ENUM_PARAMS( \
-          AUX778076_SEQUENCE_LIMIT \
-        , AUX778076_SEQUENCE_TEMPLATE_PARAM \
-        ) \
-    /**/
-
-#   define AUX778076_SEQUENCE_ARGS() \
-    BOOST_PP_ENUM_PARAMS( \
-          AUX778076_SEQUENCE_LIMIT \
-        , T \
-        ) \
-    /**/
-
-#   define AUX778076_SEQUENCE_DEFAULT_PARAMS() \
-     BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT( \
-          AUX778076_SEQUENCE_LIMIT \
-        , AUX778076_SEQUENCE_TEMPLATE_PARAM \
-        , AUX778076_SEQUENCE_DEFAULT \
-        ) \
-    /**/
-
-#   define AUX778076_SEQUENCE_N_PARAMS(n) \
-    BOOST_PP_ENUM_PARAMS(n, AUX778076_SEQUENCE_TEMPLATE_PARAM) \
-    /**/
-
-#   define AUX778076_SEQUENCE_N_ARGS(n) \
-    BOOST_PP_ENUM_PARAMS(n, T) \
-    /**/
-
-#   define AUX778076_SEQUENCE_N_PARTIAL_SPEC_ARGS(n) \
-    BOOST_PP_ENUM_PARAMS(n, T) \
-    BOOST_PP_COMMA_IF(n) \
-    BOOST_PP_ENUM( \
-          BOOST_PP_SUB_D(1,AUX778076_SEQUENCE_LIMIT,n) \
-        , BOOST_PP_TUPLE_ELEM_3_2 \
-        , AUX778076_SEQUENCE_DEFAULT \
-        ) \
-    /**/
-
-#else // AUX778076_SEQUENCE_INTEGRAL_WRAPPER
-
-#   define AUX778076_SEQUENCE_PARAM_NAME C
-#   define AUX778076_SEQUENCE_TEMPLATE_PARAM BOOST_MPL_AUX_NTTP_DECL(long, C)
-#   define AUX778076_SEQUENCE_DEFAULT LONG_MAX
-
-#   define AUX778076_SEQUENCE_PARAMS() \
-    typename T, BOOST_PP_ENUM_PARAMS( \
-          AUX778076_SEQUENCE_LIMIT \
-        , AUX778076_SEQUENCE_TEMPLATE_PARAM \
-        ) \
-    /**/
-
-#   define AUX778076_SEQUENCE_ARGS() \
-    T, BOOST_PP_ENUM_PARAMS( \
-          AUX778076_SEQUENCE_LIMIT \
-        , C \
-        ) \
-    /**/
-
-#   define AUX778076_SEQUENCE_DEFAULT_PARAMS() \
-    typename T, \
-    BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT( \
-          AUX778076_SEQUENCE_LIMIT \
-        , AUX778076_SEQUENCE_TEMPLATE_PARAM \
-        , AUX778076_SEQUENCE_DEFAULT \
-        ) \
-    /**/
-
-#   define AUX778076_SEQUENCE_N_PARAMS(n) \
-    typename T BOOST_PP_COMMA_IF(n) \
-    BOOST_PP_ENUM_PARAMS(n, AUX778076_SEQUENCE_TEMPLATE_PARAM) \
-    /**/
-
-#   if !defined(AUX778076_SEQUENCE_CONVERT_CN_TO)
-#       define AUX778076_SEQUENCE_CONVERT_CN_TO(z,n,TARGET) BOOST_PP_CAT(C,n)
-#   endif
-
-#   define AUX778076_SEQUENCE_N_ARGS(n) \
-    T BOOST_PP_COMMA_IF(n) \
-    BOOST_PP_ENUM(n,AUX778076_SEQUENCE_CONVERT_CN_TO,T) \
-    /**/
-
-#   define AUX778076_SEQUENCE_N_PARTIAL_SPEC_ARGS(n) \
-    T, BOOST_PP_ENUM_PARAMS(n, C) \
-    BOOST_PP_COMMA_IF(n) \
-    BOOST_PP_ENUM( \
-          BOOST_PP_SUB_D(1,AUX778076_SEQUENCE_LIMIT,n) \
-        , BOOST_PP_TUPLE_ELEM_3_2 \
-        , AUX778076_SEQUENCE_DEFAULT \
-        ) \
-    /**/
-
-#endif // AUX778076_SEQUENCE_INTEGRAL_WRAPPER
-
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-// forward declaration
-template<
-      AUX778076_SEQUENCE_DEFAULT_PARAMS()
-    >
-struct AUX778076_SEQUENCE_NAME;
-#else
-namespace aux {
-template< BOOST_MPL_AUX_NTTP_DECL(int, N) > 
-struct BOOST_PP_CAT(AUX778076_SEQUENCE_NAME,_chooser);
-}
-#endif
-
-#define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(0, AUX778076_SEQUENCE_LIMIT, <boost/mpl/aux_/sequence_wrapper.hpp>))
-#include BOOST_PP_ITERATE()
-
-// real C++ version is already taken care of
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-namespace aux {
-// ???_count_args
-#define AUX778076_COUNT_ARGS_PREFIX         AUX778076_SEQUENCE_NAME
-#define AUX778076_COUNT_ARGS_DEFAULT        AUX778076_SEQUENCE_DEFAULT
-#define AUX778076_COUNT_ARGS_PARAM_NAME     AUX778076_SEQUENCE_PARAM_NAME
-#define AUX778076_COUNT_ARGS_TEMPLATE_PARAM AUX778076_SEQUENCE_TEMPLATE_PARAM
-#define AUX778076_COUNT_ARGS_ARITY          AUX778076_SEQUENCE_LIMIT
-#define AUX778076_COUNT_ARGS_USE_STANDARD_PP_PRIMITIVES
-#include <boost/mpl/aux_/count_args.hpp>
-
-template<
-      AUX778076_SEQUENCE_PARAMS()
-    >
-struct BOOST_PP_CAT(AUX778076_SEQUENCE_NAME,_impl)
-{
-    typedef aux::BOOST_PP_CAT(AUX778076_SEQUENCE_NAME,_count_args)<
-          BOOST_PP_ENUM_PARAMS(AUX778076_SEQUENCE_LIMIT, AUX778076_SEQUENCE_PARAM_NAME)
-        > arg_num_;
-    
-    typedef typename aux::BOOST_PP_CAT(AUX778076_SEQUENCE_NAME,_chooser)< arg_num_::value >
-        ::template result_< AUX778076_SEQUENCE_ARGS() >::type type;
-};
-
-} // namespace aux
-
-template<
-      AUX778076_SEQUENCE_DEFAULT_PARAMS()
-    >
-struct AUX778076_SEQUENCE_NAME
-    : aux::BOOST_PP_CAT(AUX778076_SEQUENCE_NAME,_impl)<
-          AUX778076_SEQUENCE_ARGS()
-        >::type
-{
-    typedef typename aux::BOOST_PP_CAT(AUX778076_SEQUENCE_NAME,_impl)<
-          AUX778076_SEQUENCE_ARGS()
-        >::type type;
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#   undef AUX778076_SEQUENCE_N_PARTIAL_SPEC_ARGS
-#   undef AUX778076_SEQUENCE_N_ARGS
-#   undef AUX778076_SEQUENCE_CONVERT_CN_TO
-#   undef AUX778076_SEQUENCE_N_PARAMS
-#   undef AUX778076_SEQUENCE_DEFAULT_PARAMS
-#   undef AUX778076_SEQUENCE_ARGS
-#   undef AUX778076_SEQUENCE_PARAMS
-#   undef AUX778076_SEQUENCE_NAME_N
-#   undef AUX778076_SEQUENCE_DEFAULT
-#   undef AUX778076_SEQUENCE_TEMPLATE_PARAM
-#   undef AUX778076_SEQUENCE_PARAM_NAME
-#   undef AUX778076_SEQUENCE_LIMIT
-#   undef AUX778076_SEQUENCE_BASE_NAME
-#   undef AUX778076_SEQUENCE_NAME
-#   undef AUX778076_SEQUENCE_INTEGRAL_WRAPPER
-
-}}
-
-///// iteration
-
-#else
-#define i_ BOOST_PP_FRAME_ITERATION(1)
-
-#   if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-#if i_ == AUX778076_SEQUENCE_LIMIT
-
-/// primary template (not a specialization!)
-template<
-      AUX778076_SEQUENCE_N_PARAMS(i_)
-    >
-struct AUX778076_SEQUENCE_NAME
-    : AUX778076_SEQUENCE_NAME_N(i_)< AUX778076_SEQUENCE_N_ARGS(i_) >
-{
-    typedef typename AUX778076_SEQUENCE_NAME_N(i_)< AUX778076_SEQUENCE_N_ARGS(i_) >::type type;
-};
-
-#else
-
-template<
-      AUX778076_SEQUENCE_N_PARAMS(i_)
-    >
-struct AUX778076_SEQUENCE_NAME< AUX778076_SEQUENCE_N_PARTIAL_SPEC_ARGS(i_) >
-    : AUX778076_SEQUENCE_NAME_N(i_)< AUX778076_SEQUENCE_N_ARGS(i_) >
-{
-#if i_ > 0 || defined(AUX778076_SEQUENCE_INTEGRAL_WRAPPER)
-    typedef typename AUX778076_SEQUENCE_NAME_N(i_)< AUX778076_SEQUENCE_N_ARGS(i_) >::type type;
-#else
-    typedef AUX778076_SEQUENCE_NAME_N(i_)< AUX778076_SEQUENCE_N_ARGS(i_) >::type type;
-#endif
-};
-
-#endif // i_ == AUX778076_SEQUENCE_LIMIT
-
-#   else
-
-namespace aux {
-
-template<>
-struct BOOST_PP_CAT(AUX778076_SEQUENCE_NAME,_chooser)<i_>
-{
-    template<
-          AUX778076_SEQUENCE_PARAMS()
-        >
-    struct result_
-    {
-#if i_ > 0 || defined(AUX778076_SEQUENCE_INTEGRAL_WRAPPER)
-        typedef typename AUX778076_SEQUENCE_NAME_N(i_)<
-              AUX778076_SEQUENCE_N_ARGS(i_)
-            >::type type;
-#else
-        typedef AUX778076_SEQUENCE_NAME_N(i_)<
-              AUX778076_SEQUENCE_N_ARGS(i_)
-            >::type type;
-#endif
-    };
-};
-
-} // namespace aux
-
-#   endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#undef i_
-#endif // BOOST_PP_IS_ITERATING
diff --git a/boost/mpl/aux_/size_impl.hpp b/boost/mpl/aux_/size_impl.hpp
deleted file mode 100644
index 73dc50d..0000000
--- a/boost/mpl/aux_/size_impl.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_SIZE_IMPL_HPP_INCLUDED
-#define BOOST_MPL_AUX_SIZE_IMPL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: size_impl.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/size_fwd.hpp>
-#include <boost/mpl/begin_end.hpp>
-#include <boost/mpl/distance.hpp>
-#include <boost/mpl/aux_/traits_lambda_spec.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-namespace boost { namespace mpl {
-
-// default implementation; conrete sequences might override it by 
-// specializing either the 'size_impl' or the primary 'size' template
-
-template< typename Tag >
-struct size_impl
-{
-    template< typename Sequence > struct apply
-#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x561))
-        : distance<
-              typename begin<Sequence>::type
-            , typename end<Sequence>::type
-            >
-    {
-#else
-    {
-        typedef typename distance<
-              typename begin<Sequence>::type
-            , typename end<Sequence>::type
-            >::type type;
-#endif
-    };
-};
-
-BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(1, size_impl)
-
-}}
-
-#endif // BOOST_MPL_AUX_SIZE_IMPL_HPP_INCLUDED
diff --git a/boost/mpl/aux_/static_cast.hpp b/boost/mpl/aux_/static_cast.hpp
deleted file mode 100644
index 8c12128..0000000
--- a/boost/mpl/aux_/static_cast.hpp
+++ /dev/null
@@ -1,27 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_STATIC_CAST_HPP_INCLUDED
-#define BOOST_MPL_AUX_STATIC_CAST_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: static_cast.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x561)) \
- || BOOST_WORKAROUND(__GNUC__, < 3) \
- || BOOST_WORKAROUND(__MWERKS__, <= 0x3001)
-#   define BOOST_MPL_AUX_STATIC_CAST(T, expr) (T)(expr)
-#else
-#   define BOOST_MPL_AUX_STATIC_CAST(T, expr) static_cast<T>(expr)
-#endif
-
-#endif // BOOST_MPL_AUX_STATIC_CAST_HPP_INCLUDED
diff --git a/boost/mpl/aux_/template_arity.hpp b/boost/mpl/aux_/template_arity.hpp
deleted file mode 100644
index 5e3f6e0..0000000
--- a/boost/mpl/aux_/template_arity.hpp
+++ /dev/null
@@ -1,189 +0,0 @@
-
-#if !defined(BOOST_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef BOOST_MPL_AUX_TEMPLATE_ARITY_HPP_INCLUDED
-#define BOOST_MPL_AUX_TEMPLATE_ARITY_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: template_arity.hpp 61584 2010-04-26 18:48:26Z agurtovoy $
-// $Date: 2010-04-26 11:48:26 -0700 (Mon, 26 Apr 2010) $
-// $Revision: 61584 $
-
-#include <boost/mpl/aux_/config/ttp.hpp>
-#include <boost/mpl/aux_/config/lambda.hpp>
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-#   include <boost/mpl/aux_/template_arity_fwd.hpp>
-#   include <boost/mpl/int.hpp>
-#   if !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT)
-#   if defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING)
-#       include <boost/mpl/aux_/type_wrapper.hpp>
-#   endif
-#   else
-#       include <boost/mpl/aux_/has_rebind.hpp>
-#   endif
-#endif
-
-#include <boost/mpl/aux_/config/static_constant.hpp>
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-#   define BOOST_MPL_PREPROCESSED_HEADER template_arity.hpp
-#   include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-#   if !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT)
-#   if defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING)
-
-#   include <boost/mpl/limits/arity.hpp>
-#   include <boost/mpl/aux_/preprocessor/range.hpp>
-#   include <boost/mpl/aux_/preprocessor/repeat.hpp>
-#   include <boost/mpl/aux_/preprocessor/params.hpp>
-#   include <boost/mpl/aux_/nttp_decl.hpp>
-
-#   include <boost/preprocessor/seq/fold_left.hpp>
-#   include <boost/preprocessor/comma_if.hpp>
-#   include <boost/preprocessor/iterate.hpp>
-#   include <boost/preprocessor/inc.hpp>
-#   include <boost/preprocessor/cat.hpp>
-
-#   define AUX778076_ARITY BOOST_PP_INC(BOOST_MPL_LIMIT_METAFUNCTION_ARITY)
-
-namespace boost { namespace mpl { namespace aux {
-
-template< BOOST_MPL_AUX_NTTP_DECL(int, N) > struct arity_tag
-{
-    typedef char (&type)[N + 1];
-};
-
-#   define AUX778076_MAX_ARITY_OP(unused, state, i_) \
-    ( BOOST_PP_CAT(C,i_) > 0 ? BOOST_PP_CAT(C,i_) : state ) \
-/**/
-
-template<
-      BOOST_MPL_PP_PARAMS(AUX778076_ARITY, BOOST_MPL_AUX_NTTP_DECL(int, C))
-    >
-struct max_arity
-{
-    BOOST_STATIC_CONSTANT(int, value = 
-          BOOST_PP_SEQ_FOLD_LEFT(
-              AUX778076_MAX_ARITY_OP
-            , -1
-            , BOOST_MPL_PP_RANGE(1, AUX778076_ARITY)
-            )
-        );
-};
-
-#   undef AUX778076_MAX_ARITY_OP
-
-arity_tag<0>::type arity_helper(...);
-
-#   define BOOST_PP_ITERATION_LIMITS (1, AUX778076_ARITY)
-#   define BOOST_PP_FILENAME_1 <boost/mpl/aux_/template_arity.hpp>
-#   include BOOST_PP_ITERATE()
-
-template< typename F, BOOST_MPL_AUX_NTTP_DECL(int, N) >
-struct template_arity_impl
-{
-    BOOST_STATIC_CONSTANT(int, value = 
-          sizeof(::boost::mpl::aux::arity_helper(type_wrapper<F>(),arity_tag<N>())) - 1
-        );
-};
-
-#   define AUX778076_TEMPLATE_ARITY_IMPL_INVOCATION(unused, i_, F) \
-    BOOST_PP_COMMA_IF(i_) template_arity_impl<F,BOOST_PP_INC(i_)>::value \
-/**/
-
-template< typename F >
-struct template_arity
-{
-    BOOST_STATIC_CONSTANT(int, value = (
-          max_arity< BOOST_MPL_PP_REPEAT(
-              AUX778076_ARITY
-            , AUX778076_TEMPLATE_ARITY_IMPL_INVOCATION
-            , F
-            ) >::value
-        ));
-        
-    typedef mpl::int_<value> type;
-};
-
-#   undef AUX778076_TEMPLATE_ARITY_IMPL_INVOCATION
-
-#   undef AUX778076_ARITY
-
-}}}
-
-#   endif // BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING
-#   else // BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT
-
-#   include <boost/mpl/aux_/config/eti.hpp>
-
-namespace boost { namespace mpl { namespace aux {
-
-template< bool >
-struct template_arity_impl
-{
-    template< typename F > struct result_
-        : mpl::int_<-1>
-    {
-    };
-};
-
-template<>
-struct template_arity_impl<true>
-{
-    template< typename F > struct result_
-        : F::arity
-    {
-    };
-};
-
-template< typename F >
-struct template_arity
-    : template_arity_impl< ::boost::mpl::aux::has_rebind<F>::value >
-        ::template result_<F>
-{
-};
-
-#if defined(BOOST_MPL_CFG_MSVC_ETI_BUG)
-template<>
-struct template_arity<int>
-    : mpl::int_<-1>
-{
-};
-#endif
-
-}}}
-
-#   endif // BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_AUX_TEMPLATE_ARITY_HPP_INCLUDED
-
-///// iteration
-
-#else
-#define i_ BOOST_PP_FRAME_ITERATION(1)
-
-template<
-      template< BOOST_MPL_PP_PARAMS(i_, typename P) > class F
-    , BOOST_MPL_PP_PARAMS(i_, typename T)
-    >
-typename arity_tag<i_>::type
-arity_helper(type_wrapper< F<BOOST_MPL_PP_PARAMS(i_, T)> >, arity_tag<i_>);
-
-#undef i_
-#endif // BOOST_PP_IS_ITERATING
diff --git a/boost/mpl/aux_/template_arity_fwd.hpp b/boost/mpl/aux_/template_arity_fwd.hpp
deleted file mode 100644
index 44bc9d2..0000000
--- a/boost/mpl/aux_/template_arity_fwd.hpp
+++ /dev/null
@@ -1,23 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_TEMPLATE_ARITY_FWD_HPP_INCLUDED
-#define BOOST_MPL_AUX_TEMPLATE_ARITY_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: template_arity_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-namespace boost { namespace mpl { namespace aux {
-
-template< typename F > struct template_arity;
-
-}}}
-
-#endif // BOOST_MPL_AUX_TEMPLATE_ARITY_FWD_HPP_INCLUDED
diff --git a/boost/mpl/aux_/traits_lambda_spec.hpp b/boost/mpl/aux_/traits_lambda_spec.hpp
deleted file mode 100644
index c9b60fe..0000000
--- a/boost/mpl/aux_/traits_lambda_spec.hpp
+++ /dev/null
@@ -1,63 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_TRAITS_LAMBDA_SPEC_HPP_INCLUDED
-#define BOOST_MPL_AUX_TRAITS_LAMBDA_SPEC_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2008
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: traits_lambda_spec.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/sequence_tag_fwd.hpp>
-#include <boost/mpl/void.hpp>
-#include <boost/mpl/aux_/preprocessor/params.hpp>
-#include <boost/mpl/aux_/config/lambda.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT)
-
-#   define BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC_IMPL(i, trait) /**/
-
-#elif !defined(BOOST_MPL_CFG_MSVC_ETI_BUG)
-
-#   define BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC_IMPL(i, trait) \
-template<> struct trait<void_> \
-{ \
-    template< BOOST_MPL_PP_PARAMS(i, typename T) > struct apply \
-    { \
-    }; \
-}; \
-/**/
-
-#else
-
-#   define BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC_IMPL(i, trait) \
-template<> struct trait<void_> \
-{ \
-    template< BOOST_MPL_PP_PARAMS(i, typename T) > struct apply \
-    { \
-    }; \
-}; \
-template<> struct trait<int> \
-{ \
-    template< BOOST_MPL_PP_PARAMS(i, typename T) > struct apply \
-    { \
-        typedef int type; \
-    }; \
-}; \
-/**/
-
-#endif // BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT
-
-
-#define BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(i, trait) \
-    BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC_IMPL(i, trait) \
-    template<> struct trait<non_sequence_tag> {}; \
-/**/
-
-#endif // BOOST_MPL_AUX_TRAITS_LAMBDA_SPEC_HPP_INCLUDED
diff --git a/boost/mpl/aux_/type_wrapper.hpp b/boost/mpl/aux_/type_wrapper.hpp
deleted file mode 100644
index 6d6091b..0000000
--- a/boost/mpl/aux_/type_wrapper.hpp
+++ /dev/null
@@ -1,47 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_TYPE_WRAPPER_HPP_INCLUDED
-#define BOOST_MPL_AUX_TYPE_WRAPPER_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright Peter Dimov 2000-2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: type_wrapper.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/config/ctps.hpp>
-
-namespace boost { namespace mpl { namespace aux {
-
-template< typename T > struct type_wrapper
-{
-    typedef T type;
-};
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-// agurt 08/may/03: a complicated way to extract the wrapped type; need it 
-// mostly for the sake of GCC (3.2.x), which ICEs if you try to extract the 
-// nested 'type' from 'type_wrapper<T>' when the latter was the result of a
-// 'typeof' expression
-template< typename T > struct wrapped_type;
-
-template< typename T > struct wrapped_type< type_wrapper<T> >
-{
-    typedef T type;
-};
-#else
-template< typename W > struct wrapped_type
-{
-    typedef typename W::type type;
-};
-#endif
-
-}}}
-
-#endif // BOOST_MPL_AUX_TYPE_WRAPPER_HPP_INCLUDED
diff --git a/boost/mpl/aux_/value_wknd.hpp b/boost/mpl/aux_/value_wknd.hpp
deleted file mode 100644
index 7baa8bf..0000000
--- a/boost/mpl/aux_/value_wknd.hpp
+++ /dev/null
@@ -1,89 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_VALUE_WKND_HPP_INCLUDED
-#define BOOST_MPL_AUX_VALUE_WKND_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: value_wknd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/static_cast.hpp>
-#include <boost/mpl/aux_/config/integral.hpp>
-#include <boost/mpl/aux_/config/eti.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#if defined(BOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS) \
-    || defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG)
-
-#   include <boost/mpl/int.hpp>
-
-namespace boost { namespace mpl { namespace aux {
-template< typename C_ > struct value_wknd
-    : C_
-{
-};
-
-#if defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG)
-template<> struct value_wknd<int>
-    : int_<1>
-{
-    using int_<1>::value;
-};
-#endif
-}}}
-
-
-#if !defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG)
-#   define BOOST_MPL_AUX_VALUE_WKND(C) \
-    ::BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::aux::value_wknd< C > \
-/**/
-#    define BOOST_MPL_AUX_MSVC_VALUE_WKND(C) BOOST_MPL_AUX_VALUE_WKND(C)
-#else
-#   define BOOST_MPL_AUX_VALUE_WKND(C) C
-#   define BOOST_MPL_AUX_MSVC_VALUE_WKND(C) \
-    ::boost::mpl::aux::value_wknd< C > \
-/**/
-#endif
-
-#else // BOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS
-
-#   define BOOST_MPL_AUX_VALUE_WKND(C) C
-#   define BOOST_MPL_AUX_MSVC_VALUE_WKND(C) C
-
-#endif
-
-#if BOOST_WORKAROUND(__EDG_VERSION__, <= 238)
-#   define BOOST_MPL_AUX_NESTED_VALUE_WKND(T, C) \
-    BOOST_MPL_AUX_STATIC_CAST(T, C::value) \
-/**/
-#else
-#   define BOOST_MPL_AUX_NESTED_VALUE_WKND(T, C) \
-    BOOST_MPL_AUX_VALUE_WKND(C)::value \
-/**/
-#endif
-
-
-namespace boost { namespace mpl { namespace aux {
-
-template< typename T > struct value_type_wknd
-{
-    typedef typename T::value_type type;
-};
-
-#if defined(BOOST_MPL_CFG_MSVC_ETI_BUG)
-template<> struct value_type_wknd<int>
-{
-    typedef int type;
-};
-#endif
-
-}}}
-
-#endif // BOOST_MPL_AUX_VALUE_WKND_HPP_INCLUDED
diff --git a/boost/mpl/aux_/yes_no.hpp b/boost/mpl/aux_/yes_no.hpp
deleted file mode 100644
index ebcb00d..0000000
--- a/boost/mpl/aux_/yes_no.hpp
+++ /dev/null
@@ -1,58 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_YES_NO_HPP_INCLUDED
-#define BOOST_MPL_AUX_YES_NO_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: yes_no.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/nttp_decl.hpp>
-#include <boost/mpl/aux_/config/arrays.hpp>
-#include <boost/mpl/aux_/config/msvc.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-
-namespace boost { namespace mpl { namespace aux {
-
-typedef char (&no_tag)[1];
-typedef char (&yes_tag)[2];
-
-template< bool C_ > struct yes_no_tag
-{
-    typedef no_tag type;
-};
-
-template<> struct yes_no_tag<true>
-{
-    typedef yes_tag type;
-};
-
-
-template< BOOST_MPL_AUX_NTTP_DECL(long, n) > struct weighted_tag
-{
-#if !BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-    typedef char (&type)[n];
-#else
-    char buf[n];
-    typedef weighted_tag type;
-#endif
-};
-
-#if defined(BOOST_MPL_CFG_NO_DEPENDENT_ARRAY_TYPES)
-template<> struct weighted_tag<0>
-{
-    typedef char (&type)[1];
-};
-#endif
-
-}}}
-
-#endif // BOOST_MPL_AUX_YES_NO_HPP_INCLUDED
diff --git a/boost/mpl/back_fwd.hpp b/boost/mpl/back_fwd.hpp
deleted file mode 100644
index c8b1fe9..0000000
--- a/boost/mpl/back_fwd.hpp
+++ /dev/null
@@ -1,24 +0,0 @@
-
-#ifndef BOOST_MPL_BACK_FWD_HPP_INCLUDED
-#define BOOST_MPL_BACK_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: back_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-namespace boost { namespace mpl {
-
-template< typename Tag > struct back_impl;
-template< typename Sequence > struct back;
-
-}}
-
-#endif // BOOST_MPL_BACK_FWD_HPP_INCLUDED
diff --git a/boost/mpl/back_inserter.hpp b/boost/mpl/back_inserter.hpp
deleted file mode 100644
index ce2a284..0000000
--- a/boost/mpl/back_inserter.hpp
+++ /dev/null
@@ -1,34 +0,0 @@
-
-#ifndef BOOST_MPL_BACK_INSERTER_HPP_INCLUDED
-#define BOOST_MPL_BACK_INSERTER_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-// Copyright David Abrahams 2003-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: back_inserter.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/push_back.hpp>
-#include <boost/mpl/inserter.hpp>
-
-namespace boost {
-namespace mpl {
-
-template<
-      typename Sequence
-    >
-struct back_inserter
-    : inserter< Sequence,push_back<> >
-{
-};
-
-}}
-
-#endif // BOOST_MPL_BACK_INSERTER_HPP_INCLUDED
diff --git a/boost/mpl/begin.hpp b/boost/mpl/begin.hpp
deleted file mode 100644
index 9dab265..0000000
--- a/boost/mpl/begin.hpp
+++ /dev/null
@@ -1,19 +0,0 @@
-
-#ifndef BOOST_MPL_BEGIN_HPP_INCLUDED
-#define BOOST_MPL_BEGIN_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: begin.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/begin_end.hpp>
-
-#endif // BOOST_MPL_BEGIN_HPP_INCLUDED
diff --git a/boost/mpl/begin_end.hpp b/boost/mpl/begin_end.hpp
deleted file mode 100644
index 6c3accc..0000000
--- a/boost/mpl/begin_end.hpp
+++ /dev/null
@@ -1,57 +0,0 @@
-
-#ifndef BOOST_MPL_BEGIN_END_HPP_INCLUDED
-#define BOOST_MPL_BEGIN_END_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: begin_end.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/begin_end_fwd.hpp>
-#include <boost/mpl/aux_/begin_end_impl.hpp>
-#include <boost/mpl/sequence_tag.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-
-namespace boost { namespace mpl {
-
-// agurt, 13/sep/02: switched from inheritance to typedef; MSVC is more
-// happy this way (less ETI-related errors), and it doesn't affect 
-// anything else
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(Sequence)
-    >
-struct begin
-{
-    typedef typename sequence_tag<Sequence>::type tag_;
-    typedef typename begin_impl< tag_ >
-        ::template apply< Sequence >::type type;
-
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1,begin,(Sequence))
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(Sequence)
-    >
-struct end
-{
-    typedef typename sequence_tag<Sequence>::type tag_;
-    typedef typename end_impl< tag_ >
-        ::template apply< Sequence >::type type;
-
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1,end,(Sequence))
-};
-
-BOOST_MPL_AUX_NA_SPEC(1, begin)
-BOOST_MPL_AUX_NA_SPEC(1, end)
-
-}}
-
-#endif // BOOST_MPL_BEGIN_END_HPP_INCLUDED
diff --git a/boost/mpl/begin_end_fwd.hpp b/boost/mpl/begin_end_fwd.hpp
deleted file mode 100644
index d1edaca..0000000
--- a/boost/mpl/begin_end_fwd.hpp
+++ /dev/null
@@ -1,27 +0,0 @@
-
-#ifndef BOOST_MPL_BEGIN_END_FWD_HPP_INCLUDED
-#define BOOST_MPL_BEGIN_END_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: begin_end_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-namespace boost { namespace mpl {
-
-template< typename Tag > struct begin_impl;
-template< typename Tag > struct end_impl;
-
-template< typename Sequence > struct begin;
-template< typename Sequence > struct end;
-
-}}
-
-#endif // BOOST_MPL_BEGIN_END_FWD_HPP_INCLUDED
diff --git a/boost/mpl/bind.hpp b/boost/mpl/bind.hpp
deleted file mode 100644
index 25e46b4..0000000
--- a/boost/mpl/bind.hpp
+++ /dev/null
@@ -1,551 +0,0 @@
-
-#if !defined(BOOST_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef BOOST_MPL_BIND_HPP_INCLUDED
-#define BOOST_MPL_BIND_HPP_INCLUDED
-
-// Copyright Peter Dimov 2001
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: bind.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-#   include <boost/mpl/bind_fwd.hpp>
-#   include <boost/mpl/placeholders.hpp>
-#   include <boost/mpl/next.hpp>
-#   include <boost/mpl/protect.hpp>
-#   include <boost/mpl/apply_wrap.hpp>
-#   include <boost/mpl/limits/arity.hpp>
-#   include <boost/mpl/aux_/na.hpp>
-#   include <boost/mpl/aux_/arity_spec.hpp>
-#   include <boost/mpl/aux_/type_wrapper.hpp>
-#   include <boost/mpl/aux_/yes_no.hpp>
-#   if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-#       include <boost/type_traits/is_reference.hpp>
-#   endif 
-#endif
-
-#include <boost/mpl/aux_/config/bind.hpp>
-#include <boost/mpl/aux_/config/static_constant.hpp>
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-#   if defined(BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT)
-#       define BOOST_MPL_PREPROCESSED_HEADER basic_bind.hpp
-#   else
-#       define BOOST_MPL_PREPROCESSED_HEADER bind.hpp
-#   endif
-#   include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <boost/mpl/aux_/preprocessor/params.hpp>
-#   include <boost/mpl/aux_/preprocessor/default_params.hpp>
-#   include <boost/mpl/aux_/preprocessor/def_params_tail.hpp>
-#   include <boost/mpl/aux_/preprocessor/partial_spec_params.hpp>
-#   include <boost/mpl/aux_/preprocessor/ext_params.hpp>
-#   include <boost/mpl/aux_/preprocessor/repeat.hpp>
-#   include <boost/mpl/aux_/preprocessor/enum.hpp>
-#   include <boost/mpl/aux_/preprocessor/add.hpp>
-#   include <boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp>
-#   include <boost/mpl/aux_/config/ctps.hpp>
-#   include <boost/mpl/aux_/config/ttp.hpp>
-#   include <boost/mpl/aux_/config/dtp.hpp>
-#   include <boost/mpl/aux_/nttp_decl.hpp>
-
-#   include <boost/preprocessor/iterate.hpp>
-#   include <boost/preprocessor/comma_if.hpp>
-#   include <boost/preprocessor/cat.hpp>
-#   include <boost/preprocessor/inc.hpp>
-
-namespace boost { namespace mpl {
-
-// local macros, #undef-ined at the end of the header
-#   define AUX778076_APPLY \
-    BOOST_PP_CAT(apply_wrap,BOOST_MPL_LIMIT_METAFUNCTION_ARITY) \
-    /**/
-
-#   if defined(BOOST_MPL_CFG_DMC_AMBIGUOUS_CTPS)
-#       define AUX778076_DMC_PARAM() , int dummy_
-#   else
-#       define AUX778076_DMC_PARAM()
-#   endif
-
-#   define AUX778076_BIND_PARAMS(param) \
-    BOOST_MPL_PP_PARAMS( \
-          BOOST_MPL_LIMIT_METAFUNCTION_ARITY \
-        , param \
-        ) \
-    /**/
-
-#   define AUX778076_BIND_DEFAULT_PARAMS(param, value) \
-    BOOST_MPL_PP_DEFAULT_PARAMS( \
-          BOOST_MPL_LIMIT_METAFUNCTION_ARITY \
-        , param \
-        , value \
-        ) \
-    /**/
-
-#   define AUX778076_BIND_N_PARAMS(n, param) \
-    BOOST_PP_COMMA_IF(n) BOOST_MPL_PP_PARAMS(n, param) \
-    /**/
-
-#   define AUX778076_BIND_N_SPEC_PARAMS(n, param, def) \
-    BOOST_PP_COMMA_IF(n) \
-    BOOST_MPL_PP_PARTIAL_SPEC_PARAMS(n, param, def) \
-    /**/
-
-#if !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
-#   define AUX778076_BIND_NESTED_DEFAULT_PARAMS(param, value) \
-    AUX778076_BIND_DEFAULT_PARAMS(param, value) \
-    /**/
-#else
-#   define AUX778076_BIND_NESTED_DEFAULT_PARAMS(param, value) \
-    AUX778076_BIND_PARAMS(param) \
-    /**/
-#endif
-
-namespace aux {
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template<
-      typename T, AUX778076_BIND_PARAMS(typename U)
-    >
-struct resolve_bind_arg
-{
-    typedef T type;
-};
-
-#   if !defined(BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT)
-
-template<
-      typename T
-    , typename Arg
-    >
-struct replace_unnamed_arg
-{
-    typedef Arg next;
-    typedef T type;
-};
-
-template<
-      typename Arg
-    >
-struct replace_unnamed_arg< arg<-1>,Arg >
-{
-    typedef typename Arg::next next;
-    typedef Arg type;
-};
-
-#   endif // BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT
-
-template<
-      BOOST_MPL_AUX_NTTP_DECL(int, N), AUX778076_BIND_PARAMS(typename U)
-    >
-struct resolve_bind_arg< arg<N>,AUX778076_BIND_PARAMS(U) >
-{
-    typedef typename AUX778076_APPLY<mpl::arg<N>, AUX778076_BIND_PARAMS(U)>::type type;
-};
-
-#if !defined(BOOST_MPL_CFG_NO_BIND_TEMPLATE)
-template<
-      typename F, AUX778076_BIND_PARAMS(typename T), AUX778076_BIND_PARAMS(typename U)
-    >
-struct resolve_bind_arg< bind<F,AUX778076_BIND_PARAMS(T)>,AUX778076_BIND_PARAMS(U) >
-{
-    typedef bind<F,AUX778076_BIND_PARAMS(T)> f_;
-    typedef typename AUX778076_APPLY<f_, AUX778076_BIND_PARAMS(U)>::type type;
-};
-#endif
-
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-// agurt, 15/jan/02: it's not a intended to be used as a function class, and 
-// MSVC6.5 has problems with 'apply' name here (the code compiles, but doesn't
-// work), so I went with the 'result_' here, and in all other similar cases
-template< bool >
-struct resolve_arg_impl
-{
-    template< typename T, AUX778076_BIND_PARAMS(typename U) > struct result_
-    {
-        typedef T type;
-    };
-};
-
-template<> 
-struct resolve_arg_impl<true>
-{
-    template< typename T, AUX778076_BIND_PARAMS(typename U) > struct result_
-    {
-        typedef typename AUX778076_APPLY<
-              T
-            , AUX778076_BIND_PARAMS(U)
-            >::type type;
-    };
-};
-
-// for 'resolve_bind_arg'
-template< typename T > struct is_bind_template;
-
-template< 
-      typename T, AUX778076_BIND_PARAMS(typename U)
-    >
-struct resolve_bind_arg
-    : resolve_arg_impl< is_bind_template<T>::value >
-            ::template result_< T,AUX778076_BIND_PARAMS(U) >
-{
-};
-
-#   if !defined(BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT)
-
-template< typename T > 
-struct replace_unnamed_arg_impl
-{
-    template< typename Arg > struct result_
-    {
-        typedef Arg next;
-        typedef T type;
-    };
-};
-
-template<> 
-struct replace_unnamed_arg_impl< arg<-1> >
-{
-    template< typename Arg > struct result_
-    {
-        typedef typename next<Arg>::type next;
-        typedef Arg type;
-    };
-};
-
-template< typename T, typename Arg > 
-struct replace_unnamed_arg
-    : replace_unnamed_arg_impl<T>::template result_<Arg>
-{
-};
-
-#   endif // BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT
-
-// agurt, 10/mar/02: the forward declaration has to appear before any of
-// 'is_bind_helper' overloads, otherwise MSVC6.5 issues an ICE on it
-template< BOOST_MPL_AUX_NTTP_DECL(int, arity_) > struct bind_chooser;
-
-aux::no_tag is_bind_helper(...);
-template< typename T > aux::no_tag is_bind_helper(protect<T>*);
-
-// overload for "main" form
-// agurt, 15/mar/02: MSVC 6.5 fails to properly resolve the overload 
-// in case if we use 'aux::type_wrapper< bind<...> >' here, and all 
-// 'bind' instantiations form a complete type anyway
-#if !defined(BOOST_MPL_CFG_NO_BIND_TEMPLATE)
-template<
-      typename F, AUX778076_BIND_PARAMS(typename T)
-    >
-aux::yes_tag is_bind_helper(bind<F,AUX778076_BIND_PARAMS(T)>*);
-#endif
-
-template< BOOST_MPL_AUX_NTTP_DECL(int, N) >
-aux::yes_tag is_bind_helper(arg<N>*);
-
-template< bool is_ref_ = true >
-struct is_bind_template_impl
-{
-    template< typename T > struct result_
-    {
-        BOOST_STATIC_CONSTANT(bool, value = false);
-    };
-};
-
-template<>
-struct is_bind_template_impl<false>
-{
-    template< typename T > struct result_
-    {
-        BOOST_STATIC_CONSTANT(bool, value = 
-              sizeof(aux::is_bind_helper(static_cast<T*>(0))) 
-                == sizeof(aux::yes_tag)
-            );
-    };
-};
-
-template< typename T > struct is_bind_template
-    : is_bind_template_impl< ::boost::detail::is_reference_impl<T>::value >
-        ::template result_<T>
-{
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace aux
-
-
-#define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, <boost/mpl/bind.hpp>))
-#include BOOST_PP_ITERATE()
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
-    && !defined(BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS)
-/// if_/eval_if specializations
-#   define AUX778076_SPEC_NAME if_
-#   define BOOST_PP_ITERATION_PARAMS_1 (3,(3, 3, <boost/mpl/bind.hpp>))
-#   include BOOST_PP_ITERATE()
-
-#if !defined(BOOST_MPL_CFG_DMC_AMBIGUOUS_CTPS)
-#   define AUX778076_SPEC_NAME eval_if
-#   define BOOST_PP_ITERATION_PARAMS_1 (3,(3, 3, <boost/mpl/bind.hpp>))
-#   include BOOST_PP_ITERATE()
-#endif
-#endif
-
-// real C++ version is already taken care of
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
-    && !defined(BOOST_MPL_CFG_NO_BIND_TEMPLATE)
-
-namespace aux {
-// apply_count_args
-#define AUX778076_COUNT_ARGS_PREFIX bind
-#define AUX778076_COUNT_ARGS_DEFAULT na
-#define AUX778076_COUNT_ARGS_ARITY BOOST_MPL_LIMIT_METAFUNCTION_ARITY
-#include <boost/mpl/aux_/count_args.hpp>
-}
-
-// bind
-template<
-      typename F, AUX778076_BIND_PARAMS(typename T) AUX778076_DMC_PARAM()
-    >
-struct bind
-    : aux::bind_chooser<
-          aux::bind_count_args<AUX778076_BIND_PARAMS(T)>::value
-        >::template result_< F,AUX778076_BIND_PARAMS(T) >::type
-{
-};
-
-BOOST_MPL_AUX_ARITY_SPEC(
-      BOOST_PP_INC(BOOST_MPL_LIMIT_METAFUNCTION_ARITY)
-    , bind
-    )
-
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(
-      BOOST_PP_INC(BOOST_MPL_LIMIT_METAFUNCTION_ARITY)
-    , bind
-    )
-
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#   undef AUX778076_BIND_NESTED_DEFAULT_PARAMS
-#   undef AUX778076_BIND_N_SPEC_PARAMS
-#   undef AUX778076_BIND_N_PARAMS
-#   undef AUX778076_BIND_DEFAULT_PARAMS
-#   undef AUX778076_BIND_PARAMS
-#   undef AUX778076_DMC_PARAM
-#   undef AUX778076_APPLY
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_BIND_HPP_INCLUDED
-
-///// iteration, depth == 1
-
-// For gcc 4.4 compatability, we must include the
-// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
-#else // BOOST_PP_IS_ITERATING
-#if BOOST_PP_ITERATION_DEPTH() == 1
-
-#   define i_ BOOST_PP_FRAME_ITERATION(1)
-
-#if defined(AUX778076_SPEC_NAME)
-
-// lazy metafunction specialization
-template< template< BOOST_MPL_PP_PARAMS(i_, typename T) > class F, typename Tag >
-struct BOOST_PP_CAT(quote,i_);
-
-template< BOOST_MPL_PP_PARAMS(i_, typename T) > struct AUX778076_SPEC_NAME;
-
-template<
-      typename Tag AUX778076_BIND_N_PARAMS(i_, typename T)
-    >
-struct BOOST_PP_CAT(bind,i_)< 
-      BOOST_PP_CAT(quote,i_)<AUX778076_SPEC_NAME,Tag>
-    AUX778076_BIND_N_PARAMS(i_,T)
-    >
-{
-    template<
-          AUX778076_BIND_NESTED_DEFAULT_PARAMS(typename U, na)
-        >
-    struct apply
-    {
-     private:
-        typedef mpl::arg<1> n1;
-#       define BOOST_PP_ITERATION_PARAMS_2 (3,(1, i_, <boost/mpl/bind.hpp>))
-#       include BOOST_PP_ITERATE()
-
-        typedef typename AUX778076_SPEC_NAME<
-              typename t1::type
-            , BOOST_MPL_PP_EXT_PARAMS(2, BOOST_PP_INC(i_), t)
-            >::type f_;
-
-     public:
-        typedef typename f_::type type;
-    };
-};
-
-#undef AUX778076_SPEC_NAME
-
-#else // AUX778076_SPEC_NAME
-
-template<
-      typename F AUX778076_BIND_N_PARAMS(i_, typename T) AUX778076_DMC_PARAM()
-    >
-struct BOOST_PP_CAT(bind,i_)
-{
-    template<
-          AUX778076_BIND_NESTED_DEFAULT_PARAMS(typename U, na)
-        >
-    struct apply
-    {
-     private:
-#   if !defined(BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT)
-
-        typedef aux::replace_unnamed_arg< F,mpl::arg<1> > r0;
-        typedef typename r0::type a0;
-        typedef typename r0::next n1;
-        typedef typename aux::resolve_bind_arg<a0,AUX778076_BIND_PARAMS(U)>::type f_;
-        ///
-#   else
-        typedef typename aux::resolve_bind_arg<F,AUX778076_BIND_PARAMS(U)>::type f_;
-
-#   endif // BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT
-
-#   if i_ > 0
-#       define BOOST_PP_ITERATION_PARAMS_2 (3,(1, i_, <boost/mpl/bind.hpp>))
-#       include BOOST_PP_ITERATE()
-#   endif
-
-     public:
-
-#   define AUX778076_ARG(unused, i_, t) \
-    BOOST_PP_COMMA_IF(i_) \
-    typename BOOST_PP_CAT(t,BOOST_PP_INC(i_))::type \
-/**/
-
-        typedef typename BOOST_PP_CAT(apply_wrap,i_)<
-              f_ 
-            BOOST_PP_COMMA_IF(i_) BOOST_MPL_PP_REPEAT(i_, AUX778076_ARG, t)
-            >::type type;
-
-#   undef AUX778076_ARG
-    };
-};
-
-namespace aux {
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template<
-      typename F AUX778076_BIND_N_PARAMS(i_, typename T), AUX778076_BIND_PARAMS(typename U)
-    >
-struct resolve_bind_arg<
-      BOOST_PP_CAT(bind,i_)<F AUX778076_BIND_N_PARAMS(i_,T)>,AUX778076_BIND_PARAMS(U)
-    >
-{
-    typedef BOOST_PP_CAT(bind,i_)<F AUX778076_BIND_N_PARAMS(i_,T)> f_;
-    typedef typename AUX778076_APPLY<f_, AUX778076_BIND_PARAMS(U)>::type type;
-};
-
-#else
-
-template<
-      typename F AUX778076_BIND_N_PARAMS(i_, typename T)
-    >
-aux::yes_tag
-is_bind_helper(BOOST_PP_CAT(bind,i_)<F AUX778076_BIND_N_PARAMS(i_,T)>*);
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace aux
-
-BOOST_MPL_AUX_ARITY_SPEC(BOOST_PP_INC(i_), BOOST_PP_CAT(bind,i_))
-BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(BOOST_PP_INC(i_), BOOST_PP_CAT(bind,i_))
-
-#   if !defined(BOOST_MPL_CFG_NO_BIND_TEMPLATE)
-#   if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-    
-#if i_ == BOOST_MPL_LIMIT_METAFUNCTION_ARITY
-/// primary template (not a specialization!)
-template<
-      typename F AUX778076_BIND_N_PARAMS(i_, typename T) AUX778076_DMC_PARAM()
-    >
-struct bind
-    : BOOST_PP_CAT(bind,i_)<F AUX778076_BIND_N_PARAMS(i_,T) >
-{
-};
-#else
-template<
-      typename F AUX778076_BIND_N_PARAMS(i_, typename T) AUX778076_DMC_PARAM()
-    >
-struct bind< F AUX778076_BIND_N_SPEC_PARAMS(i_, T, na) >
-    : BOOST_PP_CAT(bind,i_)<F AUX778076_BIND_N_PARAMS(i_,T) >
-{
-};
-#endif
-
-#   else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-namespace aux {
-
-template<>
-struct bind_chooser<i_>
-{
-    template<
-          typename F, AUX778076_BIND_PARAMS(typename T)
-        >
-    struct result_
-    {
-        typedef BOOST_PP_CAT(bind,i_)< F AUX778076_BIND_N_PARAMS(i_,T) > type;
-    };
-};
-
-} // namespace aux
-
-#   endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#   endif // BOOST_MPL_CFG_NO_BIND_TEMPLATE
-
-#endif // AUX778076_SPEC_NAME
-
-#   undef i_
-
-///// iteration, depth == 2
-
-#elif BOOST_PP_ITERATION_DEPTH() == 2
-
-#   define j_ BOOST_PP_FRAME_ITERATION(2)
-#   if !defined(BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT)
-
-        typedef aux::replace_unnamed_arg< BOOST_PP_CAT(T,j_),BOOST_PP_CAT(n,j_) > BOOST_PP_CAT(r,j_);
-        typedef typename BOOST_PP_CAT(r,j_)::type BOOST_PP_CAT(a,j_);
-        typedef typename BOOST_PP_CAT(r,j_)::next BOOST_PP_CAT(n,BOOST_PP_INC(j_));
-        typedef aux::resolve_bind_arg<BOOST_PP_CAT(a,j_), AUX778076_BIND_PARAMS(U)> BOOST_PP_CAT(t,j_);
-        ///
-#   else
-        typedef aux::resolve_bind_arg< BOOST_PP_CAT(T,j_),AUX778076_BIND_PARAMS(U)> BOOST_PP_CAT(t,j_);
-
-#   endif
-#   undef j_
-
-#endif // BOOST_PP_ITERATION_DEPTH()
-#endif // BOOST_PP_IS_ITERATING
diff --git a/boost/mpl/bind_fwd.hpp b/boost/mpl/bind_fwd.hpp
deleted file mode 100644
index 35795ac..0000000
--- a/boost/mpl/bind_fwd.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-
-#if !defined(BOOST_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef BOOST_MPL_BIND_FWD_HPP_INCLUDED
-#define BOOST_MPL_BIND_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: bind_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-#   include <boost/mpl/aux_/na.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/bind.hpp>
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-#   define BOOST_MPL_PREPROCESSED_HEADER bind_fwd.hpp
-#   include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <boost/mpl/limits/arity.hpp>
-#   include <boost/mpl/aux_/preprocessor/params.hpp>
-#   include <boost/mpl/aux_/preprocessor/default_params.hpp>
-#   include <boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp>
-
-#   include <boost/preprocessor/comma_if.hpp>
-#   include <boost/preprocessor/iterate.hpp>
-#   include <boost/preprocessor/cat.hpp>
-
-namespace boost { namespace mpl {
-
-// local macros, #undef-ined at the end of the header
-
-#   if defined(BOOST_MPL_CFG_DMC_AMBIGUOUS_CTPS)
-#       define AUX778076_DMC_PARAM() , int dummy_ = 0
-#   else
-#       define AUX778076_DMC_PARAM()
-#   endif
-
-#   define AUX778076_BIND_DEFAULT_PARAMS(param, value) \
-    BOOST_MPL_PP_DEFAULT_PARAMS( \
-          BOOST_MPL_LIMIT_METAFUNCTION_ARITY \
-        , param \
-        , value \
-        ) \
-    AUX778076_DMC_PARAM() \
-    /**/
-
-#   define AUX778076_BIND_N_PARAMS(n, param) \
-    BOOST_PP_COMMA_IF(n) BOOST_MPL_PP_PARAMS(n, param) \
-    AUX778076_DMC_PARAM() \
-    /**/
-
-#if !defined(BOOST_MPL_CFG_NO_BIND_TEMPLATE)
-template<
-      typename F, AUX778076_BIND_DEFAULT_PARAMS(typename T, na)
-    >
-struct bind;
-#endif
-
-#define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(0, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, <boost/mpl/bind_fwd.hpp>))
-#include BOOST_PP_ITERATE()
-
-#   undef AUX778076_BIND_N_PARAMS
-#   undef AUX778076_BIND_DEFAULT_PARAMS
-#   undef AUX778076_DMC_PARAM
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_BIND_FWD_HPP_INCLUDED
-
-///// iteration
-
-#else
-#define i_ BOOST_PP_FRAME_ITERATION(1)
-
-template<
-      typename F AUX778076_BIND_N_PARAMS(i_, typename T)
-    >
-struct BOOST_PP_CAT(bind,i_);
-
-#undef i_
-#endif // BOOST_PP_IS_ITERATING
diff --git a/boost/mpl/bool.hpp b/boost/mpl/bool.hpp
deleted file mode 100644
index cabf22f..0000000
--- a/boost/mpl/bool.hpp
+++ /dev/null
@@ -1,39 +0,0 @@
-
-#ifndef BOOST_MPL_BOOL_HPP_INCLUDED
-#define BOOST_MPL_BOOL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: bool.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/bool_fwd.hpp>
-#include <boost/mpl/integral_c_tag.hpp>
-#include <boost/mpl/aux_/config/static_constant.hpp>
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-
-template< bool C_ > struct bool_
-{
-    BOOST_STATIC_CONSTANT(bool, value = C_);
-    typedef integral_c_tag tag;
-    typedef bool_ type;
-    typedef bool value_type;
-    operator bool() const { return this->value; }
-};
-
-#if !defined(BOOST_NO_INCLASS_MEMBER_INITIALIZATION)
-template< bool C_ >
-bool const bool_<C_>::value;
-#endif
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-
-#endif // BOOST_MPL_BOOL_HPP_INCLUDED
diff --git a/boost/mpl/bool_fwd.hpp b/boost/mpl/bool_fwd.hpp
deleted file mode 100644
index e71ab9c..0000000
--- a/boost/mpl/bool_fwd.hpp
+++ /dev/null
@@ -1,33 +0,0 @@
-
-#ifndef BOOST_MPL_BOOL_FWD_HPP_INCLUDED
-#define BOOST_MPL_BOOL_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: bool_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/adl_barrier.hpp>
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-
-template< bool C_ > struct bool_;
-
-// shorcuts
-typedef bool_<true> true_;
-typedef bool_<false> false_;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-
-BOOST_MPL_AUX_ADL_BARRIER_DECL(bool_)
-BOOST_MPL_AUX_ADL_BARRIER_DECL(true_)
-BOOST_MPL_AUX_ADL_BARRIER_DECL(false_)
-
-#endif // BOOST_MPL_BOOL_FWD_HPP_INCLUDED
diff --git a/boost/mpl/clear.hpp b/boost/mpl/clear.hpp
deleted file mode 100644
index 9cf16fa..0000000
--- a/boost/mpl/clear.hpp
+++ /dev/null
@@ -1,39 +0,0 @@
-
-#ifndef BOOST_MPL_CLEAR_HPP_INCLUDED
-#define BOOST_MPL_CLEAR_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: clear.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/clear_fwd.hpp>
-#include <boost/mpl/aux_/clear_impl.hpp>
-#include <boost/mpl/sequence_tag.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-
-namespace boost { namespace mpl {
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(Sequence)
-    >
-struct clear
-    : clear_impl< typename sequence_tag<Sequence>::type >
-        ::template apply< Sequence >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1,clear,(Sequence))
-};
-
-BOOST_MPL_AUX_NA_SPEC(1, clear)
-
-}}
-
-#endif // BOOST_MPL_CLEAR_HPP_INCLUDED
diff --git a/boost/mpl/clear_fwd.hpp b/boost/mpl/clear_fwd.hpp
deleted file mode 100644
index e660bc2..0000000
--- a/boost/mpl/clear_fwd.hpp
+++ /dev/null
@@ -1,24 +0,0 @@
-
-#ifndef BOOST_MPL_CLEAR_FWD_HPP_INCLUDED
-#define BOOST_MPL_CLEAR_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: clear_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-namespace boost { namespace mpl {
-
-template< typename Tag > struct clear_impl;
-template< typename Sequence > struct clear;
-
-}}
-
-#endif // BOOST_MPL_CLEAR_FWD_HPP_INCLUDED
diff --git a/boost/mpl/comparison.hpp b/boost/mpl/comparison.hpp
deleted file mode 100644
index 223b9ef..0000000
--- a/boost/mpl/comparison.hpp
+++ /dev/null
@@ -1,24 +0,0 @@
-
-#ifndef BOOST_MPL_COMPARISON_HPP_INCLUDED
-#define BOOST_MPL_COMPARISON_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: comparison.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/equal_to.hpp>
-#include <boost/mpl/not_equal_to.hpp>
-#include <boost/mpl/less.hpp>
-#include <boost/mpl/greater.hpp>
-#include <boost/mpl/less_equal.hpp>
-#include <boost/mpl/greater_equal.hpp>
-
-#endif // BOOST_MPL_COMPARISON_HPP_INCLUDED
diff --git a/boost/mpl/contains.hpp b/boost/mpl/contains.hpp
deleted file mode 100644
index 620fe41..0000000
--- a/boost/mpl/contains.hpp
+++ /dev/null
@@ -1,41 +0,0 @@
-
-#ifndef BOOST_MPL_CONTAINS_HPP_INCLUDED
-#define BOOST_MPL_CONTAINS_HPP_INCLUDED
-
-// Copyright Eric Friedman 2002
-// Copyright Aleksey Gurtovoy 2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: contains.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/contains_fwd.hpp>
-#include <boost/mpl/sequence_tag.hpp>
-#include <boost/mpl/aux_/contains_impl.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-
-namespace boost { namespace mpl {
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(Sequence)
-    , typename BOOST_MPL_AUX_NA_PARAM(T)
-    >
-struct contains
-    : contains_impl< typename sequence_tag<Sequence>::type >
-        ::template apply< Sequence,T >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2,contains,(Sequence,T))
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, contains)
-
-}}
-
-#endif // BOOST_MPL_CONTAINS_HPP_INCLUDED
diff --git a/boost/mpl/contains_fwd.hpp b/boost/mpl/contains_fwd.hpp
deleted file mode 100644
index af7721a..0000000
--- a/boost/mpl/contains_fwd.hpp
+++ /dev/null
@@ -1,25 +0,0 @@
-
-#ifndef BOOST_MPL_CONTAINS_FWD_HPP_INCLUDED
-#define BOOST_MPL_CONTAINS_FWD_HPP_INCLUDED
-
-// Copyright Eric Friedman 2002
-// Copyright Aleksey Gurtovoy 2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: contains_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-namespace boost { namespace mpl {
-
-template< typename Tag > struct contains_impl;
-template< typename Sequence, typename T > struct contains;
-
-}}
-
-#endif // BOOST_MPL_CONTAINS_FWD_HPP_INCLUDED
diff --git a/boost/mpl/copy.hpp b/boost/mpl/copy.hpp
deleted file mode 100644
index 6849ec8..0000000
--- a/boost/mpl/copy.hpp
+++ /dev/null
@@ -1,58 +0,0 @@
-
-#ifndef BOOST_MPL_COPY_HPP_INCLUDED
-#define BOOST_MPL_COPY_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright David Abrahams 2003-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: copy.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/fold.hpp>
-#include <boost/mpl/reverse_fold.hpp>
-#include <boost/mpl/aux_/inserter_algorithm.hpp>
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template<
-      typename Sequence
-    , typename Inserter
-    >
-struct copy_impl
-    : fold< 
-          Sequence
-        , typename Inserter::state
-        , typename Inserter::operation
-        >
-{
-};
-
-template<
-      typename Sequence
-    , typename Inserter
-    >
-struct reverse_copy_impl
-    : reverse_fold<
-          Sequence
-        , typename Inserter::state
-        , typename Inserter::operation
-        >
-{
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(2, copy)
-
-}}
-
-#endif // BOOST_MPL_COPY_HPP_INCLUDED
diff --git a/boost/mpl/deref.hpp b/boost/mpl/deref.hpp
deleted file mode 100644
index 15479e1..0000000
--- a/boost/mpl/deref.hpp
+++ /dev/null
@@ -1,41 +0,0 @@
-
-#ifndef BOOST_MPL_DEREF_HPP_INCLUDED
-#define BOOST_MPL_DEREF_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: deref.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/msvc_type.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-#include <boost/mpl/aux_/config/eti.hpp>
-
-namespace boost { namespace mpl {
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(Iterator)
-    >
-struct deref
-{
-#if !defined(BOOST_MPL_CFG_MSVC_70_ETI_BUG)
-    typedef typename Iterator::type type;
-#else
-    typedef typename aux::msvc_type<Iterator>::type type;
-#endif
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1,deref,(Iterator))
-};
-
-BOOST_MPL_AUX_NA_SPEC(1, deref)
-
-}}
-
-#endif // BOOST_MPL_DEREF_HPP_INCLUDED
diff --git a/boost/mpl/distance.hpp b/boost/mpl/distance.hpp
deleted file mode 100644
index 8ecd3c1..0000000
--- a/boost/mpl/distance.hpp
+++ /dev/null
@@ -1,78 +0,0 @@
-
-#ifndef BOOST_MPL_DISTANCE_HPP_INCLUDED
-#define BOOST_MPL_DISTANCE_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: distance.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/distance_fwd.hpp>
-#include <boost/mpl/iter_fold.hpp>
-#include <boost/mpl/iterator_range.hpp>
-#include <boost/mpl/long.hpp>
-#include <boost/mpl/next.hpp>
-#include <boost/mpl/tag.hpp>
-#include <boost/mpl/apply_wrap.hpp>
-#include <boost/mpl/aux_/msvc_eti_base.hpp>
-#include <boost/mpl/aux_/value_wknd.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/config/forwarding.hpp>
-#include <boost/mpl/aux_/config/static_constant.hpp>
-
-
-namespace boost { namespace mpl {
-
-// default implementation for forward/bidirectional iterators
-template< typename Tag > struct distance_impl
-{
-    template< typename First, typename Last > struct apply
-#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING)
-        : aux::msvc_eti_base< typename iter_fold<
-              iterator_range<First,Last>
-            , mpl::long_<0>
-            , next<>
-            >::type >
-    {
-#else
-    {
-        typedef typename iter_fold<
-              iterator_range<First,Last>
-            , mpl::long_<0>
-            , next<>
-            >::type type;
-        
-        BOOST_STATIC_CONSTANT(long, value =
-              (iter_fold<
-                  iterator_range<First,Last>
-                , mpl::long_<0>
-                , next<>
-                >::type::value)
-            );
-#endif
-    };
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(First)
-    , typename BOOST_MPL_AUX_NA_PARAM(Last)
-    >
-struct distance
-    : distance_impl< typename tag<First>::type >
-        ::template apply<First, Last>
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, distance, (First, Last))
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, distance)
-
-}}
-
-#endif // BOOST_MPL_DISTANCE_HPP_INCLUDED
diff --git a/boost/mpl/distance_fwd.hpp b/boost/mpl/distance_fwd.hpp
deleted file mode 100644
index 766ceb4..0000000
--- a/boost/mpl/distance_fwd.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-
-#ifndef BOOST_MPL_DISTANCE_FWD_HPP_INCLUDED
-#define BOOST_MPL_DISTANCE_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: distance_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/common_name_wknd.hpp>
-
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_COMMON_NAME_WKND(distance)
-
-template< typename Tag > struct distance_impl;
-template< typename First, typename Last > struct distance;
-
-}}
-
-#endif // BOOST_MPL_DISTANCE_FWD_HPP_INCLUDED
diff --git a/boost/mpl/divides.hpp b/boost/mpl/divides.hpp
deleted file mode 100644
index 6f54496..0000000
--- a/boost/mpl/divides.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-
-#ifndef BOOST_MPL_DIVIDES_HPP_INCLUDED
-#define BOOST_MPL_DIVIDES_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: divides.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#define AUX778076_OP_NAME divides
-#define AUX778076_OP_TOKEN /
-#include <boost/mpl/aux_/arithmetic_op.hpp>
-
-#endif // BOOST_MPL_DIVIDES_HPP_INCLUDED
diff --git a/boost/mpl/empty_base.hpp b/boost/mpl/empty_base.hpp
deleted file mode 100644
index 095003e..0000000
--- a/boost/mpl/empty_base.hpp
+++ /dev/null
@@ -1,59 +0,0 @@
-
-#ifndef BOOST_MPL_EMPTY_BASE_HPP_INCLUDED
-#define BOOST_MPL_EMPTY_BASE_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: empty_base.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/aux_/config/msvc.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#include <boost/type_traits/is_empty.hpp>
-
-// should be always the last #include directive
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost { namespace mpl {
-
-// empty base class, guaranteed to have no members; inheritance from
-// 'empty_base' through the 'inherit' metafunction is a no-op - see 
-// "mpl/inherit.hpp> header for the details
-struct empty_base {};
-
-template< typename T >
-struct is_empty_base
-    : false_
-{
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-    using false_::value;
-#endif
-};
-
-template<>
-struct is_empty_base<empty_base>
-    : true_
-{
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-    using true_::value;
-#endif
-};
-
-}}
-
-namespace boost {
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_empty, mpl::empty_base, true)
-}
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_MPL_EMPTY_BASE_HPP_INCLUDED
diff --git a/boost/mpl/empty_fwd.hpp b/boost/mpl/empty_fwd.hpp
deleted file mode 100644
index 4bf6868..0000000
--- a/boost/mpl/empty_fwd.hpp
+++ /dev/null
@@ -1,24 +0,0 @@
-
-#ifndef BOOST_MPL_EMPTY_FWD_HPP_INCLUDED
-#define BOOST_MPL_EMPTY_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: empty_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-namespace boost { namespace mpl {
-
-template< typename Tag > struct empty_impl;
-template< typename Sequence > struct empty;
-
-}}
-
-#endif // BOOST_MPL_EMPTY_FWD_HPP_INCLUDED
diff --git a/boost/mpl/end.hpp b/boost/mpl/end.hpp
deleted file mode 100644
index ddee556..0000000
--- a/boost/mpl/end.hpp
+++ /dev/null
@@ -1,19 +0,0 @@
-
-#ifndef BOOST_MPL_END_HPP_INCLUDED
-#define BOOST_MPL_END_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: end.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/begin_end.hpp>
-
-#endif // BOOST_MPL_END_HPP_INCLUDED
diff --git a/boost/mpl/equal_to.hpp b/boost/mpl/equal_to.hpp
deleted file mode 100644
index 359031c..0000000
--- a/boost/mpl/equal_to.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-
-#ifndef BOOST_MPL_EQUAL_TO_HPP_INCLUDED
-#define BOOST_MPL_EQUAL_TO_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: equal_to.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#define AUX778076_OP_NAME equal_to
-#define AUX778076_OP_TOKEN ==
-#include <boost/mpl/aux_/comparison_op.hpp>
-
-#endif // BOOST_MPL_EQUAL_TO_HPP_INCLUDED
diff --git a/boost/mpl/eval_if.hpp b/boost/mpl/eval_if.hpp
deleted file mode 100644
index f1a5b70..0000000
--- a/boost/mpl/eval_if.hpp
+++ /dev/null
@@ -1,71 +0,0 @@
-
-#ifndef BOOST_MPL_EVAL_IF_HPP_INCLUDED
-#define BOOST_MPL_EVAL_IF_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: eval_if.hpp 61921 2010-05-11 21:33:24Z neilgroves $
-// $Date: 2010-05-11 14:33:24 -0700 (Tue, 11 May 2010) $
-// $Revision: 61921 $
-
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-#include <boost/mpl/aux_/config/msvc.hpp>
-#include <boost/mpl/aux_/config/gcc.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-namespace boost { namespace mpl {
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(C)
-    , typename BOOST_MPL_AUX_NA_PARAM(F1)
-    , typename BOOST_MPL_AUX_NA_PARAM(F2)
-    >
-struct eval_if
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \
-     || ( BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, >= 0x0300) \
-        && BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0304)) \
-        )
-{
-    typedef typename if_<C,F1,F2>::type f_;
-    typedef typename f_::type type;
-#else
-    : if_<C,F1,F2>::type
-{
-#endif
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(3,eval_if,(C,F1,F2))
-};
-
-// (almost) copy & paste in order to save one more 
-// recursively nested template instantiation to user
-template<
-      bool C
-    , typename F1
-    , typename F2
-    >
-struct eval_if_c
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \
-     || ( BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, >= 0x0300) \
-        && BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0304)) \
-        )
-{
-    typedef typename if_c<C,F1,F2>::type f_;
-    typedef typename f_::type type;
-#else
-    : if_c<C,F1,F2>::type
-{
-#endif
-};
-
-BOOST_MPL_AUX_NA_SPEC(3, eval_if)
-
-}}
-
-#endif // BOOST_MPL_EVAL_IF_HPP_INCLUDED
diff --git a/boost/mpl/find.hpp b/boost/mpl/find.hpp
deleted file mode 100644
index 7b09423..0000000
--- a/boost/mpl/find.hpp
+++ /dev/null
@@ -1,38 +0,0 @@
-
-#ifndef BOOST_MPL_FIND_HPP_INCLUDED
-#define BOOST_MPL_FIND_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2002
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: find.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/find_if.hpp>
-#include <boost/mpl/same_as.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-
-namespace boost { namespace mpl {
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(Sequence)
-    , typename BOOST_MPL_AUX_NA_PARAM(T)
-    >
-struct find
-    : find_if< Sequence,same_as<T> >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2,find,(Sequence,T))
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, find)
-
-}}
-
-#endif // BOOST_MPL_FIND_HPP_INCLUDED
diff --git a/boost/mpl/find_if.hpp b/boost/mpl/find_if.hpp
deleted file mode 100644
index a066e71..0000000
--- a/boost/mpl/find_if.hpp
+++ /dev/null
@@ -1,50 +0,0 @@
-
-#ifndef BOOST_MPL_FIND_IF_HPP_INCLUDED
-#define BOOST_MPL_FIND_IF_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: find_if.hpp 49274 2008-10-11 07:22:05Z agurtovoy $
-// $Date: 2008-10-11 00:22:05 -0700 (Sat, 11 Oct 2008) $
-// $Revision: 49274 $
-
-#include <boost/mpl/aux_/find_if_pred.hpp>
-#include <boost/mpl/arg.hpp>
-#include <boost/mpl/iter_fold_if.hpp>
-#include <boost/mpl/aux_/common_name_wknd.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_COMMON_NAME_WKND(find_if)
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(Sequence)
-    , typename BOOST_MPL_AUX_NA_PARAM(Predicate)
-    >
-struct find_if
-{
-    typedef typename iter_fold_if<
-          Sequence
-        , void
-        , mpl::arg<1> // ignore
-        , protect< aux::find_if_pred<Predicate> >
-        >::type result_;
-
-    typedef typename second<result_>::type type;
-
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2,find_if,(Sequence,Predicate))
-};
-
-BOOST_MPL_AUX_NA_SPEC(2,find_if)
-
-}}
-
-#endif // BOOST_MPL_FIND_IF_HPP_INCLUDED
diff --git a/boost/mpl/fold.hpp b/boost/mpl/fold.hpp
deleted file mode 100644
index e5e02bd..0000000
--- a/boost/mpl/fold.hpp
+++ /dev/null
@@ -1,48 +0,0 @@
-
-#ifndef BOOST_MPL_FOLD_HPP_INCLUDED
-#define BOOST_MPL_FOLD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright David Abrahams 2001-2002
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: fold.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/begin_end.hpp>
-#include <boost/mpl/O1_size.hpp>
-#include <boost/mpl/aux_/fold_impl.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-
-namespace boost { namespace mpl {
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(Sequence)
-    , typename BOOST_MPL_AUX_NA_PARAM(State)
-    , typename BOOST_MPL_AUX_NA_PARAM(ForwardOp)
-    >
-struct fold
-{
-    typedef typename aux::fold_impl<
-          ::boost::mpl::O1_size<Sequence>::value
-        , typename begin<Sequence>::type
-        , typename end<Sequence>::type
-        , State
-        , ForwardOp
-        >::state type;
-
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(3,fold,(Sequence,State,ForwardOp))
-};
-
-BOOST_MPL_AUX_NA_SPEC(3, fold)
-
-}}
-
-#endif // BOOST_MPL_FOLD_HPP_INCLUDED
diff --git a/boost/mpl/front_fwd.hpp b/boost/mpl/front_fwd.hpp
deleted file mode 100644
index 6275001..0000000
--- a/boost/mpl/front_fwd.hpp
+++ /dev/null
@@ -1,24 +0,0 @@
-
-#ifndef BOOST_MPL_FRONT_FWD_HPP_INCLUDED
-#define BOOST_MPL_FRONT_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: front_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-namespace boost { namespace mpl {
-
-template< typename Tag > struct front_impl;
-template< typename Sequence > struct front;
-
-}}
-
-#endif // BOOST_MPL_FRONT_FWD_HPP_INCLUDED
diff --git a/boost/mpl/front_inserter.hpp b/boost/mpl/front_inserter.hpp
deleted file mode 100644
index 7220f76..0000000
--- a/boost/mpl/front_inserter.hpp
+++ /dev/null
@@ -1,33 +0,0 @@
-
-#ifndef BOOST_MPL_FRONT_INSERTER_HPP_INCLUDED
-#define BOOST_MPL_FRONT_INSERTER_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-// Copyright David Abrahams 2003-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: front_inserter.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/push_front.hpp>
-#include <boost/mpl/inserter.hpp>
-
-namespace boost { namespace mpl {
-
-template<
-      typename Sequence
-    >
-struct front_inserter
-    : inserter< Sequence,push_front<> >
-{
-};
-
-}}
-
-#endif // BOOST_MPL_FRONT_INSERTER_HPP_INCLUDED
diff --git a/boost/mpl/greater.hpp b/boost/mpl/greater.hpp
deleted file mode 100644
index c73276b..0000000
--- a/boost/mpl/greater.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-
-#ifndef BOOST_MPL_GREATER_HPP_INCLUDED
-#define BOOST_MPL_GREATER_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: greater.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#define AUX778076_OP_NAME greater
-#define AUX778076_OP_TOKEN >
-#include <boost/mpl/aux_/comparison_op.hpp>
-
-#endif // BOOST_MPL_GREATER_HPP_INCLUDED
diff --git a/boost/mpl/greater_equal.hpp b/boost/mpl/greater_equal.hpp
deleted file mode 100644
index 119710f..0000000
--- a/boost/mpl/greater_equal.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-
-#ifndef BOOST_MPL_GREATER_EQUAL_HPP_INCLUDED
-#define BOOST_MPL_GREATER_EQUAL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: greater_equal.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#define AUX778076_OP_NAME greater_equal
-#define AUX778076_OP_TOKEN >=
-#include <boost/mpl/aux_/comparison_op.hpp>
-
-#endif // BOOST_MPL_GREATER_EQUAL_HPP_INCLUDED
diff --git a/boost/mpl/has_xxx.hpp b/boost/mpl/has_xxx.hpp
deleted file mode 100644
index 121bc48..0000000
--- a/boost/mpl/has_xxx.hpp
+++ /dev/null
@@ -1,640 +0,0 @@
-
-#ifndef BOOST_MPL_HAS_XXX_HPP_INCLUDED
-#define BOOST_MPL_HAS_XXX_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2002-2006
-// Copyright David Abrahams 2002-2003
-// Copyright Daniel Walker 2007
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: has_xxx.hpp 64146 2010-07-19 00:46:31Z djwalker $
-// $Date: 2010-07-18 17:46:31 -0700 (Sun, 18 Jul 2010) $
-// $Revision: 64146 $
-
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/type_wrapper.hpp>
-#include <boost/mpl/aux_/yes_no.hpp>
-#include <boost/mpl/aux_/config/gcc.hpp>
-#include <boost/mpl/aux_/config/has_xxx.hpp>
-#include <boost/mpl/aux_/config/msvc_typename.hpp>
-#include <boost/mpl/aux_/config/msvc.hpp>
-#include <boost/mpl/aux_/config/static_constant.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#include <boost/preprocessor/array/elem.hpp>
-#include <boost/preprocessor/cat.hpp>
-#include <boost/preprocessor/control/if.hpp>
-#include <boost/preprocessor/repetition/enum_params.hpp>
-#include <boost/preprocessor/repetition/enum_trailing_params.hpp>
-
-#if BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT(0x590) )
-# include <boost/type_traits/is_class.hpp>
-#endif
-
-#if !defined(BOOST_MPL_CFG_NO_HAS_XXX)
-
-#   if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
-
-// agurt, 11/sep/02: MSVC-specific version (< 7.1), based on a USENET 
-// newsgroup's posting by John Madsen (comp.lang.c++.moderated, 
-// 1999-11-12 19:17:06 GMT); the code is _not_ standard-conforming, but 
-// it works way more reliably than the SFINAE-based implementation
-
-// Modified dwa 8/Oct/02 to handle reference types.
-
-#   include <boost/mpl/if.hpp>
-#   include <boost/mpl/bool.hpp>
-
-namespace boost { namespace mpl { namespace aux {
-
-struct has_xxx_tag;
-
-#if BOOST_WORKAROUND(BOOST_MSVC, == 1300)
-template< typename U > struct msvc_incomplete_array
-{
-    typedef char (&type)[sizeof(U) + 1];
-};
-#endif
-
-template< typename T >
-struct msvc_is_incomplete
-{
-    // MSVC is capable of some kinds of SFINAE.  If U is an incomplete
-    // type, it won't pick the second overload
-    static char tester(...);
-
-#if BOOST_WORKAROUND(BOOST_MSVC, == 1300)
-    template< typename U >
-    static typename msvc_incomplete_array<U>::type tester(type_wrapper<U>);
-#else
-    template< typename U >
-    static char (& tester(type_wrapper<U>) )[sizeof(U)+1];
-#endif 
-    
-    BOOST_STATIC_CONSTANT(bool, value = 
-          sizeof(tester(type_wrapper<T>())) == 1
-        );
-};
-
-template<>
-struct msvc_is_incomplete<int>
-{
-    BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-}}}
-
-#   define BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF_(trait, name, default_) \
-template< typename T, typename name = ::boost::mpl::aux::has_xxx_tag > \
-struct BOOST_PP_CAT(trait,_impl) : T \
-{ \
-    static boost::mpl::aux::no_tag \
-    test(void(*)(::boost::mpl::aux::has_xxx_tag)); \
-    \
-    static boost::mpl::aux::yes_tag test(...); \
-    \
-    BOOST_STATIC_CONSTANT(bool, value = \
-          sizeof(test(static_cast<void(*)(name)>(0))) \
-            != sizeof(boost::mpl::aux::no_tag) \
-        ); \
-    typedef boost::mpl::bool_<value> type; \
-}; \
-\
-template< typename T, typename fallback_ = boost::mpl::bool_<default_> > \
-struct trait \
-    : boost::mpl::if_c< \
-          boost::mpl::aux::msvc_is_incomplete<T>::value \
-        , boost::mpl::bool_<false> \
-        , BOOST_PP_CAT(trait,_impl)<T> \
-        >::type \
-{ \
-}; \
-\
-BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, void) \
-BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, bool) \
-BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, char) \
-BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, signed char) \
-BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, unsigned char) \
-BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, signed short) \
-BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, unsigned short) \
-BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, signed int) \
-BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, unsigned int) \
-BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, signed long) \
-BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, unsigned long) \
-BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, float) \
-BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, double) \
-BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, long double) \
-/**/
-
-#   define BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, T) \
-template<> struct trait<T> \
-{ \
-    BOOST_STATIC_CONSTANT(bool, value = false); \
-    typedef boost::mpl::bool_<false> type; \
-}; \
-/**/
-
-#if !defined(BOOST_NO_INTRINSIC_WCHAR_T)
-#   define BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(trait, name, unused) \
-    BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF_(trait, name, unused) \
-    BOOST_MPL_AUX_HAS_XXX_TRAIT_SPEC(trait, wchar_t) \
-/**/
-#else
-#   define BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(trait, name, unused) \
-    BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF_(trait, name, unused) \
-/**/
-#endif
-
-
-// SFINAE-based implementations below are derived from a USENET newsgroup's 
-// posting by Rani Sharoni (comp.lang.c++.moderated, 2002-03-17 07:45:09 PST)
-
-#   elif BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1400)) \
-      || BOOST_WORKAROUND(__IBMCPP__, <= 700)
-
-// MSVC 7.1+ & VACPP
-
-// agurt, 15/jun/05: replace overload-based SFINAE implementation with SFINAE
-// applied to partial specialization to fix some apparently random failures 
-// (thanks to Daniel Wallin for researching this!)
-
-#   define BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(trait, name, default_) \
-template< typename T > \
-struct BOOST_PP_CAT(trait, _msvc_sfinae_helper) \
-{ \
-    typedef void type; \
-};\
-\
-template< typename T, typename U = void > \
-struct BOOST_PP_CAT(trait,_impl_) \
-{ \
-    BOOST_STATIC_CONSTANT(bool, value = false); \
-    typedef boost::mpl::bool_<value> type; \
-}; \
-\
-template< typename T > \
-struct BOOST_PP_CAT(trait,_impl_)< \
-      T \
-    , typename BOOST_PP_CAT(trait, _msvc_sfinae_helper)< typename T::name >::type \
-    > \
-{ \
-    BOOST_STATIC_CONSTANT(bool, value = true); \
-    typedef boost::mpl::bool_<value> type; \
-}; \
-\
-template< typename T, typename fallback_ = boost::mpl::bool_<default_> > \
-struct trait \
-    : BOOST_PP_CAT(trait,_impl_)<T> \
-{ \
-}; \
-/**/
-
-#   elif BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT(0x590) )
-
-#   define BOOST_MPL_HAS_XXX_TRAIT_NAMED_BCB_DEF(trait, trait_tester, name, default_) \
-template< typename T, bool IS_CLASS > \
-struct trait_tester \
-{ \
-    BOOST_STATIC_CONSTANT( bool,  value = false ); \
-}; \
-template< typename T > \
-struct trait_tester< T, true > \
-{ \
-    struct trait_tester_impl \
-    { \
-        template < class U > \
-        static int  resolve( boost::mpl::aux::type_wrapper<U> const volatile * \
-                           , boost::mpl::aux::type_wrapper<typename U::name >* = 0 ); \
-        static char resolve( ... ); \
-    }; \
-    typedef boost::mpl::aux::type_wrapper<T> t_; \
-    BOOST_STATIC_CONSTANT( bool, value = ( sizeof( trait_tester_impl::resolve( static_cast< t_ * >(0) ) ) == sizeof(int) ) ); \
-}; \
-template< typename T, typename fallback_ = boost::mpl::bool_<default_> > \
-struct trait           \
-{                      \
-    BOOST_STATIC_CONSTANT( bool, value = (trait_tester< T, boost::is_class< T >::value >::value) );     \
-    typedef boost::mpl::bool_< trait< T, fallback_ >::value > type; \
-};
-
-#   define BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(trait, name, default_) \
-    BOOST_MPL_HAS_XXX_TRAIT_NAMED_BCB_DEF( trait \
-                                         , BOOST_PP_CAT(trait,_tester)      \
-                                         , name       \
-                                         , default_ ) \
-/**/
-
-#   else // other SFINAE-capable compilers
-
-#   define BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(trait, name, default_) \
-template< typename T, typename fallback_ = boost::mpl::bool_<default_> > \
-struct trait \
-{ \
-    struct gcc_3_2_wknd \
-    { \
-        template< typename U > \
-        static boost::mpl::aux::yes_tag test( \
-              boost::mpl::aux::type_wrapper<U> const volatile* \
-            , boost::mpl::aux::type_wrapper<BOOST_MSVC_TYPENAME U::name>* = 0 \
-            ); \
-    \
-        static boost::mpl::aux::no_tag test(...); \
-    }; \
-    \
-    typedef boost::mpl::aux::type_wrapper<T> t_; \
-    BOOST_STATIC_CONSTANT(bool, value = \
-          sizeof(gcc_3_2_wknd::test(static_cast<t_*>(0))) \
-            == sizeof(boost::mpl::aux::yes_tag) \
-        ); \
-    typedef boost::mpl::bool_<value> type; \
-}; \
-/**/
-
-#   endif // BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
-
-
-#else // BOOST_MPL_CFG_NO_HAS_XXX
-
-// placeholder implementation
-
-#   define BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(trait, name, default_) \
-template< typename T, typename fallback_ = boost::mpl::bool_<default_> > \
-struct trait \
-{ \
-    BOOST_STATIC_CONSTANT(bool, value = fallback_::value); \
-    typedef fallback_ type; \
-}; \
-/**/
-
-#endif
-
-#define BOOST_MPL_HAS_XXX_TRAIT_DEF(name) \
-    BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(BOOST_PP_CAT(has_,name), name, false) \
-/**/
-
-
-#if !defined(BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE)
-
-// Create a boolean Metafunction to detect a nested template
-// member. This implementation is based on a USENET newsgroup's
-// posting by Aleksey Gurtovoy (comp.lang.c++.moderated, 2002-03-19),
-// Rani Sharoni's USENET posting cited above, the non-template has_xxx
-// implementations above, and discussion on the Boost mailing list.
-
-#   if !defined(BOOST_MPL_HAS_XXX_NO_WRAPPED_TYPES)
-#     if BOOST_WORKAROUND(BOOST_MSVC, <= 1400)
-#       define BOOST_MPL_HAS_XXX_NO_WRAPPED_TYPES 1
-#     endif
-#   endif
-
-#   if !defined(BOOST_MPL_HAS_XXX_NO_EXPLICIT_TEST_FUNCTION)
-#     if (defined(BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS))
-#       define BOOST_MPL_HAS_XXX_NO_EXPLICIT_TEST_FUNCTION 1
-#     endif
-#   endif
-
-#   if !defined(BOOST_MPL_HAS_XXX_NEEDS_TEMPLATE_SFINAE)
-#     if BOOST_WORKAROUND(BOOST_MSVC, <= 1400)
-#       define BOOST_MPL_HAS_XXX_NEEDS_TEMPLATE_SFINAE 1
-#     endif
-#   endif
-
-// NOTE: Many internal implementation macros take a Boost.Preprocessor
-// array argument called args which is of the following form.
-//           ( 4, ( trait, name, max_arity, default_ ) )
-
-#   define BOOST_MPL_HAS_MEMBER_INTROSPECTION_NAME(args) \
-      BOOST_PP_CAT(BOOST_PP_ARRAY_ELEM(0, args) , _introspect) \
-    /**/
-
-#   define BOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_NAME(args, n) \
-      BOOST_PP_CAT(BOOST_PP_CAT(BOOST_PP_ARRAY_ELEM(0, args) , _substitute), n) \
-    /**/
-
-#   define BOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args) \
-      BOOST_PP_CAT(BOOST_PP_ARRAY_ELEM(0, args) , _test) \
-    /**/
-
-// Thanks to Guillaume Melquiond for pointing out the need for the
-// "substitute" template as an argument to the overloaded test
-// functions to get SFINAE to work for member templates with the
-// correct name but different number of arguments.
-#   define BOOST_MPL_HAS_MEMBER_MULTI_SUBSTITUTE(z, n, args) \
-      template< \
-          template< BOOST_PP_ENUM_PARAMS(BOOST_PP_INC(n), typename V) > class V \
-       > \
-      struct BOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_NAME(args, n) { \
-      }; \
-    /**/
-
-#   define BOOST_MPL_HAS_MEMBER_SUBSTITUTE(args, substitute_macro) \
-      BOOST_PP_REPEAT( \
-          BOOST_PP_ARRAY_ELEM(2, args) \
-        , BOOST_MPL_HAS_MEMBER_MULTI_SUBSTITUTE \
-        , args \
-      ) \
-    /**/
-
-#   if !BOOST_MPL_HAS_XXX_NO_EXPLICIT_TEST_FUNCTION
-#     define BOOST_MPL_HAS_MEMBER_REJECT(args, member_macro) \
-        template< typename V > \
-        static boost::mpl::aux::no_tag \
-        BOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args)(...); \
-      /**/
-#   else
-#     define BOOST_MPL_HAS_MEMBER_REJECT(args, member_macro) \
-        static boost::mpl::aux::no_tag \
-        BOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args)(...); \
-      /**/
-#   endif
-
-#   if !BOOST_MPL_HAS_XXX_NO_WRAPPED_TYPES
-#     define BOOST_MPL_HAS_MEMBER_MULTI_ACCEPT(z, n, args) \
-        template< typename V > \
-        static boost::mpl::aux::yes_tag \
-        BOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args)( \
-            boost::mpl::aux::type_wrapper< V > const volatile* \
-          , BOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_NAME(args, n) < \
-                V::template BOOST_PP_ARRAY_ELEM(1, args) \
-            >* = 0 \
-        ); \
-      /**/
-#     define BOOST_MPL_HAS_MEMBER_ACCEPT(args, member_macro) \
-        BOOST_PP_REPEAT( \
-            BOOST_PP_ARRAY_ELEM(2, args) \
-          , BOOST_MPL_HAS_MEMBER_MULTI_ACCEPT \
-          , args \
-        ) \
-      /**/
-#   else
-#     define BOOST_MPL_HAS_MEMBER_ACCEPT(args, member_macro) \
-        template< typename V > \
-        static boost::mpl::aux::yes_tag \
-        BOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args)( \
-            V const volatile* \
-          , member_macro(args, V, T)* = 0 \
-        ); \
-      /**/
-#   endif
-
-#   if !BOOST_MPL_HAS_XXX_NO_EXPLICIT_TEST_FUNCTION
-#     define BOOST_MPL_HAS_MEMBER_TEST(args) \
-          sizeof(BOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args)< U >(0)) \
-              == sizeof(boost::mpl::aux::yes_tag) \
-      /**/
-#   else
-#     if !BOOST_MPL_HAS_XXX_NO_WRAPPED_TYPES
-#       define BOOST_MPL_HAS_MEMBER_TEST(args) \
-          sizeof( \
-              BOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args)( \
-                  static_cast< boost::mpl::aux::type_wrapper< U >* >(0) \
-              ) \
-          ) == sizeof(boost::mpl::aux::yes_tag) \
-        /**/
-#     else
-#       define BOOST_MPL_HAS_MEMBER_TEST(args) \
-          sizeof( \
-              BOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args)( \
-                  static_cast< U* >(0) \
-              ) \
-          ) == sizeof(boost::mpl::aux::yes_tag) \
-        /**/
-#     endif
-#   endif
-
-#   define BOOST_MPL_HAS_MEMBER_INTROSPECT( \
-               args, substitute_macro, member_macro \
-           ) \
-      template< typename U > \
-      struct BOOST_MPL_HAS_MEMBER_INTROSPECTION_NAME(args) { \
-          BOOST_MPL_HAS_MEMBER_SUBSTITUTE(args, substitute_macro) \
-          BOOST_MPL_HAS_MEMBER_REJECT(args, member_macro) \
-          BOOST_MPL_HAS_MEMBER_ACCEPT(args, member_macro) \
-          BOOST_STATIC_CONSTANT( \
-              bool, value = BOOST_MPL_HAS_MEMBER_TEST(args) \
-          ); \
-          typedef boost::mpl::bool_< value > type; \
-      }; \
-    /**/
-
-#   define BOOST_MPL_HAS_MEMBER_IMPLEMENTATION( \
-               args, introspect_macro, substitute_macro, member_macro \
-           ) \
-      template< \
-          typename T \
-        , typename fallback_ \
-              = boost::mpl::bool_< BOOST_PP_ARRAY_ELEM(3, args) > \
-      > \
-      class BOOST_PP_ARRAY_ELEM(0, args) { \
-          introspect_macro(args, substitute_macro, member_macro) \
-      public: \
-          static const bool value \
-              = BOOST_MPL_HAS_MEMBER_INTROSPECTION_NAME(args)< T >::value; \
-          typedef typename BOOST_MPL_HAS_MEMBER_INTROSPECTION_NAME(args)< \
-              T \
-          >::type type; \
-      }; \
-    /**/
-
-// BOOST_MPL_HAS_MEMBER_WITH_FUNCTION_SFINAE expands to the full
-// implementation of the function-based metafunction. Compile with -E
-// to see the preprocessor output for this macro.
-#   define BOOST_MPL_HAS_MEMBER_WITH_FUNCTION_SFINAE( \
-               args, substitute_macro, member_macro \
-           ) \
-      BOOST_MPL_HAS_MEMBER_IMPLEMENTATION( \
-          args \
-        , BOOST_MPL_HAS_MEMBER_INTROSPECT \
-        , substitute_macro \
-        , member_macro \
-      ) \
-    /**/
-
-#   if BOOST_MPL_HAS_XXX_NEEDS_TEMPLATE_SFINAE
-
-#     if !defined(BOOST_MPL_HAS_XXX_NEEDS_NAMESPACE_LEVEL_SUBSTITUTE)
-#       if BOOST_WORKAROUND(BOOST_MSVC, <= 1400)
-#         define BOOST_MPL_HAS_XXX_NEEDS_NAMESPACE_LEVEL_SUBSTITUTE 1
-#       endif
-#     endif
-
-#     if !BOOST_MPL_HAS_XXX_NEEDS_NAMESPACE_LEVEL_SUBSTITUTE
-#       define BOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_NAME_WITH_TEMPLATE_SFINAE( \
-                   args, n \
-               ) \
-          BOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_NAME(args, n) \
-        /**/
-#     else
-#       define BOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_NAME_WITH_TEMPLATE_SFINAE( \
-                   args, n \
-               ) \
-          BOOST_PP_CAT( \
-              boost_mpl_has_xxx_ \
-            , BOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_NAME(args, n) \
-          ) \
-        /**/
-#     endif
-
-#     define BOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_TAG_NAME( \
-                 args \
-             ) \
-        BOOST_PP_CAT( \
-            BOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_NAME_WITH_TEMPLATE_SFINAE( \
-                args, 0 \
-            ) \
-          , _tag \
-        ) \
-      /**/
-
-#     define BOOST_MPL_HAS_MEMBER_MULTI_SUBSTITUTE_WITH_TEMPLATE_SFINAE( \
-                 z, n, args \
-             ) \
-        template< \
-             template< BOOST_PP_ENUM_PARAMS(BOOST_PP_INC(n), typename U) > class U \
-        > \
-        struct BOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_NAME_WITH_TEMPLATE_SFINAE( \
-                args, n \
-               ) { \
-            typedef \
-                BOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_TAG_NAME(args) \
-                type; \
-        }; \
-      /**/
-
-#     define BOOST_MPL_HAS_MEMBER_SUBSTITUTE_WITH_TEMPLATE_SFINAE( \
-                 args, substitute_macro \
-             ) \
-        typedef void \
-            BOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_TAG_NAME(args); \
-        BOOST_PP_REPEAT( \
-            BOOST_PP_ARRAY_ELEM(2, args) \
-          , BOOST_MPL_HAS_MEMBER_MULTI_SUBSTITUTE_WITH_TEMPLATE_SFINAE \
-          , args \
-        ) \
-      /**/
-
-#     define BOOST_MPL_HAS_MEMBER_REJECT_WITH_TEMPLATE_SFINAE( \
-                 args, member_macro \
-             ) \
-        template< \
-            typename U \
-          , typename V \
-                = BOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_TAG_NAME(args) \
-        > \
-        struct BOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args) { \
-            BOOST_STATIC_CONSTANT(bool, value = false); \
-            typedef boost::mpl::bool_< value > type; \
-        }; \
-      /**/
-
-#     define BOOST_MPL_HAS_MEMBER_MULTI_ACCEPT_WITH_TEMPLATE_SFINAE( \
-                 z, n, args \
-             ) \
-        template< typename U > \
-        struct BOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args)< \
-            U \
-          , typename \
-                BOOST_MPL_HAS_MEMBER_INTROSPECTION_SUBSTITUTE_NAME_WITH_TEMPLATE_SFINAE( \
-                    args, n \
-                )< \
-                    BOOST_MSVC_TYPENAME U::BOOST_PP_ARRAY_ELEM(1, args)< > \
-                >::type \
-        > { \
-            BOOST_STATIC_CONSTANT(bool, value = true); \
-            typedef boost::mpl::bool_< value > type; \
-        }; \
-      /**/
-
-#     define BOOST_MPL_HAS_MEMBER_ACCEPT_WITH_TEMPLATE_SFINAE( \
-                 args, member_macro \
-             ) \
-        BOOST_PP_REPEAT( \
-            BOOST_PP_ARRAY_ELEM(2, args) \
-          , BOOST_MPL_HAS_MEMBER_MULTI_ACCEPT_WITH_TEMPLATE_SFINAE \
-          , args \
-        ) \
-      /**/
-
-#     define BOOST_MPL_HAS_MEMBER_INTROSPECT_WITH_TEMPLATE_SFINAE( \
-                 args, substitute_macro, member_macro \
-             ) \
-        BOOST_MPL_HAS_MEMBER_REJECT_WITH_TEMPLATE_SFINAE(args, member_macro) \
-        BOOST_MPL_HAS_MEMBER_ACCEPT_WITH_TEMPLATE_SFINAE(args, member_macro) \
-        template< typename U > \
-        struct BOOST_MPL_HAS_MEMBER_INTROSPECTION_NAME(args) \
-            : BOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args)< U > { \
-        }; \
-      /**/
- 
-// BOOST_MPL_HAS_MEMBER_WITH_TEMPLATE_SFINAE expands to the full
-// implementation of the template-based metafunction. Compile with -E
-// to see the preprocessor output for this macro.
-//
-// Note that if BOOST_MPL_HAS_XXX_NEEDS_NAMESPACE_LEVEL_SUBSTITUTE is
-// defined BOOST_MPL_HAS_MEMBER_SUBSTITUTE_WITH_TEMPLATE_SFINAE needs
-// to be expanded at namespace level before
-// BOOST_MPL_HAS_MEMBER_WITH_TEMPLATE_SFINAE can be used.
-#     define BOOST_MPL_HAS_MEMBER_WITH_TEMPLATE_SFINAE( \
-                 args, substitute_macro, member_macro \
-             ) \
-        BOOST_MPL_HAS_MEMBER_SUBSTITUTE_WITH_TEMPLATE_SFINAE( \
-            args, substitute_macro \
-        ) \
-        BOOST_MPL_HAS_MEMBER_IMPLEMENTATION( \
-            args \
-          , BOOST_MPL_HAS_MEMBER_INTROSPECT_WITH_TEMPLATE_SFINAE \
-          , substitute_macro \
-          , member_macro \
-        ) \
-      /**/
-
-#   endif // BOOST_MPL_HAS_XXX_NEEDS_TEMPLATE_SFINAE
-
-// Note: In the current implementation the parameter and access macros
-// are no longer expanded.
-#   if !BOOST_WORKAROUND(BOOST_MSVC, <= 1400)
-#     define BOOST_MPL_HAS_XXX_TEMPLATE_NAMED_DEF(trait, name, default_) \
-        BOOST_MPL_HAS_MEMBER_WITH_FUNCTION_SFINAE( \
-            ( 4, ( trait, name, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, default_ ) ) \
-          , BOOST_MPL_HAS_MEMBER_TEMPLATE_SUBSTITUTE_PARAMETER \
-          , BOOST_MPL_HAS_MEMBER_TEMPLATE_ACCESS \
-        ) \
-      /**/
-#   else
-#     define BOOST_MPL_HAS_XXX_TEMPLATE_NAMED_DEF(trait, name, default_) \
-        BOOST_MPL_HAS_MEMBER_WITH_TEMPLATE_SFINAE( \
-            ( 4, ( trait, name, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, default_ ) ) \
-          , BOOST_MPL_HAS_MEMBER_TEMPLATE_SUBSTITUTE_PARAMETER \
-          , BOOST_MPL_HAS_MEMBER_TEMPLATE_ACCESS \
-        ) \
-      /**/
-#   endif
-
-#else // BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE
-
-// placeholder implementation
-
-#   define BOOST_MPL_HAS_XXX_TEMPLATE_NAMED_DEF(trait, name, default_) \
-      template< typename T \
-              , typename fallback_ = boost::mpl::bool_< default_ > > \
-      struct trait { \
-          BOOST_STATIC_CONSTANT(bool, value = fallback_::value); \
-          typedef fallback_ type; \
-      }; \
-    /**/
-
-#endif // BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE
-
-#   define BOOST_MPL_HAS_XXX_TEMPLATE_DEF(name) \
-      BOOST_MPL_HAS_XXX_TEMPLATE_NAMED_DEF( \
-          BOOST_PP_CAT(has_, name), name, false \
-      ) \
-    /**/
-
-#endif // BOOST_MPL_HAS_XXX_HPP_INCLUDED
diff --git a/boost/mpl/identity.hpp b/boost/mpl/identity.hpp
deleted file mode 100644
index 5424f71..0000000
--- a/boost/mpl/identity.hpp
+++ /dev/null
@@ -1,45 +0,0 @@
-
-#ifndef BOOST_MPL_IDENTITY_HPP_INCLUDED
-#define BOOST_MPL_IDENTITY_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: identity.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-
-namespace boost { namespace mpl {
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(T)
-    >
-struct identity
-{
-    typedef T type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1, identity, (T))
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(T)
-    >
-struct make_identity
-{
-    typedef identity<T> type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1, make_identity, (T))
-};
-
-BOOST_MPL_AUX_NA_SPEC_NO_ETI(1, identity)
-BOOST_MPL_AUX_NA_SPEC_NO_ETI(1, make_identity)
-
-}}
-
-#endif // BOOST_MPL_IDENTITY_HPP_INCLUDED
diff --git a/boost/mpl/if.hpp b/boost/mpl/if.hpp
deleted file mode 100644
index 245c993..0000000
--- a/boost/mpl/if.hpp
+++ /dev/null
@@ -1,135 +0,0 @@
-
-#ifndef BOOST_MPL_IF_HPP_INCLUDED
-#define BOOST_MPL_IF_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: if.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/value_wknd.hpp>
-#include <boost/mpl/aux_/static_cast.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-#include <boost/mpl/aux_/config/integral.hpp>
-#include <boost/mpl/aux_/config/ctps.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-namespace boost { namespace mpl {
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template<
-      bool C
-    , typename T1
-    , typename T2
-    >
-struct if_c
-{
-    typedef T1 type;
-};
-
-template<
-      typename T1
-    , typename T2
-    >
-struct if_c<false,T1,T2>
-{
-    typedef T2 type;
-};
-
-// agurt, 05/sep/04: nondescriptive parameter names for the sake of DigitalMars
-// (and possibly MWCW < 8.0); see http://article.gmane.org/gmane.comp.lib.boost.devel/108959
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
-    , typename BOOST_MPL_AUX_NA_PARAM(T3)
-    >
-struct if_
-{
- private:
-    // agurt, 02/jan/03: two-step 'type' definition for the sake of aCC 
-    typedef if_c<
-#if defined(BOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS)
-          BOOST_MPL_AUX_VALUE_WKND(T1)::value
-#else
-          BOOST_MPL_AUX_STATIC_CAST(bool, BOOST_MPL_AUX_VALUE_WKND(T1)::value)
-#endif
-        , T2
-        , T3
-        > almost_type_;
- 
- public:
-    typedef typename almost_type_::type type;
-    
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(3,if_,(T1,T2,T3))
-};
-
-#else
-
-// no partial class template specialization
-
-namespace aux {
-
-template< bool C >
-struct if_impl
-{
-    template< typename T1, typename T2 > struct result_
-    {
-        typedef T1 type;
-    };
-};
-
-template<>
-struct if_impl<false>
-{
-    template< typename T1, typename T2 > struct result_
-    { 
-        typedef T2 type;
-    };
-};
-
-} // namespace aux
-
-template<
-      bool C_
-    , typename T1
-    , typename T2
-    >
-struct if_c
-{
-    typedef typename aux::if_impl< C_ >
-        ::template result_<T1,T2>::type type;
-};
-
-// (almost) copy & paste in order to save one more 
-// recursively nested template instantiation to user
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(C_)
-    , typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
-    >
-struct if_
-{
-    enum { msvc_wknd_ = BOOST_MPL_AUX_MSVC_VALUE_WKND(C_)::value };
-
-    typedef typename aux::if_impl< BOOST_MPL_AUX_STATIC_CAST(bool, msvc_wknd_) >
-        ::template result_<T1,T2>::type type;
-
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(3,if_,(C_,T1,T2))
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-BOOST_MPL_AUX_NA_SPEC(3, if_)
-
-}}
-
-#endif // BOOST_MPL_IF_HPP_INCLUDED
diff --git a/boost/mpl/inherit.hpp b/boost/mpl/inherit.hpp
deleted file mode 100644
index 59715ed..0000000
--- a/boost/mpl/inherit.hpp
+++ /dev/null
@@ -1,229 +0,0 @@
-
-#if !defined(BOOST_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef BOOST_MPL_INHERIT_HPP_INCLUDED
-#define BOOST_MPL_INHERIT_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: inherit.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-#   include <boost/mpl/empty_base.hpp>
-#   include <boost/mpl/aux_/na_spec.hpp>
-#   include <boost/mpl/aux_/lambda_support.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-#   define BOOST_MPL_PREPROCESSED_HEADER inherit.hpp
-#   include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <boost/mpl/limits/arity.hpp>
-#   include <boost/mpl/aux_/preprocessor/params.hpp>
-#   include <boost/mpl/aux_/preprocessor/default_params.hpp>
-#   include <boost/mpl/aux_/preprocessor/enum.hpp>
-#   include <boost/mpl/aux_/config/ctps.hpp>
-#   include <boost/mpl/aux_/config/dtp.hpp>
-
-#   include <boost/preprocessor/iterate.hpp>
-#   include <boost/preprocessor/dec.hpp>
-#   include <boost/preprocessor/cat.hpp>
-
-namespace boost { namespace mpl {
-
-// 'inherit<T1,T2,..,Tn>' metafunction; returns an unspecified class type
-// produced by public derivation from all metafunction's parameters 
-// (T1,T2,..,Tn), except the parameters of 'empty_base' class type; 
-// regardless the position and number of 'empty_base' parameters in the 
-// metafunction's argument list, derivation from them is always a no-op;
-// for instance:
-//      inherit<her>::type == her
-//      inherit<her,my>::type == struct unspecified : her, my {};
-//      inherit<empty_base,her>::type == her
-//      inherit<empty_base,her,empty_base,empty_base>::type == her
-//      inherit<her,empty_base,my>::type == struct unspecified : her, my {};
-//      inherit<empty_base,empty_base>::type == empty_base
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template< 
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
-    > 
-struct inherit2
-    : T1, T2
-{
-    typedef inherit2 type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1,T2))
-};
-
-template< typename T1 > 
-struct inherit2<T1,empty_base>
-{
-    typedef T1 type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (T1,empty_base))
-};
-
-template< typename T2 > 
-struct inherit2<empty_base,T2>
-{
-    typedef T2 type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base,T2))
-};
-
-// needed to disambiguate the previous two in case when both 
-// T1 and T2 == empty_base
-template<> 
-struct inherit2<empty_base,empty_base>
-{
-    typedef empty_base type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2, inherit2, (empty_base,empty_base))
-};
-
-#else
-
-namespace aux {
-
-template< bool C1, bool C2 >
-struct inherit2_impl
-{
-    template< typename Derived, typename T1, typename T2 > struct result_ 
-        : T1, T2
-    {
-        typedef Derived type_;
-    };
-};
-
-template<>
-struct inherit2_impl<false,true>
-{
-    template< typename Derived, typename T1, typename T2 > struct result_
-        : T1
-    {
-        typedef T1 type_;
-    };
-};
-
-template<>
-struct inherit2_impl<true,false>
-{
-    template< typename Derived, typename T1, typename T2 > struct result_
-        : T2 
-    {
-        typedef T2 type_;
-    };
-};
-
-template<>
-struct inherit2_impl<true,true>
-{
-    template< typename Derived, typename T1, typename T2 > struct result_
-    {
-        typedef T1 type_;
-    };
-};
-
-} // namespace aux
-
-template< 
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
-    > 
-struct inherit2
-    : aux::inherit2_impl<
-          is_empty_base<T1>::value
-        , is_empty_base<T2>::value
-        >::template result_< inherit2<T1,T2>,T1,T2 >
-{
-    typedef typename inherit2::type_ type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2, inherit2, (T1,T2))
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-BOOST_MPL_AUX_NA_SPEC(2, inherit2)
-
-#define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(3, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, <boost/mpl/inherit.hpp>))
-#include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_INHERIT_HPP_INCLUDED
-
-///// iteration
-
-#else
-#define n_ BOOST_PP_FRAME_ITERATION(1)
-
-template<
-      BOOST_MPL_PP_DEFAULT_PARAMS(n_, typename T, na)
-    >
-struct BOOST_PP_CAT(inherit,n_)
-    : inherit2<
-          typename BOOST_PP_CAT(inherit,BOOST_PP_DEC(n_))<
-              BOOST_MPL_PP_PARAMS(BOOST_PP_DEC(n_), T)
-            >::type
-        , BOOST_PP_CAT(T,n_)
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          n_
-        , BOOST_PP_CAT(inherit,n_)
-        , (BOOST_MPL_PP_PARAMS(n_, T))
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC(n_, BOOST_PP_CAT(inherit,n_))
-
-#if n_ == BOOST_MPL_LIMIT_METAFUNCTION_ARITY
-/// primary template
-template<
-      BOOST_MPL_PP_DEFAULT_PARAMS(n_, typename T, empty_base)
-    >
-struct inherit
-    : BOOST_PP_CAT(inherit,n_)<BOOST_MPL_PP_PARAMS(n_, T)>
-{
-};
-
-// 'na' specialization
-template<>
-struct inherit< BOOST_MPL_PP_ENUM(5, na) >
-{
-    template<
-#if !defined(BOOST_MPL_CFG_NO_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
-          BOOST_MPL_PP_DEFAULT_PARAMS(n_, typename T, empty_base)
-#else
-          BOOST_MPL_PP_PARAMS(n_, typename T)
-#endif
-        >
-    struct apply
-        : inherit< BOOST_MPL_PP_PARAMS(n_, T) >
-    {
-    };
-};
-
-BOOST_MPL_AUX_NA_SPEC_LAMBDA(n_, inherit)
-BOOST_MPL_AUX_NA_SPEC_ARITY(n_, inherit)
-BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(n_, n_, inherit)
-#endif
-
-#undef n_
-#endif // BOOST_PP_IS_ITERATING
diff --git a/boost/mpl/inserter.hpp b/boost/mpl/inserter.hpp
deleted file mode 100644
index 0c014d1..0000000
--- a/boost/mpl/inserter.hpp
+++ /dev/null
@@ -1,32 +0,0 @@
-
-#ifndef BOOST_MPL_INSERTER_HPP_INCLUDED
-#define BOOST_MPL_INSERTER_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-// Copyright David Abrahams 2003-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: inserter.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-namespace boost { namespace mpl {
-
-template<
-      typename Sequence
-    , typename Operation
-    >
-struct inserter
-{
-    typedef Sequence    state;
-    typedef Operation   operation;
-};
-
-}}
-
-#endif // BOOST_MPL_INSERTER_HPP_INCLUDED
diff --git a/boost/mpl/int.hpp b/boost/mpl/int.hpp
deleted file mode 100644
index 14db548..0000000
--- a/boost/mpl/int.hpp
+++ /dev/null
@@ -1,22 +0,0 @@
-
-#ifndef BOOST_MPL_INT_HPP_INCLUDED
-#define BOOST_MPL_INT_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: int.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/int_fwd.hpp>
-
-#define AUX_WRAPPER_VALUE_TYPE int
-#include <boost/mpl/aux_/integral_wrapper.hpp>
-
-#endif // BOOST_MPL_INT_HPP_INCLUDED
diff --git a/boost/mpl/int_fwd.hpp b/boost/mpl/int_fwd.hpp
deleted file mode 100644
index 87b043c..0000000
--- a/boost/mpl/int_fwd.hpp
+++ /dev/null
@@ -1,27 +0,0 @@
-
-#ifndef BOOST_MPL_INT_FWD_HPP_INCLUDED
-#define BOOST_MPL_INT_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: int_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/adl_barrier.hpp>
-#include <boost/mpl/aux_/nttp_decl.hpp>
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-
-template< BOOST_MPL_AUX_NTTP_DECL(int, N) > struct int_;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-BOOST_MPL_AUX_ADL_BARRIER_DECL(int_)
-
-#endif // BOOST_MPL_INT_FWD_HPP_INCLUDED
diff --git a/boost/mpl/integral_c.hpp b/boost/mpl/integral_c.hpp
deleted file mode 100644
index e270dc5..0000000
--- a/boost/mpl/integral_c.hpp
+++ /dev/null
@@ -1,51 +0,0 @@
-
-#ifndef BOOST_MPL_INTEGRAL_C_HPP_INCLUDED
-#define BOOST_MPL_INTEGRAL_C_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2006
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: integral_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/integral_c_fwd.hpp>
-#include <boost/mpl/aux_/config/ctps.hpp>
-#include <boost/mpl/aux_/config/static_constant.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#if BOOST_WORKAROUND(__HP_aCC, <= 53800)
-// the type of non-type template arguments may not depend on template arguments
-#   define AUX_WRAPPER_PARAMS(N) typename T, long N
-#else
-#   define AUX_WRAPPER_PARAMS(N) typename T, T N
-#endif
-
-#define AUX_WRAPPER_NAME integral_c
-#define AUX_WRAPPER_VALUE_TYPE T
-#define AUX_WRAPPER_INST(value) AUX_WRAPPER_NAME< T, value >
-#include <boost/mpl/aux_/integral_wrapper.hpp>
-
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
- && !BOOST_WORKAROUND(__BORLANDC__, <= 0x551)
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-// 'bool' constant doesn't have 'next'/'prior' members
-template< bool C >
-struct integral_c<bool, C>
-{
-    BOOST_STATIC_CONSTANT(bool, value = C);
-    typedef integral_c_tag tag;
-    typedef integral_c type;
-    typedef bool value_type;
-    operator bool() const { return this->value; }
-};
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-#endif
-
-#endif // BOOST_MPL_INTEGRAL_C_HPP_INCLUDED
diff --git a/boost/mpl/integral_c_fwd.hpp b/boost/mpl/integral_c_fwd.hpp
deleted file mode 100644
index 7fcbfd5..0000000
--- a/boost/mpl/integral_c_fwd.hpp
+++ /dev/null
@@ -1,32 +0,0 @@
-
-#ifndef BOOST_MPL_INTEGRAL_C_FWD_HPP_INCLUDED
-#define BOOST_MPL_INTEGRAL_C_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2006
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: integral_c_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/config/workaround.hpp>
-#include <boost/mpl/aux_/adl_barrier.hpp>
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-
-#if BOOST_WORKAROUND(__HP_aCC, <= 53800)
-// the type of non-type template arguments may not depend on template arguments
-template< typename T, long N > struct integral_c;
-#else
-template< typename T, T N > struct integral_c;
-#endif
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-BOOST_MPL_AUX_ADL_BARRIER_DECL(integral_c)
-
-#endif // BOOST_MPL_INTEGRAL_C_FWD_HPP_INCLUDED
diff --git a/boost/mpl/integral_c_tag.hpp b/boost/mpl/integral_c_tag.hpp
deleted file mode 100644
index 27da563..0000000
--- a/boost/mpl/integral_c_tag.hpp
+++ /dev/null
@@ -1,26 +0,0 @@
-
-#ifndef BOOST_MPL_INTEGRAL_C_TAG_HPP_INCLUDED
-#define BOOST_MPL_INTEGRAL_C_TAG_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: integral_c_tag.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-
-#include <boost/mpl/aux_/adl_barrier.hpp>
-#include <boost/mpl/aux_/config/static_constant.hpp>
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-struct integral_c_tag { BOOST_STATIC_CONSTANT(int, value = 0); };
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-BOOST_MPL_AUX_ADL_BARRIER_DECL(integral_c_tag)
-
-#endif // BOOST_MPL_INTEGRAL_C_TAG_HPP_INCLUDED
diff --git a/boost/mpl/is_placeholder.hpp b/boost/mpl/is_placeholder.hpp
deleted file mode 100644
index 565df89..0000000
--- a/boost/mpl/is_placeholder.hpp
+++ /dev/null
@@ -1,67 +0,0 @@
-
-#ifndef BOOST_MPL_IS_PLACEHOLDER_HPP_INCLUDED
-#define BOOST_MPL_IS_PLACEHOLDER_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: is_placeholder.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/arg_fwd.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/aux_/yes_no.hpp>
-#include <boost/mpl/aux_/type_wrapper.hpp>
-#include <boost/mpl/aux_/nttp_decl.hpp>
-#include <boost/mpl/aux_/config/ctps.hpp>
-#include <boost/mpl/aux_/config/static_constant.hpp>
-
-namespace boost { namespace mpl {
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template< typename T >
-struct is_placeholder
-    : bool_<false>
-{
-};
-
-template< BOOST_MPL_AUX_NTTP_DECL(int, N) >
-struct is_placeholder< arg<N> >
-    : bool_<true>
-{
-};
-
-#else
-
-namespace aux {
-
-aux::no_tag is_placeholder_helper(...);
-
-template< BOOST_MPL_AUX_NTTP_DECL(int, N) >
-aux::yes_tag is_placeholder_helper(aux::type_wrapper< arg<N> >*);
-
-} // namespace aux
-
-template< typename T >
-struct is_placeholder
-{
-    static aux::type_wrapper<T>* get();
-    BOOST_STATIC_CONSTANT(bool, value = 
-          sizeof(aux::is_placeholder_helper(get())) == sizeof(aux::yes_tag)
-        );
-    
-    typedef bool_<value> type;
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-}}
-
-#endif // BOOST_MPL_IS_PLACEHOLDER_HPP_INCLUDED
diff --git a/boost/mpl/is_sequence.hpp b/boost/mpl/is_sequence.hpp
deleted file mode 100644
index 4e61fcf..0000000
--- a/boost/mpl/is_sequence.hpp
+++ /dev/null
@@ -1,112 +0,0 @@
-
-#ifndef BOOST_MPL_IS_SEQUENCE_HPP_INCLUDED
-#define BOOST_MPL_IS_SEQUENCE_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: is_sequence.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/not.hpp>
-#include <boost/mpl/and.hpp>
-#include <boost/mpl/begin_end.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/sequence_tag_fwd.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/mpl/void.hpp>
-#include <boost/mpl/aux_/has_tag.hpp>
-#include <boost/mpl/aux_/has_begin.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-#include <boost/mpl/aux_/config/eti.hpp>
-#include <boost/mpl/aux_/config/msvc.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-#   include <boost/mpl/aux_/msvc_is_class.hpp>
-#elif BOOST_WORKAROUND(BOOST_MSVC, == 1300)
-#   include <boost/type_traits/is_class.hpp>
-#endif
-
-#include <boost/type_traits/is_same.hpp>
-
-namespace boost { namespace mpl {
-
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
-
-namespace aux {
-
-// agurt, 11/jun/03: 
-// MSVC 6.5/7.0 fails if 'has_begin' is instantiated on a class type that has a
-// 'begin' member that doesn't name a type; e.g. 'has_begin< std::vector<int> >'
-// would fail; requiring 'T' to have _both_ 'tag' and 'begin' members workarounds
-// the issue for most real-world cases
-template< typename T > struct is_sequence_impl
-    : and_<
-          identity< aux::has_tag<T> >
-        , identity< aux::has_begin<T> >
-        >
-{
-};
-
-} // namespace aux
-        
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(T)
-    >
-struct is_sequence
-    : if_<
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-          aux::msvc_is_class<T> 
-#else
-          boost::is_class<T> 
-#endif
-        , aux::is_sequence_impl<T>
-        , bool_<false>
-        >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1, is_sequence, (T))
-};
-
-#elif defined(BOOST_MPL_CFG_NO_HAS_XXX)
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(T)
-    >
-struct is_sequence
-    : bool_<false>
-{
-};
-
-#else
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(T)
-    >
-struct is_sequence
-    : not_< is_same< typename begin<T>::type, void_ > >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1, is_sequence, (T))
-};
-
-#endif // BOOST_MSVC
-
-#if defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG)
-template<> struct is_sequence<int>
-    : bool_<false>
-{
-};
-#endif
-
-BOOST_MPL_AUX_NA_SPEC_NO_ETI(1, is_sequence)
-
-}}
-
-#endif // BOOST_MPL_IS_SEQUENCE_HPP_INCLUDED
diff --git a/boost/mpl/iter_fold.hpp b/boost/mpl/iter_fold.hpp
deleted file mode 100644
index 1b52dd4..0000000
--- a/boost/mpl/iter_fold.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-
-#ifndef BOOST_MPL_ITER_FOLD_HPP_INCLUDED
-#define BOOST_MPL_ITER_FOLD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright David Abrahams 2001-2002
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: iter_fold.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/begin_end.hpp>
-#include <boost/mpl/O1_size.hpp>
-#include <boost/mpl/lambda.hpp>
-#include <boost/mpl/aux_/iter_fold_impl.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-
-namespace boost { namespace mpl {
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(Sequence)
-    , typename BOOST_MPL_AUX_NA_PARAM(State)
-    , typename BOOST_MPL_AUX_NA_PARAM(ForwardOp)
-    >
-struct iter_fold
-{
-    typedef typename aux::iter_fold_impl<
-          ::boost::mpl::O1_size<Sequence>::value
-        , typename begin<Sequence>::type
-        , typename end<Sequence>::type
-        , State
-        , typename lambda<ForwardOp>::type
-        >::state type;
-
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(3,iter_fold,(Sequence,State,ForwardOp))
-};
-
-BOOST_MPL_AUX_NA_SPEC(3, iter_fold)
-
-}}
-
-#endif // BOOST_MPL_ITER_FOLD_HPP_INCLUDED
diff --git a/boost/mpl/iter_fold_if.hpp b/boost/mpl/iter_fold_if.hpp
deleted file mode 100644
index 01847ef..0000000
--- a/boost/mpl/iter_fold_if.hpp
+++ /dev/null
@@ -1,117 +0,0 @@
-
-#ifndef BOOST_MPL_ITER_FOLD_IF_HPP_INCLUDED
-#define BOOST_MPL_ITER_FOLD_IF_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-// Copyright Eric Friedman 2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: iter_fold_if.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/begin_end.hpp>
-#include <boost/mpl/logical.hpp>
-#include <boost/mpl/always.hpp>
-#include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/pair.hpp>
-#include <boost/mpl/apply.hpp>
-#include <boost/mpl/aux_/iter_fold_if_impl.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-#include <boost/mpl/aux_/config/forwarding.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#include <boost/type_traits/is_same.hpp>
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template< typename Predicate, typename LastIterator >
-struct iter_fold_if_pred
-{
-    template< typename State, typename Iterator > struct apply
-#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING)
-        : and_<
-              not_< is_same<Iterator,LastIterator> >
-            , apply1<Predicate,Iterator>
-            >
-    {
-#else
-    {
-        typedef and_<
-              not_< is_same<Iterator,LastIterator> >
-            , apply1<Predicate,Iterator>
-            > type;
-#endif
-    };
-};
-
-} // namespace aux
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(Sequence)
-    , typename BOOST_MPL_AUX_NA_PARAM(State)
-    , typename BOOST_MPL_AUX_NA_PARAM(ForwardOp)
-    , typename BOOST_MPL_AUX_NA_PARAM(ForwardPredicate)
-    , typename BOOST_MPL_AUX_NA_PARAM(BackwardOp)
-    , typename BOOST_MPL_AUX_NA_PARAM(BackwardPredicate)
-    >
-struct iter_fold_if
-{
-
-    typedef typename begin<Sequence>::type first_;
-    typedef typename end<Sequence>::type last_;
-
-    typedef typename eval_if<
-          is_na<BackwardPredicate>
-        , if_< is_na<BackwardOp>, always<false_>, always<true_> >
-        , identity<BackwardPredicate>
-        >::type backward_pred_;
-
-// cwpro8 doesn't like 'cut-off' type here (use typedef instead)
-#if !BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3003)) && !BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(600))
-    struct result_ :
-#else
-    typedef
-#endif
-        aux::iter_fold_if_impl<
-          first_
-        , State
-        , ForwardOp
-        , protect< aux::iter_fold_if_pred< ForwardPredicate,last_ > >
-        , BackwardOp
-        , backward_pred_
-        >
-#if !BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3003)) && !BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(600))
-    { };
-#else
-    result_;
-#endif
-
-public:
-
-    typedef pair<
-          typename result_::state
-        , typename result_::iterator
-        > type;
-
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          6
-        , iter_fold_if
-        , (Sequence,State,ForwardOp,ForwardPredicate,BackwardOp,BackwardPredicate)
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC(6, iter_fold_if)
-
-}}
-
-#endif // BOOST_MPL_ITER_FOLD_IF_HPP_INCLUDED
diff --git a/boost/mpl/iterator_range.hpp b/boost/mpl/iterator_range.hpp
deleted file mode 100644
index 995ddc0..0000000
--- a/boost/mpl/iterator_range.hpp
+++ /dev/null
@@ -1,42 +0,0 @@
-
-#ifndef BOOST_MPL_ITERATOR_RANGE_HPP_INCLUDED
-#define BOOST_MPL_ITERATOR_RANGE_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: iterator_range.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-
-namespace boost { namespace mpl {
-
-struct iterator_range_tag;
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(First)
-    , typename BOOST_MPL_AUX_NA_PARAM(Last)
-    >
-struct iterator_range
-{
-    typedef iterator_range_tag tag;
-    typedef iterator_range type;
-    typedef First begin;
-    typedef Last end;
-
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2,iterator_range,(First,Last))
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, iterator_range)
-
-}}
-
-#endif // BOOST_MPL_ITERATOR_RANGE_HPP_INCLUDED
diff --git a/boost/mpl/iterator_tags.hpp b/boost/mpl/iterator_tags.hpp
deleted file mode 100644
index fce2734..0000000
--- a/boost/mpl/iterator_tags.hpp
+++ /dev/null
@@ -1,27 +0,0 @@
-
-#ifndef BOOST_MPL_ITERATOR_TAG_HPP_INCLUDED
-#define BOOST_MPL_ITERATOR_TAG_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: iterator_tags.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/int.hpp>
-
-namespace boost { namespace mpl {
-
-struct forward_iterator_tag       : int_<0> { typedef forward_iterator_tag type; };
-struct bidirectional_iterator_tag : int_<1> { typedef bidirectional_iterator_tag type; };
-struct random_access_iterator_tag : int_<2> { typedef random_access_iterator_tag type; };
-
-}}
-
-#endif // BOOST_MPL_ITERATOR_TAG_HPP_INCLUDED
diff --git a/boost/mpl/lambda.hpp b/boost/mpl/lambda.hpp
deleted file mode 100644
index 05c2716..0000000
--- a/boost/mpl/lambda.hpp
+++ /dev/null
@@ -1,29 +0,0 @@
-
-#ifndef BOOST_MPL_LAMBDA_HPP_INCLUDED
-#define BOOST_MPL_LAMBDA_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: lambda.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/lambda_fwd.hpp>
-#include <boost/mpl/bind.hpp>
-#include <boost/mpl/aux_/config/lambda.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT)
-#   include <boost/mpl/aux_/full_lambda.hpp>
-#else
-#   include <boost/mpl/aux_/lambda_no_ctps.hpp>
-#   include <boost/mpl/aux_/lambda_support.hpp>
-#   define BOOST_MPL_CFG_NO_IMPLICIT_METAFUNCTIONS
-#endif
-
-#endif // BOOST_MPL_LAMBDA_HPP_INCLUDED
diff --git a/boost/mpl/lambda_fwd.hpp b/boost/mpl/lambda_fwd.hpp
deleted file mode 100644
index 16c73e4..0000000
--- a/boost/mpl/lambda_fwd.hpp
+++ /dev/null
@@ -1,57 +0,0 @@
-
-#ifndef BOOST_MPL_LAMBDA_FWD_HPP_INCLUDED
-#define BOOST_MPL_LAMBDA_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: lambda_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/void_fwd.hpp>
-#include <boost/mpl/aux_/na.hpp>
-#include <boost/mpl/aux_/config/lambda.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT)
-
-#   include <boost/mpl/int.hpp>
-#   include <boost/mpl/aux_/lambda_arity_param.hpp>
-#   include <boost/mpl/aux_/template_arity_fwd.hpp>
-
-namespace boost { namespace mpl {
-
-template< 
-      typename T = na
-    , typename Tag = void_
-    BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(
-          typename Arity = int_< aux::template_arity<T>::value >
-        )
-    >
-struct lambda;
-
-}}
-
-#else // BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT
-
-#   include <boost/mpl/bool.hpp>
-
-namespace boost { namespace mpl {
-
-template< 
-      typename T = na
-    , typename Tag = void_
-    , typename Protect = true_
-    > 
-struct lambda;
-
-}}
-
-#endif
-
-#endif // BOOST_MPL_LAMBDA_FWD_HPP_INCLUDED
diff --git a/boost/mpl/less.hpp b/boost/mpl/less.hpp
deleted file mode 100644
index 33a570c..0000000
--- a/boost/mpl/less.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-
-#ifndef BOOST_MPL_LESS_HPP_INCLUDED
-#define BOOST_MPL_LESS_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: less.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#define AUX778076_OP_NAME less
-#define AUX778076_OP_TOKEN <
-#include <boost/mpl/aux_/comparison_op.hpp>
-
-#endif // BOOST_MPL_LESS_HPP_INCLUDED
diff --git a/boost/mpl/less_equal.hpp b/boost/mpl/less_equal.hpp
deleted file mode 100644
index 8b9a4ff..0000000
--- a/boost/mpl/less_equal.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-
-#ifndef BOOST_MPL_LESS_EQUAL_HPP_INCLUDED
-#define BOOST_MPL_LESS_EQUAL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: less_equal.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#define AUX778076_OP_NAME less_equal
-#define AUX778076_OP_TOKEN <=
-#include <boost/mpl/aux_/comparison_op.hpp>
-
-#endif // BOOST_MPL_LESS_EQUAL_HPP_INCLUDED
diff --git a/boost/mpl/limits/arity.hpp b/boost/mpl/limits/arity.hpp
deleted file mode 100644
index 9da70ab..0000000
--- a/boost/mpl/limits/arity.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-
-#ifndef BOOST_MPL_LIMITS_ARITY_HPP_INCLUDED
-#define BOOST_MPL_LIMITS_ARITY_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: arity.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(BOOST_MPL_LIMIT_METAFUNCTION_ARITY)
-#   define BOOST_MPL_LIMIT_METAFUNCTION_ARITY 5
-#endif
-
-#endif // BOOST_MPL_LIMITS_ARITY_HPP_INCLUDED
diff --git a/boost/mpl/limits/list.hpp b/boost/mpl/limits/list.hpp
deleted file mode 100644
index 6ae7387..0000000
--- a/boost/mpl/limits/list.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-
-#ifndef BOOST_MPL_LIMITS_LIST_HPP_INCLUDED
-#define BOOST_MPL_LIMITS_LIST_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: list.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(BOOST_MPL_LIMIT_LIST_SIZE)
-#   define BOOST_MPL_LIMIT_LIST_SIZE 20
-#endif
-
-#endif // BOOST_MPL_LIMITS_LIST_HPP_INCLUDED
diff --git a/boost/mpl/limits/unrolling.hpp b/boost/mpl/limits/unrolling.hpp
deleted file mode 100644
index 3914f0a..0000000
--- a/boost/mpl/limits/unrolling.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-
-#ifndef BOOST_MPL_LIMITS_UNROLLING_HPP_INCLUDED
-#define BOOST_MPL_LIMITS_UNROLLING_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: unrolling.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(BOOST_MPL_LIMIT_UNROLLING)
-#   define BOOST_MPL_LIMIT_UNROLLING 4
-#endif
-
-#endif // BOOST_MPL_LIMITS_UNROLLING_HPP_INCLUDED
diff --git a/boost/mpl/limits/vector.hpp b/boost/mpl/limits/vector.hpp
deleted file mode 100644
index 5de3811..0000000
--- a/boost/mpl/limits/vector.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-
-#ifndef BOOST_MPL_LIMITS_VECTOR_HPP_INCLUDED
-#define BOOST_MPL_LIMITS_VECTOR_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: vector.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(BOOST_MPL_LIMIT_VECTOR_SIZE)
-#   define BOOST_MPL_LIMIT_VECTOR_SIZE 20
-#endif
-
-#endif // BOOST_MPL_LIMITS_VECTOR_HPP_INCLUDED
diff --git a/boost/mpl/list.hpp b/boost/mpl/list.hpp
deleted file mode 100644
index 6d96831..0000000
--- a/boost/mpl/list.hpp
+++ /dev/null
@@ -1,57 +0,0 @@
-
-#ifndef BOOST_MPL_LIST_HPP_INCLUDED
-#define BOOST_MPL_LIST_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: list.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-#   include <boost/mpl/limits/list.hpp>
-#   include <boost/mpl/aux_/na.hpp>
-#   include <boost/mpl/aux_/config/preprocessor.hpp>
-
-#   include <boost/preprocessor/inc.hpp>
-#   include <boost/preprocessor/cat.hpp>
-#   include <boost/preprocessor/stringize.hpp>
-
-#if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING)
-#   define AUX778076_LIST_HEADER \
-    BOOST_PP_CAT(list,BOOST_MPL_LIMIT_LIST_SIZE).hpp \
-    /**/
-#else
-#   define AUX778076_LIST_HEADER \
-    BOOST_PP_CAT(list,BOOST_MPL_LIMIT_LIST_SIZE)##.hpp \
-    /**/
-#endif
-
-#   include BOOST_PP_STRINGIZE(boost/mpl/list/AUX778076_LIST_HEADER)
-#   undef AUX778076_LIST_HEADER
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-#   define BOOST_MPL_PREPROCESSED_HEADER list.hpp
-#   include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <boost/mpl/limits/list.hpp>
-
-#   define AUX778076_SEQUENCE_NAME list
-#   define AUX778076_SEQUENCE_LIMIT BOOST_MPL_LIMIT_LIST_SIZE
-#   include <boost/mpl/aux_/sequence_wrapper.hpp>
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_LIST_HPP_INCLUDED
diff --git a/boost/mpl/list/aux_/O1_size.hpp b/boost/mpl/list/aux_/O1_size.hpp
deleted file mode 100644
index 0d93dab..0000000
--- a/boost/mpl/list/aux_/O1_size.hpp
+++ /dev/null
@@ -1,33 +0,0 @@
-
-#ifndef BOOST_MPL_LIST_AUX_O1_SIZE_HPP_INCLUDED
-#define BOOST_MPL_LIST_AUX_O1_SIZE_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: O1_size.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/O1_size_fwd.hpp>
-#include <boost/mpl/list/aux_/tag.hpp>
-
-namespace boost { namespace mpl {
-
-template<>
-struct O1_size_impl< aux::list_tag >
-{
-    template< typename List > struct apply
-        : List::size
-    {
-    };
-};
-
-}}
-
-#endif // BOOST_MPL_LIST_AUX_O1_SIZE_HPP_INCLUDED
diff --git a/boost/mpl/list/aux_/begin_end.hpp b/boost/mpl/list/aux_/begin_end.hpp
deleted file mode 100644
index 7fbddad..0000000
--- a/boost/mpl/list/aux_/begin_end.hpp
+++ /dev/null
@@ -1,44 +0,0 @@
-
-#ifndef BOOST_MPL_LIST_AUX_BEGIN_END_HPP_INCLUDED
-#define BOOST_MPL_LIST_AUX_BEGIN_END_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: begin_end.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/begin_end_fwd.hpp>
-#include <boost/mpl/list/aux_/iterator.hpp>
-#include <boost/mpl/list/aux_/tag.hpp>
-#include <boost/mpl/list/aux_/item.hpp>
-
-namespace boost { namespace mpl {
-
-template<>
-struct begin_impl< aux::list_tag >
-{
-    template< typename List > struct apply
-    {
-        typedef l_iter<typename List::type> type;
-    };
-};
-
-template<>
-struct end_impl< aux::list_tag >
-{
-    template< typename > struct apply
-    {
-        typedef l_iter<l_end> type;
-    };
-};
-
-}}
-
-#endif // BOOST_MPL_LIST_AUX_BEGIN_END_HPP_INCLUDED
diff --git a/boost/mpl/list/aux_/clear.hpp b/boost/mpl/list/aux_/clear.hpp
deleted file mode 100644
index 3deafe7..0000000
--- a/boost/mpl/list/aux_/clear.hpp
+++ /dev/null
@@ -1,34 +0,0 @@
-
-#ifndef BOOST_MPL_LIST_AUX_CLEAR_HPP_INCLUDED
-#define BOOST_MPL_LIST_AUX_CLEAR_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: clear.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/clear_fwd.hpp>
-#include <boost/mpl/list/aux_/item.hpp>
-#include <boost/mpl/list/aux_/tag.hpp>
-
-namespace boost { namespace mpl {
-
-template<>
-struct clear_impl< aux::list_tag >
-{
-    template< typename List > struct apply
-    {
-        typedef l_end type;
-    };
-};
-
-}}
-
-#endif // BOOST_MPL_LIST_AUX_CLEAR_HPP_INCLUDED
diff --git a/boost/mpl/list/aux_/empty.hpp b/boost/mpl/list/aux_/empty.hpp
deleted file mode 100644
index c282cfe..0000000
--- a/boost/mpl/list/aux_/empty.hpp
+++ /dev/null
@@ -1,34 +0,0 @@
-
-#ifndef BOOST_MPL_LIST_AUX_EMPTY_HPP_INCLUDED
-#define BOOST_MPL_LIST_AUX_EMPTY_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: empty.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/empty_fwd.hpp>
-#include <boost/mpl/not.hpp>
-#include <boost/mpl/list/aux_/tag.hpp>
-
-namespace boost { namespace mpl {
-
-template<>
-struct empty_impl< aux::list_tag >
-{
-    template< typename List > struct apply
-        : not_<typename List::size>
-    {
-    };
-};
-
-}}
-
-#endif // BOOST_MPL_LIST_AUX_EMPTY_HPP_INCLUDED
diff --git a/boost/mpl/list/aux_/front.hpp b/boost/mpl/list/aux_/front.hpp
deleted file mode 100644
index eb0b689..0000000
--- a/boost/mpl/list/aux_/front.hpp
+++ /dev/null
@@ -1,33 +0,0 @@
-
-#ifndef BOOST_MPL_LIST_AUX_FRONT_HPP_INCLUDED
-#define BOOST_MPL_LIST_AUX_FRONT_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: front.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/front_fwd.hpp>
-#include <boost/mpl/list/aux_/tag.hpp>
-
-namespace boost { namespace mpl {
-
-template<>
-struct front_impl< aux::list_tag >
-{
-    template< typename List > struct apply
-    {
-        typedef typename List::item type;
-    };
-};
-
-}}
-
-#endif // BOOST_MPL_LIST_AUX_FRONT_HPP_INCLUDED
diff --git a/boost/mpl/list/aux_/include_preprocessed.hpp b/boost/mpl/list/aux_/include_preprocessed.hpp
deleted file mode 100644
index 4e7f6e4..0000000
--- a/boost/mpl/list/aux_/include_preprocessed.hpp
+++ /dev/null
@@ -1,35 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2001-2006
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: include_preprocessed.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION!
-
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#include <boost/preprocessor/cat.hpp>
-#include <boost/preprocessor/stringize.hpp>
-
-#   define AUX778076_HEADER \
-    aux_/preprocessed/plain/BOOST_MPL_PREPROCESSED_HEADER \
-/**/
-
-#if BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(700))
-#   define AUX778076_INCLUDE_STRING BOOST_PP_STRINGIZE(boost/mpl/list/AUX778076_HEADER)
-#   include AUX778076_INCLUDE_STRING
-#   undef AUX778076_INCLUDE_STRING
-#else
-#   include BOOST_PP_STRINGIZE(boost/mpl/list/AUX778076_HEADER)
-#endif
-
-#   undef AUX778076_HEADER
-
-#undef BOOST_MPL_PREPROCESSED_HEADER
diff --git a/boost/mpl/list/aux_/item.hpp b/boost/mpl/list/aux_/item.hpp
deleted file mode 100644
index 24b5e40..0000000
--- a/boost/mpl/list/aux_/item.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-
-#ifndef BOOST_MPL_LIST_AUX_NODE_HPP_INCLUDED
-#define BOOST_MPL_LIST_AUX_NODE_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: item.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/long.hpp>
-#include <boost/mpl/list/aux_/tag.hpp>
-#include <boost/mpl/aux_/config/msvc.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-namespace boost { namespace mpl {
-
-template<
-      typename Size
-    , typename T
-    , typename Next
-    >
-struct l_item
-{
-// agurt, 17/jul/03: to facilitate the deficient 'is_sequence' implementation 
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
-    typedef int begin;
-#endif
-    typedef aux::list_tag tag;
-    typedef l_item type;
-
-    typedef Size size;
-    typedef T item;
-    typedef Next next;
-};
-
-struct l_end
-{
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
-    typedef int begin;
-#endif
-    typedef aux::list_tag tag;
-    typedef l_end type;
-    typedef long_<0> size;
-};
-
-}}
-
-#endif // BOOST_MPL_LIST_AUX_NODE_HPP_INCLUDED
diff --git a/boost/mpl/list/aux_/iterator.hpp b/boost/mpl/list/aux_/iterator.hpp
deleted file mode 100644
index 4d0431f..0000000
--- a/boost/mpl/list/aux_/iterator.hpp
+++ /dev/null
@@ -1,76 +0,0 @@
-
-#ifndef BOOST_MPL_LIST_AUX_ITERATOR_HPP_INCLUDED
-#define BOOST_MPL_LIST_AUX_ITERATOR_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: iterator.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/iterator_tags.hpp>
-#include <boost/mpl/next_prior.hpp>
-#include <boost/mpl/deref.hpp>
-#include <boost/mpl/list/aux_/item.hpp>
-#include <boost/mpl/aux_/na.hpp>
-#include <boost/mpl/aux_/lambda_spec.hpp>
-#include <boost/mpl/aux_/config/ctps.hpp>
-
-namespace boost { namespace mpl {
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template< typename Node >
-struct l_iter
-{
-    typedef aux::l_iter_tag tag;
-    typedef forward_iterator_tag category;
-};
-
-template< typename Node >
-struct deref< l_iter<Node> >
-{
-    typedef typename Node::item type;
-};
-
-template< typename Node >
-struct next< l_iter<Node> >
-{
-    typedef l_iter< typename Node::next > type;
-};
-
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-template< typename Node >
-struct l_iter
-{
-    typedef aux::l_iter_tag tag;
-    typedef forward_iterator_tag category;
-    typedef typename Node::item type;
-    typedef l_iter< typename mpl::next<Node>::type > next;
-};
-
-#endif
-
-
-template<> struct l_iter<l_end>
-{
-    typedef aux::l_iter_tag tag;
-    typedef forward_iterator_tag category;
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-    typedef na type;
-    typedef l_iter next;
-#endif
-};
-
-BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1, l_iter)
-
-}}
-
-#endif // BOOST_MPL_LIST_AUX_ITERATOR_HPP_INCLUDED
diff --git a/boost/mpl/list/aux_/numbered.hpp b/boost/mpl/list/aux_/numbered.hpp
deleted file mode 100644
index 7b661e5..0000000
--- a/boost/mpl/list/aux_/numbered.hpp
+++ /dev/null
@@ -1,68 +0,0 @@
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-// Copyright Peter Dimov 2000-2002
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: numbered.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if defined(BOOST_PP_IS_ITERATING)
-
-#include <boost/preprocessor/enum_params.hpp>
-#include <boost/preprocessor/enum_shifted_params.hpp>
-#include <boost/preprocessor/dec.hpp>
-#include <boost/preprocessor/cat.hpp>
-
-#define i BOOST_PP_FRAME_ITERATION(1)
-
-#if i == 1
-
-template<
-      BOOST_PP_ENUM_PARAMS(i, typename T)
-    >
-struct list1
-    : l_item<
-          long_<1>
-        , T0
-        , l_end
-        >
-{
-    typedef list1 type;
-};
-
-#else
-
-#   define MPL_AUX_LIST_TAIL(list, i, T) \
-    BOOST_PP_CAT(list,BOOST_PP_DEC(i))< \
-      BOOST_PP_ENUM_SHIFTED_PARAMS(i, T) \
-    > \
-    /**/
-    
-template<
-      BOOST_PP_ENUM_PARAMS(i, typename T)
-    >
-struct BOOST_PP_CAT(list,i)
-    : l_item<
-          long_<i>
-        , T0
-        , MPL_AUX_LIST_TAIL(list,i,T)
-        >
-{
-    typedef BOOST_PP_CAT(list,i) type;
-};
-
-#   undef MPL_AUX_LIST_TAIL
-
-#endif // i == 1
-
-#undef i
-
-#endif // BOOST_PP_IS_ITERATING
diff --git a/boost/mpl/list/aux_/numbered_c.hpp b/boost/mpl/list/aux_/numbered_c.hpp
deleted file mode 100644
index 0c8e9f6..0000000
--- a/boost/mpl/list/aux_/numbered_c.hpp
+++ /dev/null
@@ -1,71 +0,0 @@
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: numbered_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if defined(BOOST_PP_IS_ITERATING)
-
-#include <boost/preprocessor/enum_params.hpp>
-#include <boost/preprocessor/enum_shifted_params.hpp>
-#include <boost/preprocessor/dec.hpp>
-#include <boost/preprocessor/cat.hpp>
-
-#define i BOOST_PP_FRAME_ITERATION(1)
-
-#if i == 1
-
-template<
-      typename T
-    , BOOST_PP_ENUM_PARAMS(i, T C)
-    >
-struct list1_c
-    : l_item<
-          long_<1>
-        , integral_c<T,C0>
-        , l_end
-        >
-{
-    typedef list1_c type;
-    typedef T value_type;
-};
-
-#else
-
-#   define MPL_AUX_LIST_C_TAIL(list, i, C) \
-    BOOST_PP_CAT(BOOST_PP_CAT(list,BOOST_PP_DEC(i)),_c)<T, \
-      BOOST_PP_ENUM_SHIFTED_PARAMS(i, C) \
-    > \
-    /**/
-    
-template<
-      typename T
-    , BOOST_PP_ENUM_PARAMS(i, T C)
-    >
-struct BOOST_PP_CAT(BOOST_PP_CAT(list,i),_c)
-    : l_item<
-          long_<i>
-        , integral_c<T,C0>
-        , MPL_AUX_LIST_C_TAIL(list,i,C)
-        >
-{
-    typedef BOOST_PP_CAT(BOOST_PP_CAT(list,i),_c) type;
-    typedef T value_type;
-};
-
-#   undef MPL_AUX_LIST_C_TAIL
-
-#endif // i == 1
-
-#undef i
-
-#endif // BOOST_PP_IS_ITERATING
diff --git a/boost/mpl/list/aux_/pop_front.hpp b/boost/mpl/list/aux_/pop_front.hpp
deleted file mode 100644
index 9c72228..0000000
--- a/boost/mpl/list/aux_/pop_front.hpp
+++ /dev/null
@@ -1,34 +0,0 @@
-
-#ifndef BOOST_MPL_LIST_AUX_POP_FRONT_HPP_INCLUDED
-#define BOOST_MPL_LIST_AUX_POP_FRONT_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: pop_front.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/pop_front_fwd.hpp>
-#include <boost/mpl/next_prior.hpp>
-#include <boost/mpl/list/aux_/tag.hpp>
-
-namespace boost { namespace mpl {
-
-template<>
-struct pop_front_impl< aux::list_tag >
-{
-    template< typename List > struct apply
-    {
-        typedef typename mpl::next<List>::type type;
-    };
-};
-
-}}
-
-#endif // BOOST_MPL_LIST_AUX_POP_FRONT_HPP_INCLUDED
diff --git a/boost/mpl/list/aux_/preprocessed/plain/list10.hpp b/boost/mpl/list/aux_/preprocessed/plain/list10.hpp
deleted file mode 100644
index 99368d2..0000000
--- a/boost/mpl/list/aux_/preprocessed/plain/list10.hpp
+++ /dev/null
@@ -1,149 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/list/list10.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0
-    >
-struct list1
-    : l_item<
-          long_<1>
-        , T0
-        , l_end
-        >
-{
-    typedef list1 type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct list2
-    : l_item<
-          long_<2>
-        , T0
-        , list1<T1>
-        >
-{
-    typedef list2 type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct list3
-    : l_item<
-          long_<3>
-        , T0
-        , list2< T1,T2 >
-        >
-{
-    typedef list3 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct list4
-    : l_item<
-          long_<4>
-        , T0
-        , list3< T1,T2,T3 >
-        >
-{
-    typedef list4 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct list5
-    : l_item<
-          long_<5>
-        , T0
-        , list4< T1,T2,T3,T4 >
-        >
-{
-    typedef list5 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct list6
-    : l_item<
-          long_<6>
-        , T0
-        , list5< T1,T2,T3,T4,T5 >
-        >
-{
-    typedef list6 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct list7
-    : l_item<
-          long_<7>
-        , T0
-        , list6< T1,T2,T3,T4,T5,T6 >
-        >
-{
-    typedef list7 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct list8
-    : l_item<
-          long_<8>
-        , T0
-        , list7< T1,T2,T3,T4,T5,T6,T7 >
-        >
-{
-    typedef list8 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct list9
-    : l_item<
-          long_<9>
-        , T0
-        , list8< T1,T2,T3,T4,T5,T6,T7,T8 >
-        >
-{
-    typedef list9 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct list10
-    : l_item<
-          long_<10>
-        , T0
-        , list9< T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-        >
-{
-    typedef list10 type;
-};
-
-}}
diff --git a/boost/mpl/list/aux_/preprocessed/plain/list10_c.hpp b/boost/mpl/list/aux_/preprocessed/plain/list10_c.hpp
deleted file mode 100644
index 7133d71..0000000
--- a/boost/mpl/list/aux_/preprocessed/plain/list10_c.hpp
+++ /dev/null
@@ -1,164 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/list/list10_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T
-    , T C0
-    >
-struct list1_c
-    : l_item<
-          long_<1>
-        , integral_c< T,C0 >
-        , l_end
-        >
-{
-    typedef list1_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1
-    >
-struct list2_c
-    : l_item<
-          long_<2>
-        , integral_c< T,C0 >
-        , list1_c< T,C1 >
-        >
-{
-    typedef list2_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2
-    >
-struct list3_c
-    : l_item<
-          long_<3>
-        , integral_c< T,C0 >
-        , list2_c< T,C1,C2 >
-        >
-{
-    typedef list3_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3
-    >
-struct list4_c
-    : l_item<
-          long_<4>
-        , integral_c< T,C0 >
-        , list3_c< T,C1,C2,C3 >
-        >
-{
-    typedef list4_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4
-    >
-struct list5_c
-    : l_item<
-          long_<5>
-        , integral_c< T,C0 >
-        , list4_c< T,C1,C2,C3,C4 >
-        >
-{
-    typedef list5_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5
-    >
-struct list6_c
-    : l_item<
-          long_<6>
-        , integral_c< T,C0 >
-        , list5_c< T,C1,C2,C3,C4,C5 >
-        >
-{
-    typedef list6_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6
-    >
-struct list7_c
-    : l_item<
-          long_<7>
-        , integral_c< T,C0 >
-        , list6_c< T,C1,C2,C3,C4,C5,C6 >
-        >
-{
-    typedef list7_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7
-    >
-struct list8_c
-    : l_item<
-          long_<8>
-        , integral_c< T,C0 >
-        , list7_c< T,C1,C2,C3,C4,C5,C6,C7 >
-        >
-{
-    typedef list8_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8
-    >
-struct list9_c
-    : l_item<
-          long_<9>
-        , integral_c< T,C0 >
-        , list8_c< T,C1,C2,C3,C4,C5,C6,C7,C8 >
-        >
-{
-    typedef list9_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9
-    >
-struct list10_c
-    : l_item<
-          long_<10>
-        , integral_c< T,C0 >
-        , list9_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9 >
-        >
-{
-    typedef list10_c type;
-    typedef T value_type;
-};
-
-}}
diff --git a/boost/mpl/list/aux_/preprocessed/plain/list20.hpp b/boost/mpl/list/aux_/preprocessed/plain/list20.hpp
deleted file mode 100644
index 750e495..0000000
--- a/boost/mpl/list/aux_/preprocessed/plain/list20.hpp
+++ /dev/null
@@ -1,169 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/list/list20.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct list11
-    : l_item<
-          long_<11>
-        , T0
-        , list10< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-        >
-{
-    typedef list11 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11
-    >
-struct list12
-    : l_item<
-          long_<12>
-        , T0
-        , list11< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-        >
-{
-    typedef list12 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12
-    >
-struct list13
-    : l_item<
-          long_<13>
-        , T0
-        , list12< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-        >
-{
-    typedef list13 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13
-    >
-struct list14
-    : l_item<
-          long_<14>
-        , T0
-        , list13< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-        >
-{
-    typedef list14 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    >
-struct list15
-    : l_item<
-          long_<15>
-        , T0
-        , list14< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >
-        >
-{
-    typedef list15 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15
-    >
-struct list16
-    : l_item<
-          long_<16>
-        , T0
-        , list15< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >
-        >
-{
-    typedef list16 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16
-    >
-struct list17
-    : l_item<
-          long_<17>
-        , T0
-        , list16< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >
-        >
-{
-    typedef list17 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17
-    >
-struct list18
-    : l_item<
-          long_<18>
-        , T0
-        , list17< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >
-        >
-{
-    typedef list18 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18
-    >
-struct list19
-    : l_item<
-          long_<19>
-        , T0
-        , list18< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >
-        >
-{
-    typedef list19 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct list20
-    : l_item<
-          long_<20>
-        , T0
-        , list19< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >
-        >
-{
-    typedef list20 type;
-};
-
-}}
diff --git a/boost/mpl/list/aux_/preprocessed/plain/list20_c.hpp b/boost/mpl/list/aux_/preprocessed/plain/list20_c.hpp
deleted file mode 100644
index 7f15acf..0000000
--- a/boost/mpl/list/aux_/preprocessed/plain/list20_c.hpp
+++ /dev/null
@@ -1,173 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/list/list20_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    >
-struct list11_c
-    : l_item<
-          long_<11>
-        , integral_c< T,C0 >
-        , list10_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >
-        >
-{
-    typedef list11_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11
-    >
-struct list12_c
-    : l_item<
-          long_<12>
-        , integral_c< T,C0 >
-        , list11_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >
-        >
-{
-    typedef list12_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12
-    >
-struct list13_c
-    : l_item<
-          long_<13>
-        , integral_c< T,C0 >
-        , list12_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >
-        >
-{
-    typedef list13_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13
-    >
-struct list14_c
-    : l_item<
-          long_<14>
-        , integral_c< T,C0 >
-        , list13_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >
-        >
-{
-    typedef list14_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14
-    >
-struct list15_c
-    : l_item<
-          long_<15>
-        , integral_c< T,C0 >
-        , list14_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >
-        >
-{
-    typedef list15_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15
-    >
-struct list16_c
-    : l_item<
-          long_<16>
-        , integral_c< T,C0 >
-        , list15_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >
-        >
-{
-    typedef list16_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16
-    >
-struct list17_c
-    : l_item<
-          long_<17>
-        , integral_c< T,C0 >
-        , list16_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >
-        >
-{
-    typedef list17_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17
-    >
-struct list18_c
-    : l_item<
-          long_<18>
-        , integral_c< T,C0 >
-        , list17_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >
-        >
-{
-    typedef list18_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18
-    >
-struct list19_c
-    : l_item<
-          long_<19>
-        , integral_c< T,C0 >
-        , list18_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >
-        >
-{
-    typedef list19_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19
-    >
-struct list20_c
-    : l_item<
-          long_<20>
-        , integral_c< T,C0 >
-        , list19_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >
-        >
-{
-    typedef list20_c type;
-    typedef T value_type;
-};
-
-}}
diff --git a/boost/mpl/list/aux_/preprocessed/plain/list30.hpp b/boost/mpl/list/aux_/preprocessed/plain/list30.hpp
deleted file mode 100644
index 5459101..0000000
--- a/boost/mpl/list/aux_/preprocessed/plain/list30.hpp
+++ /dev/null
@@ -1,189 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/list/list30.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20
-    >
-struct list21
-    : l_item<
-          long_<21>
-        , T0
-        , list20< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20 >
-        >
-{
-    typedef list21 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21
-    >
-struct list22
-    : l_item<
-          long_<22>
-        , T0
-        , list21< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21 >
-        >
-{
-    typedef list22 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22
-    >
-struct list23
-    : l_item<
-          long_<23>
-        , T0
-        , list22< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22 >
-        >
-{
-    typedef list23 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23
-    >
-struct list24
-    : l_item<
-          long_<24>
-        , T0
-        , list23< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23 >
-        >
-{
-    typedef list24 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    >
-struct list25
-    : l_item<
-          long_<25>
-        , T0
-        , list24< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24 >
-        >
-{
-    typedef list25 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25
-    >
-struct list26
-    : l_item<
-          long_<26>
-        , T0
-        , list25< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25 >
-        >
-{
-    typedef list26 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26
-    >
-struct list27
-    : l_item<
-          long_<27>
-        , T0
-        , list26< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26 >
-        >
-{
-    typedef list27 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27
-    >
-struct list28
-    : l_item<
-          long_<28>
-        , T0
-        , list27< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27 >
-        >
-{
-    typedef list28 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28
-    >
-struct list29
-    : l_item<
-          long_<29>
-        , T0
-        , list28< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28 >
-        >
-{
-    typedef list29 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    >
-struct list30
-    : l_item<
-          long_<30>
-        , T0
-        , list29< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29 >
-        >
-{
-    typedef list30 type;
-};
-
-}}
diff --git a/boost/mpl/list/aux_/preprocessed/plain/list30_c.hpp b/boost/mpl/list/aux_/preprocessed/plain/list30_c.hpp
deleted file mode 100644
index 5393d79..0000000
--- a/boost/mpl/list/aux_/preprocessed/plain/list30_c.hpp
+++ /dev/null
@@ -1,183 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/list/list30_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    >
-struct list21_c
-    : l_item<
-          long_<21>
-        , integral_c< T,C0 >
-        , list20_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20 >
-        >
-{
-    typedef list21_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21
-    >
-struct list22_c
-    : l_item<
-          long_<22>
-        , integral_c< T,C0 >
-        , list21_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21 >
-        >
-{
-    typedef list22_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22
-    >
-struct list23_c
-    : l_item<
-          long_<23>
-        , integral_c< T,C0 >
-        , list22_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22 >
-        >
-{
-    typedef list23_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23
-    >
-struct list24_c
-    : l_item<
-          long_<24>
-        , integral_c< T,C0 >
-        , list23_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23 >
-        >
-{
-    typedef list24_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24
-    >
-struct list25_c
-    : l_item<
-          long_<25>
-        , integral_c< T,C0 >
-        , list24_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24 >
-        >
-{
-    typedef list25_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25
-    >
-struct list26_c
-    : l_item<
-          long_<26>
-        , integral_c< T,C0 >
-        , list25_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25 >
-        >
-{
-    typedef list26_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26
-    >
-struct list27_c
-    : l_item<
-          long_<27>
-        , integral_c< T,C0 >
-        , list26_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26 >
-        >
-{
-    typedef list27_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27
-    >
-struct list28_c
-    : l_item<
-          long_<28>
-        , integral_c< T,C0 >
-        , list27_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27 >
-        >
-{
-    typedef list28_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28
-    >
-struct list29_c
-    : l_item<
-          long_<29>
-        , integral_c< T,C0 >
-        , list28_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28 >
-        >
-{
-    typedef list29_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29
-    >
-struct list30_c
-    : l_item<
-          long_<30>
-        , integral_c< T,C0 >
-        , list29_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29 >
-        >
-{
-    typedef list30_c type;
-    typedef T value_type;
-};
-
-}}
diff --git a/boost/mpl/list/aux_/preprocessed/plain/list40.hpp b/boost/mpl/list/aux_/preprocessed/plain/list40.hpp
deleted file mode 100644
index 68c6761..0000000
--- a/boost/mpl/list/aux_/preprocessed/plain/list40.hpp
+++ /dev/null
@@ -1,209 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/list/list40.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30
-    >
-struct list31
-    : l_item<
-          long_<31>
-        , T0
-        , list30< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30 >
-        >
-{
-    typedef list31 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31
-    >
-struct list32
-    : l_item<
-          long_<32>
-        , T0
-        , list31< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31 >
-        >
-{
-    typedef list32 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32
-    >
-struct list33
-    : l_item<
-          long_<33>
-        , T0
-        , list32< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32 >
-        >
-{
-    typedef list33 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33
-    >
-struct list34
-    : l_item<
-          long_<34>
-        , T0
-        , list33< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33 >
-        >
-{
-    typedef list34 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    >
-struct list35
-    : l_item<
-          long_<35>
-        , T0
-        , list34< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34 >
-        >
-{
-    typedef list35 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35
-    >
-struct list36
-    : l_item<
-          long_<36>
-        , T0
-        , list35< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35 >
-        >
-{
-    typedef list36 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36
-    >
-struct list37
-    : l_item<
-          long_<37>
-        , T0
-        , list36< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36 >
-        >
-{
-    typedef list37 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36, typename T37
-    >
-struct list38
-    : l_item<
-          long_<38>
-        , T0
-        , list37< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37 >
-        >
-{
-    typedef list38 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36, typename T37, typename T38
-    >
-struct list39
-    : l_item<
-          long_<39>
-        , T0
-        , list38< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38 >
-        >
-{
-    typedef list39 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36, typename T37, typename T38, typename T39
-    >
-struct list40
-    : l_item<
-          long_<40>
-        , T0
-        , list39< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39 >
-        >
-{
-    typedef list40 type;
-};
-
-}}
diff --git a/boost/mpl/list/aux_/preprocessed/plain/list40_c.hpp b/boost/mpl/list/aux_/preprocessed/plain/list40_c.hpp
deleted file mode 100644
index 0c51ba2..0000000
--- a/boost/mpl/list/aux_/preprocessed/plain/list40_c.hpp
+++ /dev/null
@@ -1,193 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/list/list40_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    >
-struct list31_c
-    : l_item<
-          long_<31>
-        , integral_c< T,C0 >
-        , list30_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30 >
-        >
-{
-    typedef list31_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31
-    >
-struct list32_c
-    : l_item<
-          long_<32>
-        , integral_c< T,C0 >
-        , list31_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31 >
-        >
-{
-    typedef list32_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32
-    >
-struct list33_c
-    : l_item<
-          long_<33>
-        , integral_c< T,C0 >
-        , list32_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32 >
-        >
-{
-    typedef list33_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33
-    >
-struct list34_c
-    : l_item<
-          long_<34>
-        , integral_c< T,C0 >
-        , list33_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33 >
-        >
-{
-    typedef list34_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34
-    >
-struct list35_c
-    : l_item<
-          long_<35>
-        , integral_c< T,C0 >
-        , list34_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34 >
-        >
-{
-    typedef list35_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35
-    >
-struct list36_c
-    : l_item<
-          long_<36>
-        , integral_c< T,C0 >
-        , list35_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35 >
-        >
-{
-    typedef list36_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36
-    >
-struct list37_c
-    : l_item<
-          long_<37>
-        , integral_c< T,C0 >
-        , list36_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36 >
-        >
-{
-    typedef list37_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37
-    >
-struct list38_c
-    : l_item<
-          long_<38>
-        , integral_c< T,C0 >
-        , list37_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37 >
-        >
-{
-    typedef list38_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38
-    >
-struct list39_c
-    : l_item<
-          long_<39>
-        , integral_c< T,C0 >
-        , list38_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38 >
-        >
-{
-    typedef list39_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39
-    >
-struct list40_c
-    : l_item<
-          long_<40>
-        , integral_c< T,C0 >
-        , list39_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39 >
-        >
-{
-    typedef list40_c type;
-    typedef T value_type;
-};
-
-}}
diff --git a/boost/mpl/list/aux_/preprocessed/plain/list50.hpp b/boost/mpl/list/aux_/preprocessed/plain/list50.hpp
deleted file mode 100644
index 4cc22da..0000000
--- a/boost/mpl/list/aux_/preprocessed/plain/list50.hpp
+++ /dev/null
@@ -1,229 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/list/list50.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36, typename T37, typename T38, typename T39
-    , typename T40
-    >
-struct list41
-    : l_item<
-          long_<41>
-        , T0
-        , list40< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40 >
-        >
-{
-    typedef list41 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36, typename T37, typename T38, typename T39
-    , typename T40, typename T41
-    >
-struct list42
-    : l_item<
-          long_<42>
-        , T0
-        , list41< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41 >
-        >
-{
-    typedef list42 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36, typename T37, typename T38, typename T39
-    , typename T40, typename T41, typename T42
-    >
-struct list43
-    : l_item<
-          long_<43>
-        , T0
-        , list42< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42 >
-        >
-{
-    typedef list43 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36, typename T37, typename T38, typename T39
-    , typename T40, typename T41, typename T42, typename T43
-    >
-struct list44
-    : l_item<
-          long_<44>
-        , T0
-        , list43< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43 >
-        >
-{
-    typedef list44 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36, typename T37, typename T38, typename T39
-    , typename T40, typename T41, typename T42, typename T43, typename T44
-    >
-struct list45
-    : l_item<
-          long_<45>
-        , T0
-        , list44< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44 >
-        >
-{
-    typedef list45 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36, typename T37, typename T38, typename T39
-    , typename T40, typename T41, typename T42, typename T43, typename T44
-    , typename T45
-    >
-struct list46
-    : l_item<
-          long_<46>
-        , T0
-        , list45< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45 >
-        >
-{
-    typedef list46 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36, typename T37, typename T38, typename T39
-    , typename T40, typename T41, typename T42, typename T43, typename T44
-    , typename T45, typename T46
-    >
-struct list47
-    : l_item<
-          long_<47>
-        , T0
-        , list46< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46 >
-        >
-{
-    typedef list47 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36, typename T37, typename T38, typename T39
-    , typename T40, typename T41, typename T42, typename T43, typename T44
-    , typename T45, typename T46, typename T47
-    >
-struct list48
-    : l_item<
-          long_<48>
-        , T0
-        , list47< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47 >
-        >
-{
-    typedef list48 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36, typename T37, typename T38, typename T39
-    , typename T40, typename T41, typename T42, typename T43, typename T44
-    , typename T45, typename T46, typename T47, typename T48
-    >
-struct list49
-    : l_item<
-          long_<49>
-        , T0
-        , list48< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48 >
-        >
-{
-    typedef list49 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36, typename T37, typename T38, typename T39
-    , typename T40, typename T41, typename T42, typename T43, typename T44
-    , typename T45, typename T46, typename T47, typename T48, typename T49
-    >
-struct list50
-    : l_item<
-          long_<50>
-        , T0
-        , list49< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49 >
-        >
-{
-    typedef list50 type;
-};
-
-}}
diff --git a/boost/mpl/list/aux_/preprocessed/plain/list50_c.hpp b/boost/mpl/list/aux_/preprocessed/plain/list50_c.hpp
deleted file mode 100644
index 28c061d..0000000
--- a/boost/mpl/list/aux_/preprocessed/plain/list50_c.hpp
+++ /dev/null
@@ -1,203 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/list/list50_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    >
-struct list41_c
-    : l_item<
-          long_<41>
-        , integral_c< T,C0 >
-        , list40_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40 >
-        >
-{
-    typedef list41_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41
-    >
-struct list42_c
-    : l_item<
-          long_<42>
-        , integral_c< T,C0 >
-        , list41_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41 >
-        >
-{
-    typedef list42_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42
-    >
-struct list43_c
-    : l_item<
-          long_<43>
-        , integral_c< T,C0 >
-        , list42_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42 >
-        >
-{
-    typedef list43_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43
-    >
-struct list44_c
-    : l_item<
-          long_<44>
-        , integral_c< T,C0 >
-        , list43_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43 >
-        >
-{
-    typedef list44_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43, T C44
-    >
-struct list45_c
-    : l_item<
-          long_<45>
-        , integral_c< T,C0 >
-        , list44_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44 >
-        >
-{
-    typedef list45_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43, T C44, T C45
-    >
-struct list46_c
-    : l_item<
-          long_<46>
-        , integral_c< T,C0 >
-        , list45_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45 >
-        >
-{
-    typedef list46_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43, T C44, T C45, T C46
-    >
-struct list47_c
-    : l_item<
-          long_<47>
-        , integral_c< T,C0 >
-        , list46_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46 >
-        >
-{
-    typedef list47_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43, T C44, T C45, T C46, T C47
-    >
-struct list48_c
-    : l_item<
-          long_<48>
-        , integral_c< T,C0 >
-        , list47_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47 >
-        >
-{
-    typedef list48_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48
-    >
-struct list49_c
-    : l_item<
-          long_<49>
-        , integral_c< T,C0 >
-        , list48_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47,C48 >
-        >
-{
-    typedef list49_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48, T C49
-    >
-struct list50_c
-    : l_item<
-          long_<50>
-        , integral_c< T,C0 >
-        , list49_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47,C48,C49 >
-        >
-{
-    typedef list50_c type;
-    typedef T value_type;
-};
-
-}}
diff --git a/boost/mpl/list/aux_/push_back.hpp b/boost/mpl/list/aux_/push_back.hpp
deleted file mode 100644
index 8e9c34b..0000000
--- a/boost/mpl/list/aux_/push_back.hpp
+++ /dev/null
@@ -1,36 +0,0 @@
-
-#ifndef BOOST_MPL_LIST_AUX_PUSH_BACK_HPP_INCLUDED
-#define BOOST_MPL_LIST_AUX_PUSH_BACK_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: push_back.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/push_back_fwd.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/list/aux_/tag.hpp>
-
-namespace boost { namespace mpl {
-
-template< typename Tag > struct has_push_back_impl;
-
-template<>
-struct has_push_back_impl< aux::list_tag >
-{
-    template< typename Seq > struct apply
-        : false_
-    {
-    };
-};
-
-}}
-
-#endif // BOOST_MPL_LIST_AUX_PUSH_BACK_HPP_INCLUDED
diff --git a/boost/mpl/list/aux_/push_front.hpp b/boost/mpl/list/aux_/push_front.hpp
deleted file mode 100644
index 942508b..0000000
--- a/boost/mpl/list/aux_/push_front.hpp
+++ /dev/null
@@ -1,39 +0,0 @@
-
-#ifndef BOOST_MPL_LIST_AUX_PUSH_FRONT_HPP_INCLUDED
-#define BOOST_MPL_LIST_AUX_PUSH_FRONT_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: push_front.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/push_front_fwd.hpp>
-#include <boost/mpl/next.hpp>
-#include <boost/mpl/list/aux_/item.hpp>
-#include <boost/mpl/list/aux_/tag.hpp>
-
-namespace boost { namespace mpl {
-
-template<>
-struct push_front_impl< aux::list_tag >
-{
-    template< typename List, typename T > struct apply
-    {
-        typedef l_item<
-              typename next<typename List::size>::type
-            , T
-            , typename List::type
-            > type;
-    };
-};
-
-}}
-
-#endif // BOOST_MPL_LIST_AUX_PUSH_FRONT_HPP_INCLUDED
diff --git a/boost/mpl/list/aux_/size.hpp b/boost/mpl/list/aux_/size.hpp
deleted file mode 100644
index 9d7191f..0000000
--- a/boost/mpl/list/aux_/size.hpp
+++ /dev/null
@@ -1,33 +0,0 @@
-
-#ifndef BOOST_MPL_LIST_AUX_SIZE_HPP_INCLUDED
-#define BOOST_MPL_LIST_AUX_SIZE_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: size.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/size_fwd.hpp>
-#include <boost/mpl/list/aux_/tag.hpp>
-
-namespace boost { namespace mpl {
-
-template<>
-struct size_impl< aux::list_tag >
-{
-    template< typename List > struct apply
-        : List::size
-    {
-    };
-};
-
-}}
-
-#endif // BOOST_MPL_LIST_AUX_SIZE_HPP_INCLUDED
diff --git a/boost/mpl/list/aux_/tag.hpp b/boost/mpl/list/aux_/tag.hpp
deleted file mode 100644
index e1a7533..0000000
--- a/boost/mpl/list/aux_/tag.hpp
+++ /dev/null
@@ -1,24 +0,0 @@
-
-#ifndef BOOST_MPL_LIST_AUX_TAG_HPP_INCLUDED
-#define BOOST_MPL_LIST_AUX_TAG_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: tag.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-namespace boost { namespace mpl { namespace aux {
-
-struct list_tag;
-struct l_iter_tag;
-
-}}}
-
-#endif // BOOST_MPL_LIST_AUX_TAG_HPP_INCLUDED
diff --git a/boost/mpl/list/list0.hpp b/boost/mpl/list/list0.hpp
deleted file mode 100644
index 3ecdac3..0000000
--- a/boost/mpl/list/list0.hpp
+++ /dev/null
@@ -1,42 +0,0 @@
-
-#ifndef BOOST_MPL_LIST_LIST0_HPP_INCLUDED
-#define BOOST_MPL_LIST_LIST0_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: list0.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/long.hpp>
-#include <boost/mpl/aux_/na.hpp>
-#include <boost/mpl/list/aux_/push_front.hpp>
-#include <boost/mpl/list/aux_/pop_front.hpp>
-#include <boost/mpl/list/aux_/push_back.hpp>
-#include <boost/mpl/list/aux_/front.hpp>
-#include <boost/mpl/list/aux_/clear.hpp>
-#include <boost/mpl/list/aux_/O1_size.hpp>
-#include <boost/mpl/list/aux_/size.hpp>
-#include <boost/mpl/list/aux_/empty.hpp>
-#include <boost/mpl/list/aux_/begin_end.hpp>
-#include <boost/mpl/list/aux_/item.hpp>
-
-namespace boost { namespace mpl {
-
-template< typename Dummy = na > struct list0;
-
-template<> struct list0<na>
-    : l_end
-{
-    typedef l_end type;
-};
-
-}}
-
-#endif // BOOST_MPL_LIST_LIST0_HPP_INCLUDED
diff --git a/boost/mpl/list/list0_c.hpp b/boost/mpl/list/list0_c.hpp
deleted file mode 100644
index 066661f..0000000
--- a/boost/mpl/list/list0_c.hpp
+++ /dev/null
@@ -1,31 +0,0 @@
-
-#ifndef BOOST_MPL_LIST_LIST0_C_HPP_INCLUDED
-#define BOOST_MPL_LIST_LIST0_C_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: list0_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/list/list0.hpp>
-#include <boost/mpl/integral_c.hpp>
-
-namespace boost { namespace mpl {
-
-template< typename T > struct list0_c
-    : l_end
-{
-    typedef l_end type;
-    typedef T value_type;
-};
-
-}}
-
-#endif // BOOST_MPL_LIST_LIST0_C_HPP_INCLUDED
diff --git a/boost/mpl/list/list10.hpp b/boost/mpl/list/list10.hpp
deleted file mode 100644
index 2354694..0000000
--- a/boost/mpl/list/list10.hpp
+++ /dev/null
@@ -1,43 +0,0 @@
-
-#ifndef BOOST_MPL_LIST_LIST10_HPP_INCLUDED
-#define BOOST_MPL_LIST_LIST10_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: list10.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-#   include <boost/mpl/list/list0.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-#   define BOOST_MPL_PREPROCESSED_HEADER list10.hpp
-#   include <boost/mpl/list/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <boost/preprocessor/iterate.hpp>
-
-namespace boost { namespace mpl {
-
-#   define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(1, 10, <boost/mpl/list/aux_/numbered.hpp>))
-#   include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_LIST_LIST10_HPP_INCLUDED
diff --git a/boost/mpl/list/list10_c.hpp b/boost/mpl/list/list10_c.hpp
deleted file mode 100644
index b1c8e1b..0000000
--- a/boost/mpl/list/list10_c.hpp
+++ /dev/null
@@ -1,43 +0,0 @@
-
-#ifndef BOOST_MPL_LIST_LIST10_C_HPP_INCLUDED
-#define BOOST_MPL_LIST_LIST10_C_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: list10_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-#   include <boost/mpl/list/list0_c.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-#   define BOOST_MPL_PREPROCESSED_HEADER list10_c.hpp
-#   include <boost/mpl/list/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <boost/preprocessor/iterate.hpp>
-
-namespace boost { namespace mpl {
-
-#   define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(1, 10, <boost/mpl/list/aux_/numbered_c.hpp>))
-#   include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_LIST_LIST10_C_HPP_INCLUDED
diff --git a/boost/mpl/list/list20.hpp b/boost/mpl/list/list20.hpp
deleted file mode 100644
index 29f7d5d..0000000
--- a/boost/mpl/list/list20.hpp
+++ /dev/null
@@ -1,43 +0,0 @@
-
-#ifndef BOOST_MPL_LIST_LIST20_HPP_INCLUDED
-#define BOOST_MPL_LIST_LIST20_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: list20.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-#   include <boost/mpl/list/list10.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-#   define BOOST_MPL_PREPROCESSED_HEADER list20.hpp
-#   include <boost/mpl/list/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <boost/preprocessor/iterate.hpp>
-
-namespace boost { namespace mpl {
-
-#   define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(11, 20, <boost/mpl/list/aux_/numbered.hpp>))
-#   include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_LIST_LIST20_HPP_INCLUDED
diff --git a/boost/mpl/list/list20_c.hpp b/boost/mpl/list/list20_c.hpp
deleted file mode 100644
index d7f772c..0000000
--- a/boost/mpl/list/list20_c.hpp
+++ /dev/null
@@ -1,43 +0,0 @@
-
-#ifndef BOOST_MPL_LIST_LIST20_C_HPP_INCLUDED
-#define BOOST_MPL_LIST_LIST20_C_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: list20_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-#   include <boost/mpl/list/list10_c.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-#   define BOOST_MPL_PREPROCESSED_HEADER list20_c.hpp
-#   include <boost/mpl/list/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <boost/preprocessor/iterate.hpp>
-
-namespace boost { namespace mpl {
-
-#   define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(11, 20, <boost/mpl/list/aux_/numbered_c.hpp>))
-#   include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_LIST_LIST20_C_HPP_INCLUDED
diff --git a/boost/mpl/list/list30.hpp b/boost/mpl/list/list30.hpp
deleted file mode 100644
index 704cbdf..0000000
--- a/boost/mpl/list/list30.hpp
+++ /dev/null
@@ -1,43 +0,0 @@
-
-#ifndef BOOST_MPL_LIST_LIST30_HPP_INCLUDED
-#define BOOST_MPL_LIST_LIST30_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: list30.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-#   include <boost/mpl/list/list20.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-#   define BOOST_MPL_PREPROCESSED_HEADER list30.hpp
-#   include <boost/mpl/list/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <boost/preprocessor/iterate.hpp>
-
-namespace boost { namespace mpl {
-
-#   define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(21, 30, <boost/mpl/list/aux_/numbered.hpp>))
-#   include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_LIST_LIST30_HPP_INCLUDED
diff --git a/boost/mpl/list/list30_c.hpp b/boost/mpl/list/list30_c.hpp
deleted file mode 100644
index 54fd22f..0000000
--- a/boost/mpl/list/list30_c.hpp
+++ /dev/null
@@ -1,43 +0,0 @@
-
-#ifndef BOOST_MPL_LIST_LIST30_C_HPP_INCLUDED
-#define BOOST_MPL_LIST_LIST30_C_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: list30_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-#   include <boost/mpl/list/list20_c.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-#   define BOOST_MPL_PREPROCESSED_HEADER list30_c.hpp
-#   include <boost/mpl/list/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <boost/preprocessor/iterate.hpp>
-
-namespace boost { namespace mpl {
-
-#   define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(21, 30, <boost/mpl/list/aux_/numbered_c.hpp>))
-#   include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_LIST_LIST30_C_HPP_INCLUDED
diff --git a/boost/mpl/list/list40.hpp b/boost/mpl/list/list40.hpp
deleted file mode 100644
index 11d12e3..0000000
--- a/boost/mpl/list/list40.hpp
+++ /dev/null
@@ -1,43 +0,0 @@
-
-#ifndef BOOST_MPL_LIST_LIST40_HPP_INCLUDED
-#define BOOST_MPL_LIST_LIST40_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: list40.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-#   include <boost/mpl/list/list30.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-#   define BOOST_MPL_PREPROCESSED_HEADER list40.hpp
-#   include <boost/mpl/list/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <boost/preprocessor/iterate.hpp>
-
-namespace boost { namespace mpl {
-
-#   define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(31, 40, <boost/mpl/list/aux_/numbered.hpp>))
-#   include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_LIST_LIST40_HPP_INCLUDED
diff --git a/boost/mpl/list/list40_c.hpp b/boost/mpl/list/list40_c.hpp
deleted file mode 100644
index 0ae99fc..0000000
--- a/boost/mpl/list/list40_c.hpp
+++ /dev/null
@@ -1,43 +0,0 @@
-
-#ifndef BOOST_MPL_LIST_LIST40_C_HPP_INCLUDED
-#define BOOST_MPL_LIST_LIST40_C_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: list40_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-#   include <boost/mpl/list/list30_c.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-#   define BOOST_MPL_PREPROCESSED_HEADER list40_c.hpp
-#   include <boost/mpl/list/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <boost/preprocessor/iterate.hpp>
-
-namespace boost { namespace mpl {
-
-#   define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(31, 40, <boost/mpl/list/aux_/numbered_c.hpp>))
-#   include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_LIST_LIST40_C_HPP_INCLUDED
diff --git a/boost/mpl/list/list50.hpp b/boost/mpl/list/list50.hpp
deleted file mode 100644
index 4050a81..0000000
--- a/boost/mpl/list/list50.hpp
+++ /dev/null
@@ -1,43 +0,0 @@
-
-#ifndef BOOST_MPL_LIST_LIST50_HPP_INCLUDED
-#define BOOST_MPL_LIST_LIST50_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: list50.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-#   include <boost/mpl/list/list40.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-#   define BOOST_MPL_PREPROCESSED_HEADER list50.hpp
-#   include <boost/mpl/list/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <boost/preprocessor/iterate.hpp>
-
-namespace boost { namespace mpl {
-
-#   define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(41, 50, <boost/mpl/list/aux_/numbered.hpp>))
-#   include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_LIST_LIST50_HPP_INCLUDED
diff --git a/boost/mpl/list/list50_c.hpp b/boost/mpl/list/list50_c.hpp
deleted file mode 100644
index 4b5b654..0000000
--- a/boost/mpl/list/list50_c.hpp
+++ /dev/null
@@ -1,43 +0,0 @@
-
-#ifndef BOOST_MPL_LIST_LIST50_C_HPP_INCLUDED
-#define BOOST_MPL_LIST_LIST50_C_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: list50_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-#   include <boost/mpl/list/list40_c.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-#   define BOOST_MPL_PREPROCESSED_HEADER list50_c.hpp
-#   include <boost/mpl/list/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <boost/preprocessor/iterate.hpp>
-
-namespace boost { namespace mpl {
-
-#   define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(41, 50, <boost/mpl/list/aux_/numbered_c.hpp>))
-#   include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_LIST_LIST50_C_HPP_INCLUDED
diff --git a/boost/mpl/logical.hpp b/boost/mpl/logical.hpp
deleted file mode 100644
index f8b8fc3..0000000
--- a/boost/mpl/logical.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-
-#ifndef BOOST_MPL_LOGICAL_HPP_INCLUDED
-#define BOOST_MPL_LOGICAL_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: logical.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/or.hpp>
-#include <boost/mpl/and.hpp>
-#include <boost/mpl/not.hpp>
-
-#endif // BOOST_MPL_LOGICAL_HPP_INCLUDED
diff --git a/boost/mpl/long.hpp b/boost/mpl/long.hpp
deleted file mode 100644
index 1c79afd..0000000
--- a/boost/mpl/long.hpp
+++ /dev/null
@@ -1,22 +0,0 @@
-
-#ifndef BOOST_MPL_LONG_HPP_INCLUDED
-#define BOOST_MPL_LONG_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: long.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/long_fwd.hpp>
-
-#define AUX_WRAPPER_VALUE_TYPE long
-#include <boost/mpl/aux_/integral_wrapper.hpp>
-
-#endif // BOOST_MPL_LONG_HPP_INCLUDED
diff --git a/boost/mpl/long_fwd.hpp b/boost/mpl/long_fwd.hpp
deleted file mode 100644
index 17accd3..0000000
--- a/boost/mpl/long_fwd.hpp
+++ /dev/null
@@ -1,27 +0,0 @@
-
-#ifndef BOOST_MPL_LONG_FWD_HPP_INCLUDED
-#define BOOST_MPL_LONG_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: long_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/adl_barrier.hpp>
-#include <boost/mpl/aux_/nttp_decl.hpp>
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-
-template< BOOST_MPL_AUX_NTTP_DECL(long, N) > struct long_;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-BOOST_MPL_AUX_ADL_BARRIER_DECL(long_)
-
-#endif // BOOST_MPL_LONG_FWD_HPP_INCLUDED
diff --git a/boost/mpl/minus.hpp b/boost/mpl/minus.hpp
deleted file mode 100644
index 123b8af..0000000
--- a/boost/mpl/minus.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-
-#ifndef BOOST_MPL_MINUS_HPP_INCLUDED
-#define BOOST_MPL_MINUS_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: minus.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#define AUX778076_OP_NAME minus
-#define AUX778076_OP_TOKEN -
-#include <boost/mpl/aux_/arithmetic_op.hpp>
-
-#endif // BOOST_MPL_MINUS_HPP_INCLUDED
diff --git a/boost/mpl/multiplies.hpp b/boost/mpl/multiplies.hpp
deleted file mode 100644
index 1c0ec9f..0000000
--- a/boost/mpl/multiplies.hpp
+++ /dev/null
@@ -1,53 +0,0 @@
-
-#ifndef BOOST_MPL_MULTIPLIES_HPP_INCLUDED
-#define BOOST_MPL_MULTIPLIES_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: multiplies.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/times.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-#include <boost/mpl/aux_/preprocessor/default_params.hpp>
-#include <boost/mpl/aux_/preprocessor/params.hpp>
-#include <boost/mpl/aux_/config/ctps.hpp>
-
-// backward compatibility header, deprecated
-
-namespace boost { namespace mpl {
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-#   define AUX778076_OP_ARITY BOOST_MPL_LIMIT_METAFUNCTION_ARITY
-#else
-#   define AUX778076_OP_ARITY 2
-#endif
-
-template<
-      BOOST_MPL_PP_DEFAULT_PARAMS(AUX778076_OP_ARITY, typename N, na)
-    >
-struct multiplies
-    : times< BOOST_MPL_PP_PARAMS(AUX778076_OP_ARITY, N) >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(
-          AUX778076_OP_ARITY
-        , multiplies
-        , ( BOOST_MPL_PP_PARAMS(AUX778076_OP_ARITY, N) )
-        )
-};
-
-BOOST_MPL_AUX_NA_SPEC(AUX778076_OP_ARITY, multiplies)
-
-#undef AUX778076_OP_ARITY
-
-}}
-
-#endif // BOOST_MPL_MULTIPLIES_HPP_INCLUDED
diff --git a/boost/mpl/negate.hpp b/boost/mpl/negate.hpp
deleted file mode 100644
index 3d51caf..0000000
--- a/boost/mpl/negate.hpp
+++ /dev/null
@@ -1,81 +0,0 @@
-
-#ifndef BOOST_MPL_NEGATE_HPP_INCLUDED
-#define BOOST_MPL_NEGATE_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: negate.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/integral_c.hpp>
-#include <boost/mpl/aux_/msvc_eti_base.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-#include <boost/mpl/aux_/config/eti.hpp>
-#include <boost/mpl/aux_/config/integral.hpp>
-#include <boost/mpl/aux_/config/static_constant.hpp>
-
-namespace boost { namespace mpl {
-
-template< typename Tag > struct negate_impl;
-
-template< typename T > struct negate_tag
-{
-    typedef typename T::tag type;
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(N)
-    >
-struct negate
-#if !defined(BOOST_MPL_CFG_MSVC_ETI_BUG)
-    : negate_impl<
-          typename negate_tag<N>::type
-        >::template apply<N>::type
-#else
-    : aux::msvc_eti_base< typename apply_wrap1<
-          negate_impl< typename negate_tag<N>::type >
-        , N
-        >::type >::type
-#endif
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1, negate, (N))
-};
-
-BOOST_MPL_AUX_NA_SPEC(1, negate)
-
-
-#if defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC)
-namespace aux {
-template< typename T, T n > struct negate_wknd
-{
-    BOOST_STATIC_CONSTANT(T, value = -n);
-    typedef integral_c<T,value> type;
-};
-}
-#endif
-
-template<>
-struct negate_impl<integral_c_tag>
-{
-#if defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC)
-    template< typename N > struct apply
-        : aux::negate_wknd< typename N::value_type, N::value >
-#else
-    template< typename N > struct apply
-        : integral_c< typename N::value_type, (-N::value) >
-#endif    
-    {
-    };
-};
-
-}}
-
-#endif // BOOST_MPL_NEGATE_HPP_INCLUDED
diff --git a/boost/mpl/next.hpp b/boost/mpl/next.hpp
deleted file mode 100644
index fcfb01b..0000000
--- a/boost/mpl/next.hpp
+++ /dev/null
@@ -1,19 +0,0 @@
-
-#ifndef BOOST_MPL_NEXT_HPP_INCLUDED
-#define BOOST_MPL_NEXT_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: next.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/next_prior.hpp>
-
-#endif // BOOST_MPL_NEXT_HPP_INCLUDED
diff --git a/boost/mpl/next_prior.hpp b/boost/mpl/next_prior.hpp
deleted file mode 100644
index c65d4c4..0000000
--- a/boost/mpl/next_prior.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-
-#ifndef BOOST_MPL_NEXT_PRIOR_HPP_INCLUDED
-#define BOOST_MPL_NEXT_PRIOR_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: next_prior.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/common_name_wknd.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-
-namespace boost { namespace mpl {
-
-BOOST_MPL_AUX_COMMON_NAME_WKND(next)
-BOOST_MPL_AUX_COMMON_NAME_WKND(prior)
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(T)
-    >
-struct next
-{
-    typedef typename T::next type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1,next,(T))
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(T)
-    >
-struct prior
-{
-    typedef typename T::prior type;
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1,prior,(T))
-};
-
-BOOST_MPL_AUX_NA_SPEC(1, next)
-BOOST_MPL_AUX_NA_SPEC(1, prior)
-
-}}
-
-#endif // BOOST_MPL_NEXT_PRIOR_HPP_INCLUDED
diff --git a/boost/mpl/not.hpp b/boost/mpl/not.hpp
deleted file mode 100644
index 9886d7d..0000000
--- a/boost/mpl/not.hpp
+++ /dev/null
@@ -1,51 +0,0 @@
-
-#ifndef BOOST_MPL_NOT_HPP_INCLUDED
-#define BOOST_MPL_NOT_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: not.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/aux_/nttp_decl.hpp>
-#include <boost/mpl/aux_/nested_type_wknd.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template< BOOST_MPL_AUX_NTTP_DECL(long, C_) > // 'long' is intentional here
-struct not_impl
-    : bool_<!C_>
-{
-};
-
-} // namespace aux
-
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(T)
-    >
-struct not_
-    : aux::not_impl<
-          BOOST_MPL_AUX_NESTED_TYPE_WKND(T)::value
-        >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1,not_,(T))
-};
-
-BOOST_MPL_AUX_NA_SPEC(1,not_)
-
-}}
-
-#endif // BOOST_MPL_NOT_HPP_INCLUDED
diff --git a/boost/mpl/not_equal_to.hpp b/boost/mpl/not_equal_to.hpp
deleted file mode 100644
index b6997df..0000000
--- a/boost/mpl/not_equal_to.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-
-#ifndef BOOST_MPL_NOT_EQUAL_TO_HPP_INCLUDED
-#define BOOST_MPL_NOT_EQUAL_TO_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: not_equal_to.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#define AUX778076_OP_NAME not_equal_to
-#define AUX778076_OP_TOKEN !=
-#include <boost/mpl/aux_/comparison_op.hpp>
-
-#endif // BOOST_MPL_NOT_EQUAL_TO_HPP_INCLUDED
diff --git a/boost/mpl/numeric_cast.hpp b/boost/mpl/numeric_cast.hpp
deleted file mode 100644
index f890e44..0000000
--- a/boost/mpl/numeric_cast.hpp
+++ /dev/null
@@ -1,41 +0,0 @@
-
-#ifndef BOOST_MPL_NUMERIC_CAST_HPP_INCLUDED
-#define BOOST_MPL_NUMERIC_CAST_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2003-2004
-//
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: numeric_cast.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/config/msvc.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-// agurt 21/sep/04: portability macro for the sake of MSVC 6.x-7.0;
-// resolves conflicts with 'boost::numeric_cast' function template.
-// use it in your own code _only_ if you care about compatibility with
-// these outdated compilers!
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x570) )
-#   define BOOST_MPL_AUX_NUMERIC_CAST numeric_cast_
-#else
-#   define BOOST_MPL_AUX_NUMERIC_CAST numeric_cast
-#endif
-
-namespace boost { namespace mpl {
-
-// no default implementation; the definition is needed to make MSVC happy
-
-template< typename SourceTag, typename TargetTag > struct BOOST_MPL_AUX_NUMERIC_CAST
-{
-    template< typename N > struct apply;
-};
-
-}}
-
-#endif // BOOST_MPL_NUMERIC_CAST_HPP_INCLUDED
diff --git a/boost/mpl/or.hpp b/boost/mpl/or.hpp
deleted file mode 100644
index 16b42c1..0000000
--- a/boost/mpl/or.hpp
+++ /dev/null
@@ -1,61 +0,0 @@
-
-#ifndef BOOST_MPL_OR_HPP_INCLUDED
-#define BOOST_MPL_OR_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: or.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-#   include <boost/mpl/bool.hpp>
-#   include <boost/mpl/aux_/nested_type_wknd.hpp>
-#   include <boost/mpl/aux_/na_spec.hpp>
-#   include <boost/mpl/aux_/lambda_support.hpp>
-#   include <boost/mpl/aux_/config/msvc.hpp>
-
-// agurt, 19/may/04: workaround a conflict with <iso646.h> header's 
-// 'or' and 'and' macros, see http://tinyurl.com/3et69; 'defined(or)'
-// has to be checked in a separate condition, otherwise GCC complains 
-// about 'or' being an alternative token
-#if defined(_MSC_VER)
-#ifndef __GCCXML__
-#if defined(or)
-#   pragma push_macro("or")
-#   undef or
-#   define or(x)
-#endif
-#endif
-#endif
-
-#   define BOOST_MPL_PREPROCESSED_HEADER or.hpp
-#   include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#if defined(_MSC_VER) 
-#ifndef __GCCXML__
-#if defined(or)
-#   pragma pop_macro("or")
-#endif
-#endif
-#endif
-
-#else
-
-#   define AUX778076_OP_NAME or_
-#   define AUX778076_OP_VALUE1 true
-#   define AUX778076_OP_VALUE2 false
-#   include <boost/mpl/aux_/logical_op.hpp>
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_OR_HPP_INCLUDED
diff --git a/boost/mpl/pair.hpp b/boost/mpl/pair.hpp
deleted file mode 100644
index 9336ca1..0000000
--- a/boost/mpl/pair.hpp
+++ /dev/null
@@ -1,70 +0,0 @@
-
-#ifndef BOOST_MPL_PAIR_HPP_INCLUDED
-#define BOOST_MPL_PAIR_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: pair.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/msvc_eti_base.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-#include <boost/mpl/aux_/config/eti.hpp>
-
-namespace boost { namespace mpl {
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(T1)
-    , typename BOOST_MPL_AUX_NA_PARAM(T2)
-    >
-struct pair
-{
-    typedef pair type;
-    typedef T1 first;
-    typedef T2 second;
-
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2,pair,(T1,T2))
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(P)
-    >
-struct first
-{
-#if !defined(BOOST_MPL_CFG_MSVC_70_ETI_BUG)
-    typedef typename P::first type;
-#else
-    typedef typename aux::msvc_eti_base<P>::first type;
-#endif
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1,first,(P))
-};
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(P)
-    >
-struct second
-{
-#if !defined(BOOST_MPL_CFG_MSVC_70_ETI_BUG)
-    typedef typename P::second type;
-#else
-    typedef typename aux::msvc_eti_base<P>::second type;
-#endif
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1,second,(P))
-};
-
-
-BOOST_MPL_AUX_NA_SPEC_NO_ETI(2, pair)
-BOOST_MPL_AUX_NA_SPEC(1, first)
-BOOST_MPL_AUX_NA_SPEC(1, second)
-
-}}
-
-#endif // BOOST_MPL_PAIR_HPP_INCLUDED
diff --git a/boost/mpl/placeholders.hpp b/boost/mpl/placeholders.hpp
deleted file mode 100644
index 891a818..0000000
--- a/boost/mpl/placeholders.hpp
+++ /dev/null
@@ -1,100 +0,0 @@
-
-#if !defined(BOOST_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef BOOST_MPL_PLACEHOLDERS_HPP_INCLUDED
-#define BOOST_MPL_PLACEHOLDERS_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright Peter Dimov 2001-2003
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: placeholders.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-#   include <boost/mpl/arg.hpp>
-#   include <boost/mpl/aux_/adl_barrier.hpp>
-
-#   if !defined(BOOST_MPL_CFG_NO_ADL_BARRIER_NAMESPACE)
-#       define BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(type) \
-        using ::BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::type; \
-        /**/
-#   else
-#       define BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(type) /**/
-#   endif
-
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-#   define BOOST_MPL_PREPROCESSED_HEADER placeholders.hpp
-#   include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <boost/mpl/aux_/nttp_decl.hpp>
-#   include <boost/mpl/limits/arity.hpp>
-#   include <boost/preprocessor/iterate.hpp>
-#   include <boost/preprocessor/cat.hpp>
-
-// watch out for GNU gettext users, who #define _(x)
-#if !defined(_) || defined(BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT)
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-typedef arg<-1> _;
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-
-namespace boost { namespace mpl { 
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(_)
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::_;
-}
-
-}}
-#endif
-
-/// agurt, 17/mar/02: one more placeholder for the last 'apply#' 
-/// specialization
-#define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(1, BOOST_MPL_LIMIT_METAFUNCTION_ARITY + 1, <boost/mpl/placeholders.hpp>))
-#include BOOST_PP_ITERATE()
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_PLACEHOLDERS_HPP_INCLUDED
-
-///// iteration
-
-#else
-#define i_ BOOST_PP_FRAME_ITERATION(1)
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-
-typedef arg<i_> BOOST_PP_CAT(_,i_);
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-
-namespace boost { namespace mpl { 
-
-BOOST_MPL_AUX_ARG_ADL_BARRIER_DECL(BOOST_PP_CAT(_,i_))
-
-namespace placeholders {
-using BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE::BOOST_PP_CAT(_,i_);
-}
-
-}}
-
-#undef i_
-#endif // BOOST_PP_IS_ITERATING
diff --git a/boost/mpl/plus.hpp b/boost/mpl/plus.hpp
deleted file mode 100644
index 9f68c49..0000000
--- a/boost/mpl/plus.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-
-#ifndef BOOST_MPL_PLUS_HPP_INCLUDED
-#define BOOST_MPL_PLUS_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: plus.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#define AUX778076_OP_NAME plus
-#define AUX778076_OP_TOKEN +
-#include <boost/mpl/aux_/arithmetic_op.hpp>
-
-#endif // BOOST_MPL_PLUS_HPP_INCLUDED
diff --git a/boost/mpl/pop_back_fwd.hpp b/boost/mpl/pop_back_fwd.hpp
deleted file mode 100644
index c8209a7..0000000
--- a/boost/mpl/pop_back_fwd.hpp
+++ /dev/null
@@ -1,24 +0,0 @@
-
-#ifndef BOOST_MPL_POP_BACK_FWD_HPP_INCLUDED
-#define BOOST_MPL_POP_BACK_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: pop_back_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-namespace boost { namespace mpl {
-
-template< typename Tag > struct pop_back_impl;
-template< typename Sequence > struct pop_back;
-
-}}
-
-#endif // BOOST_MPL_POP_BACK_FWD_HPP_INCLUDED
diff --git a/boost/mpl/pop_front_fwd.hpp b/boost/mpl/pop_front_fwd.hpp
deleted file mode 100644
index eb78347..0000000
--- a/boost/mpl/pop_front_fwd.hpp
+++ /dev/null
@@ -1,24 +0,0 @@
-
-#ifndef BOOST_MPL_POP_FRONT_FWD_HPP_INCLUDED
-#define BOOST_MPL_POP_FRONT_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: pop_front_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-namespace boost { namespace mpl {
-
-template< typename Tag > struct pop_front_impl;
-template< typename Sequence > struct pop_front;
-
-}}
-
-#endif // BOOST_MPL_POP_FRONT_FWD_HPP_INCLUDED
diff --git a/boost/mpl/prior.hpp b/boost/mpl/prior.hpp
deleted file mode 100644
index b8f0dff..0000000
--- a/boost/mpl/prior.hpp
+++ /dev/null
@@ -1,19 +0,0 @@
-
-#ifndef BOOST_MPL_PRIOR_HPP_INCLUDED
-#define BOOST_MPL_PRIOR_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: prior.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/next_prior.hpp>
-
-#endif // BOOST_MPL_PRIOR_HPP_INCLUDED
diff --git a/boost/mpl/protect.hpp b/boost/mpl/protect.hpp
deleted file mode 100644
index e3daa4f..0000000
--- a/boost/mpl/protect.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-
-#ifndef BOOST_MPL_PROTECT_HPP_INCLUDED
-#define BOOST_MPL_PROTECT_HPP_INCLUDED
-
-// Copyright Peter Dimov 2001
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: protect.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/arity.hpp>
-#include <boost/mpl/aux_/config/dtp.hpp>
-#include <boost/mpl/aux_/nttp_decl.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-
-namespace boost { namespace mpl {
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(T)
-    , int not_le_ = 0
-    >
-struct protect : T
-{
-#if BOOST_WORKAROUND(__EDG_VERSION__, == 238)
-    typedef mpl::protect type;
-#else
-    typedef protect type;
-#endif
-};
-
-#if defined(BOOST_MPL_CFG_BROKEN_DEFAULT_PARAMETERS_IN_NESTED_TEMPLATES)
-namespace aux { 
-template< BOOST_MPL_AUX_NTTP_DECL(int, N), typename T >
-struct arity< protect<T>, N > 
-    : arity<T,N>
-{ 
-};
-} // namespace aux
-#endif
-
-BOOST_MPL_AUX_NA_SPEC_MAIN(1, protect)
-#if !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT)
-BOOST_MPL_AUX_NA_SPEC_TEMPLATE_ARITY(1, 1, protect)
-#endif
-
-}}
-
-#endif // BOOST_MPL_PROTECT_HPP_INCLUDED
diff --git a/boost/mpl/push_back.hpp b/boost/mpl/push_back.hpp
deleted file mode 100644
index 2e8ad06..0000000
--- a/boost/mpl/push_back.hpp
+++ /dev/null
@@ -1,53 +0,0 @@
-
-#ifndef BOOST_MPL_PUSH_BACK_HPP_INCLUDED
-#define BOOST_MPL_PUSH_BACK_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: push_back.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/push_back_fwd.hpp>
-#include <boost/mpl/aux_/push_back_impl.hpp>
-#include <boost/mpl/sequence_tag.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-
-namespace boost { namespace mpl {
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(Sequence)
-    , typename BOOST_MPL_AUX_NA_PARAM(T)
-    >
-struct push_back
-    : push_back_impl< typename sequence_tag<Sequence>::type >
-        ::template apply< Sequence,T >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2,push_back,(Sequence,T))
-};
-
-
-template< 
-      typename BOOST_MPL_AUX_NA_PARAM(Sequence)
-    >
-struct has_push_back
-    : has_push_back_impl< typename sequence_tag<Sequence>::type >
-        ::template apply< Sequence >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1,has_push_back,(Sequence))
-};
-
-
-BOOST_MPL_AUX_NA_SPEC(2, push_back)
-BOOST_MPL_AUX_NA_SPEC(1, has_push_back)
-
-}}
-
-#endif // BOOST_MPL_PUSH_BACK_HPP_INCLUDED
diff --git a/boost/mpl/push_back_fwd.hpp b/boost/mpl/push_back_fwd.hpp
deleted file mode 100644
index ef04ff5..0000000
--- a/boost/mpl/push_back_fwd.hpp
+++ /dev/null
@@ -1,24 +0,0 @@
-
-#ifndef BOOST_MPL_PUSH_BACK_FWD_HPP_INCLUDED
-#define BOOST_MPL_PUSH_BACK_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: push_back_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-namespace boost { namespace mpl {
-
-template< typename Tag > struct push_back_impl;
-template< typename Sequence, typename T > struct push_back;
-
-}}
-
-#endif // BOOST_MPL_PUSH_BACK_FWD_HPP_INCLUDED
diff --git a/boost/mpl/push_front.hpp b/boost/mpl/push_front.hpp
deleted file mode 100644
index ca943bb..0000000
--- a/boost/mpl/push_front.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-
-#ifndef BOOST_MPL_PUSH_FRONT_HPP_INCLUDED
-#define BOOST_MPL_PUSH_FRONT_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: push_front.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/push_front_fwd.hpp>
-#include <boost/mpl/aux_/push_front_impl.hpp>
-#include <boost/mpl/sequence_tag.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-
-namespace boost { namespace mpl {
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(Sequence)
-    , typename BOOST_MPL_AUX_NA_PARAM(T)
-    >
-struct push_front
-    : push_front_impl< typename sequence_tag<Sequence>::type >
-        ::template apply< Sequence,T >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2,push_front,(Sequence,T))
-};
-
-
-template< 
-      typename BOOST_MPL_AUX_NA_PARAM(Sequence)
-    >
-struct has_push_front
-    : has_push_front_impl< typename sequence_tag<Sequence>::type >
-        ::template apply< Sequence >
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1,has_push_front,(Sequence))
-};
-
-BOOST_MPL_AUX_NA_SPEC(2, push_front)
-BOOST_MPL_AUX_NA_SPEC(1, has_push_front)
-
-}}
-
-#endif // BOOST_MPL_PUSH_FRONT_HPP_INCLUDED
diff --git a/boost/mpl/push_front_fwd.hpp b/boost/mpl/push_front_fwd.hpp
deleted file mode 100644
index fa3667c..0000000
--- a/boost/mpl/push_front_fwd.hpp
+++ /dev/null
@@ -1,24 +0,0 @@
-
-#ifndef BOOST_MPL_PUSH_FRONT_FWD_HPP_INCLUDED
-#define BOOST_MPL_PUSH_FRONT_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: push_front_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-namespace boost { namespace mpl {
-
-template< typename Tag > struct push_front_impl;
-template< typename Sequence, typename T > struct push_front;
-
-}}
-
-#endif // BOOST_MPL_PUSH_FRONT_FWD_HPP_INCLUDED
diff --git a/boost/mpl/quote.hpp b/boost/mpl/quote.hpp
deleted file mode 100644
index 53b5712..0000000
--- a/boost/mpl/quote.hpp
+++ /dev/null
@@ -1,151 +0,0 @@
-
-#if !defined(BOOST_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef BOOST_MPL_QUOTE_HPP_INCLUDED
-#define BOOST_MPL_QUOTE_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2008
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: quote.hpp 49272 2008-10-11 06:50:46Z agurtovoy $
-// $Date: 2008-10-10 23:50:46 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49272 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-#   include <boost/mpl/void.hpp>
-#   include <boost/mpl/aux_/has_type.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/bcc.hpp>
-#include <boost/mpl/aux_/config/ttp.hpp>
-
-#if defined(BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS) \
-    && !defined(BOOST_MPL_CFG_BCC590_WORKAROUNDS)
-#   define BOOST_MPL_CFG_NO_QUOTE_TEMPLATE
-#endif
-
-#if !defined(BOOST_MPL_CFG_NO_IMPLICIT_METAFUNCTIONS) \
-    && defined(BOOST_MPL_CFG_NO_HAS_XXX)
-#   define BOOST_MPL_CFG_NO_IMPLICIT_METAFUNCTIONS
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-#   define BOOST_MPL_PREPROCESSED_HEADER quote.hpp
-#   include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <boost/mpl/limits/arity.hpp>
-#   include <boost/mpl/aux_/preprocessor/params.hpp>
-#   include <boost/mpl/aux_/config/ctps.hpp>
-#   include <boost/mpl/aux_/config/workaround.hpp>
-
-#   include <boost/preprocessor/iterate.hpp>
-#   include <boost/preprocessor/cat.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_QUOTE_TEMPLATE)
-
-namespace boost { namespace mpl {
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template< typename T, bool has_type_ >
-struct quote_impl
-// GCC has a problem with metafunction forwarding when T is a
-// specialization of a template called 'type'.
-# if BOOST_WORKAROUND(__GNUC__, BOOST_TESTED_AT(4)) \
-    && BOOST_WORKAROUND(__GNUC_MINOR__, BOOST_TESTED_AT(0)) \
-    && BOOST_WORKAROUND(__GNUC_PATCHLEVEL__, BOOST_TESTED_AT(2))
-{
-    typedef typename T::type type;
-};
-# else 
-    : T
-{
-};
-# endif 
-
-template< typename T >
-struct quote_impl<T,false>
-{
-    typedef T type;
-};
-
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-template< bool > struct quote_impl
-{
-    template< typename T > struct result_
-        : T
-    {
-    };
-};
-
-template<> struct quote_impl<false>
-{
-    template< typename T > struct result_
-    {
-        typedef T type;
-    };
-};
-
-#endif 
-
-#define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(1, BOOST_MPL_LIMIT_METAFUNCTION_ARITY, <boost/mpl/quote.hpp>))
-#include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_QUOTE_TEMPLATE
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_QUOTE_HPP_INCLUDED
-
-///// iteration
-
-#else
-#define i_ BOOST_PP_FRAME_ITERATION(1)
-
-template<
-      template< BOOST_MPL_PP_PARAMS(i_, typename P) > class F
-    , typename Tag = void_
-    >
-struct BOOST_PP_CAT(quote,i_)
-{
-    template< BOOST_MPL_PP_PARAMS(i_, typename U) > struct apply
-#if defined(BOOST_MPL_CFG_BCC590_WORKAROUNDS)
-    {
-        typedef typename quote_impl<
-              F< BOOST_MPL_PP_PARAMS(i_, U) >
-            , aux::has_type< F< BOOST_MPL_PP_PARAMS(i_, U) > >::value
-            >::type type;
-    };
-#elif !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-        : quote_impl<
-              F< BOOST_MPL_PP_PARAMS(i_, U) >
-            , aux::has_type< F< BOOST_MPL_PP_PARAMS(i_, U) > >::value
-            >
-    {
-    };
-#else
-        : quote_impl< aux::has_type< F< BOOST_MPL_PP_PARAMS(i_, U) > >::value >
-            ::template result_< F< BOOST_MPL_PP_PARAMS(i_, U) > >
-    {
-    };
-#endif
-};
-
-#undef i_
-#endif // BOOST_PP_IS_ITERATING
diff --git a/boost/mpl/remove_if.hpp b/boost/mpl/remove_if.hpp
deleted file mode 100644
index 1275bd4..0000000
--- a/boost/mpl/remove_if.hpp
+++ /dev/null
@@ -1,83 +0,0 @@
-
-#ifndef BOOST_MPL_REMOVE_IF_HPP_INCLUDED
-#define BOOST_MPL_REMOVE_IF_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-// Copyright David Abrahams 2003-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: remove_if.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/fold.hpp>
-#include <boost/mpl/reverse_fold.hpp>
-#include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/mpl/protect.hpp>
-#include <boost/mpl/lambda.hpp>
-#include <boost/mpl/apply.hpp>
-#include <boost/mpl/aux_/inserter_algorithm.hpp>
-
-namespace boost { namespace mpl {
-
-namespace aux {
-
-template< typename Pred, typename InsertOp > struct remove_if_helper
-{
-    template< typename Sequence, typename U > struct apply
-    {
-        typedef typename eval_if<
-              typename apply1<Pred,U>::type
-            , identity<Sequence>
-            , apply2<InsertOp,Sequence,U>
-            >::type type;
-    };
-};
-
-template<
-      typename Sequence
-    , typename Predicate
-    , typename Inserter
-    >
-struct remove_if_impl
-    : fold<
-          Sequence
-        , typename Inserter::state
-        , protect< aux::remove_if_helper<
-              typename lambda<Predicate>::type
-            , typename Inserter::operation
-            > >
-        >
-{
-};
-
-template<
-      typename Sequence
-    , typename Predicate
-    , typename Inserter
-    >
-struct reverse_remove_if_impl
-    : reverse_fold<
-          Sequence
-        , typename Inserter::state
-        , protect< aux::remove_if_helper<
-              typename lambda<Predicate>::type
-            , typename Inserter::operation
-            > >
-        >
-{
-};
-
-} // namespace aux
-
-BOOST_MPL_AUX_INSERTER_ALGORITHM_DEF(3, remove_if)
-
-}}
-
-#endif // BOOST_MPL_REMOVE_IF_HPP_INCLUDED
diff --git a/boost/mpl/reverse_fold.hpp b/boost/mpl/reverse_fold.hpp
deleted file mode 100644
index bcf3157..0000000
--- a/boost/mpl/reverse_fold.hpp
+++ /dev/null
@@ -1,50 +0,0 @@
-
-#ifndef BOOST_MPL_REVERSE_FOLD_HPP_INCLUDED
-#define BOOST_MPL_REVERSE_FOLD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-// Copyright David Abrahams 2001-2002
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: reverse_fold.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/begin_end.hpp>
-#include <boost/mpl/O1_size.hpp>
-#include <boost/mpl/arg.hpp>
-#include <boost/mpl/aux_/reverse_fold_impl.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-
-namespace boost { namespace mpl {
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(Sequence)
-    , typename BOOST_MPL_AUX_NA_PARAM(State)
-    , typename BOOST_MPL_AUX_NA_PARAM(BackwardOp)
-    , typename ForwardOp = arg<1>
-    >
-struct reverse_fold
-{
-    typedef typename aux::reverse_fold_impl<
-          ::boost::mpl::O1_size<Sequence>::value
-        , typename begin<Sequence>::type
-        , typename end<Sequence>::type
-        , State
-        , BackwardOp
-        , ForwardOp
-        >::state type;
-
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(3,reverse_fold,(Sequence,State,BackwardOp))
-};
-
-BOOST_MPL_AUX_NA_SPEC(3, reverse_fold)
-
-}}
-
-#endif // BOOST_MPL_REVERSE_FOLD_HPP_INCLUDED
diff --git a/boost/mpl/same_as.hpp b/boost/mpl/same_as.hpp
deleted file mode 100644
index c82cfd7..0000000
--- a/boost/mpl/same_as.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-
-#ifndef BOOST_MPL_SAME_AS_HPP_INCLUDED
-#define BOOST_MPL_SAME_AS_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: same_as.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/not.hpp>
-#include <boost/mpl/aux_/lambda_spec.hpp>
-#include <boost/mpl/aux_/config/forwarding.hpp>
-
-#include <boost/type_traits/is_same.hpp>
-
-namespace boost { namespace mpl {
-
-template< typename T1 >
-struct same_as
-{
-    template< typename T2 > struct apply
-#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING)
-        : is_same<T1,T2>
-    {
-#else
-    {
-        typedef typename is_same<T1,T2>::type type;
-#endif
-    };
-};
-
-template< typename T1 >
-struct not_same_as
-{
-    template< typename T2 > struct apply
-#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING)
-        : not_< is_same<T1,T2> >
-    {
-#else
-    {
-        typedef typename not_< is_same<T1,T2> >::type type;
-#endif
-    };
-};
-
-}}
-
-#endif // BOOST_MPL_SAME_AS_HPP_INCLUDED
diff --git a/boost/mpl/sequence_tag.hpp b/boost/mpl/sequence_tag.hpp
deleted file mode 100644
index 479175e..0000000
--- a/boost/mpl/sequence_tag.hpp
+++ /dev/null
@@ -1,124 +0,0 @@
-
-#ifndef BOOST_MPL_SEQUENCE_TAG_HPP_INCLUDED
-#define BOOST_MPL_SEQUENCE_TAG_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: sequence_tag.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/sequence_tag_fwd.hpp>
-#include <boost/mpl/aux_/has_tag.hpp>
-#include <boost/mpl/aux_/has_begin.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/is_msvc_eti_arg.hpp>
-#include <boost/mpl/aux_/config/eti.hpp>
-#include <boost/mpl/aux_/yes_no.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-namespace boost { namespace mpl {
-
-// agurt, 27/nov/02: have to use a simplistic 'sequence_tag' implementation
-// on MSVC to avoid dreadful "internal structure overflow" error
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) \
-    || defined(BOOST_MPL_CFG_NO_HAS_XXX)
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(Sequence)
-    >
-struct sequence_tag
-{
-    typedef typename Sequence::tag type;
-};
-
-#elif BOOST_WORKAROUND(BOOST_MSVC, == 1300)
-
-// agurt, 07/feb/03: workaround for what seems to be MSVC 7.0-specific ETI issue
-
-namespace aux {
-
-template< bool >
-struct sequence_tag_impl
-{
-    template< typename Sequence > struct result_
-    {
-        typedef typename Sequence::tag type;
-    };
-};
-
-template<>
-struct sequence_tag_impl<false>
-{
-    template< typename Sequence > struct result_
-    {
-        typedef int type;
-    };
-};
-
-} // namespace aux
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(Sequence)
-    >
-struct sequence_tag
-    : aux::sequence_tag_impl< !aux::is_msvc_eti_arg<Sequence>::value >
-        ::template result_<Sequence>
-{
-};
-
-#else
-
-namespace aux {
-
-template< bool has_tag_, bool has_begin_ >
-struct sequence_tag_impl
-{
-    // agurt 24/nov/02: MSVC 6.5 gets confused in 'sequence_tag_impl<true>' 
-    // specialization below, if we name it 'result_' here
-    template< typename Sequence > struct result2_;
-};
-
-#   define AUX_CLASS_SEQUENCE_TAG_SPEC(has_tag, has_begin, result_type) \
-template<> struct sequence_tag_impl<has_tag,has_begin> \
-{ \
-    template< typename Sequence > struct result2_ \
-    { \
-        typedef result_type type; \
-    }; \
-}; \
-/**/
-
-AUX_CLASS_SEQUENCE_TAG_SPEC(true, true, typename Sequence::tag)
-AUX_CLASS_SEQUENCE_TAG_SPEC(true, false, typename Sequence::tag)
-AUX_CLASS_SEQUENCE_TAG_SPEC(false, true, nested_begin_end_tag)
-AUX_CLASS_SEQUENCE_TAG_SPEC(false, false, non_sequence_tag)
-
-#   undef AUX_CLASS_SEQUENCE_TAG_SPEC
-
-} // namespace aux
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(Sequence)
-    >
-struct sequence_tag
-    : aux::sequence_tag_impl<
-          ::boost::mpl::aux::has_tag<Sequence>::value
-        , ::boost::mpl::aux::has_begin<Sequence>::value
-        >::template result2_<Sequence>
-{
-};
-
-#endif // BOOST_MSVC
-
-BOOST_MPL_AUX_NA_SPEC(1, sequence_tag)
-
-}}
-
-#endif // BOOST_MPL_SEQUENCE_TAG_HPP_INCLUDED
diff --git a/boost/mpl/sequence_tag_fwd.hpp b/boost/mpl/sequence_tag_fwd.hpp
deleted file mode 100644
index 07a6707..0000000
--- a/boost/mpl/sequence_tag_fwd.hpp
+++ /dev/null
@@ -1,26 +0,0 @@
-
-#ifndef BOOST_MPL_SEQUENCE_TAG_FWD_HPP_INCLUDED
-#define BOOST_MPL_SEQUENCE_TAG_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: sequence_tag_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-namespace boost { namespace mpl {
-
-struct nested_begin_end_tag;
-struct non_sequence_tag;
-
-template< typename Sequence > struct sequence_tag;
-
-}}
-
-#endif // BOOST_MPL_SEQUENCE_TAG_FWD_HPP_INCLUDED
diff --git a/boost/mpl/size.hpp b/boost/mpl/size.hpp
deleted file mode 100644
index 54b13cb..0000000
--- a/boost/mpl/size.hpp
+++ /dev/null
@@ -1,42 +0,0 @@
-
-#ifndef BOOST_MPL_SIZE_HPP_INCLUDED
-#define BOOST_MPL_SIZE_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: size.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/size_fwd.hpp>
-#include <boost/mpl/sequence_tag.hpp>
-#include <boost/mpl/aux_/size_impl.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-#include <boost/mpl/aux_/msvc_eti_base.hpp>
-
-namespace boost { namespace mpl {
-
-template<
-      typename BOOST_MPL_AUX_NA_PARAM(Sequence)
-    >
-struct size
-    : aux::msvc_eti_base<
-        typename size_impl< typename sequence_tag<Sequence>::type >
-            ::template apply< Sequence >::type
-      >::type
-{
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1, size, (Sequence))
-};
-
-BOOST_MPL_AUX_NA_SPEC(1, size)
-
-}}
-
-#endif // BOOST_MPL_SIZE_HPP_INCLUDED
diff --git a/boost/mpl/size_fwd.hpp b/boost/mpl/size_fwd.hpp
deleted file mode 100644
index 8702da7..0000000
--- a/boost/mpl/size_fwd.hpp
+++ /dev/null
@@ -1,24 +0,0 @@
-
-#ifndef BOOST_MPL_SIZE_FWD_HPP_INCLUDED
-#define BOOST_MPL_SIZE_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: size_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-namespace boost { namespace mpl {
-
-template< typename Tag > struct size_impl;
-template< typename Sequence > struct size;
-
-}}
-
-#endif // BOOST_MPL_SIZE_FWD_HPP_INCLUDED
diff --git a/boost/mpl/size_t.hpp b/boost/mpl/size_t.hpp
deleted file mode 100644
index 54a05c6..0000000
--- a/boost/mpl/size_t.hpp
+++ /dev/null
@@ -1,25 +0,0 @@
-
-#ifndef BOOST_MPL_SIZE_T_HPP_INCLUDED
-#define BOOST_MPL_SIZE_T_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: size_t.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/size_t_fwd.hpp>
-
-#define AUX_WRAPPER_VALUE_TYPE std::size_t
-#define AUX_WRAPPER_NAME size_t
-#define AUX_WRAPPER_PARAMS(N) std::size_t N
-
-#include <boost/mpl/aux_/integral_wrapper.hpp>
-
-#endif // BOOST_MPL_SIZE_T_HPP_INCLUDED
diff --git a/boost/mpl/size_t_fwd.hpp b/boost/mpl/size_t_fwd.hpp
deleted file mode 100644
index 396a521..0000000
--- a/boost/mpl/size_t_fwd.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-
-#ifndef BOOST_MPL_SIZE_T_FWD_HPP_INCLUDED
-#define BOOST_MPL_SIZE_T_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: size_t_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/adl_barrier.hpp>
-#include <boost/config.hpp> // make sure 'size_t' is placed into 'std'
-#include <cstddef>
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-
-template< std::size_t N > struct size_t;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-BOOST_MPL_AUX_ADL_BARRIER_DECL(size_t)
-
-#endif // BOOST_MPL_SIZE_T_FWD_HPP_INCLUDED
diff --git a/boost/mpl/tag.hpp b/boost/mpl/tag.hpp
deleted file mode 100644
index fc0aee2..0000000
--- a/boost/mpl/tag.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-
-#ifndef BOOST_MPL_TAG_HPP_INCLUDED
-#define BOOST_MPL_TAG_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: tag.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/void.hpp>
-#include <boost/mpl/aux_/has_tag.hpp>
-#include <boost/mpl/aux_/config/eti.hpp>
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template< typename T > struct tag_impl
-{
-    typedef typename T::tag type;
-};
-}
-
-template< typename T, typename Default = void_ > struct tag
-#if !defined(BOOST_MPL_CFG_MSVC_ETI_BUG)
-    : if_< 
-          aux::has_tag<T>
-        , aux::tag_impl<T>
-        , Default
-        >::type
-{
-#else
-{
-    typedef typename eval_if< 
-          aux::has_tag<T>
-        , aux::tag_impl<T>
-        , Default
-        >::type type;
-
-#endif
-};
-
-}}
-
-#endif // BOOST_MPL_TAG_HPP_INCLUDED
diff --git a/boost/mpl/times.hpp b/boost/mpl/times.hpp
deleted file mode 100644
index c73256d..0000000
--- a/boost/mpl/times.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-
-#ifndef BOOST_MPL_TIMES_HPP_INCLUDED
-#define BOOST_MPL_TIMES_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: times.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#define AUX778076_OP_NAME times
-#define AUX778076_OP_TOKEN *
-#include <boost/mpl/aux_/arithmetic_op.hpp>
-
-#endif // BOOST_MPL_TIMES_HPP_INCLUDED
diff --git a/boost/mpl/vector.hpp b/boost/mpl/vector.hpp
deleted file mode 100644
index 833f193..0000000
--- a/boost/mpl/vector.hpp
+++ /dev/null
@@ -1,57 +0,0 @@
-
-#ifndef BOOST_MPL_VECTOR_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: vector.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-#   include <boost/mpl/limits/vector.hpp>
-#   include <boost/mpl/aux_/na.hpp>
-#   include <boost/mpl/aux_/config/preprocessor.hpp>
-
-#   include <boost/preprocessor/inc.hpp>
-#   include <boost/preprocessor/cat.hpp>
-#   include <boost/preprocessor/stringize.hpp>
-
-#if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING)
-#   define AUX778076_VECTOR_HEADER \
-    BOOST_PP_CAT(vector, BOOST_MPL_LIMIT_VECTOR_SIZE).hpp \
-    /**/
-#else
-#   define AUX778076_VECTOR_HEADER \
-    BOOST_PP_CAT(vector, BOOST_MPL_LIMIT_VECTOR_SIZE)##.hpp \
-    /**/
-#endif
-
-#   include BOOST_PP_STRINGIZE(boost/mpl/vector/AUX778076_VECTOR_HEADER)
-#   undef AUX778076_VECTOR_HEADER
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-#   define BOOST_MPL_PREPROCESSED_HEADER vector.hpp
-#   include <boost/mpl/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <boost/mpl/limits/vector.hpp>
-
-#   define AUX778076_SEQUENCE_NAME vector
-#   define AUX778076_SEQUENCE_LIMIT BOOST_MPL_LIMIT_VECTOR_SIZE
-#   include <boost/mpl/aux_/sequence_wrapper.hpp>
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-#endif // BOOST_MPL_VECTOR_HPP_INCLUDED
diff --git a/boost/mpl/vector/aux_/O1_size.hpp b/boost/mpl/vector/aux_/O1_size.hpp
deleted file mode 100644
index 3ca8d21..0000000
--- a/boost/mpl/vector/aux_/O1_size.hpp
+++ /dev/null
@@ -1,56 +0,0 @@
-
-#ifndef BOOST_MPL_VECTOR_AUX_O1_SIZE_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_AUX_O1_SIZE_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: O1_size.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/O1_size_fwd.hpp>
-#include <boost/mpl/minus.hpp>
-#include <boost/mpl/long.hpp>
-#include <boost/mpl/vector/aux_/tag.hpp>
-#include <boost/mpl/aux_/config/typeof.hpp>
-#include <boost/mpl/aux_/config/ctps.hpp>
-
-namespace boost { namespace mpl {
-
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-
-template<>
-struct O1_size_impl< aux::vector_tag >
-{
-    template< typename Vector > struct apply
-        : Vector::size
-    {
-    };
-};
-
-#else
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template< long N >
-struct O1_size_impl< aux::vector_tag<N> >
-{
-    template< typename Vector > struct apply
-        : mpl::long_<N>
-    {
-    };
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
-
-}}
-
-#endif // BOOST_MPL_VECTOR_AUX_O1_SIZE_HPP_INCLUDED
diff --git a/boost/mpl/vector/aux_/at.hpp b/boost/mpl/vector/aux_/at.hpp
deleted file mode 100644
index 9da0595..0000000
--- a/boost/mpl/vector/aux_/at.hpp
+++ /dev/null
@@ -1,116 +0,0 @@
-
-#ifndef BOOST_MPL_VECTOR_AUX_AT_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_AUX_AT_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: at.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/at_fwd.hpp>
-#include <boost/mpl/vector/aux_/tag.hpp>
-#include <boost/mpl/long.hpp>
-#include <boost/mpl/void.hpp>
-#include <boost/mpl/aux_/nttp_decl.hpp>
-#include <boost/mpl/aux_/type_wrapper.hpp>
-#include <boost/mpl/aux_/value_wknd.hpp>
-#include <boost/mpl/aux_/config/typeof.hpp>
-#include <boost/mpl/aux_/config/ctps.hpp>
-
-namespace boost { namespace mpl {
-
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-
-template< typename Vector, long n_ >
-struct v_at_impl
-{
-    typedef long_< (Vector::lower_bound_::value + n_) > index_;
-    typedef __typeof__( Vector::item_(index_()) ) type;
-};
-
-
-template< typename Vector, long n_ >
-struct v_at
-    : aux::wrapped_type< typename v_at_impl<Vector,n_>::type >
-{
-};
-
-template<>
-struct at_impl< aux::vector_tag >
-{
-    template< typename Vector, typename N > struct apply
-        : v_at<
-              Vector
-            , BOOST_MPL_AUX_VALUE_WKND(N)::value
-            >
-    {
-    };
-};
-
-#else
-
-#   if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
-    && !defined(BOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC)
-
-template< typename Vector, BOOST_MPL_AUX_NTTP_DECL(long, n_) > struct v_at;
-
-template< BOOST_MPL_AUX_NTTP_DECL(long, n_) >
-struct at_impl< aux::vector_tag<n_> >
-{
-    template< typename Vector, typename N > struct apply
-#if !defined(__BORLANDC__)
-        : v_at<
-              Vector
-            , BOOST_MPL_AUX_VALUE_WKND(N)::value
-            >
-    {
-#else
-    {
-        typedef typename v_at<
-              Vector
-            , BOOST_MPL_AUX_VALUE_WKND(N)::value
-            >::type type;
-#endif
-    };
-};
-
-#   else
-
-namespace aux {
-
-template< BOOST_MPL_AUX_NTTP_DECL(long, n_) > struct v_at_impl
-{
-    template< typename V > struct result_;
-};
-
-// to work around ETI, etc.
-template<> struct v_at_impl<-1>
-{
-    template< typename V > struct result_
-    {
-        typedef void_ type;
-    };
-};
-
-} // namespace aux
-
-template< typename T, BOOST_MPL_AUX_NTTP_DECL(long, n_) >
-struct v_at
-    : aux::v_at_impl<n_>::template result_<T>
-{
-};
-
-#   endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
-
-}}
-
-#endif // BOOST_MPL_VECTOR_AUX_AT_HPP_INCLUDED
diff --git a/boost/mpl/vector/aux_/back.hpp b/boost/mpl/vector/aux_/back.hpp
deleted file mode 100644
index ce84c7a..0000000
--- a/boost/mpl/vector/aux_/back.hpp
+++ /dev/null
@@ -1,59 +0,0 @@
-
-#ifndef BOOST_MPL_VECTOR_AUX_BACK_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_AUX_BACK_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: back.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/back_fwd.hpp>
-#include <boost/mpl/next_prior.hpp>
-#include <boost/mpl/vector/aux_/at.hpp>
-#include <boost/mpl/vector/aux_/tag.hpp>
-#include <boost/mpl/aux_/config/typeof.hpp>
-#include <boost/mpl/aux_/config/ctps.hpp>
-
-namespace boost { namespace mpl {
-
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-
-template<>
-struct back_impl< aux::vector_tag >
-{
-    template< typename Vector > struct apply
-        : v_at<
-              Vector
-            , prior<typename Vector::size>::type::value
-            >
-    {
-    };
-};
-
-#else
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template< long n_ >
-struct back_impl< aux::vector_tag<n_> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
-
-}}
-
-#endif // BOOST_MPL_VECTOR_AUX_BACK_HPP_INCLUDED
diff --git a/boost/mpl/vector/aux_/begin_end.hpp b/boost/mpl/vector/aux_/begin_end.hpp
deleted file mode 100644
index d79ef9a..0000000
--- a/boost/mpl/vector/aux_/begin_end.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-
-#ifndef BOOST_MPL_VECTOR_AUX_BEGIN_END_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_AUX_BEGIN_END_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: begin_end.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/config/typeof.hpp>
-
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-
-#   include <boost/mpl/begin_end_fwd.hpp>
-#   include <boost/mpl/vector/aux_/iterator.hpp>
-#   include <boost/mpl/vector/aux_/tag.hpp>
-
-namespace boost { namespace mpl {
-
-template<>
-struct begin_impl< aux::vector_tag >
-{
-    template< typename Vector > struct apply
-    {
-        typedef v_iter<Vector,0> type;
-    };
-};
-
-template<>
-struct end_impl< aux::vector_tag >
-{
-    template< typename Vector > struct apply
-    {
-        typedef v_iter<Vector,Vector::size::value> type;
-    };
-};
-
-}}
-
-#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
-
-#endif // BOOST_MPL_VECTOR_AUX_BEGIN_END_HPP_INCLUDED
diff --git a/boost/mpl/vector/aux_/clear.hpp b/boost/mpl/vector/aux_/clear.hpp
deleted file mode 100644
index 3308518..0000000
--- a/boost/mpl/vector/aux_/clear.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-
-#ifndef BOOST_MPL_VECTOR_AUX_CLEAR_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_AUX_CLEAR_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: clear.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/clear_fwd.hpp>
-#include <boost/mpl/vector/aux_/vector0.hpp>
-#include <boost/mpl/vector/aux_/tag.hpp>
-#include <boost/mpl/aux_/config/typeof.hpp>
-#include <boost/mpl/aux_/config/ctps.hpp>
-
-namespace boost { namespace mpl {
-
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-
-template<>
-struct clear_impl< aux::vector_tag >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-#else
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template< long N >
-struct clear_impl< aux::vector_tag<N> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
-
-}}
-
-#endif // BOOST_MPL_VECTOR_AUX_CLEAR_HPP_INCLUDED
diff --git a/boost/mpl/vector/aux_/empty.hpp b/boost/mpl/vector/aux_/empty.hpp
deleted file mode 100644
index 84c8792..0000000
--- a/boost/mpl/vector/aux_/empty.hpp
+++ /dev/null
@@ -1,68 +0,0 @@
-
-#ifndef BOOST_MPL_VECTOR_AUX_EMPTY_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_AUX_EMPTY_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: empty.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/empty_fwd.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/vector/aux_/tag.hpp>
-#include <boost/mpl/aux_/config/typeof.hpp>
-#include <boost/mpl/aux_/config/ctps.hpp>
-#include <boost/type_traits/is_same.hpp>
-
-namespace boost { namespace mpl {
-
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-
-template<>
-struct empty_impl< aux::vector_tag >
-{
-    template< typename Vector > struct apply
-        : is_same<
-              typename Vector::lower_bound_
-            , typename Vector::upper_bound_
-            >
-    {
-    };
-};
-
-#else
-
-template<>
-struct empty_impl< aux::vector_tag<0> >
-{
-    template< typename Vector > struct apply
-        : true_
-    {
-    };
-};
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template< long N >
-struct empty_impl< aux::vector_tag<N> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
-
-}}
-
-#endif // BOOST_MPL_VECTOR_AUX_EMPTY_HPP_INCLUDED
diff --git a/boost/mpl/vector/aux_/front.hpp b/boost/mpl/vector/aux_/front.hpp
deleted file mode 100644
index ff2414e..0000000
--- a/boost/mpl/vector/aux_/front.hpp
+++ /dev/null
@@ -1,56 +0,0 @@
-
-#ifndef BOOST_MPL_VECTOR_AUX_FRONT_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_AUX_FRONT_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2008
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: front.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/front_fwd.hpp>
-#include <boost/mpl/vector/aux_/at.hpp>
-#include <boost/mpl/vector/aux_/tag.hpp>
-#include <boost/mpl/aux_/nttp_decl.hpp>
-#include <boost/mpl/aux_/config/typeof.hpp>
-#include <boost/mpl/aux_/config/ctps.hpp>
-
-namespace boost { namespace mpl {
-
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-
-template<>
-struct front_impl< aux::vector_tag >
-{
-    template< typename Vector > struct apply
-        : v_at<Vector,0>
-    {
-    };
-};
-
-#else
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template< BOOST_MPL_AUX_NTTP_DECL(long, n_) >
-struct front_impl< aux::vector_tag<n_> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
-
-}}
-
-#endif // BOOST_MPL_VECTOR_AUX_FRONT_HPP_INCLUDED
diff --git a/boost/mpl/vector/aux_/include_preprocessed.hpp b/boost/mpl/vector/aux_/include_preprocessed.hpp
deleted file mode 100644
index 5c16008..0000000
--- a/boost/mpl/vector/aux_/include_preprocessed.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-// Copyright Aleksey Gurtovoy 2000-2006
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: include_preprocessed.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/config/typeof.hpp>
-#include <boost/mpl/aux_/config/ctps.hpp>
-#include <boost/mpl/aux_/config/preprocessor.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-#include <boost/preprocessor/cat.hpp>
-#include <boost/preprocessor/stringize.hpp>
-
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-#   define AUX778076_INCLUDE_DIR typeof_based
-#elif defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
-   || defined(BOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC)
-#   define AUX778076_INCLUDE_DIR no_ctps
-#else
-#   define AUX778076_INCLUDE_DIR plain
-#endif
-
-#if !defined(BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING)
-#   define AUX778076_HEADER \
-    AUX778076_INCLUDE_DIR/BOOST_MPL_PREPROCESSED_HEADER \
-/**/
-#else
-#   define AUX778076_HEADER \
-    BOOST_PP_CAT(AUX778076_INCLUDE_DIR,/)##BOOST_MPL_PREPROCESSED_HEADER \
-/**/
-#endif
-
-
-#if BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(700))
-#   define AUX778076_INCLUDE_STRING BOOST_PP_STRINGIZE(boost/mpl/vector/aux_/preprocessed/AUX778076_HEADER)
-#   include AUX778076_INCLUDE_STRING
-#   undef AUX778076_INCLUDE_STRING
-#else
-#   include BOOST_PP_STRINGIZE(boost/mpl/vector/aux_/preprocessed/AUX778076_HEADER)
-#endif
-
-#   undef AUX778076_HEADER
-#   undef AUX778076_INCLUDE_DIR
-
-#undef BOOST_MPL_PREPROCESSED_HEADER
diff --git a/boost/mpl/vector/aux_/item.hpp b/boost/mpl/vector/aux_/item.hpp
deleted file mode 100644
index da2b01b..0000000
--- a/boost/mpl/vector/aux_/item.hpp
+++ /dev/null
@@ -1,103 +0,0 @@
-
-#ifndef BOOST_MPL_VECTOR_AUX_ITEM_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_AUX_ITEM_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: item.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/long.hpp>
-#include <boost/mpl/void.hpp>
-#include <boost/mpl/next_prior.hpp>
-#include <boost/mpl/aux_/type_wrapper.hpp>
-#include <boost/mpl/aux_/config/typeof.hpp>
-#include <boost/mpl/aux_/config/ctps.hpp>
-
-namespace boost { namespace mpl {
-
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-
-template< 
-      typename T
-    , typename Base
-    , int at_front = 0
-    >
-struct v_item
-    : Base
-{
-    typedef typename Base::upper_bound_ index_;
-    typedef typename next<index_>::type upper_bound_;
-    typedef typename next<typename Base::size>::type size;
-    typedef Base base;
-    typedef v_item type;
-
-    // agurt 10/sep/04: MWCW <= 9.3 workaround here and below; the compiler
-    // breaks if using declaration comes _before_ the new overload
-    static aux::type_wrapper<T> item_(index_);
-    using Base::item_;
-};
-
-template<
-      typename T
-    , typename Base
-    >
-struct v_item<T,Base,1>
-    : Base
-{
-    typedef typename prior<typename Base::lower_bound_>::type index_;
-    typedef index_ lower_bound_;
-    typedef typename next<typename Base::size>::type size;
-    typedef Base base;
-    typedef v_item type;
-
-    static aux::type_wrapper<T> item_(index_);
-    using Base::item_;
-};
-
-// "erasure" item
-template< 
-      typename Base
-    , int at_front
-    >
-struct v_mask
-    : Base
-{
-    typedef typename prior<typename Base::upper_bound_>::type index_;
-    typedef index_ upper_bound_;
-    typedef typename prior<typename Base::size>::type size;
-    typedef Base base;
-    typedef v_mask type;
-
-    static aux::type_wrapper<void_> item_(index_);
-    using Base::item_;
-};
-
-template< 
-      typename Base
-    >
-struct v_mask<Base,1>
-    : Base
-{
-    typedef typename Base::lower_bound_ index_;
-    typedef typename next<index_>::type lower_bound_;
-    typedef typename prior<typename Base::size>::type size;
-    typedef Base base;
-    typedef v_mask type;
-
-    static aux::type_wrapper<void_> item_(index_);
-    using Base::item_;
-};
-
-#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
-
-}}
-
-#endif // BOOST_MPL_VECTOR_AUX_ITEM_HPP_INCLUDED
diff --git a/boost/mpl/vector/aux_/iterator.hpp b/boost/mpl/vector/aux_/iterator.hpp
deleted file mode 100644
index 770ed15..0000000
--- a/boost/mpl/vector/aux_/iterator.hpp
+++ /dev/null
@@ -1,130 +0,0 @@
-
-#ifndef BOOST_MPL_AUX_VECTOR_ITERATOR_HPP_INCLUDED
-#define BOOST_MPL_AUX_VECTOR_ITERATOR_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: iterator.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/vector/aux_/at.hpp>
-#include <boost/mpl/iterator_tags.hpp>
-#include <boost/mpl/plus.hpp>
-#include <boost/mpl/minus.hpp>
-#include <boost/mpl/advance_fwd.hpp>
-#include <boost/mpl/distance_fwd.hpp>
-#include <boost/mpl/next.hpp>
-#include <boost/mpl/prior.hpp>
-#include <boost/mpl/aux_/nttp_decl.hpp>
-#include <boost/mpl/aux_/value_wknd.hpp>
-#include <boost/mpl/aux_/config/ctps.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-namespace boost { namespace mpl {
-
-template<
-      typename Vector
-    , BOOST_MPL_AUX_NTTP_DECL(long, n_)
-    >
-struct v_iter
-{
-    typedef aux::v_iter_tag tag;
-    typedef random_access_iterator_tag category;
-    typedef typename v_at<Vector,n_>::type type;
-
-    typedef Vector vector_;
-    typedef mpl::long_<n_> pos;
-
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-    enum { 
-          next_ = n_ + 1
-        , prior_ = n_ - 1
-        , pos_ = n_
-    };
-    
-    typedef v_iter<Vector,next_> next;
-    typedef v_iter<Vector,prior_> prior;
-#endif
-
-};
-
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template<
-      typename Vector
-    , BOOST_MPL_AUX_NTTP_DECL(long, n_)
-    >
-struct next< v_iter<Vector,n_> >
-{
-    typedef v_iter<Vector,(n_ + 1)> type;
-};
-
-template<
-      typename Vector
-    , BOOST_MPL_AUX_NTTP_DECL(long, n_)
-    >
-struct prior< v_iter<Vector,n_> >
-{
-    typedef v_iter<Vector,(n_ - 1)> type;
-};
-
-template<
-      typename Vector
-    , BOOST_MPL_AUX_NTTP_DECL(long, n_)
-    , typename Distance
-    >
-struct advance< v_iter<Vector,n_>,Distance>
-{
-    typedef v_iter<
-          Vector
-        , (n_ + BOOST_MPL_AUX_NESTED_VALUE_WKND(long, Distance))
-        > type;
-};
-
-template< 
-      typename Vector
-    , BOOST_MPL_AUX_NTTP_DECL(long, n_)
-    , BOOST_MPL_AUX_NTTP_DECL(long, m_)
-    > 
-struct distance< v_iter<Vector,n_>, v_iter<Vector,m_> >
-    : mpl::long_<(m_ - n_)>
-{
-};
-
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-template<> struct advance_impl<aux::v_iter_tag>
-{
-    template< typename Iterator, typename N > struct apply
-    {
-        enum { pos_ = Iterator::pos_, n_ = N::value };
-        typedef v_iter<
-              typename Iterator::vector_
-            , (pos_ + n_)
-            > type;
-    };
-};
-
-template<> struct distance_impl<aux::v_iter_tag>
-{
-    template< typename Iter1, typename Iter2 > struct apply
-    {
-        enum { pos1_ = Iter1::pos_, pos2_ = Iter2::pos_ };
-        typedef long_<( pos2_ - pos1_ )> type;
-        BOOST_STATIC_CONSTANT(long, value = ( pos2_ - pos1_ ));
-    };
-};
-
-#endif
-
-}}
-
-#endif // BOOST_MPL_AUX_VECTOR_ITERATOR_HPP_INCLUDED
diff --git a/boost/mpl/vector/aux_/numbered.hpp b/boost/mpl/vector/aux_/numbered.hpp
deleted file mode 100644
index 04265a3..0000000
--- a/boost/mpl/vector/aux_/numbered.hpp
+++ /dev/null
@@ -1,218 +0,0 @@
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-#if defined(BOOST_PP_IS_ITERATING)
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: numbered.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/preprocessor/enum_params.hpp>
-#include <boost/preprocessor/enum_shifted_params.hpp>
-#include <boost/preprocessor/comma_if.hpp>
-#include <boost/preprocessor/repeat.hpp>
-#include <boost/preprocessor/dec.hpp>
-#include <boost/preprocessor/cat.hpp>
-
-#define i_ BOOST_PP_FRAME_ITERATION(1)
-
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-
-#   define AUX778076_VECTOR_TAIL(vector, i_, T) \
-    BOOST_PP_CAT(vector,i_)< \
-          BOOST_PP_ENUM_PARAMS(i_, T) \
-        > \
-    /**/
-
-#if i_ > 0
-template<
-      BOOST_PP_ENUM_PARAMS(i_, typename T)
-    >
-struct BOOST_PP_CAT(vector,i_)
-    : v_item<
-          BOOST_PP_CAT(T,BOOST_PP_DEC(i_))
-        , AUX778076_VECTOR_TAIL(vector,BOOST_PP_DEC(i_),T)
-        >
-{
-    typedef BOOST_PP_CAT(vector,i_) type;
-};
-#endif
-
-#   undef AUX778076_VECTOR_TAIL
-
-#else // "brute force" implementation
-
-#   if i_ > 0
-
-template<
-      BOOST_PP_ENUM_PARAMS(i_, typename T)
-    >
-struct BOOST_PP_CAT(vector,i_)
-{
-    typedef aux::vector_tag<i_> tag;
-    typedef BOOST_PP_CAT(vector,i_) type;
-
-#   define AUX778076_VECTOR_ITEM(unused, i_, unused2) \
-    typedef BOOST_PP_CAT(T,i_) BOOST_PP_CAT(item,i_); \
-    /**/
-
-    BOOST_PP_REPEAT(i_, AUX778076_VECTOR_ITEM, unused)
-#   undef AUX778076_VECTOR_ITEM
-    typedef void_ BOOST_PP_CAT(item,i_);
-    typedef BOOST_PP_CAT(T,BOOST_PP_DEC(i_)) back;
-
-    // Borland forces us to use 'type' here (instead of the class name)
-    typedef v_iter<type,0> begin;
-    typedef v_iter<type,i_> end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<BOOST_PP_DEC(i_)> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef BOOST_PP_CAT(vector,i_)<
-              T
-              BOOST_PP_COMMA_IF(BOOST_PP_DEC(i_))
-              BOOST_PP_ENUM_PARAMS(BOOST_PP_DEC(i_), typename Vector::item)
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<i_> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef BOOST_PP_CAT(vector,BOOST_PP_DEC(i_))<
-              BOOST_PP_ENUM_SHIFTED_PARAMS(i_, typename Vector::item)
-            > type;
-    };
-};
-
-
-template<>
-struct push_back_impl< aux::vector_tag<BOOST_PP_DEC(i_)> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef BOOST_PP_CAT(vector,i_)<
-              BOOST_PP_ENUM_PARAMS(BOOST_PP_DEC(i_), typename Vector::item)
-              BOOST_PP_COMMA_IF(BOOST_PP_DEC(i_))
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<i_> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef BOOST_PP_CAT(vector,BOOST_PP_DEC(i_))<
-              BOOST_PP_ENUM_PARAMS(BOOST_PP_DEC(i_), typename Vector::item)
-            > type;
-    };
-};
-
-#   endif // i_ > 0
-
-#   if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
-    && !defined(BOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC)
-
-template< typename V >
-struct v_at<V,i_>
-{
-    typedef typename V::BOOST_PP_CAT(item,i_) type;
-};
-
-#   else
-
-namespace aux {
-template<> struct v_at_impl<i_>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::BOOST_PP_CAT(item,i_) type;
-    };
-};
-}
-
-template<>
-struct at_impl< aux::vector_tag<i_> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-#if i_ > 0
-template<>
-struct front_impl< aux::vector_tag<i_> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<i_> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<i_> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-#endif
-
-template<>
-struct size_impl< aux::vector_tag<i_> >
-{
-    template< typename Vector > struct apply
-        : long_<i_>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<i_> >
-    : size_impl< aux::vector_tag<i_> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<i_> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-#   endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
-
-#undef i_
-
-#endif // BOOST_PP_IS_ITERATING
diff --git a/boost/mpl/vector/aux_/numbered_c.hpp b/boost/mpl/vector/aux_/numbered_c.hpp
deleted file mode 100644
index 6a7cf40..0000000
--- a/boost/mpl/vector/aux_/numbered_c.hpp
+++ /dev/null
@@ -1,77 +0,0 @@
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-#if defined(BOOST_PP_IS_ITERATING)
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: numbered_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/preprocessor/enum_params.hpp>
-#include <boost/preprocessor/enum_shifted_params.hpp>
-#include <boost/preprocessor/comma_if.hpp>
-#include <boost/preprocessor/repeat.hpp>
-#include <boost/preprocessor/dec.hpp>
-#include <boost/preprocessor/cat.hpp>
-
-#define i_ BOOST_PP_FRAME_ITERATION(1)
-
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-
-#   define AUX778076_VECTOR_TAIL(vector, i_, C) \
-    BOOST_PP_CAT(BOOST_PP_CAT(vector,i_),_c)<T \
-          BOOST_PP_COMMA_IF(i_) BOOST_PP_ENUM_PARAMS(i_, C) \
-        > \
-    /**/
-
-#if i_ > 0
-template<
-      typename T
-    , BOOST_PP_ENUM_PARAMS(i_, T C)
-    >
-struct BOOST_PP_CAT(BOOST_PP_CAT(vector,i_),_c)
-    : v_item<
-          integral_c<T,BOOST_PP_CAT(C,BOOST_PP_DEC(i_))>
-        , AUX778076_VECTOR_TAIL(vector,BOOST_PP_DEC(i_),C)
-        >
-{
-    typedef BOOST_PP_CAT(BOOST_PP_CAT(vector,i_),_c) type;
-    typedef T value_type;
-};
-#endif
-
-#   undef AUX778076_VECTOR_TAIL
-
-#else // "brute force" implementation
-
-#   define AUX778076_VECTOR_C_PARAM_FUNC(unused, i_, param) \
-    BOOST_PP_COMMA_IF(i_) \
-    integral_c<T,BOOST_PP_CAT(param,i_)> \
-    /**/
-
-template<
-      typename T
-    , BOOST_PP_ENUM_PARAMS(i_, T C)
-    >
-struct BOOST_PP_CAT(BOOST_PP_CAT(vector,i_),_c)
-    : BOOST_PP_CAT(vector,i_)< BOOST_PP_REPEAT(i_,AUX778076_VECTOR_C_PARAM_FUNC,C) >
-{
-    typedef BOOST_PP_CAT(BOOST_PP_CAT(vector,i_),_c) type;
-    typedef T value_type;
-};
-
-#   undef AUX778076_VECTOR_C_PARAM_FUNC
-
-#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
-
-#undef i_
-
-#endif // BOOST_PP_IS_ITERATING
diff --git a/boost/mpl/vector/aux_/pop_back.hpp b/boost/mpl/vector/aux_/pop_back.hpp
deleted file mode 100644
index a43a3a6..0000000
--- a/boost/mpl/vector/aux_/pop_back.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-
-#ifndef BOOST_MPL_VECTOR_AUX_POP_BACK_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_AUX_POP_BACK_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: pop_back.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/pop_back_fwd.hpp>
-#include <boost/mpl/aux_/config/typeof.hpp>
-
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-
-#   include <boost/mpl/vector/aux_/item.hpp>
-#   include <boost/mpl/vector/aux_/tag.hpp>
-
-namespace boost { namespace mpl {
-
-template<>
-struct pop_back_impl< aux::vector_tag >
-{
-    template< typename Vector > struct apply
-    {
-        typedef v_mask<Vector,0> type;
-    };
-};
-
-}}
-
-#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
-
-#endif // BOOST_MPL_VECTOR_AUX_POP_BACK_HPP_INCLUDED
diff --git a/boost/mpl/vector/aux_/pop_front.hpp b/boost/mpl/vector/aux_/pop_front.hpp
deleted file mode 100644
index a448d25..0000000
--- a/boost/mpl/vector/aux_/pop_front.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-
-#ifndef BOOST_MPL_VECTOR_AUX_POP_FRONT_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_AUX_POP_FRONT_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: pop_front.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/pop_front_fwd.hpp>
-#include <boost/mpl/aux_/config/typeof.hpp>
-
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-
-#   include <boost/mpl/vector/aux_/item.hpp>
-#   include <boost/mpl/vector/aux_/tag.hpp>
-
-namespace boost { namespace mpl {
-
-template<>
-struct pop_front_impl< aux::vector_tag >
-{
-    template< typename Vector > struct apply
-    {
-        typedef v_mask<Vector,1> type;
-    };
-};
-
-}}
-
-#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
-
-#endif // BOOST_MPL_VECTOR_AUX_POP_FRONT_HPP_INCLUDED
diff --git a/boost/mpl/vector/aux_/preprocessed/no_ctps/vector10.hpp b/boost/mpl/vector/aux_/preprocessed/no_ctps/vector10.hpp
deleted file mode 100644
index c79a1ac..0000000
--- a/boost/mpl/vector/aux_/preprocessed/no_ctps/vector10.hpp
+++ /dev/null
@@ -1,1528 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/vector/vector10.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-namespace aux {
-template<> struct v_at_impl<0>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item0 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<0> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<0> >
-{
-    template< typename Vector > struct apply
-        : long_<0>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<0> >
-    : size_impl< aux::vector_tag<0> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<0> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0
-    >
-struct vector1
-{
-    typedef aux::vector_tag<1> tag;
-    typedef vector1 type;
-    typedef T0 item0;
-    typedef void_ item1;
-    typedef T0 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,1 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<0> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector1<
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<1> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<
-             
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<0> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector1<
-             
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<1> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<
-             
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<1>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item1 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<1> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<1> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<1> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<1> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<1> >
-{
-    template< typename Vector > struct apply
-        : long_<1>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<1> >
-    : size_impl< aux::vector_tag<1> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<1> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1
-    >
-struct vector2
-{
-    typedef aux::vector_tag<2> tag;
-    typedef vector2 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    
-
-    typedef void_ item2;
-    typedef T1 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,2 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<1> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector2<
-              T
-              ,
-              typename Vector::item0
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<2> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector1<
-              typename Vector::item1
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<1> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector2<
-              typename Vector::item0
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<2> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector1<
-              typename Vector::item0
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<2>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item2 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<2> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<2> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<2> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<2> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<2> >
-{
-    template< typename Vector > struct apply
-        : long_<2>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<2> >
-    : size_impl< aux::vector_tag<2> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<2> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct vector3
-{
-    typedef aux::vector_tag<3> tag;
-    typedef vector3 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    
-
-    typedef void_ item3;
-    typedef T2 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,3 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<2> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector3<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<3> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector2<
-              typename Vector::item1, typename Vector::item2
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<2> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector3<
-              typename Vector::item0, typename Vector::item1
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<3> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector2<
-              typename Vector::item0, typename Vector::item1
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<3>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item3 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<3> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<3> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<3> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<3> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<3> >
-{
-    template< typename Vector > struct apply
-        : long_<3>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<3> >
-    : size_impl< aux::vector_tag<3> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<3> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct vector4
-{
-    typedef aux::vector_tag<4> tag;
-    typedef vector4 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    
-
-    typedef void_ item4;
-    typedef T3 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,4 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<3> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector4<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<4> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector3<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<3> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector4<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<4> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector3<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<4>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item4 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<4> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<4> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<4> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<4> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<4> >
-{
-    template< typename Vector > struct apply
-        : long_<4>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<4> >
-    : size_impl< aux::vector_tag<4> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<4> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct vector5
-{
-    typedef aux::vector_tag<5> tag;
-    typedef vector5 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    
-
-    typedef void_ item5;
-    typedef T4 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,5 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<4> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector5<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<5> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector4<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<4> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector5<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<5> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector4<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<5>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item5 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<5> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<5> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<5> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<5> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<5> >
-{
-    template< typename Vector > struct apply
-        : long_<5>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<5> >
-    : size_impl< aux::vector_tag<5> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<5> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct vector6
-{
-    typedef aux::vector_tag<6> tag;
-    typedef vector6 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    
-
-    typedef void_ item6;
-    typedef T5 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,6 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<5> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector6<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<6> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector5<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<5> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector6<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<6> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector5<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<6>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item6 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<6> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<6> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<6> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<6> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<6> >
-{
-    template< typename Vector > struct apply
-        : long_<6>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<6> >
-    : size_impl< aux::vector_tag<6> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<6> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct vector7
-{
-    typedef aux::vector_tag<7> tag;
-    typedef vector7 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    
-
-    typedef void_ item7;
-    typedef T6 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,7 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<6> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector7<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<7> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector6<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<6> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector7<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<7> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector6<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<7>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item7 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<7> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<7> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<7> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<7> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<7> >
-{
-    template< typename Vector > struct apply
-        : long_<7>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<7> >
-    : size_impl< aux::vector_tag<7> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<7> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct vector8
-{
-    typedef aux::vector_tag<8> tag;
-    typedef vector8 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    
-
-    typedef void_ item8;
-    typedef T7 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,8 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<7> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector8<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<8> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector7<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<7> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector8<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<8> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector7<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<8>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item8 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<8> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<8> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<8> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<8> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<8> >
-{
-    template< typename Vector > struct apply
-        : long_<8>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<8> >
-    : size_impl< aux::vector_tag<8> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<8> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct vector9
-{
-    typedef aux::vector_tag<9> tag;
-    typedef vector9 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    
-
-    typedef void_ item9;
-    typedef T8 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,9 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<8> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector9<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<9> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector8<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<8> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector9<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<9> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector8<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<9>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item9 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<9> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<9> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<9> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<9> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<9> >
-{
-    template< typename Vector > struct apply
-        : long_<9>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<9> >
-    : size_impl< aux::vector_tag<9> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<9> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct vector10
-{
-    typedef aux::vector_tag<10> tag;
-    typedef vector10 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    
-
-    typedef void_ item10;
-    typedef T9 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,10 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<9> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector10<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<10> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector9<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<9> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector10<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<10> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector9<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<10>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item10 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<10> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<10> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<10> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<10> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<10> >
-{
-    template< typename Vector > struct apply
-        : long_<10>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<10> >
-    : size_impl< aux::vector_tag<10> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<10> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-}}
diff --git a/boost/mpl/vector/aux_/preprocessed/no_ctps/vector10_c.hpp b/boost/mpl/vector/aux_/preprocessed/no_ctps/vector10_c.hpp
deleted file mode 100644
index 8b36f6a..0000000
--- a/boost/mpl/vector/aux_/preprocessed/no_ctps/vector10_c.hpp
+++ /dev/null
@@ -1,149 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/vector/vector10_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T
-    , T C0
-    >
-struct vector1_c
-    : vector1< integral_c< T,C0 > >
-{
-    typedef vector1_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1
-    >
-struct vector2_c
-    : vector2< integral_c< T,C0 >, integral_c< T,C1 > >
-{
-    typedef vector2_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2
-    >
-struct vector3_c
-    : vector3< integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > >
-{
-    typedef vector3_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3
-    >
-struct vector4_c
-    : vector4<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >, integral_c<T
-        , C3> 
- >
-{
-    typedef vector4_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4
-    >
-struct vector5_c
-    : vector5<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 > 
- >
-{
-    typedef vector5_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5
-    >
-struct vector6_c
-    : vector6<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 > 
- >
-{
-    typedef vector6_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6
-    >
-struct vector7_c
-    : vector7<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c<T
-        , C6> 
- >
-{
-    typedef vector7_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7
-    >
-struct vector8_c
-    : vector8<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 > 
- >
-{
-    typedef vector8_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8
-    >
-struct vector9_c
-    : vector9<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 > 
- >
-{
-    typedef vector9_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9
-    >
-struct vector10_c
-    : vector10<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > 
- >
-{
-    typedef vector10_c type;
-    typedef T value_type;
-};
-
-}}
diff --git a/boost/mpl/vector/aux_/preprocessed/no_ctps/vector20.hpp b/boost/mpl/vector/aux_/preprocessed/no_ctps/vector20.hpp
deleted file mode 100644
index eb92a78..0000000
--- a/boost/mpl/vector/aux_/preprocessed/no_ctps/vector20.hpp
+++ /dev/null
@@ -1,1804 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/vector/vector20.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct vector11
-{
-    typedef aux::vector_tag<11> tag;
-    typedef vector11 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    
-
-    typedef void_ item11;
-    typedef T10 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,11 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<10> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector11<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<11> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector10<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<10> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector11<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<11> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector10<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<11>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item11 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<11> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<11> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<11> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<11> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<11> >
-{
-    template< typename Vector > struct apply
-        : long_<11>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<11> >
-    : size_impl< aux::vector_tag<11> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<11> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11
-    >
-struct vector12
-{
-    typedef aux::vector_tag<12> tag;
-    typedef vector12 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    
-
-    typedef void_ item12;
-    typedef T11 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,12 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<11> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector12<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<12> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector11<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<11> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector12<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<12> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector11<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<12>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item12 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<12> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<12> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<12> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<12> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<12> >
-{
-    template< typename Vector > struct apply
-        : long_<12>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<12> >
-    : size_impl< aux::vector_tag<12> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<12> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12
-    >
-struct vector13
-{
-    typedef aux::vector_tag<13> tag;
-    typedef vector13 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    
-
-    typedef void_ item13;
-    typedef T12 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,13 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<12> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector13<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<13> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector12<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<12> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector13<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<13> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector12<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<13>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item13 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<13> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<13> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<13> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<13> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<13> >
-{
-    template< typename Vector > struct apply
-        : long_<13>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<13> >
-    : size_impl< aux::vector_tag<13> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<13> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13
-    >
-struct vector14
-{
-    typedef aux::vector_tag<14> tag;
-    typedef vector14 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    
-
-    typedef void_ item14;
-    typedef T13 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,14 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<13> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector14<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<14> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector13<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<13> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector14<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<14> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector13<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<14>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item14 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<14> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<14> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<14> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<14> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<14> >
-{
-    template< typename Vector > struct apply
-        : long_<14>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<14> >
-    : size_impl< aux::vector_tag<14> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<14> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    >
-struct vector15
-{
-    typedef aux::vector_tag<15> tag;
-    typedef vector15 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    
-
-    typedef void_ item15;
-    typedef T14 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,15 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<14> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector15<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<15> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector14<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<14> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector15<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<15> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector14<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<15>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item15 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<15> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<15> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<15> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<15> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<15> >
-{
-    template< typename Vector > struct apply
-        : long_<15>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<15> >
-    : size_impl< aux::vector_tag<15> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<15> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15
-    >
-struct vector16
-{
-    typedef aux::vector_tag<16> tag;
-    typedef vector16 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    
-
-    typedef void_ item16;
-    typedef T15 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,16 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<15> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector16<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<16> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector15<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<15> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector16<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<16> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector15<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<16>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item16 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<16> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<16> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<16> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<16> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<16> >
-{
-    template< typename Vector > struct apply
-        : long_<16>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<16> >
-    : size_impl< aux::vector_tag<16> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<16> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16
-    >
-struct vector17
-{
-    typedef aux::vector_tag<17> tag;
-    typedef vector17 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    
-
-    typedef void_ item17;
-    typedef T16 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,17 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<16> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector17<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<17> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector16<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<16> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector17<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<17> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector16<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<17>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item17 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<17> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<17> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<17> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<17> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<17> >
-{
-    template< typename Vector > struct apply
-        : long_<17>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<17> >
-    : size_impl< aux::vector_tag<17> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<17> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17
-    >
-struct vector18
-{
-    typedef aux::vector_tag<18> tag;
-    typedef vector18 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    
-
-    typedef void_ item18;
-    typedef T17 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,18 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<17> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector18<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<18> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector17<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<17> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector18<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<18> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector17<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<18>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item18 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<18> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<18> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<18> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<18> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<18> >
-{
-    template< typename Vector > struct apply
-        : long_<18>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<18> >
-    : size_impl< aux::vector_tag<18> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<18> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18
-    >
-struct vector19
-{
-    typedef aux::vector_tag<19> tag;
-    typedef vector19 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    
-
-    typedef void_ item19;
-    typedef T18 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,19 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<18> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector19<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<19> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector18<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<18> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector19<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<19> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector18<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<19>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item19 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<19> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<19> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<19> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<19> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<19> >
-{
-    template< typename Vector > struct apply
-        : long_<19>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<19> >
-    : size_impl< aux::vector_tag<19> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<19> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct vector20
-{
-    typedef aux::vector_tag<20> tag;
-    typedef vector20 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    
-
-    typedef void_ item20;
-    typedef T19 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,20 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<19> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector20<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<20> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector19<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<19> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector20<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<20> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector19<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<20>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item20 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<20> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<20> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<20> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<20> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<20> >
-{
-    template< typename Vector > struct apply
-        : long_<20>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<20> >
-    : size_impl< aux::vector_tag<20> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<20> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-}}
diff --git a/boost/mpl/vector/aux_/preprocessed/no_ctps/vector20_c.hpp b/boost/mpl/vector/aux_/preprocessed/no_ctps/vector20_c.hpp
deleted file mode 100644
index 56ca53f..0000000
--- a/boost/mpl/vector/aux_/preprocessed/no_ctps/vector20_c.hpp
+++ /dev/null
@@ -1,195 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/vector/vector20_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    >
-struct vector11_c
-    : vector11<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >, integral_c<T
-        , C10> 
- >
-{
-    typedef vector11_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11
-    >
-struct vector12_c
-    : vector12<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 > 
- >
-{
-    typedef vector12_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12
-    >
-struct vector13_c
-    : vector13<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > 
- >
-{
-    typedef vector13_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13
-    >
-struct vector14_c
-    : vector14<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >, integral_c<T
-        , C13> 
- >
-{
-    typedef vector14_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14
-    >
-struct vector15_c
-    : vector15<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 > 
- >
-{
-    typedef vector15_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15
-    >
-struct vector16_c
-    : vector16<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > 
- >
-{
-    typedef vector16_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16
-    >
-struct vector17_c
-    : vector17<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >, integral_c<T
-        , C16> 
- >
-{
-    typedef vector17_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17
-    >
-struct vector18_c
-    : vector18<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 > 
- >
-{
-    typedef vector18_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18
-    >
-struct vector19_c
-    : vector19<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > 
- >
-{
-    typedef vector19_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19
-    >
-struct vector20_c
-    : vector20<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >, integral_c<T
-        , C19> 
- >
-{
-    typedef vector20_c type;
-    typedef T value_type;
-};
-
-}}
diff --git a/boost/mpl/vector/aux_/preprocessed/no_ctps/vector30.hpp b/boost/mpl/vector/aux_/preprocessed/no_ctps/vector30.hpp
deleted file mode 100644
index a685019..0000000
--- a/boost/mpl/vector/aux_/preprocessed/no_ctps/vector30.hpp
+++ /dev/null
@@ -1,2124 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/vector/vector30.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20
-    >
-struct vector21
-{
-    typedef aux::vector_tag<21> tag;
-    typedef vector21 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    
-
-    typedef void_ item21;
-    typedef T20 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,21 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<20> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector21<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<21> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector20<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<20> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector21<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<21> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector20<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<21>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item21 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<21> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<21> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<21> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<21> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<21> >
-{
-    template< typename Vector > struct apply
-        : long_<21>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<21> >
-    : size_impl< aux::vector_tag<21> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<21> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21
-    >
-struct vector22
-{
-    typedef aux::vector_tag<22> tag;
-    typedef vector22 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    
-
-    typedef void_ item22;
-    typedef T21 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,22 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<21> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector22<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<22> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector21<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<21> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector22<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<22> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector21<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<22>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item22 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<22> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<22> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<22> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<22> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<22> >
-{
-    template< typename Vector > struct apply
-        : long_<22>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<22> >
-    : size_impl< aux::vector_tag<22> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<22> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22
-    >
-struct vector23
-{
-    typedef aux::vector_tag<23> tag;
-    typedef vector23 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    
-
-    typedef void_ item23;
-    typedef T22 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,23 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<22> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector23<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<23> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector22<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<22> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector23<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<23> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector22<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<23>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item23 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<23> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<23> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<23> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<23> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<23> >
-{
-    template< typename Vector > struct apply
-        : long_<23>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<23> >
-    : size_impl< aux::vector_tag<23> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<23> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23
-    >
-struct vector24
-{
-    typedef aux::vector_tag<24> tag;
-    typedef vector24 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    
-
-    typedef void_ item24;
-    typedef T23 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,24 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<23> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector24<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<24> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector23<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<23> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector24<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<24> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector23<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<24>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item24 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<24> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<24> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<24> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<24> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<24> >
-{
-    template< typename Vector > struct apply
-        : long_<24>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<24> >
-    : size_impl< aux::vector_tag<24> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<24> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    >
-struct vector25
-{
-    typedef aux::vector_tag<25> tag;
-    typedef vector25 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    
-
-    typedef void_ item25;
-    typedef T24 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,25 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<24> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector25<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<25> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector24<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<24> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector25<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<25> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector24<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<25>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item25 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<25> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<25> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<25> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<25> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<25> >
-{
-    template< typename Vector > struct apply
-        : long_<25>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<25> >
-    : size_impl< aux::vector_tag<25> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<25> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25
-    >
-struct vector26
-{
-    typedef aux::vector_tag<26> tag;
-    typedef vector26 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    
-
-    typedef void_ item26;
-    typedef T25 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,26 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<25> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector26<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<26> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector25<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<25> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector26<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<26> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector25<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<26>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item26 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<26> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<26> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<26> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<26> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<26> >
-{
-    template< typename Vector > struct apply
-        : long_<26>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<26> >
-    : size_impl< aux::vector_tag<26> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<26> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26
-    >
-struct vector27
-{
-    typedef aux::vector_tag<27> tag;
-    typedef vector27 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    
-
-    typedef void_ item27;
-    typedef T26 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,27 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<26> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector27<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<27> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector26<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<26> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector27<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<27> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector26<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<27>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item27 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<27> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<27> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<27> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<27> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<27> >
-{
-    template< typename Vector > struct apply
-        : long_<27>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<27> >
-    : size_impl< aux::vector_tag<27> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<27> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27
-    >
-struct vector28
-{
-    typedef aux::vector_tag<28> tag;
-    typedef vector28 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    
-
-    typedef void_ item28;
-    typedef T27 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,28 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<27> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector28<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<28> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector27<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<27> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector28<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<28> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector27<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<28>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item28 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<28> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<28> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<28> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<28> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<28> >
-{
-    template< typename Vector > struct apply
-        : long_<28>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<28> >
-    : size_impl< aux::vector_tag<28> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<28> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28
-    >
-struct vector29
-{
-    typedef aux::vector_tag<29> tag;
-    typedef vector29 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    
-
-    typedef void_ item29;
-    typedef T28 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,29 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<28> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector29<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<29> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector28<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<28> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector29<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<29> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector28<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<29>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item29 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<29> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<29> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<29> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<29> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<29> >
-{
-    template< typename Vector > struct apply
-        : long_<29>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<29> >
-    : size_impl< aux::vector_tag<29> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<29> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    >
-struct vector30
-{
-    typedef aux::vector_tag<30> tag;
-    typedef vector30 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    
-
-    typedef void_ item30;
-    typedef T29 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,30 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<29> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector30<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<30> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector29<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<29> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector30<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<30> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector29<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<30>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item30 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<30> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<30> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<30> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<30> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<30> >
-{
-    template< typename Vector > struct apply
-        : long_<30>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<30> >
-    : size_impl< aux::vector_tag<30> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<30> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-}}
diff --git a/boost/mpl/vector/aux_/preprocessed/no_ctps/vector30_c.hpp b/boost/mpl/vector/aux_/preprocessed/no_ctps/vector30_c.hpp
deleted file mode 100644
index 6251dbc..0000000
--- a/boost/mpl/vector/aux_/preprocessed/no_ctps/vector30_c.hpp
+++ /dev/null
@@ -1,238 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/vector/vector30_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    >
-struct vector21_c
-    : vector21<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 > 
- >
-{
-    typedef vector21_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21
-    >
-struct vector22_c
-    : vector22<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > 
- >
-{
-    typedef vector22_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22
-    >
-struct vector23_c
-    : vector23<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >, integral_c<T
-        , C22> 
- >
-{
-    typedef vector23_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23
-    >
-struct vector24_c
-    : vector24<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 > 
- >
-{
-    typedef vector24_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24
-    >
-struct vector25_c
-    : vector25<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > 
- >
-{
-    typedef vector25_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25
-    >
-struct vector26_c
-    : vector26<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >, integral_c<T
-        , C25> 
- >
-{
-    typedef vector26_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26
-    >
-struct vector27_c
-    : vector27<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 > 
- >
-{
-    typedef vector27_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27
-    >
-struct vector28_c
-    : vector28<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 > 
- >
-{
-    typedef vector28_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28
-    >
-struct vector29_c
-    : vector29<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >, integral_c<T
-        , C28> 
- >
-{
-    typedef vector29_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29
-    >
-struct vector30_c
-    : vector30<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 > 
- >
-{
-    typedef vector30_c type;
-    typedef T value_type;
-};
-
-}}
diff --git a/boost/mpl/vector/aux_/preprocessed/no_ctps/vector40.hpp b/boost/mpl/vector/aux_/preprocessed/no_ctps/vector40.hpp
deleted file mode 100644
index 1ed648a..0000000
--- a/boost/mpl/vector/aux_/preprocessed/no_ctps/vector40.hpp
+++ /dev/null
@@ -1,2444 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/vector/vector40.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30
-    >
-struct vector31
-{
-    typedef aux::vector_tag<31> tag;
-    typedef vector31 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    
-
-    typedef void_ item31;
-    typedef T30 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,31 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<30> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector31<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<31> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector30<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<30> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector31<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<31> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector30<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<31>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item31 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<31> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<31> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<31> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<31> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<31> >
-{
-    template< typename Vector > struct apply
-        : long_<31>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<31> >
-    : size_impl< aux::vector_tag<31> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<31> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31
-    >
-struct vector32
-{
-    typedef aux::vector_tag<32> tag;
-    typedef vector32 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    
-
-    typedef void_ item32;
-    typedef T31 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,32 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<31> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector32<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<32> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector31<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<31> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector32<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<32> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector31<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<32>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item32 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<32> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<32> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<32> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<32> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<32> >
-{
-    template< typename Vector > struct apply
-        : long_<32>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<32> >
-    : size_impl< aux::vector_tag<32> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<32> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32
-    >
-struct vector33
-{
-    typedef aux::vector_tag<33> tag;
-    typedef vector33 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    
-
-    typedef void_ item33;
-    typedef T32 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,33 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<32> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector33<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<33> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector32<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<32> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector33<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<33> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector32<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<33>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item33 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<33> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<33> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<33> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<33> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<33> >
-{
-    template< typename Vector > struct apply
-        : long_<33>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<33> >
-    : size_impl< aux::vector_tag<33> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<33> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33
-    >
-struct vector34
-{
-    typedef aux::vector_tag<34> tag;
-    typedef vector34 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    
-
-    typedef void_ item34;
-    typedef T33 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,34 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<33> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector34<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<34> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector33<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<33> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector34<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<34> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector33<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<34>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item34 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<34> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<34> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<34> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<34> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<34> >
-{
-    template< typename Vector > struct apply
-        : long_<34>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<34> >
-    : size_impl< aux::vector_tag<34> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<34> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    >
-struct vector35
-{
-    typedef aux::vector_tag<35> tag;
-    typedef vector35 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    
-
-    typedef void_ item35;
-    typedef T34 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,35 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<34> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector35<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<35> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector34<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<34> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector35<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<35> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector34<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<35>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item35 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<35> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<35> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<35> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<35> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<35> >
-{
-    template< typename Vector > struct apply
-        : long_<35>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<35> >
-    : size_impl< aux::vector_tag<35> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<35> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35
-    >
-struct vector36
-{
-    typedef aux::vector_tag<36> tag;
-    typedef vector36 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    
-
-    typedef void_ item36;
-    typedef T35 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,36 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<35> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector36<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<36> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector35<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<35> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector36<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<36> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector35<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<36>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item36 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<36> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<36> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<36> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<36> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<36> >
-{
-    template< typename Vector > struct apply
-        : long_<36>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<36> >
-    : size_impl< aux::vector_tag<36> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<36> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36
-    >
-struct vector37
-{
-    typedef aux::vector_tag<37> tag;
-    typedef vector37 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    
-
-    typedef void_ item37;
-    typedef T36 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,37 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<36> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector37<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<37> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector36<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<36> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector37<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<37> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector36<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<37>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item37 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<37> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<37> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<37> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<37> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<37> >
-{
-    template< typename Vector > struct apply
-        : long_<37>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<37> >
-    : size_impl< aux::vector_tag<37> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<37> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36, typename T37
-    >
-struct vector38
-{
-    typedef aux::vector_tag<38> tag;
-    typedef vector38 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    typedef T37 item37;
-    
-
-    typedef void_ item38;
-    typedef T37 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,38 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<37> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector38<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<38> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector37<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            , typename Vector::item37
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<37> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector38<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<38> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector37<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<38>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item38 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<38> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<38> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<38> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<38> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<38> >
-{
-    template< typename Vector > struct apply
-        : long_<38>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<38> >
-    : size_impl< aux::vector_tag<38> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<38> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36, typename T37, typename T38
-    >
-struct vector39
-{
-    typedef aux::vector_tag<39> tag;
-    typedef vector39 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    typedef T37 item37;
-    typedef T38 item38;
-    
-
-    typedef void_ item39;
-    typedef T38 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,39 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<38> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector39<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<39> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector38<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            , typename Vector::item37, typename Vector::item38
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<38> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector39<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<39> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector38<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<39>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item39 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<39> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<39> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<39> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<39> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<39> >
-{
-    template< typename Vector > struct apply
-        : long_<39>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<39> >
-    : size_impl< aux::vector_tag<39> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<39> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36, typename T37, typename T38, typename T39
-    >
-struct vector40
-{
-    typedef aux::vector_tag<40> tag;
-    typedef vector40 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    typedef T37 item37;
-    typedef T38 item38;
-    typedef T39 item39;
-    
-
-    typedef void_ item40;
-    typedef T39 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,40 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<39> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector40<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<40> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector39<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            , typename Vector::item37, typename Vector::item38
-            , typename Vector::item39
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<39> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector40<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<40> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector39<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<40>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item40 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<40> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<40> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<40> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<40> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<40> >
-{
-    template< typename Vector > struct apply
-        : long_<40>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<40> >
-    : size_impl< aux::vector_tag<40> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<40> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-}}
diff --git a/boost/mpl/vector/aux_/preprocessed/no_ctps/vector40_c.hpp b/boost/mpl/vector/aux_/preprocessed/no_ctps/vector40_c.hpp
deleted file mode 100644
index ba0ffa8..0000000
--- a/boost/mpl/vector/aux_/preprocessed/no_ctps/vector40_c.hpp
+++ /dev/null
@@ -1,281 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/vector/vector40_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    >
-struct vector31_c
-    : vector31<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 > 
- >
-{
-    typedef vector31_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31
-    >
-struct vector32_c
-    : vector32<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >, integral_c<T
-        , C31> 
- >
-{
-    typedef vector32_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32
-    >
-struct vector33_c
-    : vector33<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 > 
- >
-{
-    typedef vector33_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33
-    >
-struct vector34_c
-    : vector34<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 > 
- >
-{
-    typedef vector34_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34
-    >
-struct vector35_c
-    : vector35<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >, integral_c<T
-        , C34> 
- >
-{
-    typedef vector35_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35
-    >
-struct vector36_c
-    : vector36<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 > 
- >
-{
-    typedef vector36_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36
-    >
-struct vector37_c
-    : vector37<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 > 
- >
-{
-    typedef vector37_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37
-    >
-struct vector38_c
-    : vector38<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >, integral_c<T
-        , C37> 
- >
-{
-    typedef vector38_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38
-    >
-struct vector39_c
-    : vector39<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
-        , integral_c< T,C37 >, integral_c< T,C38 > 
- >
-{
-    typedef vector39_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39
-    >
-struct vector40_c
-    : vector40<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
-        , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 > 
- >
-{
-    typedef vector40_c type;
-    typedef T value_type;
-};
-
-}}
diff --git a/boost/mpl/vector/aux_/preprocessed/no_ctps/vector50.hpp b/boost/mpl/vector/aux_/preprocessed/no_ctps/vector50.hpp
deleted file mode 100644
index 3da323a..0000000
--- a/boost/mpl/vector/aux_/preprocessed/no_ctps/vector50.hpp
+++ /dev/null
@@ -1,2764 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/vector/vector50.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36, typename T37, typename T38, typename T39
-    , typename T40
-    >
-struct vector41
-{
-    typedef aux::vector_tag<41> tag;
-    typedef vector41 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    typedef T37 item37;
-    typedef T38 item38;
-    typedef T39 item39;
-    typedef T40 item40;
-    
-
-    typedef void_ item41;
-    typedef T40 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,41 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<40> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector41<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<41> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector40<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            , typename Vector::item37, typename Vector::item38
-            , typename Vector::item39, typename Vector::item40
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<40> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector41<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<41> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector40<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<41>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item41 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<41> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<41> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<41> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<41> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<41> >
-{
-    template< typename Vector > struct apply
-        : long_<41>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<41> >
-    : size_impl< aux::vector_tag<41> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<41> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36, typename T37, typename T38, typename T39
-    , typename T40, typename T41
-    >
-struct vector42
-{
-    typedef aux::vector_tag<42> tag;
-    typedef vector42 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    typedef T37 item37;
-    typedef T38 item38;
-    typedef T39 item39;
-    typedef T40 item40;
-    typedef T41 item41;
-    
-
-    typedef void_ item42;
-    typedef T41 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,42 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<41> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector42<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<42> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector41<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            , typename Vector::item37, typename Vector::item38
-            , typename Vector::item39, typename Vector::item40
-            , typename Vector::item41
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<41> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector42<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<42> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector41<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<42>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item42 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<42> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<42> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<42> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<42> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<42> >
-{
-    template< typename Vector > struct apply
-        : long_<42>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<42> >
-    : size_impl< aux::vector_tag<42> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<42> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36, typename T37, typename T38, typename T39
-    , typename T40, typename T41, typename T42
-    >
-struct vector43
-{
-    typedef aux::vector_tag<43> tag;
-    typedef vector43 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    typedef T37 item37;
-    typedef T38 item38;
-    typedef T39 item39;
-    typedef T40 item40;
-    typedef T41 item41;
-    typedef T42 item42;
-    
-
-    typedef void_ item43;
-    typedef T42 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,43 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<42> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector43<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<43> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector42<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            , typename Vector::item37, typename Vector::item38
-            , typename Vector::item39, typename Vector::item40
-            , typename Vector::item41, typename Vector::item42
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<42> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector43<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<43> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector42<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<43>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item43 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<43> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<43> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<43> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<43> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<43> >
-{
-    template< typename Vector > struct apply
-        : long_<43>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<43> >
-    : size_impl< aux::vector_tag<43> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<43> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36, typename T37, typename T38, typename T39
-    , typename T40, typename T41, typename T42, typename T43
-    >
-struct vector44
-{
-    typedef aux::vector_tag<44> tag;
-    typedef vector44 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    typedef T37 item37;
-    typedef T38 item38;
-    typedef T39 item39;
-    typedef T40 item40;
-    typedef T41 item41;
-    typedef T42 item42;
-    typedef T43 item43;
-    
-
-    typedef void_ item44;
-    typedef T43 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,44 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<43> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector44<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<44> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector43<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            , typename Vector::item37, typename Vector::item38
-            , typename Vector::item39, typename Vector::item40
-            , typename Vector::item41, typename Vector::item42
-            , typename Vector::item43
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<43> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector44<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<44> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector43<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<44>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item44 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<44> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<44> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<44> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<44> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<44> >
-{
-    template< typename Vector > struct apply
-        : long_<44>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<44> >
-    : size_impl< aux::vector_tag<44> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<44> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36, typename T37, typename T38, typename T39
-    , typename T40, typename T41, typename T42, typename T43, typename T44
-    >
-struct vector45
-{
-    typedef aux::vector_tag<45> tag;
-    typedef vector45 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    typedef T37 item37;
-    typedef T38 item38;
-    typedef T39 item39;
-    typedef T40 item40;
-    typedef T41 item41;
-    typedef T42 item42;
-    typedef T43 item43;
-    typedef T44 item44;
-    
-
-    typedef void_ item45;
-    typedef T44 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,45 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<44> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector45<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<45> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector44<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            , typename Vector::item37, typename Vector::item38
-            , typename Vector::item39, typename Vector::item40
-            , typename Vector::item41, typename Vector::item42
-            , typename Vector::item43, typename Vector::item44
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<44> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector45<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<45> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector44<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<45>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item45 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<45> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<45> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<45> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<45> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<45> >
-{
-    template< typename Vector > struct apply
-        : long_<45>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<45> >
-    : size_impl< aux::vector_tag<45> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<45> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36, typename T37, typename T38, typename T39
-    , typename T40, typename T41, typename T42, typename T43, typename T44
-    , typename T45
-    >
-struct vector46
-{
-    typedef aux::vector_tag<46> tag;
-    typedef vector46 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    typedef T37 item37;
-    typedef T38 item38;
-    typedef T39 item39;
-    typedef T40 item40;
-    typedef T41 item41;
-    typedef T42 item42;
-    typedef T43 item43;
-    typedef T44 item44;
-    typedef T45 item45;
-    
-
-    typedef void_ item46;
-    typedef T45 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,46 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<45> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector46<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<46> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector45<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            , typename Vector::item37, typename Vector::item38
-            , typename Vector::item39, typename Vector::item40
-            , typename Vector::item41, typename Vector::item42
-            , typename Vector::item43, typename Vector::item44
-            , typename Vector::item45
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<45> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector46<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<46> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector45<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<46>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item46 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<46> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<46> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<46> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<46> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<46> >
-{
-    template< typename Vector > struct apply
-        : long_<46>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<46> >
-    : size_impl< aux::vector_tag<46> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<46> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36, typename T37, typename T38, typename T39
-    , typename T40, typename T41, typename T42, typename T43, typename T44
-    , typename T45, typename T46
-    >
-struct vector47
-{
-    typedef aux::vector_tag<47> tag;
-    typedef vector47 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    typedef T37 item37;
-    typedef T38 item38;
-    typedef T39 item39;
-    typedef T40 item40;
-    typedef T41 item41;
-    typedef T42 item42;
-    typedef T43 item43;
-    typedef T44 item44;
-    typedef T45 item45;
-    typedef T46 item46;
-    
-
-    typedef void_ item47;
-    typedef T46 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,47 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<46> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector47<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44, typename Vector::item45
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<47> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector46<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            , typename Vector::item37, typename Vector::item38
-            , typename Vector::item39, typename Vector::item40
-            , typename Vector::item41, typename Vector::item42
-            , typename Vector::item43, typename Vector::item44
-            , typename Vector::item45, typename Vector::item46
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<46> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector47<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44, typename Vector::item45
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<47> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector46<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44, typename Vector::item45
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<47>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item47 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<47> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<47> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<47> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<47> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<47> >
-{
-    template< typename Vector > struct apply
-        : long_<47>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<47> >
-    : size_impl< aux::vector_tag<47> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<47> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36, typename T37, typename T38, typename T39
-    , typename T40, typename T41, typename T42, typename T43, typename T44
-    , typename T45, typename T46, typename T47
-    >
-struct vector48
-{
-    typedef aux::vector_tag<48> tag;
-    typedef vector48 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    typedef T37 item37;
-    typedef T38 item38;
-    typedef T39 item39;
-    typedef T40 item40;
-    typedef T41 item41;
-    typedef T42 item42;
-    typedef T43 item43;
-    typedef T44 item44;
-    typedef T45 item45;
-    typedef T46 item46;
-    typedef T47 item47;
-    
-
-    typedef void_ item48;
-    typedef T47 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,48 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<47> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector48<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44, typename Vector::item45
-            , typename Vector::item46
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<48> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector47<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            , typename Vector::item37, typename Vector::item38
-            , typename Vector::item39, typename Vector::item40
-            , typename Vector::item41, typename Vector::item42
-            , typename Vector::item43, typename Vector::item44
-            , typename Vector::item45, typename Vector::item46
-            , typename Vector::item47
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<47> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector48<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44, typename Vector::item45
-            , typename Vector::item46
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<48> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector47<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44, typename Vector::item45
-            , typename Vector::item46
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<48>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item48 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<48> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<48> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<48> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<48> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<48> >
-{
-    template< typename Vector > struct apply
-        : long_<48>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<48> >
-    : size_impl< aux::vector_tag<48> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<48> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36, typename T37, typename T38, typename T39
-    , typename T40, typename T41, typename T42, typename T43, typename T44
-    , typename T45, typename T46, typename T47, typename T48
-    >
-struct vector49
-{
-    typedef aux::vector_tag<49> tag;
-    typedef vector49 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    typedef T37 item37;
-    typedef T38 item38;
-    typedef T39 item39;
-    typedef T40 item40;
-    typedef T41 item41;
-    typedef T42 item42;
-    typedef T43 item43;
-    typedef T44 item44;
-    typedef T45 item45;
-    typedef T46 item46;
-    typedef T47 item47;
-    typedef T48 item48;
-    
-
-    typedef void_ item49;
-    typedef T48 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,49 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<48> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector49<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44, typename Vector::item45
-            , typename Vector::item46, typename Vector::item47
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<49> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector48<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            , typename Vector::item37, typename Vector::item38
-            , typename Vector::item39, typename Vector::item40
-            , typename Vector::item41, typename Vector::item42
-            , typename Vector::item43, typename Vector::item44
-            , typename Vector::item45, typename Vector::item46
-            , typename Vector::item47, typename Vector::item48
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<48> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector49<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44, typename Vector::item45
-            , typename Vector::item46, typename Vector::item47
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<49> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector48<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44, typename Vector::item45
-            , typename Vector::item46, typename Vector::item47
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<49>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item49 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<49> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<49> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<49> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<49> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<49> >
-{
-    template< typename Vector > struct apply
-        : long_<49>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<49> >
-    : size_impl< aux::vector_tag<49> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<49> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36, typename T37, typename T38, typename T39
-    , typename T40, typename T41, typename T42, typename T43, typename T44
-    , typename T45, typename T46, typename T47, typename T48, typename T49
-    >
-struct vector50
-{
-    typedef aux::vector_tag<50> tag;
-    typedef vector50 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    typedef T37 item37;
-    typedef T38 item38;
-    typedef T39 item39;
-    typedef T40 item40;
-    typedef T41 item41;
-    typedef T42 item42;
-    typedef T43 item43;
-    typedef T44 item44;
-    typedef T45 item45;
-    typedef T46 item46;
-    typedef T47 item47;
-    typedef T48 item48;
-    typedef T49 item49;
-    
-
-    typedef void_ item50;
-    typedef T49 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,50 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<49> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector50<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44, typename Vector::item45
-            , typename Vector::item46, typename Vector::item47
-            , typename Vector::item48
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<50> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector49<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            , typename Vector::item37, typename Vector::item38
-            , typename Vector::item39, typename Vector::item40
-            , typename Vector::item41, typename Vector::item42
-            , typename Vector::item43, typename Vector::item44
-            , typename Vector::item45, typename Vector::item46
-            , typename Vector::item47, typename Vector::item48
-            , typename Vector::item49
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<49> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector50<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44, typename Vector::item45
-            , typename Vector::item46, typename Vector::item47
-            , typename Vector::item48
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<50> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector49<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44, typename Vector::item45
-            , typename Vector::item46, typename Vector::item47
-            , typename Vector::item48
-            > type;
-    };
-};
-
-namespace aux {
-template<> struct v_at_impl<50>
-{
-    template< typename V_ > struct result_
-    {
-        typedef typename V_::item50 type;
-    };
-};
-
-}
-
-template<>
-struct at_impl< aux::vector_tag<50> >
-{
-    template< typename V_, typename N > struct apply
-    {
-        typedef typename aux::v_at_impl<BOOST_MPL_AUX_VALUE_WKND(N)::value>
-            ::template result_<V_>::type type;
-    };
-};
-
-template<>
-struct front_impl< aux::vector_tag<50> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::item0 type;
-    };
-};
-
-template<>
-struct back_impl< aux::vector_tag<50> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef typename Vector::back type;
-    };
-};
-
-template<>
-struct empty_impl< aux::vector_tag<50> >
-{
-    template< typename Vector > struct apply
-        : false_
-    {
-    };
-};
-
-template<>
-struct size_impl< aux::vector_tag<50> >
-{
-    template< typename Vector > struct apply
-        : long_<50>
-    {
-    };
-};
-
-template<>
-struct O1_size_impl< aux::vector_tag<50> >
-    : size_impl< aux::vector_tag<50> >
-{
-};
-
-template<>
-struct clear_impl< aux::vector_tag<50> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<> type;
-    };
-};
-
-}}
diff --git a/boost/mpl/vector/aux_/preprocessed/no_ctps/vector50_c.hpp b/boost/mpl/vector/aux_/preprocessed/no_ctps/vector50_c.hpp
deleted file mode 100644
index e07f2b3..0000000
--- a/boost/mpl/vector/aux_/preprocessed/no_ctps/vector50_c.hpp
+++ /dev/null
@@ -1,325 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/vector/vector50_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    >
-struct vector41_c
-    : vector41<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
-        , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >, integral_c<T
-        , C40> 
- >
-{
-    typedef vector41_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41
-    >
-struct vector42_c
-    : vector42<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
-        , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
-        , integral_c< T,C40 >, integral_c< T,C41 > 
- >
-{
-    typedef vector42_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42
-    >
-struct vector43_c
-    : vector43<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
-        , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
-        , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 > 
- >
-{
-    typedef vector43_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43
-    >
-struct vector44_c
-    : vector44<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
-        , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
-        , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 >, integral_c<T
-        , C43> 
- >
-{
-    typedef vector44_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43, T C44
-    >
-struct vector45_c
-    : vector45<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
-        , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
-        , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 >
-        , integral_c< T,C43 >, integral_c< T,C44 > 
- >
-{
-    typedef vector45_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43, T C44, T C45
-    >
-struct vector46_c
-    : vector46<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
-        , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
-        , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 >
-        , integral_c< T,C43 >, integral_c< T,C44 >, integral_c< T,C45 > 
- >
-{
-    typedef vector46_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43, T C44, T C45, T C46
-    >
-struct vector47_c
-    : vector47<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
-        , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
-        , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 >
-        , integral_c< T,C43 >, integral_c< T,C44 >, integral_c< T,C45 >, integral_c<T
-        , C46> 
- >
-{
-    typedef vector47_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43, T C44, T C45, T C46, T C47
-    >
-struct vector48_c
-    : vector48<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
-        , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
-        , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 >
-        , integral_c< T,C43 >, integral_c< T,C44 >, integral_c< T,C45 >
-        , integral_c< T,C46 >, integral_c< T,C47 > 
- >
-{
-    typedef vector48_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48
-    >
-struct vector49_c
-    : vector49<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
-        , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
-        , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 >
-        , integral_c< T,C43 >, integral_c< T,C44 >, integral_c< T,C45 >
-        , integral_c< T,C46 >, integral_c< T,C47 >, integral_c< T,C48 > 
- >
-{
-    typedef vector49_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48, T C49
-    >
-struct vector50_c
-    : vector50<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
-        , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
-        , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 >
-        , integral_c< T,C43 >, integral_c< T,C44 >, integral_c< T,C45 >
-        , integral_c< T,C46 >, integral_c< T,C47 >, integral_c< T,C48 >, integral_c<T
-        , C49> 
- >
-{
-    typedef vector50_c type;
-    typedef T value_type;
-};
-
-}}
diff --git a/boost/mpl/vector/aux_/preprocessed/plain/vector10.hpp b/boost/mpl/vector/aux_/preprocessed/plain/vector10.hpp
deleted file mode 100644
index 88bbd3b..0000000
--- a/boost/mpl/vector/aux_/preprocessed/plain/vector10.hpp
+++ /dev/null
@@ -1,829 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/vector/vector10.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template< typename V >
-struct v_at< V,0 >
-{
-    typedef typename V::item0 type;
-};
-
-template<
-      typename T0
-    >
-struct vector1
-{
-    typedef aux::vector_tag<1> tag;
-    typedef vector1 type;
-    typedef T0 item0;
-    typedef void_ item1;
-    typedef T0 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,1 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<0> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector1<
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<1> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<
-             
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<0> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector1<
-             
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<1> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector0<
-             
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,1 >
-{
-    typedef typename V::item1 type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct vector2
-{
-    typedef aux::vector_tag<2> tag;
-    typedef vector2 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    
-
-    typedef void_ item2;
-    typedef T1 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,2 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<1> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector2<
-              T
-              ,
-              typename Vector::item0
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<2> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector1<
-              typename Vector::item1
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<1> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector2<
-              typename Vector::item0
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<2> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector1<
-              typename Vector::item0
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,2 >
-{
-    typedef typename V::item2 type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct vector3
-{
-    typedef aux::vector_tag<3> tag;
-    typedef vector3 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    
-
-    typedef void_ item3;
-    typedef T2 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,3 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<2> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector3<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<3> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector2<
-              typename Vector::item1, typename Vector::item2
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<2> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector3<
-              typename Vector::item0, typename Vector::item1
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<3> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector2<
-              typename Vector::item0, typename Vector::item1
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,3 >
-{
-    typedef typename V::item3 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct vector4
-{
-    typedef aux::vector_tag<4> tag;
-    typedef vector4 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    
-
-    typedef void_ item4;
-    typedef T3 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,4 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<3> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector4<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<4> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector3<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<3> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector4<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<4> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector3<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,4 >
-{
-    typedef typename V::item4 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct vector5
-{
-    typedef aux::vector_tag<5> tag;
-    typedef vector5 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    
-
-    typedef void_ item5;
-    typedef T4 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,5 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<4> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector5<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<5> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector4<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<4> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector5<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<5> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector4<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,5 >
-{
-    typedef typename V::item5 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct vector6
-{
-    typedef aux::vector_tag<6> tag;
-    typedef vector6 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    
-
-    typedef void_ item6;
-    typedef T5 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,6 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<5> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector6<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<6> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector5<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<5> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector6<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<6> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector5<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,6 >
-{
-    typedef typename V::item6 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct vector7
-{
-    typedef aux::vector_tag<7> tag;
-    typedef vector7 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    
-
-    typedef void_ item7;
-    typedef T6 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,7 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<6> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector7<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<7> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector6<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<6> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector7<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<7> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector6<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,7 >
-{
-    typedef typename V::item7 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct vector8
-{
-    typedef aux::vector_tag<8> tag;
-    typedef vector8 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    
-
-    typedef void_ item8;
-    typedef T7 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,8 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<7> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector8<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<8> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector7<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<7> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector8<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<8> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector7<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,8 >
-{
-    typedef typename V::item8 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct vector9
-{
-    typedef aux::vector_tag<9> tag;
-    typedef vector9 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    
-
-    typedef void_ item9;
-    typedef T8 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,9 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<8> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector9<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<9> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector8<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<8> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector9<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<9> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector8<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,9 >
-{
-    typedef typename V::item9 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct vector10
-{
-    typedef aux::vector_tag<10> tag;
-    typedef vector10 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    
-
-    typedef void_ item10;
-    typedef T9 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,10 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<9> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector10<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<10> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector9<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<9> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector10<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<10> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector9<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,10 >
-{
-    typedef typename V::item10 type;
-};
-
-}}
diff --git a/boost/mpl/vector/aux_/preprocessed/plain/vector10_c.hpp b/boost/mpl/vector/aux_/preprocessed/plain/vector10_c.hpp
deleted file mode 100644
index 8b36f6a..0000000
--- a/boost/mpl/vector/aux_/preprocessed/plain/vector10_c.hpp
+++ /dev/null
@@ -1,149 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/vector/vector10_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T
-    , T C0
-    >
-struct vector1_c
-    : vector1< integral_c< T,C0 > >
-{
-    typedef vector1_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1
-    >
-struct vector2_c
-    : vector2< integral_c< T,C0 >, integral_c< T,C1 > >
-{
-    typedef vector2_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2
-    >
-struct vector3_c
-    : vector3< integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 > >
-{
-    typedef vector3_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3
-    >
-struct vector4_c
-    : vector4<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >, integral_c<T
-        , C3> 
- >
-{
-    typedef vector4_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4
-    >
-struct vector5_c
-    : vector5<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 > 
- >
-{
-    typedef vector5_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5
-    >
-struct vector6_c
-    : vector6<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 > 
- >
-{
-    typedef vector6_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6
-    >
-struct vector7_c
-    : vector7<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c<T
-        , C6> 
- >
-{
-    typedef vector7_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7
-    >
-struct vector8_c
-    : vector8<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 > 
- >
-{
-    typedef vector8_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8
-    >
-struct vector9_c
-    : vector9<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 > 
- >
-{
-    typedef vector9_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9
-    >
-struct vector10_c
-    : vector10<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 > 
- >
-{
-    typedef vector10_c type;
-    typedef T value_type;
-};
-
-}}
diff --git a/boost/mpl/vector/aux_/preprocessed/plain/vector20.hpp b/boost/mpl/vector/aux_/preprocessed/plain/vector20.hpp
deleted file mode 100644
index 8c6c8bb..0000000
--- a/boost/mpl/vector/aux_/preprocessed/plain/vector20.hpp
+++ /dev/null
@@ -1,1144 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/vector/vector20.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct vector11
-{
-    typedef aux::vector_tag<11> tag;
-    typedef vector11 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    
-
-    typedef void_ item11;
-    typedef T10 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,11 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<10> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector11<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<11> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector10<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<10> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector11<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<11> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector10<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,11 >
-{
-    typedef typename V::item11 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11
-    >
-struct vector12
-{
-    typedef aux::vector_tag<12> tag;
-    typedef vector12 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    
-
-    typedef void_ item12;
-    typedef T11 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,12 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<11> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector12<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<12> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector11<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<11> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector12<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<12> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector11<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,12 >
-{
-    typedef typename V::item12 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12
-    >
-struct vector13
-{
-    typedef aux::vector_tag<13> tag;
-    typedef vector13 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    
-
-    typedef void_ item13;
-    typedef T12 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,13 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<12> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector13<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<13> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector12<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<12> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector13<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<13> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector12<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,13 >
-{
-    typedef typename V::item13 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13
-    >
-struct vector14
-{
-    typedef aux::vector_tag<14> tag;
-    typedef vector14 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    
-
-    typedef void_ item14;
-    typedef T13 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,14 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<13> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector14<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<14> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector13<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<13> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector14<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<14> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector13<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,14 >
-{
-    typedef typename V::item14 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    >
-struct vector15
-{
-    typedef aux::vector_tag<15> tag;
-    typedef vector15 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    
-
-    typedef void_ item15;
-    typedef T14 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,15 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<14> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector15<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<15> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector14<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<14> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector15<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<15> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector14<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,15 >
-{
-    typedef typename V::item15 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15
-    >
-struct vector16
-{
-    typedef aux::vector_tag<16> tag;
-    typedef vector16 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    
-
-    typedef void_ item16;
-    typedef T15 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,16 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<15> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector16<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<16> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector15<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<15> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector16<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<16> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector15<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,16 >
-{
-    typedef typename V::item16 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16
-    >
-struct vector17
-{
-    typedef aux::vector_tag<17> tag;
-    typedef vector17 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    
-
-    typedef void_ item17;
-    typedef T16 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,17 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<16> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector17<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<17> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector16<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<16> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector17<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<17> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector16<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,17 >
-{
-    typedef typename V::item17 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17
-    >
-struct vector18
-{
-    typedef aux::vector_tag<18> tag;
-    typedef vector18 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    
-
-    typedef void_ item18;
-    typedef T17 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,18 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<17> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector18<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<18> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector17<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<17> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector18<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<18> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector17<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,18 >
-{
-    typedef typename V::item18 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18
-    >
-struct vector19
-{
-    typedef aux::vector_tag<19> tag;
-    typedef vector19 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    
-
-    typedef void_ item19;
-    typedef T18 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,19 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<18> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector19<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<19> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector18<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<18> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector19<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<19> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector18<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,19 >
-{
-    typedef typename V::item19 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct vector20
-{
-    typedef aux::vector_tag<20> tag;
-    typedef vector20 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    
-
-    typedef void_ item20;
-    typedef T19 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,20 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<19> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector20<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<20> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector19<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<19> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector20<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<20> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector19<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,20 >
-{
-    typedef typename V::item20 type;
-};
-
-}}
diff --git a/boost/mpl/vector/aux_/preprocessed/plain/vector20_c.hpp b/boost/mpl/vector/aux_/preprocessed/plain/vector20_c.hpp
deleted file mode 100644
index 56ca53f..0000000
--- a/boost/mpl/vector/aux_/preprocessed/plain/vector20_c.hpp
+++ /dev/null
@@ -1,195 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/vector/vector20_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    >
-struct vector11_c
-    : vector11<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >, integral_c<T
-        , C10> 
- >
-{
-    typedef vector11_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11
-    >
-struct vector12_c
-    : vector12<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 > 
- >
-{
-    typedef vector12_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12
-    >
-struct vector13_c
-    : vector13<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 > 
- >
-{
-    typedef vector13_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13
-    >
-struct vector14_c
-    : vector14<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >, integral_c<T
-        , C13> 
- >
-{
-    typedef vector14_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14
-    >
-struct vector15_c
-    : vector15<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 > 
- >
-{
-    typedef vector15_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15
-    >
-struct vector16_c
-    : vector16<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 > 
- >
-{
-    typedef vector16_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16
-    >
-struct vector17_c
-    : vector17<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >, integral_c<T
-        , C16> 
- >
-{
-    typedef vector17_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17
-    >
-struct vector18_c
-    : vector18<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 > 
- >
-{
-    typedef vector18_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18
-    >
-struct vector19_c
-    : vector19<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 > 
- >
-{
-    typedef vector19_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19
-    >
-struct vector20_c
-    : vector20<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >, integral_c<T
-        , C19> 
- >
-{
-    typedef vector20_c type;
-    typedef T value_type;
-};
-
-}}
diff --git a/boost/mpl/vector/aux_/preprocessed/plain/vector30.hpp b/boost/mpl/vector/aux_/preprocessed/plain/vector30.hpp
deleted file mode 100644
index b7da8e7..0000000
--- a/boost/mpl/vector/aux_/preprocessed/plain/vector30.hpp
+++ /dev/null
@@ -1,1464 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/vector/vector30.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20
-    >
-struct vector21
-{
-    typedef aux::vector_tag<21> tag;
-    typedef vector21 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    
-
-    typedef void_ item21;
-    typedef T20 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,21 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<20> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector21<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<21> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector20<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<20> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector21<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<21> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector20<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,21 >
-{
-    typedef typename V::item21 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21
-    >
-struct vector22
-{
-    typedef aux::vector_tag<22> tag;
-    typedef vector22 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    
-
-    typedef void_ item22;
-    typedef T21 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,22 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<21> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector22<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<22> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector21<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<21> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector22<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<22> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector21<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,22 >
-{
-    typedef typename V::item22 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22
-    >
-struct vector23
-{
-    typedef aux::vector_tag<23> tag;
-    typedef vector23 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    
-
-    typedef void_ item23;
-    typedef T22 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,23 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<22> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector23<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<23> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector22<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<22> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector23<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<23> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector22<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,23 >
-{
-    typedef typename V::item23 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23
-    >
-struct vector24
-{
-    typedef aux::vector_tag<24> tag;
-    typedef vector24 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    
-
-    typedef void_ item24;
-    typedef T23 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,24 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<23> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector24<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<24> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector23<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<23> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector24<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<24> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector23<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,24 >
-{
-    typedef typename V::item24 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    >
-struct vector25
-{
-    typedef aux::vector_tag<25> tag;
-    typedef vector25 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    
-
-    typedef void_ item25;
-    typedef T24 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,25 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<24> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector25<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<25> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector24<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<24> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector25<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<25> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector24<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,25 >
-{
-    typedef typename V::item25 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25
-    >
-struct vector26
-{
-    typedef aux::vector_tag<26> tag;
-    typedef vector26 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    
-
-    typedef void_ item26;
-    typedef T25 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,26 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<25> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector26<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<26> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector25<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<25> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector26<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<26> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector25<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,26 >
-{
-    typedef typename V::item26 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26
-    >
-struct vector27
-{
-    typedef aux::vector_tag<27> tag;
-    typedef vector27 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    
-
-    typedef void_ item27;
-    typedef T26 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,27 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<26> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector27<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<27> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector26<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<26> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector27<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<27> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector26<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,27 >
-{
-    typedef typename V::item27 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27
-    >
-struct vector28
-{
-    typedef aux::vector_tag<28> tag;
-    typedef vector28 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    
-
-    typedef void_ item28;
-    typedef T27 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,28 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<27> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector28<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<28> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector27<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<27> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector28<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<28> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector27<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,28 >
-{
-    typedef typename V::item28 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28
-    >
-struct vector29
-{
-    typedef aux::vector_tag<29> tag;
-    typedef vector29 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    
-
-    typedef void_ item29;
-    typedef T28 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,29 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<28> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector29<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<29> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector28<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<28> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector29<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<29> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector28<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,29 >
-{
-    typedef typename V::item29 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    >
-struct vector30
-{
-    typedef aux::vector_tag<30> tag;
-    typedef vector30 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    
-
-    typedef void_ item30;
-    typedef T29 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,30 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<29> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector30<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<30> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector29<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<29> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector30<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<30> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector29<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,30 >
-{
-    typedef typename V::item30 type;
-};
-
-}}
diff --git a/boost/mpl/vector/aux_/preprocessed/plain/vector30_c.hpp b/boost/mpl/vector/aux_/preprocessed/plain/vector30_c.hpp
deleted file mode 100644
index 6251dbc..0000000
--- a/boost/mpl/vector/aux_/preprocessed/plain/vector30_c.hpp
+++ /dev/null
@@ -1,238 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/vector/vector30_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    >
-struct vector21_c
-    : vector21<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 > 
- >
-{
-    typedef vector21_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21
-    >
-struct vector22_c
-    : vector22<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 > 
- >
-{
-    typedef vector22_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22
-    >
-struct vector23_c
-    : vector23<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >, integral_c<T
-        , C22> 
- >
-{
-    typedef vector23_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23
-    >
-struct vector24_c
-    : vector24<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 > 
- >
-{
-    typedef vector24_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24
-    >
-struct vector25_c
-    : vector25<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 > 
- >
-{
-    typedef vector25_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25
-    >
-struct vector26_c
-    : vector26<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >, integral_c<T
-        , C25> 
- >
-{
-    typedef vector26_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26
-    >
-struct vector27_c
-    : vector27<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 > 
- >
-{
-    typedef vector27_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27
-    >
-struct vector28_c
-    : vector28<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 > 
- >
-{
-    typedef vector28_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28
-    >
-struct vector29_c
-    : vector29<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >, integral_c<T
-        , C28> 
- >
-{
-    typedef vector29_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29
-    >
-struct vector30_c
-    : vector30<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 > 
- >
-{
-    typedef vector30_c type;
-    typedef T value_type;
-};
-
-}}
diff --git a/boost/mpl/vector/aux_/preprocessed/plain/vector40.hpp b/boost/mpl/vector/aux_/preprocessed/plain/vector40.hpp
deleted file mode 100644
index 7487be4..0000000
--- a/boost/mpl/vector/aux_/preprocessed/plain/vector40.hpp
+++ /dev/null
@@ -1,1784 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/vector/vector40.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30
-    >
-struct vector31
-{
-    typedef aux::vector_tag<31> tag;
-    typedef vector31 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    
-
-    typedef void_ item31;
-    typedef T30 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,31 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<30> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector31<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<31> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector30<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<30> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector31<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<31> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector30<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,31 >
-{
-    typedef typename V::item31 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31
-    >
-struct vector32
-{
-    typedef aux::vector_tag<32> tag;
-    typedef vector32 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    
-
-    typedef void_ item32;
-    typedef T31 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,32 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<31> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector32<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<32> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector31<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<31> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector32<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<32> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector31<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,32 >
-{
-    typedef typename V::item32 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32
-    >
-struct vector33
-{
-    typedef aux::vector_tag<33> tag;
-    typedef vector33 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    
-
-    typedef void_ item33;
-    typedef T32 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,33 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<32> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector33<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<33> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector32<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<32> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector33<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<33> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector32<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,33 >
-{
-    typedef typename V::item33 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33
-    >
-struct vector34
-{
-    typedef aux::vector_tag<34> tag;
-    typedef vector34 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    
-
-    typedef void_ item34;
-    typedef T33 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,34 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<33> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector34<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<34> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector33<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<33> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector34<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<34> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector33<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,34 >
-{
-    typedef typename V::item34 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    >
-struct vector35
-{
-    typedef aux::vector_tag<35> tag;
-    typedef vector35 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    
-
-    typedef void_ item35;
-    typedef T34 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,35 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<34> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector35<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<35> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector34<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<34> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector35<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<35> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector34<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,35 >
-{
-    typedef typename V::item35 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35
-    >
-struct vector36
-{
-    typedef aux::vector_tag<36> tag;
-    typedef vector36 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    
-
-    typedef void_ item36;
-    typedef T35 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,36 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<35> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector36<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<36> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector35<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<35> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector36<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<36> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector35<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,36 >
-{
-    typedef typename V::item36 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36
-    >
-struct vector37
-{
-    typedef aux::vector_tag<37> tag;
-    typedef vector37 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    
-
-    typedef void_ item37;
-    typedef T36 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,37 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<36> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector37<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<37> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector36<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<36> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector37<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<37> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector36<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,37 >
-{
-    typedef typename V::item37 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36, typename T37
-    >
-struct vector38
-{
-    typedef aux::vector_tag<38> tag;
-    typedef vector38 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    typedef T37 item37;
-    
-
-    typedef void_ item38;
-    typedef T37 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,38 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<37> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector38<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<38> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector37<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            , typename Vector::item37
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<37> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector38<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<38> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector37<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,38 >
-{
-    typedef typename V::item38 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36, typename T37, typename T38
-    >
-struct vector39
-{
-    typedef aux::vector_tag<39> tag;
-    typedef vector39 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    typedef T37 item37;
-    typedef T38 item38;
-    
-
-    typedef void_ item39;
-    typedef T38 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,39 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<38> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector39<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<39> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector38<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            , typename Vector::item37, typename Vector::item38
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<38> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector39<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<39> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector38<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,39 >
-{
-    typedef typename V::item39 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36, typename T37, typename T38, typename T39
-    >
-struct vector40
-{
-    typedef aux::vector_tag<40> tag;
-    typedef vector40 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    typedef T37 item37;
-    typedef T38 item38;
-    typedef T39 item39;
-    
-
-    typedef void_ item40;
-    typedef T39 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,40 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<39> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector40<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<40> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector39<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            , typename Vector::item37, typename Vector::item38
-            , typename Vector::item39
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<39> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector40<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<40> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector39<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,40 >
-{
-    typedef typename V::item40 type;
-};
-
-}}
diff --git a/boost/mpl/vector/aux_/preprocessed/plain/vector40_c.hpp b/boost/mpl/vector/aux_/preprocessed/plain/vector40_c.hpp
deleted file mode 100644
index ba0ffa8..0000000
--- a/boost/mpl/vector/aux_/preprocessed/plain/vector40_c.hpp
+++ /dev/null
@@ -1,281 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/vector/vector40_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    >
-struct vector31_c
-    : vector31<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 > 
- >
-{
-    typedef vector31_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31
-    >
-struct vector32_c
-    : vector32<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >, integral_c<T
-        , C31> 
- >
-{
-    typedef vector32_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32
-    >
-struct vector33_c
-    : vector33<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 > 
- >
-{
-    typedef vector33_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33
-    >
-struct vector34_c
-    : vector34<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 > 
- >
-{
-    typedef vector34_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34
-    >
-struct vector35_c
-    : vector35<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >, integral_c<T
-        , C34> 
- >
-{
-    typedef vector35_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35
-    >
-struct vector36_c
-    : vector36<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 > 
- >
-{
-    typedef vector36_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36
-    >
-struct vector37_c
-    : vector37<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 > 
- >
-{
-    typedef vector37_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37
-    >
-struct vector38_c
-    : vector38<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >, integral_c<T
-        , C37> 
- >
-{
-    typedef vector38_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38
-    >
-struct vector39_c
-    : vector39<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
-        , integral_c< T,C37 >, integral_c< T,C38 > 
- >
-{
-    typedef vector39_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39
-    >
-struct vector40_c
-    : vector40<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
-        , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 > 
- >
-{
-    typedef vector40_c type;
-    typedef T value_type;
-};
-
-}}
diff --git a/boost/mpl/vector/aux_/preprocessed/plain/vector50.hpp b/boost/mpl/vector/aux_/preprocessed/plain/vector50.hpp
deleted file mode 100644
index 5a4c6d7..0000000
--- a/boost/mpl/vector/aux_/preprocessed/plain/vector50.hpp
+++ /dev/null
@@ -1,2104 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/vector/vector50.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36, typename T37, typename T38, typename T39
-    , typename T40
-    >
-struct vector41
-{
-    typedef aux::vector_tag<41> tag;
-    typedef vector41 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    typedef T37 item37;
-    typedef T38 item38;
-    typedef T39 item39;
-    typedef T40 item40;
-    
-
-    typedef void_ item41;
-    typedef T40 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,41 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<40> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector41<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<41> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector40<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            , typename Vector::item37, typename Vector::item38
-            , typename Vector::item39, typename Vector::item40
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<40> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector41<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<41> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector40<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,41 >
-{
-    typedef typename V::item41 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36, typename T37, typename T38, typename T39
-    , typename T40, typename T41
-    >
-struct vector42
-{
-    typedef aux::vector_tag<42> tag;
-    typedef vector42 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    typedef T37 item37;
-    typedef T38 item38;
-    typedef T39 item39;
-    typedef T40 item40;
-    typedef T41 item41;
-    
-
-    typedef void_ item42;
-    typedef T41 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,42 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<41> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector42<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<42> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector41<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            , typename Vector::item37, typename Vector::item38
-            , typename Vector::item39, typename Vector::item40
-            , typename Vector::item41
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<41> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector42<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<42> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector41<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,42 >
-{
-    typedef typename V::item42 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36, typename T37, typename T38, typename T39
-    , typename T40, typename T41, typename T42
-    >
-struct vector43
-{
-    typedef aux::vector_tag<43> tag;
-    typedef vector43 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    typedef T37 item37;
-    typedef T38 item38;
-    typedef T39 item39;
-    typedef T40 item40;
-    typedef T41 item41;
-    typedef T42 item42;
-    
-
-    typedef void_ item43;
-    typedef T42 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,43 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<42> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector43<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<43> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector42<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            , typename Vector::item37, typename Vector::item38
-            , typename Vector::item39, typename Vector::item40
-            , typename Vector::item41, typename Vector::item42
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<42> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector43<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<43> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector42<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,43 >
-{
-    typedef typename V::item43 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36, typename T37, typename T38, typename T39
-    , typename T40, typename T41, typename T42, typename T43
-    >
-struct vector44
-{
-    typedef aux::vector_tag<44> tag;
-    typedef vector44 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    typedef T37 item37;
-    typedef T38 item38;
-    typedef T39 item39;
-    typedef T40 item40;
-    typedef T41 item41;
-    typedef T42 item42;
-    typedef T43 item43;
-    
-
-    typedef void_ item44;
-    typedef T43 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,44 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<43> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector44<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<44> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector43<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            , typename Vector::item37, typename Vector::item38
-            , typename Vector::item39, typename Vector::item40
-            , typename Vector::item41, typename Vector::item42
-            , typename Vector::item43
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<43> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector44<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<44> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector43<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,44 >
-{
-    typedef typename V::item44 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36, typename T37, typename T38, typename T39
-    , typename T40, typename T41, typename T42, typename T43, typename T44
-    >
-struct vector45
-{
-    typedef aux::vector_tag<45> tag;
-    typedef vector45 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    typedef T37 item37;
-    typedef T38 item38;
-    typedef T39 item39;
-    typedef T40 item40;
-    typedef T41 item41;
-    typedef T42 item42;
-    typedef T43 item43;
-    typedef T44 item44;
-    
-
-    typedef void_ item45;
-    typedef T44 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,45 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<44> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector45<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<45> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector44<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            , typename Vector::item37, typename Vector::item38
-            , typename Vector::item39, typename Vector::item40
-            , typename Vector::item41, typename Vector::item42
-            , typename Vector::item43, typename Vector::item44
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<44> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector45<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<45> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector44<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,45 >
-{
-    typedef typename V::item45 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36, typename T37, typename T38, typename T39
-    , typename T40, typename T41, typename T42, typename T43, typename T44
-    , typename T45
-    >
-struct vector46
-{
-    typedef aux::vector_tag<46> tag;
-    typedef vector46 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    typedef T37 item37;
-    typedef T38 item38;
-    typedef T39 item39;
-    typedef T40 item40;
-    typedef T41 item41;
-    typedef T42 item42;
-    typedef T43 item43;
-    typedef T44 item44;
-    typedef T45 item45;
-    
-
-    typedef void_ item46;
-    typedef T45 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,46 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<45> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector46<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<46> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector45<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            , typename Vector::item37, typename Vector::item38
-            , typename Vector::item39, typename Vector::item40
-            , typename Vector::item41, typename Vector::item42
-            , typename Vector::item43, typename Vector::item44
-            , typename Vector::item45
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<45> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector46<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<46> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector45<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,46 >
-{
-    typedef typename V::item46 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36, typename T37, typename T38, typename T39
-    , typename T40, typename T41, typename T42, typename T43, typename T44
-    , typename T45, typename T46
-    >
-struct vector47
-{
-    typedef aux::vector_tag<47> tag;
-    typedef vector47 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    typedef T37 item37;
-    typedef T38 item38;
-    typedef T39 item39;
-    typedef T40 item40;
-    typedef T41 item41;
-    typedef T42 item42;
-    typedef T43 item43;
-    typedef T44 item44;
-    typedef T45 item45;
-    typedef T46 item46;
-    
-
-    typedef void_ item47;
-    typedef T46 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,47 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<46> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector47<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44, typename Vector::item45
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<47> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector46<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            , typename Vector::item37, typename Vector::item38
-            , typename Vector::item39, typename Vector::item40
-            , typename Vector::item41, typename Vector::item42
-            , typename Vector::item43, typename Vector::item44
-            , typename Vector::item45, typename Vector::item46
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<46> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector47<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44, typename Vector::item45
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<47> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector46<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44, typename Vector::item45
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,47 >
-{
-    typedef typename V::item47 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36, typename T37, typename T38, typename T39
-    , typename T40, typename T41, typename T42, typename T43, typename T44
-    , typename T45, typename T46, typename T47
-    >
-struct vector48
-{
-    typedef aux::vector_tag<48> tag;
-    typedef vector48 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    typedef T37 item37;
-    typedef T38 item38;
-    typedef T39 item39;
-    typedef T40 item40;
-    typedef T41 item41;
-    typedef T42 item42;
-    typedef T43 item43;
-    typedef T44 item44;
-    typedef T45 item45;
-    typedef T46 item46;
-    typedef T47 item47;
-    
-
-    typedef void_ item48;
-    typedef T47 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,48 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<47> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector48<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44, typename Vector::item45
-            , typename Vector::item46
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<48> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector47<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            , typename Vector::item37, typename Vector::item38
-            , typename Vector::item39, typename Vector::item40
-            , typename Vector::item41, typename Vector::item42
-            , typename Vector::item43, typename Vector::item44
-            , typename Vector::item45, typename Vector::item46
-            , typename Vector::item47
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<47> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector48<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44, typename Vector::item45
-            , typename Vector::item46
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<48> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector47<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44, typename Vector::item45
-            , typename Vector::item46
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,48 >
-{
-    typedef typename V::item48 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36, typename T37, typename T38, typename T39
-    , typename T40, typename T41, typename T42, typename T43, typename T44
-    , typename T45, typename T46, typename T47, typename T48
-    >
-struct vector49
-{
-    typedef aux::vector_tag<49> tag;
-    typedef vector49 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    typedef T37 item37;
-    typedef T38 item38;
-    typedef T39 item39;
-    typedef T40 item40;
-    typedef T41 item41;
-    typedef T42 item42;
-    typedef T43 item43;
-    typedef T44 item44;
-    typedef T45 item45;
-    typedef T46 item46;
-    typedef T47 item47;
-    typedef T48 item48;
-    
-
-    typedef void_ item49;
-    typedef T48 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,49 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<48> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector49<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44, typename Vector::item45
-            , typename Vector::item46, typename Vector::item47
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<49> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector48<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            , typename Vector::item37, typename Vector::item38
-            , typename Vector::item39, typename Vector::item40
-            , typename Vector::item41, typename Vector::item42
-            , typename Vector::item43, typename Vector::item44
-            , typename Vector::item45, typename Vector::item46
-            , typename Vector::item47, typename Vector::item48
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<48> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector49<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44, typename Vector::item45
-            , typename Vector::item46, typename Vector::item47
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<49> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector48<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44, typename Vector::item45
-            , typename Vector::item46, typename Vector::item47
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,49 >
-{
-    typedef typename V::item49 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36, typename T37, typename T38, typename T39
-    , typename T40, typename T41, typename T42, typename T43, typename T44
-    , typename T45, typename T46, typename T47, typename T48, typename T49
-    >
-struct vector50
-{
-    typedef aux::vector_tag<50> tag;
-    typedef vector50 type;
-    typedef T0 item0;
-    typedef T1 item1;
-    typedef T2 item2;
-    typedef T3 item3;
-    typedef T4 item4;
-    typedef T5 item5;
-    typedef T6 item6;
-    typedef T7 item7;
-    typedef T8 item8;
-    typedef T9 item9;
-    typedef T10 item10;
-    typedef T11 item11;
-    typedef T12 item12;
-    typedef T13 item13;
-    typedef T14 item14;
-    typedef T15 item15;
-    typedef T16 item16;
-    typedef T17 item17;
-    typedef T18 item18;
-    typedef T19 item19;
-    typedef T20 item20;
-    typedef T21 item21;
-    typedef T22 item22;
-    typedef T23 item23;
-    typedef T24 item24;
-    typedef T25 item25;
-    typedef T26 item26;
-    typedef T27 item27;
-    typedef T28 item28;
-    typedef T29 item29;
-    typedef T30 item30;
-    typedef T31 item31;
-    typedef T32 item32;
-    typedef T33 item33;
-    typedef T34 item34;
-    typedef T35 item35;
-    typedef T36 item36;
-    typedef T37 item37;
-    typedef T38 item38;
-    typedef T39 item39;
-    typedef T40 item40;
-    typedef T41 item41;
-    typedef T42 item42;
-    typedef T43 item43;
-    typedef T44 item44;
-    typedef T45 item45;
-    typedef T46 item46;
-    typedef T47 item47;
-    typedef T48 item48;
-    typedef T49 item49;
-    
-
-    typedef void_ item50;
-    typedef T49 back;
-    typedef v_iter< type,0 > begin;
-    typedef v_iter< type,50 > end;
-};
-
-template<>
-struct push_front_impl< aux::vector_tag<49> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector50<
-              T
-              ,
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44, typename Vector::item45
-            , typename Vector::item46, typename Vector::item47
-            , typename Vector::item48
-            > type;
-    };
-};
-
-template<>
-struct pop_front_impl< aux::vector_tag<50> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector49<
-              typename Vector::item1, typename Vector::item2
-            , typename Vector::item3, typename Vector::item4
-            , typename Vector::item5, typename Vector::item6
-            , typename Vector::item7, typename Vector::item8
-            , typename Vector::item9, typename Vector::item10
-            , typename Vector::item11, typename Vector::item12
-            , typename Vector::item13, typename Vector::item14
-            , typename Vector::item15, typename Vector::item16
-            , typename Vector::item17, typename Vector::item18
-            , typename Vector::item19, typename Vector::item20
-            , typename Vector::item21, typename Vector::item22
-            , typename Vector::item23, typename Vector::item24
-            , typename Vector::item25, typename Vector::item26
-            , typename Vector::item27, typename Vector::item28
-            , typename Vector::item29, typename Vector::item30
-            , typename Vector::item31, typename Vector::item32
-            , typename Vector::item33, typename Vector::item34
-            , typename Vector::item35, typename Vector::item36
-            , typename Vector::item37, typename Vector::item38
-            , typename Vector::item39, typename Vector::item40
-            , typename Vector::item41, typename Vector::item42
-            , typename Vector::item43, typename Vector::item44
-            , typename Vector::item45, typename Vector::item46
-            , typename Vector::item47, typename Vector::item48
-            , typename Vector::item49
-            > type;
-    };
-};
-
-template<>
-struct push_back_impl< aux::vector_tag<49> >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef vector50<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44, typename Vector::item45
-            , typename Vector::item46, typename Vector::item47
-            , typename Vector::item48
-              ,
-              T
-            > type;
-    };
-};
-
-template<>
-struct pop_back_impl< aux::vector_tag<50> >
-{
-    template< typename Vector > struct apply
-    {
-        typedef vector49<
-              typename Vector::item0, typename Vector::item1
-            , typename Vector::item2, typename Vector::item3
-            , typename Vector::item4, typename Vector::item5
-            , typename Vector::item6, typename Vector::item7
-            , typename Vector::item8, typename Vector::item9
-            , typename Vector::item10, typename Vector::item11
-            , typename Vector::item12, typename Vector::item13
-            , typename Vector::item14, typename Vector::item15
-            , typename Vector::item16, typename Vector::item17
-            , typename Vector::item18, typename Vector::item19
-            , typename Vector::item20, typename Vector::item21
-            , typename Vector::item22, typename Vector::item23
-            , typename Vector::item24, typename Vector::item25
-            , typename Vector::item26, typename Vector::item27
-            , typename Vector::item28, typename Vector::item29
-            , typename Vector::item30, typename Vector::item31
-            , typename Vector::item32, typename Vector::item33
-            , typename Vector::item34, typename Vector::item35
-            , typename Vector::item36, typename Vector::item37
-            , typename Vector::item38, typename Vector::item39
-            , typename Vector::item40, typename Vector::item41
-            , typename Vector::item42, typename Vector::item43
-            , typename Vector::item44, typename Vector::item45
-            , typename Vector::item46, typename Vector::item47
-            , typename Vector::item48
-            > type;
-    };
-};
-
-template< typename V >
-struct v_at< V,50 >
-{
-    typedef typename V::item50 type;
-};
-
-}}
diff --git a/boost/mpl/vector/aux_/preprocessed/plain/vector50_c.hpp b/boost/mpl/vector/aux_/preprocessed/plain/vector50_c.hpp
deleted file mode 100644
index e07f2b3..0000000
--- a/boost/mpl/vector/aux_/preprocessed/plain/vector50_c.hpp
+++ /dev/null
@@ -1,325 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/vector/vector50_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    >
-struct vector41_c
-    : vector41<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
-        , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >, integral_c<T
-        , C40> 
- >
-{
-    typedef vector41_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41
-    >
-struct vector42_c
-    : vector42<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
-        , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
-        , integral_c< T,C40 >, integral_c< T,C41 > 
- >
-{
-    typedef vector42_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42
-    >
-struct vector43_c
-    : vector43<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
-        , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
-        , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 > 
- >
-{
-    typedef vector43_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43
-    >
-struct vector44_c
-    : vector44<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
-        , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
-        , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 >, integral_c<T
-        , C43> 
- >
-{
-    typedef vector44_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43, T C44
-    >
-struct vector45_c
-    : vector45<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
-        , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
-        , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 >
-        , integral_c< T,C43 >, integral_c< T,C44 > 
- >
-{
-    typedef vector45_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43, T C44, T C45
-    >
-struct vector46_c
-    : vector46<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
-        , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
-        , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 >
-        , integral_c< T,C43 >, integral_c< T,C44 >, integral_c< T,C45 > 
- >
-{
-    typedef vector46_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43, T C44, T C45, T C46
-    >
-struct vector47_c
-    : vector47<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
-        , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
-        , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 >
-        , integral_c< T,C43 >, integral_c< T,C44 >, integral_c< T,C45 >, integral_c<T
-        , C46> 
- >
-{
-    typedef vector47_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43, T C44, T C45, T C46, T C47
-    >
-struct vector48_c
-    : vector48<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
-        , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
-        , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 >
-        , integral_c< T,C43 >, integral_c< T,C44 >, integral_c< T,C45 >
-        , integral_c< T,C46 >, integral_c< T,C47 > 
- >
-{
-    typedef vector48_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48
-    >
-struct vector49_c
-    : vector49<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
-        , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
-        , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 >
-        , integral_c< T,C43 >, integral_c< T,C44 >, integral_c< T,C45 >
-        , integral_c< T,C46 >, integral_c< T,C47 >, integral_c< T,C48 > 
- >
-{
-    typedef vector49_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48, T C49
-    >
-struct vector50_c
-    : vector50<
-          integral_c< T,C0 >, integral_c< T,C1 >, integral_c< T,C2 >
-        , integral_c< T,C3 >, integral_c< T,C4 >, integral_c< T,C5 >, integral_c< T,C6 >
-        , integral_c< T,C7 >, integral_c< T,C8 >, integral_c< T,C9 >
-        , integral_c< T,C10 >, integral_c< T,C11 >, integral_c< T,C12 >
-        , integral_c< T,C13 >, integral_c< T,C14 >, integral_c< T,C15 >
-        , integral_c< T,C16 >, integral_c< T,C17 >, integral_c< T,C18 >
-        , integral_c< T,C19 >, integral_c< T,C20 >, integral_c< T,C21 >
-        , integral_c< T,C22 >, integral_c< T,C23 >, integral_c< T,C24 >
-        , integral_c< T,C25 >, integral_c< T,C26 >, integral_c< T,C27 >
-        , integral_c< T,C28 >, integral_c< T,C29 >, integral_c< T,C30 >
-        , integral_c< T,C31 >, integral_c< T,C32 >, integral_c< T,C33 >
-        , integral_c< T,C34 >, integral_c< T,C35 >, integral_c< T,C36 >
-        , integral_c< T,C37 >, integral_c< T,C38 >, integral_c< T,C39 >
-        , integral_c< T,C40 >, integral_c< T,C41 >, integral_c< T,C42 >
-        , integral_c< T,C43 >, integral_c< T,C44 >, integral_c< T,C45 >
-        , integral_c< T,C46 >, integral_c< T,C47 >, integral_c< T,C48 >, integral_c<T
-        , C49> 
- >
-{
-    typedef vector50_c type;
-    typedef T value_type;
-};
-
-}}
diff --git a/boost/mpl/vector/aux_/preprocessed/typeof_based/vector10.hpp b/boost/mpl/vector/aux_/preprocessed/typeof_based/vector10.hpp
deleted file mode 100644
index e4c6407..0000000
--- a/boost/mpl/vector/aux_/preprocessed/typeof_based/vector10.hpp
+++ /dev/null
@@ -1,139 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/vector/vector10.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0
-    >
-struct vector1
-    : v_item<
-          T0
-        , vector0<  >
-        >
-{
-    typedef vector1 type;
-};
-
-template<
-      typename T0, typename T1
-    >
-struct vector2
-    : v_item<
-          T1
-        , vector1<T0>
-        >
-{
-    typedef vector2 type;
-};
-
-template<
-      typename T0, typename T1, typename T2
-    >
-struct vector3
-    : v_item<
-          T2
-        , vector2< T0,T1 >
-        >
-{
-    typedef vector3 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3
-    >
-struct vector4
-    : v_item<
-          T3
-        , vector3< T0,T1,T2 >
-        >
-{
-    typedef vector4 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    >
-struct vector5
-    : v_item<
-          T4
-        , vector4< T0,T1,T2,T3 >
-        >
-{
-    typedef vector5 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5
-    >
-struct vector6
-    : v_item<
-          T5
-        , vector5< T0,T1,T2,T3,T4 >
-        >
-{
-    typedef vector6 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6
-    >
-struct vector7
-    : v_item<
-          T6
-        , vector6< T0,T1,T2,T3,T4,T5 >
-        >
-{
-    typedef vector7 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7
-    >
-struct vector8
-    : v_item<
-          T7
-        , vector7< T0,T1,T2,T3,T4,T5,T6 >
-        >
-{
-    typedef vector8 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8
-    >
-struct vector9
-    : v_item<
-          T8
-        , vector8< T0,T1,T2,T3,T4,T5,T6,T7 >
-        >
-{
-    typedef vector9 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    >
-struct vector10
-    : v_item<
-          T9
-        , vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
-        >
-{
-    typedef vector10 type;
-};
-
-}}
diff --git a/boost/mpl/vector/aux_/preprocessed/typeof_based/vector10_c.hpp b/boost/mpl/vector/aux_/preprocessed/typeof_based/vector10_c.hpp
deleted file mode 100644
index 18eabc6..0000000
--- a/boost/mpl/vector/aux_/preprocessed/typeof_based/vector10_c.hpp
+++ /dev/null
@@ -1,154 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/vector/vector10_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T
-    , T C0
-    >
-struct vector1_c
-    : v_item<
-          integral_c< T,C0 >
-        , vector0_c<T>
-        >
-{
-    typedef vector1_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1
-    >
-struct vector2_c
-    : v_item<
-          integral_c< T,C1 >
-        , vector1_c< T,C0 >
-        >
-{
-    typedef vector2_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2
-    >
-struct vector3_c
-    : v_item<
-          integral_c< T,C2 >
-        , vector2_c< T,C0,C1 >
-        >
-{
-    typedef vector3_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3
-    >
-struct vector4_c
-    : v_item<
-          integral_c< T,C3 >
-        , vector3_c< T,C0,C1,C2 >
-        >
-{
-    typedef vector4_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4
-    >
-struct vector5_c
-    : v_item<
-          integral_c< T,C4 >
-        , vector4_c< T,C0,C1,C2,C3 >
-        >
-{
-    typedef vector5_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5
-    >
-struct vector6_c
-    : v_item<
-          integral_c< T,C5 >
-        , vector5_c< T,C0,C1,C2,C3,C4 >
-        >
-{
-    typedef vector6_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6
-    >
-struct vector7_c
-    : v_item<
-          integral_c< T,C6 >
-        , vector6_c< T,C0,C1,C2,C3,C4,C5 >
-        >
-{
-    typedef vector7_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7
-    >
-struct vector8_c
-    : v_item<
-          integral_c< T,C7 >
-        , vector7_c< T,C0,C1,C2,C3,C4,C5,C6 >
-        >
-{
-    typedef vector8_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8
-    >
-struct vector9_c
-    : v_item<
-          integral_c< T,C8 >
-        , vector8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >
-        >
-{
-    typedef vector9_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9
-    >
-struct vector10_c
-    : v_item<
-          integral_c< T,C9 >
-        , vector9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >
-        >
-{
-    typedef vector10_c type;
-    typedef T value_type;
-};
-
-}}
diff --git a/boost/mpl/vector/aux_/preprocessed/typeof_based/vector20.hpp b/boost/mpl/vector/aux_/preprocessed/typeof_based/vector20.hpp
deleted file mode 100644
index 78ccac4..0000000
--- a/boost/mpl/vector/aux_/preprocessed/typeof_based/vector20.hpp
+++ /dev/null
@@ -1,159 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/vector/vector20.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10
-    >
-struct vector11
-    : v_item<
-          T10
-        , vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
-        >
-{
-    typedef vector11 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11
-    >
-struct vector12
-    : v_item<
-          T11
-        , vector11< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 >
-        >
-{
-    typedef vector12 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12
-    >
-struct vector13
-    : v_item<
-          T12
-        , vector12< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 >
-        >
-{
-    typedef vector13 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13
-    >
-struct vector14
-    : v_item<
-          T13
-        , vector13< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 >
-        >
-{
-    typedef vector14 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    >
-struct vector15
-    : v_item<
-          T14
-        , vector14< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 >
-        >
-{
-    typedef vector15 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15
-    >
-struct vector16
-    : v_item<
-          T15
-        , vector15< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 >
-        >
-{
-    typedef vector16 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16
-    >
-struct vector17
-    : v_item<
-          T16
-        , vector16< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 >
-        >
-{
-    typedef vector17 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17
-    >
-struct vector18
-    : v_item<
-          T17
-        , vector17< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 >
-        >
-{
-    typedef vector18 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18
-    >
-struct vector19
-    : v_item<
-          T18
-        , vector18< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 >
-        >
-{
-    typedef vector19 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    >
-struct vector20
-    : v_item<
-          T19
-        , vector19< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 >
-        >
-{
-    typedef vector20 type;
-};
-
-}}
diff --git a/boost/mpl/vector/aux_/preprocessed/typeof_based/vector20_c.hpp b/boost/mpl/vector/aux_/preprocessed/typeof_based/vector20_c.hpp
deleted file mode 100644
index 4bf6742..0000000
--- a/boost/mpl/vector/aux_/preprocessed/typeof_based/vector20_c.hpp
+++ /dev/null
@@ -1,163 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/vector/vector20_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    >
-struct vector11_c
-    : v_item<
-          integral_c< T,C10 >
-        , vector10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >
-        >
-{
-    typedef vector11_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11
-    >
-struct vector12_c
-    : v_item<
-          integral_c< T,C11 >
-        , vector11_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 >
-        >
-{
-    typedef vector12_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12
-    >
-struct vector13_c
-    : v_item<
-          integral_c< T,C12 >
-        , vector12_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 >
-        >
-{
-    typedef vector13_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13
-    >
-struct vector14_c
-    : v_item<
-          integral_c< T,C13 >
-        , vector13_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 >
-        >
-{
-    typedef vector14_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14
-    >
-struct vector15_c
-    : v_item<
-          integral_c< T,C14 >
-        , vector14_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 >
-        >
-{
-    typedef vector15_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15
-    >
-struct vector16_c
-    : v_item<
-          integral_c< T,C15 >
-        , vector15_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 >
-        >
-{
-    typedef vector16_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16
-    >
-struct vector17_c
-    : v_item<
-          integral_c< T,C16 >
-        , vector16_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 >
-        >
-{
-    typedef vector17_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17
-    >
-struct vector18_c
-    : v_item<
-          integral_c< T,C17 >
-        , vector17_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 >
-        >
-{
-    typedef vector18_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18
-    >
-struct vector19_c
-    : v_item<
-          integral_c< T,C18 >
-        , vector18_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 >
-        >
-{
-    typedef vector19_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19
-    >
-struct vector20_c
-    : v_item<
-          integral_c< T,C19 >
-        , vector19_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 >
-        >
-{
-    typedef vector20_c type;
-    typedef T value_type;
-};
-
-}}
diff --git a/boost/mpl/vector/aux_/preprocessed/typeof_based/vector30.hpp b/boost/mpl/vector/aux_/preprocessed/typeof_based/vector30.hpp
deleted file mode 100644
index c404990..0000000
--- a/boost/mpl/vector/aux_/preprocessed/typeof_based/vector30.hpp
+++ /dev/null
@@ -1,179 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/vector/vector30.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20
-    >
-struct vector21
-    : v_item<
-          T20
-        , vector20< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 >
-        >
-{
-    typedef vector21 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21
-    >
-struct vector22
-    : v_item<
-          T21
-        , vector21< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20 >
-        >
-{
-    typedef vector22 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22
-    >
-struct vector23
-    : v_item<
-          T22
-        , vector22< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21 >
-        >
-{
-    typedef vector23 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23
-    >
-struct vector24
-    : v_item<
-          T23
-        , vector23< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22 >
-        >
-{
-    typedef vector24 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    >
-struct vector25
-    : v_item<
-          T24
-        , vector24< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23 >
-        >
-{
-    typedef vector25 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25
-    >
-struct vector26
-    : v_item<
-          T25
-        , vector25< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24 >
-        >
-{
-    typedef vector26 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26
-    >
-struct vector27
-    : v_item<
-          T26
-        , vector26< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25 >
-        >
-{
-    typedef vector27 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27
-    >
-struct vector28
-    : v_item<
-          T27
-        , vector27< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26 >
-        >
-{
-    typedef vector28 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28
-    >
-struct vector29
-    : v_item<
-          T28
-        , vector28< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27 >
-        >
-{
-    typedef vector29 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    >
-struct vector30
-    : v_item<
-          T29
-        , vector29< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28 >
-        >
-{
-    typedef vector30 type;
-};
-
-}}
diff --git a/boost/mpl/vector/aux_/preprocessed/typeof_based/vector30_c.hpp b/boost/mpl/vector/aux_/preprocessed/typeof_based/vector30_c.hpp
deleted file mode 100644
index 5741bb4..0000000
--- a/boost/mpl/vector/aux_/preprocessed/typeof_based/vector30_c.hpp
+++ /dev/null
@@ -1,173 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/vector/vector30_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    >
-struct vector21_c
-    : v_item<
-          integral_c< T,C20 >
-        , vector20_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 >
-        >
-{
-    typedef vector21_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21
-    >
-struct vector22_c
-    : v_item<
-          integral_c< T,C21 >
-        , vector21_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20 >
-        >
-{
-    typedef vector22_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22
-    >
-struct vector23_c
-    : v_item<
-          integral_c< T,C22 >
-        , vector22_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21 >
-        >
-{
-    typedef vector23_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23
-    >
-struct vector24_c
-    : v_item<
-          integral_c< T,C23 >
-        , vector23_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22 >
-        >
-{
-    typedef vector24_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24
-    >
-struct vector25_c
-    : v_item<
-          integral_c< T,C24 >
-        , vector24_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23 >
-        >
-{
-    typedef vector25_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25
-    >
-struct vector26_c
-    : v_item<
-          integral_c< T,C25 >
-        , vector25_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24 >
-        >
-{
-    typedef vector26_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26
-    >
-struct vector27_c
-    : v_item<
-          integral_c< T,C26 >
-        , vector26_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25 >
-        >
-{
-    typedef vector27_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27
-    >
-struct vector28_c
-    : v_item<
-          integral_c< T,C27 >
-        , vector27_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26 >
-        >
-{
-    typedef vector28_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28
-    >
-struct vector29_c
-    : v_item<
-          integral_c< T,C28 >
-        , vector28_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27 >
-        >
-{
-    typedef vector29_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29
-    >
-struct vector30_c
-    : v_item<
-          integral_c< T,C29 >
-        , vector29_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28 >
-        >
-{
-    typedef vector30_c type;
-    typedef T value_type;
-};
-
-}}
diff --git a/boost/mpl/vector/aux_/preprocessed/typeof_based/vector40.hpp b/boost/mpl/vector/aux_/preprocessed/typeof_based/vector40.hpp
deleted file mode 100644
index debcf70..0000000
--- a/boost/mpl/vector/aux_/preprocessed/typeof_based/vector40.hpp
+++ /dev/null
@@ -1,199 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/vector/vector40.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30
-    >
-struct vector31
-    : v_item<
-          T30
-        , vector30< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29 >
-        >
-{
-    typedef vector31 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31
-    >
-struct vector32
-    : v_item<
-          T31
-        , vector31< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30 >
-        >
-{
-    typedef vector32 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32
-    >
-struct vector33
-    : v_item<
-          T32
-        , vector32< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31 >
-        >
-{
-    typedef vector33 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33
-    >
-struct vector34
-    : v_item<
-          T33
-        , vector33< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32 >
-        >
-{
-    typedef vector34 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    >
-struct vector35
-    : v_item<
-          T34
-        , vector34< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33 >
-        >
-{
-    typedef vector35 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35
-    >
-struct vector36
-    : v_item<
-          T35
-        , vector35< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34 >
-        >
-{
-    typedef vector36 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36
-    >
-struct vector37
-    : v_item<
-          T36
-        , vector36< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35 >
-        >
-{
-    typedef vector37 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36, typename T37
-    >
-struct vector38
-    : v_item<
-          T37
-        , vector37< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36 >
-        >
-{
-    typedef vector38 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36, typename T37, typename T38
-    >
-struct vector39
-    : v_item<
-          T38
-        , vector38< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37 >
-        >
-{
-    typedef vector39 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36, typename T37, typename T38, typename T39
-    >
-struct vector40
-    : v_item<
-          T39
-        , vector39< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38 >
-        >
-{
-    typedef vector40 type;
-};
-
-}}
diff --git a/boost/mpl/vector/aux_/preprocessed/typeof_based/vector40_c.hpp b/boost/mpl/vector/aux_/preprocessed/typeof_based/vector40_c.hpp
deleted file mode 100644
index 88d742e..0000000
--- a/boost/mpl/vector/aux_/preprocessed/typeof_based/vector40_c.hpp
+++ /dev/null
@@ -1,183 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/vector/vector40_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    >
-struct vector31_c
-    : v_item<
-          integral_c< T,C30 >
-        , vector30_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29 >
-        >
-{
-    typedef vector31_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31
-    >
-struct vector32_c
-    : v_item<
-          integral_c< T,C31 >
-        , vector31_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30 >
-        >
-{
-    typedef vector32_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32
-    >
-struct vector33_c
-    : v_item<
-          integral_c< T,C32 >
-        , vector32_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31 >
-        >
-{
-    typedef vector33_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33
-    >
-struct vector34_c
-    : v_item<
-          integral_c< T,C33 >
-        , vector33_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32 >
-        >
-{
-    typedef vector34_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34
-    >
-struct vector35_c
-    : v_item<
-          integral_c< T,C34 >
-        , vector34_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33 >
-        >
-{
-    typedef vector35_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35
-    >
-struct vector36_c
-    : v_item<
-          integral_c< T,C35 >
-        , vector35_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34 >
-        >
-{
-    typedef vector36_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36
-    >
-struct vector37_c
-    : v_item<
-          integral_c< T,C36 >
-        , vector36_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35 >
-        >
-{
-    typedef vector37_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37
-    >
-struct vector38_c
-    : v_item<
-          integral_c< T,C37 >
-        , vector37_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36 >
-        >
-{
-    typedef vector38_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38
-    >
-struct vector39_c
-    : v_item<
-          integral_c< T,C38 >
-        , vector38_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37 >
-        >
-{
-    typedef vector39_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39
-    >
-struct vector40_c
-    : v_item<
-          integral_c< T,C39 >
-        , vector39_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38 >
-        >
-{
-    typedef vector40_c type;
-    typedef T value_type;
-};
-
-}}
diff --git a/boost/mpl/vector/aux_/preprocessed/typeof_based/vector50.hpp b/boost/mpl/vector/aux_/preprocessed/typeof_based/vector50.hpp
deleted file mode 100644
index 8db06df..0000000
--- a/boost/mpl/vector/aux_/preprocessed/typeof_based/vector50.hpp
+++ /dev/null
@@ -1,219 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/vector/vector50.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36, typename T37, typename T38, typename T39
-    , typename T40
-    >
-struct vector41
-    : v_item<
-          T40
-        , vector40< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39 >
-        >
-{
-    typedef vector41 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36, typename T37, typename T38, typename T39
-    , typename T40, typename T41
-    >
-struct vector42
-    : v_item<
-          T41
-        , vector41< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40 >
-        >
-{
-    typedef vector42 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36, typename T37, typename T38, typename T39
-    , typename T40, typename T41, typename T42
-    >
-struct vector43
-    : v_item<
-          T42
-        , vector42< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41 >
-        >
-{
-    typedef vector43 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36, typename T37, typename T38, typename T39
-    , typename T40, typename T41, typename T42, typename T43
-    >
-struct vector44
-    : v_item<
-          T43
-        , vector43< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42 >
-        >
-{
-    typedef vector44 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36, typename T37, typename T38, typename T39
-    , typename T40, typename T41, typename T42, typename T43, typename T44
-    >
-struct vector45
-    : v_item<
-          T44
-        , vector44< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43 >
-        >
-{
-    typedef vector45 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36, typename T37, typename T38, typename T39
-    , typename T40, typename T41, typename T42, typename T43, typename T44
-    , typename T45
-    >
-struct vector46
-    : v_item<
-          T45
-        , vector45< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44 >
-        >
-{
-    typedef vector46 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36, typename T37, typename T38, typename T39
-    , typename T40, typename T41, typename T42, typename T43, typename T44
-    , typename T45, typename T46
-    >
-struct vector47
-    : v_item<
-          T46
-        , vector46< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45 >
-        >
-{
-    typedef vector47 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36, typename T37, typename T38, typename T39
-    , typename T40, typename T41, typename T42, typename T43, typename T44
-    , typename T45, typename T46, typename T47
-    >
-struct vector48
-    : v_item<
-          T47
-        , vector47< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46 >
-        >
-{
-    typedef vector48 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36, typename T37, typename T38, typename T39
-    , typename T40, typename T41, typename T42, typename T43, typename T44
-    , typename T45, typename T46, typename T47, typename T48
-    >
-struct vector49
-    : v_item<
-          T48
-        , vector48< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47 >
-        >
-{
-    typedef vector49 type;
-};
-
-template<
-      typename T0, typename T1, typename T2, typename T3, typename T4
-    , typename T5, typename T6, typename T7, typename T8, typename T9
-    , typename T10, typename T11, typename T12, typename T13, typename T14
-    , typename T15, typename T16, typename T17, typename T18, typename T19
-    , typename T20, typename T21, typename T22, typename T23, typename T24
-    , typename T25, typename T26, typename T27, typename T28, typename T29
-    , typename T30, typename T31, typename T32, typename T33, typename T34
-    , typename T35, typename T36, typename T37, typename T38, typename T39
-    , typename T40, typename T41, typename T42, typename T43, typename T44
-    , typename T45, typename T46, typename T47, typename T48, typename T49
-    >
-struct vector50
-    : v_item<
-          T49
-        , vector49< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48 >
-        >
-{
-    typedef vector50 type;
-};
-
-}}
diff --git a/boost/mpl/vector/aux_/preprocessed/typeof_based/vector50_c.hpp b/boost/mpl/vector/aux_/preprocessed/typeof_based/vector50_c.hpp
deleted file mode 100644
index f56d6af..0000000
--- a/boost/mpl/vector/aux_/preprocessed/typeof_based/vector50_c.hpp
+++ /dev/null
@@ -1,193 +0,0 @@
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-// Preprocessed version of "boost/mpl/vector/vector50_c.hpp" header
-// -- DO NOT modify by hand!
-
-namespace boost { namespace mpl {
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    >
-struct vector41_c
-    : v_item<
-          integral_c< T,C40 >
-        , vector40_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39 >
-        >
-{
-    typedef vector41_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41
-    >
-struct vector42_c
-    : v_item<
-          integral_c< T,C41 >
-        , vector41_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40 >
-        >
-{
-    typedef vector42_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42
-    >
-struct vector43_c
-    : v_item<
-          integral_c< T,C42 >
-        , vector42_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41 >
-        >
-{
-    typedef vector43_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43
-    >
-struct vector44_c
-    : v_item<
-          integral_c< T,C43 >
-        , vector43_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42 >
-        >
-{
-    typedef vector44_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43, T C44
-    >
-struct vector45_c
-    : v_item<
-          integral_c< T,C44 >
-        , vector44_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43 >
-        >
-{
-    typedef vector45_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43, T C44, T C45
-    >
-struct vector46_c
-    : v_item<
-          integral_c< T,C45 >
-        , vector45_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44 >
-        >
-{
-    typedef vector46_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43, T C44, T C45, T C46
-    >
-struct vector47_c
-    : v_item<
-          integral_c< T,C46 >
-        , vector46_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45 >
-        >
-{
-    typedef vector47_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43, T C44, T C45, T C46, T C47
-    >
-struct vector48_c
-    : v_item<
-          integral_c< T,C47 >
-        , vector47_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46 >
-        >
-{
-    typedef vector48_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48
-    >
-struct vector49_c
-    : v_item<
-          integral_c< T,C48 >
-        , vector48_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47 >
-        >
-{
-    typedef vector49_c type;
-    typedef T value_type;
-};
-
-template<
-      typename T
-    , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10
-    , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20
-    , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30
-    , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40
-    , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48, T C49
-    >
-struct vector50_c
-    : v_item<
-          integral_c< T,C49 >
-        , vector49_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47,C48 >
-        >
-{
-    typedef vector50_c type;
-    typedef T value_type;
-};
-
-}}
diff --git a/boost/mpl/vector/aux_/push_back.hpp b/boost/mpl/vector/aux_/push_back.hpp
deleted file mode 100644
index d8783cc..0000000
--- a/boost/mpl/vector/aux_/push_back.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-
-#ifndef BOOST_MPL_VECTOR_AUX_PUSH_BACK_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_AUX_PUSH_BACK_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: push_back.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/push_back_fwd.hpp>
-#include <boost/mpl/aux_/config/typeof.hpp>
-
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-
-#   include <boost/mpl/vector/aux_/item.hpp>
-#   include <boost/mpl/vector/aux_/tag.hpp>
-
-namespace boost { namespace mpl {
-
-template<>
-struct push_back_impl< aux::vector_tag >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef v_item<T,Vector,0> type;
-    };
-};
-
-}}
-
-#endif 
-
-#endif // BOOST_MPL_VECTOR_AUX_PUSH_BACK_HPP_INCLUDED
diff --git a/boost/mpl/vector/aux_/push_front.hpp b/boost/mpl/vector/aux_/push_front.hpp
deleted file mode 100644
index 26b5f00..0000000
--- a/boost/mpl/vector/aux_/push_front.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-
-#ifndef BOOST_MPL_VECTOR_AUX_PUSH_FRONT_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_AUX_PUSH_FRONT_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: push_front.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/push_front_fwd.hpp>
-#include <boost/mpl/aux_/config/typeof.hpp>
-
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-
-#   include <boost/mpl/vector/aux_/item.hpp>
-#   include <boost/mpl/vector/aux_/tag.hpp>
-
-namespace boost { namespace mpl {
-
-template<>
-struct push_front_impl< aux::vector_tag >
-{
-    template< typename Vector, typename T > struct apply
-    {
-        typedef v_item<T,Vector,1> type;
-    };
-};
-
-}}
-
-#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
-
-#endif // BOOST_MPL_VECTOR_AUX_PUSH_FRONT_HPP_INCLUDED
diff --git a/boost/mpl/vector/aux_/size.hpp b/boost/mpl/vector/aux_/size.hpp
deleted file mode 100644
index 41b7be6..0000000
--- a/boost/mpl/vector/aux_/size.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-
-#ifndef BOOST_MPL_VECTOR_AUX_SIZE_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_AUX_SIZE_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: size.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/size_fwd.hpp>
-#include <boost/mpl/vector/aux_/O1_size.hpp>
-#include <boost/mpl/vector/aux_/tag.hpp>
-#include <boost/mpl/aux_/config/typeof.hpp>
-#include <boost/mpl/aux_/config/ctps.hpp>
-
-namespace boost { namespace mpl {
-
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-
-template<>
-struct size_impl< aux::vector_tag >
-    : O1_size_impl< aux::vector_tag >
-{
-};
-
-#else
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-template< long N >
-struct size_impl< aux::vector_tag<N> >
-    : O1_size_impl< aux::vector_tag<N> >
-{
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#endif // BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES
-
-}}
-
-#endif // BOOST_MPL_VECTOR_AUX_SIZE_HPP_INCLUDED
diff --git a/boost/mpl/vector/aux_/tag.hpp b/boost/mpl/vector/aux_/tag.hpp
deleted file mode 100644
index 0f37e92..0000000
--- a/boost/mpl/vector/aux_/tag.hpp
+++ /dev/null
@@ -1,32 +0,0 @@
-
-#ifndef BOOST_MPL_VECTOR_AUX_TAG_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_AUX_TAG_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: tag.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/config/typeof.hpp>
-#include <boost/mpl/aux_/nttp_decl.hpp>
-
-namespace boost { namespace mpl { namespace aux {
-
-struct v_iter_tag;
-
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-struct vector_tag;
-#else
-template< BOOST_MPL_AUX_NTTP_DECL(long, N) > struct vector_tag;
-#endif
-
-}}}
-
-#endif // BOOST_MPL_VECTOR_AUX_TAG_HPP_INCLUDED
diff --git a/boost/mpl/vector/aux_/vector0.hpp b/boost/mpl/vector/aux_/vector0.hpp
deleted file mode 100644
index b3bb13b..0000000
--- a/boost/mpl/vector/aux_/vector0.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-
-#ifndef BOOST_MPL_VECTOR_AUX_VECTOR0_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_AUX_VECTOR0_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: vector0.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/long.hpp>
-#include <boost/mpl/void.hpp>
-#include <boost/mpl/aux_/na.hpp>
-#include <boost/mpl/aux_/type_wrapper.hpp>
-
-#include <boost/mpl/vector/aux_/iterator.hpp>
-#include <boost/mpl/vector/aux_/tag.hpp>
-#include <boost/mpl/aux_/config/typeof.hpp>
-
-namespace boost { namespace mpl {
-
-template< typename Dummy = na > struct vector0;
-
-template<> struct vector0<na>
-{
-#if defined(BOOST_MPL_CFG_TYPEOF_BASED_SEQUENCES)
-    typedef aux::vector_tag tag;
-    typedef vector0         type;
-    typedef long_<32768>    lower_bound_;
-    typedef lower_bound_    upper_bound_;
-    typedef long_<0>        size;
-
-    static aux::type_wrapper<void_> item_(...);
-#else
-    typedef aux::vector_tag<0> tag;
-    typedef vector0 type;
-    typedef void_ item0;
-    
-    typedef v_iter<vector0<>,0> begin;
-    typedef v_iter<vector0<>,0> end;
-#endif
-};
-
-}}
-
-#endif // BOOST_MPL_VECTOR_AUX_VECTOR0_HPP_INCLUDED
diff --git a/boost/mpl/vector/vector0.hpp b/boost/mpl/vector/vector0.hpp
deleted file mode 100644
index 9d18104..0000000
--- a/boost/mpl/vector/vector0.hpp
+++ /dev/null
@@ -1,34 +0,0 @@
-
-#ifndef BOOST_MPL_VECTOR_VECTOR0_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_VECTOR0_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: vector0.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/vector/aux_/at.hpp>
-#include <boost/mpl/vector/aux_/front.hpp>
-#include <boost/mpl/vector/aux_/push_front.hpp>
-#include <boost/mpl/vector/aux_/pop_front.hpp>
-#include <boost/mpl/vector/aux_/push_back.hpp>
-#include <boost/mpl/vector/aux_/pop_back.hpp>
-#include <boost/mpl/vector/aux_/back.hpp>
-#include <boost/mpl/vector/aux_/clear.hpp>
-#include <boost/mpl/vector/aux_/O1_size.hpp>
-#include <boost/mpl/vector/aux_/size.hpp>
-#include <boost/mpl/vector/aux_/empty.hpp>
-#include <boost/mpl/vector/aux_/item.hpp>
-#include <boost/mpl/vector/aux_/iterator.hpp>
-#include <boost/mpl/vector/aux_/vector0.hpp>
-#include <boost/mpl/vector/aux_/begin_end.hpp>
-#include <boost/mpl/vector/aux_/tag.hpp>
-
-#endif // BOOST_MPL_VECTOR_VECTOR0_HPP_INCLUDED
diff --git a/boost/mpl/vector/vector0_c.hpp b/boost/mpl/vector/vector0_c.hpp
deleted file mode 100644
index eb1dcf9..0000000
--- a/boost/mpl/vector/vector0_c.hpp
+++ /dev/null
@@ -1,31 +0,0 @@
-
-#ifndef BOOST_MPL_VECTOR_VECTOR0_C_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_VECTOR0_C_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: vector0_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/vector/vector0.hpp>
-#include <boost/mpl/integral_c.hpp>
-
-namespace boost { namespace mpl {
-
-template< typename T > struct vector0_c
-    : vector0<>
-{
-    typedef vector0_c type;
-    typedef T value_type;
-};
-
-}}
-
-#endif // BOOST_MPL_VECTOR_VECTOR0_C_HPP_INCLUDED
diff --git a/boost/mpl/vector/vector10.hpp b/boost/mpl/vector/vector10.hpp
deleted file mode 100644
index 848dd82..0000000
--- a/boost/mpl/vector/vector10.hpp
+++ /dev/null
@@ -1,45 +0,0 @@
-
-#ifndef BOOST_MPL_VECTOR_VECTOR10_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_VECTOR10_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: vector10.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-#   include <boost/mpl/vector/vector0.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-#   define BOOST_MPL_PREPROCESSED_HEADER vector10.hpp
-#   include <boost/mpl/vector/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <boost/mpl/aux_/config/typeof.hpp>
-#   include <boost/mpl/aux_/config/ctps.hpp>
-#   include <boost/preprocessor/iterate.hpp>
-
-namespace boost { namespace mpl {
-
-#   define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(0, 10, <boost/mpl/vector/aux_/numbered.hpp>))
-#   include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_VECTOR_VECTOR10_HPP_INCLUDED
diff --git a/boost/mpl/vector/vector10_c.hpp b/boost/mpl/vector/vector10_c.hpp
deleted file mode 100644
index 4e6cf3b..0000000
--- a/boost/mpl/vector/vector10_c.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-
-#ifndef BOOST_MPL_VECTOR_VECTOR10_C_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_VECTOR10_C_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: vector10_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-#   include <boost/mpl/vector/vector0_c.hpp>
-#   include <boost/mpl/vector/vector10.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-#   define BOOST_MPL_PREPROCESSED_HEADER vector10_c.hpp
-#   include <boost/mpl/vector/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <boost/mpl/aux_/config/typeof.hpp>
-#   include <boost/mpl/aux_/config/ctps.hpp>
-#   include <boost/preprocessor/iterate.hpp>
-
-namespace boost { namespace mpl {
-
-#   define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(1, 10, <boost/mpl/vector/aux_/numbered_c.hpp>))
-#   include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_VECTOR_VECTOR10_C_HPP_INCLUDED
diff --git a/boost/mpl/vector/vector20.hpp b/boost/mpl/vector/vector20.hpp
deleted file mode 100644
index 173eacf..0000000
--- a/boost/mpl/vector/vector20.hpp
+++ /dev/null
@@ -1,45 +0,0 @@
-
-#ifndef BOOST_MPL_VECTOR_VECTOR20_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_VECTOR20_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: vector20.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-#   include <boost/mpl/vector/vector10.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-#   define BOOST_MPL_PREPROCESSED_HEADER vector20.hpp
-#   include <boost/mpl/vector/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <boost/mpl/aux_/config/typeof.hpp>
-#   include <boost/mpl/aux_/config/ctps.hpp>
-#   include <boost/preprocessor/iterate.hpp>
-
-namespace boost { namespace mpl {
-
-#   define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(11, 20, <boost/mpl/vector/aux_/numbered.hpp>))
-#   include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_VECTOR_VECTOR20_HPP_INCLUDED
diff --git a/boost/mpl/vector/vector20_c.hpp b/boost/mpl/vector/vector20_c.hpp
deleted file mode 100644
index c6b7187..0000000
--- a/boost/mpl/vector/vector20_c.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-
-#ifndef BOOST_MPL_VECTOR_VECTOR20_C_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_VECTOR20_C_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: vector20_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-#   include <boost/mpl/vector/vector10_c.hpp>
-#   include <boost/mpl/vector/vector20.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-#   define BOOST_MPL_PREPROCESSED_HEADER vector20_c.hpp
-#   include <boost/mpl/vector/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <boost/mpl/aux_/config/typeof.hpp>
-#   include <boost/mpl/aux_/config/ctps.hpp>
-#   include <boost/preprocessor/iterate.hpp>
-
-namespace boost { namespace mpl {
-
-#   define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(11, 20, <boost/mpl/vector/aux_/numbered_c.hpp>))
-#   include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_VECTOR_VECTOR20_C_HPP_INCLUDED
diff --git a/boost/mpl/vector/vector30.hpp b/boost/mpl/vector/vector30.hpp
deleted file mode 100644
index 476ec35..0000000
--- a/boost/mpl/vector/vector30.hpp
+++ /dev/null
@@ -1,45 +0,0 @@
-
-#ifndef BOOST_MPL_VECTOR_VECTOR30_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_VECTOR30_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: vector30.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-#   include <boost/mpl/vector/vector20.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-#   define BOOST_MPL_PREPROCESSED_HEADER vector30.hpp
-#   include <boost/mpl/vector/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <boost/mpl/aux_/config/typeof.hpp>
-#   include <boost/mpl/aux_/config/ctps.hpp>
-#   include <boost/preprocessor/iterate.hpp>
-
-namespace boost { namespace mpl {
-
-#   define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(21, 30, <boost/mpl/vector/aux_/numbered.hpp>))
-#   include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_VECTOR_VECTOR30_HPP_INCLUDED
diff --git a/boost/mpl/vector/vector30_c.hpp b/boost/mpl/vector/vector30_c.hpp
deleted file mode 100644
index c20d8f9..0000000
--- a/boost/mpl/vector/vector30_c.hpp
+++ /dev/null
@@ -1,47 +0,0 @@
-
-#ifndef BOOST_MPL_VECTOR_VECTOR30_C_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_VECTOR30_C_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: vector30_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-#   include <boost/mpl/vector/vector20_c.hpp>
-#   include <boost/mpl/vector/vector30.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-#   define BOOST_MPL_PREPROCESSED_HEADER vector30_c.hpp
-#   include <boost/mpl/vector/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <boost/mpl/aux_/config/typeof.hpp>
-#   include <boost/mpl/aux_/config/ctps.hpp>
-#   include <boost/preprocessor/iterate.hpp>
-#   include <boost/config.hpp>
-
-namespace boost { namespace mpl {
-
-#   define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(21, 30, <boost/mpl/vector/aux_/numbered_c.hpp>))
-#   include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_USE_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_VECTOR_VECTOR30_C_HPP_INCLUDED
diff --git a/boost/mpl/vector/vector40.hpp b/boost/mpl/vector/vector40.hpp
deleted file mode 100644
index 69203d0..0000000
--- a/boost/mpl/vector/vector40.hpp
+++ /dev/null
@@ -1,45 +0,0 @@
-
-#ifndef BOOST_MPL_VECTOR_VECTOR40_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_VECTOR40_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: vector40.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-#   include <boost/mpl/vector/vector30.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-#   define BOOST_MPL_PREPROCESSED_HEADER vector40.hpp
-#   include <boost/mpl/vector/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <boost/mpl/aux_/config/typeof.hpp>
-#   include <boost/mpl/aux_/config/ctps.hpp>
-#   include <boost/preprocessor/iterate.hpp>
-
-namespace boost { namespace mpl {
-
-#   define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(31, 40, <boost/mpl/vector/aux_/numbered.hpp>))
-#   include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_VECTOR_VECTOR40_HPP_INCLUDED
diff --git a/boost/mpl/vector/vector40_c.hpp b/boost/mpl/vector/vector40_c.hpp
deleted file mode 100644
index bd7310c..0000000
--- a/boost/mpl/vector/vector40_c.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-
-#ifndef BOOST_MPL_VECTOR_VECTOR40_C_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_VECTOR40_C_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: vector40_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-#   include <boost/mpl/vector/vector30_c.hpp>
-#   include <boost/mpl/vector/vector40.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-#   define BOOST_MPL_PREPROCESSED_HEADER vector40_c.hpp
-#   include <boost/mpl/vector/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <boost/mpl/aux_/config/typeof.hpp>
-#   include <boost/mpl/aux_/config/ctps.hpp>
-#   include <boost/preprocessor/iterate.hpp>
-
-namespace boost { namespace mpl {
-
-#   define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(31, 40, <boost/mpl/vector/aux_/numbered_c.hpp>))
-#   include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_VECTOR_VECTOR40_C_HPP_INCLUDED
diff --git a/boost/mpl/vector/vector50.hpp b/boost/mpl/vector/vector50.hpp
deleted file mode 100644
index 4c3e231..0000000
--- a/boost/mpl/vector/vector50.hpp
+++ /dev/null
@@ -1,45 +0,0 @@
-
-#ifndef BOOST_MPL_VECTOR_VECTOR50_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_VECTOR50_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: vector50.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-#   include <boost/mpl/vector/vector40.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
-    && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-#   define BOOST_MPL_PREPROCESSED_HEADER vector50.hpp
-#   include <boost/mpl/vector/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <boost/mpl/aux_/config/typeof.hpp>
-#   include <boost/mpl/aux_/config/ctps.hpp>
-#   include <boost/preprocessor/iterate.hpp>
-
-namespace boost { namespace mpl {
-
-#   define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(41, 50, <boost/mpl/vector/aux_/numbered.hpp>))
-#   include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_VECTOR_VECTOR50_HPP_INCLUDED
diff --git a/boost/mpl/vector/vector50_c.hpp b/boost/mpl/vector/vector50_c.hpp
deleted file mode 100644
index 2d2e705..0000000
--- a/boost/mpl/vector/vector50_c.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-
-#ifndef BOOST_MPL_VECTOR_VECTOR50_C_HPP_INCLUDED
-#define BOOST_MPL_VECTOR_VECTOR50_C_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2000-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: vector50_c.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#if !defined(BOOST_MPL_PREPROCESSING_MODE)
-#   include <boost/mpl/vector/vector40_c.hpp>
-#   include <boost/mpl/vector/vector50.hpp>
-#endif
-
-#include <boost/mpl/aux_/config/use_preprocessed.hpp>
-
-#if !defined(BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS) \
- && !defined(BOOST_MPL_PREPROCESSING_MODE)
-
-#   define BOOST_MPL_PREPROCESSED_HEADER vector50_c.hpp
-#   include <boost/mpl/vector/aux_/include_preprocessed.hpp>
-
-#else
-
-#   include <boost/mpl/aux_/config/typeof.hpp>
-#   include <boost/mpl/aux_/config/ctps.hpp>
-#   include <boost/preprocessor/iterate.hpp>
-
-namespace boost { namespace mpl {
-
-#   define BOOST_PP_ITERATION_PARAMS_1 \
-    (3,(41, 50, <boost/mpl/vector/aux_/numbered_c.hpp>))
-#   include BOOST_PP_ITERATE()
-
-}}
-
-#endif // BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
-
-#endif // BOOST_MPL_VECTOR_VECTOR50_C_HPP_INCLUDED
diff --git a/boost/mpl/void.hpp b/boost/mpl/void.hpp
deleted file mode 100644
index ad5aa56..0000000
--- a/boost/mpl/void.hpp
+++ /dev/null
@@ -1,76 +0,0 @@
-
-#ifndef BOOST_MPL_VOID_HPP_INCLUDED
-#define BOOST_MPL_VOID_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: void.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/void_fwd.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/aux_/na_spec.hpp>
-#include <boost/mpl/aux_/config/msvc.hpp>
-#include <boost/mpl/aux_/config/workaround.hpp>
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-
-//  [JDG Feb-4-2003] made void_ a complete type to allow it to be
-//  instantiated so that it can be passed in as an object that can be
-//  used to select an overloaded function. Possible use includes signaling
-//  a zero arity functor evaluation call.
-struct void_ { typedef void_ type; };
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-
-namespace boost { namespace mpl {
-
-template< typename T >
-struct is_void_
-    : false_
-{
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-    using false_::value;
-#endif
-};
-
-template<>
-struct is_void_<void_>
-    : true_
-{
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-    using true_::value;
-#endif
-};
-
-template< typename T >
-struct is_not_void_
-    : true_
-{
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-    using true_::value;
-#endif
-};
-
-template<>
-struct is_not_void_<void_>
-    : false_
-{
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-    using false_::value;
-#endif
-};
-
-BOOST_MPL_AUX_NA_SPEC(1, is_void_)
-BOOST_MPL_AUX_NA_SPEC(1, is_not_void_)
-
-}}
-
-#endif // BOOST_MPL_VOID_HPP_INCLUDED
diff --git a/boost/mpl/void_fwd.hpp b/boost/mpl/void_fwd.hpp
deleted file mode 100644
index 9643dec..0000000
--- a/boost/mpl/void_fwd.hpp
+++ /dev/null
@@ -1,26 +0,0 @@
-
-#ifndef BOOST_MPL_VOID_FWD_HPP_INCLUDED
-#define BOOST_MPL_VOID_FWD_HPP_INCLUDED
-
-// Copyright Aleksey Gurtovoy 2001-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/mpl for documentation.
-
-// $Id: void_fwd.hpp 49267 2008-10-11 06:19:02Z agurtovoy $
-// $Date: 2008-10-10 23:19:02 -0700 (Fri, 10 Oct 2008) $
-// $Revision: 49267 $
-
-#include <boost/mpl/aux_/adl_barrier.hpp>
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN
-
-struct void_;
-
-BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE
-BOOST_MPL_AUX_ADL_BARRIER_DECL(void_)
-
-#endif // BOOST_MPL_VOID_FWD_HPP_INCLUDED
diff --git a/boost/next_prior.hpp b/boost/next_prior.hpp
deleted file mode 100644
index e1d2e42..0000000
--- a/boost/next_prior.hpp
+++ /dev/null
@@ -1,51 +0,0 @@
-//  Boost next_prior.hpp header file  ---------------------------------------//
-
-//  (C) Copyright Dave Abrahams and Daniel Walker 1999-2003. Distributed under the Boost
-//  Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org/libs/utility for documentation.
-
-//  Revision History
-//  13 Dec 2003  Added next(x, n) and prior(x, n) (Daniel Walker)
-
-#ifndef BOOST_NEXT_PRIOR_HPP_INCLUDED
-#define BOOST_NEXT_PRIOR_HPP_INCLUDED
-
-#include <iterator>
-
-namespace boost {
-
-//  Helper functions for classes like bidirectional iterators not supporting
-//  operator+ and operator-
-//
-//  Usage:
-//    const std::list<T>::iterator p = get_some_iterator();
-//    const std::list<T>::iterator prev = boost::prior(p);
-//    const std::list<T>::iterator next = boost::next(prev, 2);
-
-//  Contributed by Dave Abrahams
-
-template <class T>
-inline T next(T x) { return ++x; }
-
-template <class T, class Distance>
-inline T next(T x, Distance n)
-{
-    std::advance(x, n);
-    return x;
-}
-
-template <class T>
-inline T prior(T x) { return --x; }
-
-template <class T, class Distance>
-inline T prior(T x, Distance n)
-{
-    std::advance(x, -n);
-    return x;
-}
-
-} // namespace boost
-
-#endif  // BOOST_NEXT_PRIOR_HPP_INCLUDED
diff --git a/boost/non_type.hpp b/boost/non_type.hpp
deleted file mode 100644
index 896aed4..0000000
--- a/boost/non_type.hpp
+++ /dev/null
@@ -1,27 +0,0 @@
-// -------------------------------------
-//
-//           (C) Copyright Gennaro Prota 2003.
-//
-// Distributed under the Boost Software License, Version 1.0.
-//    (See accompanying file LICENSE_1_0.txt or copy at
-//          http://www.boost.org/LICENSE_1_0.txt)
-//
-// ------------------------------------------------------
-
-#ifndef BOOST_NON_TYPE_HPP_GP_20030417
-#define BOOST_NON_TYPE_HPP_GP_20030417
-
-
-namespace boost {
-
-  // Just a simple "envelope" for non-type template parameters. Useful
-  // to work around some MSVC deficiencies.
-
- template <typename T, T n>
- struct non_type { };
-
-
-}
-
-
-#endif // include guard
diff --git a/boost/noncopyable.hpp b/boost/noncopyable.hpp
deleted file mode 100644
index eb8e2e7..0000000
--- a/boost/noncopyable.hpp
+++ /dev/null
@@ -1,48 +0,0 @@
-//  Boost noncopyable.hpp header file  --------------------------------------//
-
-//  (C) Copyright Beman Dawes 1999-2003. Distributed under the Boost
-//  Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org/libs/utility for documentation.
-
-#ifndef BOOST_NONCOPYABLE_HPP_INCLUDED
-#define BOOST_NONCOPYABLE_HPP_INCLUDED
-
-#include <boost/config.hpp>
-
-namespace boost {
-
-//  Private copy constructor and copy assignment ensure classes derived from
-//  class noncopyable cannot be copied.
-
-//  Contributed by Dave Abrahams
-
-namespace noncopyable_  // protection from unintended ADL
-{
-  class noncopyable
-  {
-   protected:
-#ifndef BOOST_NO_DEFAULTED_FUNCTIONS
-    BOOST_CONSTEXPR noncopyable() = default;
-    ~noncopyable() = default;
-#else
-    noncopyable() {}
-      ~noncopyable() {}
-#endif
-#ifndef BOOST_NO_DELETED_FUNCTIONS
-        noncopyable( const noncopyable& ) = delete;
-        noncopyable& operator=( const noncopyable& ) = delete;
-#else
-    private:  // emphasize the following members are private
-      noncopyable( const noncopyable& );
-      noncopyable& operator=( const noncopyable& );
-#endif
-  };
-}
-
-typedef noncopyable_::noncopyable noncopyable;
-
-} // namespace boost
-
-#endif  // BOOST_NONCOPYABLE_HPP_INCLUDED
diff --git a/boost/none.hpp b/boost/none.hpp
deleted file mode 100644
index e9fc062..0000000
--- a/boost/none.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (C) 2003, Fernando Luis Cacciola Carballal.
-//
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/optional for documentation.
-//
-// You are welcome to contact the author at:
-//  fernando_cacciola at hotmail.com
-//
-#ifndef BOOST_NONE_17SEP2003_HPP
-#define BOOST_NONE_17SEP2003_HPP
-
-#include "boost/none_t.hpp"
-
-// NOTE: Borland users have to include this header outside any precompiled headers
-// (bcc<=5.64 cannot include instance data in a precompiled header)
-//  -- * To be verified, now that there's no unnamed namespace
-
-namespace boost {
-
-none_t const none = (static_cast<none_t>(0)) ;
-
-} // namespace boost
-
-#endif
-
diff --git a/boost/none_t.hpp b/boost/none_t.hpp
deleted file mode 100644
index 63ad926..0000000
--- a/boost/none_t.hpp
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright (C) 2003, Fernando Luis Cacciola Carballal.
-//
-// Use, modification, and distribution is subject to the Boost Software
-// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/optional for documentation.
-//
-// You are welcome to contact the author at:
-//  fernando_cacciola at hotmail.com
-//
-#ifndef BOOST_NONE_T_17SEP2003_HPP
-#define BOOST_NONE_T_17SEP2003_HPP
-
-namespace boost {
-
-namespace detail { struct none_helper{}; }
-
-typedef int detail::none_helper::*none_t ;
-
-} // namespace boost
-
-#endif
-
diff --git a/boost/numeric/conversion/bounds.hpp b/boost/numeric/conversion/bounds.hpp
deleted file mode 100644
index e4c7c7d..0000000
--- a/boost/numeric/conversion/bounds.hpp
+++ /dev/null
@@ -1,24 +0,0 @@
-//  (c) Copyright Fernando Luis Cacciola Carballal 2000-2004
-//  Use, modification, and distribution is subject to the Boost Software
-//  License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-
-//  See library home page at http://www.boost.org/libs/numeric/conversion
-//
-// Contact the author at: fernando_cacciola at hotmail.com
-// 
-#ifndef BOOST_NUMERIC_CONVERSION_BOUNDS_12NOV2002_HPP
-#define BOOST_NUMERIC_CONVERSION_BOUNDS_12NOV2002_HPP
-
-#include "boost/numeric/conversion/detail/bounds.hpp"
-
-namespace boost { namespace numeric 
-{
-
-template<class N>
-struct bounds : boundsdetail::get_impl<N>::type
-{} ;
-
-} } // namespace boost::numeric
-
-#endif
diff --git a/boost/numeric/conversion/cast.hpp b/boost/numeric/conversion/cast.hpp
deleted file mode 100644
index 1ee0251..0000000
--- a/boost/numeric/conversion/cast.hpp
+++ /dev/null
@@ -1,61 +0,0 @@
-//  (c) Copyright Fernando Luis Cacciola Carballal 2000-2004
-//  Use, modification, and distribution is subject to the Boost Software
-//  License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-
-//  See library home page at http://www.boost.org/libs/numeric/conversion
-//
-// Contact the author at: fernando_cacciola at hotmail.com
-//
-//
-//  Revision History
-//
-//    19 Nov 2001 Syntatic changes as suggested by Darin Adler (Fernando Cacciola)
-//    08 Nov 2001 Fixes to accommodate MSVC (Fernando Cacciola)
-//    04 Nov 2001 Fixes to accommodate gcc2.92 (Fernando Cacciola)
-//    30 Oct 2001 Some fixes suggested by Daryle Walker (Fernando Cacciola)
-//    25 Oct 2001 Initial boostification (Fernando Cacciola)
-//    23 Jan 2004 Inital add to cvs (post review)s
-//    22 Jun 2011 Added support for specializing cast policies via numeric_cast_traits (Brandon Kohn).
-//
-#ifndef BOOST_NUMERIC_CONVERSION_CAST_25OCT2001_HPP
-#define BOOST_NUMERIC_CONVERSION_CAST_25OCT2001_HPP
-
-#include <boost/detail/workaround.hpp>
-
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582))
-
-#  include<boost/numeric/conversion/detail/old_numeric_cast.hpp>
-
-#else
-
-#include <boost/type.hpp>
-#include <boost/numeric/conversion/converter.hpp>
-#include <boost/numeric/conversion/numeric_cast_traits.hpp>
-
-namespace boost
-{
-    template <typename Target, typename Source> 
-    inline Target numeric_cast( Source arg )
-    {
-        typedef numeric::conversion_traits<Target, Source>   conv_traits;
-        typedef numeric::numeric_cast_traits<Target, Source> cast_traits;
-        typedef boost::numeric::converter
-            <
-                Target,
-                Source, 
-                conv_traits,
-                typename cast_traits::overflow_policy, 
-                typename cast_traits::rounding_policy, 
-                boost::numeric::raw_converter< conv_traits >,
-                typename cast_traits::range_checking_policy
-            > converter;
-        return converter::convert(arg);
-    }
-    
-    using numeric::bad_numeric_cast;
-} // namespace boost
-
-#endif
-
-#endif
diff --git a/boost/numeric/conversion/conversion_traits.hpp b/boost/numeric/conversion/conversion_traits.hpp
deleted file mode 100644
index 6da6178..0000000
--- a/boost/numeric/conversion/conversion_traits.hpp
+++ /dev/null
@@ -1,39 +0,0 @@
-//  (c) Copyright Fernando Luis Cacciola Carballal 2000-2004
-//  Use, modification, and distribution is subject to the Boost Software
-//  License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-
-//  See library home page at http://www.boost.org/libs/numeric/conversion
-//
-// Contact the author at: fernando_cacciola at hotmail.com
-// 
-#ifndef BOOST_NUMERIC_CONVERSION_CONVERSION_TRAITS_FLC_12NOV2002_HPP
-#define BOOST_NUMERIC_CONVERSION_CONVERSION_TRAITS_FLC_12NOV2002_HPP
-
-#include "boost/numeric/conversion/detail/conversion_traits.hpp"
-#include "boost/detail/workaround.hpp"
-#include "boost/config.hpp"
-
-namespace boost { namespace numeric
-{
-
-template<class T, class S>
-struct conversion_traits 
-    : convdetail::get_conversion_traits<T,S>::type 
-{
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
-    typedef typename convdetail::get_conversion_traits<T,S>::type base_;
-    typedef typename base_::target_type     target_type;
-    typedef typename base_::source_type     source_type;
-    typedef typename base_::result_type     result_type;
-    typedef typename base_::argument_type   argument_type;
-#endif
-} ;
-
-} } // namespace boost::numeric
-
-#endif
-//
-///////////////////////////////////////////////////////////////////////////////////////////////
-
-
diff --git a/boost/numeric/conversion/converter.hpp b/boost/numeric/conversion/converter.hpp
deleted file mode 100644
index 331cadd..0000000
--- a/boost/numeric/conversion/converter.hpp
+++ /dev/null
@@ -1,68 +0,0 @@
-//  (c) Copyright Fernando Luis Cacciola Carballal 2000-2004
-//  Use, modification, and distribution is subject to the Boost Software
-//  License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-
-//  See library home page at http://www.boost.org/libs/numeric/conversion
-//
-// Contact the author at: fernando_cacciola at hotmail.com
-// 
-#ifndef BOOST_NUMERIC_CONVERSION_CONVERTER_FLC_12NOV2002_HPP
-#define BOOST_NUMERIC_CONVERSION_CONVERTER_FLC_12NOV2002_HPP
-
-#include "boost/numeric/conversion/conversion_traits.hpp"
-#include "boost/numeric/conversion/converter_policies.hpp"
-
-#include "boost/numeric/conversion/detail/converter.hpp"
-
-namespace boost { namespace numeric 
-{
-
-template<class T,
-         class S,
-         class Traits           = conversion_traits<T,S>,
-         class OverflowHandler  = def_overflow_handler,
-         class Float2IntRounder = Trunc< BOOST_DEDUCED_TYPENAME Traits::source_type>  ,
-         class RawConverter     = raw_converter<Traits>,
-         class UserRangeChecker = UseInternalRangeChecker
-        >
-struct converter : convdetail::get_converter_impl<Traits,
-                                                  OverflowHandler,
-                                                  Float2IntRounder,
-                                                  RawConverter,
-                                                  UserRangeChecker
-                                                 >::type
-{
-  typedef Traits traits ;
-
-  typedef typename Traits::argument_type argument_type ;
-  typedef typename Traits::result_type   result_type   ;
-
-  result_type operator() ( argument_type s ) const { return this->convert(s) ; }
-} ;
-
-
-
-template<class S,
-         class OverflowHandler  = def_overflow_handler,
-         class Float2IntRounder = Trunc<S>  ,
-         class UserRangeChecker = UseInternalRangeChecker
-        >
-struct make_converter_from
-{
-  template<class T,
-           class Traits       = conversion_traits<T,S>,
-           class RawConverter = raw_converter<Traits>
-          > 
-  struct to
-  {
-    typedef converter<T,S,Traits,OverflowHandler,Float2IntRounder,RawConverter,UserRangeChecker> type ;
-  } ;
-
-} ;
-
-} } // namespace boost::numeric
-
-#endif
-
-
diff --git a/boost/numeric/conversion/converter_policies.hpp b/boost/numeric/conversion/converter_policies.hpp
deleted file mode 100644
index e7a5e67..0000000
--- a/boost/numeric/conversion/converter_policies.hpp
+++ /dev/null
@@ -1,194 +0,0 @@
-//  (c) Copyright Fernando Luis Cacciola Carballal 2000-2004
-//  Use, modification, and distribution is subject to the Boost Software
-//  License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-
-//  See library home page at http://www.boost.org/libs/numeric/conversion
-//
-// Contact the author at: fernando_cacciola at hotmail.com
-//
-#ifndef BOOST_NUMERIC_CONVERSION_CONVERTER_POLICIES_FLC_12NOV2002_HPP
-#define BOOST_NUMERIC_CONVERSION_CONVERTER_POLICIES_FLC_12NOV2002_HPP
-
-#include <typeinfo> // for std::bad_cast
-
-#include <boost/config/no_tr1/cmath.hpp> // for std::floor and std::ceil
-#include <boost/throw_exception.hpp>
-
-#include <functional>
-
-#include "boost/type_traits/is_arithmetic.hpp"
-
-#include "boost/mpl/if.hpp"
-#include "boost/mpl/integral_c.hpp"
-
-namespace boost { namespace numeric
-{
-
-template<class S>
-struct Trunc
-{
-  typedef S source_type ;
-
-  typedef typename mpl::if_< is_arithmetic<S>,S,S const&>::type argument_type ;
-
-  static source_type nearbyint ( argument_type s )
-  {
-#if !defined(BOOST_NO_STDC_NAMESPACE)
-    using std::floor ;
-    using std::ceil  ;
-#endif
-
-    return s < static_cast<S>(0) ? ceil(s) : floor(s) ;
-  }
-
-  typedef mpl::integral_c< std::float_round_style, std::round_toward_zero> round_style ;
-} ;
-
-
-
-template<class S>
-struct Floor
-{
-  typedef S source_type ;
-
-  typedef typename mpl::if_< is_arithmetic<S>,S,S const&>::type argument_type ;
-
-  static source_type nearbyint ( argument_type s )
-  {
-#if !defined(BOOST_NO_STDC_NAMESPACE)
-    using std::floor ;
-#endif
-
-    return floor(s) ;
-  }
-
-  typedef mpl::integral_c< std::float_round_style, std::round_toward_neg_infinity> round_style ;
-} ;
-
-template<class S>
-struct Ceil
-{
-  typedef S source_type ;
-
-  typedef typename mpl::if_< is_arithmetic<S>,S,S const&>::type argument_type ;
-
-  static source_type nearbyint ( argument_type s )
-  {
-#if !defined(BOOST_NO_STDC_NAMESPACE)
-    using std::ceil ;
-#endif
-
-    return ceil(s) ;
-  }
-
-  typedef mpl::integral_c< std::float_round_style, std::round_toward_infinity> round_style ;
-} ;
-
-template<class S>
-struct RoundEven
-{
-  typedef S source_type ;
-
-  typedef typename mpl::if_< is_arithmetic<S>,S,S const&>::type argument_type ;
-
-  static source_type nearbyint ( argument_type s )
-  {
-    // Algorithm contributed by Guillaume Melquiond
-
-#if !defined(BOOST_NO_STDC_NAMESPACE)
-    using std::floor ;
-    using std::ceil  ;
-#endif
-
-    // only works inside the range not at the boundaries
-    S prev = floor(s);
-    S next = ceil(s);
-
-    S rt = (s - prev) - (next - s); // remainder type
-
-    S const zero(0.0);
-    S const two(2.0);
-
-    if ( rt < zero )
-      return prev;
-    else if ( rt > zero )
-      return next;
-    else
-    {
-      bool is_prev_even = two * floor(prev / two) == prev ;
-      return ( is_prev_even ? prev : next ) ;
-    }
-  }
-
-  typedef mpl::integral_c< std::float_round_style, std::round_to_nearest> round_style ;
-} ;
-
-
-enum range_check_result
-{
-  cInRange     = 0 ,
-  cNegOverflow = 1 ,
-  cPosOverflow = 2
-} ;
-
-class bad_numeric_cast : public std::bad_cast
-{
-  public:
-
-    virtual const char * what() const throw()
-      {  return "bad numeric conversion: overflow"; }
-};
-
-class negative_overflow : public bad_numeric_cast
-{
-  public:
-
-    virtual const char * what() const throw()
-      {  return "bad numeric conversion: negative overflow"; }
-};
-class positive_overflow : public bad_numeric_cast
-{
-  public:
-
-    virtual const char * what() const throw()
-      { return "bad numeric conversion: positive overflow"; }
-};
-
-struct def_overflow_handler
-{
-  void operator() ( range_check_result r ) // throw(negative_overflow,positive_overflow)
-  {
-#ifndef BOOST_NO_EXCEPTIONS
-    if ( r == cNegOverflow )
-      throw negative_overflow() ;
-    else if ( r == cPosOverflow )
-           throw positive_overflow() ;
-#else
-    if ( r == cNegOverflow )
-      ::boost::throw_exception(negative_overflow()) ;
-    else if ( r == cPosOverflow )
-           ::boost::throw_exception(positive_overflow()) ;
-#endif
-  }
-} ;
-
-struct silent_overflow_handler
-{
-  void operator() ( range_check_result ) {} // throw()
-} ;
-
-template<class Traits>
-struct raw_converter
-{
-  typedef typename Traits::result_type   result_type   ;
-  typedef typename Traits::argument_type argument_type ;
-
-  static result_type low_level_convert ( argument_type s ) { return static_cast<result_type>(s) ; }
-} ;
-
-struct UseInternalRangeChecker {} ;
-
-} } // namespace boost::numeric
-
-#endif
diff --git a/boost/numeric/conversion/detail/bounds.hpp b/boost/numeric/conversion/detail/bounds.hpp
deleted file mode 100644
index 67342b8..0000000
--- a/boost/numeric/conversion/detail/bounds.hpp
+++ /dev/null
@@ -1,58 +0,0 @@
-//  (c) Copyright Fernando Luis Cacciola Carballal 2000-2004
-//  Use, modification, and distribution is subject to the Boost Software
-//  License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-
-//  See library home page at http://www.boost.org/libs/numeric/conversion
-//
-// Contact the author at: fernando_cacciola at hotmail.com
-// 
-#ifndef BOOST_NUMERIC_CONVERSION_BOUNDS_DETAIL_FLC_12NOV2002_HPP
-#define BOOST_NUMERIC_CONVERSION_BOUNDS_DETAIL_FLC_12NOV2002_HPP
-
-#include "boost/limits.hpp"
-#include "boost/config.hpp"
-#include "boost/mpl/if.hpp"
-
-namespace boost { namespace numeric { namespace boundsdetail
-{
-  template<class N>
-  class Integral
-  {
-      typedef std::numeric_limits<N> limits ;
-
-    public :
-    
-      static N lowest  () { return limits::min BOOST_PREVENT_MACRO_SUBSTITUTION (); }
-      static N highest () { return limits::max BOOST_PREVENT_MACRO_SUBSTITUTION (); }
-      static N smallest() { return static_cast<N>(1); }
-  } ;
-
-  template<class N>
-  class Float
-  {
-      typedef std::numeric_limits<N> limits ;
-
-    public :
-    
-      static N lowest  () { return static_cast<N>(-limits::max BOOST_PREVENT_MACRO_SUBSTITUTION ()) ; }
-      static N highest () { return limits::max BOOST_PREVENT_MACRO_SUBSTITUTION (); }
-      static N smallest() { return limits::min BOOST_PREVENT_MACRO_SUBSTITUTION (); }
-  } ;
-
-  template<class N>
-  struct get_impl
-  {
-    typedef mpl::bool_< ::std::numeric_limits<N>::is_integer > is_int ;
-
-    typedef Integral<N> impl_int   ;
-    typedef Float   <N> impl_float ;
-
-    typedef typename mpl::if_<is_int,impl_int,impl_float>::type type ;
-  } ;
-
-} } } // namespace boost::numeric::boundsdetail.
-
-#endif
-//
-///////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/boost/numeric/conversion/detail/conversion_traits.hpp b/boost/numeric/conversion/detail/conversion_traits.hpp
deleted file mode 100644
index ed25349..0000000
--- a/boost/numeric/conversion/detail/conversion_traits.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-//  (c) Copyright Fernando Luis Cacciola Carballal 2000-2004
-//  Use, modification, and distribution is subject to the Boost Software
-//  License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-
-//  See library home page at http://www.boost.org/libs/numeric/conversion
-//
-// Contact the author at: fernando_cacciola at hotmail.com
-// 
-#ifndef BOOST_NUMERIC_CONVERSION_DETAIL_CONVERSION_TRAITS_FLC_12NOV2002_HPP
-#define BOOST_NUMERIC_CONVERSION_DETAIL_CONVERSION_TRAITS_FLC_12NOV2002_HPP
-
-#include "boost/type_traits/is_arithmetic.hpp"
-#include "boost/type_traits/is_same.hpp"
-#include "boost/type_traits/remove_cv.hpp"
-
-#include "boost/numeric/conversion/detail/meta.hpp"
-#include "boost/numeric/conversion/detail/int_float_mixture.hpp"
-#include "boost/numeric/conversion/detail/sign_mixture.hpp"
-#include "boost/numeric/conversion/detail/udt_builtin_mixture.hpp"
-#include "boost/numeric/conversion/detail/is_subranged.hpp"
-
-namespace boost { namespace numeric { namespace convdetail
-{
-  //-------------------------------------------------------------------
-  // Implementation of the Conversion Traits for T != S
-  //
-  // This is a VISIBLE base class of the user-level conversion_traits<> class.
-  //-------------------------------------------------------------------
-  template<class T,class S>
-  struct non_trivial_traits_impl
-  {
-    typedef typename get_int_float_mixture   <T,S>::type int_float_mixture ;
-    typedef typename get_sign_mixture        <T,S>::type sign_mixture ;
-    typedef typename get_udt_builtin_mixture <T,S>::type udt_builtin_mixture ;
-
-    typedef typename get_is_subranged<T,S>::type subranged ;
-
-    typedef mpl::false_ trivial ;
-
-    typedef T target_type ;
-    typedef S source_type ;
-    typedef T result_type ;
-
-    typedef typename mpl::if_< is_arithmetic<S>, S, S const&>::type argument_type ;
-
-    typedef typename mpl::if_<subranged,S,T>::type supertype ;
-    typedef typename mpl::if_<subranged,T,S>::type subtype   ;
-  } ;
-
-  //-------------------------------------------------------------------
-  // Implementation of the Conversion Traits for T == S
-  //
-  // This is a VISIBLE base class of the user-level conversion_traits<> class.
-  //-------------------------------------------------------------------
-  template<class N>
-  struct trivial_traits_impl
-  {
-    typedef typename get_int_float_mixture  <N,N>::type int_float_mixture ;
-    typedef typename get_sign_mixture       <N,N>::type sign_mixture ;
-    typedef typename get_udt_builtin_mixture<N,N>::type udt_builtin_mixture ;
-
-    typedef mpl::false_ subranged ;
-    typedef mpl::true_  trivial ;
-
-    typedef N        target_type ;
-    typedef N        source_type ;
-    typedef N const& result_type ;
-    typedef N const& argument_type ;
-
-    typedef N supertype ;
-    typedef N subtype  ;
-
-  } ;
-
-  //-------------------------------------------------------------------
-  // Top level implementation selector.
-  //-------------------------------------------------------------------
-  template<class T, class S>
-  struct get_conversion_traits
-  {
-    typedef typename remove_cv<T>::type target_type ;
-    typedef typename remove_cv<S>::type source_type ;
-
-    typedef typename is_same<target_type,source_type>::type is_trivial ;
-
-    typedef trivial_traits_impl    <target_type>             trivial_imp ;
-    typedef non_trivial_traits_impl<target_type,source_type> non_trivial_imp ;
-
-    typedef typename mpl::if_<is_trivial,trivial_imp,non_trivial_imp>::type type ;
-  } ;
-
-} } } // namespace boost::numeric::convdetail
-
-#endif
-
-
diff --git a/boost/numeric/conversion/detail/converter.hpp b/boost/numeric/conversion/detail/converter.hpp
deleted file mode 100644
index 10550f8..0000000
--- a/boost/numeric/conversion/detail/converter.hpp
+++ /dev/null
@@ -1,602 +0,0 @@
-//  (c) Copyright Fernando Luis Cacciola Carballal 2000-2004
-//  Use, modification, and distribution is subject to the Boost Software
-//  License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-
-//  See library home page at http://www.boost.org/libs/numeric/conversion
-//
-// Contact the author at: fernando_cacciola at hotmail.com
-//
-#ifndef BOOST_NUMERIC_CONVERSION_DETAIL_CONVERTER_FLC_12NOV2002_HPP
-#define BOOST_NUMERIC_CONVERSION_DETAIL_CONVERTER_FLC_12NOV2002_HPP
-
-#include <functional>
-
-#include "boost/numeric/conversion/detail/meta.hpp"
-#include "boost/numeric/conversion/detail/conversion_traits.hpp"
-#include "boost/numeric/conversion/bounds.hpp"
-
-#include "boost/type_traits/is_same.hpp"
-
-#include "boost/mpl/integral_c.hpp"
-
-namespace boost { namespace numeric { namespace convdetail
-{
-  // Integral Constants representing rounding modes
-  typedef mpl::integral_c<std::float_round_style, std::round_toward_zero>         round2zero_c ;
-  typedef mpl::integral_c<std::float_round_style, std::round_to_nearest>          round2nearest_c ;
-  typedef mpl::integral_c<std::float_round_style, std::round_toward_infinity>     round2inf_c ;
-  typedef mpl::integral_c<std::float_round_style, std::round_toward_neg_infinity> round2neg_inf_c ;
-
-  // Metafunction:
-  //
-  //   for_round_style<RoundStyle,RoundToZero,RoundToNearest,RoundToInf,RoundToNegInf>::type
-  //
-  // {RoundStyle} Integral Constant specifying a round style as declared above.
-  // {RoundToZero,RoundToNearest,RoundToInf,RoundToNegInf} arbitrary types.
-  //
-  // Selects one of the 4 types according to the value of RoundStyle.
-  //
-  template<class RoundStyle,class RoundToZero,class RoundToNearest,class RoundToInf,class RoundToNegInf>
-  struct for_round_style
-  {
-    typedef ct_switch4<RoundStyle
-                       , round2zero_c, round2nearest_c, round2inf_c // round2neg_inf_c
-                       , RoundToZero , RoundToNearest , RoundToInf , RoundToNegInf
-                      > selector ;
-
-    typedef typename selector::type type ;
-  } ;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-//--------------------------------------------------------------------------
-//                             Range Checking Logic.
-//
-// The range checking logic is built up by combining 1 or 2 predicates.
-// Each predicate is encapsulated in a template class and exposes
-// the static member function 'apply'.
-//
-//--------------------------------------------------------------------------
-
-
-  // Because a particular logic can combine either 1 or two predicates, the following
-  // tags are used to allow the predicate applier to receive 2 preds, but optimize away
-  // one of them if it is 'non-applicable'
-  struct non_applicable { typedef mpl::false_ do_apply ; } ;
-  struct applicable     { typedef mpl::true_  do_apply ; } ;
-
-
-  //--------------------------------------------------------------------------
-  //
-  //                      Range Checking Logic implementations.
-  //
-  // The following classes, collectivelly named 'Predicates', are instantiated within
-  // the corresponding range checkers.
-  // Their static member function 'apply' is called to perform the actual range checking logic.
-  //--------------------------------------------------------------------------
-
-    // s < Lowest(T) ? cNegOverflow : cInRange
-    //
-    template<class Traits>
-    struct LT_LoT : applicable
-    {
-      typedef typename Traits::target_type T ;
-      typedef typename Traits::source_type S ;
-      typedef typename Traits::argument_type argument_type ;
-
-      static range_check_result apply ( argument_type s )
-      {
-        return s < static_cast<S>(bounds<T>::lowest()) ? cNegOverflow : cInRange ;
-      }
-    } ;
-
-    // s < 0 ? cNegOverflow : cInRange
-    //
-    template<class Traits>
-    struct LT_Zero : applicable
-    {
-      typedef typename Traits::source_type S ;
-      typedef typename Traits::argument_type argument_type ;
-
-      static range_check_result apply ( argument_type s )
-      {
-        return s < static_cast<S>(0) ? cNegOverflow : cInRange ;
-      }
-    } ;
-
-    // s <= Lowest(T)-1 ? cNegOverflow : cInRange
-    //
-    template<class Traits>
-    struct LE_PrevLoT : applicable
-    {
-      typedef typename Traits::target_type T ;
-      typedef typename Traits::source_type S ;
-      typedef typename Traits::argument_type argument_type ;
-
-      static range_check_result apply ( argument_type s )
-      {
-        return s <= static_cast<S>(bounds<T>::lowest()) - static_cast<S>(1.0)
-                 ? cNegOverflow : cInRange ;
-      }
-    } ;
-
-    // s < Lowest(T)-0.5 ? cNegOverflow : cInRange
-    //
-    template<class Traits>
-    struct LT_HalfPrevLoT : applicable
-    {
-      typedef typename Traits::target_type T ;
-      typedef typename Traits::source_type S ;
-      typedef typename Traits::argument_type argument_type ;
-
-      static range_check_result apply ( argument_type s )
-      {
-        return s < static_cast<S>(bounds<T>::lowest()) - static_cast<S>(0.5)
-                 ? cNegOverflow : cInRange ;
-      }
-    } ;
-
-    // s > Highest(T) ? cPosOverflow : cInRange
-    //
-    template<class Traits>
-    struct GT_HiT : applicable
-    {
-      typedef typename Traits::target_type T ;
-      typedef typename Traits::source_type S ;
-      typedef typename Traits::argument_type argument_type ;
-
-      static range_check_result apply ( argument_type s )
-      {
-        return s > static_cast<S>(bounds<T>::highest())
-                 ? cPosOverflow : cInRange ;
-      }
-    } ;
-
-    // s >= Lowest(T) + 1 ? cPosOverflow : cInRange
-    //
-    template<class Traits>
-    struct GE_SuccHiT : applicable
-    {
-      typedef typename Traits::target_type T ;
-      typedef typename Traits::source_type S ;
-      typedef typename Traits::argument_type argument_type ;
-
-      static range_check_result apply ( argument_type s )
-      {
-        return s >= static_cast<S>(bounds<T>::highest()) + static_cast<S>(1.0)
-                 ? cPosOverflow : cInRange ;
-      }
-    } ;
-
-    // s >= Lowest(T) + 0.5 ? cPosgOverflow : cInRange
-    //
-    template<class Traits>
-    struct GT_HalfSuccHiT : applicable
-    {
-      typedef typename Traits::target_type T ;
-      typedef typename Traits::source_type S ;
-      typedef typename Traits::argument_type argument_type ;
-
-      static range_check_result apply ( argument_type s )
-      {
-        return s >= static_cast<S>(bounds<T>::highest()) + static_cast<S>(0.5)
-                 ? cPosOverflow : cInRange ;
-      }
-    } ;
-
-
-  //--------------------------------------------------------------------------
-  //
-  // Predicate Combiner.
-  //
-  // This helper classes are used to possibly combine the range checking logic
-  // individually performed by the predicates
-  //
-  //--------------------------------------------------------------------------
-
-
-    // Applies both predicates: first 'PredA', and if it equals 'cInRange', 'PredB'
-    template<class PredA, class PredB>
-    struct applyBoth
-    {
-      typedef typename PredA::argument_type argument_type ;
-
-      static range_check_result apply ( argument_type s )
-      {
-        range_check_result r = PredA::apply(s) ;
-        if ( r == cInRange )
-          r = PredB::apply(s);
-        return r ;
-      }
-    } ;
-
-    template<class PredA, class PredB>
-    struct combine
-    {
-      typedef applyBoth<PredA,PredB> Both ;
-      typedef void                   NNone ; // 'None' is defined as a macro in (/usr/X11R6/include/X11/X.h)
-
-      typedef typename PredA::do_apply do_applyA ;
-      typedef typename PredB::do_apply do_applyB ;
-
-      typedef typename for_both<do_applyA, do_applyB, Both, PredA, PredB, NNone>::type type ;
-    } ;
-
-
-
-
-
-
-
-
-
-
-
-
-//--------------------------------------------------------------------------
-//                             Range Checker classes.
-//
-// The following classes are VISIBLE base classes of the user-level converter<> class.
-// They supply the optimized 'out_of_range()' and 'validate_range()' static member functions
-// visible in the user interface.
-//
-//--------------------------------------------------------------------------
-
-  // Dummy range checker.
-  template<class Traits>
-  struct dummy_range_checker
-  {
-    typedef typename Traits::argument_type argument_type ;
-
-    static range_check_result out_of_range ( argument_type ) { return cInRange ; }
-    static void validate_range ( argument_type ) {}
-  } ;
-
-  // Generic range checker.
-  //
-  // All the range checking logic for all possible combinations of source and target
-  // can be arranged in terms of one or two predicates, which test overflow on both neg/pos 'sides'
-  // of the ranges.
-  //
-  // These predicates are given here as IsNegOverflow and IsPosOverflow.
-  //
-  template<class Traits, class IsNegOverflow, class IsPosOverflow, class OverflowHandler>
-  struct generic_range_checker
-  {
-    typedef OverflowHandler overflow_handler ;
-
-    typedef typename Traits::argument_type argument_type ;
-
-    static range_check_result out_of_range ( argument_type s )
-    {
-      typedef typename combine<IsNegOverflow,IsPosOverflow>::type Predicate ;
-
-      return Predicate::apply(s);
-    }
-
-    static void validate_range ( argument_type s )
-      { OverflowHandler()( out_of_range(s) ) ; }
-  } ;
-
-
-
-//--------------------------------------------------------------------------
-//
-// Selectors for the optimized Range Checker class.
-//
-//--------------------------------------------------------------------------
-
-  template<class Traits,class OverflowHandler>
-  struct GetRC_Sig2Sig_or_Unsig2Unsig
-  {
-    typedef dummy_range_checker<Traits> Dummy ;
-
-    typedef LT_LoT<Traits> Pred1 ;
-    typedef GT_HiT<Traits> Pred2 ;
-
-    typedef generic_range_checker<Traits,Pred1,Pred2,OverflowHandler> Normal ;
-
-    typedef typename Traits::subranged subranged ;
-
-    typedef typename mpl::if_<subranged,Normal,Dummy>::type type ;
-  } ;
-
-  template<class Traits, class OverflowHandler>
-  struct GetRC_Sig2Unsig
-  {
-    typedef LT_Zero<Traits> Pred1 ;
-    typedef GT_HiT <Traits> Pred2 ;
-
-    typedef generic_range_checker<Traits,Pred1,Pred2,OverflowHandler> ChoiceA ;
-
-    typedef generic_range_checker<Traits,Pred1,non_applicable,OverflowHandler> ChoiceB ;
-
-    typedef typename Traits::target_type T ;
-    typedef typename Traits::source_type S ;
-
-    typedef typename subranged_Unsig2Sig<S,T>::type oposite_subranged ;
-
-    typedef typename mpl::not_<oposite_subranged>::type positively_subranged ;
-
-    typedef typename mpl::if_<positively_subranged,ChoiceA,ChoiceB>::type type ;
-  } ;
-
-  template<class Traits, class OverflowHandler>
-  struct GetRC_Unsig2Sig
-  {
-    typedef GT_HiT<Traits> Pred1 ;
-
-    typedef generic_range_checker<Traits,non_applicable,Pred1,OverflowHandler> type ;
-  } ;
-
-  template<class Traits,class OverflowHandler>
-  struct GetRC_Int2Int
-  {
-    typedef GetRC_Sig2Sig_or_Unsig2Unsig<Traits,OverflowHandler> Sig2SigQ     ;
-    typedef GetRC_Sig2Unsig             <Traits,OverflowHandler> Sig2UnsigQ   ;
-    typedef GetRC_Unsig2Sig             <Traits,OverflowHandler> Unsig2SigQ   ;
-    typedef Sig2SigQ                                             Unsig2UnsigQ ;
-
-    typedef typename Traits::sign_mixture sign_mixture ;
-
-    typedef typename
-      for_sign_mixture<sign_mixture,Sig2SigQ,Sig2UnsigQ,Unsig2SigQ,Unsig2UnsigQ>::type
-        selector ;
-
-    typedef typename selector::type type ;
-  } ;
-
-  template<class Traits>
-  struct GetRC_Int2Float
-  {
-    typedef dummy_range_checker<Traits> type ;
-  } ;
-
-  template<class Traits, class OverflowHandler, class Float2IntRounder>
-  struct GetRC_Float2Int
-  {
-    typedef LE_PrevLoT    <Traits> Pred1 ;
-    typedef GE_SuccHiT    <Traits> Pred2 ;
-    typedef LT_HalfPrevLoT<Traits> Pred3 ;
-    typedef GT_HalfSuccHiT<Traits> Pred4 ;
-    typedef GT_HiT        <Traits> Pred5 ;
-    typedef LT_LoT        <Traits> Pred6 ;
-
-    typedef generic_range_checker<Traits,Pred1,Pred2,OverflowHandler> ToZero    ;
-    typedef generic_range_checker<Traits,Pred3,Pred4,OverflowHandler> ToNearest ;
-    typedef generic_range_checker<Traits,Pred1,Pred5,OverflowHandler> ToInf     ;
-    typedef generic_range_checker<Traits,Pred6,Pred2,OverflowHandler> ToNegInf  ;
-
-    typedef typename Float2IntRounder::round_style round_style ;
-
-    typedef typename for_round_style<round_style,ToZero,ToNearest,ToInf,ToNegInf>::type type ;
-  } ;
-
-  template<class Traits, class OverflowHandler>
-  struct GetRC_Float2Float
-  {
-    typedef dummy_range_checker<Traits> Dummy ;
-
-    typedef LT_LoT<Traits> Pred1 ;
-    typedef GT_HiT<Traits> Pred2 ;
-
-    typedef generic_range_checker<Traits,Pred1,Pred2,OverflowHandler> Normal ;
-
-    typedef typename Traits::subranged subranged ;
-
-    typedef typename mpl::if_<subranged,Normal,Dummy>::type type ;
-  } ;
-
-  template<class Traits, class OverflowHandler, class Float2IntRounder>
-  struct GetRC_BuiltIn2BuiltIn
-  {
-    typedef GetRC_Int2Int<Traits,OverflowHandler>                    Int2IntQ ;
-    typedef GetRC_Int2Float<Traits>                                  Int2FloatQ ;
-    typedef GetRC_Float2Int<Traits,OverflowHandler,Float2IntRounder> Float2IntQ ;
-    typedef GetRC_Float2Float<Traits,OverflowHandler>                Float2FloatQ ;
-
-    typedef typename Traits::int_float_mixture int_float_mixture ;
-
-    typedef typename for_int_float_mixture<int_float_mixture, Int2IntQ, Int2FloatQ, Float2IntQ, Float2FloatQ>::type selector ;
-
-    typedef typename selector::type type ;
-  } ;
-
-  template<class Traits, class OverflowHandler, class Float2IntRounder>
-  struct GetRC
-  {
-    typedef GetRC_BuiltIn2BuiltIn<Traits,OverflowHandler,Float2IntRounder> BuiltIn2BuiltInQ ;
-
-    typedef dummy_range_checker<Traits> Dummy ;
-
-    typedef mpl::identity<Dummy> DummyQ ;
-
-    typedef typename Traits::udt_builtin_mixture udt_builtin_mixture ;
-
-    typedef typename for_udt_builtin_mixture<udt_builtin_mixture,BuiltIn2BuiltInQ,DummyQ,DummyQ,DummyQ>::type selector ;
-
-    typedef typename selector::type type ;
-  } ;
-
-
-
-
-//--------------------------------------------------------------------------
-//                             Converter classes.
-//
-// The following classes are VISIBLE base classes of the user-level converter<> class.
-// They supply the optimized 'nearbyint()' and 'convert()' static member functions
-// visible in the user interface.
-//
-//--------------------------------------------------------------------------
-
-  //
-  // Trivial Converter : used when (cv-unqualified) T == (cv-unqualified)  S
-  //
-  template<class Traits>
-  struct trivial_converter_impl : public std::unary_function<  BOOST_DEDUCED_TYPENAME Traits::argument_type
-                                                              ,BOOST_DEDUCED_TYPENAME Traits::result_type
-                                                            >
-                                 ,public dummy_range_checker<Traits>
-  {
-    typedef Traits traits ;
-
-    typedef typename Traits::source_type   source_type   ;
-    typedef typename Traits::argument_type argument_type ;
-    typedef typename Traits::result_type   result_type   ;
-
-    static result_type low_level_convert ( argument_type s ) { return s ; }
-    static source_type nearbyint         ( argument_type s ) { return s ; }
-    static result_type convert           ( argument_type s ) { return s ; }
-  } ;
-
-
-  //
-  // Rounding Converter : used for float to integral conversions.
-  //
-  template<class Traits,class RangeChecker,class RawConverter,class Float2IntRounder>
-  struct rounding_converter : public std::unary_function<  BOOST_DEDUCED_TYPENAME Traits::argument_type
-                                                          ,BOOST_DEDUCED_TYPENAME Traits::result_type
-                                                        >
-                             ,public RangeChecker
-                             ,public Float2IntRounder
-                             ,public RawConverter
-  {
-    typedef RangeChecker     RangeCheckerBase ;
-    typedef Float2IntRounder Float2IntRounderBase ;
-    typedef RawConverter     RawConverterBase ;
-
-    typedef Traits traits ;
-
-    typedef typename Traits::source_type   source_type   ;
-    typedef typename Traits::argument_type argument_type ;
-    typedef typename Traits::result_type   result_type   ;
-
-    static result_type convert ( argument_type s )
-    {
-      RangeCheckerBase::validate_range(s);
-      source_type s1 = Float2IntRounderBase::nearbyint(s);
-      return RawConverterBase::low_level_convert(s1);
-    }
-  } ;
-
-
-  //
-  // Non-Rounding Converter : used for all other conversions.
-  //
-  template<class Traits,class RangeChecker,class RawConverter>
-  struct non_rounding_converter : public std::unary_function< BOOST_DEDUCED_TYPENAME Traits::argument_type
-                                                             ,BOOST_DEDUCED_TYPENAME Traits::result_type
-                                                           >
-                                 ,public RangeChecker
-                                 ,public RawConverter
-  {
-    typedef RangeChecker RangeCheckerBase ;
-    typedef RawConverter RawConverterBase ;
-
-    typedef Traits traits ;
-
-    typedef typename Traits::source_type   source_type   ;
-    typedef typename Traits::argument_type argument_type ;
-    typedef typename Traits::result_type   result_type   ;
-
-    static source_type nearbyint ( argument_type s ) { return s ; }
-
-    static result_type convert ( argument_type s )
-    {
-      RangeCheckerBase::validate_range(s);
-      return RawConverterBase::low_level_convert(s);
-    }
-  } ;
-
-
-
-
-//--------------------------------------------------------------------------
-//
-// Selectors for the optimized Converter class.
-//
-//--------------------------------------------------------------------------
-
-  template<class Traits,class OverflowHandler,class Float2IntRounder,class RawConverter, class UserRangeChecker>
-  struct get_non_trivial_converter
-  {
-    typedef GetRC<Traits,OverflowHandler,Float2IntRounder> InternalRangeCheckerQ ;
-
-    typedef is_same<UserRangeChecker,UseInternalRangeChecker> use_internal_RC ;
-
-    typedef mpl::identity<UserRangeChecker> UserRangeCheckerQ ;
-
-    typedef typename
-      mpl::eval_if<use_internal_RC,InternalRangeCheckerQ,UserRangeCheckerQ>::type
-        RangeChecker ;
-
-    typedef non_rounding_converter<Traits,RangeChecker,RawConverter>              NonRounding ;
-    typedef rounding_converter<Traits,RangeChecker,RawConverter,Float2IntRounder> Rounding ;
-
-    typedef mpl::identity<NonRounding> NonRoundingQ ;
-    typedef mpl::identity<Rounding>    RoundingQ    ;
-
-    typedef typename Traits::int_float_mixture int_float_mixture ;
-
-    typedef typename
-      for_int_float_mixture<int_float_mixture, NonRoundingQ, NonRoundingQ, RoundingQ, NonRoundingQ>::type
-        selector ;
-
-    typedef typename selector::type type ;
-  } ;
-
-  template< class Traits
-           ,class OverflowHandler
-           ,class Float2IntRounder
-           ,class RawConverter
-           ,class UserRangeChecker
-          >
-  struct get_converter_impl
-  {
-#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT( 0x0561 ) )
-    // bcc55 prefers sometimes template parameters to be explicit local types.
-    // (notice that is is illegal to reuse the names like this)
-    typedef Traits           Traits ;
-    typedef OverflowHandler  OverflowHandler ;
-    typedef Float2IntRounder Float2IntRounder ;
-    typedef RawConverter     RawConverter ;
-    typedef UserRangeChecker UserRangeChecker ;
-#endif
-
-    typedef trivial_converter_impl<Traits> Trivial ;
-    typedef mpl::identity        <Trivial> TrivialQ ;
-
-    typedef get_non_trivial_converter< Traits
-                                      ,OverflowHandler
-                                      ,Float2IntRounder
-                                      ,RawConverter
-                                      ,UserRangeChecker
-                                     > NonTrivialQ ;
-
-    typedef typename Traits::trivial trivial ;
-
-    typedef typename mpl::eval_if<trivial,TrivialQ,NonTrivialQ>::type type ;
-  } ;
-
-} } } // namespace boost::numeric::convdetail
-
-#endif
-
-
diff --git a/boost/numeric/conversion/detail/int_float_mixture.hpp b/boost/numeric/conversion/detail/int_float_mixture.hpp
deleted file mode 100644
index 464e527..0000000
--- a/boost/numeric/conversion/detail/int_float_mixture.hpp
+++ /dev/null
@@ -1,72 +0,0 @@
-//  (c) Copyright Fernando Luis Cacciola Carballal 2000-2004
-//  Use, modification, and distribution is subject to the Boost Software
-//  License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-
-//  See library home page at http://www.boost.org/libs/numeric/conversion
-//
-// Contact the author at: fernando_cacciola at hotmail.com
-// 
-#ifndef BOOST_NUMERIC_CONVERSION_DETAIL_INT_FLOAT_MIXTURE_FLC_12NOV2002_HPP
-#define BOOST_NUMERIC_CONVERSION_DETAIL_INT_FLOAT_MIXTURE_FLC_12NOV2002_HPP
-
-#include "boost/config.hpp"
-#include "boost/limits.hpp"
-
-#include "boost/numeric/conversion/int_float_mixture_enum.hpp"
-#include "boost/numeric/conversion/detail/meta.hpp"
-
-#include "boost/mpl/integral_c.hpp"
-
-namespace boost { namespace numeric { namespace convdetail
-{
-  // Integral Constants for 'IntFloatMixture'
-  typedef mpl::integral_c<int_float_mixture_enum, integral_to_integral> int2int_c ;
-  typedef mpl::integral_c<int_float_mixture_enum, integral_to_float>    int2float_c ;
-  typedef mpl::integral_c<int_float_mixture_enum, float_to_integral>    float2int_c ;
-  typedef mpl::integral_c<int_float_mixture_enum, float_to_float>       float2float_c ;
-
-  // Metafunction:
-  //
-  //   get_int_float_mixture<T,S>::type
-  //
-  // Selects the appropriate Int-Float Mixture Integral Constant for the combination T,S.
-  //
-  template<class T,class S>
-  struct get_int_float_mixture
-  {
-    typedef mpl::bool_< ::std::numeric_limits<S>::is_integer > S_int ;
-    typedef mpl::bool_< ::std::numeric_limits<T>::is_integer > T_int ;
-
-    typedef typename
-      for_both<S_int, T_int, int2int_c, int2float_c, float2int_c, float2float_c>::type
-        type ;
-  } ;
-
-  // Metafunction:
-  //
-  //   for_int_float_mixture<Mixture,int_int,int_float,float_int,float_float>::type
-  //
-  // {Mixture} is one of the Integral Constants for Mixture, declared above.
-  // {int_int,int_float,float_int,float_float} are aribtrary types. (not metafunctions)
-  //
-  // According to the value of 'IntFloatMixture', selects the corresponding type.
-  //
-  template<class IntFloatMixture, class Int2Int, class Int2Float, class Float2Int, class Float2Float>
-  struct for_int_float_mixture
-  {
-    typedef typename
-      ct_switch4<IntFloatMixture
-                 ,int2int_c, int2float_c, float2int_c  // default
-                 ,Int2Int  , Int2Float  , Float2Int  , Float2Float
-                >::type
-        type ;
-  } ;
-
-} } } // namespace boost::numeric::convdetail
-
-#endif
-//
-///////////////////////////////////////////////////////////////////////////////////////////////
-
-
diff --git a/boost/numeric/conversion/detail/is_subranged.hpp b/boost/numeric/conversion/detail/is_subranged.hpp
deleted file mode 100644
index b5e7fe8..0000000
--- a/boost/numeric/conversion/detail/is_subranged.hpp
+++ /dev/null
@@ -1,234 +0,0 @@
-//  (c) Copyright Fernando Luis Cacciola Carballal 2000-2004
-//  Use, modification, and distribution is subject to the Boost Software
-//  License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-
-//  See library home page at http://www.boost.org/libs/numeric/conversion
-//
-// Contact the author at: fernando_cacciola at hotmail.com
-// 
-#ifndef BOOST_NUMERIC_CONVERSION_DETAIL_IS_SUBRANGED_FLC_12NOV2002_HPP
-#define BOOST_NUMERIC_CONVERSION_DETAIL_IS_SUBRANGED_FLC_12NOV2002_HPP
-
-#include "boost/config.hpp"
-#include "boost/limits.hpp"
-
-#include "boost/mpl/int.hpp"
-#include "boost/mpl/multiplies.hpp"
-#include "boost/mpl/less.hpp"
-#include "boost/mpl/equal_to.hpp"
-
-#include "boost/type_traits/is_same.hpp"
-
-#include "boost/numeric/conversion/detail/meta.hpp"
-#include "boost/numeric/conversion/detail/int_float_mixture.hpp"
-#include "boost/numeric/conversion/detail/sign_mixture.hpp"
-#include "boost/numeric/conversion/detail/udt_builtin_mixture.hpp"
-
-namespace boost { namespace numeric { namespace convdetail
-{
-  //---------------------------------------------------------------
-  // Implementations of the compile time predicate "T is subranged"
-  //---------------------------------------------------------------
-
-    // for integral to integral conversions
-    template<class T,class S>
-    struct subranged_Sig2Unsig
-    {
-      // Signed to unsigned conversions are 'subranged' because of possible loose
-      // of negative values.
-      typedef mpl::true_ type ;
-    } ;
-
-    // for unsigned integral to signed integral conversions
-    template<class T,class S>
-    struct subranged_Unsig2Sig
-    {
-       // IMPORTANT NOTE:
-       //
-       // This code assumes that signed/unsigned integral values are represented
-       // such that:
-       //
-       //  numeric_limits<signed T>::digits + 1 == numeric_limits<unsigned T>::digits
-       //
-       // The '+1' is required since numeric_limits<>::digits gives 1 bit less for signed integral types.
-       //
-       // This fact is used by the following logic:
-       //
-       //  if ( (numeric_limits<T>::digits+1) < (2*numeric_limits<S>::digits) )
-       //    then the conversion is subranged.
-       //
-
-       typedef mpl::int_< ::std::numeric_limits<S>::digits > S_digits ;
-       typedef mpl::int_< ::std::numeric_limits<T>::digits > T_digits ;
-
-       // T is signed, so take digits+1
-       typedef typename T_digits::next u_T_digits ;
-
-       typedef mpl::int_<2> Two ;
-
-       typedef typename mpl::multiplies<S_digits,Two>::type S_digits_times_2 ;
-
-       typedef typename mpl::less<u_T_digits,S_digits_times_2>::type type ;
-    } ;
-
-    // for integral to integral conversions of the same sign.
-    template<class T,class S>
-    struct subranged_SameSign
-    {
-       // An integral conversion of the same sign is subranged if digits(T) < digits(S).
-
-       typedef mpl::int_< ::std::numeric_limits<S>::digits > S_digits ;
-       typedef mpl::int_< ::std::numeric_limits<T>::digits > T_digits ;
-
-       typedef typename mpl::less<T_digits,S_digits>::type type ;
-    } ;
-
-    // for integral to float conversions
-    template<class T,class S>
-    struct subranged_Int2Float
-    {
-      typedef mpl::false_ type ;
-    } ;
-
-    // for float to integral conversions
-    template<class T,class S>
-    struct subranged_Float2Int
-    {
-      typedef mpl::true_ type ;
-    } ;
-
-    // for float to float conversions
-    template<class T,class S>
-    struct subranged_Float2Float
-    {
-      // If both T and S are floats,
-      // compare exponent bits and if they match, mantisa bits.
-
-      typedef mpl::int_< ::std::numeric_limits<S>::digits > S_mantisa ;
-      typedef mpl::int_< ::std::numeric_limits<T>::digits > T_mantisa ;
-
-      typedef mpl::int_< ::std::numeric_limits<S>::max_exponent > S_exponent ;
-      typedef mpl::int_< ::std::numeric_limits<T>::max_exponent > T_exponent ;
-
-      typedef typename mpl::less<T_exponent,S_exponent>::type T_smaller_exponent ;
-
-      typedef typename mpl::equal_to<T_exponent,S_exponent>::type equal_exponents ;
-
-      typedef mpl::less<T_mantisa,S_mantisa> T_smaller_mantisa ;
-
-      typedef mpl::eval_if<equal_exponents,T_smaller_mantisa,mpl::false_> not_bigger_exponent_case ;
-
-      typedef typename
-        mpl::eval_if<T_smaller_exponent,mpl::true_,not_bigger_exponent_case>::type
-          type ;
-    } ;
-
-    // for Udt to built-in conversions
-    template<class T,class S>
-    struct subranged_Udt2BuiltIn
-    {
-      typedef mpl::true_ type ;
-    } ;
-
-    // for built-in to Udt conversions
-    template<class T,class S>
-    struct subranged_BuiltIn2Udt
-    {
-      typedef mpl::false_ type ;
-    } ;
-
-    // for Udt to Udt conversions
-    template<class T,class S>
-    struct subranged_Udt2Udt
-    {
-      typedef mpl::false_ type ;
-    } ;
-
-  //-------------------------------------------------------------------
-  // Selectors for the implementations of the subranged predicate
-  //-------------------------------------------------------------------
-
-    template<class T,class S>
-    struct get_subranged_Int2Int
-    {
-      typedef subranged_SameSign<T,S>  Sig2Sig     ;
-      typedef subranged_Sig2Unsig<T,S> Sig2Unsig   ;
-      typedef subranged_Unsig2Sig<T,S> Unsig2Sig   ;
-      typedef Sig2Sig                  Unsig2Unsig ;
-
-      typedef typename get_sign_mixture<T,S>::type sign_mixture ;
-
-      typedef typename
-        for_sign_mixture<sign_mixture, Sig2Sig, Sig2Unsig, Unsig2Sig, Unsig2Unsig>::type
-           type ;
-    } ;
-
-    template<class T,class S>
-    struct get_subranged_BuiltIn2BuiltIn
-    {
-      typedef get_subranged_Int2Int<T,S> Int2IntQ ;
-
-      typedef subranged_Int2Float  <T,S> Int2Float   ;
-      typedef subranged_Float2Int  <T,S> Float2Int   ;
-      typedef subranged_Float2Float<T,S> Float2Float ;
-
-      typedef mpl::identity<Int2Float  > Int2FloatQ   ;
-      typedef mpl::identity<Float2Int  > Float2IntQ   ;
-      typedef mpl::identity<Float2Float> Float2FloatQ ;
-
-      typedef typename get_int_float_mixture<T,S>::type int_float_mixture ;
-
-      typedef for_int_float_mixture<int_float_mixture, Int2IntQ, Int2FloatQ, Float2IntQ, Float2FloatQ> for_ ;
-
-      typedef typename for_::type selected ;
-
-      typedef typename selected::type type ;
-    } ;
-
-    template<class T,class S>
-    struct get_subranged
-    {
-      typedef get_subranged_BuiltIn2BuiltIn<T,S> BuiltIn2BuiltInQ ;
-
-      typedef subranged_BuiltIn2Udt<T,S> BuiltIn2Udt ;
-      typedef subranged_Udt2BuiltIn<T,S> Udt2BuiltIn ;
-      typedef subranged_Udt2Udt<T,S>     Udt2Udt ;
-
-      typedef mpl::identity<BuiltIn2Udt> BuiltIn2UdtQ ;
-      typedef mpl::identity<Udt2BuiltIn> Udt2BuiltInQ ;
-      typedef mpl::identity<Udt2Udt    > Udt2UdtQ     ;
-
-      typedef typename get_udt_builtin_mixture<T,S>::type udt_builtin_mixture ;
-      
-      typedef typename
-        for_udt_builtin_mixture<udt_builtin_mixture, BuiltIn2BuiltInQ, BuiltIn2UdtQ, Udt2BuiltInQ, Udt2UdtQ>::type
-          selected ;
-
-      typedef typename selected::type selected2 ;
- 
-      typedef typename selected2::type type ;
-    } ;
-
-
-  //-------------------------------------------------------------------
-  // Top level implementation selector.
-  //-------------------------------------------------------------------
-  template<class T, class S>
-  struct get_is_subranged
-  {
-    typedef get_subranged<T,S>         non_trivial_case ;
-    typedef mpl::identity<mpl::false_> trivial_case ;
-
-    typedef is_same<T,S> is_trivial ;
-   
-    typedef typename mpl::if_<is_trivial,trivial_case,non_trivial_case>::type selected ;
-    
-    typedef typename selected::type type ;
-  } ;
-
-} } } // namespace boost::numeric::convdetail
-
-#endif
-
-
diff --git a/boost/numeric/conversion/detail/meta.hpp b/boost/numeric/conversion/detail/meta.hpp
deleted file mode 100644
index 246a1b4..0000000
--- a/boost/numeric/conversion/detail/meta.hpp
+++ /dev/null
@@ -1,120 +0,0 @@
-//  (c) Copyright Fernando Luis Cacciola Carballal 2000-2004
-//  Use, modification, and distribution is subject to the Boost Software
-//  License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-
-//  See library home page at http://www.boost.org/libs/numeric/conversion
-//
-// Contact the author at: fernando_cacciola at hotmail.com
-// 
-#ifndef BOOST_NUMERIC_CONVERSION_DETAIL_META_FLC_12NOV2002_HPP
-#define BOOST_NUMERIC_CONVERSION_DETAIL_META_FLC_12NOV2002_HPP
-
-#include "boost/type_traits/remove_cv.hpp"
-
-#include "boost/mpl/if.hpp"
-#include "boost/mpl/eval_if.hpp"
-#include "boost/mpl/equal_to.hpp"
-#include "boost/mpl/not.hpp"
-#include "boost/mpl/and.hpp"
-#include "boost/mpl/bool.hpp"
-#include "boost/mpl/identity.hpp"
-
-namespace boost { namespace numeric { namespace convdetail
-{
-   template< class T1, class T2>
-   struct equal_to
-   {
-   #if !defined(__BORLANDC__)
-   
-       enum { x = ( BOOST_MPL_AUX_VALUE_WKND(T1)::value == BOOST_MPL_AUX_VALUE_WKND(T2)::value ) };
-           
-       BOOST_STATIC_CONSTANT(bool, value = x);
-           
-       typedef mpl::bool_<value> type;
-       
-   #else
-   
-       BOOST_STATIC_CONSTANT(bool, value = (
-             BOOST_MPL_AUX_VALUE_WKND(T1)::value 
-               == BOOST_MPL_AUX_VALUE_WKND(T2)::value
-           ));
-           
-       typedef mpl::bool_<(
-             BOOST_MPL_AUX_VALUE_WKND(T1)::value 
-               == BOOST_MPL_AUX_VALUE_WKND(T2)::value
-           )> type;
-   #endif
-   };
-    
-// Metafunction:
-  //
-  //   ct_switch4<Value,Case0Val,Case1Val,Case2Val,Case0Type,Case1Type,Case2Type,DefaultType>::type
-  //
-  // {Value,Case(X)Val} are Integral Constants (such as: mpl::int_<>)
-  // {Case(X)Type,DefaultType} are arbitrary types. (not metafunctions)
-  //
-  // Returns Case(X)Type if Val==Case(X)Val; DefaultType otherwise.
-  //
-  template<class Value,
-           class Case0Val,
-           class Case1Val,
-           class Case2Val,
-           class Case0Type,
-           class Case1Type,
-           class Case2Type,
-           class DefaultType
-          >
-  struct ct_switch4
-  {
-    typedef mpl::identity<Case0Type> Case0TypeQ ;
-    typedef mpl::identity<Case1Type> Case1TypeQ ;
-
-    typedef equal_to<Value,Case0Val> is_case0 ;
-    typedef equal_to<Value,Case1Val> is_case1 ;
-    typedef equal_to<Value,Case2Val> is_case2 ;
-
-    typedef mpl::if_<is_case2,Case2Type,DefaultType> choose_2_3Q ;
-    typedef mpl::eval_if<is_case1,Case1TypeQ,choose_2_3Q> choose_1_2_3Q ;
-
-    typedef typename
-      mpl::eval_if<is_case0,Case0TypeQ,choose_1_2_3Q>::type
-        type ;
-  } ;
-
-
-
-
-  // Metafunction:
-  //
-  //   for_both<expr0,expr1,TT,TF,FT,FF>::type
-  //
-  // {exp0,expr1} are Boolean Integral Constants
-  // {TT,TF,FT,FF} are aribtrary types. (not metafunctions)
-  //
-  // According to the combined boolean value of 'expr0 && expr1', selects the corresponding type.
-  //
-  template<class expr0, class expr1, class TT, class TF, class FT, class FF>
-  struct for_both
-  {
-    typedef mpl::identity<TF> TF_Q ;
-    typedef mpl::identity<TT> TT_Q ;
-
-    typedef typename mpl::not_<expr0>::type not_expr0 ;
-    typedef typename mpl::not_<expr1>::type not_expr1 ;
-
-    typedef typename mpl::and_<expr0,expr1>::type     caseTT ;
-    typedef typename mpl::and_<expr0,not_expr1>::type caseTF ;
-    typedef typename mpl::and_<not_expr0,expr1>::type caseFT ;
-
-    typedef mpl::if_<caseFT,FT,FF>                    choose_FT_FF_Q ;
-    typedef mpl::eval_if<caseTF,TF_Q,choose_FT_FF_Q> choose_TF_FT_FF_Q ;
-
-    typedef typename mpl::eval_if<caseTT,TT_Q,choose_TF_FT_FF_Q>::type type ;
-  } ;
-
-} } } // namespace boost::numeric::convdetail
-
-#endif
-
-
diff --git a/boost/numeric/conversion/detail/numeric_cast_traits.hpp b/boost/numeric/conversion/detail/numeric_cast_traits.hpp
deleted file mode 100644
index 150490d..0000000
--- a/boost/numeric/conversion/detail/numeric_cast_traits.hpp
+++ /dev/null
@@ -1,138 +0,0 @@
-//
-//! Copyright (c) 2011-2012
-//! Brandon Kohn
-//
-//  Distributed under the Boost Software License, Version 1.0. (See
-//  accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-
-#if !defined(BOOST_NUMERIC_CONVERSION_DONT_USE_PREPROCESSED_FILES)
-
-    #include <boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp>
-	
-	#if !defined(BOOST_NO_LONG_LONG)
-        #include <boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp>
-	#endif
-	
-#else
-#if !BOOST_PP_IS_ITERATING
-
-    #include <boost/preprocessor/seq/elem.hpp>
-    #include <boost/preprocessor/seq/size.hpp>
-    #include <boost/preprocessor/iteration/iterate.hpp>
-    
-    #if defined(__WAVE__) && defined(BOOST_NUMERIC_CONVERSION_CREATE_PREPROCESSED_FILES)
-        #pragma wave option(preserve: 2, line: 0, output: "preprocessed/numeric_cast_traits_common.hpp")
-    #endif
-//
-//! Copyright (c) 2011-2012
-//! Brandon Kohn
-//
-//  Distributed under the Boost Software License, Version 1.0. (See
-//  accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-    #if defined(__WAVE__) && defined(BOOST_NUMERIC_CONVERSION_CREATE_PREPROCESSED_FILES)
-        #pragma wave option(preserve: 1)
-    #endif
-	
-	//! These are the assumed common built in fundamental types (not typedefs/macros.)
-	#define BOOST_NUMERIC_CONVERSION_BASE_BUILTIN_TYPES() \
-        (char)                                            \
-        (signed char)                                     \
-        (unsigned char)                                   \
-        (short)                                           \
-        (unsigned short)                                  \
-        (int)                                             \
-        (unsigned int)                                    \
-        (long)                                            \
-        (unsigned long)                                   \
-        (float)                                           \
-        (double)                                          \
-        (long double)                                     \
-    /***/
-	
-    #define BOOST_NUMERIC_CONVERSION_SEQ_A() BOOST_NUMERIC_CONVERSION_BASE_BUILTIN_TYPES()
-	#define BOOST_NUMERIC_CONVERSION_SEQ_B() BOOST_NUMERIC_CONVERSION_BASE_BUILTIN_TYPES()
-
-namespace boost { namespace numeric {
-
-    #define BOOST_PP_ITERATION_PARAMS_1 (3, (0, BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(BOOST_NUMERIC_CONVERSION_SEQ_A())), <boost/numeric/conversion/detail/numeric_cast_traits.hpp>))
-    #include BOOST_PP_ITERATE()    
-
-}}//namespace boost::numeric;
-
-    #if defined(__WAVE__) && defined(BOOST_NUMERIC_CONVERSION_CREATE_PREPROCESSED_FILES)
-        #pragma wave option(output: null)
-    #endif   
-	
-	#if ( defined(__WAVE__) && defined(BOOST_NUMERIC_CONVERSION_CREATE_PREPROCESSED_FILES) ) || !defined(BOOST_NO_LONG_LONG)
-	
-	    #undef BOOST_NUMERIC_CONVERSION_SEQ_A
-	    #undef BOOST_NUMERIC_CONVERSION_SEQ_B
-
-	    #if defined(__WAVE__) && defined(BOOST_NUMERIC_CONVERSION_CREATE_PREPROCESSED_FILES)
-            #pragma wave option(preserve: 2, line: 0, output: "preprocessed/numeric_cast_traits_long_long.hpp")
-        #endif
-
-//
-//! Copyright (c) 2011-2012
-//! Brandon Kohn
-//
-//  Distributed under the Boost Software License, Version 1.0. (See
-//  accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-        #if defined(__WAVE__) && defined(BOOST_NUMERIC_CONVERSION_CREATE_PREPROCESSED_FILES)
-            #pragma wave option(preserve: 1)
-        #endif
-
-namespace boost { namespace numeric {
-
-    #define BOOST_NUMERIC_CONVERSION_SEQ_A() BOOST_NUMERIC_CONVERSION_BASE_BUILTIN_TYPES()(boost::long_long_type)(boost::ulong_long_type)
-	#define BOOST_NUMERIC_CONVERSION_SEQ_B() (boost::long_long_type)(boost::ulong_long_type)
-    
-    #define BOOST_PP_ITERATION_PARAMS_1 (3, (0, BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(BOOST_NUMERIC_CONVERSION_SEQ_A())), <boost/numeric/conversion/detail/numeric_cast_traits.hpp>))
-    #include BOOST_PP_ITERATE()    
-
-}}//namespace boost::numeric;
-
-        #if defined(__WAVE__) && defined(BOOST_NUMERIC_CONVERSION_CREATE_PREPROCESSED_FILES)
-            #pragma wave option(output: null)
-        #endif   
-	
-	#endif
-		
-    #undef BOOST_NUMERIC_CONVERSION_BASE_BUILTIN_TYPES
-	#undef BOOST_NUMERIC_CONVERSION_SEQ_A
-	#undef BOOST_NUMERIC_CONVERSION_SEQ_B
-    
-#elif BOOST_PP_ITERATION_DEPTH() == 1
-
-    #define BOOST_PP_ITERATION_PARAMS_2 (3, (0, BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(BOOST_NUMERIC_CONVERSION_SEQ_B())), <boost/numeric/conversion/detail/numeric_cast_traits.hpp>))
-    #include BOOST_PP_ITERATE()
-
-#elif BOOST_PP_ITERATION_DEPTH() == 2
-
-    //! Generate default traits for the specified source and target.
-    #define BOOST_NUMERIC_CONVERSION_A BOOST_PP_FRAME_ITERATION(1)
-    #define BOOST_NUMERIC_CONVERSION_B BOOST_PP_FRAME_ITERATION(2)
-
-    template <>
-    struct numeric_cast_traits
-        <
-            BOOST_PP_SEQ_ELEM(BOOST_NUMERIC_CONVERSION_A, BOOST_NUMERIC_CONVERSION_SEQ_A())
-          , BOOST_PP_SEQ_ELEM(BOOST_NUMERIC_CONVERSION_B, BOOST_NUMERIC_CONVERSION_SEQ_B())
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<BOOST_PP_SEQ_ELEM(BOOST_NUMERIC_CONVERSION_B, BOOST_NUMERIC_CONVERSION_SEQ_B())> rounding_policy;
-    };     
-
-    #undef BOOST_NUMERIC_CONVERSION_A
-    #undef BOOST_NUMERIC_CONVERSION_B
-
-#endif//! Depth 2.
-#endif// BOOST_NUMERIC_CONVERSION_DONT_USE_PREPROCESSED_FILES
diff --git a/boost/numeric/conversion/detail/old_numeric_cast.hpp b/boost/numeric/conversion/detail/old_numeric_cast.hpp
deleted file mode 100644
index 47b86d2..0000000
--- a/boost/numeric/conversion/detail/old_numeric_cast.hpp
+++ /dev/null
@@ -1,339 +0,0 @@
-//  boost cast.hpp header file  ----------------------------------------------//
-
-//  (C) Copyright Kevlin Henney and Dave Abrahams 1999.
-//  Distributed under the Boost
-//  Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org/libs/conversion for Documentation.
-
-//  Revision History
-//  23 JUN 05  Code extracted from /boost/cast.hpp into this new header.
-//             Keeps this legacy version of numeric_cast<> for old compilers
-//             wich can't compile the new version in /boost/numeric/conversion/cast.hpp
-//             (Fernando Cacciola)
-//  02 Apr 01  Removed BOOST_NO_LIMITS workarounds and included
-//             <boost/limits.hpp> instead (the workaround did not
-//             actually compile when BOOST_NO_LIMITS was defined in
-//             any case, so we loose nothing). (John Maddock)
-//  21 Jan 01  Undid a bug I introduced yesterday. numeric_cast<> never
-//             worked with stock GCC; trying to get it to do that broke
-//             vc-stlport.
-//  20 Jan 01  Moved BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS to config.hpp.
-//             Removed unused BOOST_EXPLICIT_TARGET macro. Moved
-//             boost::detail::type to boost/type.hpp. Made it compile with
-//             stock gcc again (Dave Abrahams)
-//  29 Nov 00  Remove nested namespace cast, cleanup spacing before Formal
-//             Review (Beman Dawes)
-//  19 Oct 00  Fix numeric_cast for floating-point types (Dave Abrahams)
-//  15 Jul 00  Suppress numeric_cast warnings for GCC, Borland and MSVC
-//             (Dave Abrahams)
-//  30 Jun 00  More MSVC6 wordarounds.  See comments below.  (Dave Abrahams)
-//  28 Jun 00  Removed implicit_cast<>.  See comment below. (Beman Dawes)
-//  27 Jun 00  More MSVC6 workarounds
-//  15 Jun 00  Add workarounds for MSVC6
-//   2 Feb 00  Remove bad_numeric_cast ";" syntax error (Doncho Angelov)
-//  26 Jan 00  Add missing throw() to bad_numeric_cast::what(0 (Adam Levar)
-//  29 Dec 99  Change using declarations so usages in other namespaces work
-//             correctly (Dave Abrahams)
-//  23 Sep 99  Change polymorphic_downcast assert to also detect M.I. errors
-//             as suggested Darin Adler and improved by Valentin Bonnard.
-//   2 Sep 99  Remove controversial asserts, simplify, rename.
-//  30 Aug 99  Move to cast.hpp, replace value_cast with numeric_cast,
-//             place in nested namespace.
-//   3 Aug 99  Initial version
-
-#ifndef BOOST_OLD_NUMERIC_CAST_HPP
-#define BOOST_OLD_NUMERIC_CAST_HPP
-
-# include <boost/config.hpp>
-# include <cassert>
-# include <typeinfo>
-# include <boost/type.hpp>
-# include <boost/limits.hpp>
-# include <boost/numeric/conversion/converter_policies.hpp>
-
-//  It has been demonstrated numerous times that MSVC 6.0 fails silently at link
-//  time if you use a template function which has template parameters that don't
-//  appear in the function's argument list.
-//
-//  TODO: Add this to config.hpp?
-//  FLC: This macro is repeated in boost/cast.hpp but only locally (is undefined at the bottom)
-//       so is OK to reproduce it here.
-# if defined(BOOST_MSVC) && BOOST_MSVC < 1300
-#  define BOOST_EXPLICIT_DEFAULT_TARGET , ::boost::type<Target>* = 0
-# else
-#  define BOOST_EXPLICIT_DEFAULT_TARGET
-# endif
-
-namespace boost
-{
-  using numeric::bad_numeric_cast;
-
-//  LEGACY numeric_cast [only for some old broken compilers] --------------------------------------//
-
-//  Contributed by Kevlin Henney
-
-//  numeric_cast  ------------------------------------------------------------//
-
-#if !defined(BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS) || defined(BOOST_SGI_CPP_LIMITS)
-
-    namespace detail
-    {
-      template <class T>
-      struct signed_numeric_limits : std::numeric_limits<T>
-      {
-             static inline T min BOOST_PREVENT_MACRO_SUBSTITUTION ()
-         {
-             return (std::numeric_limits<T>::min)() >= 0
-                     // unary minus causes integral promotion, thus the static_cast<>
-                     ? static_cast<T>(-(std::numeric_limits<T>::max)())
-                     : (std::numeric_limits<T>::min)();
-         };
-      };
-
-      // Move to namespace boost in utility.hpp?
-      template <class T, bool specialized>
-      struct fixed_numeric_limits_base
-          : public if_true< std::numeric_limits<T>::is_signed >
-           ::BOOST_NESTED_TEMPLATE then< signed_numeric_limits<T>,
-                            std::numeric_limits<T>
-                   >::type
-      {};
-
-      template <class T>
-      struct fixed_numeric_limits
-          : fixed_numeric_limits_base<T,(std::numeric_limits<T>::is_specialized)>
-      {};
-
-# ifdef BOOST_HAS_LONG_LONG
-      // cover implementations which supply no specialization for long
-      // long / unsigned long long. Not intended to be full
-      // numeric_limits replacements, but good enough for numeric_cast<>
-      template <>
-      struct fixed_numeric_limits_base< ::boost::long_long_type, false>
-      {
-          BOOST_STATIC_CONSTANT(bool, is_specialized = true);
-          BOOST_STATIC_CONSTANT(bool, is_signed = true);
-          static  ::boost::long_long_type max BOOST_PREVENT_MACRO_SUBSTITUTION ()
-          {
-#  ifdef LONGLONG_MAX
-              return LONGLONG_MAX;
-#  else
-              return 9223372036854775807LL; // hope this is portable
-#  endif
-          }
-
-          static  ::boost::long_long_type min BOOST_PREVENT_MACRO_SUBSTITUTION ()
-          {
-#  ifdef LONGLONG_MIN
-              return LONGLONG_MIN;
-#  else
-               return -( 9223372036854775807LL )-1; // hope this is portable
-#  endif
-          }
-      };
-
-      template <>
-      struct fixed_numeric_limits_base< ::boost::ulong_long_type, false>
-      {
-          BOOST_STATIC_CONSTANT(bool, is_specialized = true);
-          BOOST_STATIC_CONSTANT(bool, is_signed = false);
-          static  ::boost::ulong_long_type max BOOST_PREVENT_MACRO_SUBSTITUTION ()
-          {
-#  ifdef ULONGLONG_MAX
-              return ULONGLONG_MAX;
-#  else
-              return 0xffffffffffffffffULL; // hope this is portable
-#  endif
-          }
-
-          static  ::boost::ulong_long_type min BOOST_PREVENT_MACRO_SUBSTITUTION () { return 0; }
-      };
-# endif
-    } // namespace detail
-
-// less_than_type_min -
-  //    x_is_signed should be numeric_limits<X>::is_signed
-  //    y_is_signed should be numeric_limits<Y>::is_signed
-  //    y_min should be numeric_limits<Y>::min()
-  //
-  //    check(x, y_min) returns true iff x < y_min without invoking comparisons
-  //    between signed and unsigned values.
-  //
-  //    "poor man's partial specialization" is in use here.
-    template <bool x_is_signed, bool y_is_signed>
-    struct less_than_type_min
-    {
-        template <class X, class Y>
-        static bool check(X x, Y y_min)
-            { return x < y_min; }
-    };
-
-    template <>
-    struct less_than_type_min<false, true>
-    {
-        template <class X, class Y>
-        static bool check(X, Y)
-            { return false; }
-    };
-
-    template <>
-    struct less_than_type_min<true, false>
-    {
-        template <class X, class Y>
-        static bool check(X x, Y)
-            { return x < 0; }
-    };
-
-  // greater_than_type_max -
-  //    same_sign should be:
-  //            numeric_limits<X>::is_signed == numeric_limits<Y>::is_signed
-  //    y_max should be numeric_limits<Y>::max()
-  //
-  //    check(x, y_max) returns true iff x > y_max without invoking comparisons
-  //    between signed and unsigned values.
-  //
-  //    "poor man's partial specialization" is in use here.
-    template <bool same_sign, bool x_is_signed>
-    struct greater_than_type_max;
-
-    template<>
-    struct greater_than_type_max<true, true>
-    {
-        template <class X, class Y>
-        static inline bool check(X x, Y y_max)
-            { return x > y_max; }
-    };
-
-    template <>
-    struct greater_than_type_max<false, true>
-    {
-        // What does the standard say about this? I think it's right, and it
-        // will work with every compiler I know of.
-        template <class X, class Y>
-        static inline bool check(X x, Y)
-            { return x >= 0 && static_cast<X>(static_cast<Y>(x)) != x; }
-
-# if defined(BOOST_MSVC) && BOOST_MSVC < 1300
-        // MSVC6 can't static_cast  unsigned __int64 -> floating types
-#  define BOOST_UINT64_CAST(src_type)                                   \
-        static inline bool check(src_type x, unsigned __int64)          \
-        {                                                               \
-            if (x < 0) return false;                                    \
-            unsigned __int64 y = static_cast<unsigned __int64>(x);      \
-            bool odd = y & 0x1;                                         \
-            __int64 div2 = static_cast<__int64>(y >> 1);                \
-            return ((static_cast<src_type>(div2) * 2.0) + odd) != x;    \
-        }
-
-        BOOST_UINT64_CAST(long double);
-        BOOST_UINT64_CAST(double);
-        BOOST_UINT64_CAST(float);
-#  undef BOOST_UINT64_CAST
-# endif
-    };
-
-    template<>
-    struct greater_than_type_max<true, false>
-    {
-        template <class X, class Y>
-        static inline bool check(X x, Y y_max)
-            { return x > y_max; }
-    };
-
-    template <>
-    struct greater_than_type_max<false, false>
-    {
-        // What does the standard say about this? I think it's right, and it
-        // will work with every compiler I know of.
-        template <class X, class Y>
-        static inline bool check(X x, Y)
-            { return static_cast<X>(static_cast<Y>(x)) != x; }
-    };
-
-#else // use #pragma hacks if available
-
-  namespace detail
-  {
-# if BOOST_MSVC
-#  pragma warning(push)
-#  pragma warning(disable : 4018)
-#  pragma warning(disable : 4146)
-#elif defined(__BORLANDC__)
-#  pragma option push -w-8041
-# endif
-
-       // Move to namespace boost in utility.hpp?
-       template <class T>
-       struct fixed_numeric_limits : public std::numeric_limits<T>
-       {
-           static inline T min BOOST_PREVENT_MACRO_SUBSTITUTION ()
-           {
-               return std::numeric_limits<T>::is_signed && (std::numeric_limits<T>::min)() >= 0
-                   ? T(-(std::numeric_limits<T>::max)()) : (std::numeric_limits<T>::min)();
-           }
-       };
-
-# if BOOST_MSVC
-#  pragma warning(pop)
-#elif defined(__BORLANDC__)
-#  pragma option pop
-# endif
-  } // namespace detail
-
-#endif
-
-    template<typename Target, typename Source>
-    inline Target numeric_cast(Source arg BOOST_EXPLICIT_DEFAULT_TARGET)
-    {
-        // typedefs abbreviating respective trait classes
-        typedef detail::fixed_numeric_limits<Source> arg_traits;
-        typedef detail::fixed_numeric_limits<Target> result_traits;
-
-#if defined(BOOST_STRICT_CONFIG) \
-    || (!defined(__HP_aCC) || __HP_aCC > 33900) \
-         && (!defined(BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS) \
-             || defined(BOOST_SGI_CPP_LIMITS))
-        // typedefs that act as compile time assertions
-        // (to be replaced by boost compile time assertions
-        // as and when they become available and are stable)
-        typedef bool argument_must_be_numeric[arg_traits::is_specialized];
-        typedef bool result_must_be_numeric[result_traits::is_specialized];
-
-        const bool arg_is_signed = arg_traits::is_signed;
-        const bool result_is_signed = result_traits::is_signed;
-        const bool same_sign = arg_is_signed == result_is_signed;
-
-        if (less_than_type_min<arg_is_signed, result_is_signed>::check(arg, (result_traits::min)())
-            || greater_than_type_max<same_sign, arg_is_signed>::check(arg, (result_traits::max)())
-            )
-
-#else // We need to use #pragma hacks if available
-
-# if BOOST_MSVC
-#  pragma warning(push)
-#  pragma warning(disable : 4018)
-#elif defined(__BORLANDC__)
-#pragma option push -w-8012
-# endif
-        if ((arg < 0 && !result_traits::is_signed)  // loss of negative range
-             || (arg_traits::is_signed && arg < (result_traits::min)())  // underflow
-             || arg > (result_traits::max)())            // overflow
-# if BOOST_MSVC
-#  pragma warning(pop)
-#elif defined(__BORLANDC__)
-#pragma option pop
-# endif
-#endif
-        {
-            throw bad_numeric_cast();
-        }
-        return static_cast<Target>(arg);
-    } // numeric_cast
-
-#  undef BOOST_EXPLICIT_DEFAULT_TARGET
-
-} // namespace boost
-
-#endif  // BOOST_OLD_NUMERIC_CAST_HPP
diff --git a/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp b/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp
deleted file mode 100644
index 01dc932..0000000
--- a/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_common.hpp
+++ /dev/null
@@ -1,1741 +0,0 @@
-//
-//! Copyright (c) 2011-2012
-//! Brandon Kohn
-//
-//  Distributed under the Boost Software License, Version 1.0. (See
-//  accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-	
-	
-	
-namespace boost { namespace numeric {
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            char
-          , char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            char
-          , signed char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<signed char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            char
-          , unsigned char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            char
-          , short
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<short> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            char
-          , unsigned short
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned short> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            char
-          , int
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<int> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            char
-          , unsigned int
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned int> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            char
-          , long
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<long> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            char
-          , unsigned long
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned long> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            char
-          , float
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<float> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            char
-          , double
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<double> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            char
-          , long double
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<long double> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            signed char
-          , char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            signed char
-          , signed char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<signed char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            signed char
-          , unsigned char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            signed char
-          , short
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<short> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            signed char
-          , unsigned short
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned short> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            signed char
-          , int
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<int> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            signed char
-          , unsigned int
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned int> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            signed char
-          , long
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<long> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            signed char
-          , unsigned long
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned long> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            signed char
-          , float
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<float> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            signed char
-          , double
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<double> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            signed char
-          , long double
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<long double> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned char
-          , char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned char
-          , signed char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<signed char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned char
-          , unsigned char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned char
-          , short
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<short> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned char
-          , unsigned short
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned short> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned char
-          , int
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<int> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned char
-          , unsigned int
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned int> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned char
-          , long
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<long> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned char
-          , unsigned long
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned long> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned char
-          , float
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<float> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned char
-          , double
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<double> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned char
-          , long double
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<long double> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            short
-          , char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            short
-          , signed char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<signed char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            short
-          , unsigned char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            short
-          , short
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<short> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            short
-          , unsigned short
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned short> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            short
-          , int
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<int> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            short
-          , unsigned int
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned int> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            short
-          , long
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<long> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            short
-          , unsigned long
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned long> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            short
-          , float
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<float> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            short
-          , double
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<double> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            short
-          , long double
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<long double> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned short
-          , char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned short
-          , signed char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<signed char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned short
-          , unsigned char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned short
-          , short
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<short> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned short
-          , unsigned short
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned short> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned short
-          , int
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<int> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned short
-          , unsigned int
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned int> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned short
-          , long
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<long> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned short
-          , unsigned long
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned long> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned short
-          , float
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<float> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned short
-          , double
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<double> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned short
-          , long double
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<long double> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            int
-          , char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            int
-          , signed char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<signed char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            int
-          , unsigned char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            int
-          , short
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<short> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            int
-          , unsigned short
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned short> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            int
-          , int
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<int> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            int
-          , unsigned int
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned int> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            int
-          , long
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<long> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            int
-          , unsigned long
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned long> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            int
-          , float
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<float> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            int
-          , double
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<double> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            int
-          , long double
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<long double> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned int
-          , char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned int
-          , signed char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<signed char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned int
-          , unsigned char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned int
-          , short
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<short> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned int
-          , unsigned short
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned short> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned int
-          , int
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<int> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned int
-          , unsigned int
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned int> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned int
-          , long
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<long> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned int
-          , unsigned long
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned long> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned int
-          , float
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<float> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned int
-          , double
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<double> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned int
-          , long double
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<long double> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long
-          , char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long
-          , signed char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<signed char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long
-          , unsigned char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long
-          , short
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<short> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long
-          , unsigned short
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned short> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long
-          , int
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<int> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long
-          , unsigned int
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned int> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long
-          , long
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<long> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long
-          , unsigned long
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned long> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long
-          , float
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<float> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long
-          , double
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<double> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long
-          , long double
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<long double> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned long
-          , char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned long
-          , signed char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<signed char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned long
-          , unsigned char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned long
-          , short
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<short> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned long
-          , unsigned short
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned short> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned long
-          , int
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<int> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned long
-          , unsigned int
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned int> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned long
-          , long
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<long> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned long
-          , unsigned long
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned long> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned long
-          , float
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<float> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned long
-          , double
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<double> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned long
-          , long double
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<long double> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            float
-          , char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            float
-          , signed char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<signed char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            float
-          , unsigned char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            float
-          , short
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<short> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            float
-          , unsigned short
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned short> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            float
-          , int
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<int> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            float
-          , unsigned int
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned int> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            float
-          , long
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<long> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            float
-          , unsigned long
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned long> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            float
-          , float
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<float> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            float
-          , double
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<double> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            float
-          , long double
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<long double> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            double
-          , char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            double
-          , signed char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<signed char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            double
-          , unsigned char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            double
-          , short
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<short> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            double
-          , unsigned short
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned short> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            double
-          , int
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<int> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            double
-          , unsigned int
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned int> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            double
-          , long
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<long> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            double
-          , unsigned long
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned long> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            double
-          , float
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<float> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            double
-          , double
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<double> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            double
-          , long double
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<long double> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long double
-          , char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long double
-          , signed char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<signed char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long double
-          , unsigned char
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned char> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long double
-          , short
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<short> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long double
-          , unsigned short
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned short> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long double
-          , int
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<int> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long double
-          , unsigned int
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned int> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long double
-          , long
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<long> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long double
-          , unsigned long
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<unsigned long> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long double
-          , float
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<float> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long double
-          , double
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<double> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long double
-          , long double
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<long double> rounding_policy;
-    }; 
-}}
diff --git a/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp b/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp
deleted file mode 100644
index b358b9c..0000000
--- a/boost/numeric/conversion/detail/preprocessed/numeric_cast_traits_long_long.hpp
+++ /dev/null
@@ -1,347 +0,0 @@
-//
-//! Copyright (c) 2011-2012
-//! Brandon Kohn
-//
-//  Distributed under the Boost Software License, Version 1.0. (See
-//  accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-namespace boost { namespace numeric {
-    
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            char
-          , boost::long_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<boost::long_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            char
-          , boost::ulong_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<boost::ulong_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            signed char
-          , boost::long_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<boost::long_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            signed char
-          , boost::ulong_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<boost::ulong_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned char
-          , boost::long_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<boost::long_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned char
-          , boost::ulong_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<boost::ulong_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            short
-          , boost::long_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<boost::long_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            short
-          , boost::ulong_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<boost::ulong_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned short
-          , boost::long_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<boost::long_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned short
-          , boost::ulong_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<boost::ulong_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            int
-          , boost::long_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<boost::long_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            int
-          , boost::ulong_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<boost::ulong_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned int
-          , boost::long_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<boost::long_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned int
-          , boost::ulong_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<boost::ulong_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long
-          , boost::long_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<boost::long_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long
-          , boost::ulong_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<boost::ulong_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned long
-          , boost::long_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<boost::long_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            unsigned long
-          , boost::ulong_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<boost::ulong_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            float
-          , boost::long_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<boost::long_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            float
-          , boost::ulong_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<boost::ulong_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            double
-          , boost::long_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<boost::long_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            double
-          , boost::ulong_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<boost::ulong_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long double
-          , boost::long_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<boost::long_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            long double
-          , boost::ulong_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<boost::ulong_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            boost::long_long_type
-          , boost::long_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<boost::long_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            boost::long_long_type
-          , boost::ulong_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<boost::ulong_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            boost::ulong_long_type
-          , boost::long_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<boost::long_long_type> rounding_policy;
-    }; 
-    
-    template <>
-    struct numeric_cast_traits
-        <
-            boost::ulong_long_type
-          , boost::ulong_long_type
-        >
-    {
-        typedef def_overflow_handler overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<boost::ulong_long_type> rounding_policy;
-    }; 
-}}
diff --git a/boost/numeric/conversion/detail/sign_mixture.hpp b/boost/numeric/conversion/detail/sign_mixture.hpp
deleted file mode 100644
index c7f9e42..0000000
--- a/boost/numeric/conversion/detail/sign_mixture.hpp
+++ /dev/null
@@ -1,72 +0,0 @@
-//  (c) Copyright Fernando Luis Cacciola Carballal 2000-2004
-//  Use, modification, and distribution is subject to the Boost Software
-//  License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-
-//  See library home page at http://www.boost.org/libs/numeric/conversion
-//
-// Contact the author at: fernando_cacciola at hotmail.com
-// 
-#ifndef BOOST_NUMERIC_CONVERSION_DETAIL_SIGN_MIXTURE_FLC_12NOV2002_HPP
-#define BOOST_NUMERIC_CONVERSION_DETAIL_SIGN_MIXTURE_FLC_12NOV2002_HPP
-
-#include "boost/config.hpp"
-#include "boost/limits.hpp"
-
-#include "boost/numeric/conversion/sign_mixture_enum.hpp"
-#include "boost/numeric/conversion/detail/meta.hpp"
-
-#include "boost/mpl/integral_c.hpp"
-
-namespace boost { namespace numeric { namespace convdetail
-{
-  // Integral Constants for 'SignMixture'
-  typedef mpl::integral_c<sign_mixture_enum, unsigned_to_unsigned> unsig2unsig_c ;
-  typedef mpl::integral_c<sign_mixture_enum, signed_to_signed>     sig2sig_c ;
-  typedef mpl::integral_c<sign_mixture_enum, signed_to_unsigned>   sig2unsig_c ;
-  typedef mpl::integral_c<sign_mixture_enum, unsigned_to_signed>   unsig2sig_c ;
-
-  // Metafunction:
-  //
-  //   get_sign_mixture<T,S>::type
-  //
-  // Selects the appropriate SignMixture Integral Constant for the combination T,S.
-  //
-  template<class T,class S>
-  struct get_sign_mixture
-  {
-    typedef mpl::bool_< ::std::numeric_limits<S>::is_signed > S_signed ;
-    typedef mpl::bool_< ::std::numeric_limits<T>::is_signed > T_signed ;
-
-    typedef typename
-      for_both<S_signed, T_signed, sig2sig_c, sig2unsig_c, unsig2sig_c, unsig2unsig_c>::type
-        type ;
-  } ;
-
-  // Metafunction:
-  //
-  //   for_sign_mixture<SignMixture,Sig2Sig,Sig2Unsig,Unsig2Sig,Unsig2Unsig>::type
-  //
-  // {SignMixture} is one of the Integral Constants for SignMixture, declared above.
-  // {Sig2Sig,Sig2Unsig,Unsig2Sig,Unsig2Unsig} are aribtrary types. (not metafunctions)
-  //
-  // According to the value of 'SignMixture', selects the corresponding type.
-  //
-  template<class SignMixture, class Sig2Sig, class Sig2Unsig, class Unsig2Sig, class Unsig2Unsig>
-  struct for_sign_mixture
-  {
-    typedef typename
-      ct_switch4<SignMixture
-                 , sig2sig_c, sig2unsig_c, unsig2sig_c  // default
-                 , Sig2Sig  , Sig2Unsig  , Unsig2Sig  , Unsig2Unsig
-                >::type
-        type ;
-  } ;
-
-} } } // namespace boost::numeric::convdetail
-
-#endif
-//
-///////////////////////////////////////////////////////////////////////////////////////////////
-
-
diff --git a/boost/numeric/conversion/detail/udt_builtin_mixture.hpp b/boost/numeric/conversion/detail/udt_builtin_mixture.hpp
deleted file mode 100644
index 36dbc49..0000000
--- a/boost/numeric/conversion/detail/udt_builtin_mixture.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-//  (c) Copyright Fernando Luis Cacciola Carballal 2000-2004
-//  Use, modification, and distribution is subject to the Boost Software
-//  License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-
-//  See library home page at http://www.boost.org/libs/numeric/conversion
-//
-// Contact the author at: fernando_cacciola at hotmail.com
-// 
-#ifndef BOOST_NUMERIC_CONVERSION_DETAIL_UDT_BUILTIN_MIXTURE_FLC_12NOV2002_HPP
-#define BOOST_NUMERIC_CONVERSION_DETAIL_UDT_BUILTIN_MIXTURE_FLC_12NOV2002_HPP
-
-#include "boost/type_traits/is_arithmetic.hpp"
-
-#include "boost/numeric/conversion/udt_builtin_mixture_enum.hpp"
-#include "boost/numeric/conversion/detail/meta.hpp"
-
-#include "boost/mpl/integral_c.hpp"
-
-namespace boost { namespace numeric { namespace convdetail
-{
-  // Integral Constants for 'UdtMixture'
-  typedef mpl::integral_c<udt_builtin_mixture_enum, builtin_to_builtin> builtin2builtin_c ;
-  typedef mpl::integral_c<udt_builtin_mixture_enum, builtin_to_udt>     builtin2udt_c ;
-  typedef mpl::integral_c<udt_builtin_mixture_enum, udt_to_builtin>     udt2builtin_c ;
-  typedef mpl::integral_c<udt_builtin_mixture_enum, udt_to_udt>         udt2udt_c ;
-
-  // Metafunction:
-  //
-  //   for_udt_mixture<UdtMixture,BuiltIn2BuiltIn,BuiltIn2Udt,Udt2BuiltIn,Udt2Udt>::type
-  //
-  // {UdtMixture} is one of the Integral Constants for UdMixture, declared above.
-  // {BuiltIn2BuiltIn,BuiltIn2Udt,Udt2BuiltIn,Udt2Udt} are aribtrary types. (not metafunctions)
-  //
-  // According to the value of 'UdtMixture', selects the corresponding type.
-  //
-  template<class UdtMixture, class BuiltIn2BuiltIn, class BuiltIn2Udt, class Udt2BuiltIn, class Udt2Udt>
-  struct for_udt_builtin_mixture
-  {
-    typedef typename
-      ct_switch4<UdtMixture
-                 , builtin2builtin_c, builtin2udt_c, udt2builtin_c // default
-                 , BuiltIn2BuiltIn  , BuiltIn2Udt  , Udt2BuiltIn  , Udt2Udt
-                >::type
-        type ;
-  } ;
-
-  // Metafunction:
-  //
-  //   get_udt_mixture<T,S>::type
-  //
-  // Selects the appropriate UdtMixture Integral Constant for the combination T,S.
-  //
-  template<class T,class S>
-  struct get_udt_builtin_mixture
-  {
-    typedef is_arithmetic<S> S_builtin ;
-    typedef is_arithmetic<T> T_builtin ;
-
-    typedef typename
-      for_both<S_builtin, T_builtin, builtin2builtin_c, builtin2udt_c, udt2builtin_c, udt2udt_c>::type
-        type ;
-  } ;
-
-} } } // namespace boost::numeric::convdetail
-
-#endif
-
-
diff --git a/boost/numeric/conversion/int_float_mixture_enum.hpp b/boost/numeric/conversion/int_float_mixture_enum.hpp
deleted file mode 100644
index d0c2daa..0000000
--- a/boost/numeric/conversion/int_float_mixture_enum.hpp
+++ /dev/null
@@ -1,29 +0,0 @@
-//  (c) Copyright Fernando Luis Cacciola Carballal 2000-2004
-//  Use, modification, and distribution is subject to the Boost Software
-//  License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-
-//  See library home page at http://www.boost.org/libs/numeric/conversion
-//
-// Contact the author at: fernando_cacciola at hotmail.com
-// 
-#ifndef BOOST_NUMERIC_CONVERSION_INT_FLOAT_MIXTURE_ENUM_FLC_12NOV2002_HPP
-#define BOOST_NUMERIC_CONVERSION_INT_FLOAT_MIXTURE_ENUM_FLC_12NOV2002_HPP
-
-namespace boost { namespace numeric
-{
-  enum int_float_mixture_enum
-  {
-     integral_to_integral
-    ,integral_to_float
-    ,float_to_integral
-    ,float_to_float
-  } ;
-
-} } // namespace boost::numeric
-
-#endif
-//
-///////////////////////////////////////////////////////////////////////////////////////////////
-
-
diff --git a/boost/numeric/conversion/numeric_cast_traits.hpp b/boost/numeric/conversion/numeric_cast_traits.hpp
deleted file mode 100644
index e24296b..0000000
--- a/boost/numeric/conversion/numeric_cast_traits.hpp
+++ /dev/null
@@ -1,31 +0,0 @@
-//
-//! Copyright (c) 2011
-//! Brandon Kohn
-//
-//  Distributed under the Boost Software License, Version 1.0. (See
-//  accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-#ifndef BOOST_NUMERIC_CAST_TRAITS_HPP
-#define BOOST_NUMERIC_CAST_TRAITS_HPP
-
-#include <boost/numeric/conversion/converter_policies.hpp>
-
-namespace boost { namespace numeric {
-
-    template <typename Target, typename Source, typename EnableIf = void>
-    struct numeric_cast_traits
-    {
-        typedef def_overflow_handler    overflow_policy;
-        typedef UseInternalRangeChecker range_checking_policy;
-        typedef Trunc<Source>           rounding_policy;
-    };
-
-}}//namespace boost::numeric;
-
-#if !defined( BOOST_NUMERIC_CONVERSION_RELAX_BUILT_IN_CAST_TRAITS )
-#include <boost/cstdint.hpp>
-#include <boost/numeric/conversion/detail/numeric_cast_traits.hpp>
-#endif//!defined BOOST_NUMERIC_CONVERSION_RELAX_BUILT_IN_CAST_TRAITS
-
-#endif//BOOST_NUMERIC_CAST_TRAITS_HPP
diff --git a/boost/numeric/conversion/sign_mixture_enum.hpp b/boost/numeric/conversion/sign_mixture_enum.hpp
deleted file mode 100644
index 1525f8d..0000000
--- a/boost/numeric/conversion/sign_mixture_enum.hpp
+++ /dev/null
@@ -1,29 +0,0 @@
-//  (c) Copyright Fernando Luis Cacciola Carballal 2000-2004
-//  Use, modification, and distribution is subject to the Boost Software
-//  License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-
-//  See library home page at http://www.boost.org/libs/numeric/conversion
-//
-// Contact the author at: fernando_cacciola at hotmail.com
-// 
-#ifndef BOOST_NUMERIC_CONVERSION_SIGN_MIXTURE_ENUM_FLC_12NOV2002_HPP
-#define BOOST_NUMERIC_CONVERSION_SIGN_MIXTURE_ENUM_FLC_12NOV2002_HPP
-
-namespace boost { namespace numeric
-{
-  enum sign_mixture_enum
-  {
-     unsigned_to_unsigned
-    ,signed_to_signed
-    ,signed_to_unsigned
-    ,unsigned_to_signed
-  } ;
-
-} } // namespace boost::numeric
-
-#endif
-//
-///////////////////////////////////////////////////////////////////////////////////////////////
-
-
diff --git a/boost/numeric/conversion/udt_builtin_mixture_enum.hpp b/boost/numeric/conversion/udt_builtin_mixture_enum.hpp
deleted file mode 100644
index 2540e80..0000000
--- a/boost/numeric/conversion/udt_builtin_mixture_enum.hpp
+++ /dev/null
@@ -1,26 +0,0 @@
-//  (c) Copyright Fernando Luis Cacciola Carballal 2000-2004
-//  Use, modification, and distribution is subject to the Boost Software
-//  License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-
-//  See library home page at http://www.boost.org/libs/numeric/conversion
-//
-// Contact the author at: fernando_cacciola at hotmail.com
-// 
-#ifndef BOOST_NUMERIC_CONVERSION_UDT_BUILTIN_MIXTURE_ENUM_FLC_12NOV2002_HPP
-#define BOOST_NUMERIC_CONVERSION_UDT_BUILTIN_MIXTURE_ENUM_FLC_12NOV2002_HPP
-
-namespace boost { namespace numeric
-{
-  enum udt_builtin_mixture_enum
-  {
-     builtin_to_builtin
-    ,builtin_to_udt
-    ,udt_to_builtin
-    ,udt_to_udt
-  } ;
-
-} } // namespace boost::numeric
-
-#endif
-
diff --git a/boost/optional.hpp b/boost/optional.hpp
deleted file mode 100644
index 40cf12e..0000000
--- a/boost/optional.hpp
+++ /dev/null
@@ -1,18 +0,0 @@
-// Copyright (C) 2003, Fernando Luis Cacciola Carballal.
-//
-// Use, modification, and distribution is subject to the Boost Software
-// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/optional for documentation.
-//
-// You are welcome to contact the author at:
-//  fernando_cacciola at hotmail.com
-//
-#ifndef BOOST_OPTIONAL_FLC_19NOV2002_HPP
-#define BOOST_OPTIONAL_FLC_19NOV2002_HPP
-
-#include "boost/optional/optional.hpp"
-
-#endif
-
diff --git a/boost/optional/optional.hpp b/boost/optional/optional.hpp
deleted file mode 100644
index 0d6dba4..0000000
--- a/boost/optional/optional.hpp
+++ /dev/null
@@ -1,991 +0,0 @@
-// Copyright (C) 2003, 2008 Fernando Luis Cacciola Carballal.
-//
-// Use, modification, and distribution is subject to the Boost Software
-// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/optional for documentation.
-//
-// You are welcome to contact the author at:
-//  fernando_cacciola at hotmail.com
-//
-// Revisions:
-// 27 Apr 2008 (improved swap) Fernando Cacciola, Niels Dekker, Thorsten Ottosen
-//
-#ifndef BOOST_OPTIONAL_OPTIONAL_FLC_19NOV2002_HPP
-#define BOOST_OPTIONAL_OPTIONAL_FLC_19NOV2002_HPP
-
-#include <new>
-#include <algorithm>
-
-#include <boost/config.hpp>
-#include <boost/assert.hpp>
-#include <boost/type.hpp>
-#include <boost/type_traits/alignment_of.hpp>
-#include <boost/type_traits/has_nothrow_constructor.hpp>
-#include <boost/type_traits/type_with_alignment.hpp>
-#include <boost/type_traits/remove_reference.hpp>
-#include <boost/type_traits/is_reference.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/not.hpp>
-#include <boost/detail/reference_content.hpp>
-#include <boost/none.hpp>
-#include <boost/utility/swap.hpp>
-#include <boost/utility/addressof.hpp>
-#include <boost/utility/compare_pointees.hpp>
-#include <boost/utility/in_place_factory.hpp>
-
-#include <boost/optional/optional_fwd.hpp>
-
-#if BOOST_WORKAROUND(BOOST_MSVC, == 1200)
-// VC6.0 has the following bug:
-//   When a templated assignment operator exist, an implicit conversion
-//   constructing an optional<T> is used when assigment of the form:
-//     optional<T> opt ; opt = T(...);
-//   is compiled.
-//   However, optional's ctor is _explicit_ and the assignemt shouldn't compile.
-//   Therefore, for VC6.0 templated assignment is disabled.
-//
-#define BOOST_OPTIONAL_NO_CONVERTING_ASSIGNMENT
-#endif
-
-#if BOOST_WORKAROUND(BOOST_MSVC, == 1300)
-// VC7.0 has the following bug:
-//   When both a non-template and a template copy-ctor exist
-//   and the templated version is made 'explicit', the explicit is also
-//   given to the non-templated version, making the class non-implicitely-copyable.
-//
-#define BOOST_OPTIONAL_NO_CONVERTING_COPY_CTOR
-#endif
-
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) || BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION,<=700)
-// AFAICT only VC7.1 correctly resolves the overload set
-// that includes the in-place factory taking functions,
-// so for the other VC versions, in-place factory support
-// is disabled
-#define BOOST_OPTIONAL_NO_INPLACE_FACTORY_SUPPORT
-#endif
-
-#if BOOST_WORKAROUND(__BORLANDC__, <= 0x551)
-// BCB (5.5.1) cannot parse the nested template struct in an inplace factory.
-#define BOOST_OPTIONAL_NO_INPLACE_FACTORY_SUPPORT
-#endif
-
-#if !defined(BOOST_OPTIONAL_NO_INPLACE_FACTORY_SUPPORT) \
-    && BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x581) )
-// BCB (up to 5.64) has the following bug:
-//   If there is a member function/operator template of the form
-//     template<class Expr> mfunc( Expr expr ) ;
-//   some calls are resolved to this even if there are other better matches.
-//   The effect of this bug is that calls to converting ctors and assignments
-//   are incrorrectly sink to this general catch-all member function template as shown above.
-#define BOOST_OPTIONAL_WEAK_OVERLOAD_RESOLUTION
-#endif
-
-#if defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__) > 302 \
-    && !defined(__INTEL_COMPILER)
-// GCC since 3.3 has may_alias attribute that helps to alleviate optimizer issues with
-// regard to violation of the strict aliasing rules. The optional< T > storage type is marked
-// with this attribute in order to let the compiler know that it will alias objects of type T
-// and silence compilation warnings.
-#define BOOST_OPTIONAL_DETAIL_USE_ATTRIBUTE_MAY_ALIAS
-#endif
-
-// Daniel Wallin discovered that bind/apply.hpp badly interacts with the apply<>
-// member template of a factory as used in the optional<> implementation.
-// He proposed this simple fix which is to move the call to apply<> outside
-// namespace boost.
-namespace boost_optional_detail
-{
-  template <class T, class Factory>
-  inline void construct(Factory const& factory, void* address)
-  {
-    factory.BOOST_NESTED_TEMPLATE apply<T>(address);
-  }
-}
-
-
-namespace boost {
-
-class in_place_factory_base ;
-class typed_in_place_factory_base ;
-
-// This forward is needed to refer to namespace scope swap from the member swap
-template<class T> void swap ( optional<T>& x, optional<T>& y );
-
-namespace optional_detail {
-
-// This local class is used instead of that in "aligned_storage.hpp"
-// because I've found the 'official' class to ICE BCB5.5
-// when some types are used with optional<>
-// (due to sizeof() passed down as a non-type template parameter)
-template <class T>
-class aligned_storage
-{
-    // Borland ICEs if unnamed unions are used for this!
-    union
-    // This works around GCC warnings about breaking strict aliasing rules when casting storage address to T*
-#if defined(BOOST_OPTIONAL_DETAIL_USE_ATTRIBUTE_MAY_ALIAS)
-    __attribute__((may_alias))
-#endif
-    dummy_u
-    {
-        char data[ sizeof(T) ];
-        BOOST_DEDUCED_TYPENAME type_with_alignment<
-          ::boost::alignment_of<T>::value >::type aligner_;
-    } dummy_ ;
-
-  public:
-
-#if defined(BOOST_OPTIONAL_DETAIL_USE_ATTRIBUTE_MAY_ALIAS)
-    void const* address() const { return &dummy_; }
-    void      * address()       { return &dummy_; }
-#else
-    void const* address() const { return dummy_.data; }
-    void      * address()       { return dummy_.data; }
-#endif
-} ;
-
-template<class T>
-struct types_when_isnt_ref
-{
-  typedef T const& reference_const_type ;
-  typedef T &      reference_type ;
-  typedef T const* pointer_const_type ;
-  typedef T *      pointer_type ;
-  typedef T const& argument_type ;
-} ;
-template<class T>
-struct types_when_is_ref
-{
-  typedef BOOST_DEDUCED_TYPENAME remove_reference<T>::type raw_type ;
-
-  typedef raw_type& reference_const_type ;
-  typedef raw_type& reference_type ;
-  typedef raw_type* pointer_const_type ;
-  typedef raw_type* pointer_type ;
-  typedef raw_type& argument_type ;
-} ;
-
-struct optional_tag {} ;
-
-template<class T>
-class optional_base : public optional_tag
-{
-  private :
-
-    typedef
-#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
-    BOOST_DEDUCED_TYPENAME
-#endif
-    ::boost::detail::make_reference_content<T>::type internal_type ;
-
-    typedef aligned_storage<internal_type> storage_type ;
-
-    typedef types_when_isnt_ref<T> types_when_not_ref ;
-    typedef types_when_is_ref<T>   types_when_ref   ;
-
-    typedef optional_base<T> this_type ;
-
-  protected :
-
-    typedef T value_type ;
-
-    typedef mpl::true_  is_reference_tag ;
-    typedef mpl::false_ is_not_reference_tag ;
-
-    typedef BOOST_DEDUCED_TYPENAME is_reference<T>::type is_reference_predicate ;
-
-  public:
-    typedef BOOST_DEDUCED_TYPENAME mpl::if_<is_reference_predicate,types_when_ref,types_when_not_ref>::type types ;
-
-  protected:
-    typedef bool (this_type::*unspecified_bool_type)() const;
-
-    typedef BOOST_DEDUCED_TYPENAME types::reference_type       reference_type ;
-    typedef BOOST_DEDUCED_TYPENAME types::reference_const_type reference_const_type ;
-    typedef BOOST_DEDUCED_TYPENAME types::pointer_type         pointer_type ;
-    typedef BOOST_DEDUCED_TYPENAME types::pointer_const_type   pointer_const_type ;
-    typedef BOOST_DEDUCED_TYPENAME types::argument_type        argument_type ;
-
-    // Creates an optional<T> uninitialized.
-    // No-throw
-    optional_base()
-      :
-      m_initialized(false) {}
-
-    // Creates an optional<T> uninitialized.
-    // No-throw
-    optional_base ( none_t )
-      :
-      m_initialized(false) {}
-
-    // Creates an optional<T> initialized with 'val'.
-    // Can throw if T::T(T const&) does
-    optional_base ( argument_type val )
-      :
-      m_initialized(false)
-    {
-      construct(val);
-    }
-
-    // Creates an optional<T> initialized with 'val' IFF cond is true, otherwise creates an uninitialzed optional<T>.
-    // Can throw if T::T(T const&) does
-    optional_base ( bool cond, argument_type val )
-      :
-      m_initialized(false)
-    {
-      if ( cond )
-        construct(val);
-    }
-
-    // Creates a deep copy of another optional<T>
-    // Can throw if T::T(T const&) does
-    optional_base ( optional_base const& rhs )
-      :
-      m_initialized(false)
-    {
-      if ( rhs.is_initialized() )
-        construct(rhs.get_impl());
-    }
-
-
-    // This is used for both converting and in-place constructions.
-    // Derived classes use the 'tag' to select the appropriate
-    // implementation (the correct 'construct()' overload)
-    template<class Expr>
-    explicit optional_base ( Expr const& expr, Expr const* tag )
-      :
-      m_initialized(false)
-    {
-      construct(expr,tag);
-    }
-
-
-
-    // No-throw (assuming T::~T() doesn't)
-    ~optional_base() { destroy() ; }
-
-    // Assigns from another optional<T> (deep-copies the rhs value)
-    void assign ( optional_base const& rhs )
-    {
-      if (is_initialized())
-      {
-        if ( rhs.is_initialized() )
-             assign_value(rhs.get_impl(), is_reference_predicate() );
-        else destroy();
-      }
-      else
-      {
-        if ( rhs.is_initialized() )
-          construct(rhs.get_impl());
-      }
-    }
-
-    // Assigns from another _convertible_ optional<U> (deep-copies the rhs value)
-    template<class U>
-    void assign ( optional<U> const& rhs )
-    {
-      if (is_initialized())
-      {
-        if ( rhs.is_initialized() )
-             assign_value(static_cast<value_type>(rhs.get()), is_reference_predicate() );
-        else destroy();
-      }
-      else
-      {
-        if ( rhs.is_initialized() )
-          construct(static_cast<value_type>(rhs.get()));
-      }
-    }
-
-    // Assigns from a T (deep-copies the rhs value)
-    void assign ( argument_type val )
-    {
-      if (is_initialized())
-           assign_value(val, is_reference_predicate() );
-      else construct(val);
-    }
-
-    // Assigns from "none", destroying the current value, if any, leaving this UNINITIALIZED
-    // No-throw (assuming T::~T() doesn't)
-    void assign ( none_t ) { destroy(); }
-
-#ifndef BOOST_OPTIONAL_NO_INPLACE_FACTORY_SUPPORT
-    template<class Expr>
-    void assign_expr ( Expr const& expr, Expr const* tag )
-      {
-        if (is_initialized())
-             assign_expr_to_initialized(expr,tag);
-        else construct(expr,tag);
-      }
-#endif
-
-  public :
-
-    // Destroys the current value, if any, leaving this UNINITIALIZED
-    // No-throw (assuming T::~T() doesn't)
-    void reset() { destroy(); }
-
-    // Replaces the current value -if any- with 'val'
-    void reset ( argument_type val ) { assign(val); }
-
-    // Returns a pointer to the value if this is initialized, otherwise,
-    // returns NULL.
-    // No-throw
-    pointer_const_type get_ptr() const { return m_initialized ? get_ptr_impl() : 0 ; }
-    pointer_type       get_ptr()       { return m_initialized ? get_ptr_impl() : 0 ; }
-
-    bool is_initialized() const { return m_initialized ; }
-
-  protected :
-
-    void construct ( argument_type val )
-     {
-       new (m_storage.address()) internal_type(val) ;
-       m_initialized = true ;
-     }
-
-#ifndef BOOST_OPTIONAL_NO_INPLACE_FACTORY_SUPPORT
-    // Constructs in-place using the given factory
-    template<class Expr>
-    void construct ( Expr const& factory, in_place_factory_base const* )
-     {
-       BOOST_STATIC_ASSERT ( ::boost::mpl::not_<is_reference_predicate>::value ) ;
-       boost_optional_detail::construct<value_type>(factory, m_storage.address());
-       m_initialized = true ;
-     }
-
-    // Constructs in-place using the given typed factory
-    template<class Expr>
-    void construct ( Expr const& factory, typed_in_place_factory_base const* )
-     {
-       BOOST_STATIC_ASSERT ( ::boost::mpl::not_<is_reference_predicate>::value ) ;
-       factory.apply(m_storage.address()) ;
-       m_initialized = true ;
-     }
-
-    template<class Expr>
-    void assign_expr_to_initialized ( Expr const& factory, in_place_factory_base const* tag )
-     {
-       destroy();
-       construct(factory,tag);
-     }
-
-    // Constructs in-place using the given typed factory
-    template<class Expr>
-    void assign_expr_to_initialized ( Expr const& factory, typed_in_place_factory_base const* tag )
-     {
-       destroy();
-       construct(factory,tag);
-     }
-#endif
-
-    // Constructs using any expression implicitely convertible to the single argument
-    // of a one-argument T constructor.
-    // Converting constructions of optional<T> from optional<U> uses this function with
-    // 'Expr' being of type 'U' and relying on a converting constructor of T from U.
-    template<class Expr>
-    void construct ( Expr const& expr, void const* )
-     {
-       new (m_storage.address()) internal_type(expr) ;
-       m_initialized = true ;
-     }
-
-    // Assigns using a form any expression implicitely convertible to the single argument
-    // of a T's assignment operator.
-    // Converting assignments of optional<T> from optional<U> uses this function with
-    // 'Expr' being of type 'U' and relying on a converting assignment of T from U.
-    template<class Expr>
-    void assign_expr_to_initialized ( Expr const& expr, void const* )
-     {
-       assign_value(expr, is_reference_predicate());
-     }
-
-#ifdef BOOST_OPTIONAL_WEAK_OVERLOAD_RESOLUTION
-    // BCB5.64 (and probably lower versions) workaround.
-    //   The in-place factories are supported by means of catch-all constructors
-    //   and assignment operators (the functions are parameterized in terms of
-    //   an arbitrary 'Expr' type)
-    //   This compiler incorrectly resolves the overload set and sinks optional<T> and optional<U>
-    //   to the 'Expr'-taking functions even though explicit overloads are present for them.
-    //   Thus, the following overload is needed to properly handle the case when the 'lhs'
-    //   is another optional.
-    //
-    // For VC<=70 compilers this workaround dosen't work becasue the comnpiler issues and error
-    // instead of choosing the wrong overload
-    //
-    // Notice that 'Expr' will be optional<T> or optional<U> (but not optional_base<..>)
-    template<class Expr>
-    void construct ( Expr const& expr, optional_tag const* )
-     {
-       if ( expr.is_initialized() )
-       {
-         // An exception can be thrown here.
-         // It it happens, THIS will be left uninitialized.
-         new (m_storage.address()) internal_type(expr.get()) ;
-         m_initialized = true ;
-       }
-     }
-#endif
-
-    void assign_value ( argument_type val, is_not_reference_tag ) { get_impl() = val; }
-    void assign_value ( argument_type val, is_reference_tag     ) { construct(val); }
-
-    void destroy()
-    {
-      if ( m_initialized )
-        destroy_impl(is_reference_predicate()) ;
-    }
-
-    unspecified_bool_type safe_bool() const { return m_initialized ? &this_type::is_initialized : 0 ; }
-
-    reference_const_type get_impl() const { return dereference(get_object(), is_reference_predicate() ) ; }
-    reference_type       get_impl()       { return dereference(get_object(), is_reference_predicate() ) ; }
-
-    pointer_const_type get_ptr_impl() const { return cast_ptr(get_object(), is_reference_predicate() ) ; }
-    pointer_type       get_ptr_impl()       { return cast_ptr(get_object(), is_reference_predicate() ) ; }
-
-  private :
-
-    // internal_type can be either T or reference_content<T>
-#if defined(BOOST_OPTIONAL_DETAIL_USE_ATTRIBUTE_MAY_ALIAS)
-    // This workaround is supposed to silence GCC warnings about broken strict aliasing rules
-    internal_type const* get_object() const
-    {
-        union { void const* ap_pvoid; internal_type const* as_ptype; } caster = { m_storage.address() };
-        return caster.as_ptype;
-    }
-    internal_type *      get_object()
-    {
-        union { void* ap_pvoid; internal_type* as_ptype; } caster = { m_storage.address() };
-        return caster.as_ptype;
-    }
-#else
-    internal_type const* get_object() const { return static_cast<internal_type const*>(m_storage.address()); }
-    internal_type *      get_object()       { return static_cast<internal_type *>     (m_storage.address()); }
-#endif
-
-    // reference_content<T> lacks an implicit conversion to T&, so the following is needed to obtain a proper reference.
-    reference_const_type dereference( internal_type const* p, is_not_reference_tag ) const { return *p ; }
-    reference_type       dereference( internal_type*       p, is_not_reference_tag )       { return *p ; }
-    reference_const_type dereference( internal_type const* p, is_reference_tag     ) const { return p->get() ; }
-    reference_type       dereference( internal_type*       p, is_reference_tag     )       { return p->get() ; }
-
-#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x581))
-    void destroy_impl ( is_not_reference_tag ) { get_ptr_impl()->internal_type::~internal_type() ; m_initialized = false ; }
-#else
-    void destroy_impl ( is_not_reference_tag ) { get_ptr_impl()->T::~T() ; m_initialized = false ; }
-#endif
-
-    void destroy_impl ( is_reference_tag     ) { m_initialized = false ; }
-
-    // If T is of reference type, trying to get a pointer to the held value must result in a compile-time error.
-    // Decent compilers should disallow conversions from reference_content<T>* to T*, but just in case,
-    // the following olverloads are used to filter out the case and guarantee an error in case of T being a reference.
-    pointer_const_type cast_ptr( internal_type const* p, is_not_reference_tag ) const { return p ; }
-    pointer_type       cast_ptr( internal_type *      p, is_not_reference_tag )       { return p ; }
-    pointer_const_type cast_ptr( internal_type const* p, is_reference_tag     ) const { return &p->get() ; }
-    pointer_type       cast_ptr( internal_type *      p, is_reference_tag     )       { return &p->get() ; }
-
-    bool m_initialized ;
-    storage_type m_storage ;
-} ;
-
-} // namespace optional_detail
-
-template<class T>
-class optional : public optional_detail::optional_base<T>
-{
-    typedef optional_detail::optional_base<T> base ;
-
-    typedef BOOST_DEDUCED_TYPENAME base::unspecified_bool_type  unspecified_bool_type ;
-
-  public :
-
-    typedef optional<T> this_type ;
-
-    typedef BOOST_DEDUCED_TYPENAME base::value_type           value_type ;
-    typedef BOOST_DEDUCED_TYPENAME base::reference_type       reference_type ;
-    typedef BOOST_DEDUCED_TYPENAME base::reference_const_type reference_const_type ;
-    typedef BOOST_DEDUCED_TYPENAME base::pointer_type         pointer_type ;
-    typedef BOOST_DEDUCED_TYPENAME base::pointer_const_type   pointer_const_type ;
-    typedef BOOST_DEDUCED_TYPENAME base::argument_type        argument_type ;
-
-    // Creates an optional<T> uninitialized.
-    // No-throw
-    optional() : base() {}
-
-    // Creates an optional<T> uninitialized.
-    // No-throw
-    optional( none_t none_ ) : base(none_) {}
-
-    // Creates an optional<T> initialized with 'val'.
-    // Can throw if T::T(T const&) does
-    optional ( argument_type val ) : base(val) {}
-
-    // Creates an optional<T> initialized with 'val' IFF cond is true, otherwise creates an uninitialized optional.
-    // Can throw if T::T(T const&) does
-    optional ( bool cond, argument_type val ) : base(cond,val) {}
-
-#ifndef BOOST_OPTIONAL_NO_CONVERTING_COPY_CTOR
-    // NOTE: MSVC needs templated versions first
-
-    // Creates a deep copy of another convertible optional<U>
-    // Requires a valid conversion from U to T.
-    // Can throw if T::T(U const&) does
-    template<class U>
-    explicit optional ( optional<U> const& rhs )
-      :
-      base()
-    {
-      if ( rhs.is_initialized() )
-        this->construct(rhs.get());
-    }
-#endif
-
-#ifndef BOOST_OPTIONAL_NO_INPLACE_FACTORY_SUPPORT
-    // Creates an optional<T> with an expression which can be either
-    //  (a) An instance of InPlaceFactory (i.e. in_place(a,b,...,n);
-    //  (b) An instance of TypedInPlaceFactory ( i.e. in_place<T>(a,b,...,n);
-    //  (c) Any expression implicitely convertible to the single type
-    //      of a one-argument T's constructor.
-    //  (d*) Weak compilers (BCB) might also resolved Expr as optional<T> and optional<U>
-    //       even though explicit overloads are present for these.
-    // Depending on the above some T ctor is called.
-    // Can throw is the resolved T ctor throws.
-    template<class Expr>
-    explicit optional ( Expr const& expr ) : base(expr,boost::addressof(expr)) {}
-#endif
-
-    // Creates a deep copy of another optional<T>
-    // Can throw if T::T(T const&) does
-    optional ( optional const& rhs ) : base( static_cast<base const&>(rhs) ) {}
-
-   // No-throw (assuming T::~T() doesn't)
-    ~optional() {}
-
-#if !defined(BOOST_OPTIONAL_NO_INPLACE_FACTORY_SUPPORT) && !defined(BOOST_OPTIONAL_WEAK_OVERLOAD_RESOLUTION)
-    // Assigns from an expression. See corresponding constructor.
-    // Basic Guarantee: If the resolved T ctor throws, this is left UNINITIALIZED
-    template<class Expr>
-    optional& operator= ( Expr const& expr )
-      {
-        this->assign_expr(expr,boost::addressof(expr));
-        return *this ;
-      }
-#endif
-
-
-#ifndef BOOST_OPTIONAL_NO_CONVERTING_ASSIGNMENT
-    // Assigns from another convertible optional<U> (converts && deep-copies the rhs value)
-    // Requires a valid conversion from U to T.
-    // Basic Guarantee: If T::T( U const& ) throws, this is left UNINITIALIZED
-    template<class U>
-    optional& operator= ( optional<U> const& rhs )
-      {
-        this->assign(rhs);
-        return *this ;
-      }
-#endif
-
-    // Assigns from another optional<T> (deep-copies the rhs value)
-    // Basic Guarantee: If T::T( T const& ) throws, this is left UNINITIALIZED
-    //  (NOTE: On BCB, this operator is not actually called and left is left UNMODIFIED in case of a throw)
-    optional& operator= ( optional const& rhs )
-      {
-        this->assign( static_cast<base const&>(rhs) ) ;
-        return *this ;
-      }
-
-    // Assigns from a T (deep-copies the rhs value)
-    // Basic Guarantee: If T::( T const& ) throws, this is left UNINITIALIZED
-    optional& operator= ( argument_type val )
-      {
-        this->assign( val ) ;
-        return *this ;
-      }
-
-    // Assigns from a "none"
-    // Which destroys the current value, if any, leaving this UNINITIALIZED
-    // No-throw (assuming T::~T() doesn't)
-    optional& operator= ( none_t none_ )
-      {
-        this->assign( none_ ) ;
-        return *this ;
-      }
-
-    void swap( optional & arg )
-      {
-        // allow for Koenig lookup
-        using boost::swap;
-        swap(*this, arg);
-      }
-
-
-    // Returns a reference to the value if this is initialized, otherwise,
-    // the behaviour is UNDEFINED
-    // No-throw
-    reference_const_type get() const { BOOST_ASSERT(this->is_initialized()) ; return this->get_impl(); }
-    reference_type       get()       { BOOST_ASSERT(this->is_initialized()) ; return this->get_impl(); }
-
-    // Returns a copy of the value if this is initialized, 'v' otherwise
-    reference_const_type get_value_or ( reference_const_type v ) const { return this->is_initialized() ? get() : v ; }
-    reference_type       get_value_or ( reference_type       v )       { return this->is_initialized() ? get() : v ; }
-
-    // Returns a pointer to the value if this is initialized, otherwise,
-    // the behaviour is UNDEFINED
-    // No-throw
-    pointer_const_type operator->() const { BOOST_ASSERT(this->is_initialized()) ; return this->get_ptr_impl() ; }
-    pointer_type       operator->()       { BOOST_ASSERT(this->is_initialized()) ; return this->get_ptr_impl() ; }
-
-    // Returns a reference to the value if this is initialized, otherwise,
-    // the behaviour is UNDEFINED
-    // No-throw
-    reference_const_type operator *() const { return this->get() ; }
-    reference_type       operator *()       { return this->get() ; }
-
-    // implicit conversion to "bool"
-    // No-throw
-    operator unspecified_bool_type() const { return this->safe_bool() ; }
-
-    // This is provided for those compilers which don't like the conversion to bool
-    // on some contexts.
-    bool operator!() const { return !this->is_initialized() ; }
-} ;
-
-// Returns optional<T>(v)
-template<class T>
-inline
-optional<T> make_optional ( T const& v  )
-{
-  return optional<T>(v);
-}
-
-// Returns optional<T>(cond,v)
-template<class T>
-inline
-optional<T> make_optional ( bool cond, T const& v )
-{
-  return optional<T>(cond,v);
-}
-
-// Returns a reference to the value if this is initialized, otherwise, the behaviour is UNDEFINED.
-// No-throw
-template<class T>
-inline
-BOOST_DEDUCED_TYPENAME optional<T>::reference_const_type
-get ( optional<T> const& opt )
-{
-  return opt.get() ;
-}
-
-template<class T>
-inline
-BOOST_DEDUCED_TYPENAME optional<T>::reference_type
-get ( optional<T>& opt )
-{
-  return opt.get() ;
-}
-
-// Returns a pointer to the value if this is initialized, otherwise, returns NULL.
-// No-throw
-template<class T>
-inline
-BOOST_DEDUCED_TYPENAME optional<T>::pointer_const_type
-get ( optional<T> const* opt )
-{
-  return opt->get_ptr() ;
-}
-
-template<class T>
-inline
-BOOST_DEDUCED_TYPENAME optional<T>::pointer_type
-get ( optional<T>* opt )
-{
-  return opt->get_ptr() ;
-}
-
-// Returns a reference to the value if this is initialized, otherwise, the behaviour is UNDEFINED.
-// No-throw
-template<class T>
-inline
-BOOST_DEDUCED_TYPENAME optional<T>::reference_const_type
-get_optional_value_or ( optional<T> const& opt, BOOST_DEDUCED_TYPENAME optional<T>::reference_const_type v )
-{
-  return opt.get_value_or(v) ;
-}
-
-template<class T>
-inline
-BOOST_DEDUCED_TYPENAME optional<T>::reference_type
-get_optional_value_or ( optional<T>& opt, BOOST_DEDUCED_TYPENAME optional<T>::reference_type v )
-{
-  return opt.get_value_or(v) ;
-}
-
-// Returns a pointer to the value if this is initialized, otherwise, returns NULL.
-// No-throw
-template<class T>
-inline
-BOOST_DEDUCED_TYPENAME optional<T>::pointer_const_type
-get_pointer ( optional<T> const& opt )
-{
-  return opt.get_ptr() ;
-}
-
-template<class T>
-inline
-BOOST_DEDUCED_TYPENAME optional<T>::pointer_type
-get_pointer ( optional<T>& opt )
-{
-  return opt.get_ptr() ;
-}
-
-// optional's relational operators ( ==, !=, <, >, <=, >= ) have deep-semantics (compare values).
-// WARNING: This is UNLIKE pointers. Use equal_pointees()/less_pointess() in generic code instead.
-
-
-//
-// optional<T> vs optional<T> cases
-//
-
-template<class T>
-inline
-bool operator == ( optional<T> const& x, optional<T> const& y )
-{ return equal_pointees(x,y); }
-
-template<class T>
-inline
-bool operator < ( optional<T> const& x, optional<T> const& y )
-{ return less_pointees(x,y); }
-
-template<class T>
-inline
-bool operator != ( optional<T> const& x, optional<T> const& y )
-{ return !( x == y ) ; }
-
-template<class T>
-inline
-bool operator > ( optional<T> const& x, optional<T> const& y )
-{ return y < x ; }
-
-template<class T>
-inline
-bool operator <= ( optional<T> const& x, optional<T> const& y )
-{ return !( y < x ) ; }
-
-template<class T>
-inline
-bool operator >= ( optional<T> const& x, optional<T> const& y )
-{ return !( x < y ) ; }
-
-
-//
-// optional<T> vs T cases
-//
-template<class T>
-inline
-bool operator == ( optional<T> const& x, T const& y )
-{ return equal_pointees(x, optional<T>(y)); }
-
-template<class T>
-inline
-bool operator < ( optional<T> const& x, T const& y )
-{ return less_pointees(x, optional<T>(y)); }
-
-template<class T>
-inline
-bool operator != ( optional<T> const& x, T const& y )
-{ return !( x == y ) ; }
-
-template<class T>
-inline
-bool operator > ( optional<T> const& x, T const& y )
-{ return y < x ; }
-
-template<class T>
-inline
-bool operator <= ( optional<T> const& x, T const& y )
-{ return !( y < x ) ; }
-
-template<class T>
-inline
-bool operator >= ( optional<T> const& x, T const& y )
-{ return !( x < y ) ; }
-
-//
-// T vs optional<T> cases
-//
-
-template<class T>
-inline
-bool operator == ( T const& x, optional<T> const& y )
-{ return equal_pointees( optional<T>(x), y ); }
-
-template<class T>
-inline
-bool operator < ( T const& x, optional<T> const& y )
-{ return less_pointees( optional<T>(x), y ); }
-
-template<class T>
-inline
-bool operator != ( T const& x, optional<T> const& y )
-{ return !( x == y ) ; }
-
-template<class T>
-inline
-bool operator > ( T const& x, optional<T> const& y )
-{ return y < x ; }
-
-template<class T>
-inline
-bool operator <= ( T const& x, optional<T> const& y )
-{ return !( y < x ) ; }
-
-template<class T>
-inline
-bool operator >= ( T const& x, optional<T> const& y )
-{ return !( x < y ) ; }
-
-
-//
-// optional<T> vs none cases
-//
-
-template<class T>
-inline
-bool operator == ( optional<T> const& x, none_t )
-{ return equal_pointees(x, optional<T>() ); }
-
-template<class T>
-inline
-bool operator < ( optional<T> const& x, none_t )
-{ return less_pointees(x,optional<T>() ); }
-
-template<class T>
-inline
-bool operator != ( optional<T> const& x, none_t y )
-{ return !( x == y ) ; }
-
-template<class T>
-inline
-bool operator > ( optional<T> const& x, none_t y )
-{ return y < x ; }
-
-template<class T>
-inline
-bool operator <= ( optional<T> const& x, none_t y )
-{ return !( y < x ) ; }
-
-template<class T>
-inline
-bool operator >= ( optional<T> const& x, none_t y )
-{ return !( x < y ) ; }
-
-//
-// none vs optional<T> cases
-//
-
-template<class T>
-inline
-bool operator == ( none_t , optional<T> const& y )
-{ return equal_pointees(optional<T>() ,y); }
-
-template<class T>
-inline
-bool operator < ( none_t , optional<T> const& y )
-{ return less_pointees(optional<T>() ,y); }
-
-template<class T>
-inline
-bool operator != ( none_t x, optional<T> const& y )
-{ return !( x == y ) ; }
-
-template<class T>
-inline
-bool operator > ( none_t x, optional<T> const& y )
-{ return y < x ; }
-
-template<class T>
-inline
-bool operator <= ( none_t x, optional<T> const& y )
-{ return !( y < x ) ; }
-
-template<class T>
-inline
-bool operator >= ( none_t x, optional<T> const& y )
-{ return !( x < y ) ; }
-
-namespace optional_detail {
-
-template<bool use_default_constructor> struct swap_selector;
-
-template<>
-struct swap_selector<true>
-{
-    template<class T>
-    static void optional_swap ( optional<T>& x, optional<T>& y )
-    {
-        const bool hasX = !!x;
-        const bool hasY = !!y;
-
-        if ( !hasX && !hasY )
-            return;
-
-        if( !hasX )
-            x = boost::in_place();
-        else if ( !hasY )
-            y = boost::in_place();
-
-        // Boost.Utility.Swap will take care of ADL and workarounds for broken compilers
-        boost::swap(x.get(),y.get());
-
-        if( !hasX )
-            y = boost::none ;
-        else if( !hasY )
-            x = boost::none ;
-    }
-};
-
-template<>
-struct swap_selector<false>
-{
-    template<class T>
-    static void optional_swap ( optional<T>& x, optional<T>& y )
-    {
-        const bool hasX = !!x;
-        const bool hasY = !!y;
-
-        if ( !hasX && hasY )
-        {
-            x = y.get();
-            y = boost::none ;
-        }
-        else if ( hasX && !hasY )
-        {
-            y = x.get();
-            x = boost::none ;
-        }
-        else if ( hasX && hasY )
-        {
-            // Boost.Utility.Swap will take care of ADL and workarounds for broken compilers
-            boost::swap(x.get(),y.get());
-        }
-    }
-};
-
-} // namespace optional_detail
-
-template<class T>
-struct optional_swap_should_use_default_constructor : has_nothrow_default_constructor<T> {} ;
-
-template<class T> inline void swap ( optional<T>& x, optional<T>& y )
-{
-    optional_detail::swap_selector<optional_swap_should_use_default_constructor<T>::value>::optional_swap(x, y);
-}
-
-} // namespace boost
-
-#endif
diff --git a/boost/optional/optional_fwd.hpp b/boost/optional/optional_fwd.hpp
deleted file mode 100644
index 388cc1c..0000000
--- a/boost/optional/optional_fwd.hpp
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright (C) 2003, 2008 Fernando Luis Cacciola Carballal.
-//
-// Use, modification, and distribution is subject to the Boost Software
-// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/optional for documentation.
-//
-// You are welcome to contact the author at:
-//  fernando_cacciola at hotmail.com
-//
-// Revisions:
-// 10 May 2008 (added swap related forward declaration) Niels Dekker
-// 
-#ifndef BOOST_OPTIONAL_OPTIONAL_FWD_FLC_19NOV2002_HPP
-#define BOOST_OPTIONAL_OPTIONAL_FWD_FLC_19NOV2002_HPP
-
-namespace boost {
-
-template<class T> class optional ;
-
-template<class T> void swap ( optional<T>& , optional<T>& ) ;
-
-template<class T> struct optional_swap_should_use_default_constructor ;
-
-} // namespace boost
-
-#endif
-
diff --git a/boost/pending/integer_log2.hpp b/boost/pending/integer_log2.hpp
deleted file mode 100644
index f4bc846..0000000
--- a/boost/pending/integer_log2.hpp
+++ /dev/null
@@ -1,112 +0,0 @@
-// -----------------------------------------------------------
-// integer_log2.hpp
-//
-//   Gives the integer part of the logarithm, in base 2, of a
-// given number. Behavior is undefined if the argument is <= 0.
-//
-//         Copyright (c) 2003-2004, 2008 Gennaro Prota
-//
-// Distributed under the Boost Software License, Version 1.0.
-//    (See accompanying file LICENSE_1_0.txt or copy at
-//          http://www.boost.org/LICENSE_1_0.txt)
-//
-// -----------------------------------------------------------
-
-#ifndef BOOST_INTEGER_LOG2_HPP_GP_20030301
-#define BOOST_INTEGER_LOG2_HPP_GP_20030301
-
-#include <assert.h>
-#ifdef __BORLANDC__
-#include <climits>
-#endif
-#include "boost/limits.hpp"
-#include "boost/config.hpp"
-
-
-namespace boost {
- namespace detail {
-
-  template <typename T>
-  int integer_log2_impl(T x, int n) {
-
-      int result = 0;
-
-      while (x != 1) {
-
-          const T t = static_cast<T>(x >> n);
-          if (t) {
-              result += n;
-              x = t;
-          }
-          n /= 2;
-
-      }
-
-      return result;
-  }
-
-
-
-  // helper to find the maximum power of two
-  // less than p (more involved than necessary,
-  // to avoid PTS)
-  //
-  template <int p, int n>
-  struct max_pow2_less {
-
-      enum { c = 2*n < p };
-
-      BOOST_STATIC_CONSTANT(int, value =
-          c ? (max_pow2_less< c*p, 2*c*n>::value) : n);
-
-  };
-
-  template <>
-  struct max_pow2_less<0, 0> {
-
-      BOOST_STATIC_CONSTANT(int, value = 0);
-  };
-
-  // this template is here just for Borland :(
-  // we could simply rely on numeric_limits but sometimes
-  // Borland tries to use numeric_limits<const T>, because
-  // of its usual const-related problems in argument deduction
-  // - gps
-  template <typename T>
-  struct width {
-
-#ifdef __BORLANDC__
-      BOOST_STATIC_CONSTANT(int, value = sizeof(T) * CHAR_BIT);
-#else
-      BOOST_STATIC_CONSTANT(int, value = (std::numeric_limits<T>::digits));
-#endif
-
-  };
-
- } // detail
-
-
- // ---------
- // integer_log2
- // ---------------
- //
- template <typename T>
- int integer_log2(T x) {
-
-     assert(x > 0);
-
-     const int n = detail::max_pow2_less<
-                     detail::width<T> :: value, 4
-                   > :: value;
-
-     return detail::integer_log2_impl(x, n);
-
- }
-
-
-
-}
-
-
-
-#endif // include guard
diff --git a/boost/predef/architecture.h b/boost/predef/architecture.h
deleted file mode 100644
index 9eda25e..0000000
--- a/boost/predef/architecture.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
-Copyright Redshift Software, Inc. 2008-2013
-Distributed under the Boost Software License, Version 1.0.
-(See accompanying file LICENSE_1_0.txt or copy at
-http://www.boost.org/LICENSE_1_0.txt)
-*/
-
-#ifndef BOOST_PREDEF_ARCHITECTURE_H
-#define BOOST_PREDEF_ARCHITECTURE_H
-
-#include <boost/predef/architecture/alpha.h>
-#include <boost/predef/architecture/arm.h>
-#include <boost/predef/architecture/blackfin.h>
-#include <boost/predef/architecture/convex.h>
-#include <boost/predef/architecture/ia64.h>
-#include <boost/predef/architecture/m68k.h>
-#include <boost/predef/architecture/mips.h>
-#include <boost/predef/architecture/parisc.h>
-#include <boost/predef/architecture/ppc.h>
-#include <boost/predef/architecture/pyramid.h>
-#include <boost/predef/architecture/rs6k.h>
-#include <boost/predef/architecture/sparc.h>
-#include <boost/predef/architecture/superh.h>
-#include <boost/predef/architecture/sys370.h>
-#include <boost/predef/architecture/sys390.h>
-#include <boost/predef/architecture/x86.h>
-#include <boost/predef/architecture/z.h>
-/*#include <boost/predef/architecture/.h>*/
-
-#endif
diff --git a/boost/predef/architecture/alpha.h b/boost/predef/architecture/alpha.h
deleted file mode 100644
index 7ccc480..0000000
--- a/boost/predef/architecture/alpha.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
-Copyright Redshift Software, Inc. 2008-2013
-Distributed under the Boost Software License, Version 1.0.
-(See accompanying file LICENSE_1_0.txt or copy at
-http://www.boost.org/LICENSE_1_0.txt)
-*/
-
-#ifndef BOOST_PREDEF_ARCHITECTURE_ALPHA_H
-#define BOOST_PREDEF_ARCHITECTURE_ALPHA_H
-
-#include <boost/predef/version_number.h>
-#include <boost/predef/make.h>
-
-/*`
-[heading `BOOST_ARCH_ALPHA`]
-
-[@http://en.wikipedia.org/wiki/DEC_Alpha DEC Alpha] architecture.
-
-[table
-    [[__predef_symbol__] [__predef_version__]]
-    [[`__alpha__`] [__predef_detection__]]
-    [[`__alpha`] [__predef_detection__]]
-    [[`_M_ALPHA`] [__predef_detection__]]
-
-    [[`__alpha_ev4__`] [4.0.0]]
-    [[`__alpha_ev5__`] [5.0.0]]
-    [[`__alpha_ev6__`] [6.0.0]]
-    ]
- */
-
-#define BOOST_ARCH_ALPHA BOOST_VERSION_NUMBER_NOT_AVAILABLE
-
-#if defined(__alpha__) || defined(__alpha) || \
-    defined(_M_ALPHA)
-#   undef BOOST_ARCH_ALPHA
-#   if !defined(BOOST_ARCH_ALPHA) && defined(__alpha_ev4__)
-#       define BOOST_ARCH_ALPHA BOOST_VERSION_NUMBER(4,0,0)
-#   endif
-#   if !defined(BOOST_ARCH_ALPHA) && defined(__alpha_ev5__)
-#       define BOOST_ARCH_ALPHA BOOST_VERSION_NUMBER(5,0,0)
-#   endif
-#   if !defined(BOOST_ARCH_ALPHA) && defined(__alpha_ev6__)
-#       define BOOST_ARCH_ALPHA BOOST_VERSION_NUMBER(6,0,0)
-#   endif
-#   if !defined(BOOST_ARCH_ALPHA)
-#       define BOOST_ARCH_ALPHA BOOST_VERSION_NUMBER_AVAILABLE
-#   endif
-#endif
-
-#if BOOST_ARCH_ALPHA
-#   define BOOST_ARCH_ALPHA_AVAILABLE
-#endif
-
-#define BOOST_ARCH_ALPHA_NAME "DEC Alpha"
-
-#include <boost/predef/detail/test.h>
-BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_ALPHA,BOOST_ARCH_ALPHA_NAME)
-
-
-#endif
diff --git a/boost/predef/architecture/arm.h b/boost/predef/architecture/arm.h
deleted file mode 100644
index b221a51..0000000
--- a/boost/predef/architecture/arm.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
-Copyright Redshift Software, Inc. 2008-2013
-Distributed under the Boost Software License, Version 1.0.
-(See accompanying file LICENSE_1_0.txt or copy at
-http://www.boost.org/LICENSE_1_0.txt)
-*/
-
-#ifndef BOOST_PREDEF_ARCHITECTURE_ARM_H
-#define BOOST_PREDEF_ARCHITECTURE_ARM_H
-
-#include <boost/predef/version_number.h>
-#include <boost/predef/make.h>
-
-/*`
-[heading `BOOST_ARCH_ARM`]
-
-[@http://en.wikipedia.org/wiki/ARM_architecture ARM] architecture.
-
-[table
-    [[__predef_symbol__] [__predef_version__]]
-
-    [[`__arm__`] [__predef_detection__]]
-    [[`__thumb__`] [__predef_detection__]]
-    [[`__TARGET_ARCH_ARM`] [__predef_detection__]]
-    [[`__TARGET_ARCH_THUMB`] [__predef_detection__]]
-
-    [[`__TARGET_ARCH_ARM`] [V.0.0]]
-    [[`__TARGET_ARCH_THUMB`] [V.0.0]]
-    ]
- */
-
-#define BOOST_ARCH_ARM BOOST_VERSION_NUMBER_NOT_AVAILABLE
-
-#if defined(__arm__) || defined(__thumb__) || \
-    defined(__TARGET_ARCH_ARM) || defined(__TARGET_ARCH_THUMB)
-#   undef BOOST_ARCH_ARM
-#   if !defined(BOOST_ARCH_ARM) && defined(__TARGET_ARCH_ARM)
-#       define BOOST_ARCH_ARM BOOST_VERSION_NUMBER(__TARGET_ARCH_ARM,0,0)
-#   endif
-#   if !defined(BOOST_ARCH_ARM) && defined(__TARGET_ARCH_THUMB)
-#       define BOOST_ARCH_ARM BOOST_VERSION_NUMBER(__TARGET_ARCH_THUMB,0,0)
-#   endif
-#   if !defined(BOOST_ARCH_ARM)
-#       define BOOST_ARCH_ARM BOOST_VERSION_NUMBER_AVAILABLE
-#   endif
-#endif
-
-#if BOOST_ARCH_ARM
-#   define BOOST_ARCH_ARM_AVAILABLE
-#endif
-
-#define BOOST_ARCH_ARM_NAME "ARM"
-
-#include <boost/predef/detail/test.h>
-BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_ARM,BOOST_ARCH_ARM_NAME)
-
-
-#endif
diff --git a/boost/predef/architecture/blackfin.h b/boost/predef/architecture/blackfin.h
deleted file mode 100644
index 7b4f275..0000000
--- a/boost/predef/architecture/blackfin.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
-Copyright Redshift Software Inc 2013
-Distributed under the Boost Software License, Version 1.0.
-(See accompanying file LICENSE_1_0.txt or copy at
-http://www.boost.org/LICENSE_1_0.txt)
-*/
-
-#ifndef BOOST_PREDEF_ARCHITECTURE_BLACKFIN_H
-#define BOOST_PREDEF_ARCHITECTURE_BLACKFIN_H
-
-#include <boost/predef/version_number.h>
-#include <boost/predef/make.h>
-
-/*`
-[heading `BOOST_ARCH_BLACKFIN`]
-
-Blackfin Processors from Analog Devices.
-
-[table
-    [[__predef_symbol__] [__predef_version__]]
-
-    [[`__bfin__`] [__predef_detection__]]
-    [[`__BFIN__`] [__predef_detection__]]
-    [[`bfin`] [__predef_detection__]]
-    [[`BFIN`] [__predef_detection__]]
-    ]
- */
-
-#define BOOST_ARCH_BLACKFIN BOOST_VERSION_NUMBER_NOT_AVAILABLE
-
-#if defined(__bfin__) || defined(__BFIN__) || \
-    defined(bfin) || defined(BFIN)
-#   undef BOOST_ARCH_BLACKFIN
-#   define BOOST_ARCH_BLACKFIN BOOST_VERSION_NUMBER_AVAILABLE
-#endif
-
-#if BOOST_ARCH_BLACKFIN
-#   define BOOST_ARCH_BLACKFIN_AVAILABLE
-#endif
-
-#define BOOST_ARCH_BLACKFIN_NAME "Blackfin"
-
-#include <boost/predef/detail/test.h>
-BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_BLACKFIN,BOOST_ARCH_BLACKFIN_NAME)
-
-
-#endif
diff --git a/boost/predef/architecture/convex.h b/boost/predef/architecture/convex.h
deleted file mode 100644
index fbb8e96..0000000
--- a/boost/predef/architecture/convex.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
-Copyright Redshift Software Inc 2011-2013
-Distributed under the Boost Software License, Version 1.0.
-(See accompanying file LICENSE_1_0.txt or copy at
-http://www.boost.org/LICENSE_1_0.txt)
-*/
-
-#ifndef BOOST_PREDEF_ARCHITECTURE_CONVEX_H
-#define BOOST_PREDEF_ARCHITECTURE_CONVEX_H
-
-#include <boost/predef/version_number.h>
-#include <boost/predef/make.h>
-
-/*`
-[heading `BOOST_ARCH_CONVEX`]
-
-[@http://en.wikipedia.org/wiki/Convex_Computer Convex Computer] architecture.
-
-[table
-    [[__predef_symbol__] [__predef_version__]]
-
-    [[`__convex__`] [__predef_detection__]]
-
-    [[`__convex_c1__`] [1.0.0]]
-    [[`__convex_c2__`] [2.0.0]]
-    [[`__convex_c32__`] [3.2.0]]
-    [[`__convex_c34__`] [3.4.0]]
-    [[`__convex_c38__`] [3.8.0]]
-    ]
- */
-
-#define BOOST_ARCH_CONVEX BOOST_VERSION_NUMBER_NOT_AVAILABLE
-
-#if defined(__convex__)
-#   undef BOOST_ARCH_CONVEX
-#   if !defined(BOOST_ARCH_CONVEX) && defined(__convex_c1__)
-#       define BOOST_ARCH_CONVEX BOOST_VERSION_NUMBER(1,0,0)
-#   endif
-#   if !defined(BOOST_ARCH_CONVEX) && defined(__convex_c2__)
-#       define BOOST_ARCH_CONVEX BOOST_VERSION_NUMBER(2,0,0)
-#   endif
-#   if !defined(BOOST_ARCH_CONVEX) && defined(__convex_c32__)
-#       define BOOST_ARCH_CONVEX BOOST_VERSION_NUMBER(3,2,0)
-#   endif
-#   if !defined(BOOST_ARCH_CONVEX) && defined(__convex_c34__)
-#       define BOOST_ARCH_CONVEX BOOST_VERSION_NUMBER(3,4,0)
-#   endif
-#   if !defined(BOOST_ARCH_CONVEX) && defined(__convex_c38__)
-#       define BOOST_ARCH_CONVEX BOOST_VERSION_NUMBER(3,8,0)
-#   endif
-#   if !defined(BOOST_ARCH_CONVEX)
-#       define BOOST_ARCH_CONVEX BOOST_VERSION_NUMBER_AVAILABLE
-#   endif
-#endif
-
-#if BOOST_ARCH_CONVEX
-#   define BOOST_ARCH_CONVEX_AVAILABLE
-#endif
-
-#define BOOST_ARCH_CONVEX_NAME "Convex Computer"
-
-#include <boost/predef/detail/test.h>
-BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_CONVEX,BOOST_ARCH_CONVEX_NAME)
-
-
-
-#endif
diff --git a/boost/predef/architecture/ia64.h b/boost/predef/architecture/ia64.h
deleted file mode 100644
index 918e27f..0000000
--- a/boost/predef/architecture/ia64.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
-Copyright Redshift Software, Inc. 2008-2013
-Distributed under the Boost Software License, Version 1.0.
-(See accompanying file LICENSE_1_0.txt or copy at
-http://www.boost.org/LICENSE_1_0.txt)
-*/
-
-#ifndef BOOST_PREDEF_ARCHITECTURE_IA64_H
-#define BOOST_PREDEF_ARCHITECTURE_IA64_H
-
-#include <boost/predef/version_number.h>
-#include <boost/predef/make.h>
-
-/*`
-[heading `BOOST_ARCH_IA64`]
-
-[@http://en.wikipedia.org/wiki/Ia64 Intel Itanium 64] architecture.
-
-[table
-    [[__predef_symbol__] [__predef_version__]]
-
-    [[`__ia64__`] [__predef_detection__]]
-    [[`_IA64`] [__predef_detection__]]
-    [[`__IA64__`] [__predef_detection__]]
-    [[`__ia64`] [__predef_detection__]]
-    [[`_M_IA64`] [__predef_detection__]]
-    [[`__itanium__`] [__predef_detection__]]
-    ]
- */
-
-#define BOOST_ARCH_IA64 BOOST_VERSION_NUMBER_NOT_AVAILABLE
-
-#if defined(__ia64__) || defined(_IA64) || \
-    defined(__IA64__) || defined(__ia64) || \
-    defined(_M_IA64) || defined(__itanium__)
-#   undef BOOST_ARCH_IA64
-#   define BOOST_ARCH_IA64 BOOST_VERSION_NUMBER_AVAILABLE
-#endif
-
-#if BOOST_ARCH_IA64
-#   define BOOST_ARCH_IA64_AVAILABLE
-#endif
-
-#define BOOST_ARCH_IA64_NAME "Intel Itanium 64"
-
-#include <boost/predef/detail/test.h>
-BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_IA64,BOOST_ARCH_IA64_NAME)
-
-#endif
diff --git a/boost/predef/architecture/m68k.h b/boost/predef/architecture/m68k.h
deleted file mode 100644
index 2950c9a..0000000
--- a/boost/predef/architecture/m68k.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
-Copyright Redshift Software, Inc. 2008-2013
-Distributed under the Boost Software License, Version 1.0.
-(See accompanying file LICENSE_1_0.txt or copy at
-http://www.boost.org/LICENSE_1_0.txt)
-*/
-
-#ifndef BOOST_PREDEF_ARCHITECTURE_M68K_H
-#define BOOST_PREDEF_ARCHITECTURE_M68K_H
-
-#include <boost/predef/version_number.h>
-#include <boost/predef/make.h>
-
-/*`
-[heading `BOOST_ARCH_M68K`]
-
-[@http://en.wikipedia.org/wiki/M68k Motorola 68k] architecture.
-
-[table
-    [[__predef_symbol__] [__predef_version__]]
-
-    [[`__m68k__`] [__predef_detection__]]
-    [[`M68000`] [__predef_detection__]]
-
-    [[`__mc68060__`] [6.0.0]]
-    [[`mc68060`] [6.0.0]]
-    [[`__mc68060`] [6.0.0]]
-    [[`__mc68040__`] [4.0.0]]
-    [[`mc68040`] [4.0.0]]
-    [[`__mc68040`] [4.0.0]]
-    [[`__mc68030__`] [3.0.0]]
-    [[`mc68030`] [3.0.0]]
-    [[`__mc68030`] [3.0.0]]
-    [[`__mc68020__`] [2.0.0]]
-    [[`mc68020`] [2.0.0]]
-    [[`__mc68020`] [2.0.0]]
-    [[`__mc68010__`] [1.0.0]]
-    [[`mc68010`] [1.0.0]]
-    [[`__mc68010`] [1.0.0]]
-    [[`__mc68000__`] [0.0.1]]
-    [[`mc68000`] [0.0.1]]
-    [[`__mc68000`] [0.0.1]]
-    ]
- */
-
-#define BOOST_ARCH_M68K BOOST_VERSION_NUMBER_NOT_AVAILABLE
-
-#if defined(__m68k__) || defined(M68000)
-#   undef BOOST_ARCH_M68K
-#   if !defined(BOOST_ARCH_M68K) && (defined(__mc68060__) || defined(mc68060) || defined(__mc68060))
-#       define BOOST_ARCH_M68K BOOST_VERSION_NUMBER(6,0,0)
-#   endif
-#   if !defined(BOOST_ARCH_M68K) && (defined(__mc68040__) || defined(mc68040) || defined(__mc68040))
-#       define BOOST_ARCH_M68K BOOST_VERSION_NUMBER(4,0,0)
-#   endif
-#   if !defined(BOOST_ARCH_M68K) && (defined(__mc68030__) || defined(mc68030) || defined(__mc68030))
-#       define BOOST_ARCH_M68K BOOST_VERSION_NUMBER(3,0,0)
-#   endif
-#   if !defined(BOOST_ARCH_M68K) && (defined(__mc68020__) || defined(mc68020) || defined(__mc68020))
-#       define BOOST_ARCH_M68K BOOST_VERSION_NUMBER(2,0,0)
-#   endif
-#   if !defined(BOOST_ARCH_M68K) && (defined(__mc68010__) || defined(mc68010) || defined(__mc68010))
-#       define BOOST_ARCH_M68K BOOST_VERSION_NUMBER(1,0,0)
-#   endif
-#   if !defined(BOOST_ARCH_M68K) && (defined(__mc68000__) || defined(mc68000) || defined(__mc68000))
-#       define BOOST_ARCH_M68K BOOST_VERSION_NUMBER_AVAILABLE
-#   endif
-#   if !defined(BOOST_ARCH_M68K)
-#       define BOOST_ARCH_M68K BOOST_VERSION_NUMBER_AVAILABLE
-#   endif
-#endif
-
-#if BOOST_ARCH_M68K
-#   define BOOST_ARCH_M68K_AVAILABLE
-#endif
-
-#define BOOST_ARCH_M68K_NAME "Motorola 68k"
-
-#include <boost/predef/detail/test.h>
-BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_M68K,BOOST_ARCH_M68K_NAME)
-
-
-#endif
diff --git a/boost/predef/architecture/mips.h b/boost/predef/architecture/mips.h
deleted file mode 100644
index b3d225c..0000000
--- a/boost/predef/architecture/mips.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
-Copyright Redshift Software, Inc. 2008-2013
-Distributed under the Boost Software License, Version 1.0.
-(See accompanying file LICENSE_1_0.txt or copy at
-http://www.boost.org/LICENSE_1_0.txt)
-*/
-
-#ifndef BOOST_PREDEF_ARCHITECTURE_MIPS_H
-#define BOOST_PREDEF_ARCHITECTURE_MIPS_H
-
-#include <boost/predef/version_number.h>
-#include <boost/predef/make.h>
-
-/*`
-[heading `BOOST_ARCH_MIPS`]
-
-[@http://en.wikipedia.org/wiki/MIPS_architecture MIPS] architecture.
-
-[table
-    [[__predef_symbol__] [__predef_version__]]
-
-    [[`__mips__`] [__predef_detection__]]
-    [[`__mips`] [__predef_detection__]]
-    [[`__MIPS__`] [__predef_detection__]]
-
-    [[`__mips`] [V.0.0]]
-    [[`_MIPS_ISA_MIPS1`] [1.0.0]]
-    [[`_R3000`] [1.0.0]]
-    [[`_MIPS_ISA_MIPS2`] [2.0.0]]
-    [[`__MIPS_ISA2__`] [2.0.0]]
-    [[`_R4000`] [2.0.0]]
-    [[`_MIPS_ISA_MIPS3`] [3.0.0]]
-    [[`__MIPS_ISA3__`] [3.0.0]]
-    [[`_MIPS_ISA_MIPS4`] [4.0.0]]
-    [[`__MIPS_ISA4__`] [4.0.0]]
-    ]
- */
-
-#define BOOST_ARCH_MIPS BOOST_VERSION_NUMBER_NOT_AVAILABLE
-
-#if defined(__mips__) || defined(__mips) || \
-    defined(__MIPS__)
-#   undef BOOST_ARCH_MIPS
-#   if !defined(BOOST_ARCH_MIPS) && (defined(__mips))
-#       define BOOST_ARCH_MIPS BOOST_VERSION_NUMBER(__mips,0,0)
-#   endif
-#   if !defined(BOOST_ARCH_MIPS) && (defined(_MIPS_ISA_MIPS1) || defined(_R3000))
-#       define BOOST_ARCH_MIPS BOOST_VERSION_NUMBER(1,0,0)
-#   endif
-#   if !defined(BOOST_ARCH_MIPS) && (defined(_MIPS_ISA_MIPS2) || defined(__MIPS_ISA2__) || defined(_R4000))
-#       define BOOST_ARCH_MIPS BOOST_VERSION_NUMBER(2,0,0)
-#   endif
-#   if !defined(BOOST_ARCH_MIPS) && (defined(_MIPS_ISA_MIPS3) || defined(__MIPS_ISA3__))
-#       define BOOST_ARCH_MIPS BOOST_VERSION_NUMBER(3,0,0)
-#   endif
-#   if !defined(BOOST_ARCH_MIPS) && (defined(_MIPS_ISA_MIPS4) || defined(__MIPS_ISA4__))
-#       define BOOST_ARCH_MIPS BOOST_VERSION_NUMBER(4,0,0)
-#   endif
-#   if !defined(BOOST_ARCH_MIPS)
-#       define BOOST_ARCH_MIPS BOOST_VERSION_NUMBER_AVAILABLE
-#   endif
-#endif
-
-#if BOOST_ARCH_MIPS
-#   define BOOST_ARCH_MIPS_AVAILABLE
-#endif
-
-#define BOOST_ARCH_MIPS_NAME "MIPS"
-
-#include <boost/predef/detail/test.h>
-BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_MIPS,BOOST_ARCH_MIPS_NAME)
-
-
-#endif
diff --git a/boost/predef/architecture/parisc.h b/boost/predef/architecture/parisc.h
deleted file mode 100644
index 7370383..0000000
--- a/boost/predef/architecture/parisc.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
-Copyright Redshift Software, Inc. 2008-2013
-Distributed under the Boost Software License, Version 1.0.
-(See accompanying file LICENSE_1_0.txt or copy at
-http://www.boost.org/LICENSE_1_0.txt)
-*/
-
-#ifndef BOOST_PREDEF_ARCHITECTURE_PARISC_H
-#define BOOST_PREDEF_ARCHITECTURE_PARISC_H
-
-#include <boost/predef/version_number.h>
-#include <boost/predef/make.h>
-
-/*`
-[heading `BOOST_ARCH_PARISK`]
-
-[@http://en.wikipedia.org/wiki/PA-RISC_family HP/PA RISC] architecture.
-
-[table
-    [[__predef_symbol__] [__predef_version__]]
-
-    [[`__hppa__`] [__predef_detection__]]
-    [[`__hppa`] [__predef_detection__]]
-    [[`__HPPA__`] [__predef_detection__]]
-
-    [[`_PA_RISC1_0`] [1.0.0]]
-    [[`_PA_RISC1_1`] [1.1.0]]
-    [[`__HPPA11__`] [1.1.0]]
-    [[`__PA7100__`] [1.1.0]]
-    [[`_PA_RISC2_0`] [2.0.0]]
-    [[`__RISC2_0__`] [2.0.0]]
-    [[`__HPPA20__`] [2.0.0]]
-    [[`__PA8000__`] [2.0.0]]
-    ]
- */
-
-#define BOOST_ARCH_PARISC BOOST_VERSION_NUMBER_NOT_AVAILABLE
-
-#if defined(__hppa__) || defined(__hppa) || defined(__HPPA__)
-#   undef BOOST_ARCH_PARISC
-#   if !defined(BOOST_ARCH_PARISC) && (defined(_PA_RISC1_0))
-#       define BOOST_ARCH_PARISC BOOST_VERSION_NUMBER(1,0,0)
-#   endif
-#   if !defined(BOOST_ARCH_PARISC) && (defined(_PA_RISC1_1) || defined(__HPPA11__) || defined(__PA7100__))
-#       define BOOST_ARCH_PARISC BOOST_VERSION_NUMBER(1,1,0)
-#   endif
-#   if !defined(BOOST_ARCH_PARISC) && (defined(_PA_RISC2_0) || defined(__RISC2_0__) || defined(__HPPA20__) || defined(__PA8000__))
-#       define BOOST_ARCH_PARISC BOOST_VERSION_NUMBER(2,0,0)
-#   endif
-#   if !defined(BOOST_ARCH_PARISC)
-#       define BOOST_ARCH_PARISC BOOST_VERSION_NUMBER_AVAILABLE
-#   endif
-#endif
-
-#if BOOST_ARCH_PARISC
-#   define BOOST_ARCH_PARISC_AVAILABLE
-#endif
-
-#define BOOST_ARCH_PARISC_NAME "HP/PA RISC"
-
-#include <boost/predef/detail/test.h>
-BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_PARISC,BOOST_ARCH_PARISC_NAME)
-
-
-#endif
diff --git a/boost/predef/architecture/ppc.h b/boost/predef/architecture/ppc.h
deleted file mode 100644
index 8339ed2..0000000
--- a/boost/predef/architecture/ppc.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
-Copyright Redshift Software, Inc. 2008-2013
-Distributed under the Boost Software License, Version 1.0.
-(See accompanying file LICENSE_1_0.txt or copy at
-http://www.boost.org/LICENSE_1_0.txt)
-*/
-
-#ifndef BOOST_PREDEF_ARCHITECTURE_PPC_H
-#define BOOST_PREDEF_ARCHITECTURE_PPC_H
-
-#include <boost/predef/version_number.h>
-#include <boost/predef/make.h>
-
-/*`
-[heading `BOOST_ARCH_PPC`]
-
-[@http://en.wikipedia.org/wiki/PowerPC PowerPC] architecture.
-
-[table
-    [[__predef_symbol__] [__predef_version__]]
-
-    [[`__powerpc`] [__predef_detection__]]
-    [[`__powerpc__`] [__predef_detection__]]
-    [[`__POWERPC__`] [__predef_detection__]]
-    [[`__ppc__`] [__predef_detection__]]
-    [[`_M_PPC`] [__predef_detection__]]
-    [[`_ARCH_PPC`] [__predef_detection__]]
-    [[`__PPCGECKO__`] [__predef_detection__]]
-    [[`__PPCBROADWAY__`] [__predef_detection__]]
-    [[`_XENON`] [__predef_detection__]]
-
-    [[`__ppc601__`] [6.1.0]]
-    [[`_ARCH_601`] [6.1.0]]
-    [[`__ppc603__`] [6.3.0]]
-    [[`_ARCH_603`] [6.3.0]]
-    [[`__ppc604__`] [6.4.0]]
-    [[`__ppc604__`] [6.4.0]]
-    ]
- */
-
-#define BOOST_ARCH_PPC BOOST_VERSION_NUMBER_NOT_AVAILABLE
-
-#if defined(__powerpc) || defined(__powerpc__) || \
-    defined(__POWERPC__) || defined(__ppc__) || \
-    defined(_M_PPC) || defined(_ARCH_PPC) || \
-    defined(__PPCGECKO__) || defined(__PPCBROADWAY__) || \
-    defined(_XENON)
-#   undef BOOST_ARCH_PPC
-#   if !defined (BOOST_ARCH_PPC) && (defined(__ppc601__) || defined(_ARCH_601))
-#       define BOOST_ARCH_PPC BOOST_VERSION_NUMBER(6,1,0)
-#   endif
-#   if !defined (BOOST_ARCH_PPC) && (defined(__ppc603__) || defined(_ARCH_603))
-#       define BOOST_ARCH_PPC BOOST_VERSION_NUMBER(6,3,0)
-#   endif
-#   if !defined (BOOST_ARCH_PPC) && (defined(__ppc604__) || defined(__ppc604__))
-#       define BOOST_ARCH_PPC BOOST_VERSION_NUMBER(6,4,0)
-#   endif
-#   if !defined (BOOST_ARCH_PPC)
-#       define BOOST_ARCH_PPC BOOST_VERSION_NUMBER_AVAILABLE
-#   endif
-#endif
-
-#if BOOST_ARCH_PPC
-#   define BOOST_ARCH_PPC_AVAILABLE
-#endif
-
-#define BOOST_ARCH_PPC_NAME "PowerPC"
-
-#include <boost/predef/detail/test.h>
-BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_PPC,BOOST_ARCH_PPC_NAME)
-
-
-#endif
diff --git a/boost/predef/architecture/pyramid.h b/boost/predef/architecture/pyramid.h
deleted file mode 100644
index 706e0cd..0000000
--- a/boost/predef/architecture/pyramid.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
-Copyright Redshift Software Inc 2011-2013
-Distributed under the Boost Software License, Version 1.0.
-(See accompanying file LICENSE_1_0.txt or copy at
-http://www.boost.org/LICENSE_1_0.txt)
-*/
-
-#ifndef BOOST_PREDEF_ARCHITECTURE_PYRAMID_H
-#define BOOST_PREDEF_ARCHITECTURE_PYRAMID_H
-
-#include <boost/predef/version_number.h>
-#include <boost/predef/make.h>
-
-/*`
-[heading `BOOST_ARCH_PYRAMID`]
-
-Pyramid 9810 architecture.
-
-[table
-    [[__predef_symbol__] [__predef_version__]]
-
-    [[`pyr`] [__predef_detection__]]
-    ]
- */
-
-#define BOOST_ARCH_PYRAMID BOOST_VERSION_NUMBER_NOT_AVAILABLE
-
-#if defined(pyr)
-#   undef BOOST_ARCH_PYRAMID
-#   define BOOST_ARCH_PYRAMID BOOST_VERSION_NUMBER_AVAILABLE
-#endif
-
-#if BOOST_ARCH_PYRAMID
-#   define BOOST_ARCH_PYRAMID_AVAILABLE
-#endif
-
-#define BOOST_ARCH_PYRAMID_NAME "Pyramid 9810"
-
-#include <boost/predef/detail/test.h>
-BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_PYRAMID,BOOST_ARCH_PYRAMID_NAME)
-
-
-#endif
diff --git a/boost/predef/architecture/rs6k.h b/boost/predef/architecture/rs6k.h
deleted file mode 100644
index c05fefd..0000000
--- a/boost/predef/architecture/rs6k.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
-Copyright Redshift Software, Inc. 2008-2013
-Distributed under the Boost Software License, Version 1.0.
-(See accompanying file LICENSE_1_0.txt or copy at
-http://www.boost.org/LICENSE_1_0.txt)
-*/
-
-#ifndef BOOST_PREDEF_ARCHITECTURE_RS6K_H
-#define BOOST_PREDEF_ARCHITECTURE_RS6K_H
-
-#include <boost/predef/version_number.h>
-#include <boost/predef/make.h>
-
-/*`
-[heading `BOOST_ARCH_RS6000`]
-
-[@http://en.wikipedia.org/wiki/RS/6000 RS/6000] architecture.
-
-[table
-    [[__predef_symbol__] [__predef_version__]]
-
-    [[`__THW_RS6000`] [__predef_detection__]]
-    [[`_IBMR2`] [__predef_detection__]]
-    [[`_POWER`] [__predef_detection__]]
-    [[`_ARCH_PWR`] [__predef_detection__]]
-    [[`_ARCH_PWR2`] [__predef_detection__]]
-    ]
- */
-
-#define BOOST_ARCH_RS6000 BOOST_VERSION_NUMBER_NOT_AVAILABLE
-
-#if defined(__THW_RS6000) || defined(_IBMR2) || \
-    defined(_POWER) || defined(_ARCH_PWR) || \
-    defined(_ARCH_PWR2)
-#   undef BOOST_ARCH_RS6000
-#   define BOOST_ARCH_RS6000 BOOST_VERSION_NUMBER_AVAILABLE
-#endif
-
-#if BOOST_ARCH_RS6000
-#   define BOOST_ARCH_RS6000_AVAILABLE
-#endif
-
-#define BOOST_ARCH_RS6000_NAME "RS/6000"
-
-#include <boost/predef/detail/test.h>
-BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_RS6000,BOOST_ARCH_RS6000_NAME)
-
-#define BOOST_ARCH_PWR BOOST_ARCH_RS6000
-
-#if BOOST_ARCH_PWR
-#   define BOOST_ARCH_PWR_AVAILABLE
-#endif
-
-#define BOOST_ARCH_PWR_NAME BOOST_ARCH_RS6000_NAME
-
-#endif
diff --git a/boost/predef/architecture/sparc.h b/boost/predef/architecture/sparc.h
deleted file mode 100644
index 30207a0..0000000
--- a/boost/predef/architecture/sparc.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
-Copyright Redshift Software, Inc. 2008-2013
-Distributed under the Boost Software License, Version 1.0.
-(See accompanying file LICENSE_1_0.txt or copy at
-http://www.boost.org/LICENSE_1_0.txt)
-*/
-
-#ifndef BOOST_PREDEF_ARCHITECTURE_SPARC_H
-#define BOOST_PREDEF_ARCHITECTURE_SPARC_H
-
-#include <boost/predef/version_number.h>
-#include <boost/predef/make.h>
-
-/*`
-[heading `BOOST_ARCH_SPARC`]
-
-[@http://en.wikipedia.org/wiki/SPARC SPARC] architecture.
-
-[table
-    [[__predef_symbol__] [__predef_version__]]
-
-    [[`__sparc__`] [__predef_detection__]]
-    [[`__sparc`] [__predef_detection__]]
-
-    [[`__sparcv9`] [9.0.0]]
-    [[`__sparcv8`] [8.0.0]]
-    ]
- */
-
-#define BOOST_ARCH_SPARC BOOST_VERSION_NUMBER_NOT_AVAILABLE
-
-#if defined(__sparc__) || defined(__sparc)
-#   undef BOOST_ARCH_SPARC
-#   if !defined(BOOST_ARCH_SPARC) && defined(__sparcv9)
-#       define BOOST_ARCH_SPARC BOOST_VERSION_NUMBER(9,0,0)
-#   endif
-#   if !defined(BOOST_ARCH_SPARC) &&  defined(__sparcv8)
-#       define BOOST_ARCH_SPARC BOOST_VERSION_NUMBER(8,0,0)
-#   endif
-#   if !defined(BOOST_ARCH_SPARC) &&
-#       define BOOST_ARCH_SPARC BOOST_VERSION_NUMBER_AVAILABLE
-#   endif
-#endif
-
-#if BOOST_ARCH_SPARC
-#   define BOOST_ARCH_SPARC_AVAILABLE
-#endif
-
-#define BOOST_ARCH_SPARC_NAME "SPARC"
-
-#include <boost/predef/detail/test.h>
-BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_SPARC,BOOST_ARCH_SPARC_NAME)
-
-
-#endif
diff --git a/boost/predef/architecture/superh.h b/boost/predef/architecture/superh.h
deleted file mode 100644
index f87f492..0000000
--- a/boost/predef/architecture/superh.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
-Copyright Redshift Software, Inc. 2008-2013
-Distributed under the Boost Software License, Version 1.0.
-(See accompanying file LICENSE_1_0.txt or copy at
-http://www.boost.org/LICENSE_1_0.txt)
-*/
-
-#ifndef BOOST_PREDEF_ARCHITECTURE_SUPERH_H
-#define BOOST_PREDEF_ARCHITECTURE_SUPERH_H
-
-#include <boost/predef/version_number.h>
-#include <boost/predef/make.h>
-
-/*`
-[heading `BOOST_ARCH_SH`]
-
-[@http://en.wikipedia.org/wiki/SuperH SuperH] architecture:
-If available versions \[1-5\] are specifically detected.
-
-[table
-    [[__predef_symbol__] [__predef_version__]]
-
-    [[`__sh__`] [__predef_detection__]]
-
-    [[`__SH5__`] [5.0.0]]
-    [[`__SH4__`] [4.0.0]]
-    [[`__sh3__`] [3.0.0]]
-    [[`__SH3__`] [3.0.0]]
-    [[`__sh2__`] [2.0.0]]
-    [[`__sh1__`] [1.0.0]]
-    ]
- */
-
-#define BOOST_ARCH_SH BOOST_VERSION_NUMBER_NOT_AVAILABLE
-
-#if defined(__sh__)
-#   undef BOOST_ARCH_SH
-#   if !defined(BOOST_ARCH_SH) && (defined(__SH5__))
-#       define BOOST_ARCH_SH BOOST_VERSION_NUMBER(5,0,0)
-#   endif
-#   if !defined(BOOST_ARCH_SH) && (defined(__SH4__))
-#       define BOOST_ARCH_SH BOOST_VERSION_NUMBER(4,0,0)
-#   endif
-#   if !defined(BOOST_ARCH_SH) && (defined(__sh3__) || defined(__SH3__))
-#       define BOOST_ARCH_SH BOOST_VERSION_NUMBER(3,0,0)
-#   endif
-#   if !defined(BOOST_ARCH_SH) && (defined(__sh2__))
-#       define BOOST_ARCH_SH BOOST_VERSION_NUMBER(2,0,0)
-#   endif
-#   if !defined(BOOST_ARCH_SH) && (defined(__sh1__))
-#       define BOOST_ARCH_SH BOOST_VERSION_NUMBER(1,0,0)
-#   endif
-#   if !defined(BOOST_ARCH_SH)
-#       define BOOST_ARCH_SH BOOST_VERSION_NUMBER_AVAILABLE
-#   endif
-#endif
-
-#if BOOST_ARCH_SH
-#   define BOOST_ARCH_SH_AVAILABLE
-#endif
-
-#define BOOST_ARCH_SH_NAME "SuperH"
-
-#include <boost/predef/detail/test.h>
-BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_SH,BOOST_ARCH_SH_NAME)
-
-
-#endif
diff --git a/boost/predef/architecture/sys370.h b/boost/predef/architecture/sys370.h
deleted file mode 100644
index f2fba78..0000000
--- a/boost/predef/architecture/sys370.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
-Copyright Redshift Software, Inc. 2008-2013
-Distributed under the Boost Software License, Version 1.0.
-(See accompanying file LICENSE_1_0.txt or copy at
-http://www.boost.org/LICENSE_1_0.txt)
-*/
-
-#ifndef BOOST_PREDEF_ARCHITECTURE_SYS370_H
-#define BOOST_PREDEF_ARCHITECTURE_SYS370_H
-
-#include <boost/predef/version_number.h>
-#include <boost/predef/make.h>
-
-/*`
-[heading `BOOST_ARCH_SYS370`]
-
-[@http://en.wikipedia.org/wiki/System/370 System/370] architecture.
-
-[table
-    [[__predef_symbol__] [__predef_version__]]
-
-    [[`__370__`] [__predef_detection__]]
-    [[`__THW_370__`] [__predef_detection__]]
-    ]
- */
-
-#define BOOST_ARCH_SYS370 BOOST_VERSION_NUMBER_NOT_AVAILABLE
-
-#if defined(__370__) || defined(__THW_370__)
-#   undef BOOST_ARCH_SYS370
-#   define BOOST_ARCH_SYS370 BOOST_VERSION_NUMBER_AVAILABLE
-#endif
-
-#if BOOST_ARCH_SYS370
-#   define BOOST_ARCH_SYS370_AVAILABLE
-#endif
-
-#define BOOST_ARCH_SYS370_NAME "System/370"
-
-#include <boost/predef/detail/test.h>
-BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_SYS370,BOOST_ARCH_SYS370_NAME)
-
-
-#endif
diff --git a/boost/predef/architecture/sys390.h b/boost/predef/architecture/sys390.h
deleted file mode 100644
index a9e03d9..0000000
--- a/boost/predef/architecture/sys390.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
-Copyright Redshift Software, Inc. 2008-2013
-Distributed under the Boost Software License, Version 1.0.
-(See accompanying file LICENSE_1_0.txt or copy at
-http://www.boost.org/LICENSE_1_0.txt)
-*/
-
-#ifndef BOOST_PREDEF_ARCHITECTURE_SYS390_H
-#define BOOST_PREDEF_ARCHITECTURE_SYS390_H
-
-#include <boost/predef/version_number.h>
-#include <boost/predef/make.h>
-
-/*`
-[heading `BOOST_ARCH_SYS390`]
-
-[@http://en.wikipedia.org/wiki/System/390 System/390] architecture.
-
-[table
-    [[__predef_symbol__] [__predef_version__]]
-
-    [[`__s390__`] [__predef_detection__]]
-    [[`__s390x__`] [__predef_detection__]]
-    ]
- */
-
-#define BOOST_ARCH_SYS390 BOOST_VERSION_NUMBER_NOT_AVAILABLE
-
-#if defined(__s390__) || defined(__s390x__)
-#   undef BOOST_ARCH_SYS390
-#   define BOOST_ARCH_SYS390 BOOST_VERSION_NUMBER_AVAILABLE
-#endif
-
-#if BOOST_ARCH_SYS390
-#   define BOOST_ARCH_SYS390_AVAILABLE
-#endif
-
-#define BOOST_ARCH_SYS390_NAME "System/390"
-
-#include <boost/predef/detail/test.h>
-BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_SYS390,BOOST_ARCH_SYS390_NAME)
-
-
-#endif
diff --git a/boost/predef/architecture/x86.h b/boost/predef/architecture/x86.h
deleted file mode 100644
index 3a08e9c..0000000
--- a/boost/predef/architecture/x86.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
-Copyright Redshift Software, Inc. 2008-2013
-Distributed under the Boost Software License, Version 1.0.
-(See accompanying file LICENSE_1_0.txt or copy at
-http://www.boost.org/LICENSE_1_0.txt)
-*/
-
-#ifndef BOOST_PREDEF_ARCHITECTURE_X86_H
-#define BOOST_PREDEF_ARCHITECTURE_X86_H
-
-#include <boost/predef/architecture/x86/32.h>
-#include <boost/predef/architecture/x86/64.h>
-
-/*`
-[heading `BOOST_ARCH_X86`]
-
-[@http://en.wikipedia.org/wiki/X86 Intel x86] architecture. This is
-a category to indicate that either `BOOST_ARCH_X86_32` or
-`BOOST_ARCH_X86_64` is detected.
- */
-
-#define BOOST_ARCH_X86 BOOST_VERSION_NUMBER_NOT_AVAILABLE
-
-#if BOOST_ARCH_X86_32 || BOOST_ARCH_X86_64
-#   undef BOOST_ARCH_X86
-#   define BOOST_ARCH_X86 BOOST_VERSION_NUMBER_AVAILABLE
-#endif
-
-#if BOOST_ARCH_X86
-#   define BOOST_ARCH_X86_AVAILABLE
-#endif
-
-#define BOOST_ARCH_X86_NAME "Intel x86"
-
-#include <boost/predef/detail/test.h>
-BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_X86,BOOST_ARCH_X86_NAME)
-
-#endif
diff --git a/boost/predef/architecture/x86/32.h b/boost/predef/architecture/x86/32.h
deleted file mode 100644
index 131d94d..0000000
--- a/boost/predef/architecture/x86/32.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
-Copyright Redshift Software, Inc. 2008-2013
-Distributed under the Boost Software License, Version 1.0.
-(See accompanying file LICENSE_1_0.txt or copy at
-http://www.boost.org/LICENSE_1_0.txt)
-*/
-
-#ifndef BOOST_PREDEF_ARCHITECTURE_X86_32_H
-#define BOOST_PREDEF_ARCHITECTURE_X86_32_H
-
-#include <boost/predef/version_number.h>
-#include <boost/predef/make.h>
-
-/*`
-[heading `BOOST_ARCH_X86_32`]
-
-[@http://en.wikipedia.org/wiki/X86 Intel x86] architecture:
-If available versions \[3-6\] are specifically detected.
-
-[table
-    [[__predef_symbol__] [__predef_version__]]
-
-    [[`i386`] [__predef_detection__]]
-    [[`__i386__`] [__predef_detection__]]
-    [[`__i486__`] [__predef_detection__]]
-    [[`__i586__`] [__predef_detection__]]
-    [[`__i686__`] [__predef_detection__]]
-    [[`__i386`] [__predef_detection__]]
-    [[`_M_IX86`] [__predef_detection__]]
-    [[`_X86_`] [__predef_detection__]]
-    [[`__THW_INTEL__`] [__predef_detection__]]
-    [[`__I86__`] [__predef_detection__]]
-    [[`__INTEL__`] [__predef_detection__]]
-
-    [[`__I86__`] [V.0.0]]
-    [[`_M_IX86`] [V.0.0]]
-    [[`__i686__`] [6.0.0]]
-    [[`__i586__`] [5.0.0]]
-    [[`__i486__`] [4.0.0]]
-    [[`__i386__`] [3.0.0]]
-    ]
- */
-
-#define BOOST_ARCH_X86_32 BOOST_VERSION_NUMBER_NOT_AVAILABLE
-
-#if defined(i386) || defined(__i386__) || \
-    defined(__i486__) || defined(__i586__) || \
-    defined(__i686__) || defined(__i386) || \
-    defined(_M_IX86) || defined(_X86_) || \
-    defined(__THW_INTEL__) || defined(__I86__) || \
-    defined(__INTEL__)
-#   undef BOOST_ARCH_X86_32
-#   if !defined(BOOST_ARCH_X86_32) && defined(__I86__)
-#       define BOOST_ARCH_X86_32 BOOST_VERSION_NUMBER(__I86__,0,0)
-#   endif
-#   if !defined(BOOST_ARCH_X86_32) && defined(_M_IX86)
-#       define BOOST_ARCH_X86_32 BOOST_PREDEF_MAKE_10_VV00(_M_IX86)
-#   endif
-#   if !defined(BOOST_ARCH_X86_32) && defined(__i686__)
-#       define BOOST_ARCH_X86_32 BOOST_VERSION_NUMBER(6,0,0)
-#   endif
-#   if !defined(BOOST_ARCH_X86_32) && defined(__i586__)
-#       define BOOST_ARCH_X86_32 BOOST_VERSION_NUMBER(5,0,0)
-#   endif
-#   if !defined(BOOST_ARCH_X86_32) && defined(__i486__)
-#       define BOOST_ARCH_X86_32 BOOST_VERSION_NUMBER(4,0,0)
-#   endif
-#   if !defined(BOOST_ARCH_X86_32) && defined(__i386__)
-#       define BOOST_ARCH_X86_32 BOOST_VERSION_NUMBER(3,0,0)
-#   endif
-#   if !defined(BOOST_ARCH_X86_32)
-#       define BOOST_ARCH_X86_32 BOOST_VERSION_NUMBER_AVAILABLE
-#   endif
-#endif
-
-#if BOOST_ARCH_X86_32
-#   define BOOST_ARCH_X86_32_AVAILABLE
-#endif
-
-#define BOOST_ARCH_X86_32_NAME "Intel x86-32"
-
-#include <boost/predef/detail/test.h>
-BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_X86_32,BOOST_ARCH_X86_32_NAME)
-
-#include <boost/predef/architecture/x86.h>
-
-#endif
diff --git a/boost/predef/architecture/x86/64.h b/boost/predef/architecture/x86/64.h
deleted file mode 100644
index 0bee9c9..0000000
--- a/boost/predef/architecture/x86/64.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
-Copyright Redshift Software, Inc. 2008-2013
-Distributed under the Boost Software License, Version 1.0.
-(See accompanying file LICENSE_1_0.txt or copy at
-http://www.boost.org/LICENSE_1_0.txt)
-*/
-
-#ifndef BOOST_PREDEF_ARCHITECTURE_X86_64_H
-#define BOOST_PREDEF_ARCHITECTURE_X86_64_H
-
-#include <boost/predef/version_number.h>
-#include <boost/predef/make.h>
-
-/*`
-[heading `BOOST_ARCH_X86_64`]
-
-[@http://en.wikipedia.org/wiki/Ia64 Intel IA-64] architecture.
-
-[table
-    [[__predef_symbol__] [__predef_version__]]
-
-    [[`__x86_64`] [__predef_detection__]]
-    [[`__x86_64__`] [__predef_detection__]]
-    [[`__amd64__`] [__predef_detection__]]
-    [[`__amd64`] [__predef_detection__]]
-    [[`_M_X64`] [__predef_detection__]]
-    ]
- */
-
-#define BOOST_ARCH_X86_64 BOOST_VERSION_NUMBER_NOT_AVAILABLE
-
-#if defined(__x86_64) || defined(__x86_64__) || \
-    defined(__amd64__) || defined(__amd64) || \
-    defined(_M_X64)
-#   undef BOOST_ARCH_X86_64
-#   define BOOST_ARCH_X86_64 BOOST_VERSION_NUMBER_AVAILABLE
-#endif
-
-#if BOOST_ARCH_X86_64
-#   define BOOST_ARCH_X86_64_AVAILABLE
-#endif
-
-#define BOOST_ARCH_X86_64_NAME "Intel x86-64"
-
-#include <boost/predef/detail/test.h>
-BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_X86_64,BOOST_ARCH_X86_64_NAME)
-
-#include <boost/predef/architecture/x86.h>
-
-#endif
diff --git a/boost/predef/architecture/z.h b/boost/predef/architecture/z.h
deleted file mode 100644
index 622d6ab..0000000
--- a/boost/predef/architecture/z.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
-Copyright Redshift Software, Inc. 2008-2013
-Distributed under the Boost Software License, Version 1.0.
-(See accompanying file LICENSE_1_0.txt or copy at
-http://www.boost.org/LICENSE_1_0.txt)
-*/
-
-#ifndef BOOST_PREDEF_ARCHITECTURE_Z_H
-#define BOOST_PREDEF_ARCHITECTURE_Z_H
-
-#include <boost/predef/version_number.h>
-#include <boost/predef/make.h>
-
-/*`
-[heading `BOOST_ARCH_Z`]
-
-[@http://en.wikipedia.org/wiki/Z/Architecture z/Architecture] architecture.
-
-[table
-    [[__predef_symbol__] [__predef_version__]]
-
-    [[`__SYSC_ZARCH__`] [__predef_detection__]]
-    ]
- */
-
-#define BOOST_ARCH_Z BOOST_VERSION_NUMBER_NOT_AVAILABLE
-
-#if defined(__SYSC_ZARCH__)
-#   undef BOOST_ARCH_Z
-#   define BOOST_ARCH_Z BOOST_VERSION_NUMBER_AVAILABLE
-#endif
-
-#if BOOST_ARCH_Z
-#   define BOOST_ARCH_Z_AVAILABLE
-#endif
-
-#define BOOST_ARCH_Z_NAME "z/Architecture"
-
-#include <boost/predef/detail/test.h>
-BOOST_PREDEF_DECLARE_TEST(BOOST_ARCH_Z,BOOST_ARCH_Z_NAME)
-
-
-#endif
diff --git a/boost/predef/detail/_cassert.h b/boost/predef/detail/_cassert.h
deleted file mode 100644
index ca594a8..0000000
--- a/boost/predef/detail/_cassert.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
-Copyright Redshift Software, Inc. 2011-2012
-Distributed under the Boost Software License, Version 1.0.
-(See accompanying file LICENSE_1_0.txt or copy at
-http://www.boost.org/LICENSE_1_0.txt)
-*/
-
-#ifndef BOOST_PREDEF_DETAIL__CASSERT_H
-#define BOOST_PREDEF_DETAIL__CASSERT_H
-
-#if defined(__cpluplus)
-#include <cassert>
-#else
-#include <assert.h>
-#endif
-
-#endif
diff --git a/boost/predef/detail/endian_compat.h b/boost/predef/detail/endian_compat.h
deleted file mode 100644
index b873659..0000000
--- a/boost/predef/detail/endian_compat.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
-Copyright Redshift Software, Inc. 2013
-Distributed under the Boost Software License, Version 1.0.
-(See accompanying file LICENSE_1_0.txt or copy at
-http://www.boost.org/LICENSE_1_0.txt)
-*/
-
-#ifndef BOOST_PREDEF_DETAIL_ENDIAN_COMPAT_H
-#define BOOST_PREDEF_DETAIL_ENDIAN_COMPAT_H
-
-#include <boost/predef/other/endian.h>
-
-#if BOOST_ENDIAN_BIG_BYTE
-#   define BOOST_BIG_ENDIAN
-#   define BOOST_BYTE_ORDER 4321
-#endif
-#if BOOST_ENDIAN_LITTLE_BYTE
-#   define BOOST_LITTLE_ENDIAN
-#   define BOOST_BYTE_ORDER 1234
-#endif
-#if BOOST_ENDIAN_LITTLE_WORD
-#   define BOOST_PDP_ENDIAN
-#   define BOOST_BYTE_ORDER 2134
-#endif
-
-#endif
diff --git a/boost/predef/detail/os_detected.h b/boost/predef/detail/os_detected.h
deleted file mode 100644
index 7d70c1e..0000000
--- a/boost/predef/detail/os_detected.h
+++ /dev/null
@@ -1,10 +0,0 @@
-/*
-Copyright Redshift Software, Inc. 2013
-Distributed under the Boost Software License, Version 1.0.
-(See accompanying file LICENSE_1_0.txt or copy at
-http://www.boost.org/LICENSE_1_0.txt)
-*/
-
-#ifndef BOOST_PREDEF_DETAIL_OS_DETECTED
-#define BOOST_PREDEF_DETAIL_OS_DETECTED 1
-#endif
diff --git a/boost/predef/detail/test.h b/boost/predef/detail/test.h
deleted file mode 100644
index c75eccc..0000000
--- a/boost/predef/detail/test.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
-Copyright Redshift Software Inc. 2011-2012
-Distributed under the Boost Software License, Version 1.0.
-(See accompanying file LICENSE_1_0.txt or copy at
-http://www.boost.org/LICENSE_1_0.txt)
-*/
-
-#ifndef BOOST_PREDEF_DETAIL_TEST_H
-#define BOOST_PREDEF_DETAIL_TEST_H
-
-#if !defined(BOOST_PREDEF_INTERNAL_GENERATE_TESTS)
-
-#define BOOST_PREDEF_DECLARE_TEST(x,s)
-
-#endif
-
-#endif
diff --git a/boost/predef/library/c/_prefix.h b/boost/predef/library/c/_prefix.h
deleted file mode 100644
index 754601f..0000000
--- a/boost/predef/library/c/_prefix.h
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
-Copyright Redshift Software, Inc. 2008-2013
-Distributed under the Boost Software License, Version 1.0.
-(See accompanying file LICENSE_1_0.txt or copy at
-http://www.boost.org/LICENSE_1_0.txt)
-*/
-
-#ifndef BOOST_PREDEF_LIBRARY_C__PREFIX_H
-#define BOOST_PREDEF_LIBRARY_C__PREFIX_H
-
-#include <boost/predef/detail/_cassert.h>
-
-#endif
diff --git a/boost/predef/library/c/gnu.h b/boost/predef/library/c/gnu.h
deleted file mode 100644
index a2bdfce..0000000
--- a/boost/predef/library/c/gnu.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
-Copyright Redshift Software, Inc. 2008-2013
-Distributed under the Boost Software License, Version 1.0.
-(See accompanying file LICENSE_1_0.txt or copy at
-http://www.boost.org/LICENSE_1_0.txt)
-*/
-
-#ifndef BOOST_PREDEF_LIBRARY_C_GNU_H
-#define BOOST_PREDEF_LIBRARY_C_GNU_H
-
-#include <boost/predef/version_number.h>
-#include <boost/predef/make.h>
-
-#include <boost/predef/library/c/_prefix.h>
-
-#if defined(__STDC__)
-#include <stddef.h>
-#elif defined(__cplusplus)
-#include <cstddef>
-#endif
-
-/*`
-[heading `BOOST_LIB_C_GNU`]
-
-[@http://en.wikipedia.org/wiki/Glibc GNU glibc] Standard C library.
-Version number available as major, and minor.
-
-[table
-    [[__predef_symbol__] [__predef_version__]]
-
-    [[`__GLIBC__`] [__predef_detection__]]
-    [[`__GNU_LIBRARY__`] [__predef_detection__]]
-
-    [[`__GLIBC__`, `__GLIBC_MINOR__`] [V.R.0]]
-    [[`__GNU_LIBRARY__`, `__GNU_LIBRARY_MINOR__`] [V.R.0]]
-    ]
- */
-
-#define BOOST_LIB_C_GNU BOOST_VERSION_NUMBER_NOT_AVAILABLE
-
-#if defined(__GLIBC__) || defined(__GNU_LIBRARY__)
-#   undef BOOST_LIB_C_GNU
-#   if defined(__GLIBC__)
-#       define BOOST_LIB_C_GNU \
-            BOOST_VERSION_NUMBER(__GLIBC__,__GLIBC_MINOR__,0)
-#   else
-#       define BOOST_LIB_C_GNU \
-            BOOST_VERSION_NUMBER(__GNU_LIBRARY__,__GNU_LIBRARY_MINOR__,0)
-#   endif
-#endif
-
-#if BOOST_LIB_C_GNU
-#   define BOOST_LIB_C_GNU_AVAILABLE
-#endif
-
-#define BOOST_LIB_C_GNU_NAME "GNU"
-
-#include <boost/predef/detail/test.h>
-BOOST_PREDEF_DECLARE_TEST(BOOST_LIB_C_GNU,BOOST_LIB_C_GNU_NAME)
-
-
-#endif
diff --git a/boost/predef/make.h b/boost/predef/make.h
deleted file mode 100644
index ccee24a..0000000
--- a/boost/predef/make.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
-Copyright Redshift Software, Inc. 2008-2013
-Distributed under the Boost Software License, Version 1.0.
-(See accompanying file LICENSE_1_0.txt or copy at
-http://www.boost.org/LICENSE_1_0.txt)
-*/
-#include <boost/predef/detail/test.h>
-
-#ifndef BOOST_PREDEF_MAKE_H
-#define BOOST_PREDEF_MAKE_H
-
-/*
-Shorthands for the common version number formats used by vendors...
-*/
-
-/*`
-[heading `BOOST_PREDEF_MAKE_..` macros]
-
-These set of macros decompose common vendor version number
-macros which are composed version, revision, and patch digits.
-The naming convention indicates:
-
-* The base of the specified version number. "`BOOST_PREDEF_MAKE_0X`" for
-  hexadecimal digits, and "`BOOST_PREDEF_MAKE_10`" for decimal digits.
-* The format of the vendor version number. Where "`V`" indicates the version digits,
-  "`R`" indicates the revision digits, "`P`" indicates the patch digits, and "`0`"
-  indicates an ignored digit.
-
-Macros are:
-*/
-/*` `BOOST_PREDEF_MAKE_0X_VRP(V)` */
-#define BOOST_PREDEF_MAKE_0X_VRP(V) BOOST_VERSION_NUMBER((V&0xF00)>>8,(V&0xF0)>>4,(V&0xF))
-/*` `BOOST_PREDEF_MAKE_0X_VVRP(V)` */
-#define BOOST_PREDEF_MAKE_0X_VVRP(V) BOOST_VERSION_NUMBER((V&0xFF00)>>8,(V&0xF0)>>4,(V&0xF))
-/*` `BOOST_PREDEF_MAKE_0X_VRPP(V)` */
-#define BOOST_PREDEF_MAKE_0X_VRPP(V) BOOST_VERSION_NUMBER((V&0xF000)>>12,(V&0xF00)>>8,(V&0xFF))
-/*` `BOOST_PREDEF_MAKE_0X_VVRR(V)` */
-#define BOOST_PREDEF_MAKE_0X_VVRR(V) BOOST_VERSION_NUMBER((V&0xFF00)>>8,(V&0xFF),0)
-/*` `BOOST_PREDEF_MAKE_0X_VRRPPPP(V)` */
-#define BOOST_PREDEF_MAKE_0X_VRRPPPP(V) BOOST_VERSION_NUMBER((V&0xF000000)>>24,(V&0xFF0000)>>16,(V&0xFFFF))
-/*` `BOOST_PREDEF_MAKE_0X_VVRRP(V)` */
-#define BOOST_PREDEF_MAKE_0X_VVRRP(V) BOOST_VERSION_NUMBER((V&0xFF000)>>12,(V&0xFF0)>>4,(V&0xF))
-/*` `BOOST_PREDEF_MAKE_0X_VRRPP000(V)` */
-#define BOOST_PREDEF_MAKE_0X_VRRPP000(V) BOOST_VERSION_NUMBER((V&0xF0000000)>>28,(V&0xFF00000)>>20,(V&0xFF000)>>12)
-/*` `BOOST_PREDEF_MAKE_10_VPPP(V)` */
-#define BOOST_PREDEF_MAKE_10_VPPP(V) BOOST_VERSION_NUMBER(((V)/1000)%10,0,(V)%1000)
-/*` `BOOST_PREDEF_MAKE_10_VRP(V)` */
-#define BOOST_PREDEF_MAKE_10_VRP(V) BOOST_VERSION_NUMBER(((V)/100)%10,((V)/10)%10,(V)%10)
-/*` `BOOST_PREDEF_MAKE_10_VRP000(V)` */
-#define BOOST_PREDEF_MAKE_10_VRP000(V) BOOST_VERSION_NUMBER(((V)/100000)%10,((V)/10000)%10,((V)/1000)%10)
-/*` `BOOST_PREDEF_MAKE_10_VRPP(V)` */
-#define BOOST_PREDEF_MAKE_10_VRPP(V) BOOST_VERSION_NUMBER(((V)/1000)%10,((V)/100)%10,(V)%100)
-/*` `BOOST_PREDEF_MAKE_10_VRR(V)` */
-#define BOOST_PREDEF_MAKE_10_VRR(V) BOOST_VERSION_NUMBER(((V)/100)%10,(V)%100,0)
-/*` `BOOST_PREDEF_MAKE_10_VRRPP(V)` */
-#define BOOST_PREDEF_MAKE_10_VRRPP(V) BOOST_VERSION_NUMBER(((V)/10000)%10,((V)/100)%100,(V)%100)
-/*` `BOOST_PREDEF_MAKE_10_VRR000(V)` */
-#define BOOST_PREDEF_MAKE_10_VRR000(V) BOOST_VERSION_NUMBER(((V)/100000)%10,((V)/1000)%100,0)
-/*` `BOOST_PREDEF_MAKE_10_VV00(V)` */
-#define BOOST_PREDEF_MAKE_10_VV00(V) BOOST_VERSION_NUMBER(((V)/100)%100,0,0)
-/*` `BOOST_PREDEF_MAKE_10_VVRR(V)` */
-#define BOOST_PREDEF_MAKE_10_VVRR(V) BOOST_VERSION_NUMBER(((V)/100)%100,(V)%100,0)
-/*` `BOOST_PREDEF_MAKE_10_VVRRPP(V)` */
-#define BOOST_PREDEF_MAKE_10_VVRRPP(V) BOOST_VERSION_NUMBER(((V)/10000)%100,((V)/100)%100,(V)%100)
-/*` `BOOST_PREDEF_MAKE_10_VVRR0PP00(V)` */
-#define BOOST_PREDEF_MAKE_10_VVRR0PP00(V) BOOST_VERSION_NUMBER(((V)/10000000)%100,((V)/100000)%100,((V)/100)%100)
-/*` `BOOST_PREDEF_MAKE_10_VVRR0PPPP(V)` */
-#define BOOST_PREDEF_MAKE_10_VVRR0PPPP(V) BOOST_VERSION_NUMBER(((V)/10000000)%100,((V)/100000)%100,(V)%10000)
-/*` `BOOST_PREDEF_MAKE_10_VVRR00PP00(V)` */
-#define BOOST_PREDEF_MAKE_10_VVRR00PP00(V) BOOST_VERSION_NUMBER(((V)/100000000)%100,((V)/1000000)%100,((V)/100)%100)
-/*`
-[heading `BOOST_PREDEF_MAKE_*..` date macros]
-
-Date decomposition macros return a date in the relative to the 1970
-Epoch date. If the month is not available, January 1st is used as the month and day.
-If the day is not available, but the month is, the 1st of the month is used as the day.
-*/
-/*` `BOOST_PREDEF_MAKE_DATE(Y,M,D)` */
-#define BOOST_PREDEF_MAKE_DATE(Y,M,D) BOOST_VERSION_NUMBER((Y)%10000-1970,(M)%100,(D)%100)
-/*` `BOOST_PREDEF_MAKE_YYYYMMDD(V)` */
-#define BOOST_PREDEF_MAKE_YYYYMMDD(V) BOOST_PREDEF_MAKE_DATE(((V)/10000)%10000,((V)/100)%100,(V)%100)
-/*` `BOOST_PREDEF_MAKE_YYYY(V)` */
-#define BOOST_PREDEF_MAKE_YYYY(V) BOOST_PREDEF_MAKE_DATE(V,1,1)
-/*` `BOOST_PREDEF_MAKE_YYYYMM(V)` */
-#define BOOST_PREDEF_MAKE_YYYYMM(V) BOOST_PREDEF_MAKE_DATE((V)/100,(V),1)
-
-#endif
diff --git a/boost/predef/os/bsd.h b/boost/predef/os/bsd.h
deleted file mode 100644
index 0adc435..0000000
--- a/boost/predef/os/bsd.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
-Copyright Redshift Software, Inc. 2008-2013
-Distributed under the Boost Software License, Version 1.0.
-(See accompanying file LICENSE_1_0.txt or copy at
-http://www.boost.org/LICENSE_1_0.txt)
-*/
-
-#ifndef BOOST_PREDEF_OS_BSD_H
-#define BOOST_PREDEF_OS_BSD_H
-
-/* Special case: OSX will define BSD predefs if the sys/param.h
- * header is included. We can guard against that, but only if we
- * detect OSX first. Hence we will force include OSX detection
- * before doing any BSD detection.
- */
-#include <boost/predef/os/macos.h>
-
-#include <boost/predef/version_number.h>
-#include <boost/predef/make.h>
-
-/*`
-[heading `BOOST_OS_BSD`]
-
-[@http://en.wikipedia.org/wiki/Berkeley_Software_Distribution BSD] operating system.
-
-BSD has various branch operating systems possible and each detected
-individually. This detects the following variations and sets a specific
-version number macro to match:
-
-* `BOOST_OS_BSD_DRAGONFLY` [@http://en.wikipedia.org/wiki/DragonFly_BSD DragonFly BSD]
-* `BOOST_OS_BSD_FREE` [@http://en.wikipedia.org/wiki/Freebsd FreeBSD]
-* `BOOST_OS_BSD_BSDI` [@http://en.wikipedia.org/wiki/BSD/OS BSDi BSD/OS]
-* `BOOST_OS_BSD_NET` [@http://en.wikipedia.org/wiki/Netbsd NetBSD]
-* `BOOST_OS_BSD_OPEN` [@http://en.wikipedia.org/wiki/Openbsd OpenBSD]
-
-[note The general `BOOST_OS_BSD` is set in all cases to indicate some form
-of BSD. If the above variants is detected the corresponding macro is also set.]
-
-[table
-    [[__predef_symbol__] [__predef_version__]]
-
-    [[`BSD`] [__predef_detection__]]
-    [[`_SYSTYPE_BSD`] [__predef_detection__]]
-
-    [[`BSD4_2`] [4.2.0]]
-    [[`BSD4_3`] [4.3.0]]
-    [[`BSD4_4`] [4.4.0]]
-    [[`BSD`] [V.R.0]]
-    ]
- */
-
-#include <boost/predef/os/bsd/bsdi.h>
-#include <boost/predef/os/bsd/dragonfly.h>
-#include <boost/predef/os/bsd/free.h>
-#include <boost/predef/os/bsd/open.h>
-#include <boost/predef/os/bsd/net.h>
-
-#ifndef BOOST_OS_BSD
-#define BOOST_OS_BSD BOOST_VERSION_NUMBER_NOT_AVAILABLE
-#endif
-
-#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \
-    defined(BSD) || \
-    defined(_SYSTYPE_BSD) \
-    )
-#   undef BOOST_OS_BSD
-#   include <sys/param.h>
-#   if !defined(BOOST_OS_BSD) && defined(BSD4_4)
-#       define BOOST_OS_BSD BOOST_VERSION_NUMBER(4,4,0)
-#   endif
-#   if !defined(BOOST_OS_BSD) && defined(BSD4_3)
-#       define BOOST_OS_BSD BOOST_VERSION_NUMBER(4,3,0)
-#   endif
-#   if !defined(BOOST_OS_BSD) && defined(BSD4_2)
-#       define BOOST_OS_BSD BOOST_VERSION_NUMBER(4,2,0)
-#   endif
-#   if !defined(BOOST_OS_BSD) && defined(BSD)
-#       define BOOST_OS_BSD BOOST_PREDEF_MAKE_10_VVRR(BSD)
-#   endif
-#   if !defined(BOOST_OS_BSD)
-#       define BOOST_OS_BSD BOOST_VERSION_NUMBER_AVAILABLE
-#   endif
-#endif
-
-#if BOOST_OS_BSD
-#   define BOOST_OS_BSD_AVAILABLE
-#   include <boost/predef/detail/os_detected.h>
-#endif
-
-#define BOOST_OS_BSD_NAME "BSD"
-
-#include <boost/predef/detail/test.h>
-BOOST_PREDEF_DECLARE_TEST(BOOST_OS_BSD,BOOST_OS_BSD_NAME)
-
-#endif
diff --git a/boost/predef/os/bsd/bsdi.h b/boost/predef/os/bsd/bsdi.h
deleted file mode 100644
index 71ea87a..0000000
--- a/boost/predef/os/bsd/bsdi.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
-Copyright Redshift Software, Inc. 2012-2013
-Distributed under the Boost Software License, Version 1.0.
-(See accompanying file LICENSE_1_0.txt or copy at
-http://www.boost.org/LICENSE_1_0.txt)
-*/
-
-#ifndef BOOST_PREDEF_OS_BSD_BSDI_H
-#define BOOST_PREDEF_OS_BSD_BSDI_H
-
-#include <boost/predef/os/bsd.h>
-
-/*`
-[heading `BOOST_OS_BSD_BSDI`]
-
-[@http://en.wikipedia.org/wiki/BSD/OS BSDi BSD/OS] operating system.
-
-[table
-    [[__predef_symbol__] [__predef_version__]]
-
-    [[`__bsdi__`] [__predef_detection__]]
-    ]
- */
-
-#define BOOST_OS_BSD_BSDI BOOST_VERSION_NUMBER_NOT_AVAILABLE
-
-#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \
-    defined(__bsdi__) \
-    )
-#   ifndef BOOST_OS_BSD_AVAILABLE
-#       define BOOST_OS_BSD BOOST_VERSION_NUMBER_AVAILABLE
-#       define BOOST_OS_BSD_AVAILABLE
-#   endif
-#   undef BOOST_OS_BSD_BSDI
-#   define BOOST_OS_BSD_BSDI BOOST_VERSION_NUMBER_AVAILABLE
-#endif
-
-#if BOOST_OS_BSD_BSDI
-#   define BOOST_OS_BSD_BSDI_AVAILABLE
-#   include <boost/predef/detail/os_detected.h>
-#endif
-
-#define BOOST_OS_BSD_BSDI_NAME "BSDi BSD/OS"
-
-#include <boost/predef/detail/test.h>
-BOOST_PREDEF_DECLARE_TEST(BOOST_OS_BSD_BSDI,BOOST_OS_BSD_BSDI_NAME)
-
-#endif
diff --git a/boost/predef/os/bsd/dragonfly.h b/boost/predef/os/bsd/dragonfly.h
deleted file mode 100644
index 9d37439..0000000
--- a/boost/predef/os/bsd/dragonfly.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
-Copyright Redshift Software, Inc. 2012-2013
-Distributed under the Boost Software License, Version 1.0.
-(See accompanying file LICENSE_1_0.txt or copy at
-http://www.boost.org/LICENSE_1_0.txt)
-*/
-
-#ifndef BOOST_PREDEF_OS_BSD_DRAGONFLY_H
-#define BOOST_PREDEF_OS_BSD_DRAGONFLY_H
-
-#include <boost/predef/os/bsd.h>
-
-/*`
-[heading `BOOST_OS_BSD_DRAGONFLY`]
-
-[@http://en.wikipedia.org/wiki/DragonFly_BSD DragonFly BSD] operating system.
-
-[table
-    [[__predef_symbol__] [__predef_version__]]
-
-    [[`__DragonFly__`] [__predef_detection__]]
-    ]
- */
-
-#define BOOST_OS_BSD_DRAGONFLY BOOST_VERSION_NUMBER_NOT_AVAILABLE
-
-#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \
-    defined(__DragonFly__) \
-    )
-#   ifndef BOOST_OS_BSD_AVAILABLE
-#       define BOOST_OS_BSD BOOST_VERSION_NUMBER_AVAILABLE
-#       define BOOST_OS_BSD_AVAILABLE
-#   endif
-#   undef BOOST_OS_BSD_DRAGONFLY
-#   if defined(__DragonFly__)
-#       define BOOST_OS_DRAGONFLY_BSD BOOST_VERSION_NUMBER_AVAILABLE
-#   endif
-#endif
-
-#if BOOST_OS_BSD_DRAGONFLY
-#   define BOOST_OS_BSD_DRAGONFLY_AVAILABLE
-#   include <boost/predef/detail/os_detected.h>
-#endif
-
-#define BOOST_OS_BSD_DRAGONFLY_NAME "DragonFly BSD"
-
-#include <boost/predef/detail/test.h>
-BOOST_PREDEF_DECLARE_TEST(BOOST_OS_BSD_DRAGONFLY,BOOST_OS_BSD_DRAGONFLY_NAME)
-
-#endif
diff --git a/boost/predef/os/bsd/free.h b/boost/predef/os/bsd/free.h
deleted file mode 100644
index 321d3a3..0000000
--- a/boost/predef/os/bsd/free.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
-Copyright Redshift Software, Inc. 2012-2013
-Distributed under the Boost Software License, Version 1.0.
-(See accompanying file LICENSE_1_0.txt or copy at
-http://www.boost.org/LICENSE_1_0.txt)
-*/
-
-#ifndef BOOST_PREDEF_OS_BSD_FREE_H
-#define BOOST_PREDEF_OS_BSD_FREE_H
-
-#include <boost/predef/os/bsd.h>
-
-/*`
-[heading `BOOST_OS_BSD_FREE`]
-
-[@http://en.wikipedia.org/wiki/Freebsd FreeBSD] operating system.
-
-[table
-    [[__predef_symbol__] [__predef_version__]]
-
-    [[`__FreeBSD__`] [__predef_detection__]]
-
-    [[`__FreeBSD_version`] [V.R.P]]
-    ]
- */
-
-#define BOOST_OS_BSD_FREE BOOST_VERSION_NUMBER_NOT_AVAILABLE
-
-#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \
-    defined(__FreeBSD__) \
-    )
-#   ifndef BOOST_OS_BSD_AVAILABLE
-#       define BOOST_OS_BSD BOOST_VERSION_NUMBER_AVAILABLE
-#       define BOOST_OS_BSD_AVAILABLE
-#   endif
-#   undef BOOST_OS_BSD_FREE
-#   if defined(__FreeBSD_version)
-#       if __FreeBSD_version < 500000
-#           define BOOST_OS_BSD_FREE \
-                BOOST_PREDEF_MAKE_10_VRP000(__FreeBSD_version)
-#       else
-#           define BOOST_OS_BSD_FREE \
-                BOOST_PREDEF_MAKE_10_VRR000(__FreeBSD_version)
-#       endif
-#   else
-#       define BOOST_OS_BSD_FREE BOOST_VERSION_NUMBER_AVAILABLE
-#   endif
-#endif
-
-#if BOOST_OS_BSD_FREE
-#   define BOOST_OS_BSD_FREE_AVAILABLE
-#   include <boost/predef/detail/os_detected.h>
-#endif
-
-#define BOOST_OS_BSD_FREE_NAME "Free BSD"
-
-#include <boost/predef/detail/test.h>
-BOOST_PREDEF_DECLARE_TEST(BOOST_OS_BSD_FREE,BOOST_OS_BSD_FREE_NAME)
-
-#endif
diff --git a/boost/predef/os/bsd/net.h b/boost/predef/os/bsd/net.h
deleted file mode 100644
index 2a34538..0000000
--- a/boost/predef/os/bsd/net.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
-Copyright Redshift Software, Inc. 2012-2013
-Distributed under the Boost Software License, Version 1.0.
-(See accompanying file LICENSE_1_0.txt or copy at
-http://www.boost.org/LICENSE_1_0.txt)
-*/
-
-#ifndef BOOST_PREDEF_OS_BSD_NET_H
-#define BOOST_PREDEF_OS_BSD_NET_H
-
-#include <boost/predef/os/bsd.h>
-
-/*`
-[heading `BOOST_OS_BSD_NET`]
-
-[@http://en.wikipedia.org/wiki/Netbsd NetBSD] operating system.
-
-[table
-    [[__predef_symbol__] [__predef_version__]]
-
-    [[`__NETBSD__`] [__predef_detection__]]
-    [[`__NetBSD__`] [__predef_detection__]]
-
-    [[`__NETBSD_version`] [V.R.P]]
-    [[`NetBSD0_8`] [0.8.0]]
-    [[`NetBSD0_9`] [0.9.0]]
-    [[`NetBSD1_0`] [1.0.0]]
-    [[`__NetBSD_Version`] [V.R.P]]
-    ]
- */
-
-#define BOOST_OS_BSD_NET BOOST_VERSION_NUMBER_NOT_AVAILABLE
-
-#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \
-    defined(__NETBSD__) || defined(__NetBSD__) \
-    )
-#   ifndef BOOST_OS_BSD_AVAILABLE
-#       define BOOST_OS_BSD BOOST_VERSION_NUMBER_AVAILABLE
-#       define BOOST_OS_BSD_AVAILABLE
-#   endif
-#   undef BOOST_OS_BSD_NET
-#   if defined(__NETBSD__)
-#       if defined(__NETBSD_version)
-#           if __NETBSD_version < 500000
-#               define BOOST_OS_BSD_NET \
-                    BOOST_PREDEF_MAKE_10_VRP000(__NETBSD_version)
-#           else
-#               define BOOST_OS_BSD_NET \
-                    BOOST_PREDEF_MAKE_10_VRR000(__NETBSD_version)
-#           endif
-#       else
-#           define BOOST_OS_BSD_NET BOOST_VERSION_NUMBER_AVAILABLE
-#       endif
-#   elif defined(__NetBSD__)
-#       if !defined(BOOST_OS_BSD_NET) && defined(NetBSD0_8)
-#           define BOOST_OS_BSD_NET BOOST_VERSION_NUMBER(0,8,0)
-#       endif
-#       if !defined(BOOST_OS_BSD_NET) && defined(NetBSD0_9)
-#           define BOOST_OS_BSD_NET BOOST_VERSION_NUMBER(0,9,0)
-#       endif
-#       if !defined(BOOST_OS_BSD_NET) && defined(NetBSD1_0)
-#           define BOOST_OS_BSD_NET BOOST_VERSION_NUMBER(1,0,0)
-#       endif
-#       if !defined(BOOST_OS_BSD_NET) && defined(__NetBSD_Version)
-#           define BOOST_OS_BSD_NET \
-                BOOST_PREDEF_MAKE_10_VVRR00PP00(__NetBSD_Version)
-#       endif
-#       if !defined(BOOST_OS_BSD_NET)
-#           define BOOST_OS_BSD_NET BOOST_VERSION_NUMBER_AVAILABLE
-#       endif
-#   endif
-#endif
-
-#if BOOST_OS_BSD_NET
-#   define BOOST_OS_BSD_NET_AVAILABLE
-#   include <boost/predef/detail/os_detected.h>
-#endif
-
-#define BOOST_OS_BSD_NET_NAME "DragonFly BSD"
-
-#include <boost/predef/detail/test.h>
-BOOST_PREDEF_DECLARE_TEST(BOOST_OS_BSD_NET,BOOST_OS_BSD_NET_NAME)
-
-#endif
diff --git a/boost/predef/os/bsd/open.h b/boost/predef/os/bsd/open.h
deleted file mode 100644
index 2f51644..0000000
--- a/boost/predef/os/bsd/open.h
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
-Copyright Redshift Software, Inc. 2012-2013
-Distributed under the Boost Software License, Version 1.0.
-(See accompanying file LICENSE_1_0.txt or copy at
-http://www.boost.org/LICENSE_1_0.txt)
-*/
-
-#ifndef BOOST_PREDEF_OS_BSD_OPEN_H
-#define BOOST_PREDEF_OS_BSD_OPEN_H
-
-#include <boost/predef/os/bsd.h>
-
-/*`
-[heading `BOOST_OS_BSD_OPEN`]
-
-[@http://en.wikipedia.org/wiki/Openbsd OpenBSD] operating system.
-
-[table
-    [[__predef_symbol__] [__predef_version__]]
-
-    [[`__OpenBSD__`] [__predef_detection__]]
-
-    [[`OpenBSD2_0`] [2.0.0]]
-    [[`OpenBSD2_1`] [2.1.0]]
-    [[`OpenBSD2_2`] [2.2.0]]
-    [[`OpenBSD2_3`] [2.3.0]]
-    [[`OpenBSD2_4`] [2.4.0]]
-    [[`OpenBSD2_5`] [2.5.0]]
-    [[`OpenBSD2_6`] [2.6.0]]
-    [[`OpenBSD2_7`] [2.7.0]]
-    [[`OpenBSD2_8`] [2.8.0]]
-    [[`OpenBSD2_9`] [2.9.0]]
-    [[`OpenBSD3_0`] [3.0.0]]
-    [[`OpenBSD3_1`] [3.1.0]]
-    [[`OpenBSD3_2`] [3.2.0]]
-    [[`OpenBSD3_3`] [3.3.0]]
-    [[`OpenBSD3_4`] [3.4.0]]
-    [[`OpenBSD3_5`] [3.5.0]]
-    [[`OpenBSD3_6`] [3.6.0]]
-    [[`OpenBSD3_7`] [3.7.0]]
-    [[`OpenBSD3_8`] [3.8.0]]
-    [[`OpenBSD3_9`] [3.9.0]]
-    [[`OpenBSD4_0`] [4.0.0]]
-    [[`OpenBSD4_1`] [4.1.0]]
-    [[`OpenBSD4_2`] [4.2.0]]
-    [[`OpenBSD4_3`] [4.3.0]]
-    [[`OpenBSD4_4`] [4.4.0]]
-    [[`OpenBSD4_5`] [4.5.0]]
-    [[`OpenBSD4_6`] [4.6.0]]
-    [[`OpenBSD4_7`] [4.7.0]]
-    [[`OpenBSD4_8`] [4.8.0]]
-    [[`OpenBSD4_9`] [4.9.0]]
-    ]
- */
-
-#define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER_NOT_AVAILABLE
-
-#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \
-    defined(__OpenBSD__) \
-    )
-#   ifndef BOOST_OS_BSD_AVAILABLE
-#       define BOOST_OS_BSD BOOST_VERSION_NUMBER_AVAILABLE
-#       define BOOST_OS_BSD_AVAILABLE
-#   endif
-#   undef BOOST_OS_BSD_OPEN
-#   if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD2_0)
-#       define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(2,0,0)
-#   endif
-#   if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD2_1)
-#       define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(2,1,0)
-#   endif
-#   if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD2_2)
-#       define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(2,2,0)
-#   endif
-#   if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD2_3)
-#       define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(2,3,0)
-#   endif
-#   if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD2_4)
-#       define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(2,4,0)
-#   endif
-#   if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD2_5)
-#       define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(2,5,0)
-#   endif
-#   if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD2_6)
-#       define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(2,6,0)
-#   endif
-#   if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD2_7)
-#       define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(2,7,0)
-#   endif
-#   if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD2_8)
-#       define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(2,8,0)
-#   endif
-#   if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD2_9)
-#       define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(2,9,0)
-#   endif
-#   if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD3_0)
-#       define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(3,0,0)
-#   endif
-#   if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD3_1)
-#       define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(3,1,0)
-#   endif
-#   if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD3_2)
-#       define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(3,2,0)
-#   endif
-#   if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD3_3)
-#       define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(3,3,0)
-#   endif
-#   if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD3_4)
-#       define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(3,4,0)
-#   endif
-#   if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD3_5)
-#       define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(3,5,0)
-#   endif
-#   if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD3_6)
-#       define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(3,6,0)
-#   endif
-#   if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD3_7)
-#       define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(3,7,0)
-#   endif
-#   if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD3_8)
-#       define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(3,8,0)
-#   endif
-#   if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD3_9)
-#       define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(3,9,0)
-#   endif
-#   if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD4_0)
-#       define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(4,0,0)
-#   endif
-#   if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD4_1)
-#       define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(4,1,0)
-#   endif
-#   if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD4_2)
-#       define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(4,2,0)
-#   endif
-#   if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD4_3)
-#       define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(4,3,0)
-#   endif
-#   if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD4_4)
-#       define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(4,4,0)
-#   endif
-#   if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD4_5)
-#       define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(4,5,0)
-#   endif
-#   if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD4_6)
-#       define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(4,6,0)
-#   endif
-#   if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD4_7)
-#       define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(4,7,0)
-#   endif
-#   if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD4_8)
-#       define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(4,8,0)
-#   endif
-#   if !defined(BOOST_OS_BSD_OPEN) && defined(OpenBSD4_9)
-#       define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER(4,9,0)
-#   endif
-#   if !defined(BOOST_OS_BSD_OPEN)
-#       define BOOST_OS_BSD_OPEN BOOST_VERSION_NUMBER_AVAILABLE
-#   endif
-#endif
-
-#if BOOST_OS_BSD_OPEN
-#   define BOOST_OS_BSD_OPEN_AVAILABLE
-#   include <boost/predef/detail/os_detected.h>
-#endif
-
-#define BOOST_OS_BSD_OPEN_NAME "OpenBSD"
-
-#include <boost/predef/detail/test.h>
-BOOST_PREDEF_DECLARE_TEST(BOOST_OS_BSD_OPEN,BOOST_OS_BSD_OPEN_NAME)
-
-#endif
diff --git a/boost/predef/os/macos.h b/boost/predef/os/macos.h
deleted file mode 100644
index e625a6c..0000000
--- a/boost/predef/os/macos.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
-Copyright Redshift Software, Inc. 2008-2013
-Distributed under the Boost Software License, Version 1.0.
-(See accompanying file LICENSE_1_0.txt or copy at
-http://www.boost.org/LICENSE_1_0.txt)
-*/
-
-#ifndef BOOST_PREDEF_OS_MACOS_H
-#define BOOST_PREDEF_OS_MACOS_H
-
-#include <boost/predef/version_number.h>
-#include <boost/predef/make.h>
-
-/*`
-[heading `BOOST_OS_MACOS`]
-
-[@http://en.wikipedia.org/wiki/Mac_OS Mac OS] operating system.
-
-[table
-    [[__predef_symbol__] [__predef_version__]]
-
-    [[`macintosh`] [__predef_detection__]]
-    [[`Macintosh`] [__predef_detection__]]
-    [[`__APPLE__`] [__predef_detection__]]
-    [[`__MACH__`] [__predef_detection__]]
-
-    [[`__APPLE__`, `__MACH__`] [10.0.0]]
-    [[ /otherwise/ ] [9.0.0]]
-    ]
- */
-
-#define BOOST_OS_MACOS BOOST_VERSION_NUMBER_NOT_AVAILABLE
-
-#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \
-    defined(macintosh) || defined(Macintosh) || \
-    (defined(__APPLE__) && defined(__MACH__)) \
-    )
-#   undef BOOST_OS_MACOS
-#   if !defined(BOOST_OS_MACOS) && defined(__APPLE__) && defined(__MACH__)
-#       define BOOST_OS_MACOS BOOST_VERSION_NUMBER(10,0,0)
-#   endif
-#   if !defined(BOOST_OS_MACOS)
-#       define BOOST_OS_MACOS BOOST_VERSION_NUMBER(9,0,0)
-#   endif
-#endif
-
-#if BOOST_OS_MACOS
-#   define BOOST_OS_MACOS_AVAILABLE
-#   include <boost/predef/detail/os_detected.h>
-#endif
-
-#define BOOST_OS_MACOS_NAME "Mac OS"
-
-#include <boost/predef/detail/test.h>
-BOOST_PREDEF_DECLARE_TEST(BOOST_OS_MACOS,BOOST_OS_MACOS_NAME)
-
-
-#endif
diff --git a/boost/predef/os/windows.h b/boost/predef/os/windows.h
deleted file mode 100644
index 1316963..0000000
--- a/boost/predef/os/windows.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
-Copyright Redshift Software, Inc. 2008-2013
-Distributed under the Boost Software License, Version 1.0.
-(See accompanying file LICENSE_1_0.txt or copy at
-http://www.boost.org/LICENSE_1_0.txt)
-*/
-
-#ifndef BOOST_PREDEF_OS_WINDOWS_H
-#define BOOST_PREDEF_OS_WINDOWS_H
-
-#include <boost/predef/version_number.h>
-#include <boost/predef/make.h>
-
-/*`
-[heading `BOOST_OS_WINDOWS`]
-
-[@http://en.wikipedia.org/wiki/Category:Microsoft_Windows Microsoft Windows] operating system.
-
-[table
-    [[__predef_symbol__] [__predef_version__]]
-
-    [[`_WIN32`] [__predef_detection__]]
-    [[`_WIN64`] [__predef_detection__]]
-    [[`__WIN32__`] [__predef_detection__]]
-    [[`__TOS_WIN__`] [__predef_detection__]]
-    [[`__WINDOWS__`] [__predef_detection__]]
-    ]
- */
-
-#define BOOST_OS_WINDOWS BOOST_VERSION_NUMBER_NOT_AVAILABLE
-
-#if !BOOST_PREDEF_DETAIL_OS_DETECTED && ( \
-    defined(_WIN32) || defined(_WIN64) || \
-    defined(__WIN32__) || defined(__TOS_WIN__) || \
-    defined(__WINDOWS__) \
-    )
-#   undef BOOST_OS_WINDOWS
-#   define BOOST_OS_WINDOWS BOOST_VERSION_NUMBER_AVAILABLE
-#endif
-
-#if BOOST_OS_WINDOWS
-#   define BOOST_OS_WINDOWS_AVAILABLE
-#   include <boost/predef/detail/os_detected.h>
-#endif
-
-#define BOOST_OS_WINDOWS_NAME "Microsoft Windows"
-
-#include <boost/predef/detail/test.h>
-BOOST_PREDEF_DECLARE_TEST(BOOST_OS_WINDOWS,BOOST_OS_WINDOWS_NAME)
-
-#endif
diff --git a/boost/predef/other/endian.h b/boost/predef/other/endian.h
deleted file mode 100644
index 9d2a8bc..0000000
--- a/boost/predef/other/endian.h
+++ /dev/null
@@ -1,205 +0,0 @@
-/*
-Copyright Redshift Software, Inc. 2013
-Distributed under the Boost Software License, Version 1.0.
-(See accompanying file LICENSE_1_0.txt or copy at
-http://www.boost.org/LICENSE_1_0.txt)
-*/
-
-#ifndef BOOST_PREDEF_ENDIAN_H
-#define BOOST_PREDEF_ENDIAN_H
-
-#include <boost/predef/version_number.h>
-#include <boost/predef/make.h>
-#include <boost/predef/library/c/gnu.h>
-#include <boost/predef/os/macos.h>
-#include <boost/predef/os/bsd.h>
-
-/*`
-[heading `BOOST_ENDIAN_*`]
-
-Detection of endian memory ordering. There are four defined macros
-in this header that define the various generally possible endian
-memory orderings:
-
-* `BOOST_ENDIAN_BIG_BYTE`, byte-swapped big-endian.
-* `BOOST_ENDIAN_BIG_WORD`, word-swapped big-endian.
-* `BOOST_ENDIAN_LITTLE_BYTE`, byte-swapped little-endian.
-* `BOOST_ENDIAN_LITTLE_WORD`, word-swapped little-endian.
-
-The detection is conservative in that it only identifies endianness
-that it knows for certain. In particular bi-endianness is not
-indicated as is it not practically possible to determine the
-endianness from anything but an operating system provided
-header. And the currently known headers do not define that
-programatic bi-endianness is available.
-
-This implementation is a compilation of various publicly available
-information and acquired knowledge:
-
-# The indispensable documentation of "Pre-defined Compiler Macros"
-  [@http://sourceforge.net/p/predef/wiki/Endianness Endianness].
-# The various endian specifications available in the
-  [@http://wikipedia.org/ Wikipedia] computer architecture pages.
-# Generally available searches for headers that define endianness.
- */
-
-#define BOOST_ENDIAN_BIG_BYTE BOOST_VERSION_NUMBER_NOT_AVAILABLE
-#define BOOST_ENDIAN_BIG_WORD BOOST_VERSION_NUMBER_NOT_AVAILABLE
-#define BOOST_ENDIAN_LITTLE_BYTE BOOST_VERSION_NUMBER_NOT_AVAILABLE
-#define BOOST_ENDIAN_LITTLE_WORD BOOST_VERSION_NUMBER_NOT_AVAILABLE
-
-/* GNU libc provides a header defining __BYTE_ORDER, or _BYTE_ORDER.
- * And some OSs provide some for of endian header also.
- */
-#if !BOOST_ENDIAN_BIG_BYTE && !BOOST_ENDIAN_BIG_WORD && \
-    !BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD
-#   if BOOST_LIB_C_GNU
-#       include <endian.h>
-#   else
-#       if BOOST_OS_MACOS
-#           include <machine/endian.h>
-#       else
-#           if BOOST_OS_BSD
-#               if BOOST_OS_BSD_OPEN
-#                   include <machine/endian.h>
-#               else
-#                   include <sys/endian.h>
-#               endif
-#           endif
-#       endif
-#   endif
-#   if defined(__BYTE_ORDER)
-#       if (__BYTE_ORDER == __BIG_ENDIAN)
-#           undef BOOST_ENDIAN_BIG_BYTE
-#           define BOOST_ENDIAN_BIG_BYTE BOOST_VERSION_NUMBER_AVAILABLE
-#       endif
-#       if (__BYTE_ORDER == __LITTLE_ENDIAN)
-#           undef BOOST_ENDIAN_LITTLE_BYTE
-#           define BOOST_ENDIAN_LITTLE_BYTE BOOST_VERSION_NUMBER_AVAILABLE
-#       endif
-#       if (__BYTE_ORDER == __PDP_ENDIAN)
-#           undef BOOST_ENDIAN_LITTLE_WORD
-#           define BOOST_ENDIAN_LITTLE_WORD BOOST_VERSION_NUMBER_AVAILABLE
-#       endif
-#   endif
-#   if !defined(__BYTE_ORDER) && defined(_BYTE_ORDER)
-#       if (_BYTE_ORDER == _BIG_ENDIAN)
-#           undef BOOST_ENDIAN_BIG_BYTE
-#           define BOOST_ENDIAN_BIG_BYTE BOOST_VERSION_NUMBER_AVAILABLE
-#       endif
-#       if (_BYTE_ORDER == _LITTLE_ENDIAN)
-#           undef BOOST_ENDIAN_LITTLE_BYTE
-#           define BOOST_ENDIAN_LITTLE_BYTE BOOST_VERSION_NUMBER_AVAILABLE
-#       endif
-#       if (_BYTE_ORDER == _PDP_ENDIAN)
-#           undef BOOST_ENDIAN_LITTLE_WORD
-#           define BOOST_ENDIAN_LITTLE_WORD BOOST_VERSION_NUMBER_AVAILABLE
-#       endif
-#   endif
-#endif
-
-/* Built-in byte-swpped big-endian macros.
- */
-#if !BOOST_ENDIAN_BIG_BYTE && !BOOST_ENDIAN_BIG_WORD && \
-    !BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD
-#   if !BOOST_ENDIAN_BIG_BYTE
-#       if (defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__)) || \
-            defined(__ARMEB__) || \
-            defined(__THUMBEB__) || \
-            defined(__AARCH64EB__) || \
-            defined(_MIPSEB) || \
-            defined(__MIPSEB) || \
-            defined(__MIPSEB__)
-#           undef BOOST_ENDIAN_BIG_BYTE
-#           define BOOST_ENDIAN_BIG_BYTE BOOST_VERSION_NUMBER_AVAILABLE
-#       endif
-#   endif
-#endif
-
-/* Built-in byte-swpped little-endian macros.
- */
-#if !BOOST_ENDIAN_BIG_BYTE && !BOOST_ENDIAN_BIG_WORD && \
-    !BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD
-#   if !BOOST_ENDIAN_LITTLE_BYTE
-#       if (defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__)) || \
-            defined(__ARMEL__) || \
-            defined(__THUMBEL__) || \
-            defined(__AARCH64EL__) || \
-            defined(_MIPSEL) || \
-            defined(__MIPSEL) || \
-            defined(__MIPSEL__)
-#           undef BOOST_ENDIAN_LITTLE_BYTE
-#           define BOOST_ENDIAN_LITTLE_BYTE BOOST_VERSION_NUMBER_AVAILABLE
-#       endif
-#   endif
-#endif
-
-/* Some architectures are strictly one endianess (as opposed
- * the current common bi-endianess).
- */
-#if !BOOST_ENDIAN_BIG_BYTE && !BOOST_ENDIAN_BIG_WORD && \
-    !BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD
-#   include <boost/predef/architecture.h>
-#   if BOOST_ARCH_M68K || \
-        BOOST_ARCH_PARISK || \
-        BOOST_ARCH_SYS370 || \
-        BOOST_ARCH_SYS390 || \
-        BOOST_ARCH_Z
-#       undef BOOST_ENDIAN_BIG_BYTE
-#       define BOOST_ENDIAN_BIG_BYTE BOOST_VERSION_NUMBER_AVAILABLE
-#   endif
-#   if BOOST_ARCH_AMD64 || \
-        BOOST_ARCH_IA64 || \
-        BOOST_ARCH_X86 || \
-        BOOST_ARCH_BLACKFIN
-#       undef BOOST_ENDIAN_LITTLE_BYTE
-#       define BOOST_ENDIAN_LITTLE_BYTE BOOST_VERSION_NUMBER_AVAILABLE
-#   endif
-#endif
-
-/* Windows on ARM, if not otherwise detected/specified, is always
- * byte-swaped little-endian.
- */
-#if !BOOST_ENDIAN_BIG_BYTE && !BOOST_ENDIAN_BIG_WORD && \
-    !BOOST_ENDIAN_LITTLE_BYTE && !BOOST_ENDIAN_LITTLE_WORD
-#   if BOOST_ARCH_ARM
-#       include <boost/predef/os/windows.h>
-#       if BOOST_OS_WINDOWS
-#           undef BOOST_ENDIAN_LITTLE_BYTE
-#           define BOOST_ENDIAN_LITTLE_BYTE BOOST_VERSION_NUMBER_AVAILABLE
-#       endif
-#   endif
-#endif
-
-#if BOOST_ENDIAN_BIG_BYTE
-#   define BOOST_ENDIAN_BIG_BYTE_AVAILABLE
-#endif
-#if BOOST_ENDIAN_BIG_WORD
-#   define BOOST_ENDIAN_BIG_WORD_BYTE_AVAILABLE
-#endif
-#if BOOST_ENDIAN_LITTLE_BYTE
-#   define BOOST_ENDIAN_LITTLE_BYTE_AVAILABLE
-#endif
-#if BOOST_ENDIAN_LITTLE_WORD
-#   define BOOST_ENDIAN_LITTLE_WORD_BYTE_AVAILABLE
-#endif
-
-#define BOOST_ENDIAN_BIG_BYTE_NAME "Byte-Swapped Big-Endian"
-#define BOOST_ENDIAN_BIG_WORD_NAME "Word-Swapped Big-Endian"
-#define BOOST_ENDIAN_LITTLE_BYTE_NAME "Byte-Swapped Little-Endian"
-#define BOOST_ENDIAN_LITTLE_WORD_NAME "Word-Swapped Little-Endian"
-
-#include <boost/predef/detail/test.h>
-BOOST_PREDEF_DECLARE_TEST(BOOST_ENDIAN_BIG_BYTE,BOOST_ENDIAN_BIG_BYTE_NAME)
-
-#include <boost/predef/detail/test.h>
-BOOST_PREDEF_DECLARE_TEST(BOOST_ENDIAN_BIG_WORD,BOOST_ENDIAN_BIG_WORD_NAME)
-
-#include <boost/predef/detail/test.h>
-BOOST_PREDEF_DECLARE_TEST(BOOST_ENDIAN_LITTLE_BYTE,BOOST_ENDIAN_LITTLE_BYTE_NAME)
-
-#include <boost/predef/detail/test.h>
-BOOST_PREDEF_DECLARE_TEST(BOOST_ENDIAN_LITTLE_WORD,BOOST_ENDIAN_LITTLE_WORD_NAME)
-
-
-#endif
diff --git a/boost/predef/version_number.h b/boost/predef/version_number.h
deleted file mode 100644
index 2ecccd2..0000000
--- a/boost/predef/version_number.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
-Copyright Rene Rivera 2005
-Copyright Redshift Software, Inc. 2008-2013
-Distributed under the Boost Software License, Version 1.0.
-(See accompanying file LICENSE_1_0.txt or copy at
-http://www.boost.org/LICENSE_1_0.txt)
-*/
-
-#ifndef BOOST_PREDEF_VERSION_NUMBER_H
-#define BOOST_PREDEF_VERSION_NUMBER_H
-
-/*`
-[heading `BOOST_VERSION_NUMBER`]
-
-``
-BOOST_VERSION_NUMBER(major,minor,patch)
-``
-
-Defines standard version numbers, with these properties:
-
-* Decimal base whole numbers in the range \[0,1000000000).
-  The number range is designed to allow for a (2,2,5) triplet.
-  Which fits within a 32 bit value.
-* The `major` number can be in the \[0,99\] range.
-* The `minor` number can be in the \[0,99\] range.
-* The `patch` number can be in the \[0,99999\] range.
-* Values can be specified in any base. As the defined value
-  is an constant expression.
-* Value can be directly used in both preprocessor and compiler
-  expressions for comparison to other similarly defined values.
-* The implementation enforces the individual ranges for the
-  major, minor, and patch numbers. And values over the ranges
-  are truncated (modulo).
-
-*/
-#define BOOST_VERSION_NUMBER(major,minor,patch) \
-    ( (((major)%100)*10000000) + (((minor)%100)*100000) + ((patch)%100000) )
-
-#define BOOST_VERSION_NUMBER_MAX \
-    BOOST_VERSION_NUMBER(99,99,99999)
-
-#define BOOST_VERSION_NUMBER_ZERO \
-    BOOST_VERSION_NUMBER(0,0,0)
-
-#define BOOST_VERSION_NUMBER_MIN \
-    BOOST_VERSION_NUMBER(0,0,1)
-
-#define BOOST_VERSION_NUMBER_AVAILABLE \
-    BOOST_VERSION_NUMBER_MIN
-
-#define BOOST_VERSION_NUMBER_NOT_AVAILABLE \
-    BOOST_VERSION_NUMBER_ZERO
-
-#endif
diff --git a/boost/preprocessor/arithmetic/add.hpp b/boost/preprocessor/arithmetic/add.hpp
deleted file mode 100644
index 5a29f55..0000000
--- a/boost/preprocessor/arithmetic/add.hpp
+++ /dev/null
@@ -1,51 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * Distributed under the Boost Software License, Version 1.0. (See
-#  * accompanying file LICENSE_1_0.txt or copy at
-#  * http://www.boost.org/LICENSE_1_0.txt)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_ARITHMETIC_ADD_HPP
-# define BOOST_PREPROCESSOR_ARITHMETIC_ADD_HPP
-#
-# include <boost/preprocessor/arithmetic/dec.hpp>
-# include <boost/preprocessor/arithmetic/inc.hpp>
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/control/while.hpp>
-# include <boost/preprocessor/tuple/elem.hpp>
-#
-# /* BOOST_PP_ADD */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_ADD(x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE(BOOST_PP_ADD_P, BOOST_PP_ADD_O, (x, y)))
-# else
-#    define BOOST_PP_ADD(x, y) BOOST_PP_ADD_I(x, y)
-#    define BOOST_PP_ADD_I(x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE(BOOST_PP_ADD_P, BOOST_PP_ADD_O, (x, y)))
-# endif
-#
-# define BOOST_PP_ADD_P(d, xy) BOOST_PP_TUPLE_ELEM(2, 1, xy)
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#    define BOOST_PP_ADD_O(d, xy) BOOST_PP_ADD_O_I xy
-# else
-#    define BOOST_PP_ADD_O(d, xy) BOOST_PP_ADD_O_I(BOOST_PP_TUPLE_ELEM(2, 0, xy), BOOST_PP_TUPLE_ELEM(2, 1, xy))
-# endif
-#
-# define BOOST_PP_ADD_O_I(x, y) (BOOST_PP_INC(x), BOOST_PP_DEC(y))
-#
-# /* BOOST_PP_ADD_D */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_ADD_D(d, x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE_ ## d(BOOST_PP_ADD_P, BOOST_PP_ADD_O, (x, y)))
-# else
-#    define BOOST_PP_ADD_D(d, x, y) BOOST_PP_ADD_D_I(d, x, y)
-#    define BOOST_PP_ADD_D_I(d, x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE_ ## d(BOOST_PP_ADD_P, BOOST_PP_ADD_O, (x, y)))
-# endif
-#
-# endif
diff --git a/boost/preprocessor/arithmetic/dec.hpp b/boost/preprocessor/arithmetic/dec.hpp
deleted file mode 100644
index 0503359..0000000
--- a/boost/preprocessor/arithmetic/dec.hpp
+++ /dev/null
@@ -1,288 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * Distributed under the Boost Software License, Version 1.0. (See
-#  * accompanying file LICENSE_1_0.txt or copy at
-#  * http://www.boost.org/LICENSE_1_0.txt)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_ARITHMETIC_DEC_HPP
-# define BOOST_PREPROCESSOR_ARITHMETIC_DEC_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-#
-# /* BOOST_PP_DEC */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#    define BOOST_PP_DEC(x) BOOST_PP_DEC_I(x)
-# else
-#    define BOOST_PP_DEC(x) BOOST_PP_DEC_OO((x))
-#    define BOOST_PP_DEC_OO(par) BOOST_PP_DEC_I ## par
-# endif
-#
-# define BOOST_PP_DEC_I(x) BOOST_PP_DEC_ ## x
-#
-# define BOOST_PP_DEC_0 0
-# define BOOST_PP_DEC_1 0
-# define BOOST_PP_DEC_2 1
-# define BOOST_PP_DEC_3 2
-# define BOOST_PP_DEC_4 3
-# define BOOST_PP_DEC_5 4
-# define BOOST_PP_DEC_6 5
-# define BOOST_PP_DEC_7 6
-# define BOOST_PP_DEC_8 7
-# define BOOST_PP_DEC_9 8
-# define BOOST_PP_DEC_10 9
-# define BOOST_PP_DEC_11 10
-# define BOOST_PP_DEC_12 11
-# define BOOST_PP_DEC_13 12
-# define BOOST_PP_DEC_14 13
-# define BOOST_PP_DEC_15 14
-# define BOOST_PP_DEC_16 15
-# define BOOST_PP_DEC_17 16
-# define BOOST_PP_DEC_18 17
-# define BOOST_PP_DEC_19 18
-# define BOOST_PP_DEC_20 19
-# define BOOST_PP_DEC_21 20
-# define BOOST_PP_DEC_22 21
-# define BOOST_PP_DEC_23 22
-# define BOOST_PP_DEC_24 23
-# define BOOST_PP_DEC_25 24
-# define BOOST_PP_DEC_26 25
-# define BOOST_PP_DEC_27 26
-# define BOOST_PP_DEC_28 27
-# define BOOST_PP_DEC_29 28
-# define BOOST_PP_DEC_30 29
-# define BOOST_PP_DEC_31 30
-# define BOOST_PP_DEC_32 31
-# define BOOST_PP_DEC_33 32
-# define BOOST_PP_DEC_34 33
-# define BOOST_PP_DEC_35 34
-# define BOOST_PP_DEC_36 35
-# define BOOST_PP_DEC_37 36
-# define BOOST_PP_DEC_38 37
-# define BOOST_PP_DEC_39 38
-# define BOOST_PP_DEC_40 39
-# define BOOST_PP_DEC_41 40
-# define BOOST_PP_DEC_42 41
-# define BOOST_PP_DEC_43 42
-# define BOOST_PP_DEC_44 43
-# define BOOST_PP_DEC_45 44
-# define BOOST_PP_DEC_46 45
-# define BOOST_PP_DEC_47 46
-# define BOOST_PP_DEC_48 47
-# define BOOST_PP_DEC_49 48
-# define BOOST_PP_DEC_50 49
-# define BOOST_PP_DEC_51 50
-# define BOOST_PP_DEC_52 51
-# define BOOST_PP_DEC_53 52
-# define BOOST_PP_DEC_54 53
-# define BOOST_PP_DEC_55 54
-# define BOOST_PP_DEC_56 55
-# define BOOST_PP_DEC_57 56
-# define BOOST_PP_DEC_58 57
-# define BOOST_PP_DEC_59 58
-# define BOOST_PP_DEC_60 59
-# define BOOST_PP_DEC_61 60
-# define BOOST_PP_DEC_62 61
-# define BOOST_PP_DEC_63 62
-# define BOOST_PP_DEC_64 63
-# define BOOST_PP_DEC_65 64
-# define BOOST_PP_DEC_66 65
-# define BOOST_PP_DEC_67 66
-# define BOOST_PP_DEC_68 67
-# define BOOST_PP_DEC_69 68
-# define BOOST_PP_DEC_70 69
-# define BOOST_PP_DEC_71 70
-# define BOOST_PP_DEC_72 71
-# define BOOST_PP_DEC_73 72
-# define BOOST_PP_DEC_74 73
-# define BOOST_PP_DEC_75 74
-# define BOOST_PP_DEC_76 75
-# define BOOST_PP_DEC_77 76
-# define BOOST_PP_DEC_78 77
-# define BOOST_PP_DEC_79 78
-# define BOOST_PP_DEC_80 79
-# define BOOST_PP_DEC_81 80
-# define BOOST_PP_DEC_82 81
-# define BOOST_PP_DEC_83 82
-# define BOOST_PP_DEC_84 83
-# define BOOST_PP_DEC_85 84
-# define BOOST_PP_DEC_86 85
-# define BOOST_PP_DEC_87 86
-# define BOOST_PP_DEC_88 87
-# define BOOST_PP_DEC_89 88
-# define BOOST_PP_DEC_90 89
-# define BOOST_PP_DEC_91 90
-# define BOOST_PP_DEC_92 91
-# define BOOST_PP_DEC_93 92
-# define BOOST_PP_DEC_94 93
-# define BOOST_PP_DEC_95 94
-# define BOOST_PP_DEC_96 95
-# define BOOST_PP_DEC_97 96
-# define BOOST_PP_DEC_98 97
-# define BOOST_PP_DEC_99 98
-# define BOOST_PP_DEC_100 99
-# define BOOST_PP_DEC_101 100
-# define BOOST_PP_DEC_102 101
-# define BOOST_PP_DEC_103 102
-# define BOOST_PP_DEC_104 103
-# define BOOST_PP_DEC_105 104
-# define BOOST_PP_DEC_106 105
-# define BOOST_PP_DEC_107 106
-# define BOOST_PP_DEC_108 107
-# define BOOST_PP_DEC_109 108
-# define BOOST_PP_DEC_110 109
-# define BOOST_PP_DEC_111 110
-# define BOOST_PP_DEC_112 111
-# define BOOST_PP_DEC_113 112
-# define BOOST_PP_DEC_114 113
-# define BOOST_PP_DEC_115 114
-# define BOOST_PP_DEC_116 115
-# define BOOST_PP_DEC_117 116
-# define BOOST_PP_DEC_118 117
-# define BOOST_PP_DEC_119 118
-# define BOOST_PP_DEC_120 119
-# define BOOST_PP_DEC_121 120
-# define BOOST_PP_DEC_122 121
-# define BOOST_PP_DEC_123 122
-# define BOOST_PP_DEC_124 123
-# define BOOST_PP_DEC_125 124
-# define BOOST_PP_DEC_126 125
-# define BOOST_PP_DEC_127 126
-# define BOOST_PP_DEC_128 127
-# define BOOST_PP_DEC_129 128
-# define BOOST_PP_DEC_130 129
-# define BOOST_PP_DEC_131 130
-# define BOOST_PP_DEC_132 131
-# define BOOST_PP_DEC_133 132
-# define BOOST_PP_DEC_134 133
-# define BOOST_PP_DEC_135 134
-# define BOOST_PP_DEC_136 135
-# define BOOST_PP_DEC_137 136
-# define BOOST_PP_DEC_138 137
-# define BOOST_PP_DEC_139 138
-# define BOOST_PP_DEC_140 139
-# define BOOST_PP_DEC_141 140
-# define BOOST_PP_DEC_142 141
-# define BOOST_PP_DEC_143 142
-# define BOOST_PP_DEC_144 143
-# define BOOST_PP_DEC_145 144
-# define BOOST_PP_DEC_146 145
-# define BOOST_PP_DEC_147 146
-# define BOOST_PP_DEC_148 147
-# define BOOST_PP_DEC_149 148
-# define BOOST_PP_DEC_150 149
-# define BOOST_PP_DEC_151 150
-# define BOOST_PP_DEC_152 151
-# define BOOST_PP_DEC_153 152
-# define BOOST_PP_DEC_154 153
-# define BOOST_PP_DEC_155 154
-# define BOOST_PP_DEC_156 155
-# define BOOST_PP_DEC_157 156
-# define BOOST_PP_DEC_158 157
-# define BOOST_PP_DEC_159 158
-# define BOOST_PP_DEC_160 159
-# define BOOST_PP_DEC_161 160
-# define BOOST_PP_DEC_162 161
-# define BOOST_PP_DEC_163 162
-# define BOOST_PP_DEC_164 163
-# define BOOST_PP_DEC_165 164
-# define BOOST_PP_DEC_166 165
-# define BOOST_PP_DEC_167 166
-# define BOOST_PP_DEC_168 167
-# define BOOST_PP_DEC_169 168
-# define BOOST_PP_DEC_170 169
-# define BOOST_PP_DEC_171 170
-# define BOOST_PP_DEC_172 171
-# define BOOST_PP_DEC_173 172
-# define BOOST_PP_DEC_174 173
-# define BOOST_PP_DEC_175 174
-# define BOOST_PP_DEC_176 175
-# define BOOST_PP_DEC_177 176
-# define BOOST_PP_DEC_178 177
-# define BOOST_PP_DEC_179 178
-# define BOOST_PP_DEC_180 179
-# define BOOST_PP_DEC_181 180
-# define BOOST_PP_DEC_182 181
-# define BOOST_PP_DEC_183 182
-# define BOOST_PP_DEC_184 183
-# define BOOST_PP_DEC_185 184
-# define BOOST_PP_DEC_186 185
-# define BOOST_PP_DEC_187 186
-# define BOOST_PP_DEC_188 187
-# define BOOST_PP_DEC_189 188
-# define BOOST_PP_DEC_190 189
-# define BOOST_PP_DEC_191 190
-# define BOOST_PP_DEC_192 191
-# define BOOST_PP_DEC_193 192
-# define BOOST_PP_DEC_194 193
-# define BOOST_PP_DEC_195 194
-# define BOOST_PP_DEC_196 195
-# define BOOST_PP_DEC_197 196
-# define BOOST_PP_DEC_198 197
-# define BOOST_PP_DEC_199 198
-# define BOOST_PP_DEC_200 199
-# define BOOST_PP_DEC_201 200
-# define BOOST_PP_DEC_202 201
-# define BOOST_PP_DEC_203 202
-# define BOOST_PP_DEC_204 203
-# define BOOST_PP_DEC_205 204
-# define BOOST_PP_DEC_206 205
-# define BOOST_PP_DEC_207 206
-# define BOOST_PP_DEC_208 207
-# define BOOST_PP_DEC_209 208
-# define BOOST_PP_DEC_210 209
-# define BOOST_PP_DEC_211 210
-# define BOOST_PP_DEC_212 211
-# define BOOST_PP_DEC_213 212
-# define BOOST_PP_DEC_214 213
-# define BOOST_PP_DEC_215 214
-# define BOOST_PP_DEC_216 215
-# define BOOST_PP_DEC_217 216
-# define BOOST_PP_DEC_218 217
-# define BOOST_PP_DEC_219 218
-# define BOOST_PP_DEC_220 219
-# define BOOST_PP_DEC_221 220
-# define BOOST_PP_DEC_222 221
-# define BOOST_PP_DEC_223 222
-# define BOOST_PP_DEC_224 223
-# define BOOST_PP_DEC_225 224
-# define BOOST_PP_DEC_226 225
-# define BOOST_PP_DEC_227 226
-# define BOOST_PP_DEC_228 227
-# define BOOST_PP_DEC_229 228
-# define BOOST_PP_DEC_230 229
-# define BOOST_PP_DEC_231 230
-# define BOOST_PP_DEC_232 231
-# define BOOST_PP_DEC_233 232
-# define BOOST_PP_DEC_234 233
-# define BOOST_PP_DEC_235 234
-# define BOOST_PP_DEC_236 235
-# define BOOST_PP_DEC_237 236
-# define BOOST_PP_DEC_238 237
-# define BOOST_PP_DEC_239 238
-# define BOOST_PP_DEC_240 239
-# define BOOST_PP_DEC_241 240
-# define BOOST_PP_DEC_242 241
-# define BOOST_PP_DEC_243 242
-# define BOOST_PP_DEC_244 243
-# define BOOST_PP_DEC_245 244
-# define BOOST_PP_DEC_246 245
-# define BOOST_PP_DEC_247 246
-# define BOOST_PP_DEC_248 247
-# define BOOST_PP_DEC_249 248
-# define BOOST_PP_DEC_250 249
-# define BOOST_PP_DEC_251 250
-# define BOOST_PP_DEC_252 251
-# define BOOST_PP_DEC_253 252
-# define BOOST_PP_DEC_254 253
-# define BOOST_PP_DEC_255 254
-# define BOOST_PP_DEC_256 255
-#
-# endif
diff --git a/boost/preprocessor/arithmetic/inc.hpp b/boost/preprocessor/arithmetic/inc.hpp
deleted file mode 100644
index 1597ab8..0000000
--- a/boost/preprocessor/arithmetic/inc.hpp
+++ /dev/null
@@ -1,288 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * Distributed under the Boost Software License, Version 1.0. (See
-#  * accompanying file LICENSE_1_0.txt or copy at
-#  * http://www.boost.org/LICENSE_1_0.txt)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_ARITHMETIC_INC_HPP
-# define BOOST_PREPROCESSOR_ARITHMETIC_INC_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-#
-# /* BOOST_PP_INC */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#    define BOOST_PP_INC(x) BOOST_PP_INC_I(x)
-# else
-#    define BOOST_PP_INC(x) BOOST_PP_INC_OO((x))
-#    define BOOST_PP_INC_OO(par) BOOST_PP_INC_I ## par
-# endif
-#
-# define BOOST_PP_INC_I(x) BOOST_PP_INC_ ## x
-#
-# define BOOST_PP_INC_0 1
-# define BOOST_PP_INC_1 2
-# define BOOST_PP_INC_2 3
-# define BOOST_PP_INC_3 4
-# define BOOST_PP_INC_4 5
-# define BOOST_PP_INC_5 6
-# define BOOST_PP_INC_6 7
-# define BOOST_PP_INC_7 8
-# define BOOST_PP_INC_8 9
-# define BOOST_PP_INC_9 10
-# define BOOST_PP_INC_10 11
-# define BOOST_PP_INC_11 12
-# define BOOST_PP_INC_12 13
-# define BOOST_PP_INC_13 14
-# define BOOST_PP_INC_14 15
-# define BOOST_PP_INC_15 16
-# define BOOST_PP_INC_16 17
-# define BOOST_PP_INC_17 18
-# define BOOST_PP_INC_18 19
-# define BOOST_PP_INC_19 20
-# define BOOST_PP_INC_20 21
-# define BOOST_PP_INC_21 22
-# define BOOST_PP_INC_22 23
-# define BOOST_PP_INC_23 24
-# define BOOST_PP_INC_24 25
-# define BOOST_PP_INC_25 26
-# define BOOST_PP_INC_26 27
-# define BOOST_PP_INC_27 28
-# define BOOST_PP_INC_28 29
-# define BOOST_PP_INC_29 30
-# define BOOST_PP_INC_30 31
-# define BOOST_PP_INC_31 32
-# define BOOST_PP_INC_32 33
-# define BOOST_PP_INC_33 34
-# define BOOST_PP_INC_34 35
-# define BOOST_PP_INC_35 36
-# define BOOST_PP_INC_36 37
-# define BOOST_PP_INC_37 38
-# define BOOST_PP_INC_38 39
-# define BOOST_PP_INC_39 40
-# define BOOST_PP_INC_40 41
-# define BOOST_PP_INC_41 42
-# define BOOST_PP_INC_42 43
-# define BOOST_PP_INC_43 44
-# define BOOST_PP_INC_44 45
-# define BOOST_PP_INC_45 46
-# define BOOST_PP_INC_46 47
-# define BOOST_PP_INC_47 48
-# define BOOST_PP_INC_48 49
-# define BOOST_PP_INC_49 50
-# define BOOST_PP_INC_50 51
-# define BOOST_PP_INC_51 52
-# define BOOST_PP_INC_52 53
-# define BOOST_PP_INC_53 54
-# define BOOST_PP_INC_54 55
-# define BOOST_PP_INC_55 56
-# define BOOST_PP_INC_56 57
-# define BOOST_PP_INC_57 58
-# define BOOST_PP_INC_58 59
-# define BOOST_PP_INC_59 60
-# define BOOST_PP_INC_60 61
-# define BOOST_PP_INC_61 62
-# define BOOST_PP_INC_62 63
-# define BOOST_PP_INC_63 64
-# define BOOST_PP_INC_64 65
-# define BOOST_PP_INC_65 66
-# define BOOST_PP_INC_66 67
-# define BOOST_PP_INC_67 68
-# define BOOST_PP_INC_68 69
-# define BOOST_PP_INC_69 70
-# define BOOST_PP_INC_70 71
-# define BOOST_PP_INC_71 72
-# define BOOST_PP_INC_72 73
-# define BOOST_PP_INC_73 74
-# define BOOST_PP_INC_74 75
-# define BOOST_PP_INC_75 76
-# define BOOST_PP_INC_76 77
-# define BOOST_PP_INC_77 78
-# define BOOST_PP_INC_78 79
-# define BOOST_PP_INC_79 80
-# define BOOST_PP_INC_80 81
-# define BOOST_PP_INC_81 82
-# define BOOST_PP_INC_82 83
-# define BOOST_PP_INC_83 84
-# define BOOST_PP_INC_84 85
-# define BOOST_PP_INC_85 86
-# define BOOST_PP_INC_86 87
-# define BOOST_PP_INC_87 88
-# define BOOST_PP_INC_88 89
-# define BOOST_PP_INC_89 90
-# define BOOST_PP_INC_90 91
-# define BOOST_PP_INC_91 92
-# define BOOST_PP_INC_92 93
-# define BOOST_PP_INC_93 94
-# define BOOST_PP_INC_94 95
-# define BOOST_PP_INC_95 96
-# define BOOST_PP_INC_96 97
-# define BOOST_PP_INC_97 98
-# define BOOST_PP_INC_98 99
-# define BOOST_PP_INC_99 100
-# define BOOST_PP_INC_100 101
-# define BOOST_PP_INC_101 102
-# define BOOST_PP_INC_102 103
-# define BOOST_PP_INC_103 104
-# define BOOST_PP_INC_104 105
-# define BOOST_PP_INC_105 106
-# define BOOST_PP_INC_106 107
-# define BOOST_PP_INC_107 108
-# define BOOST_PP_INC_108 109
-# define BOOST_PP_INC_109 110
-# define BOOST_PP_INC_110 111
-# define BOOST_PP_INC_111 112
-# define BOOST_PP_INC_112 113
-# define BOOST_PP_INC_113 114
-# define BOOST_PP_INC_114 115
-# define BOOST_PP_INC_115 116
-# define BOOST_PP_INC_116 117
-# define BOOST_PP_INC_117 118
-# define BOOST_PP_INC_118 119
-# define BOOST_PP_INC_119 120
-# define BOOST_PP_INC_120 121
-# define BOOST_PP_INC_121 122
-# define BOOST_PP_INC_122 123
-# define BOOST_PP_INC_123 124
-# define BOOST_PP_INC_124 125
-# define BOOST_PP_INC_125 126
-# define BOOST_PP_INC_126 127
-# define BOOST_PP_INC_127 128
-# define BOOST_PP_INC_128 129
-# define BOOST_PP_INC_129 130
-# define BOOST_PP_INC_130 131
-# define BOOST_PP_INC_131 132
-# define BOOST_PP_INC_132 133
-# define BOOST_PP_INC_133 134
-# define BOOST_PP_INC_134 135
-# define BOOST_PP_INC_135 136
-# define BOOST_PP_INC_136 137
-# define BOOST_PP_INC_137 138
-# define BOOST_PP_INC_138 139
-# define BOOST_PP_INC_139 140
-# define BOOST_PP_INC_140 141
-# define BOOST_PP_INC_141 142
-# define BOOST_PP_INC_142 143
-# define BOOST_PP_INC_143 144
-# define BOOST_PP_INC_144 145
-# define BOOST_PP_INC_145 146
-# define BOOST_PP_INC_146 147
-# define BOOST_PP_INC_147 148
-# define BOOST_PP_INC_148 149
-# define BOOST_PP_INC_149 150
-# define BOOST_PP_INC_150 151
-# define BOOST_PP_INC_151 152
-# define BOOST_PP_INC_152 153
-# define BOOST_PP_INC_153 154
-# define BOOST_PP_INC_154 155
-# define BOOST_PP_INC_155 156
-# define BOOST_PP_INC_156 157
-# define BOOST_PP_INC_157 158
-# define BOOST_PP_INC_158 159
-# define BOOST_PP_INC_159 160
-# define BOOST_PP_INC_160 161
-# define BOOST_PP_INC_161 162
-# define BOOST_PP_INC_162 163
-# define BOOST_PP_INC_163 164
-# define BOOST_PP_INC_164 165
-# define BOOST_PP_INC_165 166
-# define BOOST_PP_INC_166 167
-# define BOOST_PP_INC_167 168
-# define BOOST_PP_INC_168 169
-# define BOOST_PP_INC_169 170
-# define BOOST_PP_INC_170 171
-# define BOOST_PP_INC_171 172
-# define BOOST_PP_INC_172 173
-# define BOOST_PP_INC_173 174
-# define BOOST_PP_INC_174 175
-# define BOOST_PP_INC_175 176
-# define BOOST_PP_INC_176 177
-# define BOOST_PP_INC_177 178
-# define BOOST_PP_INC_178 179
-# define BOOST_PP_INC_179 180
-# define BOOST_PP_INC_180 181
-# define BOOST_PP_INC_181 182
-# define BOOST_PP_INC_182 183
-# define BOOST_PP_INC_183 184
-# define BOOST_PP_INC_184 185
-# define BOOST_PP_INC_185 186
-# define BOOST_PP_INC_186 187
-# define BOOST_PP_INC_187 188
-# define BOOST_PP_INC_188 189
-# define BOOST_PP_INC_189 190
-# define BOOST_PP_INC_190 191
-# define BOOST_PP_INC_191 192
-# define BOOST_PP_INC_192 193
-# define BOOST_PP_INC_193 194
-# define BOOST_PP_INC_194 195
-# define BOOST_PP_INC_195 196
-# define BOOST_PP_INC_196 197
-# define BOOST_PP_INC_197 198
-# define BOOST_PP_INC_198 199
-# define BOOST_PP_INC_199 200
-# define BOOST_PP_INC_200 201
-# define BOOST_PP_INC_201 202
-# define BOOST_PP_INC_202 203
-# define BOOST_PP_INC_203 204
-# define BOOST_PP_INC_204 205
-# define BOOST_PP_INC_205 206
-# define BOOST_PP_INC_206 207
-# define BOOST_PP_INC_207 208
-# define BOOST_PP_INC_208 209
-# define BOOST_PP_INC_209 210
-# define BOOST_PP_INC_210 211
-# define BOOST_PP_INC_211 212
-# define BOOST_PP_INC_212 213
-# define BOOST_PP_INC_213 214
-# define BOOST_PP_INC_214 215
-# define BOOST_PP_INC_215 216
-# define BOOST_PP_INC_216 217
-# define BOOST_PP_INC_217 218
-# define BOOST_PP_INC_218 219
-# define BOOST_PP_INC_219 220
-# define BOOST_PP_INC_220 221
-# define BOOST_PP_INC_221 222
-# define BOOST_PP_INC_222 223
-# define BOOST_PP_INC_223 224
-# define BOOST_PP_INC_224 225
-# define BOOST_PP_INC_225 226
-# define BOOST_PP_INC_226 227
-# define BOOST_PP_INC_227 228
-# define BOOST_PP_INC_228 229
-# define BOOST_PP_INC_229 230
-# define BOOST_PP_INC_230 231
-# define BOOST_PP_INC_231 232
-# define BOOST_PP_INC_232 233
-# define BOOST_PP_INC_233 234
-# define BOOST_PP_INC_234 235
-# define BOOST_PP_INC_235 236
-# define BOOST_PP_INC_236 237
-# define BOOST_PP_INC_237 238
-# define BOOST_PP_INC_238 239
-# define BOOST_PP_INC_239 240
-# define BOOST_PP_INC_240 241
-# define BOOST_PP_INC_241 242
-# define BOOST_PP_INC_242 243
-# define BOOST_PP_INC_243 244
-# define BOOST_PP_INC_244 245
-# define BOOST_PP_INC_245 246
-# define BOOST_PP_INC_246 247
-# define BOOST_PP_INC_247 248
-# define BOOST_PP_INC_248 249
-# define BOOST_PP_INC_249 250
-# define BOOST_PP_INC_250 251
-# define BOOST_PP_INC_251 252
-# define BOOST_PP_INC_252 253
-# define BOOST_PP_INC_253 254
-# define BOOST_PP_INC_254 255
-# define BOOST_PP_INC_255 256
-# define BOOST_PP_INC_256 256
-#
-# endif
diff --git a/boost/preprocessor/arithmetic/sub.hpp b/boost/preprocessor/arithmetic/sub.hpp
deleted file mode 100644
index 5262cda..0000000
--- a/boost/preprocessor/arithmetic/sub.hpp
+++ /dev/null
@@ -1,50 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * Distributed under the Boost Software License, Version 1.0. (See
-#  * accompanying file LICENSE_1_0.txt or copy at
-#  * http://www.boost.org/LICENSE_1_0.txt)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_ARITHMETIC_SUB_HPP
-# define BOOST_PREPROCESSOR_ARITHMETIC_SUB_HPP
-#
-# include <boost/preprocessor/arithmetic/dec.hpp>
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/control/while.hpp>
-# include <boost/preprocessor/tuple/elem.hpp>
-#
-# /* BOOST_PP_SUB */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_SUB(x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE(BOOST_PP_SUB_P, BOOST_PP_SUB_O, (x, y)))
-# else
-#    define BOOST_PP_SUB(x, y) BOOST_PP_SUB_I(x, y)
-#    define BOOST_PP_SUB_I(x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE(BOOST_PP_SUB_P, BOOST_PP_SUB_O, (x, y)))
-# endif
-#
-# define BOOST_PP_SUB_P(d, xy) BOOST_PP_TUPLE_ELEM(2, 1, xy)
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#    define BOOST_PP_SUB_O(d, xy) BOOST_PP_SUB_O_I xy
-# else
-#    define BOOST_PP_SUB_O(d, xy) BOOST_PP_SUB_O_I(BOOST_PP_TUPLE_ELEM(2, 0, xy), BOOST_PP_TUPLE_ELEM(2, 1, xy))
-# endif
-#
-# define BOOST_PP_SUB_O_I(x, y) (BOOST_PP_DEC(x), BOOST_PP_DEC(y))
-#
-# /* BOOST_PP_SUB_D */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_SUB_D(d, x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE_ ## d(BOOST_PP_SUB_P, BOOST_PP_SUB_O, (x, y)))
-# else
-#    define BOOST_PP_SUB_D(d, x, y) BOOST_PP_SUB_D_I(d, x, y)
-#    define BOOST_PP_SUB_D_I(d, x, y) BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_WHILE_ ## d(BOOST_PP_SUB_P, BOOST_PP_SUB_O, (x, y)))
-# endif
-#
-# endif
diff --git a/boost/preprocessor/array/data.hpp b/boost/preprocessor/array/data.hpp
deleted file mode 100644
index 10c926a..0000000
--- a/boost/preprocessor/array/data.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_ARRAY_DATA_HPP
-# define BOOST_PREPROCESSOR_ARRAY_DATA_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/tuple/elem.hpp>
-#
-# /* BOOST_PP_ARRAY_DATA */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_ARRAY_DATA(array) BOOST_PP_TUPLE_ELEM(2, 1, array)
-# else
-#    define BOOST_PP_ARRAY_DATA(array) BOOST_PP_ARRAY_DATA_I(array)
-#    define BOOST_PP_ARRAY_DATA_I(array) BOOST_PP_ARRAY_DATA_II array
-#    define BOOST_PP_ARRAY_DATA_II(size, data) data
-# endif
-#
-# endif
diff --git a/boost/preprocessor/array/elem.hpp b/boost/preprocessor/array/elem.hpp
deleted file mode 100644
index 105ba24..0000000
--- a/boost/preprocessor/array/elem.hpp
+++ /dev/null
@@ -1,29 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_ARRAY_ELEM_HPP
-# define BOOST_PREPROCESSOR_ARRAY_ELEM_HPP
-#
-# include <boost/preprocessor/array/data.hpp>
-# include <boost/preprocessor/array/size.hpp>
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/tuple/elem.hpp>
-#
-# /* BOOST_PP_ARRAY_ELEM */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_ARRAY_ELEM(i, array) BOOST_PP_TUPLE_ELEM(BOOST_PP_ARRAY_SIZE(array), i, BOOST_PP_ARRAY_DATA(array))
-# else
-#    define BOOST_PP_ARRAY_ELEM(i, array) BOOST_PP_ARRAY_ELEM_I(i, array)
-#    define BOOST_PP_ARRAY_ELEM_I(i, array) BOOST_PP_TUPLE_ELEM(BOOST_PP_ARRAY_SIZE(array), i, BOOST_PP_ARRAY_DATA(array))
-# endif
-#
-# endif
diff --git a/boost/preprocessor/array/size.hpp b/boost/preprocessor/array/size.hpp
deleted file mode 100644
index 3f370ee..0000000
--- a/boost/preprocessor/array/size.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_ARRAY_SIZE_HPP
-# define BOOST_PREPROCESSOR_ARRAY_SIZE_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/tuple/elem.hpp>
-#
-# /* BOOST_PP_ARRAY_SIZE */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_ARRAY_SIZE(array) BOOST_PP_TUPLE_ELEM(2, 0, array)
-# else
-#    define BOOST_PP_ARRAY_SIZE(array) BOOST_PP_ARRAY_SIZE_I(array)
-#    define BOOST_PP_ARRAY_SIZE_I(array) BOOST_PP_ARRAY_SIZE_II array
-#    define BOOST_PP_ARRAY_SIZE_II(size, data) size
-# endif
-#
-# endif
diff --git a/boost/preprocessor/cat.hpp b/boost/preprocessor/cat.hpp
deleted file mode 100644
index 5e52850..0000000
--- a/boost/preprocessor/cat.hpp
+++ /dev/null
@@ -1,35 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * Distributed under the Boost Software License, Version 1.0. (See
-#  * accompanying file LICENSE_1_0.txt or copy at
-#  * http://www.boost.org/LICENSE_1_0.txt)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_CAT_HPP
-# define BOOST_PREPROCESSOR_CAT_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-#
-# /* BOOST_PP_CAT */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_I(a, b)
-# else
-#    define BOOST_PP_CAT(a, b) BOOST_PP_CAT_OO((a, b))
-#    define BOOST_PP_CAT_OO(par) BOOST_PP_CAT_I ## par
-# endif
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
-#    define BOOST_PP_CAT_I(a, b) a ## b
-# else
-#    define BOOST_PP_CAT_I(a, b) BOOST_PP_CAT_II(~, a ## b)
-#    define BOOST_PP_CAT_II(p, res) res
-# endif
-#
-# endif
diff --git a/boost/preprocessor/comma_if.hpp b/boost/preprocessor/comma_if.hpp
deleted file mode 100644
index 9ceb079..0000000
--- a/boost/preprocessor/comma_if.hpp
+++ /dev/null
@@ -1,17 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_COMMA_IF_HPP
-# define BOOST_PREPROCESSOR_COMMA_IF_HPP
-#
-# include <boost/preprocessor/punctuation/comma_if.hpp>
-#
-# endif
diff --git a/boost/preprocessor/comparison/less.hpp b/boost/preprocessor/comparison/less.hpp
deleted file mode 100644
index d91ea3d..0000000
--- a/boost/preprocessor/comparison/less.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * Distributed under the Boost Software License, Version 1.0. (See
-#  * accompanying file LICENSE_1_0.txt or copy at
-#  * http://www.boost.org/LICENSE_1_0.txt)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_COMPARISON_LESS_HPP
-# define BOOST_PREPROCESSOR_COMPARISON_LESS_HPP
-#
-# include <boost/preprocessor/comparison/less_equal.hpp>
-# include <boost/preprocessor/comparison/not_equal.hpp>
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/control/iif.hpp>
-# include <boost/preprocessor/logical/bitand.hpp>
-# include <boost/preprocessor/tuple/eat.hpp>
-#
-# /* BOOST_PP_LESS */
-#
-# if BOOST_PP_CONFIG_FLAGS() & (BOOST_PP_CONFIG_MWCC() | BOOST_PP_CONFIG_DMC())
-#    define BOOST_PP_LESS(x, y) BOOST_PP_BITAND(BOOST_PP_NOT_EQUAL(x, y), BOOST_PP_LESS_EQUAL(x, y))
-# elif ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_LESS(x, y) BOOST_PP_IIF(BOOST_PP_NOT_EQUAL(x, y), BOOST_PP_LESS_EQUAL, 0 BOOST_PP_TUPLE_EAT_2)(x, y)
-# else
-#    define BOOST_PP_LESS(x, y) BOOST_PP_LESS_I(x, y)
-#    define BOOST_PP_LESS_I(x, y) BOOST_PP_IIF(BOOST_PP_NOT_EQUAL(x, y), BOOST_PP_LESS_EQUAL, 0 BOOST_PP_TUPLE_EAT_2)(x, y)
-# endif
-#
-# /* BOOST_PP_LESS_D */
-#
-# if BOOST_PP_CONFIG_FLAGS() & (BOOST_PP_CONFIG_MWCC() | BOOST_PP_CONFIG_DMC())
-#    define BOOST_PP_LESS_D(d, x, y) BOOST_PP_BITAND(BOOST_PP_NOT_EQUAL(x, y), BOOST_PP_LESS_EQUAL_D(d, x, y))
-# elif ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_LESS_D(d, x, y) BOOST_PP_IIF(BOOST_PP_NOT_EQUAL(x, y), BOOST_PP_LESS_EQUAL_D, 0 BOOST_PP_TUPLE_EAT_3)(d, x, y)
-# else
-#    define BOOST_PP_LESS_D(d, x, y) BOOST_PP_LESS_D_I(d, x, y)
-#    define BOOST_PP_LESS_D_I(d, x, y) BOOST_PP_IIF(BOOST_PP_NOT_EQUAL(x, y), BOOST_PP_LESS_EQUAL_D, 0 BOOST_PP_TUPLE_EAT_3)(d, x, y)
-# endif
-#
-# endif
diff --git a/boost/preprocessor/comparison/less_equal.hpp b/boost/preprocessor/comparison/less_equal.hpp
deleted file mode 100644
index 1302d54..0000000
--- a/boost/preprocessor/comparison/less_equal.hpp
+++ /dev/null
@@ -1,39 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * Distributed under the Boost Software License, Version 1.0. (See
-#  * accompanying file LICENSE_1_0.txt or copy at
-#  * http://www.boost.org/LICENSE_1_0.txt)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_COMPARISON_LESS_EQUAL_HPP
-# define BOOST_PREPROCESSOR_COMPARISON_LESS_EQUAL_HPP
-#
-# include <boost/preprocessor/arithmetic/sub.hpp>
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/logical/not.hpp>
-#
-# /* BOOST_PP_LESS_EQUAL */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_LESS_EQUAL(x, y) BOOST_PP_NOT(BOOST_PP_SUB(x, y))
-# else
-#    define BOOST_PP_LESS_EQUAL(x, y) BOOST_PP_LESS_EQUAL_I(x, y)
-#    define BOOST_PP_LESS_EQUAL_I(x, y) BOOST_PP_NOT(BOOST_PP_SUB(x, y))
-# endif
-#
-# /* BOOST_PP_LESS_EQUAL_D */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_LESS_EQUAL_D(d, x, y) BOOST_PP_NOT(BOOST_PP_SUB_D(d, x, y))
-# else
-#    define BOOST_PP_LESS_EQUAL_D(d, x, y) BOOST_PP_LESS_EQUAL_D_I(d, x, y)
-#    define BOOST_PP_LESS_EQUAL_D_I(d, x, y) BOOST_PP_NOT(BOOST_PP_SUB_D(d, x, y))
-# endif
-#
-# endif
diff --git a/boost/preprocessor/comparison/not_equal.hpp b/boost/preprocessor/comparison/not_equal.hpp
deleted file mode 100644
index b4b0eae..0000000
--- a/boost/preprocessor/comparison/not_equal.hpp
+++ /dev/null
@@ -1,814 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * Distributed under the Boost Software License, Version 1.0. (See
-#  * accompanying file LICENSE_1_0.txt or copy at
-#  * http://www.boost.org/LICENSE_1_0.txt)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_COMPARISON_NOT_EQUAL_HPP
-# define BOOST_PREPROCESSOR_COMPARISON_NOT_EQUAL_HPP
-#
-# include <boost/preprocessor/cat.hpp>
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/control/iif.hpp>
-#
-# /* BOOST_PP_NOT_EQUAL */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#    define BOOST_PP_NOT_EQUAL(x, y) BOOST_PP_NOT_EQUAL_I(x, y)
-# else
-#    define BOOST_PP_NOT_EQUAL(x, y) BOOST_PP_NOT_EQUAL_OO((x, y))
-#    define BOOST_PP_NOT_EQUAL_OO(par) BOOST_PP_NOT_EQUAL_I ## par
-# endif
-#
-# define BOOST_PP_NOT_EQUAL_I(x, y) BOOST_PP_CAT(BOOST_PP_NOT_EQUAL_CHECK_, BOOST_PP_NOT_EQUAL_ ## x(0, BOOST_PP_NOT_EQUAL_ ## y))
-#
-# /* BOOST_PP_NOT_EQUAL_D */
-#
-# define BOOST_PP_NOT_EQUAL_D(d, x, y) BOOST_PP_NOT_EQUAL(x, y)
-#
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NIL 1
-#
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_0(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_1(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_2(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_3(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_4(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_5(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_6(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_7(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_8(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_9(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_10(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_11(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_12(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_13(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_14(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_15(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_16(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_17(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_18(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_19(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_20(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_21(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_22(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_23(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_24(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_25(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_26(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_27(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_28(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_29(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_30(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_31(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_32(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_33(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_34(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_35(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_36(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_37(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_38(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_39(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_40(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_41(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_42(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_43(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_44(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_45(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_46(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_47(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_48(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_49(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_50(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_51(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_52(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_53(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_54(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_55(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_56(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_57(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_58(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_59(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_60(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_61(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_62(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_63(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_64(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_65(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_66(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_67(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_68(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_69(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_70(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_71(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_72(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_73(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_74(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_75(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_76(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_77(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_78(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_79(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_80(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_81(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_82(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_83(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_84(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_85(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_86(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_87(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_88(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_89(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_90(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_91(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_92(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_93(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_94(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_95(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_96(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_97(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_98(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_99(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_100(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_101(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_102(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_103(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_104(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_105(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_106(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_107(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_108(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_109(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_110(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_111(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_112(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_113(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_114(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_115(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_116(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_117(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_118(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_119(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_120(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_121(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_122(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_123(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_124(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_125(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_126(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_127(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_128(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_129(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_130(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_131(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_132(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_133(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_134(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_135(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_136(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_137(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_138(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_139(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_140(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_141(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_142(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_143(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_144(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_145(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_146(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_147(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_148(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_149(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_150(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_151(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_152(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_153(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_154(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_155(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_156(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_157(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_158(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_159(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_160(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_161(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_162(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_163(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_164(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_165(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_166(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_167(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_168(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_169(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_170(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_171(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_172(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_173(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_174(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_175(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_176(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_177(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_178(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_179(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_180(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_181(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_182(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_183(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_184(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_185(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_186(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_187(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_188(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_189(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_190(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_191(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_192(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_193(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_194(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_195(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_196(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_197(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_198(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_199(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_200(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_201(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_202(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_203(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_204(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_205(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_206(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_207(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_208(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_209(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_210(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_211(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_212(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_213(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_214(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_215(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_216(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_217(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_218(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_219(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_220(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_221(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_222(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_223(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_224(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_225(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_226(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_227(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_228(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_229(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_230(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_231(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_232(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_233(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_234(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_235(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_236(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_237(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_238(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_239(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_240(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_241(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_242(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_243(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_244(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_245(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_246(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_247(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_248(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_249(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_250(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_251(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_252(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_253(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_254(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_255(c, y) 0
-# define BOOST_PP_NOT_EQUAL_CHECK_BOOST_PP_NOT_EQUAL_256(c, y) 0
-#
-#if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC()
-#    define BOOST_PP_NOT_EQUAL_0(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_1(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_2(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_3(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_4(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_5(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_6(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_7(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_8(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_9(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_10(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_11(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_12(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_13(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_14(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_15(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_16(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_17(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_18(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_19(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_20(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_21(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_22(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_23(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_24(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_25(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_26(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_27(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_28(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_29(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_30(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_31(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_32(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_33(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_34(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_35(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_36(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_37(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_38(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_39(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_40(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_41(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_42(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_43(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_44(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_45(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_46(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_47(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_48(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_49(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_50(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_51(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_52(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_53(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_54(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_55(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_56(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_57(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_58(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_59(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_60(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_61(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_62(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_63(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_64(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_65(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_66(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_67(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_68(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_69(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_70(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_71(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_72(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_73(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_74(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_75(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_76(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_77(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_78(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_79(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_80(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_81(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_82(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_83(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_84(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_85(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_86(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_87(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_88(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_89(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_90(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_91(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_92(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_93(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_94(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_95(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_96(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_97(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_98(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_99(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_100(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_101(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_102(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_103(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_104(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_105(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_106(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_107(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_108(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_109(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_110(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_111(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_112(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_113(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_114(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_115(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_116(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_117(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_118(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_119(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_120(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_121(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_122(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_123(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_124(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_125(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_126(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_127(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_128(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_129(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_130(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_131(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_132(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_133(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_134(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_135(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_136(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_137(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_138(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_139(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_140(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_141(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_142(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_143(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_144(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_145(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_146(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_147(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_148(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_149(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_150(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_151(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_152(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_153(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_154(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_155(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_156(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_157(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_158(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_159(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_160(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_161(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_162(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_163(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_164(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_165(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_166(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_167(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_168(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_169(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_170(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_171(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_172(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_173(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_174(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_175(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_176(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_177(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_178(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_179(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_180(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_181(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_182(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_183(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_184(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_185(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_186(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_187(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_188(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_189(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_190(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_191(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_192(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_193(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_194(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_195(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_196(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_197(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_198(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_199(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_200(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_201(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_202(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_203(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_204(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_205(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_206(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_207(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_208(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_209(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_210(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_211(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_212(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_213(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_214(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_215(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_216(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_217(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_218(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_219(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_220(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_221(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_222(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_223(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_224(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_225(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_226(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_227(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_228(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_229(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_230(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_231(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_232(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_233(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_234(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_235(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_236(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_237(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_238(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_239(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_240(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_241(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_242(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_243(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_244(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_245(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_246(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_247(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_248(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_249(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_250(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_251(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_252(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_253(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_254(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_255(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_256(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y(1, BOOST_PP_NIL))
-# else
-#    define BOOST_PP_NOT_EQUAL_0(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_1(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_2(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_3(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_4(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_5(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_6(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_7(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_8(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_9(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_10(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_11(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_12(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_13(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_14(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_15(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_16(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_17(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_18(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_19(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_20(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_21(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_22(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_23(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_24(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_25(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_26(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_27(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_28(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_29(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_30(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_31(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_32(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_33(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_34(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_35(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_36(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_37(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_38(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_39(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_40(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_41(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_42(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_43(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_44(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_45(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_46(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_47(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_48(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_49(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_50(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_51(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_52(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_53(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_54(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_55(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_56(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_57(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_58(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_59(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_60(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_61(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_62(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_63(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_64(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_65(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_66(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_67(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_68(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_69(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_70(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_71(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_72(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_73(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_74(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_75(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_76(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_77(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_78(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_79(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_80(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_81(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_82(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_83(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_84(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_85(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_86(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_87(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_88(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_89(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_90(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_91(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_92(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_93(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_94(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_95(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_96(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_97(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_98(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_99(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_100(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_101(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_102(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_103(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_104(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_105(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_106(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_107(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_108(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_109(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_110(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_111(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_112(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_113(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_114(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_115(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_116(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_117(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_118(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_119(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_120(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_121(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_122(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_123(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_124(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_125(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_126(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_127(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_128(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_129(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_130(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_131(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_132(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_133(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_134(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_135(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_136(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_137(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_138(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_139(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_140(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_141(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_142(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_143(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_144(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_145(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_146(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_147(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_148(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_149(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_150(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_151(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_152(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_153(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_154(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_155(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_156(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_157(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_158(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_159(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_160(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_161(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_162(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_163(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_164(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_165(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_166(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_167(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_168(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_169(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_170(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_171(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_172(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_173(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_174(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_175(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_176(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_177(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_178(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_179(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_180(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_181(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_182(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_183(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_184(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_185(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_186(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_187(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_188(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_189(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_190(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_191(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_192(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_193(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_194(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_195(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_196(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_197(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_198(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_199(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_200(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_201(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_202(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_203(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_204(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_205(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_206(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_207(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_208(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_209(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_210(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_211(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_212(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_213(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_214(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_215(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_216(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_217(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_218(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_219(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_220(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_221(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_222(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_223(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_224(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_225(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_226(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_227(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_228(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_229(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_230(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_231(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_232(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_233(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_234(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_235(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_236(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_237(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_238(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_239(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_240(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_241(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_242(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_243(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_244(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_245(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_246(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_247(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_248(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_249(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_250(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_251(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_252(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_253(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_254(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_255(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-#    define BOOST_PP_NOT_EQUAL_256(c, y) BOOST_PP_IIF(c, BOOST_PP_NIL, y##(1, BOOST_PP_NIL))
-# endif
-#
-# endif
diff --git a/boost/preprocessor/config/config.hpp b/boost/preprocessor/config/config.hpp
deleted file mode 100644
index d02eb58..0000000
--- a/boost/preprocessor/config/config.hpp
+++ /dev/null
@@ -1,105 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002-2011.                             *
-#  *     (C) Copyright Edward Diener 2011.                                    *
-#  *     Distributed under the Boost Software License, Version 1.0. (See      *
-#  *     accompanying file LICENSE_1_0.txt or copy at                         *
-#  *     http://www.boost.org/LICENSE_1_0.txt)                                *
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_CONFIG_CONFIG_HPP
-# define BOOST_PREPROCESSOR_CONFIG_CONFIG_HPP
-#
-# /* BOOST_PP_CONFIG_FLAGS */
-#
-# define BOOST_PP_CONFIG_STRICT() 0x0001
-# define BOOST_PP_CONFIG_IDEAL() 0x0002
-#
-# define BOOST_PP_CONFIG_MSVC() 0x0004
-# define BOOST_PP_CONFIG_MWCC() 0x0008
-# define BOOST_PP_CONFIG_BCC() 0x0010
-# define BOOST_PP_CONFIG_EDG() 0x0020
-# define BOOST_PP_CONFIG_DMC() 0x0040
-#
-# ifndef BOOST_PP_CONFIG_FLAGS
-#    if defined(__GCCXML__)
-#        define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_STRICT())
-#    elif defined(__WAVE__)
-#        define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_STRICT())
-#    elif defined(__MWERKS__) && __MWERKS__ >= 0x3200
-#        define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_STRICT())
-#    elif defined(__EDG__) || defined(__EDG_VERSION__)
-#        if defined(_MSC_VER) && __EDG_VERSION__ >= 308
-#            define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_MSVC())
-#        else
-#            define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_EDG() | BOOST_PP_CONFIG_STRICT())
-#        endif
-#    elif defined(__MWERKS__)
-#        define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_MWCC())
-#    elif defined(__DMC__)
-#        define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_DMC())
-#    elif defined(__BORLANDC__) && __BORLANDC__ >= 0x581
-#        define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_STRICT())
-#    elif defined(__BORLANDC__) || defined(__IBMC__) || defined(__IBMCPP__) || defined(__SUNPRO_CC)
-#        define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_BCC())
-#    elif defined(_MSC_VER)
-#        define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_MSVC())
-#    else
-#        define BOOST_PP_CONFIG_FLAGS() (BOOST_PP_CONFIG_STRICT())
-#    endif
-# endif
-#
-# /* BOOST_PP_CONFIG_EXTENDED_LINE_INFO */
-#
-# ifndef BOOST_PP_CONFIG_EXTENDED_LINE_INFO
-#    define BOOST_PP_CONFIG_EXTENDED_LINE_INFO 0
-# endif
-#
-# /* BOOST_PP_CONFIG_ERRORS */
-#
-# ifndef BOOST_PP_CONFIG_ERRORS
-#    ifdef NDEBUG
-#        define BOOST_PP_CONFIG_ERRORS 0
-#    else
-#        define BOOST_PP_CONFIG_ERRORS 1
-#    endif
-# endif
-#
-# /* BOOST_PP_VARIADICS */
-#
-# if !defined BOOST_PP_VARIADICS
-#    /* variadic support explicitly disabled for all untested compilers */
-#    if defined __GCCXML__ || defined __CUDACC__ || defined __PATHSCALE__ || defined __clang__ || defined __DMC__ || defined __CODEGEARC__ || defined __BORLANDC__ || defined __MWERKS__ || defined __SUNPRO_CC || defined __HP_aCC && !defined __EDG__ || defined __MRC__ || defined __SC__ || defined __IBMCPP__ || defined __PGI
-#        define BOOST_PP_VARIADICS 0
-#    /* VC++ (C/C++) */
-#    elif defined _MSC_VER && _MSC_VER >= 1400 && !defined __EDG__
-#        if _MSC_VER >= 1400
-#            define BOOST_PP_VARIADICS 1
-#            define BOOST_PP_VARIADICS_MSVC 1
-#        else
-#            define BOOST_PP_VARIADICS 0
-#        endif
-#    /* Wave (C/C++), GCC (C++) */
-#    elif defined __WAVE__ && __WAVE_HAS_VARIADICS__ || defined __GNUC__ && __GXX_EXPERIMENTAL_CXX0X__
-#        define BOOST_PP_VARIADICS 1
-#    /* EDG-based (C/C++), GCC (C), and unknown (C/C++) */
-#    elif !defined __cplusplus && __STDC_VERSION__ >= 199901L || __cplusplus >= 201103L
-#        define BOOST_PP_VARIADICS 1
-#    else
-#        define BOOST_PP_VARIADICS 0
-#    endif
-# elif !BOOST_PP_VARIADICS + 1 < 2
-#    undef BOOST_PP_VARIADICS
-#    define BOOST_PP_VARIADICS 1
-#    if defined _MSC_VER && _MSC_VER >= 1400 && !(defined __EDG__ || defined __GCCXML__ || defined __CUDACC__ || defined __PATHSCALE__ || defined __clang__ || defined __DMC__ || defined __CODEGEARC__ || defined __BORLANDC__ || defined __MWERKS__ || defined __SUNPRO_CC || defined __HP_aCC || defined __MRC__ || defined __SC__ || defined __IBMCPP__ || defined __PGI)
-#        define BOOST_PP_VARIADICS_MSVC 1
-#    endif
-# else
-#    undef BOOST_PP_VARIADICS
-#    define BOOST_PP_VARIADICS 0
-# endif
-#
-# endif
diff --git a/boost/preprocessor/control/detail/dmc/while.hpp b/boost/preprocessor/control/detail/dmc/while.hpp
deleted file mode 100644
index 95c3135..0000000
--- a/boost/preprocessor/control/detail/dmc/while.hpp
+++ /dev/null
@@ -1,536 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * Distributed under the Boost Software License, Version 1.0. (See
-#  * accompanying file LICENSE_1_0.txt or copy at
-#  * http://www.boost.org/LICENSE_1_0.txt)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_CONTROL_DETAIL_WHILE_HPP
-# define BOOST_PREPROCESSOR_CONTROL_DETAIL_WHILE_HPP
-#
-# include <boost/preprocessor/control/iif.hpp>
-# include <boost/preprocessor/logical/bool.hpp>
-# include <boost/preprocessor/tuple/eat.hpp>
-#
-# define BOOST_PP_WHILE_1(p, o, s) BOOST_PP_WHILE_1_C(BOOST_PP_BOOL(p##(2, s)), p, o, s)
-# define BOOST_PP_WHILE_2(p, o, s) BOOST_PP_WHILE_2_C(BOOST_PP_BOOL(p##(3, s)), p, o, s)
-# define BOOST_PP_WHILE_3(p, o, s) BOOST_PP_WHILE_3_C(BOOST_PP_BOOL(p##(4, s)), p, o, s)
-# define BOOST_PP_WHILE_4(p, o, s) BOOST_PP_WHILE_4_C(BOOST_PP_BOOL(p##(5, s)), p, o, s)
-# define BOOST_PP_WHILE_5(p, o, s) BOOST_PP_WHILE_5_C(BOOST_PP_BOOL(p##(6, s)), p, o, s)
-# define BOOST_PP_WHILE_6(p, o, s) BOOST_PP_WHILE_6_C(BOOST_PP_BOOL(p##(7, s)), p, o, s)
-# define BOOST_PP_WHILE_7(p, o, s) BOOST_PP_WHILE_7_C(BOOST_PP_BOOL(p##(8, s)), p, o, s)
-# define BOOST_PP_WHILE_8(p, o, s) BOOST_PP_WHILE_8_C(BOOST_PP_BOOL(p##(9, s)), p, o, s)
-# define BOOST_PP_WHILE_9(p, o, s) BOOST_PP_WHILE_9_C(BOOST_PP_BOOL(p##(10, s)), p, o, s)
-# define BOOST_PP_WHILE_10(p, o, s) BOOST_PP_WHILE_10_C(BOOST_PP_BOOL(p##(11, s)), p, o, s)
-# define BOOST_PP_WHILE_11(p, o, s) BOOST_PP_WHILE_11_C(BOOST_PP_BOOL(p##(12, s)), p, o, s)
-# define BOOST_PP_WHILE_12(p, o, s) BOOST_PP_WHILE_12_C(BOOST_PP_BOOL(p##(13, s)), p, o, s)
-# define BOOST_PP_WHILE_13(p, o, s) BOOST_PP_WHILE_13_C(BOOST_PP_BOOL(p##(14, s)), p, o, s)
-# define BOOST_PP_WHILE_14(p, o, s) BOOST_PP_WHILE_14_C(BOOST_PP_BOOL(p##(15, s)), p, o, s)
-# define BOOST_PP_WHILE_15(p, o, s) BOOST_PP_WHILE_15_C(BOOST_PP_BOOL(p##(16, s)), p, o, s)
-# define BOOST_PP_WHILE_16(p, o, s) BOOST_PP_WHILE_16_C(BOOST_PP_BOOL(p##(17, s)), p, o, s)
-# define BOOST_PP_WHILE_17(p, o, s) BOOST_PP_WHILE_17_C(BOOST_PP_BOOL(p##(18, s)), p, o, s)
-# define BOOST_PP_WHILE_18(p, o, s) BOOST_PP_WHILE_18_C(BOOST_PP_BOOL(p##(19, s)), p, o, s)
-# define BOOST_PP_WHILE_19(p, o, s) BOOST_PP_WHILE_19_C(BOOST_PP_BOOL(p##(20, s)), p, o, s)
-# define BOOST_PP_WHILE_20(p, o, s) BOOST_PP_WHILE_20_C(BOOST_PP_BOOL(p##(21, s)), p, o, s)
-# define BOOST_PP_WHILE_21(p, o, s) BOOST_PP_WHILE_21_C(BOOST_PP_BOOL(p##(22, s)), p, o, s)
-# define BOOST_PP_WHILE_22(p, o, s) BOOST_PP_WHILE_22_C(BOOST_PP_BOOL(p##(23, s)), p, o, s)
-# define BOOST_PP_WHILE_23(p, o, s) BOOST_PP_WHILE_23_C(BOOST_PP_BOOL(p##(24, s)), p, o, s)
-# define BOOST_PP_WHILE_24(p, o, s) BOOST_PP_WHILE_24_C(BOOST_PP_BOOL(p##(25, s)), p, o, s)
-# define BOOST_PP_WHILE_25(p, o, s) BOOST_PP_WHILE_25_C(BOOST_PP_BOOL(p##(26, s)), p, o, s)
-# define BOOST_PP_WHILE_26(p, o, s) BOOST_PP_WHILE_26_C(BOOST_PP_BOOL(p##(27, s)), p, o, s)
-# define BOOST_PP_WHILE_27(p, o, s) BOOST_PP_WHILE_27_C(BOOST_PP_BOOL(p##(28, s)), p, o, s)
-# define BOOST_PP_WHILE_28(p, o, s) BOOST_PP_WHILE_28_C(BOOST_PP_BOOL(p##(29, s)), p, o, s)
-# define BOOST_PP_WHILE_29(p, o, s) BOOST_PP_WHILE_29_C(BOOST_PP_BOOL(p##(30, s)), p, o, s)
-# define BOOST_PP_WHILE_30(p, o, s) BOOST_PP_WHILE_30_C(BOOST_PP_BOOL(p##(31, s)), p, o, s)
-# define BOOST_PP_WHILE_31(p, o, s) BOOST_PP_WHILE_31_C(BOOST_PP_BOOL(p##(32, s)), p, o, s)
-# define BOOST_PP_WHILE_32(p, o, s) BOOST_PP_WHILE_32_C(BOOST_PP_BOOL(p##(33, s)), p, o, s)
-# define BOOST_PP_WHILE_33(p, o, s) BOOST_PP_WHILE_33_C(BOOST_PP_BOOL(p##(34, s)), p, o, s)
-# define BOOST_PP_WHILE_34(p, o, s) BOOST_PP_WHILE_34_C(BOOST_PP_BOOL(p##(35, s)), p, o, s)
-# define BOOST_PP_WHILE_35(p, o, s) BOOST_PP_WHILE_35_C(BOOST_PP_BOOL(p##(36, s)), p, o, s)
-# define BOOST_PP_WHILE_36(p, o, s) BOOST_PP_WHILE_36_C(BOOST_PP_BOOL(p##(37, s)), p, o, s)
-# define BOOST_PP_WHILE_37(p, o, s) BOOST_PP_WHILE_37_C(BOOST_PP_BOOL(p##(38, s)), p, o, s)
-# define BOOST_PP_WHILE_38(p, o, s) BOOST_PP_WHILE_38_C(BOOST_PP_BOOL(p##(39, s)), p, o, s)
-# define BOOST_PP_WHILE_39(p, o, s) BOOST_PP_WHILE_39_C(BOOST_PP_BOOL(p##(40, s)), p, o, s)
-# define BOOST_PP_WHILE_40(p, o, s) BOOST_PP_WHILE_40_C(BOOST_PP_BOOL(p##(41, s)), p, o, s)
-# define BOOST_PP_WHILE_41(p, o, s) BOOST_PP_WHILE_41_C(BOOST_PP_BOOL(p##(42, s)), p, o, s)
-# define BOOST_PP_WHILE_42(p, o, s) BOOST_PP_WHILE_42_C(BOOST_PP_BOOL(p##(43, s)), p, o, s)
-# define BOOST_PP_WHILE_43(p, o, s) BOOST_PP_WHILE_43_C(BOOST_PP_BOOL(p##(44, s)), p, o, s)
-# define BOOST_PP_WHILE_44(p, o, s) BOOST_PP_WHILE_44_C(BOOST_PP_BOOL(p##(45, s)), p, o, s)
-# define BOOST_PP_WHILE_45(p, o, s) BOOST_PP_WHILE_45_C(BOOST_PP_BOOL(p##(46, s)), p, o, s)
-# define BOOST_PP_WHILE_46(p, o, s) BOOST_PP_WHILE_46_C(BOOST_PP_BOOL(p##(47, s)), p, o, s)
-# define BOOST_PP_WHILE_47(p, o, s) BOOST_PP_WHILE_47_C(BOOST_PP_BOOL(p##(48, s)), p, o, s)
-# define BOOST_PP_WHILE_48(p, o, s) BOOST_PP_WHILE_48_C(BOOST_PP_BOOL(p##(49, s)), p, o, s)
-# define BOOST_PP_WHILE_49(p, o, s) BOOST_PP_WHILE_49_C(BOOST_PP_BOOL(p##(50, s)), p, o, s)
-# define BOOST_PP_WHILE_50(p, o, s) BOOST_PP_WHILE_50_C(BOOST_PP_BOOL(p##(51, s)), p, o, s)
-# define BOOST_PP_WHILE_51(p, o, s) BOOST_PP_WHILE_51_C(BOOST_PP_BOOL(p##(52, s)), p, o, s)
-# define BOOST_PP_WHILE_52(p, o, s) BOOST_PP_WHILE_52_C(BOOST_PP_BOOL(p##(53, s)), p, o, s)
-# define BOOST_PP_WHILE_53(p, o, s) BOOST_PP_WHILE_53_C(BOOST_PP_BOOL(p##(54, s)), p, o, s)
-# define BOOST_PP_WHILE_54(p, o, s) BOOST_PP_WHILE_54_C(BOOST_PP_BOOL(p##(55, s)), p, o, s)
-# define BOOST_PP_WHILE_55(p, o, s) BOOST_PP_WHILE_55_C(BOOST_PP_BOOL(p##(56, s)), p, o, s)
-# define BOOST_PP_WHILE_56(p, o, s) BOOST_PP_WHILE_56_C(BOOST_PP_BOOL(p##(57, s)), p, o, s)
-# define BOOST_PP_WHILE_57(p, o, s) BOOST_PP_WHILE_57_C(BOOST_PP_BOOL(p##(58, s)), p, o, s)
-# define BOOST_PP_WHILE_58(p, o, s) BOOST_PP_WHILE_58_C(BOOST_PP_BOOL(p##(59, s)), p, o, s)
-# define BOOST_PP_WHILE_59(p, o, s) BOOST_PP_WHILE_59_C(BOOST_PP_BOOL(p##(60, s)), p, o, s)
-# define BOOST_PP_WHILE_60(p, o, s) BOOST_PP_WHILE_60_C(BOOST_PP_BOOL(p##(61, s)), p, o, s)
-# define BOOST_PP_WHILE_61(p, o, s) BOOST_PP_WHILE_61_C(BOOST_PP_BOOL(p##(62, s)), p, o, s)
-# define BOOST_PP_WHILE_62(p, o, s) BOOST_PP_WHILE_62_C(BOOST_PP_BOOL(p##(63, s)), p, o, s)
-# define BOOST_PP_WHILE_63(p, o, s) BOOST_PP_WHILE_63_C(BOOST_PP_BOOL(p##(64, s)), p, o, s)
-# define BOOST_PP_WHILE_64(p, o, s) BOOST_PP_WHILE_64_C(BOOST_PP_BOOL(p##(65, s)), p, o, s)
-# define BOOST_PP_WHILE_65(p, o, s) BOOST_PP_WHILE_65_C(BOOST_PP_BOOL(p##(66, s)), p, o, s)
-# define BOOST_PP_WHILE_66(p, o, s) BOOST_PP_WHILE_66_C(BOOST_PP_BOOL(p##(67, s)), p, o, s)
-# define BOOST_PP_WHILE_67(p, o, s) BOOST_PP_WHILE_67_C(BOOST_PP_BOOL(p##(68, s)), p, o, s)
-# define BOOST_PP_WHILE_68(p, o, s) BOOST_PP_WHILE_68_C(BOOST_PP_BOOL(p##(69, s)), p, o, s)
-# define BOOST_PP_WHILE_69(p, o, s) BOOST_PP_WHILE_69_C(BOOST_PP_BOOL(p##(70, s)), p, o, s)
-# define BOOST_PP_WHILE_70(p, o, s) BOOST_PP_WHILE_70_C(BOOST_PP_BOOL(p##(71, s)), p, o, s)
-# define BOOST_PP_WHILE_71(p, o, s) BOOST_PP_WHILE_71_C(BOOST_PP_BOOL(p##(72, s)), p, o, s)
-# define BOOST_PP_WHILE_72(p, o, s) BOOST_PP_WHILE_72_C(BOOST_PP_BOOL(p##(73, s)), p, o, s)
-# define BOOST_PP_WHILE_73(p, o, s) BOOST_PP_WHILE_73_C(BOOST_PP_BOOL(p##(74, s)), p, o, s)
-# define BOOST_PP_WHILE_74(p, o, s) BOOST_PP_WHILE_74_C(BOOST_PP_BOOL(p##(75, s)), p, o, s)
-# define BOOST_PP_WHILE_75(p, o, s) BOOST_PP_WHILE_75_C(BOOST_PP_BOOL(p##(76, s)), p, o, s)
-# define BOOST_PP_WHILE_76(p, o, s) BOOST_PP_WHILE_76_C(BOOST_PP_BOOL(p##(77, s)), p, o, s)
-# define BOOST_PP_WHILE_77(p, o, s) BOOST_PP_WHILE_77_C(BOOST_PP_BOOL(p##(78, s)), p, o, s)
-# define BOOST_PP_WHILE_78(p, o, s) BOOST_PP_WHILE_78_C(BOOST_PP_BOOL(p##(79, s)), p, o, s)
-# define BOOST_PP_WHILE_79(p, o, s) BOOST_PP_WHILE_79_C(BOOST_PP_BOOL(p##(80, s)), p, o, s)
-# define BOOST_PP_WHILE_80(p, o, s) BOOST_PP_WHILE_80_C(BOOST_PP_BOOL(p##(81, s)), p, o, s)
-# define BOOST_PP_WHILE_81(p, o, s) BOOST_PP_WHILE_81_C(BOOST_PP_BOOL(p##(82, s)), p, o, s)
-# define BOOST_PP_WHILE_82(p, o, s) BOOST_PP_WHILE_82_C(BOOST_PP_BOOL(p##(83, s)), p, o, s)
-# define BOOST_PP_WHILE_83(p, o, s) BOOST_PP_WHILE_83_C(BOOST_PP_BOOL(p##(84, s)), p, o, s)
-# define BOOST_PP_WHILE_84(p, o, s) BOOST_PP_WHILE_84_C(BOOST_PP_BOOL(p##(85, s)), p, o, s)
-# define BOOST_PP_WHILE_85(p, o, s) BOOST_PP_WHILE_85_C(BOOST_PP_BOOL(p##(86, s)), p, o, s)
-# define BOOST_PP_WHILE_86(p, o, s) BOOST_PP_WHILE_86_C(BOOST_PP_BOOL(p##(87, s)), p, o, s)
-# define BOOST_PP_WHILE_87(p, o, s) BOOST_PP_WHILE_87_C(BOOST_PP_BOOL(p##(88, s)), p, o, s)
-# define BOOST_PP_WHILE_88(p, o, s) BOOST_PP_WHILE_88_C(BOOST_PP_BOOL(p##(89, s)), p, o, s)
-# define BOOST_PP_WHILE_89(p, o, s) BOOST_PP_WHILE_89_C(BOOST_PP_BOOL(p##(90, s)), p, o, s)
-# define BOOST_PP_WHILE_90(p, o, s) BOOST_PP_WHILE_90_C(BOOST_PP_BOOL(p##(91, s)), p, o, s)
-# define BOOST_PP_WHILE_91(p, o, s) BOOST_PP_WHILE_91_C(BOOST_PP_BOOL(p##(92, s)), p, o, s)
-# define BOOST_PP_WHILE_92(p, o, s) BOOST_PP_WHILE_92_C(BOOST_PP_BOOL(p##(93, s)), p, o, s)
-# define BOOST_PP_WHILE_93(p, o, s) BOOST_PP_WHILE_93_C(BOOST_PP_BOOL(p##(94, s)), p, o, s)
-# define BOOST_PP_WHILE_94(p, o, s) BOOST_PP_WHILE_94_C(BOOST_PP_BOOL(p##(95, s)), p, o, s)
-# define BOOST_PP_WHILE_95(p, o, s) BOOST_PP_WHILE_95_C(BOOST_PP_BOOL(p##(96, s)), p, o, s)
-# define BOOST_PP_WHILE_96(p, o, s) BOOST_PP_WHILE_96_C(BOOST_PP_BOOL(p##(97, s)), p, o, s)
-# define BOOST_PP_WHILE_97(p, o, s) BOOST_PP_WHILE_97_C(BOOST_PP_BOOL(p##(98, s)), p, o, s)
-# define BOOST_PP_WHILE_98(p, o, s) BOOST_PP_WHILE_98_C(BOOST_PP_BOOL(p##(99, s)), p, o, s)
-# define BOOST_PP_WHILE_99(p, o, s) BOOST_PP_WHILE_99_C(BOOST_PP_BOOL(p##(100, s)), p, o, s)
-# define BOOST_PP_WHILE_100(p, o, s) BOOST_PP_WHILE_100_C(BOOST_PP_BOOL(p##(101, s)), p, o, s)
-# define BOOST_PP_WHILE_101(p, o, s) BOOST_PP_WHILE_101_C(BOOST_PP_BOOL(p##(102, s)), p, o, s)
-# define BOOST_PP_WHILE_102(p, o, s) BOOST_PP_WHILE_102_C(BOOST_PP_BOOL(p##(103, s)), p, o, s)
-# define BOOST_PP_WHILE_103(p, o, s) BOOST_PP_WHILE_103_C(BOOST_PP_BOOL(p##(104, s)), p, o, s)
-# define BOOST_PP_WHILE_104(p, o, s) BOOST_PP_WHILE_104_C(BOOST_PP_BOOL(p##(105, s)), p, o, s)
-# define BOOST_PP_WHILE_105(p, o, s) BOOST_PP_WHILE_105_C(BOOST_PP_BOOL(p##(106, s)), p, o, s)
-# define BOOST_PP_WHILE_106(p, o, s) BOOST_PP_WHILE_106_C(BOOST_PP_BOOL(p##(107, s)), p, o, s)
-# define BOOST_PP_WHILE_107(p, o, s) BOOST_PP_WHILE_107_C(BOOST_PP_BOOL(p##(108, s)), p, o, s)
-# define BOOST_PP_WHILE_108(p, o, s) BOOST_PP_WHILE_108_C(BOOST_PP_BOOL(p##(109, s)), p, o, s)
-# define BOOST_PP_WHILE_109(p, o, s) BOOST_PP_WHILE_109_C(BOOST_PP_BOOL(p##(110, s)), p, o, s)
-# define BOOST_PP_WHILE_110(p, o, s) BOOST_PP_WHILE_110_C(BOOST_PP_BOOL(p##(111, s)), p, o, s)
-# define BOOST_PP_WHILE_111(p, o, s) BOOST_PP_WHILE_111_C(BOOST_PP_BOOL(p##(112, s)), p, o, s)
-# define BOOST_PP_WHILE_112(p, o, s) BOOST_PP_WHILE_112_C(BOOST_PP_BOOL(p##(113, s)), p, o, s)
-# define BOOST_PP_WHILE_113(p, o, s) BOOST_PP_WHILE_113_C(BOOST_PP_BOOL(p##(114, s)), p, o, s)
-# define BOOST_PP_WHILE_114(p, o, s) BOOST_PP_WHILE_114_C(BOOST_PP_BOOL(p##(115, s)), p, o, s)
-# define BOOST_PP_WHILE_115(p, o, s) BOOST_PP_WHILE_115_C(BOOST_PP_BOOL(p##(116, s)), p, o, s)
-# define BOOST_PP_WHILE_116(p, o, s) BOOST_PP_WHILE_116_C(BOOST_PP_BOOL(p##(117, s)), p, o, s)
-# define BOOST_PP_WHILE_117(p, o, s) BOOST_PP_WHILE_117_C(BOOST_PP_BOOL(p##(118, s)), p, o, s)
-# define BOOST_PP_WHILE_118(p, o, s) BOOST_PP_WHILE_118_C(BOOST_PP_BOOL(p##(119, s)), p, o, s)
-# define BOOST_PP_WHILE_119(p, o, s) BOOST_PP_WHILE_119_C(BOOST_PP_BOOL(p##(120, s)), p, o, s)
-# define BOOST_PP_WHILE_120(p, o, s) BOOST_PP_WHILE_120_C(BOOST_PP_BOOL(p##(121, s)), p, o, s)
-# define BOOST_PP_WHILE_121(p, o, s) BOOST_PP_WHILE_121_C(BOOST_PP_BOOL(p##(122, s)), p, o, s)
-# define BOOST_PP_WHILE_122(p, o, s) BOOST_PP_WHILE_122_C(BOOST_PP_BOOL(p##(123, s)), p, o, s)
-# define BOOST_PP_WHILE_123(p, o, s) BOOST_PP_WHILE_123_C(BOOST_PP_BOOL(p##(124, s)), p, o, s)
-# define BOOST_PP_WHILE_124(p, o, s) BOOST_PP_WHILE_124_C(BOOST_PP_BOOL(p##(125, s)), p, o, s)
-# define BOOST_PP_WHILE_125(p, o, s) BOOST_PP_WHILE_125_C(BOOST_PP_BOOL(p##(126, s)), p, o, s)
-# define BOOST_PP_WHILE_126(p, o, s) BOOST_PP_WHILE_126_C(BOOST_PP_BOOL(p##(127, s)), p, o, s)
-# define BOOST_PP_WHILE_127(p, o, s) BOOST_PP_WHILE_127_C(BOOST_PP_BOOL(p##(128, s)), p, o, s)
-# define BOOST_PP_WHILE_128(p, o, s) BOOST_PP_WHILE_128_C(BOOST_PP_BOOL(p##(129, s)), p, o, s)
-# define BOOST_PP_WHILE_129(p, o, s) BOOST_PP_WHILE_129_C(BOOST_PP_BOOL(p##(130, s)), p, o, s)
-# define BOOST_PP_WHILE_130(p, o, s) BOOST_PP_WHILE_130_C(BOOST_PP_BOOL(p##(131, s)), p, o, s)
-# define BOOST_PP_WHILE_131(p, o, s) BOOST_PP_WHILE_131_C(BOOST_PP_BOOL(p##(132, s)), p, o, s)
-# define BOOST_PP_WHILE_132(p, o, s) BOOST_PP_WHILE_132_C(BOOST_PP_BOOL(p##(133, s)), p, o, s)
-# define BOOST_PP_WHILE_133(p, o, s) BOOST_PP_WHILE_133_C(BOOST_PP_BOOL(p##(134, s)), p, o, s)
-# define BOOST_PP_WHILE_134(p, o, s) BOOST_PP_WHILE_134_C(BOOST_PP_BOOL(p##(135, s)), p, o, s)
-# define BOOST_PP_WHILE_135(p, o, s) BOOST_PP_WHILE_135_C(BOOST_PP_BOOL(p##(136, s)), p, o, s)
-# define BOOST_PP_WHILE_136(p, o, s) BOOST_PP_WHILE_136_C(BOOST_PP_BOOL(p##(137, s)), p, o, s)
-# define BOOST_PP_WHILE_137(p, o, s) BOOST_PP_WHILE_137_C(BOOST_PP_BOOL(p##(138, s)), p, o, s)
-# define BOOST_PP_WHILE_138(p, o, s) BOOST_PP_WHILE_138_C(BOOST_PP_BOOL(p##(139, s)), p, o, s)
-# define BOOST_PP_WHILE_139(p, o, s) BOOST_PP_WHILE_139_C(BOOST_PP_BOOL(p##(140, s)), p, o, s)
-# define BOOST_PP_WHILE_140(p, o, s) BOOST_PP_WHILE_140_C(BOOST_PP_BOOL(p##(141, s)), p, o, s)
-# define BOOST_PP_WHILE_141(p, o, s) BOOST_PP_WHILE_141_C(BOOST_PP_BOOL(p##(142, s)), p, o, s)
-# define BOOST_PP_WHILE_142(p, o, s) BOOST_PP_WHILE_142_C(BOOST_PP_BOOL(p##(143, s)), p, o, s)
-# define BOOST_PP_WHILE_143(p, o, s) BOOST_PP_WHILE_143_C(BOOST_PP_BOOL(p##(144, s)), p, o, s)
-# define BOOST_PP_WHILE_144(p, o, s) BOOST_PP_WHILE_144_C(BOOST_PP_BOOL(p##(145, s)), p, o, s)
-# define BOOST_PP_WHILE_145(p, o, s) BOOST_PP_WHILE_145_C(BOOST_PP_BOOL(p##(146, s)), p, o, s)
-# define BOOST_PP_WHILE_146(p, o, s) BOOST_PP_WHILE_146_C(BOOST_PP_BOOL(p##(147, s)), p, o, s)
-# define BOOST_PP_WHILE_147(p, o, s) BOOST_PP_WHILE_147_C(BOOST_PP_BOOL(p##(148, s)), p, o, s)
-# define BOOST_PP_WHILE_148(p, o, s) BOOST_PP_WHILE_148_C(BOOST_PP_BOOL(p##(149, s)), p, o, s)
-# define BOOST_PP_WHILE_149(p, o, s) BOOST_PP_WHILE_149_C(BOOST_PP_BOOL(p##(150, s)), p, o, s)
-# define BOOST_PP_WHILE_150(p, o, s) BOOST_PP_WHILE_150_C(BOOST_PP_BOOL(p##(151, s)), p, o, s)
-# define BOOST_PP_WHILE_151(p, o, s) BOOST_PP_WHILE_151_C(BOOST_PP_BOOL(p##(152, s)), p, o, s)
-# define BOOST_PP_WHILE_152(p, o, s) BOOST_PP_WHILE_152_C(BOOST_PP_BOOL(p##(153, s)), p, o, s)
-# define BOOST_PP_WHILE_153(p, o, s) BOOST_PP_WHILE_153_C(BOOST_PP_BOOL(p##(154, s)), p, o, s)
-# define BOOST_PP_WHILE_154(p, o, s) BOOST_PP_WHILE_154_C(BOOST_PP_BOOL(p##(155, s)), p, o, s)
-# define BOOST_PP_WHILE_155(p, o, s) BOOST_PP_WHILE_155_C(BOOST_PP_BOOL(p##(156, s)), p, o, s)
-# define BOOST_PP_WHILE_156(p, o, s) BOOST_PP_WHILE_156_C(BOOST_PP_BOOL(p##(157, s)), p, o, s)
-# define BOOST_PP_WHILE_157(p, o, s) BOOST_PP_WHILE_157_C(BOOST_PP_BOOL(p##(158, s)), p, o, s)
-# define BOOST_PP_WHILE_158(p, o, s) BOOST_PP_WHILE_158_C(BOOST_PP_BOOL(p##(159, s)), p, o, s)
-# define BOOST_PP_WHILE_159(p, o, s) BOOST_PP_WHILE_159_C(BOOST_PP_BOOL(p##(160, s)), p, o, s)
-# define BOOST_PP_WHILE_160(p, o, s) BOOST_PP_WHILE_160_C(BOOST_PP_BOOL(p##(161, s)), p, o, s)
-# define BOOST_PP_WHILE_161(p, o, s) BOOST_PP_WHILE_161_C(BOOST_PP_BOOL(p##(162, s)), p, o, s)
-# define BOOST_PP_WHILE_162(p, o, s) BOOST_PP_WHILE_162_C(BOOST_PP_BOOL(p##(163, s)), p, o, s)
-# define BOOST_PP_WHILE_163(p, o, s) BOOST_PP_WHILE_163_C(BOOST_PP_BOOL(p##(164, s)), p, o, s)
-# define BOOST_PP_WHILE_164(p, o, s) BOOST_PP_WHILE_164_C(BOOST_PP_BOOL(p##(165, s)), p, o, s)
-# define BOOST_PP_WHILE_165(p, o, s) BOOST_PP_WHILE_165_C(BOOST_PP_BOOL(p##(166, s)), p, o, s)
-# define BOOST_PP_WHILE_166(p, o, s) BOOST_PP_WHILE_166_C(BOOST_PP_BOOL(p##(167, s)), p, o, s)
-# define BOOST_PP_WHILE_167(p, o, s) BOOST_PP_WHILE_167_C(BOOST_PP_BOOL(p##(168, s)), p, o, s)
-# define BOOST_PP_WHILE_168(p, o, s) BOOST_PP_WHILE_168_C(BOOST_PP_BOOL(p##(169, s)), p, o, s)
-# define BOOST_PP_WHILE_169(p, o, s) BOOST_PP_WHILE_169_C(BOOST_PP_BOOL(p##(170, s)), p, o, s)
-# define BOOST_PP_WHILE_170(p, o, s) BOOST_PP_WHILE_170_C(BOOST_PP_BOOL(p##(171, s)), p, o, s)
-# define BOOST_PP_WHILE_171(p, o, s) BOOST_PP_WHILE_171_C(BOOST_PP_BOOL(p##(172, s)), p, o, s)
-# define BOOST_PP_WHILE_172(p, o, s) BOOST_PP_WHILE_172_C(BOOST_PP_BOOL(p##(173, s)), p, o, s)
-# define BOOST_PP_WHILE_173(p, o, s) BOOST_PP_WHILE_173_C(BOOST_PP_BOOL(p##(174, s)), p, o, s)
-# define BOOST_PP_WHILE_174(p, o, s) BOOST_PP_WHILE_174_C(BOOST_PP_BOOL(p##(175, s)), p, o, s)
-# define BOOST_PP_WHILE_175(p, o, s) BOOST_PP_WHILE_175_C(BOOST_PP_BOOL(p##(176, s)), p, o, s)
-# define BOOST_PP_WHILE_176(p, o, s) BOOST_PP_WHILE_176_C(BOOST_PP_BOOL(p##(177, s)), p, o, s)
-# define BOOST_PP_WHILE_177(p, o, s) BOOST_PP_WHILE_177_C(BOOST_PP_BOOL(p##(178, s)), p, o, s)
-# define BOOST_PP_WHILE_178(p, o, s) BOOST_PP_WHILE_178_C(BOOST_PP_BOOL(p##(179, s)), p, o, s)
-# define BOOST_PP_WHILE_179(p, o, s) BOOST_PP_WHILE_179_C(BOOST_PP_BOOL(p##(180, s)), p, o, s)
-# define BOOST_PP_WHILE_180(p, o, s) BOOST_PP_WHILE_180_C(BOOST_PP_BOOL(p##(181, s)), p, o, s)
-# define BOOST_PP_WHILE_181(p, o, s) BOOST_PP_WHILE_181_C(BOOST_PP_BOOL(p##(182, s)), p, o, s)
-# define BOOST_PP_WHILE_182(p, o, s) BOOST_PP_WHILE_182_C(BOOST_PP_BOOL(p##(183, s)), p, o, s)
-# define BOOST_PP_WHILE_183(p, o, s) BOOST_PP_WHILE_183_C(BOOST_PP_BOOL(p##(184, s)), p, o, s)
-# define BOOST_PP_WHILE_184(p, o, s) BOOST_PP_WHILE_184_C(BOOST_PP_BOOL(p##(185, s)), p, o, s)
-# define BOOST_PP_WHILE_185(p, o, s) BOOST_PP_WHILE_185_C(BOOST_PP_BOOL(p##(186, s)), p, o, s)
-# define BOOST_PP_WHILE_186(p, o, s) BOOST_PP_WHILE_186_C(BOOST_PP_BOOL(p##(187, s)), p, o, s)
-# define BOOST_PP_WHILE_187(p, o, s) BOOST_PP_WHILE_187_C(BOOST_PP_BOOL(p##(188, s)), p, o, s)
-# define BOOST_PP_WHILE_188(p, o, s) BOOST_PP_WHILE_188_C(BOOST_PP_BOOL(p##(189, s)), p, o, s)
-# define BOOST_PP_WHILE_189(p, o, s) BOOST_PP_WHILE_189_C(BOOST_PP_BOOL(p##(190, s)), p, o, s)
-# define BOOST_PP_WHILE_190(p, o, s) BOOST_PP_WHILE_190_C(BOOST_PP_BOOL(p##(191, s)), p, o, s)
-# define BOOST_PP_WHILE_191(p, o, s) BOOST_PP_WHILE_191_C(BOOST_PP_BOOL(p##(192, s)), p, o, s)
-# define BOOST_PP_WHILE_192(p, o, s) BOOST_PP_WHILE_192_C(BOOST_PP_BOOL(p##(193, s)), p, o, s)
-# define BOOST_PP_WHILE_193(p, o, s) BOOST_PP_WHILE_193_C(BOOST_PP_BOOL(p##(194, s)), p, o, s)
-# define BOOST_PP_WHILE_194(p, o, s) BOOST_PP_WHILE_194_C(BOOST_PP_BOOL(p##(195, s)), p, o, s)
-# define BOOST_PP_WHILE_195(p, o, s) BOOST_PP_WHILE_195_C(BOOST_PP_BOOL(p##(196, s)), p, o, s)
-# define BOOST_PP_WHILE_196(p, o, s) BOOST_PP_WHILE_196_C(BOOST_PP_BOOL(p##(197, s)), p, o, s)
-# define BOOST_PP_WHILE_197(p, o, s) BOOST_PP_WHILE_197_C(BOOST_PP_BOOL(p##(198, s)), p, o, s)
-# define BOOST_PP_WHILE_198(p, o, s) BOOST_PP_WHILE_198_C(BOOST_PP_BOOL(p##(199, s)), p, o, s)
-# define BOOST_PP_WHILE_199(p, o, s) BOOST_PP_WHILE_199_C(BOOST_PP_BOOL(p##(200, s)), p, o, s)
-# define BOOST_PP_WHILE_200(p, o, s) BOOST_PP_WHILE_200_C(BOOST_PP_BOOL(p##(201, s)), p, o, s)
-# define BOOST_PP_WHILE_201(p, o, s) BOOST_PP_WHILE_201_C(BOOST_PP_BOOL(p##(202, s)), p, o, s)
-# define BOOST_PP_WHILE_202(p, o, s) BOOST_PP_WHILE_202_C(BOOST_PP_BOOL(p##(203, s)), p, o, s)
-# define BOOST_PP_WHILE_203(p, o, s) BOOST_PP_WHILE_203_C(BOOST_PP_BOOL(p##(204, s)), p, o, s)
-# define BOOST_PP_WHILE_204(p, o, s) BOOST_PP_WHILE_204_C(BOOST_PP_BOOL(p##(205, s)), p, o, s)
-# define BOOST_PP_WHILE_205(p, o, s) BOOST_PP_WHILE_205_C(BOOST_PP_BOOL(p##(206, s)), p, o, s)
-# define BOOST_PP_WHILE_206(p, o, s) BOOST_PP_WHILE_206_C(BOOST_PP_BOOL(p##(207, s)), p, o, s)
-# define BOOST_PP_WHILE_207(p, o, s) BOOST_PP_WHILE_207_C(BOOST_PP_BOOL(p##(208, s)), p, o, s)
-# define BOOST_PP_WHILE_208(p, o, s) BOOST_PP_WHILE_208_C(BOOST_PP_BOOL(p##(209, s)), p, o, s)
-# define BOOST_PP_WHILE_209(p, o, s) BOOST_PP_WHILE_209_C(BOOST_PP_BOOL(p##(210, s)), p, o, s)
-# define BOOST_PP_WHILE_210(p, o, s) BOOST_PP_WHILE_210_C(BOOST_PP_BOOL(p##(211, s)), p, o, s)
-# define BOOST_PP_WHILE_211(p, o, s) BOOST_PP_WHILE_211_C(BOOST_PP_BOOL(p##(212, s)), p, o, s)
-# define BOOST_PP_WHILE_212(p, o, s) BOOST_PP_WHILE_212_C(BOOST_PP_BOOL(p##(213, s)), p, o, s)
-# define BOOST_PP_WHILE_213(p, o, s) BOOST_PP_WHILE_213_C(BOOST_PP_BOOL(p##(214, s)), p, o, s)
-# define BOOST_PP_WHILE_214(p, o, s) BOOST_PP_WHILE_214_C(BOOST_PP_BOOL(p##(215, s)), p, o, s)
-# define BOOST_PP_WHILE_215(p, o, s) BOOST_PP_WHILE_215_C(BOOST_PP_BOOL(p##(216, s)), p, o, s)
-# define BOOST_PP_WHILE_216(p, o, s) BOOST_PP_WHILE_216_C(BOOST_PP_BOOL(p##(217, s)), p, o, s)
-# define BOOST_PP_WHILE_217(p, o, s) BOOST_PP_WHILE_217_C(BOOST_PP_BOOL(p##(218, s)), p, o, s)
-# define BOOST_PP_WHILE_218(p, o, s) BOOST_PP_WHILE_218_C(BOOST_PP_BOOL(p##(219, s)), p, o, s)
-# define BOOST_PP_WHILE_219(p, o, s) BOOST_PP_WHILE_219_C(BOOST_PP_BOOL(p##(220, s)), p, o, s)
-# define BOOST_PP_WHILE_220(p, o, s) BOOST_PP_WHILE_220_C(BOOST_PP_BOOL(p##(221, s)), p, o, s)
-# define BOOST_PP_WHILE_221(p, o, s) BOOST_PP_WHILE_221_C(BOOST_PP_BOOL(p##(222, s)), p, o, s)
-# define BOOST_PP_WHILE_222(p, o, s) BOOST_PP_WHILE_222_C(BOOST_PP_BOOL(p##(223, s)), p, o, s)
-# define BOOST_PP_WHILE_223(p, o, s) BOOST_PP_WHILE_223_C(BOOST_PP_BOOL(p##(224, s)), p, o, s)
-# define BOOST_PP_WHILE_224(p, o, s) BOOST_PP_WHILE_224_C(BOOST_PP_BOOL(p##(225, s)), p, o, s)
-# define BOOST_PP_WHILE_225(p, o, s) BOOST_PP_WHILE_225_C(BOOST_PP_BOOL(p##(226, s)), p, o, s)
-# define BOOST_PP_WHILE_226(p, o, s) BOOST_PP_WHILE_226_C(BOOST_PP_BOOL(p##(227, s)), p, o, s)
-# define BOOST_PP_WHILE_227(p, o, s) BOOST_PP_WHILE_227_C(BOOST_PP_BOOL(p##(228, s)), p, o, s)
-# define BOOST_PP_WHILE_228(p, o, s) BOOST_PP_WHILE_228_C(BOOST_PP_BOOL(p##(229, s)), p, o, s)
-# define BOOST_PP_WHILE_229(p, o, s) BOOST_PP_WHILE_229_C(BOOST_PP_BOOL(p##(230, s)), p, o, s)
-# define BOOST_PP_WHILE_230(p, o, s) BOOST_PP_WHILE_230_C(BOOST_PP_BOOL(p##(231, s)), p, o, s)
-# define BOOST_PP_WHILE_231(p, o, s) BOOST_PP_WHILE_231_C(BOOST_PP_BOOL(p##(232, s)), p, o, s)
-# define BOOST_PP_WHILE_232(p, o, s) BOOST_PP_WHILE_232_C(BOOST_PP_BOOL(p##(233, s)), p, o, s)
-# define BOOST_PP_WHILE_233(p, o, s) BOOST_PP_WHILE_233_C(BOOST_PP_BOOL(p##(234, s)), p, o, s)
-# define BOOST_PP_WHILE_234(p, o, s) BOOST_PP_WHILE_234_C(BOOST_PP_BOOL(p##(235, s)), p, o, s)
-# define BOOST_PP_WHILE_235(p, o, s) BOOST_PP_WHILE_235_C(BOOST_PP_BOOL(p##(236, s)), p, o, s)
-# define BOOST_PP_WHILE_236(p, o, s) BOOST_PP_WHILE_236_C(BOOST_PP_BOOL(p##(237, s)), p, o, s)
-# define BOOST_PP_WHILE_237(p, o, s) BOOST_PP_WHILE_237_C(BOOST_PP_BOOL(p##(238, s)), p, o, s)
-# define BOOST_PP_WHILE_238(p, o, s) BOOST_PP_WHILE_238_C(BOOST_PP_BOOL(p##(239, s)), p, o, s)
-# define BOOST_PP_WHILE_239(p, o, s) BOOST_PP_WHILE_239_C(BOOST_PP_BOOL(p##(240, s)), p, o, s)
-# define BOOST_PP_WHILE_240(p, o, s) BOOST_PP_WHILE_240_C(BOOST_PP_BOOL(p##(241, s)), p, o, s)
-# define BOOST_PP_WHILE_241(p, o, s) BOOST_PP_WHILE_241_C(BOOST_PP_BOOL(p##(242, s)), p, o, s)
-# define BOOST_PP_WHILE_242(p, o, s) BOOST_PP_WHILE_242_C(BOOST_PP_BOOL(p##(243, s)), p, o, s)
-# define BOOST_PP_WHILE_243(p, o, s) BOOST_PP_WHILE_243_C(BOOST_PP_BOOL(p##(244, s)), p, o, s)
-# define BOOST_PP_WHILE_244(p, o, s) BOOST_PP_WHILE_244_C(BOOST_PP_BOOL(p##(245, s)), p, o, s)
-# define BOOST_PP_WHILE_245(p, o, s) BOOST_PP_WHILE_245_C(BOOST_PP_BOOL(p##(246, s)), p, o, s)
-# define BOOST_PP_WHILE_246(p, o, s) BOOST_PP_WHILE_246_C(BOOST_PP_BOOL(p##(247, s)), p, o, s)
-# define BOOST_PP_WHILE_247(p, o, s) BOOST_PP_WHILE_247_C(BOOST_PP_BOOL(p##(248, s)), p, o, s)
-# define BOOST_PP_WHILE_248(p, o, s) BOOST_PP_WHILE_248_C(BOOST_PP_BOOL(p##(249, s)), p, o, s)
-# define BOOST_PP_WHILE_249(p, o, s) BOOST_PP_WHILE_249_C(BOOST_PP_BOOL(p##(250, s)), p, o, s)
-# define BOOST_PP_WHILE_250(p, o, s) BOOST_PP_WHILE_250_C(BOOST_PP_BOOL(p##(251, s)), p, o, s)
-# define BOOST_PP_WHILE_251(p, o, s) BOOST_PP_WHILE_251_C(BOOST_PP_BOOL(p##(252, s)), p, o, s)
-# define BOOST_PP_WHILE_252(p, o, s) BOOST_PP_WHILE_252_C(BOOST_PP_BOOL(p##(253, s)), p, o, s)
-# define BOOST_PP_WHILE_253(p, o, s) BOOST_PP_WHILE_253_C(BOOST_PP_BOOL(p##(254, s)), p, o, s)
-# define BOOST_PP_WHILE_254(p, o, s) BOOST_PP_WHILE_254_C(BOOST_PP_BOOL(p##(255, s)), p, o, s)
-# define BOOST_PP_WHILE_255(p, o, s) BOOST_PP_WHILE_255_C(BOOST_PP_BOOL(p##(256, s)), p, o, s)
-# define BOOST_PP_WHILE_256(p, o, s) BOOST_PP_WHILE_256_C(BOOST_PP_BOOL(p##(257, s)), p, o, s)
-#
-# define BOOST_PP_WHILE_1_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_2, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(2, s))
-# define BOOST_PP_WHILE_2_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_3, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(3, s))
-# define BOOST_PP_WHILE_3_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_4, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(4, s))
-# define BOOST_PP_WHILE_4_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_5, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(5, s))
-# define BOOST_PP_WHILE_5_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_6, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(6, s))
-# define BOOST_PP_WHILE_6_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_7, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(7, s))
-# define BOOST_PP_WHILE_7_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_8, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(8, s))
-# define BOOST_PP_WHILE_8_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_9, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(9, s))
-# define BOOST_PP_WHILE_9_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_10, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(10, s))
-# define BOOST_PP_WHILE_10_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_11, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(11, s))
-# define BOOST_PP_WHILE_11_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_12, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(12, s))
-# define BOOST_PP_WHILE_12_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_13, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(13, s))
-# define BOOST_PP_WHILE_13_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_14, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(14, s))
-# define BOOST_PP_WHILE_14_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_15, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(15, s))
-# define BOOST_PP_WHILE_15_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_16, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(16, s))
-# define BOOST_PP_WHILE_16_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_17, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(17, s))
-# define BOOST_PP_WHILE_17_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_18, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(18, s))
-# define BOOST_PP_WHILE_18_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_19, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(19, s))
-# define BOOST_PP_WHILE_19_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_20, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(20, s))
-# define BOOST_PP_WHILE_20_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_21, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(21, s))
-# define BOOST_PP_WHILE_21_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_22, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(22, s))
-# define BOOST_PP_WHILE_22_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_23, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(23, s))
-# define BOOST_PP_WHILE_23_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_24, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(24, s))
-# define BOOST_PP_WHILE_24_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_25, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(25, s))
-# define BOOST_PP_WHILE_25_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_26, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(26, s))
-# define BOOST_PP_WHILE_26_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_27, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(27, s))
-# define BOOST_PP_WHILE_27_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_28, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(28, s))
-# define BOOST_PP_WHILE_28_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_29, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(29, s))
-# define BOOST_PP_WHILE_29_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_30, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(30, s))
-# define BOOST_PP_WHILE_30_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_31, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(31, s))
-# define BOOST_PP_WHILE_31_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_32, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(32, s))
-# define BOOST_PP_WHILE_32_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_33, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(33, s))
-# define BOOST_PP_WHILE_33_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_34, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(34, s))
-# define BOOST_PP_WHILE_34_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_35, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(35, s))
-# define BOOST_PP_WHILE_35_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_36, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(36, s))
-# define BOOST_PP_WHILE_36_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_37, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(37, s))
-# define BOOST_PP_WHILE_37_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_38, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(38, s))
-# define BOOST_PP_WHILE_38_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_39, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(39, s))
-# define BOOST_PP_WHILE_39_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_40, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(40, s))
-# define BOOST_PP_WHILE_40_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_41, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(41, s))
-# define BOOST_PP_WHILE_41_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_42, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(42, s))
-# define BOOST_PP_WHILE_42_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_43, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(43, s))
-# define BOOST_PP_WHILE_43_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_44, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(44, s))
-# define BOOST_PP_WHILE_44_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_45, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(45, s))
-# define BOOST_PP_WHILE_45_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_46, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(46, s))
-# define BOOST_PP_WHILE_46_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_47, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(47, s))
-# define BOOST_PP_WHILE_47_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_48, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(48, s))
-# define BOOST_PP_WHILE_48_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_49, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(49, s))
-# define BOOST_PP_WHILE_49_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_50, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(50, s))
-# define BOOST_PP_WHILE_50_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_51, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(51, s))
-# define BOOST_PP_WHILE_51_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_52, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(52, s))
-# define BOOST_PP_WHILE_52_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_53, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(53, s))
-# define BOOST_PP_WHILE_53_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_54, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(54, s))
-# define BOOST_PP_WHILE_54_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_55, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(55, s))
-# define BOOST_PP_WHILE_55_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_56, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(56, s))
-# define BOOST_PP_WHILE_56_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_57, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(57, s))
-# define BOOST_PP_WHILE_57_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_58, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(58, s))
-# define BOOST_PP_WHILE_58_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_59, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(59, s))
-# define BOOST_PP_WHILE_59_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_60, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(60, s))
-# define BOOST_PP_WHILE_60_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_61, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(61, s))
-# define BOOST_PP_WHILE_61_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_62, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(62, s))
-# define BOOST_PP_WHILE_62_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_63, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(63, s))
-# define BOOST_PP_WHILE_63_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_64, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(64, s))
-# define BOOST_PP_WHILE_64_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_65, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(65, s))
-# define BOOST_PP_WHILE_65_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_66, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(66, s))
-# define BOOST_PP_WHILE_66_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_67, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(67, s))
-# define BOOST_PP_WHILE_67_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_68, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(68, s))
-# define BOOST_PP_WHILE_68_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_69, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(69, s))
-# define BOOST_PP_WHILE_69_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_70, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(70, s))
-# define BOOST_PP_WHILE_70_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_71, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(71, s))
-# define BOOST_PP_WHILE_71_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_72, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(72, s))
-# define BOOST_PP_WHILE_72_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_73, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(73, s))
-# define BOOST_PP_WHILE_73_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_74, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(74, s))
-# define BOOST_PP_WHILE_74_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_75, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(75, s))
-# define BOOST_PP_WHILE_75_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_76, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(76, s))
-# define BOOST_PP_WHILE_76_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_77, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(77, s))
-# define BOOST_PP_WHILE_77_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_78, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(78, s))
-# define BOOST_PP_WHILE_78_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_79, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(79, s))
-# define BOOST_PP_WHILE_79_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_80, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(80, s))
-# define BOOST_PP_WHILE_80_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_81, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(81, s))
-# define BOOST_PP_WHILE_81_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_82, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(82, s))
-# define BOOST_PP_WHILE_82_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_83, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(83, s))
-# define BOOST_PP_WHILE_83_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_84, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(84, s))
-# define BOOST_PP_WHILE_84_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_85, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(85, s))
-# define BOOST_PP_WHILE_85_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_86, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(86, s))
-# define BOOST_PP_WHILE_86_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_87, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(87, s))
-# define BOOST_PP_WHILE_87_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_88, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(88, s))
-# define BOOST_PP_WHILE_88_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_89, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(89, s))
-# define BOOST_PP_WHILE_89_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_90, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(90, s))
-# define BOOST_PP_WHILE_90_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_91, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(91, s))
-# define BOOST_PP_WHILE_91_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_92, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(92, s))
-# define BOOST_PP_WHILE_92_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_93, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(93, s))
-# define BOOST_PP_WHILE_93_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_94, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(94, s))
-# define BOOST_PP_WHILE_94_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_95, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(95, s))
-# define BOOST_PP_WHILE_95_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_96, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(96, s))
-# define BOOST_PP_WHILE_96_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_97, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(97, s))
-# define BOOST_PP_WHILE_97_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_98, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(98, s))
-# define BOOST_PP_WHILE_98_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_99, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(99, s))
-# define BOOST_PP_WHILE_99_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_100, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(100, s))
-# define BOOST_PP_WHILE_100_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_101, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(101, s))
-# define BOOST_PP_WHILE_101_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_102, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(102, s))
-# define BOOST_PP_WHILE_102_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_103, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(103, s))
-# define BOOST_PP_WHILE_103_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_104, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(104, s))
-# define BOOST_PP_WHILE_104_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_105, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(105, s))
-# define BOOST_PP_WHILE_105_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_106, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(106, s))
-# define BOOST_PP_WHILE_106_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_107, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(107, s))
-# define BOOST_PP_WHILE_107_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_108, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(108, s))
-# define BOOST_PP_WHILE_108_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_109, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(109, s))
-# define BOOST_PP_WHILE_109_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_110, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(110, s))
-# define BOOST_PP_WHILE_110_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_111, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(111, s))
-# define BOOST_PP_WHILE_111_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_112, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(112, s))
-# define BOOST_PP_WHILE_112_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_113, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(113, s))
-# define BOOST_PP_WHILE_113_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_114, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(114, s))
-# define BOOST_PP_WHILE_114_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_115, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(115, s))
-# define BOOST_PP_WHILE_115_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_116, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(116, s))
-# define BOOST_PP_WHILE_116_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_117, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(117, s))
-# define BOOST_PP_WHILE_117_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_118, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(118, s))
-# define BOOST_PP_WHILE_118_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_119, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(119, s))
-# define BOOST_PP_WHILE_119_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_120, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(120, s))
-# define BOOST_PP_WHILE_120_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_121, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(121, s))
-# define BOOST_PP_WHILE_121_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_122, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(122, s))
-# define BOOST_PP_WHILE_122_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_123, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(123, s))
-# define BOOST_PP_WHILE_123_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_124, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(124, s))
-# define BOOST_PP_WHILE_124_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_125, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(125, s))
-# define BOOST_PP_WHILE_125_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_126, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(126, s))
-# define BOOST_PP_WHILE_126_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_127, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(127, s))
-# define BOOST_PP_WHILE_127_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_128, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(128, s))
-# define BOOST_PP_WHILE_128_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_129, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(129, s))
-# define BOOST_PP_WHILE_129_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_130, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(130, s))
-# define BOOST_PP_WHILE_130_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_131, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(131, s))
-# define BOOST_PP_WHILE_131_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_132, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(132, s))
-# define BOOST_PP_WHILE_132_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_133, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(133, s))
-# define BOOST_PP_WHILE_133_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_134, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(134, s))
-# define BOOST_PP_WHILE_134_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_135, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(135, s))
-# define BOOST_PP_WHILE_135_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_136, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(136, s))
-# define BOOST_PP_WHILE_136_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_137, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(137, s))
-# define BOOST_PP_WHILE_137_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_138, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(138, s))
-# define BOOST_PP_WHILE_138_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_139, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(139, s))
-# define BOOST_PP_WHILE_139_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_140, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(140, s))
-# define BOOST_PP_WHILE_140_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_141, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(141, s))
-# define BOOST_PP_WHILE_141_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_142, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(142, s))
-# define BOOST_PP_WHILE_142_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_143, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(143, s))
-# define BOOST_PP_WHILE_143_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_144, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(144, s))
-# define BOOST_PP_WHILE_144_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_145, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(145, s))
-# define BOOST_PP_WHILE_145_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_146, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(146, s))
-# define BOOST_PP_WHILE_146_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_147, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(147, s))
-# define BOOST_PP_WHILE_147_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_148, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(148, s))
-# define BOOST_PP_WHILE_148_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_149, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(149, s))
-# define BOOST_PP_WHILE_149_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_150, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(150, s))
-# define BOOST_PP_WHILE_150_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_151, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(151, s))
-# define BOOST_PP_WHILE_151_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_152, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(152, s))
-# define BOOST_PP_WHILE_152_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_153, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(153, s))
-# define BOOST_PP_WHILE_153_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_154, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(154, s))
-# define BOOST_PP_WHILE_154_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_155, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(155, s))
-# define BOOST_PP_WHILE_155_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_156, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(156, s))
-# define BOOST_PP_WHILE_156_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_157, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(157, s))
-# define BOOST_PP_WHILE_157_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_158, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(158, s))
-# define BOOST_PP_WHILE_158_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_159, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(159, s))
-# define BOOST_PP_WHILE_159_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_160, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(160, s))
-# define BOOST_PP_WHILE_160_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_161, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(161, s))
-# define BOOST_PP_WHILE_161_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_162, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(162, s))
-# define BOOST_PP_WHILE_162_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_163, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(163, s))
-# define BOOST_PP_WHILE_163_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_164, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(164, s))
-# define BOOST_PP_WHILE_164_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_165, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(165, s))
-# define BOOST_PP_WHILE_165_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_166, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(166, s))
-# define BOOST_PP_WHILE_166_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_167, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(167, s))
-# define BOOST_PP_WHILE_167_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_168, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(168, s))
-# define BOOST_PP_WHILE_168_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_169, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(169, s))
-# define BOOST_PP_WHILE_169_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_170, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(170, s))
-# define BOOST_PP_WHILE_170_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_171, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(171, s))
-# define BOOST_PP_WHILE_171_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_172, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(172, s))
-# define BOOST_PP_WHILE_172_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_173, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(173, s))
-# define BOOST_PP_WHILE_173_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_174, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(174, s))
-# define BOOST_PP_WHILE_174_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_175, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(175, s))
-# define BOOST_PP_WHILE_175_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_176, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(176, s))
-# define BOOST_PP_WHILE_176_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_177, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(177, s))
-# define BOOST_PP_WHILE_177_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_178, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(178, s))
-# define BOOST_PP_WHILE_178_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_179, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(179, s))
-# define BOOST_PP_WHILE_179_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_180, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(180, s))
-# define BOOST_PP_WHILE_180_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_181, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(181, s))
-# define BOOST_PP_WHILE_181_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_182, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(182, s))
-# define BOOST_PP_WHILE_182_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_183, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(183, s))
-# define BOOST_PP_WHILE_183_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_184, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(184, s))
-# define BOOST_PP_WHILE_184_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_185, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(185, s))
-# define BOOST_PP_WHILE_185_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_186, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(186, s))
-# define BOOST_PP_WHILE_186_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_187, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(187, s))
-# define BOOST_PP_WHILE_187_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_188, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(188, s))
-# define BOOST_PP_WHILE_188_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_189, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(189, s))
-# define BOOST_PP_WHILE_189_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_190, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(190, s))
-# define BOOST_PP_WHILE_190_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_191, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(191, s))
-# define BOOST_PP_WHILE_191_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_192, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(192, s))
-# define BOOST_PP_WHILE_192_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_193, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(193, s))
-# define BOOST_PP_WHILE_193_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_194, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(194, s))
-# define BOOST_PP_WHILE_194_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_195, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(195, s))
-# define BOOST_PP_WHILE_195_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_196, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(196, s))
-# define BOOST_PP_WHILE_196_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_197, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(197, s))
-# define BOOST_PP_WHILE_197_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_198, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(198, s))
-# define BOOST_PP_WHILE_198_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_199, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(199, s))
-# define BOOST_PP_WHILE_199_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_200, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(200, s))
-# define BOOST_PP_WHILE_200_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_201, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(201, s))
-# define BOOST_PP_WHILE_201_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_202, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(202, s))
-# define BOOST_PP_WHILE_202_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_203, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(203, s))
-# define BOOST_PP_WHILE_203_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_204, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(204, s))
-# define BOOST_PP_WHILE_204_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_205, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(205, s))
-# define BOOST_PP_WHILE_205_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_206, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(206, s))
-# define BOOST_PP_WHILE_206_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_207, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(207, s))
-# define BOOST_PP_WHILE_207_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_208, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(208, s))
-# define BOOST_PP_WHILE_208_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_209, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(209, s))
-# define BOOST_PP_WHILE_209_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_210, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(210, s))
-# define BOOST_PP_WHILE_210_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_211, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(211, s))
-# define BOOST_PP_WHILE_211_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_212, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(212, s))
-# define BOOST_PP_WHILE_212_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_213, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(213, s))
-# define BOOST_PP_WHILE_213_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_214, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(214, s))
-# define BOOST_PP_WHILE_214_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_215, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(215, s))
-# define BOOST_PP_WHILE_215_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_216, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(216, s))
-# define BOOST_PP_WHILE_216_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_217, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(217, s))
-# define BOOST_PP_WHILE_217_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_218, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(218, s))
-# define BOOST_PP_WHILE_218_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_219, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(219, s))
-# define BOOST_PP_WHILE_219_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_220, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(220, s))
-# define BOOST_PP_WHILE_220_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_221, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(221, s))
-# define BOOST_PP_WHILE_221_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_222, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(222, s))
-# define BOOST_PP_WHILE_222_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_223, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(223, s))
-# define BOOST_PP_WHILE_223_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_224, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(224, s))
-# define BOOST_PP_WHILE_224_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_225, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(225, s))
-# define BOOST_PP_WHILE_225_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_226, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(226, s))
-# define BOOST_PP_WHILE_226_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_227, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(227, s))
-# define BOOST_PP_WHILE_227_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_228, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(228, s))
-# define BOOST_PP_WHILE_228_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_229, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(229, s))
-# define BOOST_PP_WHILE_229_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_230, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(230, s))
-# define BOOST_PP_WHILE_230_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_231, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(231, s))
-# define BOOST_PP_WHILE_231_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_232, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(232, s))
-# define BOOST_PP_WHILE_232_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_233, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(233, s))
-# define BOOST_PP_WHILE_233_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_234, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(234, s))
-# define BOOST_PP_WHILE_234_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_235, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(235, s))
-# define BOOST_PP_WHILE_235_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_236, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(236, s))
-# define BOOST_PP_WHILE_236_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_237, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(237, s))
-# define BOOST_PP_WHILE_237_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_238, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(238, s))
-# define BOOST_PP_WHILE_238_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_239, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(239, s))
-# define BOOST_PP_WHILE_239_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_240, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(240, s))
-# define BOOST_PP_WHILE_240_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_241, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(241, s))
-# define BOOST_PP_WHILE_241_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_242, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(242, s))
-# define BOOST_PP_WHILE_242_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_243, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(243, s))
-# define BOOST_PP_WHILE_243_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_244, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(244, s))
-# define BOOST_PP_WHILE_244_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_245, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(245, s))
-# define BOOST_PP_WHILE_245_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_246, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(246, s))
-# define BOOST_PP_WHILE_246_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_247, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(247, s))
-# define BOOST_PP_WHILE_247_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_248, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(248, s))
-# define BOOST_PP_WHILE_248_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_249, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(249, s))
-# define BOOST_PP_WHILE_249_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_250, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(250, s))
-# define BOOST_PP_WHILE_250_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_251, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(251, s))
-# define BOOST_PP_WHILE_251_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_252, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(252, s))
-# define BOOST_PP_WHILE_252_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_253, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(253, s))
-# define BOOST_PP_WHILE_253_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_254, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(254, s))
-# define BOOST_PP_WHILE_254_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_255, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(255, s))
-# define BOOST_PP_WHILE_255_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_256, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(256, s))
-# define BOOST_PP_WHILE_256_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_257, BOOST_PP_TUPLE_ELEM_3_2)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_TUPLE_ELEM_2_1)(257, s))
-#
-#
-# endif
diff --git a/boost/preprocessor/control/detail/edg/while.hpp b/boost/preprocessor/control/detail/edg/while.hpp
deleted file mode 100644
index ce28eb2..0000000
--- a/boost/preprocessor/control/detail/edg/while.hpp
+++ /dev/null
@@ -1,534 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * Distributed under the Boost Software License, Version 1.0. (See
-#  * accompanying file LICENSE_1_0.txt or copy at
-#  * http://www.boost.org/LICENSE_1_0.txt)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_CONTROL_DETAIL_EDG_WHILE_HPP
-# define BOOST_PREPROCESSOR_CONTROL_DETAIL_EDG_WHILE_HPP
-#
-# include <boost/preprocessor/control/if.hpp>
-# include <boost/preprocessor/tuple/eat.hpp>
-#
-# define BOOST_PP_WHILE_1(p, o, s) BOOST_PP_WHILE_1_I(p, o, s)
-# define BOOST_PP_WHILE_2(p, o, s) BOOST_PP_WHILE_2_I(p, o, s)
-# define BOOST_PP_WHILE_3(p, o, s) BOOST_PP_WHILE_3_I(p, o, s)
-# define BOOST_PP_WHILE_4(p, o, s) BOOST_PP_WHILE_4_I(p, o, s)
-# define BOOST_PP_WHILE_5(p, o, s) BOOST_PP_WHILE_5_I(p, o, s)
-# define BOOST_PP_WHILE_6(p, o, s) BOOST_PP_WHILE_6_I(p, o, s)
-# define BOOST_PP_WHILE_7(p, o, s) BOOST_PP_WHILE_7_I(p, o, s)
-# define BOOST_PP_WHILE_8(p, o, s) BOOST_PP_WHILE_8_I(p, o, s)
-# define BOOST_PP_WHILE_9(p, o, s) BOOST_PP_WHILE_9_I(p, o, s)
-# define BOOST_PP_WHILE_10(p, o, s) BOOST_PP_WHILE_10_I(p, o, s)
-# define BOOST_PP_WHILE_11(p, o, s) BOOST_PP_WHILE_11_I(p, o, s)
-# define BOOST_PP_WHILE_12(p, o, s) BOOST_PP_WHILE_12_I(p, o, s)
-# define BOOST_PP_WHILE_13(p, o, s) BOOST_PP_WHILE_13_I(p, o, s)
-# define BOOST_PP_WHILE_14(p, o, s) BOOST_PP_WHILE_14_I(p, o, s)
-# define BOOST_PP_WHILE_15(p, o, s) BOOST_PP_WHILE_15_I(p, o, s)
-# define BOOST_PP_WHILE_16(p, o, s) BOOST_PP_WHILE_16_I(p, o, s)
-# define BOOST_PP_WHILE_17(p, o, s) BOOST_PP_WHILE_17_I(p, o, s)
-# define BOOST_PP_WHILE_18(p, o, s) BOOST_PP_WHILE_18_I(p, o, s)
-# define BOOST_PP_WHILE_19(p, o, s) BOOST_PP_WHILE_19_I(p, o, s)
-# define BOOST_PP_WHILE_20(p, o, s) BOOST_PP_WHILE_20_I(p, o, s)
-# define BOOST_PP_WHILE_21(p, o, s) BOOST_PP_WHILE_21_I(p, o, s)
-# define BOOST_PP_WHILE_22(p, o, s) BOOST_PP_WHILE_22_I(p, o, s)
-# define BOOST_PP_WHILE_23(p, o, s) BOOST_PP_WHILE_23_I(p, o, s)
-# define BOOST_PP_WHILE_24(p, o, s) BOOST_PP_WHILE_24_I(p, o, s)
-# define BOOST_PP_WHILE_25(p, o, s) BOOST_PP_WHILE_25_I(p, o, s)
-# define BOOST_PP_WHILE_26(p, o, s) BOOST_PP_WHILE_26_I(p, o, s)
-# define BOOST_PP_WHILE_27(p, o, s) BOOST_PP_WHILE_27_I(p, o, s)
-# define BOOST_PP_WHILE_28(p, o, s) BOOST_PP_WHILE_28_I(p, o, s)
-# define BOOST_PP_WHILE_29(p, o, s) BOOST_PP_WHILE_29_I(p, o, s)
-# define BOOST_PP_WHILE_30(p, o, s) BOOST_PP_WHILE_30_I(p, o, s)
-# define BOOST_PP_WHILE_31(p, o, s) BOOST_PP_WHILE_31_I(p, o, s)
-# define BOOST_PP_WHILE_32(p, o, s) BOOST_PP_WHILE_32_I(p, o, s)
-# define BOOST_PP_WHILE_33(p, o, s) BOOST_PP_WHILE_33_I(p, o, s)
-# define BOOST_PP_WHILE_34(p, o, s) BOOST_PP_WHILE_34_I(p, o, s)
-# define BOOST_PP_WHILE_35(p, o, s) BOOST_PP_WHILE_35_I(p, o, s)
-# define BOOST_PP_WHILE_36(p, o, s) BOOST_PP_WHILE_36_I(p, o, s)
-# define BOOST_PP_WHILE_37(p, o, s) BOOST_PP_WHILE_37_I(p, o, s)
-# define BOOST_PP_WHILE_38(p, o, s) BOOST_PP_WHILE_38_I(p, o, s)
-# define BOOST_PP_WHILE_39(p, o, s) BOOST_PP_WHILE_39_I(p, o, s)
-# define BOOST_PP_WHILE_40(p, o, s) BOOST_PP_WHILE_40_I(p, o, s)
-# define BOOST_PP_WHILE_41(p, o, s) BOOST_PP_WHILE_41_I(p, o, s)
-# define BOOST_PP_WHILE_42(p, o, s) BOOST_PP_WHILE_42_I(p, o, s)
-# define BOOST_PP_WHILE_43(p, o, s) BOOST_PP_WHILE_43_I(p, o, s)
-# define BOOST_PP_WHILE_44(p, o, s) BOOST_PP_WHILE_44_I(p, o, s)
-# define BOOST_PP_WHILE_45(p, o, s) BOOST_PP_WHILE_45_I(p, o, s)
-# define BOOST_PP_WHILE_46(p, o, s) BOOST_PP_WHILE_46_I(p, o, s)
-# define BOOST_PP_WHILE_47(p, o, s) BOOST_PP_WHILE_47_I(p, o, s)
-# define BOOST_PP_WHILE_48(p, o, s) BOOST_PP_WHILE_48_I(p, o, s)
-# define BOOST_PP_WHILE_49(p, o, s) BOOST_PP_WHILE_49_I(p, o, s)
-# define BOOST_PP_WHILE_50(p, o, s) BOOST_PP_WHILE_50_I(p, o, s)
-# define BOOST_PP_WHILE_51(p, o, s) BOOST_PP_WHILE_51_I(p, o, s)
-# define BOOST_PP_WHILE_52(p, o, s) BOOST_PP_WHILE_52_I(p, o, s)
-# define BOOST_PP_WHILE_53(p, o, s) BOOST_PP_WHILE_53_I(p, o, s)
-# define BOOST_PP_WHILE_54(p, o, s) BOOST_PP_WHILE_54_I(p, o, s)
-# define BOOST_PP_WHILE_55(p, o, s) BOOST_PP_WHILE_55_I(p, o, s)
-# define BOOST_PP_WHILE_56(p, o, s) BOOST_PP_WHILE_56_I(p, o, s)
-# define BOOST_PP_WHILE_57(p, o, s) BOOST_PP_WHILE_57_I(p, o, s)
-# define BOOST_PP_WHILE_58(p, o, s) BOOST_PP_WHILE_58_I(p, o, s)
-# define BOOST_PP_WHILE_59(p, o, s) BOOST_PP_WHILE_59_I(p, o, s)
-# define BOOST_PP_WHILE_60(p, o, s) BOOST_PP_WHILE_60_I(p, o, s)
-# define BOOST_PP_WHILE_61(p, o, s) BOOST_PP_WHILE_61_I(p, o, s)
-# define BOOST_PP_WHILE_62(p, o, s) BOOST_PP_WHILE_62_I(p, o, s)
-# define BOOST_PP_WHILE_63(p, o, s) BOOST_PP_WHILE_63_I(p, o, s)
-# define BOOST_PP_WHILE_64(p, o, s) BOOST_PP_WHILE_64_I(p, o, s)
-# define BOOST_PP_WHILE_65(p, o, s) BOOST_PP_WHILE_65_I(p, o, s)
-# define BOOST_PP_WHILE_66(p, o, s) BOOST_PP_WHILE_66_I(p, o, s)
-# define BOOST_PP_WHILE_67(p, o, s) BOOST_PP_WHILE_67_I(p, o, s)
-# define BOOST_PP_WHILE_68(p, o, s) BOOST_PP_WHILE_68_I(p, o, s)
-# define BOOST_PP_WHILE_69(p, o, s) BOOST_PP_WHILE_69_I(p, o, s)
-# define BOOST_PP_WHILE_70(p, o, s) BOOST_PP_WHILE_70_I(p, o, s)
-# define BOOST_PP_WHILE_71(p, o, s) BOOST_PP_WHILE_71_I(p, o, s)
-# define BOOST_PP_WHILE_72(p, o, s) BOOST_PP_WHILE_72_I(p, o, s)
-# define BOOST_PP_WHILE_73(p, o, s) BOOST_PP_WHILE_73_I(p, o, s)
-# define BOOST_PP_WHILE_74(p, o, s) BOOST_PP_WHILE_74_I(p, o, s)
-# define BOOST_PP_WHILE_75(p, o, s) BOOST_PP_WHILE_75_I(p, o, s)
-# define BOOST_PP_WHILE_76(p, o, s) BOOST_PP_WHILE_76_I(p, o, s)
-# define BOOST_PP_WHILE_77(p, o, s) BOOST_PP_WHILE_77_I(p, o, s)
-# define BOOST_PP_WHILE_78(p, o, s) BOOST_PP_WHILE_78_I(p, o, s)
-# define BOOST_PP_WHILE_79(p, o, s) BOOST_PP_WHILE_79_I(p, o, s)
-# define BOOST_PP_WHILE_80(p, o, s) BOOST_PP_WHILE_80_I(p, o, s)
-# define BOOST_PP_WHILE_81(p, o, s) BOOST_PP_WHILE_81_I(p, o, s)
-# define BOOST_PP_WHILE_82(p, o, s) BOOST_PP_WHILE_82_I(p, o, s)
-# define BOOST_PP_WHILE_83(p, o, s) BOOST_PP_WHILE_83_I(p, o, s)
-# define BOOST_PP_WHILE_84(p, o, s) BOOST_PP_WHILE_84_I(p, o, s)
-# define BOOST_PP_WHILE_85(p, o, s) BOOST_PP_WHILE_85_I(p, o, s)
-# define BOOST_PP_WHILE_86(p, o, s) BOOST_PP_WHILE_86_I(p, o, s)
-# define BOOST_PP_WHILE_87(p, o, s) BOOST_PP_WHILE_87_I(p, o, s)
-# define BOOST_PP_WHILE_88(p, o, s) BOOST_PP_WHILE_88_I(p, o, s)
-# define BOOST_PP_WHILE_89(p, o, s) BOOST_PP_WHILE_89_I(p, o, s)
-# define BOOST_PP_WHILE_90(p, o, s) BOOST_PP_WHILE_90_I(p, o, s)
-# define BOOST_PP_WHILE_91(p, o, s) BOOST_PP_WHILE_91_I(p, o, s)
-# define BOOST_PP_WHILE_92(p, o, s) BOOST_PP_WHILE_92_I(p, o, s)
-# define BOOST_PP_WHILE_93(p, o, s) BOOST_PP_WHILE_93_I(p, o, s)
-# define BOOST_PP_WHILE_94(p, o, s) BOOST_PP_WHILE_94_I(p, o, s)
-# define BOOST_PP_WHILE_95(p, o, s) BOOST_PP_WHILE_95_I(p, o, s)
-# define BOOST_PP_WHILE_96(p, o, s) BOOST_PP_WHILE_96_I(p, o, s)
-# define BOOST_PP_WHILE_97(p, o, s) BOOST_PP_WHILE_97_I(p, o, s)
-# define BOOST_PP_WHILE_98(p, o, s) BOOST_PP_WHILE_98_I(p, o, s)
-# define BOOST_PP_WHILE_99(p, o, s) BOOST_PP_WHILE_99_I(p, o, s)
-# define BOOST_PP_WHILE_100(p, o, s) BOOST_PP_WHILE_100_I(p, o, s)
-# define BOOST_PP_WHILE_101(p, o, s) BOOST_PP_WHILE_101_I(p, o, s)
-# define BOOST_PP_WHILE_102(p, o, s) BOOST_PP_WHILE_102_I(p, o, s)
-# define BOOST_PP_WHILE_103(p, o, s) BOOST_PP_WHILE_103_I(p, o, s)
-# define BOOST_PP_WHILE_104(p, o, s) BOOST_PP_WHILE_104_I(p, o, s)
-# define BOOST_PP_WHILE_105(p, o, s) BOOST_PP_WHILE_105_I(p, o, s)
-# define BOOST_PP_WHILE_106(p, o, s) BOOST_PP_WHILE_106_I(p, o, s)
-# define BOOST_PP_WHILE_107(p, o, s) BOOST_PP_WHILE_107_I(p, o, s)
-# define BOOST_PP_WHILE_108(p, o, s) BOOST_PP_WHILE_108_I(p, o, s)
-# define BOOST_PP_WHILE_109(p, o, s) BOOST_PP_WHILE_109_I(p, o, s)
-# define BOOST_PP_WHILE_110(p, o, s) BOOST_PP_WHILE_110_I(p, o, s)
-# define BOOST_PP_WHILE_111(p, o, s) BOOST_PP_WHILE_111_I(p, o, s)
-# define BOOST_PP_WHILE_112(p, o, s) BOOST_PP_WHILE_112_I(p, o, s)
-# define BOOST_PP_WHILE_113(p, o, s) BOOST_PP_WHILE_113_I(p, o, s)
-# define BOOST_PP_WHILE_114(p, o, s) BOOST_PP_WHILE_114_I(p, o, s)
-# define BOOST_PP_WHILE_115(p, o, s) BOOST_PP_WHILE_115_I(p, o, s)
-# define BOOST_PP_WHILE_116(p, o, s) BOOST_PP_WHILE_116_I(p, o, s)
-# define BOOST_PP_WHILE_117(p, o, s) BOOST_PP_WHILE_117_I(p, o, s)
-# define BOOST_PP_WHILE_118(p, o, s) BOOST_PP_WHILE_118_I(p, o, s)
-# define BOOST_PP_WHILE_119(p, o, s) BOOST_PP_WHILE_119_I(p, o, s)
-# define BOOST_PP_WHILE_120(p, o, s) BOOST_PP_WHILE_120_I(p, o, s)
-# define BOOST_PP_WHILE_121(p, o, s) BOOST_PP_WHILE_121_I(p, o, s)
-# define BOOST_PP_WHILE_122(p, o, s) BOOST_PP_WHILE_122_I(p, o, s)
-# define BOOST_PP_WHILE_123(p, o, s) BOOST_PP_WHILE_123_I(p, o, s)
-# define BOOST_PP_WHILE_124(p, o, s) BOOST_PP_WHILE_124_I(p, o, s)
-# define BOOST_PP_WHILE_125(p, o, s) BOOST_PP_WHILE_125_I(p, o, s)
-# define BOOST_PP_WHILE_126(p, o, s) BOOST_PP_WHILE_126_I(p, o, s)
-# define BOOST_PP_WHILE_127(p, o, s) BOOST_PP_WHILE_127_I(p, o, s)
-# define BOOST_PP_WHILE_128(p, o, s) BOOST_PP_WHILE_128_I(p, o, s)
-# define BOOST_PP_WHILE_129(p, o, s) BOOST_PP_WHILE_129_I(p, o, s)
-# define BOOST_PP_WHILE_130(p, o, s) BOOST_PP_WHILE_130_I(p, o, s)
-# define BOOST_PP_WHILE_131(p, o, s) BOOST_PP_WHILE_131_I(p, o, s)
-# define BOOST_PP_WHILE_132(p, o, s) BOOST_PP_WHILE_132_I(p, o, s)
-# define BOOST_PP_WHILE_133(p, o, s) BOOST_PP_WHILE_133_I(p, o, s)
-# define BOOST_PP_WHILE_134(p, o, s) BOOST_PP_WHILE_134_I(p, o, s)
-# define BOOST_PP_WHILE_135(p, o, s) BOOST_PP_WHILE_135_I(p, o, s)
-# define BOOST_PP_WHILE_136(p, o, s) BOOST_PP_WHILE_136_I(p, o, s)
-# define BOOST_PP_WHILE_137(p, o, s) BOOST_PP_WHILE_137_I(p, o, s)
-# define BOOST_PP_WHILE_138(p, o, s) BOOST_PP_WHILE_138_I(p, o, s)
-# define BOOST_PP_WHILE_139(p, o, s) BOOST_PP_WHILE_139_I(p, o, s)
-# define BOOST_PP_WHILE_140(p, o, s) BOOST_PP_WHILE_140_I(p, o, s)
-# define BOOST_PP_WHILE_141(p, o, s) BOOST_PP_WHILE_141_I(p, o, s)
-# define BOOST_PP_WHILE_142(p, o, s) BOOST_PP_WHILE_142_I(p, o, s)
-# define BOOST_PP_WHILE_143(p, o, s) BOOST_PP_WHILE_143_I(p, o, s)
-# define BOOST_PP_WHILE_144(p, o, s) BOOST_PP_WHILE_144_I(p, o, s)
-# define BOOST_PP_WHILE_145(p, o, s) BOOST_PP_WHILE_145_I(p, o, s)
-# define BOOST_PP_WHILE_146(p, o, s) BOOST_PP_WHILE_146_I(p, o, s)
-# define BOOST_PP_WHILE_147(p, o, s) BOOST_PP_WHILE_147_I(p, o, s)
-# define BOOST_PP_WHILE_148(p, o, s) BOOST_PP_WHILE_148_I(p, o, s)
-# define BOOST_PP_WHILE_149(p, o, s) BOOST_PP_WHILE_149_I(p, o, s)
-# define BOOST_PP_WHILE_150(p, o, s) BOOST_PP_WHILE_150_I(p, o, s)
-# define BOOST_PP_WHILE_151(p, o, s) BOOST_PP_WHILE_151_I(p, o, s)
-# define BOOST_PP_WHILE_152(p, o, s) BOOST_PP_WHILE_152_I(p, o, s)
-# define BOOST_PP_WHILE_153(p, o, s) BOOST_PP_WHILE_153_I(p, o, s)
-# define BOOST_PP_WHILE_154(p, o, s) BOOST_PP_WHILE_154_I(p, o, s)
-# define BOOST_PP_WHILE_155(p, o, s) BOOST_PP_WHILE_155_I(p, o, s)
-# define BOOST_PP_WHILE_156(p, o, s) BOOST_PP_WHILE_156_I(p, o, s)
-# define BOOST_PP_WHILE_157(p, o, s) BOOST_PP_WHILE_157_I(p, o, s)
-# define BOOST_PP_WHILE_158(p, o, s) BOOST_PP_WHILE_158_I(p, o, s)
-# define BOOST_PP_WHILE_159(p, o, s) BOOST_PP_WHILE_159_I(p, o, s)
-# define BOOST_PP_WHILE_160(p, o, s) BOOST_PP_WHILE_160_I(p, o, s)
-# define BOOST_PP_WHILE_161(p, o, s) BOOST_PP_WHILE_161_I(p, o, s)
-# define BOOST_PP_WHILE_162(p, o, s) BOOST_PP_WHILE_162_I(p, o, s)
-# define BOOST_PP_WHILE_163(p, o, s) BOOST_PP_WHILE_163_I(p, o, s)
-# define BOOST_PP_WHILE_164(p, o, s) BOOST_PP_WHILE_164_I(p, o, s)
-# define BOOST_PP_WHILE_165(p, o, s) BOOST_PP_WHILE_165_I(p, o, s)
-# define BOOST_PP_WHILE_166(p, o, s) BOOST_PP_WHILE_166_I(p, o, s)
-# define BOOST_PP_WHILE_167(p, o, s) BOOST_PP_WHILE_167_I(p, o, s)
-# define BOOST_PP_WHILE_168(p, o, s) BOOST_PP_WHILE_168_I(p, o, s)
-# define BOOST_PP_WHILE_169(p, o, s) BOOST_PP_WHILE_169_I(p, o, s)
-# define BOOST_PP_WHILE_170(p, o, s) BOOST_PP_WHILE_170_I(p, o, s)
-# define BOOST_PP_WHILE_171(p, o, s) BOOST_PP_WHILE_171_I(p, o, s)
-# define BOOST_PP_WHILE_172(p, o, s) BOOST_PP_WHILE_172_I(p, o, s)
-# define BOOST_PP_WHILE_173(p, o, s) BOOST_PP_WHILE_173_I(p, o, s)
-# define BOOST_PP_WHILE_174(p, o, s) BOOST_PP_WHILE_174_I(p, o, s)
-# define BOOST_PP_WHILE_175(p, o, s) BOOST_PP_WHILE_175_I(p, o, s)
-# define BOOST_PP_WHILE_176(p, o, s) BOOST_PP_WHILE_176_I(p, o, s)
-# define BOOST_PP_WHILE_177(p, o, s) BOOST_PP_WHILE_177_I(p, o, s)
-# define BOOST_PP_WHILE_178(p, o, s) BOOST_PP_WHILE_178_I(p, o, s)
-# define BOOST_PP_WHILE_179(p, o, s) BOOST_PP_WHILE_179_I(p, o, s)
-# define BOOST_PP_WHILE_180(p, o, s) BOOST_PP_WHILE_180_I(p, o, s)
-# define BOOST_PP_WHILE_181(p, o, s) BOOST_PP_WHILE_181_I(p, o, s)
-# define BOOST_PP_WHILE_182(p, o, s) BOOST_PP_WHILE_182_I(p, o, s)
-# define BOOST_PP_WHILE_183(p, o, s) BOOST_PP_WHILE_183_I(p, o, s)
-# define BOOST_PP_WHILE_184(p, o, s) BOOST_PP_WHILE_184_I(p, o, s)
-# define BOOST_PP_WHILE_185(p, o, s) BOOST_PP_WHILE_185_I(p, o, s)
-# define BOOST_PP_WHILE_186(p, o, s) BOOST_PP_WHILE_186_I(p, o, s)
-# define BOOST_PP_WHILE_187(p, o, s) BOOST_PP_WHILE_187_I(p, o, s)
-# define BOOST_PP_WHILE_188(p, o, s) BOOST_PP_WHILE_188_I(p, o, s)
-# define BOOST_PP_WHILE_189(p, o, s) BOOST_PP_WHILE_189_I(p, o, s)
-# define BOOST_PP_WHILE_190(p, o, s) BOOST_PP_WHILE_190_I(p, o, s)
-# define BOOST_PP_WHILE_191(p, o, s) BOOST_PP_WHILE_191_I(p, o, s)
-# define BOOST_PP_WHILE_192(p, o, s) BOOST_PP_WHILE_192_I(p, o, s)
-# define BOOST_PP_WHILE_193(p, o, s) BOOST_PP_WHILE_193_I(p, o, s)
-# define BOOST_PP_WHILE_194(p, o, s) BOOST_PP_WHILE_194_I(p, o, s)
-# define BOOST_PP_WHILE_195(p, o, s) BOOST_PP_WHILE_195_I(p, o, s)
-# define BOOST_PP_WHILE_196(p, o, s) BOOST_PP_WHILE_196_I(p, o, s)
-# define BOOST_PP_WHILE_197(p, o, s) BOOST_PP_WHILE_197_I(p, o, s)
-# define BOOST_PP_WHILE_198(p, o, s) BOOST_PP_WHILE_198_I(p, o, s)
-# define BOOST_PP_WHILE_199(p, o, s) BOOST_PP_WHILE_199_I(p, o, s)
-# define BOOST_PP_WHILE_200(p, o, s) BOOST_PP_WHILE_200_I(p, o, s)
-# define BOOST_PP_WHILE_201(p, o, s) BOOST_PP_WHILE_201_I(p, o, s)
-# define BOOST_PP_WHILE_202(p, o, s) BOOST_PP_WHILE_202_I(p, o, s)
-# define BOOST_PP_WHILE_203(p, o, s) BOOST_PP_WHILE_203_I(p, o, s)
-# define BOOST_PP_WHILE_204(p, o, s) BOOST_PP_WHILE_204_I(p, o, s)
-# define BOOST_PP_WHILE_205(p, o, s) BOOST_PP_WHILE_205_I(p, o, s)
-# define BOOST_PP_WHILE_206(p, o, s) BOOST_PP_WHILE_206_I(p, o, s)
-# define BOOST_PP_WHILE_207(p, o, s) BOOST_PP_WHILE_207_I(p, o, s)
-# define BOOST_PP_WHILE_208(p, o, s) BOOST_PP_WHILE_208_I(p, o, s)
-# define BOOST_PP_WHILE_209(p, o, s) BOOST_PP_WHILE_209_I(p, o, s)
-# define BOOST_PP_WHILE_210(p, o, s) BOOST_PP_WHILE_210_I(p, o, s)
-# define BOOST_PP_WHILE_211(p, o, s) BOOST_PP_WHILE_211_I(p, o, s)
-# define BOOST_PP_WHILE_212(p, o, s) BOOST_PP_WHILE_212_I(p, o, s)
-# define BOOST_PP_WHILE_213(p, o, s) BOOST_PP_WHILE_213_I(p, o, s)
-# define BOOST_PP_WHILE_214(p, o, s) BOOST_PP_WHILE_214_I(p, o, s)
-# define BOOST_PP_WHILE_215(p, o, s) BOOST_PP_WHILE_215_I(p, o, s)
-# define BOOST_PP_WHILE_216(p, o, s) BOOST_PP_WHILE_216_I(p, o, s)
-# define BOOST_PP_WHILE_217(p, o, s) BOOST_PP_WHILE_217_I(p, o, s)
-# define BOOST_PP_WHILE_218(p, o, s) BOOST_PP_WHILE_218_I(p, o, s)
-# define BOOST_PP_WHILE_219(p, o, s) BOOST_PP_WHILE_219_I(p, o, s)
-# define BOOST_PP_WHILE_220(p, o, s) BOOST_PP_WHILE_220_I(p, o, s)
-# define BOOST_PP_WHILE_221(p, o, s) BOOST_PP_WHILE_221_I(p, o, s)
-# define BOOST_PP_WHILE_222(p, o, s) BOOST_PP_WHILE_222_I(p, o, s)
-# define BOOST_PP_WHILE_223(p, o, s) BOOST_PP_WHILE_223_I(p, o, s)
-# define BOOST_PP_WHILE_224(p, o, s) BOOST_PP_WHILE_224_I(p, o, s)
-# define BOOST_PP_WHILE_225(p, o, s) BOOST_PP_WHILE_225_I(p, o, s)
-# define BOOST_PP_WHILE_226(p, o, s) BOOST_PP_WHILE_226_I(p, o, s)
-# define BOOST_PP_WHILE_227(p, o, s) BOOST_PP_WHILE_227_I(p, o, s)
-# define BOOST_PP_WHILE_228(p, o, s) BOOST_PP_WHILE_228_I(p, o, s)
-# define BOOST_PP_WHILE_229(p, o, s) BOOST_PP_WHILE_229_I(p, o, s)
-# define BOOST_PP_WHILE_230(p, o, s) BOOST_PP_WHILE_230_I(p, o, s)
-# define BOOST_PP_WHILE_231(p, o, s) BOOST_PP_WHILE_231_I(p, o, s)
-# define BOOST_PP_WHILE_232(p, o, s) BOOST_PP_WHILE_232_I(p, o, s)
-# define BOOST_PP_WHILE_233(p, o, s) BOOST_PP_WHILE_233_I(p, o, s)
-# define BOOST_PP_WHILE_234(p, o, s) BOOST_PP_WHILE_234_I(p, o, s)
-# define BOOST_PP_WHILE_235(p, o, s) BOOST_PP_WHILE_235_I(p, o, s)
-# define BOOST_PP_WHILE_236(p, o, s) BOOST_PP_WHILE_236_I(p, o, s)
-# define BOOST_PP_WHILE_237(p, o, s) BOOST_PP_WHILE_237_I(p, o, s)
-# define BOOST_PP_WHILE_238(p, o, s) BOOST_PP_WHILE_238_I(p, o, s)
-# define BOOST_PP_WHILE_239(p, o, s) BOOST_PP_WHILE_239_I(p, o, s)
-# define BOOST_PP_WHILE_240(p, o, s) BOOST_PP_WHILE_240_I(p, o, s)
-# define BOOST_PP_WHILE_241(p, o, s) BOOST_PP_WHILE_241_I(p, o, s)
-# define BOOST_PP_WHILE_242(p, o, s) BOOST_PP_WHILE_242_I(p, o, s)
-# define BOOST_PP_WHILE_243(p, o, s) BOOST_PP_WHILE_243_I(p, o, s)
-# define BOOST_PP_WHILE_244(p, o, s) BOOST_PP_WHILE_244_I(p, o, s)
-# define BOOST_PP_WHILE_245(p, o, s) BOOST_PP_WHILE_245_I(p, o, s)
-# define BOOST_PP_WHILE_246(p, o, s) BOOST_PP_WHILE_246_I(p, o, s)
-# define BOOST_PP_WHILE_247(p, o, s) BOOST_PP_WHILE_247_I(p, o, s)
-# define BOOST_PP_WHILE_248(p, o, s) BOOST_PP_WHILE_248_I(p, o, s)
-# define BOOST_PP_WHILE_249(p, o, s) BOOST_PP_WHILE_249_I(p, o, s)
-# define BOOST_PP_WHILE_250(p, o, s) BOOST_PP_WHILE_250_I(p, o, s)
-# define BOOST_PP_WHILE_251(p, o, s) BOOST_PP_WHILE_251_I(p, o, s)
-# define BOOST_PP_WHILE_252(p, o, s) BOOST_PP_WHILE_252_I(p, o, s)
-# define BOOST_PP_WHILE_253(p, o, s) BOOST_PP_WHILE_253_I(p, o, s)
-# define BOOST_PP_WHILE_254(p, o, s) BOOST_PP_WHILE_254_I(p, o, s)
-# define BOOST_PP_WHILE_255(p, o, s) BOOST_PP_WHILE_255_I(p, o, s)
-# define BOOST_PP_WHILE_256(p, o, s) BOOST_PP_WHILE_256_I(p, o, s)
-#
-# define BOOST_PP_WHILE_1_I(p, o, s) BOOST_PP_IF(p(2, s), BOOST_PP_WHILE_2, s BOOST_PP_TUPLE_EAT_3)(p, o, o(2, s))
-# define BOOST_PP_WHILE_2_I(p, o, s) BOOST_PP_IF(p(3, s), BOOST_PP_WHILE_3, s BOOST_PP_TUPLE_EAT_3)(p, o, o(3, s))
-# define BOOST_PP_WHILE_3_I(p, o, s) BOOST_PP_IF(p(4, s), BOOST_PP_WHILE_4, s BOOST_PP_TUPLE_EAT_3)(p, o, o(4, s))
-# define BOOST_PP_WHILE_4_I(p, o, s) BOOST_PP_IF(p(5, s), BOOST_PP_WHILE_5, s BOOST_PP_TUPLE_EAT_3)(p, o, o(5, s))
-# define BOOST_PP_WHILE_5_I(p, o, s) BOOST_PP_IF(p(6, s), BOOST_PP_WHILE_6, s BOOST_PP_TUPLE_EAT_3)(p, o, o(6, s))
-# define BOOST_PP_WHILE_6_I(p, o, s) BOOST_PP_IF(p(7, s), BOOST_PP_WHILE_7, s BOOST_PP_TUPLE_EAT_3)(p, o, o(7, s))
-# define BOOST_PP_WHILE_7_I(p, o, s) BOOST_PP_IF(p(8, s), BOOST_PP_WHILE_8, s BOOST_PP_TUPLE_EAT_3)(p, o, o(8, s))
-# define BOOST_PP_WHILE_8_I(p, o, s) BOOST_PP_IF(p(9, s), BOOST_PP_WHILE_9, s BOOST_PP_TUPLE_EAT_3)(p, o, o(9, s))
-# define BOOST_PP_WHILE_9_I(p, o, s) BOOST_PP_IF(p(10, s), BOOST_PP_WHILE_10, s BOOST_PP_TUPLE_EAT_3)(p, o, o(10, s))
-# define BOOST_PP_WHILE_10_I(p, o, s) BOOST_PP_IF(p(11, s), BOOST_PP_WHILE_11, s BOOST_PP_TUPLE_EAT_3)(p, o, o(11, s))
-# define BOOST_PP_WHILE_11_I(p, o, s) BOOST_PP_IF(p(12, s), BOOST_PP_WHILE_12, s BOOST_PP_TUPLE_EAT_3)(p, o, o(12, s))
-# define BOOST_PP_WHILE_12_I(p, o, s) BOOST_PP_IF(p(13, s), BOOST_PP_WHILE_13, s BOOST_PP_TUPLE_EAT_3)(p, o, o(13, s))
-# define BOOST_PP_WHILE_13_I(p, o, s) BOOST_PP_IF(p(14, s), BOOST_PP_WHILE_14, s BOOST_PP_TUPLE_EAT_3)(p, o, o(14, s))
-# define BOOST_PP_WHILE_14_I(p, o, s) BOOST_PP_IF(p(15, s), BOOST_PP_WHILE_15, s BOOST_PP_TUPLE_EAT_3)(p, o, o(15, s))
-# define BOOST_PP_WHILE_15_I(p, o, s) BOOST_PP_IF(p(16, s), BOOST_PP_WHILE_16, s BOOST_PP_TUPLE_EAT_3)(p, o, o(16, s))
-# define BOOST_PP_WHILE_16_I(p, o, s) BOOST_PP_IF(p(17, s), BOOST_PP_WHILE_17, s BOOST_PP_TUPLE_EAT_3)(p, o, o(17, s))
-# define BOOST_PP_WHILE_17_I(p, o, s) BOOST_PP_IF(p(18, s), BOOST_PP_WHILE_18, s BOOST_PP_TUPLE_EAT_3)(p, o, o(18, s))
-# define BOOST_PP_WHILE_18_I(p, o, s) BOOST_PP_IF(p(19, s), BOOST_PP_WHILE_19, s BOOST_PP_TUPLE_EAT_3)(p, o, o(19, s))
-# define BOOST_PP_WHILE_19_I(p, o, s) BOOST_PP_IF(p(20, s), BOOST_PP_WHILE_20, s BOOST_PP_TUPLE_EAT_3)(p, o, o(20, s))
-# define BOOST_PP_WHILE_20_I(p, o, s) BOOST_PP_IF(p(21, s), BOOST_PP_WHILE_21, s BOOST_PP_TUPLE_EAT_3)(p, o, o(21, s))
-# define BOOST_PP_WHILE_21_I(p, o, s) BOOST_PP_IF(p(22, s), BOOST_PP_WHILE_22, s BOOST_PP_TUPLE_EAT_3)(p, o, o(22, s))
-# define BOOST_PP_WHILE_22_I(p, o, s) BOOST_PP_IF(p(23, s), BOOST_PP_WHILE_23, s BOOST_PP_TUPLE_EAT_3)(p, o, o(23, s))
-# define BOOST_PP_WHILE_23_I(p, o, s) BOOST_PP_IF(p(24, s), BOOST_PP_WHILE_24, s BOOST_PP_TUPLE_EAT_3)(p, o, o(24, s))
-# define BOOST_PP_WHILE_24_I(p, o, s) BOOST_PP_IF(p(25, s), BOOST_PP_WHILE_25, s BOOST_PP_TUPLE_EAT_3)(p, o, o(25, s))
-# define BOOST_PP_WHILE_25_I(p, o, s) BOOST_PP_IF(p(26, s), BOOST_PP_WHILE_26, s BOOST_PP_TUPLE_EAT_3)(p, o, o(26, s))
-# define BOOST_PP_WHILE_26_I(p, o, s) BOOST_PP_IF(p(27, s), BOOST_PP_WHILE_27, s BOOST_PP_TUPLE_EAT_3)(p, o, o(27, s))
-# define BOOST_PP_WHILE_27_I(p, o, s) BOOST_PP_IF(p(28, s), BOOST_PP_WHILE_28, s BOOST_PP_TUPLE_EAT_3)(p, o, o(28, s))
-# define BOOST_PP_WHILE_28_I(p, o, s) BOOST_PP_IF(p(29, s), BOOST_PP_WHILE_29, s BOOST_PP_TUPLE_EAT_3)(p, o, o(29, s))
-# define BOOST_PP_WHILE_29_I(p, o, s) BOOST_PP_IF(p(30, s), BOOST_PP_WHILE_30, s BOOST_PP_TUPLE_EAT_3)(p, o, o(30, s))
-# define BOOST_PP_WHILE_30_I(p, o, s) BOOST_PP_IF(p(31, s), BOOST_PP_WHILE_31, s BOOST_PP_TUPLE_EAT_3)(p, o, o(31, s))
-# define BOOST_PP_WHILE_31_I(p, o, s) BOOST_PP_IF(p(32, s), BOOST_PP_WHILE_32, s BOOST_PP_TUPLE_EAT_3)(p, o, o(32, s))
-# define BOOST_PP_WHILE_32_I(p, o, s) BOOST_PP_IF(p(33, s), BOOST_PP_WHILE_33, s BOOST_PP_TUPLE_EAT_3)(p, o, o(33, s))
-# define BOOST_PP_WHILE_33_I(p, o, s) BOOST_PP_IF(p(34, s), BOOST_PP_WHILE_34, s BOOST_PP_TUPLE_EAT_3)(p, o, o(34, s))
-# define BOOST_PP_WHILE_34_I(p, o, s) BOOST_PP_IF(p(35, s), BOOST_PP_WHILE_35, s BOOST_PP_TUPLE_EAT_3)(p, o, o(35, s))
-# define BOOST_PP_WHILE_35_I(p, o, s) BOOST_PP_IF(p(36, s), BOOST_PP_WHILE_36, s BOOST_PP_TUPLE_EAT_3)(p, o, o(36, s))
-# define BOOST_PP_WHILE_36_I(p, o, s) BOOST_PP_IF(p(37, s), BOOST_PP_WHILE_37, s BOOST_PP_TUPLE_EAT_3)(p, o, o(37, s))
-# define BOOST_PP_WHILE_37_I(p, o, s) BOOST_PP_IF(p(38, s), BOOST_PP_WHILE_38, s BOOST_PP_TUPLE_EAT_3)(p, o, o(38, s))
-# define BOOST_PP_WHILE_38_I(p, o, s) BOOST_PP_IF(p(39, s), BOOST_PP_WHILE_39, s BOOST_PP_TUPLE_EAT_3)(p, o, o(39, s))
-# define BOOST_PP_WHILE_39_I(p, o, s) BOOST_PP_IF(p(40, s), BOOST_PP_WHILE_40, s BOOST_PP_TUPLE_EAT_3)(p, o, o(40, s))
-# define BOOST_PP_WHILE_40_I(p, o, s) BOOST_PP_IF(p(41, s), BOOST_PP_WHILE_41, s BOOST_PP_TUPLE_EAT_3)(p, o, o(41, s))
-# define BOOST_PP_WHILE_41_I(p, o, s) BOOST_PP_IF(p(42, s), BOOST_PP_WHILE_42, s BOOST_PP_TUPLE_EAT_3)(p, o, o(42, s))
-# define BOOST_PP_WHILE_42_I(p, o, s) BOOST_PP_IF(p(43, s), BOOST_PP_WHILE_43, s BOOST_PP_TUPLE_EAT_3)(p, o, o(43, s))
-# define BOOST_PP_WHILE_43_I(p, o, s) BOOST_PP_IF(p(44, s), BOOST_PP_WHILE_44, s BOOST_PP_TUPLE_EAT_3)(p, o, o(44, s))
-# define BOOST_PP_WHILE_44_I(p, o, s) BOOST_PP_IF(p(45, s), BOOST_PP_WHILE_45, s BOOST_PP_TUPLE_EAT_3)(p, o, o(45, s))
-# define BOOST_PP_WHILE_45_I(p, o, s) BOOST_PP_IF(p(46, s), BOOST_PP_WHILE_46, s BOOST_PP_TUPLE_EAT_3)(p, o, o(46, s))
-# define BOOST_PP_WHILE_46_I(p, o, s) BOOST_PP_IF(p(47, s), BOOST_PP_WHILE_47, s BOOST_PP_TUPLE_EAT_3)(p, o, o(47, s))
-# define BOOST_PP_WHILE_47_I(p, o, s) BOOST_PP_IF(p(48, s), BOOST_PP_WHILE_48, s BOOST_PP_TUPLE_EAT_3)(p, o, o(48, s))
-# define BOOST_PP_WHILE_48_I(p, o, s) BOOST_PP_IF(p(49, s), BOOST_PP_WHILE_49, s BOOST_PP_TUPLE_EAT_3)(p, o, o(49, s))
-# define BOOST_PP_WHILE_49_I(p, o, s) BOOST_PP_IF(p(50, s), BOOST_PP_WHILE_50, s BOOST_PP_TUPLE_EAT_3)(p, o, o(50, s))
-# define BOOST_PP_WHILE_50_I(p, o, s) BOOST_PP_IF(p(51, s), BOOST_PP_WHILE_51, s BOOST_PP_TUPLE_EAT_3)(p, o, o(51, s))
-# define BOOST_PP_WHILE_51_I(p, o, s) BOOST_PP_IF(p(52, s), BOOST_PP_WHILE_52, s BOOST_PP_TUPLE_EAT_3)(p, o, o(52, s))
-# define BOOST_PP_WHILE_52_I(p, o, s) BOOST_PP_IF(p(53, s), BOOST_PP_WHILE_53, s BOOST_PP_TUPLE_EAT_3)(p, o, o(53, s))
-# define BOOST_PP_WHILE_53_I(p, o, s) BOOST_PP_IF(p(54, s), BOOST_PP_WHILE_54, s BOOST_PP_TUPLE_EAT_3)(p, o, o(54, s))
-# define BOOST_PP_WHILE_54_I(p, o, s) BOOST_PP_IF(p(55, s), BOOST_PP_WHILE_55, s BOOST_PP_TUPLE_EAT_3)(p, o, o(55, s))
-# define BOOST_PP_WHILE_55_I(p, o, s) BOOST_PP_IF(p(56, s), BOOST_PP_WHILE_56, s BOOST_PP_TUPLE_EAT_3)(p, o, o(56, s))
-# define BOOST_PP_WHILE_56_I(p, o, s) BOOST_PP_IF(p(57, s), BOOST_PP_WHILE_57, s BOOST_PP_TUPLE_EAT_3)(p, o, o(57, s))
-# define BOOST_PP_WHILE_57_I(p, o, s) BOOST_PP_IF(p(58, s), BOOST_PP_WHILE_58, s BOOST_PP_TUPLE_EAT_3)(p, o, o(58, s))
-# define BOOST_PP_WHILE_58_I(p, o, s) BOOST_PP_IF(p(59, s), BOOST_PP_WHILE_59, s BOOST_PP_TUPLE_EAT_3)(p, o, o(59, s))
-# define BOOST_PP_WHILE_59_I(p, o, s) BOOST_PP_IF(p(60, s), BOOST_PP_WHILE_60, s BOOST_PP_TUPLE_EAT_3)(p, o, o(60, s))
-# define BOOST_PP_WHILE_60_I(p, o, s) BOOST_PP_IF(p(61, s), BOOST_PP_WHILE_61, s BOOST_PP_TUPLE_EAT_3)(p, o, o(61, s))
-# define BOOST_PP_WHILE_61_I(p, o, s) BOOST_PP_IF(p(62, s), BOOST_PP_WHILE_62, s BOOST_PP_TUPLE_EAT_3)(p, o, o(62, s))
-# define BOOST_PP_WHILE_62_I(p, o, s) BOOST_PP_IF(p(63, s), BOOST_PP_WHILE_63, s BOOST_PP_TUPLE_EAT_3)(p, o, o(63, s))
-# define BOOST_PP_WHILE_63_I(p, o, s) BOOST_PP_IF(p(64, s), BOOST_PP_WHILE_64, s BOOST_PP_TUPLE_EAT_3)(p, o, o(64, s))
-# define BOOST_PP_WHILE_64_I(p, o, s) BOOST_PP_IF(p(65, s), BOOST_PP_WHILE_65, s BOOST_PP_TUPLE_EAT_3)(p, o, o(65, s))
-# define BOOST_PP_WHILE_65_I(p, o, s) BOOST_PP_IF(p(66, s), BOOST_PP_WHILE_66, s BOOST_PP_TUPLE_EAT_3)(p, o, o(66, s))
-# define BOOST_PP_WHILE_66_I(p, o, s) BOOST_PP_IF(p(67, s), BOOST_PP_WHILE_67, s BOOST_PP_TUPLE_EAT_3)(p, o, o(67, s))
-# define BOOST_PP_WHILE_67_I(p, o, s) BOOST_PP_IF(p(68, s), BOOST_PP_WHILE_68, s BOOST_PP_TUPLE_EAT_3)(p, o, o(68, s))
-# define BOOST_PP_WHILE_68_I(p, o, s) BOOST_PP_IF(p(69, s), BOOST_PP_WHILE_69, s BOOST_PP_TUPLE_EAT_3)(p, o, o(69, s))
-# define BOOST_PP_WHILE_69_I(p, o, s) BOOST_PP_IF(p(70, s), BOOST_PP_WHILE_70, s BOOST_PP_TUPLE_EAT_3)(p, o, o(70, s))
-# define BOOST_PP_WHILE_70_I(p, o, s) BOOST_PP_IF(p(71, s), BOOST_PP_WHILE_71, s BOOST_PP_TUPLE_EAT_3)(p, o, o(71, s))
-# define BOOST_PP_WHILE_71_I(p, o, s) BOOST_PP_IF(p(72, s), BOOST_PP_WHILE_72, s BOOST_PP_TUPLE_EAT_3)(p, o, o(72, s))
-# define BOOST_PP_WHILE_72_I(p, o, s) BOOST_PP_IF(p(73, s), BOOST_PP_WHILE_73, s BOOST_PP_TUPLE_EAT_3)(p, o, o(73, s))
-# define BOOST_PP_WHILE_73_I(p, o, s) BOOST_PP_IF(p(74, s), BOOST_PP_WHILE_74, s BOOST_PP_TUPLE_EAT_3)(p, o, o(74, s))
-# define BOOST_PP_WHILE_74_I(p, o, s) BOOST_PP_IF(p(75, s), BOOST_PP_WHILE_75, s BOOST_PP_TUPLE_EAT_3)(p, o, o(75, s))
-# define BOOST_PP_WHILE_75_I(p, o, s) BOOST_PP_IF(p(76, s), BOOST_PP_WHILE_76, s BOOST_PP_TUPLE_EAT_3)(p, o, o(76, s))
-# define BOOST_PP_WHILE_76_I(p, o, s) BOOST_PP_IF(p(77, s), BOOST_PP_WHILE_77, s BOOST_PP_TUPLE_EAT_3)(p, o, o(77, s))
-# define BOOST_PP_WHILE_77_I(p, o, s) BOOST_PP_IF(p(78, s), BOOST_PP_WHILE_78, s BOOST_PP_TUPLE_EAT_3)(p, o, o(78, s))
-# define BOOST_PP_WHILE_78_I(p, o, s) BOOST_PP_IF(p(79, s), BOOST_PP_WHILE_79, s BOOST_PP_TUPLE_EAT_3)(p, o, o(79, s))
-# define BOOST_PP_WHILE_79_I(p, o, s) BOOST_PP_IF(p(80, s), BOOST_PP_WHILE_80, s BOOST_PP_TUPLE_EAT_3)(p, o, o(80, s))
-# define BOOST_PP_WHILE_80_I(p, o, s) BOOST_PP_IF(p(81, s), BOOST_PP_WHILE_81, s BOOST_PP_TUPLE_EAT_3)(p, o, o(81, s))
-# define BOOST_PP_WHILE_81_I(p, o, s) BOOST_PP_IF(p(82, s), BOOST_PP_WHILE_82, s BOOST_PP_TUPLE_EAT_3)(p, o, o(82, s))
-# define BOOST_PP_WHILE_82_I(p, o, s) BOOST_PP_IF(p(83, s), BOOST_PP_WHILE_83, s BOOST_PP_TUPLE_EAT_3)(p, o, o(83, s))
-# define BOOST_PP_WHILE_83_I(p, o, s) BOOST_PP_IF(p(84, s), BOOST_PP_WHILE_84, s BOOST_PP_TUPLE_EAT_3)(p, o, o(84, s))
-# define BOOST_PP_WHILE_84_I(p, o, s) BOOST_PP_IF(p(85, s), BOOST_PP_WHILE_85, s BOOST_PP_TUPLE_EAT_3)(p, o, o(85, s))
-# define BOOST_PP_WHILE_85_I(p, o, s) BOOST_PP_IF(p(86, s), BOOST_PP_WHILE_86, s BOOST_PP_TUPLE_EAT_3)(p, o, o(86, s))
-# define BOOST_PP_WHILE_86_I(p, o, s) BOOST_PP_IF(p(87, s), BOOST_PP_WHILE_87, s BOOST_PP_TUPLE_EAT_3)(p, o, o(87, s))
-# define BOOST_PP_WHILE_87_I(p, o, s) BOOST_PP_IF(p(88, s), BOOST_PP_WHILE_88, s BOOST_PP_TUPLE_EAT_3)(p, o, o(88, s))
-# define BOOST_PP_WHILE_88_I(p, o, s) BOOST_PP_IF(p(89, s), BOOST_PP_WHILE_89, s BOOST_PP_TUPLE_EAT_3)(p, o, o(89, s))
-# define BOOST_PP_WHILE_89_I(p, o, s) BOOST_PP_IF(p(90, s), BOOST_PP_WHILE_90, s BOOST_PP_TUPLE_EAT_3)(p, o, o(90, s))
-# define BOOST_PP_WHILE_90_I(p, o, s) BOOST_PP_IF(p(91, s), BOOST_PP_WHILE_91, s BOOST_PP_TUPLE_EAT_3)(p, o, o(91, s))
-# define BOOST_PP_WHILE_91_I(p, o, s) BOOST_PP_IF(p(92, s), BOOST_PP_WHILE_92, s BOOST_PP_TUPLE_EAT_3)(p, o, o(92, s))
-# define BOOST_PP_WHILE_92_I(p, o, s) BOOST_PP_IF(p(93, s), BOOST_PP_WHILE_93, s BOOST_PP_TUPLE_EAT_3)(p, o, o(93, s))
-# define BOOST_PP_WHILE_93_I(p, o, s) BOOST_PP_IF(p(94, s), BOOST_PP_WHILE_94, s BOOST_PP_TUPLE_EAT_3)(p, o, o(94, s))
-# define BOOST_PP_WHILE_94_I(p, o, s) BOOST_PP_IF(p(95, s), BOOST_PP_WHILE_95, s BOOST_PP_TUPLE_EAT_3)(p, o, o(95, s))
-# define BOOST_PP_WHILE_95_I(p, o, s) BOOST_PP_IF(p(96, s), BOOST_PP_WHILE_96, s BOOST_PP_TUPLE_EAT_3)(p, o, o(96, s))
-# define BOOST_PP_WHILE_96_I(p, o, s) BOOST_PP_IF(p(97, s), BOOST_PP_WHILE_97, s BOOST_PP_TUPLE_EAT_3)(p, o, o(97, s))
-# define BOOST_PP_WHILE_97_I(p, o, s) BOOST_PP_IF(p(98, s), BOOST_PP_WHILE_98, s BOOST_PP_TUPLE_EAT_3)(p, o, o(98, s))
-# define BOOST_PP_WHILE_98_I(p, o, s) BOOST_PP_IF(p(99, s), BOOST_PP_WHILE_99, s BOOST_PP_TUPLE_EAT_3)(p, o, o(99, s))
-# define BOOST_PP_WHILE_99_I(p, o, s) BOOST_PP_IF(p(100, s), BOOST_PP_WHILE_100, s BOOST_PP_TUPLE_EAT_3)(p, o, o(100, s))
-# define BOOST_PP_WHILE_100_I(p, o, s) BOOST_PP_IF(p(101, s), BOOST_PP_WHILE_101, s BOOST_PP_TUPLE_EAT_3)(p, o, o(101, s))
-# define BOOST_PP_WHILE_101_I(p, o, s) BOOST_PP_IF(p(102, s), BOOST_PP_WHILE_102, s BOOST_PP_TUPLE_EAT_3)(p, o, o(102, s))
-# define BOOST_PP_WHILE_102_I(p, o, s) BOOST_PP_IF(p(103, s), BOOST_PP_WHILE_103, s BOOST_PP_TUPLE_EAT_3)(p, o, o(103, s))
-# define BOOST_PP_WHILE_103_I(p, o, s) BOOST_PP_IF(p(104, s), BOOST_PP_WHILE_104, s BOOST_PP_TUPLE_EAT_3)(p, o, o(104, s))
-# define BOOST_PP_WHILE_104_I(p, o, s) BOOST_PP_IF(p(105, s), BOOST_PP_WHILE_105, s BOOST_PP_TUPLE_EAT_3)(p, o, o(105, s))
-# define BOOST_PP_WHILE_105_I(p, o, s) BOOST_PP_IF(p(106, s), BOOST_PP_WHILE_106, s BOOST_PP_TUPLE_EAT_3)(p, o, o(106, s))
-# define BOOST_PP_WHILE_106_I(p, o, s) BOOST_PP_IF(p(107, s), BOOST_PP_WHILE_107, s BOOST_PP_TUPLE_EAT_3)(p, o, o(107, s))
-# define BOOST_PP_WHILE_107_I(p, o, s) BOOST_PP_IF(p(108, s), BOOST_PP_WHILE_108, s BOOST_PP_TUPLE_EAT_3)(p, o, o(108, s))
-# define BOOST_PP_WHILE_108_I(p, o, s) BOOST_PP_IF(p(109, s), BOOST_PP_WHILE_109, s BOOST_PP_TUPLE_EAT_3)(p, o, o(109, s))
-# define BOOST_PP_WHILE_109_I(p, o, s) BOOST_PP_IF(p(110, s), BOOST_PP_WHILE_110, s BOOST_PP_TUPLE_EAT_3)(p, o, o(110, s))
-# define BOOST_PP_WHILE_110_I(p, o, s) BOOST_PP_IF(p(111, s), BOOST_PP_WHILE_111, s BOOST_PP_TUPLE_EAT_3)(p, o, o(111, s))
-# define BOOST_PP_WHILE_111_I(p, o, s) BOOST_PP_IF(p(112, s), BOOST_PP_WHILE_112, s BOOST_PP_TUPLE_EAT_3)(p, o, o(112, s))
-# define BOOST_PP_WHILE_112_I(p, o, s) BOOST_PP_IF(p(113, s), BOOST_PP_WHILE_113, s BOOST_PP_TUPLE_EAT_3)(p, o, o(113, s))
-# define BOOST_PP_WHILE_113_I(p, o, s) BOOST_PP_IF(p(114, s), BOOST_PP_WHILE_114, s BOOST_PP_TUPLE_EAT_3)(p, o, o(114, s))
-# define BOOST_PP_WHILE_114_I(p, o, s) BOOST_PP_IF(p(115, s), BOOST_PP_WHILE_115, s BOOST_PP_TUPLE_EAT_3)(p, o, o(115, s))
-# define BOOST_PP_WHILE_115_I(p, o, s) BOOST_PP_IF(p(116, s), BOOST_PP_WHILE_116, s BOOST_PP_TUPLE_EAT_3)(p, o, o(116, s))
-# define BOOST_PP_WHILE_116_I(p, o, s) BOOST_PP_IF(p(117, s), BOOST_PP_WHILE_117, s BOOST_PP_TUPLE_EAT_3)(p, o, o(117, s))
-# define BOOST_PP_WHILE_117_I(p, o, s) BOOST_PP_IF(p(118, s), BOOST_PP_WHILE_118, s BOOST_PP_TUPLE_EAT_3)(p, o, o(118, s))
-# define BOOST_PP_WHILE_118_I(p, o, s) BOOST_PP_IF(p(119, s), BOOST_PP_WHILE_119, s BOOST_PP_TUPLE_EAT_3)(p, o, o(119, s))
-# define BOOST_PP_WHILE_119_I(p, o, s) BOOST_PP_IF(p(120, s), BOOST_PP_WHILE_120, s BOOST_PP_TUPLE_EAT_3)(p, o, o(120, s))
-# define BOOST_PP_WHILE_120_I(p, o, s) BOOST_PP_IF(p(121, s), BOOST_PP_WHILE_121, s BOOST_PP_TUPLE_EAT_3)(p, o, o(121, s))
-# define BOOST_PP_WHILE_121_I(p, o, s) BOOST_PP_IF(p(122, s), BOOST_PP_WHILE_122, s BOOST_PP_TUPLE_EAT_3)(p, o, o(122, s))
-# define BOOST_PP_WHILE_122_I(p, o, s) BOOST_PP_IF(p(123, s), BOOST_PP_WHILE_123, s BOOST_PP_TUPLE_EAT_3)(p, o, o(123, s))
-# define BOOST_PP_WHILE_123_I(p, o, s) BOOST_PP_IF(p(124, s), BOOST_PP_WHILE_124, s BOOST_PP_TUPLE_EAT_3)(p, o, o(124, s))
-# define BOOST_PP_WHILE_124_I(p, o, s) BOOST_PP_IF(p(125, s), BOOST_PP_WHILE_125, s BOOST_PP_TUPLE_EAT_3)(p, o, o(125, s))
-# define BOOST_PP_WHILE_125_I(p, o, s) BOOST_PP_IF(p(126, s), BOOST_PP_WHILE_126, s BOOST_PP_TUPLE_EAT_3)(p, o, o(126, s))
-# define BOOST_PP_WHILE_126_I(p, o, s) BOOST_PP_IF(p(127, s), BOOST_PP_WHILE_127, s BOOST_PP_TUPLE_EAT_3)(p, o, o(127, s))
-# define BOOST_PP_WHILE_127_I(p, o, s) BOOST_PP_IF(p(128, s), BOOST_PP_WHILE_128, s BOOST_PP_TUPLE_EAT_3)(p, o, o(128, s))
-# define BOOST_PP_WHILE_128_I(p, o, s) BOOST_PP_IF(p(129, s), BOOST_PP_WHILE_129, s BOOST_PP_TUPLE_EAT_3)(p, o, o(129, s))
-# define BOOST_PP_WHILE_129_I(p, o, s) BOOST_PP_IF(p(130, s), BOOST_PP_WHILE_130, s BOOST_PP_TUPLE_EAT_3)(p, o, o(130, s))
-# define BOOST_PP_WHILE_130_I(p, o, s) BOOST_PP_IF(p(131, s), BOOST_PP_WHILE_131, s BOOST_PP_TUPLE_EAT_3)(p, o, o(131, s))
-# define BOOST_PP_WHILE_131_I(p, o, s) BOOST_PP_IF(p(132, s), BOOST_PP_WHILE_132, s BOOST_PP_TUPLE_EAT_3)(p, o, o(132, s))
-# define BOOST_PP_WHILE_132_I(p, o, s) BOOST_PP_IF(p(133, s), BOOST_PP_WHILE_133, s BOOST_PP_TUPLE_EAT_3)(p, o, o(133, s))
-# define BOOST_PP_WHILE_133_I(p, o, s) BOOST_PP_IF(p(134, s), BOOST_PP_WHILE_134, s BOOST_PP_TUPLE_EAT_3)(p, o, o(134, s))
-# define BOOST_PP_WHILE_134_I(p, o, s) BOOST_PP_IF(p(135, s), BOOST_PP_WHILE_135, s BOOST_PP_TUPLE_EAT_3)(p, o, o(135, s))
-# define BOOST_PP_WHILE_135_I(p, o, s) BOOST_PP_IF(p(136, s), BOOST_PP_WHILE_136, s BOOST_PP_TUPLE_EAT_3)(p, o, o(136, s))
-# define BOOST_PP_WHILE_136_I(p, o, s) BOOST_PP_IF(p(137, s), BOOST_PP_WHILE_137, s BOOST_PP_TUPLE_EAT_3)(p, o, o(137, s))
-# define BOOST_PP_WHILE_137_I(p, o, s) BOOST_PP_IF(p(138, s), BOOST_PP_WHILE_138, s BOOST_PP_TUPLE_EAT_3)(p, o, o(138, s))
-# define BOOST_PP_WHILE_138_I(p, o, s) BOOST_PP_IF(p(139, s), BOOST_PP_WHILE_139, s BOOST_PP_TUPLE_EAT_3)(p, o, o(139, s))
-# define BOOST_PP_WHILE_139_I(p, o, s) BOOST_PP_IF(p(140, s), BOOST_PP_WHILE_140, s BOOST_PP_TUPLE_EAT_3)(p, o, o(140, s))
-# define BOOST_PP_WHILE_140_I(p, o, s) BOOST_PP_IF(p(141, s), BOOST_PP_WHILE_141, s BOOST_PP_TUPLE_EAT_3)(p, o, o(141, s))
-# define BOOST_PP_WHILE_141_I(p, o, s) BOOST_PP_IF(p(142, s), BOOST_PP_WHILE_142, s BOOST_PP_TUPLE_EAT_3)(p, o, o(142, s))
-# define BOOST_PP_WHILE_142_I(p, o, s) BOOST_PP_IF(p(143, s), BOOST_PP_WHILE_143, s BOOST_PP_TUPLE_EAT_3)(p, o, o(143, s))
-# define BOOST_PP_WHILE_143_I(p, o, s) BOOST_PP_IF(p(144, s), BOOST_PP_WHILE_144, s BOOST_PP_TUPLE_EAT_3)(p, o, o(144, s))
-# define BOOST_PP_WHILE_144_I(p, o, s) BOOST_PP_IF(p(145, s), BOOST_PP_WHILE_145, s BOOST_PP_TUPLE_EAT_3)(p, o, o(145, s))
-# define BOOST_PP_WHILE_145_I(p, o, s) BOOST_PP_IF(p(146, s), BOOST_PP_WHILE_146, s BOOST_PP_TUPLE_EAT_3)(p, o, o(146, s))
-# define BOOST_PP_WHILE_146_I(p, o, s) BOOST_PP_IF(p(147, s), BOOST_PP_WHILE_147, s BOOST_PP_TUPLE_EAT_3)(p, o, o(147, s))
-# define BOOST_PP_WHILE_147_I(p, o, s) BOOST_PP_IF(p(148, s), BOOST_PP_WHILE_148, s BOOST_PP_TUPLE_EAT_3)(p, o, o(148, s))
-# define BOOST_PP_WHILE_148_I(p, o, s) BOOST_PP_IF(p(149, s), BOOST_PP_WHILE_149, s BOOST_PP_TUPLE_EAT_3)(p, o, o(149, s))
-# define BOOST_PP_WHILE_149_I(p, o, s) BOOST_PP_IF(p(150, s), BOOST_PP_WHILE_150, s BOOST_PP_TUPLE_EAT_3)(p, o, o(150, s))
-# define BOOST_PP_WHILE_150_I(p, o, s) BOOST_PP_IF(p(151, s), BOOST_PP_WHILE_151, s BOOST_PP_TUPLE_EAT_3)(p, o, o(151, s))
-# define BOOST_PP_WHILE_151_I(p, o, s) BOOST_PP_IF(p(152, s), BOOST_PP_WHILE_152, s BOOST_PP_TUPLE_EAT_3)(p, o, o(152, s))
-# define BOOST_PP_WHILE_152_I(p, o, s) BOOST_PP_IF(p(153, s), BOOST_PP_WHILE_153, s BOOST_PP_TUPLE_EAT_3)(p, o, o(153, s))
-# define BOOST_PP_WHILE_153_I(p, o, s) BOOST_PP_IF(p(154, s), BOOST_PP_WHILE_154, s BOOST_PP_TUPLE_EAT_3)(p, o, o(154, s))
-# define BOOST_PP_WHILE_154_I(p, o, s) BOOST_PP_IF(p(155, s), BOOST_PP_WHILE_155, s BOOST_PP_TUPLE_EAT_3)(p, o, o(155, s))
-# define BOOST_PP_WHILE_155_I(p, o, s) BOOST_PP_IF(p(156, s), BOOST_PP_WHILE_156, s BOOST_PP_TUPLE_EAT_3)(p, o, o(156, s))
-# define BOOST_PP_WHILE_156_I(p, o, s) BOOST_PP_IF(p(157, s), BOOST_PP_WHILE_157, s BOOST_PP_TUPLE_EAT_3)(p, o, o(157, s))
-# define BOOST_PP_WHILE_157_I(p, o, s) BOOST_PP_IF(p(158, s), BOOST_PP_WHILE_158, s BOOST_PP_TUPLE_EAT_3)(p, o, o(158, s))
-# define BOOST_PP_WHILE_158_I(p, o, s) BOOST_PP_IF(p(159, s), BOOST_PP_WHILE_159, s BOOST_PP_TUPLE_EAT_3)(p, o, o(159, s))
-# define BOOST_PP_WHILE_159_I(p, o, s) BOOST_PP_IF(p(160, s), BOOST_PP_WHILE_160, s BOOST_PP_TUPLE_EAT_3)(p, o, o(160, s))
-# define BOOST_PP_WHILE_160_I(p, o, s) BOOST_PP_IF(p(161, s), BOOST_PP_WHILE_161, s BOOST_PP_TUPLE_EAT_3)(p, o, o(161, s))
-# define BOOST_PP_WHILE_161_I(p, o, s) BOOST_PP_IF(p(162, s), BOOST_PP_WHILE_162, s BOOST_PP_TUPLE_EAT_3)(p, o, o(162, s))
-# define BOOST_PP_WHILE_162_I(p, o, s) BOOST_PP_IF(p(163, s), BOOST_PP_WHILE_163, s BOOST_PP_TUPLE_EAT_3)(p, o, o(163, s))
-# define BOOST_PP_WHILE_163_I(p, o, s) BOOST_PP_IF(p(164, s), BOOST_PP_WHILE_164, s BOOST_PP_TUPLE_EAT_3)(p, o, o(164, s))
-# define BOOST_PP_WHILE_164_I(p, o, s) BOOST_PP_IF(p(165, s), BOOST_PP_WHILE_165, s BOOST_PP_TUPLE_EAT_3)(p, o, o(165, s))
-# define BOOST_PP_WHILE_165_I(p, o, s) BOOST_PP_IF(p(166, s), BOOST_PP_WHILE_166, s BOOST_PP_TUPLE_EAT_3)(p, o, o(166, s))
-# define BOOST_PP_WHILE_166_I(p, o, s) BOOST_PP_IF(p(167, s), BOOST_PP_WHILE_167, s BOOST_PP_TUPLE_EAT_3)(p, o, o(167, s))
-# define BOOST_PP_WHILE_167_I(p, o, s) BOOST_PP_IF(p(168, s), BOOST_PP_WHILE_168, s BOOST_PP_TUPLE_EAT_3)(p, o, o(168, s))
-# define BOOST_PP_WHILE_168_I(p, o, s) BOOST_PP_IF(p(169, s), BOOST_PP_WHILE_169, s BOOST_PP_TUPLE_EAT_3)(p, o, o(169, s))
-# define BOOST_PP_WHILE_169_I(p, o, s) BOOST_PP_IF(p(170, s), BOOST_PP_WHILE_170, s BOOST_PP_TUPLE_EAT_3)(p, o, o(170, s))
-# define BOOST_PP_WHILE_170_I(p, o, s) BOOST_PP_IF(p(171, s), BOOST_PP_WHILE_171, s BOOST_PP_TUPLE_EAT_3)(p, o, o(171, s))
-# define BOOST_PP_WHILE_171_I(p, o, s) BOOST_PP_IF(p(172, s), BOOST_PP_WHILE_172, s BOOST_PP_TUPLE_EAT_3)(p, o, o(172, s))
-# define BOOST_PP_WHILE_172_I(p, o, s) BOOST_PP_IF(p(173, s), BOOST_PP_WHILE_173, s BOOST_PP_TUPLE_EAT_3)(p, o, o(173, s))
-# define BOOST_PP_WHILE_173_I(p, o, s) BOOST_PP_IF(p(174, s), BOOST_PP_WHILE_174, s BOOST_PP_TUPLE_EAT_3)(p, o, o(174, s))
-# define BOOST_PP_WHILE_174_I(p, o, s) BOOST_PP_IF(p(175, s), BOOST_PP_WHILE_175, s BOOST_PP_TUPLE_EAT_3)(p, o, o(175, s))
-# define BOOST_PP_WHILE_175_I(p, o, s) BOOST_PP_IF(p(176, s), BOOST_PP_WHILE_176, s BOOST_PP_TUPLE_EAT_3)(p, o, o(176, s))
-# define BOOST_PP_WHILE_176_I(p, o, s) BOOST_PP_IF(p(177, s), BOOST_PP_WHILE_177, s BOOST_PP_TUPLE_EAT_3)(p, o, o(177, s))
-# define BOOST_PP_WHILE_177_I(p, o, s) BOOST_PP_IF(p(178, s), BOOST_PP_WHILE_178, s BOOST_PP_TUPLE_EAT_3)(p, o, o(178, s))
-# define BOOST_PP_WHILE_178_I(p, o, s) BOOST_PP_IF(p(179, s), BOOST_PP_WHILE_179, s BOOST_PP_TUPLE_EAT_3)(p, o, o(179, s))
-# define BOOST_PP_WHILE_179_I(p, o, s) BOOST_PP_IF(p(180, s), BOOST_PP_WHILE_180, s BOOST_PP_TUPLE_EAT_3)(p, o, o(180, s))
-# define BOOST_PP_WHILE_180_I(p, o, s) BOOST_PP_IF(p(181, s), BOOST_PP_WHILE_181, s BOOST_PP_TUPLE_EAT_3)(p, o, o(181, s))
-# define BOOST_PP_WHILE_181_I(p, o, s) BOOST_PP_IF(p(182, s), BOOST_PP_WHILE_182, s BOOST_PP_TUPLE_EAT_3)(p, o, o(182, s))
-# define BOOST_PP_WHILE_182_I(p, o, s) BOOST_PP_IF(p(183, s), BOOST_PP_WHILE_183, s BOOST_PP_TUPLE_EAT_3)(p, o, o(183, s))
-# define BOOST_PP_WHILE_183_I(p, o, s) BOOST_PP_IF(p(184, s), BOOST_PP_WHILE_184, s BOOST_PP_TUPLE_EAT_3)(p, o, o(184, s))
-# define BOOST_PP_WHILE_184_I(p, o, s) BOOST_PP_IF(p(185, s), BOOST_PP_WHILE_185, s BOOST_PP_TUPLE_EAT_3)(p, o, o(185, s))
-# define BOOST_PP_WHILE_185_I(p, o, s) BOOST_PP_IF(p(186, s), BOOST_PP_WHILE_186, s BOOST_PP_TUPLE_EAT_3)(p, o, o(186, s))
-# define BOOST_PP_WHILE_186_I(p, o, s) BOOST_PP_IF(p(187, s), BOOST_PP_WHILE_187, s BOOST_PP_TUPLE_EAT_3)(p, o, o(187, s))
-# define BOOST_PP_WHILE_187_I(p, o, s) BOOST_PP_IF(p(188, s), BOOST_PP_WHILE_188, s BOOST_PP_TUPLE_EAT_3)(p, o, o(188, s))
-# define BOOST_PP_WHILE_188_I(p, o, s) BOOST_PP_IF(p(189, s), BOOST_PP_WHILE_189, s BOOST_PP_TUPLE_EAT_3)(p, o, o(189, s))
-# define BOOST_PP_WHILE_189_I(p, o, s) BOOST_PP_IF(p(190, s), BOOST_PP_WHILE_190, s BOOST_PP_TUPLE_EAT_3)(p, o, o(190, s))
-# define BOOST_PP_WHILE_190_I(p, o, s) BOOST_PP_IF(p(191, s), BOOST_PP_WHILE_191, s BOOST_PP_TUPLE_EAT_3)(p, o, o(191, s))
-# define BOOST_PP_WHILE_191_I(p, o, s) BOOST_PP_IF(p(192, s), BOOST_PP_WHILE_192, s BOOST_PP_TUPLE_EAT_3)(p, o, o(192, s))
-# define BOOST_PP_WHILE_192_I(p, o, s) BOOST_PP_IF(p(193, s), BOOST_PP_WHILE_193, s BOOST_PP_TUPLE_EAT_3)(p, o, o(193, s))
-# define BOOST_PP_WHILE_193_I(p, o, s) BOOST_PP_IF(p(194, s), BOOST_PP_WHILE_194, s BOOST_PP_TUPLE_EAT_3)(p, o, o(194, s))
-# define BOOST_PP_WHILE_194_I(p, o, s) BOOST_PP_IF(p(195, s), BOOST_PP_WHILE_195, s BOOST_PP_TUPLE_EAT_3)(p, o, o(195, s))
-# define BOOST_PP_WHILE_195_I(p, o, s) BOOST_PP_IF(p(196, s), BOOST_PP_WHILE_196, s BOOST_PP_TUPLE_EAT_3)(p, o, o(196, s))
-# define BOOST_PP_WHILE_196_I(p, o, s) BOOST_PP_IF(p(197, s), BOOST_PP_WHILE_197, s BOOST_PP_TUPLE_EAT_3)(p, o, o(197, s))
-# define BOOST_PP_WHILE_197_I(p, o, s) BOOST_PP_IF(p(198, s), BOOST_PP_WHILE_198, s BOOST_PP_TUPLE_EAT_3)(p, o, o(198, s))
-# define BOOST_PP_WHILE_198_I(p, o, s) BOOST_PP_IF(p(199, s), BOOST_PP_WHILE_199, s BOOST_PP_TUPLE_EAT_3)(p, o, o(199, s))
-# define BOOST_PP_WHILE_199_I(p, o, s) BOOST_PP_IF(p(200, s), BOOST_PP_WHILE_200, s BOOST_PP_TUPLE_EAT_3)(p, o, o(200, s))
-# define BOOST_PP_WHILE_200_I(p, o, s) BOOST_PP_IF(p(201, s), BOOST_PP_WHILE_201, s BOOST_PP_TUPLE_EAT_3)(p, o, o(201, s))
-# define BOOST_PP_WHILE_201_I(p, o, s) BOOST_PP_IF(p(202, s), BOOST_PP_WHILE_202, s BOOST_PP_TUPLE_EAT_3)(p, o, o(202, s))
-# define BOOST_PP_WHILE_202_I(p, o, s) BOOST_PP_IF(p(203, s), BOOST_PP_WHILE_203, s BOOST_PP_TUPLE_EAT_3)(p, o, o(203, s))
-# define BOOST_PP_WHILE_203_I(p, o, s) BOOST_PP_IF(p(204, s), BOOST_PP_WHILE_204, s BOOST_PP_TUPLE_EAT_3)(p, o, o(204, s))
-# define BOOST_PP_WHILE_204_I(p, o, s) BOOST_PP_IF(p(205, s), BOOST_PP_WHILE_205, s BOOST_PP_TUPLE_EAT_3)(p, o, o(205, s))
-# define BOOST_PP_WHILE_205_I(p, o, s) BOOST_PP_IF(p(206, s), BOOST_PP_WHILE_206, s BOOST_PP_TUPLE_EAT_3)(p, o, o(206, s))
-# define BOOST_PP_WHILE_206_I(p, o, s) BOOST_PP_IF(p(207, s), BOOST_PP_WHILE_207, s BOOST_PP_TUPLE_EAT_3)(p, o, o(207, s))
-# define BOOST_PP_WHILE_207_I(p, o, s) BOOST_PP_IF(p(208, s), BOOST_PP_WHILE_208, s BOOST_PP_TUPLE_EAT_3)(p, o, o(208, s))
-# define BOOST_PP_WHILE_208_I(p, o, s) BOOST_PP_IF(p(209, s), BOOST_PP_WHILE_209, s BOOST_PP_TUPLE_EAT_3)(p, o, o(209, s))
-# define BOOST_PP_WHILE_209_I(p, o, s) BOOST_PP_IF(p(210, s), BOOST_PP_WHILE_210, s BOOST_PP_TUPLE_EAT_3)(p, o, o(210, s))
-# define BOOST_PP_WHILE_210_I(p, o, s) BOOST_PP_IF(p(211, s), BOOST_PP_WHILE_211, s BOOST_PP_TUPLE_EAT_3)(p, o, o(211, s))
-# define BOOST_PP_WHILE_211_I(p, o, s) BOOST_PP_IF(p(212, s), BOOST_PP_WHILE_212, s BOOST_PP_TUPLE_EAT_3)(p, o, o(212, s))
-# define BOOST_PP_WHILE_212_I(p, o, s) BOOST_PP_IF(p(213, s), BOOST_PP_WHILE_213, s BOOST_PP_TUPLE_EAT_3)(p, o, o(213, s))
-# define BOOST_PP_WHILE_213_I(p, o, s) BOOST_PP_IF(p(214, s), BOOST_PP_WHILE_214, s BOOST_PP_TUPLE_EAT_3)(p, o, o(214, s))
-# define BOOST_PP_WHILE_214_I(p, o, s) BOOST_PP_IF(p(215, s), BOOST_PP_WHILE_215, s BOOST_PP_TUPLE_EAT_3)(p, o, o(215, s))
-# define BOOST_PP_WHILE_215_I(p, o, s) BOOST_PP_IF(p(216, s), BOOST_PP_WHILE_216, s BOOST_PP_TUPLE_EAT_3)(p, o, o(216, s))
-# define BOOST_PP_WHILE_216_I(p, o, s) BOOST_PP_IF(p(217, s), BOOST_PP_WHILE_217, s BOOST_PP_TUPLE_EAT_3)(p, o, o(217, s))
-# define BOOST_PP_WHILE_217_I(p, o, s) BOOST_PP_IF(p(218, s), BOOST_PP_WHILE_218, s BOOST_PP_TUPLE_EAT_3)(p, o, o(218, s))
-# define BOOST_PP_WHILE_218_I(p, o, s) BOOST_PP_IF(p(219, s), BOOST_PP_WHILE_219, s BOOST_PP_TUPLE_EAT_3)(p, o, o(219, s))
-# define BOOST_PP_WHILE_219_I(p, o, s) BOOST_PP_IF(p(220, s), BOOST_PP_WHILE_220, s BOOST_PP_TUPLE_EAT_3)(p, o, o(220, s))
-# define BOOST_PP_WHILE_220_I(p, o, s) BOOST_PP_IF(p(221, s), BOOST_PP_WHILE_221, s BOOST_PP_TUPLE_EAT_3)(p, o, o(221, s))
-# define BOOST_PP_WHILE_221_I(p, o, s) BOOST_PP_IF(p(222, s), BOOST_PP_WHILE_222, s BOOST_PP_TUPLE_EAT_3)(p, o, o(222, s))
-# define BOOST_PP_WHILE_222_I(p, o, s) BOOST_PP_IF(p(223, s), BOOST_PP_WHILE_223, s BOOST_PP_TUPLE_EAT_3)(p, o, o(223, s))
-# define BOOST_PP_WHILE_223_I(p, o, s) BOOST_PP_IF(p(224, s), BOOST_PP_WHILE_224, s BOOST_PP_TUPLE_EAT_3)(p, o, o(224, s))
-# define BOOST_PP_WHILE_224_I(p, o, s) BOOST_PP_IF(p(225, s), BOOST_PP_WHILE_225, s BOOST_PP_TUPLE_EAT_3)(p, o, o(225, s))
-# define BOOST_PP_WHILE_225_I(p, o, s) BOOST_PP_IF(p(226, s), BOOST_PP_WHILE_226, s BOOST_PP_TUPLE_EAT_3)(p, o, o(226, s))
-# define BOOST_PP_WHILE_226_I(p, o, s) BOOST_PP_IF(p(227, s), BOOST_PP_WHILE_227, s BOOST_PP_TUPLE_EAT_3)(p, o, o(227, s))
-# define BOOST_PP_WHILE_227_I(p, o, s) BOOST_PP_IF(p(228, s), BOOST_PP_WHILE_228, s BOOST_PP_TUPLE_EAT_3)(p, o, o(228, s))
-# define BOOST_PP_WHILE_228_I(p, o, s) BOOST_PP_IF(p(229, s), BOOST_PP_WHILE_229, s BOOST_PP_TUPLE_EAT_3)(p, o, o(229, s))
-# define BOOST_PP_WHILE_229_I(p, o, s) BOOST_PP_IF(p(230, s), BOOST_PP_WHILE_230, s BOOST_PP_TUPLE_EAT_3)(p, o, o(230, s))
-# define BOOST_PP_WHILE_230_I(p, o, s) BOOST_PP_IF(p(231, s), BOOST_PP_WHILE_231, s BOOST_PP_TUPLE_EAT_3)(p, o, o(231, s))
-# define BOOST_PP_WHILE_231_I(p, o, s) BOOST_PP_IF(p(232, s), BOOST_PP_WHILE_232, s BOOST_PP_TUPLE_EAT_3)(p, o, o(232, s))
-# define BOOST_PP_WHILE_232_I(p, o, s) BOOST_PP_IF(p(233, s), BOOST_PP_WHILE_233, s BOOST_PP_TUPLE_EAT_3)(p, o, o(233, s))
-# define BOOST_PP_WHILE_233_I(p, o, s) BOOST_PP_IF(p(234, s), BOOST_PP_WHILE_234, s BOOST_PP_TUPLE_EAT_3)(p, o, o(234, s))
-# define BOOST_PP_WHILE_234_I(p, o, s) BOOST_PP_IF(p(235, s), BOOST_PP_WHILE_235, s BOOST_PP_TUPLE_EAT_3)(p, o, o(235, s))
-# define BOOST_PP_WHILE_235_I(p, o, s) BOOST_PP_IF(p(236, s), BOOST_PP_WHILE_236, s BOOST_PP_TUPLE_EAT_3)(p, o, o(236, s))
-# define BOOST_PP_WHILE_236_I(p, o, s) BOOST_PP_IF(p(237, s), BOOST_PP_WHILE_237, s BOOST_PP_TUPLE_EAT_3)(p, o, o(237, s))
-# define BOOST_PP_WHILE_237_I(p, o, s) BOOST_PP_IF(p(238, s), BOOST_PP_WHILE_238, s BOOST_PP_TUPLE_EAT_3)(p, o, o(238, s))
-# define BOOST_PP_WHILE_238_I(p, o, s) BOOST_PP_IF(p(239, s), BOOST_PP_WHILE_239, s BOOST_PP_TUPLE_EAT_3)(p, o, o(239, s))
-# define BOOST_PP_WHILE_239_I(p, o, s) BOOST_PP_IF(p(240, s), BOOST_PP_WHILE_240, s BOOST_PP_TUPLE_EAT_3)(p, o, o(240, s))
-# define BOOST_PP_WHILE_240_I(p, o, s) BOOST_PP_IF(p(241, s), BOOST_PP_WHILE_241, s BOOST_PP_TUPLE_EAT_3)(p, o, o(241, s))
-# define BOOST_PP_WHILE_241_I(p, o, s) BOOST_PP_IF(p(242, s), BOOST_PP_WHILE_242, s BOOST_PP_TUPLE_EAT_3)(p, o, o(242, s))
-# define BOOST_PP_WHILE_242_I(p, o, s) BOOST_PP_IF(p(243, s), BOOST_PP_WHILE_243, s BOOST_PP_TUPLE_EAT_3)(p, o, o(243, s))
-# define BOOST_PP_WHILE_243_I(p, o, s) BOOST_PP_IF(p(244, s), BOOST_PP_WHILE_244, s BOOST_PP_TUPLE_EAT_3)(p, o, o(244, s))
-# define BOOST_PP_WHILE_244_I(p, o, s) BOOST_PP_IF(p(245, s), BOOST_PP_WHILE_245, s BOOST_PP_TUPLE_EAT_3)(p, o, o(245, s))
-# define BOOST_PP_WHILE_245_I(p, o, s) BOOST_PP_IF(p(246, s), BOOST_PP_WHILE_246, s BOOST_PP_TUPLE_EAT_3)(p, o, o(246, s))
-# define BOOST_PP_WHILE_246_I(p, o, s) BOOST_PP_IF(p(247, s), BOOST_PP_WHILE_247, s BOOST_PP_TUPLE_EAT_3)(p, o, o(247, s))
-# define BOOST_PP_WHILE_247_I(p, o, s) BOOST_PP_IF(p(248, s), BOOST_PP_WHILE_248, s BOOST_PP_TUPLE_EAT_3)(p, o, o(248, s))
-# define BOOST_PP_WHILE_248_I(p, o, s) BOOST_PP_IF(p(249, s), BOOST_PP_WHILE_249, s BOOST_PP_TUPLE_EAT_3)(p, o, o(249, s))
-# define BOOST_PP_WHILE_249_I(p, o, s) BOOST_PP_IF(p(250, s), BOOST_PP_WHILE_250, s BOOST_PP_TUPLE_EAT_3)(p, o, o(250, s))
-# define BOOST_PP_WHILE_250_I(p, o, s) BOOST_PP_IF(p(251, s), BOOST_PP_WHILE_251, s BOOST_PP_TUPLE_EAT_3)(p, o, o(251, s))
-# define BOOST_PP_WHILE_251_I(p, o, s) BOOST_PP_IF(p(252, s), BOOST_PP_WHILE_252, s BOOST_PP_TUPLE_EAT_3)(p, o, o(252, s))
-# define BOOST_PP_WHILE_252_I(p, o, s) BOOST_PP_IF(p(253, s), BOOST_PP_WHILE_253, s BOOST_PP_TUPLE_EAT_3)(p, o, o(253, s))
-# define BOOST_PP_WHILE_253_I(p, o, s) BOOST_PP_IF(p(254, s), BOOST_PP_WHILE_254, s BOOST_PP_TUPLE_EAT_3)(p, o, o(254, s))
-# define BOOST_PP_WHILE_254_I(p, o, s) BOOST_PP_IF(p(255, s), BOOST_PP_WHILE_255, s BOOST_PP_TUPLE_EAT_3)(p, o, o(255, s))
-# define BOOST_PP_WHILE_255_I(p, o, s) BOOST_PP_IF(p(256, s), BOOST_PP_WHILE_256, s BOOST_PP_TUPLE_EAT_3)(p, o, o(256, s))
-# define BOOST_PP_WHILE_256_I(p, o, s) BOOST_PP_IF(p(257, s), BOOST_PP_WHILE_257, s BOOST_PP_TUPLE_EAT_3)(p, o, o(257, s))
-#
-# endif
diff --git a/boost/preprocessor/control/detail/msvc/while.hpp b/boost/preprocessor/control/detail/msvc/while.hpp
deleted file mode 100644
index e543e41..0000000
--- a/boost/preprocessor/control/detail/msvc/while.hpp
+++ /dev/null
@@ -1,277 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * Distributed under the Boost Software License, Version 1.0. (See
-#  * accompanying file LICENSE_1_0.txt or copy at
-#  * http://www.boost.org/LICENSE_1_0.txt)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_CONTROL_DETAIL_MSVC_WHILE_HPP
-# define BOOST_PREPROCESSOR_CONTROL_DETAIL_MSVC_WHILE_HPP
-#
-# include <boost/preprocessor/control/if.hpp>
-# include <boost/preprocessor/tuple/eat.hpp>
-#
-# define BOOST_PP_WHILE_1(p, o, s) BOOST_PP_IF(p(2, s), BOOST_PP_WHILE_2, s BOOST_PP_TUPLE_EAT_3)(p, o, o(2, s))
-# define BOOST_PP_WHILE_2(p, o, s) BOOST_PP_IF(p(3, s), BOOST_PP_WHILE_3, s BOOST_PP_TUPLE_EAT_3)(p, o, o(3, s))
-# define BOOST_PP_WHILE_3(p, o, s) BOOST_PP_IF(p(4, s), BOOST_PP_WHILE_4, s BOOST_PP_TUPLE_EAT_3)(p, o, o(4, s))
-# define BOOST_PP_WHILE_4(p, o, s) BOOST_PP_IF(p(5, s), BOOST_PP_WHILE_5, s BOOST_PP_TUPLE_EAT_3)(p, o, o(5, s))
-# define BOOST_PP_WHILE_5(p, o, s) BOOST_PP_IF(p(6, s), BOOST_PP_WHILE_6, s BOOST_PP_TUPLE_EAT_3)(p, o, o(6, s))
-# define BOOST_PP_WHILE_6(p, o, s) BOOST_PP_IF(p(7, s), BOOST_PP_WHILE_7, s BOOST_PP_TUPLE_EAT_3)(p, o, o(7, s))
-# define BOOST_PP_WHILE_7(p, o, s) BOOST_PP_IF(p(8, s), BOOST_PP_WHILE_8, s BOOST_PP_TUPLE_EAT_3)(p, o, o(8, s))
-# define BOOST_PP_WHILE_8(p, o, s) BOOST_PP_IF(p(9, s), BOOST_PP_WHILE_9, s BOOST_PP_TUPLE_EAT_3)(p, o, o(9, s))
-# define BOOST_PP_WHILE_9(p, o, s) BOOST_PP_IF(p(10, s), BOOST_PP_WHILE_10, s BOOST_PP_TUPLE_EAT_3)(p, o, o(10, s))
-# define BOOST_PP_WHILE_10(p, o, s) BOOST_PP_IF(p(11, s), BOOST_PP_WHILE_11, s BOOST_PP_TUPLE_EAT_3)(p, o, o(11, s))
-# define BOOST_PP_WHILE_11(p, o, s) BOOST_PP_IF(p(12, s), BOOST_PP_WHILE_12, s BOOST_PP_TUPLE_EAT_3)(p, o, o(12, s))
-# define BOOST_PP_WHILE_12(p, o, s) BOOST_PP_IF(p(13, s), BOOST_PP_WHILE_13, s BOOST_PP_TUPLE_EAT_3)(p, o, o(13, s))
-# define BOOST_PP_WHILE_13(p, o, s) BOOST_PP_IF(p(14, s), BOOST_PP_WHILE_14, s BOOST_PP_TUPLE_EAT_3)(p, o, o(14, s))
-# define BOOST_PP_WHILE_14(p, o, s) BOOST_PP_IF(p(15, s), BOOST_PP_WHILE_15, s BOOST_PP_TUPLE_EAT_3)(p, o, o(15, s))
-# define BOOST_PP_WHILE_15(p, o, s) BOOST_PP_IF(p(16, s), BOOST_PP_WHILE_16, s BOOST_PP_TUPLE_EAT_3)(p, o, o(16, s))
-# define BOOST_PP_WHILE_16(p, o, s) BOOST_PP_IF(p(17, s), BOOST_PP_WHILE_17, s BOOST_PP_TUPLE_EAT_3)(p, o, o(17, s))
-# define BOOST_PP_WHILE_17(p, o, s) BOOST_PP_IF(p(18, s), BOOST_PP_WHILE_18, s BOOST_PP_TUPLE_EAT_3)(p, o, o(18, s))
-# define BOOST_PP_WHILE_18(p, o, s) BOOST_PP_IF(p(19, s), BOOST_PP_WHILE_19, s BOOST_PP_TUPLE_EAT_3)(p, o, o(19, s))
-# define BOOST_PP_WHILE_19(p, o, s) BOOST_PP_IF(p(20, s), BOOST_PP_WHILE_20, s BOOST_PP_TUPLE_EAT_3)(p, o, o(20, s))
-# define BOOST_PP_WHILE_20(p, o, s) BOOST_PP_IF(p(21, s), BOOST_PP_WHILE_21, s BOOST_PP_TUPLE_EAT_3)(p, o, o(21, s))
-# define BOOST_PP_WHILE_21(p, o, s) BOOST_PP_IF(p(22, s), BOOST_PP_WHILE_22, s BOOST_PP_TUPLE_EAT_3)(p, o, o(22, s))
-# define BOOST_PP_WHILE_22(p, o, s) BOOST_PP_IF(p(23, s), BOOST_PP_WHILE_23, s BOOST_PP_TUPLE_EAT_3)(p, o, o(23, s))
-# define BOOST_PP_WHILE_23(p, o, s) BOOST_PP_IF(p(24, s), BOOST_PP_WHILE_24, s BOOST_PP_TUPLE_EAT_3)(p, o, o(24, s))
-# define BOOST_PP_WHILE_24(p, o, s) BOOST_PP_IF(p(25, s), BOOST_PP_WHILE_25, s BOOST_PP_TUPLE_EAT_3)(p, o, o(25, s))
-# define BOOST_PP_WHILE_25(p, o, s) BOOST_PP_IF(p(26, s), BOOST_PP_WHILE_26, s BOOST_PP_TUPLE_EAT_3)(p, o, o(26, s))
-# define BOOST_PP_WHILE_26(p, o, s) BOOST_PP_IF(p(27, s), BOOST_PP_WHILE_27, s BOOST_PP_TUPLE_EAT_3)(p, o, o(27, s))
-# define BOOST_PP_WHILE_27(p, o, s) BOOST_PP_IF(p(28, s), BOOST_PP_WHILE_28, s BOOST_PP_TUPLE_EAT_3)(p, o, o(28, s))
-# define BOOST_PP_WHILE_28(p, o, s) BOOST_PP_IF(p(29, s), BOOST_PP_WHILE_29, s BOOST_PP_TUPLE_EAT_3)(p, o, o(29, s))
-# define BOOST_PP_WHILE_29(p, o, s) BOOST_PP_IF(p(30, s), BOOST_PP_WHILE_30, s BOOST_PP_TUPLE_EAT_3)(p, o, o(30, s))
-# define BOOST_PP_WHILE_30(p, o, s) BOOST_PP_IF(p(31, s), BOOST_PP_WHILE_31, s BOOST_PP_TUPLE_EAT_3)(p, o, o(31, s))
-# define BOOST_PP_WHILE_31(p, o, s) BOOST_PP_IF(p(32, s), BOOST_PP_WHILE_32, s BOOST_PP_TUPLE_EAT_3)(p, o, o(32, s))
-# define BOOST_PP_WHILE_32(p, o, s) BOOST_PP_IF(p(33, s), BOOST_PP_WHILE_33, s BOOST_PP_TUPLE_EAT_3)(p, o, o(33, s))
-# define BOOST_PP_WHILE_33(p, o, s) BOOST_PP_IF(p(34, s), BOOST_PP_WHILE_34, s BOOST_PP_TUPLE_EAT_3)(p, o, o(34, s))
-# define BOOST_PP_WHILE_34(p, o, s) BOOST_PP_IF(p(35, s), BOOST_PP_WHILE_35, s BOOST_PP_TUPLE_EAT_3)(p, o, o(35, s))
-# define BOOST_PP_WHILE_35(p, o, s) BOOST_PP_IF(p(36, s), BOOST_PP_WHILE_36, s BOOST_PP_TUPLE_EAT_3)(p, o, o(36, s))
-# define BOOST_PP_WHILE_36(p, o, s) BOOST_PP_IF(p(37, s), BOOST_PP_WHILE_37, s BOOST_PP_TUPLE_EAT_3)(p, o, o(37, s))
-# define BOOST_PP_WHILE_37(p, o, s) BOOST_PP_IF(p(38, s), BOOST_PP_WHILE_38, s BOOST_PP_TUPLE_EAT_3)(p, o, o(38, s))
-# define BOOST_PP_WHILE_38(p, o, s) BOOST_PP_IF(p(39, s), BOOST_PP_WHILE_39, s BOOST_PP_TUPLE_EAT_3)(p, o, o(39, s))
-# define BOOST_PP_WHILE_39(p, o, s) BOOST_PP_IF(p(40, s), BOOST_PP_WHILE_40, s BOOST_PP_TUPLE_EAT_3)(p, o, o(40, s))
-# define BOOST_PP_WHILE_40(p, o, s) BOOST_PP_IF(p(41, s), BOOST_PP_WHILE_41, s BOOST_PP_TUPLE_EAT_3)(p, o, o(41, s))
-# define BOOST_PP_WHILE_41(p, o, s) BOOST_PP_IF(p(42, s), BOOST_PP_WHILE_42, s BOOST_PP_TUPLE_EAT_3)(p, o, o(42, s))
-# define BOOST_PP_WHILE_42(p, o, s) BOOST_PP_IF(p(43, s), BOOST_PP_WHILE_43, s BOOST_PP_TUPLE_EAT_3)(p, o, o(43, s))
-# define BOOST_PP_WHILE_43(p, o, s) BOOST_PP_IF(p(44, s), BOOST_PP_WHILE_44, s BOOST_PP_TUPLE_EAT_3)(p, o, o(44, s))
-# define BOOST_PP_WHILE_44(p, o, s) BOOST_PP_IF(p(45, s), BOOST_PP_WHILE_45, s BOOST_PP_TUPLE_EAT_3)(p, o, o(45, s))
-# define BOOST_PP_WHILE_45(p, o, s) BOOST_PP_IF(p(46, s), BOOST_PP_WHILE_46, s BOOST_PP_TUPLE_EAT_3)(p, o, o(46, s))
-# define BOOST_PP_WHILE_46(p, o, s) BOOST_PP_IF(p(47, s), BOOST_PP_WHILE_47, s BOOST_PP_TUPLE_EAT_3)(p, o, o(47, s))
-# define BOOST_PP_WHILE_47(p, o, s) BOOST_PP_IF(p(48, s), BOOST_PP_WHILE_48, s BOOST_PP_TUPLE_EAT_3)(p, o, o(48, s))
-# define BOOST_PP_WHILE_48(p, o, s) BOOST_PP_IF(p(49, s), BOOST_PP_WHILE_49, s BOOST_PP_TUPLE_EAT_3)(p, o, o(49, s))
-# define BOOST_PP_WHILE_49(p, o, s) BOOST_PP_IF(p(50, s), BOOST_PP_WHILE_50, s BOOST_PP_TUPLE_EAT_3)(p, o, o(50, s))
-# define BOOST_PP_WHILE_50(p, o, s) BOOST_PP_IF(p(51, s), BOOST_PP_WHILE_51, s BOOST_PP_TUPLE_EAT_3)(p, o, o(51, s))
-# define BOOST_PP_WHILE_51(p, o, s) BOOST_PP_IF(p(52, s), BOOST_PP_WHILE_52, s BOOST_PP_TUPLE_EAT_3)(p, o, o(52, s))
-# define BOOST_PP_WHILE_52(p, o, s) BOOST_PP_IF(p(53, s), BOOST_PP_WHILE_53, s BOOST_PP_TUPLE_EAT_3)(p, o, o(53, s))
-# define BOOST_PP_WHILE_53(p, o, s) BOOST_PP_IF(p(54, s), BOOST_PP_WHILE_54, s BOOST_PP_TUPLE_EAT_3)(p, o, o(54, s))
-# define BOOST_PP_WHILE_54(p, o, s) BOOST_PP_IF(p(55, s), BOOST_PP_WHILE_55, s BOOST_PP_TUPLE_EAT_3)(p, o, o(55, s))
-# define BOOST_PP_WHILE_55(p, o, s) BOOST_PP_IF(p(56, s), BOOST_PP_WHILE_56, s BOOST_PP_TUPLE_EAT_3)(p, o, o(56, s))
-# define BOOST_PP_WHILE_56(p, o, s) BOOST_PP_IF(p(57, s), BOOST_PP_WHILE_57, s BOOST_PP_TUPLE_EAT_3)(p, o, o(57, s))
-# define BOOST_PP_WHILE_57(p, o, s) BOOST_PP_IF(p(58, s), BOOST_PP_WHILE_58, s BOOST_PP_TUPLE_EAT_3)(p, o, o(58, s))
-# define BOOST_PP_WHILE_58(p, o, s) BOOST_PP_IF(p(59, s), BOOST_PP_WHILE_59, s BOOST_PP_TUPLE_EAT_3)(p, o, o(59, s))
-# define BOOST_PP_WHILE_59(p, o, s) BOOST_PP_IF(p(60, s), BOOST_PP_WHILE_60, s BOOST_PP_TUPLE_EAT_3)(p, o, o(60, s))
-# define BOOST_PP_WHILE_60(p, o, s) BOOST_PP_IF(p(61, s), BOOST_PP_WHILE_61, s BOOST_PP_TUPLE_EAT_3)(p, o, o(61, s))
-# define BOOST_PP_WHILE_61(p, o, s) BOOST_PP_IF(p(62, s), BOOST_PP_WHILE_62, s BOOST_PP_TUPLE_EAT_3)(p, o, o(62, s))
-# define BOOST_PP_WHILE_62(p, o, s) BOOST_PP_IF(p(63, s), BOOST_PP_WHILE_63, s BOOST_PP_TUPLE_EAT_3)(p, o, o(63, s))
-# define BOOST_PP_WHILE_63(p, o, s) BOOST_PP_IF(p(64, s), BOOST_PP_WHILE_64, s BOOST_PP_TUPLE_EAT_3)(p, o, o(64, s))
-# define BOOST_PP_WHILE_64(p, o, s) BOOST_PP_IF(p(65, s), BOOST_PP_WHILE_65, s BOOST_PP_TUPLE_EAT_3)(p, o, o(65, s))
-# define BOOST_PP_WHILE_65(p, o, s) BOOST_PP_IF(p(66, s), BOOST_PP_WHILE_66, s BOOST_PP_TUPLE_EAT_3)(p, o, o(66, s))
-# define BOOST_PP_WHILE_66(p, o, s) BOOST_PP_IF(p(67, s), BOOST_PP_WHILE_67, s BOOST_PP_TUPLE_EAT_3)(p, o, o(67, s))
-# define BOOST_PP_WHILE_67(p, o, s) BOOST_PP_IF(p(68, s), BOOST_PP_WHILE_68, s BOOST_PP_TUPLE_EAT_3)(p, o, o(68, s))
-# define BOOST_PP_WHILE_68(p, o, s) BOOST_PP_IF(p(69, s), BOOST_PP_WHILE_69, s BOOST_PP_TUPLE_EAT_3)(p, o, o(69, s))
-# define BOOST_PP_WHILE_69(p, o, s) BOOST_PP_IF(p(70, s), BOOST_PP_WHILE_70, s BOOST_PP_TUPLE_EAT_3)(p, o, o(70, s))
-# define BOOST_PP_WHILE_70(p, o, s) BOOST_PP_IF(p(71, s), BOOST_PP_WHILE_71, s BOOST_PP_TUPLE_EAT_3)(p, o, o(71, s))
-# define BOOST_PP_WHILE_71(p, o, s) BOOST_PP_IF(p(72, s), BOOST_PP_WHILE_72, s BOOST_PP_TUPLE_EAT_3)(p, o, o(72, s))
-# define BOOST_PP_WHILE_72(p, o, s) BOOST_PP_IF(p(73, s), BOOST_PP_WHILE_73, s BOOST_PP_TUPLE_EAT_3)(p, o, o(73, s))
-# define BOOST_PP_WHILE_73(p, o, s) BOOST_PP_IF(p(74, s), BOOST_PP_WHILE_74, s BOOST_PP_TUPLE_EAT_3)(p, o, o(74, s))
-# define BOOST_PP_WHILE_74(p, o, s) BOOST_PP_IF(p(75, s), BOOST_PP_WHILE_75, s BOOST_PP_TUPLE_EAT_3)(p, o, o(75, s))
-# define BOOST_PP_WHILE_75(p, o, s) BOOST_PP_IF(p(76, s), BOOST_PP_WHILE_76, s BOOST_PP_TUPLE_EAT_3)(p, o, o(76, s))
-# define BOOST_PP_WHILE_76(p, o, s) BOOST_PP_IF(p(77, s), BOOST_PP_WHILE_77, s BOOST_PP_TUPLE_EAT_3)(p, o, o(77, s))
-# define BOOST_PP_WHILE_77(p, o, s) BOOST_PP_IF(p(78, s), BOOST_PP_WHILE_78, s BOOST_PP_TUPLE_EAT_3)(p, o, o(78, s))
-# define BOOST_PP_WHILE_78(p, o, s) BOOST_PP_IF(p(79, s), BOOST_PP_WHILE_79, s BOOST_PP_TUPLE_EAT_3)(p, o, o(79, s))
-# define BOOST_PP_WHILE_79(p, o, s) BOOST_PP_IF(p(80, s), BOOST_PP_WHILE_80, s BOOST_PP_TUPLE_EAT_3)(p, o, o(80, s))
-# define BOOST_PP_WHILE_80(p, o, s) BOOST_PP_IF(p(81, s), BOOST_PP_WHILE_81, s BOOST_PP_TUPLE_EAT_3)(p, o, o(81, s))
-# define BOOST_PP_WHILE_81(p, o, s) BOOST_PP_IF(p(82, s), BOOST_PP_WHILE_82, s BOOST_PP_TUPLE_EAT_3)(p, o, o(82, s))
-# define BOOST_PP_WHILE_82(p, o, s) BOOST_PP_IF(p(83, s), BOOST_PP_WHILE_83, s BOOST_PP_TUPLE_EAT_3)(p, o, o(83, s))
-# define BOOST_PP_WHILE_83(p, o, s) BOOST_PP_IF(p(84, s), BOOST_PP_WHILE_84, s BOOST_PP_TUPLE_EAT_3)(p, o, o(84, s))
-# define BOOST_PP_WHILE_84(p, o, s) BOOST_PP_IF(p(85, s), BOOST_PP_WHILE_85, s BOOST_PP_TUPLE_EAT_3)(p, o, o(85, s))
-# define BOOST_PP_WHILE_85(p, o, s) BOOST_PP_IF(p(86, s), BOOST_PP_WHILE_86, s BOOST_PP_TUPLE_EAT_3)(p, o, o(86, s))
-# define BOOST_PP_WHILE_86(p, o, s) BOOST_PP_IF(p(87, s), BOOST_PP_WHILE_87, s BOOST_PP_TUPLE_EAT_3)(p, o, o(87, s))
-# define BOOST_PP_WHILE_87(p, o, s) BOOST_PP_IF(p(88, s), BOOST_PP_WHILE_88, s BOOST_PP_TUPLE_EAT_3)(p, o, o(88, s))
-# define BOOST_PP_WHILE_88(p, o, s) BOOST_PP_IF(p(89, s), BOOST_PP_WHILE_89, s BOOST_PP_TUPLE_EAT_3)(p, o, o(89, s))
-# define BOOST_PP_WHILE_89(p, o, s) BOOST_PP_IF(p(90, s), BOOST_PP_WHILE_90, s BOOST_PP_TUPLE_EAT_3)(p, o, o(90, s))
-# define BOOST_PP_WHILE_90(p, o, s) BOOST_PP_IF(p(91, s), BOOST_PP_WHILE_91, s BOOST_PP_TUPLE_EAT_3)(p, o, o(91, s))
-# define BOOST_PP_WHILE_91(p, o, s) BOOST_PP_IF(p(92, s), BOOST_PP_WHILE_92, s BOOST_PP_TUPLE_EAT_3)(p, o, o(92, s))
-# define BOOST_PP_WHILE_92(p, o, s) BOOST_PP_IF(p(93, s), BOOST_PP_WHILE_93, s BOOST_PP_TUPLE_EAT_3)(p, o, o(93, s))
-# define BOOST_PP_WHILE_93(p, o, s) BOOST_PP_IF(p(94, s), BOOST_PP_WHILE_94, s BOOST_PP_TUPLE_EAT_3)(p, o, o(94, s))
-# define BOOST_PP_WHILE_94(p, o, s) BOOST_PP_IF(p(95, s), BOOST_PP_WHILE_95, s BOOST_PP_TUPLE_EAT_3)(p, o, o(95, s))
-# define BOOST_PP_WHILE_95(p, o, s) BOOST_PP_IF(p(96, s), BOOST_PP_WHILE_96, s BOOST_PP_TUPLE_EAT_3)(p, o, o(96, s))
-# define BOOST_PP_WHILE_96(p, o, s) BOOST_PP_IF(p(97, s), BOOST_PP_WHILE_97, s BOOST_PP_TUPLE_EAT_3)(p, o, o(97, s))
-# define BOOST_PP_WHILE_97(p, o, s) BOOST_PP_IF(p(98, s), BOOST_PP_WHILE_98, s BOOST_PP_TUPLE_EAT_3)(p, o, o(98, s))
-# define BOOST_PP_WHILE_98(p, o, s) BOOST_PP_IF(p(99, s), BOOST_PP_WHILE_99, s BOOST_PP_TUPLE_EAT_3)(p, o, o(99, s))
-# define BOOST_PP_WHILE_99(p, o, s) BOOST_PP_IF(p(100, s), BOOST_PP_WHILE_100, s BOOST_PP_TUPLE_EAT_3)(p, o, o(100, s))
-# define BOOST_PP_WHILE_100(p, o, s) BOOST_PP_IF(p(101, s), BOOST_PP_WHILE_101, s BOOST_PP_TUPLE_EAT_3)(p, o, o(101, s))
-# define BOOST_PP_WHILE_101(p, o, s) BOOST_PP_IF(p(102, s), BOOST_PP_WHILE_102, s BOOST_PP_TUPLE_EAT_3)(p, o, o(102, s))
-# define BOOST_PP_WHILE_102(p, o, s) BOOST_PP_IF(p(103, s), BOOST_PP_WHILE_103, s BOOST_PP_TUPLE_EAT_3)(p, o, o(103, s))
-# define BOOST_PP_WHILE_103(p, o, s) BOOST_PP_IF(p(104, s), BOOST_PP_WHILE_104, s BOOST_PP_TUPLE_EAT_3)(p, o, o(104, s))
-# define BOOST_PP_WHILE_104(p, o, s) BOOST_PP_IF(p(105, s), BOOST_PP_WHILE_105, s BOOST_PP_TUPLE_EAT_3)(p, o, o(105, s))
-# define BOOST_PP_WHILE_105(p, o, s) BOOST_PP_IF(p(106, s), BOOST_PP_WHILE_106, s BOOST_PP_TUPLE_EAT_3)(p, o, o(106, s))
-# define BOOST_PP_WHILE_106(p, o, s) BOOST_PP_IF(p(107, s), BOOST_PP_WHILE_107, s BOOST_PP_TUPLE_EAT_3)(p, o, o(107, s))
-# define BOOST_PP_WHILE_107(p, o, s) BOOST_PP_IF(p(108, s), BOOST_PP_WHILE_108, s BOOST_PP_TUPLE_EAT_3)(p, o, o(108, s))
-# define BOOST_PP_WHILE_108(p, o, s) BOOST_PP_IF(p(109, s), BOOST_PP_WHILE_109, s BOOST_PP_TUPLE_EAT_3)(p, o, o(109, s))
-# define BOOST_PP_WHILE_109(p, o, s) BOOST_PP_IF(p(110, s), BOOST_PP_WHILE_110, s BOOST_PP_TUPLE_EAT_3)(p, o, o(110, s))
-# define BOOST_PP_WHILE_110(p, o, s) BOOST_PP_IF(p(111, s), BOOST_PP_WHILE_111, s BOOST_PP_TUPLE_EAT_3)(p, o, o(111, s))
-# define BOOST_PP_WHILE_111(p, o, s) BOOST_PP_IF(p(112, s), BOOST_PP_WHILE_112, s BOOST_PP_TUPLE_EAT_3)(p, o, o(112, s))
-# define BOOST_PP_WHILE_112(p, o, s) BOOST_PP_IF(p(113, s), BOOST_PP_WHILE_113, s BOOST_PP_TUPLE_EAT_3)(p, o, o(113, s))
-# define BOOST_PP_WHILE_113(p, o, s) BOOST_PP_IF(p(114, s), BOOST_PP_WHILE_114, s BOOST_PP_TUPLE_EAT_3)(p, o, o(114, s))
-# define BOOST_PP_WHILE_114(p, o, s) BOOST_PP_IF(p(115, s), BOOST_PP_WHILE_115, s BOOST_PP_TUPLE_EAT_3)(p, o, o(115, s))
-# define BOOST_PP_WHILE_115(p, o, s) BOOST_PP_IF(p(116, s), BOOST_PP_WHILE_116, s BOOST_PP_TUPLE_EAT_3)(p, o, o(116, s))
-# define BOOST_PP_WHILE_116(p, o, s) BOOST_PP_IF(p(117, s), BOOST_PP_WHILE_117, s BOOST_PP_TUPLE_EAT_3)(p, o, o(117, s))
-# define BOOST_PP_WHILE_117(p, o, s) BOOST_PP_IF(p(118, s), BOOST_PP_WHILE_118, s BOOST_PP_TUPLE_EAT_3)(p, o, o(118, s))
-# define BOOST_PP_WHILE_118(p, o, s) BOOST_PP_IF(p(119, s), BOOST_PP_WHILE_119, s BOOST_PP_TUPLE_EAT_3)(p, o, o(119, s))
-# define BOOST_PP_WHILE_119(p, o, s) BOOST_PP_IF(p(120, s), BOOST_PP_WHILE_120, s BOOST_PP_TUPLE_EAT_3)(p, o, o(120, s))
-# define BOOST_PP_WHILE_120(p, o, s) BOOST_PP_IF(p(121, s), BOOST_PP_WHILE_121, s BOOST_PP_TUPLE_EAT_3)(p, o, o(121, s))
-# define BOOST_PP_WHILE_121(p, o, s) BOOST_PP_IF(p(122, s), BOOST_PP_WHILE_122, s BOOST_PP_TUPLE_EAT_3)(p, o, o(122, s))
-# define BOOST_PP_WHILE_122(p, o, s) BOOST_PP_IF(p(123, s), BOOST_PP_WHILE_123, s BOOST_PP_TUPLE_EAT_3)(p, o, o(123, s))
-# define BOOST_PP_WHILE_123(p, o, s) BOOST_PP_IF(p(124, s), BOOST_PP_WHILE_124, s BOOST_PP_TUPLE_EAT_3)(p, o, o(124, s))
-# define BOOST_PP_WHILE_124(p, o, s) BOOST_PP_IF(p(125, s), BOOST_PP_WHILE_125, s BOOST_PP_TUPLE_EAT_3)(p, o, o(125, s))
-# define BOOST_PP_WHILE_125(p, o, s) BOOST_PP_IF(p(126, s), BOOST_PP_WHILE_126, s BOOST_PP_TUPLE_EAT_3)(p, o, o(126, s))
-# define BOOST_PP_WHILE_126(p, o, s) BOOST_PP_IF(p(127, s), BOOST_PP_WHILE_127, s BOOST_PP_TUPLE_EAT_3)(p, o, o(127, s))
-# define BOOST_PP_WHILE_127(p, o, s) BOOST_PP_IF(p(128, s), BOOST_PP_WHILE_128, s BOOST_PP_TUPLE_EAT_3)(p, o, o(128, s))
-# define BOOST_PP_WHILE_128(p, o, s) BOOST_PP_IF(p(129, s), BOOST_PP_WHILE_129, s BOOST_PP_TUPLE_EAT_3)(p, o, o(129, s))
-# define BOOST_PP_WHILE_129(p, o, s) BOOST_PP_IF(p(130, s), BOOST_PP_WHILE_130, s BOOST_PP_TUPLE_EAT_3)(p, o, o(130, s))
-# define BOOST_PP_WHILE_130(p, o, s) BOOST_PP_IF(p(131, s), BOOST_PP_WHILE_131, s BOOST_PP_TUPLE_EAT_3)(p, o, o(131, s))
-# define BOOST_PP_WHILE_131(p, o, s) BOOST_PP_IF(p(132, s), BOOST_PP_WHILE_132, s BOOST_PP_TUPLE_EAT_3)(p, o, o(132, s))
-# define BOOST_PP_WHILE_132(p, o, s) BOOST_PP_IF(p(133, s), BOOST_PP_WHILE_133, s BOOST_PP_TUPLE_EAT_3)(p, o, o(133, s))
-# define BOOST_PP_WHILE_133(p, o, s) BOOST_PP_IF(p(134, s), BOOST_PP_WHILE_134, s BOOST_PP_TUPLE_EAT_3)(p, o, o(134, s))
-# define BOOST_PP_WHILE_134(p, o, s) BOOST_PP_IF(p(135, s), BOOST_PP_WHILE_135, s BOOST_PP_TUPLE_EAT_3)(p, o, o(135, s))
-# define BOOST_PP_WHILE_135(p, o, s) BOOST_PP_IF(p(136, s), BOOST_PP_WHILE_136, s BOOST_PP_TUPLE_EAT_3)(p, o, o(136, s))
-# define BOOST_PP_WHILE_136(p, o, s) BOOST_PP_IF(p(137, s), BOOST_PP_WHILE_137, s BOOST_PP_TUPLE_EAT_3)(p, o, o(137, s))
-# define BOOST_PP_WHILE_137(p, o, s) BOOST_PP_IF(p(138, s), BOOST_PP_WHILE_138, s BOOST_PP_TUPLE_EAT_3)(p, o, o(138, s))
-# define BOOST_PP_WHILE_138(p, o, s) BOOST_PP_IF(p(139, s), BOOST_PP_WHILE_139, s BOOST_PP_TUPLE_EAT_3)(p, o, o(139, s))
-# define BOOST_PP_WHILE_139(p, o, s) BOOST_PP_IF(p(140, s), BOOST_PP_WHILE_140, s BOOST_PP_TUPLE_EAT_3)(p, o, o(140, s))
-# define BOOST_PP_WHILE_140(p, o, s) BOOST_PP_IF(p(141, s), BOOST_PP_WHILE_141, s BOOST_PP_TUPLE_EAT_3)(p, o, o(141, s))
-# define BOOST_PP_WHILE_141(p, o, s) BOOST_PP_IF(p(142, s), BOOST_PP_WHILE_142, s BOOST_PP_TUPLE_EAT_3)(p, o, o(142, s))
-# define BOOST_PP_WHILE_142(p, o, s) BOOST_PP_IF(p(143, s), BOOST_PP_WHILE_143, s BOOST_PP_TUPLE_EAT_3)(p, o, o(143, s))
-# define BOOST_PP_WHILE_143(p, o, s) BOOST_PP_IF(p(144, s), BOOST_PP_WHILE_144, s BOOST_PP_TUPLE_EAT_3)(p, o, o(144, s))
-# define BOOST_PP_WHILE_144(p, o, s) BOOST_PP_IF(p(145, s), BOOST_PP_WHILE_145, s BOOST_PP_TUPLE_EAT_3)(p, o, o(145, s))
-# define BOOST_PP_WHILE_145(p, o, s) BOOST_PP_IF(p(146, s), BOOST_PP_WHILE_146, s BOOST_PP_TUPLE_EAT_3)(p, o, o(146, s))
-# define BOOST_PP_WHILE_146(p, o, s) BOOST_PP_IF(p(147, s), BOOST_PP_WHILE_147, s BOOST_PP_TUPLE_EAT_3)(p, o, o(147, s))
-# define BOOST_PP_WHILE_147(p, o, s) BOOST_PP_IF(p(148, s), BOOST_PP_WHILE_148, s BOOST_PP_TUPLE_EAT_3)(p, o, o(148, s))
-# define BOOST_PP_WHILE_148(p, o, s) BOOST_PP_IF(p(149, s), BOOST_PP_WHILE_149, s BOOST_PP_TUPLE_EAT_3)(p, o, o(149, s))
-# define BOOST_PP_WHILE_149(p, o, s) BOOST_PP_IF(p(150, s), BOOST_PP_WHILE_150, s BOOST_PP_TUPLE_EAT_3)(p, o, o(150, s))
-# define BOOST_PP_WHILE_150(p, o, s) BOOST_PP_IF(p(151, s), BOOST_PP_WHILE_151, s BOOST_PP_TUPLE_EAT_3)(p, o, o(151, s))
-# define BOOST_PP_WHILE_151(p, o, s) BOOST_PP_IF(p(152, s), BOOST_PP_WHILE_152, s BOOST_PP_TUPLE_EAT_3)(p, o, o(152, s))
-# define BOOST_PP_WHILE_152(p, o, s) BOOST_PP_IF(p(153, s), BOOST_PP_WHILE_153, s BOOST_PP_TUPLE_EAT_3)(p, o, o(153, s))
-# define BOOST_PP_WHILE_153(p, o, s) BOOST_PP_IF(p(154, s), BOOST_PP_WHILE_154, s BOOST_PP_TUPLE_EAT_3)(p, o, o(154, s))
-# define BOOST_PP_WHILE_154(p, o, s) BOOST_PP_IF(p(155, s), BOOST_PP_WHILE_155, s BOOST_PP_TUPLE_EAT_3)(p, o, o(155, s))
-# define BOOST_PP_WHILE_155(p, o, s) BOOST_PP_IF(p(156, s), BOOST_PP_WHILE_156, s BOOST_PP_TUPLE_EAT_3)(p, o, o(156, s))
-# define BOOST_PP_WHILE_156(p, o, s) BOOST_PP_IF(p(157, s), BOOST_PP_WHILE_157, s BOOST_PP_TUPLE_EAT_3)(p, o, o(157, s))
-# define BOOST_PP_WHILE_157(p, o, s) BOOST_PP_IF(p(158, s), BOOST_PP_WHILE_158, s BOOST_PP_TUPLE_EAT_3)(p, o, o(158, s))
-# define BOOST_PP_WHILE_158(p, o, s) BOOST_PP_IF(p(159, s), BOOST_PP_WHILE_159, s BOOST_PP_TUPLE_EAT_3)(p, o, o(159, s))
-# define BOOST_PP_WHILE_159(p, o, s) BOOST_PP_IF(p(160, s), BOOST_PP_WHILE_160, s BOOST_PP_TUPLE_EAT_3)(p, o, o(160, s))
-# define BOOST_PP_WHILE_160(p, o, s) BOOST_PP_IF(p(161, s), BOOST_PP_WHILE_161, s BOOST_PP_TUPLE_EAT_3)(p, o, o(161, s))
-# define BOOST_PP_WHILE_161(p, o, s) BOOST_PP_IF(p(162, s), BOOST_PP_WHILE_162, s BOOST_PP_TUPLE_EAT_3)(p, o, o(162, s))
-# define BOOST_PP_WHILE_162(p, o, s) BOOST_PP_IF(p(163, s), BOOST_PP_WHILE_163, s BOOST_PP_TUPLE_EAT_3)(p, o, o(163, s))
-# define BOOST_PP_WHILE_163(p, o, s) BOOST_PP_IF(p(164, s), BOOST_PP_WHILE_164, s BOOST_PP_TUPLE_EAT_3)(p, o, o(164, s))
-# define BOOST_PP_WHILE_164(p, o, s) BOOST_PP_IF(p(165, s), BOOST_PP_WHILE_165, s BOOST_PP_TUPLE_EAT_3)(p, o, o(165, s))
-# define BOOST_PP_WHILE_165(p, o, s) BOOST_PP_IF(p(166, s), BOOST_PP_WHILE_166, s BOOST_PP_TUPLE_EAT_3)(p, o, o(166, s))
-# define BOOST_PP_WHILE_166(p, o, s) BOOST_PP_IF(p(167, s), BOOST_PP_WHILE_167, s BOOST_PP_TUPLE_EAT_3)(p, o, o(167, s))
-# define BOOST_PP_WHILE_167(p, o, s) BOOST_PP_IF(p(168, s), BOOST_PP_WHILE_168, s BOOST_PP_TUPLE_EAT_3)(p, o, o(168, s))
-# define BOOST_PP_WHILE_168(p, o, s) BOOST_PP_IF(p(169, s), BOOST_PP_WHILE_169, s BOOST_PP_TUPLE_EAT_3)(p, o, o(169, s))
-# define BOOST_PP_WHILE_169(p, o, s) BOOST_PP_IF(p(170, s), BOOST_PP_WHILE_170, s BOOST_PP_TUPLE_EAT_3)(p, o, o(170, s))
-# define BOOST_PP_WHILE_170(p, o, s) BOOST_PP_IF(p(171, s), BOOST_PP_WHILE_171, s BOOST_PP_TUPLE_EAT_3)(p, o, o(171, s))
-# define BOOST_PP_WHILE_171(p, o, s) BOOST_PP_IF(p(172, s), BOOST_PP_WHILE_172, s BOOST_PP_TUPLE_EAT_3)(p, o, o(172, s))
-# define BOOST_PP_WHILE_172(p, o, s) BOOST_PP_IF(p(173, s), BOOST_PP_WHILE_173, s BOOST_PP_TUPLE_EAT_3)(p, o, o(173, s))
-# define BOOST_PP_WHILE_173(p, o, s) BOOST_PP_IF(p(174, s), BOOST_PP_WHILE_174, s BOOST_PP_TUPLE_EAT_3)(p, o, o(174, s))
-# define BOOST_PP_WHILE_174(p, o, s) BOOST_PP_IF(p(175, s), BOOST_PP_WHILE_175, s BOOST_PP_TUPLE_EAT_3)(p, o, o(175, s))
-# define BOOST_PP_WHILE_175(p, o, s) BOOST_PP_IF(p(176, s), BOOST_PP_WHILE_176, s BOOST_PP_TUPLE_EAT_3)(p, o, o(176, s))
-# define BOOST_PP_WHILE_176(p, o, s) BOOST_PP_IF(p(177, s), BOOST_PP_WHILE_177, s BOOST_PP_TUPLE_EAT_3)(p, o, o(177, s))
-# define BOOST_PP_WHILE_177(p, o, s) BOOST_PP_IF(p(178, s), BOOST_PP_WHILE_178, s BOOST_PP_TUPLE_EAT_3)(p, o, o(178, s))
-# define BOOST_PP_WHILE_178(p, o, s) BOOST_PP_IF(p(179, s), BOOST_PP_WHILE_179, s BOOST_PP_TUPLE_EAT_3)(p, o, o(179, s))
-# define BOOST_PP_WHILE_179(p, o, s) BOOST_PP_IF(p(180, s), BOOST_PP_WHILE_180, s BOOST_PP_TUPLE_EAT_3)(p, o, o(180, s))
-# define BOOST_PP_WHILE_180(p, o, s) BOOST_PP_IF(p(181, s), BOOST_PP_WHILE_181, s BOOST_PP_TUPLE_EAT_3)(p, o, o(181, s))
-# define BOOST_PP_WHILE_181(p, o, s) BOOST_PP_IF(p(182, s), BOOST_PP_WHILE_182, s BOOST_PP_TUPLE_EAT_3)(p, o, o(182, s))
-# define BOOST_PP_WHILE_182(p, o, s) BOOST_PP_IF(p(183, s), BOOST_PP_WHILE_183, s BOOST_PP_TUPLE_EAT_3)(p, o, o(183, s))
-# define BOOST_PP_WHILE_183(p, o, s) BOOST_PP_IF(p(184, s), BOOST_PP_WHILE_184, s BOOST_PP_TUPLE_EAT_3)(p, o, o(184, s))
-# define BOOST_PP_WHILE_184(p, o, s) BOOST_PP_IF(p(185, s), BOOST_PP_WHILE_185, s BOOST_PP_TUPLE_EAT_3)(p, o, o(185, s))
-# define BOOST_PP_WHILE_185(p, o, s) BOOST_PP_IF(p(186, s), BOOST_PP_WHILE_186, s BOOST_PP_TUPLE_EAT_3)(p, o, o(186, s))
-# define BOOST_PP_WHILE_186(p, o, s) BOOST_PP_IF(p(187, s), BOOST_PP_WHILE_187, s BOOST_PP_TUPLE_EAT_3)(p, o, o(187, s))
-# define BOOST_PP_WHILE_187(p, o, s) BOOST_PP_IF(p(188, s), BOOST_PP_WHILE_188, s BOOST_PP_TUPLE_EAT_3)(p, o, o(188, s))
-# define BOOST_PP_WHILE_188(p, o, s) BOOST_PP_IF(p(189, s), BOOST_PP_WHILE_189, s BOOST_PP_TUPLE_EAT_3)(p, o, o(189, s))
-# define BOOST_PP_WHILE_189(p, o, s) BOOST_PP_IF(p(190, s), BOOST_PP_WHILE_190, s BOOST_PP_TUPLE_EAT_3)(p, o, o(190, s))
-# define BOOST_PP_WHILE_190(p, o, s) BOOST_PP_IF(p(191, s), BOOST_PP_WHILE_191, s BOOST_PP_TUPLE_EAT_3)(p, o, o(191, s))
-# define BOOST_PP_WHILE_191(p, o, s) BOOST_PP_IF(p(192, s), BOOST_PP_WHILE_192, s BOOST_PP_TUPLE_EAT_3)(p, o, o(192, s))
-# define BOOST_PP_WHILE_192(p, o, s) BOOST_PP_IF(p(193, s), BOOST_PP_WHILE_193, s BOOST_PP_TUPLE_EAT_3)(p, o, o(193, s))
-# define BOOST_PP_WHILE_193(p, o, s) BOOST_PP_IF(p(194, s), BOOST_PP_WHILE_194, s BOOST_PP_TUPLE_EAT_3)(p, o, o(194, s))
-# define BOOST_PP_WHILE_194(p, o, s) BOOST_PP_IF(p(195, s), BOOST_PP_WHILE_195, s BOOST_PP_TUPLE_EAT_3)(p, o, o(195, s))
-# define BOOST_PP_WHILE_195(p, o, s) BOOST_PP_IF(p(196, s), BOOST_PP_WHILE_196, s BOOST_PP_TUPLE_EAT_3)(p, o, o(196, s))
-# define BOOST_PP_WHILE_196(p, o, s) BOOST_PP_IF(p(197, s), BOOST_PP_WHILE_197, s BOOST_PP_TUPLE_EAT_3)(p, o, o(197, s))
-# define BOOST_PP_WHILE_197(p, o, s) BOOST_PP_IF(p(198, s), BOOST_PP_WHILE_198, s BOOST_PP_TUPLE_EAT_3)(p, o, o(198, s))
-# define BOOST_PP_WHILE_198(p, o, s) BOOST_PP_IF(p(199, s), BOOST_PP_WHILE_199, s BOOST_PP_TUPLE_EAT_3)(p, o, o(199, s))
-# define BOOST_PP_WHILE_199(p, o, s) BOOST_PP_IF(p(200, s), BOOST_PP_WHILE_200, s BOOST_PP_TUPLE_EAT_3)(p, o, o(200, s))
-# define BOOST_PP_WHILE_200(p, o, s) BOOST_PP_IF(p(201, s), BOOST_PP_WHILE_201, s BOOST_PP_TUPLE_EAT_3)(p, o, o(201, s))
-# define BOOST_PP_WHILE_201(p, o, s) BOOST_PP_IF(p(202, s), BOOST_PP_WHILE_202, s BOOST_PP_TUPLE_EAT_3)(p, o, o(202, s))
-# define BOOST_PP_WHILE_202(p, o, s) BOOST_PP_IF(p(203, s), BOOST_PP_WHILE_203, s BOOST_PP_TUPLE_EAT_3)(p, o, o(203, s))
-# define BOOST_PP_WHILE_203(p, o, s) BOOST_PP_IF(p(204, s), BOOST_PP_WHILE_204, s BOOST_PP_TUPLE_EAT_3)(p, o, o(204, s))
-# define BOOST_PP_WHILE_204(p, o, s) BOOST_PP_IF(p(205, s), BOOST_PP_WHILE_205, s BOOST_PP_TUPLE_EAT_3)(p, o, o(205, s))
-# define BOOST_PP_WHILE_205(p, o, s) BOOST_PP_IF(p(206, s), BOOST_PP_WHILE_206, s BOOST_PP_TUPLE_EAT_3)(p, o, o(206, s))
-# define BOOST_PP_WHILE_206(p, o, s) BOOST_PP_IF(p(207, s), BOOST_PP_WHILE_207, s BOOST_PP_TUPLE_EAT_3)(p, o, o(207, s))
-# define BOOST_PP_WHILE_207(p, o, s) BOOST_PP_IF(p(208, s), BOOST_PP_WHILE_208, s BOOST_PP_TUPLE_EAT_3)(p, o, o(208, s))
-# define BOOST_PP_WHILE_208(p, o, s) BOOST_PP_IF(p(209, s), BOOST_PP_WHILE_209, s BOOST_PP_TUPLE_EAT_3)(p, o, o(209, s))
-# define BOOST_PP_WHILE_209(p, o, s) BOOST_PP_IF(p(210, s), BOOST_PP_WHILE_210, s BOOST_PP_TUPLE_EAT_3)(p, o, o(210, s))
-# define BOOST_PP_WHILE_210(p, o, s) BOOST_PP_IF(p(211, s), BOOST_PP_WHILE_211, s BOOST_PP_TUPLE_EAT_3)(p, o, o(211, s))
-# define BOOST_PP_WHILE_211(p, o, s) BOOST_PP_IF(p(212, s), BOOST_PP_WHILE_212, s BOOST_PP_TUPLE_EAT_3)(p, o, o(212, s))
-# define BOOST_PP_WHILE_212(p, o, s) BOOST_PP_IF(p(213, s), BOOST_PP_WHILE_213, s BOOST_PP_TUPLE_EAT_3)(p, o, o(213, s))
-# define BOOST_PP_WHILE_213(p, o, s) BOOST_PP_IF(p(214, s), BOOST_PP_WHILE_214, s BOOST_PP_TUPLE_EAT_3)(p, o, o(214, s))
-# define BOOST_PP_WHILE_214(p, o, s) BOOST_PP_IF(p(215, s), BOOST_PP_WHILE_215, s BOOST_PP_TUPLE_EAT_3)(p, o, o(215, s))
-# define BOOST_PP_WHILE_215(p, o, s) BOOST_PP_IF(p(216, s), BOOST_PP_WHILE_216, s BOOST_PP_TUPLE_EAT_3)(p, o, o(216, s))
-# define BOOST_PP_WHILE_216(p, o, s) BOOST_PP_IF(p(217, s), BOOST_PP_WHILE_217, s BOOST_PP_TUPLE_EAT_3)(p, o, o(217, s))
-# define BOOST_PP_WHILE_217(p, o, s) BOOST_PP_IF(p(218, s), BOOST_PP_WHILE_218, s BOOST_PP_TUPLE_EAT_3)(p, o, o(218, s))
-# define BOOST_PP_WHILE_218(p, o, s) BOOST_PP_IF(p(219, s), BOOST_PP_WHILE_219, s BOOST_PP_TUPLE_EAT_3)(p, o, o(219, s))
-# define BOOST_PP_WHILE_219(p, o, s) BOOST_PP_IF(p(220, s), BOOST_PP_WHILE_220, s BOOST_PP_TUPLE_EAT_3)(p, o, o(220, s))
-# define BOOST_PP_WHILE_220(p, o, s) BOOST_PP_IF(p(221, s), BOOST_PP_WHILE_221, s BOOST_PP_TUPLE_EAT_3)(p, o, o(221, s))
-# define BOOST_PP_WHILE_221(p, o, s) BOOST_PP_IF(p(222, s), BOOST_PP_WHILE_222, s BOOST_PP_TUPLE_EAT_3)(p, o, o(222, s))
-# define BOOST_PP_WHILE_222(p, o, s) BOOST_PP_IF(p(223, s), BOOST_PP_WHILE_223, s BOOST_PP_TUPLE_EAT_3)(p, o, o(223, s))
-# define BOOST_PP_WHILE_223(p, o, s) BOOST_PP_IF(p(224, s), BOOST_PP_WHILE_224, s BOOST_PP_TUPLE_EAT_3)(p, o, o(224, s))
-# define BOOST_PP_WHILE_224(p, o, s) BOOST_PP_IF(p(225, s), BOOST_PP_WHILE_225, s BOOST_PP_TUPLE_EAT_3)(p, o, o(225, s))
-# define BOOST_PP_WHILE_225(p, o, s) BOOST_PP_IF(p(226, s), BOOST_PP_WHILE_226, s BOOST_PP_TUPLE_EAT_3)(p, o, o(226, s))
-# define BOOST_PP_WHILE_226(p, o, s) BOOST_PP_IF(p(227, s), BOOST_PP_WHILE_227, s BOOST_PP_TUPLE_EAT_3)(p, o, o(227, s))
-# define BOOST_PP_WHILE_227(p, o, s) BOOST_PP_IF(p(228, s), BOOST_PP_WHILE_228, s BOOST_PP_TUPLE_EAT_3)(p, o, o(228, s))
-# define BOOST_PP_WHILE_228(p, o, s) BOOST_PP_IF(p(229, s), BOOST_PP_WHILE_229, s BOOST_PP_TUPLE_EAT_3)(p, o, o(229, s))
-# define BOOST_PP_WHILE_229(p, o, s) BOOST_PP_IF(p(230, s), BOOST_PP_WHILE_230, s BOOST_PP_TUPLE_EAT_3)(p, o, o(230, s))
-# define BOOST_PP_WHILE_230(p, o, s) BOOST_PP_IF(p(231, s), BOOST_PP_WHILE_231, s BOOST_PP_TUPLE_EAT_3)(p, o, o(231, s))
-# define BOOST_PP_WHILE_231(p, o, s) BOOST_PP_IF(p(232, s), BOOST_PP_WHILE_232, s BOOST_PP_TUPLE_EAT_3)(p, o, o(232, s))
-# define BOOST_PP_WHILE_232(p, o, s) BOOST_PP_IF(p(233, s), BOOST_PP_WHILE_233, s BOOST_PP_TUPLE_EAT_3)(p, o, o(233, s))
-# define BOOST_PP_WHILE_233(p, o, s) BOOST_PP_IF(p(234, s), BOOST_PP_WHILE_234, s BOOST_PP_TUPLE_EAT_3)(p, o, o(234, s))
-# define BOOST_PP_WHILE_234(p, o, s) BOOST_PP_IF(p(235, s), BOOST_PP_WHILE_235, s BOOST_PP_TUPLE_EAT_3)(p, o, o(235, s))
-# define BOOST_PP_WHILE_235(p, o, s) BOOST_PP_IF(p(236, s), BOOST_PP_WHILE_236, s BOOST_PP_TUPLE_EAT_3)(p, o, o(236, s))
-# define BOOST_PP_WHILE_236(p, o, s) BOOST_PP_IF(p(237, s), BOOST_PP_WHILE_237, s BOOST_PP_TUPLE_EAT_3)(p, o, o(237, s))
-# define BOOST_PP_WHILE_237(p, o, s) BOOST_PP_IF(p(238, s), BOOST_PP_WHILE_238, s BOOST_PP_TUPLE_EAT_3)(p, o, o(238, s))
-# define BOOST_PP_WHILE_238(p, o, s) BOOST_PP_IF(p(239, s), BOOST_PP_WHILE_239, s BOOST_PP_TUPLE_EAT_3)(p, o, o(239, s))
-# define BOOST_PP_WHILE_239(p, o, s) BOOST_PP_IF(p(240, s), BOOST_PP_WHILE_240, s BOOST_PP_TUPLE_EAT_3)(p, o, o(240, s))
-# define BOOST_PP_WHILE_240(p, o, s) BOOST_PP_IF(p(241, s), BOOST_PP_WHILE_241, s BOOST_PP_TUPLE_EAT_3)(p, o, o(241, s))
-# define BOOST_PP_WHILE_241(p, o, s) BOOST_PP_IF(p(242, s), BOOST_PP_WHILE_242, s BOOST_PP_TUPLE_EAT_3)(p, o, o(242, s))
-# define BOOST_PP_WHILE_242(p, o, s) BOOST_PP_IF(p(243, s), BOOST_PP_WHILE_243, s BOOST_PP_TUPLE_EAT_3)(p, o, o(243, s))
-# define BOOST_PP_WHILE_243(p, o, s) BOOST_PP_IF(p(244, s), BOOST_PP_WHILE_244, s BOOST_PP_TUPLE_EAT_3)(p, o, o(244, s))
-# define BOOST_PP_WHILE_244(p, o, s) BOOST_PP_IF(p(245, s), BOOST_PP_WHILE_245, s BOOST_PP_TUPLE_EAT_3)(p, o, o(245, s))
-# define BOOST_PP_WHILE_245(p, o, s) BOOST_PP_IF(p(246, s), BOOST_PP_WHILE_246, s BOOST_PP_TUPLE_EAT_3)(p, o, o(246, s))
-# define BOOST_PP_WHILE_246(p, o, s) BOOST_PP_IF(p(247, s), BOOST_PP_WHILE_247, s BOOST_PP_TUPLE_EAT_3)(p, o, o(247, s))
-# define BOOST_PP_WHILE_247(p, o, s) BOOST_PP_IF(p(248, s), BOOST_PP_WHILE_248, s BOOST_PP_TUPLE_EAT_3)(p, o, o(248, s))
-# define BOOST_PP_WHILE_248(p, o, s) BOOST_PP_IF(p(249, s), BOOST_PP_WHILE_249, s BOOST_PP_TUPLE_EAT_3)(p, o, o(249, s))
-# define BOOST_PP_WHILE_249(p, o, s) BOOST_PP_IF(p(250, s), BOOST_PP_WHILE_250, s BOOST_PP_TUPLE_EAT_3)(p, o, o(250, s))
-# define BOOST_PP_WHILE_250(p, o, s) BOOST_PP_IF(p(251, s), BOOST_PP_WHILE_251, s BOOST_PP_TUPLE_EAT_3)(p, o, o(251, s))
-# define BOOST_PP_WHILE_251(p, o, s) BOOST_PP_IF(p(252, s), BOOST_PP_WHILE_252, s BOOST_PP_TUPLE_EAT_3)(p, o, o(252, s))
-# define BOOST_PP_WHILE_252(p, o, s) BOOST_PP_IF(p(253, s), BOOST_PP_WHILE_253, s BOOST_PP_TUPLE_EAT_3)(p, o, o(253, s))
-# define BOOST_PP_WHILE_253(p, o, s) BOOST_PP_IF(p(254, s), BOOST_PP_WHILE_254, s BOOST_PP_TUPLE_EAT_3)(p, o, o(254, s))
-# define BOOST_PP_WHILE_254(p, o, s) BOOST_PP_IF(p(255, s), BOOST_PP_WHILE_255, s BOOST_PP_TUPLE_EAT_3)(p, o, o(255, s))
-# define BOOST_PP_WHILE_255(p, o, s) BOOST_PP_IF(p(256, s), BOOST_PP_WHILE_256, s BOOST_PP_TUPLE_EAT_3)(p, o, o(256, s))
-# define BOOST_PP_WHILE_256(p, o, s) BOOST_PP_IF(p(257, s), BOOST_PP_WHILE_257, s BOOST_PP_TUPLE_EAT_3)(p, o, o(257, s))
-#
-# endif
diff --git a/boost/preprocessor/control/detail/while.hpp b/boost/preprocessor/control/detail/while.hpp
deleted file mode 100644
index 7315e1d..0000000
--- a/boost/preprocessor/control/detail/while.hpp
+++ /dev/null
@@ -1,536 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * Distributed under the Boost Software License, Version 1.0. (See
-#  * accompanying file LICENSE_1_0.txt or copy at
-#  * http://www.boost.org/LICENSE_1_0.txt)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_CONTROL_DETAIL_WHILE_HPP
-# define BOOST_PREPROCESSOR_CONTROL_DETAIL_WHILE_HPP
-#
-# include <boost/preprocessor/control/iif.hpp>
-# include <boost/preprocessor/logical/bool.hpp>
-# include <boost/preprocessor/tuple/eat.hpp>
-#
-# define BOOST_PP_WHILE_1(p, o, s) BOOST_PP_WHILE_1_C(BOOST_PP_BOOL(p(2, s)), p, o, s)
-# define BOOST_PP_WHILE_2(p, o, s) BOOST_PP_WHILE_2_C(BOOST_PP_BOOL(p(3, s)), p, o, s)
-# define BOOST_PP_WHILE_3(p, o, s) BOOST_PP_WHILE_3_C(BOOST_PP_BOOL(p(4, s)), p, o, s)
-# define BOOST_PP_WHILE_4(p, o, s) BOOST_PP_WHILE_4_C(BOOST_PP_BOOL(p(5, s)), p, o, s)
-# define BOOST_PP_WHILE_5(p, o, s) BOOST_PP_WHILE_5_C(BOOST_PP_BOOL(p(6, s)), p, o, s)
-# define BOOST_PP_WHILE_6(p, o, s) BOOST_PP_WHILE_6_C(BOOST_PP_BOOL(p(7, s)), p, o, s)
-# define BOOST_PP_WHILE_7(p, o, s) BOOST_PP_WHILE_7_C(BOOST_PP_BOOL(p(8, s)), p, o, s)
-# define BOOST_PP_WHILE_8(p, o, s) BOOST_PP_WHILE_8_C(BOOST_PP_BOOL(p(9, s)), p, o, s)
-# define BOOST_PP_WHILE_9(p, o, s) BOOST_PP_WHILE_9_C(BOOST_PP_BOOL(p(10, s)), p, o, s)
-# define BOOST_PP_WHILE_10(p, o, s) BOOST_PP_WHILE_10_C(BOOST_PP_BOOL(p(11, s)), p, o, s)
-# define BOOST_PP_WHILE_11(p, o, s) BOOST_PP_WHILE_11_C(BOOST_PP_BOOL(p(12, s)), p, o, s)
-# define BOOST_PP_WHILE_12(p, o, s) BOOST_PP_WHILE_12_C(BOOST_PP_BOOL(p(13, s)), p, o, s)
-# define BOOST_PP_WHILE_13(p, o, s) BOOST_PP_WHILE_13_C(BOOST_PP_BOOL(p(14, s)), p, o, s)
-# define BOOST_PP_WHILE_14(p, o, s) BOOST_PP_WHILE_14_C(BOOST_PP_BOOL(p(15, s)), p, o, s)
-# define BOOST_PP_WHILE_15(p, o, s) BOOST_PP_WHILE_15_C(BOOST_PP_BOOL(p(16, s)), p, o, s)
-# define BOOST_PP_WHILE_16(p, o, s) BOOST_PP_WHILE_16_C(BOOST_PP_BOOL(p(17, s)), p, o, s)
-# define BOOST_PP_WHILE_17(p, o, s) BOOST_PP_WHILE_17_C(BOOST_PP_BOOL(p(18, s)), p, o, s)
-# define BOOST_PP_WHILE_18(p, o, s) BOOST_PP_WHILE_18_C(BOOST_PP_BOOL(p(19, s)), p, o, s)
-# define BOOST_PP_WHILE_19(p, o, s) BOOST_PP_WHILE_19_C(BOOST_PP_BOOL(p(20, s)), p, o, s)
-# define BOOST_PP_WHILE_20(p, o, s) BOOST_PP_WHILE_20_C(BOOST_PP_BOOL(p(21, s)), p, o, s)
-# define BOOST_PP_WHILE_21(p, o, s) BOOST_PP_WHILE_21_C(BOOST_PP_BOOL(p(22, s)), p, o, s)
-# define BOOST_PP_WHILE_22(p, o, s) BOOST_PP_WHILE_22_C(BOOST_PP_BOOL(p(23, s)), p, o, s)
-# define BOOST_PP_WHILE_23(p, o, s) BOOST_PP_WHILE_23_C(BOOST_PP_BOOL(p(24, s)), p, o, s)
-# define BOOST_PP_WHILE_24(p, o, s) BOOST_PP_WHILE_24_C(BOOST_PP_BOOL(p(25, s)), p, o, s)
-# define BOOST_PP_WHILE_25(p, o, s) BOOST_PP_WHILE_25_C(BOOST_PP_BOOL(p(26, s)), p, o, s)
-# define BOOST_PP_WHILE_26(p, o, s) BOOST_PP_WHILE_26_C(BOOST_PP_BOOL(p(27, s)), p, o, s)
-# define BOOST_PP_WHILE_27(p, o, s) BOOST_PP_WHILE_27_C(BOOST_PP_BOOL(p(28, s)), p, o, s)
-# define BOOST_PP_WHILE_28(p, o, s) BOOST_PP_WHILE_28_C(BOOST_PP_BOOL(p(29, s)), p, o, s)
-# define BOOST_PP_WHILE_29(p, o, s) BOOST_PP_WHILE_29_C(BOOST_PP_BOOL(p(30, s)), p, o, s)
-# define BOOST_PP_WHILE_30(p, o, s) BOOST_PP_WHILE_30_C(BOOST_PP_BOOL(p(31, s)), p, o, s)
-# define BOOST_PP_WHILE_31(p, o, s) BOOST_PP_WHILE_31_C(BOOST_PP_BOOL(p(32, s)), p, o, s)
-# define BOOST_PP_WHILE_32(p, o, s) BOOST_PP_WHILE_32_C(BOOST_PP_BOOL(p(33, s)), p, o, s)
-# define BOOST_PP_WHILE_33(p, o, s) BOOST_PP_WHILE_33_C(BOOST_PP_BOOL(p(34, s)), p, o, s)
-# define BOOST_PP_WHILE_34(p, o, s) BOOST_PP_WHILE_34_C(BOOST_PP_BOOL(p(35, s)), p, o, s)
-# define BOOST_PP_WHILE_35(p, o, s) BOOST_PP_WHILE_35_C(BOOST_PP_BOOL(p(36, s)), p, o, s)
-# define BOOST_PP_WHILE_36(p, o, s) BOOST_PP_WHILE_36_C(BOOST_PP_BOOL(p(37, s)), p, o, s)
-# define BOOST_PP_WHILE_37(p, o, s) BOOST_PP_WHILE_37_C(BOOST_PP_BOOL(p(38, s)), p, o, s)
-# define BOOST_PP_WHILE_38(p, o, s) BOOST_PP_WHILE_38_C(BOOST_PP_BOOL(p(39, s)), p, o, s)
-# define BOOST_PP_WHILE_39(p, o, s) BOOST_PP_WHILE_39_C(BOOST_PP_BOOL(p(40, s)), p, o, s)
-# define BOOST_PP_WHILE_40(p, o, s) BOOST_PP_WHILE_40_C(BOOST_PP_BOOL(p(41, s)), p, o, s)
-# define BOOST_PP_WHILE_41(p, o, s) BOOST_PP_WHILE_41_C(BOOST_PP_BOOL(p(42, s)), p, o, s)
-# define BOOST_PP_WHILE_42(p, o, s) BOOST_PP_WHILE_42_C(BOOST_PP_BOOL(p(43, s)), p, o, s)
-# define BOOST_PP_WHILE_43(p, o, s) BOOST_PP_WHILE_43_C(BOOST_PP_BOOL(p(44, s)), p, o, s)
-# define BOOST_PP_WHILE_44(p, o, s) BOOST_PP_WHILE_44_C(BOOST_PP_BOOL(p(45, s)), p, o, s)
-# define BOOST_PP_WHILE_45(p, o, s) BOOST_PP_WHILE_45_C(BOOST_PP_BOOL(p(46, s)), p, o, s)
-# define BOOST_PP_WHILE_46(p, o, s) BOOST_PP_WHILE_46_C(BOOST_PP_BOOL(p(47, s)), p, o, s)
-# define BOOST_PP_WHILE_47(p, o, s) BOOST_PP_WHILE_47_C(BOOST_PP_BOOL(p(48, s)), p, o, s)
-# define BOOST_PP_WHILE_48(p, o, s) BOOST_PP_WHILE_48_C(BOOST_PP_BOOL(p(49, s)), p, o, s)
-# define BOOST_PP_WHILE_49(p, o, s) BOOST_PP_WHILE_49_C(BOOST_PP_BOOL(p(50, s)), p, o, s)
-# define BOOST_PP_WHILE_50(p, o, s) BOOST_PP_WHILE_50_C(BOOST_PP_BOOL(p(51, s)), p, o, s)
-# define BOOST_PP_WHILE_51(p, o, s) BOOST_PP_WHILE_51_C(BOOST_PP_BOOL(p(52, s)), p, o, s)
-# define BOOST_PP_WHILE_52(p, o, s) BOOST_PP_WHILE_52_C(BOOST_PP_BOOL(p(53, s)), p, o, s)
-# define BOOST_PP_WHILE_53(p, o, s) BOOST_PP_WHILE_53_C(BOOST_PP_BOOL(p(54, s)), p, o, s)
-# define BOOST_PP_WHILE_54(p, o, s) BOOST_PP_WHILE_54_C(BOOST_PP_BOOL(p(55, s)), p, o, s)
-# define BOOST_PP_WHILE_55(p, o, s) BOOST_PP_WHILE_55_C(BOOST_PP_BOOL(p(56, s)), p, o, s)
-# define BOOST_PP_WHILE_56(p, o, s) BOOST_PP_WHILE_56_C(BOOST_PP_BOOL(p(57, s)), p, o, s)
-# define BOOST_PP_WHILE_57(p, o, s) BOOST_PP_WHILE_57_C(BOOST_PP_BOOL(p(58, s)), p, o, s)
-# define BOOST_PP_WHILE_58(p, o, s) BOOST_PP_WHILE_58_C(BOOST_PP_BOOL(p(59, s)), p, o, s)
-# define BOOST_PP_WHILE_59(p, o, s) BOOST_PP_WHILE_59_C(BOOST_PP_BOOL(p(60, s)), p, o, s)
-# define BOOST_PP_WHILE_60(p, o, s) BOOST_PP_WHILE_60_C(BOOST_PP_BOOL(p(61, s)), p, o, s)
-# define BOOST_PP_WHILE_61(p, o, s) BOOST_PP_WHILE_61_C(BOOST_PP_BOOL(p(62, s)), p, o, s)
-# define BOOST_PP_WHILE_62(p, o, s) BOOST_PP_WHILE_62_C(BOOST_PP_BOOL(p(63, s)), p, o, s)
-# define BOOST_PP_WHILE_63(p, o, s) BOOST_PP_WHILE_63_C(BOOST_PP_BOOL(p(64, s)), p, o, s)
-# define BOOST_PP_WHILE_64(p, o, s) BOOST_PP_WHILE_64_C(BOOST_PP_BOOL(p(65, s)), p, o, s)
-# define BOOST_PP_WHILE_65(p, o, s) BOOST_PP_WHILE_65_C(BOOST_PP_BOOL(p(66, s)), p, o, s)
-# define BOOST_PP_WHILE_66(p, o, s) BOOST_PP_WHILE_66_C(BOOST_PP_BOOL(p(67, s)), p, o, s)
-# define BOOST_PP_WHILE_67(p, o, s) BOOST_PP_WHILE_67_C(BOOST_PP_BOOL(p(68, s)), p, o, s)
-# define BOOST_PP_WHILE_68(p, o, s) BOOST_PP_WHILE_68_C(BOOST_PP_BOOL(p(69, s)), p, o, s)
-# define BOOST_PP_WHILE_69(p, o, s) BOOST_PP_WHILE_69_C(BOOST_PP_BOOL(p(70, s)), p, o, s)
-# define BOOST_PP_WHILE_70(p, o, s) BOOST_PP_WHILE_70_C(BOOST_PP_BOOL(p(71, s)), p, o, s)
-# define BOOST_PP_WHILE_71(p, o, s) BOOST_PP_WHILE_71_C(BOOST_PP_BOOL(p(72, s)), p, o, s)
-# define BOOST_PP_WHILE_72(p, o, s) BOOST_PP_WHILE_72_C(BOOST_PP_BOOL(p(73, s)), p, o, s)
-# define BOOST_PP_WHILE_73(p, o, s) BOOST_PP_WHILE_73_C(BOOST_PP_BOOL(p(74, s)), p, o, s)
-# define BOOST_PP_WHILE_74(p, o, s) BOOST_PP_WHILE_74_C(BOOST_PP_BOOL(p(75, s)), p, o, s)
-# define BOOST_PP_WHILE_75(p, o, s) BOOST_PP_WHILE_75_C(BOOST_PP_BOOL(p(76, s)), p, o, s)
-# define BOOST_PP_WHILE_76(p, o, s) BOOST_PP_WHILE_76_C(BOOST_PP_BOOL(p(77, s)), p, o, s)
-# define BOOST_PP_WHILE_77(p, o, s) BOOST_PP_WHILE_77_C(BOOST_PP_BOOL(p(78, s)), p, o, s)
-# define BOOST_PP_WHILE_78(p, o, s) BOOST_PP_WHILE_78_C(BOOST_PP_BOOL(p(79, s)), p, o, s)
-# define BOOST_PP_WHILE_79(p, o, s) BOOST_PP_WHILE_79_C(BOOST_PP_BOOL(p(80, s)), p, o, s)
-# define BOOST_PP_WHILE_80(p, o, s) BOOST_PP_WHILE_80_C(BOOST_PP_BOOL(p(81, s)), p, o, s)
-# define BOOST_PP_WHILE_81(p, o, s) BOOST_PP_WHILE_81_C(BOOST_PP_BOOL(p(82, s)), p, o, s)
-# define BOOST_PP_WHILE_82(p, o, s) BOOST_PP_WHILE_82_C(BOOST_PP_BOOL(p(83, s)), p, o, s)
-# define BOOST_PP_WHILE_83(p, o, s) BOOST_PP_WHILE_83_C(BOOST_PP_BOOL(p(84, s)), p, o, s)
-# define BOOST_PP_WHILE_84(p, o, s) BOOST_PP_WHILE_84_C(BOOST_PP_BOOL(p(85, s)), p, o, s)
-# define BOOST_PP_WHILE_85(p, o, s) BOOST_PP_WHILE_85_C(BOOST_PP_BOOL(p(86, s)), p, o, s)
-# define BOOST_PP_WHILE_86(p, o, s) BOOST_PP_WHILE_86_C(BOOST_PP_BOOL(p(87, s)), p, o, s)
-# define BOOST_PP_WHILE_87(p, o, s) BOOST_PP_WHILE_87_C(BOOST_PP_BOOL(p(88, s)), p, o, s)
-# define BOOST_PP_WHILE_88(p, o, s) BOOST_PP_WHILE_88_C(BOOST_PP_BOOL(p(89, s)), p, o, s)
-# define BOOST_PP_WHILE_89(p, o, s) BOOST_PP_WHILE_89_C(BOOST_PP_BOOL(p(90, s)), p, o, s)
-# define BOOST_PP_WHILE_90(p, o, s) BOOST_PP_WHILE_90_C(BOOST_PP_BOOL(p(91, s)), p, o, s)
-# define BOOST_PP_WHILE_91(p, o, s) BOOST_PP_WHILE_91_C(BOOST_PP_BOOL(p(92, s)), p, o, s)
-# define BOOST_PP_WHILE_92(p, o, s) BOOST_PP_WHILE_92_C(BOOST_PP_BOOL(p(93, s)), p, o, s)
-# define BOOST_PP_WHILE_93(p, o, s) BOOST_PP_WHILE_93_C(BOOST_PP_BOOL(p(94, s)), p, o, s)
-# define BOOST_PP_WHILE_94(p, o, s) BOOST_PP_WHILE_94_C(BOOST_PP_BOOL(p(95, s)), p, o, s)
-# define BOOST_PP_WHILE_95(p, o, s) BOOST_PP_WHILE_95_C(BOOST_PP_BOOL(p(96, s)), p, o, s)
-# define BOOST_PP_WHILE_96(p, o, s) BOOST_PP_WHILE_96_C(BOOST_PP_BOOL(p(97, s)), p, o, s)
-# define BOOST_PP_WHILE_97(p, o, s) BOOST_PP_WHILE_97_C(BOOST_PP_BOOL(p(98, s)), p, o, s)
-# define BOOST_PP_WHILE_98(p, o, s) BOOST_PP_WHILE_98_C(BOOST_PP_BOOL(p(99, s)), p, o, s)
-# define BOOST_PP_WHILE_99(p, o, s) BOOST_PP_WHILE_99_C(BOOST_PP_BOOL(p(100, s)), p, o, s)
-# define BOOST_PP_WHILE_100(p, o, s) BOOST_PP_WHILE_100_C(BOOST_PP_BOOL(p(101, s)), p, o, s)
-# define BOOST_PP_WHILE_101(p, o, s) BOOST_PP_WHILE_101_C(BOOST_PP_BOOL(p(102, s)), p, o, s)
-# define BOOST_PP_WHILE_102(p, o, s) BOOST_PP_WHILE_102_C(BOOST_PP_BOOL(p(103, s)), p, o, s)
-# define BOOST_PP_WHILE_103(p, o, s) BOOST_PP_WHILE_103_C(BOOST_PP_BOOL(p(104, s)), p, o, s)
-# define BOOST_PP_WHILE_104(p, o, s) BOOST_PP_WHILE_104_C(BOOST_PP_BOOL(p(105, s)), p, o, s)
-# define BOOST_PP_WHILE_105(p, o, s) BOOST_PP_WHILE_105_C(BOOST_PP_BOOL(p(106, s)), p, o, s)
-# define BOOST_PP_WHILE_106(p, o, s) BOOST_PP_WHILE_106_C(BOOST_PP_BOOL(p(107, s)), p, o, s)
-# define BOOST_PP_WHILE_107(p, o, s) BOOST_PP_WHILE_107_C(BOOST_PP_BOOL(p(108, s)), p, o, s)
-# define BOOST_PP_WHILE_108(p, o, s) BOOST_PP_WHILE_108_C(BOOST_PP_BOOL(p(109, s)), p, o, s)
-# define BOOST_PP_WHILE_109(p, o, s) BOOST_PP_WHILE_109_C(BOOST_PP_BOOL(p(110, s)), p, o, s)
-# define BOOST_PP_WHILE_110(p, o, s) BOOST_PP_WHILE_110_C(BOOST_PP_BOOL(p(111, s)), p, o, s)
-# define BOOST_PP_WHILE_111(p, o, s) BOOST_PP_WHILE_111_C(BOOST_PP_BOOL(p(112, s)), p, o, s)
-# define BOOST_PP_WHILE_112(p, o, s) BOOST_PP_WHILE_112_C(BOOST_PP_BOOL(p(113, s)), p, o, s)
-# define BOOST_PP_WHILE_113(p, o, s) BOOST_PP_WHILE_113_C(BOOST_PP_BOOL(p(114, s)), p, o, s)
-# define BOOST_PP_WHILE_114(p, o, s) BOOST_PP_WHILE_114_C(BOOST_PP_BOOL(p(115, s)), p, o, s)
-# define BOOST_PP_WHILE_115(p, o, s) BOOST_PP_WHILE_115_C(BOOST_PP_BOOL(p(116, s)), p, o, s)
-# define BOOST_PP_WHILE_116(p, o, s) BOOST_PP_WHILE_116_C(BOOST_PP_BOOL(p(117, s)), p, o, s)
-# define BOOST_PP_WHILE_117(p, o, s) BOOST_PP_WHILE_117_C(BOOST_PP_BOOL(p(118, s)), p, o, s)
-# define BOOST_PP_WHILE_118(p, o, s) BOOST_PP_WHILE_118_C(BOOST_PP_BOOL(p(119, s)), p, o, s)
-# define BOOST_PP_WHILE_119(p, o, s) BOOST_PP_WHILE_119_C(BOOST_PP_BOOL(p(120, s)), p, o, s)
-# define BOOST_PP_WHILE_120(p, o, s) BOOST_PP_WHILE_120_C(BOOST_PP_BOOL(p(121, s)), p, o, s)
-# define BOOST_PP_WHILE_121(p, o, s) BOOST_PP_WHILE_121_C(BOOST_PP_BOOL(p(122, s)), p, o, s)
-# define BOOST_PP_WHILE_122(p, o, s) BOOST_PP_WHILE_122_C(BOOST_PP_BOOL(p(123, s)), p, o, s)
-# define BOOST_PP_WHILE_123(p, o, s) BOOST_PP_WHILE_123_C(BOOST_PP_BOOL(p(124, s)), p, o, s)
-# define BOOST_PP_WHILE_124(p, o, s) BOOST_PP_WHILE_124_C(BOOST_PP_BOOL(p(125, s)), p, o, s)
-# define BOOST_PP_WHILE_125(p, o, s) BOOST_PP_WHILE_125_C(BOOST_PP_BOOL(p(126, s)), p, o, s)
-# define BOOST_PP_WHILE_126(p, o, s) BOOST_PP_WHILE_126_C(BOOST_PP_BOOL(p(127, s)), p, o, s)
-# define BOOST_PP_WHILE_127(p, o, s) BOOST_PP_WHILE_127_C(BOOST_PP_BOOL(p(128, s)), p, o, s)
-# define BOOST_PP_WHILE_128(p, o, s) BOOST_PP_WHILE_128_C(BOOST_PP_BOOL(p(129, s)), p, o, s)
-# define BOOST_PP_WHILE_129(p, o, s) BOOST_PP_WHILE_129_C(BOOST_PP_BOOL(p(130, s)), p, o, s)
-# define BOOST_PP_WHILE_130(p, o, s) BOOST_PP_WHILE_130_C(BOOST_PP_BOOL(p(131, s)), p, o, s)
-# define BOOST_PP_WHILE_131(p, o, s) BOOST_PP_WHILE_131_C(BOOST_PP_BOOL(p(132, s)), p, o, s)
-# define BOOST_PP_WHILE_132(p, o, s) BOOST_PP_WHILE_132_C(BOOST_PP_BOOL(p(133, s)), p, o, s)
-# define BOOST_PP_WHILE_133(p, o, s) BOOST_PP_WHILE_133_C(BOOST_PP_BOOL(p(134, s)), p, o, s)
-# define BOOST_PP_WHILE_134(p, o, s) BOOST_PP_WHILE_134_C(BOOST_PP_BOOL(p(135, s)), p, o, s)
-# define BOOST_PP_WHILE_135(p, o, s) BOOST_PP_WHILE_135_C(BOOST_PP_BOOL(p(136, s)), p, o, s)
-# define BOOST_PP_WHILE_136(p, o, s) BOOST_PP_WHILE_136_C(BOOST_PP_BOOL(p(137, s)), p, o, s)
-# define BOOST_PP_WHILE_137(p, o, s) BOOST_PP_WHILE_137_C(BOOST_PP_BOOL(p(138, s)), p, o, s)
-# define BOOST_PP_WHILE_138(p, o, s) BOOST_PP_WHILE_138_C(BOOST_PP_BOOL(p(139, s)), p, o, s)
-# define BOOST_PP_WHILE_139(p, o, s) BOOST_PP_WHILE_139_C(BOOST_PP_BOOL(p(140, s)), p, o, s)
-# define BOOST_PP_WHILE_140(p, o, s) BOOST_PP_WHILE_140_C(BOOST_PP_BOOL(p(141, s)), p, o, s)
-# define BOOST_PP_WHILE_141(p, o, s) BOOST_PP_WHILE_141_C(BOOST_PP_BOOL(p(142, s)), p, o, s)
-# define BOOST_PP_WHILE_142(p, o, s) BOOST_PP_WHILE_142_C(BOOST_PP_BOOL(p(143, s)), p, o, s)
-# define BOOST_PP_WHILE_143(p, o, s) BOOST_PP_WHILE_143_C(BOOST_PP_BOOL(p(144, s)), p, o, s)
-# define BOOST_PP_WHILE_144(p, o, s) BOOST_PP_WHILE_144_C(BOOST_PP_BOOL(p(145, s)), p, o, s)
-# define BOOST_PP_WHILE_145(p, o, s) BOOST_PP_WHILE_145_C(BOOST_PP_BOOL(p(146, s)), p, o, s)
-# define BOOST_PP_WHILE_146(p, o, s) BOOST_PP_WHILE_146_C(BOOST_PP_BOOL(p(147, s)), p, o, s)
-# define BOOST_PP_WHILE_147(p, o, s) BOOST_PP_WHILE_147_C(BOOST_PP_BOOL(p(148, s)), p, o, s)
-# define BOOST_PP_WHILE_148(p, o, s) BOOST_PP_WHILE_148_C(BOOST_PP_BOOL(p(149, s)), p, o, s)
-# define BOOST_PP_WHILE_149(p, o, s) BOOST_PP_WHILE_149_C(BOOST_PP_BOOL(p(150, s)), p, o, s)
-# define BOOST_PP_WHILE_150(p, o, s) BOOST_PP_WHILE_150_C(BOOST_PP_BOOL(p(151, s)), p, o, s)
-# define BOOST_PP_WHILE_151(p, o, s) BOOST_PP_WHILE_151_C(BOOST_PP_BOOL(p(152, s)), p, o, s)
-# define BOOST_PP_WHILE_152(p, o, s) BOOST_PP_WHILE_152_C(BOOST_PP_BOOL(p(153, s)), p, o, s)
-# define BOOST_PP_WHILE_153(p, o, s) BOOST_PP_WHILE_153_C(BOOST_PP_BOOL(p(154, s)), p, o, s)
-# define BOOST_PP_WHILE_154(p, o, s) BOOST_PP_WHILE_154_C(BOOST_PP_BOOL(p(155, s)), p, o, s)
-# define BOOST_PP_WHILE_155(p, o, s) BOOST_PP_WHILE_155_C(BOOST_PP_BOOL(p(156, s)), p, o, s)
-# define BOOST_PP_WHILE_156(p, o, s) BOOST_PP_WHILE_156_C(BOOST_PP_BOOL(p(157, s)), p, o, s)
-# define BOOST_PP_WHILE_157(p, o, s) BOOST_PP_WHILE_157_C(BOOST_PP_BOOL(p(158, s)), p, o, s)
-# define BOOST_PP_WHILE_158(p, o, s) BOOST_PP_WHILE_158_C(BOOST_PP_BOOL(p(159, s)), p, o, s)
-# define BOOST_PP_WHILE_159(p, o, s) BOOST_PP_WHILE_159_C(BOOST_PP_BOOL(p(160, s)), p, o, s)
-# define BOOST_PP_WHILE_160(p, o, s) BOOST_PP_WHILE_160_C(BOOST_PP_BOOL(p(161, s)), p, o, s)
-# define BOOST_PP_WHILE_161(p, o, s) BOOST_PP_WHILE_161_C(BOOST_PP_BOOL(p(162, s)), p, o, s)
-# define BOOST_PP_WHILE_162(p, o, s) BOOST_PP_WHILE_162_C(BOOST_PP_BOOL(p(163, s)), p, o, s)
-# define BOOST_PP_WHILE_163(p, o, s) BOOST_PP_WHILE_163_C(BOOST_PP_BOOL(p(164, s)), p, o, s)
-# define BOOST_PP_WHILE_164(p, o, s) BOOST_PP_WHILE_164_C(BOOST_PP_BOOL(p(165, s)), p, o, s)
-# define BOOST_PP_WHILE_165(p, o, s) BOOST_PP_WHILE_165_C(BOOST_PP_BOOL(p(166, s)), p, o, s)
-# define BOOST_PP_WHILE_166(p, o, s) BOOST_PP_WHILE_166_C(BOOST_PP_BOOL(p(167, s)), p, o, s)
-# define BOOST_PP_WHILE_167(p, o, s) BOOST_PP_WHILE_167_C(BOOST_PP_BOOL(p(168, s)), p, o, s)
-# define BOOST_PP_WHILE_168(p, o, s) BOOST_PP_WHILE_168_C(BOOST_PP_BOOL(p(169, s)), p, o, s)
-# define BOOST_PP_WHILE_169(p, o, s) BOOST_PP_WHILE_169_C(BOOST_PP_BOOL(p(170, s)), p, o, s)
-# define BOOST_PP_WHILE_170(p, o, s) BOOST_PP_WHILE_170_C(BOOST_PP_BOOL(p(171, s)), p, o, s)
-# define BOOST_PP_WHILE_171(p, o, s) BOOST_PP_WHILE_171_C(BOOST_PP_BOOL(p(172, s)), p, o, s)
-# define BOOST_PP_WHILE_172(p, o, s) BOOST_PP_WHILE_172_C(BOOST_PP_BOOL(p(173, s)), p, o, s)
-# define BOOST_PP_WHILE_173(p, o, s) BOOST_PP_WHILE_173_C(BOOST_PP_BOOL(p(174, s)), p, o, s)
-# define BOOST_PP_WHILE_174(p, o, s) BOOST_PP_WHILE_174_C(BOOST_PP_BOOL(p(175, s)), p, o, s)
-# define BOOST_PP_WHILE_175(p, o, s) BOOST_PP_WHILE_175_C(BOOST_PP_BOOL(p(176, s)), p, o, s)
-# define BOOST_PP_WHILE_176(p, o, s) BOOST_PP_WHILE_176_C(BOOST_PP_BOOL(p(177, s)), p, o, s)
-# define BOOST_PP_WHILE_177(p, o, s) BOOST_PP_WHILE_177_C(BOOST_PP_BOOL(p(178, s)), p, o, s)
-# define BOOST_PP_WHILE_178(p, o, s) BOOST_PP_WHILE_178_C(BOOST_PP_BOOL(p(179, s)), p, o, s)
-# define BOOST_PP_WHILE_179(p, o, s) BOOST_PP_WHILE_179_C(BOOST_PP_BOOL(p(180, s)), p, o, s)
-# define BOOST_PP_WHILE_180(p, o, s) BOOST_PP_WHILE_180_C(BOOST_PP_BOOL(p(181, s)), p, o, s)
-# define BOOST_PP_WHILE_181(p, o, s) BOOST_PP_WHILE_181_C(BOOST_PP_BOOL(p(182, s)), p, o, s)
-# define BOOST_PP_WHILE_182(p, o, s) BOOST_PP_WHILE_182_C(BOOST_PP_BOOL(p(183, s)), p, o, s)
-# define BOOST_PP_WHILE_183(p, o, s) BOOST_PP_WHILE_183_C(BOOST_PP_BOOL(p(184, s)), p, o, s)
-# define BOOST_PP_WHILE_184(p, o, s) BOOST_PP_WHILE_184_C(BOOST_PP_BOOL(p(185, s)), p, o, s)
-# define BOOST_PP_WHILE_185(p, o, s) BOOST_PP_WHILE_185_C(BOOST_PP_BOOL(p(186, s)), p, o, s)
-# define BOOST_PP_WHILE_186(p, o, s) BOOST_PP_WHILE_186_C(BOOST_PP_BOOL(p(187, s)), p, o, s)
-# define BOOST_PP_WHILE_187(p, o, s) BOOST_PP_WHILE_187_C(BOOST_PP_BOOL(p(188, s)), p, o, s)
-# define BOOST_PP_WHILE_188(p, o, s) BOOST_PP_WHILE_188_C(BOOST_PP_BOOL(p(189, s)), p, o, s)
-# define BOOST_PP_WHILE_189(p, o, s) BOOST_PP_WHILE_189_C(BOOST_PP_BOOL(p(190, s)), p, o, s)
-# define BOOST_PP_WHILE_190(p, o, s) BOOST_PP_WHILE_190_C(BOOST_PP_BOOL(p(191, s)), p, o, s)
-# define BOOST_PP_WHILE_191(p, o, s) BOOST_PP_WHILE_191_C(BOOST_PP_BOOL(p(192, s)), p, o, s)
-# define BOOST_PP_WHILE_192(p, o, s) BOOST_PP_WHILE_192_C(BOOST_PP_BOOL(p(193, s)), p, o, s)
-# define BOOST_PP_WHILE_193(p, o, s) BOOST_PP_WHILE_193_C(BOOST_PP_BOOL(p(194, s)), p, o, s)
-# define BOOST_PP_WHILE_194(p, o, s) BOOST_PP_WHILE_194_C(BOOST_PP_BOOL(p(195, s)), p, o, s)
-# define BOOST_PP_WHILE_195(p, o, s) BOOST_PP_WHILE_195_C(BOOST_PP_BOOL(p(196, s)), p, o, s)
-# define BOOST_PP_WHILE_196(p, o, s) BOOST_PP_WHILE_196_C(BOOST_PP_BOOL(p(197, s)), p, o, s)
-# define BOOST_PP_WHILE_197(p, o, s) BOOST_PP_WHILE_197_C(BOOST_PP_BOOL(p(198, s)), p, o, s)
-# define BOOST_PP_WHILE_198(p, o, s) BOOST_PP_WHILE_198_C(BOOST_PP_BOOL(p(199, s)), p, o, s)
-# define BOOST_PP_WHILE_199(p, o, s) BOOST_PP_WHILE_199_C(BOOST_PP_BOOL(p(200, s)), p, o, s)
-# define BOOST_PP_WHILE_200(p, o, s) BOOST_PP_WHILE_200_C(BOOST_PP_BOOL(p(201, s)), p, o, s)
-# define BOOST_PP_WHILE_201(p, o, s) BOOST_PP_WHILE_201_C(BOOST_PP_BOOL(p(202, s)), p, o, s)
-# define BOOST_PP_WHILE_202(p, o, s) BOOST_PP_WHILE_202_C(BOOST_PP_BOOL(p(203, s)), p, o, s)
-# define BOOST_PP_WHILE_203(p, o, s) BOOST_PP_WHILE_203_C(BOOST_PP_BOOL(p(204, s)), p, o, s)
-# define BOOST_PP_WHILE_204(p, o, s) BOOST_PP_WHILE_204_C(BOOST_PP_BOOL(p(205, s)), p, o, s)
-# define BOOST_PP_WHILE_205(p, o, s) BOOST_PP_WHILE_205_C(BOOST_PP_BOOL(p(206, s)), p, o, s)
-# define BOOST_PP_WHILE_206(p, o, s) BOOST_PP_WHILE_206_C(BOOST_PP_BOOL(p(207, s)), p, o, s)
-# define BOOST_PP_WHILE_207(p, o, s) BOOST_PP_WHILE_207_C(BOOST_PP_BOOL(p(208, s)), p, o, s)
-# define BOOST_PP_WHILE_208(p, o, s) BOOST_PP_WHILE_208_C(BOOST_PP_BOOL(p(209, s)), p, o, s)
-# define BOOST_PP_WHILE_209(p, o, s) BOOST_PP_WHILE_209_C(BOOST_PP_BOOL(p(210, s)), p, o, s)
-# define BOOST_PP_WHILE_210(p, o, s) BOOST_PP_WHILE_210_C(BOOST_PP_BOOL(p(211, s)), p, o, s)
-# define BOOST_PP_WHILE_211(p, o, s) BOOST_PP_WHILE_211_C(BOOST_PP_BOOL(p(212, s)), p, o, s)
-# define BOOST_PP_WHILE_212(p, o, s) BOOST_PP_WHILE_212_C(BOOST_PP_BOOL(p(213, s)), p, o, s)
-# define BOOST_PP_WHILE_213(p, o, s) BOOST_PP_WHILE_213_C(BOOST_PP_BOOL(p(214, s)), p, o, s)
-# define BOOST_PP_WHILE_214(p, o, s) BOOST_PP_WHILE_214_C(BOOST_PP_BOOL(p(215, s)), p, o, s)
-# define BOOST_PP_WHILE_215(p, o, s) BOOST_PP_WHILE_215_C(BOOST_PP_BOOL(p(216, s)), p, o, s)
-# define BOOST_PP_WHILE_216(p, o, s) BOOST_PP_WHILE_216_C(BOOST_PP_BOOL(p(217, s)), p, o, s)
-# define BOOST_PP_WHILE_217(p, o, s) BOOST_PP_WHILE_217_C(BOOST_PP_BOOL(p(218, s)), p, o, s)
-# define BOOST_PP_WHILE_218(p, o, s) BOOST_PP_WHILE_218_C(BOOST_PP_BOOL(p(219, s)), p, o, s)
-# define BOOST_PP_WHILE_219(p, o, s) BOOST_PP_WHILE_219_C(BOOST_PP_BOOL(p(220, s)), p, o, s)
-# define BOOST_PP_WHILE_220(p, o, s) BOOST_PP_WHILE_220_C(BOOST_PP_BOOL(p(221, s)), p, o, s)
-# define BOOST_PP_WHILE_221(p, o, s) BOOST_PP_WHILE_221_C(BOOST_PP_BOOL(p(222, s)), p, o, s)
-# define BOOST_PP_WHILE_222(p, o, s) BOOST_PP_WHILE_222_C(BOOST_PP_BOOL(p(223, s)), p, o, s)
-# define BOOST_PP_WHILE_223(p, o, s) BOOST_PP_WHILE_223_C(BOOST_PP_BOOL(p(224, s)), p, o, s)
-# define BOOST_PP_WHILE_224(p, o, s) BOOST_PP_WHILE_224_C(BOOST_PP_BOOL(p(225, s)), p, o, s)
-# define BOOST_PP_WHILE_225(p, o, s) BOOST_PP_WHILE_225_C(BOOST_PP_BOOL(p(226, s)), p, o, s)
-# define BOOST_PP_WHILE_226(p, o, s) BOOST_PP_WHILE_226_C(BOOST_PP_BOOL(p(227, s)), p, o, s)
-# define BOOST_PP_WHILE_227(p, o, s) BOOST_PP_WHILE_227_C(BOOST_PP_BOOL(p(228, s)), p, o, s)
-# define BOOST_PP_WHILE_228(p, o, s) BOOST_PP_WHILE_228_C(BOOST_PP_BOOL(p(229, s)), p, o, s)
-# define BOOST_PP_WHILE_229(p, o, s) BOOST_PP_WHILE_229_C(BOOST_PP_BOOL(p(230, s)), p, o, s)
-# define BOOST_PP_WHILE_230(p, o, s) BOOST_PP_WHILE_230_C(BOOST_PP_BOOL(p(231, s)), p, o, s)
-# define BOOST_PP_WHILE_231(p, o, s) BOOST_PP_WHILE_231_C(BOOST_PP_BOOL(p(232, s)), p, o, s)
-# define BOOST_PP_WHILE_232(p, o, s) BOOST_PP_WHILE_232_C(BOOST_PP_BOOL(p(233, s)), p, o, s)
-# define BOOST_PP_WHILE_233(p, o, s) BOOST_PP_WHILE_233_C(BOOST_PP_BOOL(p(234, s)), p, o, s)
-# define BOOST_PP_WHILE_234(p, o, s) BOOST_PP_WHILE_234_C(BOOST_PP_BOOL(p(235, s)), p, o, s)
-# define BOOST_PP_WHILE_235(p, o, s) BOOST_PP_WHILE_235_C(BOOST_PP_BOOL(p(236, s)), p, o, s)
-# define BOOST_PP_WHILE_236(p, o, s) BOOST_PP_WHILE_236_C(BOOST_PP_BOOL(p(237, s)), p, o, s)
-# define BOOST_PP_WHILE_237(p, o, s) BOOST_PP_WHILE_237_C(BOOST_PP_BOOL(p(238, s)), p, o, s)
-# define BOOST_PP_WHILE_238(p, o, s) BOOST_PP_WHILE_238_C(BOOST_PP_BOOL(p(239, s)), p, o, s)
-# define BOOST_PP_WHILE_239(p, o, s) BOOST_PP_WHILE_239_C(BOOST_PP_BOOL(p(240, s)), p, o, s)
-# define BOOST_PP_WHILE_240(p, o, s) BOOST_PP_WHILE_240_C(BOOST_PP_BOOL(p(241, s)), p, o, s)
-# define BOOST_PP_WHILE_241(p, o, s) BOOST_PP_WHILE_241_C(BOOST_PP_BOOL(p(242, s)), p, o, s)
-# define BOOST_PP_WHILE_242(p, o, s) BOOST_PP_WHILE_242_C(BOOST_PP_BOOL(p(243, s)), p, o, s)
-# define BOOST_PP_WHILE_243(p, o, s) BOOST_PP_WHILE_243_C(BOOST_PP_BOOL(p(244, s)), p, o, s)
-# define BOOST_PP_WHILE_244(p, o, s) BOOST_PP_WHILE_244_C(BOOST_PP_BOOL(p(245, s)), p, o, s)
-# define BOOST_PP_WHILE_245(p, o, s) BOOST_PP_WHILE_245_C(BOOST_PP_BOOL(p(246, s)), p, o, s)
-# define BOOST_PP_WHILE_246(p, o, s) BOOST_PP_WHILE_246_C(BOOST_PP_BOOL(p(247, s)), p, o, s)
-# define BOOST_PP_WHILE_247(p, o, s) BOOST_PP_WHILE_247_C(BOOST_PP_BOOL(p(248, s)), p, o, s)
-# define BOOST_PP_WHILE_248(p, o, s) BOOST_PP_WHILE_248_C(BOOST_PP_BOOL(p(249, s)), p, o, s)
-# define BOOST_PP_WHILE_249(p, o, s) BOOST_PP_WHILE_249_C(BOOST_PP_BOOL(p(250, s)), p, o, s)
-# define BOOST_PP_WHILE_250(p, o, s) BOOST_PP_WHILE_250_C(BOOST_PP_BOOL(p(251, s)), p, o, s)
-# define BOOST_PP_WHILE_251(p, o, s) BOOST_PP_WHILE_251_C(BOOST_PP_BOOL(p(252, s)), p, o, s)
-# define BOOST_PP_WHILE_252(p, o, s) BOOST_PP_WHILE_252_C(BOOST_PP_BOOL(p(253, s)), p, o, s)
-# define BOOST_PP_WHILE_253(p, o, s) BOOST_PP_WHILE_253_C(BOOST_PP_BOOL(p(254, s)), p, o, s)
-# define BOOST_PP_WHILE_254(p, o, s) BOOST_PP_WHILE_254_C(BOOST_PP_BOOL(p(255, s)), p, o, s)
-# define BOOST_PP_WHILE_255(p, o, s) BOOST_PP_WHILE_255_C(BOOST_PP_BOOL(p(256, s)), p, o, s)
-# define BOOST_PP_WHILE_256(p, o, s) BOOST_PP_WHILE_256_C(BOOST_PP_BOOL(p(257, s)), p, o, s)
-#
-# define BOOST_PP_WHILE_1_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_2, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(2, s))
-# define BOOST_PP_WHILE_2_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_3, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(3, s))
-# define BOOST_PP_WHILE_3_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_4, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(4, s))
-# define BOOST_PP_WHILE_4_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_5, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(5, s))
-# define BOOST_PP_WHILE_5_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_6, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(6, s))
-# define BOOST_PP_WHILE_6_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_7, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(7, s))
-# define BOOST_PP_WHILE_7_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_8, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(8, s))
-# define BOOST_PP_WHILE_8_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_9, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(9, s))
-# define BOOST_PP_WHILE_9_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_10, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(10, s))
-# define BOOST_PP_WHILE_10_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_11, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(11, s))
-# define BOOST_PP_WHILE_11_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_12, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(12, s))
-# define BOOST_PP_WHILE_12_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_13, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(13, s))
-# define BOOST_PP_WHILE_13_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_14, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(14, s))
-# define BOOST_PP_WHILE_14_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_15, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(15, s))
-# define BOOST_PP_WHILE_15_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_16, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(16, s))
-# define BOOST_PP_WHILE_16_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_17, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(17, s))
-# define BOOST_PP_WHILE_17_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_18, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(18, s))
-# define BOOST_PP_WHILE_18_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_19, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(19, s))
-# define BOOST_PP_WHILE_19_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_20, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(20, s))
-# define BOOST_PP_WHILE_20_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_21, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(21, s))
-# define BOOST_PP_WHILE_21_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_22, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(22, s))
-# define BOOST_PP_WHILE_22_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_23, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(23, s))
-# define BOOST_PP_WHILE_23_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_24, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(24, s))
-# define BOOST_PP_WHILE_24_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_25, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(25, s))
-# define BOOST_PP_WHILE_25_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_26, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(26, s))
-# define BOOST_PP_WHILE_26_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_27, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(27, s))
-# define BOOST_PP_WHILE_27_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_28, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(28, s))
-# define BOOST_PP_WHILE_28_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_29, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(29, s))
-# define BOOST_PP_WHILE_29_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_30, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(30, s))
-# define BOOST_PP_WHILE_30_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_31, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(31, s))
-# define BOOST_PP_WHILE_31_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_32, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(32, s))
-# define BOOST_PP_WHILE_32_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_33, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(33, s))
-# define BOOST_PP_WHILE_33_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_34, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(34, s))
-# define BOOST_PP_WHILE_34_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_35, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(35, s))
-# define BOOST_PP_WHILE_35_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_36, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(36, s))
-# define BOOST_PP_WHILE_36_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_37, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(37, s))
-# define BOOST_PP_WHILE_37_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_38, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(38, s))
-# define BOOST_PP_WHILE_38_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_39, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(39, s))
-# define BOOST_PP_WHILE_39_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_40, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(40, s))
-# define BOOST_PP_WHILE_40_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_41, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(41, s))
-# define BOOST_PP_WHILE_41_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_42, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(42, s))
-# define BOOST_PP_WHILE_42_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_43, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(43, s))
-# define BOOST_PP_WHILE_43_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_44, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(44, s))
-# define BOOST_PP_WHILE_44_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_45, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(45, s))
-# define BOOST_PP_WHILE_45_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_46, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(46, s))
-# define BOOST_PP_WHILE_46_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_47, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(47, s))
-# define BOOST_PP_WHILE_47_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_48, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(48, s))
-# define BOOST_PP_WHILE_48_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_49, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(49, s))
-# define BOOST_PP_WHILE_49_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_50, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(50, s))
-# define BOOST_PP_WHILE_50_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_51, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(51, s))
-# define BOOST_PP_WHILE_51_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_52, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(52, s))
-# define BOOST_PP_WHILE_52_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_53, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(53, s))
-# define BOOST_PP_WHILE_53_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_54, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(54, s))
-# define BOOST_PP_WHILE_54_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_55, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(55, s))
-# define BOOST_PP_WHILE_55_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_56, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(56, s))
-# define BOOST_PP_WHILE_56_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_57, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(57, s))
-# define BOOST_PP_WHILE_57_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_58, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(58, s))
-# define BOOST_PP_WHILE_58_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_59, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(59, s))
-# define BOOST_PP_WHILE_59_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_60, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(60, s))
-# define BOOST_PP_WHILE_60_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_61, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(61, s))
-# define BOOST_PP_WHILE_61_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_62, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(62, s))
-# define BOOST_PP_WHILE_62_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_63, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(63, s))
-# define BOOST_PP_WHILE_63_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_64, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(64, s))
-# define BOOST_PP_WHILE_64_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_65, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(65, s))
-# define BOOST_PP_WHILE_65_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_66, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(66, s))
-# define BOOST_PP_WHILE_66_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_67, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(67, s))
-# define BOOST_PP_WHILE_67_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_68, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(68, s))
-# define BOOST_PP_WHILE_68_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_69, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(69, s))
-# define BOOST_PP_WHILE_69_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_70, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(70, s))
-# define BOOST_PP_WHILE_70_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_71, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(71, s))
-# define BOOST_PP_WHILE_71_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_72, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(72, s))
-# define BOOST_PP_WHILE_72_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_73, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(73, s))
-# define BOOST_PP_WHILE_73_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_74, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(74, s))
-# define BOOST_PP_WHILE_74_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_75, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(75, s))
-# define BOOST_PP_WHILE_75_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_76, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(76, s))
-# define BOOST_PP_WHILE_76_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_77, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(77, s))
-# define BOOST_PP_WHILE_77_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_78, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(78, s))
-# define BOOST_PP_WHILE_78_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_79, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(79, s))
-# define BOOST_PP_WHILE_79_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_80, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(80, s))
-# define BOOST_PP_WHILE_80_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_81, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(81, s))
-# define BOOST_PP_WHILE_81_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_82, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(82, s))
-# define BOOST_PP_WHILE_82_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_83, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(83, s))
-# define BOOST_PP_WHILE_83_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_84, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(84, s))
-# define BOOST_PP_WHILE_84_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_85, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(85, s))
-# define BOOST_PP_WHILE_85_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_86, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(86, s))
-# define BOOST_PP_WHILE_86_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_87, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(87, s))
-# define BOOST_PP_WHILE_87_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_88, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(88, s))
-# define BOOST_PP_WHILE_88_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_89, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(89, s))
-# define BOOST_PP_WHILE_89_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_90, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(90, s))
-# define BOOST_PP_WHILE_90_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_91, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(91, s))
-# define BOOST_PP_WHILE_91_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_92, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(92, s))
-# define BOOST_PP_WHILE_92_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_93, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(93, s))
-# define BOOST_PP_WHILE_93_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_94, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(94, s))
-# define BOOST_PP_WHILE_94_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_95, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(95, s))
-# define BOOST_PP_WHILE_95_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_96, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(96, s))
-# define BOOST_PP_WHILE_96_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_97, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(97, s))
-# define BOOST_PP_WHILE_97_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_98, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(98, s))
-# define BOOST_PP_WHILE_98_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_99, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(99, s))
-# define BOOST_PP_WHILE_99_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_100, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(100, s))
-# define BOOST_PP_WHILE_100_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_101, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(101, s))
-# define BOOST_PP_WHILE_101_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_102, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(102, s))
-# define BOOST_PP_WHILE_102_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_103, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(103, s))
-# define BOOST_PP_WHILE_103_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_104, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(104, s))
-# define BOOST_PP_WHILE_104_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_105, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(105, s))
-# define BOOST_PP_WHILE_105_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_106, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(106, s))
-# define BOOST_PP_WHILE_106_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_107, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(107, s))
-# define BOOST_PP_WHILE_107_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_108, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(108, s))
-# define BOOST_PP_WHILE_108_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_109, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(109, s))
-# define BOOST_PP_WHILE_109_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_110, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(110, s))
-# define BOOST_PP_WHILE_110_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_111, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(111, s))
-# define BOOST_PP_WHILE_111_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_112, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(112, s))
-# define BOOST_PP_WHILE_112_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_113, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(113, s))
-# define BOOST_PP_WHILE_113_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_114, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(114, s))
-# define BOOST_PP_WHILE_114_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_115, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(115, s))
-# define BOOST_PP_WHILE_115_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_116, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(116, s))
-# define BOOST_PP_WHILE_116_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_117, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(117, s))
-# define BOOST_PP_WHILE_117_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_118, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(118, s))
-# define BOOST_PP_WHILE_118_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_119, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(119, s))
-# define BOOST_PP_WHILE_119_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_120, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(120, s))
-# define BOOST_PP_WHILE_120_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_121, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(121, s))
-# define BOOST_PP_WHILE_121_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_122, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(122, s))
-# define BOOST_PP_WHILE_122_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_123, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(123, s))
-# define BOOST_PP_WHILE_123_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_124, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(124, s))
-# define BOOST_PP_WHILE_124_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_125, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(125, s))
-# define BOOST_PP_WHILE_125_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_126, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(126, s))
-# define BOOST_PP_WHILE_126_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_127, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(127, s))
-# define BOOST_PP_WHILE_127_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_128, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(128, s))
-# define BOOST_PP_WHILE_128_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_129, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(129, s))
-# define BOOST_PP_WHILE_129_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_130, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(130, s))
-# define BOOST_PP_WHILE_130_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_131, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(131, s))
-# define BOOST_PP_WHILE_131_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_132, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(132, s))
-# define BOOST_PP_WHILE_132_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_133, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(133, s))
-# define BOOST_PP_WHILE_133_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_134, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(134, s))
-# define BOOST_PP_WHILE_134_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_135, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(135, s))
-# define BOOST_PP_WHILE_135_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_136, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(136, s))
-# define BOOST_PP_WHILE_136_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_137, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(137, s))
-# define BOOST_PP_WHILE_137_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_138, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(138, s))
-# define BOOST_PP_WHILE_138_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_139, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(139, s))
-# define BOOST_PP_WHILE_139_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_140, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(140, s))
-# define BOOST_PP_WHILE_140_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_141, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(141, s))
-# define BOOST_PP_WHILE_141_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_142, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(142, s))
-# define BOOST_PP_WHILE_142_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_143, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(143, s))
-# define BOOST_PP_WHILE_143_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_144, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(144, s))
-# define BOOST_PP_WHILE_144_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_145, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(145, s))
-# define BOOST_PP_WHILE_145_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_146, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(146, s))
-# define BOOST_PP_WHILE_146_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_147, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(147, s))
-# define BOOST_PP_WHILE_147_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_148, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(148, s))
-# define BOOST_PP_WHILE_148_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_149, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(149, s))
-# define BOOST_PP_WHILE_149_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_150, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(150, s))
-# define BOOST_PP_WHILE_150_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_151, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(151, s))
-# define BOOST_PP_WHILE_151_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_152, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(152, s))
-# define BOOST_PP_WHILE_152_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_153, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(153, s))
-# define BOOST_PP_WHILE_153_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_154, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(154, s))
-# define BOOST_PP_WHILE_154_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_155, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(155, s))
-# define BOOST_PP_WHILE_155_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_156, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(156, s))
-# define BOOST_PP_WHILE_156_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_157, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(157, s))
-# define BOOST_PP_WHILE_157_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_158, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(158, s))
-# define BOOST_PP_WHILE_158_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_159, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(159, s))
-# define BOOST_PP_WHILE_159_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_160, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(160, s))
-# define BOOST_PP_WHILE_160_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_161, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(161, s))
-# define BOOST_PP_WHILE_161_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_162, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(162, s))
-# define BOOST_PP_WHILE_162_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_163, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(163, s))
-# define BOOST_PP_WHILE_163_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_164, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(164, s))
-# define BOOST_PP_WHILE_164_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_165, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(165, s))
-# define BOOST_PP_WHILE_165_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_166, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(166, s))
-# define BOOST_PP_WHILE_166_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_167, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(167, s))
-# define BOOST_PP_WHILE_167_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_168, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(168, s))
-# define BOOST_PP_WHILE_168_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_169, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(169, s))
-# define BOOST_PP_WHILE_169_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_170, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(170, s))
-# define BOOST_PP_WHILE_170_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_171, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(171, s))
-# define BOOST_PP_WHILE_171_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_172, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(172, s))
-# define BOOST_PP_WHILE_172_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_173, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(173, s))
-# define BOOST_PP_WHILE_173_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_174, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(174, s))
-# define BOOST_PP_WHILE_174_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_175, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(175, s))
-# define BOOST_PP_WHILE_175_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_176, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(176, s))
-# define BOOST_PP_WHILE_176_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_177, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(177, s))
-# define BOOST_PP_WHILE_177_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_178, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(178, s))
-# define BOOST_PP_WHILE_178_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_179, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(179, s))
-# define BOOST_PP_WHILE_179_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_180, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(180, s))
-# define BOOST_PP_WHILE_180_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_181, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(181, s))
-# define BOOST_PP_WHILE_181_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_182, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(182, s))
-# define BOOST_PP_WHILE_182_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_183, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(183, s))
-# define BOOST_PP_WHILE_183_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_184, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(184, s))
-# define BOOST_PP_WHILE_184_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_185, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(185, s))
-# define BOOST_PP_WHILE_185_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_186, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(186, s))
-# define BOOST_PP_WHILE_186_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_187, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(187, s))
-# define BOOST_PP_WHILE_187_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_188, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(188, s))
-# define BOOST_PP_WHILE_188_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_189, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(189, s))
-# define BOOST_PP_WHILE_189_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_190, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(190, s))
-# define BOOST_PP_WHILE_190_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_191, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(191, s))
-# define BOOST_PP_WHILE_191_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_192, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(192, s))
-# define BOOST_PP_WHILE_192_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_193, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(193, s))
-# define BOOST_PP_WHILE_193_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_194, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(194, s))
-# define BOOST_PP_WHILE_194_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_195, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(195, s))
-# define BOOST_PP_WHILE_195_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_196, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(196, s))
-# define BOOST_PP_WHILE_196_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_197, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(197, s))
-# define BOOST_PP_WHILE_197_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_198, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(198, s))
-# define BOOST_PP_WHILE_198_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_199, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(199, s))
-# define BOOST_PP_WHILE_199_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_200, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(200, s))
-# define BOOST_PP_WHILE_200_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_201, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(201, s))
-# define BOOST_PP_WHILE_201_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_202, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(202, s))
-# define BOOST_PP_WHILE_202_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_203, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(203, s))
-# define BOOST_PP_WHILE_203_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_204, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(204, s))
-# define BOOST_PP_WHILE_204_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_205, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(205, s))
-# define BOOST_PP_WHILE_205_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_206, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(206, s))
-# define BOOST_PP_WHILE_206_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_207, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(207, s))
-# define BOOST_PP_WHILE_207_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_208, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(208, s))
-# define BOOST_PP_WHILE_208_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_209, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(209, s))
-# define BOOST_PP_WHILE_209_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_210, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(210, s))
-# define BOOST_PP_WHILE_210_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_211, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(211, s))
-# define BOOST_PP_WHILE_211_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_212, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(212, s))
-# define BOOST_PP_WHILE_212_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_213, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(213, s))
-# define BOOST_PP_WHILE_213_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_214, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(214, s))
-# define BOOST_PP_WHILE_214_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_215, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(215, s))
-# define BOOST_PP_WHILE_215_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_216, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(216, s))
-# define BOOST_PP_WHILE_216_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_217, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(217, s))
-# define BOOST_PP_WHILE_217_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_218, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(218, s))
-# define BOOST_PP_WHILE_218_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_219, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(219, s))
-# define BOOST_PP_WHILE_219_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_220, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(220, s))
-# define BOOST_PP_WHILE_220_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_221, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(221, s))
-# define BOOST_PP_WHILE_221_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_222, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(222, s))
-# define BOOST_PP_WHILE_222_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_223, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(223, s))
-# define BOOST_PP_WHILE_223_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_224, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(224, s))
-# define BOOST_PP_WHILE_224_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_225, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(225, s))
-# define BOOST_PP_WHILE_225_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_226, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(226, s))
-# define BOOST_PP_WHILE_226_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_227, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(227, s))
-# define BOOST_PP_WHILE_227_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_228, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(228, s))
-# define BOOST_PP_WHILE_228_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_229, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(229, s))
-# define BOOST_PP_WHILE_229_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_230, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(230, s))
-# define BOOST_PP_WHILE_230_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_231, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(231, s))
-# define BOOST_PP_WHILE_231_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_232, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(232, s))
-# define BOOST_PP_WHILE_232_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_233, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(233, s))
-# define BOOST_PP_WHILE_233_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_234, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(234, s))
-# define BOOST_PP_WHILE_234_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_235, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(235, s))
-# define BOOST_PP_WHILE_235_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_236, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(236, s))
-# define BOOST_PP_WHILE_236_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_237, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(237, s))
-# define BOOST_PP_WHILE_237_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_238, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(238, s))
-# define BOOST_PP_WHILE_238_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_239, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(239, s))
-# define BOOST_PP_WHILE_239_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_240, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(240, s))
-# define BOOST_PP_WHILE_240_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_241, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(241, s))
-# define BOOST_PP_WHILE_241_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_242, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(242, s))
-# define BOOST_PP_WHILE_242_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_243, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(243, s))
-# define BOOST_PP_WHILE_243_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_244, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(244, s))
-# define BOOST_PP_WHILE_244_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_245, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(245, s))
-# define BOOST_PP_WHILE_245_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_246, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(246, s))
-# define BOOST_PP_WHILE_246_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_247, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(247, s))
-# define BOOST_PP_WHILE_247_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_248, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(248, s))
-# define BOOST_PP_WHILE_248_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_249, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(249, s))
-# define BOOST_PP_WHILE_249_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_250, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(250, s))
-# define BOOST_PP_WHILE_250_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_251, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(251, s))
-# define BOOST_PP_WHILE_251_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_252, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(252, s))
-# define BOOST_PP_WHILE_252_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_253, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(253, s))
-# define BOOST_PP_WHILE_253_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_254, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(254, s))
-# define BOOST_PP_WHILE_254_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_255, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(255, s))
-# define BOOST_PP_WHILE_255_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_256, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(256, s))
-# define BOOST_PP_WHILE_256_C(c, p, o, s) BOOST_PP_IIF(c, BOOST_PP_WHILE_257, s BOOST_PP_TUPLE_EAT_3)(p, o, BOOST_PP_IIF(c, o, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_2)(257, s))
-#
-#
-# endif
diff --git a/boost/preprocessor/control/expr_if.hpp b/boost/preprocessor/control/expr_if.hpp
deleted file mode 100644
index 0e1ab51..0000000
--- a/boost/preprocessor/control/expr_if.hpp
+++ /dev/null
@@ -1,30 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * Distributed under the Boost Software License, Version 1.0. (See
-#  * accompanying file LICENSE_1_0.txt or copy at
-#  * http://www.boost.org/LICENSE_1_0.txt)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_CONTROL_EXPR_IF_HPP
-# define BOOST_PREPROCESSOR_CONTROL_EXPR_IF_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/control/expr_iif.hpp>
-# include <boost/preprocessor/logical/bool.hpp>
-#
-# /* BOOST_PP_EXPR_IF */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_EXPR_IF(cond, expr) BOOST_PP_EXPR_IIF(BOOST_PP_BOOL(cond), expr)
-# else
-#    define BOOST_PP_EXPR_IF(cond, expr) BOOST_PP_EXPR_IF_I(cond, expr)
-#    define BOOST_PP_EXPR_IF_I(cond, expr) BOOST_PP_EXPR_IIF(BOOST_PP_BOOL(cond), expr)
-# endif
-#
-# endif
diff --git a/boost/preprocessor/control/expr_iif.hpp b/boost/preprocessor/control/expr_iif.hpp
deleted file mode 100644
index 58f45a4..0000000
--- a/boost/preprocessor/control/expr_iif.hpp
+++ /dev/null
@@ -1,31 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_CONTROL_EXPR_IIF_HPP
-# define BOOST_PREPROCESSOR_CONTROL_EXPR_IIF_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-#
-# /* BOOST_PP_EXPR_IIF */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#    define BOOST_PP_EXPR_IIF(bit, expr) BOOST_PP_EXPR_IIF_I(bit, expr)
-# else
-#    define BOOST_PP_EXPR_IIF(bit, expr) BOOST_PP_EXPR_IIF_OO((bit, expr))
-#    define BOOST_PP_EXPR_IIF_OO(par) BOOST_PP_EXPR_IIF_I ## par
-# endif
-#
-# define BOOST_PP_EXPR_IIF_I(bit, expr) BOOST_PP_EXPR_IIF_ ## bit(expr)
-#
-# define BOOST_PP_EXPR_IIF_0(expr)
-# define BOOST_PP_EXPR_IIF_1(expr) expr
-#
-# endif
diff --git a/boost/preprocessor/control/if.hpp b/boost/preprocessor/control/if.hpp
deleted file mode 100644
index 52cfc3d..0000000
--- a/boost/preprocessor/control/if.hpp
+++ /dev/null
@@ -1,30 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * Distributed under the Boost Software License, Version 1.0. (See
-#  * accompanying file LICENSE_1_0.txt or copy at
-#  * http://www.boost.org/LICENSE_1_0.txt)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_CONTROL_IF_HPP
-# define BOOST_PREPROCESSOR_CONTROL_IF_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/control/iif.hpp>
-# include <boost/preprocessor/logical/bool.hpp>
-#
-# /* BOOST_PP_IF */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_IF(cond, t, f) BOOST_PP_IIF(BOOST_PP_BOOL(cond), t, f)
-# else
-#    define BOOST_PP_IF(cond, t, f) BOOST_PP_IF_I(cond, t, f)
-#    define BOOST_PP_IF_I(cond, t, f) BOOST_PP_IIF(BOOST_PP_BOOL(cond), t, f)
-# endif
-#
-# endif
diff --git a/boost/preprocessor/control/iif.hpp b/boost/preprocessor/control/iif.hpp
deleted file mode 100644
index fd07817..0000000
--- a/boost/preprocessor/control/iif.hpp
+++ /dev/null
@@ -1,34 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_CONTROL_IIF_HPP
-# define BOOST_PREPROCESSOR_CONTROL_IIF_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#    define BOOST_PP_IIF(bit, t, f) BOOST_PP_IIF_I(bit, t, f)
-# else
-#    define BOOST_PP_IIF(bit, t, f) BOOST_PP_IIF_OO((bit, t, f))
-#    define BOOST_PP_IIF_OO(par) BOOST_PP_IIF_I ## par
-# endif
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
-#    define BOOST_PP_IIF_I(bit, t, f) BOOST_PP_IIF_ ## bit(t, f)
-# else
-#    define BOOST_PP_IIF_I(bit, t, f) BOOST_PP_IIF_II(BOOST_PP_IIF_ ## bit(t, f))
-#    define BOOST_PP_IIF_II(id) id
-# endif
-#
-# define BOOST_PP_IIF_0(t, f) f
-# define BOOST_PP_IIF_1(t, f) t
-#
-# endif
diff --git a/boost/preprocessor/control/while.hpp b/boost/preprocessor/control/while.hpp
deleted file mode 100644
index e8a65ff..0000000
--- a/boost/preprocessor/control/while.hpp
+++ /dev/null
@@ -1,312 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * Distributed under the Boost Software License, Version 1.0. (See
-#  * accompanying file LICENSE_1_0.txt or copy at
-#  * http://www.boost.org/LICENSE_1_0.txt)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_CONTROL_WHILE_HPP
-# define BOOST_PREPROCESSOR_CONTROL_WHILE_HPP
-#
-# include <boost/preprocessor/cat.hpp>
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/debug/error.hpp>
-# include <boost/preprocessor/detail/auto_rec.hpp>
-# include <boost/preprocessor/list/fold_left.hpp>
-# include <boost/preprocessor/list/fold_right.hpp>
-# include <boost/preprocessor/logical/bitand.hpp>
-#
-# /* BOOST_PP_WHILE */
-#
-# if 0
-#    define BOOST_PP_WHILE(pred, op, state)
-# endif
-#
-# define BOOST_PP_WHILE BOOST_PP_CAT(BOOST_PP_WHILE_, BOOST_PP_AUTO_REC(BOOST_PP_WHILE_P, 256))
-#
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_WHILE_P(n) BOOST_PP_BITAND(BOOST_PP_CAT(BOOST_PP_WHILE_CHECK_, BOOST_PP_WHILE_ ## n(BOOST_PP_WHILE_F, BOOST_PP_NIL, BOOST_PP_NIL)), BOOST_PP_BITAND(BOOST_PP_CAT(BOOST_PP_LIST_FOLD_LEFT_CHECK_, BOOST_PP_LIST_FOLD_LEFT_ ## n(BOOST_PP_NIL, BOOST_PP_NIL, BOOST_PP_NIL)), BOOST_PP_CAT(BOOST_PP_LIST_FOLD_RIGHT_CHECK_, BOOST_PP_LIST_FOLD_RIGHT_ ## n(BOOST_PP_NIL, BOOST_PP_NIL, BOOST_PP_NIL))))
-# else
-#    define BOOST_PP_WHILE_P(n) BOOST_PP_BITAND(BOOST_PP_CAT(BOOST_PP_WHILE_CHECK_, BOOST_PP_WHILE_ ## n(BOOST_PP_WHILE_F, BOOST_PP_NIL, BOOST_PP_NIL)), BOOST_PP_CAT(BOOST_PP_LIST_FOLD_LEFT_CHECK_, BOOST_PP_LIST_FOLD_LEFT_ ## n(BOOST_PP_NIL, BOOST_PP_NIL, BOOST_PP_NIL)))
-# endif
-#
-# define BOOST_PP_WHILE_F(d, _) 0
-#
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    include <boost/preprocessor/control/detail/edg/while.hpp>
-# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
-#    include <boost/preprocessor/control/detail/msvc/while.hpp>
-# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC()
-#    include <boost/preprocessor/control/detail/dmc/while.hpp>
-# else
-#    include <boost/preprocessor/control/detail/while.hpp>
-# endif
-#
-# define BOOST_PP_WHILE_257(p, o, s) BOOST_PP_ERROR(0x0001)
-#
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_NIL 1
-#
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_1(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_2(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_3(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_4(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_5(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_6(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_7(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_8(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_9(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_10(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_11(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_12(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_13(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_14(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_15(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_16(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_17(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_18(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_19(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_20(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_21(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_22(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_23(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_24(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_25(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_26(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_27(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_28(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_29(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_30(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_31(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_32(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_33(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_34(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_35(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_36(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_37(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_38(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_39(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_40(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_41(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_42(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_43(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_44(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_45(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_46(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_47(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_48(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_49(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_50(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_51(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_52(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_53(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_54(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_55(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_56(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_57(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_58(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_59(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_60(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_61(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_62(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_63(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_64(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_65(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_66(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_67(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_68(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_69(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_70(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_71(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_72(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_73(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_74(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_75(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_76(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_77(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_78(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_79(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_80(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_81(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_82(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_83(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_84(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_85(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_86(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_87(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_88(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_89(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_90(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_91(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_92(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_93(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_94(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_95(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_96(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_97(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_98(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_99(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_100(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_101(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_102(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_103(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_104(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_105(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_106(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_107(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_108(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_109(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_110(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_111(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_112(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_113(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_114(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_115(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_116(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_117(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_118(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_119(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_120(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_121(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_122(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_123(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_124(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_125(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_126(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_127(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_128(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_129(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_130(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_131(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_132(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_133(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_134(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_135(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_136(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_137(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_138(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_139(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_140(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_141(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_142(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_143(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_144(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_145(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_146(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_147(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_148(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_149(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_150(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_151(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_152(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_153(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_154(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_155(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_156(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_157(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_158(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_159(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_160(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_161(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_162(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_163(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_164(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_165(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_166(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_167(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_168(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_169(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_170(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_171(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_172(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_173(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_174(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_175(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_176(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_177(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_178(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_179(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_180(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_181(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_182(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_183(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_184(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_185(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_186(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_187(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_188(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_189(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_190(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_191(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_192(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_193(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_194(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_195(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_196(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_197(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_198(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_199(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_200(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_201(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_202(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_203(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_204(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_205(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_206(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_207(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_208(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_209(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_210(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_211(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_212(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_213(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_214(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_215(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_216(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_217(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_218(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_219(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_220(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_221(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_222(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_223(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_224(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_225(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_226(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_227(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_228(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_229(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_230(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_231(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_232(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_233(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_234(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_235(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_236(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_237(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_238(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_239(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_240(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_241(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_242(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_243(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_244(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_245(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_246(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_247(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_248(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_249(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_250(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_251(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_252(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_253(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_254(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_255(p, o, s) 0
-# define BOOST_PP_WHILE_CHECK_BOOST_PP_WHILE_256(p, o, s) 0
-#
-# endif
diff --git a/boost/preprocessor/debug/error.hpp b/boost/preprocessor/debug/error.hpp
deleted file mode 100644
index c8ae5e7..0000000
--- a/boost/preprocessor/debug/error.hpp
+++ /dev/null
@@ -1,33 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_DEBUG_ERROR_HPP
-# define BOOST_PREPROCESSOR_DEBUG_ERROR_HPP
-#
-# include <boost/preprocessor/cat.hpp>
-# include <boost/preprocessor/config/config.hpp>
-#
-# /* BOOST_PP_ERROR */
-#
-# if BOOST_PP_CONFIG_ERRORS
-#    define BOOST_PP_ERROR(code) BOOST_PP_CAT(BOOST_PP_ERROR_, code)
-# endif
-#
-# define BOOST_PP_ERROR_0x0000 BOOST_PP_ERROR(0x0000, BOOST_PP_INDEX_OUT_OF_BOUNDS)
-# define BOOST_PP_ERROR_0x0001 BOOST_PP_ERROR(0x0001, BOOST_PP_WHILE_OVERFLOW)
-# define BOOST_PP_ERROR_0x0002 BOOST_PP_ERROR(0x0002, BOOST_PP_FOR_OVERFLOW)
-# define BOOST_PP_ERROR_0x0003 BOOST_PP_ERROR(0x0003, BOOST_PP_REPEAT_OVERFLOW)
-# define BOOST_PP_ERROR_0x0004 BOOST_PP_ERROR(0x0004, BOOST_PP_LIST_FOLD_OVERFLOW)
-# define BOOST_PP_ERROR_0x0005 BOOST_PP_ERROR(0x0005, BOOST_PP_SEQ_FOLD_OVERFLOW)
-# define BOOST_PP_ERROR_0x0006 BOOST_PP_ERROR(0x0006, BOOST_PP_ARITHMETIC_OVERFLOW)
-# define BOOST_PP_ERROR_0x0007 BOOST_PP_ERROR(0x0007, BOOST_PP_DIVISION_BY_ZERO)
-#
-# endif
diff --git a/boost/preprocessor/dec.hpp b/boost/preprocessor/dec.hpp
deleted file mode 100644
index d572064..0000000
--- a/boost/preprocessor/dec.hpp
+++ /dev/null
@@ -1,17 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_DEC_HPP
-# define BOOST_PREPROCESSOR_DEC_HPP
-#
-# include <boost/preprocessor/arithmetic/dec.hpp>
-#
-# endif
diff --git a/boost/preprocessor/detail/auto_rec.hpp b/boost/preprocessor/detail/auto_rec.hpp
deleted file mode 100644
index 39de1d0..0000000
--- a/boost/preprocessor/detail/auto_rec.hpp
+++ /dev/null
@@ -1,293 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# include <boost/preprocessor/config/config.hpp>
-#
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC()
-#     include <boost/preprocessor/detail/dmc/auto_rec.hpp>
-# else
-#
-# ifndef BOOST_PREPROCESSOR_DETAIL_AUTO_REC_HPP
-# define BOOST_PREPROCESSOR_DETAIL_AUTO_REC_HPP
-#
-# include <boost/preprocessor/control/iif.hpp>
-#
-# /* BOOST_PP_AUTO_REC */
-#
-# define BOOST_PP_AUTO_REC(pred, n) BOOST_PP_NODE_ENTRY_ ## n(pred)
-#
-# define BOOST_PP_NODE_ENTRY_256(p) BOOST_PP_NODE_128(p)(p)(p)(p)(p)(p)(p)(p)
-# define BOOST_PP_NODE_ENTRY_128(p) BOOST_PP_NODE_64(p)(p)(p)(p)(p)(p)(p)
-# define BOOST_PP_NODE_ENTRY_64(p) BOOST_PP_NODE_32(p)(p)(p)(p)(p)(p)
-# define BOOST_PP_NODE_ENTRY_32(p) BOOST_PP_NODE_16(p)(p)(p)(p)(p)
-# define BOOST_PP_NODE_ENTRY_16(p) BOOST_PP_NODE_8(p)(p)(p)(p)
-# define BOOST_PP_NODE_ENTRY_8(p) BOOST_PP_NODE_4(p)(p)(p)
-# define BOOST_PP_NODE_ENTRY_4(p) BOOST_PP_NODE_2(p)(p)
-# define BOOST_PP_NODE_ENTRY_2(p) BOOST_PP_NODE_1(p)
-#
-# define BOOST_PP_NODE_128(p) BOOST_PP_IIF(p(128), BOOST_PP_NODE_64, BOOST_PP_NODE_192)
-#    define BOOST_PP_NODE_64(p) BOOST_PP_IIF(p(64), BOOST_PP_NODE_32, BOOST_PP_NODE_96)
-#        define BOOST_PP_NODE_32(p) BOOST_PP_IIF(p(32), BOOST_PP_NODE_16, BOOST_PP_NODE_48)
-#            define BOOST_PP_NODE_16(p) BOOST_PP_IIF(p(16), BOOST_PP_NODE_8, BOOST_PP_NODE_24)
-#                define BOOST_PP_NODE_8(p) BOOST_PP_IIF(p(8), BOOST_PP_NODE_4, BOOST_PP_NODE_12)
-#                    define BOOST_PP_NODE_4(p) BOOST_PP_IIF(p(4), BOOST_PP_NODE_2, BOOST_PP_NODE_6)
-#                        define BOOST_PP_NODE_2(p) BOOST_PP_IIF(p(2), BOOST_PP_NODE_1, BOOST_PP_NODE_3)
-#                            define BOOST_PP_NODE_1(p) BOOST_PP_IIF(p(1), 1, 2)
-#                            define BOOST_PP_NODE_3(p) BOOST_PP_IIF(p(3), 3, 4)
-#                        define BOOST_PP_NODE_6(p) BOOST_PP_IIF(p(6), BOOST_PP_NODE_5, BOOST_PP_NODE_7)
-#                            define BOOST_PP_NODE_5(p) BOOST_PP_IIF(p(5), 5, 6)
-#                            define BOOST_PP_NODE_7(p) BOOST_PP_IIF(p(7), 7, 8)
-#                    define BOOST_PP_NODE_12(p) BOOST_PP_IIF(p(12), BOOST_PP_NODE_10, BOOST_PP_NODE_14)
-#                        define BOOST_PP_NODE_10(p) BOOST_PP_IIF(p(10), BOOST_PP_NODE_9, BOOST_PP_NODE_11)
-#                            define BOOST_PP_NODE_9(p) BOOST_PP_IIF(p(9), 9, 10)
-#                            define BOOST_PP_NODE_11(p) BOOST_PP_IIF(p(11), 11, 12)
-#                        define BOOST_PP_NODE_14(p) BOOST_PP_IIF(p(14), BOOST_PP_NODE_13, BOOST_PP_NODE_15)
-#                            define BOOST_PP_NODE_13(p) BOOST_PP_IIF(p(13), 13, 14)
-#                            define BOOST_PP_NODE_15(p) BOOST_PP_IIF(p(15), 15, 16)
-#                define BOOST_PP_NODE_24(p) BOOST_PP_IIF(p(24), BOOST_PP_NODE_20, BOOST_PP_NODE_28)
-#                    define BOOST_PP_NODE_20(p) BOOST_PP_IIF(p(20), BOOST_PP_NODE_18, BOOST_PP_NODE_22)
-#                        define BOOST_PP_NODE_18(p) BOOST_PP_IIF(p(18), BOOST_PP_NODE_17, BOOST_PP_NODE_19)
-#                            define BOOST_PP_NODE_17(p) BOOST_PP_IIF(p(17), 17, 18)
-#                            define BOOST_PP_NODE_19(p) BOOST_PP_IIF(p(19), 19, 20)
-#                        define BOOST_PP_NODE_22(p) BOOST_PP_IIF(p(22), BOOST_PP_NODE_21, BOOST_PP_NODE_23)
-#                            define BOOST_PP_NODE_21(p) BOOST_PP_IIF(p(21), 21, 22)
-#                            define BOOST_PP_NODE_23(p) BOOST_PP_IIF(p(23), 23, 24)
-#                    define BOOST_PP_NODE_28(p) BOOST_PP_IIF(p(28), BOOST_PP_NODE_26, BOOST_PP_NODE_30)
-#                        define BOOST_PP_NODE_26(p) BOOST_PP_IIF(p(26), BOOST_PP_NODE_25, BOOST_PP_NODE_27)
-#                            define BOOST_PP_NODE_25(p) BOOST_PP_IIF(p(25), 25, 26)
-#                            define BOOST_PP_NODE_27(p) BOOST_PP_IIF(p(27), 27, 28)
-#                        define BOOST_PP_NODE_30(p) BOOST_PP_IIF(p(30), BOOST_PP_NODE_29, BOOST_PP_NODE_31)
-#                            define BOOST_PP_NODE_29(p) BOOST_PP_IIF(p(29), 29, 30)
-#                            define BOOST_PP_NODE_31(p) BOOST_PP_IIF(p(31), 31, 32)
-#            define BOOST_PP_NODE_48(p) BOOST_PP_IIF(p(48), BOOST_PP_NODE_40, BOOST_PP_NODE_56)
-#                define BOOST_PP_NODE_40(p) BOOST_PP_IIF(p(40), BOOST_PP_NODE_36, BOOST_PP_NODE_44)
-#                    define BOOST_PP_NODE_36(p) BOOST_PP_IIF(p(36), BOOST_PP_NODE_34, BOOST_PP_NODE_38)
-#                        define BOOST_PP_NODE_34(p) BOOST_PP_IIF(p(34), BOOST_PP_NODE_33, BOOST_PP_NODE_35)
-#                            define BOOST_PP_NODE_33(p) BOOST_PP_IIF(p(33), 33, 34)
-#                            define BOOST_PP_NODE_35(p) BOOST_PP_IIF(p(35), 35, 36)
-#                        define BOOST_PP_NODE_38(p) BOOST_PP_IIF(p(38), BOOST_PP_NODE_37, BOOST_PP_NODE_39)
-#                            define BOOST_PP_NODE_37(p) BOOST_PP_IIF(p(37), 37, 38)
-#                            define BOOST_PP_NODE_39(p) BOOST_PP_IIF(p(39), 39, 40)
-#                    define BOOST_PP_NODE_44(p) BOOST_PP_IIF(p(44), BOOST_PP_NODE_42, BOOST_PP_NODE_46)
-#                        define BOOST_PP_NODE_42(p) BOOST_PP_IIF(p(42), BOOST_PP_NODE_41, BOOST_PP_NODE_43)
-#                            define BOOST_PP_NODE_41(p) BOOST_PP_IIF(p(41), 41, 42)
-#                            define BOOST_PP_NODE_43(p) BOOST_PP_IIF(p(43), 43, 44)
-#                        define BOOST_PP_NODE_46(p) BOOST_PP_IIF(p(46), BOOST_PP_NODE_45, BOOST_PP_NODE_47)
-#                            define BOOST_PP_NODE_45(p) BOOST_PP_IIF(p(45), 45, 46)
-#                            define BOOST_PP_NODE_47(p) BOOST_PP_IIF(p(47), 47, 48)
-#                define BOOST_PP_NODE_56(p) BOOST_PP_IIF(p(56), BOOST_PP_NODE_52, BOOST_PP_NODE_60)
-#                    define BOOST_PP_NODE_52(p) BOOST_PP_IIF(p(52), BOOST_PP_NODE_50, BOOST_PP_NODE_54)
-#                        define BOOST_PP_NODE_50(p) BOOST_PP_IIF(p(50), BOOST_PP_NODE_49, BOOST_PP_NODE_51)
-#                            define BOOST_PP_NODE_49(p) BOOST_PP_IIF(p(49), 49, 50)
-#                            define BOOST_PP_NODE_51(p) BOOST_PP_IIF(p(51), 51, 52)
-#                        define BOOST_PP_NODE_54(p) BOOST_PP_IIF(p(54), BOOST_PP_NODE_53, BOOST_PP_NODE_55)
-#                            define BOOST_PP_NODE_53(p) BOOST_PP_IIF(p(53), 53, 54)
-#                            define BOOST_PP_NODE_55(p) BOOST_PP_IIF(p(55), 55, 56)
-#                    define BOOST_PP_NODE_60(p) BOOST_PP_IIF(p(60), BOOST_PP_NODE_58, BOOST_PP_NODE_62)
-#                        define BOOST_PP_NODE_58(p) BOOST_PP_IIF(p(58), BOOST_PP_NODE_57, BOOST_PP_NODE_59)
-#                            define BOOST_PP_NODE_57(p) BOOST_PP_IIF(p(57), 57, 58)
-#                            define BOOST_PP_NODE_59(p) BOOST_PP_IIF(p(59), 59, 60)
-#                        define BOOST_PP_NODE_62(p) BOOST_PP_IIF(p(62), BOOST_PP_NODE_61, BOOST_PP_NODE_63)
-#                            define BOOST_PP_NODE_61(p) BOOST_PP_IIF(p(61), 61, 62)
-#                            define BOOST_PP_NODE_63(p) BOOST_PP_IIF(p(63), 63, 64)
-#        define BOOST_PP_NODE_96(p) BOOST_PP_IIF(p(96), BOOST_PP_NODE_80, BOOST_PP_NODE_112)
-#            define BOOST_PP_NODE_80(p) BOOST_PP_IIF(p(80), BOOST_PP_NODE_72, BOOST_PP_NODE_88)
-#                define BOOST_PP_NODE_72(p) BOOST_PP_IIF(p(72), BOOST_PP_NODE_68, BOOST_PP_NODE_76)
-#                    define BOOST_PP_NODE_68(p) BOOST_PP_IIF(p(68), BOOST_PP_NODE_66, BOOST_PP_NODE_70)
-#                        define BOOST_PP_NODE_66(p) BOOST_PP_IIF(p(66), BOOST_PP_NODE_65, BOOST_PP_NODE_67)
-#                            define BOOST_PP_NODE_65(p) BOOST_PP_IIF(p(65), 65, 66)
-#                            define BOOST_PP_NODE_67(p) BOOST_PP_IIF(p(67), 67, 68)
-#                        define BOOST_PP_NODE_70(p) BOOST_PP_IIF(p(70), BOOST_PP_NODE_69, BOOST_PP_NODE_71)
-#                            define BOOST_PP_NODE_69(p) BOOST_PP_IIF(p(69), 69, 70)
-#                            define BOOST_PP_NODE_71(p) BOOST_PP_IIF(p(71), 71, 72)
-#                    define BOOST_PP_NODE_76(p) BOOST_PP_IIF(p(76), BOOST_PP_NODE_74, BOOST_PP_NODE_78)
-#                        define BOOST_PP_NODE_74(p) BOOST_PP_IIF(p(74), BOOST_PP_NODE_73, BOOST_PP_NODE_75)
-#                            define BOOST_PP_NODE_73(p) BOOST_PP_IIF(p(73), 73, 74)
-#                            define BOOST_PP_NODE_75(p) BOOST_PP_IIF(p(75), 75, 76)
-#                        define BOOST_PP_NODE_78(p) BOOST_PP_IIF(p(78), BOOST_PP_NODE_77, BOOST_PP_NODE_79)
-#                            define BOOST_PP_NODE_77(p) BOOST_PP_IIF(p(77), 77, 78)
-#                            define BOOST_PP_NODE_79(p) BOOST_PP_IIF(p(79), 79, 80)
-#                define BOOST_PP_NODE_88(p) BOOST_PP_IIF(p(88), BOOST_PP_NODE_84, BOOST_PP_NODE_92)
-#                    define BOOST_PP_NODE_84(p) BOOST_PP_IIF(p(84), BOOST_PP_NODE_82, BOOST_PP_NODE_86)
-#                        define BOOST_PP_NODE_82(p) BOOST_PP_IIF(p(82), BOOST_PP_NODE_81, BOOST_PP_NODE_83)
-#                            define BOOST_PP_NODE_81(p) BOOST_PP_IIF(p(81), 81, 82)
-#                            define BOOST_PP_NODE_83(p) BOOST_PP_IIF(p(83), 83, 84)
-#                        define BOOST_PP_NODE_86(p) BOOST_PP_IIF(p(86), BOOST_PP_NODE_85, BOOST_PP_NODE_87)
-#                            define BOOST_PP_NODE_85(p) BOOST_PP_IIF(p(85), 85, 86)
-#                            define BOOST_PP_NODE_87(p) BOOST_PP_IIF(p(87), 87, 88)
-#                    define BOOST_PP_NODE_92(p) BOOST_PP_IIF(p(92), BOOST_PP_NODE_90, BOOST_PP_NODE_94)
-#                        define BOOST_PP_NODE_90(p) BOOST_PP_IIF(p(90), BOOST_PP_NODE_89, BOOST_PP_NODE_91)
-#                            define BOOST_PP_NODE_89(p) BOOST_PP_IIF(p(89), 89, 90)
-#                            define BOOST_PP_NODE_91(p) BOOST_PP_IIF(p(91), 91, 92)
-#                        define BOOST_PP_NODE_94(p) BOOST_PP_IIF(p(94), BOOST_PP_NODE_93, BOOST_PP_NODE_95)
-#                            define BOOST_PP_NODE_93(p) BOOST_PP_IIF(p(93), 93, 94)
-#                            define BOOST_PP_NODE_95(p) BOOST_PP_IIF(p(95), 95, 96)
-#            define BOOST_PP_NODE_112(p) BOOST_PP_IIF(p(112), BOOST_PP_NODE_104, BOOST_PP_NODE_120)
-#                define BOOST_PP_NODE_104(p) BOOST_PP_IIF(p(104), BOOST_PP_NODE_100, BOOST_PP_NODE_108)
-#                    define BOOST_PP_NODE_100(p) BOOST_PP_IIF(p(100), BOOST_PP_NODE_98, BOOST_PP_NODE_102)
-#                        define BOOST_PP_NODE_98(p) BOOST_PP_IIF(p(98), BOOST_PP_NODE_97, BOOST_PP_NODE_99)
-#                            define BOOST_PP_NODE_97(p) BOOST_PP_IIF(p(97), 97, 98)
-#                            define BOOST_PP_NODE_99(p) BOOST_PP_IIF(p(99), 99, 100)
-#                        define BOOST_PP_NODE_102(p) BOOST_PP_IIF(p(102), BOOST_PP_NODE_101, BOOST_PP_NODE_103)
-#                            define BOOST_PP_NODE_101(p) BOOST_PP_IIF(p(101), 101, 102)
-#                            define BOOST_PP_NODE_103(p) BOOST_PP_IIF(p(103), 103, 104)
-#                    define BOOST_PP_NODE_108(p) BOOST_PP_IIF(p(108), BOOST_PP_NODE_106, BOOST_PP_NODE_110)
-#                        define BOOST_PP_NODE_106(p) BOOST_PP_IIF(p(106), BOOST_PP_NODE_105, BOOST_PP_NODE_107)
-#                            define BOOST_PP_NODE_105(p) BOOST_PP_IIF(p(105), 105, 106)
-#                            define BOOST_PP_NODE_107(p) BOOST_PP_IIF(p(107), 107, 108)
-#                        define BOOST_PP_NODE_110(p) BOOST_PP_IIF(p(110), BOOST_PP_NODE_109, BOOST_PP_NODE_111)
-#                            define BOOST_PP_NODE_109(p) BOOST_PP_IIF(p(109), 109, 110)
-#                            define BOOST_PP_NODE_111(p) BOOST_PP_IIF(p(111), 111, 112)
-#                define BOOST_PP_NODE_120(p) BOOST_PP_IIF(p(120), BOOST_PP_NODE_116, BOOST_PP_NODE_124)
-#                    define BOOST_PP_NODE_116(p) BOOST_PP_IIF(p(116), BOOST_PP_NODE_114, BOOST_PP_NODE_118)
-#                        define BOOST_PP_NODE_114(p) BOOST_PP_IIF(p(114), BOOST_PP_NODE_113, BOOST_PP_NODE_115)
-#                            define BOOST_PP_NODE_113(p) BOOST_PP_IIF(p(113), 113, 114)
-#                            define BOOST_PP_NODE_115(p) BOOST_PP_IIF(p(115), 115, 116)
-#                        define BOOST_PP_NODE_118(p) BOOST_PP_IIF(p(118), BOOST_PP_NODE_117, BOOST_PP_NODE_119)
-#                            define BOOST_PP_NODE_117(p) BOOST_PP_IIF(p(117), 117, 118)
-#                            define BOOST_PP_NODE_119(p) BOOST_PP_IIF(p(119), 119, 120)
-#                    define BOOST_PP_NODE_124(p) BOOST_PP_IIF(p(124), BOOST_PP_NODE_122, BOOST_PP_NODE_126)
-#                        define BOOST_PP_NODE_122(p) BOOST_PP_IIF(p(122), BOOST_PP_NODE_121, BOOST_PP_NODE_123)
-#                            define BOOST_PP_NODE_121(p) BOOST_PP_IIF(p(121), 121, 122)
-#                            define BOOST_PP_NODE_123(p) BOOST_PP_IIF(p(123), 123, 124)
-#                        define BOOST_PP_NODE_126(p) BOOST_PP_IIF(p(126), BOOST_PP_NODE_125, BOOST_PP_NODE_127)
-#                            define BOOST_PP_NODE_125(p) BOOST_PP_IIF(p(125), 125, 126)
-#                            define BOOST_PP_NODE_127(p) BOOST_PP_IIF(p(127), 127, 128)
-#    define BOOST_PP_NODE_192(p) BOOST_PP_IIF(p(192), BOOST_PP_NODE_160, BOOST_PP_NODE_224)
-#        define BOOST_PP_NODE_160(p) BOOST_PP_IIF(p(160), BOOST_PP_NODE_144, BOOST_PP_NODE_176)
-#            define BOOST_PP_NODE_144(p) BOOST_PP_IIF(p(144), BOOST_PP_NODE_136, BOOST_PP_NODE_152)
-#                define BOOST_PP_NODE_136(p) BOOST_PP_IIF(p(136), BOOST_PP_NODE_132, BOOST_PP_NODE_140)
-#                    define BOOST_PP_NODE_132(p) BOOST_PP_IIF(p(132), BOOST_PP_NODE_130, BOOST_PP_NODE_134)
-#                        define BOOST_PP_NODE_130(p) BOOST_PP_IIF(p(130), BOOST_PP_NODE_129, BOOST_PP_NODE_131)
-#                            define BOOST_PP_NODE_129(p) BOOST_PP_IIF(p(129), 129, 130)
-#                            define BOOST_PP_NODE_131(p) BOOST_PP_IIF(p(131), 131, 132)
-#                        define BOOST_PP_NODE_134(p) BOOST_PP_IIF(p(134), BOOST_PP_NODE_133, BOOST_PP_NODE_135)
-#                            define BOOST_PP_NODE_133(p) BOOST_PP_IIF(p(133), 133, 134)
-#                            define BOOST_PP_NODE_135(p) BOOST_PP_IIF(p(135), 135, 136)
-#                    define BOOST_PP_NODE_140(p) BOOST_PP_IIF(p(140), BOOST_PP_NODE_138, BOOST_PP_NODE_142)
-#                        define BOOST_PP_NODE_138(p) BOOST_PP_IIF(p(138), BOOST_PP_NODE_137, BOOST_PP_NODE_139)
-#                            define BOOST_PP_NODE_137(p) BOOST_PP_IIF(p(137), 137, 138)
-#                            define BOOST_PP_NODE_139(p) BOOST_PP_IIF(p(139), 139, 140)
-#                        define BOOST_PP_NODE_142(p) BOOST_PP_IIF(p(142), BOOST_PP_NODE_141, BOOST_PP_NODE_143)
-#                            define BOOST_PP_NODE_141(p) BOOST_PP_IIF(p(141), 141, 142)
-#                            define BOOST_PP_NODE_143(p) BOOST_PP_IIF(p(143), 143, 144)
-#                define BOOST_PP_NODE_152(p) BOOST_PP_IIF(p(152), BOOST_PP_NODE_148, BOOST_PP_NODE_156)
-#                    define BOOST_PP_NODE_148(p) BOOST_PP_IIF(p(148), BOOST_PP_NODE_146, BOOST_PP_NODE_150)
-#                        define BOOST_PP_NODE_146(p) BOOST_PP_IIF(p(146), BOOST_PP_NODE_145, BOOST_PP_NODE_147)
-#                            define BOOST_PP_NODE_145(p) BOOST_PP_IIF(p(145), 145, 146)
-#                            define BOOST_PP_NODE_147(p) BOOST_PP_IIF(p(147), 147, 148)
-#                        define BOOST_PP_NODE_150(p) BOOST_PP_IIF(p(150), BOOST_PP_NODE_149, BOOST_PP_NODE_151)
-#                            define BOOST_PP_NODE_149(p) BOOST_PP_IIF(p(149), 149, 150)
-#                            define BOOST_PP_NODE_151(p) BOOST_PP_IIF(p(151), 151, 152)
-#                    define BOOST_PP_NODE_156(p) BOOST_PP_IIF(p(156), BOOST_PP_NODE_154, BOOST_PP_NODE_158)
-#                        define BOOST_PP_NODE_154(p) BOOST_PP_IIF(p(154), BOOST_PP_NODE_153, BOOST_PP_NODE_155)
-#                            define BOOST_PP_NODE_153(p) BOOST_PP_IIF(p(153), 153, 154)
-#                            define BOOST_PP_NODE_155(p) BOOST_PP_IIF(p(155), 155, 156)
-#                        define BOOST_PP_NODE_158(p) BOOST_PP_IIF(p(158), BOOST_PP_NODE_157, BOOST_PP_NODE_159)
-#                            define BOOST_PP_NODE_157(p) BOOST_PP_IIF(p(157), 157, 158)
-#                            define BOOST_PP_NODE_159(p) BOOST_PP_IIF(p(159), 159, 160)
-#            define BOOST_PP_NODE_176(p) BOOST_PP_IIF(p(176), BOOST_PP_NODE_168, BOOST_PP_NODE_184)
-#                define BOOST_PP_NODE_168(p) BOOST_PP_IIF(p(168), BOOST_PP_NODE_164, BOOST_PP_NODE_172)
-#                    define BOOST_PP_NODE_164(p) BOOST_PP_IIF(p(164), BOOST_PP_NODE_162, BOOST_PP_NODE_166)
-#                        define BOOST_PP_NODE_162(p) BOOST_PP_IIF(p(162), BOOST_PP_NODE_161, BOOST_PP_NODE_163)
-#                            define BOOST_PP_NODE_161(p) BOOST_PP_IIF(p(161), 161, 162)
-#                            define BOOST_PP_NODE_163(p) BOOST_PP_IIF(p(163), 163, 164)
-#                        define BOOST_PP_NODE_166(p) BOOST_PP_IIF(p(166), BOOST_PP_NODE_165, BOOST_PP_NODE_167)
-#                            define BOOST_PP_NODE_165(p) BOOST_PP_IIF(p(165), 165, 166)
-#                            define BOOST_PP_NODE_167(p) BOOST_PP_IIF(p(167), 167, 168)
-#                    define BOOST_PP_NODE_172(p) BOOST_PP_IIF(p(172), BOOST_PP_NODE_170, BOOST_PP_NODE_174)
-#                        define BOOST_PP_NODE_170(p) BOOST_PP_IIF(p(170), BOOST_PP_NODE_169, BOOST_PP_NODE_171)
-#                            define BOOST_PP_NODE_169(p) BOOST_PP_IIF(p(169), 169, 170)
-#                            define BOOST_PP_NODE_171(p) BOOST_PP_IIF(p(171), 171, 172)
-#                        define BOOST_PP_NODE_174(p) BOOST_PP_IIF(p(174), BOOST_PP_NODE_173, BOOST_PP_NODE_175)
-#                            define BOOST_PP_NODE_173(p) BOOST_PP_IIF(p(173), 173, 174)
-#                            define BOOST_PP_NODE_175(p) BOOST_PP_IIF(p(175), 175, 176)
-#                define BOOST_PP_NODE_184(p) BOOST_PP_IIF(p(184), BOOST_PP_NODE_180, BOOST_PP_NODE_188)
-#                    define BOOST_PP_NODE_180(p) BOOST_PP_IIF(p(180), BOOST_PP_NODE_178, BOOST_PP_NODE_182)
-#                        define BOOST_PP_NODE_178(p) BOOST_PP_IIF(p(178), BOOST_PP_NODE_177, BOOST_PP_NODE_179)
-#                            define BOOST_PP_NODE_177(p) BOOST_PP_IIF(p(177), 177, 178)
-#                            define BOOST_PP_NODE_179(p) BOOST_PP_IIF(p(179), 179, 180)
-#                        define BOOST_PP_NODE_182(p) BOOST_PP_IIF(p(182), BOOST_PP_NODE_181, BOOST_PP_NODE_183)
-#                            define BOOST_PP_NODE_181(p) BOOST_PP_IIF(p(181), 181, 182)
-#                            define BOOST_PP_NODE_183(p) BOOST_PP_IIF(p(183), 183, 184)
-#                    define BOOST_PP_NODE_188(p) BOOST_PP_IIF(p(188), BOOST_PP_NODE_186, BOOST_PP_NODE_190)
-#                        define BOOST_PP_NODE_186(p) BOOST_PP_IIF(p(186), BOOST_PP_NODE_185, BOOST_PP_NODE_187)
-#                            define BOOST_PP_NODE_185(p) BOOST_PP_IIF(p(185), 185, 186)
-#                            define BOOST_PP_NODE_187(p) BOOST_PP_IIF(p(187), 187, 188)
-#                        define BOOST_PP_NODE_190(p) BOOST_PP_IIF(p(190), BOOST_PP_NODE_189, BOOST_PP_NODE_191)
-#                            define BOOST_PP_NODE_189(p) BOOST_PP_IIF(p(189), 189, 190)
-#                            define BOOST_PP_NODE_191(p) BOOST_PP_IIF(p(191), 191, 192)
-#        define BOOST_PP_NODE_224(p) BOOST_PP_IIF(p(224), BOOST_PP_NODE_208, BOOST_PP_NODE_240)
-#            define BOOST_PP_NODE_208(p) BOOST_PP_IIF(p(208), BOOST_PP_NODE_200, BOOST_PP_NODE_216)
-#                define BOOST_PP_NODE_200(p) BOOST_PP_IIF(p(200), BOOST_PP_NODE_196, BOOST_PP_NODE_204)
-#                    define BOOST_PP_NODE_196(p) BOOST_PP_IIF(p(196), BOOST_PP_NODE_194, BOOST_PP_NODE_198)
-#                        define BOOST_PP_NODE_194(p) BOOST_PP_IIF(p(194), BOOST_PP_NODE_193, BOOST_PP_NODE_195)
-#                            define BOOST_PP_NODE_193(p) BOOST_PP_IIF(p(193), 193, 194)
-#                            define BOOST_PP_NODE_195(p) BOOST_PP_IIF(p(195), 195, 196)
-#                        define BOOST_PP_NODE_198(p) BOOST_PP_IIF(p(198), BOOST_PP_NODE_197, BOOST_PP_NODE_199)
-#                            define BOOST_PP_NODE_197(p) BOOST_PP_IIF(p(197), 197, 198)
-#                            define BOOST_PP_NODE_199(p) BOOST_PP_IIF(p(199), 199, 200)
-#                    define BOOST_PP_NODE_204(p) BOOST_PP_IIF(p(204), BOOST_PP_NODE_202, BOOST_PP_NODE_206)
-#                        define BOOST_PP_NODE_202(p) BOOST_PP_IIF(p(202), BOOST_PP_NODE_201, BOOST_PP_NODE_203)
-#                            define BOOST_PP_NODE_201(p) BOOST_PP_IIF(p(201), 201, 202)
-#                            define BOOST_PP_NODE_203(p) BOOST_PP_IIF(p(203), 203, 204)
-#                        define BOOST_PP_NODE_206(p) BOOST_PP_IIF(p(206), BOOST_PP_NODE_205, BOOST_PP_NODE_207)
-#                            define BOOST_PP_NODE_205(p) BOOST_PP_IIF(p(205), 205, 206)
-#                            define BOOST_PP_NODE_207(p) BOOST_PP_IIF(p(207), 207, 208)
-#                define BOOST_PP_NODE_216(p) BOOST_PP_IIF(p(216), BOOST_PP_NODE_212, BOOST_PP_NODE_220)
-#                    define BOOST_PP_NODE_212(p) BOOST_PP_IIF(p(212), BOOST_PP_NODE_210, BOOST_PP_NODE_214)
-#                        define BOOST_PP_NODE_210(p) BOOST_PP_IIF(p(210), BOOST_PP_NODE_209, BOOST_PP_NODE_211)
-#                            define BOOST_PP_NODE_209(p) BOOST_PP_IIF(p(209), 209, 210)
-#                            define BOOST_PP_NODE_211(p) BOOST_PP_IIF(p(211), 211, 212)
-#                        define BOOST_PP_NODE_214(p) BOOST_PP_IIF(p(214), BOOST_PP_NODE_213, BOOST_PP_NODE_215)
-#                            define BOOST_PP_NODE_213(p) BOOST_PP_IIF(p(213), 213, 214)
-#                            define BOOST_PP_NODE_215(p) BOOST_PP_IIF(p(215), 215, 216)
-#                    define BOOST_PP_NODE_220(p) BOOST_PP_IIF(p(220), BOOST_PP_NODE_218, BOOST_PP_NODE_222)
-#                        define BOOST_PP_NODE_218(p) BOOST_PP_IIF(p(218), BOOST_PP_NODE_217, BOOST_PP_NODE_219)
-#                            define BOOST_PP_NODE_217(p) BOOST_PP_IIF(p(217), 217, 218)
-#                            define BOOST_PP_NODE_219(p) BOOST_PP_IIF(p(219), 219, 220)
-#                        define BOOST_PP_NODE_222(p) BOOST_PP_IIF(p(222), BOOST_PP_NODE_221, BOOST_PP_NODE_223)
-#                            define BOOST_PP_NODE_221(p) BOOST_PP_IIF(p(221), 221, 222)
-#                            define BOOST_PP_NODE_223(p) BOOST_PP_IIF(p(223), 223, 224)
-#            define BOOST_PP_NODE_240(p) BOOST_PP_IIF(p(240), BOOST_PP_NODE_232, BOOST_PP_NODE_248)
-#                define BOOST_PP_NODE_232(p) BOOST_PP_IIF(p(232), BOOST_PP_NODE_228, BOOST_PP_NODE_236)
-#                    define BOOST_PP_NODE_228(p) BOOST_PP_IIF(p(228), BOOST_PP_NODE_226, BOOST_PP_NODE_230)
-#                        define BOOST_PP_NODE_226(p) BOOST_PP_IIF(p(226), BOOST_PP_NODE_225, BOOST_PP_NODE_227)
-#                            define BOOST_PP_NODE_225(p) BOOST_PP_IIF(p(225), 225, 226)
-#                            define BOOST_PP_NODE_227(p) BOOST_PP_IIF(p(227), 227, 228)
-#                        define BOOST_PP_NODE_230(p) BOOST_PP_IIF(p(230), BOOST_PP_NODE_229, BOOST_PP_NODE_231)
-#                            define BOOST_PP_NODE_229(p) BOOST_PP_IIF(p(229), 229, 230)
-#                            define BOOST_PP_NODE_231(p) BOOST_PP_IIF(p(231), 231, 232)
-#                    define BOOST_PP_NODE_236(p) BOOST_PP_IIF(p(236), BOOST_PP_NODE_234, BOOST_PP_NODE_238)
-#                        define BOOST_PP_NODE_234(p) BOOST_PP_IIF(p(234), BOOST_PP_NODE_233, BOOST_PP_NODE_235)
-#                            define BOOST_PP_NODE_233(p) BOOST_PP_IIF(p(233), 233, 234)
-#                            define BOOST_PP_NODE_235(p) BOOST_PP_IIF(p(235), 235, 236)
-#                        define BOOST_PP_NODE_238(p) BOOST_PP_IIF(p(238), BOOST_PP_NODE_237, BOOST_PP_NODE_239)
-#                            define BOOST_PP_NODE_237(p) BOOST_PP_IIF(p(237), 237, 238)
-#                            define BOOST_PP_NODE_239(p) BOOST_PP_IIF(p(239), 239, 240)
-#                define BOOST_PP_NODE_248(p) BOOST_PP_IIF(p(248), BOOST_PP_NODE_244, BOOST_PP_NODE_252)
-#                    define BOOST_PP_NODE_244(p) BOOST_PP_IIF(p(244), BOOST_PP_NODE_242, BOOST_PP_NODE_246)
-#                        define BOOST_PP_NODE_242(p) BOOST_PP_IIF(p(242), BOOST_PP_NODE_241, BOOST_PP_NODE_243)
-#                            define BOOST_PP_NODE_241(p) BOOST_PP_IIF(p(241), 241, 242)
-#                            define BOOST_PP_NODE_243(p) BOOST_PP_IIF(p(243), 243, 244)
-#                        define BOOST_PP_NODE_246(p) BOOST_PP_IIF(p(246), BOOST_PP_NODE_245, BOOST_PP_NODE_247)
-#                            define BOOST_PP_NODE_245(p) BOOST_PP_IIF(p(245), 245, 246)
-#                            define BOOST_PP_NODE_247(p) BOOST_PP_IIF(p(247), 247, 248)
-#                    define BOOST_PP_NODE_252(p) BOOST_PP_IIF(p(252), BOOST_PP_NODE_250, BOOST_PP_NODE_254)
-#                        define BOOST_PP_NODE_250(p) BOOST_PP_IIF(p(250), BOOST_PP_NODE_249, BOOST_PP_NODE_251)
-#                            define BOOST_PP_NODE_249(p) BOOST_PP_IIF(p(249), 249, 250)
-#                            define BOOST_PP_NODE_251(p) BOOST_PP_IIF(p(251), 251, 252)
-#                        define BOOST_PP_NODE_254(p) BOOST_PP_IIF(p(254), BOOST_PP_NODE_253, BOOST_PP_NODE_255)
-#                            define BOOST_PP_NODE_253(p) BOOST_PP_IIF(p(253), 253, 254)
-#                            define BOOST_PP_NODE_255(p) BOOST_PP_IIF(p(255), 255, 256)
-#
-# endif
-# endif
diff --git a/boost/preprocessor/detail/check.hpp b/boost/preprocessor/detail/check.hpp
deleted file mode 100644
index 63f8ff9..0000000
--- a/boost/preprocessor/detail/check.hpp
+++ /dev/null
@@ -1,48 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_DETAIL_CHECK_HPP
-# define BOOST_PREPROCESSOR_DETAIL_CHECK_HPP
-#
-# include <boost/preprocessor/cat.hpp>
-# include <boost/preprocessor/config/config.hpp>
-#
-# /* BOOST_PP_CHECK */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#    define BOOST_PP_CHECK(x, type) BOOST_PP_CHECK_D(x, type)
-# else
-#    define BOOST_PP_CHECK(x, type) BOOST_PP_CHECK_OO((x, type))
-#    define BOOST_PP_CHECK_OO(par) BOOST_PP_CHECK_D ## par
-# endif
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC() && ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC()
-#    define BOOST_PP_CHECK_D(x, type) BOOST_PP_CHECK_1(BOOST_PP_CAT(BOOST_PP_CHECK_RESULT_, type x))
-#    define BOOST_PP_CHECK_1(chk) BOOST_PP_CHECK_2(chk)
-#    define BOOST_PP_CHECK_2(res, _) res
-# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
-#    define BOOST_PP_CHECK_D(x, type) BOOST_PP_CHECK_1(type x)
-#    define BOOST_PP_CHECK_1(chk) BOOST_PP_CHECK_2(chk)
-#    define BOOST_PP_CHECK_2(chk) BOOST_PP_CHECK_3((BOOST_PP_CHECK_RESULT_ ## chk))
-#    define BOOST_PP_CHECK_3(im) BOOST_PP_CHECK_5(BOOST_PP_CHECK_4 im)
-#    define BOOST_PP_CHECK_4(res, _) res
-#    define BOOST_PP_CHECK_5(res) res
-# else /* DMC */
-#    define BOOST_PP_CHECK_D(x, type) BOOST_PP_CHECK_OO((type x))
-#    define BOOST_PP_CHECK_OO(par) BOOST_PP_CHECK_0 ## par
-#    define BOOST_PP_CHECK_0(chk) BOOST_PP_CHECK_1(BOOST_PP_CAT(BOOST_PP_CHECK_RESULT_, chk))
-#    define BOOST_PP_CHECK_1(chk) BOOST_PP_CHECK_2(chk)
-#    define BOOST_PP_CHECK_2(res, _) res
-# endif
-#
-# define BOOST_PP_CHECK_RESULT_1 1, BOOST_PP_NIL
-#
-# endif
diff --git a/boost/preprocessor/detail/dmc/auto_rec.hpp b/boost/preprocessor/detail/dmc/auto_rec.hpp
deleted file mode 100644
index 37fbe04..0000000
--- a/boost/preprocessor/detail/dmc/auto_rec.hpp
+++ /dev/null
@@ -1,286 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_DETAIL_AUTO_REC_HPP
-# define BOOST_PREPROCESSOR_DETAIL_AUTO_REC_HPP
-#
-# include <boost/preprocessor/control/iif.hpp>
-#
-# /* BOOST_PP_AUTO_REC */
-#
-# define BOOST_PP_AUTO_REC(pred, n) BOOST_PP_NODE_ENTRY_ ## n(pred)
-#
-# define BOOST_PP_NODE_ENTRY_256(p) BOOST_PP_NODE_128(p)(p)(p)(p)(p)(p)(p)(p)
-# define BOOST_PP_NODE_ENTRY_128(p) BOOST_PP_NODE_64(p)(p)(p)(p)(p)(p)(p)
-# define BOOST_PP_NODE_ENTRY_64(p) BOOST_PP_NODE_32(p)(p)(p)(p)(p)(p)
-# define BOOST_PP_NODE_ENTRY_32(p) BOOST_PP_NODE_16(p)(p)(p)(p)(p)
-# define BOOST_PP_NODE_ENTRY_16(p) BOOST_PP_NODE_8(p)(p)(p)(p)
-# define BOOST_PP_NODE_ENTRY_8(p) BOOST_PP_NODE_4(p)(p)(p)
-# define BOOST_PP_NODE_ENTRY_4(p) BOOST_PP_NODE_2(p)(p)
-# define BOOST_PP_NODE_ENTRY_2(p) BOOST_PP_NODE_1(p)
-#
-# define BOOST_PP_NODE_128(p) BOOST_PP_IIF(p##(128), BOOST_PP_NODE_64, BOOST_PP_NODE_192)
-#    define BOOST_PP_NODE_64(p) BOOST_PP_IIF(p##(64), BOOST_PP_NODE_32, BOOST_PP_NODE_96)
-#        define BOOST_PP_NODE_32(p) BOOST_PP_IIF(p##(32), BOOST_PP_NODE_16, BOOST_PP_NODE_48)
-#            define BOOST_PP_NODE_16(p) BOOST_PP_IIF(p##(16), BOOST_PP_NODE_8, BOOST_PP_NODE_24)
-#                define BOOST_PP_NODE_8(p) BOOST_PP_IIF(p##(8), BOOST_PP_NODE_4, BOOST_PP_NODE_12)
-#                    define BOOST_PP_NODE_4(p) BOOST_PP_IIF(p##(4), BOOST_PP_NODE_2, BOOST_PP_NODE_6)
-#                        define BOOST_PP_NODE_2(p) BOOST_PP_IIF(p##(2), BOOST_PP_NODE_1, BOOST_PP_NODE_3)
-#                            define BOOST_PP_NODE_1(p) BOOST_PP_IIF(p##(1), 1, 2)
-#                            define BOOST_PP_NODE_3(p) BOOST_PP_IIF(p##(3), 3, 4)
-#                        define BOOST_PP_NODE_6(p) BOOST_PP_IIF(p##(6), BOOST_PP_NODE_5, BOOST_PP_NODE_7)
-#                            define BOOST_PP_NODE_5(p) BOOST_PP_IIF(p##(5), 5, 6)
-#                            define BOOST_PP_NODE_7(p) BOOST_PP_IIF(p##(7), 7, 8)
-#                    define BOOST_PP_NODE_12(p) BOOST_PP_IIF(p##(12), BOOST_PP_NODE_10, BOOST_PP_NODE_14)
-#                        define BOOST_PP_NODE_10(p) BOOST_PP_IIF(p##(10), BOOST_PP_NODE_9, BOOST_PP_NODE_11)
-#                            define BOOST_PP_NODE_9(p) BOOST_PP_IIF(p##(9), 9, 10)
-#                            define BOOST_PP_NODE_11(p) BOOST_PP_IIF(p##(11), 11, 12)
-#                        define BOOST_PP_NODE_14(p) BOOST_PP_IIF(p##(14), BOOST_PP_NODE_13, BOOST_PP_NODE_15)
-#                            define BOOST_PP_NODE_13(p) BOOST_PP_IIF(p##(13), 13, 14)
-#                            define BOOST_PP_NODE_15(p) BOOST_PP_IIF(p##(15), 15, 16)
-#                define BOOST_PP_NODE_24(p) BOOST_PP_IIF(p##(24), BOOST_PP_NODE_20, BOOST_PP_NODE_28)
-#                    define BOOST_PP_NODE_20(p) BOOST_PP_IIF(p##(20), BOOST_PP_NODE_18, BOOST_PP_NODE_22)
-#                        define BOOST_PP_NODE_18(p) BOOST_PP_IIF(p##(18), BOOST_PP_NODE_17, BOOST_PP_NODE_19)
-#                            define BOOST_PP_NODE_17(p) BOOST_PP_IIF(p##(17), 17, 18)
-#                            define BOOST_PP_NODE_19(p) BOOST_PP_IIF(p##(19), 19, 20)
-#                        define BOOST_PP_NODE_22(p) BOOST_PP_IIF(p##(22), BOOST_PP_NODE_21, BOOST_PP_NODE_23)
-#                            define BOOST_PP_NODE_21(p) BOOST_PP_IIF(p##(21), 21, 22)
-#                            define BOOST_PP_NODE_23(p) BOOST_PP_IIF(p##(23), 23, 24)
-#                    define BOOST_PP_NODE_28(p) BOOST_PP_IIF(p##(28), BOOST_PP_NODE_26, BOOST_PP_NODE_30)
-#                        define BOOST_PP_NODE_26(p) BOOST_PP_IIF(p##(26), BOOST_PP_NODE_25, BOOST_PP_NODE_27)
-#                            define BOOST_PP_NODE_25(p) BOOST_PP_IIF(p##(25), 25, 26)
-#                            define BOOST_PP_NODE_27(p) BOOST_PP_IIF(p##(27), 27, 28)
-#                        define BOOST_PP_NODE_30(p) BOOST_PP_IIF(p##(30), BOOST_PP_NODE_29, BOOST_PP_NODE_31)
-#                            define BOOST_PP_NODE_29(p) BOOST_PP_IIF(p##(29), 29, 30)
-#                            define BOOST_PP_NODE_31(p) BOOST_PP_IIF(p##(31), 31, 32)
-#            define BOOST_PP_NODE_48(p) BOOST_PP_IIF(p##(48), BOOST_PP_NODE_40, BOOST_PP_NODE_56)
-#                define BOOST_PP_NODE_40(p) BOOST_PP_IIF(p##(40), BOOST_PP_NODE_36, BOOST_PP_NODE_44)
-#                    define BOOST_PP_NODE_36(p) BOOST_PP_IIF(p##(36), BOOST_PP_NODE_34, BOOST_PP_NODE_38)
-#                        define BOOST_PP_NODE_34(p) BOOST_PP_IIF(p##(34), BOOST_PP_NODE_33, BOOST_PP_NODE_35)
-#                            define BOOST_PP_NODE_33(p) BOOST_PP_IIF(p##(33), 33, 34)
-#                            define BOOST_PP_NODE_35(p) BOOST_PP_IIF(p##(35), 35, 36)
-#                        define BOOST_PP_NODE_38(p) BOOST_PP_IIF(p##(38), BOOST_PP_NODE_37, BOOST_PP_NODE_39)
-#                            define BOOST_PP_NODE_37(p) BOOST_PP_IIF(p##(37), 37, 38)
-#                            define BOOST_PP_NODE_39(p) BOOST_PP_IIF(p##(39), 39, 40)
-#                    define BOOST_PP_NODE_44(p) BOOST_PP_IIF(p##(44), BOOST_PP_NODE_42, BOOST_PP_NODE_46)
-#                        define BOOST_PP_NODE_42(p) BOOST_PP_IIF(p##(42), BOOST_PP_NODE_41, BOOST_PP_NODE_43)
-#                            define BOOST_PP_NODE_41(p) BOOST_PP_IIF(p##(41), 41, 42)
-#                            define BOOST_PP_NODE_43(p) BOOST_PP_IIF(p##(43), 43, 44)
-#                        define BOOST_PP_NODE_46(p) BOOST_PP_IIF(p##(46), BOOST_PP_NODE_45, BOOST_PP_NODE_47)
-#                            define BOOST_PP_NODE_45(p) BOOST_PP_IIF(p##(45), 45, 46)
-#                            define BOOST_PP_NODE_47(p) BOOST_PP_IIF(p##(47), 47, 48)
-#                define BOOST_PP_NODE_56(p) BOOST_PP_IIF(p##(56), BOOST_PP_NODE_52, BOOST_PP_NODE_60)
-#                    define BOOST_PP_NODE_52(p) BOOST_PP_IIF(p##(52), BOOST_PP_NODE_50, BOOST_PP_NODE_54)
-#                        define BOOST_PP_NODE_50(p) BOOST_PP_IIF(p##(50), BOOST_PP_NODE_49, BOOST_PP_NODE_51)
-#                            define BOOST_PP_NODE_49(p) BOOST_PP_IIF(p##(49), 49, 50)
-#                            define BOOST_PP_NODE_51(p) BOOST_PP_IIF(p##(51), 51, 52)
-#                        define BOOST_PP_NODE_54(p) BOOST_PP_IIF(p##(54), BOOST_PP_NODE_53, BOOST_PP_NODE_55)
-#                            define BOOST_PP_NODE_53(p) BOOST_PP_IIF(p##(53), 53, 54)
-#                            define BOOST_PP_NODE_55(p) BOOST_PP_IIF(p##(55), 55, 56)
-#                    define BOOST_PP_NODE_60(p) BOOST_PP_IIF(p##(60), BOOST_PP_NODE_58, BOOST_PP_NODE_62)
-#                        define BOOST_PP_NODE_58(p) BOOST_PP_IIF(p##(58), BOOST_PP_NODE_57, BOOST_PP_NODE_59)
-#                            define BOOST_PP_NODE_57(p) BOOST_PP_IIF(p##(57), 57, 58)
-#                            define BOOST_PP_NODE_59(p) BOOST_PP_IIF(p##(59), 59, 60)
-#                        define BOOST_PP_NODE_62(p) BOOST_PP_IIF(p##(62), BOOST_PP_NODE_61, BOOST_PP_NODE_63)
-#                            define BOOST_PP_NODE_61(p) BOOST_PP_IIF(p##(61), 61, 62)
-#                            define BOOST_PP_NODE_63(p) BOOST_PP_IIF(p##(63), 63, 64)
-#        define BOOST_PP_NODE_96(p) BOOST_PP_IIF(p##(96), BOOST_PP_NODE_80, BOOST_PP_NODE_112)
-#            define BOOST_PP_NODE_80(p) BOOST_PP_IIF(p##(80), BOOST_PP_NODE_72, BOOST_PP_NODE_88)
-#                define BOOST_PP_NODE_72(p) BOOST_PP_IIF(p##(72), BOOST_PP_NODE_68, BOOST_PP_NODE_76)
-#                    define BOOST_PP_NODE_68(p) BOOST_PP_IIF(p##(68), BOOST_PP_NODE_66, BOOST_PP_NODE_70)
-#                        define BOOST_PP_NODE_66(p) BOOST_PP_IIF(p##(66), BOOST_PP_NODE_65, BOOST_PP_NODE_67)
-#                            define BOOST_PP_NODE_65(p) BOOST_PP_IIF(p##(65), 65, 66)
-#                            define BOOST_PP_NODE_67(p) BOOST_PP_IIF(p##(67), 67, 68)
-#                        define BOOST_PP_NODE_70(p) BOOST_PP_IIF(p##(70), BOOST_PP_NODE_69, BOOST_PP_NODE_71)
-#                            define BOOST_PP_NODE_69(p) BOOST_PP_IIF(p##(69), 69, 70)
-#                            define BOOST_PP_NODE_71(p) BOOST_PP_IIF(p##(71), 71, 72)
-#                    define BOOST_PP_NODE_76(p) BOOST_PP_IIF(p##(76), BOOST_PP_NODE_74, BOOST_PP_NODE_78)
-#                        define BOOST_PP_NODE_74(p) BOOST_PP_IIF(p##(74), BOOST_PP_NODE_73, BOOST_PP_NODE_75)
-#                            define BOOST_PP_NODE_73(p) BOOST_PP_IIF(p##(73), 73, 74)
-#                            define BOOST_PP_NODE_75(p) BOOST_PP_IIF(p##(75), 75, 76)
-#                        define BOOST_PP_NODE_78(p) BOOST_PP_IIF(p##(78), BOOST_PP_NODE_77, BOOST_PP_NODE_79)
-#                            define BOOST_PP_NODE_77(p) BOOST_PP_IIF(p##(77), 77, 78)
-#                            define BOOST_PP_NODE_79(p) BOOST_PP_IIF(p##(79), 79, 80)
-#                define BOOST_PP_NODE_88(p) BOOST_PP_IIF(p##(88), BOOST_PP_NODE_84, BOOST_PP_NODE_92)
-#                    define BOOST_PP_NODE_84(p) BOOST_PP_IIF(p##(84), BOOST_PP_NODE_82, BOOST_PP_NODE_86)
-#                        define BOOST_PP_NODE_82(p) BOOST_PP_IIF(p##(82), BOOST_PP_NODE_81, BOOST_PP_NODE_83)
-#                            define BOOST_PP_NODE_81(p) BOOST_PP_IIF(p##(81), 81, 82)
-#                            define BOOST_PP_NODE_83(p) BOOST_PP_IIF(p##(83), 83, 84)
-#                        define BOOST_PP_NODE_86(p) BOOST_PP_IIF(p##(86), BOOST_PP_NODE_85, BOOST_PP_NODE_87)
-#                            define BOOST_PP_NODE_85(p) BOOST_PP_IIF(p##(85), 85, 86)
-#                            define BOOST_PP_NODE_87(p) BOOST_PP_IIF(p##(87), 87, 88)
-#                    define BOOST_PP_NODE_92(p) BOOST_PP_IIF(p##(92), BOOST_PP_NODE_90, BOOST_PP_NODE_94)
-#                        define BOOST_PP_NODE_90(p) BOOST_PP_IIF(p##(90), BOOST_PP_NODE_89, BOOST_PP_NODE_91)
-#                            define BOOST_PP_NODE_89(p) BOOST_PP_IIF(p##(89), 89, 90)
-#                            define BOOST_PP_NODE_91(p) BOOST_PP_IIF(p##(91), 91, 92)
-#                        define BOOST_PP_NODE_94(p) BOOST_PP_IIF(p##(94), BOOST_PP_NODE_93, BOOST_PP_NODE_95)
-#                            define BOOST_PP_NODE_93(p) BOOST_PP_IIF(p##(93), 93, 94)
-#                            define BOOST_PP_NODE_95(p) BOOST_PP_IIF(p##(95), 95, 96)
-#            define BOOST_PP_NODE_112(p) BOOST_PP_IIF(p##(112), BOOST_PP_NODE_104, BOOST_PP_NODE_120)
-#                define BOOST_PP_NODE_104(p) BOOST_PP_IIF(p##(104), BOOST_PP_NODE_100, BOOST_PP_NODE_108)
-#                    define BOOST_PP_NODE_100(p) BOOST_PP_IIF(p##(100), BOOST_PP_NODE_98, BOOST_PP_NODE_102)
-#                        define BOOST_PP_NODE_98(p) BOOST_PP_IIF(p##(98), BOOST_PP_NODE_97, BOOST_PP_NODE_99)
-#                            define BOOST_PP_NODE_97(p) BOOST_PP_IIF(p##(97), 97, 98)
-#                            define BOOST_PP_NODE_99(p) BOOST_PP_IIF(p##(99), 99, 100)
-#                        define BOOST_PP_NODE_102(p) BOOST_PP_IIF(p##(102), BOOST_PP_NODE_101, BOOST_PP_NODE_103)
-#                            define BOOST_PP_NODE_101(p) BOOST_PP_IIF(p##(101), 101, 102)
-#                            define BOOST_PP_NODE_103(p) BOOST_PP_IIF(p##(103), 103, 104)
-#                    define BOOST_PP_NODE_108(p) BOOST_PP_IIF(p##(108), BOOST_PP_NODE_106, BOOST_PP_NODE_110)
-#                        define BOOST_PP_NODE_106(p) BOOST_PP_IIF(p##(106), BOOST_PP_NODE_105, BOOST_PP_NODE_107)
-#                            define BOOST_PP_NODE_105(p) BOOST_PP_IIF(p##(105), 105, 106)
-#                            define BOOST_PP_NODE_107(p) BOOST_PP_IIF(p##(107), 107, 108)
-#                        define BOOST_PP_NODE_110(p) BOOST_PP_IIF(p##(110), BOOST_PP_NODE_109, BOOST_PP_NODE_111)
-#                            define BOOST_PP_NODE_109(p) BOOST_PP_IIF(p##(109), 109, 110)
-#                            define BOOST_PP_NODE_111(p) BOOST_PP_IIF(p##(111), 111, 112)
-#                define BOOST_PP_NODE_120(p) BOOST_PP_IIF(p##(120), BOOST_PP_NODE_116, BOOST_PP_NODE_124)
-#                    define BOOST_PP_NODE_116(p) BOOST_PP_IIF(p##(116), BOOST_PP_NODE_114, BOOST_PP_NODE_118)
-#                        define BOOST_PP_NODE_114(p) BOOST_PP_IIF(p##(114), BOOST_PP_NODE_113, BOOST_PP_NODE_115)
-#                            define BOOST_PP_NODE_113(p) BOOST_PP_IIF(p##(113), 113, 114)
-#                            define BOOST_PP_NODE_115(p) BOOST_PP_IIF(p##(115), 115, 116)
-#                        define BOOST_PP_NODE_118(p) BOOST_PP_IIF(p##(118), BOOST_PP_NODE_117, BOOST_PP_NODE_119)
-#                            define BOOST_PP_NODE_117(p) BOOST_PP_IIF(p##(117), 117, 118)
-#                            define BOOST_PP_NODE_119(p) BOOST_PP_IIF(p##(119), 119, 120)
-#                    define BOOST_PP_NODE_124(p) BOOST_PP_IIF(p##(124), BOOST_PP_NODE_122, BOOST_PP_NODE_126)
-#                        define BOOST_PP_NODE_122(p) BOOST_PP_IIF(p##(122), BOOST_PP_NODE_121, BOOST_PP_NODE_123)
-#                            define BOOST_PP_NODE_121(p) BOOST_PP_IIF(p##(121), 121, 122)
-#                            define BOOST_PP_NODE_123(p) BOOST_PP_IIF(p##(123), 123, 124)
-#                        define BOOST_PP_NODE_126(p) BOOST_PP_IIF(p##(126), BOOST_PP_NODE_125, BOOST_PP_NODE_127)
-#                            define BOOST_PP_NODE_125(p) BOOST_PP_IIF(p##(125), 125, 126)
-#                            define BOOST_PP_NODE_127(p) BOOST_PP_IIF(p##(127), 127, 128)
-#    define BOOST_PP_NODE_192(p) BOOST_PP_IIF(p##(192), BOOST_PP_NODE_160, BOOST_PP_NODE_224)
-#        define BOOST_PP_NODE_160(p) BOOST_PP_IIF(p##(160), BOOST_PP_NODE_144, BOOST_PP_NODE_176)
-#            define BOOST_PP_NODE_144(p) BOOST_PP_IIF(p##(144), BOOST_PP_NODE_136, BOOST_PP_NODE_152)
-#                define BOOST_PP_NODE_136(p) BOOST_PP_IIF(p##(136), BOOST_PP_NODE_132, BOOST_PP_NODE_140)
-#                    define BOOST_PP_NODE_132(p) BOOST_PP_IIF(p##(132), BOOST_PP_NODE_130, BOOST_PP_NODE_134)
-#                        define BOOST_PP_NODE_130(p) BOOST_PP_IIF(p##(130), BOOST_PP_NODE_129, BOOST_PP_NODE_131)
-#                            define BOOST_PP_NODE_129(p) BOOST_PP_IIF(p##(129), 129, 130)
-#                            define BOOST_PP_NODE_131(p) BOOST_PP_IIF(p##(131), 131, 132)
-#                        define BOOST_PP_NODE_134(p) BOOST_PP_IIF(p##(134), BOOST_PP_NODE_133, BOOST_PP_NODE_135)
-#                            define BOOST_PP_NODE_133(p) BOOST_PP_IIF(p##(133), 133, 134)
-#                            define BOOST_PP_NODE_135(p) BOOST_PP_IIF(p##(135), 135, 136)
-#                    define BOOST_PP_NODE_140(p) BOOST_PP_IIF(p##(140), BOOST_PP_NODE_138, BOOST_PP_NODE_142)
-#                        define BOOST_PP_NODE_138(p) BOOST_PP_IIF(p##(138), BOOST_PP_NODE_137, BOOST_PP_NODE_139)
-#                            define BOOST_PP_NODE_137(p) BOOST_PP_IIF(p##(137), 137, 138)
-#                            define BOOST_PP_NODE_139(p) BOOST_PP_IIF(p##(139), 139, 140)
-#                        define BOOST_PP_NODE_142(p) BOOST_PP_IIF(p##(142), BOOST_PP_NODE_141, BOOST_PP_NODE_143)
-#                            define BOOST_PP_NODE_141(p) BOOST_PP_IIF(p##(141), 141, 142)
-#                            define BOOST_PP_NODE_143(p) BOOST_PP_IIF(p##(143), 143, 144)
-#                define BOOST_PP_NODE_152(p) BOOST_PP_IIF(p##(152), BOOST_PP_NODE_148, BOOST_PP_NODE_156)
-#                    define BOOST_PP_NODE_148(p) BOOST_PP_IIF(p##(148), BOOST_PP_NODE_146, BOOST_PP_NODE_150)
-#                        define BOOST_PP_NODE_146(p) BOOST_PP_IIF(p##(146), BOOST_PP_NODE_145, BOOST_PP_NODE_147)
-#                            define BOOST_PP_NODE_145(p) BOOST_PP_IIF(p##(145), 145, 146)
-#                            define BOOST_PP_NODE_147(p) BOOST_PP_IIF(p##(147), 147, 148)
-#                        define BOOST_PP_NODE_150(p) BOOST_PP_IIF(p##(150), BOOST_PP_NODE_149, BOOST_PP_NODE_151)
-#                            define BOOST_PP_NODE_149(p) BOOST_PP_IIF(p##(149), 149, 150)
-#                            define BOOST_PP_NODE_151(p) BOOST_PP_IIF(p##(151), 151, 152)
-#                    define BOOST_PP_NODE_156(p) BOOST_PP_IIF(p##(156), BOOST_PP_NODE_154, BOOST_PP_NODE_158)
-#                        define BOOST_PP_NODE_154(p) BOOST_PP_IIF(p##(154), BOOST_PP_NODE_153, BOOST_PP_NODE_155)
-#                            define BOOST_PP_NODE_153(p) BOOST_PP_IIF(p##(153), 153, 154)
-#                            define BOOST_PP_NODE_155(p) BOOST_PP_IIF(p##(155), 155, 156)
-#                        define BOOST_PP_NODE_158(p) BOOST_PP_IIF(p##(158), BOOST_PP_NODE_157, BOOST_PP_NODE_159)
-#                            define BOOST_PP_NODE_157(p) BOOST_PP_IIF(p##(157), 157, 158)
-#                            define BOOST_PP_NODE_159(p) BOOST_PP_IIF(p##(159), 159, 160)
-#            define BOOST_PP_NODE_176(p) BOOST_PP_IIF(p##(176), BOOST_PP_NODE_168, BOOST_PP_NODE_184)
-#                define BOOST_PP_NODE_168(p) BOOST_PP_IIF(p##(168), BOOST_PP_NODE_164, BOOST_PP_NODE_172)
-#                    define BOOST_PP_NODE_164(p) BOOST_PP_IIF(p##(164), BOOST_PP_NODE_162, BOOST_PP_NODE_166)
-#                        define BOOST_PP_NODE_162(p) BOOST_PP_IIF(p##(162), BOOST_PP_NODE_161, BOOST_PP_NODE_163)
-#                            define BOOST_PP_NODE_161(p) BOOST_PP_IIF(p##(161), 161, 162)
-#                            define BOOST_PP_NODE_163(p) BOOST_PP_IIF(p##(163), 163, 164)
-#                        define BOOST_PP_NODE_166(p) BOOST_PP_IIF(p##(166), BOOST_PP_NODE_165, BOOST_PP_NODE_167)
-#                            define BOOST_PP_NODE_165(p) BOOST_PP_IIF(p##(165), 165, 166)
-#                            define BOOST_PP_NODE_167(p) BOOST_PP_IIF(p##(167), 167, 168)
-#                    define BOOST_PP_NODE_172(p) BOOST_PP_IIF(p##(172), BOOST_PP_NODE_170, BOOST_PP_NODE_174)
-#                        define BOOST_PP_NODE_170(p) BOOST_PP_IIF(p##(170), BOOST_PP_NODE_169, BOOST_PP_NODE_171)
-#                            define BOOST_PP_NODE_169(p) BOOST_PP_IIF(p##(169), 169, 170)
-#                            define BOOST_PP_NODE_171(p) BOOST_PP_IIF(p##(171), 171, 172)
-#                        define BOOST_PP_NODE_174(p) BOOST_PP_IIF(p##(174), BOOST_PP_NODE_173, BOOST_PP_NODE_175)
-#                            define BOOST_PP_NODE_173(p) BOOST_PP_IIF(p##(173), 173, 174)
-#                            define BOOST_PP_NODE_175(p) BOOST_PP_IIF(p##(175), 175, 176)
-#                define BOOST_PP_NODE_184(p) BOOST_PP_IIF(p##(184), BOOST_PP_NODE_180, BOOST_PP_NODE_188)
-#                    define BOOST_PP_NODE_180(p) BOOST_PP_IIF(p##(180), BOOST_PP_NODE_178, BOOST_PP_NODE_182)
-#                        define BOOST_PP_NODE_178(p) BOOST_PP_IIF(p##(178), BOOST_PP_NODE_177, BOOST_PP_NODE_179)
-#                            define BOOST_PP_NODE_177(p) BOOST_PP_IIF(p##(177), 177, 178)
-#                            define BOOST_PP_NODE_179(p) BOOST_PP_IIF(p##(179), 179, 180)
-#                        define BOOST_PP_NODE_182(p) BOOST_PP_IIF(p##(182), BOOST_PP_NODE_181, BOOST_PP_NODE_183)
-#                            define BOOST_PP_NODE_181(p) BOOST_PP_IIF(p##(181), 181, 182)
-#                            define BOOST_PP_NODE_183(p) BOOST_PP_IIF(p##(183), 183, 184)
-#                    define BOOST_PP_NODE_188(p) BOOST_PP_IIF(p##(188), BOOST_PP_NODE_186, BOOST_PP_NODE_190)
-#                        define BOOST_PP_NODE_186(p) BOOST_PP_IIF(p##(186), BOOST_PP_NODE_185, BOOST_PP_NODE_187)
-#                            define BOOST_PP_NODE_185(p) BOOST_PP_IIF(p##(185), 185, 186)
-#                            define BOOST_PP_NODE_187(p) BOOST_PP_IIF(p##(187), 187, 188)
-#                        define BOOST_PP_NODE_190(p) BOOST_PP_IIF(p##(190), BOOST_PP_NODE_189, BOOST_PP_NODE_191)
-#                            define BOOST_PP_NODE_189(p) BOOST_PP_IIF(p##(189), 189, 190)
-#                            define BOOST_PP_NODE_191(p) BOOST_PP_IIF(p##(191), 191, 192)
-#        define BOOST_PP_NODE_224(p) BOOST_PP_IIF(p##(224), BOOST_PP_NODE_208, BOOST_PP_NODE_240)
-#            define BOOST_PP_NODE_208(p) BOOST_PP_IIF(p##(208), BOOST_PP_NODE_200, BOOST_PP_NODE_216)
-#                define BOOST_PP_NODE_200(p) BOOST_PP_IIF(p##(200), BOOST_PP_NODE_196, BOOST_PP_NODE_204)
-#                    define BOOST_PP_NODE_196(p) BOOST_PP_IIF(p##(196), BOOST_PP_NODE_194, BOOST_PP_NODE_198)
-#                        define BOOST_PP_NODE_194(p) BOOST_PP_IIF(p##(194), BOOST_PP_NODE_193, BOOST_PP_NODE_195)
-#                            define BOOST_PP_NODE_193(p) BOOST_PP_IIF(p##(193), 193, 194)
-#                            define BOOST_PP_NODE_195(p) BOOST_PP_IIF(p##(195), 195, 196)
-#                        define BOOST_PP_NODE_198(p) BOOST_PP_IIF(p##(198), BOOST_PP_NODE_197, BOOST_PP_NODE_199)
-#                            define BOOST_PP_NODE_197(p) BOOST_PP_IIF(p##(197), 197, 198)
-#                            define BOOST_PP_NODE_199(p) BOOST_PP_IIF(p##(199), 199, 200)
-#                    define BOOST_PP_NODE_204(p) BOOST_PP_IIF(p##(204), BOOST_PP_NODE_202, BOOST_PP_NODE_206)
-#                        define BOOST_PP_NODE_202(p) BOOST_PP_IIF(p##(202), BOOST_PP_NODE_201, BOOST_PP_NODE_203)
-#                            define BOOST_PP_NODE_201(p) BOOST_PP_IIF(p##(201), 201, 202)
-#                            define BOOST_PP_NODE_203(p) BOOST_PP_IIF(p##(203), 203, 204)
-#                        define BOOST_PP_NODE_206(p) BOOST_PP_IIF(p##(206), BOOST_PP_NODE_205, BOOST_PP_NODE_207)
-#                            define BOOST_PP_NODE_205(p) BOOST_PP_IIF(p##(205), 205, 206)
-#                            define BOOST_PP_NODE_207(p) BOOST_PP_IIF(p##(207), 207, 208)
-#                define BOOST_PP_NODE_216(p) BOOST_PP_IIF(p##(216), BOOST_PP_NODE_212, BOOST_PP_NODE_220)
-#                    define BOOST_PP_NODE_212(p) BOOST_PP_IIF(p##(212), BOOST_PP_NODE_210, BOOST_PP_NODE_214)
-#                        define BOOST_PP_NODE_210(p) BOOST_PP_IIF(p##(210), BOOST_PP_NODE_209, BOOST_PP_NODE_211)
-#                            define BOOST_PP_NODE_209(p) BOOST_PP_IIF(p##(209), 209, 210)
-#                            define BOOST_PP_NODE_211(p) BOOST_PP_IIF(p##(211), 211, 212)
-#                        define BOOST_PP_NODE_214(p) BOOST_PP_IIF(p##(214), BOOST_PP_NODE_213, BOOST_PP_NODE_215)
-#                            define BOOST_PP_NODE_213(p) BOOST_PP_IIF(p##(213), 213, 214)
-#                            define BOOST_PP_NODE_215(p) BOOST_PP_IIF(p##(215), 215, 216)
-#                    define BOOST_PP_NODE_220(p) BOOST_PP_IIF(p##(220), BOOST_PP_NODE_218, BOOST_PP_NODE_222)
-#                        define BOOST_PP_NODE_218(p) BOOST_PP_IIF(p##(218), BOOST_PP_NODE_217, BOOST_PP_NODE_219)
-#                            define BOOST_PP_NODE_217(p) BOOST_PP_IIF(p##(217), 217, 218)
-#                            define BOOST_PP_NODE_219(p) BOOST_PP_IIF(p##(219), 219, 220)
-#                        define BOOST_PP_NODE_222(p) BOOST_PP_IIF(p##(222), BOOST_PP_NODE_221, BOOST_PP_NODE_223)
-#                            define BOOST_PP_NODE_221(p) BOOST_PP_IIF(p##(221), 221, 222)
-#                            define BOOST_PP_NODE_223(p) BOOST_PP_IIF(p##(223), 223, 224)
-#            define BOOST_PP_NODE_240(p) BOOST_PP_IIF(p##(240), BOOST_PP_NODE_232, BOOST_PP_NODE_248)
-#                define BOOST_PP_NODE_232(p) BOOST_PP_IIF(p##(232), BOOST_PP_NODE_228, BOOST_PP_NODE_236)
-#                    define BOOST_PP_NODE_228(p) BOOST_PP_IIF(p##(228), BOOST_PP_NODE_226, BOOST_PP_NODE_230)
-#                        define BOOST_PP_NODE_226(p) BOOST_PP_IIF(p##(226), BOOST_PP_NODE_225, BOOST_PP_NODE_227)
-#                            define BOOST_PP_NODE_225(p) BOOST_PP_IIF(p##(225), 225, 226)
-#                            define BOOST_PP_NODE_227(p) BOOST_PP_IIF(p##(227), 227, 228)
-#                        define BOOST_PP_NODE_230(p) BOOST_PP_IIF(p##(230), BOOST_PP_NODE_229, BOOST_PP_NODE_231)
-#                            define BOOST_PP_NODE_229(p) BOOST_PP_IIF(p##(229), 229, 230)
-#                            define BOOST_PP_NODE_231(p) BOOST_PP_IIF(p##(231), 231, 232)
-#                    define BOOST_PP_NODE_236(p) BOOST_PP_IIF(p##(236), BOOST_PP_NODE_234, BOOST_PP_NODE_238)
-#                        define BOOST_PP_NODE_234(p) BOOST_PP_IIF(p##(234), BOOST_PP_NODE_233, BOOST_PP_NODE_235)
-#                            define BOOST_PP_NODE_233(p) BOOST_PP_IIF(p##(233), 233, 234)
-#                            define BOOST_PP_NODE_235(p) BOOST_PP_IIF(p##(235), 235, 236)
-#                        define BOOST_PP_NODE_238(p) BOOST_PP_IIF(p##(238), BOOST_PP_NODE_237, BOOST_PP_NODE_239)
-#                            define BOOST_PP_NODE_237(p) BOOST_PP_IIF(p##(237), 237, 238)
-#                            define BOOST_PP_NODE_239(p) BOOST_PP_IIF(p##(239), 239, 240)
-#                define BOOST_PP_NODE_248(p) BOOST_PP_IIF(p##(248), BOOST_PP_NODE_244, BOOST_PP_NODE_252)
-#                    define BOOST_PP_NODE_244(p) BOOST_PP_IIF(p##(244), BOOST_PP_NODE_242, BOOST_PP_NODE_246)
-#                        define BOOST_PP_NODE_242(p) BOOST_PP_IIF(p##(242), BOOST_PP_NODE_241, BOOST_PP_NODE_243)
-#                            define BOOST_PP_NODE_241(p) BOOST_PP_IIF(p##(241), 241, 242)
-#                            define BOOST_PP_NODE_243(p) BOOST_PP_IIF(p##(243), 243, 244)
-#                        define BOOST_PP_NODE_246(p) BOOST_PP_IIF(p##(246), BOOST_PP_NODE_245, BOOST_PP_NODE_247)
-#                            define BOOST_PP_NODE_245(p) BOOST_PP_IIF(p##(245), 245, 246)
-#                            define BOOST_PP_NODE_247(p) BOOST_PP_IIF(p##(247), 247, 248)
-#                    define BOOST_PP_NODE_252(p) BOOST_PP_IIF(p##(252), BOOST_PP_NODE_250, BOOST_PP_NODE_254)
-#                        define BOOST_PP_NODE_250(p) BOOST_PP_IIF(p##(250), BOOST_PP_NODE_249, BOOST_PP_NODE_251)
-#                            define BOOST_PP_NODE_249(p) BOOST_PP_IIF(p##(249), 249, 250)
-#                            define BOOST_PP_NODE_251(p) BOOST_PP_IIF(p##(251), 251, 252)
-#                        define BOOST_PP_NODE_254(p) BOOST_PP_IIF(p##(254), BOOST_PP_NODE_253, BOOST_PP_NODE_255)
-#                            define BOOST_PP_NODE_253(p) BOOST_PP_IIF(p##(253), 253, 254)
-#                            define BOOST_PP_NODE_255(p) BOOST_PP_IIF(p##(255), 255, 256)
-#
-# endif
diff --git a/boost/preprocessor/detail/is_binary.hpp b/boost/preprocessor/detail/is_binary.hpp
deleted file mode 100644
index 3428833..0000000
--- a/boost/preprocessor/detail/is_binary.hpp
+++ /dev/null
@@ -1,30 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_DETAIL_IS_BINARY_HPP
-# define BOOST_PREPROCESSOR_DETAIL_IS_BINARY_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/detail/check.hpp>
-#
-# /* BOOST_PP_IS_BINARY */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_IS_BINARY(x) BOOST_PP_CHECK(x, BOOST_PP_IS_BINARY_CHECK)
-# else
-#    define BOOST_PP_IS_BINARY(x) BOOST_PP_IS_BINARY_I(x)
-#    define BOOST_PP_IS_BINARY_I(x) BOOST_PP_CHECK(x, BOOST_PP_IS_BINARY_CHECK)
-# endif
-#
-# define BOOST_PP_IS_BINARY_CHECK(a, b) 1
-# define BOOST_PP_CHECK_RESULT_BOOST_PP_IS_BINARY_CHECK 0, BOOST_PP_NIL
-#
-# endif
diff --git a/boost/preprocessor/detail/is_unary.hpp b/boost/preprocessor/detail/is_unary.hpp
deleted file mode 100644
index e73cdfb..0000000
--- a/boost/preprocessor/detail/is_unary.hpp
+++ /dev/null
@@ -1,30 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_DETAIL_IS_UNARY_HPP
-# define BOOST_PREPROCESSOR_DETAIL_IS_UNARY_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/detail/check.hpp>
-#
-# /* BOOST_PP_IS_UNARY */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_IS_UNARY(x) BOOST_PP_CHECK(x, BOOST_PP_IS_UNARY_CHECK)
-# else
-#    define BOOST_PP_IS_UNARY(x) BOOST_PP_IS_UNARY_I(x)
-#    define BOOST_PP_IS_UNARY_I(x) BOOST_PP_CHECK(x, BOOST_PP_IS_UNARY_CHECK)
-# endif
-#
-# define BOOST_PP_IS_UNARY_CHECK(a) 1
-# define BOOST_PP_CHECK_RESULT_BOOST_PP_IS_UNARY_CHECK 0, BOOST_PP_NIL
-#
-# endif
diff --git a/boost/preprocessor/empty.hpp b/boost/preprocessor/empty.hpp
deleted file mode 100644
index 116ef74..0000000
--- a/boost/preprocessor/empty.hpp
+++ /dev/null
@@ -1,17 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_EMPTY_HPP
-# define BOOST_PREPROCESSOR_EMPTY_HPP
-#
-# include <boost/preprocessor/facilities/empty.hpp>
-#
-# endif
diff --git a/boost/preprocessor/enum.hpp b/boost/preprocessor/enum.hpp
deleted file mode 100644
index ae05bb0..0000000
--- a/boost/preprocessor/enum.hpp
+++ /dev/null
@@ -1,17 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_ENUM_HPP
-# define BOOST_PREPROCESSOR_ENUM_HPP
-#
-# include <boost/preprocessor/repetition/enum.hpp>
-#
-# endif
diff --git a/boost/preprocessor/enum_params.hpp b/boost/preprocessor/enum_params.hpp
deleted file mode 100644
index 414f8aa..0000000
--- a/boost/preprocessor/enum_params.hpp
+++ /dev/null
@@ -1,17 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_ENUM_PARAMS_HPP
-# define BOOST_PREPROCESSOR_ENUM_PARAMS_HPP
-#
-# include <boost/preprocessor/repetition/enum_params.hpp>
-#
-# endif
diff --git a/boost/preprocessor/enum_params_with_a_default.hpp b/boost/preprocessor/enum_params_with_a_default.hpp
deleted file mode 100644
index fd1ad4c..0000000
--- a/boost/preprocessor/enum_params_with_a_default.hpp
+++ /dev/null
@@ -1,17 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_ENUM_PARAMS_WITH_A_DEFAULT_HPP
-# define BOOST_PREPROCESSOR_ENUM_PARAMS_WITH_A_DEFAULT_HPP
-#
-# include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
-#
-# endif
diff --git a/boost/preprocessor/enum_shifted_params.hpp b/boost/preprocessor/enum_shifted_params.hpp
deleted file mode 100644
index 462c642..0000000
--- a/boost/preprocessor/enum_shifted_params.hpp
+++ /dev/null
@@ -1,17 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_ENUM_SHIFTED_PARAMS_HPP
-# define BOOST_PREPROCESSOR_ENUM_SHIFTED_PARAMS_HPP
-#
-# include <boost/preprocessor/repetition/enum_shifted_params.hpp>
-#
-# endif
diff --git a/boost/preprocessor/expr_if.hpp b/boost/preprocessor/expr_if.hpp
deleted file mode 100644
index f93e29b..0000000
--- a/boost/preprocessor/expr_if.hpp
+++ /dev/null
@@ -1,17 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_EXPR_IF_HPP
-# define BOOST_PREPROCESSOR_EXPR_IF_HPP
-#
-# include <boost/preprocessor/control/expr_if.hpp>
-#
-# endif
diff --git a/boost/preprocessor/facilities/empty.hpp b/boost/preprocessor/facilities/empty.hpp
deleted file mode 100644
index 46db190..0000000
--- a/boost/preprocessor/facilities/empty.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * Distributed under the Boost Software License, Version 1.0. (See
-#  * accompanying file LICENSE_1_0.txt or copy at
-#  * http://www.boost.org/LICENSE_1_0.txt)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_FACILITIES_EMPTY_HPP
-# define BOOST_PREPROCESSOR_FACILITIES_EMPTY_HPP
-#
-# /* BOOST_PP_EMPTY */
-#
-# define BOOST_PP_EMPTY()
-#
-# endif
diff --git a/boost/preprocessor/facilities/identity.hpp b/boost/preprocessor/facilities/identity.hpp
deleted file mode 100644
index 13ec4ca..0000000
--- a/boost/preprocessor/facilities/identity.hpp
+++ /dev/null
@@ -1,23 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * Distributed under the Boost Software License, Version 1.0. (See
-#  * accompanying file LICENSE_1_0.txt or copy at
-#  * http://www.boost.org/LICENSE_1_0.txt)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_FACILITIES_IDENTITY_HPP
-# define BOOST_PREPROCESSOR_FACILITIES_IDENTITY_HPP
-#
-# include <boost/preprocessor/facilities/empty.hpp>
-#
-# /* BOOST_PP_IDENTITY */
-#
-# define BOOST_PP_IDENTITY(item) item BOOST_PP_EMPTY
-#
-# endif
diff --git a/boost/preprocessor/facilities/intercept.hpp b/boost/preprocessor/facilities/intercept.hpp
deleted file mode 100644
index 41dcc6a..0000000
--- a/boost/preprocessor/facilities/intercept.hpp
+++ /dev/null
@@ -1,277 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_FACILITIES_INTERCEPT_HPP
-# define BOOST_PREPROCESSOR_FACILITIES_INTERCEPT_HPP
-#
-# /* BOOST_PP_INTERCEPT */
-#
-# define BOOST_PP_INTERCEPT BOOST_PP_INTERCEPT_
-#
-# define BOOST_PP_INTERCEPT_0
-# define BOOST_PP_INTERCEPT_1
-# define BOOST_PP_INTERCEPT_2
-# define BOOST_PP_INTERCEPT_3
-# define BOOST_PP_INTERCEPT_4
-# define BOOST_PP_INTERCEPT_5
-# define BOOST_PP_INTERCEPT_6
-# define BOOST_PP_INTERCEPT_7
-# define BOOST_PP_INTERCEPT_8
-# define BOOST_PP_INTERCEPT_9
-# define BOOST_PP_INTERCEPT_10
-# define BOOST_PP_INTERCEPT_11
-# define BOOST_PP_INTERCEPT_12
-# define BOOST_PP_INTERCEPT_13
-# define BOOST_PP_INTERCEPT_14
-# define BOOST_PP_INTERCEPT_15
-# define BOOST_PP_INTERCEPT_16
-# define BOOST_PP_INTERCEPT_17
-# define BOOST_PP_INTERCEPT_18
-# define BOOST_PP_INTERCEPT_19
-# define BOOST_PP_INTERCEPT_20
-# define BOOST_PP_INTERCEPT_21
-# define BOOST_PP_INTERCEPT_22
-# define BOOST_PP_INTERCEPT_23
-# define BOOST_PP_INTERCEPT_24
-# define BOOST_PP_INTERCEPT_25
-# define BOOST_PP_INTERCEPT_26
-# define BOOST_PP_INTERCEPT_27
-# define BOOST_PP_INTERCEPT_28
-# define BOOST_PP_INTERCEPT_29
-# define BOOST_PP_INTERCEPT_30
-# define BOOST_PP_INTERCEPT_31
-# define BOOST_PP_INTERCEPT_32
-# define BOOST_PP_INTERCEPT_33
-# define BOOST_PP_INTERCEPT_34
-# define BOOST_PP_INTERCEPT_35
-# define BOOST_PP_INTERCEPT_36
-# define BOOST_PP_INTERCEPT_37
-# define BOOST_PP_INTERCEPT_38
-# define BOOST_PP_INTERCEPT_39
-# define BOOST_PP_INTERCEPT_40
-# define BOOST_PP_INTERCEPT_41
-# define BOOST_PP_INTERCEPT_42
-# define BOOST_PP_INTERCEPT_43
-# define BOOST_PP_INTERCEPT_44
-# define BOOST_PP_INTERCEPT_45
-# define BOOST_PP_INTERCEPT_46
-# define BOOST_PP_INTERCEPT_47
-# define BOOST_PP_INTERCEPT_48
-# define BOOST_PP_INTERCEPT_49
-# define BOOST_PP_INTERCEPT_50
-# define BOOST_PP_INTERCEPT_51
-# define BOOST_PP_INTERCEPT_52
-# define BOOST_PP_INTERCEPT_53
-# define BOOST_PP_INTERCEPT_54
-# define BOOST_PP_INTERCEPT_55
-# define BOOST_PP_INTERCEPT_56
-# define BOOST_PP_INTERCEPT_57
-# define BOOST_PP_INTERCEPT_58
-# define BOOST_PP_INTERCEPT_59
-# define BOOST_PP_INTERCEPT_60
-# define BOOST_PP_INTERCEPT_61
-# define BOOST_PP_INTERCEPT_62
-# define BOOST_PP_INTERCEPT_63
-# define BOOST_PP_INTERCEPT_64
-# define BOOST_PP_INTERCEPT_65
-# define BOOST_PP_INTERCEPT_66
-# define BOOST_PP_INTERCEPT_67
-# define BOOST_PP_INTERCEPT_68
-# define BOOST_PP_INTERCEPT_69
-# define BOOST_PP_INTERCEPT_70
-# define BOOST_PP_INTERCEPT_71
-# define BOOST_PP_INTERCEPT_72
-# define BOOST_PP_INTERCEPT_73
-# define BOOST_PP_INTERCEPT_74
-# define BOOST_PP_INTERCEPT_75
-# define BOOST_PP_INTERCEPT_76
-# define BOOST_PP_INTERCEPT_77
-# define BOOST_PP_INTERCEPT_78
-# define BOOST_PP_INTERCEPT_79
-# define BOOST_PP_INTERCEPT_80
-# define BOOST_PP_INTERCEPT_81
-# define BOOST_PP_INTERCEPT_82
-# define BOOST_PP_INTERCEPT_83
-# define BOOST_PP_INTERCEPT_84
-# define BOOST_PP_INTERCEPT_85
-# define BOOST_PP_INTERCEPT_86
-# define BOOST_PP_INTERCEPT_87
-# define BOOST_PP_INTERCEPT_88
-# define BOOST_PP_INTERCEPT_89
-# define BOOST_PP_INTERCEPT_90
-# define BOOST_PP_INTERCEPT_91
-# define BOOST_PP_INTERCEPT_92
-# define BOOST_PP_INTERCEPT_93
-# define BOOST_PP_INTERCEPT_94
-# define BOOST_PP_INTERCEPT_95
-# define BOOST_PP_INTERCEPT_96
-# define BOOST_PP_INTERCEPT_97
-# define BOOST_PP_INTERCEPT_98
-# define BOOST_PP_INTERCEPT_99
-# define BOOST_PP_INTERCEPT_100
-# define BOOST_PP_INTERCEPT_101
-# define BOOST_PP_INTERCEPT_102
-# define BOOST_PP_INTERCEPT_103
-# define BOOST_PP_INTERCEPT_104
-# define BOOST_PP_INTERCEPT_105
-# define BOOST_PP_INTERCEPT_106
-# define BOOST_PP_INTERCEPT_107
-# define BOOST_PP_INTERCEPT_108
-# define BOOST_PP_INTERCEPT_109
-# define BOOST_PP_INTERCEPT_110
-# define BOOST_PP_INTERCEPT_111
-# define BOOST_PP_INTERCEPT_112
-# define BOOST_PP_INTERCEPT_113
-# define BOOST_PP_INTERCEPT_114
-# define BOOST_PP_INTERCEPT_115
-# define BOOST_PP_INTERCEPT_116
-# define BOOST_PP_INTERCEPT_117
-# define BOOST_PP_INTERCEPT_118
-# define BOOST_PP_INTERCEPT_119
-# define BOOST_PP_INTERCEPT_120
-# define BOOST_PP_INTERCEPT_121
-# define BOOST_PP_INTERCEPT_122
-# define BOOST_PP_INTERCEPT_123
-# define BOOST_PP_INTERCEPT_124
-# define BOOST_PP_INTERCEPT_125
-# define BOOST_PP_INTERCEPT_126
-# define BOOST_PP_INTERCEPT_127
-# define BOOST_PP_INTERCEPT_128
-# define BOOST_PP_INTERCEPT_129
-# define BOOST_PP_INTERCEPT_130
-# define BOOST_PP_INTERCEPT_131
-# define BOOST_PP_INTERCEPT_132
-# define BOOST_PP_INTERCEPT_133
-# define BOOST_PP_INTERCEPT_134
-# define BOOST_PP_INTERCEPT_135
-# define BOOST_PP_INTERCEPT_136
-# define BOOST_PP_INTERCEPT_137
-# define BOOST_PP_INTERCEPT_138
-# define BOOST_PP_INTERCEPT_139
-# define BOOST_PP_INTERCEPT_140
-# define BOOST_PP_INTERCEPT_141
-# define BOOST_PP_INTERCEPT_142
-# define BOOST_PP_INTERCEPT_143
-# define BOOST_PP_INTERCEPT_144
-# define BOOST_PP_INTERCEPT_145
-# define BOOST_PP_INTERCEPT_146
-# define BOOST_PP_INTERCEPT_147
-# define BOOST_PP_INTERCEPT_148
-# define BOOST_PP_INTERCEPT_149
-# define BOOST_PP_INTERCEPT_150
-# define BOOST_PP_INTERCEPT_151
-# define BOOST_PP_INTERCEPT_152
-# define BOOST_PP_INTERCEPT_153
-# define BOOST_PP_INTERCEPT_154
-# define BOOST_PP_INTERCEPT_155
-# define BOOST_PP_INTERCEPT_156
-# define BOOST_PP_INTERCEPT_157
-# define BOOST_PP_INTERCEPT_158
-# define BOOST_PP_INTERCEPT_159
-# define BOOST_PP_INTERCEPT_160
-# define BOOST_PP_INTERCEPT_161
-# define BOOST_PP_INTERCEPT_162
-# define BOOST_PP_INTERCEPT_163
-# define BOOST_PP_INTERCEPT_164
-# define BOOST_PP_INTERCEPT_165
-# define BOOST_PP_INTERCEPT_166
-# define BOOST_PP_INTERCEPT_167
-# define BOOST_PP_INTERCEPT_168
-# define BOOST_PP_INTERCEPT_169
-# define BOOST_PP_INTERCEPT_170
-# define BOOST_PP_INTERCEPT_171
-# define BOOST_PP_INTERCEPT_172
-# define BOOST_PP_INTERCEPT_173
-# define BOOST_PP_INTERCEPT_174
-# define BOOST_PP_INTERCEPT_175
-# define BOOST_PP_INTERCEPT_176
-# define BOOST_PP_INTERCEPT_177
-# define BOOST_PP_INTERCEPT_178
-# define BOOST_PP_INTERCEPT_179
-# define BOOST_PP_INTERCEPT_180
-# define BOOST_PP_INTERCEPT_181
-# define BOOST_PP_INTERCEPT_182
-# define BOOST_PP_INTERCEPT_183
-# define BOOST_PP_INTERCEPT_184
-# define BOOST_PP_INTERCEPT_185
-# define BOOST_PP_INTERCEPT_186
-# define BOOST_PP_INTERCEPT_187
-# define BOOST_PP_INTERCEPT_188
-# define BOOST_PP_INTERCEPT_189
-# define BOOST_PP_INTERCEPT_190
-# define BOOST_PP_INTERCEPT_191
-# define BOOST_PP_INTERCEPT_192
-# define BOOST_PP_INTERCEPT_193
-# define BOOST_PP_INTERCEPT_194
-# define BOOST_PP_INTERCEPT_195
-# define BOOST_PP_INTERCEPT_196
-# define BOOST_PP_INTERCEPT_197
-# define BOOST_PP_INTERCEPT_198
-# define BOOST_PP_INTERCEPT_199
-# define BOOST_PP_INTERCEPT_200
-# define BOOST_PP_INTERCEPT_201
-# define BOOST_PP_INTERCEPT_202
-# define BOOST_PP_INTERCEPT_203
-# define BOOST_PP_INTERCEPT_204
-# define BOOST_PP_INTERCEPT_205
-# define BOOST_PP_INTERCEPT_206
-# define BOOST_PP_INTERCEPT_207
-# define BOOST_PP_INTERCEPT_208
-# define BOOST_PP_INTERCEPT_209
-# define BOOST_PP_INTERCEPT_210
-# define BOOST_PP_INTERCEPT_211
-# define BOOST_PP_INTERCEPT_212
-# define BOOST_PP_INTERCEPT_213
-# define BOOST_PP_INTERCEPT_214
-# define BOOST_PP_INTERCEPT_215
-# define BOOST_PP_INTERCEPT_216
-# define BOOST_PP_INTERCEPT_217
-# define BOOST_PP_INTERCEPT_218
-# define BOOST_PP_INTERCEPT_219
-# define BOOST_PP_INTERCEPT_220
-# define BOOST_PP_INTERCEPT_221
-# define BOOST_PP_INTERCEPT_222
-# define BOOST_PP_INTERCEPT_223
-# define BOOST_PP_INTERCEPT_224
-# define BOOST_PP_INTERCEPT_225
-# define BOOST_PP_INTERCEPT_226
-# define BOOST_PP_INTERCEPT_227
-# define BOOST_PP_INTERCEPT_228
-# define BOOST_PP_INTERCEPT_229
-# define BOOST_PP_INTERCEPT_230
-# define BOOST_PP_INTERCEPT_231
-# define BOOST_PP_INTERCEPT_232
-# define BOOST_PP_INTERCEPT_233
-# define BOOST_PP_INTERCEPT_234
-# define BOOST_PP_INTERCEPT_235
-# define BOOST_PP_INTERCEPT_236
-# define BOOST_PP_INTERCEPT_237
-# define BOOST_PP_INTERCEPT_238
-# define BOOST_PP_INTERCEPT_239
-# define BOOST_PP_INTERCEPT_240
-# define BOOST_PP_INTERCEPT_241
-# define BOOST_PP_INTERCEPT_242
-# define BOOST_PP_INTERCEPT_243
-# define BOOST_PP_INTERCEPT_244
-# define BOOST_PP_INTERCEPT_245
-# define BOOST_PP_INTERCEPT_246
-# define BOOST_PP_INTERCEPT_247
-# define BOOST_PP_INTERCEPT_248
-# define BOOST_PP_INTERCEPT_249
-# define BOOST_PP_INTERCEPT_250
-# define BOOST_PP_INTERCEPT_251
-# define BOOST_PP_INTERCEPT_252
-# define BOOST_PP_INTERCEPT_253
-# define BOOST_PP_INTERCEPT_254
-# define BOOST_PP_INTERCEPT_255
-# define BOOST_PP_INTERCEPT_256
-#
-# endif
diff --git a/boost/preprocessor/facilities/overload.hpp b/boost/preprocessor/facilities/overload.hpp
deleted file mode 100644
index 1576316..0000000
--- a/boost/preprocessor/facilities/overload.hpp
+++ /dev/null
@@ -1,25 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2011.                                  *
-#  *     (C) Copyright Edward Diener 2011.                                    *
-#  *     Distributed under the Boost Software License, Version 1.0. (See      *
-#  *     accompanying file LICENSE_1_0.txt or copy at                         *
-#  *     http://www.boost.org/LICENSE_1_0.txt)                                *
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_FACILITIES_OVERLOAD_HPP
-# define BOOST_PREPROCESSOR_FACILITIES_OVERLOAD_HPP
-#
-# include <boost/preprocessor/cat.hpp>
-# include <boost/preprocessor/variadic/size.hpp>
-#
-# /* BOOST_PP_OVERLOAD */
-#
-# if BOOST_PP_VARIADICS
-#    define BOOST_PP_OVERLOAD(prefix, ...) BOOST_PP_CAT(prefix, BOOST_PP_VARIADIC_SIZE(__VA_ARGS__))
-# endif
-#
-# endif
diff --git a/boost/preprocessor/identity.hpp b/boost/preprocessor/identity.hpp
deleted file mode 100644
index 847dd13..0000000
--- a/boost/preprocessor/identity.hpp
+++ /dev/null
@@ -1,17 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_IDENTITY_HPP
-# define BOOST_PREPROCESSOR_IDENTITY_HPP
-#
-# include <boost/preprocessor/facilities/identity.hpp>
-#
-# endif
diff --git a/boost/preprocessor/if.hpp b/boost/preprocessor/if.hpp
deleted file mode 100644
index f1783f7..0000000
--- a/boost/preprocessor/if.hpp
+++ /dev/null
@@ -1,17 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_IF_HPP
-# define BOOST_PREPROCESSOR_IF_HPP
-#
-# include <boost/preprocessor/control/if.hpp>
-#
-# endif
diff --git a/boost/preprocessor/inc.hpp b/boost/preprocessor/inc.hpp
deleted file mode 100644
index b98d3a6..0000000
--- a/boost/preprocessor/inc.hpp
+++ /dev/null
@@ -1,17 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_INC_HPP
-# define BOOST_PREPROCESSOR_INC_HPP
-#
-# include <boost/preprocessor/arithmetic/inc.hpp>
-#
-# endif
diff --git a/boost/preprocessor/iterate.hpp b/boost/preprocessor/iterate.hpp
deleted file mode 100644
index e720ec8..0000000
--- a/boost/preprocessor/iterate.hpp
+++ /dev/null
@@ -1,17 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_ITERATE_HPP
-# define BOOST_PREPROCESSOR_ITERATE_HPP
-#
-# include <boost/preprocessor/iteration/iterate.hpp>
-#
-# endif
diff --git a/boost/preprocessor/iteration/detail/bounds/lower1.hpp b/boost/preprocessor/iteration/detail/bounds/lower1.hpp
deleted file mode 100644
index 6694d0b..0000000
--- a/boost/preprocessor/iteration/detail/bounds/lower1.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# include <boost/preprocessor/slot/detail/shared.hpp>
-#
-# undef BOOST_PP_ITERATION_START_1
-#
-# undef BOOST_PP_ITERATION_START_1_DIGIT_1
-# undef BOOST_PP_ITERATION_START_1_DIGIT_2
-# undef BOOST_PP_ITERATION_START_1_DIGIT_3
-# undef BOOST_PP_ITERATION_START_1_DIGIT_4
-# undef BOOST_PP_ITERATION_START_1_DIGIT_5
-# undef BOOST_PP_ITERATION_START_1_DIGIT_6
-# undef BOOST_PP_ITERATION_START_1_DIGIT_7
-# undef BOOST_PP_ITERATION_START_1_DIGIT_8
-# undef BOOST_PP_ITERATION_START_1_DIGIT_9
-# undef BOOST_PP_ITERATION_START_1_DIGIT_10
-#
-# if BOOST_PP_SLOT_TEMP_3 == 0
-#    define BOOST_PP_ITERATION_START_1_DIGIT_3 0
-# elif BOOST_PP_SLOT_TEMP_3 == 1
-#    define BOOST_PP_ITERATION_START_1_DIGIT_3 1
-# elif BOOST_PP_SLOT_TEMP_3 == 2
-#    define BOOST_PP_ITERATION_START_1_DIGIT_3 2
-# elif BOOST_PP_SLOT_TEMP_3 == 3
-#    define BOOST_PP_ITERATION_START_1_DIGIT_3 3
-# elif BOOST_PP_SLOT_TEMP_3 == 4
-#    define BOOST_PP_ITERATION_START_1_DIGIT_3 4
-# elif BOOST_PP_SLOT_TEMP_3 == 5
-#    define BOOST_PP_ITERATION_START_1_DIGIT_3 5
-# elif BOOST_PP_SLOT_TEMP_3 == 6
-#    define BOOST_PP_ITERATION_START_1_DIGIT_3 6
-# elif BOOST_PP_SLOT_TEMP_3 == 7
-#    define BOOST_PP_ITERATION_START_1_DIGIT_3 7
-# elif BOOST_PP_SLOT_TEMP_3 == 8
-#    define BOOST_PP_ITERATION_START_1_DIGIT_3 8
-# elif BOOST_PP_SLOT_TEMP_3 == 9
-#    define BOOST_PP_ITERATION_START_1_DIGIT_3 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_2 == 0
-#    define BOOST_PP_ITERATION_START_1_DIGIT_2 0
-# elif BOOST_PP_SLOT_TEMP_2 == 1
-#    define BOOST_PP_ITERATION_START_1_DIGIT_2 1
-# elif BOOST_PP_SLOT_TEMP_2 == 2
-#    define BOOST_PP_ITERATION_START_1_DIGIT_2 2
-# elif BOOST_PP_SLOT_TEMP_2 == 3
-#    define BOOST_PP_ITERATION_START_1_DIGIT_2 3
-# elif BOOST_PP_SLOT_TEMP_2 == 4
-#    define BOOST_PP_ITERATION_START_1_DIGIT_2 4
-# elif BOOST_PP_SLOT_TEMP_2 == 5
-#    define BOOST_PP_ITERATION_START_1_DIGIT_2 5
-# elif BOOST_PP_SLOT_TEMP_2 == 6
-#    define BOOST_PP_ITERATION_START_1_DIGIT_2 6
-# elif BOOST_PP_SLOT_TEMP_2 == 7
-#    define BOOST_PP_ITERATION_START_1_DIGIT_2 7
-# elif BOOST_PP_SLOT_TEMP_2 == 8
-#    define BOOST_PP_ITERATION_START_1_DIGIT_2 8
-# elif BOOST_PP_SLOT_TEMP_2 == 9
-#    define BOOST_PP_ITERATION_START_1_DIGIT_2 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_1 == 0
-#    define BOOST_PP_ITERATION_START_1_DIGIT_1 0
-# elif BOOST_PP_SLOT_TEMP_1 == 1
-#    define BOOST_PP_ITERATION_START_1_DIGIT_1 1
-# elif BOOST_PP_SLOT_TEMP_1 == 2
-#    define BOOST_PP_ITERATION_START_1_DIGIT_1 2
-# elif BOOST_PP_SLOT_TEMP_1 == 3
-#    define BOOST_PP_ITERATION_START_1_DIGIT_1 3
-# elif BOOST_PP_SLOT_TEMP_1 == 4
-#    define BOOST_PP_ITERATION_START_1_DIGIT_1 4
-# elif BOOST_PP_SLOT_TEMP_1 == 5
-#    define BOOST_PP_ITERATION_START_1_DIGIT_1 5
-# elif BOOST_PP_SLOT_TEMP_1 == 6
-#    define BOOST_PP_ITERATION_START_1_DIGIT_1 6
-# elif BOOST_PP_SLOT_TEMP_1 == 7
-#    define BOOST_PP_ITERATION_START_1_DIGIT_1 7
-# elif BOOST_PP_SLOT_TEMP_1 == 8
-#    define BOOST_PP_ITERATION_START_1_DIGIT_1 8
-# elif BOOST_PP_SLOT_TEMP_1 == 9
-#    define BOOST_PP_ITERATION_START_1_DIGIT_1 9
-# endif
-#
-# if BOOST_PP_ITERATION_START_1_DIGIT_3
-#    define BOOST_PP_ITERATION_START_1 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_START_1_DIGIT_3, BOOST_PP_ITERATION_START_1_DIGIT_2, BOOST_PP_ITERATION_START_1_DIGIT_1)
-# elif BOOST_PP_ITERATION_START_1_DIGIT_2
-#    define BOOST_PP_ITERATION_START_1 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_START_1_DIGIT_2, BOOST_PP_ITERATION_START_1_DIGIT_1)
-# else
-#    define BOOST_PP_ITERATION_START_1 BOOST_PP_ITERATION_START_1_DIGIT_1
-# endif
diff --git a/boost/preprocessor/iteration/detail/bounds/lower2.hpp b/boost/preprocessor/iteration/detail/bounds/lower2.hpp
deleted file mode 100644
index ece21fc..0000000
--- a/boost/preprocessor/iteration/detail/bounds/lower2.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# include <boost/preprocessor/slot/detail/shared.hpp>
-#
-# undef BOOST_PP_ITERATION_START_2
-#
-# undef BOOST_PP_ITERATION_START_2_DIGIT_1
-# undef BOOST_PP_ITERATION_START_2_DIGIT_2
-# undef BOOST_PP_ITERATION_START_2_DIGIT_3
-# undef BOOST_PP_ITERATION_START_2_DIGIT_4
-# undef BOOST_PP_ITERATION_START_2_DIGIT_5
-# undef BOOST_PP_ITERATION_START_2_DIGIT_6
-# undef BOOST_PP_ITERATION_START_2_DIGIT_7
-# undef BOOST_PP_ITERATION_START_2_DIGIT_8
-# undef BOOST_PP_ITERATION_START_2_DIGIT_9
-# undef BOOST_PP_ITERATION_START_2_DIGIT_10
-#
-# if BOOST_PP_SLOT_TEMP_3 == 0
-#    define BOOST_PP_ITERATION_START_2_DIGIT_3 0
-# elif BOOST_PP_SLOT_TEMP_3 == 1
-#    define BOOST_PP_ITERATION_START_2_DIGIT_3 1
-# elif BOOST_PP_SLOT_TEMP_3 == 2
-#    define BOOST_PP_ITERATION_START_2_DIGIT_3 2
-# elif BOOST_PP_SLOT_TEMP_3 == 3
-#    define BOOST_PP_ITERATION_START_2_DIGIT_3 3
-# elif BOOST_PP_SLOT_TEMP_3 == 4
-#    define BOOST_PP_ITERATION_START_2_DIGIT_3 4
-# elif BOOST_PP_SLOT_TEMP_3 == 5
-#    define BOOST_PP_ITERATION_START_2_DIGIT_3 5
-# elif BOOST_PP_SLOT_TEMP_3 == 6
-#    define BOOST_PP_ITERATION_START_2_DIGIT_3 6
-# elif BOOST_PP_SLOT_TEMP_3 == 7
-#    define BOOST_PP_ITERATION_START_2_DIGIT_3 7
-# elif BOOST_PP_SLOT_TEMP_3 == 8
-#    define BOOST_PP_ITERATION_START_2_DIGIT_3 8
-# elif BOOST_PP_SLOT_TEMP_3 == 9
-#    define BOOST_PP_ITERATION_START_2_DIGIT_3 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_2 == 0
-#    define BOOST_PP_ITERATION_START_2_DIGIT_2 0
-# elif BOOST_PP_SLOT_TEMP_2 == 1
-#    define BOOST_PP_ITERATION_START_2_DIGIT_2 1
-# elif BOOST_PP_SLOT_TEMP_2 == 2
-#    define BOOST_PP_ITERATION_START_2_DIGIT_2 2
-# elif BOOST_PP_SLOT_TEMP_2 == 3
-#    define BOOST_PP_ITERATION_START_2_DIGIT_2 3
-# elif BOOST_PP_SLOT_TEMP_2 == 4
-#    define BOOST_PP_ITERATION_START_2_DIGIT_2 4
-# elif BOOST_PP_SLOT_TEMP_2 == 5
-#    define BOOST_PP_ITERATION_START_2_DIGIT_2 5
-# elif BOOST_PP_SLOT_TEMP_2 == 6
-#    define BOOST_PP_ITERATION_START_2_DIGIT_2 6
-# elif BOOST_PP_SLOT_TEMP_2 == 7
-#    define BOOST_PP_ITERATION_START_2_DIGIT_2 7
-# elif BOOST_PP_SLOT_TEMP_2 == 8
-#    define BOOST_PP_ITERATION_START_2_DIGIT_2 8
-# elif BOOST_PP_SLOT_TEMP_2 == 9
-#    define BOOST_PP_ITERATION_START_2_DIGIT_2 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_1 == 0
-#    define BOOST_PP_ITERATION_START_2_DIGIT_1 0
-# elif BOOST_PP_SLOT_TEMP_1 == 1
-#    define BOOST_PP_ITERATION_START_2_DIGIT_1 1
-# elif BOOST_PP_SLOT_TEMP_1 == 2
-#    define BOOST_PP_ITERATION_START_2_DIGIT_1 2
-# elif BOOST_PP_SLOT_TEMP_1 == 3
-#    define BOOST_PP_ITERATION_START_2_DIGIT_1 3
-# elif BOOST_PP_SLOT_TEMP_1 == 4
-#    define BOOST_PP_ITERATION_START_2_DIGIT_1 4
-# elif BOOST_PP_SLOT_TEMP_1 == 5
-#    define BOOST_PP_ITERATION_START_2_DIGIT_1 5
-# elif BOOST_PP_SLOT_TEMP_1 == 6
-#    define BOOST_PP_ITERATION_START_2_DIGIT_1 6
-# elif BOOST_PP_SLOT_TEMP_1 == 7
-#    define BOOST_PP_ITERATION_START_2_DIGIT_1 7
-# elif BOOST_PP_SLOT_TEMP_1 == 8
-#    define BOOST_PP_ITERATION_START_2_DIGIT_1 8
-# elif BOOST_PP_SLOT_TEMP_1 == 9
-#    define BOOST_PP_ITERATION_START_2_DIGIT_1 9
-# endif
-#
-# if BOOST_PP_ITERATION_START_2_DIGIT_3
-#    define BOOST_PP_ITERATION_START_2 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_START_2_DIGIT_3, BOOST_PP_ITERATION_START_2_DIGIT_2, BOOST_PP_ITERATION_START_2_DIGIT_1)
-# elif BOOST_PP_ITERATION_START_2_DIGIT_2
-#    define BOOST_PP_ITERATION_START_2 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_START_2_DIGIT_2, BOOST_PP_ITERATION_START_2_DIGIT_1)
-# else
-#    define BOOST_PP_ITERATION_START_2 BOOST_PP_ITERATION_START_2_DIGIT_1
-# endif
diff --git a/boost/preprocessor/iteration/detail/bounds/lower3.hpp b/boost/preprocessor/iteration/detail/bounds/lower3.hpp
deleted file mode 100644
index 8429eac..0000000
--- a/boost/preprocessor/iteration/detail/bounds/lower3.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# include <boost/preprocessor/slot/detail/shared.hpp>
-#
-# undef BOOST_PP_ITERATION_START_3
-#
-# undef BOOST_PP_ITERATION_START_3_DIGIT_1
-# undef BOOST_PP_ITERATION_START_3_DIGIT_2
-# undef BOOST_PP_ITERATION_START_3_DIGIT_3
-# undef BOOST_PP_ITERATION_START_3_DIGIT_4
-# undef BOOST_PP_ITERATION_START_3_DIGIT_5
-# undef BOOST_PP_ITERATION_START_3_DIGIT_6
-# undef BOOST_PP_ITERATION_START_3_DIGIT_7
-# undef BOOST_PP_ITERATION_START_3_DIGIT_8
-# undef BOOST_PP_ITERATION_START_3_DIGIT_9
-# undef BOOST_PP_ITERATION_START_3_DIGIT_10
-#
-# if BOOST_PP_SLOT_TEMP_3 == 0
-#    define BOOST_PP_ITERATION_START_3_DIGIT_3 0
-# elif BOOST_PP_SLOT_TEMP_3 == 1
-#    define BOOST_PP_ITERATION_START_3_DIGIT_3 1
-# elif BOOST_PP_SLOT_TEMP_3 == 2
-#    define BOOST_PP_ITERATION_START_3_DIGIT_3 2
-# elif BOOST_PP_SLOT_TEMP_3 == 3
-#    define BOOST_PP_ITERATION_START_3_DIGIT_3 3
-# elif BOOST_PP_SLOT_TEMP_3 == 4
-#    define BOOST_PP_ITERATION_START_3_DIGIT_3 4
-# elif BOOST_PP_SLOT_TEMP_3 == 5
-#    define BOOST_PP_ITERATION_START_3_DIGIT_3 5
-# elif BOOST_PP_SLOT_TEMP_3 == 6
-#    define BOOST_PP_ITERATION_START_3_DIGIT_3 6
-# elif BOOST_PP_SLOT_TEMP_3 == 7
-#    define BOOST_PP_ITERATION_START_3_DIGIT_3 7
-# elif BOOST_PP_SLOT_TEMP_3 == 8
-#    define BOOST_PP_ITERATION_START_3_DIGIT_3 8
-# elif BOOST_PP_SLOT_TEMP_3 == 9
-#    define BOOST_PP_ITERATION_START_3_DIGIT_3 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_2 == 0
-#    define BOOST_PP_ITERATION_START_3_DIGIT_2 0
-# elif BOOST_PP_SLOT_TEMP_2 == 1
-#    define BOOST_PP_ITERATION_START_3_DIGIT_2 1
-# elif BOOST_PP_SLOT_TEMP_2 == 2
-#    define BOOST_PP_ITERATION_START_3_DIGIT_2 2
-# elif BOOST_PP_SLOT_TEMP_2 == 3
-#    define BOOST_PP_ITERATION_START_3_DIGIT_2 3
-# elif BOOST_PP_SLOT_TEMP_2 == 4
-#    define BOOST_PP_ITERATION_START_3_DIGIT_2 4
-# elif BOOST_PP_SLOT_TEMP_2 == 5
-#    define BOOST_PP_ITERATION_START_3_DIGIT_2 5
-# elif BOOST_PP_SLOT_TEMP_2 == 6
-#    define BOOST_PP_ITERATION_START_3_DIGIT_2 6
-# elif BOOST_PP_SLOT_TEMP_2 == 7
-#    define BOOST_PP_ITERATION_START_3_DIGIT_2 7
-# elif BOOST_PP_SLOT_TEMP_2 == 8
-#    define BOOST_PP_ITERATION_START_3_DIGIT_2 8
-# elif BOOST_PP_SLOT_TEMP_2 == 9
-#    define BOOST_PP_ITERATION_START_3_DIGIT_2 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_1 == 0
-#    define BOOST_PP_ITERATION_START_3_DIGIT_1 0
-# elif BOOST_PP_SLOT_TEMP_1 == 1
-#    define BOOST_PP_ITERATION_START_3_DIGIT_1 1
-# elif BOOST_PP_SLOT_TEMP_1 == 2
-#    define BOOST_PP_ITERATION_START_3_DIGIT_1 2
-# elif BOOST_PP_SLOT_TEMP_1 == 3
-#    define BOOST_PP_ITERATION_START_3_DIGIT_1 3
-# elif BOOST_PP_SLOT_TEMP_1 == 4
-#    define BOOST_PP_ITERATION_START_3_DIGIT_1 4
-# elif BOOST_PP_SLOT_TEMP_1 == 5
-#    define BOOST_PP_ITERATION_START_3_DIGIT_1 5
-# elif BOOST_PP_SLOT_TEMP_1 == 6
-#    define BOOST_PP_ITERATION_START_3_DIGIT_1 6
-# elif BOOST_PP_SLOT_TEMP_1 == 7
-#    define BOOST_PP_ITERATION_START_3_DIGIT_1 7
-# elif BOOST_PP_SLOT_TEMP_1 == 8
-#    define BOOST_PP_ITERATION_START_3_DIGIT_1 8
-# elif BOOST_PP_SLOT_TEMP_1 == 9
-#    define BOOST_PP_ITERATION_START_3_DIGIT_1 9
-# endif
-#
-# if BOOST_PP_ITERATION_START_3_DIGIT_3
-#    define BOOST_PP_ITERATION_START_3 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_START_3_DIGIT_3, BOOST_PP_ITERATION_START_3_DIGIT_2, BOOST_PP_ITERATION_START_3_DIGIT_1)
-# elif BOOST_PP_ITERATION_START_3_DIGIT_2
-#    define BOOST_PP_ITERATION_START_3 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_START_3_DIGIT_2, BOOST_PP_ITERATION_START_3_DIGIT_1)
-# else
-#    define BOOST_PP_ITERATION_START_3 BOOST_PP_ITERATION_START_3_DIGIT_1
-# endif
diff --git a/boost/preprocessor/iteration/detail/bounds/lower4.hpp b/boost/preprocessor/iteration/detail/bounds/lower4.hpp
deleted file mode 100644
index ba0832f..0000000
--- a/boost/preprocessor/iteration/detail/bounds/lower4.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# include <boost/preprocessor/slot/detail/shared.hpp>
-#
-# undef BOOST_PP_ITERATION_START_4
-#
-# undef BOOST_PP_ITERATION_START_4_DIGIT_1
-# undef BOOST_PP_ITERATION_START_4_DIGIT_2
-# undef BOOST_PP_ITERATION_START_4_DIGIT_3
-# undef BOOST_PP_ITERATION_START_4_DIGIT_4
-# undef BOOST_PP_ITERATION_START_4_DIGIT_5
-# undef BOOST_PP_ITERATION_START_4_DIGIT_6
-# undef BOOST_PP_ITERATION_START_4_DIGIT_7
-# undef BOOST_PP_ITERATION_START_4_DIGIT_8
-# undef BOOST_PP_ITERATION_START_4_DIGIT_9
-# undef BOOST_PP_ITERATION_START_4_DIGIT_10
-#
-# if BOOST_PP_SLOT_TEMP_3 == 0
-#    define BOOST_PP_ITERATION_START_4_DIGIT_3 0
-# elif BOOST_PP_SLOT_TEMP_3 == 1
-#    define BOOST_PP_ITERATION_START_4_DIGIT_3 1
-# elif BOOST_PP_SLOT_TEMP_3 == 2
-#    define BOOST_PP_ITERATION_START_4_DIGIT_3 2
-# elif BOOST_PP_SLOT_TEMP_3 == 3
-#    define BOOST_PP_ITERATION_START_4_DIGIT_3 3
-# elif BOOST_PP_SLOT_TEMP_3 == 4
-#    define BOOST_PP_ITERATION_START_4_DIGIT_3 4
-# elif BOOST_PP_SLOT_TEMP_3 == 5
-#    define BOOST_PP_ITERATION_START_4_DIGIT_3 5
-# elif BOOST_PP_SLOT_TEMP_3 == 6
-#    define BOOST_PP_ITERATION_START_4_DIGIT_3 6
-# elif BOOST_PP_SLOT_TEMP_3 == 7
-#    define BOOST_PP_ITERATION_START_4_DIGIT_3 7
-# elif BOOST_PP_SLOT_TEMP_3 == 8
-#    define BOOST_PP_ITERATION_START_4_DIGIT_3 8
-# elif BOOST_PP_SLOT_TEMP_3 == 9
-#    define BOOST_PP_ITERATION_START_4_DIGIT_3 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_2 == 0
-#    define BOOST_PP_ITERATION_START_4_DIGIT_2 0
-# elif BOOST_PP_SLOT_TEMP_2 == 1
-#    define BOOST_PP_ITERATION_START_4_DIGIT_2 1
-# elif BOOST_PP_SLOT_TEMP_2 == 2
-#    define BOOST_PP_ITERATION_START_4_DIGIT_2 2
-# elif BOOST_PP_SLOT_TEMP_2 == 3
-#    define BOOST_PP_ITERATION_START_4_DIGIT_2 3
-# elif BOOST_PP_SLOT_TEMP_2 == 4
-#    define BOOST_PP_ITERATION_START_4_DIGIT_2 4
-# elif BOOST_PP_SLOT_TEMP_2 == 5
-#    define BOOST_PP_ITERATION_START_4_DIGIT_2 5
-# elif BOOST_PP_SLOT_TEMP_2 == 6
-#    define BOOST_PP_ITERATION_START_4_DIGIT_2 6
-# elif BOOST_PP_SLOT_TEMP_2 == 7
-#    define BOOST_PP_ITERATION_START_4_DIGIT_2 7
-# elif BOOST_PP_SLOT_TEMP_2 == 8
-#    define BOOST_PP_ITERATION_START_4_DIGIT_2 8
-# elif BOOST_PP_SLOT_TEMP_2 == 9
-#    define BOOST_PP_ITERATION_START_4_DIGIT_2 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_1 == 0
-#    define BOOST_PP_ITERATION_START_4_DIGIT_1 0
-# elif BOOST_PP_SLOT_TEMP_1 == 1
-#    define BOOST_PP_ITERATION_START_4_DIGIT_1 1
-# elif BOOST_PP_SLOT_TEMP_1 == 2
-#    define BOOST_PP_ITERATION_START_4_DIGIT_1 2
-# elif BOOST_PP_SLOT_TEMP_1 == 3
-#    define BOOST_PP_ITERATION_START_4_DIGIT_1 3
-# elif BOOST_PP_SLOT_TEMP_1 == 4
-#    define BOOST_PP_ITERATION_START_4_DIGIT_1 4
-# elif BOOST_PP_SLOT_TEMP_1 == 5
-#    define BOOST_PP_ITERATION_START_4_DIGIT_1 5
-# elif BOOST_PP_SLOT_TEMP_1 == 6
-#    define BOOST_PP_ITERATION_START_4_DIGIT_1 6
-# elif BOOST_PP_SLOT_TEMP_1 == 7
-#    define BOOST_PP_ITERATION_START_4_DIGIT_1 7
-# elif BOOST_PP_SLOT_TEMP_1 == 8
-#    define BOOST_PP_ITERATION_START_4_DIGIT_1 8
-# elif BOOST_PP_SLOT_TEMP_1 == 9
-#    define BOOST_PP_ITERATION_START_4_DIGIT_1 9
-# endif
-#
-# if BOOST_PP_ITERATION_START_4_DIGIT_3
-#    define BOOST_PP_ITERATION_START_4 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_START_4_DIGIT_3, BOOST_PP_ITERATION_START_4_DIGIT_2, BOOST_PP_ITERATION_START_4_DIGIT_1)
-# elif BOOST_PP_ITERATION_START_4_DIGIT_2
-#    define BOOST_PP_ITERATION_START_4 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_START_4_DIGIT_2, BOOST_PP_ITERATION_START_4_DIGIT_1)
-# else
-#    define BOOST_PP_ITERATION_START_4 BOOST_PP_ITERATION_START_4_DIGIT_1
-# endif
diff --git a/boost/preprocessor/iteration/detail/bounds/lower5.hpp b/boost/preprocessor/iteration/detail/bounds/lower5.hpp
deleted file mode 100644
index f4888c7..0000000
--- a/boost/preprocessor/iteration/detail/bounds/lower5.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# include <boost/preprocessor/slot/detail/shared.hpp>
-#
-# undef BOOST_PP_ITERATION_START_5
-#
-# undef BOOST_PP_ITERATION_START_5_DIGIT_1
-# undef BOOST_PP_ITERATION_START_5_DIGIT_2
-# undef BOOST_PP_ITERATION_START_5_DIGIT_3
-# undef BOOST_PP_ITERATION_START_5_DIGIT_4
-# undef BOOST_PP_ITERATION_START_5_DIGIT_5
-# undef BOOST_PP_ITERATION_START_5_DIGIT_6
-# undef BOOST_PP_ITERATION_START_5_DIGIT_7
-# undef BOOST_PP_ITERATION_START_5_DIGIT_8
-# undef BOOST_PP_ITERATION_START_5_DIGIT_9
-# undef BOOST_PP_ITERATION_START_5_DIGIT_10
-#
-# if BOOST_PP_SLOT_TEMP_3 == 0
-#    define BOOST_PP_ITERATION_START_5_DIGIT_3 0
-# elif BOOST_PP_SLOT_TEMP_3 == 1
-#    define BOOST_PP_ITERATION_START_5_DIGIT_3 1
-# elif BOOST_PP_SLOT_TEMP_3 == 2
-#    define BOOST_PP_ITERATION_START_5_DIGIT_3 2
-# elif BOOST_PP_SLOT_TEMP_3 == 3
-#    define BOOST_PP_ITERATION_START_5_DIGIT_3 3
-# elif BOOST_PP_SLOT_TEMP_3 == 4
-#    define BOOST_PP_ITERATION_START_5_DIGIT_3 4
-# elif BOOST_PP_SLOT_TEMP_3 == 5
-#    define BOOST_PP_ITERATION_START_5_DIGIT_3 5
-# elif BOOST_PP_SLOT_TEMP_3 == 6
-#    define BOOST_PP_ITERATION_START_5_DIGIT_3 6
-# elif BOOST_PP_SLOT_TEMP_3 == 7
-#    define BOOST_PP_ITERATION_START_5_DIGIT_3 7
-# elif BOOST_PP_SLOT_TEMP_3 == 8
-#    define BOOST_PP_ITERATION_START_5_DIGIT_3 8
-# elif BOOST_PP_SLOT_TEMP_3 == 9
-#    define BOOST_PP_ITERATION_START_5_DIGIT_3 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_2 == 0
-#    define BOOST_PP_ITERATION_START_5_DIGIT_2 0
-# elif BOOST_PP_SLOT_TEMP_2 == 1
-#    define BOOST_PP_ITERATION_START_5_DIGIT_2 1
-# elif BOOST_PP_SLOT_TEMP_2 == 2
-#    define BOOST_PP_ITERATION_START_5_DIGIT_2 2
-# elif BOOST_PP_SLOT_TEMP_2 == 3
-#    define BOOST_PP_ITERATION_START_5_DIGIT_2 3
-# elif BOOST_PP_SLOT_TEMP_2 == 4
-#    define BOOST_PP_ITERATION_START_5_DIGIT_2 4
-# elif BOOST_PP_SLOT_TEMP_2 == 5
-#    define BOOST_PP_ITERATION_START_5_DIGIT_2 5
-# elif BOOST_PP_SLOT_TEMP_2 == 6
-#    define BOOST_PP_ITERATION_START_5_DIGIT_2 6
-# elif BOOST_PP_SLOT_TEMP_2 == 7
-#    define BOOST_PP_ITERATION_START_5_DIGIT_2 7
-# elif BOOST_PP_SLOT_TEMP_2 == 8
-#    define BOOST_PP_ITERATION_START_5_DIGIT_2 8
-# elif BOOST_PP_SLOT_TEMP_2 == 9
-#    define BOOST_PP_ITERATION_START_5_DIGIT_2 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_1 == 0
-#    define BOOST_PP_ITERATION_START_5_DIGIT_1 0
-# elif BOOST_PP_SLOT_TEMP_1 == 1
-#    define BOOST_PP_ITERATION_START_5_DIGIT_1 1
-# elif BOOST_PP_SLOT_TEMP_1 == 2
-#    define BOOST_PP_ITERATION_START_5_DIGIT_1 2
-# elif BOOST_PP_SLOT_TEMP_1 == 3
-#    define BOOST_PP_ITERATION_START_5_DIGIT_1 3
-# elif BOOST_PP_SLOT_TEMP_1 == 4
-#    define BOOST_PP_ITERATION_START_5_DIGIT_1 4
-# elif BOOST_PP_SLOT_TEMP_1 == 5
-#    define BOOST_PP_ITERATION_START_5_DIGIT_1 5
-# elif BOOST_PP_SLOT_TEMP_1 == 6
-#    define BOOST_PP_ITERATION_START_5_DIGIT_1 6
-# elif BOOST_PP_SLOT_TEMP_1 == 7
-#    define BOOST_PP_ITERATION_START_5_DIGIT_1 7
-# elif BOOST_PP_SLOT_TEMP_1 == 8
-#    define BOOST_PP_ITERATION_START_5_DIGIT_1 8
-# elif BOOST_PP_SLOT_TEMP_1 == 9
-#    define BOOST_PP_ITERATION_START_5_DIGIT_1 9
-# endif
-#
-# if BOOST_PP_ITERATION_START_5_DIGIT_3
-#    define BOOST_PP_ITERATION_START_5 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_START_5_DIGIT_3, BOOST_PP_ITERATION_START_5_DIGIT_2, BOOST_PP_ITERATION_START_5_DIGIT_1)
-# elif BOOST_PP_ITERATION_START_5_DIGIT_2
-#    define BOOST_PP_ITERATION_START_5 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_START_5_DIGIT_2, BOOST_PP_ITERATION_START_5_DIGIT_1)
-# else
-#    define BOOST_PP_ITERATION_START_5 BOOST_PP_ITERATION_START_5_DIGIT_1
-# endif
diff --git a/boost/preprocessor/iteration/detail/bounds/upper1.hpp b/boost/preprocessor/iteration/detail/bounds/upper1.hpp
deleted file mode 100644
index 50d0fcf..0000000
--- a/boost/preprocessor/iteration/detail/bounds/upper1.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# include <boost/preprocessor/slot/detail/shared.hpp>
-#
-# undef BOOST_PP_ITERATION_FINISH_1
-#
-# undef BOOST_PP_ITERATION_FINISH_1_DIGIT_1
-# undef BOOST_PP_ITERATION_FINISH_1_DIGIT_2
-# undef BOOST_PP_ITERATION_FINISH_1_DIGIT_3
-# undef BOOST_PP_ITERATION_FINISH_1_DIGIT_4
-# undef BOOST_PP_ITERATION_FINISH_1_DIGIT_5
-# undef BOOST_PP_ITERATION_FINISH_1_DIGIT_6
-# undef BOOST_PP_ITERATION_FINISH_1_DIGIT_7
-# undef BOOST_PP_ITERATION_FINISH_1_DIGIT_8
-# undef BOOST_PP_ITERATION_FINISH_1_DIGIT_9
-# undef BOOST_PP_ITERATION_FINISH_1_DIGIT_10
-#
-# if BOOST_PP_SLOT_TEMP_3 == 0
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_3 0
-# elif BOOST_PP_SLOT_TEMP_3 == 1
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_3 1
-# elif BOOST_PP_SLOT_TEMP_3 == 2
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_3 2
-# elif BOOST_PP_SLOT_TEMP_3 == 3
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_3 3
-# elif BOOST_PP_SLOT_TEMP_3 == 4
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_3 4
-# elif BOOST_PP_SLOT_TEMP_3 == 5
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_3 5
-# elif BOOST_PP_SLOT_TEMP_3 == 6
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_3 6
-# elif BOOST_PP_SLOT_TEMP_3 == 7
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_3 7
-# elif BOOST_PP_SLOT_TEMP_3 == 8
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_3 8
-# elif BOOST_PP_SLOT_TEMP_3 == 9
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_3 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_2 == 0
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_2 0
-# elif BOOST_PP_SLOT_TEMP_2 == 1
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_2 1
-# elif BOOST_PP_SLOT_TEMP_2 == 2
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_2 2
-# elif BOOST_PP_SLOT_TEMP_2 == 3
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_2 3
-# elif BOOST_PP_SLOT_TEMP_2 == 4
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_2 4
-# elif BOOST_PP_SLOT_TEMP_2 == 5
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_2 5
-# elif BOOST_PP_SLOT_TEMP_2 == 6
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_2 6
-# elif BOOST_PP_SLOT_TEMP_2 == 7
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_2 7
-# elif BOOST_PP_SLOT_TEMP_2 == 8
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_2 8
-# elif BOOST_PP_SLOT_TEMP_2 == 9
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_2 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_1 == 0
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_1 0
-# elif BOOST_PP_SLOT_TEMP_1 == 1
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_1 1
-# elif BOOST_PP_SLOT_TEMP_1 == 2
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_1 2
-# elif BOOST_PP_SLOT_TEMP_1 == 3
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_1 3
-# elif BOOST_PP_SLOT_TEMP_1 == 4
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_1 4
-# elif BOOST_PP_SLOT_TEMP_1 == 5
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_1 5
-# elif BOOST_PP_SLOT_TEMP_1 == 6
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_1 6
-# elif BOOST_PP_SLOT_TEMP_1 == 7
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_1 7
-# elif BOOST_PP_SLOT_TEMP_1 == 8
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_1 8
-# elif BOOST_PP_SLOT_TEMP_1 == 9
-#    define BOOST_PP_ITERATION_FINISH_1_DIGIT_1 9
-# endif
-#
-# if BOOST_PP_ITERATION_FINISH_1_DIGIT_3
-#    define BOOST_PP_ITERATION_FINISH_1 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_FINISH_1_DIGIT_3, BOOST_PP_ITERATION_FINISH_1_DIGIT_2, BOOST_PP_ITERATION_FINISH_1_DIGIT_1)
-# elif BOOST_PP_ITERATION_FINISH_1_DIGIT_2
-#    define BOOST_PP_ITERATION_FINISH_1 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_FINISH_1_DIGIT_2, BOOST_PP_ITERATION_FINISH_1_DIGIT_1)
-# else
-#    define BOOST_PP_ITERATION_FINISH_1 BOOST_PP_ITERATION_FINISH_1_DIGIT_1
-# endif
diff --git a/boost/preprocessor/iteration/detail/bounds/upper2.hpp b/boost/preprocessor/iteration/detail/bounds/upper2.hpp
deleted file mode 100644
index faef6f4..0000000
--- a/boost/preprocessor/iteration/detail/bounds/upper2.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# include <boost/preprocessor/slot/detail/shared.hpp>
-#
-# undef BOOST_PP_ITERATION_FINISH_2
-#
-# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_1
-# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_2
-# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_3
-# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_4
-# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_5
-# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_6
-# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_7
-# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_8
-# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_9
-# undef BOOST_PP_ITERATION_FINISH_2_DIGIT_10
-#
-# if BOOST_PP_SLOT_TEMP_3 == 0
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 0
-# elif BOOST_PP_SLOT_TEMP_3 == 1
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 1
-# elif BOOST_PP_SLOT_TEMP_3 == 2
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 2
-# elif BOOST_PP_SLOT_TEMP_3 == 3
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 3
-# elif BOOST_PP_SLOT_TEMP_3 == 4
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 4
-# elif BOOST_PP_SLOT_TEMP_3 == 5
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 5
-# elif BOOST_PP_SLOT_TEMP_3 == 6
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 6
-# elif BOOST_PP_SLOT_TEMP_3 == 7
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 7
-# elif BOOST_PP_SLOT_TEMP_3 == 8
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 8
-# elif BOOST_PP_SLOT_TEMP_3 == 9
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_3 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_2 == 0
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 0
-# elif BOOST_PP_SLOT_TEMP_2 == 1
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 1
-# elif BOOST_PP_SLOT_TEMP_2 == 2
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 2
-# elif BOOST_PP_SLOT_TEMP_2 == 3
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 3
-# elif BOOST_PP_SLOT_TEMP_2 == 4
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 4
-# elif BOOST_PP_SLOT_TEMP_2 == 5
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 5
-# elif BOOST_PP_SLOT_TEMP_2 == 6
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 6
-# elif BOOST_PP_SLOT_TEMP_2 == 7
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 7
-# elif BOOST_PP_SLOT_TEMP_2 == 8
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 8
-# elif BOOST_PP_SLOT_TEMP_2 == 9
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_2 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_1 == 0
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 0
-# elif BOOST_PP_SLOT_TEMP_1 == 1
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 1
-# elif BOOST_PP_SLOT_TEMP_1 == 2
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 2
-# elif BOOST_PP_SLOT_TEMP_1 == 3
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 3
-# elif BOOST_PP_SLOT_TEMP_1 == 4
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 4
-# elif BOOST_PP_SLOT_TEMP_1 == 5
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 5
-# elif BOOST_PP_SLOT_TEMP_1 == 6
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 6
-# elif BOOST_PP_SLOT_TEMP_1 == 7
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 7
-# elif BOOST_PP_SLOT_TEMP_1 == 8
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 8
-# elif BOOST_PP_SLOT_TEMP_1 == 9
-#    define BOOST_PP_ITERATION_FINISH_2_DIGIT_1 9
-# endif
-#
-# if BOOST_PP_ITERATION_FINISH_2_DIGIT_3
-#    define BOOST_PP_ITERATION_FINISH_2 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_FINISH_2_DIGIT_3, BOOST_PP_ITERATION_FINISH_2_DIGIT_2, BOOST_PP_ITERATION_FINISH_2_DIGIT_1)
-# elif BOOST_PP_ITERATION_FINISH_2_DIGIT_2
-#    define BOOST_PP_ITERATION_FINISH_2 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_FINISH_2_DIGIT_2, BOOST_PP_ITERATION_FINISH_2_DIGIT_1)
-# else
-#    define BOOST_PP_ITERATION_FINISH_2 BOOST_PP_ITERATION_FINISH_2_DIGIT_1
-# endif
diff --git a/boost/preprocessor/iteration/detail/bounds/upper3.hpp b/boost/preprocessor/iteration/detail/bounds/upper3.hpp
deleted file mode 100644
index 38d9ade..0000000
--- a/boost/preprocessor/iteration/detail/bounds/upper3.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# include <boost/preprocessor/slot/detail/shared.hpp>
-#
-# undef BOOST_PP_ITERATION_FINISH_3
-#
-# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_1
-# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_2
-# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_3
-# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_4
-# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_5
-# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_6
-# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_7
-# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_8
-# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_9
-# undef BOOST_PP_ITERATION_FINISH_3_DIGIT_10
-#
-# if BOOST_PP_SLOT_TEMP_3 == 0
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 0
-# elif BOOST_PP_SLOT_TEMP_3 == 1
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 1
-# elif BOOST_PP_SLOT_TEMP_3 == 2
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 2
-# elif BOOST_PP_SLOT_TEMP_3 == 3
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 3
-# elif BOOST_PP_SLOT_TEMP_3 == 4
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 4
-# elif BOOST_PP_SLOT_TEMP_3 == 5
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 5
-# elif BOOST_PP_SLOT_TEMP_3 == 6
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 6
-# elif BOOST_PP_SLOT_TEMP_3 == 7
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 7
-# elif BOOST_PP_SLOT_TEMP_3 == 8
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 8
-# elif BOOST_PP_SLOT_TEMP_3 == 9
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_3 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_2 == 0
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 0
-# elif BOOST_PP_SLOT_TEMP_2 == 1
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 1
-# elif BOOST_PP_SLOT_TEMP_2 == 2
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 2
-# elif BOOST_PP_SLOT_TEMP_2 == 3
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 3
-# elif BOOST_PP_SLOT_TEMP_2 == 4
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 4
-# elif BOOST_PP_SLOT_TEMP_2 == 5
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 5
-# elif BOOST_PP_SLOT_TEMP_2 == 6
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 6
-# elif BOOST_PP_SLOT_TEMP_2 == 7
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 7
-# elif BOOST_PP_SLOT_TEMP_2 == 8
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 8
-# elif BOOST_PP_SLOT_TEMP_2 == 9
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_2 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_1 == 0
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 0
-# elif BOOST_PP_SLOT_TEMP_1 == 1
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 1
-# elif BOOST_PP_SLOT_TEMP_1 == 2
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 2
-# elif BOOST_PP_SLOT_TEMP_1 == 3
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 3
-# elif BOOST_PP_SLOT_TEMP_1 == 4
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 4
-# elif BOOST_PP_SLOT_TEMP_1 == 5
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 5
-# elif BOOST_PP_SLOT_TEMP_1 == 6
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 6
-# elif BOOST_PP_SLOT_TEMP_1 == 7
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 7
-# elif BOOST_PP_SLOT_TEMP_1 == 8
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 8
-# elif BOOST_PP_SLOT_TEMP_1 == 9
-#    define BOOST_PP_ITERATION_FINISH_3_DIGIT_1 9
-# endif
-#
-# if BOOST_PP_ITERATION_FINISH_3_DIGIT_3
-#    define BOOST_PP_ITERATION_FINISH_3 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_FINISH_3_DIGIT_3, BOOST_PP_ITERATION_FINISH_3_DIGIT_2, BOOST_PP_ITERATION_FINISH_3_DIGIT_1)
-# elif BOOST_PP_ITERATION_FINISH_3_DIGIT_2
-#    define BOOST_PP_ITERATION_FINISH_3 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_FINISH_3_DIGIT_2, BOOST_PP_ITERATION_FINISH_3_DIGIT_1)
-# else
-#    define BOOST_PP_ITERATION_FINISH_3 BOOST_PP_ITERATION_FINISH_3_DIGIT_1
-# endif
diff --git a/boost/preprocessor/iteration/detail/bounds/upper4.hpp b/boost/preprocessor/iteration/detail/bounds/upper4.hpp
deleted file mode 100644
index 7f771c2..0000000
--- a/boost/preprocessor/iteration/detail/bounds/upper4.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# include <boost/preprocessor/slot/detail/shared.hpp>
-#
-# undef BOOST_PP_ITERATION_FINISH_4
-#
-# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_1
-# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_2
-# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_3
-# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_4
-# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_5
-# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_6
-# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_7
-# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_8
-# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_9
-# undef BOOST_PP_ITERATION_FINISH_4_DIGIT_10
-#
-# if BOOST_PP_SLOT_TEMP_3 == 0
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 0
-# elif BOOST_PP_SLOT_TEMP_3 == 1
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 1
-# elif BOOST_PP_SLOT_TEMP_3 == 2
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 2
-# elif BOOST_PP_SLOT_TEMP_3 == 3
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 3
-# elif BOOST_PP_SLOT_TEMP_3 == 4
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 4
-# elif BOOST_PP_SLOT_TEMP_3 == 5
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 5
-# elif BOOST_PP_SLOT_TEMP_3 == 6
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 6
-# elif BOOST_PP_SLOT_TEMP_3 == 7
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 7
-# elif BOOST_PP_SLOT_TEMP_3 == 8
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 8
-# elif BOOST_PP_SLOT_TEMP_3 == 9
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_3 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_2 == 0
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 0
-# elif BOOST_PP_SLOT_TEMP_2 == 1
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 1
-# elif BOOST_PP_SLOT_TEMP_2 == 2
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 2
-# elif BOOST_PP_SLOT_TEMP_2 == 3
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 3
-# elif BOOST_PP_SLOT_TEMP_2 == 4
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 4
-# elif BOOST_PP_SLOT_TEMP_2 == 5
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 5
-# elif BOOST_PP_SLOT_TEMP_2 == 6
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 6
-# elif BOOST_PP_SLOT_TEMP_2 == 7
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 7
-# elif BOOST_PP_SLOT_TEMP_2 == 8
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 8
-# elif BOOST_PP_SLOT_TEMP_2 == 9
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_2 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_1 == 0
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 0
-# elif BOOST_PP_SLOT_TEMP_1 == 1
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 1
-# elif BOOST_PP_SLOT_TEMP_1 == 2
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 2
-# elif BOOST_PP_SLOT_TEMP_1 == 3
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 3
-# elif BOOST_PP_SLOT_TEMP_1 == 4
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 4
-# elif BOOST_PP_SLOT_TEMP_1 == 5
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 5
-# elif BOOST_PP_SLOT_TEMP_1 == 6
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 6
-# elif BOOST_PP_SLOT_TEMP_1 == 7
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 7
-# elif BOOST_PP_SLOT_TEMP_1 == 8
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 8
-# elif BOOST_PP_SLOT_TEMP_1 == 9
-#    define BOOST_PP_ITERATION_FINISH_4_DIGIT_1 9
-# endif
-#
-# if BOOST_PP_ITERATION_FINISH_4_DIGIT_3
-#    define BOOST_PP_ITERATION_FINISH_4 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_FINISH_4_DIGIT_3, BOOST_PP_ITERATION_FINISH_4_DIGIT_2, BOOST_PP_ITERATION_FINISH_4_DIGIT_1)
-# elif BOOST_PP_ITERATION_FINISH_4_DIGIT_2
-#    define BOOST_PP_ITERATION_FINISH_4 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_FINISH_4_DIGIT_2, BOOST_PP_ITERATION_FINISH_4_DIGIT_1)
-# else
-#    define BOOST_PP_ITERATION_FINISH_4 BOOST_PP_ITERATION_FINISH_4_DIGIT_1
-# endif
diff --git a/boost/preprocessor/iteration/detail/bounds/upper5.hpp b/boost/preprocessor/iteration/detail/bounds/upper5.hpp
deleted file mode 100644
index 9f27d58..0000000
--- a/boost/preprocessor/iteration/detail/bounds/upper5.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# include <boost/preprocessor/slot/detail/shared.hpp>
-#
-# undef BOOST_PP_ITERATION_FINISH_5
-#
-# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_1
-# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_2
-# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_3
-# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_4
-# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_5
-# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_6
-# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_7
-# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_8
-# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_9
-# undef BOOST_PP_ITERATION_FINISH_5_DIGIT_10
-#
-# if BOOST_PP_SLOT_TEMP_3 == 0
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 0
-# elif BOOST_PP_SLOT_TEMP_3 == 1
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 1
-# elif BOOST_PP_SLOT_TEMP_3 == 2
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 2
-# elif BOOST_PP_SLOT_TEMP_3 == 3
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 3
-# elif BOOST_PP_SLOT_TEMP_3 == 4
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 4
-# elif BOOST_PP_SLOT_TEMP_3 == 5
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 5
-# elif BOOST_PP_SLOT_TEMP_3 == 6
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 6
-# elif BOOST_PP_SLOT_TEMP_3 == 7
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 7
-# elif BOOST_PP_SLOT_TEMP_3 == 8
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 8
-# elif BOOST_PP_SLOT_TEMP_3 == 9
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_3 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_2 == 0
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 0
-# elif BOOST_PP_SLOT_TEMP_2 == 1
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 1
-# elif BOOST_PP_SLOT_TEMP_2 == 2
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 2
-# elif BOOST_PP_SLOT_TEMP_2 == 3
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 3
-# elif BOOST_PP_SLOT_TEMP_2 == 4
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 4
-# elif BOOST_PP_SLOT_TEMP_2 == 5
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 5
-# elif BOOST_PP_SLOT_TEMP_2 == 6
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 6
-# elif BOOST_PP_SLOT_TEMP_2 == 7
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 7
-# elif BOOST_PP_SLOT_TEMP_2 == 8
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 8
-# elif BOOST_PP_SLOT_TEMP_2 == 9
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_2 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_1 == 0
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 0
-# elif BOOST_PP_SLOT_TEMP_1 == 1
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 1
-# elif BOOST_PP_SLOT_TEMP_1 == 2
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 2
-# elif BOOST_PP_SLOT_TEMP_1 == 3
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 3
-# elif BOOST_PP_SLOT_TEMP_1 == 4
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 4
-# elif BOOST_PP_SLOT_TEMP_1 == 5
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 5
-# elif BOOST_PP_SLOT_TEMP_1 == 6
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 6
-# elif BOOST_PP_SLOT_TEMP_1 == 7
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 7
-# elif BOOST_PP_SLOT_TEMP_1 == 8
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 8
-# elif BOOST_PP_SLOT_TEMP_1 == 9
-#    define BOOST_PP_ITERATION_FINISH_5_DIGIT_1 9
-# endif
-#
-# if BOOST_PP_ITERATION_FINISH_5_DIGIT_3
-#    define BOOST_PP_ITERATION_FINISH_5 BOOST_PP_SLOT_CC_3(BOOST_PP_ITERATION_FINISH_5_DIGIT_3, BOOST_PP_ITERATION_FINISH_5_DIGIT_2, BOOST_PP_ITERATION_FINISH_5_DIGIT_1)
-# elif BOOST_PP_ITERATION_FINISH_5_DIGIT_2
-#    define BOOST_PP_ITERATION_FINISH_5 BOOST_PP_SLOT_CC_2(BOOST_PP_ITERATION_FINISH_5_DIGIT_2, BOOST_PP_ITERATION_FINISH_5_DIGIT_1)
-# else
-#    define BOOST_PP_ITERATION_FINISH_5 BOOST_PP_ITERATION_FINISH_5_DIGIT_1
-# endif
diff --git a/boost/preprocessor/iteration/detail/finish.hpp b/boost/preprocessor/iteration/detail/finish.hpp
deleted file mode 100644
index 0236944..0000000
--- a/boost/preprocessor/iteration/detail/finish.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# include <boost/preprocessor/slot/detail/shared.hpp>
-#
-# undef BOOST_PP_LOCAL_FE
-#
-# undef BOOST_PP_LOCAL_FE_DIGIT_1
-# undef BOOST_PP_LOCAL_FE_DIGIT_2
-# undef BOOST_PP_LOCAL_FE_DIGIT_3
-# undef BOOST_PP_LOCAL_FE_DIGIT_4
-# undef BOOST_PP_LOCAL_FE_DIGIT_5
-# undef BOOST_PP_LOCAL_FE_DIGIT_6
-# undef BOOST_PP_LOCAL_FE_DIGIT_7
-# undef BOOST_PP_LOCAL_FE_DIGIT_8
-# undef BOOST_PP_LOCAL_FE_DIGIT_9
-# undef BOOST_PP_LOCAL_FE_DIGIT_10
-#
-# if BOOST_PP_SLOT_TEMP_3 == 0
-#    define BOOST_PP_LOCAL_FE_DIGIT_3 0
-# elif BOOST_PP_SLOT_TEMP_3 == 1
-#    define BOOST_PP_LOCAL_FE_DIGIT_3 1
-# elif BOOST_PP_SLOT_TEMP_3 == 2
-#    define BOOST_PP_LOCAL_FE_DIGIT_3 2
-# elif BOOST_PP_SLOT_TEMP_3 == 3
-#    define BOOST_PP_LOCAL_FE_DIGIT_3 3
-# elif BOOST_PP_SLOT_TEMP_3 == 4
-#    define BOOST_PP_LOCAL_FE_DIGIT_3 4
-# elif BOOST_PP_SLOT_TEMP_3 == 5
-#    define BOOST_PP_LOCAL_FE_DIGIT_3 5
-# elif BOOST_PP_SLOT_TEMP_3 == 6
-#    define BOOST_PP_LOCAL_FE_DIGIT_3 6
-# elif BOOST_PP_SLOT_TEMP_3 == 7
-#    define BOOST_PP_LOCAL_FE_DIGIT_3 7
-# elif BOOST_PP_SLOT_TEMP_3 == 8
-#    define BOOST_PP_LOCAL_FE_DIGIT_3 8
-# elif BOOST_PP_SLOT_TEMP_3 == 9
-#    define BOOST_PP_LOCAL_FE_DIGIT_3 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_2 == 0
-#    define BOOST_PP_LOCAL_FE_DIGIT_2 0
-# elif BOOST_PP_SLOT_TEMP_2 == 1
-#    define BOOST_PP_LOCAL_FE_DIGIT_2 1
-# elif BOOST_PP_SLOT_TEMP_2 == 2
-#    define BOOST_PP_LOCAL_FE_DIGIT_2 2
-# elif BOOST_PP_SLOT_TEMP_2 == 3
-#    define BOOST_PP_LOCAL_FE_DIGIT_2 3
-# elif BOOST_PP_SLOT_TEMP_2 == 4
-#    define BOOST_PP_LOCAL_FE_DIGIT_2 4
-# elif BOOST_PP_SLOT_TEMP_2 == 5
-#    define BOOST_PP_LOCAL_FE_DIGIT_2 5
-# elif BOOST_PP_SLOT_TEMP_2 == 6
-#    define BOOST_PP_LOCAL_FE_DIGIT_2 6
-# elif BOOST_PP_SLOT_TEMP_2 == 7
-#    define BOOST_PP_LOCAL_FE_DIGIT_2 7
-# elif BOOST_PP_SLOT_TEMP_2 == 8
-#    define BOOST_PP_LOCAL_FE_DIGIT_2 8
-# elif BOOST_PP_SLOT_TEMP_2 == 9
-#    define BOOST_PP_LOCAL_FE_DIGIT_2 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_1 == 0
-#    define BOOST_PP_LOCAL_FE_DIGIT_1 0
-# elif BOOST_PP_SLOT_TEMP_1 == 1
-#    define BOOST_PP_LOCAL_FE_DIGIT_1 1
-# elif BOOST_PP_SLOT_TEMP_1 == 2
-#    define BOOST_PP_LOCAL_FE_DIGIT_1 2
-# elif BOOST_PP_SLOT_TEMP_1 == 3
-#    define BOOST_PP_LOCAL_FE_DIGIT_1 3
-# elif BOOST_PP_SLOT_TEMP_1 == 4
-#    define BOOST_PP_LOCAL_FE_DIGIT_1 4
-# elif BOOST_PP_SLOT_TEMP_1 == 5
-#    define BOOST_PP_LOCAL_FE_DIGIT_1 5
-# elif BOOST_PP_SLOT_TEMP_1 == 6
-#    define BOOST_PP_LOCAL_FE_DIGIT_1 6
-# elif BOOST_PP_SLOT_TEMP_1 == 7
-#    define BOOST_PP_LOCAL_FE_DIGIT_1 7
-# elif BOOST_PP_SLOT_TEMP_1 == 8
-#    define BOOST_PP_LOCAL_FE_DIGIT_1 8
-# elif BOOST_PP_SLOT_TEMP_1 == 9
-#    define BOOST_PP_LOCAL_FE_DIGIT_1 9
-# endif
-#
-# if BOOST_PP_LOCAL_FE_DIGIT_3
-#    define BOOST_PP_LOCAL_FE() BOOST_PP_SLOT_CC_3(BOOST_PP_LOCAL_FE_DIGIT_3, BOOST_PP_LOCAL_FE_DIGIT_2, BOOST_PP_LOCAL_FE_DIGIT_1)
-# elif BOOST_PP_LOCAL_FE_DIGIT_2
-#    define BOOST_PP_LOCAL_FE() BOOST_PP_SLOT_CC_2(BOOST_PP_LOCAL_FE_DIGIT_2, BOOST_PP_LOCAL_FE_DIGIT_1)
-# else
-#    define BOOST_PP_LOCAL_FE() BOOST_PP_LOCAL_FE_DIGIT_1
-# endif
diff --git a/boost/preprocessor/iteration/detail/iter/forward1.hpp b/boost/preprocessor/iteration/detail/iter/forward1.hpp
deleted file mode 100644
index 3c6a458..0000000
--- a/boost/preprocessor/iteration/detail/iter/forward1.hpp
+++ /dev/null
@@ -1,1342 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# if defined(BOOST_PP_ITERATION_LIMITS)
-#    if !defined(BOOST_PP_FILENAME_1)
-#        error BOOST_PP_ERROR:  depth #1 filename is not defined
-#    endif
-#    define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_ITERATION_LIMITS)
-#    include <boost/preprocessor/iteration/detail/bounds/lower1.hpp>
-#    define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_ITERATION_LIMITS)
-#    include <boost/preprocessor/iteration/detail/bounds/upper1.hpp>
-#    define BOOST_PP_ITERATION_FLAGS_1() 0
-#    undef BOOST_PP_ITERATION_LIMITS
-# elif defined(BOOST_PP_ITERATION_PARAMS_1)
-#    define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ITERATION_PARAMS_1)
-#    include <boost/preprocessor/iteration/detail/bounds/lower1.hpp>
-#    define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, BOOST_PP_ITERATION_PARAMS_1)
-#    include <boost/preprocessor/iteration/detail/bounds/upper1.hpp>
-#    define BOOST_PP_FILENAME_1 BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ITERATION_PARAMS_1)
-#    if BOOST_PP_ARRAY_SIZE(BOOST_PP_ITERATION_PARAMS_1) >= 4
-#        define BOOST_PP_ITERATION_FLAGS_1() BOOST_PP_ARRAY_ELEM(3, BOOST_PP_ITERATION_PARAMS_1)
-#    else
-#        define BOOST_PP_ITERATION_FLAGS_1() 0
-#    endif
-# else
-#    error BOOST_PP_ERROR:  depth #1 iteration boundaries or filename not defined
-# endif
-#
-# undef BOOST_PP_ITERATION_DEPTH
-# define BOOST_PP_ITERATION_DEPTH() 1
-#
-# define BOOST_PP_IS_ITERATING 1
-#
-# if (BOOST_PP_ITERATION_START_1) > (BOOST_PP_ITERATION_FINISH_1)
-#    include <boost/preprocessor/iteration/detail/iter/reverse1.hpp>
-# else
-#    if BOOST_PP_ITERATION_START_1 <= 0 && BOOST_PP_ITERATION_FINISH_1 >= 0
-#        define BOOST_PP_ITERATION_1 0
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 1 && BOOST_PP_ITERATION_FINISH_1 >= 1
-#        define BOOST_PP_ITERATION_1 1
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 2 && BOOST_PP_ITERATION_FINISH_1 >= 2
-#        define BOOST_PP_ITERATION_1 2
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 3 && BOOST_PP_ITERATION_FINISH_1 >= 3
-#        define BOOST_PP_ITERATION_1 3
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 4 && BOOST_PP_ITERATION_FINISH_1 >= 4
-#        define BOOST_PP_ITERATION_1 4
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 5 && BOOST_PP_ITERATION_FINISH_1 >= 5
-#        define BOOST_PP_ITERATION_1 5
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 6 && BOOST_PP_ITERATION_FINISH_1 >= 6
-#        define BOOST_PP_ITERATION_1 6
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 7 && BOOST_PP_ITERATION_FINISH_1 >= 7
-#        define BOOST_PP_ITERATION_1 7
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 8 && BOOST_PP_ITERATION_FINISH_1 >= 8
-#        define BOOST_PP_ITERATION_1 8
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 9 && BOOST_PP_ITERATION_FINISH_1 >= 9
-#        define BOOST_PP_ITERATION_1 9
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 10 && BOOST_PP_ITERATION_FINISH_1 >= 10
-#        define BOOST_PP_ITERATION_1 10
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 11 && BOOST_PP_ITERATION_FINISH_1 >= 11
-#        define BOOST_PP_ITERATION_1 11
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 12 && BOOST_PP_ITERATION_FINISH_1 >= 12
-#        define BOOST_PP_ITERATION_1 12
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 13 && BOOST_PP_ITERATION_FINISH_1 >= 13
-#        define BOOST_PP_ITERATION_1 13
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 14 && BOOST_PP_ITERATION_FINISH_1 >= 14
-#        define BOOST_PP_ITERATION_1 14
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 15 && BOOST_PP_ITERATION_FINISH_1 >= 15
-#        define BOOST_PP_ITERATION_1 15
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 16 && BOOST_PP_ITERATION_FINISH_1 >= 16
-#        define BOOST_PP_ITERATION_1 16
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 17 && BOOST_PP_ITERATION_FINISH_1 >= 17
-#        define BOOST_PP_ITERATION_1 17
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 18 && BOOST_PP_ITERATION_FINISH_1 >= 18
-#        define BOOST_PP_ITERATION_1 18
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 19 && BOOST_PP_ITERATION_FINISH_1 >= 19
-#        define BOOST_PP_ITERATION_1 19
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 20 && BOOST_PP_ITERATION_FINISH_1 >= 20
-#        define BOOST_PP_ITERATION_1 20
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 21 && BOOST_PP_ITERATION_FINISH_1 >= 21
-#        define BOOST_PP_ITERATION_1 21
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 22 && BOOST_PP_ITERATION_FINISH_1 >= 22
-#        define BOOST_PP_ITERATION_1 22
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 23 && BOOST_PP_ITERATION_FINISH_1 >= 23
-#        define BOOST_PP_ITERATION_1 23
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 24 && BOOST_PP_ITERATION_FINISH_1 >= 24
-#        define BOOST_PP_ITERATION_1 24
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 25 && BOOST_PP_ITERATION_FINISH_1 >= 25
-#        define BOOST_PP_ITERATION_1 25
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 26 && BOOST_PP_ITERATION_FINISH_1 >= 26
-#        define BOOST_PP_ITERATION_1 26
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 27 && BOOST_PP_ITERATION_FINISH_1 >= 27
-#        define BOOST_PP_ITERATION_1 27
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 28 && BOOST_PP_ITERATION_FINISH_1 >= 28
-#        define BOOST_PP_ITERATION_1 28
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 29 && BOOST_PP_ITERATION_FINISH_1 >= 29
-#        define BOOST_PP_ITERATION_1 29
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 30 && BOOST_PP_ITERATION_FINISH_1 >= 30
-#        define BOOST_PP_ITERATION_1 30
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 31 && BOOST_PP_ITERATION_FINISH_1 >= 31
-#        define BOOST_PP_ITERATION_1 31
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 32 && BOOST_PP_ITERATION_FINISH_1 >= 32
-#        define BOOST_PP_ITERATION_1 32
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 33 && BOOST_PP_ITERATION_FINISH_1 >= 33
-#        define BOOST_PP_ITERATION_1 33
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 34 && BOOST_PP_ITERATION_FINISH_1 >= 34
-#        define BOOST_PP_ITERATION_1 34
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 35 && BOOST_PP_ITERATION_FINISH_1 >= 35
-#        define BOOST_PP_ITERATION_1 35
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 36 && BOOST_PP_ITERATION_FINISH_1 >= 36
-#        define BOOST_PP_ITERATION_1 36
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 37 && BOOST_PP_ITERATION_FINISH_1 >= 37
-#        define BOOST_PP_ITERATION_1 37
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 38 && BOOST_PP_ITERATION_FINISH_1 >= 38
-#        define BOOST_PP_ITERATION_1 38
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 39 && BOOST_PP_ITERATION_FINISH_1 >= 39
-#        define BOOST_PP_ITERATION_1 39
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 40 && BOOST_PP_ITERATION_FINISH_1 >= 40
-#        define BOOST_PP_ITERATION_1 40
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 41 && BOOST_PP_ITERATION_FINISH_1 >= 41
-#        define BOOST_PP_ITERATION_1 41
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 42 && BOOST_PP_ITERATION_FINISH_1 >= 42
-#        define BOOST_PP_ITERATION_1 42
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 43 && BOOST_PP_ITERATION_FINISH_1 >= 43
-#        define BOOST_PP_ITERATION_1 43
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 44 && BOOST_PP_ITERATION_FINISH_1 >= 44
-#        define BOOST_PP_ITERATION_1 44
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 45 && BOOST_PP_ITERATION_FINISH_1 >= 45
-#        define BOOST_PP_ITERATION_1 45
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 46 && BOOST_PP_ITERATION_FINISH_1 >= 46
-#        define BOOST_PP_ITERATION_1 46
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 47 && BOOST_PP_ITERATION_FINISH_1 >= 47
-#        define BOOST_PP_ITERATION_1 47
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 48 && BOOST_PP_ITERATION_FINISH_1 >= 48
-#        define BOOST_PP_ITERATION_1 48
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 49 && BOOST_PP_ITERATION_FINISH_1 >= 49
-#        define BOOST_PP_ITERATION_1 49
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 50 && BOOST_PP_ITERATION_FINISH_1 >= 50
-#        define BOOST_PP_ITERATION_1 50
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 51 && BOOST_PP_ITERATION_FINISH_1 >= 51
-#        define BOOST_PP_ITERATION_1 51
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 52 && BOOST_PP_ITERATION_FINISH_1 >= 52
-#        define BOOST_PP_ITERATION_1 52
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 53 && BOOST_PP_ITERATION_FINISH_1 >= 53
-#        define BOOST_PP_ITERATION_1 53
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 54 && BOOST_PP_ITERATION_FINISH_1 >= 54
-#        define BOOST_PP_ITERATION_1 54
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 55 && BOOST_PP_ITERATION_FINISH_1 >= 55
-#        define BOOST_PP_ITERATION_1 55
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 56 && BOOST_PP_ITERATION_FINISH_1 >= 56
-#        define BOOST_PP_ITERATION_1 56
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 57 && BOOST_PP_ITERATION_FINISH_1 >= 57
-#        define BOOST_PP_ITERATION_1 57
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 58 && BOOST_PP_ITERATION_FINISH_1 >= 58
-#        define BOOST_PP_ITERATION_1 58
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 59 && BOOST_PP_ITERATION_FINISH_1 >= 59
-#        define BOOST_PP_ITERATION_1 59
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 60 && BOOST_PP_ITERATION_FINISH_1 >= 60
-#        define BOOST_PP_ITERATION_1 60
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 61 && BOOST_PP_ITERATION_FINISH_1 >= 61
-#        define BOOST_PP_ITERATION_1 61
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 62 && BOOST_PP_ITERATION_FINISH_1 >= 62
-#        define BOOST_PP_ITERATION_1 62
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 63 && BOOST_PP_ITERATION_FINISH_1 >= 63
-#        define BOOST_PP_ITERATION_1 63
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 64 && BOOST_PP_ITERATION_FINISH_1 >= 64
-#        define BOOST_PP_ITERATION_1 64
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 65 && BOOST_PP_ITERATION_FINISH_1 >= 65
-#        define BOOST_PP_ITERATION_1 65
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 66 && BOOST_PP_ITERATION_FINISH_1 >= 66
-#        define BOOST_PP_ITERATION_1 66
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 67 && BOOST_PP_ITERATION_FINISH_1 >= 67
-#        define BOOST_PP_ITERATION_1 67
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 68 && BOOST_PP_ITERATION_FINISH_1 >= 68
-#        define BOOST_PP_ITERATION_1 68
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 69 && BOOST_PP_ITERATION_FINISH_1 >= 69
-#        define BOOST_PP_ITERATION_1 69
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 70 && BOOST_PP_ITERATION_FINISH_1 >= 70
-#        define BOOST_PP_ITERATION_1 70
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 71 && BOOST_PP_ITERATION_FINISH_1 >= 71
-#        define BOOST_PP_ITERATION_1 71
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 72 && BOOST_PP_ITERATION_FINISH_1 >= 72
-#        define BOOST_PP_ITERATION_1 72
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 73 && BOOST_PP_ITERATION_FINISH_1 >= 73
-#        define BOOST_PP_ITERATION_1 73
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 74 && BOOST_PP_ITERATION_FINISH_1 >= 74
-#        define BOOST_PP_ITERATION_1 74
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 75 && BOOST_PP_ITERATION_FINISH_1 >= 75
-#        define BOOST_PP_ITERATION_1 75
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 76 && BOOST_PP_ITERATION_FINISH_1 >= 76
-#        define BOOST_PP_ITERATION_1 76
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 77 && BOOST_PP_ITERATION_FINISH_1 >= 77
-#        define BOOST_PP_ITERATION_1 77
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 78 && BOOST_PP_ITERATION_FINISH_1 >= 78
-#        define BOOST_PP_ITERATION_1 78
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 79 && BOOST_PP_ITERATION_FINISH_1 >= 79
-#        define BOOST_PP_ITERATION_1 79
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 80 && BOOST_PP_ITERATION_FINISH_1 >= 80
-#        define BOOST_PP_ITERATION_1 80
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 81 && BOOST_PP_ITERATION_FINISH_1 >= 81
-#        define BOOST_PP_ITERATION_1 81
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 82 && BOOST_PP_ITERATION_FINISH_1 >= 82
-#        define BOOST_PP_ITERATION_1 82
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 83 && BOOST_PP_ITERATION_FINISH_1 >= 83
-#        define BOOST_PP_ITERATION_1 83
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 84 && BOOST_PP_ITERATION_FINISH_1 >= 84
-#        define BOOST_PP_ITERATION_1 84
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 85 && BOOST_PP_ITERATION_FINISH_1 >= 85
-#        define BOOST_PP_ITERATION_1 85
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 86 && BOOST_PP_ITERATION_FINISH_1 >= 86
-#        define BOOST_PP_ITERATION_1 86
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 87 && BOOST_PP_ITERATION_FINISH_1 >= 87
-#        define BOOST_PP_ITERATION_1 87
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 88 && BOOST_PP_ITERATION_FINISH_1 >= 88
-#        define BOOST_PP_ITERATION_1 88
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 89 && BOOST_PP_ITERATION_FINISH_1 >= 89
-#        define BOOST_PP_ITERATION_1 89
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 90 && BOOST_PP_ITERATION_FINISH_1 >= 90
-#        define BOOST_PP_ITERATION_1 90
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 91 && BOOST_PP_ITERATION_FINISH_1 >= 91
-#        define BOOST_PP_ITERATION_1 91
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 92 && BOOST_PP_ITERATION_FINISH_1 >= 92
-#        define BOOST_PP_ITERATION_1 92
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 93 && BOOST_PP_ITERATION_FINISH_1 >= 93
-#        define BOOST_PP_ITERATION_1 93
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 94 && BOOST_PP_ITERATION_FINISH_1 >= 94
-#        define BOOST_PP_ITERATION_1 94
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 95 && BOOST_PP_ITERATION_FINISH_1 >= 95
-#        define BOOST_PP_ITERATION_1 95
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 96 && BOOST_PP_ITERATION_FINISH_1 >= 96
-#        define BOOST_PP_ITERATION_1 96
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 97 && BOOST_PP_ITERATION_FINISH_1 >= 97
-#        define BOOST_PP_ITERATION_1 97
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 98 && BOOST_PP_ITERATION_FINISH_1 >= 98
-#        define BOOST_PP_ITERATION_1 98
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 99 && BOOST_PP_ITERATION_FINISH_1 >= 99
-#        define BOOST_PP_ITERATION_1 99
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 100 && BOOST_PP_ITERATION_FINISH_1 >= 100
-#        define BOOST_PP_ITERATION_1 100
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 101 && BOOST_PP_ITERATION_FINISH_1 >= 101
-#        define BOOST_PP_ITERATION_1 101
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 102 && BOOST_PP_ITERATION_FINISH_1 >= 102
-#        define BOOST_PP_ITERATION_1 102
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 103 && BOOST_PP_ITERATION_FINISH_1 >= 103
-#        define BOOST_PP_ITERATION_1 103
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 104 && BOOST_PP_ITERATION_FINISH_1 >= 104
-#        define BOOST_PP_ITERATION_1 104
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 105 && BOOST_PP_ITERATION_FINISH_1 >= 105
-#        define BOOST_PP_ITERATION_1 105
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 106 && BOOST_PP_ITERATION_FINISH_1 >= 106
-#        define BOOST_PP_ITERATION_1 106
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 107 && BOOST_PP_ITERATION_FINISH_1 >= 107
-#        define BOOST_PP_ITERATION_1 107
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 108 && BOOST_PP_ITERATION_FINISH_1 >= 108
-#        define BOOST_PP_ITERATION_1 108
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 109 && BOOST_PP_ITERATION_FINISH_1 >= 109
-#        define BOOST_PP_ITERATION_1 109
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 110 && BOOST_PP_ITERATION_FINISH_1 >= 110
-#        define BOOST_PP_ITERATION_1 110
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 111 && BOOST_PP_ITERATION_FINISH_1 >= 111
-#        define BOOST_PP_ITERATION_1 111
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 112 && BOOST_PP_ITERATION_FINISH_1 >= 112
-#        define BOOST_PP_ITERATION_1 112
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 113 && BOOST_PP_ITERATION_FINISH_1 >= 113
-#        define BOOST_PP_ITERATION_1 113
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 114 && BOOST_PP_ITERATION_FINISH_1 >= 114
-#        define BOOST_PP_ITERATION_1 114
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 115 && BOOST_PP_ITERATION_FINISH_1 >= 115
-#        define BOOST_PP_ITERATION_1 115
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 116 && BOOST_PP_ITERATION_FINISH_1 >= 116
-#        define BOOST_PP_ITERATION_1 116
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 117 && BOOST_PP_ITERATION_FINISH_1 >= 117
-#        define BOOST_PP_ITERATION_1 117
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 118 && BOOST_PP_ITERATION_FINISH_1 >= 118
-#        define BOOST_PP_ITERATION_1 118
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 119 && BOOST_PP_ITERATION_FINISH_1 >= 119
-#        define BOOST_PP_ITERATION_1 119
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 120 && BOOST_PP_ITERATION_FINISH_1 >= 120
-#        define BOOST_PP_ITERATION_1 120
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 121 && BOOST_PP_ITERATION_FINISH_1 >= 121
-#        define BOOST_PP_ITERATION_1 121
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 122 && BOOST_PP_ITERATION_FINISH_1 >= 122
-#        define BOOST_PP_ITERATION_1 122
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 123 && BOOST_PP_ITERATION_FINISH_1 >= 123
-#        define BOOST_PP_ITERATION_1 123
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 124 && BOOST_PP_ITERATION_FINISH_1 >= 124
-#        define BOOST_PP_ITERATION_1 124
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 125 && BOOST_PP_ITERATION_FINISH_1 >= 125
-#        define BOOST_PP_ITERATION_1 125
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 126 && BOOST_PP_ITERATION_FINISH_1 >= 126
-#        define BOOST_PP_ITERATION_1 126
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 127 && BOOST_PP_ITERATION_FINISH_1 >= 127
-#        define BOOST_PP_ITERATION_1 127
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 128 && BOOST_PP_ITERATION_FINISH_1 >= 128
-#        define BOOST_PP_ITERATION_1 128
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 129 && BOOST_PP_ITERATION_FINISH_1 >= 129
-#        define BOOST_PP_ITERATION_1 129
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 130 && BOOST_PP_ITERATION_FINISH_1 >= 130
-#        define BOOST_PP_ITERATION_1 130
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 131 && BOOST_PP_ITERATION_FINISH_1 >= 131
-#        define BOOST_PP_ITERATION_1 131
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 132 && BOOST_PP_ITERATION_FINISH_1 >= 132
-#        define BOOST_PP_ITERATION_1 132
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 133 && BOOST_PP_ITERATION_FINISH_1 >= 133
-#        define BOOST_PP_ITERATION_1 133
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 134 && BOOST_PP_ITERATION_FINISH_1 >= 134
-#        define BOOST_PP_ITERATION_1 134
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 135 && BOOST_PP_ITERATION_FINISH_1 >= 135
-#        define BOOST_PP_ITERATION_1 135
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 136 && BOOST_PP_ITERATION_FINISH_1 >= 136
-#        define BOOST_PP_ITERATION_1 136
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 137 && BOOST_PP_ITERATION_FINISH_1 >= 137
-#        define BOOST_PP_ITERATION_1 137
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 138 && BOOST_PP_ITERATION_FINISH_1 >= 138
-#        define BOOST_PP_ITERATION_1 138
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 139 && BOOST_PP_ITERATION_FINISH_1 >= 139
-#        define BOOST_PP_ITERATION_1 139
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 140 && BOOST_PP_ITERATION_FINISH_1 >= 140
-#        define BOOST_PP_ITERATION_1 140
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 141 && BOOST_PP_ITERATION_FINISH_1 >= 141
-#        define BOOST_PP_ITERATION_1 141
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 142 && BOOST_PP_ITERATION_FINISH_1 >= 142
-#        define BOOST_PP_ITERATION_1 142
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 143 && BOOST_PP_ITERATION_FINISH_1 >= 143
-#        define BOOST_PP_ITERATION_1 143
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 144 && BOOST_PP_ITERATION_FINISH_1 >= 144
-#        define BOOST_PP_ITERATION_1 144
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 145 && BOOST_PP_ITERATION_FINISH_1 >= 145
-#        define BOOST_PP_ITERATION_1 145
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 146 && BOOST_PP_ITERATION_FINISH_1 >= 146
-#        define BOOST_PP_ITERATION_1 146
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 147 && BOOST_PP_ITERATION_FINISH_1 >= 147
-#        define BOOST_PP_ITERATION_1 147
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 148 && BOOST_PP_ITERATION_FINISH_1 >= 148
-#        define BOOST_PP_ITERATION_1 148
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 149 && BOOST_PP_ITERATION_FINISH_1 >= 149
-#        define BOOST_PP_ITERATION_1 149
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 150 && BOOST_PP_ITERATION_FINISH_1 >= 150
-#        define BOOST_PP_ITERATION_1 150
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 151 && BOOST_PP_ITERATION_FINISH_1 >= 151
-#        define BOOST_PP_ITERATION_1 151
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 152 && BOOST_PP_ITERATION_FINISH_1 >= 152
-#        define BOOST_PP_ITERATION_1 152
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 153 && BOOST_PP_ITERATION_FINISH_1 >= 153
-#        define BOOST_PP_ITERATION_1 153
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 154 && BOOST_PP_ITERATION_FINISH_1 >= 154
-#        define BOOST_PP_ITERATION_1 154
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 155 && BOOST_PP_ITERATION_FINISH_1 >= 155
-#        define BOOST_PP_ITERATION_1 155
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 156 && BOOST_PP_ITERATION_FINISH_1 >= 156
-#        define BOOST_PP_ITERATION_1 156
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 157 && BOOST_PP_ITERATION_FINISH_1 >= 157
-#        define BOOST_PP_ITERATION_1 157
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 158 && BOOST_PP_ITERATION_FINISH_1 >= 158
-#        define BOOST_PP_ITERATION_1 158
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 159 && BOOST_PP_ITERATION_FINISH_1 >= 159
-#        define BOOST_PP_ITERATION_1 159
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 160 && BOOST_PP_ITERATION_FINISH_1 >= 160
-#        define BOOST_PP_ITERATION_1 160
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 161 && BOOST_PP_ITERATION_FINISH_1 >= 161
-#        define BOOST_PP_ITERATION_1 161
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 162 && BOOST_PP_ITERATION_FINISH_1 >= 162
-#        define BOOST_PP_ITERATION_1 162
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 163 && BOOST_PP_ITERATION_FINISH_1 >= 163
-#        define BOOST_PP_ITERATION_1 163
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 164 && BOOST_PP_ITERATION_FINISH_1 >= 164
-#        define BOOST_PP_ITERATION_1 164
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 165 && BOOST_PP_ITERATION_FINISH_1 >= 165
-#        define BOOST_PP_ITERATION_1 165
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 166 && BOOST_PP_ITERATION_FINISH_1 >= 166
-#        define BOOST_PP_ITERATION_1 166
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 167 && BOOST_PP_ITERATION_FINISH_1 >= 167
-#        define BOOST_PP_ITERATION_1 167
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 168 && BOOST_PP_ITERATION_FINISH_1 >= 168
-#        define BOOST_PP_ITERATION_1 168
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 169 && BOOST_PP_ITERATION_FINISH_1 >= 169
-#        define BOOST_PP_ITERATION_1 169
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 170 && BOOST_PP_ITERATION_FINISH_1 >= 170
-#        define BOOST_PP_ITERATION_1 170
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 171 && BOOST_PP_ITERATION_FINISH_1 >= 171
-#        define BOOST_PP_ITERATION_1 171
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 172 && BOOST_PP_ITERATION_FINISH_1 >= 172
-#        define BOOST_PP_ITERATION_1 172
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 173 && BOOST_PP_ITERATION_FINISH_1 >= 173
-#        define BOOST_PP_ITERATION_1 173
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 174 && BOOST_PP_ITERATION_FINISH_1 >= 174
-#        define BOOST_PP_ITERATION_1 174
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 175 && BOOST_PP_ITERATION_FINISH_1 >= 175
-#        define BOOST_PP_ITERATION_1 175
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 176 && BOOST_PP_ITERATION_FINISH_1 >= 176
-#        define BOOST_PP_ITERATION_1 176
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 177 && BOOST_PP_ITERATION_FINISH_1 >= 177
-#        define BOOST_PP_ITERATION_1 177
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 178 && BOOST_PP_ITERATION_FINISH_1 >= 178
-#        define BOOST_PP_ITERATION_1 178
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 179 && BOOST_PP_ITERATION_FINISH_1 >= 179
-#        define BOOST_PP_ITERATION_1 179
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 180 && BOOST_PP_ITERATION_FINISH_1 >= 180
-#        define BOOST_PP_ITERATION_1 180
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 181 && BOOST_PP_ITERATION_FINISH_1 >= 181
-#        define BOOST_PP_ITERATION_1 181
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 182 && BOOST_PP_ITERATION_FINISH_1 >= 182
-#        define BOOST_PP_ITERATION_1 182
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 183 && BOOST_PP_ITERATION_FINISH_1 >= 183
-#        define BOOST_PP_ITERATION_1 183
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 184 && BOOST_PP_ITERATION_FINISH_1 >= 184
-#        define BOOST_PP_ITERATION_1 184
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 185 && BOOST_PP_ITERATION_FINISH_1 >= 185
-#        define BOOST_PP_ITERATION_1 185
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 186 && BOOST_PP_ITERATION_FINISH_1 >= 186
-#        define BOOST_PP_ITERATION_1 186
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 187 && BOOST_PP_ITERATION_FINISH_1 >= 187
-#        define BOOST_PP_ITERATION_1 187
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 188 && BOOST_PP_ITERATION_FINISH_1 >= 188
-#        define BOOST_PP_ITERATION_1 188
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 189 && BOOST_PP_ITERATION_FINISH_1 >= 189
-#        define BOOST_PP_ITERATION_1 189
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 190 && BOOST_PP_ITERATION_FINISH_1 >= 190
-#        define BOOST_PP_ITERATION_1 190
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 191 && BOOST_PP_ITERATION_FINISH_1 >= 191
-#        define BOOST_PP_ITERATION_1 191
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 192 && BOOST_PP_ITERATION_FINISH_1 >= 192
-#        define BOOST_PP_ITERATION_1 192
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 193 && BOOST_PP_ITERATION_FINISH_1 >= 193
-#        define BOOST_PP_ITERATION_1 193
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 194 && BOOST_PP_ITERATION_FINISH_1 >= 194
-#        define BOOST_PP_ITERATION_1 194
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 195 && BOOST_PP_ITERATION_FINISH_1 >= 195
-#        define BOOST_PP_ITERATION_1 195
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 196 && BOOST_PP_ITERATION_FINISH_1 >= 196
-#        define BOOST_PP_ITERATION_1 196
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 197 && BOOST_PP_ITERATION_FINISH_1 >= 197
-#        define BOOST_PP_ITERATION_1 197
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 198 && BOOST_PP_ITERATION_FINISH_1 >= 198
-#        define BOOST_PP_ITERATION_1 198
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 199 && BOOST_PP_ITERATION_FINISH_1 >= 199
-#        define BOOST_PP_ITERATION_1 199
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 200 && BOOST_PP_ITERATION_FINISH_1 >= 200
-#        define BOOST_PP_ITERATION_1 200
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 201 && BOOST_PP_ITERATION_FINISH_1 >= 201
-#        define BOOST_PP_ITERATION_1 201
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 202 && BOOST_PP_ITERATION_FINISH_1 >= 202
-#        define BOOST_PP_ITERATION_1 202
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 203 && BOOST_PP_ITERATION_FINISH_1 >= 203
-#        define BOOST_PP_ITERATION_1 203
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 204 && BOOST_PP_ITERATION_FINISH_1 >= 204
-#        define BOOST_PP_ITERATION_1 204
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 205 && BOOST_PP_ITERATION_FINISH_1 >= 205
-#        define BOOST_PP_ITERATION_1 205
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 206 && BOOST_PP_ITERATION_FINISH_1 >= 206
-#        define BOOST_PP_ITERATION_1 206
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 207 && BOOST_PP_ITERATION_FINISH_1 >= 207
-#        define BOOST_PP_ITERATION_1 207
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 208 && BOOST_PP_ITERATION_FINISH_1 >= 208
-#        define BOOST_PP_ITERATION_1 208
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 209 && BOOST_PP_ITERATION_FINISH_1 >= 209
-#        define BOOST_PP_ITERATION_1 209
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 210 && BOOST_PP_ITERATION_FINISH_1 >= 210
-#        define BOOST_PP_ITERATION_1 210
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 211 && BOOST_PP_ITERATION_FINISH_1 >= 211
-#        define BOOST_PP_ITERATION_1 211
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 212 && BOOST_PP_ITERATION_FINISH_1 >= 212
-#        define BOOST_PP_ITERATION_1 212
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 213 && BOOST_PP_ITERATION_FINISH_1 >= 213
-#        define BOOST_PP_ITERATION_1 213
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 214 && BOOST_PP_ITERATION_FINISH_1 >= 214
-#        define BOOST_PP_ITERATION_1 214
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 215 && BOOST_PP_ITERATION_FINISH_1 >= 215
-#        define BOOST_PP_ITERATION_1 215
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 216 && BOOST_PP_ITERATION_FINISH_1 >= 216
-#        define BOOST_PP_ITERATION_1 216
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 217 && BOOST_PP_ITERATION_FINISH_1 >= 217
-#        define BOOST_PP_ITERATION_1 217
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 218 && BOOST_PP_ITERATION_FINISH_1 >= 218
-#        define BOOST_PP_ITERATION_1 218
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 219 && BOOST_PP_ITERATION_FINISH_1 >= 219
-#        define BOOST_PP_ITERATION_1 219
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 220 && BOOST_PP_ITERATION_FINISH_1 >= 220
-#        define BOOST_PP_ITERATION_1 220
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 221 && BOOST_PP_ITERATION_FINISH_1 >= 221
-#        define BOOST_PP_ITERATION_1 221
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 222 && BOOST_PP_ITERATION_FINISH_1 >= 222
-#        define BOOST_PP_ITERATION_1 222
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 223 && BOOST_PP_ITERATION_FINISH_1 >= 223
-#        define BOOST_PP_ITERATION_1 223
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 224 && BOOST_PP_ITERATION_FINISH_1 >= 224
-#        define BOOST_PP_ITERATION_1 224
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 225 && BOOST_PP_ITERATION_FINISH_1 >= 225
-#        define BOOST_PP_ITERATION_1 225
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 226 && BOOST_PP_ITERATION_FINISH_1 >= 226
-#        define BOOST_PP_ITERATION_1 226
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 227 && BOOST_PP_ITERATION_FINISH_1 >= 227
-#        define BOOST_PP_ITERATION_1 227
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 228 && BOOST_PP_ITERATION_FINISH_1 >= 228
-#        define BOOST_PP_ITERATION_1 228
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 229 && BOOST_PP_ITERATION_FINISH_1 >= 229
-#        define BOOST_PP_ITERATION_1 229
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 230 && BOOST_PP_ITERATION_FINISH_1 >= 230
-#        define BOOST_PP_ITERATION_1 230
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 231 && BOOST_PP_ITERATION_FINISH_1 >= 231
-#        define BOOST_PP_ITERATION_1 231
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 232 && BOOST_PP_ITERATION_FINISH_1 >= 232
-#        define BOOST_PP_ITERATION_1 232
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 233 && BOOST_PP_ITERATION_FINISH_1 >= 233
-#        define BOOST_PP_ITERATION_1 233
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 234 && BOOST_PP_ITERATION_FINISH_1 >= 234
-#        define BOOST_PP_ITERATION_1 234
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 235 && BOOST_PP_ITERATION_FINISH_1 >= 235
-#        define BOOST_PP_ITERATION_1 235
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 236 && BOOST_PP_ITERATION_FINISH_1 >= 236
-#        define BOOST_PP_ITERATION_1 236
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 237 && BOOST_PP_ITERATION_FINISH_1 >= 237
-#        define BOOST_PP_ITERATION_1 237
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 238 && BOOST_PP_ITERATION_FINISH_1 >= 238
-#        define BOOST_PP_ITERATION_1 238
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 239 && BOOST_PP_ITERATION_FINISH_1 >= 239
-#        define BOOST_PP_ITERATION_1 239
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 240 && BOOST_PP_ITERATION_FINISH_1 >= 240
-#        define BOOST_PP_ITERATION_1 240
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 241 && BOOST_PP_ITERATION_FINISH_1 >= 241
-#        define BOOST_PP_ITERATION_1 241
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 242 && BOOST_PP_ITERATION_FINISH_1 >= 242
-#        define BOOST_PP_ITERATION_1 242
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 243 && BOOST_PP_ITERATION_FINISH_1 >= 243
-#        define BOOST_PP_ITERATION_1 243
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 244 && BOOST_PP_ITERATION_FINISH_1 >= 244
-#        define BOOST_PP_ITERATION_1 244
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 245 && BOOST_PP_ITERATION_FINISH_1 >= 245
-#        define BOOST_PP_ITERATION_1 245
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 246 && BOOST_PP_ITERATION_FINISH_1 >= 246
-#        define BOOST_PP_ITERATION_1 246
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 247 && BOOST_PP_ITERATION_FINISH_1 >= 247
-#        define BOOST_PP_ITERATION_1 247
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 248 && BOOST_PP_ITERATION_FINISH_1 >= 248
-#        define BOOST_PP_ITERATION_1 248
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 249 && BOOST_PP_ITERATION_FINISH_1 >= 249
-#        define BOOST_PP_ITERATION_1 249
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 250 && BOOST_PP_ITERATION_FINISH_1 >= 250
-#        define BOOST_PP_ITERATION_1 250
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 251 && BOOST_PP_ITERATION_FINISH_1 >= 251
-#        define BOOST_PP_ITERATION_1 251
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 252 && BOOST_PP_ITERATION_FINISH_1 >= 252
-#        define BOOST_PP_ITERATION_1 252
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 253 && BOOST_PP_ITERATION_FINISH_1 >= 253
-#        define BOOST_PP_ITERATION_1 253
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 254 && BOOST_PP_ITERATION_FINISH_1 >= 254
-#        define BOOST_PP_ITERATION_1 254
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 255 && BOOST_PP_ITERATION_FINISH_1 >= 255
-#        define BOOST_PP_ITERATION_1 255
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-#    if BOOST_PP_ITERATION_START_1 <= 256 && BOOST_PP_ITERATION_FINISH_1 >= 256
-#        define BOOST_PP_ITERATION_1 256
-#        include BOOST_PP_FILENAME_1
-#        undef BOOST_PP_ITERATION_1
-#    endif
-# endif
-#
-# undef BOOST_PP_IS_ITERATING
-#
-# undef BOOST_PP_ITERATION_DEPTH
-# define BOOST_PP_ITERATION_DEPTH() 0
-#
-# undef BOOST_PP_ITERATION_START_1
-# undef BOOST_PP_ITERATION_FINISH_1
-# undef BOOST_PP_FILENAME_1
-#
-# undef BOOST_PP_ITERATION_FLAGS_1
-# undef BOOST_PP_ITERATION_PARAMS_1
diff --git a/boost/preprocessor/iteration/detail/iter/forward2.hpp b/boost/preprocessor/iteration/detail/iter/forward2.hpp
deleted file mode 100644
index e61a329..0000000
--- a/boost/preprocessor/iteration/detail/iter/forward2.hpp
+++ /dev/null
@@ -1,1338 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# if defined(BOOST_PP_ITERATION_LIMITS)
-#    if !defined(BOOST_PP_FILENAME_2)
-#        error BOOST_PP_ERROR:  depth #2 filename is not defined
-#    endif
-#    define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_ITERATION_LIMITS)
-#    include <boost/preprocessor/iteration/detail/bounds/lower2.hpp>
-#    define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_ITERATION_LIMITS)
-#    include <boost/preprocessor/iteration/detail/bounds/upper2.hpp>
-#    define BOOST_PP_ITERATION_FLAGS_2() 0
-#    undef BOOST_PP_ITERATION_LIMITS
-# elif defined(BOOST_PP_ITERATION_PARAMS_2)
-#    define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ITERATION_PARAMS_2)
-#    include <boost/preprocessor/iteration/detail/bounds/lower2.hpp>
-#    define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, BOOST_PP_ITERATION_PARAMS_2)
-#    include <boost/preprocessor/iteration/detail/bounds/upper2.hpp>
-#    define BOOST_PP_FILENAME_2 BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ITERATION_PARAMS_2)
-#    if BOOST_PP_ARRAY_SIZE(BOOST_PP_ITERATION_PARAMS_2) >= 4
-#        define BOOST_PP_ITERATION_FLAGS_2() BOOST_PP_ARRAY_ELEM(3, BOOST_PP_ITERATION_PARAMS_2)
-#    else
-#        define BOOST_PP_ITERATION_FLAGS_2() 0
-#    endif
-# else
-#    error BOOST_PP_ERROR:  depth #2 iteration boundaries or filename not defined
-# endif
-#
-# undef BOOST_PP_ITERATION_DEPTH
-# define BOOST_PP_ITERATION_DEPTH() 2
-#
-# if (BOOST_PP_ITERATION_START_2) > (BOOST_PP_ITERATION_FINISH_2)
-#    include <boost/preprocessor/iteration/detail/iter/reverse2.hpp>
-# else
-#    if BOOST_PP_ITERATION_START_2 <= 0 && BOOST_PP_ITERATION_FINISH_2 >= 0
-#        define BOOST_PP_ITERATION_2 0
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 1 && BOOST_PP_ITERATION_FINISH_2 >= 1
-#        define BOOST_PP_ITERATION_2 1
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 2 && BOOST_PP_ITERATION_FINISH_2 >= 2
-#        define BOOST_PP_ITERATION_2 2
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 3 && BOOST_PP_ITERATION_FINISH_2 >= 3
-#        define BOOST_PP_ITERATION_2 3
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 4 && BOOST_PP_ITERATION_FINISH_2 >= 4
-#        define BOOST_PP_ITERATION_2 4
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 5 && BOOST_PP_ITERATION_FINISH_2 >= 5
-#        define BOOST_PP_ITERATION_2 5
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 6 && BOOST_PP_ITERATION_FINISH_2 >= 6
-#        define BOOST_PP_ITERATION_2 6
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 7 && BOOST_PP_ITERATION_FINISH_2 >= 7
-#        define BOOST_PP_ITERATION_2 7
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 8 && BOOST_PP_ITERATION_FINISH_2 >= 8
-#        define BOOST_PP_ITERATION_2 8
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 9 && BOOST_PP_ITERATION_FINISH_2 >= 9
-#        define BOOST_PP_ITERATION_2 9
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 10 && BOOST_PP_ITERATION_FINISH_2 >= 10
-#        define BOOST_PP_ITERATION_2 10
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 11 && BOOST_PP_ITERATION_FINISH_2 >= 11
-#        define BOOST_PP_ITERATION_2 11
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 12 && BOOST_PP_ITERATION_FINISH_2 >= 12
-#        define BOOST_PP_ITERATION_2 12
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 13 && BOOST_PP_ITERATION_FINISH_2 >= 13
-#        define BOOST_PP_ITERATION_2 13
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 14 && BOOST_PP_ITERATION_FINISH_2 >= 14
-#        define BOOST_PP_ITERATION_2 14
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 15 && BOOST_PP_ITERATION_FINISH_2 >= 15
-#        define BOOST_PP_ITERATION_2 15
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 16 && BOOST_PP_ITERATION_FINISH_2 >= 16
-#        define BOOST_PP_ITERATION_2 16
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 17 && BOOST_PP_ITERATION_FINISH_2 >= 17
-#        define BOOST_PP_ITERATION_2 17
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 18 && BOOST_PP_ITERATION_FINISH_2 >= 18
-#        define BOOST_PP_ITERATION_2 18
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 19 && BOOST_PP_ITERATION_FINISH_2 >= 19
-#        define BOOST_PP_ITERATION_2 19
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 20 && BOOST_PP_ITERATION_FINISH_2 >= 20
-#        define BOOST_PP_ITERATION_2 20
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 21 && BOOST_PP_ITERATION_FINISH_2 >= 21
-#        define BOOST_PP_ITERATION_2 21
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 22 && BOOST_PP_ITERATION_FINISH_2 >= 22
-#        define BOOST_PP_ITERATION_2 22
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 23 && BOOST_PP_ITERATION_FINISH_2 >= 23
-#        define BOOST_PP_ITERATION_2 23
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 24 && BOOST_PP_ITERATION_FINISH_2 >= 24
-#        define BOOST_PP_ITERATION_2 24
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 25 && BOOST_PP_ITERATION_FINISH_2 >= 25
-#        define BOOST_PP_ITERATION_2 25
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 26 && BOOST_PP_ITERATION_FINISH_2 >= 26
-#        define BOOST_PP_ITERATION_2 26
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 27 && BOOST_PP_ITERATION_FINISH_2 >= 27
-#        define BOOST_PP_ITERATION_2 27
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 28 && BOOST_PP_ITERATION_FINISH_2 >= 28
-#        define BOOST_PP_ITERATION_2 28
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 29 && BOOST_PP_ITERATION_FINISH_2 >= 29
-#        define BOOST_PP_ITERATION_2 29
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 30 && BOOST_PP_ITERATION_FINISH_2 >= 30
-#        define BOOST_PP_ITERATION_2 30
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 31 && BOOST_PP_ITERATION_FINISH_2 >= 31
-#        define BOOST_PP_ITERATION_2 31
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 32 && BOOST_PP_ITERATION_FINISH_2 >= 32
-#        define BOOST_PP_ITERATION_2 32
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 33 && BOOST_PP_ITERATION_FINISH_2 >= 33
-#        define BOOST_PP_ITERATION_2 33
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 34 && BOOST_PP_ITERATION_FINISH_2 >= 34
-#        define BOOST_PP_ITERATION_2 34
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 35 && BOOST_PP_ITERATION_FINISH_2 >= 35
-#        define BOOST_PP_ITERATION_2 35
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 36 && BOOST_PP_ITERATION_FINISH_2 >= 36
-#        define BOOST_PP_ITERATION_2 36
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 37 && BOOST_PP_ITERATION_FINISH_2 >= 37
-#        define BOOST_PP_ITERATION_2 37
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 38 && BOOST_PP_ITERATION_FINISH_2 >= 38
-#        define BOOST_PP_ITERATION_2 38
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 39 && BOOST_PP_ITERATION_FINISH_2 >= 39
-#        define BOOST_PP_ITERATION_2 39
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 40 && BOOST_PP_ITERATION_FINISH_2 >= 40
-#        define BOOST_PP_ITERATION_2 40
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 41 && BOOST_PP_ITERATION_FINISH_2 >= 41
-#        define BOOST_PP_ITERATION_2 41
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 42 && BOOST_PP_ITERATION_FINISH_2 >= 42
-#        define BOOST_PP_ITERATION_2 42
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 43 && BOOST_PP_ITERATION_FINISH_2 >= 43
-#        define BOOST_PP_ITERATION_2 43
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 44 && BOOST_PP_ITERATION_FINISH_2 >= 44
-#        define BOOST_PP_ITERATION_2 44
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 45 && BOOST_PP_ITERATION_FINISH_2 >= 45
-#        define BOOST_PP_ITERATION_2 45
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 46 && BOOST_PP_ITERATION_FINISH_2 >= 46
-#        define BOOST_PP_ITERATION_2 46
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 47 && BOOST_PP_ITERATION_FINISH_2 >= 47
-#        define BOOST_PP_ITERATION_2 47
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 48 && BOOST_PP_ITERATION_FINISH_2 >= 48
-#        define BOOST_PP_ITERATION_2 48
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 49 && BOOST_PP_ITERATION_FINISH_2 >= 49
-#        define BOOST_PP_ITERATION_2 49
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 50 && BOOST_PP_ITERATION_FINISH_2 >= 50
-#        define BOOST_PP_ITERATION_2 50
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 51 && BOOST_PP_ITERATION_FINISH_2 >= 51
-#        define BOOST_PP_ITERATION_2 51
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 52 && BOOST_PP_ITERATION_FINISH_2 >= 52
-#        define BOOST_PP_ITERATION_2 52
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 53 && BOOST_PP_ITERATION_FINISH_2 >= 53
-#        define BOOST_PP_ITERATION_2 53
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 54 && BOOST_PP_ITERATION_FINISH_2 >= 54
-#        define BOOST_PP_ITERATION_2 54
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 55 && BOOST_PP_ITERATION_FINISH_2 >= 55
-#        define BOOST_PP_ITERATION_2 55
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 56 && BOOST_PP_ITERATION_FINISH_2 >= 56
-#        define BOOST_PP_ITERATION_2 56
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 57 && BOOST_PP_ITERATION_FINISH_2 >= 57
-#        define BOOST_PP_ITERATION_2 57
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 58 && BOOST_PP_ITERATION_FINISH_2 >= 58
-#        define BOOST_PP_ITERATION_2 58
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 59 && BOOST_PP_ITERATION_FINISH_2 >= 59
-#        define BOOST_PP_ITERATION_2 59
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 60 && BOOST_PP_ITERATION_FINISH_2 >= 60
-#        define BOOST_PP_ITERATION_2 60
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 61 && BOOST_PP_ITERATION_FINISH_2 >= 61
-#        define BOOST_PP_ITERATION_2 61
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 62 && BOOST_PP_ITERATION_FINISH_2 >= 62
-#        define BOOST_PP_ITERATION_2 62
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 63 && BOOST_PP_ITERATION_FINISH_2 >= 63
-#        define BOOST_PP_ITERATION_2 63
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 64 && BOOST_PP_ITERATION_FINISH_2 >= 64
-#        define BOOST_PP_ITERATION_2 64
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 65 && BOOST_PP_ITERATION_FINISH_2 >= 65
-#        define BOOST_PP_ITERATION_2 65
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 66 && BOOST_PP_ITERATION_FINISH_2 >= 66
-#        define BOOST_PP_ITERATION_2 66
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 67 && BOOST_PP_ITERATION_FINISH_2 >= 67
-#        define BOOST_PP_ITERATION_2 67
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 68 && BOOST_PP_ITERATION_FINISH_2 >= 68
-#        define BOOST_PP_ITERATION_2 68
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 69 && BOOST_PP_ITERATION_FINISH_2 >= 69
-#        define BOOST_PP_ITERATION_2 69
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 70 && BOOST_PP_ITERATION_FINISH_2 >= 70
-#        define BOOST_PP_ITERATION_2 70
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 71 && BOOST_PP_ITERATION_FINISH_2 >= 71
-#        define BOOST_PP_ITERATION_2 71
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 72 && BOOST_PP_ITERATION_FINISH_2 >= 72
-#        define BOOST_PP_ITERATION_2 72
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 73 && BOOST_PP_ITERATION_FINISH_2 >= 73
-#        define BOOST_PP_ITERATION_2 73
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 74 && BOOST_PP_ITERATION_FINISH_2 >= 74
-#        define BOOST_PP_ITERATION_2 74
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 75 && BOOST_PP_ITERATION_FINISH_2 >= 75
-#        define BOOST_PP_ITERATION_2 75
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 76 && BOOST_PP_ITERATION_FINISH_2 >= 76
-#        define BOOST_PP_ITERATION_2 76
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 77 && BOOST_PP_ITERATION_FINISH_2 >= 77
-#        define BOOST_PP_ITERATION_2 77
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 78 && BOOST_PP_ITERATION_FINISH_2 >= 78
-#        define BOOST_PP_ITERATION_2 78
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 79 && BOOST_PP_ITERATION_FINISH_2 >= 79
-#        define BOOST_PP_ITERATION_2 79
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 80 && BOOST_PP_ITERATION_FINISH_2 >= 80
-#        define BOOST_PP_ITERATION_2 80
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 81 && BOOST_PP_ITERATION_FINISH_2 >= 81
-#        define BOOST_PP_ITERATION_2 81
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 82 && BOOST_PP_ITERATION_FINISH_2 >= 82
-#        define BOOST_PP_ITERATION_2 82
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 83 && BOOST_PP_ITERATION_FINISH_2 >= 83
-#        define BOOST_PP_ITERATION_2 83
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 84 && BOOST_PP_ITERATION_FINISH_2 >= 84
-#        define BOOST_PP_ITERATION_2 84
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 85 && BOOST_PP_ITERATION_FINISH_2 >= 85
-#        define BOOST_PP_ITERATION_2 85
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 86 && BOOST_PP_ITERATION_FINISH_2 >= 86
-#        define BOOST_PP_ITERATION_2 86
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 87 && BOOST_PP_ITERATION_FINISH_2 >= 87
-#        define BOOST_PP_ITERATION_2 87
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 88 && BOOST_PP_ITERATION_FINISH_2 >= 88
-#        define BOOST_PP_ITERATION_2 88
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 89 && BOOST_PP_ITERATION_FINISH_2 >= 89
-#        define BOOST_PP_ITERATION_2 89
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 90 && BOOST_PP_ITERATION_FINISH_2 >= 90
-#        define BOOST_PP_ITERATION_2 90
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 91 && BOOST_PP_ITERATION_FINISH_2 >= 91
-#        define BOOST_PP_ITERATION_2 91
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 92 && BOOST_PP_ITERATION_FINISH_2 >= 92
-#        define BOOST_PP_ITERATION_2 92
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 93 && BOOST_PP_ITERATION_FINISH_2 >= 93
-#        define BOOST_PP_ITERATION_2 93
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 94 && BOOST_PP_ITERATION_FINISH_2 >= 94
-#        define BOOST_PP_ITERATION_2 94
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 95 && BOOST_PP_ITERATION_FINISH_2 >= 95
-#        define BOOST_PP_ITERATION_2 95
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 96 && BOOST_PP_ITERATION_FINISH_2 >= 96
-#        define BOOST_PP_ITERATION_2 96
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 97 && BOOST_PP_ITERATION_FINISH_2 >= 97
-#        define BOOST_PP_ITERATION_2 97
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 98 && BOOST_PP_ITERATION_FINISH_2 >= 98
-#        define BOOST_PP_ITERATION_2 98
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 99 && BOOST_PP_ITERATION_FINISH_2 >= 99
-#        define BOOST_PP_ITERATION_2 99
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 100 && BOOST_PP_ITERATION_FINISH_2 >= 100
-#        define BOOST_PP_ITERATION_2 100
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 101 && BOOST_PP_ITERATION_FINISH_2 >= 101
-#        define BOOST_PP_ITERATION_2 101
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 102 && BOOST_PP_ITERATION_FINISH_2 >= 102
-#        define BOOST_PP_ITERATION_2 102
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 103 && BOOST_PP_ITERATION_FINISH_2 >= 103
-#        define BOOST_PP_ITERATION_2 103
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 104 && BOOST_PP_ITERATION_FINISH_2 >= 104
-#        define BOOST_PP_ITERATION_2 104
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 105 && BOOST_PP_ITERATION_FINISH_2 >= 105
-#        define BOOST_PP_ITERATION_2 105
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 106 && BOOST_PP_ITERATION_FINISH_2 >= 106
-#        define BOOST_PP_ITERATION_2 106
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 107 && BOOST_PP_ITERATION_FINISH_2 >= 107
-#        define BOOST_PP_ITERATION_2 107
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 108 && BOOST_PP_ITERATION_FINISH_2 >= 108
-#        define BOOST_PP_ITERATION_2 108
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 109 && BOOST_PP_ITERATION_FINISH_2 >= 109
-#        define BOOST_PP_ITERATION_2 109
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 110 && BOOST_PP_ITERATION_FINISH_2 >= 110
-#        define BOOST_PP_ITERATION_2 110
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 111 && BOOST_PP_ITERATION_FINISH_2 >= 111
-#        define BOOST_PP_ITERATION_2 111
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 112 && BOOST_PP_ITERATION_FINISH_2 >= 112
-#        define BOOST_PP_ITERATION_2 112
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 113 && BOOST_PP_ITERATION_FINISH_2 >= 113
-#        define BOOST_PP_ITERATION_2 113
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 114 && BOOST_PP_ITERATION_FINISH_2 >= 114
-#        define BOOST_PP_ITERATION_2 114
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 115 && BOOST_PP_ITERATION_FINISH_2 >= 115
-#        define BOOST_PP_ITERATION_2 115
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 116 && BOOST_PP_ITERATION_FINISH_2 >= 116
-#        define BOOST_PP_ITERATION_2 116
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 117 && BOOST_PP_ITERATION_FINISH_2 >= 117
-#        define BOOST_PP_ITERATION_2 117
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 118 && BOOST_PP_ITERATION_FINISH_2 >= 118
-#        define BOOST_PP_ITERATION_2 118
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 119 && BOOST_PP_ITERATION_FINISH_2 >= 119
-#        define BOOST_PP_ITERATION_2 119
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 120 && BOOST_PP_ITERATION_FINISH_2 >= 120
-#        define BOOST_PP_ITERATION_2 120
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 121 && BOOST_PP_ITERATION_FINISH_2 >= 121
-#        define BOOST_PP_ITERATION_2 121
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 122 && BOOST_PP_ITERATION_FINISH_2 >= 122
-#        define BOOST_PP_ITERATION_2 122
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 123 && BOOST_PP_ITERATION_FINISH_2 >= 123
-#        define BOOST_PP_ITERATION_2 123
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 124 && BOOST_PP_ITERATION_FINISH_2 >= 124
-#        define BOOST_PP_ITERATION_2 124
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 125 && BOOST_PP_ITERATION_FINISH_2 >= 125
-#        define BOOST_PP_ITERATION_2 125
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 126 && BOOST_PP_ITERATION_FINISH_2 >= 126
-#        define BOOST_PP_ITERATION_2 126
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 127 && BOOST_PP_ITERATION_FINISH_2 >= 127
-#        define BOOST_PP_ITERATION_2 127
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 128 && BOOST_PP_ITERATION_FINISH_2 >= 128
-#        define BOOST_PP_ITERATION_2 128
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 129 && BOOST_PP_ITERATION_FINISH_2 >= 129
-#        define BOOST_PP_ITERATION_2 129
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 130 && BOOST_PP_ITERATION_FINISH_2 >= 130
-#        define BOOST_PP_ITERATION_2 130
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 131 && BOOST_PP_ITERATION_FINISH_2 >= 131
-#        define BOOST_PP_ITERATION_2 131
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 132 && BOOST_PP_ITERATION_FINISH_2 >= 132
-#        define BOOST_PP_ITERATION_2 132
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 133 && BOOST_PP_ITERATION_FINISH_2 >= 133
-#        define BOOST_PP_ITERATION_2 133
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 134 && BOOST_PP_ITERATION_FINISH_2 >= 134
-#        define BOOST_PP_ITERATION_2 134
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 135 && BOOST_PP_ITERATION_FINISH_2 >= 135
-#        define BOOST_PP_ITERATION_2 135
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 136 && BOOST_PP_ITERATION_FINISH_2 >= 136
-#        define BOOST_PP_ITERATION_2 136
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 137 && BOOST_PP_ITERATION_FINISH_2 >= 137
-#        define BOOST_PP_ITERATION_2 137
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 138 && BOOST_PP_ITERATION_FINISH_2 >= 138
-#        define BOOST_PP_ITERATION_2 138
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 139 && BOOST_PP_ITERATION_FINISH_2 >= 139
-#        define BOOST_PP_ITERATION_2 139
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 140 && BOOST_PP_ITERATION_FINISH_2 >= 140
-#        define BOOST_PP_ITERATION_2 140
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 141 && BOOST_PP_ITERATION_FINISH_2 >= 141
-#        define BOOST_PP_ITERATION_2 141
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 142 && BOOST_PP_ITERATION_FINISH_2 >= 142
-#        define BOOST_PP_ITERATION_2 142
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 143 && BOOST_PP_ITERATION_FINISH_2 >= 143
-#        define BOOST_PP_ITERATION_2 143
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 144 && BOOST_PP_ITERATION_FINISH_2 >= 144
-#        define BOOST_PP_ITERATION_2 144
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 145 && BOOST_PP_ITERATION_FINISH_2 >= 145
-#        define BOOST_PP_ITERATION_2 145
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 146 && BOOST_PP_ITERATION_FINISH_2 >= 146
-#        define BOOST_PP_ITERATION_2 146
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 147 && BOOST_PP_ITERATION_FINISH_2 >= 147
-#        define BOOST_PP_ITERATION_2 147
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 148 && BOOST_PP_ITERATION_FINISH_2 >= 148
-#        define BOOST_PP_ITERATION_2 148
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 149 && BOOST_PP_ITERATION_FINISH_2 >= 149
-#        define BOOST_PP_ITERATION_2 149
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 150 && BOOST_PP_ITERATION_FINISH_2 >= 150
-#        define BOOST_PP_ITERATION_2 150
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 151 && BOOST_PP_ITERATION_FINISH_2 >= 151
-#        define BOOST_PP_ITERATION_2 151
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 152 && BOOST_PP_ITERATION_FINISH_2 >= 152
-#        define BOOST_PP_ITERATION_2 152
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 153 && BOOST_PP_ITERATION_FINISH_2 >= 153
-#        define BOOST_PP_ITERATION_2 153
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 154 && BOOST_PP_ITERATION_FINISH_2 >= 154
-#        define BOOST_PP_ITERATION_2 154
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 155 && BOOST_PP_ITERATION_FINISH_2 >= 155
-#        define BOOST_PP_ITERATION_2 155
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 156 && BOOST_PP_ITERATION_FINISH_2 >= 156
-#        define BOOST_PP_ITERATION_2 156
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 157 && BOOST_PP_ITERATION_FINISH_2 >= 157
-#        define BOOST_PP_ITERATION_2 157
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 158 && BOOST_PP_ITERATION_FINISH_2 >= 158
-#        define BOOST_PP_ITERATION_2 158
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 159 && BOOST_PP_ITERATION_FINISH_2 >= 159
-#        define BOOST_PP_ITERATION_2 159
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 160 && BOOST_PP_ITERATION_FINISH_2 >= 160
-#        define BOOST_PP_ITERATION_2 160
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 161 && BOOST_PP_ITERATION_FINISH_2 >= 161
-#        define BOOST_PP_ITERATION_2 161
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 162 && BOOST_PP_ITERATION_FINISH_2 >= 162
-#        define BOOST_PP_ITERATION_2 162
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 163 && BOOST_PP_ITERATION_FINISH_2 >= 163
-#        define BOOST_PP_ITERATION_2 163
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 164 && BOOST_PP_ITERATION_FINISH_2 >= 164
-#        define BOOST_PP_ITERATION_2 164
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 165 && BOOST_PP_ITERATION_FINISH_2 >= 165
-#        define BOOST_PP_ITERATION_2 165
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 166 && BOOST_PP_ITERATION_FINISH_2 >= 166
-#        define BOOST_PP_ITERATION_2 166
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 167 && BOOST_PP_ITERATION_FINISH_2 >= 167
-#        define BOOST_PP_ITERATION_2 167
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 168 && BOOST_PP_ITERATION_FINISH_2 >= 168
-#        define BOOST_PP_ITERATION_2 168
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 169 && BOOST_PP_ITERATION_FINISH_2 >= 169
-#        define BOOST_PP_ITERATION_2 169
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 170 && BOOST_PP_ITERATION_FINISH_2 >= 170
-#        define BOOST_PP_ITERATION_2 170
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 171 && BOOST_PP_ITERATION_FINISH_2 >= 171
-#        define BOOST_PP_ITERATION_2 171
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 172 && BOOST_PP_ITERATION_FINISH_2 >= 172
-#        define BOOST_PP_ITERATION_2 172
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 173 && BOOST_PP_ITERATION_FINISH_2 >= 173
-#        define BOOST_PP_ITERATION_2 173
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 174 && BOOST_PP_ITERATION_FINISH_2 >= 174
-#        define BOOST_PP_ITERATION_2 174
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 175 && BOOST_PP_ITERATION_FINISH_2 >= 175
-#        define BOOST_PP_ITERATION_2 175
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 176 && BOOST_PP_ITERATION_FINISH_2 >= 176
-#        define BOOST_PP_ITERATION_2 176
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 177 && BOOST_PP_ITERATION_FINISH_2 >= 177
-#        define BOOST_PP_ITERATION_2 177
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 178 && BOOST_PP_ITERATION_FINISH_2 >= 178
-#        define BOOST_PP_ITERATION_2 178
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 179 && BOOST_PP_ITERATION_FINISH_2 >= 179
-#        define BOOST_PP_ITERATION_2 179
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 180 && BOOST_PP_ITERATION_FINISH_2 >= 180
-#        define BOOST_PP_ITERATION_2 180
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 181 && BOOST_PP_ITERATION_FINISH_2 >= 181
-#        define BOOST_PP_ITERATION_2 181
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 182 && BOOST_PP_ITERATION_FINISH_2 >= 182
-#        define BOOST_PP_ITERATION_2 182
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 183 && BOOST_PP_ITERATION_FINISH_2 >= 183
-#        define BOOST_PP_ITERATION_2 183
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 184 && BOOST_PP_ITERATION_FINISH_2 >= 184
-#        define BOOST_PP_ITERATION_2 184
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 185 && BOOST_PP_ITERATION_FINISH_2 >= 185
-#        define BOOST_PP_ITERATION_2 185
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 186 && BOOST_PP_ITERATION_FINISH_2 >= 186
-#        define BOOST_PP_ITERATION_2 186
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 187 && BOOST_PP_ITERATION_FINISH_2 >= 187
-#        define BOOST_PP_ITERATION_2 187
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 188 && BOOST_PP_ITERATION_FINISH_2 >= 188
-#        define BOOST_PP_ITERATION_2 188
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 189 && BOOST_PP_ITERATION_FINISH_2 >= 189
-#        define BOOST_PP_ITERATION_2 189
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 190 && BOOST_PP_ITERATION_FINISH_2 >= 190
-#        define BOOST_PP_ITERATION_2 190
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 191 && BOOST_PP_ITERATION_FINISH_2 >= 191
-#        define BOOST_PP_ITERATION_2 191
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 192 && BOOST_PP_ITERATION_FINISH_2 >= 192
-#        define BOOST_PP_ITERATION_2 192
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 193 && BOOST_PP_ITERATION_FINISH_2 >= 193
-#        define BOOST_PP_ITERATION_2 193
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 194 && BOOST_PP_ITERATION_FINISH_2 >= 194
-#        define BOOST_PP_ITERATION_2 194
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 195 && BOOST_PP_ITERATION_FINISH_2 >= 195
-#        define BOOST_PP_ITERATION_2 195
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 196 && BOOST_PP_ITERATION_FINISH_2 >= 196
-#        define BOOST_PP_ITERATION_2 196
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 197 && BOOST_PP_ITERATION_FINISH_2 >= 197
-#        define BOOST_PP_ITERATION_2 197
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 198 && BOOST_PP_ITERATION_FINISH_2 >= 198
-#        define BOOST_PP_ITERATION_2 198
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 199 && BOOST_PP_ITERATION_FINISH_2 >= 199
-#        define BOOST_PP_ITERATION_2 199
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 200 && BOOST_PP_ITERATION_FINISH_2 >= 200
-#        define BOOST_PP_ITERATION_2 200
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 201 && BOOST_PP_ITERATION_FINISH_2 >= 201
-#        define BOOST_PP_ITERATION_2 201
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 202 && BOOST_PP_ITERATION_FINISH_2 >= 202
-#        define BOOST_PP_ITERATION_2 202
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 203 && BOOST_PP_ITERATION_FINISH_2 >= 203
-#        define BOOST_PP_ITERATION_2 203
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 204 && BOOST_PP_ITERATION_FINISH_2 >= 204
-#        define BOOST_PP_ITERATION_2 204
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 205 && BOOST_PP_ITERATION_FINISH_2 >= 205
-#        define BOOST_PP_ITERATION_2 205
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 206 && BOOST_PP_ITERATION_FINISH_2 >= 206
-#        define BOOST_PP_ITERATION_2 206
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 207 && BOOST_PP_ITERATION_FINISH_2 >= 207
-#        define BOOST_PP_ITERATION_2 207
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 208 && BOOST_PP_ITERATION_FINISH_2 >= 208
-#        define BOOST_PP_ITERATION_2 208
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 209 && BOOST_PP_ITERATION_FINISH_2 >= 209
-#        define BOOST_PP_ITERATION_2 209
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 210 && BOOST_PP_ITERATION_FINISH_2 >= 210
-#        define BOOST_PP_ITERATION_2 210
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 211 && BOOST_PP_ITERATION_FINISH_2 >= 211
-#        define BOOST_PP_ITERATION_2 211
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 212 && BOOST_PP_ITERATION_FINISH_2 >= 212
-#        define BOOST_PP_ITERATION_2 212
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 213 && BOOST_PP_ITERATION_FINISH_2 >= 213
-#        define BOOST_PP_ITERATION_2 213
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 214 && BOOST_PP_ITERATION_FINISH_2 >= 214
-#        define BOOST_PP_ITERATION_2 214
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 215 && BOOST_PP_ITERATION_FINISH_2 >= 215
-#        define BOOST_PP_ITERATION_2 215
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 216 && BOOST_PP_ITERATION_FINISH_2 >= 216
-#        define BOOST_PP_ITERATION_2 216
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 217 && BOOST_PP_ITERATION_FINISH_2 >= 217
-#        define BOOST_PP_ITERATION_2 217
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 218 && BOOST_PP_ITERATION_FINISH_2 >= 218
-#        define BOOST_PP_ITERATION_2 218
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 219 && BOOST_PP_ITERATION_FINISH_2 >= 219
-#        define BOOST_PP_ITERATION_2 219
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 220 && BOOST_PP_ITERATION_FINISH_2 >= 220
-#        define BOOST_PP_ITERATION_2 220
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 221 && BOOST_PP_ITERATION_FINISH_2 >= 221
-#        define BOOST_PP_ITERATION_2 221
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 222 && BOOST_PP_ITERATION_FINISH_2 >= 222
-#        define BOOST_PP_ITERATION_2 222
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 223 && BOOST_PP_ITERATION_FINISH_2 >= 223
-#        define BOOST_PP_ITERATION_2 223
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 224 && BOOST_PP_ITERATION_FINISH_2 >= 224
-#        define BOOST_PP_ITERATION_2 224
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 225 && BOOST_PP_ITERATION_FINISH_2 >= 225
-#        define BOOST_PP_ITERATION_2 225
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 226 && BOOST_PP_ITERATION_FINISH_2 >= 226
-#        define BOOST_PP_ITERATION_2 226
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 227 && BOOST_PP_ITERATION_FINISH_2 >= 227
-#        define BOOST_PP_ITERATION_2 227
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 228 && BOOST_PP_ITERATION_FINISH_2 >= 228
-#        define BOOST_PP_ITERATION_2 228
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 229 && BOOST_PP_ITERATION_FINISH_2 >= 229
-#        define BOOST_PP_ITERATION_2 229
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 230 && BOOST_PP_ITERATION_FINISH_2 >= 230
-#        define BOOST_PP_ITERATION_2 230
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 231 && BOOST_PP_ITERATION_FINISH_2 >= 231
-#        define BOOST_PP_ITERATION_2 231
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 232 && BOOST_PP_ITERATION_FINISH_2 >= 232
-#        define BOOST_PP_ITERATION_2 232
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 233 && BOOST_PP_ITERATION_FINISH_2 >= 233
-#        define BOOST_PP_ITERATION_2 233
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 234 && BOOST_PP_ITERATION_FINISH_2 >= 234
-#        define BOOST_PP_ITERATION_2 234
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 235 && BOOST_PP_ITERATION_FINISH_2 >= 235
-#        define BOOST_PP_ITERATION_2 235
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 236 && BOOST_PP_ITERATION_FINISH_2 >= 236
-#        define BOOST_PP_ITERATION_2 236
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 237 && BOOST_PP_ITERATION_FINISH_2 >= 237
-#        define BOOST_PP_ITERATION_2 237
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 238 && BOOST_PP_ITERATION_FINISH_2 >= 238
-#        define BOOST_PP_ITERATION_2 238
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 239 && BOOST_PP_ITERATION_FINISH_2 >= 239
-#        define BOOST_PP_ITERATION_2 239
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 240 && BOOST_PP_ITERATION_FINISH_2 >= 240
-#        define BOOST_PP_ITERATION_2 240
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 241 && BOOST_PP_ITERATION_FINISH_2 >= 241
-#        define BOOST_PP_ITERATION_2 241
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 242 && BOOST_PP_ITERATION_FINISH_2 >= 242
-#        define BOOST_PP_ITERATION_2 242
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 243 && BOOST_PP_ITERATION_FINISH_2 >= 243
-#        define BOOST_PP_ITERATION_2 243
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 244 && BOOST_PP_ITERATION_FINISH_2 >= 244
-#        define BOOST_PP_ITERATION_2 244
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 245 && BOOST_PP_ITERATION_FINISH_2 >= 245
-#        define BOOST_PP_ITERATION_2 245
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 246 && BOOST_PP_ITERATION_FINISH_2 >= 246
-#        define BOOST_PP_ITERATION_2 246
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 247 && BOOST_PP_ITERATION_FINISH_2 >= 247
-#        define BOOST_PP_ITERATION_2 247
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 248 && BOOST_PP_ITERATION_FINISH_2 >= 248
-#        define BOOST_PP_ITERATION_2 248
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 249 && BOOST_PP_ITERATION_FINISH_2 >= 249
-#        define BOOST_PP_ITERATION_2 249
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 250 && BOOST_PP_ITERATION_FINISH_2 >= 250
-#        define BOOST_PP_ITERATION_2 250
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 251 && BOOST_PP_ITERATION_FINISH_2 >= 251
-#        define BOOST_PP_ITERATION_2 251
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 252 && BOOST_PP_ITERATION_FINISH_2 >= 252
-#        define BOOST_PP_ITERATION_2 252
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 253 && BOOST_PP_ITERATION_FINISH_2 >= 253
-#        define BOOST_PP_ITERATION_2 253
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 254 && BOOST_PP_ITERATION_FINISH_2 >= 254
-#        define BOOST_PP_ITERATION_2 254
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 255 && BOOST_PP_ITERATION_FINISH_2 >= 255
-#        define BOOST_PP_ITERATION_2 255
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-#    if BOOST_PP_ITERATION_START_2 <= 256 && BOOST_PP_ITERATION_FINISH_2 >= 256
-#        define BOOST_PP_ITERATION_2 256
-#        include BOOST_PP_FILENAME_2
-#        undef BOOST_PP_ITERATION_2
-#    endif
-# endif
-#
-# undef BOOST_PP_ITERATION_DEPTH
-# define BOOST_PP_ITERATION_DEPTH() 1
-#
-# undef BOOST_PP_ITERATION_START_2
-# undef BOOST_PP_ITERATION_FINISH_2
-# undef BOOST_PP_FILENAME_2
-#
-# undef BOOST_PP_ITERATION_FLAGS_2
-# undef BOOST_PP_ITERATION_PARAMS_2
diff --git a/boost/preprocessor/iteration/detail/iter/forward3.hpp b/boost/preprocessor/iteration/detail/iter/forward3.hpp
deleted file mode 100644
index e68966f..0000000
--- a/boost/preprocessor/iteration/detail/iter/forward3.hpp
+++ /dev/null
@@ -1,1338 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# if defined(BOOST_PP_ITERATION_LIMITS)
-#    if !defined(BOOST_PP_FILENAME_3)
-#        error BOOST_PP_ERROR:  depth #3 filename is not defined
-#    endif
-#    define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_ITERATION_LIMITS)
-#    include <boost/preprocessor/iteration/detail/bounds/lower3.hpp>
-#    define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_ITERATION_LIMITS)
-#    include <boost/preprocessor/iteration/detail/bounds/upper3.hpp>
-#    define BOOST_PP_ITERATION_FLAGS_3() 0
-#    undef BOOST_PP_ITERATION_LIMITS
-# elif defined(BOOST_PP_ITERATION_PARAMS_3)
-#    define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ITERATION_PARAMS_3)
-#    include <boost/preprocessor/iteration/detail/bounds/lower3.hpp>
-#    define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, BOOST_PP_ITERATION_PARAMS_3)
-#    include <boost/preprocessor/iteration/detail/bounds/upper3.hpp>
-#    define BOOST_PP_FILENAME_3 BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ITERATION_PARAMS_3)
-#    if BOOST_PP_ARRAY_SIZE(BOOST_PP_ITERATION_PARAMS_3) >= 4
-#        define BOOST_PP_ITERATION_FLAGS_3() BOOST_PP_ARRAY_ELEM(3, BOOST_PP_ITERATION_PARAMS_3)
-#    else
-#        define BOOST_PP_ITERATION_FLAGS_3() 0
-#    endif
-# else
-#    error BOOST_PP_ERROR:  depth #3 iteration boundaries or filename not defined
-# endif
-#
-# undef BOOST_PP_ITERATION_DEPTH
-# define BOOST_PP_ITERATION_DEPTH() 3
-#
-# if (BOOST_PP_ITERATION_START_3) > (BOOST_PP_ITERATION_FINISH_3)
-#    include <boost/preprocessor/iteration/detail/iter/reverse3.hpp>
-# else
-#    if BOOST_PP_ITERATION_START_3 <= 0 && BOOST_PP_ITERATION_FINISH_3 >= 0
-#        define BOOST_PP_ITERATION_3 0
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 1 && BOOST_PP_ITERATION_FINISH_3 >= 1
-#        define BOOST_PP_ITERATION_3 1
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 2 && BOOST_PP_ITERATION_FINISH_3 >= 2
-#        define BOOST_PP_ITERATION_3 2
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 3 && BOOST_PP_ITERATION_FINISH_3 >= 3
-#        define BOOST_PP_ITERATION_3 3
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 4 && BOOST_PP_ITERATION_FINISH_3 >= 4
-#        define BOOST_PP_ITERATION_3 4
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 5 && BOOST_PP_ITERATION_FINISH_3 >= 5
-#        define BOOST_PP_ITERATION_3 5
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 6 && BOOST_PP_ITERATION_FINISH_3 >= 6
-#        define BOOST_PP_ITERATION_3 6
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 7 && BOOST_PP_ITERATION_FINISH_3 >= 7
-#        define BOOST_PP_ITERATION_3 7
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 8 && BOOST_PP_ITERATION_FINISH_3 >= 8
-#        define BOOST_PP_ITERATION_3 8
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 9 && BOOST_PP_ITERATION_FINISH_3 >= 9
-#        define BOOST_PP_ITERATION_3 9
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 10 && BOOST_PP_ITERATION_FINISH_3 >= 10
-#        define BOOST_PP_ITERATION_3 10
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 11 && BOOST_PP_ITERATION_FINISH_3 >= 11
-#        define BOOST_PP_ITERATION_3 11
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 12 && BOOST_PP_ITERATION_FINISH_3 >= 12
-#        define BOOST_PP_ITERATION_3 12
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 13 && BOOST_PP_ITERATION_FINISH_3 >= 13
-#        define BOOST_PP_ITERATION_3 13
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 14 && BOOST_PP_ITERATION_FINISH_3 >= 14
-#        define BOOST_PP_ITERATION_3 14
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 15 && BOOST_PP_ITERATION_FINISH_3 >= 15
-#        define BOOST_PP_ITERATION_3 15
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 16 && BOOST_PP_ITERATION_FINISH_3 >= 16
-#        define BOOST_PP_ITERATION_3 16
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 17 && BOOST_PP_ITERATION_FINISH_3 >= 17
-#        define BOOST_PP_ITERATION_3 17
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 18 && BOOST_PP_ITERATION_FINISH_3 >= 18
-#        define BOOST_PP_ITERATION_3 18
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 19 && BOOST_PP_ITERATION_FINISH_3 >= 19
-#        define BOOST_PP_ITERATION_3 19
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 20 && BOOST_PP_ITERATION_FINISH_3 >= 20
-#        define BOOST_PP_ITERATION_3 20
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 21 && BOOST_PP_ITERATION_FINISH_3 >= 21
-#        define BOOST_PP_ITERATION_3 21
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 22 && BOOST_PP_ITERATION_FINISH_3 >= 22
-#        define BOOST_PP_ITERATION_3 22
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 23 && BOOST_PP_ITERATION_FINISH_3 >= 23
-#        define BOOST_PP_ITERATION_3 23
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 24 && BOOST_PP_ITERATION_FINISH_3 >= 24
-#        define BOOST_PP_ITERATION_3 24
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 25 && BOOST_PP_ITERATION_FINISH_3 >= 25
-#        define BOOST_PP_ITERATION_3 25
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 26 && BOOST_PP_ITERATION_FINISH_3 >= 26
-#        define BOOST_PP_ITERATION_3 26
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 27 && BOOST_PP_ITERATION_FINISH_3 >= 27
-#        define BOOST_PP_ITERATION_3 27
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 28 && BOOST_PP_ITERATION_FINISH_3 >= 28
-#        define BOOST_PP_ITERATION_3 28
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 29 && BOOST_PP_ITERATION_FINISH_3 >= 29
-#        define BOOST_PP_ITERATION_3 29
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 30 && BOOST_PP_ITERATION_FINISH_3 >= 30
-#        define BOOST_PP_ITERATION_3 30
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 31 && BOOST_PP_ITERATION_FINISH_3 >= 31
-#        define BOOST_PP_ITERATION_3 31
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 32 && BOOST_PP_ITERATION_FINISH_3 >= 32
-#        define BOOST_PP_ITERATION_3 32
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 33 && BOOST_PP_ITERATION_FINISH_3 >= 33
-#        define BOOST_PP_ITERATION_3 33
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 34 && BOOST_PP_ITERATION_FINISH_3 >= 34
-#        define BOOST_PP_ITERATION_3 34
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 35 && BOOST_PP_ITERATION_FINISH_3 >= 35
-#        define BOOST_PP_ITERATION_3 35
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 36 && BOOST_PP_ITERATION_FINISH_3 >= 36
-#        define BOOST_PP_ITERATION_3 36
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 37 && BOOST_PP_ITERATION_FINISH_3 >= 37
-#        define BOOST_PP_ITERATION_3 37
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 38 && BOOST_PP_ITERATION_FINISH_3 >= 38
-#        define BOOST_PP_ITERATION_3 38
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 39 && BOOST_PP_ITERATION_FINISH_3 >= 39
-#        define BOOST_PP_ITERATION_3 39
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 40 && BOOST_PP_ITERATION_FINISH_3 >= 40
-#        define BOOST_PP_ITERATION_3 40
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 41 && BOOST_PP_ITERATION_FINISH_3 >= 41
-#        define BOOST_PP_ITERATION_3 41
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 42 && BOOST_PP_ITERATION_FINISH_3 >= 42
-#        define BOOST_PP_ITERATION_3 42
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 43 && BOOST_PP_ITERATION_FINISH_3 >= 43
-#        define BOOST_PP_ITERATION_3 43
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 44 && BOOST_PP_ITERATION_FINISH_3 >= 44
-#        define BOOST_PP_ITERATION_3 44
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 45 && BOOST_PP_ITERATION_FINISH_3 >= 45
-#        define BOOST_PP_ITERATION_3 45
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 46 && BOOST_PP_ITERATION_FINISH_3 >= 46
-#        define BOOST_PP_ITERATION_3 46
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 47 && BOOST_PP_ITERATION_FINISH_3 >= 47
-#        define BOOST_PP_ITERATION_3 47
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 48 && BOOST_PP_ITERATION_FINISH_3 >= 48
-#        define BOOST_PP_ITERATION_3 48
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 49 && BOOST_PP_ITERATION_FINISH_3 >= 49
-#        define BOOST_PP_ITERATION_3 49
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 50 && BOOST_PP_ITERATION_FINISH_3 >= 50
-#        define BOOST_PP_ITERATION_3 50
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 51 && BOOST_PP_ITERATION_FINISH_3 >= 51
-#        define BOOST_PP_ITERATION_3 51
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 52 && BOOST_PP_ITERATION_FINISH_3 >= 52
-#        define BOOST_PP_ITERATION_3 52
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 53 && BOOST_PP_ITERATION_FINISH_3 >= 53
-#        define BOOST_PP_ITERATION_3 53
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 54 && BOOST_PP_ITERATION_FINISH_3 >= 54
-#        define BOOST_PP_ITERATION_3 54
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 55 && BOOST_PP_ITERATION_FINISH_3 >= 55
-#        define BOOST_PP_ITERATION_3 55
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 56 && BOOST_PP_ITERATION_FINISH_3 >= 56
-#        define BOOST_PP_ITERATION_3 56
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 57 && BOOST_PP_ITERATION_FINISH_3 >= 57
-#        define BOOST_PP_ITERATION_3 57
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 58 && BOOST_PP_ITERATION_FINISH_3 >= 58
-#        define BOOST_PP_ITERATION_3 58
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 59 && BOOST_PP_ITERATION_FINISH_3 >= 59
-#        define BOOST_PP_ITERATION_3 59
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 60 && BOOST_PP_ITERATION_FINISH_3 >= 60
-#        define BOOST_PP_ITERATION_3 60
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 61 && BOOST_PP_ITERATION_FINISH_3 >= 61
-#        define BOOST_PP_ITERATION_3 61
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 62 && BOOST_PP_ITERATION_FINISH_3 >= 62
-#        define BOOST_PP_ITERATION_3 62
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 63 && BOOST_PP_ITERATION_FINISH_3 >= 63
-#        define BOOST_PP_ITERATION_3 63
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 64 && BOOST_PP_ITERATION_FINISH_3 >= 64
-#        define BOOST_PP_ITERATION_3 64
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 65 && BOOST_PP_ITERATION_FINISH_3 >= 65
-#        define BOOST_PP_ITERATION_3 65
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 66 && BOOST_PP_ITERATION_FINISH_3 >= 66
-#        define BOOST_PP_ITERATION_3 66
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 67 && BOOST_PP_ITERATION_FINISH_3 >= 67
-#        define BOOST_PP_ITERATION_3 67
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 68 && BOOST_PP_ITERATION_FINISH_3 >= 68
-#        define BOOST_PP_ITERATION_3 68
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 69 && BOOST_PP_ITERATION_FINISH_3 >= 69
-#        define BOOST_PP_ITERATION_3 69
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 70 && BOOST_PP_ITERATION_FINISH_3 >= 70
-#        define BOOST_PP_ITERATION_3 70
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 71 && BOOST_PP_ITERATION_FINISH_3 >= 71
-#        define BOOST_PP_ITERATION_3 71
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 72 && BOOST_PP_ITERATION_FINISH_3 >= 72
-#        define BOOST_PP_ITERATION_3 72
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 73 && BOOST_PP_ITERATION_FINISH_3 >= 73
-#        define BOOST_PP_ITERATION_3 73
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 74 && BOOST_PP_ITERATION_FINISH_3 >= 74
-#        define BOOST_PP_ITERATION_3 74
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 75 && BOOST_PP_ITERATION_FINISH_3 >= 75
-#        define BOOST_PP_ITERATION_3 75
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 76 && BOOST_PP_ITERATION_FINISH_3 >= 76
-#        define BOOST_PP_ITERATION_3 76
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 77 && BOOST_PP_ITERATION_FINISH_3 >= 77
-#        define BOOST_PP_ITERATION_3 77
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 78 && BOOST_PP_ITERATION_FINISH_3 >= 78
-#        define BOOST_PP_ITERATION_3 78
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 79 && BOOST_PP_ITERATION_FINISH_3 >= 79
-#        define BOOST_PP_ITERATION_3 79
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 80 && BOOST_PP_ITERATION_FINISH_3 >= 80
-#        define BOOST_PP_ITERATION_3 80
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 81 && BOOST_PP_ITERATION_FINISH_3 >= 81
-#        define BOOST_PP_ITERATION_3 81
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 82 && BOOST_PP_ITERATION_FINISH_3 >= 82
-#        define BOOST_PP_ITERATION_3 82
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 83 && BOOST_PP_ITERATION_FINISH_3 >= 83
-#        define BOOST_PP_ITERATION_3 83
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 84 && BOOST_PP_ITERATION_FINISH_3 >= 84
-#        define BOOST_PP_ITERATION_3 84
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 85 && BOOST_PP_ITERATION_FINISH_3 >= 85
-#        define BOOST_PP_ITERATION_3 85
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 86 && BOOST_PP_ITERATION_FINISH_3 >= 86
-#        define BOOST_PP_ITERATION_3 86
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 87 && BOOST_PP_ITERATION_FINISH_3 >= 87
-#        define BOOST_PP_ITERATION_3 87
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 88 && BOOST_PP_ITERATION_FINISH_3 >= 88
-#        define BOOST_PP_ITERATION_3 88
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 89 && BOOST_PP_ITERATION_FINISH_3 >= 89
-#        define BOOST_PP_ITERATION_3 89
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 90 && BOOST_PP_ITERATION_FINISH_3 >= 90
-#        define BOOST_PP_ITERATION_3 90
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 91 && BOOST_PP_ITERATION_FINISH_3 >= 91
-#        define BOOST_PP_ITERATION_3 91
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 92 && BOOST_PP_ITERATION_FINISH_3 >= 92
-#        define BOOST_PP_ITERATION_3 92
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 93 && BOOST_PP_ITERATION_FINISH_3 >= 93
-#        define BOOST_PP_ITERATION_3 93
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 94 && BOOST_PP_ITERATION_FINISH_3 >= 94
-#        define BOOST_PP_ITERATION_3 94
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 95 && BOOST_PP_ITERATION_FINISH_3 >= 95
-#        define BOOST_PP_ITERATION_3 95
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 96 && BOOST_PP_ITERATION_FINISH_3 >= 96
-#        define BOOST_PP_ITERATION_3 96
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 97 && BOOST_PP_ITERATION_FINISH_3 >= 97
-#        define BOOST_PP_ITERATION_3 97
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 98 && BOOST_PP_ITERATION_FINISH_3 >= 98
-#        define BOOST_PP_ITERATION_3 98
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 99 && BOOST_PP_ITERATION_FINISH_3 >= 99
-#        define BOOST_PP_ITERATION_3 99
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 100 && BOOST_PP_ITERATION_FINISH_3 >= 100
-#        define BOOST_PP_ITERATION_3 100
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 101 && BOOST_PP_ITERATION_FINISH_3 >= 101
-#        define BOOST_PP_ITERATION_3 101
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 102 && BOOST_PP_ITERATION_FINISH_3 >= 102
-#        define BOOST_PP_ITERATION_3 102
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 103 && BOOST_PP_ITERATION_FINISH_3 >= 103
-#        define BOOST_PP_ITERATION_3 103
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 104 && BOOST_PP_ITERATION_FINISH_3 >= 104
-#        define BOOST_PP_ITERATION_3 104
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 105 && BOOST_PP_ITERATION_FINISH_3 >= 105
-#        define BOOST_PP_ITERATION_3 105
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 106 && BOOST_PP_ITERATION_FINISH_3 >= 106
-#        define BOOST_PP_ITERATION_3 106
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 107 && BOOST_PP_ITERATION_FINISH_3 >= 107
-#        define BOOST_PP_ITERATION_3 107
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 108 && BOOST_PP_ITERATION_FINISH_3 >= 108
-#        define BOOST_PP_ITERATION_3 108
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 109 && BOOST_PP_ITERATION_FINISH_3 >= 109
-#        define BOOST_PP_ITERATION_3 109
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 110 && BOOST_PP_ITERATION_FINISH_3 >= 110
-#        define BOOST_PP_ITERATION_3 110
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 111 && BOOST_PP_ITERATION_FINISH_3 >= 111
-#        define BOOST_PP_ITERATION_3 111
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 112 && BOOST_PP_ITERATION_FINISH_3 >= 112
-#        define BOOST_PP_ITERATION_3 112
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 113 && BOOST_PP_ITERATION_FINISH_3 >= 113
-#        define BOOST_PP_ITERATION_3 113
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 114 && BOOST_PP_ITERATION_FINISH_3 >= 114
-#        define BOOST_PP_ITERATION_3 114
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 115 && BOOST_PP_ITERATION_FINISH_3 >= 115
-#        define BOOST_PP_ITERATION_3 115
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 116 && BOOST_PP_ITERATION_FINISH_3 >= 116
-#        define BOOST_PP_ITERATION_3 116
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 117 && BOOST_PP_ITERATION_FINISH_3 >= 117
-#        define BOOST_PP_ITERATION_3 117
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 118 && BOOST_PP_ITERATION_FINISH_3 >= 118
-#        define BOOST_PP_ITERATION_3 118
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 119 && BOOST_PP_ITERATION_FINISH_3 >= 119
-#        define BOOST_PP_ITERATION_3 119
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 120 && BOOST_PP_ITERATION_FINISH_3 >= 120
-#        define BOOST_PP_ITERATION_3 120
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 121 && BOOST_PP_ITERATION_FINISH_3 >= 121
-#        define BOOST_PP_ITERATION_3 121
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 122 && BOOST_PP_ITERATION_FINISH_3 >= 122
-#        define BOOST_PP_ITERATION_3 122
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 123 && BOOST_PP_ITERATION_FINISH_3 >= 123
-#        define BOOST_PP_ITERATION_3 123
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 124 && BOOST_PP_ITERATION_FINISH_3 >= 124
-#        define BOOST_PP_ITERATION_3 124
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 125 && BOOST_PP_ITERATION_FINISH_3 >= 125
-#        define BOOST_PP_ITERATION_3 125
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 126 && BOOST_PP_ITERATION_FINISH_3 >= 126
-#        define BOOST_PP_ITERATION_3 126
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 127 && BOOST_PP_ITERATION_FINISH_3 >= 127
-#        define BOOST_PP_ITERATION_3 127
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 128 && BOOST_PP_ITERATION_FINISH_3 >= 128
-#        define BOOST_PP_ITERATION_3 128
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 129 && BOOST_PP_ITERATION_FINISH_3 >= 129
-#        define BOOST_PP_ITERATION_3 129
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 130 && BOOST_PP_ITERATION_FINISH_3 >= 130
-#        define BOOST_PP_ITERATION_3 130
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 131 && BOOST_PP_ITERATION_FINISH_3 >= 131
-#        define BOOST_PP_ITERATION_3 131
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 132 && BOOST_PP_ITERATION_FINISH_3 >= 132
-#        define BOOST_PP_ITERATION_3 132
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 133 && BOOST_PP_ITERATION_FINISH_3 >= 133
-#        define BOOST_PP_ITERATION_3 133
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 134 && BOOST_PP_ITERATION_FINISH_3 >= 134
-#        define BOOST_PP_ITERATION_3 134
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 135 && BOOST_PP_ITERATION_FINISH_3 >= 135
-#        define BOOST_PP_ITERATION_3 135
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 136 && BOOST_PP_ITERATION_FINISH_3 >= 136
-#        define BOOST_PP_ITERATION_3 136
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 137 && BOOST_PP_ITERATION_FINISH_3 >= 137
-#        define BOOST_PP_ITERATION_3 137
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 138 && BOOST_PP_ITERATION_FINISH_3 >= 138
-#        define BOOST_PP_ITERATION_3 138
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 139 && BOOST_PP_ITERATION_FINISH_3 >= 139
-#        define BOOST_PP_ITERATION_3 139
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 140 && BOOST_PP_ITERATION_FINISH_3 >= 140
-#        define BOOST_PP_ITERATION_3 140
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 141 && BOOST_PP_ITERATION_FINISH_3 >= 141
-#        define BOOST_PP_ITERATION_3 141
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 142 && BOOST_PP_ITERATION_FINISH_3 >= 142
-#        define BOOST_PP_ITERATION_3 142
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 143 && BOOST_PP_ITERATION_FINISH_3 >= 143
-#        define BOOST_PP_ITERATION_3 143
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 144 && BOOST_PP_ITERATION_FINISH_3 >= 144
-#        define BOOST_PP_ITERATION_3 144
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 145 && BOOST_PP_ITERATION_FINISH_3 >= 145
-#        define BOOST_PP_ITERATION_3 145
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 146 && BOOST_PP_ITERATION_FINISH_3 >= 146
-#        define BOOST_PP_ITERATION_3 146
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 147 && BOOST_PP_ITERATION_FINISH_3 >= 147
-#        define BOOST_PP_ITERATION_3 147
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 148 && BOOST_PP_ITERATION_FINISH_3 >= 148
-#        define BOOST_PP_ITERATION_3 148
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 149 && BOOST_PP_ITERATION_FINISH_3 >= 149
-#        define BOOST_PP_ITERATION_3 149
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 150 && BOOST_PP_ITERATION_FINISH_3 >= 150
-#        define BOOST_PP_ITERATION_3 150
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 151 && BOOST_PP_ITERATION_FINISH_3 >= 151
-#        define BOOST_PP_ITERATION_3 151
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 152 && BOOST_PP_ITERATION_FINISH_3 >= 152
-#        define BOOST_PP_ITERATION_3 152
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 153 && BOOST_PP_ITERATION_FINISH_3 >= 153
-#        define BOOST_PP_ITERATION_3 153
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 154 && BOOST_PP_ITERATION_FINISH_3 >= 154
-#        define BOOST_PP_ITERATION_3 154
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 155 && BOOST_PP_ITERATION_FINISH_3 >= 155
-#        define BOOST_PP_ITERATION_3 155
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 156 && BOOST_PP_ITERATION_FINISH_3 >= 156
-#        define BOOST_PP_ITERATION_3 156
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 157 && BOOST_PP_ITERATION_FINISH_3 >= 157
-#        define BOOST_PP_ITERATION_3 157
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 158 && BOOST_PP_ITERATION_FINISH_3 >= 158
-#        define BOOST_PP_ITERATION_3 158
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 159 && BOOST_PP_ITERATION_FINISH_3 >= 159
-#        define BOOST_PP_ITERATION_3 159
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 160 && BOOST_PP_ITERATION_FINISH_3 >= 160
-#        define BOOST_PP_ITERATION_3 160
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 161 && BOOST_PP_ITERATION_FINISH_3 >= 161
-#        define BOOST_PP_ITERATION_3 161
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 162 && BOOST_PP_ITERATION_FINISH_3 >= 162
-#        define BOOST_PP_ITERATION_3 162
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 163 && BOOST_PP_ITERATION_FINISH_3 >= 163
-#        define BOOST_PP_ITERATION_3 163
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 164 && BOOST_PP_ITERATION_FINISH_3 >= 164
-#        define BOOST_PP_ITERATION_3 164
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 165 && BOOST_PP_ITERATION_FINISH_3 >= 165
-#        define BOOST_PP_ITERATION_3 165
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 166 && BOOST_PP_ITERATION_FINISH_3 >= 166
-#        define BOOST_PP_ITERATION_3 166
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 167 && BOOST_PP_ITERATION_FINISH_3 >= 167
-#        define BOOST_PP_ITERATION_3 167
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 168 && BOOST_PP_ITERATION_FINISH_3 >= 168
-#        define BOOST_PP_ITERATION_3 168
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 169 && BOOST_PP_ITERATION_FINISH_3 >= 169
-#        define BOOST_PP_ITERATION_3 169
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 170 && BOOST_PP_ITERATION_FINISH_3 >= 170
-#        define BOOST_PP_ITERATION_3 170
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 171 && BOOST_PP_ITERATION_FINISH_3 >= 171
-#        define BOOST_PP_ITERATION_3 171
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 172 && BOOST_PP_ITERATION_FINISH_3 >= 172
-#        define BOOST_PP_ITERATION_3 172
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 173 && BOOST_PP_ITERATION_FINISH_3 >= 173
-#        define BOOST_PP_ITERATION_3 173
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 174 && BOOST_PP_ITERATION_FINISH_3 >= 174
-#        define BOOST_PP_ITERATION_3 174
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 175 && BOOST_PP_ITERATION_FINISH_3 >= 175
-#        define BOOST_PP_ITERATION_3 175
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 176 && BOOST_PP_ITERATION_FINISH_3 >= 176
-#        define BOOST_PP_ITERATION_3 176
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 177 && BOOST_PP_ITERATION_FINISH_3 >= 177
-#        define BOOST_PP_ITERATION_3 177
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 178 && BOOST_PP_ITERATION_FINISH_3 >= 178
-#        define BOOST_PP_ITERATION_3 178
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 179 && BOOST_PP_ITERATION_FINISH_3 >= 179
-#        define BOOST_PP_ITERATION_3 179
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 180 && BOOST_PP_ITERATION_FINISH_3 >= 180
-#        define BOOST_PP_ITERATION_3 180
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 181 && BOOST_PP_ITERATION_FINISH_3 >= 181
-#        define BOOST_PP_ITERATION_3 181
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 182 && BOOST_PP_ITERATION_FINISH_3 >= 182
-#        define BOOST_PP_ITERATION_3 182
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 183 && BOOST_PP_ITERATION_FINISH_3 >= 183
-#        define BOOST_PP_ITERATION_3 183
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 184 && BOOST_PP_ITERATION_FINISH_3 >= 184
-#        define BOOST_PP_ITERATION_3 184
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 185 && BOOST_PP_ITERATION_FINISH_3 >= 185
-#        define BOOST_PP_ITERATION_3 185
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 186 && BOOST_PP_ITERATION_FINISH_3 >= 186
-#        define BOOST_PP_ITERATION_3 186
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 187 && BOOST_PP_ITERATION_FINISH_3 >= 187
-#        define BOOST_PP_ITERATION_3 187
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 188 && BOOST_PP_ITERATION_FINISH_3 >= 188
-#        define BOOST_PP_ITERATION_3 188
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 189 && BOOST_PP_ITERATION_FINISH_3 >= 189
-#        define BOOST_PP_ITERATION_3 189
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 190 && BOOST_PP_ITERATION_FINISH_3 >= 190
-#        define BOOST_PP_ITERATION_3 190
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 191 && BOOST_PP_ITERATION_FINISH_3 >= 191
-#        define BOOST_PP_ITERATION_3 191
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 192 && BOOST_PP_ITERATION_FINISH_3 >= 192
-#        define BOOST_PP_ITERATION_3 192
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 193 && BOOST_PP_ITERATION_FINISH_3 >= 193
-#        define BOOST_PP_ITERATION_3 193
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 194 && BOOST_PP_ITERATION_FINISH_3 >= 194
-#        define BOOST_PP_ITERATION_3 194
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 195 && BOOST_PP_ITERATION_FINISH_3 >= 195
-#        define BOOST_PP_ITERATION_3 195
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 196 && BOOST_PP_ITERATION_FINISH_3 >= 196
-#        define BOOST_PP_ITERATION_3 196
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 197 && BOOST_PP_ITERATION_FINISH_3 >= 197
-#        define BOOST_PP_ITERATION_3 197
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 198 && BOOST_PP_ITERATION_FINISH_3 >= 198
-#        define BOOST_PP_ITERATION_3 198
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 199 && BOOST_PP_ITERATION_FINISH_3 >= 199
-#        define BOOST_PP_ITERATION_3 199
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 200 && BOOST_PP_ITERATION_FINISH_3 >= 200
-#        define BOOST_PP_ITERATION_3 200
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 201 && BOOST_PP_ITERATION_FINISH_3 >= 201
-#        define BOOST_PP_ITERATION_3 201
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 202 && BOOST_PP_ITERATION_FINISH_3 >= 202
-#        define BOOST_PP_ITERATION_3 202
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 203 && BOOST_PP_ITERATION_FINISH_3 >= 203
-#        define BOOST_PP_ITERATION_3 203
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 204 && BOOST_PP_ITERATION_FINISH_3 >= 204
-#        define BOOST_PP_ITERATION_3 204
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 205 && BOOST_PP_ITERATION_FINISH_3 >= 205
-#        define BOOST_PP_ITERATION_3 205
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 206 && BOOST_PP_ITERATION_FINISH_3 >= 206
-#        define BOOST_PP_ITERATION_3 206
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 207 && BOOST_PP_ITERATION_FINISH_3 >= 207
-#        define BOOST_PP_ITERATION_3 207
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 208 && BOOST_PP_ITERATION_FINISH_3 >= 208
-#        define BOOST_PP_ITERATION_3 208
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 209 && BOOST_PP_ITERATION_FINISH_3 >= 209
-#        define BOOST_PP_ITERATION_3 209
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 210 && BOOST_PP_ITERATION_FINISH_3 >= 210
-#        define BOOST_PP_ITERATION_3 210
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 211 && BOOST_PP_ITERATION_FINISH_3 >= 211
-#        define BOOST_PP_ITERATION_3 211
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 212 && BOOST_PP_ITERATION_FINISH_3 >= 212
-#        define BOOST_PP_ITERATION_3 212
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 213 && BOOST_PP_ITERATION_FINISH_3 >= 213
-#        define BOOST_PP_ITERATION_3 213
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 214 && BOOST_PP_ITERATION_FINISH_3 >= 214
-#        define BOOST_PP_ITERATION_3 214
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 215 && BOOST_PP_ITERATION_FINISH_3 >= 215
-#        define BOOST_PP_ITERATION_3 215
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 216 && BOOST_PP_ITERATION_FINISH_3 >= 216
-#        define BOOST_PP_ITERATION_3 216
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 217 && BOOST_PP_ITERATION_FINISH_3 >= 217
-#        define BOOST_PP_ITERATION_3 217
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 218 && BOOST_PP_ITERATION_FINISH_3 >= 218
-#        define BOOST_PP_ITERATION_3 218
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 219 && BOOST_PP_ITERATION_FINISH_3 >= 219
-#        define BOOST_PP_ITERATION_3 219
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 220 && BOOST_PP_ITERATION_FINISH_3 >= 220
-#        define BOOST_PP_ITERATION_3 220
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 221 && BOOST_PP_ITERATION_FINISH_3 >= 221
-#        define BOOST_PP_ITERATION_3 221
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 222 && BOOST_PP_ITERATION_FINISH_3 >= 222
-#        define BOOST_PP_ITERATION_3 222
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 223 && BOOST_PP_ITERATION_FINISH_3 >= 223
-#        define BOOST_PP_ITERATION_3 223
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 224 && BOOST_PP_ITERATION_FINISH_3 >= 224
-#        define BOOST_PP_ITERATION_3 224
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 225 && BOOST_PP_ITERATION_FINISH_3 >= 225
-#        define BOOST_PP_ITERATION_3 225
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 226 && BOOST_PP_ITERATION_FINISH_3 >= 226
-#        define BOOST_PP_ITERATION_3 226
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 227 && BOOST_PP_ITERATION_FINISH_3 >= 227
-#        define BOOST_PP_ITERATION_3 227
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 228 && BOOST_PP_ITERATION_FINISH_3 >= 228
-#        define BOOST_PP_ITERATION_3 228
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 229 && BOOST_PP_ITERATION_FINISH_3 >= 229
-#        define BOOST_PP_ITERATION_3 229
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 230 && BOOST_PP_ITERATION_FINISH_3 >= 230
-#        define BOOST_PP_ITERATION_3 230
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 231 && BOOST_PP_ITERATION_FINISH_3 >= 231
-#        define BOOST_PP_ITERATION_3 231
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 232 && BOOST_PP_ITERATION_FINISH_3 >= 232
-#        define BOOST_PP_ITERATION_3 232
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 233 && BOOST_PP_ITERATION_FINISH_3 >= 233
-#        define BOOST_PP_ITERATION_3 233
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 234 && BOOST_PP_ITERATION_FINISH_3 >= 234
-#        define BOOST_PP_ITERATION_3 234
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 235 && BOOST_PP_ITERATION_FINISH_3 >= 235
-#        define BOOST_PP_ITERATION_3 235
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 236 && BOOST_PP_ITERATION_FINISH_3 >= 236
-#        define BOOST_PP_ITERATION_3 236
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 237 && BOOST_PP_ITERATION_FINISH_3 >= 237
-#        define BOOST_PP_ITERATION_3 237
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 238 && BOOST_PP_ITERATION_FINISH_3 >= 238
-#        define BOOST_PP_ITERATION_3 238
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 239 && BOOST_PP_ITERATION_FINISH_3 >= 239
-#        define BOOST_PP_ITERATION_3 239
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 240 && BOOST_PP_ITERATION_FINISH_3 >= 240
-#        define BOOST_PP_ITERATION_3 240
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 241 && BOOST_PP_ITERATION_FINISH_3 >= 241
-#        define BOOST_PP_ITERATION_3 241
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 242 && BOOST_PP_ITERATION_FINISH_3 >= 242
-#        define BOOST_PP_ITERATION_3 242
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 243 && BOOST_PP_ITERATION_FINISH_3 >= 243
-#        define BOOST_PP_ITERATION_3 243
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 244 && BOOST_PP_ITERATION_FINISH_3 >= 244
-#        define BOOST_PP_ITERATION_3 244
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 245 && BOOST_PP_ITERATION_FINISH_3 >= 245
-#        define BOOST_PP_ITERATION_3 245
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 246 && BOOST_PP_ITERATION_FINISH_3 >= 246
-#        define BOOST_PP_ITERATION_3 246
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 247 && BOOST_PP_ITERATION_FINISH_3 >= 247
-#        define BOOST_PP_ITERATION_3 247
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 248 && BOOST_PP_ITERATION_FINISH_3 >= 248
-#        define BOOST_PP_ITERATION_3 248
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 249 && BOOST_PP_ITERATION_FINISH_3 >= 249
-#        define BOOST_PP_ITERATION_3 249
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 250 && BOOST_PP_ITERATION_FINISH_3 >= 250
-#        define BOOST_PP_ITERATION_3 250
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 251 && BOOST_PP_ITERATION_FINISH_3 >= 251
-#        define BOOST_PP_ITERATION_3 251
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 252 && BOOST_PP_ITERATION_FINISH_3 >= 252
-#        define BOOST_PP_ITERATION_3 252
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 253 && BOOST_PP_ITERATION_FINISH_3 >= 253
-#        define BOOST_PP_ITERATION_3 253
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 254 && BOOST_PP_ITERATION_FINISH_3 >= 254
-#        define BOOST_PP_ITERATION_3 254
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 255 && BOOST_PP_ITERATION_FINISH_3 >= 255
-#        define BOOST_PP_ITERATION_3 255
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-#    if BOOST_PP_ITERATION_START_3 <= 256 && BOOST_PP_ITERATION_FINISH_3 >= 256
-#        define BOOST_PP_ITERATION_3 256
-#        include BOOST_PP_FILENAME_3
-#        undef BOOST_PP_ITERATION_3
-#    endif
-# endif
-#
-# undef BOOST_PP_ITERATION_DEPTH
-# define BOOST_PP_ITERATION_DEPTH() 2
-#
-# undef BOOST_PP_ITERATION_START_3
-# undef BOOST_PP_ITERATION_FINISH_3
-# undef BOOST_PP_FILENAME_3
-#
-# undef BOOST_PP_ITERATION_FLAGS_3
-# undef BOOST_PP_ITERATION_PARAMS_3
diff --git a/boost/preprocessor/iteration/detail/iter/forward4.hpp b/boost/preprocessor/iteration/detail/iter/forward4.hpp
deleted file mode 100644
index 1b4f588..0000000
--- a/boost/preprocessor/iteration/detail/iter/forward4.hpp
+++ /dev/null
@@ -1,1338 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# if defined(BOOST_PP_ITERATION_LIMITS)
-#    if !defined(BOOST_PP_FILENAME_4)
-#        error BOOST_PP_ERROR:  depth #4 filename is not defined
-#    endif
-#    define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_ITERATION_LIMITS)
-#    include <boost/preprocessor/iteration/detail/bounds/lower4.hpp>
-#    define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_ITERATION_LIMITS)
-#    include <boost/preprocessor/iteration/detail/bounds/upper4.hpp>
-#    define BOOST_PP_ITERATION_FLAGS_4() 0
-#    undef BOOST_PP_ITERATION_LIMITS
-# elif defined(BOOST_PP_ITERATION_PARAMS_4)
-#    define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ITERATION_PARAMS_4)
-#    include <boost/preprocessor/iteration/detail/bounds/lower4.hpp>
-#    define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, BOOST_PP_ITERATION_PARAMS_4)
-#    include <boost/preprocessor/iteration/detail/bounds/upper4.hpp>
-#    define BOOST_PP_FILENAME_4 BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ITERATION_PARAMS_4)
-#    if BOOST_PP_ARRAY_SIZE(BOOST_PP_ITERATION_PARAMS_4) >= 4
-#        define BOOST_PP_ITERATION_FLAGS_4() BOOST_PP_ARRAY_ELEM(3, BOOST_PP_ITERATION_PARAMS_4)
-#    else
-#        define BOOST_PP_ITERATION_FLAGS_4() 0
-#    endif
-# else
-#    error BOOST_PP_ERROR:  depth #4 iteration boundaries or filename not defined
-# endif
-#
-# undef BOOST_PP_ITERATION_DEPTH
-# define BOOST_PP_ITERATION_DEPTH() 4
-#
-# if (BOOST_PP_ITERATION_START_4) > (BOOST_PP_ITERATION_FINISH_4)
-#    include <boost/preprocessor/iteration/detail/iter/reverse4.hpp>
-# else
-#    if BOOST_PP_ITERATION_START_4 <= 0 && BOOST_PP_ITERATION_FINISH_4 >= 0
-#        define BOOST_PP_ITERATION_4 0
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 1 && BOOST_PP_ITERATION_FINISH_4 >= 1
-#        define BOOST_PP_ITERATION_4 1
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 2 && BOOST_PP_ITERATION_FINISH_4 >= 2
-#        define BOOST_PP_ITERATION_4 2
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 3 && BOOST_PP_ITERATION_FINISH_4 >= 3
-#        define BOOST_PP_ITERATION_4 3
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 4 && BOOST_PP_ITERATION_FINISH_4 >= 4
-#        define BOOST_PP_ITERATION_4 4
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 5 && BOOST_PP_ITERATION_FINISH_4 >= 5
-#        define BOOST_PP_ITERATION_4 5
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 6 && BOOST_PP_ITERATION_FINISH_4 >= 6
-#        define BOOST_PP_ITERATION_4 6
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 7 && BOOST_PP_ITERATION_FINISH_4 >= 7
-#        define BOOST_PP_ITERATION_4 7
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 8 && BOOST_PP_ITERATION_FINISH_4 >= 8
-#        define BOOST_PP_ITERATION_4 8
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 9 && BOOST_PP_ITERATION_FINISH_4 >= 9
-#        define BOOST_PP_ITERATION_4 9
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 10 && BOOST_PP_ITERATION_FINISH_4 >= 10
-#        define BOOST_PP_ITERATION_4 10
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 11 && BOOST_PP_ITERATION_FINISH_4 >= 11
-#        define BOOST_PP_ITERATION_4 11
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 12 && BOOST_PP_ITERATION_FINISH_4 >= 12
-#        define BOOST_PP_ITERATION_4 12
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 13 && BOOST_PP_ITERATION_FINISH_4 >= 13
-#        define BOOST_PP_ITERATION_4 13
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 14 && BOOST_PP_ITERATION_FINISH_4 >= 14
-#        define BOOST_PP_ITERATION_4 14
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 15 && BOOST_PP_ITERATION_FINISH_4 >= 15
-#        define BOOST_PP_ITERATION_4 15
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 16 && BOOST_PP_ITERATION_FINISH_4 >= 16
-#        define BOOST_PP_ITERATION_4 16
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 17 && BOOST_PP_ITERATION_FINISH_4 >= 17
-#        define BOOST_PP_ITERATION_4 17
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 18 && BOOST_PP_ITERATION_FINISH_4 >= 18
-#        define BOOST_PP_ITERATION_4 18
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 19 && BOOST_PP_ITERATION_FINISH_4 >= 19
-#        define BOOST_PP_ITERATION_4 19
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 20 && BOOST_PP_ITERATION_FINISH_4 >= 20
-#        define BOOST_PP_ITERATION_4 20
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 21 && BOOST_PP_ITERATION_FINISH_4 >= 21
-#        define BOOST_PP_ITERATION_4 21
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 22 && BOOST_PP_ITERATION_FINISH_4 >= 22
-#        define BOOST_PP_ITERATION_4 22
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 23 && BOOST_PP_ITERATION_FINISH_4 >= 23
-#        define BOOST_PP_ITERATION_4 23
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 24 && BOOST_PP_ITERATION_FINISH_4 >= 24
-#        define BOOST_PP_ITERATION_4 24
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 25 && BOOST_PP_ITERATION_FINISH_4 >= 25
-#        define BOOST_PP_ITERATION_4 25
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 26 && BOOST_PP_ITERATION_FINISH_4 >= 26
-#        define BOOST_PP_ITERATION_4 26
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 27 && BOOST_PP_ITERATION_FINISH_4 >= 27
-#        define BOOST_PP_ITERATION_4 27
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 28 && BOOST_PP_ITERATION_FINISH_4 >= 28
-#        define BOOST_PP_ITERATION_4 28
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 29 && BOOST_PP_ITERATION_FINISH_4 >= 29
-#        define BOOST_PP_ITERATION_4 29
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 30 && BOOST_PP_ITERATION_FINISH_4 >= 30
-#        define BOOST_PP_ITERATION_4 30
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 31 && BOOST_PP_ITERATION_FINISH_4 >= 31
-#        define BOOST_PP_ITERATION_4 31
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 32 && BOOST_PP_ITERATION_FINISH_4 >= 32
-#        define BOOST_PP_ITERATION_4 32
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 33 && BOOST_PP_ITERATION_FINISH_4 >= 33
-#        define BOOST_PP_ITERATION_4 33
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 34 && BOOST_PP_ITERATION_FINISH_4 >= 34
-#        define BOOST_PP_ITERATION_4 34
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 35 && BOOST_PP_ITERATION_FINISH_4 >= 35
-#        define BOOST_PP_ITERATION_4 35
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 36 && BOOST_PP_ITERATION_FINISH_4 >= 36
-#        define BOOST_PP_ITERATION_4 36
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 37 && BOOST_PP_ITERATION_FINISH_4 >= 37
-#        define BOOST_PP_ITERATION_4 37
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 38 && BOOST_PP_ITERATION_FINISH_4 >= 38
-#        define BOOST_PP_ITERATION_4 38
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 39 && BOOST_PP_ITERATION_FINISH_4 >= 39
-#        define BOOST_PP_ITERATION_4 39
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 40 && BOOST_PP_ITERATION_FINISH_4 >= 40
-#        define BOOST_PP_ITERATION_4 40
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 41 && BOOST_PP_ITERATION_FINISH_4 >= 41
-#        define BOOST_PP_ITERATION_4 41
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 42 && BOOST_PP_ITERATION_FINISH_4 >= 42
-#        define BOOST_PP_ITERATION_4 42
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 43 && BOOST_PP_ITERATION_FINISH_4 >= 43
-#        define BOOST_PP_ITERATION_4 43
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 44 && BOOST_PP_ITERATION_FINISH_4 >= 44
-#        define BOOST_PP_ITERATION_4 44
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 45 && BOOST_PP_ITERATION_FINISH_4 >= 45
-#        define BOOST_PP_ITERATION_4 45
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 46 && BOOST_PP_ITERATION_FINISH_4 >= 46
-#        define BOOST_PP_ITERATION_4 46
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 47 && BOOST_PP_ITERATION_FINISH_4 >= 47
-#        define BOOST_PP_ITERATION_4 47
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 48 && BOOST_PP_ITERATION_FINISH_4 >= 48
-#        define BOOST_PP_ITERATION_4 48
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 49 && BOOST_PP_ITERATION_FINISH_4 >= 49
-#        define BOOST_PP_ITERATION_4 49
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 50 && BOOST_PP_ITERATION_FINISH_4 >= 50
-#        define BOOST_PP_ITERATION_4 50
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 51 && BOOST_PP_ITERATION_FINISH_4 >= 51
-#        define BOOST_PP_ITERATION_4 51
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 52 && BOOST_PP_ITERATION_FINISH_4 >= 52
-#        define BOOST_PP_ITERATION_4 52
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 53 && BOOST_PP_ITERATION_FINISH_4 >= 53
-#        define BOOST_PP_ITERATION_4 53
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 54 && BOOST_PP_ITERATION_FINISH_4 >= 54
-#        define BOOST_PP_ITERATION_4 54
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 55 && BOOST_PP_ITERATION_FINISH_4 >= 55
-#        define BOOST_PP_ITERATION_4 55
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 56 && BOOST_PP_ITERATION_FINISH_4 >= 56
-#        define BOOST_PP_ITERATION_4 56
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 57 && BOOST_PP_ITERATION_FINISH_4 >= 57
-#        define BOOST_PP_ITERATION_4 57
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 58 && BOOST_PP_ITERATION_FINISH_4 >= 58
-#        define BOOST_PP_ITERATION_4 58
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 59 && BOOST_PP_ITERATION_FINISH_4 >= 59
-#        define BOOST_PP_ITERATION_4 59
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 60 && BOOST_PP_ITERATION_FINISH_4 >= 60
-#        define BOOST_PP_ITERATION_4 60
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 61 && BOOST_PP_ITERATION_FINISH_4 >= 61
-#        define BOOST_PP_ITERATION_4 61
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 62 && BOOST_PP_ITERATION_FINISH_4 >= 62
-#        define BOOST_PP_ITERATION_4 62
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 63 && BOOST_PP_ITERATION_FINISH_4 >= 63
-#        define BOOST_PP_ITERATION_4 63
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 64 && BOOST_PP_ITERATION_FINISH_4 >= 64
-#        define BOOST_PP_ITERATION_4 64
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 65 && BOOST_PP_ITERATION_FINISH_4 >= 65
-#        define BOOST_PP_ITERATION_4 65
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 66 && BOOST_PP_ITERATION_FINISH_4 >= 66
-#        define BOOST_PP_ITERATION_4 66
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 67 && BOOST_PP_ITERATION_FINISH_4 >= 67
-#        define BOOST_PP_ITERATION_4 67
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 68 && BOOST_PP_ITERATION_FINISH_4 >= 68
-#        define BOOST_PP_ITERATION_4 68
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 69 && BOOST_PP_ITERATION_FINISH_4 >= 69
-#        define BOOST_PP_ITERATION_4 69
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 70 && BOOST_PP_ITERATION_FINISH_4 >= 70
-#        define BOOST_PP_ITERATION_4 70
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 71 && BOOST_PP_ITERATION_FINISH_4 >= 71
-#        define BOOST_PP_ITERATION_4 71
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 72 && BOOST_PP_ITERATION_FINISH_4 >= 72
-#        define BOOST_PP_ITERATION_4 72
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 73 && BOOST_PP_ITERATION_FINISH_4 >= 73
-#        define BOOST_PP_ITERATION_4 73
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 74 && BOOST_PP_ITERATION_FINISH_4 >= 74
-#        define BOOST_PP_ITERATION_4 74
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 75 && BOOST_PP_ITERATION_FINISH_4 >= 75
-#        define BOOST_PP_ITERATION_4 75
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 76 && BOOST_PP_ITERATION_FINISH_4 >= 76
-#        define BOOST_PP_ITERATION_4 76
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 77 && BOOST_PP_ITERATION_FINISH_4 >= 77
-#        define BOOST_PP_ITERATION_4 77
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 78 && BOOST_PP_ITERATION_FINISH_4 >= 78
-#        define BOOST_PP_ITERATION_4 78
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 79 && BOOST_PP_ITERATION_FINISH_4 >= 79
-#        define BOOST_PP_ITERATION_4 79
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 80 && BOOST_PP_ITERATION_FINISH_4 >= 80
-#        define BOOST_PP_ITERATION_4 80
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 81 && BOOST_PP_ITERATION_FINISH_4 >= 81
-#        define BOOST_PP_ITERATION_4 81
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 82 && BOOST_PP_ITERATION_FINISH_4 >= 82
-#        define BOOST_PP_ITERATION_4 82
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 83 && BOOST_PP_ITERATION_FINISH_4 >= 83
-#        define BOOST_PP_ITERATION_4 83
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 84 && BOOST_PP_ITERATION_FINISH_4 >= 84
-#        define BOOST_PP_ITERATION_4 84
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 85 && BOOST_PP_ITERATION_FINISH_4 >= 85
-#        define BOOST_PP_ITERATION_4 85
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 86 && BOOST_PP_ITERATION_FINISH_4 >= 86
-#        define BOOST_PP_ITERATION_4 86
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 87 && BOOST_PP_ITERATION_FINISH_4 >= 87
-#        define BOOST_PP_ITERATION_4 87
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 88 && BOOST_PP_ITERATION_FINISH_4 >= 88
-#        define BOOST_PP_ITERATION_4 88
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 89 && BOOST_PP_ITERATION_FINISH_4 >= 89
-#        define BOOST_PP_ITERATION_4 89
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 90 && BOOST_PP_ITERATION_FINISH_4 >= 90
-#        define BOOST_PP_ITERATION_4 90
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 91 && BOOST_PP_ITERATION_FINISH_4 >= 91
-#        define BOOST_PP_ITERATION_4 91
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 92 && BOOST_PP_ITERATION_FINISH_4 >= 92
-#        define BOOST_PP_ITERATION_4 92
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 93 && BOOST_PP_ITERATION_FINISH_4 >= 93
-#        define BOOST_PP_ITERATION_4 93
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 94 && BOOST_PP_ITERATION_FINISH_4 >= 94
-#        define BOOST_PP_ITERATION_4 94
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 95 && BOOST_PP_ITERATION_FINISH_4 >= 95
-#        define BOOST_PP_ITERATION_4 95
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 96 && BOOST_PP_ITERATION_FINISH_4 >= 96
-#        define BOOST_PP_ITERATION_4 96
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 97 && BOOST_PP_ITERATION_FINISH_4 >= 97
-#        define BOOST_PP_ITERATION_4 97
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 98 && BOOST_PP_ITERATION_FINISH_4 >= 98
-#        define BOOST_PP_ITERATION_4 98
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 99 && BOOST_PP_ITERATION_FINISH_4 >= 99
-#        define BOOST_PP_ITERATION_4 99
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 100 && BOOST_PP_ITERATION_FINISH_4 >= 100
-#        define BOOST_PP_ITERATION_4 100
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 101 && BOOST_PP_ITERATION_FINISH_4 >= 101
-#        define BOOST_PP_ITERATION_4 101
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 102 && BOOST_PP_ITERATION_FINISH_4 >= 102
-#        define BOOST_PP_ITERATION_4 102
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 103 && BOOST_PP_ITERATION_FINISH_4 >= 103
-#        define BOOST_PP_ITERATION_4 103
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 104 && BOOST_PP_ITERATION_FINISH_4 >= 104
-#        define BOOST_PP_ITERATION_4 104
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 105 && BOOST_PP_ITERATION_FINISH_4 >= 105
-#        define BOOST_PP_ITERATION_4 105
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 106 && BOOST_PP_ITERATION_FINISH_4 >= 106
-#        define BOOST_PP_ITERATION_4 106
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 107 && BOOST_PP_ITERATION_FINISH_4 >= 107
-#        define BOOST_PP_ITERATION_4 107
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 108 && BOOST_PP_ITERATION_FINISH_4 >= 108
-#        define BOOST_PP_ITERATION_4 108
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 109 && BOOST_PP_ITERATION_FINISH_4 >= 109
-#        define BOOST_PP_ITERATION_4 109
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 110 && BOOST_PP_ITERATION_FINISH_4 >= 110
-#        define BOOST_PP_ITERATION_4 110
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 111 && BOOST_PP_ITERATION_FINISH_4 >= 111
-#        define BOOST_PP_ITERATION_4 111
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 112 && BOOST_PP_ITERATION_FINISH_4 >= 112
-#        define BOOST_PP_ITERATION_4 112
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 113 && BOOST_PP_ITERATION_FINISH_4 >= 113
-#        define BOOST_PP_ITERATION_4 113
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 114 && BOOST_PP_ITERATION_FINISH_4 >= 114
-#        define BOOST_PP_ITERATION_4 114
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 115 && BOOST_PP_ITERATION_FINISH_4 >= 115
-#        define BOOST_PP_ITERATION_4 115
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 116 && BOOST_PP_ITERATION_FINISH_4 >= 116
-#        define BOOST_PP_ITERATION_4 116
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 117 && BOOST_PP_ITERATION_FINISH_4 >= 117
-#        define BOOST_PP_ITERATION_4 117
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 118 && BOOST_PP_ITERATION_FINISH_4 >= 118
-#        define BOOST_PP_ITERATION_4 118
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 119 && BOOST_PP_ITERATION_FINISH_4 >= 119
-#        define BOOST_PP_ITERATION_4 119
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 120 && BOOST_PP_ITERATION_FINISH_4 >= 120
-#        define BOOST_PP_ITERATION_4 120
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 121 && BOOST_PP_ITERATION_FINISH_4 >= 121
-#        define BOOST_PP_ITERATION_4 121
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 122 && BOOST_PP_ITERATION_FINISH_4 >= 122
-#        define BOOST_PP_ITERATION_4 122
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 123 && BOOST_PP_ITERATION_FINISH_4 >= 123
-#        define BOOST_PP_ITERATION_4 123
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 124 && BOOST_PP_ITERATION_FINISH_4 >= 124
-#        define BOOST_PP_ITERATION_4 124
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 125 && BOOST_PP_ITERATION_FINISH_4 >= 125
-#        define BOOST_PP_ITERATION_4 125
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 126 && BOOST_PP_ITERATION_FINISH_4 >= 126
-#        define BOOST_PP_ITERATION_4 126
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 127 && BOOST_PP_ITERATION_FINISH_4 >= 127
-#        define BOOST_PP_ITERATION_4 127
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 128 && BOOST_PP_ITERATION_FINISH_4 >= 128
-#        define BOOST_PP_ITERATION_4 128
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 129 && BOOST_PP_ITERATION_FINISH_4 >= 129
-#        define BOOST_PP_ITERATION_4 129
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 130 && BOOST_PP_ITERATION_FINISH_4 >= 130
-#        define BOOST_PP_ITERATION_4 130
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 131 && BOOST_PP_ITERATION_FINISH_4 >= 131
-#        define BOOST_PP_ITERATION_4 131
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 132 && BOOST_PP_ITERATION_FINISH_4 >= 132
-#        define BOOST_PP_ITERATION_4 132
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 133 && BOOST_PP_ITERATION_FINISH_4 >= 133
-#        define BOOST_PP_ITERATION_4 133
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 134 && BOOST_PP_ITERATION_FINISH_4 >= 134
-#        define BOOST_PP_ITERATION_4 134
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 135 && BOOST_PP_ITERATION_FINISH_4 >= 135
-#        define BOOST_PP_ITERATION_4 135
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 136 && BOOST_PP_ITERATION_FINISH_4 >= 136
-#        define BOOST_PP_ITERATION_4 136
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 137 && BOOST_PP_ITERATION_FINISH_4 >= 137
-#        define BOOST_PP_ITERATION_4 137
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 138 && BOOST_PP_ITERATION_FINISH_4 >= 138
-#        define BOOST_PP_ITERATION_4 138
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 139 && BOOST_PP_ITERATION_FINISH_4 >= 139
-#        define BOOST_PP_ITERATION_4 139
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 140 && BOOST_PP_ITERATION_FINISH_4 >= 140
-#        define BOOST_PP_ITERATION_4 140
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 141 && BOOST_PP_ITERATION_FINISH_4 >= 141
-#        define BOOST_PP_ITERATION_4 141
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 142 && BOOST_PP_ITERATION_FINISH_4 >= 142
-#        define BOOST_PP_ITERATION_4 142
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 143 && BOOST_PP_ITERATION_FINISH_4 >= 143
-#        define BOOST_PP_ITERATION_4 143
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 144 && BOOST_PP_ITERATION_FINISH_4 >= 144
-#        define BOOST_PP_ITERATION_4 144
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 145 && BOOST_PP_ITERATION_FINISH_4 >= 145
-#        define BOOST_PP_ITERATION_4 145
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 146 && BOOST_PP_ITERATION_FINISH_4 >= 146
-#        define BOOST_PP_ITERATION_4 146
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 147 && BOOST_PP_ITERATION_FINISH_4 >= 147
-#        define BOOST_PP_ITERATION_4 147
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 148 && BOOST_PP_ITERATION_FINISH_4 >= 148
-#        define BOOST_PP_ITERATION_4 148
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 149 && BOOST_PP_ITERATION_FINISH_4 >= 149
-#        define BOOST_PP_ITERATION_4 149
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 150 && BOOST_PP_ITERATION_FINISH_4 >= 150
-#        define BOOST_PP_ITERATION_4 150
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 151 && BOOST_PP_ITERATION_FINISH_4 >= 151
-#        define BOOST_PP_ITERATION_4 151
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 152 && BOOST_PP_ITERATION_FINISH_4 >= 152
-#        define BOOST_PP_ITERATION_4 152
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 153 && BOOST_PP_ITERATION_FINISH_4 >= 153
-#        define BOOST_PP_ITERATION_4 153
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 154 && BOOST_PP_ITERATION_FINISH_4 >= 154
-#        define BOOST_PP_ITERATION_4 154
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 155 && BOOST_PP_ITERATION_FINISH_4 >= 155
-#        define BOOST_PP_ITERATION_4 155
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 156 && BOOST_PP_ITERATION_FINISH_4 >= 156
-#        define BOOST_PP_ITERATION_4 156
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 157 && BOOST_PP_ITERATION_FINISH_4 >= 157
-#        define BOOST_PP_ITERATION_4 157
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 158 && BOOST_PP_ITERATION_FINISH_4 >= 158
-#        define BOOST_PP_ITERATION_4 158
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 159 && BOOST_PP_ITERATION_FINISH_4 >= 159
-#        define BOOST_PP_ITERATION_4 159
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 160 && BOOST_PP_ITERATION_FINISH_4 >= 160
-#        define BOOST_PP_ITERATION_4 160
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 161 && BOOST_PP_ITERATION_FINISH_4 >= 161
-#        define BOOST_PP_ITERATION_4 161
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 162 && BOOST_PP_ITERATION_FINISH_4 >= 162
-#        define BOOST_PP_ITERATION_4 162
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 163 && BOOST_PP_ITERATION_FINISH_4 >= 163
-#        define BOOST_PP_ITERATION_4 163
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 164 && BOOST_PP_ITERATION_FINISH_4 >= 164
-#        define BOOST_PP_ITERATION_4 164
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 165 && BOOST_PP_ITERATION_FINISH_4 >= 165
-#        define BOOST_PP_ITERATION_4 165
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 166 && BOOST_PP_ITERATION_FINISH_4 >= 166
-#        define BOOST_PP_ITERATION_4 166
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 167 && BOOST_PP_ITERATION_FINISH_4 >= 167
-#        define BOOST_PP_ITERATION_4 167
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 168 && BOOST_PP_ITERATION_FINISH_4 >= 168
-#        define BOOST_PP_ITERATION_4 168
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 169 && BOOST_PP_ITERATION_FINISH_4 >= 169
-#        define BOOST_PP_ITERATION_4 169
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 170 && BOOST_PP_ITERATION_FINISH_4 >= 170
-#        define BOOST_PP_ITERATION_4 170
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 171 && BOOST_PP_ITERATION_FINISH_4 >= 171
-#        define BOOST_PP_ITERATION_4 171
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 172 && BOOST_PP_ITERATION_FINISH_4 >= 172
-#        define BOOST_PP_ITERATION_4 172
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 173 && BOOST_PP_ITERATION_FINISH_4 >= 173
-#        define BOOST_PP_ITERATION_4 173
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 174 && BOOST_PP_ITERATION_FINISH_4 >= 174
-#        define BOOST_PP_ITERATION_4 174
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 175 && BOOST_PP_ITERATION_FINISH_4 >= 175
-#        define BOOST_PP_ITERATION_4 175
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 176 && BOOST_PP_ITERATION_FINISH_4 >= 176
-#        define BOOST_PP_ITERATION_4 176
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 177 && BOOST_PP_ITERATION_FINISH_4 >= 177
-#        define BOOST_PP_ITERATION_4 177
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 178 && BOOST_PP_ITERATION_FINISH_4 >= 178
-#        define BOOST_PP_ITERATION_4 178
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 179 && BOOST_PP_ITERATION_FINISH_4 >= 179
-#        define BOOST_PP_ITERATION_4 179
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 180 && BOOST_PP_ITERATION_FINISH_4 >= 180
-#        define BOOST_PP_ITERATION_4 180
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 181 && BOOST_PP_ITERATION_FINISH_4 >= 181
-#        define BOOST_PP_ITERATION_4 181
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 182 && BOOST_PP_ITERATION_FINISH_4 >= 182
-#        define BOOST_PP_ITERATION_4 182
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 183 && BOOST_PP_ITERATION_FINISH_4 >= 183
-#        define BOOST_PP_ITERATION_4 183
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 184 && BOOST_PP_ITERATION_FINISH_4 >= 184
-#        define BOOST_PP_ITERATION_4 184
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 185 && BOOST_PP_ITERATION_FINISH_4 >= 185
-#        define BOOST_PP_ITERATION_4 185
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 186 && BOOST_PP_ITERATION_FINISH_4 >= 186
-#        define BOOST_PP_ITERATION_4 186
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 187 && BOOST_PP_ITERATION_FINISH_4 >= 187
-#        define BOOST_PP_ITERATION_4 187
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 188 && BOOST_PP_ITERATION_FINISH_4 >= 188
-#        define BOOST_PP_ITERATION_4 188
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 189 && BOOST_PP_ITERATION_FINISH_4 >= 189
-#        define BOOST_PP_ITERATION_4 189
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 190 && BOOST_PP_ITERATION_FINISH_4 >= 190
-#        define BOOST_PP_ITERATION_4 190
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 191 && BOOST_PP_ITERATION_FINISH_4 >= 191
-#        define BOOST_PP_ITERATION_4 191
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 192 && BOOST_PP_ITERATION_FINISH_4 >= 192
-#        define BOOST_PP_ITERATION_4 192
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 193 && BOOST_PP_ITERATION_FINISH_4 >= 193
-#        define BOOST_PP_ITERATION_4 193
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 194 && BOOST_PP_ITERATION_FINISH_4 >= 194
-#        define BOOST_PP_ITERATION_4 194
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 195 && BOOST_PP_ITERATION_FINISH_4 >= 195
-#        define BOOST_PP_ITERATION_4 195
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 196 && BOOST_PP_ITERATION_FINISH_4 >= 196
-#        define BOOST_PP_ITERATION_4 196
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 197 && BOOST_PP_ITERATION_FINISH_4 >= 197
-#        define BOOST_PP_ITERATION_4 197
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 198 && BOOST_PP_ITERATION_FINISH_4 >= 198
-#        define BOOST_PP_ITERATION_4 198
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 199 && BOOST_PP_ITERATION_FINISH_4 >= 199
-#        define BOOST_PP_ITERATION_4 199
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 200 && BOOST_PP_ITERATION_FINISH_4 >= 200
-#        define BOOST_PP_ITERATION_4 200
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 201 && BOOST_PP_ITERATION_FINISH_4 >= 201
-#        define BOOST_PP_ITERATION_4 201
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 202 && BOOST_PP_ITERATION_FINISH_4 >= 202
-#        define BOOST_PP_ITERATION_4 202
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 203 && BOOST_PP_ITERATION_FINISH_4 >= 203
-#        define BOOST_PP_ITERATION_4 203
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 204 && BOOST_PP_ITERATION_FINISH_4 >= 204
-#        define BOOST_PP_ITERATION_4 204
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 205 && BOOST_PP_ITERATION_FINISH_4 >= 205
-#        define BOOST_PP_ITERATION_4 205
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 206 && BOOST_PP_ITERATION_FINISH_4 >= 206
-#        define BOOST_PP_ITERATION_4 206
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 207 && BOOST_PP_ITERATION_FINISH_4 >= 207
-#        define BOOST_PP_ITERATION_4 207
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 208 && BOOST_PP_ITERATION_FINISH_4 >= 208
-#        define BOOST_PP_ITERATION_4 208
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 209 && BOOST_PP_ITERATION_FINISH_4 >= 209
-#        define BOOST_PP_ITERATION_4 209
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 210 && BOOST_PP_ITERATION_FINISH_4 >= 210
-#        define BOOST_PP_ITERATION_4 210
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 211 && BOOST_PP_ITERATION_FINISH_4 >= 211
-#        define BOOST_PP_ITERATION_4 211
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 212 && BOOST_PP_ITERATION_FINISH_4 >= 212
-#        define BOOST_PP_ITERATION_4 212
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 213 && BOOST_PP_ITERATION_FINISH_4 >= 213
-#        define BOOST_PP_ITERATION_4 213
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 214 && BOOST_PP_ITERATION_FINISH_4 >= 214
-#        define BOOST_PP_ITERATION_4 214
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 215 && BOOST_PP_ITERATION_FINISH_4 >= 215
-#        define BOOST_PP_ITERATION_4 215
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 216 && BOOST_PP_ITERATION_FINISH_4 >= 216
-#        define BOOST_PP_ITERATION_4 216
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 217 && BOOST_PP_ITERATION_FINISH_4 >= 217
-#        define BOOST_PP_ITERATION_4 217
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 218 && BOOST_PP_ITERATION_FINISH_4 >= 218
-#        define BOOST_PP_ITERATION_4 218
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 219 && BOOST_PP_ITERATION_FINISH_4 >= 219
-#        define BOOST_PP_ITERATION_4 219
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 220 && BOOST_PP_ITERATION_FINISH_4 >= 220
-#        define BOOST_PP_ITERATION_4 220
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 221 && BOOST_PP_ITERATION_FINISH_4 >= 221
-#        define BOOST_PP_ITERATION_4 221
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 222 && BOOST_PP_ITERATION_FINISH_4 >= 222
-#        define BOOST_PP_ITERATION_4 222
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 223 && BOOST_PP_ITERATION_FINISH_4 >= 223
-#        define BOOST_PP_ITERATION_4 223
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 224 && BOOST_PP_ITERATION_FINISH_4 >= 224
-#        define BOOST_PP_ITERATION_4 224
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 225 && BOOST_PP_ITERATION_FINISH_4 >= 225
-#        define BOOST_PP_ITERATION_4 225
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 226 && BOOST_PP_ITERATION_FINISH_4 >= 226
-#        define BOOST_PP_ITERATION_4 226
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 227 && BOOST_PP_ITERATION_FINISH_4 >= 227
-#        define BOOST_PP_ITERATION_4 227
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 228 && BOOST_PP_ITERATION_FINISH_4 >= 228
-#        define BOOST_PP_ITERATION_4 228
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 229 && BOOST_PP_ITERATION_FINISH_4 >= 229
-#        define BOOST_PP_ITERATION_4 229
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 230 && BOOST_PP_ITERATION_FINISH_4 >= 230
-#        define BOOST_PP_ITERATION_4 230
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 231 && BOOST_PP_ITERATION_FINISH_4 >= 231
-#        define BOOST_PP_ITERATION_4 231
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 232 && BOOST_PP_ITERATION_FINISH_4 >= 232
-#        define BOOST_PP_ITERATION_4 232
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 233 && BOOST_PP_ITERATION_FINISH_4 >= 233
-#        define BOOST_PP_ITERATION_4 233
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 234 && BOOST_PP_ITERATION_FINISH_4 >= 234
-#        define BOOST_PP_ITERATION_4 234
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 235 && BOOST_PP_ITERATION_FINISH_4 >= 235
-#        define BOOST_PP_ITERATION_4 235
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 236 && BOOST_PP_ITERATION_FINISH_4 >= 236
-#        define BOOST_PP_ITERATION_4 236
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 237 && BOOST_PP_ITERATION_FINISH_4 >= 237
-#        define BOOST_PP_ITERATION_4 237
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 238 && BOOST_PP_ITERATION_FINISH_4 >= 238
-#        define BOOST_PP_ITERATION_4 238
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 239 && BOOST_PP_ITERATION_FINISH_4 >= 239
-#        define BOOST_PP_ITERATION_4 239
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 240 && BOOST_PP_ITERATION_FINISH_4 >= 240
-#        define BOOST_PP_ITERATION_4 240
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 241 && BOOST_PP_ITERATION_FINISH_4 >= 241
-#        define BOOST_PP_ITERATION_4 241
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 242 && BOOST_PP_ITERATION_FINISH_4 >= 242
-#        define BOOST_PP_ITERATION_4 242
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 243 && BOOST_PP_ITERATION_FINISH_4 >= 243
-#        define BOOST_PP_ITERATION_4 243
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 244 && BOOST_PP_ITERATION_FINISH_4 >= 244
-#        define BOOST_PP_ITERATION_4 244
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 245 && BOOST_PP_ITERATION_FINISH_4 >= 245
-#        define BOOST_PP_ITERATION_4 245
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 246 && BOOST_PP_ITERATION_FINISH_4 >= 246
-#        define BOOST_PP_ITERATION_4 246
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 247 && BOOST_PP_ITERATION_FINISH_4 >= 247
-#        define BOOST_PP_ITERATION_4 247
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 248 && BOOST_PP_ITERATION_FINISH_4 >= 248
-#        define BOOST_PP_ITERATION_4 248
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 249 && BOOST_PP_ITERATION_FINISH_4 >= 249
-#        define BOOST_PP_ITERATION_4 249
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 250 && BOOST_PP_ITERATION_FINISH_4 >= 250
-#        define BOOST_PP_ITERATION_4 250
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 251 && BOOST_PP_ITERATION_FINISH_4 >= 251
-#        define BOOST_PP_ITERATION_4 251
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 252 && BOOST_PP_ITERATION_FINISH_4 >= 252
-#        define BOOST_PP_ITERATION_4 252
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 253 && BOOST_PP_ITERATION_FINISH_4 >= 253
-#        define BOOST_PP_ITERATION_4 253
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 254 && BOOST_PP_ITERATION_FINISH_4 >= 254
-#        define BOOST_PP_ITERATION_4 254
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 255 && BOOST_PP_ITERATION_FINISH_4 >= 255
-#        define BOOST_PP_ITERATION_4 255
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-#    if BOOST_PP_ITERATION_START_4 <= 256 && BOOST_PP_ITERATION_FINISH_4 >= 256
-#        define BOOST_PP_ITERATION_4 256
-#        include BOOST_PP_FILENAME_4
-#        undef BOOST_PP_ITERATION_4
-#    endif
-# endif
-#
-# undef BOOST_PP_ITERATION_DEPTH
-# define BOOST_PP_ITERATION_DEPTH() 3
-#
-# undef BOOST_PP_ITERATION_START_4
-# undef BOOST_PP_ITERATION_FINISH_4
-# undef BOOST_PP_FILENAME_4
-#
-# undef BOOST_PP_ITERATION_FLAGS_4
-# undef BOOST_PP_ITERATION_PARAMS_4
diff --git a/boost/preprocessor/iteration/detail/iter/forward5.hpp b/boost/preprocessor/iteration/detail/iter/forward5.hpp
deleted file mode 100644
index 7617607..0000000
--- a/boost/preprocessor/iteration/detail/iter/forward5.hpp
+++ /dev/null
@@ -1,1338 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# if defined(BOOST_PP_ITERATION_LIMITS)
-#    if !defined(BOOST_PP_FILENAME_5)
-#        error BOOST_PP_ERROR:  depth #5 filename is not defined
-#    endif
-#    define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_ITERATION_LIMITS)
-#    include <boost/preprocessor/iteration/detail/bounds/lower5.hpp>
-#    define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_ITERATION_LIMITS)
-#    include <boost/preprocessor/iteration/detail/bounds/upper5.hpp>
-#    define BOOST_PP_ITERATION_FLAGS_5() 0
-#    undef BOOST_PP_ITERATION_LIMITS
-# elif defined(BOOST_PP_ITERATION_PARAMS_5)
-#    define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ITERATION_PARAMS_5)
-#    include <boost/preprocessor/iteration/detail/bounds/lower5.hpp>
-#    define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, BOOST_PP_ITERATION_PARAMS_5)
-#    include <boost/preprocessor/iteration/detail/bounds/upper5.hpp>
-#    define BOOST_PP_FILENAME_5 BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ITERATION_PARAMS_5)
-#    if BOOST_PP_ARRAY_SIZE(BOOST_PP_ITERATION_PARAMS_5) >= 4
-#        define BOOST_PP_ITERATION_FLAGS_5() BOOST_PP_ARRAY_ELEM(3, BOOST_PP_ITERATION_PARAMS_5)
-#    else
-#        define BOOST_PP_ITERATION_FLAGS_5() 0
-#    endif
-# else
-#    error BOOST_PP_ERROR:  depth #5 iteration boundaries or filename not defined
-# endif
-#
-# undef BOOST_PP_ITERATION_DEPTH
-# define BOOST_PP_ITERATION_DEPTH() 5
-#
-# if (BOOST_PP_ITERATION_START_5) > (BOOST_PP_ITERATION_FINISH_5)
-#    include <boost/preprocessor/iteration/detail/iter/reverse5.hpp>
-# else
-#    if BOOST_PP_ITERATION_START_5 <= 0 && BOOST_PP_ITERATION_FINISH_5 >= 0
-#        define BOOST_PP_ITERATION_5 0
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 1 && BOOST_PP_ITERATION_FINISH_5 >= 1
-#        define BOOST_PP_ITERATION_5 1
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 2 && BOOST_PP_ITERATION_FINISH_5 >= 2
-#        define BOOST_PP_ITERATION_5 2
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 3 && BOOST_PP_ITERATION_FINISH_5 >= 3
-#        define BOOST_PP_ITERATION_5 3
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 4 && BOOST_PP_ITERATION_FINISH_5 >= 4
-#        define BOOST_PP_ITERATION_5 4
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 5 && BOOST_PP_ITERATION_FINISH_5 >= 5
-#        define BOOST_PP_ITERATION_5 5
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 6 && BOOST_PP_ITERATION_FINISH_5 >= 6
-#        define BOOST_PP_ITERATION_5 6
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 7 && BOOST_PP_ITERATION_FINISH_5 >= 7
-#        define BOOST_PP_ITERATION_5 7
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 8 && BOOST_PP_ITERATION_FINISH_5 >= 8
-#        define BOOST_PP_ITERATION_5 8
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 9 && BOOST_PP_ITERATION_FINISH_5 >= 9
-#        define BOOST_PP_ITERATION_5 9
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 10 && BOOST_PP_ITERATION_FINISH_5 >= 10
-#        define BOOST_PP_ITERATION_5 10
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 11 && BOOST_PP_ITERATION_FINISH_5 >= 11
-#        define BOOST_PP_ITERATION_5 11
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 12 && BOOST_PP_ITERATION_FINISH_5 >= 12
-#        define BOOST_PP_ITERATION_5 12
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 13 && BOOST_PP_ITERATION_FINISH_5 >= 13
-#        define BOOST_PP_ITERATION_5 13
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 14 && BOOST_PP_ITERATION_FINISH_5 >= 14
-#        define BOOST_PP_ITERATION_5 14
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 15 && BOOST_PP_ITERATION_FINISH_5 >= 15
-#        define BOOST_PP_ITERATION_5 15
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 16 && BOOST_PP_ITERATION_FINISH_5 >= 16
-#        define BOOST_PP_ITERATION_5 16
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 17 && BOOST_PP_ITERATION_FINISH_5 >= 17
-#        define BOOST_PP_ITERATION_5 17
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 18 && BOOST_PP_ITERATION_FINISH_5 >= 18
-#        define BOOST_PP_ITERATION_5 18
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 19 && BOOST_PP_ITERATION_FINISH_5 >= 19
-#        define BOOST_PP_ITERATION_5 19
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 20 && BOOST_PP_ITERATION_FINISH_5 >= 20
-#        define BOOST_PP_ITERATION_5 20
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 21 && BOOST_PP_ITERATION_FINISH_5 >= 21
-#        define BOOST_PP_ITERATION_5 21
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 22 && BOOST_PP_ITERATION_FINISH_5 >= 22
-#        define BOOST_PP_ITERATION_5 22
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 23 && BOOST_PP_ITERATION_FINISH_5 >= 23
-#        define BOOST_PP_ITERATION_5 23
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 24 && BOOST_PP_ITERATION_FINISH_5 >= 24
-#        define BOOST_PP_ITERATION_5 24
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 25 && BOOST_PP_ITERATION_FINISH_5 >= 25
-#        define BOOST_PP_ITERATION_5 25
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 26 && BOOST_PP_ITERATION_FINISH_5 >= 26
-#        define BOOST_PP_ITERATION_5 26
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 27 && BOOST_PP_ITERATION_FINISH_5 >= 27
-#        define BOOST_PP_ITERATION_5 27
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 28 && BOOST_PP_ITERATION_FINISH_5 >= 28
-#        define BOOST_PP_ITERATION_5 28
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 29 && BOOST_PP_ITERATION_FINISH_5 >= 29
-#        define BOOST_PP_ITERATION_5 29
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 30 && BOOST_PP_ITERATION_FINISH_5 >= 30
-#        define BOOST_PP_ITERATION_5 30
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 31 && BOOST_PP_ITERATION_FINISH_5 >= 31
-#        define BOOST_PP_ITERATION_5 31
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 32 && BOOST_PP_ITERATION_FINISH_5 >= 32
-#        define BOOST_PP_ITERATION_5 32
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 33 && BOOST_PP_ITERATION_FINISH_5 >= 33
-#        define BOOST_PP_ITERATION_5 33
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 34 && BOOST_PP_ITERATION_FINISH_5 >= 34
-#        define BOOST_PP_ITERATION_5 34
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 35 && BOOST_PP_ITERATION_FINISH_5 >= 35
-#        define BOOST_PP_ITERATION_5 35
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 36 && BOOST_PP_ITERATION_FINISH_5 >= 36
-#        define BOOST_PP_ITERATION_5 36
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 37 && BOOST_PP_ITERATION_FINISH_5 >= 37
-#        define BOOST_PP_ITERATION_5 37
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 38 && BOOST_PP_ITERATION_FINISH_5 >= 38
-#        define BOOST_PP_ITERATION_5 38
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 39 && BOOST_PP_ITERATION_FINISH_5 >= 39
-#        define BOOST_PP_ITERATION_5 39
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 40 && BOOST_PP_ITERATION_FINISH_5 >= 40
-#        define BOOST_PP_ITERATION_5 40
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 41 && BOOST_PP_ITERATION_FINISH_5 >= 41
-#        define BOOST_PP_ITERATION_5 41
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 42 && BOOST_PP_ITERATION_FINISH_5 >= 42
-#        define BOOST_PP_ITERATION_5 42
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 43 && BOOST_PP_ITERATION_FINISH_5 >= 43
-#        define BOOST_PP_ITERATION_5 43
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 44 && BOOST_PP_ITERATION_FINISH_5 >= 44
-#        define BOOST_PP_ITERATION_5 44
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 45 && BOOST_PP_ITERATION_FINISH_5 >= 45
-#        define BOOST_PP_ITERATION_5 45
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 46 && BOOST_PP_ITERATION_FINISH_5 >= 46
-#        define BOOST_PP_ITERATION_5 46
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 47 && BOOST_PP_ITERATION_FINISH_5 >= 47
-#        define BOOST_PP_ITERATION_5 47
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 48 && BOOST_PP_ITERATION_FINISH_5 >= 48
-#        define BOOST_PP_ITERATION_5 48
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 49 && BOOST_PP_ITERATION_FINISH_5 >= 49
-#        define BOOST_PP_ITERATION_5 49
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 50 && BOOST_PP_ITERATION_FINISH_5 >= 50
-#        define BOOST_PP_ITERATION_5 50
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 51 && BOOST_PP_ITERATION_FINISH_5 >= 51
-#        define BOOST_PP_ITERATION_5 51
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 52 && BOOST_PP_ITERATION_FINISH_5 >= 52
-#        define BOOST_PP_ITERATION_5 52
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 53 && BOOST_PP_ITERATION_FINISH_5 >= 53
-#        define BOOST_PP_ITERATION_5 53
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 54 && BOOST_PP_ITERATION_FINISH_5 >= 54
-#        define BOOST_PP_ITERATION_5 54
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 55 && BOOST_PP_ITERATION_FINISH_5 >= 55
-#        define BOOST_PP_ITERATION_5 55
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 56 && BOOST_PP_ITERATION_FINISH_5 >= 56
-#        define BOOST_PP_ITERATION_5 56
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 57 && BOOST_PP_ITERATION_FINISH_5 >= 57
-#        define BOOST_PP_ITERATION_5 57
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 58 && BOOST_PP_ITERATION_FINISH_5 >= 58
-#        define BOOST_PP_ITERATION_5 58
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 59 && BOOST_PP_ITERATION_FINISH_5 >= 59
-#        define BOOST_PP_ITERATION_5 59
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 60 && BOOST_PP_ITERATION_FINISH_5 >= 60
-#        define BOOST_PP_ITERATION_5 60
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 61 && BOOST_PP_ITERATION_FINISH_5 >= 61
-#        define BOOST_PP_ITERATION_5 61
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 62 && BOOST_PP_ITERATION_FINISH_5 >= 62
-#        define BOOST_PP_ITERATION_5 62
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 63 && BOOST_PP_ITERATION_FINISH_5 >= 63
-#        define BOOST_PP_ITERATION_5 63
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 64 && BOOST_PP_ITERATION_FINISH_5 >= 64
-#        define BOOST_PP_ITERATION_5 64
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 65 && BOOST_PP_ITERATION_FINISH_5 >= 65
-#        define BOOST_PP_ITERATION_5 65
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 66 && BOOST_PP_ITERATION_FINISH_5 >= 66
-#        define BOOST_PP_ITERATION_5 66
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 67 && BOOST_PP_ITERATION_FINISH_5 >= 67
-#        define BOOST_PP_ITERATION_5 67
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 68 && BOOST_PP_ITERATION_FINISH_5 >= 68
-#        define BOOST_PP_ITERATION_5 68
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 69 && BOOST_PP_ITERATION_FINISH_5 >= 69
-#        define BOOST_PP_ITERATION_5 69
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 70 && BOOST_PP_ITERATION_FINISH_5 >= 70
-#        define BOOST_PP_ITERATION_5 70
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 71 && BOOST_PP_ITERATION_FINISH_5 >= 71
-#        define BOOST_PP_ITERATION_5 71
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 72 && BOOST_PP_ITERATION_FINISH_5 >= 72
-#        define BOOST_PP_ITERATION_5 72
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 73 && BOOST_PP_ITERATION_FINISH_5 >= 73
-#        define BOOST_PP_ITERATION_5 73
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 74 && BOOST_PP_ITERATION_FINISH_5 >= 74
-#        define BOOST_PP_ITERATION_5 74
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 75 && BOOST_PP_ITERATION_FINISH_5 >= 75
-#        define BOOST_PP_ITERATION_5 75
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 76 && BOOST_PP_ITERATION_FINISH_5 >= 76
-#        define BOOST_PP_ITERATION_5 76
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 77 && BOOST_PP_ITERATION_FINISH_5 >= 77
-#        define BOOST_PP_ITERATION_5 77
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 78 && BOOST_PP_ITERATION_FINISH_5 >= 78
-#        define BOOST_PP_ITERATION_5 78
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 79 && BOOST_PP_ITERATION_FINISH_5 >= 79
-#        define BOOST_PP_ITERATION_5 79
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 80 && BOOST_PP_ITERATION_FINISH_5 >= 80
-#        define BOOST_PP_ITERATION_5 80
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 81 && BOOST_PP_ITERATION_FINISH_5 >= 81
-#        define BOOST_PP_ITERATION_5 81
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 82 && BOOST_PP_ITERATION_FINISH_5 >= 82
-#        define BOOST_PP_ITERATION_5 82
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 83 && BOOST_PP_ITERATION_FINISH_5 >= 83
-#        define BOOST_PP_ITERATION_5 83
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 84 && BOOST_PP_ITERATION_FINISH_5 >= 84
-#        define BOOST_PP_ITERATION_5 84
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 85 && BOOST_PP_ITERATION_FINISH_5 >= 85
-#        define BOOST_PP_ITERATION_5 85
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 86 && BOOST_PP_ITERATION_FINISH_5 >= 86
-#        define BOOST_PP_ITERATION_5 86
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 87 && BOOST_PP_ITERATION_FINISH_5 >= 87
-#        define BOOST_PP_ITERATION_5 87
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 88 && BOOST_PP_ITERATION_FINISH_5 >= 88
-#        define BOOST_PP_ITERATION_5 88
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 89 && BOOST_PP_ITERATION_FINISH_5 >= 89
-#        define BOOST_PP_ITERATION_5 89
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 90 && BOOST_PP_ITERATION_FINISH_5 >= 90
-#        define BOOST_PP_ITERATION_5 90
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 91 && BOOST_PP_ITERATION_FINISH_5 >= 91
-#        define BOOST_PP_ITERATION_5 91
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 92 && BOOST_PP_ITERATION_FINISH_5 >= 92
-#        define BOOST_PP_ITERATION_5 92
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 93 && BOOST_PP_ITERATION_FINISH_5 >= 93
-#        define BOOST_PP_ITERATION_5 93
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 94 && BOOST_PP_ITERATION_FINISH_5 >= 94
-#        define BOOST_PP_ITERATION_5 94
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 95 && BOOST_PP_ITERATION_FINISH_5 >= 95
-#        define BOOST_PP_ITERATION_5 95
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 96 && BOOST_PP_ITERATION_FINISH_5 >= 96
-#        define BOOST_PP_ITERATION_5 96
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 97 && BOOST_PP_ITERATION_FINISH_5 >= 97
-#        define BOOST_PP_ITERATION_5 97
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 98 && BOOST_PP_ITERATION_FINISH_5 >= 98
-#        define BOOST_PP_ITERATION_5 98
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 99 && BOOST_PP_ITERATION_FINISH_5 >= 99
-#        define BOOST_PP_ITERATION_5 99
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 100 && BOOST_PP_ITERATION_FINISH_5 >= 100
-#        define BOOST_PP_ITERATION_5 100
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 101 && BOOST_PP_ITERATION_FINISH_5 >= 101
-#        define BOOST_PP_ITERATION_5 101
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 102 && BOOST_PP_ITERATION_FINISH_5 >= 102
-#        define BOOST_PP_ITERATION_5 102
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 103 && BOOST_PP_ITERATION_FINISH_5 >= 103
-#        define BOOST_PP_ITERATION_5 103
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 104 && BOOST_PP_ITERATION_FINISH_5 >= 104
-#        define BOOST_PP_ITERATION_5 104
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 105 && BOOST_PP_ITERATION_FINISH_5 >= 105
-#        define BOOST_PP_ITERATION_5 105
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 106 && BOOST_PP_ITERATION_FINISH_5 >= 106
-#        define BOOST_PP_ITERATION_5 106
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 107 && BOOST_PP_ITERATION_FINISH_5 >= 107
-#        define BOOST_PP_ITERATION_5 107
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 108 && BOOST_PP_ITERATION_FINISH_5 >= 108
-#        define BOOST_PP_ITERATION_5 108
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 109 && BOOST_PP_ITERATION_FINISH_5 >= 109
-#        define BOOST_PP_ITERATION_5 109
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 110 && BOOST_PP_ITERATION_FINISH_5 >= 110
-#        define BOOST_PP_ITERATION_5 110
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 111 && BOOST_PP_ITERATION_FINISH_5 >= 111
-#        define BOOST_PP_ITERATION_5 111
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 112 && BOOST_PP_ITERATION_FINISH_5 >= 112
-#        define BOOST_PP_ITERATION_5 112
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 113 && BOOST_PP_ITERATION_FINISH_5 >= 113
-#        define BOOST_PP_ITERATION_5 113
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 114 && BOOST_PP_ITERATION_FINISH_5 >= 114
-#        define BOOST_PP_ITERATION_5 114
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 115 && BOOST_PP_ITERATION_FINISH_5 >= 115
-#        define BOOST_PP_ITERATION_5 115
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 116 && BOOST_PP_ITERATION_FINISH_5 >= 116
-#        define BOOST_PP_ITERATION_5 116
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 117 && BOOST_PP_ITERATION_FINISH_5 >= 117
-#        define BOOST_PP_ITERATION_5 117
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 118 && BOOST_PP_ITERATION_FINISH_5 >= 118
-#        define BOOST_PP_ITERATION_5 118
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 119 && BOOST_PP_ITERATION_FINISH_5 >= 119
-#        define BOOST_PP_ITERATION_5 119
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 120 && BOOST_PP_ITERATION_FINISH_5 >= 120
-#        define BOOST_PP_ITERATION_5 120
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 121 && BOOST_PP_ITERATION_FINISH_5 >= 121
-#        define BOOST_PP_ITERATION_5 121
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 122 && BOOST_PP_ITERATION_FINISH_5 >= 122
-#        define BOOST_PP_ITERATION_5 122
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 123 && BOOST_PP_ITERATION_FINISH_5 >= 123
-#        define BOOST_PP_ITERATION_5 123
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 124 && BOOST_PP_ITERATION_FINISH_5 >= 124
-#        define BOOST_PP_ITERATION_5 124
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 125 && BOOST_PP_ITERATION_FINISH_5 >= 125
-#        define BOOST_PP_ITERATION_5 125
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 126 && BOOST_PP_ITERATION_FINISH_5 >= 126
-#        define BOOST_PP_ITERATION_5 126
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 127 && BOOST_PP_ITERATION_FINISH_5 >= 127
-#        define BOOST_PP_ITERATION_5 127
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 128 && BOOST_PP_ITERATION_FINISH_5 >= 128
-#        define BOOST_PP_ITERATION_5 128
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 129 && BOOST_PP_ITERATION_FINISH_5 >= 129
-#        define BOOST_PP_ITERATION_5 129
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 130 && BOOST_PP_ITERATION_FINISH_5 >= 130
-#        define BOOST_PP_ITERATION_5 130
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 131 && BOOST_PP_ITERATION_FINISH_5 >= 131
-#        define BOOST_PP_ITERATION_5 131
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 132 && BOOST_PP_ITERATION_FINISH_5 >= 132
-#        define BOOST_PP_ITERATION_5 132
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 133 && BOOST_PP_ITERATION_FINISH_5 >= 133
-#        define BOOST_PP_ITERATION_5 133
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 134 && BOOST_PP_ITERATION_FINISH_5 >= 134
-#        define BOOST_PP_ITERATION_5 134
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 135 && BOOST_PP_ITERATION_FINISH_5 >= 135
-#        define BOOST_PP_ITERATION_5 135
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 136 && BOOST_PP_ITERATION_FINISH_5 >= 136
-#        define BOOST_PP_ITERATION_5 136
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 137 && BOOST_PP_ITERATION_FINISH_5 >= 137
-#        define BOOST_PP_ITERATION_5 137
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 138 && BOOST_PP_ITERATION_FINISH_5 >= 138
-#        define BOOST_PP_ITERATION_5 138
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 139 && BOOST_PP_ITERATION_FINISH_5 >= 139
-#        define BOOST_PP_ITERATION_5 139
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 140 && BOOST_PP_ITERATION_FINISH_5 >= 140
-#        define BOOST_PP_ITERATION_5 140
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 141 && BOOST_PP_ITERATION_FINISH_5 >= 141
-#        define BOOST_PP_ITERATION_5 141
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 142 && BOOST_PP_ITERATION_FINISH_5 >= 142
-#        define BOOST_PP_ITERATION_5 142
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 143 && BOOST_PP_ITERATION_FINISH_5 >= 143
-#        define BOOST_PP_ITERATION_5 143
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 144 && BOOST_PP_ITERATION_FINISH_5 >= 144
-#        define BOOST_PP_ITERATION_5 144
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 145 && BOOST_PP_ITERATION_FINISH_5 >= 145
-#        define BOOST_PP_ITERATION_5 145
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 146 && BOOST_PP_ITERATION_FINISH_5 >= 146
-#        define BOOST_PP_ITERATION_5 146
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 147 && BOOST_PP_ITERATION_FINISH_5 >= 147
-#        define BOOST_PP_ITERATION_5 147
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 148 && BOOST_PP_ITERATION_FINISH_5 >= 148
-#        define BOOST_PP_ITERATION_5 148
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 149 && BOOST_PP_ITERATION_FINISH_5 >= 149
-#        define BOOST_PP_ITERATION_5 149
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 150 && BOOST_PP_ITERATION_FINISH_5 >= 150
-#        define BOOST_PP_ITERATION_5 150
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 151 && BOOST_PP_ITERATION_FINISH_5 >= 151
-#        define BOOST_PP_ITERATION_5 151
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 152 && BOOST_PP_ITERATION_FINISH_5 >= 152
-#        define BOOST_PP_ITERATION_5 152
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 153 && BOOST_PP_ITERATION_FINISH_5 >= 153
-#        define BOOST_PP_ITERATION_5 153
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 154 && BOOST_PP_ITERATION_FINISH_5 >= 154
-#        define BOOST_PP_ITERATION_5 154
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 155 && BOOST_PP_ITERATION_FINISH_5 >= 155
-#        define BOOST_PP_ITERATION_5 155
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 156 && BOOST_PP_ITERATION_FINISH_5 >= 156
-#        define BOOST_PP_ITERATION_5 156
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 157 && BOOST_PP_ITERATION_FINISH_5 >= 157
-#        define BOOST_PP_ITERATION_5 157
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 158 && BOOST_PP_ITERATION_FINISH_5 >= 158
-#        define BOOST_PP_ITERATION_5 158
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 159 && BOOST_PP_ITERATION_FINISH_5 >= 159
-#        define BOOST_PP_ITERATION_5 159
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 160 && BOOST_PP_ITERATION_FINISH_5 >= 160
-#        define BOOST_PP_ITERATION_5 160
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 161 && BOOST_PP_ITERATION_FINISH_5 >= 161
-#        define BOOST_PP_ITERATION_5 161
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 162 && BOOST_PP_ITERATION_FINISH_5 >= 162
-#        define BOOST_PP_ITERATION_5 162
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 163 && BOOST_PP_ITERATION_FINISH_5 >= 163
-#        define BOOST_PP_ITERATION_5 163
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 164 && BOOST_PP_ITERATION_FINISH_5 >= 164
-#        define BOOST_PP_ITERATION_5 164
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 165 && BOOST_PP_ITERATION_FINISH_5 >= 165
-#        define BOOST_PP_ITERATION_5 165
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 166 && BOOST_PP_ITERATION_FINISH_5 >= 166
-#        define BOOST_PP_ITERATION_5 166
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 167 && BOOST_PP_ITERATION_FINISH_5 >= 167
-#        define BOOST_PP_ITERATION_5 167
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 168 && BOOST_PP_ITERATION_FINISH_5 >= 168
-#        define BOOST_PP_ITERATION_5 168
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 169 && BOOST_PP_ITERATION_FINISH_5 >= 169
-#        define BOOST_PP_ITERATION_5 169
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 170 && BOOST_PP_ITERATION_FINISH_5 >= 170
-#        define BOOST_PP_ITERATION_5 170
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 171 && BOOST_PP_ITERATION_FINISH_5 >= 171
-#        define BOOST_PP_ITERATION_5 171
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 172 && BOOST_PP_ITERATION_FINISH_5 >= 172
-#        define BOOST_PP_ITERATION_5 172
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 173 && BOOST_PP_ITERATION_FINISH_5 >= 173
-#        define BOOST_PP_ITERATION_5 173
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 174 && BOOST_PP_ITERATION_FINISH_5 >= 174
-#        define BOOST_PP_ITERATION_5 174
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 175 && BOOST_PP_ITERATION_FINISH_5 >= 175
-#        define BOOST_PP_ITERATION_5 175
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 176 && BOOST_PP_ITERATION_FINISH_5 >= 176
-#        define BOOST_PP_ITERATION_5 176
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 177 && BOOST_PP_ITERATION_FINISH_5 >= 177
-#        define BOOST_PP_ITERATION_5 177
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 178 && BOOST_PP_ITERATION_FINISH_5 >= 178
-#        define BOOST_PP_ITERATION_5 178
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 179 && BOOST_PP_ITERATION_FINISH_5 >= 179
-#        define BOOST_PP_ITERATION_5 179
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 180 && BOOST_PP_ITERATION_FINISH_5 >= 180
-#        define BOOST_PP_ITERATION_5 180
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 181 && BOOST_PP_ITERATION_FINISH_5 >= 181
-#        define BOOST_PP_ITERATION_5 181
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 182 && BOOST_PP_ITERATION_FINISH_5 >= 182
-#        define BOOST_PP_ITERATION_5 182
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 183 && BOOST_PP_ITERATION_FINISH_5 >= 183
-#        define BOOST_PP_ITERATION_5 183
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 184 && BOOST_PP_ITERATION_FINISH_5 >= 184
-#        define BOOST_PP_ITERATION_5 184
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 185 && BOOST_PP_ITERATION_FINISH_5 >= 185
-#        define BOOST_PP_ITERATION_5 185
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 186 && BOOST_PP_ITERATION_FINISH_5 >= 186
-#        define BOOST_PP_ITERATION_5 186
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 187 && BOOST_PP_ITERATION_FINISH_5 >= 187
-#        define BOOST_PP_ITERATION_5 187
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 188 && BOOST_PP_ITERATION_FINISH_5 >= 188
-#        define BOOST_PP_ITERATION_5 188
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 189 && BOOST_PP_ITERATION_FINISH_5 >= 189
-#        define BOOST_PP_ITERATION_5 189
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 190 && BOOST_PP_ITERATION_FINISH_5 >= 190
-#        define BOOST_PP_ITERATION_5 190
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 191 && BOOST_PP_ITERATION_FINISH_5 >= 191
-#        define BOOST_PP_ITERATION_5 191
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 192 && BOOST_PP_ITERATION_FINISH_5 >= 192
-#        define BOOST_PP_ITERATION_5 192
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 193 && BOOST_PP_ITERATION_FINISH_5 >= 193
-#        define BOOST_PP_ITERATION_5 193
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 194 && BOOST_PP_ITERATION_FINISH_5 >= 194
-#        define BOOST_PP_ITERATION_5 194
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 195 && BOOST_PP_ITERATION_FINISH_5 >= 195
-#        define BOOST_PP_ITERATION_5 195
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 196 && BOOST_PP_ITERATION_FINISH_5 >= 196
-#        define BOOST_PP_ITERATION_5 196
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 197 && BOOST_PP_ITERATION_FINISH_5 >= 197
-#        define BOOST_PP_ITERATION_5 197
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 198 && BOOST_PP_ITERATION_FINISH_5 >= 198
-#        define BOOST_PP_ITERATION_5 198
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 199 && BOOST_PP_ITERATION_FINISH_5 >= 199
-#        define BOOST_PP_ITERATION_5 199
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 200 && BOOST_PP_ITERATION_FINISH_5 >= 200
-#        define BOOST_PP_ITERATION_5 200
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 201 && BOOST_PP_ITERATION_FINISH_5 >= 201
-#        define BOOST_PP_ITERATION_5 201
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 202 && BOOST_PP_ITERATION_FINISH_5 >= 202
-#        define BOOST_PP_ITERATION_5 202
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 203 && BOOST_PP_ITERATION_FINISH_5 >= 203
-#        define BOOST_PP_ITERATION_5 203
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 204 && BOOST_PP_ITERATION_FINISH_5 >= 204
-#        define BOOST_PP_ITERATION_5 204
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 205 && BOOST_PP_ITERATION_FINISH_5 >= 205
-#        define BOOST_PP_ITERATION_5 205
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 206 && BOOST_PP_ITERATION_FINISH_5 >= 206
-#        define BOOST_PP_ITERATION_5 206
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 207 && BOOST_PP_ITERATION_FINISH_5 >= 207
-#        define BOOST_PP_ITERATION_5 207
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 208 && BOOST_PP_ITERATION_FINISH_5 >= 208
-#        define BOOST_PP_ITERATION_5 208
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 209 && BOOST_PP_ITERATION_FINISH_5 >= 209
-#        define BOOST_PP_ITERATION_5 209
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 210 && BOOST_PP_ITERATION_FINISH_5 >= 210
-#        define BOOST_PP_ITERATION_5 210
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 211 && BOOST_PP_ITERATION_FINISH_5 >= 211
-#        define BOOST_PP_ITERATION_5 211
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 212 && BOOST_PP_ITERATION_FINISH_5 >= 212
-#        define BOOST_PP_ITERATION_5 212
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 213 && BOOST_PP_ITERATION_FINISH_5 >= 213
-#        define BOOST_PP_ITERATION_5 213
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 214 && BOOST_PP_ITERATION_FINISH_5 >= 214
-#        define BOOST_PP_ITERATION_5 214
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 215 && BOOST_PP_ITERATION_FINISH_5 >= 215
-#        define BOOST_PP_ITERATION_5 215
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 216 && BOOST_PP_ITERATION_FINISH_5 >= 216
-#        define BOOST_PP_ITERATION_5 216
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 217 && BOOST_PP_ITERATION_FINISH_5 >= 217
-#        define BOOST_PP_ITERATION_5 217
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 218 && BOOST_PP_ITERATION_FINISH_5 >= 218
-#        define BOOST_PP_ITERATION_5 218
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 219 && BOOST_PP_ITERATION_FINISH_5 >= 219
-#        define BOOST_PP_ITERATION_5 219
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 220 && BOOST_PP_ITERATION_FINISH_5 >= 220
-#        define BOOST_PP_ITERATION_5 220
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 221 && BOOST_PP_ITERATION_FINISH_5 >= 221
-#        define BOOST_PP_ITERATION_5 221
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 222 && BOOST_PP_ITERATION_FINISH_5 >= 222
-#        define BOOST_PP_ITERATION_5 222
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 223 && BOOST_PP_ITERATION_FINISH_5 >= 223
-#        define BOOST_PP_ITERATION_5 223
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 224 && BOOST_PP_ITERATION_FINISH_5 >= 224
-#        define BOOST_PP_ITERATION_5 224
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 225 && BOOST_PP_ITERATION_FINISH_5 >= 225
-#        define BOOST_PP_ITERATION_5 225
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 226 && BOOST_PP_ITERATION_FINISH_5 >= 226
-#        define BOOST_PP_ITERATION_5 226
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 227 && BOOST_PP_ITERATION_FINISH_5 >= 227
-#        define BOOST_PP_ITERATION_5 227
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 228 && BOOST_PP_ITERATION_FINISH_5 >= 228
-#        define BOOST_PP_ITERATION_5 228
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 229 && BOOST_PP_ITERATION_FINISH_5 >= 229
-#        define BOOST_PP_ITERATION_5 229
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 230 && BOOST_PP_ITERATION_FINISH_5 >= 230
-#        define BOOST_PP_ITERATION_5 230
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 231 && BOOST_PP_ITERATION_FINISH_5 >= 231
-#        define BOOST_PP_ITERATION_5 231
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 232 && BOOST_PP_ITERATION_FINISH_5 >= 232
-#        define BOOST_PP_ITERATION_5 232
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 233 && BOOST_PP_ITERATION_FINISH_5 >= 233
-#        define BOOST_PP_ITERATION_5 233
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 234 && BOOST_PP_ITERATION_FINISH_5 >= 234
-#        define BOOST_PP_ITERATION_5 234
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 235 && BOOST_PP_ITERATION_FINISH_5 >= 235
-#        define BOOST_PP_ITERATION_5 235
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 236 && BOOST_PP_ITERATION_FINISH_5 >= 236
-#        define BOOST_PP_ITERATION_5 236
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 237 && BOOST_PP_ITERATION_FINISH_5 >= 237
-#        define BOOST_PP_ITERATION_5 237
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 238 && BOOST_PP_ITERATION_FINISH_5 >= 238
-#        define BOOST_PP_ITERATION_5 238
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 239 && BOOST_PP_ITERATION_FINISH_5 >= 239
-#        define BOOST_PP_ITERATION_5 239
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 240 && BOOST_PP_ITERATION_FINISH_5 >= 240
-#        define BOOST_PP_ITERATION_5 240
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 241 && BOOST_PP_ITERATION_FINISH_5 >= 241
-#        define BOOST_PP_ITERATION_5 241
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 242 && BOOST_PP_ITERATION_FINISH_5 >= 242
-#        define BOOST_PP_ITERATION_5 242
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 243 && BOOST_PP_ITERATION_FINISH_5 >= 243
-#        define BOOST_PP_ITERATION_5 243
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 244 && BOOST_PP_ITERATION_FINISH_5 >= 244
-#        define BOOST_PP_ITERATION_5 244
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 245 && BOOST_PP_ITERATION_FINISH_5 >= 245
-#        define BOOST_PP_ITERATION_5 245
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 246 && BOOST_PP_ITERATION_FINISH_5 >= 246
-#        define BOOST_PP_ITERATION_5 246
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 247 && BOOST_PP_ITERATION_FINISH_5 >= 247
-#        define BOOST_PP_ITERATION_5 247
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 248 && BOOST_PP_ITERATION_FINISH_5 >= 248
-#        define BOOST_PP_ITERATION_5 248
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 249 && BOOST_PP_ITERATION_FINISH_5 >= 249
-#        define BOOST_PP_ITERATION_5 249
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 250 && BOOST_PP_ITERATION_FINISH_5 >= 250
-#        define BOOST_PP_ITERATION_5 250
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 251 && BOOST_PP_ITERATION_FINISH_5 >= 251
-#        define BOOST_PP_ITERATION_5 251
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 252 && BOOST_PP_ITERATION_FINISH_5 >= 252
-#        define BOOST_PP_ITERATION_5 252
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 253 && BOOST_PP_ITERATION_FINISH_5 >= 253
-#        define BOOST_PP_ITERATION_5 253
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 254 && BOOST_PP_ITERATION_FINISH_5 >= 254
-#        define BOOST_PP_ITERATION_5 254
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 255 && BOOST_PP_ITERATION_FINISH_5 >= 255
-#        define BOOST_PP_ITERATION_5 255
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-#    if BOOST_PP_ITERATION_START_5 <= 256 && BOOST_PP_ITERATION_FINISH_5 >= 256
-#        define BOOST_PP_ITERATION_5 256
-#        include BOOST_PP_FILENAME_5
-#        undef BOOST_PP_ITERATION_5
-#    endif
-# endif
-#
-# undef BOOST_PP_ITERATION_DEPTH
-# define BOOST_PP_ITERATION_DEPTH() 4
-#
-# undef BOOST_PP_ITERATION_START_5
-# undef BOOST_PP_ITERATION_FINISH_5
-# undef BOOST_PP_FILENAME_5
-#
-# undef BOOST_PP_ITERATION_FLAGS_5
-# undef BOOST_PP_ITERATION_PARAMS_5
diff --git a/boost/preprocessor/iteration/detail/iter/reverse1.hpp b/boost/preprocessor/iteration/detail/iter/reverse1.hpp
deleted file mode 100644
index bf88d2f..0000000
--- a/boost/preprocessor/iteration/detail/iter/reverse1.hpp
+++ /dev/null
@@ -1,1296 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# if BOOST_PP_ITERATION_FINISH_1 <= 256 && BOOST_PP_ITERATION_START_1 >= 256
-#    define BOOST_PP_ITERATION_1 256
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 255 && BOOST_PP_ITERATION_START_1 >= 255
-#    define BOOST_PP_ITERATION_1 255
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 254 && BOOST_PP_ITERATION_START_1 >= 254
-#    define BOOST_PP_ITERATION_1 254
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 253 && BOOST_PP_ITERATION_START_1 >= 253
-#    define BOOST_PP_ITERATION_1 253
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 252 && BOOST_PP_ITERATION_START_1 >= 252
-#    define BOOST_PP_ITERATION_1 252
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 251 && BOOST_PP_ITERATION_START_1 >= 251
-#    define BOOST_PP_ITERATION_1 251
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 250 && BOOST_PP_ITERATION_START_1 >= 250
-#    define BOOST_PP_ITERATION_1 250
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 249 && BOOST_PP_ITERATION_START_1 >= 249
-#    define BOOST_PP_ITERATION_1 249
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 248 && BOOST_PP_ITERATION_START_1 >= 248
-#    define BOOST_PP_ITERATION_1 248
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 247 && BOOST_PP_ITERATION_START_1 >= 247
-#    define BOOST_PP_ITERATION_1 247
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 246 && BOOST_PP_ITERATION_START_1 >= 246
-#    define BOOST_PP_ITERATION_1 246
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 245 && BOOST_PP_ITERATION_START_1 >= 245
-#    define BOOST_PP_ITERATION_1 245
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 244 && BOOST_PP_ITERATION_START_1 >= 244
-#    define BOOST_PP_ITERATION_1 244
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 243 && BOOST_PP_ITERATION_START_1 >= 243
-#    define BOOST_PP_ITERATION_1 243
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 242 && BOOST_PP_ITERATION_START_1 >= 242
-#    define BOOST_PP_ITERATION_1 242
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 241 && BOOST_PP_ITERATION_START_1 >= 241
-#    define BOOST_PP_ITERATION_1 241
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 240 && BOOST_PP_ITERATION_START_1 >= 240
-#    define BOOST_PP_ITERATION_1 240
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 239 && BOOST_PP_ITERATION_START_1 >= 239
-#    define BOOST_PP_ITERATION_1 239
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 238 && BOOST_PP_ITERATION_START_1 >= 238
-#    define BOOST_PP_ITERATION_1 238
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 237 && BOOST_PP_ITERATION_START_1 >= 237
-#    define BOOST_PP_ITERATION_1 237
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 236 && BOOST_PP_ITERATION_START_1 >= 236
-#    define BOOST_PP_ITERATION_1 236
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 235 && BOOST_PP_ITERATION_START_1 >= 235
-#    define BOOST_PP_ITERATION_1 235
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 234 && BOOST_PP_ITERATION_START_1 >= 234
-#    define BOOST_PP_ITERATION_1 234
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 233 && BOOST_PP_ITERATION_START_1 >= 233
-#    define BOOST_PP_ITERATION_1 233
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 232 && BOOST_PP_ITERATION_START_1 >= 232
-#    define BOOST_PP_ITERATION_1 232
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 231 && BOOST_PP_ITERATION_START_1 >= 231
-#    define BOOST_PP_ITERATION_1 231
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 230 && BOOST_PP_ITERATION_START_1 >= 230
-#    define BOOST_PP_ITERATION_1 230
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 229 && BOOST_PP_ITERATION_START_1 >= 229
-#    define BOOST_PP_ITERATION_1 229
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 228 && BOOST_PP_ITERATION_START_1 >= 228
-#    define BOOST_PP_ITERATION_1 228
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 227 && BOOST_PP_ITERATION_START_1 >= 227
-#    define BOOST_PP_ITERATION_1 227
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 226 && BOOST_PP_ITERATION_START_1 >= 226
-#    define BOOST_PP_ITERATION_1 226
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 225 && BOOST_PP_ITERATION_START_1 >= 225
-#    define BOOST_PP_ITERATION_1 225
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 224 && BOOST_PP_ITERATION_START_1 >= 224
-#    define BOOST_PP_ITERATION_1 224
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 223 && BOOST_PP_ITERATION_START_1 >= 223
-#    define BOOST_PP_ITERATION_1 223
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 222 && BOOST_PP_ITERATION_START_1 >= 222
-#    define BOOST_PP_ITERATION_1 222
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 221 && BOOST_PP_ITERATION_START_1 >= 221
-#    define BOOST_PP_ITERATION_1 221
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 220 && BOOST_PP_ITERATION_START_1 >= 220
-#    define BOOST_PP_ITERATION_1 220
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 219 && BOOST_PP_ITERATION_START_1 >= 219
-#    define BOOST_PP_ITERATION_1 219
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 218 && BOOST_PP_ITERATION_START_1 >= 218
-#    define BOOST_PP_ITERATION_1 218
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 217 && BOOST_PP_ITERATION_START_1 >= 217
-#    define BOOST_PP_ITERATION_1 217
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 216 && BOOST_PP_ITERATION_START_1 >= 216
-#    define BOOST_PP_ITERATION_1 216
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 215 && BOOST_PP_ITERATION_START_1 >= 215
-#    define BOOST_PP_ITERATION_1 215
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 214 && BOOST_PP_ITERATION_START_1 >= 214
-#    define BOOST_PP_ITERATION_1 214
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 213 && BOOST_PP_ITERATION_START_1 >= 213
-#    define BOOST_PP_ITERATION_1 213
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 212 && BOOST_PP_ITERATION_START_1 >= 212
-#    define BOOST_PP_ITERATION_1 212
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 211 && BOOST_PP_ITERATION_START_1 >= 211
-#    define BOOST_PP_ITERATION_1 211
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 210 && BOOST_PP_ITERATION_START_1 >= 210
-#    define BOOST_PP_ITERATION_1 210
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 209 && BOOST_PP_ITERATION_START_1 >= 209
-#    define BOOST_PP_ITERATION_1 209
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 208 && BOOST_PP_ITERATION_START_1 >= 208
-#    define BOOST_PP_ITERATION_1 208
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 207 && BOOST_PP_ITERATION_START_1 >= 207
-#    define BOOST_PP_ITERATION_1 207
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 206 && BOOST_PP_ITERATION_START_1 >= 206
-#    define BOOST_PP_ITERATION_1 206
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 205 && BOOST_PP_ITERATION_START_1 >= 205
-#    define BOOST_PP_ITERATION_1 205
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 204 && BOOST_PP_ITERATION_START_1 >= 204
-#    define BOOST_PP_ITERATION_1 204
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 203 && BOOST_PP_ITERATION_START_1 >= 203
-#    define BOOST_PP_ITERATION_1 203
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 202 && BOOST_PP_ITERATION_START_1 >= 202
-#    define BOOST_PP_ITERATION_1 202
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 201 && BOOST_PP_ITERATION_START_1 >= 201
-#    define BOOST_PP_ITERATION_1 201
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 200 && BOOST_PP_ITERATION_START_1 >= 200
-#    define BOOST_PP_ITERATION_1 200
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 199 && BOOST_PP_ITERATION_START_1 >= 199
-#    define BOOST_PP_ITERATION_1 199
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 198 && BOOST_PP_ITERATION_START_1 >= 198
-#    define BOOST_PP_ITERATION_1 198
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 197 && BOOST_PP_ITERATION_START_1 >= 197
-#    define BOOST_PP_ITERATION_1 197
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 196 && BOOST_PP_ITERATION_START_1 >= 196
-#    define BOOST_PP_ITERATION_1 196
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 195 && BOOST_PP_ITERATION_START_1 >= 195
-#    define BOOST_PP_ITERATION_1 195
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 194 && BOOST_PP_ITERATION_START_1 >= 194
-#    define BOOST_PP_ITERATION_1 194
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 193 && BOOST_PP_ITERATION_START_1 >= 193
-#    define BOOST_PP_ITERATION_1 193
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 192 && BOOST_PP_ITERATION_START_1 >= 192
-#    define BOOST_PP_ITERATION_1 192
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 191 && BOOST_PP_ITERATION_START_1 >= 191
-#    define BOOST_PP_ITERATION_1 191
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 190 && BOOST_PP_ITERATION_START_1 >= 190
-#    define BOOST_PP_ITERATION_1 190
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 189 && BOOST_PP_ITERATION_START_1 >= 189
-#    define BOOST_PP_ITERATION_1 189
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 188 && BOOST_PP_ITERATION_START_1 >= 188
-#    define BOOST_PP_ITERATION_1 188
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 187 && BOOST_PP_ITERATION_START_1 >= 187
-#    define BOOST_PP_ITERATION_1 187
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 186 && BOOST_PP_ITERATION_START_1 >= 186
-#    define BOOST_PP_ITERATION_1 186
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 185 && BOOST_PP_ITERATION_START_1 >= 185
-#    define BOOST_PP_ITERATION_1 185
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 184 && BOOST_PP_ITERATION_START_1 >= 184
-#    define BOOST_PP_ITERATION_1 184
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 183 && BOOST_PP_ITERATION_START_1 >= 183
-#    define BOOST_PP_ITERATION_1 183
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 182 && BOOST_PP_ITERATION_START_1 >= 182
-#    define BOOST_PP_ITERATION_1 182
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 181 && BOOST_PP_ITERATION_START_1 >= 181
-#    define BOOST_PP_ITERATION_1 181
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 180 && BOOST_PP_ITERATION_START_1 >= 180
-#    define BOOST_PP_ITERATION_1 180
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 179 && BOOST_PP_ITERATION_START_1 >= 179
-#    define BOOST_PP_ITERATION_1 179
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 178 && BOOST_PP_ITERATION_START_1 >= 178
-#    define BOOST_PP_ITERATION_1 178
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 177 && BOOST_PP_ITERATION_START_1 >= 177
-#    define BOOST_PP_ITERATION_1 177
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 176 && BOOST_PP_ITERATION_START_1 >= 176
-#    define BOOST_PP_ITERATION_1 176
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 175 && BOOST_PP_ITERATION_START_1 >= 175
-#    define BOOST_PP_ITERATION_1 175
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 174 && BOOST_PP_ITERATION_START_1 >= 174
-#    define BOOST_PP_ITERATION_1 174
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 173 && BOOST_PP_ITERATION_START_1 >= 173
-#    define BOOST_PP_ITERATION_1 173
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 172 && BOOST_PP_ITERATION_START_1 >= 172
-#    define BOOST_PP_ITERATION_1 172
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 171 && BOOST_PP_ITERATION_START_1 >= 171
-#    define BOOST_PP_ITERATION_1 171
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 170 && BOOST_PP_ITERATION_START_1 >= 170
-#    define BOOST_PP_ITERATION_1 170
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 169 && BOOST_PP_ITERATION_START_1 >= 169
-#    define BOOST_PP_ITERATION_1 169
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 168 && BOOST_PP_ITERATION_START_1 >= 168
-#    define BOOST_PP_ITERATION_1 168
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 167 && BOOST_PP_ITERATION_START_1 >= 167
-#    define BOOST_PP_ITERATION_1 167
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 166 && BOOST_PP_ITERATION_START_1 >= 166
-#    define BOOST_PP_ITERATION_1 166
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 165 && BOOST_PP_ITERATION_START_1 >= 165
-#    define BOOST_PP_ITERATION_1 165
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 164 && BOOST_PP_ITERATION_START_1 >= 164
-#    define BOOST_PP_ITERATION_1 164
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 163 && BOOST_PP_ITERATION_START_1 >= 163
-#    define BOOST_PP_ITERATION_1 163
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 162 && BOOST_PP_ITERATION_START_1 >= 162
-#    define BOOST_PP_ITERATION_1 162
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 161 && BOOST_PP_ITERATION_START_1 >= 161
-#    define BOOST_PP_ITERATION_1 161
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 160 && BOOST_PP_ITERATION_START_1 >= 160
-#    define BOOST_PP_ITERATION_1 160
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 159 && BOOST_PP_ITERATION_START_1 >= 159
-#    define BOOST_PP_ITERATION_1 159
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 158 && BOOST_PP_ITERATION_START_1 >= 158
-#    define BOOST_PP_ITERATION_1 158
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 157 && BOOST_PP_ITERATION_START_1 >= 157
-#    define BOOST_PP_ITERATION_1 157
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 156 && BOOST_PP_ITERATION_START_1 >= 156
-#    define BOOST_PP_ITERATION_1 156
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 155 && BOOST_PP_ITERATION_START_1 >= 155
-#    define BOOST_PP_ITERATION_1 155
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 154 && BOOST_PP_ITERATION_START_1 >= 154
-#    define BOOST_PP_ITERATION_1 154
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 153 && BOOST_PP_ITERATION_START_1 >= 153
-#    define BOOST_PP_ITERATION_1 153
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 152 && BOOST_PP_ITERATION_START_1 >= 152
-#    define BOOST_PP_ITERATION_1 152
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 151 && BOOST_PP_ITERATION_START_1 >= 151
-#    define BOOST_PP_ITERATION_1 151
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 150 && BOOST_PP_ITERATION_START_1 >= 150
-#    define BOOST_PP_ITERATION_1 150
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 149 && BOOST_PP_ITERATION_START_1 >= 149
-#    define BOOST_PP_ITERATION_1 149
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 148 && BOOST_PP_ITERATION_START_1 >= 148
-#    define BOOST_PP_ITERATION_1 148
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 147 && BOOST_PP_ITERATION_START_1 >= 147
-#    define BOOST_PP_ITERATION_1 147
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 146 && BOOST_PP_ITERATION_START_1 >= 146
-#    define BOOST_PP_ITERATION_1 146
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 145 && BOOST_PP_ITERATION_START_1 >= 145
-#    define BOOST_PP_ITERATION_1 145
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 144 && BOOST_PP_ITERATION_START_1 >= 144
-#    define BOOST_PP_ITERATION_1 144
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 143 && BOOST_PP_ITERATION_START_1 >= 143
-#    define BOOST_PP_ITERATION_1 143
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 142 && BOOST_PP_ITERATION_START_1 >= 142
-#    define BOOST_PP_ITERATION_1 142
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 141 && BOOST_PP_ITERATION_START_1 >= 141
-#    define BOOST_PP_ITERATION_1 141
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 140 && BOOST_PP_ITERATION_START_1 >= 140
-#    define BOOST_PP_ITERATION_1 140
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 139 && BOOST_PP_ITERATION_START_1 >= 139
-#    define BOOST_PP_ITERATION_1 139
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 138 && BOOST_PP_ITERATION_START_1 >= 138
-#    define BOOST_PP_ITERATION_1 138
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 137 && BOOST_PP_ITERATION_START_1 >= 137
-#    define BOOST_PP_ITERATION_1 137
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 136 && BOOST_PP_ITERATION_START_1 >= 136
-#    define BOOST_PP_ITERATION_1 136
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 135 && BOOST_PP_ITERATION_START_1 >= 135
-#    define BOOST_PP_ITERATION_1 135
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 134 && BOOST_PP_ITERATION_START_1 >= 134
-#    define BOOST_PP_ITERATION_1 134
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 133 && BOOST_PP_ITERATION_START_1 >= 133
-#    define BOOST_PP_ITERATION_1 133
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 132 && BOOST_PP_ITERATION_START_1 >= 132
-#    define BOOST_PP_ITERATION_1 132
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 131 && BOOST_PP_ITERATION_START_1 >= 131
-#    define BOOST_PP_ITERATION_1 131
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 130 && BOOST_PP_ITERATION_START_1 >= 130
-#    define BOOST_PP_ITERATION_1 130
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 129 && BOOST_PP_ITERATION_START_1 >= 129
-#    define BOOST_PP_ITERATION_1 129
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 128 && BOOST_PP_ITERATION_START_1 >= 128
-#    define BOOST_PP_ITERATION_1 128
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 127 && BOOST_PP_ITERATION_START_1 >= 127
-#    define BOOST_PP_ITERATION_1 127
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 126 && BOOST_PP_ITERATION_START_1 >= 126
-#    define BOOST_PP_ITERATION_1 126
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 125 && BOOST_PP_ITERATION_START_1 >= 125
-#    define BOOST_PP_ITERATION_1 125
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 124 && BOOST_PP_ITERATION_START_1 >= 124
-#    define BOOST_PP_ITERATION_1 124
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 123 && BOOST_PP_ITERATION_START_1 >= 123
-#    define BOOST_PP_ITERATION_1 123
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 122 && BOOST_PP_ITERATION_START_1 >= 122
-#    define BOOST_PP_ITERATION_1 122
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 121 && BOOST_PP_ITERATION_START_1 >= 121
-#    define BOOST_PP_ITERATION_1 121
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 120 && BOOST_PP_ITERATION_START_1 >= 120
-#    define BOOST_PP_ITERATION_1 120
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 119 && BOOST_PP_ITERATION_START_1 >= 119
-#    define BOOST_PP_ITERATION_1 119
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 118 && BOOST_PP_ITERATION_START_1 >= 118
-#    define BOOST_PP_ITERATION_1 118
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 117 && BOOST_PP_ITERATION_START_1 >= 117
-#    define BOOST_PP_ITERATION_1 117
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 116 && BOOST_PP_ITERATION_START_1 >= 116
-#    define BOOST_PP_ITERATION_1 116
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 115 && BOOST_PP_ITERATION_START_1 >= 115
-#    define BOOST_PP_ITERATION_1 115
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 114 && BOOST_PP_ITERATION_START_1 >= 114
-#    define BOOST_PP_ITERATION_1 114
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 113 && BOOST_PP_ITERATION_START_1 >= 113
-#    define BOOST_PP_ITERATION_1 113
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 112 && BOOST_PP_ITERATION_START_1 >= 112
-#    define BOOST_PP_ITERATION_1 112
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 111 && BOOST_PP_ITERATION_START_1 >= 111
-#    define BOOST_PP_ITERATION_1 111
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 110 && BOOST_PP_ITERATION_START_1 >= 110
-#    define BOOST_PP_ITERATION_1 110
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 109 && BOOST_PP_ITERATION_START_1 >= 109
-#    define BOOST_PP_ITERATION_1 109
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 108 && BOOST_PP_ITERATION_START_1 >= 108
-#    define BOOST_PP_ITERATION_1 108
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 107 && BOOST_PP_ITERATION_START_1 >= 107
-#    define BOOST_PP_ITERATION_1 107
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 106 && BOOST_PP_ITERATION_START_1 >= 106
-#    define BOOST_PP_ITERATION_1 106
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 105 && BOOST_PP_ITERATION_START_1 >= 105
-#    define BOOST_PP_ITERATION_1 105
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 104 && BOOST_PP_ITERATION_START_1 >= 104
-#    define BOOST_PP_ITERATION_1 104
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 103 && BOOST_PP_ITERATION_START_1 >= 103
-#    define BOOST_PP_ITERATION_1 103
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 102 && BOOST_PP_ITERATION_START_1 >= 102
-#    define BOOST_PP_ITERATION_1 102
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 101 && BOOST_PP_ITERATION_START_1 >= 101
-#    define BOOST_PP_ITERATION_1 101
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 100 && BOOST_PP_ITERATION_START_1 >= 100
-#    define BOOST_PP_ITERATION_1 100
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 99 && BOOST_PP_ITERATION_START_1 >= 99
-#    define BOOST_PP_ITERATION_1 99
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 98 && BOOST_PP_ITERATION_START_1 >= 98
-#    define BOOST_PP_ITERATION_1 98
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 97 && BOOST_PP_ITERATION_START_1 >= 97
-#    define BOOST_PP_ITERATION_1 97
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 96 && BOOST_PP_ITERATION_START_1 >= 96
-#    define BOOST_PP_ITERATION_1 96
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 95 && BOOST_PP_ITERATION_START_1 >= 95
-#    define BOOST_PP_ITERATION_1 95
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 94 && BOOST_PP_ITERATION_START_1 >= 94
-#    define BOOST_PP_ITERATION_1 94
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 93 && BOOST_PP_ITERATION_START_1 >= 93
-#    define BOOST_PP_ITERATION_1 93
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 92 && BOOST_PP_ITERATION_START_1 >= 92
-#    define BOOST_PP_ITERATION_1 92
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 91 && BOOST_PP_ITERATION_START_1 >= 91
-#    define BOOST_PP_ITERATION_1 91
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 90 && BOOST_PP_ITERATION_START_1 >= 90
-#    define BOOST_PP_ITERATION_1 90
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 89 && BOOST_PP_ITERATION_START_1 >= 89
-#    define BOOST_PP_ITERATION_1 89
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 88 && BOOST_PP_ITERATION_START_1 >= 88
-#    define BOOST_PP_ITERATION_1 88
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 87 && BOOST_PP_ITERATION_START_1 >= 87
-#    define BOOST_PP_ITERATION_1 87
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 86 && BOOST_PP_ITERATION_START_1 >= 86
-#    define BOOST_PP_ITERATION_1 86
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 85 && BOOST_PP_ITERATION_START_1 >= 85
-#    define BOOST_PP_ITERATION_1 85
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 84 && BOOST_PP_ITERATION_START_1 >= 84
-#    define BOOST_PP_ITERATION_1 84
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 83 && BOOST_PP_ITERATION_START_1 >= 83
-#    define BOOST_PP_ITERATION_1 83
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 82 && BOOST_PP_ITERATION_START_1 >= 82
-#    define BOOST_PP_ITERATION_1 82
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 81 && BOOST_PP_ITERATION_START_1 >= 81
-#    define BOOST_PP_ITERATION_1 81
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 80 && BOOST_PP_ITERATION_START_1 >= 80
-#    define BOOST_PP_ITERATION_1 80
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 79 && BOOST_PP_ITERATION_START_1 >= 79
-#    define BOOST_PP_ITERATION_1 79
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 78 && BOOST_PP_ITERATION_START_1 >= 78
-#    define BOOST_PP_ITERATION_1 78
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 77 && BOOST_PP_ITERATION_START_1 >= 77
-#    define BOOST_PP_ITERATION_1 77
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 76 && BOOST_PP_ITERATION_START_1 >= 76
-#    define BOOST_PP_ITERATION_1 76
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 75 && BOOST_PP_ITERATION_START_1 >= 75
-#    define BOOST_PP_ITERATION_1 75
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 74 && BOOST_PP_ITERATION_START_1 >= 74
-#    define BOOST_PP_ITERATION_1 74
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 73 && BOOST_PP_ITERATION_START_1 >= 73
-#    define BOOST_PP_ITERATION_1 73
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 72 && BOOST_PP_ITERATION_START_1 >= 72
-#    define BOOST_PP_ITERATION_1 72
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 71 && BOOST_PP_ITERATION_START_1 >= 71
-#    define BOOST_PP_ITERATION_1 71
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 70 && BOOST_PP_ITERATION_START_1 >= 70
-#    define BOOST_PP_ITERATION_1 70
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 69 && BOOST_PP_ITERATION_START_1 >= 69
-#    define BOOST_PP_ITERATION_1 69
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 68 && BOOST_PP_ITERATION_START_1 >= 68
-#    define BOOST_PP_ITERATION_1 68
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 67 && BOOST_PP_ITERATION_START_1 >= 67
-#    define BOOST_PP_ITERATION_1 67
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 66 && BOOST_PP_ITERATION_START_1 >= 66
-#    define BOOST_PP_ITERATION_1 66
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 65 && BOOST_PP_ITERATION_START_1 >= 65
-#    define BOOST_PP_ITERATION_1 65
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 64 && BOOST_PP_ITERATION_START_1 >= 64
-#    define BOOST_PP_ITERATION_1 64
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 63 && BOOST_PP_ITERATION_START_1 >= 63
-#    define BOOST_PP_ITERATION_1 63
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 62 && BOOST_PP_ITERATION_START_1 >= 62
-#    define BOOST_PP_ITERATION_1 62
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 61 && BOOST_PP_ITERATION_START_1 >= 61
-#    define BOOST_PP_ITERATION_1 61
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 60 && BOOST_PP_ITERATION_START_1 >= 60
-#    define BOOST_PP_ITERATION_1 60
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 59 && BOOST_PP_ITERATION_START_1 >= 59
-#    define BOOST_PP_ITERATION_1 59
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 58 && BOOST_PP_ITERATION_START_1 >= 58
-#    define BOOST_PP_ITERATION_1 58
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 57 && BOOST_PP_ITERATION_START_1 >= 57
-#    define BOOST_PP_ITERATION_1 57
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 56 && BOOST_PP_ITERATION_START_1 >= 56
-#    define BOOST_PP_ITERATION_1 56
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 55 && BOOST_PP_ITERATION_START_1 >= 55
-#    define BOOST_PP_ITERATION_1 55
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 54 && BOOST_PP_ITERATION_START_1 >= 54
-#    define BOOST_PP_ITERATION_1 54
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 53 && BOOST_PP_ITERATION_START_1 >= 53
-#    define BOOST_PP_ITERATION_1 53
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 52 && BOOST_PP_ITERATION_START_1 >= 52
-#    define BOOST_PP_ITERATION_1 52
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 51 && BOOST_PP_ITERATION_START_1 >= 51
-#    define BOOST_PP_ITERATION_1 51
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 50 && BOOST_PP_ITERATION_START_1 >= 50
-#    define BOOST_PP_ITERATION_1 50
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 49 && BOOST_PP_ITERATION_START_1 >= 49
-#    define BOOST_PP_ITERATION_1 49
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 48 && BOOST_PP_ITERATION_START_1 >= 48
-#    define BOOST_PP_ITERATION_1 48
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 47 && BOOST_PP_ITERATION_START_1 >= 47
-#    define BOOST_PP_ITERATION_1 47
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 46 && BOOST_PP_ITERATION_START_1 >= 46
-#    define BOOST_PP_ITERATION_1 46
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 45 && BOOST_PP_ITERATION_START_1 >= 45
-#    define BOOST_PP_ITERATION_1 45
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 44 && BOOST_PP_ITERATION_START_1 >= 44
-#    define BOOST_PP_ITERATION_1 44
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 43 && BOOST_PP_ITERATION_START_1 >= 43
-#    define BOOST_PP_ITERATION_1 43
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 42 && BOOST_PP_ITERATION_START_1 >= 42
-#    define BOOST_PP_ITERATION_1 42
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 41 && BOOST_PP_ITERATION_START_1 >= 41
-#    define BOOST_PP_ITERATION_1 41
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 40 && BOOST_PP_ITERATION_START_1 >= 40
-#    define BOOST_PP_ITERATION_1 40
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 39 && BOOST_PP_ITERATION_START_1 >= 39
-#    define BOOST_PP_ITERATION_1 39
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 38 && BOOST_PP_ITERATION_START_1 >= 38
-#    define BOOST_PP_ITERATION_1 38
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 37 && BOOST_PP_ITERATION_START_1 >= 37
-#    define BOOST_PP_ITERATION_1 37
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 36 && BOOST_PP_ITERATION_START_1 >= 36
-#    define BOOST_PP_ITERATION_1 36
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 35 && BOOST_PP_ITERATION_START_1 >= 35
-#    define BOOST_PP_ITERATION_1 35
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 34 && BOOST_PP_ITERATION_START_1 >= 34
-#    define BOOST_PP_ITERATION_1 34
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 33 && BOOST_PP_ITERATION_START_1 >= 33
-#    define BOOST_PP_ITERATION_1 33
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 32 && BOOST_PP_ITERATION_START_1 >= 32
-#    define BOOST_PP_ITERATION_1 32
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 31 && BOOST_PP_ITERATION_START_1 >= 31
-#    define BOOST_PP_ITERATION_1 31
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 30 && BOOST_PP_ITERATION_START_1 >= 30
-#    define BOOST_PP_ITERATION_1 30
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 29 && BOOST_PP_ITERATION_START_1 >= 29
-#    define BOOST_PP_ITERATION_1 29
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 28 && BOOST_PP_ITERATION_START_1 >= 28
-#    define BOOST_PP_ITERATION_1 28
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 27 && BOOST_PP_ITERATION_START_1 >= 27
-#    define BOOST_PP_ITERATION_1 27
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 26 && BOOST_PP_ITERATION_START_1 >= 26
-#    define BOOST_PP_ITERATION_1 26
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 25 && BOOST_PP_ITERATION_START_1 >= 25
-#    define BOOST_PP_ITERATION_1 25
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 24 && BOOST_PP_ITERATION_START_1 >= 24
-#    define BOOST_PP_ITERATION_1 24
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 23 && BOOST_PP_ITERATION_START_1 >= 23
-#    define BOOST_PP_ITERATION_1 23
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 22 && BOOST_PP_ITERATION_START_1 >= 22
-#    define BOOST_PP_ITERATION_1 22
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 21 && BOOST_PP_ITERATION_START_1 >= 21
-#    define BOOST_PP_ITERATION_1 21
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 20 && BOOST_PP_ITERATION_START_1 >= 20
-#    define BOOST_PP_ITERATION_1 20
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 19 && BOOST_PP_ITERATION_START_1 >= 19
-#    define BOOST_PP_ITERATION_1 19
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 18 && BOOST_PP_ITERATION_START_1 >= 18
-#    define BOOST_PP_ITERATION_1 18
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 17 && BOOST_PP_ITERATION_START_1 >= 17
-#    define BOOST_PP_ITERATION_1 17
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 16 && BOOST_PP_ITERATION_START_1 >= 16
-#    define BOOST_PP_ITERATION_1 16
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 15 && BOOST_PP_ITERATION_START_1 >= 15
-#    define BOOST_PP_ITERATION_1 15
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 14 && BOOST_PP_ITERATION_START_1 >= 14
-#    define BOOST_PP_ITERATION_1 14
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 13 && BOOST_PP_ITERATION_START_1 >= 13
-#    define BOOST_PP_ITERATION_1 13
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 12 && BOOST_PP_ITERATION_START_1 >= 12
-#    define BOOST_PP_ITERATION_1 12
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 11 && BOOST_PP_ITERATION_START_1 >= 11
-#    define BOOST_PP_ITERATION_1 11
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 10 && BOOST_PP_ITERATION_START_1 >= 10
-#    define BOOST_PP_ITERATION_1 10
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 9 && BOOST_PP_ITERATION_START_1 >= 9
-#    define BOOST_PP_ITERATION_1 9
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 8 && BOOST_PP_ITERATION_START_1 >= 8
-#    define BOOST_PP_ITERATION_1 8
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 7 && BOOST_PP_ITERATION_START_1 >= 7
-#    define BOOST_PP_ITERATION_1 7
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 6 && BOOST_PP_ITERATION_START_1 >= 6
-#    define BOOST_PP_ITERATION_1 6
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 5 && BOOST_PP_ITERATION_START_1 >= 5
-#    define BOOST_PP_ITERATION_1 5
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 4 && BOOST_PP_ITERATION_START_1 >= 4
-#    define BOOST_PP_ITERATION_1 4
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 3 && BOOST_PP_ITERATION_START_1 >= 3
-#    define BOOST_PP_ITERATION_1 3
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 2 && BOOST_PP_ITERATION_START_1 >= 2
-#    define BOOST_PP_ITERATION_1 2
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 1 && BOOST_PP_ITERATION_START_1 >= 1
-#    define BOOST_PP_ITERATION_1 1
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
-# if BOOST_PP_ITERATION_FINISH_1 <= 0 && BOOST_PP_ITERATION_START_1 >= 0
-#    define BOOST_PP_ITERATION_1 0
-#    include BOOST_PP_FILENAME_1
-#    undef BOOST_PP_ITERATION_1
-# endif
diff --git a/boost/preprocessor/iteration/detail/iter/reverse2.hpp b/boost/preprocessor/iteration/detail/iter/reverse2.hpp
deleted file mode 100644
index 521bd24..0000000
--- a/boost/preprocessor/iteration/detail/iter/reverse2.hpp
+++ /dev/null
@@ -1,1296 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# if BOOST_PP_ITERATION_FINISH_2 <= 256 && BOOST_PP_ITERATION_START_2 >= 256
-#    define BOOST_PP_ITERATION_2 256
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 255 && BOOST_PP_ITERATION_START_2 >= 255
-#    define BOOST_PP_ITERATION_2 255
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 254 && BOOST_PP_ITERATION_START_2 >= 254
-#    define BOOST_PP_ITERATION_2 254
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 253 && BOOST_PP_ITERATION_START_2 >= 253
-#    define BOOST_PP_ITERATION_2 253
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 252 && BOOST_PP_ITERATION_START_2 >= 252
-#    define BOOST_PP_ITERATION_2 252
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 251 && BOOST_PP_ITERATION_START_2 >= 251
-#    define BOOST_PP_ITERATION_2 251
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 250 && BOOST_PP_ITERATION_START_2 >= 250
-#    define BOOST_PP_ITERATION_2 250
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 249 && BOOST_PP_ITERATION_START_2 >= 249
-#    define BOOST_PP_ITERATION_2 249
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 248 && BOOST_PP_ITERATION_START_2 >= 248
-#    define BOOST_PP_ITERATION_2 248
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 247 && BOOST_PP_ITERATION_START_2 >= 247
-#    define BOOST_PP_ITERATION_2 247
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 246 && BOOST_PP_ITERATION_START_2 >= 246
-#    define BOOST_PP_ITERATION_2 246
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 245 && BOOST_PP_ITERATION_START_2 >= 245
-#    define BOOST_PP_ITERATION_2 245
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 244 && BOOST_PP_ITERATION_START_2 >= 244
-#    define BOOST_PP_ITERATION_2 244
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 243 && BOOST_PP_ITERATION_START_2 >= 243
-#    define BOOST_PP_ITERATION_2 243
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 242 && BOOST_PP_ITERATION_START_2 >= 242
-#    define BOOST_PP_ITERATION_2 242
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 241 && BOOST_PP_ITERATION_START_2 >= 241
-#    define BOOST_PP_ITERATION_2 241
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 240 && BOOST_PP_ITERATION_START_2 >= 240
-#    define BOOST_PP_ITERATION_2 240
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 239 && BOOST_PP_ITERATION_START_2 >= 239
-#    define BOOST_PP_ITERATION_2 239
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 238 && BOOST_PP_ITERATION_START_2 >= 238
-#    define BOOST_PP_ITERATION_2 238
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 237 && BOOST_PP_ITERATION_START_2 >= 237
-#    define BOOST_PP_ITERATION_2 237
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 236 && BOOST_PP_ITERATION_START_2 >= 236
-#    define BOOST_PP_ITERATION_2 236
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 235 && BOOST_PP_ITERATION_START_2 >= 235
-#    define BOOST_PP_ITERATION_2 235
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 234 && BOOST_PP_ITERATION_START_2 >= 234
-#    define BOOST_PP_ITERATION_2 234
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 233 && BOOST_PP_ITERATION_START_2 >= 233
-#    define BOOST_PP_ITERATION_2 233
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 232 && BOOST_PP_ITERATION_START_2 >= 232
-#    define BOOST_PP_ITERATION_2 232
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 231 && BOOST_PP_ITERATION_START_2 >= 231
-#    define BOOST_PP_ITERATION_2 231
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 230 && BOOST_PP_ITERATION_START_2 >= 230
-#    define BOOST_PP_ITERATION_2 230
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 229 && BOOST_PP_ITERATION_START_2 >= 229
-#    define BOOST_PP_ITERATION_2 229
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 228 && BOOST_PP_ITERATION_START_2 >= 228
-#    define BOOST_PP_ITERATION_2 228
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 227 && BOOST_PP_ITERATION_START_2 >= 227
-#    define BOOST_PP_ITERATION_2 227
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 226 && BOOST_PP_ITERATION_START_2 >= 226
-#    define BOOST_PP_ITERATION_2 226
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 225 && BOOST_PP_ITERATION_START_2 >= 225
-#    define BOOST_PP_ITERATION_2 225
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 224 && BOOST_PP_ITERATION_START_2 >= 224
-#    define BOOST_PP_ITERATION_2 224
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 223 && BOOST_PP_ITERATION_START_2 >= 223
-#    define BOOST_PP_ITERATION_2 223
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 222 && BOOST_PP_ITERATION_START_2 >= 222
-#    define BOOST_PP_ITERATION_2 222
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 221 && BOOST_PP_ITERATION_START_2 >= 221
-#    define BOOST_PP_ITERATION_2 221
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 220 && BOOST_PP_ITERATION_START_2 >= 220
-#    define BOOST_PP_ITERATION_2 220
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 219 && BOOST_PP_ITERATION_START_2 >= 219
-#    define BOOST_PP_ITERATION_2 219
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 218 && BOOST_PP_ITERATION_START_2 >= 218
-#    define BOOST_PP_ITERATION_2 218
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 217 && BOOST_PP_ITERATION_START_2 >= 217
-#    define BOOST_PP_ITERATION_2 217
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 216 && BOOST_PP_ITERATION_START_2 >= 216
-#    define BOOST_PP_ITERATION_2 216
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 215 && BOOST_PP_ITERATION_START_2 >= 215
-#    define BOOST_PP_ITERATION_2 215
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 214 && BOOST_PP_ITERATION_START_2 >= 214
-#    define BOOST_PP_ITERATION_2 214
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 213 && BOOST_PP_ITERATION_START_2 >= 213
-#    define BOOST_PP_ITERATION_2 213
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 212 && BOOST_PP_ITERATION_START_2 >= 212
-#    define BOOST_PP_ITERATION_2 212
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 211 && BOOST_PP_ITERATION_START_2 >= 211
-#    define BOOST_PP_ITERATION_2 211
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 210 && BOOST_PP_ITERATION_START_2 >= 210
-#    define BOOST_PP_ITERATION_2 210
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 209 && BOOST_PP_ITERATION_START_2 >= 209
-#    define BOOST_PP_ITERATION_2 209
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 208 && BOOST_PP_ITERATION_START_2 >= 208
-#    define BOOST_PP_ITERATION_2 208
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 207 && BOOST_PP_ITERATION_START_2 >= 207
-#    define BOOST_PP_ITERATION_2 207
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 206 && BOOST_PP_ITERATION_START_2 >= 206
-#    define BOOST_PP_ITERATION_2 206
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 205 && BOOST_PP_ITERATION_START_2 >= 205
-#    define BOOST_PP_ITERATION_2 205
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 204 && BOOST_PP_ITERATION_START_2 >= 204
-#    define BOOST_PP_ITERATION_2 204
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 203 && BOOST_PP_ITERATION_START_2 >= 203
-#    define BOOST_PP_ITERATION_2 203
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 202 && BOOST_PP_ITERATION_START_2 >= 202
-#    define BOOST_PP_ITERATION_2 202
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 201 && BOOST_PP_ITERATION_START_2 >= 201
-#    define BOOST_PP_ITERATION_2 201
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 200 && BOOST_PP_ITERATION_START_2 >= 200
-#    define BOOST_PP_ITERATION_2 200
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 199 && BOOST_PP_ITERATION_START_2 >= 199
-#    define BOOST_PP_ITERATION_2 199
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 198 && BOOST_PP_ITERATION_START_2 >= 198
-#    define BOOST_PP_ITERATION_2 198
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 197 && BOOST_PP_ITERATION_START_2 >= 197
-#    define BOOST_PP_ITERATION_2 197
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 196 && BOOST_PP_ITERATION_START_2 >= 196
-#    define BOOST_PP_ITERATION_2 196
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 195 && BOOST_PP_ITERATION_START_2 >= 195
-#    define BOOST_PP_ITERATION_2 195
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 194 && BOOST_PP_ITERATION_START_2 >= 194
-#    define BOOST_PP_ITERATION_2 194
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 193 && BOOST_PP_ITERATION_START_2 >= 193
-#    define BOOST_PP_ITERATION_2 193
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 192 && BOOST_PP_ITERATION_START_2 >= 192
-#    define BOOST_PP_ITERATION_2 192
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 191 && BOOST_PP_ITERATION_START_2 >= 191
-#    define BOOST_PP_ITERATION_2 191
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 190 && BOOST_PP_ITERATION_START_2 >= 190
-#    define BOOST_PP_ITERATION_2 190
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 189 && BOOST_PP_ITERATION_START_2 >= 189
-#    define BOOST_PP_ITERATION_2 189
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 188 && BOOST_PP_ITERATION_START_2 >= 188
-#    define BOOST_PP_ITERATION_2 188
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 187 && BOOST_PP_ITERATION_START_2 >= 187
-#    define BOOST_PP_ITERATION_2 187
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 186 && BOOST_PP_ITERATION_START_2 >= 186
-#    define BOOST_PP_ITERATION_2 186
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 185 && BOOST_PP_ITERATION_START_2 >= 185
-#    define BOOST_PP_ITERATION_2 185
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 184 && BOOST_PP_ITERATION_START_2 >= 184
-#    define BOOST_PP_ITERATION_2 184
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 183 && BOOST_PP_ITERATION_START_2 >= 183
-#    define BOOST_PP_ITERATION_2 183
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 182 && BOOST_PP_ITERATION_START_2 >= 182
-#    define BOOST_PP_ITERATION_2 182
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 181 && BOOST_PP_ITERATION_START_2 >= 181
-#    define BOOST_PP_ITERATION_2 181
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 180 && BOOST_PP_ITERATION_START_2 >= 180
-#    define BOOST_PP_ITERATION_2 180
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 179 && BOOST_PP_ITERATION_START_2 >= 179
-#    define BOOST_PP_ITERATION_2 179
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 178 && BOOST_PP_ITERATION_START_2 >= 178
-#    define BOOST_PP_ITERATION_2 178
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 177 && BOOST_PP_ITERATION_START_2 >= 177
-#    define BOOST_PP_ITERATION_2 177
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 176 && BOOST_PP_ITERATION_START_2 >= 176
-#    define BOOST_PP_ITERATION_2 176
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 175 && BOOST_PP_ITERATION_START_2 >= 175
-#    define BOOST_PP_ITERATION_2 175
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 174 && BOOST_PP_ITERATION_START_2 >= 174
-#    define BOOST_PP_ITERATION_2 174
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 173 && BOOST_PP_ITERATION_START_2 >= 173
-#    define BOOST_PP_ITERATION_2 173
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 172 && BOOST_PP_ITERATION_START_2 >= 172
-#    define BOOST_PP_ITERATION_2 172
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 171 && BOOST_PP_ITERATION_START_2 >= 171
-#    define BOOST_PP_ITERATION_2 171
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 170 && BOOST_PP_ITERATION_START_2 >= 170
-#    define BOOST_PP_ITERATION_2 170
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 169 && BOOST_PP_ITERATION_START_2 >= 169
-#    define BOOST_PP_ITERATION_2 169
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 168 && BOOST_PP_ITERATION_START_2 >= 168
-#    define BOOST_PP_ITERATION_2 168
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 167 && BOOST_PP_ITERATION_START_2 >= 167
-#    define BOOST_PP_ITERATION_2 167
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 166 && BOOST_PP_ITERATION_START_2 >= 166
-#    define BOOST_PP_ITERATION_2 166
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 165 && BOOST_PP_ITERATION_START_2 >= 165
-#    define BOOST_PP_ITERATION_2 165
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 164 && BOOST_PP_ITERATION_START_2 >= 164
-#    define BOOST_PP_ITERATION_2 164
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 163 && BOOST_PP_ITERATION_START_2 >= 163
-#    define BOOST_PP_ITERATION_2 163
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 162 && BOOST_PP_ITERATION_START_2 >= 162
-#    define BOOST_PP_ITERATION_2 162
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 161 && BOOST_PP_ITERATION_START_2 >= 161
-#    define BOOST_PP_ITERATION_2 161
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 160 && BOOST_PP_ITERATION_START_2 >= 160
-#    define BOOST_PP_ITERATION_2 160
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 159 && BOOST_PP_ITERATION_START_2 >= 159
-#    define BOOST_PP_ITERATION_2 159
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 158 && BOOST_PP_ITERATION_START_2 >= 158
-#    define BOOST_PP_ITERATION_2 158
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 157 && BOOST_PP_ITERATION_START_2 >= 157
-#    define BOOST_PP_ITERATION_2 157
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 156 && BOOST_PP_ITERATION_START_2 >= 156
-#    define BOOST_PP_ITERATION_2 156
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 155 && BOOST_PP_ITERATION_START_2 >= 155
-#    define BOOST_PP_ITERATION_2 155
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 154 && BOOST_PP_ITERATION_START_2 >= 154
-#    define BOOST_PP_ITERATION_2 154
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 153 && BOOST_PP_ITERATION_START_2 >= 153
-#    define BOOST_PP_ITERATION_2 153
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 152 && BOOST_PP_ITERATION_START_2 >= 152
-#    define BOOST_PP_ITERATION_2 152
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 151 && BOOST_PP_ITERATION_START_2 >= 151
-#    define BOOST_PP_ITERATION_2 151
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 150 && BOOST_PP_ITERATION_START_2 >= 150
-#    define BOOST_PP_ITERATION_2 150
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 149 && BOOST_PP_ITERATION_START_2 >= 149
-#    define BOOST_PP_ITERATION_2 149
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 148 && BOOST_PP_ITERATION_START_2 >= 148
-#    define BOOST_PP_ITERATION_2 148
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 147 && BOOST_PP_ITERATION_START_2 >= 147
-#    define BOOST_PP_ITERATION_2 147
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 146 && BOOST_PP_ITERATION_START_2 >= 146
-#    define BOOST_PP_ITERATION_2 146
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 145 && BOOST_PP_ITERATION_START_2 >= 145
-#    define BOOST_PP_ITERATION_2 145
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 144 && BOOST_PP_ITERATION_START_2 >= 144
-#    define BOOST_PP_ITERATION_2 144
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 143 && BOOST_PP_ITERATION_START_2 >= 143
-#    define BOOST_PP_ITERATION_2 143
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 142 && BOOST_PP_ITERATION_START_2 >= 142
-#    define BOOST_PP_ITERATION_2 142
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 141 && BOOST_PP_ITERATION_START_2 >= 141
-#    define BOOST_PP_ITERATION_2 141
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 140 && BOOST_PP_ITERATION_START_2 >= 140
-#    define BOOST_PP_ITERATION_2 140
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 139 && BOOST_PP_ITERATION_START_2 >= 139
-#    define BOOST_PP_ITERATION_2 139
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 138 && BOOST_PP_ITERATION_START_2 >= 138
-#    define BOOST_PP_ITERATION_2 138
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 137 && BOOST_PP_ITERATION_START_2 >= 137
-#    define BOOST_PP_ITERATION_2 137
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 136 && BOOST_PP_ITERATION_START_2 >= 136
-#    define BOOST_PP_ITERATION_2 136
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 135 && BOOST_PP_ITERATION_START_2 >= 135
-#    define BOOST_PP_ITERATION_2 135
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 134 && BOOST_PP_ITERATION_START_2 >= 134
-#    define BOOST_PP_ITERATION_2 134
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 133 && BOOST_PP_ITERATION_START_2 >= 133
-#    define BOOST_PP_ITERATION_2 133
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 132 && BOOST_PP_ITERATION_START_2 >= 132
-#    define BOOST_PP_ITERATION_2 132
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 131 && BOOST_PP_ITERATION_START_2 >= 131
-#    define BOOST_PP_ITERATION_2 131
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 130 && BOOST_PP_ITERATION_START_2 >= 130
-#    define BOOST_PP_ITERATION_2 130
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 129 && BOOST_PP_ITERATION_START_2 >= 129
-#    define BOOST_PP_ITERATION_2 129
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 128 && BOOST_PP_ITERATION_START_2 >= 128
-#    define BOOST_PP_ITERATION_2 128
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 127 && BOOST_PP_ITERATION_START_2 >= 127
-#    define BOOST_PP_ITERATION_2 127
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 126 && BOOST_PP_ITERATION_START_2 >= 126
-#    define BOOST_PP_ITERATION_2 126
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 125 && BOOST_PP_ITERATION_START_2 >= 125
-#    define BOOST_PP_ITERATION_2 125
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 124 && BOOST_PP_ITERATION_START_2 >= 124
-#    define BOOST_PP_ITERATION_2 124
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 123 && BOOST_PP_ITERATION_START_2 >= 123
-#    define BOOST_PP_ITERATION_2 123
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 122 && BOOST_PP_ITERATION_START_2 >= 122
-#    define BOOST_PP_ITERATION_2 122
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 121 && BOOST_PP_ITERATION_START_2 >= 121
-#    define BOOST_PP_ITERATION_2 121
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 120 && BOOST_PP_ITERATION_START_2 >= 120
-#    define BOOST_PP_ITERATION_2 120
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 119 && BOOST_PP_ITERATION_START_2 >= 119
-#    define BOOST_PP_ITERATION_2 119
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 118 && BOOST_PP_ITERATION_START_2 >= 118
-#    define BOOST_PP_ITERATION_2 118
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 117 && BOOST_PP_ITERATION_START_2 >= 117
-#    define BOOST_PP_ITERATION_2 117
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 116 && BOOST_PP_ITERATION_START_2 >= 116
-#    define BOOST_PP_ITERATION_2 116
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 115 && BOOST_PP_ITERATION_START_2 >= 115
-#    define BOOST_PP_ITERATION_2 115
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 114 && BOOST_PP_ITERATION_START_2 >= 114
-#    define BOOST_PP_ITERATION_2 114
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 113 && BOOST_PP_ITERATION_START_2 >= 113
-#    define BOOST_PP_ITERATION_2 113
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 112 && BOOST_PP_ITERATION_START_2 >= 112
-#    define BOOST_PP_ITERATION_2 112
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 111 && BOOST_PP_ITERATION_START_2 >= 111
-#    define BOOST_PP_ITERATION_2 111
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 110 && BOOST_PP_ITERATION_START_2 >= 110
-#    define BOOST_PP_ITERATION_2 110
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 109 && BOOST_PP_ITERATION_START_2 >= 109
-#    define BOOST_PP_ITERATION_2 109
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 108 && BOOST_PP_ITERATION_START_2 >= 108
-#    define BOOST_PP_ITERATION_2 108
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 107 && BOOST_PP_ITERATION_START_2 >= 107
-#    define BOOST_PP_ITERATION_2 107
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 106 && BOOST_PP_ITERATION_START_2 >= 106
-#    define BOOST_PP_ITERATION_2 106
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 105 && BOOST_PP_ITERATION_START_2 >= 105
-#    define BOOST_PP_ITERATION_2 105
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 104 && BOOST_PP_ITERATION_START_2 >= 104
-#    define BOOST_PP_ITERATION_2 104
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 103 && BOOST_PP_ITERATION_START_2 >= 103
-#    define BOOST_PP_ITERATION_2 103
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 102 && BOOST_PP_ITERATION_START_2 >= 102
-#    define BOOST_PP_ITERATION_2 102
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 101 && BOOST_PP_ITERATION_START_2 >= 101
-#    define BOOST_PP_ITERATION_2 101
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 100 && BOOST_PP_ITERATION_START_2 >= 100
-#    define BOOST_PP_ITERATION_2 100
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 99 && BOOST_PP_ITERATION_START_2 >= 99
-#    define BOOST_PP_ITERATION_2 99
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 98 && BOOST_PP_ITERATION_START_2 >= 98
-#    define BOOST_PP_ITERATION_2 98
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 97 && BOOST_PP_ITERATION_START_2 >= 97
-#    define BOOST_PP_ITERATION_2 97
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 96 && BOOST_PP_ITERATION_START_2 >= 96
-#    define BOOST_PP_ITERATION_2 96
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 95 && BOOST_PP_ITERATION_START_2 >= 95
-#    define BOOST_PP_ITERATION_2 95
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 94 && BOOST_PP_ITERATION_START_2 >= 94
-#    define BOOST_PP_ITERATION_2 94
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 93 && BOOST_PP_ITERATION_START_2 >= 93
-#    define BOOST_PP_ITERATION_2 93
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 92 && BOOST_PP_ITERATION_START_2 >= 92
-#    define BOOST_PP_ITERATION_2 92
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 91 && BOOST_PP_ITERATION_START_2 >= 91
-#    define BOOST_PP_ITERATION_2 91
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 90 && BOOST_PP_ITERATION_START_2 >= 90
-#    define BOOST_PP_ITERATION_2 90
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 89 && BOOST_PP_ITERATION_START_2 >= 89
-#    define BOOST_PP_ITERATION_2 89
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 88 && BOOST_PP_ITERATION_START_2 >= 88
-#    define BOOST_PP_ITERATION_2 88
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 87 && BOOST_PP_ITERATION_START_2 >= 87
-#    define BOOST_PP_ITERATION_2 87
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 86 && BOOST_PP_ITERATION_START_2 >= 86
-#    define BOOST_PP_ITERATION_2 86
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 85 && BOOST_PP_ITERATION_START_2 >= 85
-#    define BOOST_PP_ITERATION_2 85
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 84 && BOOST_PP_ITERATION_START_2 >= 84
-#    define BOOST_PP_ITERATION_2 84
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 83 && BOOST_PP_ITERATION_START_2 >= 83
-#    define BOOST_PP_ITERATION_2 83
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 82 && BOOST_PP_ITERATION_START_2 >= 82
-#    define BOOST_PP_ITERATION_2 82
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 81 && BOOST_PP_ITERATION_START_2 >= 81
-#    define BOOST_PP_ITERATION_2 81
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 80 && BOOST_PP_ITERATION_START_2 >= 80
-#    define BOOST_PP_ITERATION_2 80
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 79 && BOOST_PP_ITERATION_START_2 >= 79
-#    define BOOST_PP_ITERATION_2 79
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 78 && BOOST_PP_ITERATION_START_2 >= 78
-#    define BOOST_PP_ITERATION_2 78
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 77 && BOOST_PP_ITERATION_START_2 >= 77
-#    define BOOST_PP_ITERATION_2 77
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 76 && BOOST_PP_ITERATION_START_2 >= 76
-#    define BOOST_PP_ITERATION_2 76
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 75 && BOOST_PP_ITERATION_START_2 >= 75
-#    define BOOST_PP_ITERATION_2 75
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 74 && BOOST_PP_ITERATION_START_2 >= 74
-#    define BOOST_PP_ITERATION_2 74
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 73 && BOOST_PP_ITERATION_START_2 >= 73
-#    define BOOST_PP_ITERATION_2 73
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 72 && BOOST_PP_ITERATION_START_2 >= 72
-#    define BOOST_PP_ITERATION_2 72
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 71 && BOOST_PP_ITERATION_START_2 >= 71
-#    define BOOST_PP_ITERATION_2 71
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 70 && BOOST_PP_ITERATION_START_2 >= 70
-#    define BOOST_PP_ITERATION_2 70
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 69 && BOOST_PP_ITERATION_START_2 >= 69
-#    define BOOST_PP_ITERATION_2 69
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 68 && BOOST_PP_ITERATION_START_2 >= 68
-#    define BOOST_PP_ITERATION_2 68
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 67 && BOOST_PP_ITERATION_START_2 >= 67
-#    define BOOST_PP_ITERATION_2 67
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 66 && BOOST_PP_ITERATION_START_2 >= 66
-#    define BOOST_PP_ITERATION_2 66
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 65 && BOOST_PP_ITERATION_START_2 >= 65
-#    define BOOST_PP_ITERATION_2 65
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 64 && BOOST_PP_ITERATION_START_2 >= 64
-#    define BOOST_PP_ITERATION_2 64
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 63 && BOOST_PP_ITERATION_START_2 >= 63
-#    define BOOST_PP_ITERATION_2 63
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 62 && BOOST_PP_ITERATION_START_2 >= 62
-#    define BOOST_PP_ITERATION_2 62
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 61 && BOOST_PP_ITERATION_START_2 >= 61
-#    define BOOST_PP_ITERATION_2 61
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 60 && BOOST_PP_ITERATION_START_2 >= 60
-#    define BOOST_PP_ITERATION_2 60
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 59 && BOOST_PP_ITERATION_START_2 >= 59
-#    define BOOST_PP_ITERATION_2 59
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 58 && BOOST_PP_ITERATION_START_2 >= 58
-#    define BOOST_PP_ITERATION_2 58
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 57 && BOOST_PP_ITERATION_START_2 >= 57
-#    define BOOST_PP_ITERATION_2 57
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 56 && BOOST_PP_ITERATION_START_2 >= 56
-#    define BOOST_PP_ITERATION_2 56
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 55 && BOOST_PP_ITERATION_START_2 >= 55
-#    define BOOST_PP_ITERATION_2 55
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 54 && BOOST_PP_ITERATION_START_2 >= 54
-#    define BOOST_PP_ITERATION_2 54
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 53 && BOOST_PP_ITERATION_START_2 >= 53
-#    define BOOST_PP_ITERATION_2 53
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 52 && BOOST_PP_ITERATION_START_2 >= 52
-#    define BOOST_PP_ITERATION_2 52
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 51 && BOOST_PP_ITERATION_START_2 >= 51
-#    define BOOST_PP_ITERATION_2 51
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 50 && BOOST_PP_ITERATION_START_2 >= 50
-#    define BOOST_PP_ITERATION_2 50
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 49 && BOOST_PP_ITERATION_START_2 >= 49
-#    define BOOST_PP_ITERATION_2 49
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 48 && BOOST_PP_ITERATION_START_2 >= 48
-#    define BOOST_PP_ITERATION_2 48
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 47 && BOOST_PP_ITERATION_START_2 >= 47
-#    define BOOST_PP_ITERATION_2 47
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 46 && BOOST_PP_ITERATION_START_2 >= 46
-#    define BOOST_PP_ITERATION_2 46
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 45 && BOOST_PP_ITERATION_START_2 >= 45
-#    define BOOST_PP_ITERATION_2 45
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 44 && BOOST_PP_ITERATION_START_2 >= 44
-#    define BOOST_PP_ITERATION_2 44
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 43 && BOOST_PP_ITERATION_START_2 >= 43
-#    define BOOST_PP_ITERATION_2 43
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 42 && BOOST_PP_ITERATION_START_2 >= 42
-#    define BOOST_PP_ITERATION_2 42
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 41 && BOOST_PP_ITERATION_START_2 >= 41
-#    define BOOST_PP_ITERATION_2 41
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 40 && BOOST_PP_ITERATION_START_2 >= 40
-#    define BOOST_PP_ITERATION_2 40
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 39 && BOOST_PP_ITERATION_START_2 >= 39
-#    define BOOST_PP_ITERATION_2 39
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 38 && BOOST_PP_ITERATION_START_2 >= 38
-#    define BOOST_PP_ITERATION_2 38
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 37 && BOOST_PP_ITERATION_START_2 >= 37
-#    define BOOST_PP_ITERATION_2 37
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 36 && BOOST_PP_ITERATION_START_2 >= 36
-#    define BOOST_PP_ITERATION_2 36
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 35 && BOOST_PP_ITERATION_START_2 >= 35
-#    define BOOST_PP_ITERATION_2 35
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 34 && BOOST_PP_ITERATION_START_2 >= 34
-#    define BOOST_PP_ITERATION_2 34
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 33 && BOOST_PP_ITERATION_START_2 >= 33
-#    define BOOST_PP_ITERATION_2 33
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 32 && BOOST_PP_ITERATION_START_2 >= 32
-#    define BOOST_PP_ITERATION_2 32
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 31 && BOOST_PP_ITERATION_START_2 >= 31
-#    define BOOST_PP_ITERATION_2 31
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 30 && BOOST_PP_ITERATION_START_2 >= 30
-#    define BOOST_PP_ITERATION_2 30
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 29 && BOOST_PP_ITERATION_START_2 >= 29
-#    define BOOST_PP_ITERATION_2 29
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 28 && BOOST_PP_ITERATION_START_2 >= 28
-#    define BOOST_PP_ITERATION_2 28
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 27 && BOOST_PP_ITERATION_START_2 >= 27
-#    define BOOST_PP_ITERATION_2 27
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 26 && BOOST_PP_ITERATION_START_2 >= 26
-#    define BOOST_PP_ITERATION_2 26
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 25 && BOOST_PP_ITERATION_START_2 >= 25
-#    define BOOST_PP_ITERATION_2 25
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 24 && BOOST_PP_ITERATION_START_2 >= 24
-#    define BOOST_PP_ITERATION_2 24
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 23 && BOOST_PP_ITERATION_START_2 >= 23
-#    define BOOST_PP_ITERATION_2 23
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 22 && BOOST_PP_ITERATION_START_2 >= 22
-#    define BOOST_PP_ITERATION_2 22
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 21 && BOOST_PP_ITERATION_START_2 >= 21
-#    define BOOST_PP_ITERATION_2 21
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 20 && BOOST_PP_ITERATION_START_2 >= 20
-#    define BOOST_PP_ITERATION_2 20
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 19 && BOOST_PP_ITERATION_START_2 >= 19
-#    define BOOST_PP_ITERATION_2 19
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 18 && BOOST_PP_ITERATION_START_2 >= 18
-#    define BOOST_PP_ITERATION_2 18
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 17 && BOOST_PP_ITERATION_START_2 >= 17
-#    define BOOST_PP_ITERATION_2 17
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 16 && BOOST_PP_ITERATION_START_2 >= 16
-#    define BOOST_PP_ITERATION_2 16
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 15 && BOOST_PP_ITERATION_START_2 >= 15
-#    define BOOST_PP_ITERATION_2 15
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 14 && BOOST_PP_ITERATION_START_2 >= 14
-#    define BOOST_PP_ITERATION_2 14
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 13 && BOOST_PP_ITERATION_START_2 >= 13
-#    define BOOST_PP_ITERATION_2 13
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 12 && BOOST_PP_ITERATION_START_2 >= 12
-#    define BOOST_PP_ITERATION_2 12
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 11 && BOOST_PP_ITERATION_START_2 >= 11
-#    define BOOST_PP_ITERATION_2 11
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 10 && BOOST_PP_ITERATION_START_2 >= 10
-#    define BOOST_PP_ITERATION_2 10
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 9 && BOOST_PP_ITERATION_START_2 >= 9
-#    define BOOST_PP_ITERATION_2 9
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 8 && BOOST_PP_ITERATION_START_2 >= 8
-#    define BOOST_PP_ITERATION_2 8
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 7 && BOOST_PP_ITERATION_START_2 >= 7
-#    define BOOST_PP_ITERATION_2 7
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 6 && BOOST_PP_ITERATION_START_2 >= 6
-#    define BOOST_PP_ITERATION_2 6
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 5 && BOOST_PP_ITERATION_START_2 >= 5
-#    define BOOST_PP_ITERATION_2 5
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 4 && BOOST_PP_ITERATION_START_2 >= 4
-#    define BOOST_PP_ITERATION_2 4
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 3 && BOOST_PP_ITERATION_START_2 >= 3
-#    define BOOST_PP_ITERATION_2 3
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 2 && BOOST_PP_ITERATION_START_2 >= 2
-#    define BOOST_PP_ITERATION_2 2
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 1 && BOOST_PP_ITERATION_START_2 >= 1
-#    define BOOST_PP_ITERATION_2 1
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
-# if BOOST_PP_ITERATION_FINISH_2 <= 0 && BOOST_PP_ITERATION_START_2 >= 0
-#    define BOOST_PP_ITERATION_2 0
-#    include BOOST_PP_FILENAME_2
-#    undef BOOST_PP_ITERATION_2
-# endif
diff --git a/boost/preprocessor/iteration/detail/iter/reverse3.hpp b/boost/preprocessor/iteration/detail/iter/reverse3.hpp
deleted file mode 100644
index 0a65514..0000000
--- a/boost/preprocessor/iteration/detail/iter/reverse3.hpp
+++ /dev/null
@@ -1,1296 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# if BOOST_PP_ITERATION_FINISH_3 <= 256 && BOOST_PP_ITERATION_START_3 >= 256
-#    define BOOST_PP_ITERATION_3 256
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 255 && BOOST_PP_ITERATION_START_3 >= 255
-#    define BOOST_PP_ITERATION_3 255
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 254 && BOOST_PP_ITERATION_START_3 >= 254
-#    define BOOST_PP_ITERATION_3 254
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 253 && BOOST_PP_ITERATION_START_3 >= 253
-#    define BOOST_PP_ITERATION_3 253
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 252 && BOOST_PP_ITERATION_START_3 >= 252
-#    define BOOST_PP_ITERATION_3 252
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 251 && BOOST_PP_ITERATION_START_3 >= 251
-#    define BOOST_PP_ITERATION_3 251
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 250 && BOOST_PP_ITERATION_START_3 >= 250
-#    define BOOST_PP_ITERATION_3 250
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 249 && BOOST_PP_ITERATION_START_3 >= 249
-#    define BOOST_PP_ITERATION_3 249
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 248 && BOOST_PP_ITERATION_START_3 >= 248
-#    define BOOST_PP_ITERATION_3 248
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 247 && BOOST_PP_ITERATION_START_3 >= 247
-#    define BOOST_PP_ITERATION_3 247
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 246 && BOOST_PP_ITERATION_START_3 >= 246
-#    define BOOST_PP_ITERATION_3 246
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 245 && BOOST_PP_ITERATION_START_3 >= 245
-#    define BOOST_PP_ITERATION_3 245
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 244 && BOOST_PP_ITERATION_START_3 >= 244
-#    define BOOST_PP_ITERATION_3 244
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 243 && BOOST_PP_ITERATION_START_3 >= 243
-#    define BOOST_PP_ITERATION_3 243
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 242 && BOOST_PP_ITERATION_START_3 >= 242
-#    define BOOST_PP_ITERATION_3 242
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 241 && BOOST_PP_ITERATION_START_3 >= 241
-#    define BOOST_PP_ITERATION_3 241
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 240 && BOOST_PP_ITERATION_START_3 >= 240
-#    define BOOST_PP_ITERATION_3 240
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 239 && BOOST_PP_ITERATION_START_3 >= 239
-#    define BOOST_PP_ITERATION_3 239
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 238 && BOOST_PP_ITERATION_START_3 >= 238
-#    define BOOST_PP_ITERATION_3 238
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 237 && BOOST_PP_ITERATION_START_3 >= 237
-#    define BOOST_PP_ITERATION_3 237
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 236 && BOOST_PP_ITERATION_START_3 >= 236
-#    define BOOST_PP_ITERATION_3 236
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 235 && BOOST_PP_ITERATION_START_3 >= 235
-#    define BOOST_PP_ITERATION_3 235
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 234 && BOOST_PP_ITERATION_START_3 >= 234
-#    define BOOST_PP_ITERATION_3 234
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 233 && BOOST_PP_ITERATION_START_3 >= 233
-#    define BOOST_PP_ITERATION_3 233
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 232 && BOOST_PP_ITERATION_START_3 >= 232
-#    define BOOST_PP_ITERATION_3 232
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 231 && BOOST_PP_ITERATION_START_3 >= 231
-#    define BOOST_PP_ITERATION_3 231
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 230 && BOOST_PP_ITERATION_START_3 >= 230
-#    define BOOST_PP_ITERATION_3 230
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 229 && BOOST_PP_ITERATION_START_3 >= 229
-#    define BOOST_PP_ITERATION_3 229
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 228 && BOOST_PP_ITERATION_START_3 >= 228
-#    define BOOST_PP_ITERATION_3 228
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 227 && BOOST_PP_ITERATION_START_3 >= 227
-#    define BOOST_PP_ITERATION_3 227
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 226 && BOOST_PP_ITERATION_START_3 >= 226
-#    define BOOST_PP_ITERATION_3 226
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 225 && BOOST_PP_ITERATION_START_3 >= 225
-#    define BOOST_PP_ITERATION_3 225
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 224 && BOOST_PP_ITERATION_START_3 >= 224
-#    define BOOST_PP_ITERATION_3 224
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 223 && BOOST_PP_ITERATION_START_3 >= 223
-#    define BOOST_PP_ITERATION_3 223
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 222 && BOOST_PP_ITERATION_START_3 >= 222
-#    define BOOST_PP_ITERATION_3 222
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 221 && BOOST_PP_ITERATION_START_3 >= 221
-#    define BOOST_PP_ITERATION_3 221
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 220 && BOOST_PP_ITERATION_START_3 >= 220
-#    define BOOST_PP_ITERATION_3 220
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 219 && BOOST_PP_ITERATION_START_3 >= 219
-#    define BOOST_PP_ITERATION_3 219
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 218 && BOOST_PP_ITERATION_START_3 >= 218
-#    define BOOST_PP_ITERATION_3 218
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 217 && BOOST_PP_ITERATION_START_3 >= 217
-#    define BOOST_PP_ITERATION_3 217
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 216 && BOOST_PP_ITERATION_START_3 >= 216
-#    define BOOST_PP_ITERATION_3 216
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 215 && BOOST_PP_ITERATION_START_3 >= 215
-#    define BOOST_PP_ITERATION_3 215
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 214 && BOOST_PP_ITERATION_START_3 >= 214
-#    define BOOST_PP_ITERATION_3 214
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 213 && BOOST_PP_ITERATION_START_3 >= 213
-#    define BOOST_PP_ITERATION_3 213
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 212 && BOOST_PP_ITERATION_START_3 >= 212
-#    define BOOST_PP_ITERATION_3 212
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 211 && BOOST_PP_ITERATION_START_3 >= 211
-#    define BOOST_PP_ITERATION_3 211
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 210 && BOOST_PP_ITERATION_START_3 >= 210
-#    define BOOST_PP_ITERATION_3 210
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 209 && BOOST_PP_ITERATION_START_3 >= 209
-#    define BOOST_PP_ITERATION_3 209
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 208 && BOOST_PP_ITERATION_START_3 >= 208
-#    define BOOST_PP_ITERATION_3 208
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 207 && BOOST_PP_ITERATION_START_3 >= 207
-#    define BOOST_PP_ITERATION_3 207
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 206 && BOOST_PP_ITERATION_START_3 >= 206
-#    define BOOST_PP_ITERATION_3 206
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 205 && BOOST_PP_ITERATION_START_3 >= 205
-#    define BOOST_PP_ITERATION_3 205
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 204 && BOOST_PP_ITERATION_START_3 >= 204
-#    define BOOST_PP_ITERATION_3 204
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 203 && BOOST_PP_ITERATION_START_3 >= 203
-#    define BOOST_PP_ITERATION_3 203
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 202 && BOOST_PP_ITERATION_START_3 >= 202
-#    define BOOST_PP_ITERATION_3 202
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 201 && BOOST_PP_ITERATION_START_3 >= 201
-#    define BOOST_PP_ITERATION_3 201
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 200 && BOOST_PP_ITERATION_START_3 >= 200
-#    define BOOST_PP_ITERATION_3 200
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 199 && BOOST_PP_ITERATION_START_3 >= 199
-#    define BOOST_PP_ITERATION_3 199
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 198 && BOOST_PP_ITERATION_START_3 >= 198
-#    define BOOST_PP_ITERATION_3 198
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 197 && BOOST_PP_ITERATION_START_3 >= 197
-#    define BOOST_PP_ITERATION_3 197
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 196 && BOOST_PP_ITERATION_START_3 >= 196
-#    define BOOST_PP_ITERATION_3 196
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 195 && BOOST_PP_ITERATION_START_3 >= 195
-#    define BOOST_PP_ITERATION_3 195
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 194 && BOOST_PP_ITERATION_START_3 >= 194
-#    define BOOST_PP_ITERATION_3 194
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 193 && BOOST_PP_ITERATION_START_3 >= 193
-#    define BOOST_PP_ITERATION_3 193
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 192 && BOOST_PP_ITERATION_START_3 >= 192
-#    define BOOST_PP_ITERATION_3 192
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 191 && BOOST_PP_ITERATION_START_3 >= 191
-#    define BOOST_PP_ITERATION_3 191
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 190 && BOOST_PP_ITERATION_START_3 >= 190
-#    define BOOST_PP_ITERATION_3 190
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 189 && BOOST_PP_ITERATION_START_3 >= 189
-#    define BOOST_PP_ITERATION_3 189
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 188 && BOOST_PP_ITERATION_START_3 >= 188
-#    define BOOST_PP_ITERATION_3 188
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 187 && BOOST_PP_ITERATION_START_3 >= 187
-#    define BOOST_PP_ITERATION_3 187
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 186 && BOOST_PP_ITERATION_START_3 >= 186
-#    define BOOST_PP_ITERATION_3 186
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 185 && BOOST_PP_ITERATION_START_3 >= 185
-#    define BOOST_PP_ITERATION_3 185
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 184 && BOOST_PP_ITERATION_START_3 >= 184
-#    define BOOST_PP_ITERATION_3 184
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 183 && BOOST_PP_ITERATION_START_3 >= 183
-#    define BOOST_PP_ITERATION_3 183
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 182 && BOOST_PP_ITERATION_START_3 >= 182
-#    define BOOST_PP_ITERATION_3 182
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 181 && BOOST_PP_ITERATION_START_3 >= 181
-#    define BOOST_PP_ITERATION_3 181
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 180 && BOOST_PP_ITERATION_START_3 >= 180
-#    define BOOST_PP_ITERATION_3 180
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 179 && BOOST_PP_ITERATION_START_3 >= 179
-#    define BOOST_PP_ITERATION_3 179
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 178 && BOOST_PP_ITERATION_START_3 >= 178
-#    define BOOST_PP_ITERATION_3 178
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 177 && BOOST_PP_ITERATION_START_3 >= 177
-#    define BOOST_PP_ITERATION_3 177
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 176 && BOOST_PP_ITERATION_START_3 >= 176
-#    define BOOST_PP_ITERATION_3 176
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 175 && BOOST_PP_ITERATION_START_3 >= 175
-#    define BOOST_PP_ITERATION_3 175
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 174 && BOOST_PP_ITERATION_START_3 >= 174
-#    define BOOST_PP_ITERATION_3 174
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 173 && BOOST_PP_ITERATION_START_3 >= 173
-#    define BOOST_PP_ITERATION_3 173
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 172 && BOOST_PP_ITERATION_START_3 >= 172
-#    define BOOST_PP_ITERATION_3 172
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 171 && BOOST_PP_ITERATION_START_3 >= 171
-#    define BOOST_PP_ITERATION_3 171
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 170 && BOOST_PP_ITERATION_START_3 >= 170
-#    define BOOST_PP_ITERATION_3 170
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 169 && BOOST_PP_ITERATION_START_3 >= 169
-#    define BOOST_PP_ITERATION_3 169
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 168 && BOOST_PP_ITERATION_START_3 >= 168
-#    define BOOST_PP_ITERATION_3 168
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 167 && BOOST_PP_ITERATION_START_3 >= 167
-#    define BOOST_PP_ITERATION_3 167
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 166 && BOOST_PP_ITERATION_START_3 >= 166
-#    define BOOST_PP_ITERATION_3 166
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 165 && BOOST_PP_ITERATION_START_3 >= 165
-#    define BOOST_PP_ITERATION_3 165
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 164 && BOOST_PP_ITERATION_START_3 >= 164
-#    define BOOST_PP_ITERATION_3 164
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 163 && BOOST_PP_ITERATION_START_3 >= 163
-#    define BOOST_PP_ITERATION_3 163
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 162 && BOOST_PP_ITERATION_START_3 >= 162
-#    define BOOST_PP_ITERATION_3 162
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 161 && BOOST_PP_ITERATION_START_3 >= 161
-#    define BOOST_PP_ITERATION_3 161
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 160 && BOOST_PP_ITERATION_START_3 >= 160
-#    define BOOST_PP_ITERATION_3 160
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 159 && BOOST_PP_ITERATION_START_3 >= 159
-#    define BOOST_PP_ITERATION_3 159
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 158 && BOOST_PP_ITERATION_START_3 >= 158
-#    define BOOST_PP_ITERATION_3 158
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 157 && BOOST_PP_ITERATION_START_3 >= 157
-#    define BOOST_PP_ITERATION_3 157
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 156 && BOOST_PP_ITERATION_START_3 >= 156
-#    define BOOST_PP_ITERATION_3 156
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 155 && BOOST_PP_ITERATION_START_3 >= 155
-#    define BOOST_PP_ITERATION_3 155
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 154 && BOOST_PP_ITERATION_START_3 >= 154
-#    define BOOST_PP_ITERATION_3 154
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 153 && BOOST_PP_ITERATION_START_3 >= 153
-#    define BOOST_PP_ITERATION_3 153
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 152 && BOOST_PP_ITERATION_START_3 >= 152
-#    define BOOST_PP_ITERATION_3 152
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 151 && BOOST_PP_ITERATION_START_3 >= 151
-#    define BOOST_PP_ITERATION_3 151
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 150 && BOOST_PP_ITERATION_START_3 >= 150
-#    define BOOST_PP_ITERATION_3 150
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 149 && BOOST_PP_ITERATION_START_3 >= 149
-#    define BOOST_PP_ITERATION_3 149
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 148 && BOOST_PP_ITERATION_START_3 >= 148
-#    define BOOST_PP_ITERATION_3 148
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 147 && BOOST_PP_ITERATION_START_3 >= 147
-#    define BOOST_PP_ITERATION_3 147
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 146 && BOOST_PP_ITERATION_START_3 >= 146
-#    define BOOST_PP_ITERATION_3 146
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 145 && BOOST_PP_ITERATION_START_3 >= 145
-#    define BOOST_PP_ITERATION_3 145
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 144 && BOOST_PP_ITERATION_START_3 >= 144
-#    define BOOST_PP_ITERATION_3 144
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 143 && BOOST_PP_ITERATION_START_3 >= 143
-#    define BOOST_PP_ITERATION_3 143
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 142 && BOOST_PP_ITERATION_START_3 >= 142
-#    define BOOST_PP_ITERATION_3 142
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 141 && BOOST_PP_ITERATION_START_3 >= 141
-#    define BOOST_PP_ITERATION_3 141
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 140 && BOOST_PP_ITERATION_START_3 >= 140
-#    define BOOST_PP_ITERATION_3 140
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 139 && BOOST_PP_ITERATION_START_3 >= 139
-#    define BOOST_PP_ITERATION_3 139
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 138 && BOOST_PP_ITERATION_START_3 >= 138
-#    define BOOST_PP_ITERATION_3 138
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 137 && BOOST_PP_ITERATION_START_3 >= 137
-#    define BOOST_PP_ITERATION_3 137
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 136 && BOOST_PP_ITERATION_START_3 >= 136
-#    define BOOST_PP_ITERATION_3 136
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 135 && BOOST_PP_ITERATION_START_3 >= 135
-#    define BOOST_PP_ITERATION_3 135
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 134 && BOOST_PP_ITERATION_START_3 >= 134
-#    define BOOST_PP_ITERATION_3 134
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 133 && BOOST_PP_ITERATION_START_3 >= 133
-#    define BOOST_PP_ITERATION_3 133
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 132 && BOOST_PP_ITERATION_START_3 >= 132
-#    define BOOST_PP_ITERATION_3 132
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 131 && BOOST_PP_ITERATION_START_3 >= 131
-#    define BOOST_PP_ITERATION_3 131
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 130 && BOOST_PP_ITERATION_START_3 >= 130
-#    define BOOST_PP_ITERATION_3 130
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 129 && BOOST_PP_ITERATION_START_3 >= 129
-#    define BOOST_PP_ITERATION_3 129
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 128 && BOOST_PP_ITERATION_START_3 >= 128
-#    define BOOST_PP_ITERATION_3 128
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 127 && BOOST_PP_ITERATION_START_3 >= 127
-#    define BOOST_PP_ITERATION_3 127
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 126 && BOOST_PP_ITERATION_START_3 >= 126
-#    define BOOST_PP_ITERATION_3 126
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 125 && BOOST_PP_ITERATION_START_3 >= 125
-#    define BOOST_PP_ITERATION_3 125
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 124 && BOOST_PP_ITERATION_START_3 >= 124
-#    define BOOST_PP_ITERATION_3 124
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 123 && BOOST_PP_ITERATION_START_3 >= 123
-#    define BOOST_PP_ITERATION_3 123
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 122 && BOOST_PP_ITERATION_START_3 >= 122
-#    define BOOST_PP_ITERATION_3 122
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 121 && BOOST_PP_ITERATION_START_3 >= 121
-#    define BOOST_PP_ITERATION_3 121
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 120 && BOOST_PP_ITERATION_START_3 >= 120
-#    define BOOST_PP_ITERATION_3 120
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 119 && BOOST_PP_ITERATION_START_3 >= 119
-#    define BOOST_PP_ITERATION_3 119
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 118 && BOOST_PP_ITERATION_START_3 >= 118
-#    define BOOST_PP_ITERATION_3 118
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 117 && BOOST_PP_ITERATION_START_3 >= 117
-#    define BOOST_PP_ITERATION_3 117
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 116 && BOOST_PP_ITERATION_START_3 >= 116
-#    define BOOST_PP_ITERATION_3 116
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 115 && BOOST_PP_ITERATION_START_3 >= 115
-#    define BOOST_PP_ITERATION_3 115
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 114 && BOOST_PP_ITERATION_START_3 >= 114
-#    define BOOST_PP_ITERATION_3 114
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 113 && BOOST_PP_ITERATION_START_3 >= 113
-#    define BOOST_PP_ITERATION_3 113
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 112 && BOOST_PP_ITERATION_START_3 >= 112
-#    define BOOST_PP_ITERATION_3 112
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 111 && BOOST_PP_ITERATION_START_3 >= 111
-#    define BOOST_PP_ITERATION_3 111
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 110 && BOOST_PP_ITERATION_START_3 >= 110
-#    define BOOST_PP_ITERATION_3 110
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 109 && BOOST_PP_ITERATION_START_3 >= 109
-#    define BOOST_PP_ITERATION_3 109
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 108 && BOOST_PP_ITERATION_START_3 >= 108
-#    define BOOST_PP_ITERATION_3 108
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 107 && BOOST_PP_ITERATION_START_3 >= 107
-#    define BOOST_PP_ITERATION_3 107
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 106 && BOOST_PP_ITERATION_START_3 >= 106
-#    define BOOST_PP_ITERATION_3 106
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 105 && BOOST_PP_ITERATION_START_3 >= 105
-#    define BOOST_PP_ITERATION_3 105
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 104 && BOOST_PP_ITERATION_START_3 >= 104
-#    define BOOST_PP_ITERATION_3 104
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 103 && BOOST_PP_ITERATION_START_3 >= 103
-#    define BOOST_PP_ITERATION_3 103
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 102 && BOOST_PP_ITERATION_START_3 >= 102
-#    define BOOST_PP_ITERATION_3 102
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 101 && BOOST_PP_ITERATION_START_3 >= 101
-#    define BOOST_PP_ITERATION_3 101
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 100 && BOOST_PP_ITERATION_START_3 >= 100
-#    define BOOST_PP_ITERATION_3 100
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 99 && BOOST_PP_ITERATION_START_3 >= 99
-#    define BOOST_PP_ITERATION_3 99
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 98 && BOOST_PP_ITERATION_START_3 >= 98
-#    define BOOST_PP_ITERATION_3 98
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 97 && BOOST_PP_ITERATION_START_3 >= 97
-#    define BOOST_PP_ITERATION_3 97
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 96 && BOOST_PP_ITERATION_START_3 >= 96
-#    define BOOST_PP_ITERATION_3 96
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 95 && BOOST_PP_ITERATION_START_3 >= 95
-#    define BOOST_PP_ITERATION_3 95
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 94 && BOOST_PP_ITERATION_START_3 >= 94
-#    define BOOST_PP_ITERATION_3 94
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 93 && BOOST_PP_ITERATION_START_3 >= 93
-#    define BOOST_PP_ITERATION_3 93
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 92 && BOOST_PP_ITERATION_START_3 >= 92
-#    define BOOST_PP_ITERATION_3 92
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 91 && BOOST_PP_ITERATION_START_3 >= 91
-#    define BOOST_PP_ITERATION_3 91
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 90 && BOOST_PP_ITERATION_START_3 >= 90
-#    define BOOST_PP_ITERATION_3 90
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 89 && BOOST_PP_ITERATION_START_3 >= 89
-#    define BOOST_PP_ITERATION_3 89
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 88 && BOOST_PP_ITERATION_START_3 >= 88
-#    define BOOST_PP_ITERATION_3 88
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 87 && BOOST_PP_ITERATION_START_3 >= 87
-#    define BOOST_PP_ITERATION_3 87
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 86 && BOOST_PP_ITERATION_START_3 >= 86
-#    define BOOST_PP_ITERATION_3 86
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 85 && BOOST_PP_ITERATION_START_3 >= 85
-#    define BOOST_PP_ITERATION_3 85
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 84 && BOOST_PP_ITERATION_START_3 >= 84
-#    define BOOST_PP_ITERATION_3 84
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 83 && BOOST_PP_ITERATION_START_3 >= 83
-#    define BOOST_PP_ITERATION_3 83
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 82 && BOOST_PP_ITERATION_START_3 >= 82
-#    define BOOST_PP_ITERATION_3 82
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 81 && BOOST_PP_ITERATION_START_3 >= 81
-#    define BOOST_PP_ITERATION_3 81
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 80 && BOOST_PP_ITERATION_START_3 >= 80
-#    define BOOST_PP_ITERATION_3 80
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 79 && BOOST_PP_ITERATION_START_3 >= 79
-#    define BOOST_PP_ITERATION_3 79
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 78 && BOOST_PP_ITERATION_START_3 >= 78
-#    define BOOST_PP_ITERATION_3 78
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 77 && BOOST_PP_ITERATION_START_3 >= 77
-#    define BOOST_PP_ITERATION_3 77
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 76 && BOOST_PP_ITERATION_START_3 >= 76
-#    define BOOST_PP_ITERATION_3 76
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 75 && BOOST_PP_ITERATION_START_3 >= 75
-#    define BOOST_PP_ITERATION_3 75
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 74 && BOOST_PP_ITERATION_START_3 >= 74
-#    define BOOST_PP_ITERATION_3 74
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 73 && BOOST_PP_ITERATION_START_3 >= 73
-#    define BOOST_PP_ITERATION_3 73
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 72 && BOOST_PP_ITERATION_START_3 >= 72
-#    define BOOST_PP_ITERATION_3 72
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 71 && BOOST_PP_ITERATION_START_3 >= 71
-#    define BOOST_PP_ITERATION_3 71
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 70 && BOOST_PP_ITERATION_START_3 >= 70
-#    define BOOST_PP_ITERATION_3 70
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 69 && BOOST_PP_ITERATION_START_3 >= 69
-#    define BOOST_PP_ITERATION_3 69
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 68 && BOOST_PP_ITERATION_START_3 >= 68
-#    define BOOST_PP_ITERATION_3 68
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 67 && BOOST_PP_ITERATION_START_3 >= 67
-#    define BOOST_PP_ITERATION_3 67
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 66 && BOOST_PP_ITERATION_START_3 >= 66
-#    define BOOST_PP_ITERATION_3 66
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 65 && BOOST_PP_ITERATION_START_3 >= 65
-#    define BOOST_PP_ITERATION_3 65
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 64 && BOOST_PP_ITERATION_START_3 >= 64
-#    define BOOST_PP_ITERATION_3 64
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 63 && BOOST_PP_ITERATION_START_3 >= 63
-#    define BOOST_PP_ITERATION_3 63
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 62 && BOOST_PP_ITERATION_START_3 >= 62
-#    define BOOST_PP_ITERATION_3 62
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 61 && BOOST_PP_ITERATION_START_3 >= 61
-#    define BOOST_PP_ITERATION_3 61
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 60 && BOOST_PP_ITERATION_START_3 >= 60
-#    define BOOST_PP_ITERATION_3 60
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 59 && BOOST_PP_ITERATION_START_3 >= 59
-#    define BOOST_PP_ITERATION_3 59
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 58 && BOOST_PP_ITERATION_START_3 >= 58
-#    define BOOST_PP_ITERATION_3 58
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 57 && BOOST_PP_ITERATION_START_3 >= 57
-#    define BOOST_PP_ITERATION_3 57
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 56 && BOOST_PP_ITERATION_START_3 >= 56
-#    define BOOST_PP_ITERATION_3 56
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 55 && BOOST_PP_ITERATION_START_3 >= 55
-#    define BOOST_PP_ITERATION_3 55
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 54 && BOOST_PP_ITERATION_START_3 >= 54
-#    define BOOST_PP_ITERATION_3 54
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 53 && BOOST_PP_ITERATION_START_3 >= 53
-#    define BOOST_PP_ITERATION_3 53
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 52 && BOOST_PP_ITERATION_START_3 >= 52
-#    define BOOST_PP_ITERATION_3 52
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 51 && BOOST_PP_ITERATION_START_3 >= 51
-#    define BOOST_PP_ITERATION_3 51
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 50 && BOOST_PP_ITERATION_START_3 >= 50
-#    define BOOST_PP_ITERATION_3 50
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 49 && BOOST_PP_ITERATION_START_3 >= 49
-#    define BOOST_PP_ITERATION_3 49
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 48 && BOOST_PP_ITERATION_START_3 >= 48
-#    define BOOST_PP_ITERATION_3 48
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 47 && BOOST_PP_ITERATION_START_3 >= 47
-#    define BOOST_PP_ITERATION_3 47
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 46 && BOOST_PP_ITERATION_START_3 >= 46
-#    define BOOST_PP_ITERATION_3 46
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 45 && BOOST_PP_ITERATION_START_3 >= 45
-#    define BOOST_PP_ITERATION_3 45
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 44 && BOOST_PP_ITERATION_START_3 >= 44
-#    define BOOST_PP_ITERATION_3 44
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 43 && BOOST_PP_ITERATION_START_3 >= 43
-#    define BOOST_PP_ITERATION_3 43
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 42 && BOOST_PP_ITERATION_START_3 >= 42
-#    define BOOST_PP_ITERATION_3 42
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 41 && BOOST_PP_ITERATION_START_3 >= 41
-#    define BOOST_PP_ITERATION_3 41
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 40 && BOOST_PP_ITERATION_START_3 >= 40
-#    define BOOST_PP_ITERATION_3 40
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 39 && BOOST_PP_ITERATION_START_3 >= 39
-#    define BOOST_PP_ITERATION_3 39
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 38 && BOOST_PP_ITERATION_START_3 >= 38
-#    define BOOST_PP_ITERATION_3 38
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 37 && BOOST_PP_ITERATION_START_3 >= 37
-#    define BOOST_PP_ITERATION_3 37
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 36 && BOOST_PP_ITERATION_START_3 >= 36
-#    define BOOST_PP_ITERATION_3 36
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 35 && BOOST_PP_ITERATION_START_3 >= 35
-#    define BOOST_PP_ITERATION_3 35
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 34 && BOOST_PP_ITERATION_START_3 >= 34
-#    define BOOST_PP_ITERATION_3 34
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 33 && BOOST_PP_ITERATION_START_3 >= 33
-#    define BOOST_PP_ITERATION_3 33
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 32 && BOOST_PP_ITERATION_START_3 >= 32
-#    define BOOST_PP_ITERATION_3 32
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 31 && BOOST_PP_ITERATION_START_3 >= 31
-#    define BOOST_PP_ITERATION_3 31
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 30 && BOOST_PP_ITERATION_START_3 >= 30
-#    define BOOST_PP_ITERATION_3 30
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 29 && BOOST_PP_ITERATION_START_3 >= 29
-#    define BOOST_PP_ITERATION_3 29
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 28 && BOOST_PP_ITERATION_START_3 >= 28
-#    define BOOST_PP_ITERATION_3 28
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 27 && BOOST_PP_ITERATION_START_3 >= 27
-#    define BOOST_PP_ITERATION_3 27
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 26 && BOOST_PP_ITERATION_START_3 >= 26
-#    define BOOST_PP_ITERATION_3 26
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 25 && BOOST_PP_ITERATION_START_3 >= 25
-#    define BOOST_PP_ITERATION_3 25
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 24 && BOOST_PP_ITERATION_START_3 >= 24
-#    define BOOST_PP_ITERATION_3 24
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 23 && BOOST_PP_ITERATION_START_3 >= 23
-#    define BOOST_PP_ITERATION_3 23
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 22 && BOOST_PP_ITERATION_START_3 >= 22
-#    define BOOST_PP_ITERATION_3 22
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 21 && BOOST_PP_ITERATION_START_3 >= 21
-#    define BOOST_PP_ITERATION_3 21
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 20 && BOOST_PP_ITERATION_START_3 >= 20
-#    define BOOST_PP_ITERATION_3 20
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 19 && BOOST_PP_ITERATION_START_3 >= 19
-#    define BOOST_PP_ITERATION_3 19
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 18 && BOOST_PP_ITERATION_START_3 >= 18
-#    define BOOST_PP_ITERATION_3 18
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 17 && BOOST_PP_ITERATION_START_3 >= 17
-#    define BOOST_PP_ITERATION_3 17
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 16 && BOOST_PP_ITERATION_START_3 >= 16
-#    define BOOST_PP_ITERATION_3 16
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 15 && BOOST_PP_ITERATION_START_3 >= 15
-#    define BOOST_PP_ITERATION_3 15
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 14 && BOOST_PP_ITERATION_START_3 >= 14
-#    define BOOST_PP_ITERATION_3 14
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 13 && BOOST_PP_ITERATION_START_3 >= 13
-#    define BOOST_PP_ITERATION_3 13
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 12 && BOOST_PP_ITERATION_START_3 >= 12
-#    define BOOST_PP_ITERATION_3 12
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 11 && BOOST_PP_ITERATION_START_3 >= 11
-#    define BOOST_PP_ITERATION_3 11
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 10 && BOOST_PP_ITERATION_START_3 >= 10
-#    define BOOST_PP_ITERATION_3 10
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 9 && BOOST_PP_ITERATION_START_3 >= 9
-#    define BOOST_PP_ITERATION_3 9
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 8 && BOOST_PP_ITERATION_START_3 >= 8
-#    define BOOST_PP_ITERATION_3 8
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 7 && BOOST_PP_ITERATION_START_3 >= 7
-#    define BOOST_PP_ITERATION_3 7
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 6 && BOOST_PP_ITERATION_START_3 >= 6
-#    define BOOST_PP_ITERATION_3 6
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 5 && BOOST_PP_ITERATION_START_3 >= 5
-#    define BOOST_PP_ITERATION_3 5
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 4 && BOOST_PP_ITERATION_START_3 >= 4
-#    define BOOST_PP_ITERATION_3 4
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 3 && BOOST_PP_ITERATION_START_3 >= 3
-#    define BOOST_PP_ITERATION_3 3
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 2 && BOOST_PP_ITERATION_START_3 >= 2
-#    define BOOST_PP_ITERATION_3 2
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 1 && BOOST_PP_ITERATION_START_3 >= 1
-#    define BOOST_PP_ITERATION_3 1
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
-# if BOOST_PP_ITERATION_FINISH_3 <= 0 && BOOST_PP_ITERATION_START_3 >= 0
-#    define BOOST_PP_ITERATION_3 0
-#    include BOOST_PP_FILENAME_3
-#    undef BOOST_PP_ITERATION_3
-# endif
diff --git a/boost/preprocessor/iteration/detail/iter/reverse4.hpp b/boost/preprocessor/iteration/detail/iter/reverse4.hpp
deleted file mode 100644
index 3bcfba0..0000000
--- a/boost/preprocessor/iteration/detail/iter/reverse4.hpp
+++ /dev/null
@@ -1,1296 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# if BOOST_PP_ITERATION_FINISH_4 <= 256 && BOOST_PP_ITERATION_START_4 >= 256
-#    define BOOST_PP_ITERATION_4 256
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 255 && BOOST_PP_ITERATION_START_4 >= 255
-#    define BOOST_PP_ITERATION_4 255
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 254 && BOOST_PP_ITERATION_START_4 >= 254
-#    define BOOST_PP_ITERATION_4 254
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 253 && BOOST_PP_ITERATION_START_4 >= 253
-#    define BOOST_PP_ITERATION_4 253
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 252 && BOOST_PP_ITERATION_START_4 >= 252
-#    define BOOST_PP_ITERATION_4 252
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 251 && BOOST_PP_ITERATION_START_4 >= 251
-#    define BOOST_PP_ITERATION_4 251
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 250 && BOOST_PP_ITERATION_START_4 >= 250
-#    define BOOST_PP_ITERATION_4 250
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 249 && BOOST_PP_ITERATION_START_4 >= 249
-#    define BOOST_PP_ITERATION_4 249
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 248 && BOOST_PP_ITERATION_START_4 >= 248
-#    define BOOST_PP_ITERATION_4 248
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 247 && BOOST_PP_ITERATION_START_4 >= 247
-#    define BOOST_PP_ITERATION_4 247
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 246 && BOOST_PP_ITERATION_START_4 >= 246
-#    define BOOST_PP_ITERATION_4 246
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 245 && BOOST_PP_ITERATION_START_4 >= 245
-#    define BOOST_PP_ITERATION_4 245
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 244 && BOOST_PP_ITERATION_START_4 >= 244
-#    define BOOST_PP_ITERATION_4 244
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 243 && BOOST_PP_ITERATION_START_4 >= 243
-#    define BOOST_PP_ITERATION_4 243
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 242 && BOOST_PP_ITERATION_START_4 >= 242
-#    define BOOST_PP_ITERATION_4 242
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 241 && BOOST_PP_ITERATION_START_4 >= 241
-#    define BOOST_PP_ITERATION_4 241
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 240 && BOOST_PP_ITERATION_START_4 >= 240
-#    define BOOST_PP_ITERATION_4 240
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 239 && BOOST_PP_ITERATION_START_4 >= 239
-#    define BOOST_PP_ITERATION_4 239
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 238 && BOOST_PP_ITERATION_START_4 >= 238
-#    define BOOST_PP_ITERATION_4 238
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 237 && BOOST_PP_ITERATION_START_4 >= 237
-#    define BOOST_PP_ITERATION_4 237
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 236 && BOOST_PP_ITERATION_START_4 >= 236
-#    define BOOST_PP_ITERATION_4 236
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 235 && BOOST_PP_ITERATION_START_4 >= 235
-#    define BOOST_PP_ITERATION_4 235
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 234 && BOOST_PP_ITERATION_START_4 >= 234
-#    define BOOST_PP_ITERATION_4 234
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 233 && BOOST_PP_ITERATION_START_4 >= 233
-#    define BOOST_PP_ITERATION_4 233
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 232 && BOOST_PP_ITERATION_START_4 >= 232
-#    define BOOST_PP_ITERATION_4 232
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 231 && BOOST_PP_ITERATION_START_4 >= 231
-#    define BOOST_PP_ITERATION_4 231
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 230 && BOOST_PP_ITERATION_START_4 >= 230
-#    define BOOST_PP_ITERATION_4 230
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 229 && BOOST_PP_ITERATION_START_4 >= 229
-#    define BOOST_PP_ITERATION_4 229
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 228 && BOOST_PP_ITERATION_START_4 >= 228
-#    define BOOST_PP_ITERATION_4 228
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 227 && BOOST_PP_ITERATION_START_4 >= 227
-#    define BOOST_PP_ITERATION_4 227
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 226 && BOOST_PP_ITERATION_START_4 >= 226
-#    define BOOST_PP_ITERATION_4 226
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 225 && BOOST_PP_ITERATION_START_4 >= 225
-#    define BOOST_PP_ITERATION_4 225
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 224 && BOOST_PP_ITERATION_START_4 >= 224
-#    define BOOST_PP_ITERATION_4 224
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 223 && BOOST_PP_ITERATION_START_4 >= 223
-#    define BOOST_PP_ITERATION_4 223
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 222 && BOOST_PP_ITERATION_START_4 >= 222
-#    define BOOST_PP_ITERATION_4 222
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 221 && BOOST_PP_ITERATION_START_4 >= 221
-#    define BOOST_PP_ITERATION_4 221
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 220 && BOOST_PP_ITERATION_START_4 >= 220
-#    define BOOST_PP_ITERATION_4 220
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 219 && BOOST_PP_ITERATION_START_4 >= 219
-#    define BOOST_PP_ITERATION_4 219
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 218 && BOOST_PP_ITERATION_START_4 >= 218
-#    define BOOST_PP_ITERATION_4 218
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 217 && BOOST_PP_ITERATION_START_4 >= 217
-#    define BOOST_PP_ITERATION_4 217
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 216 && BOOST_PP_ITERATION_START_4 >= 216
-#    define BOOST_PP_ITERATION_4 216
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 215 && BOOST_PP_ITERATION_START_4 >= 215
-#    define BOOST_PP_ITERATION_4 215
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 214 && BOOST_PP_ITERATION_START_4 >= 214
-#    define BOOST_PP_ITERATION_4 214
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 213 && BOOST_PP_ITERATION_START_4 >= 213
-#    define BOOST_PP_ITERATION_4 213
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 212 && BOOST_PP_ITERATION_START_4 >= 212
-#    define BOOST_PP_ITERATION_4 212
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 211 && BOOST_PP_ITERATION_START_4 >= 211
-#    define BOOST_PP_ITERATION_4 211
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 210 && BOOST_PP_ITERATION_START_4 >= 210
-#    define BOOST_PP_ITERATION_4 210
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 209 && BOOST_PP_ITERATION_START_4 >= 209
-#    define BOOST_PP_ITERATION_4 209
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 208 && BOOST_PP_ITERATION_START_4 >= 208
-#    define BOOST_PP_ITERATION_4 208
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 207 && BOOST_PP_ITERATION_START_4 >= 207
-#    define BOOST_PP_ITERATION_4 207
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 206 && BOOST_PP_ITERATION_START_4 >= 206
-#    define BOOST_PP_ITERATION_4 206
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 205 && BOOST_PP_ITERATION_START_4 >= 205
-#    define BOOST_PP_ITERATION_4 205
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 204 && BOOST_PP_ITERATION_START_4 >= 204
-#    define BOOST_PP_ITERATION_4 204
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 203 && BOOST_PP_ITERATION_START_4 >= 203
-#    define BOOST_PP_ITERATION_4 203
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 202 && BOOST_PP_ITERATION_START_4 >= 202
-#    define BOOST_PP_ITERATION_4 202
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 201 && BOOST_PP_ITERATION_START_4 >= 201
-#    define BOOST_PP_ITERATION_4 201
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 200 && BOOST_PP_ITERATION_START_4 >= 200
-#    define BOOST_PP_ITERATION_4 200
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 199 && BOOST_PP_ITERATION_START_4 >= 199
-#    define BOOST_PP_ITERATION_4 199
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 198 && BOOST_PP_ITERATION_START_4 >= 198
-#    define BOOST_PP_ITERATION_4 198
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 197 && BOOST_PP_ITERATION_START_4 >= 197
-#    define BOOST_PP_ITERATION_4 197
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 196 && BOOST_PP_ITERATION_START_4 >= 196
-#    define BOOST_PP_ITERATION_4 196
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 195 && BOOST_PP_ITERATION_START_4 >= 195
-#    define BOOST_PP_ITERATION_4 195
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 194 && BOOST_PP_ITERATION_START_4 >= 194
-#    define BOOST_PP_ITERATION_4 194
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 193 && BOOST_PP_ITERATION_START_4 >= 193
-#    define BOOST_PP_ITERATION_4 193
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 192 && BOOST_PP_ITERATION_START_4 >= 192
-#    define BOOST_PP_ITERATION_4 192
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 191 && BOOST_PP_ITERATION_START_4 >= 191
-#    define BOOST_PP_ITERATION_4 191
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 190 && BOOST_PP_ITERATION_START_4 >= 190
-#    define BOOST_PP_ITERATION_4 190
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 189 && BOOST_PP_ITERATION_START_4 >= 189
-#    define BOOST_PP_ITERATION_4 189
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 188 && BOOST_PP_ITERATION_START_4 >= 188
-#    define BOOST_PP_ITERATION_4 188
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 187 && BOOST_PP_ITERATION_START_4 >= 187
-#    define BOOST_PP_ITERATION_4 187
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 186 && BOOST_PP_ITERATION_START_4 >= 186
-#    define BOOST_PP_ITERATION_4 186
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 185 && BOOST_PP_ITERATION_START_4 >= 185
-#    define BOOST_PP_ITERATION_4 185
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 184 && BOOST_PP_ITERATION_START_4 >= 184
-#    define BOOST_PP_ITERATION_4 184
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 183 && BOOST_PP_ITERATION_START_4 >= 183
-#    define BOOST_PP_ITERATION_4 183
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 182 && BOOST_PP_ITERATION_START_4 >= 182
-#    define BOOST_PP_ITERATION_4 182
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 181 && BOOST_PP_ITERATION_START_4 >= 181
-#    define BOOST_PP_ITERATION_4 181
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 180 && BOOST_PP_ITERATION_START_4 >= 180
-#    define BOOST_PP_ITERATION_4 180
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 179 && BOOST_PP_ITERATION_START_4 >= 179
-#    define BOOST_PP_ITERATION_4 179
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 178 && BOOST_PP_ITERATION_START_4 >= 178
-#    define BOOST_PP_ITERATION_4 178
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 177 && BOOST_PP_ITERATION_START_4 >= 177
-#    define BOOST_PP_ITERATION_4 177
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 176 && BOOST_PP_ITERATION_START_4 >= 176
-#    define BOOST_PP_ITERATION_4 176
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 175 && BOOST_PP_ITERATION_START_4 >= 175
-#    define BOOST_PP_ITERATION_4 175
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 174 && BOOST_PP_ITERATION_START_4 >= 174
-#    define BOOST_PP_ITERATION_4 174
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 173 && BOOST_PP_ITERATION_START_4 >= 173
-#    define BOOST_PP_ITERATION_4 173
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 172 && BOOST_PP_ITERATION_START_4 >= 172
-#    define BOOST_PP_ITERATION_4 172
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 171 && BOOST_PP_ITERATION_START_4 >= 171
-#    define BOOST_PP_ITERATION_4 171
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 170 && BOOST_PP_ITERATION_START_4 >= 170
-#    define BOOST_PP_ITERATION_4 170
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 169 && BOOST_PP_ITERATION_START_4 >= 169
-#    define BOOST_PP_ITERATION_4 169
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 168 && BOOST_PP_ITERATION_START_4 >= 168
-#    define BOOST_PP_ITERATION_4 168
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 167 && BOOST_PP_ITERATION_START_4 >= 167
-#    define BOOST_PP_ITERATION_4 167
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 166 && BOOST_PP_ITERATION_START_4 >= 166
-#    define BOOST_PP_ITERATION_4 166
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 165 && BOOST_PP_ITERATION_START_4 >= 165
-#    define BOOST_PP_ITERATION_4 165
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 164 && BOOST_PP_ITERATION_START_4 >= 164
-#    define BOOST_PP_ITERATION_4 164
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 163 && BOOST_PP_ITERATION_START_4 >= 163
-#    define BOOST_PP_ITERATION_4 163
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 162 && BOOST_PP_ITERATION_START_4 >= 162
-#    define BOOST_PP_ITERATION_4 162
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 161 && BOOST_PP_ITERATION_START_4 >= 161
-#    define BOOST_PP_ITERATION_4 161
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 160 && BOOST_PP_ITERATION_START_4 >= 160
-#    define BOOST_PP_ITERATION_4 160
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 159 && BOOST_PP_ITERATION_START_4 >= 159
-#    define BOOST_PP_ITERATION_4 159
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 158 && BOOST_PP_ITERATION_START_4 >= 158
-#    define BOOST_PP_ITERATION_4 158
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 157 && BOOST_PP_ITERATION_START_4 >= 157
-#    define BOOST_PP_ITERATION_4 157
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 156 && BOOST_PP_ITERATION_START_4 >= 156
-#    define BOOST_PP_ITERATION_4 156
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 155 && BOOST_PP_ITERATION_START_4 >= 155
-#    define BOOST_PP_ITERATION_4 155
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 154 && BOOST_PP_ITERATION_START_4 >= 154
-#    define BOOST_PP_ITERATION_4 154
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 153 && BOOST_PP_ITERATION_START_4 >= 153
-#    define BOOST_PP_ITERATION_4 153
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 152 && BOOST_PP_ITERATION_START_4 >= 152
-#    define BOOST_PP_ITERATION_4 152
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 151 && BOOST_PP_ITERATION_START_4 >= 151
-#    define BOOST_PP_ITERATION_4 151
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 150 && BOOST_PP_ITERATION_START_4 >= 150
-#    define BOOST_PP_ITERATION_4 150
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 149 && BOOST_PP_ITERATION_START_4 >= 149
-#    define BOOST_PP_ITERATION_4 149
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 148 && BOOST_PP_ITERATION_START_4 >= 148
-#    define BOOST_PP_ITERATION_4 148
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 147 && BOOST_PP_ITERATION_START_4 >= 147
-#    define BOOST_PP_ITERATION_4 147
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 146 && BOOST_PP_ITERATION_START_4 >= 146
-#    define BOOST_PP_ITERATION_4 146
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 145 && BOOST_PP_ITERATION_START_4 >= 145
-#    define BOOST_PP_ITERATION_4 145
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 144 && BOOST_PP_ITERATION_START_4 >= 144
-#    define BOOST_PP_ITERATION_4 144
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 143 && BOOST_PP_ITERATION_START_4 >= 143
-#    define BOOST_PP_ITERATION_4 143
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 142 && BOOST_PP_ITERATION_START_4 >= 142
-#    define BOOST_PP_ITERATION_4 142
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 141 && BOOST_PP_ITERATION_START_4 >= 141
-#    define BOOST_PP_ITERATION_4 141
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 140 && BOOST_PP_ITERATION_START_4 >= 140
-#    define BOOST_PP_ITERATION_4 140
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 139 && BOOST_PP_ITERATION_START_4 >= 139
-#    define BOOST_PP_ITERATION_4 139
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 138 && BOOST_PP_ITERATION_START_4 >= 138
-#    define BOOST_PP_ITERATION_4 138
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 137 && BOOST_PP_ITERATION_START_4 >= 137
-#    define BOOST_PP_ITERATION_4 137
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 136 && BOOST_PP_ITERATION_START_4 >= 136
-#    define BOOST_PP_ITERATION_4 136
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 135 && BOOST_PP_ITERATION_START_4 >= 135
-#    define BOOST_PP_ITERATION_4 135
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 134 && BOOST_PP_ITERATION_START_4 >= 134
-#    define BOOST_PP_ITERATION_4 134
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 133 && BOOST_PP_ITERATION_START_4 >= 133
-#    define BOOST_PP_ITERATION_4 133
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 132 && BOOST_PP_ITERATION_START_4 >= 132
-#    define BOOST_PP_ITERATION_4 132
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 131 && BOOST_PP_ITERATION_START_4 >= 131
-#    define BOOST_PP_ITERATION_4 131
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 130 && BOOST_PP_ITERATION_START_4 >= 130
-#    define BOOST_PP_ITERATION_4 130
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 129 && BOOST_PP_ITERATION_START_4 >= 129
-#    define BOOST_PP_ITERATION_4 129
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 128 && BOOST_PP_ITERATION_START_4 >= 128
-#    define BOOST_PP_ITERATION_4 128
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 127 && BOOST_PP_ITERATION_START_4 >= 127
-#    define BOOST_PP_ITERATION_4 127
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 126 && BOOST_PP_ITERATION_START_4 >= 126
-#    define BOOST_PP_ITERATION_4 126
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 125 && BOOST_PP_ITERATION_START_4 >= 125
-#    define BOOST_PP_ITERATION_4 125
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 124 && BOOST_PP_ITERATION_START_4 >= 124
-#    define BOOST_PP_ITERATION_4 124
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 123 && BOOST_PP_ITERATION_START_4 >= 123
-#    define BOOST_PP_ITERATION_4 123
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 122 && BOOST_PP_ITERATION_START_4 >= 122
-#    define BOOST_PP_ITERATION_4 122
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 121 && BOOST_PP_ITERATION_START_4 >= 121
-#    define BOOST_PP_ITERATION_4 121
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 120 && BOOST_PP_ITERATION_START_4 >= 120
-#    define BOOST_PP_ITERATION_4 120
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 119 && BOOST_PP_ITERATION_START_4 >= 119
-#    define BOOST_PP_ITERATION_4 119
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 118 && BOOST_PP_ITERATION_START_4 >= 118
-#    define BOOST_PP_ITERATION_4 118
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 117 && BOOST_PP_ITERATION_START_4 >= 117
-#    define BOOST_PP_ITERATION_4 117
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 116 && BOOST_PP_ITERATION_START_4 >= 116
-#    define BOOST_PP_ITERATION_4 116
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 115 && BOOST_PP_ITERATION_START_4 >= 115
-#    define BOOST_PP_ITERATION_4 115
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 114 && BOOST_PP_ITERATION_START_4 >= 114
-#    define BOOST_PP_ITERATION_4 114
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 113 && BOOST_PP_ITERATION_START_4 >= 113
-#    define BOOST_PP_ITERATION_4 113
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 112 && BOOST_PP_ITERATION_START_4 >= 112
-#    define BOOST_PP_ITERATION_4 112
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 111 && BOOST_PP_ITERATION_START_4 >= 111
-#    define BOOST_PP_ITERATION_4 111
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 110 && BOOST_PP_ITERATION_START_4 >= 110
-#    define BOOST_PP_ITERATION_4 110
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 109 && BOOST_PP_ITERATION_START_4 >= 109
-#    define BOOST_PP_ITERATION_4 109
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 108 && BOOST_PP_ITERATION_START_4 >= 108
-#    define BOOST_PP_ITERATION_4 108
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 107 && BOOST_PP_ITERATION_START_4 >= 107
-#    define BOOST_PP_ITERATION_4 107
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 106 && BOOST_PP_ITERATION_START_4 >= 106
-#    define BOOST_PP_ITERATION_4 106
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 105 && BOOST_PP_ITERATION_START_4 >= 105
-#    define BOOST_PP_ITERATION_4 105
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 104 && BOOST_PP_ITERATION_START_4 >= 104
-#    define BOOST_PP_ITERATION_4 104
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 103 && BOOST_PP_ITERATION_START_4 >= 103
-#    define BOOST_PP_ITERATION_4 103
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 102 && BOOST_PP_ITERATION_START_4 >= 102
-#    define BOOST_PP_ITERATION_4 102
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 101 && BOOST_PP_ITERATION_START_4 >= 101
-#    define BOOST_PP_ITERATION_4 101
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 100 && BOOST_PP_ITERATION_START_4 >= 100
-#    define BOOST_PP_ITERATION_4 100
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 99 && BOOST_PP_ITERATION_START_4 >= 99
-#    define BOOST_PP_ITERATION_4 99
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 98 && BOOST_PP_ITERATION_START_4 >= 98
-#    define BOOST_PP_ITERATION_4 98
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 97 && BOOST_PP_ITERATION_START_4 >= 97
-#    define BOOST_PP_ITERATION_4 97
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 96 && BOOST_PP_ITERATION_START_4 >= 96
-#    define BOOST_PP_ITERATION_4 96
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 95 && BOOST_PP_ITERATION_START_4 >= 95
-#    define BOOST_PP_ITERATION_4 95
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 94 && BOOST_PP_ITERATION_START_4 >= 94
-#    define BOOST_PP_ITERATION_4 94
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 93 && BOOST_PP_ITERATION_START_4 >= 93
-#    define BOOST_PP_ITERATION_4 93
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 92 && BOOST_PP_ITERATION_START_4 >= 92
-#    define BOOST_PP_ITERATION_4 92
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 91 && BOOST_PP_ITERATION_START_4 >= 91
-#    define BOOST_PP_ITERATION_4 91
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 90 && BOOST_PP_ITERATION_START_4 >= 90
-#    define BOOST_PP_ITERATION_4 90
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 89 && BOOST_PP_ITERATION_START_4 >= 89
-#    define BOOST_PP_ITERATION_4 89
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 88 && BOOST_PP_ITERATION_START_4 >= 88
-#    define BOOST_PP_ITERATION_4 88
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 87 && BOOST_PP_ITERATION_START_4 >= 87
-#    define BOOST_PP_ITERATION_4 87
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 86 && BOOST_PP_ITERATION_START_4 >= 86
-#    define BOOST_PP_ITERATION_4 86
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 85 && BOOST_PP_ITERATION_START_4 >= 85
-#    define BOOST_PP_ITERATION_4 85
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 84 && BOOST_PP_ITERATION_START_4 >= 84
-#    define BOOST_PP_ITERATION_4 84
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 83 && BOOST_PP_ITERATION_START_4 >= 83
-#    define BOOST_PP_ITERATION_4 83
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 82 && BOOST_PP_ITERATION_START_4 >= 82
-#    define BOOST_PP_ITERATION_4 82
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 81 && BOOST_PP_ITERATION_START_4 >= 81
-#    define BOOST_PP_ITERATION_4 81
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 80 && BOOST_PP_ITERATION_START_4 >= 80
-#    define BOOST_PP_ITERATION_4 80
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 79 && BOOST_PP_ITERATION_START_4 >= 79
-#    define BOOST_PP_ITERATION_4 79
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 78 && BOOST_PP_ITERATION_START_4 >= 78
-#    define BOOST_PP_ITERATION_4 78
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 77 && BOOST_PP_ITERATION_START_4 >= 77
-#    define BOOST_PP_ITERATION_4 77
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 76 && BOOST_PP_ITERATION_START_4 >= 76
-#    define BOOST_PP_ITERATION_4 76
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 75 && BOOST_PP_ITERATION_START_4 >= 75
-#    define BOOST_PP_ITERATION_4 75
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 74 && BOOST_PP_ITERATION_START_4 >= 74
-#    define BOOST_PP_ITERATION_4 74
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 73 && BOOST_PP_ITERATION_START_4 >= 73
-#    define BOOST_PP_ITERATION_4 73
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 72 && BOOST_PP_ITERATION_START_4 >= 72
-#    define BOOST_PP_ITERATION_4 72
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 71 && BOOST_PP_ITERATION_START_4 >= 71
-#    define BOOST_PP_ITERATION_4 71
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 70 && BOOST_PP_ITERATION_START_4 >= 70
-#    define BOOST_PP_ITERATION_4 70
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 69 && BOOST_PP_ITERATION_START_4 >= 69
-#    define BOOST_PP_ITERATION_4 69
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 68 && BOOST_PP_ITERATION_START_4 >= 68
-#    define BOOST_PP_ITERATION_4 68
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 67 && BOOST_PP_ITERATION_START_4 >= 67
-#    define BOOST_PP_ITERATION_4 67
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 66 && BOOST_PP_ITERATION_START_4 >= 66
-#    define BOOST_PP_ITERATION_4 66
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 65 && BOOST_PP_ITERATION_START_4 >= 65
-#    define BOOST_PP_ITERATION_4 65
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 64 && BOOST_PP_ITERATION_START_4 >= 64
-#    define BOOST_PP_ITERATION_4 64
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 63 && BOOST_PP_ITERATION_START_4 >= 63
-#    define BOOST_PP_ITERATION_4 63
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 62 && BOOST_PP_ITERATION_START_4 >= 62
-#    define BOOST_PP_ITERATION_4 62
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 61 && BOOST_PP_ITERATION_START_4 >= 61
-#    define BOOST_PP_ITERATION_4 61
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 60 && BOOST_PP_ITERATION_START_4 >= 60
-#    define BOOST_PP_ITERATION_4 60
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 59 && BOOST_PP_ITERATION_START_4 >= 59
-#    define BOOST_PP_ITERATION_4 59
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 58 && BOOST_PP_ITERATION_START_4 >= 58
-#    define BOOST_PP_ITERATION_4 58
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 57 && BOOST_PP_ITERATION_START_4 >= 57
-#    define BOOST_PP_ITERATION_4 57
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 56 && BOOST_PP_ITERATION_START_4 >= 56
-#    define BOOST_PP_ITERATION_4 56
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 55 && BOOST_PP_ITERATION_START_4 >= 55
-#    define BOOST_PP_ITERATION_4 55
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 54 && BOOST_PP_ITERATION_START_4 >= 54
-#    define BOOST_PP_ITERATION_4 54
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 53 && BOOST_PP_ITERATION_START_4 >= 53
-#    define BOOST_PP_ITERATION_4 53
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 52 && BOOST_PP_ITERATION_START_4 >= 52
-#    define BOOST_PP_ITERATION_4 52
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 51 && BOOST_PP_ITERATION_START_4 >= 51
-#    define BOOST_PP_ITERATION_4 51
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 50 && BOOST_PP_ITERATION_START_4 >= 50
-#    define BOOST_PP_ITERATION_4 50
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 49 && BOOST_PP_ITERATION_START_4 >= 49
-#    define BOOST_PP_ITERATION_4 49
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 48 && BOOST_PP_ITERATION_START_4 >= 48
-#    define BOOST_PP_ITERATION_4 48
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 47 && BOOST_PP_ITERATION_START_4 >= 47
-#    define BOOST_PP_ITERATION_4 47
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 46 && BOOST_PP_ITERATION_START_4 >= 46
-#    define BOOST_PP_ITERATION_4 46
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 45 && BOOST_PP_ITERATION_START_4 >= 45
-#    define BOOST_PP_ITERATION_4 45
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 44 && BOOST_PP_ITERATION_START_4 >= 44
-#    define BOOST_PP_ITERATION_4 44
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 43 && BOOST_PP_ITERATION_START_4 >= 43
-#    define BOOST_PP_ITERATION_4 43
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 42 && BOOST_PP_ITERATION_START_4 >= 42
-#    define BOOST_PP_ITERATION_4 42
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 41 && BOOST_PP_ITERATION_START_4 >= 41
-#    define BOOST_PP_ITERATION_4 41
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 40 && BOOST_PP_ITERATION_START_4 >= 40
-#    define BOOST_PP_ITERATION_4 40
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 39 && BOOST_PP_ITERATION_START_4 >= 39
-#    define BOOST_PP_ITERATION_4 39
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 38 && BOOST_PP_ITERATION_START_4 >= 38
-#    define BOOST_PP_ITERATION_4 38
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 37 && BOOST_PP_ITERATION_START_4 >= 37
-#    define BOOST_PP_ITERATION_4 37
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 36 && BOOST_PP_ITERATION_START_4 >= 36
-#    define BOOST_PP_ITERATION_4 36
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 35 && BOOST_PP_ITERATION_START_4 >= 35
-#    define BOOST_PP_ITERATION_4 35
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 34 && BOOST_PP_ITERATION_START_4 >= 34
-#    define BOOST_PP_ITERATION_4 34
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 33 && BOOST_PP_ITERATION_START_4 >= 33
-#    define BOOST_PP_ITERATION_4 33
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 32 && BOOST_PP_ITERATION_START_4 >= 32
-#    define BOOST_PP_ITERATION_4 32
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 31 && BOOST_PP_ITERATION_START_4 >= 31
-#    define BOOST_PP_ITERATION_4 31
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 30 && BOOST_PP_ITERATION_START_4 >= 30
-#    define BOOST_PP_ITERATION_4 30
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 29 && BOOST_PP_ITERATION_START_4 >= 29
-#    define BOOST_PP_ITERATION_4 29
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 28 && BOOST_PP_ITERATION_START_4 >= 28
-#    define BOOST_PP_ITERATION_4 28
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 27 && BOOST_PP_ITERATION_START_4 >= 27
-#    define BOOST_PP_ITERATION_4 27
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 26 && BOOST_PP_ITERATION_START_4 >= 26
-#    define BOOST_PP_ITERATION_4 26
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 25 && BOOST_PP_ITERATION_START_4 >= 25
-#    define BOOST_PP_ITERATION_4 25
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 24 && BOOST_PP_ITERATION_START_4 >= 24
-#    define BOOST_PP_ITERATION_4 24
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 23 && BOOST_PP_ITERATION_START_4 >= 23
-#    define BOOST_PP_ITERATION_4 23
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 22 && BOOST_PP_ITERATION_START_4 >= 22
-#    define BOOST_PP_ITERATION_4 22
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 21 && BOOST_PP_ITERATION_START_4 >= 21
-#    define BOOST_PP_ITERATION_4 21
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 20 && BOOST_PP_ITERATION_START_4 >= 20
-#    define BOOST_PP_ITERATION_4 20
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 19 && BOOST_PP_ITERATION_START_4 >= 19
-#    define BOOST_PP_ITERATION_4 19
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 18 && BOOST_PP_ITERATION_START_4 >= 18
-#    define BOOST_PP_ITERATION_4 18
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 17 && BOOST_PP_ITERATION_START_4 >= 17
-#    define BOOST_PP_ITERATION_4 17
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 16 && BOOST_PP_ITERATION_START_4 >= 16
-#    define BOOST_PP_ITERATION_4 16
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 15 && BOOST_PP_ITERATION_START_4 >= 15
-#    define BOOST_PP_ITERATION_4 15
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 14 && BOOST_PP_ITERATION_START_4 >= 14
-#    define BOOST_PP_ITERATION_4 14
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 13 && BOOST_PP_ITERATION_START_4 >= 13
-#    define BOOST_PP_ITERATION_4 13
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 12 && BOOST_PP_ITERATION_START_4 >= 12
-#    define BOOST_PP_ITERATION_4 12
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 11 && BOOST_PP_ITERATION_START_4 >= 11
-#    define BOOST_PP_ITERATION_4 11
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 10 && BOOST_PP_ITERATION_START_4 >= 10
-#    define BOOST_PP_ITERATION_4 10
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 9 && BOOST_PP_ITERATION_START_4 >= 9
-#    define BOOST_PP_ITERATION_4 9
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 8 && BOOST_PP_ITERATION_START_4 >= 8
-#    define BOOST_PP_ITERATION_4 8
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 7 && BOOST_PP_ITERATION_START_4 >= 7
-#    define BOOST_PP_ITERATION_4 7
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 6 && BOOST_PP_ITERATION_START_4 >= 6
-#    define BOOST_PP_ITERATION_4 6
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 5 && BOOST_PP_ITERATION_START_4 >= 5
-#    define BOOST_PP_ITERATION_4 5
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 4 && BOOST_PP_ITERATION_START_4 >= 4
-#    define BOOST_PP_ITERATION_4 4
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 3 && BOOST_PP_ITERATION_START_4 >= 3
-#    define BOOST_PP_ITERATION_4 3
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 2 && BOOST_PP_ITERATION_START_4 >= 2
-#    define BOOST_PP_ITERATION_4 2
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 1 && BOOST_PP_ITERATION_START_4 >= 1
-#    define BOOST_PP_ITERATION_4 1
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
-# if BOOST_PP_ITERATION_FINISH_4 <= 0 && BOOST_PP_ITERATION_START_4 >= 0
-#    define BOOST_PP_ITERATION_4 0
-#    include BOOST_PP_FILENAME_4
-#    undef BOOST_PP_ITERATION_4
-# endif
diff --git a/boost/preprocessor/iteration/detail/iter/reverse5.hpp b/boost/preprocessor/iteration/detail/iter/reverse5.hpp
deleted file mode 100644
index 225a557..0000000
--- a/boost/preprocessor/iteration/detail/iter/reverse5.hpp
+++ /dev/null
@@ -1,1296 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# if BOOST_PP_ITERATION_FINISH_5 <= 256 && BOOST_PP_ITERATION_START_5 >= 256
-#    define BOOST_PP_ITERATION_5 256
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 255 && BOOST_PP_ITERATION_START_5 >= 255
-#    define BOOST_PP_ITERATION_5 255
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 254 && BOOST_PP_ITERATION_START_5 >= 254
-#    define BOOST_PP_ITERATION_5 254
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 253 && BOOST_PP_ITERATION_START_5 >= 253
-#    define BOOST_PP_ITERATION_5 253
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 252 && BOOST_PP_ITERATION_START_5 >= 252
-#    define BOOST_PP_ITERATION_5 252
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 251 && BOOST_PP_ITERATION_START_5 >= 251
-#    define BOOST_PP_ITERATION_5 251
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 250 && BOOST_PP_ITERATION_START_5 >= 250
-#    define BOOST_PP_ITERATION_5 250
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 249 && BOOST_PP_ITERATION_START_5 >= 249
-#    define BOOST_PP_ITERATION_5 249
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 248 && BOOST_PP_ITERATION_START_5 >= 248
-#    define BOOST_PP_ITERATION_5 248
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 247 && BOOST_PP_ITERATION_START_5 >= 247
-#    define BOOST_PP_ITERATION_5 247
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 246 && BOOST_PP_ITERATION_START_5 >= 246
-#    define BOOST_PP_ITERATION_5 246
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 245 && BOOST_PP_ITERATION_START_5 >= 245
-#    define BOOST_PP_ITERATION_5 245
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 244 && BOOST_PP_ITERATION_START_5 >= 244
-#    define BOOST_PP_ITERATION_5 244
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 243 && BOOST_PP_ITERATION_START_5 >= 243
-#    define BOOST_PP_ITERATION_5 243
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 242 && BOOST_PP_ITERATION_START_5 >= 242
-#    define BOOST_PP_ITERATION_5 242
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 241 && BOOST_PP_ITERATION_START_5 >= 241
-#    define BOOST_PP_ITERATION_5 241
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 240 && BOOST_PP_ITERATION_START_5 >= 240
-#    define BOOST_PP_ITERATION_5 240
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 239 && BOOST_PP_ITERATION_START_5 >= 239
-#    define BOOST_PP_ITERATION_5 239
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 238 && BOOST_PP_ITERATION_START_5 >= 238
-#    define BOOST_PP_ITERATION_5 238
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 237 && BOOST_PP_ITERATION_START_5 >= 237
-#    define BOOST_PP_ITERATION_5 237
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 236 && BOOST_PP_ITERATION_START_5 >= 236
-#    define BOOST_PP_ITERATION_5 236
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 235 && BOOST_PP_ITERATION_START_5 >= 235
-#    define BOOST_PP_ITERATION_5 235
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 234 && BOOST_PP_ITERATION_START_5 >= 234
-#    define BOOST_PP_ITERATION_5 234
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 233 && BOOST_PP_ITERATION_START_5 >= 233
-#    define BOOST_PP_ITERATION_5 233
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 232 && BOOST_PP_ITERATION_START_5 >= 232
-#    define BOOST_PP_ITERATION_5 232
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 231 && BOOST_PP_ITERATION_START_5 >= 231
-#    define BOOST_PP_ITERATION_5 231
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 230 && BOOST_PP_ITERATION_START_5 >= 230
-#    define BOOST_PP_ITERATION_5 230
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 229 && BOOST_PP_ITERATION_START_5 >= 229
-#    define BOOST_PP_ITERATION_5 229
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 228 && BOOST_PP_ITERATION_START_5 >= 228
-#    define BOOST_PP_ITERATION_5 228
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 227 && BOOST_PP_ITERATION_START_5 >= 227
-#    define BOOST_PP_ITERATION_5 227
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 226 && BOOST_PP_ITERATION_START_5 >= 226
-#    define BOOST_PP_ITERATION_5 226
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 225 && BOOST_PP_ITERATION_START_5 >= 225
-#    define BOOST_PP_ITERATION_5 225
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 224 && BOOST_PP_ITERATION_START_5 >= 224
-#    define BOOST_PP_ITERATION_5 224
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 223 && BOOST_PP_ITERATION_START_5 >= 223
-#    define BOOST_PP_ITERATION_5 223
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 222 && BOOST_PP_ITERATION_START_5 >= 222
-#    define BOOST_PP_ITERATION_5 222
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 221 && BOOST_PP_ITERATION_START_5 >= 221
-#    define BOOST_PP_ITERATION_5 221
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 220 && BOOST_PP_ITERATION_START_5 >= 220
-#    define BOOST_PP_ITERATION_5 220
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 219 && BOOST_PP_ITERATION_START_5 >= 219
-#    define BOOST_PP_ITERATION_5 219
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 218 && BOOST_PP_ITERATION_START_5 >= 218
-#    define BOOST_PP_ITERATION_5 218
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 217 && BOOST_PP_ITERATION_START_5 >= 217
-#    define BOOST_PP_ITERATION_5 217
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 216 && BOOST_PP_ITERATION_START_5 >= 216
-#    define BOOST_PP_ITERATION_5 216
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 215 && BOOST_PP_ITERATION_START_5 >= 215
-#    define BOOST_PP_ITERATION_5 215
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 214 && BOOST_PP_ITERATION_START_5 >= 214
-#    define BOOST_PP_ITERATION_5 214
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 213 && BOOST_PP_ITERATION_START_5 >= 213
-#    define BOOST_PP_ITERATION_5 213
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 212 && BOOST_PP_ITERATION_START_5 >= 212
-#    define BOOST_PP_ITERATION_5 212
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 211 && BOOST_PP_ITERATION_START_5 >= 211
-#    define BOOST_PP_ITERATION_5 211
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 210 && BOOST_PP_ITERATION_START_5 >= 210
-#    define BOOST_PP_ITERATION_5 210
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 209 && BOOST_PP_ITERATION_START_5 >= 209
-#    define BOOST_PP_ITERATION_5 209
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 208 && BOOST_PP_ITERATION_START_5 >= 208
-#    define BOOST_PP_ITERATION_5 208
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 207 && BOOST_PP_ITERATION_START_5 >= 207
-#    define BOOST_PP_ITERATION_5 207
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 206 && BOOST_PP_ITERATION_START_5 >= 206
-#    define BOOST_PP_ITERATION_5 206
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 205 && BOOST_PP_ITERATION_START_5 >= 205
-#    define BOOST_PP_ITERATION_5 205
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 204 && BOOST_PP_ITERATION_START_5 >= 204
-#    define BOOST_PP_ITERATION_5 204
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 203 && BOOST_PP_ITERATION_START_5 >= 203
-#    define BOOST_PP_ITERATION_5 203
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 202 && BOOST_PP_ITERATION_START_5 >= 202
-#    define BOOST_PP_ITERATION_5 202
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 201 && BOOST_PP_ITERATION_START_5 >= 201
-#    define BOOST_PP_ITERATION_5 201
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 200 && BOOST_PP_ITERATION_START_5 >= 200
-#    define BOOST_PP_ITERATION_5 200
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 199 && BOOST_PP_ITERATION_START_5 >= 199
-#    define BOOST_PP_ITERATION_5 199
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 198 && BOOST_PP_ITERATION_START_5 >= 198
-#    define BOOST_PP_ITERATION_5 198
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 197 && BOOST_PP_ITERATION_START_5 >= 197
-#    define BOOST_PP_ITERATION_5 197
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 196 && BOOST_PP_ITERATION_START_5 >= 196
-#    define BOOST_PP_ITERATION_5 196
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 195 && BOOST_PP_ITERATION_START_5 >= 195
-#    define BOOST_PP_ITERATION_5 195
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 194 && BOOST_PP_ITERATION_START_5 >= 194
-#    define BOOST_PP_ITERATION_5 194
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 193 && BOOST_PP_ITERATION_START_5 >= 193
-#    define BOOST_PP_ITERATION_5 193
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 192 && BOOST_PP_ITERATION_START_5 >= 192
-#    define BOOST_PP_ITERATION_5 192
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 191 && BOOST_PP_ITERATION_START_5 >= 191
-#    define BOOST_PP_ITERATION_5 191
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 190 && BOOST_PP_ITERATION_START_5 >= 190
-#    define BOOST_PP_ITERATION_5 190
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 189 && BOOST_PP_ITERATION_START_5 >= 189
-#    define BOOST_PP_ITERATION_5 189
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 188 && BOOST_PP_ITERATION_START_5 >= 188
-#    define BOOST_PP_ITERATION_5 188
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 187 && BOOST_PP_ITERATION_START_5 >= 187
-#    define BOOST_PP_ITERATION_5 187
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 186 && BOOST_PP_ITERATION_START_5 >= 186
-#    define BOOST_PP_ITERATION_5 186
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 185 && BOOST_PP_ITERATION_START_5 >= 185
-#    define BOOST_PP_ITERATION_5 185
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 184 && BOOST_PP_ITERATION_START_5 >= 184
-#    define BOOST_PP_ITERATION_5 184
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 183 && BOOST_PP_ITERATION_START_5 >= 183
-#    define BOOST_PP_ITERATION_5 183
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 182 && BOOST_PP_ITERATION_START_5 >= 182
-#    define BOOST_PP_ITERATION_5 182
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 181 && BOOST_PP_ITERATION_START_5 >= 181
-#    define BOOST_PP_ITERATION_5 181
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 180 && BOOST_PP_ITERATION_START_5 >= 180
-#    define BOOST_PP_ITERATION_5 180
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 179 && BOOST_PP_ITERATION_START_5 >= 179
-#    define BOOST_PP_ITERATION_5 179
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 178 && BOOST_PP_ITERATION_START_5 >= 178
-#    define BOOST_PP_ITERATION_5 178
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 177 && BOOST_PP_ITERATION_START_5 >= 177
-#    define BOOST_PP_ITERATION_5 177
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 176 && BOOST_PP_ITERATION_START_5 >= 176
-#    define BOOST_PP_ITERATION_5 176
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 175 && BOOST_PP_ITERATION_START_5 >= 175
-#    define BOOST_PP_ITERATION_5 175
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 174 && BOOST_PP_ITERATION_START_5 >= 174
-#    define BOOST_PP_ITERATION_5 174
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 173 && BOOST_PP_ITERATION_START_5 >= 173
-#    define BOOST_PP_ITERATION_5 173
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 172 && BOOST_PP_ITERATION_START_5 >= 172
-#    define BOOST_PP_ITERATION_5 172
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 171 && BOOST_PP_ITERATION_START_5 >= 171
-#    define BOOST_PP_ITERATION_5 171
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 170 && BOOST_PP_ITERATION_START_5 >= 170
-#    define BOOST_PP_ITERATION_5 170
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 169 && BOOST_PP_ITERATION_START_5 >= 169
-#    define BOOST_PP_ITERATION_5 169
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 168 && BOOST_PP_ITERATION_START_5 >= 168
-#    define BOOST_PP_ITERATION_5 168
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 167 && BOOST_PP_ITERATION_START_5 >= 167
-#    define BOOST_PP_ITERATION_5 167
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 166 && BOOST_PP_ITERATION_START_5 >= 166
-#    define BOOST_PP_ITERATION_5 166
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 165 && BOOST_PP_ITERATION_START_5 >= 165
-#    define BOOST_PP_ITERATION_5 165
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 164 && BOOST_PP_ITERATION_START_5 >= 164
-#    define BOOST_PP_ITERATION_5 164
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 163 && BOOST_PP_ITERATION_START_5 >= 163
-#    define BOOST_PP_ITERATION_5 163
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 162 && BOOST_PP_ITERATION_START_5 >= 162
-#    define BOOST_PP_ITERATION_5 162
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 161 && BOOST_PP_ITERATION_START_5 >= 161
-#    define BOOST_PP_ITERATION_5 161
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 160 && BOOST_PP_ITERATION_START_5 >= 160
-#    define BOOST_PP_ITERATION_5 160
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 159 && BOOST_PP_ITERATION_START_5 >= 159
-#    define BOOST_PP_ITERATION_5 159
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 158 && BOOST_PP_ITERATION_START_5 >= 158
-#    define BOOST_PP_ITERATION_5 158
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 157 && BOOST_PP_ITERATION_START_5 >= 157
-#    define BOOST_PP_ITERATION_5 157
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 156 && BOOST_PP_ITERATION_START_5 >= 156
-#    define BOOST_PP_ITERATION_5 156
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 155 && BOOST_PP_ITERATION_START_5 >= 155
-#    define BOOST_PP_ITERATION_5 155
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 154 && BOOST_PP_ITERATION_START_5 >= 154
-#    define BOOST_PP_ITERATION_5 154
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 153 && BOOST_PP_ITERATION_START_5 >= 153
-#    define BOOST_PP_ITERATION_5 153
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 152 && BOOST_PP_ITERATION_START_5 >= 152
-#    define BOOST_PP_ITERATION_5 152
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 151 && BOOST_PP_ITERATION_START_5 >= 151
-#    define BOOST_PP_ITERATION_5 151
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 150 && BOOST_PP_ITERATION_START_5 >= 150
-#    define BOOST_PP_ITERATION_5 150
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 149 && BOOST_PP_ITERATION_START_5 >= 149
-#    define BOOST_PP_ITERATION_5 149
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 148 && BOOST_PP_ITERATION_START_5 >= 148
-#    define BOOST_PP_ITERATION_5 148
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 147 && BOOST_PP_ITERATION_START_5 >= 147
-#    define BOOST_PP_ITERATION_5 147
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 146 && BOOST_PP_ITERATION_START_5 >= 146
-#    define BOOST_PP_ITERATION_5 146
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 145 && BOOST_PP_ITERATION_START_5 >= 145
-#    define BOOST_PP_ITERATION_5 145
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 144 && BOOST_PP_ITERATION_START_5 >= 144
-#    define BOOST_PP_ITERATION_5 144
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 143 && BOOST_PP_ITERATION_START_5 >= 143
-#    define BOOST_PP_ITERATION_5 143
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 142 && BOOST_PP_ITERATION_START_5 >= 142
-#    define BOOST_PP_ITERATION_5 142
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 141 && BOOST_PP_ITERATION_START_5 >= 141
-#    define BOOST_PP_ITERATION_5 141
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 140 && BOOST_PP_ITERATION_START_5 >= 140
-#    define BOOST_PP_ITERATION_5 140
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 139 && BOOST_PP_ITERATION_START_5 >= 139
-#    define BOOST_PP_ITERATION_5 139
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 138 && BOOST_PP_ITERATION_START_5 >= 138
-#    define BOOST_PP_ITERATION_5 138
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 137 && BOOST_PP_ITERATION_START_5 >= 137
-#    define BOOST_PP_ITERATION_5 137
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 136 && BOOST_PP_ITERATION_START_5 >= 136
-#    define BOOST_PP_ITERATION_5 136
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 135 && BOOST_PP_ITERATION_START_5 >= 135
-#    define BOOST_PP_ITERATION_5 135
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 134 && BOOST_PP_ITERATION_START_5 >= 134
-#    define BOOST_PP_ITERATION_5 134
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 133 && BOOST_PP_ITERATION_START_5 >= 133
-#    define BOOST_PP_ITERATION_5 133
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 132 && BOOST_PP_ITERATION_START_5 >= 132
-#    define BOOST_PP_ITERATION_5 132
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 131 && BOOST_PP_ITERATION_START_5 >= 131
-#    define BOOST_PP_ITERATION_5 131
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 130 && BOOST_PP_ITERATION_START_5 >= 130
-#    define BOOST_PP_ITERATION_5 130
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 129 && BOOST_PP_ITERATION_START_5 >= 129
-#    define BOOST_PP_ITERATION_5 129
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 128 && BOOST_PP_ITERATION_START_5 >= 128
-#    define BOOST_PP_ITERATION_5 128
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 127 && BOOST_PP_ITERATION_START_5 >= 127
-#    define BOOST_PP_ITERATION_5 127
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 126 && BOOST_PP_ITERATION_START_5 >= 126
-#    define BOOST_PP_ITERATION_5 126
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 125 && BOOST_PP_ITERATION_START_5 >= 125
-#    define BOOST_PP_ITERATION_5 125
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 124 && BOOST_PP_ITERATION_START_5 >= 124
-#    define BOOST_PP_ITERATION_5 124
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 123 && BOOST_PP_ITERATION_START_5 >= 123
-#    define BOOST_PP_ITERATION_5 123
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 122 && BOOST_PP_ITERATION_START_5 >= 122
-#    define BOOST_PP_ITERATION_5 122
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 121 && BOOST_PP_ITERATION_START_5 >= 121
-#    define BOOST_PP_ITERATION_5 121
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 120 && BOOST_PP_ITERATION_START_5 >= 120
-#    define BOOST_PP_ITERATION_5 120
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 119 && BOOST_PP_ITERATION_START_5 >= 119
-#    define BOOST_PP_ITERATION_5 119
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 118 && BOOST_PP_ITERATION_START_5 >= 118
-#    define BOOST_PP_ITERATION_5 118
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 117 && BOOST_PP_ITERATION_START_5 >= 117
-#    define BOOST_PP_ITERATION_5 117
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 116 && BOOST_PP_ITERATION_START_5 >= 116
-#    define BOOST_PP_ITERATION_5 116
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 115 && BOOST_PP_ITERATION_START_5 >= 115
-#    define BOOST_PP_ITERATION_5 115
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 114 && BOOST_PP_ITERATION_START_5 >= 114
-#    define BOOST_PP_ITERATION_5 114
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 113 && BOOST_PP_ITERATION_START_5 >= 113
-#    define BOOST_PP_ITERATION_5 113
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 112 && BOOST_PP_ITERATION_START_5 >= 112
-#    define BOOST_PP_ITERATION_5 112
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 111 && BOOST_PP_ITERATION_START_5 >= 111
-#    define BOOST_PP_ITERATION_5 111
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 110 && BOOST_PP_ITERATION_START_5 >= 110
-#    define BOOST_PP_ITERATION_5 110
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 109 && BOOST_PP_ITERATION_START_5 >= 109
-#    define BOOST_PP_ITERATION_5 109
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 108 && BOOST_PP_ITERATION_START_5 >= 108
-#    define BOOST_PP_ITERATION_5 108
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 107 && BOOST_PP_ITERATION_START_5 >= 107
-#    define BOOST_PP_ITERATION_5 107
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 106 && BOOST_PP_ITERATION_START_5 >= 106
-#    define BOOST_PP_ITERATION_5 106
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 105 && BOOST_PP_ITERATION_START_5 >= 105
-#    define BOOST_PP_ITERATION_5 105
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 104 && BOOST_PP_ITERATION_START_5 >= 104
-#    define BOOST_PP_ITERATION_5 104
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 103 && BOOST_PP_ITERATION_START_5 >= 103
-#    define BOOST_PP_ITERATION_5 103
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 102 && BOOST_PP_ITERATION_START_5 >= 102
-#    define BOOST_PP_ITERATION_5 102
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 101 && BOOST_PP_ITERATION_START_5 >= 101
-#    define BOOST_PP_ITERATION_5 101
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 100 && BOOST_PP_ITERATION_START_5 >= 100
-#    define BOOST_PP_ITERATION_5 100
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 99 && BOOST_PP_ITERATION_START_5 >= 99
-#    define BOOST_PP_ITERATION_5 99
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 98 && BOOST_PP_ITERATION_START_5 >= 98
-#    define BOOST_PP_ITERATION_5 98
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 97 && BOOST_PP_ITERATION_START_5 >= 97
-#    define BOOST_PP_ITERATION_5 97
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 96 && BOOST_PP_ITERATION_START_5 >= 96
-#    define BOOST_PP_ITERATION_5 96
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 95 && BOOST_PP_ITERATION_START_5 >= 95
-#    define BOOST_PP_ITERATION_5 95
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 94 && BOOST_PP_ITERATION_START_5 >= 94
-#    define BOOST_PP_ITERATION_5 94
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 93 && BOOST_PP_ITERATION_START_5 >= 93
-#    define BOOST_PP_ITERATION_5 93
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 92 && BOOST_PP_ITERATION_START_5 >= 92
-#    define BOOST_PP_ITERATION_5 92
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 91 && BOOST_PP_ITERATION_START_5 >= 91
-#    define BOOST_PP_ITERATION_5 91
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 90 && BOOST_PP_ITERATION_START_5 >= 90
-#    define BOOST_PP_ITERATION_5 90
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 89 && BOOST_PP_ITERATION_START_5 >= 89
-#    define BOOST_PP_ITERATION_5 89
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 88 && BOOST_PP_ITERATION_START_5 >= 88
-#    define BOOST_PP_ITERATION_5 88
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 87 && BOOST_PP_ITERATION_START_5 >= 87
-#    define BOOST_PP_ITERATION_5 87
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 86 && BOOST_PP_ITERATION_START_5 >= 86
-#    define BOOST_PP_ITERATION_5 86
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 85 && BOOST_PP_ITERATION_START_5 >= 85
-#    define BOOST_PP_ITERATION_5 85
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 84 && BOOST_PP_ITERATION_START_5 >= 84
-#    define BOOST_PP_ITERATION_5 84
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 83 && BOOST_PP_ITERATION_START_5 >= 83
-#    define BOOST_PP_ITERATION_5 83
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 82 && BOOST_PP_ITERATION_START_5 >= 82
-#    define BOOST_PP_ITERATION_5 82
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 81 && BOOST_PP_ITERATION_START_5 >= 81
-#    define BOOST_PP_ITERATION_5 81
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 80 && BOOST_PP_ITERATION_START_5 >= 80
-#    define BOOST_PP_ITERATION_5 80
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 79 && BOOST_PP_ITERATION_START_5 >= 79
-#    define BOOST_PP_ITERATION_5 79
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 78 && BOOST_PP_ITERATION_START_5 >= 78
-#    define BOOST_PP_ITERATION_5 78
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 77 && BOOST_PP_ITERATION_START_5 >= 77
-#    define BOOST_PP_ITERATION_5 77
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 76 && BOOST_PP_ITERATION_START_5 >= 76
-#    define BOOST_PP_ITERATION_5 76
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 75 && BOOST_PP_ITERATION_START_5 >= 75
-#    define BOOST_PP_ITERATION_5 75
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 74 && BOOST_PP_ITERATION_START_5 >= 74
-#    define BOOST_PP_ITERATION_5 74
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 73 && BOOST_PP_ITERATION_START_5 >= 73
-#    define BOOST_PP_ITERATION_5 73
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 72 && BOOST_PP_ITERATION_START_5 >= 72
-#    define BOOST_PP_ITERATION_5 72
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 71 && BOOST_PP_ITERATION_START_5 >= 71
-#    define BOOST_PP_ITERATION_5 71
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 70 && BOOST_PP_ITERATION_START_5 >= 70
-#    define BOOST_PP_ITERATION_5 70
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 69 && BOOST_PP_ITERATION_START_5 >= 69
-#    define BOOST_PP_ITERATION_5 69
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 68 && BOOST_PP_ITERATION_START_5 >= 68
-#    define BOOST_PP_ITERATION_5 68
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 67 && BOOST_PP_ITERATION_START_5 >= 67
-#    define BOOST_PP_ITERATION_5 67
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 66 && BOOST_PP_ITERATION_START_5 >= 66
-#    define BOOST_PP_ITERATION_5 66
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 65 && BOOST_PP_ITERATION_START_5 >= 65
-#    define BOOST_PP_ITERATION_5 65
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 64 && BOOST_PP_ITERATION_START_5 >= 64
-#    define BOOST_PP_ITERATION_5 64
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 63 && BOOST_PP_ITERATION_START_5 >= 63
-#    define BOOST_PP_ITERATION_5 63
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 62 && BOOST_PP_ITERATION_START_5 >= 62
-#    define BOOST_PP_ITERATION_5 62
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 61 && BOOST_PP_ITERATION_START_5 >= 61
-#    define BOOST_PP_ITERATION_5 61
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 60 && BOOST_PP_ITERATION_START_5 >= 60
-#    define BOOST_PP_ITERATION_5 60
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 59 && BOOST_PP_ITERATION_START_5 >= 59
-#    define BOOST_PP_ITERATION_5 59
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 58 && BOOST_PP_ITERATION_START_5 >= 58
-#    define BOOST_PP_ITERATION_5 58
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 57 && BOOST_PP_ITERATION_START_5 >= 57
-#    define BOOST_PP_ITERATION_5 57
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 56 && BOOST_PP_ITERATION_START_5 >= 56
-#    define BOOST_PP_ITERATION_5 56
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 55 && BOOST_PP_ITERATION_START_5 >= 55
-#    define BOOST_PP_ITERATION_5 55
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 54 && BOOST_PP_ITERATION_START_5 >= 54
-#    define BOOST_PP_ITERATION_5 54
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 53 && BOOST_PP_ITERATION_START_5 >= 53
-#    define BOOST_PP_ITERATION_5 53
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 52 && BOOST_PP_ITERATION_START_5 >= 52
-#    define BOOST_PP_ITERATION_5 52
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 51 && BOOST_PP_ITERATION_START_5 >= 51
-#    define BOOST_PP_ITERATION_5 51
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 50 && BOOST_PP_ITERATION_START_5 >= 50
-#    define BOOST_PP_ITERATION_5 50
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 49 && BOOST_PP_ITERATION_START_5 >= 49
-#    define BOOST_PP_ITERATION_5 49
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 48 && BOOST_PP_ITERATION_START_5 >= 48
-#    define BOOST_PP_ITERATION_5 48
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 47 && BOOST_PP_ITERATION_START_5 >= 47
-#    define BOOST_PP_ITERATION_5 47
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 46 && BOOST_PP_ITERATION_START_5 >= 46
-#    define BOOST_PP_ITERATION_5 46
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 45 && BOOST_PP_ITERATION_START_5 >= 45
-#    define BOOST_PP_ITERATION_5 45
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 44 && BOOST_PP_ITERATION_START_5 >= 44
-#    define BOOST_PP_ITERATION_5 44
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 43 && BOOST_PP_ITERATION_START_5 >= 43
-#    define BOOST_PP_ITERATION_5 43
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 42 && BOOST_PP_ITERATION_START_5 >= 42
-#    define BOOST_PP_ITERATION_5 42
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 41 && BOOST_PP_ITERATION_START_5 >= 41
-#    define BOOST_PP_ITERATION_5 41
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 40 && BOOST_PP_ITERATION_START_5 >= 40
-#    define BOOST_PP_ITERATION_5 40
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 39 && BOOST_PP_ITERATION_START_5 >= 39
-#    define BOOST_PP_ITERATION_5 39
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 38 && BOOST_PP_ITERATION_START_5 >= 38
-#    define BOOST_PP_ITERATION_5 38
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 37 && BOOST_PP_ITERATION_START_5 >= 37
-#    define BOOST_PP_ITERATION_5 37
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 36 && BOOST_PP_ITERATION_START_5 >= 36
-#    define BOOST_PP_ITERATION_5 36
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 35 && BOOST_PP_ITERATION_START_5 >= 35
-#    define BOOST_PP_ITERATION_5 35
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 34 && BOOST_PP_ITERATION_START_5 >= 34
-#    define BOOST_PP_ITERATION_5 34
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 33 && BOOST_PP_ITERATION_START_5 >= 33
-#    define BOOST_PP_ITERATION_5 33
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 32 && BOOST_PP_ITERATION_START_5 >= 32
-#    define BOOST_PP_ITERATION_5 32
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 31 && BOOST_PP_ITERATION_START_5 >= 31
-#    define BOOST_PP_ITERATION_5 31
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 30 && BOOST_PP_ITERATION_START_5 >= 30
-#    define BOOST_PP_ITERATION_5 30
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 29 && BOOST_PP_ITERATION_START_5 >= 29
-#    define BOOST_PP_ITERATION_5 29
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 28 && BOOST_PP_ITERATION_START_5 >= 28
-#    define BOOST_PP_ITERATION_5 28
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 27 && BOOST_PP_ITERATION_START_5 >= 27
-#    define BOOST_PP_ITERATION_5 27
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 26 && BOOST_PP_ITERATION_START_5 >= 26
-#    define BOOST_PP_ITERATION_5 26
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 25 && BOOST_PP_ITERATION_START_5 >= 25
-#    define BOOST_PP_ITERATION_5 25
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 24 && BOOST_PP_ITERATION_START_5 >= 24
-#    define BOOST_PP_ITERATION_5 24
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 23 && BOOST_PP_ITERATION_START_5 >= 23
-#    define BOOST_PP_ITERATION_5 23
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 22 && BOOST_PP_ITERATION_START_5 >= 22
-#    define BOOST_PP_ITERATION_5 22
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 21 && BOOST_PP_ITERATION_START_5 >= 21
-#    define BOOST_PP_ITERATION_5 21
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 20 && BOOST_PP_ITERATION_START_5 >= 20
-#    define BOOST_PP_ITERATION_5 20
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 19 && BOOST_PP_ITERATION_START_5 >= 19
-#    define BOOST_PP_ITERATION_5 19
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 18 && BOOST_PP_ITERATION_START_5 >= 18
-#    define BOOST_PP_ITERATION_5 18
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 17 && BOOST_PP_ITERATION_START_5 >= 17
-#    define BOOST_PP_ITERATION_5 17
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 16 && BOOST_PP_ITERATION_START_5 >= 16
-#    define BOOST_PP_ITERATION_5 16
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 15 && BOOST_PP_ITERATION_START_5 >= 15
-#    define BOOST_PP_ITERATION_5 15
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 14 && BOOST_PP_ITERATION_START_5 >= 14
-#    define BOOST_PP_ITERATION_5 14
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 13 && BOOST_PP_ITERATION_START_5 >= 13
-#    define BOOST_PP_ITERATION_5 13
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 12 && BOOST_PP_ITERATION_START_5 >= 12
-#    define BOOST_PP_ITERATION_5 12
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 11 && BOOST_PP_ITERATION_START_5 >= 11
-#    define BOOST_PP_ITERATION_5 11
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 10 && BOOST_PP_ITERATION_START_5 >= 10
-#    define BOOST_PP_ITERATION_5 10
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 9 && BOOST_PP_ITERATION_START_5 >= 9
-#    define BOOST_PP_ITERATION_5 9
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 8 && BOOST_PP_ITERATION_START_5 >= 8
-#    define BOOST_PP_ITERATION_5 8
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 7 && BOOST_PP_ITERATION_START_5 >= 7
-#    define BOOST_PP_ITERATION_5 7
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 6 && BOOST_PP_ITERATION_START_5 >= 6
-#    define BOOST_PP_ITERATION_5 6
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 5 && BOOST_PP_ITERATION_START_5 >= 5
-#    define BOOST_PP_ITERATION_5 5
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 4 && BOOST_PP_ITERATION_START_5 >= 4
-#    define BOOST_PP_ITERATION_5 4
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 3 && BOOST_PP_ITERATION_START_5 >= 3
-#    define BOOST_PP_ITERATION_5 3
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 2 && BOOST_PP_ITERATION_START_5 >= 2
-#    define BOOST_PP_ITERATION_5 2
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 1 && BOOST_PP_ITERATION_START_5 >= 1
-#    define BOOST_PP_ITERATION_5 1
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
-# if BOOST_PP_ITERATION_FINISH_5 <= 0 && BOOST_PP_ITERATION_START_5 >= 0
-#    define BOOST_PP_ITERATION_5 0
-#    include BOOST_PP_FILENAME_5
-#    undef BOOST_PP_ITERATION_5
-# endif
diff --git a/boost/preprocessor/iteration/detail/local.hpp b/boost/preprocessor/iteration/detail/local.hpp
deleted file mode 100644
index ccddd5e..0000000
--- a/boost/preprocessor/iteration/detail/local.hpp
+++ /dev/null
@@ -1,812 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# if !defined(BOOST_PP_LOCAL_LIMITS)
-#    error BOOST_PP_ERROR:  local iteration boundaries are not defined
-# elif !defined(BOOST_PP_LOCAL_MACRO)
-#    error BOOST_PP_ERROR:  local iteration target macro is not defined
-# else
-#    if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#        define BOOST_PP_LOCAL_S BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_LOCAL_LIMITS)
-#        define BOOST_PP_LOCAL_F BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_LOCAL_LIMITS)
-#    else
-#        define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_LOCAL_LIMITS)
-#        include <boost/preprocessor/iteration/detail/start.hpp>
-#        define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_LOCAL_LIMITS)
-#        include <boost/preprocessor/iteration/detail/finish.hpp>
-#        define BOOST_PP_LOCAL_S BOOST_PP_LOCAL_SE()
-#        define BOOST_PP_LOCAL_F BOOST_PP_LOCAL_FE()
-#    endif
-# endif
-#
-# if (BOOST_PP_LOCAL_S) > (BOOST_PP_LOCAL_F)
-#    include <boost/preprocessor/iteration/detail/rlocal.hpp>
-# else
-#    if BOOST_PP_LOCAL_C(0)
-        BOOST_PP_LOCAL_MACRO(0)
-#    endif
-#    if BOOST_PP_LOCAL_C(1)
-        BOOST_PP_LOCAL_MACRO(1)
-#    endif
-#    if BOOST_PP_LOCAL_C(2)
-        BOOST_PP_LOCAL_MACRO(2)
-#    endif
-#    if BOOST_PP_LOCAL_C(3)
-        BOOST_PP_LOCAL_MACRO(3)
-#    endif
-#    if BOOST_PP_LOCAL_C(4)
-        BOOST_PP_LOCAL_MACRO(4)
-#    endif
-#    if BOOST_PP_LOCAL_C(5)
-        BOOST_PP_LOCAL_MACRO(5)
-#    endif
-#    if BOOST_PP_LOCAL_C(6)
-        BOOST_PP_LOCAL_MACRO(6)
-#    endif
-#    if BOOST_PP_LOCAL_C(7)
-        BOOST_PP_LOCAL_MACRO(7)
-#    endif
-#    if BOOST_PP_LOCAL_C(8)
-        BOOST_PP_LOCAL_MACRO(8)
-#    endif
-#    if BOOST_PP_LOCAL_C(9)
-        BOOST_PP_LOCAL_MACRO(9)
-#    endif
-#    if BOOST_PP_LOCAL_C(10)
-        BOOST_PP_LOCAL_MACRO(10)
-#    endif
-#    if BOOST_PP_LOCAL_C(11)
-        BOOST_PP_LOCAL_MACRO(11)
-#    endif
-#    if BOOST_PP_LOCAL_C(12)
-        BOOST_PP_LOCAL_MACRO(12)
-#    endif
-#    if BOOST_PP_LOCAL_C(13)
-        BOOST_PP_LOCAL_MACRO(13)
-#    endif
-#    if BOOST_PP_LOCAL_C(14)
-        BOOST_PP_LOCAL_MACRO(14)
-#    endif
-#    if BOOST_PP_LOCAL_C(15)
-        BOOST_PP_LOCAL_MACRO(15)
-#    endif
-#    if BOOST_PP_LOCAL_C(16)
-        BOOST_PP_LOCAL_MACRO(16)
-#    endif
-#    if BOOST_PP_LOCAL_C(17)
-        BOOST_PP_LOCAL_MACRO(17)
-#    endif
-#    if BOOST_PP_LOCAL_C(18)
-        BOOST_PP_LOCAL_MACRO(18)
-#    endif
-#    if BOOST_PP_LOCAL_C(19)
-        BOOST_PP_LOCAL_MACRO(19)
-#    endif
-#    if BOOST_PP_LOCAL_C(20)
-        BOOST_PP_LOCAL_MACRO(20)
-#    endif
-#    if BOOST_PP_LOCAL_C(21)
-        BOOST_PP_LOCAL_MACRO(21)
-#    endif
-#    if BOOST_PP_LOCAL_C(22)
-        BOOST_PP_LOCAL_MACRO(22)
-#    endif
-#    if BOOST_PP_LOCAL_C(23)
-        BOOST_PP_LOCAL_MACRO(23)
-#    endif
-#    if BOOST_PP_LOCAL_C(24)
-        BOOST_PP_LOCAL_MACRO(24)
-#    endif
-#    if BOOST_PP_LOCAL_C(25)
-        BOOST_PP_LOCAL_MACRO(25)
-#    endif
-#    if BOOST_PP_LOCAL_C(26)
-        BOOST_PP_LOCAL_MACRO(26)
-#    endif
-#    if BOOST_PP_LOCAL_C(27)
-        BOOST_PP_LOCAL_MACRO(27)
-#    endif
-#    if BOOST_PP_LOCAL_C(28)
-        BOOST_PP_LOCAL_MACRO(28)
-#    endif
-#    if BOOST_PP_LOCAL_C(29)
-        BOOST_PP_LOCAL_MACRO(29)
-#    endif
-#    if BOOST_PP_LOCAL_C(30)
-        BOOST_PP_LOCAL_MACRO(30)
-#    endif
-#    if BOOST_PP_LOCAL_C(31)
-        BOOST_PP_LOCAL_MACRO(31)
-#    endif
-#    if BOOST_PP_LOCAL_C(32)
-        BOOST_PP_LOCAL_MACRO(32)
-#    endif
-#    if BOOST_PP_LOCAL_C(33)
-        BOOST_PP_LOCAL_MACRO(33)
-#    endif
-#    if BOOST_PP_LOCAL_C(34)
-        BOOST_PP_LOCAL_MACRO(34)
-#    endif
-#    if BOOST_PP_LOCAL_C(35)
-        BOOST_PP_LOCAL_MACRO(35)
-#    endif
-#    if BOOST_PP_LOCAL_C(36)
-        BOOST_PP_LOCAL_MACRO(36)
-#    endif
-#    if BOOST_PP_LOCAL_C(37)
-        BOOST_PP_LOCAL_MACRO(37)
-#    endif
-#    if BOOST_PP_LOCAL_C(38)
-        BOOST_PP_LOCAL_MACRO(38)
-#    endif
-#    if BOOST_PP_LOCAL_C(39)
-        BOOST_PP_LOCAL_MACRO(39)
-#    endif
-#    if BOOST_PP_LOCAL_C(40)
-        BOOST_PP_LOCAL_MACRO(40)
-#    endif
-#    if BOOST_PP_LOCAL_C(41)
-        BOOST_PP_LOCAL_MACRO(41)
-#    endif
-#    if BOOST_PP_LOCAL_C(42)
-        BOOST_PP_LOCAL_MACRO(42)
-#    endif
-#    if BOOST_PP_LOCAL_C(43)
-        BOOST_PP_LOCAL_MACRO(43)
-#    endif
-#    if BOOST_PP_LOCAL_C(44)
-        BOOST_PP_LOCAL_MACRO(44)
-#    endif
-#    if BOOST_PP_LOCAL_C(45)
-        BOOST_PP_LOCAL_MACRO(45)
-#    endif
-#    if BOOST_PP_LOCAL_C(46)
-        BOOST_PP_LOCAL_MACRO(46)
-#    endif
-#    if BOOST_PP_LOCAL_C(47)
-        BOOST_PP_LOCAL_MACRO(47)
-#    endif
-#    if BOOST_PP_LOCAL_C(48)
-        BOOST_PP_LOCAL_MACRO(48)
-#    endif
-#    if BOOST_PP_LOCAL_C(49)
-        BOOST_PP_LOCAL_MACRO(49)
-#    endif
-#    if BOOST_PP_LOCAL_C(50)
-        BOOST_PP_LOCAL_MACRO(50)
-#    endif
-#    if BOOST_PP_LOCAL_C(51)
-        BOOST_PP_LOCAL_MACRO(51)
-#    endif
-#    if BOOST_PP_LOCAL_C(52)
-        BOOST_PP_LOCAL_MACRO(52)
-#    endif
-#    if BOOST_PP_LOCAL_C(53)
-        BOOST_PP_LOCAL_MACRO(53)
-#    endif
-#    if BOOST_PP_LOCAL_C(54)
-        BOOST_PP_LOCAL_MACRO(54)
-#    endif
-#    if BOOST_PP_LOCAL_C(55)
-        BOOST_PP_LOCAL_MACRO(55)
-#    endif
-#    if BOOST_PP_LOCAL_C(56)
-        BOOST_PP_LOCAL_MACRO(56)
-#    endif
-#    if BOOST_PP_LOCAL_C(57)
-        BOOST_PP_LOCAL_MACRO(57)
-#    endif
-#    if BOOST_PP_LOCAL_C(58)
-        BOOST_PP_LOCAL_MACRO(58)
-#    endif
-#    if BOOST_PP_LOCAL_C(59)
-        BOOST_PP_LOCAL_MACRO(59)
-#    endif
-#    if BOOST_PP_LOCAL_C(60)
-        BOOST_PP_LOCAL_MACRO(60)
-#    endif
-#    if BOOST_PP_LOCAL_C(61)
-        BOOST_PP_LOCAL_MACRO(61)
-#    endif
-#    if BOOST_PP_LOCAL_C(62)
-        BOOST_PP_LOCAL_MACRO(62)
-#    endif
-#    if BOOST_PP_LOCAL_C(63)
-        BOOST_PP_LOCAL_MACRO(63)
-#    endif
-#    if BOOST_PP_LOCAL_C(64)
-        BOOST_PP_LOCAL_MACRO(64)
-#    endif
-#    if BOOST_PP_LOCAL_C(65)
-        BOOST_PP_LOCAL_MACRO(65)
-#    endif
-#    if BOOST_PP_LOCAL_C(66)
-        BOOST_PP_LOCAL_MACRO(66)
-#    endif
-#    if BOOST_PP_LOCAL_C(67)
-        BOOST_PP_LOCAL_MACRO(67)
-#    endif
-#    if BOOST_PP_LOCAL_C(68)
-        BOOST_PP_LOCAL_MACRO(68)
-#    endif
-#    if BOOST_PP_LOCAL_C(69)
-        BOOST_PP_LOCAL_MACRO(69)
-#    endif
-#    if BOOST_PP_LOCAL_C(70)
-        BOOST_PP_LOCAL_MACRO(70)
-#    endif
-#    if BOOST_PP_LOCAL_C(71)
-        BOOST_PP_LOCAL_MACRO(71)
-#    endif
-#    if BOOST_PP_LOCAL_C(72)
-        BOOST_PP_LOCAL_MACRO(72)
-#    endif
-#    if BOOST_PP_LOCAL_C(73)
-        BOOST_PP_LOCAL_MACRO(73)
-#    endif
-#    if BOOST_PP_LOCAL_C(74)
-        BOOST_PP_LOCAL_MACRO(74)
-#    endif
-#    if BOOST_PP_LOCAL_C(75)
-        BOOST_PP_LOCAL_MACRO(75)
-#    endif
-#    if BOOST_PP_LOCAL_C(76)
-        BOOST_PP_LOCAL_MACRO(76)
-#    endif
-#    if BOOST_PP_LOCAL_C(77)
-        BOOST_PP_LOCAL_MACRO(77)
-#    endif
-#    if BOOST_PP_LOCAL_C(78)
-        BOOST_PP_LOCAL_MACRO(78)
-#    endif
-#    if BOOST_PP_LOCAL_C(79)
-        BOOST_PP_LOCAL_MACRO(79)
-#    endif
-#    if BOOST_PP_LOCAL_C(80)
-        BOOST_PP_LOCAL_MACRO(80)
-#    endif
-#    if BOOST_PP_LOCAL_C(81)
-        BOOST_PP_LOCAL_MACRO(81)
-#    endif
-#    if BOOST_PP_LOCAL_C(82)
-        BOOST_PP_LOCAL_MACRO(82)
-#    endif
-#    if BOOST_PP_LOCAL_C(83)
-        BOOST_PP_LOCAL_MACRO(83)
-#    endif
-#    if BOOST_PP_LOCAL_C(84)
-        BOOST_PP_LOCAL_MACRO(84)
-#    endif
-#    if BOOST_PP_LOCAL_C(85)
-        BOOST_PP_LOCAL_MACRO(85)
-#    endif
-#    if BOOST_PP_LOCAL_C(86)
-        BOOST_PP_LOCAL_MACRO(86)
-#    endif
-#    if BOOST_PP_LOCAL_C(87)
-        BOOST_PP_LOCAL_MACRO(87)
-#    endif
-#    if BOOST_PP_LOCAL_C(88)
-        BOOST_PP_LOCAL_MACRO(88)
-#    endif
-#    if BOOST_PP_LOCAL_C(89)
-        BOOST_PP_LOCAL_MACRO(89)
-#    endif
-#    if BOOST_PP_LOCAL_C(90)
-        BOOST_PP_LOCAL_MACRO(90)
-#    endif
-#    if BOOST_PP_LOCAL_C(91)
-        BOOST_PP_LOCAL_MACRO(91)
-#    endif
-#    if BOOST_PP_LOCAL_C(92)
-        BOOST_PP_LOCAL_MACRO(92)
-#    endif
-#    if BOOST_PP_LOCAL_C(93)
-        BOOST_PP_LOCAL_MACRO(93)
-#    endif
-#    if BOOST_PP_LOCAL_C(94)
-        BOOST_PP_LOCAL_MACRO(94)
-#    endif
-#    if BOOST_PP_LOCAL_C(95)
-        BOOST_PP_LOCAL_MACRO(95)
-#    endif
-#    if BOOST_PP_LOCAL_C(96)
-        BOOST_PP_LOCAL_MACRO(96)
-#    endif
-#    if BOOST_PP_LOCAL_C(97)
-        BOOST_PP_LOCAL_MACRO(97)
-#    endif
-#    if BOOST_PP_LOCAL_C(98)
-        BOOST_PP_LOCAL_MACRO(98)
-#    endif
-#    if BOOST_PP_LOCAL_C(99)
-        BOOST_PP_LOCAL_MACRO(99)
-#    endif
-#    if BOOST_PP_LOCAL_C(100)
-        BOOST_PP_LOCAL_MACRO(100)
-#    endif
-#    if BOOST_PP_LOCAL_C(101)
-        BOOST_PP_LOCAL_MACRO(101)
-#    endif
-#    if BOOST_PP_LOCAL_C(102)
-        BOOST_PP_LOCAL_MACRO(102)
-#    endif
-#    if BOOST_PP_LOCAL_C(103)
-        BOOST_PP_LOCAL_MACRO(103)
-#    endif
-#    if BOOST_PP_LOCAL_C(104)
-        BOOST_PP_LOCAL_MACRO(104)
-#    endif
-#    if BOOST_PP_LOCAL_C(105)
-        BOOST_PP_LOCAL_MACRO(105)
-#    endif
-#    if BOOST_PP_LOCAL_C(106)
-        BOOST_PP_LOCAL_MACRO(106)
-#    endif
-#    if BOOST_PP_LOCAL_C(107)
-        BOOST_PP_LOCAL_MACRO(107)
-#    endif
-#    if BOOST_PP_LOCAL_C(108)
-        BOOST_PP_LOCAL_MACRO(108)
-#    endif
-#    if BOOST_PP_LOCAL_C(109)
-        BOOST_PP_LOCAL_MACRO(109)
-#    endif
-#    if BOOST_PP_LOCAL_C(110)
-        BOOST_PP_LOCAL_MACRO(110)
-#    endif
-#    if BOOST_PP_LOCAL_C(111)
-        BOOST_PP_LOCAL_MACRO(111)
-#    endif
-#    if BOOST_PP_LOCAL_C(112)
-        BOOST_PP_LOCAL_MACRO(112)
-#    endif
-#    if BOOST_PP_LOCAL_C(113)
-        BOOST_PP_LOCAL_MACRO(113)
-#    endif
-#    if BOOST_PP_LOCAL_C(114)
-        BOOST_PP_LOCAL_MACRO(114)
-#    endif
-#    if BOOST_PP_LOCAL_C(115)
-        BOOST_PP_LOCAL_MACRO(115)
-#    endif
-#    if BOOST_PP_LOCAL_C(116)
-        BOOST_PP_LOCAL_MACRO(116)
-#    endif
-#    if BOOST_PP_LOCAL_C(117)
-        BOOST_PP_LOCAL_MACRO(117)
-#    endif
-#    if BOOST_PP_LOCAL_C(118)
-        BOOST_PP_LOCAL_MACRO(118)
-#    endif
-#    if BOOST_PP_LOCAL_C(119)
-        BOOST_PP_LOCAL_MACRO(119)
-#    endif
-#    if BOOST_PP_LOCAL_C(120)
-        BOOST_PP_LOCAL_MACRO(120)
-#    endif
-#    if BOOST_PP_LOCAL_C(121)
-        BOOST_PP_LOCAL_MACRO(121)
-#    endif
-#    if BOOST_PP_LOCAL_C(122)
-        BOOST_PP_LOCAL_MACRO(122)
-#    endif
-#    if BOOST_PP_LOCAL_C(123)
-        BOOST_PP_LOCAL_MACRO(123)
-#    endif
-#    if BOOST_PP_LOCAL_C(124)
-        BOOST_PP_LOCAL_MACRO(124)
-#    endif
-#    if BOOST_PP_LOCAL_C(125)
-        BOOST_PP_LOCAL_MACRO(125)
-#    endif
-#    if BOOST_PP_LOCAL_C(126)
-        BOOST_PP_LOCAL_MACRO(126)
-#    endif
-#    if BOOST_PP_LOCAL_C(127)
-        BOOST_PP_LOCAL_MACRO(127)
-#    endif
-#    if BOOST_PP_LOCAL_C(128)
-        BOOST_PP_LOCAL_MACRO(128)
-#    endif
-#    if BOOST_PP_LOCAL_C(129)
-        BOOST_PP_LOCAL_MACRO(129)
-#    endif
-#    if BOOST_PP_LOCAL_C(130)
-        BOOST_PP_LOCAL_MACRO(130)
-#    endif
-#    if BOOST_PP_LOCAL_C(131)
-        BOOST_PP_LOCAL_MACRO(131)
-#    endif
-#    if BOOST_PP_LOCAL_C(132)
-        BOOST_PP_LOCAL_MACRO(132)
-#    endif
-#    if BOOST_PP_LOCAL_C(133)
-        BOOST_PP_LOCAL_MACRO(133)
-#    endif
-#    if BOOST_PP_LOCAL_C(134)
-        BOOST_PP_LOCAL_MACRO(134)
-#    endif
-#    if BOOST_PP_LOCAL_C(135)
-        BOOST_PP_LOCAL_MACRO(135)
-#    endif
-#    if BOOST_PP_LOCAL_C(136)
-        BOOST_PP_LOCAL_MACRO(136)
-#    endif
-#    if BOOST_PP_LOCAL_C(137)
-        BOOST_PP_LOCAL_MACRO(137)
-#    endif
-#    if BOOST_PP_LOCAL_C(138)
-        BOOST_PP_LOCAL_MACRO(138)
-#    endif
-#    if BOOST_PP_LOCAL_C(139)
-        BOOST_PP_LOCAL_MACRO(139)
-#    endif
-#    if BOOST_PP_LOCAL_C(140)
-        BOOST_PP_LOCAL_MACRO(140)
-#    endif
-#    if BOOST_PP_LOCAL_C(141)
-        BOOST_PP_LOCAL_MACRO(141)
-#    endif
-#    if BOOST_PP_LOCAL_C(142)
-        BOOST_PP_LOCAL_MACRO(142)
-#    endif
-#    if BOOST_PP_LOCAL_C(143)
-        BOOST_PP_LOCAL_MACRO(143)
-#    endif
-#    if BOOST_PP_LOCAL_C(144)
-        BOOST_PP_LOCAL_MACRO(144)
-#    endif
-#    if BOOST_PP_LOCAL_C(145)
-        BOOST_PP_LOCAL_MACRO(145)
-#    endif
-#    if BOOST_PP_LOCAL_C(146)
-        BOOST_PP_LOCAL_MACRO(146)
-#    endif
-#    if BOOST_PP_LOCAL_C(147)
-        BOOST_PP_LOCAL_MACRO(147)
-#    endif
-#    if BOOST_PP_LOCAL_C(148)
-        BOOST_PP_LOCAL_MACRO(148)
-#    endif
-#    if BOOST_PP_LOCAL_C(149)
-        BOOST_PP_LOCAL_MACRO(149)
-#    endif
-#    if BOOST_PP_LOCAL_C(150)
-        BOOST_PP_LOCAL_MACRO(150)
-#    endif
-#    if BOOST_PP_LOCAL_C(151)
-        BOOST_PP_LOCAL_MACRO(151)
-#    endif
-#    if BOOST_PP_LOCAL_C(152)
-        BOOST_PP_LOCAL_MACRO(152)
-#    endif
-#    if BOOST_PP_LOCAL_C(153)
-        BOOST_PP_LOCAL_MACRO(153)
-#    endif
-#    if BOOST_PP_LOCAL_C(154)
-        BOOST_PP_LOCAL_MACRO(154)
-#    endif
-#    if BOOST_PP_LOCAL_C(155)
-        BOOST_PP_LOCAL_MACRO(155)
-#    endif
-#    if BOOST_PP_LOCAL_C(156)
-        BOOST_PP_LOCAL_MACRO(156)
-#    endif
-#    if BOOST_PP_LOCAL_C(157)
-        BOOST_PP_LOCAL_MACRO(157)
-#    endif
-#    if BOOST_PP_LOCAL_C(158)
-        BOOST_PP_LOCAL_MACRO(158)
-#    endif
-#    if BOOST_PP_LOCAL_C(159)
-        BOOST_PP_LOCAL_MACRO(159)
-#    endif
-#    if BOOST_PP_LOCAL_C(160)
-        BOOST_PP_LOCAL_MACRO(160)
-#    endif
-#    if BOOST_PP_LOCAL_C(161)
-        BOOST_PP_LOCAL_MACRO(161)
-#    endif
-#    if BOOST_PP_LOCAL_C(162)
-        BOOST_PP_LOCAL_MACRO(162)
-#    endif
-#    if BOOST_PP_LOCAL_C(163)
-        BOOST_PP_LOCAL_MACRO(163)
-#    endif
-#    if BOOST_PP_LOCAL_C(164)
-        BOOST_PP_LOCAL_MACRO(164)
-#    endif
-#    if BOOST_PP_LOCAL_C(165)
-        BOOST_PP_LOCAL_MACRO(165)
-#    endif
-#    if BOOST_PP_LOCAL_C(166)
-        BOOST_PP_LOCAL_MACRO(166)
-#    endif
-#    if BOOST_PP_LOCAL_C(167)
-        BOOST_PP_LOCAL_MACRO(167)
-#    endif
-#    if BOOST_PP_LOCAL_C(168)
-        BOOST_PP_LOCAL_MACRO(168)
-#    endif
-#    if BOOST_PP_LOCAL_C(169)
-        BOOST_PP_LOCAL_MACRO(169)
-#    endif
-#    if BOOST_PP_LOCAL_C(170)
-        BOOST_PP_LOCAL_MACRO(170)
-#    endif
-#    if BOOST_PP_LOCAL_C(171)
-        BOOST_PP_LOCAL_MACRO(171)
-#    endif
-#    if BOOST_PP_LOCAL_C(172)
-        BOOST_PP_LOCAL_MACRO(172)
-#    endif
-#    if BOOST_PP_LOCAL_C(173)
-        BOOST_PP_LOCAL_MACRO(173)
-#    endif
-#    if BOOST_PP_LOCAL_C(174)
-        BOOST_PP_LOCAL_MACRO(174)
-#    endif
-#    if BOOST_PP_LOCAL_C(175)
-        BOOST_PP_LOCAL_MACRO(175)
-#    endif
-#    if BOOST_PP_LOCAL_C(176)
-        BOOST_PP_LOCAL_MACRO(176)
-#    endif
-#    if BOOST_PP_LOCAL_C(177)
-        BOOST_PP_LOCAL_MACRO(177)
-#    endif
-#    if BOOST_PP_LOCAL_C(178)
-        BOOST_PP_LOCAL_MACRO(178)
-#    endif
-#    if BOOST_PP_LOCAL_C(179)
-        BOOST_PP_LOCAL_MACRO(179)
-#    endif
-#    if BOOST_PP_LOCAL_C(180)
-        BOOST_PP_LOCAL_MACRO(180)
-#    endif
-#    if BOOST_PP_LOCAL_C(181)
-        BOOST_PP_LOCAL_MACRO(181)
-#    endif
-#    if BOOST_PP_LOCAL_C(182)
-        BOOST_PP_LOCAL_MACRO(182)
-#    endif
-#    if BOOST_PP_LOCAL_C(183)
-        BOOST_PP_LOCAL_MACRO(183)
-#    endif
-#    if BOOST_PP_LOCAL_C(184)
-        BOOST_PP_LOCAL_MACRO(184)
-#    endif
-#    if BOOST_PP_LOCAL_C(185)
-        BOOST_PP_LOCAL_MACRO(185)
-#    endif
-#    if BOOST_PP_LOCAL_C(186)
-        BOOST_PP_LOCAL_MACRO(186)
-#    endif
-#    if BOOST_PP_LOCAL_C(187)
-        BOOST_PP_LOCAL_MACRO(187)
-#    endif
-#    if BOOST_PP_LOCAL_C(188)
-        BOOST_PP_LOCAL_MACRO(188)
-#    endif
-#    if BOOST_PP_LOCAL_C(189)
-        BOOST_PP_LOCAL_MACRO(189)
-#    endif
-#    if BOOST_PP_LOCAL_C(190)
-        BOOST_PP_LOCAL_MACRO(190)
-#    endif
-#    if BOOST_PP_LOCAL_C(191)
-        BOOST_PP_LOCAL_MACRO(191)
-#    endif
-#    if BOOST_PP_LOCAL_C(192)
-        BOOST_PP_LOCAL_MACRO(192)
-#    endif
-#    if BOOST_PP_LOCAL_C(193)
-        BOOST_PP_LOCAL_MACRO(193)
-#    endif
-#    if BOOST_PP_LOCAL_C(194)
-        BOOST_PP_LOCAL_MACRO(194)
-#    endif
-#    if BOOST_PP_LOCAL_C(195)
-        BOOST_PP_LOCAL_MACRO(195)
-#    endif
-#    if BOOST_PP_LOCAL_C(196)
-        BOOST_PP_LOCAL_MACRO(196)
-#    endif
-#    if BOOST_PP_LOCAL_C(197)
-        BOOST_PP_LOCAL_MACRO(197)
-#    endif
-#    if BOOST_PP_LOCAL_C(198)
-        BOOST_PP_LOCAL_MACRO(198)
-#    endif
-#    if BOOST_PP_LOCAL_C(199)
-        BOOST_PP_LOCAL_MACRO(199)
-#    endif
-#    if BOOST_PP_LOCAL_C(200)
-        BOOST_PP_LOCAL_MACRO(200)
-#    endif
-#    if BOOST_PP_LOCAL_C(201)
-        BOOST_PP_LOCAL_MACRO(201)
-#    endif
-#    if BOOST_PP_LOCAL_C(202)
-        BOOST_PP_LOCAL_MACRO(202)
-#    endif
-#    if BOOST_PP_LOCAL_C(203)
-        BOOST_PP_LOCAL_MACRO(203)
-#    endif
-#    if BOOST_PP_LOCAL_C(204)
-        BOOST_PP_LOCAL_MACRO(204)
-#    endif
-#    if BOOST_PP_LOCAL_C(205)
-        BOOST_PP_LOCAL_MACRO(205)
-#    endif
-#    if BOOST_PP_LOCAL_C(206)
-        BOOST_PP_LOCAL_MACRO(206)
-#    endif
-#    if BOOST_PP_LOCAL_C(207)
-        BOOST_PP_LOCAL_MACRO(207)
-#    endif
-#    if BOOST_PP_LOCAL_C(208)
-        BOOST_PP_LOCAL_MACRO(208)
-#    endif
-#    if BOOST_PP_LOCAL_C(209)
-        BOOST_PP_LOCAL_MACRO(209)
-#    endif
-#    if BOOST_PP_LOCAL_C(210)
-        BOOST_PP_LOCAL_MACRO(210)
-#    endif
-#    if BOOST_PP_LOCAL_C(211)
-        BOOST_PP_LOCAL_MACRO(211)
-#    endif
-#    if BOOST_PP_LOCAL_C(212)
-        BOOST_PP_LOCAL_MACRO(212)
-#    endif
-#    if BOOST_PP_LOCAL_C(213)
-        BOOST_PP_LOCAL_MACRO(213)
-#    endif
-#    if BOOST_PP_LOCAL_C(214)
-        BOOST_PP_LOCAL_MACRO(214)
-#    endif
-#    if BOOST_PP_LOCAL_C(215)
-        BOOST_PP_LOCAL_MACRO(215)
-#    endif
-#    if BOOST_PP_LOCAL_C(216)
-        BOOST_PP_LOCAL_MACRO(216)
-#    endif
-#    if BOOST_PP_LOCAL_C(217)
-        BOOST_PP_LOCAL_MACRO(217)
-#    endif
-#    if BOOST_PP_LOCAL_C(218)
-        BOOST_PP_LOCAL_MACRO(218)
-#    endif
-#    if BOOST_PP_LOCAL_C(219)
-        BOOST_PP_LOCAL_MACRO(219)
-#    endif
-#    if BOOST_PP_LOCAL_C(220)
-        BOOST_PP_LOCAL_MACRO(220)
-#    endif
-#    if BOOST_PP_LOCAL_C(221)
-        BOOST_PP_LOCAL_MACRO(221)
-#    endif
-#    if BOOST_PP_LOCAL_C(222)
-        BOOST_PP_LOCAL_MACRO(222)
-#    endif
-#    if BOOST_PP_LOCAL_C(223)
-        BOOST_PP_LOCAL_MACRO(223)
-#    endif
-#    if BOOST_PP_LOCAL_C(224)
-        BOOST_PP_LOCAL_MACRO(224)
-#    endif
-#    if BOOST_PP_LOCAL_C(225)
-        BOOST_PP_LOCAL_MACRO(225)
-#    endif
-#    if BOOST_PP_LOCAL_C(226)
-        BOOST_PP_LOCAL_MACRO(226)
-#    endif
-#    if BOOST_PP_LOCAL_C(227)
-        BOOST_PP_LOCAL_MACRO(227)
-#    endif
-#    if BOOST_PP_LOCAL_C(228)
-        BOOST_PP_LOCAL_MACRO(228)
-#    endif
-#    if BOOST_PP_LOCAL_C(229)
-        BOOST_PP_LOCAL_MACRO(229)
-#    endif
-#    if BOOST_PP_LOCAL_C(230)
-        BOOST_PP_LOCAL_MACRO(230)
-#    endif
-#    if BOOST_PP_LOCAL_C(231)
-        BOOST_PP_LOCAL_MACRO(231)
-#    endif
-#    if BOOST_PP_LOCAL_C(232)
-        BOOST_PP_LOCAL_MACRO(232)
-#    endif
-#    if BOOST_PP_LOCAL_C(233)
-        BOOST_PP_LOCAL_MACRO(233)
-#    endif
-#    if BOOST_PP_LOCAL_C(234)
-        BOOST_PP_LOCAL_MACRO(234)
-#    endif
-#    if BOOST_PP_LOCAL_C(235)
-        BOOST_PP_LOCAL_MACRO(235)
-#    endif
-#    if BOOST_PP_LOCAL_C(236)
-        BOOST_PP_LOCAL_MACRO(236)
-#    endif
-
-#    if BOOST_PP_LOCAL_C(237)
-        BOOST_PP_LOCAL_MACRO(237)
-#    endif
-#    if BOOST_PP_LOCAL_C(238)
-        BOOST_PP_LOCAL_MACRO(238)
-#    endif
-#    if BOOST_PP_LOCAL_C(239)
-        BOOST_PP_LOCAL_MACRO(239)
-#    endif
-#    if BOOST_PP_LOCAL_C(240)
-        BOOST_PP_LOCAL_MACRO(240)
-#    endif
-#    if BOOST_PP_LOCAL_C(241)
-        BOOST_PP_LOCAL_MACRO(241)
-#    endif
-#    if BOOST_PP_LOCAL_C(242)
-        BOOST_PP_LOCAL_MACRO(242)
-#    endif
-#    if BOOST_PP_LOCAL_C(243)
-        BOOST_PP_LOCAL_MACRO(243)
-#    endif
-#    if BOOST_PP_LOCAL_C(244)
-        BOOST_PP_LOCAL_MACRO(244)
-#    endif
-#    if BOOST_PP_LOCAL_C(245)
-        BOOST_PP_LOCAL_MACRO(245)
-#    endif
-#    if BOOST_PP_LOCAL_C(246)
-        BOOST_PP_LOCAL_MACRO(246)
-#    endif
-#    if BOOST_PP_LOCAL_C(247)
-        BOOST_PP_LOCAL_MACRO(247)
-#    endif
-#    if BOOST_PP_LOCAL_C(248)
-        BOOST_PP_LOCAL_MACRO(248)
-#    endif
-#    if BOOST_PP_LOCAL_C(249)
-        BOOST_PP_LOCAL_MACRO(249)
-#    endif
-#    if BOOST_PP_LOCAL_C(250)
-        BOOST_PP_LOCAL_MACRO(250)
-#    endif
-#    if BOOST_PP_LOCAL_C(251)
-        BOOST_PP_LOCAL_MACRO(251)
-#    endif
-#    if BOOST_PP_LOCAL_C(252)
-        BOOST_PP_LOCAL_MACRO(252)
-#    endif
-#    if BOOST_PP_LOCAL_C(253)
-        BOOST_PP_LOCAL_MACRO(253)
-#    endif
-#    if BOOST_PP_LOCAL_C(254)
-        BOOST_PP_LOCAL_MACRO(254)
-#    endif
-#    if BOOST_PP_LOCAL_C(255)
-        BOOST_PP_LOCAL_MACRO(255)
-#    endif
-#    if BOOST_PP_LOCAL_C(256)
-        BOOST_PP_LOCAL_MACRO(256)
-#    endif
-# endif
-#
-# undef BOOST_PP_LOCAL_LIMITS
-#
-# undef BOOST_PP_LOCAL_S
-# undef BOOST_PP_LOCAL_F
-#
-# undef BOOST_PP_LOCAL_MACRO
diff --git a/boost/preprocessor/iteration/detail/rlocal.hpp b/boost/preprocessor/iteration/detail/rlocal.hpp
deleted file mode 100644
index 413afa0..0000000
--- a/boost/preprocessor/iteration/detail/rlocal.hpp
+++ /dev/null
@@ -1,782 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# if BOOST_PP_LOCAL_R(256)
-    BOOST_PP_LOCAL_MACRO(256)
-# endif
-# if BOOST_PP_LOCAL_R(255)
-    BOOST_PP_LOCAL_MACRO(255)
-# endif
-# if BOOST_PP_LOCAL_R(254)
-    BOOST_PP_LOCAL_MACRO(254)
-# endif
-# if BOOST_PP_LOCAL_R(253)
-    BOOST_PP_LOCAL_MACRO(253)
-# endif
-# if BOOST_PP_LOCAL_R(252)
-    BOOST_PP_LOCAL_MACRO(252)
-# endif
-# if BOOST_PP_LOCAL_R(251)
-    BOOST_PP_LOCAL_MACRO(251)
-# endif
-# if BOOST_PP_LOCAL_R(250)
-    BOOST_PP_LOCAL_MACRO(250)
-# endif
-# if BOOST_PP_LOCAL_R(249)
-    BOOST_PP_LOCAL_MACRO(249)
-# endif
-# if BOOST_PP_LOCAL_R(248)
-    BOOST_PP_LOCAL_MACRO(248)
-# endif
-# if BOOST_PP_LOCAL_R(247)
-    BOOST_PP_LOCAL_MACRO(247)
-# endif
-# if BOOST_PP_LOCAL_R(246)
-    BOOST_PP_LOCAL_MACRO(246)
-# endif
-# if BOOST_PP_LOCAL_R(245)
-    BOOST_PP_LOCAL_MACRO(245)
-# endif
-# if BOOST_PP_LOCAL_R(244)
-    BOOST_PP_LOCAL_MACRO(244)
-# endif
-# if BOOST_PP_LOCAL_R(243)
-    BOOST_PP_LOCAL_MACRO(243)
-# endif
-# if BOOST_PP_LOCAL_R(242)
-    BOOST_PP_LOCAL_MACRO(242)
-# endif
-# if BOOST_PP_LOCAL_R(241)
-    BOOST_PP_LOCAL_MACRO(241)
-# endif
-# if BOOST_PP_LOCAL_R(240)
-    BOOST_PP_LOCAL_MACRO(240)
-# endif
-# if BOOST_PP_LOCAL_R(239)
-    BOOST_PP_LOCAL_MACRO(239)
-# endif
-# if BOOST_PP_LOCAL_R(238)
-    BOOST_PP_LOCAL_MACRO(238)
-# endif
-# if BOOST_PP_LOCAL_R(237)
-    BOOST_PP_LOCAL_MACRO(237)
-# endif
-# if BOOST_PP_LOCAL_R(236)
-    BOOST_PP_LOCAL_MACRO(236)
-# endif
-# if BOOST_PP_LOCAL_R(235)
-    BOOST_PP_LOCAL_MACRO(235)
-# endif
-# if BOOST_PP_LOCAL_R(234)
-    BOOST_PP_LOCAL_MACRO(234)
-# endif
-# if BOOST_PP_LOCAL_R(233)
-    BOOST_PP_LOCAL_MACRO(233)
-# endif
-# if BOOST_PP_LOCAL_R(232)
-    BOOST_PP_LOCAL_MACRO(232)
-# endif
-# if BOOST_PP_LOCAL_R(231)
-    BOOST_PP_LOCAL_MACRO(231)
-# endif
-# if BOOST_PP_LOCAL_R(230)
-    BOOST_PP_LOCAL_MACRO(230)
-# endif
-# if BOOST_PP_LOCAL_R(229)
-    BOOST_PP_LOCAL_MACRO(229)
-# endif
-# if BOOST_PP_LOCAL_R(228)
-    BOOST_PP_LOCAL_MACRO(228)
-# endif
-# if BOOST_PP_LOCAL_R(227)
-    BOOST_PP_LOCAL_MACRO(227)
-# endif
-# if BOOST_PP_LOCAL_R(226)
-    BOOST_PP_LOCAL_MACRO(226)
-# endif
-# if BOOST_PP_LOCAL_R(225)
-    BOOST_PP_LOCAL_MACRO(225)
-# endif
-# if BOOST_PP_LOCAL_R(224)
-    BOOST_PP_LOCAL_MACRO(224)
-# endif
-# if BOOST_PP_LOCAL_R(223)
-    BOOST_PP_LOCAL_MACRO(223)
-# endif
-# if BOOST_PP_LOCAL_R(222)
-    BOOST_PP_LOCAL_MACRO(222)
-# endif
-# if BOOST_PP_LOCAL_R(221)
-    BOOST_PP_LOCAL_MACRO(221)
-# endif
-# if BOOST_PP_LOCAL_R(220)
-    BOOST_PP_LOCAL_MACRO(220)
-# endif
-# if BOOST_PP_LOCAL_R(219)
-    BOOST_PP_LOCAL_MACRO(219)
-# endif
-# if BOOST_PP_LOCAL_R(218)
-    BOOST_PP_LOCAL_MACRO(218)
-# endif
-# if BOOST_PP_LOCAL_R(217)
-    BOOST_PP_LOCAL_MACRO(217)
-# endif
-# if BOOST_PP_LOCAL_R(216)
-    BOOST_PP_LOCAL_MACRO(216)
-# endif
-# if BOOST_PP_LOCAL_R(215)
-    BOOST_PP_LOCAL_MACRO(215)
-# endif
-# if BOOST_PP_LOCAL_R(214)
-    BOOST_PP_LOCAL_MACRO(214)
-# endif
-# if BOOST_PP_LOCAL_R(213)
-    BOOST_PP_LOCAL_MACRO(213)
-# endif
-# if BOOST_PP_LOCAL_R(212)
-    BOOST_PP_LOCAL_MACRO(212)
-# endif
-# if BOOST_PP_LOCAL_R(211)
-    BOOST_PP_LOCAL_MACRO(211)
-# endif
-# if BOOST_PP_LOCAL_R(210)
-    BOOST_PP_LOCAL_MACRO(210)
-# endif
-# if BOOST_PP_LOCAL_R(209)
-    BOOST_PP_LOCAL_MACRO(209)
-# endif
-# if BOOST_PP_LOCAL_R(208)
-    BOOST_PP_LOCAL_MACRO(208)
-# endif
-# if BOOST_PP_LOCAL_R(207)
-    BOOST_PP_LOCAL_MACRO(207)
-# endif
-# if BOOST_PP_LOCAL_R(206)
-    BOOST_PP_LOCAL_MACRO(206)
-# endif
-# if BOOST_PP_LOCAL_R(205)
-    BOOST_PP_LOCAL_MACRO(205)
-# endif
-# if BOOST_PP_LOCAL_R(204)
-    BOOST_PP_LOCAL_MACRO(204)
-# endif
-# if BOOST_PP_LOCAL_R(203)
-    BOOST_PP_LOCAL_MACRO(203)
-# endif
-# if BOOST_PP_LOCAL_R(202)
-    BOOST_PP_LOCAL_MACRO(202)
-# endif
-# if BOOST_PP_LOCAL_R(201)
-    BOOST_PP_LOCAL_MACRO(201)
-# endif
-# if BOOST_PP_LOCAL_R(200)
-    BOOST_PP_LOCAL_MACRO(200)
-# endif
-# if BOOST_PP_LOCAL_R(199)
-    BOOST_PP_LOCAL_MACRO(199)
-# endif
-# if BOOST_PP_LOCAL_R(198)
-    BOOST_PP_LOCAL_MACRO(198)
-# endif
-# if BOOST_PP_LOCAL_R(197)
-    BOOST_PP_LOCAL_MACRO(197)
-# endif
-# if BOOST_PP_LOCAL_R(196)
-    BOOST_PP_LOCAL_MACRO(196)
-# endif
-# if BOOST_PP_LOCAL_R(195)
-    BOOST_PP_LOCAL_MACRO(195)
-# endif
-# if BOOST_PP_LOCAL_R(194)
-    BOOST_PP_LOCAL_MACRO(194)
-# endif
-# if BOOST_PP_LOCAL_R(193)
-    BOOST_PP_LOCAL_MACRO(193)
-# endif
-# if BOOST_PP_LOCAL_R(192)
-    BOOST_PP_LOCAL_MACRO(192)
-# endif
-# if BOOST_PP_LOCAL_R(191)
-    BOOST_PP_LOCAL_MACRO(191)
-# endif
-# if BOOST_PP_LOCAL_R(190)
-    BOOST_PP_LOCAL_MACRO(190)
-# endif
-# if BOOST_PP_LOCAL_R(189)
-    BOOST_PP_LOCAL_MACRO(189)
-# endif
-# if BOOST_PP_LOCAL_R(188)
-    BOOST_PP_LOCAL_MACRO(188)
-# endif
-# if BOOST_PP_LOCAL_R(187)
-    BOOST_PP_LOCAL_MACRO(187)
-# endif
-# if BOOST_PP_LOCAL_R(186)
-    BOOST_PP_LOCAL_MACRO(186)
-# endif
-# if BOOST_PP_LOCAL_R(185)
-    BOOST_PP_LOCAL_MACRO(185)
-# endif
-# if BOOST_PP_LOCAL_R(184)
-    BOOST_PP_LOCAL_MACRO(184)
-# endif
-# if BOOST_PP_LOCAL_R(183)
-    BOOST_PP_LOCAL_MACRO(183)
-# endif
-# if BOOST_PP_LOCAL_R(182)
-    BOOST_PP_LOCAL_MACRO(182)
-# endif
-# if BOOST_PP_LOCAL_R(181)
-    BOOST_PP_LOCAL_MACRO(181)
-# endif
-# if BOOST_PP_LOCAL_R(180)
-    BOOST_PP_LOCAL_MACRO(180)
-# endif
-# if BOOST_PP_LOCAL_R(179)
-    BOOST_PP_LOCAL_MACRO(179)
-# endif
-# if BOOST_PP_LOCAL_R(178)
-    BOOST_PP_LOCAL_MACRO(178)
-# endif
-# if BOOST_PP_LOCAL_R(177)
-    BOOST_PP_LOCAL_MACRO(177)
-# endif
-# if BOOST_PP_LOCAL_R(176)
-    BOOST_PP_LOCAL_MACRO(176)
-# endif
-# if BOOST_PP_LOCAL_R(175)
-    BOOST_PP_LOCAL_MACRO(175)
-# endif
-# if BOOST_PP_LOCAL_R(174)
-    BOOST_PP_LOCAL_MACRO(174)
-# endif
-# if BOOST_PP_LOCAL_R(173)
-    BOOST_PP_LOCAL_MACRO(173)
-# endif
-# if BOOST_PP_LOCAL_R(172)
-    BOOST_PP_LOCAL_MACRO(172)
-# endif
-# if BOOST_PP_LOCAL_R(171)
-    BOOST_PP_LOCAL_MACRO(171)
-# endif
-# if BOOST_PP_LOCAL_R(170)
-    BOOST_PP_LOCAL_MACRO(170)
-# endif
-# if BOOST_PP_LOCAL_R(169)
-    BOOST_PP_LOCAL_MACRO(169)
-# endif
-# if BOOST_PP_LOCAL_R(168)
-    BOOST_PP_LOCAL_MACRO(168)
-# endif
-# if BOOST_PP_LOCAL_R(167)
-    BOOST_PP_LOCAL_MACRO(167)
-# endif
-# if BOOST_PP_LOCAL_R(166)
-    BOOST_PP_LOCAL_MACRO(166)
-# endif
-# if BOOST_PP_LOCAL_R(165)
-    BOOST_PP_LOCAL_MACRO(165)
-# endif
-# if BOOST_PP_LOCAL_R(164)
-    BOOST_PP_LOCAL_MACRO(164)
-# endif
-# if BOOST_PP_LOCAL_R(163)
-    BOOST_PP_LOCAL_MACRO(163)
-# endif
-# if BOOST_PP_LOCAL_R(162)
-    BOOST_PP_LOCAL_MACRO(162)
-# endif
-# if BOOST_PP_LOCAL_R(161)
-    BOOST_PP_LOCAL_MACRO(161)
-# endif
-# if BOOST_PP_LOCAL_R(160)
-    BOOST_PP_LOCAL_MACRO(160)
-# endif
-# if BOOST_PP_LOCAL_R(159)
-    BOOST_PP_LOCAL_MACRO(159)
-# endif
-# if BOOST_PP_LOCAL_R(158)
-    BOOST_PP_LOCAL_MACRO(158)
-# endif
-# if BOOST_PP_LOCAL_R(157)
-    BOOST_PP_LOCAL_MACRO(157)
-# endif
-# if BOOST_PP_LOCAL_R(156)
-    BOOST_PP_LOCAL_MACRO(156)
-# endif
-# if BOOST_PP_LOCAL_R(155)
-    BOOST_PP_LOCAL_MACRO(155)
-# endif
-# if BOOST_PP_LOCAL_R(154)
-    BOOST_PP_LOCAL_MACRO(154)
-# endif
-# if BOOST_PP_LOCAL_R(153)
-    BOOST_PP_LOCAL_MACRO(153)
-# endif
-# if BOOST_PP_LOCAL_R(152)
-    BOOST_PP_LOCAL_MACRO(152)
-# endif
-# if BOOST_PP_LOCAL_R(151)
-    BOOST_PP_LOCAL_MACRO(151)
-# endif
-# if BOOST_PP_LOCAL_R(150)
-    BOOST_PP_LOCAL_MACRO(150)
-# endif
-# if BOOST_PP_LOCAL_R(149)
-    BOOST_PP_LOCAL_MACRO(149)
-# endif
-# if BOOST_PP_LOCAL_R(148)
-    BOOST_PP_LOCAL_MACRO(148)
-# endif
-# if BOOST_PP_LOCAL_R(147)
-    BOOST_PP_LOCAL_MACRO(147)
-# endif
-# if BOOST_PP_LOCAL_R(146)
-    BOOST_PP_LOCAL_MACRO(146)
-# endif
-# if BOOST_PP_LOCAL_R(145)
-    BOOST_PP_LOCAL_MACRO(145)
-# endif
-# if BOOST_PP_LOCAL_R(144)
-    BOOST_PP_LOCAL_MACRO(144)
-# endif
-# if BOOST_PP_LOCAL_R(143)
-    BOOST_PP_LOCAL_MACRO(143)
-# endif
-# if BOOST_PP_LOCAL_R(142)
-    BOOST_PP_LOCAL_MACRO(142)
-# endif
-# if BOOST_PP_LOCAL_R(141)
-    BOOST_PP_LOCAL_MACRO(141)
-# endif
-# if BOOST_PP_LOCAL_R(140)
-    BOOST_PP_LOCAL_MACRO(140)
-# endif
-# if BOOST_PP_LOCAL_R(139)
-    BOOST_PP_LOCAL_MACRO(139)
-# endif
-# if BOOST_PP_LOCAL_R(138)
-    BOOST_PP_LOCAL_MACRO(138)
-# endif
-# if BOOST_PP_LOCAL_R(137)
-    BOOST_PP_LOCAL_MACRO(137)
-# endif
-# if BOOST_PP_LOCAL_R(136)
-    BOOST_PP_LOCAL_MACRO(136)
-# endif
-# if BOOST_PP_LOCAL_R(135)
-    BOOST_PP_LOCAL_MACRO(135)
-# endif
-# if BOOST_PP_LOCAL_R(134)
-    BOOST_PP_LOCAL_MACRO(134)
-# endif
-# if BOOST_PP_LOCAL_R(133)
-    BOOST_PP_LOCAL_MACRO(133)
-# endif
-# if BOOST_PP_LOCAL_R(132)
-    BOOST_PP_LOCAL_MACRO(132)
-# endif
-# if BOOST_PP_LOCAL_R(131)
-    BOOST_PP_LOCAL_MACRO(131)
-# endif
-# if BOOST_PP_LOCAL_R(130)
-    BOOST_PP_LOCAL_MACRO(130)
-# endif
-# if BOOST_PP_LOCAL_R(129)
-    BOOST_PP_LOCAL_MACRO(129)
-# endif
-# if BOOST_PP_LOCAL_R(128)
-    BOOST_PP_LOCAL_MACRO(128)
-# endif
-# if BOOST_PP_LOCAL_R(127)
-    BOOST_PP_LOCAL_MACRO(127)
-# endif
-# if BOOST_PP_LOCAL_R(126)
-    BOOST_PP_LOCAL_MACRO(126)
-# endif
-# if BOOST_PP_LOCAL_R(125)
-    BOOST_PP_LOCAL_MACRO(125)
-# endif
-# if BOOST_PP_LOCAL_R(124)
-    BOOST_PP_LOCAL_MACRO(124)
-# endif
-# if BOOST_PP_LOCAL_R(123)
-    BOOST_PP_LOCAL_MACRO(123)
-# endif
-# if BOOST_PP_LOCAL_R(122)
-    BOOST_PP_LOCAL_MACRO(122)
-# endif
-# if BOOST_PP_LOCAL_R(121)
-    BOOST_PP_LOCAL_MACRO(121)
-# endif
-# if BOOST_PP_LOCAL_R(120)
-    BOOST_PP_LOCAL_MACRO(120)
-# endif
-# if BOOST_PP_LOCAL_R(119)
-    BOOST_PP_LOCAL_MACRO(119)
-# endif
-# if BOOST_PP_LOCAL_R(118)
-    BOOST_PP_LOCAL_MACRO(118)
-# endif
-# if BOOST_PP_LOCAL_R(117)
-    BOOST_PP_LOCAL_MACRO(117)
-# endif
-# if BOOST_PP_LOCAL_R(116)
-    BOOST_PP_LOCAL_MACRO(116)
-# endif
-# if BOOST_PP_LOCAL_R(115)
-    BOOST_PP_LOCAL_MACRO(115)
-# endif
-# if BOOST_PP_LOCAL_R(114)
-    BOOST_PP_LOCAL_MACRO(114)
-# endif
-# if BOOST_PP_LOCAL_R(113)
-    BOOST_PP_LOCAL_MACRO(113)
-# endif
-# if BOOST_PP_LOCAL_R(112)
-    BOOST_PP_LOCAL_MACRO(112)
-# endif
-# if BOOST_PP_LOCAL_R(111)
-    BOOST_PP_LOCAL_MACRO(111)
-# endif
-# if BOOST_PP_LOCAL_R(110)
-    BOOST_PP_LOCAL_MACRO(110)
-# endif
-# if BOOST_PP_LOCAL_R(109)
-    BOOST_PP_LOCAL_MACRO(109)
-# endif
-# if BOOST_PP_LOCAL_R(108)
-    BOOST_PP_LOCAL_MACRO(108)
-# endif
-# if BOOST_PP_LOCAL_R(107)
-    BOOST_PP_LOCAL_MACRO(107)
-# endif
-# if BOOST_PP_LOCAL_R(106)
-    BOOST_PP_LOCAL_MACRO(106)
-# endif
-# if BOOST_PP_LOCAL_R(105)
-    BOOST_PP_LOCAL_MACRO(105)
-# endif
-# if BOOST_PP_LOCAL_R(104)
-    BOOST_PP_LOCAL_MACRO(104)
-# endif
-# if BOOST_PP_LOCAL_R(103)
-    BOOST_PP_LOCAL_MACRO(103)
-# endif
-# if BOOST_PP_LOCAL_R(102)
-    BOOST_PP_LOCAL_MACRO(102)
-# endif
-# if BOOST_PP_LOCAL_R(101)
-    BOOST_PP_LOCAL_MACRO(101)
-# endif
-# if BOOST_PP_LOCAL_R(100)
-    BOOST_PP_LOCAL_MACRO(100)
-# endif
-# if BOOST_PP_LOCAL_R(99)
-    BOOST_PP_LOCAL_MACRO(99)
-# endif
-# if BOOST_PP_LOCAL_R(98)
-    BOOST_PP_LOCAL_MACRO(98)
-# endif
-# if BOOST_PP_LOCAL_R(97)
-    BOOST_PP_LOCAL_MACRO(97)
-# endif
-# if BOOST_PP_LOCAL_R(96)
-    BOOST_PP_LOCAL_MACRO(96)
-# endif
-# if BOOST_PP_LOCAL_R(95)
-    BOOST_PP_LOCAL_MACRO(95)
-# endif
-# if BOOST_PP_LOCAL_R(94)
-    BOOST_PP_LOCAL_MACRO(94)
-# endif
-# if BOOST_PP_LOCAL_R(93)
-    BOOST_PP_LOCAL_MACRO(93)
-# endif
-# if BOOST_PP_LOCAL_R(92)
-    BOOST_PP_LOCAL_MACRO(92)
-# endif
-# if BOOST_PP_LOCAL_R(91)
-    BOOST_PP_LOCAL_MACRO(91)
-# endif
-# if BOOST_PP_LOCAL_R(90)
-    BOOST_PP_LOCAL_MACRO(90)
-# endif
-# if BOOST_PP_LOCAL_R(89)
-    BOOST_PP_LOCAL_MACRO(89)
-# endif
-# if BOOST_PP_LOCAL_R(88)
-    BOOST_PP_LOCAL_MACRO(88)
-# endif
-# if BOOST_PP_LOCAL_R(87)
-    BOOST_PP_LOCAL_MACRO(87)
-# endif
-# if BOOST_PP_LOCAL_R(86)
-    BOOST_PP_LOCAL_MACRO(86)
-# endif
-# if BOOST_PP_LOCAL_R(85)
-    BOOST_PP_LOCAL_MACRO(85)
-# endif
-# if BOOST_PP_LOCAL_R(84)
-    BOOST_PP_LOCAL_MACRO(84)
-# endif
-# if BOOST_PP_LOCAL_R(83)
-    BOOST_PP_LOCAL_MACRO(83)
-# endif
-# if BOOST_PP_LOCAL_R(82)
-    BOOST_PP_LOCAL_MACRO(82)
-# endif
-# if BOOST_PP_LOCAL_R(81)
-    BOOST_PP_LOCAL_MACRO(81)
-# endif
-# if BOOST_PP_LOCAL_R(80)
-    BOOST_PP_LOCAL_MACRO(80)
-# endif
-# if BOOST_PP_LOCAL_R(79)
-    BOOST_PP_LOCAL_MACRO(79)
-# endif
-# if BOOST_PP_LOCAL_R(78)
-    BOOST_PP_LOCAL_MACRO(78)
-# endif
-# if BOOST_PP_LOCAL_R(77)
-    BOOST_PP_LOCAL_MACRO(77)
-# endif
-# if BOOST_PP_LOCAL_R(76)
-    BOOST_PP_LOCAL_MACRO(76)
-# endif
-# if BOOST_PP_LOCAL_R(75)
-    BOOST_PP_LOCAL_MACRO(75)
-# endif
-# if BOOST_PP_LOCAL_R(74)
-    BOOST_PP_LOCAL_MACRO(74)
-# endif
-# if BOOST_PP_LOCAL_R(73)
-    BOOST_PP_LOCAL_MACRO(73)
-# endif
-# if BOOST_PP_LOCAL_R(72)
-    BOOST_PP_LOCAL_MACRO(72)
-# endif
-# if BOOST_PP_LOCAL_R(71)
-    BOOST_PP_LOCAL_MACRO(71)
-# endif
-# if BOOST_PP_LOCAL_R(70)
-    BOOST_PP_LOCAL_MACRO(70)
-# endif
-# if BOOST_PP_LOCAL_R(69)
-    BOOST_PP_LOCAL_MACRO(69)
-# endif
-# if BOOST_PP_LOCAL_R(68)
-    BOOST_PP_LOCAL_MACRO(68)
-# endif
-# if BOOST_PP_LOCAL_R(67)
-    BOOST_PP_LOCAL_MACRO(67)
-# endif
-# if BOOST_PP_LOCAL_R(66)
-    BOOST_PP_LOCAL_MACRO(66)
-# endif
-# if BOOST_PP_LOCAL_R(65)
-    BOOST_PP_LOCAL_MACRO(65)
-# endif
-# if BOOST_PP_LOCAL_R(64)
-    BOOST_PP_LOCAL_MACRO(64)
-# endif
-# if BOOST_PP_LOCAL_R(63)
-    BOOST_PP_LOCAL_MACRO(63)
-# endif
-# if BOOST_PP_LOCAL_R(62)
-    BOOST_PP_LOCAL_MACRO(62)
-# endif
-# if BOOST_PP_LOCAL_R(61)
-    BOOST_PP_LOCAL_MACRO(61)
-# endif
-# if BOOST_PP_LOCAL_R(60)
-    BOOST_PP_LOCAL_MACRO(60)
-# endif
-# if BOOST_PP_LOCAL_R(59)
-    BOOST_PP_LOCAL_MACRO(59)
-# endif
-# if BOOST_PP_LOCAL_R(58)
-    BOOST_PP_LOCAL_MACRO(58)
-# endif
-# if BOOST_PP_LOCAL_R(57)
-    BOOST_PP_LOCAL_MACRO(57)
-# endif
-# if BOOST_PP_LOCAL_R(56)
-    BOOST_PP_LOCAL_MACRO(56)
-# endif
-# if BOOST_PP_LOCAL_R(55)
-    BOOST_PP_LOCAL_MACRO(55)
-# endif
-# if BOOST_PP_LOCAL_R(54)
-    BOOST_PP_LOCAL_MACRO(54)
-# endif
-# if BOOST_PP_LOCAL_R(53)
-    BOOST_PP_LOCAL_MACRO(53)
-# endif
-# if BOOST_PP_LOCAL_R(52)
-    BOOST_PP_LOCAL_MACRO(52)
-# endif
-# if BOOST_PP_LOCAL_R(51)
-    BOOST_PP_LOCAL_MACRO(51)
-# endif
-# if BOOST_PP_LOCAL_R(50)
-    BOOST_PP_LOCAL_MACRO(50)
-# endif
-# if BOOST_PP_LOCAL_R(49)
-    BOOST_PP_LOCAL_MACRO(49)
-# endif
-# if BOOST_PP_LOCAL_R(48)
-    BOOST_PP_LOCAL_MACRO(48)
-# endif
-# if BOOST_PP_LOCAL_R(47)
-    BOOST_PP_LOCAL_MACRO(47)
-# endif
-# if BOOST_PP_LOCAL_R(46)
-    BOOST_PP_LOCAL_MACRO(46)
-# endif
-# if BOOST_PP_LOCAL_R(45)
-    BOOST_PP_LOCAL_MACRO(45)
-# endif
-# if BOOST_PP_LOCAL_R(44)
-    BOOST_PP_LOCAL_MACRO(44)
-# endif
-# if BOOST_PP_LOCAL_R(43)
-    BOOST_PP_LOCAL_MACRO(43)
-# endif
-# if BOOST_PP_LOCAL_R(42)
-    BOOST_PP_LOCAL_MACRO(42)
-# endif
-# if BOOST_PP_LOCAL_R(41)
-    BOOST_PP_LOCAL_MACRO(41)
-# endif
-# if BOOST_PP_LOCAL_R(40)
-    BOOST_PP_LOCAL_MACRO(40)
-# endif
-# if BOOST_PP_LOCAL_R(39)
-    BOOST_PP_LOCAL_MACRO(39)
-# endif
-# if BOOST_PP_LOCAL_R(38)
-    BOOST_PP_LOCAL_MACRO(38)
-# endif
-# if BOOST_PP_LOCAL_R(37)
-    BOOST_PP_LOCAL_MACRO(37)
-# endif
-# if BOOST_PP_LOCAL_R(36)
-    BOOST_PP_LOCAL_MACRO(36)
-# endif
-# if BOOST_PP_LOCAL_R(35)
-    BOOST_PP_LOCAL_MACRO(35)
-# endif
-# if BOOST_PP_LOCAL_R(34)
-    BOOST_PP_LOCAL_MACRO(34)
-# endif
-# if BOOST_PP_LOCAL_R(33)
-    BOOST_PP_LOCAL_MACRO(33)
-# endif
-# if BOOST_PP_LOCAL_R(32)
-    BOOST_PP_LOCAL_MACRO(32)
-# endif
-# if BOOST_PP_LOCAL_R(31)
-    BOOST_PP_LOCAL_MACRO(31)
-# endif
-# if BOOST_PP_LOCAL_R(30)
-    BOOST_PP_LOCAL_MACRO(30)
-# endif
-# if BOOST_PP_LOCAL_R(29)
-    BOOST_PP_LOCAL_MACRO(29)
-# endif
-# if BOOST_PP_LOCAL_R(28)
-    BOOST_PP_LOCAL_MACRO(28)
-# endif
-# if BOOST_PP_LOCAL_R(27)
-    BOOST_PP_LOCAL_MACRO(27)
-# endif
-# if BOOST_PP_LOCAL_R(26)
-    BOOST_PP_LOCAL_MACRO(26)
-# endif
-# if BOOST_PP_LOCAL_R(25)
-    BOOST_PP_LOCAL_MACRO(25)
-# endif
-# if BOOST_PP_LOCAL_R(24)
-    BOOST_PP_LOCAL_MACRO(24)
-# endif
-# if BOOST_PP_LOCAL_R(23)
-    BOOST_PP_LOCAL_MACRO(23)
-# endif
-# if BOOST_PP_LOCAL_R(22)
-    BOOST_PP_LOCAL_MACRO(22)
-# endif
-# if BOOST_PP_LOCAL_R(21)
-    BOOST_PP_LOCAL_MACRO(21)
-# endif
-# if BOOST_PP_LOCAL_R(20)
-    BOOST_PP_LOCAL_MACRO(20)
-# endif
-# if BOOST_PP_LOCAL_R(19)
-    BOOST_PP_LOCAL_MACRO(19)
-# endif
-# if BOOST_PP_LOCAL_R(18)
-    BOOST_PP_LOCAL_MACRO(18)
-# endif
-# if BOOST_PP_LOCAL_R(17)
-    BOOST_PP_LOCAL_MACRO(17)
-# endif
-# if BOOST_PP_LOCAL_R(16)
-    BOOST_PP_LOCAL_MACRO(16)
-# endif
-# if BOOST_PP_LOCAL_R(15)
-    BOOST_PP_LOCAL_MACRO(15)
-# endif
-# if BOOST_PP_LOCAL_R(14)
-    BOOST_PP_LOCAL_MACRO(14)
-# endif
-# if BOOST_PP_LOCAL_R(13)
-    BOOST_PP_LOCAL_MACRO(13)
-# endif
-# if BOOST_PP_LOCAL_R(12)
-    BOOST_PP_LOCAL_MACRO(12)
-# endif
-# if BOOST_PP_LOCAL_R(11)
-    BOOST_PP_LOCAL_MACRO(11)
-# endif
-# if BOOST_PP_LOCAL_R(10)
-    BOOST_PP_LOCAL_MACRO(10)
-# endif
-# if BOOST_PP_LOCAL_R(9)
-    BOOST_PP_LOCAL_MACRO(9)
-# endif
-# if BOOST_PP_LOCAL_R(8)
-    BOOST_PP_LOCAL_MACRO(8)
-# endif
-# if BOOST_PP_LOCAL_R(7)
-    BOOST_PP_LOCAL_MACRO(7)
-# endif
-# if BOOST_PP_LOCAL_R(6)
-    BOOST_PP_LOCAL_MACRO(6)
-# endif
-# if BOOST_PP_LOCAL_R(5)
-    BOOST_PP_LOCAL_MACRO(5)
-# endif
-# if BOOST_PP_LOCAL_R(4)
-    BOOST_PP_LOCAL_MACRO(4)
-# endif
-# if BOOST_PP_LOCAL_R(3)
-    BOOST_PP_LOCAL_MACRO(3)
-# endif
-# if BOOST_PP_LOCAL_R(2)
-    BOOST_PP_LOCAL_MACRO(2)
-# endif
-# if BOOST_PP_LOCAL_R(1)
-    BOOST_PP_LOCAL_MACRO(1)
-# endif
-# if BOOST_PP_LOCAL_R(0)
-    BOOST_PP_LOCAL_MACRO(0)
-# endif
diff --git a/boost/preprocessor/iteration/detail/self.hpp b/boost/preprocessor/iteration/detail/self.hpp
deleted file mode 100644
index 757185c..0000000
--- a/boost/preprocessor/iteration/detail/self.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# if !defined(BOOST_PP_INDIRECT_SELF)
-#    error BOOST_PP_ERROR:  no indirect file to include
-# endif
-#
-# define BOOST_PP_IS_SELFISH 1
-#
-# include BOOST_PP_INDIRECT_SELF
-#
-# undef BOOST_PP_IS_SELFISH
-# undef BOOST_PP_INDIRECT_SELF
diff --git a/boost/preprocessor/iteration/detail/start.hpp b/boost/preprocessor/iteration/detail/start.hpp
deleted file mode 100644
index cbf0381..0000000
--- a/boost/preprocessor/iteration/detail/start.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# include <boost/preprocessor/slot/detail/shared.hpp>
-#
-# undef BOOST_PP_LOCAL_SE
-#
-# undef BOOST_PP_LOCAL_SE_DIGIT_1
-# undef BOOST_PP_LOCAL_SE_DIGIT_2
-# undef BOOST_PP_LOCAL_SE_DIGIT_3
-# undef BOOST_PP_LOCAL_SE_DIGIT_4
-# undef BOOST_PP_LOCAL_SE_DIGIT_5
-# undef BOOST_PP_LOCAL_SE_DIGIT_6
-# undef BOOST_PP_LOCAL_SE_DIGIT_7
-# undef BOOST_PP_LOCAL_SE_DIGIT_8
-# undef BOOST_PP_LOCAL_SE_DIGIT_9
-# undef BOOST_PP_LOCAL_SE_DIGIT_10
-#
-# if BOOST_PP_SLOT_TEMP_3 == 0
-#    define BOOST_PP_LOCAL_SE_DIGIT_3 0
-# elif BOOST_PP_SLOT_TEMP_3 == 1
-#    define BOOST_PP_LOCAL_SE_DIGIT_3 1
-# elif BOOST_PP_SLOT_TEMP_3 == 2
-#    define BOOST_PP_LOCAL_SE_DIGIT_3 2
-# elif BOOST_PP_SLOT_TEMP_3 == 3
-#    define BOOST_PP_LOCAL_SE_DIGIT_3 3
-# elif BOOST_PP_SLOT_TEMP_3 == 4
-#    define BOOST_PP_LOCAL_SE_DIGIT_3 4
-# elif BOOST_PP_SLOT_TEMP_3 == 5
-#    define BOOST_PP_LOCAL_SE_DIGIT_3 5
-# elif BOOST_PP_SLOT_TEMP_3 == 6
-#    define BOOST_PP_LOCAL_SE_DIGIT_3 6
-# elif BOOST_PP_SLOT_TEMP_3 == 7
-#    define BOOST_PP_LOCAL_SE_DIGIT_3 7
-# elif BOOST_PP_SLOT_TEMP_3 == 8
-#    define BOOST_PP_LOCAL_SE_DIGIT_3 8
-# elif BOOST_PP_SLOT_TEMP_3 == 9
-#    define BOOST_PP_LOCAL_SE_DIGIT_3 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_2 == 0
-#    define BOOST_PP_LOCAL_SE_DIGIT_2 0
-# elif BOOST_PP_SLOT_TEMP_2 == 1
-#    define BOOST_PP_LOCAL_SE_DIGIT_2 1
-# elif BOOST_PP_SLOT_TEMP_2 == 2
-#    define BOOST_PP_LOCAL_SE_DIGIT_2 2
-# elif BOOST_PP_SLOT_TEMP_2 == 3
-#    define BOOST_PP_LOCAL_SE_DIGIT_2 3
-# elif BOOST_PP_SLOT_TEMP_2 == 4
-#    define BOOST_PP_LOCAL_SE_DIGIT_2 4
-# elif BOOST_PP_SLOT_TEMP_2 == 5
-#    define BOOST_PP_LOCAL_SE_DIGIT_2 5
-# elif BOOST_PP_SLOT_TEMP_2 == 6
-#    define BOOST_PP_LOCAL_SE_DIGIT_2 6
-# elif BOOST_PP_SLOT_TEMP_2 == 7
-#    define BOOST_PP_LOCAL_SE_DIGIT_2 7
-# elif BOOST_PP_SLOT_TEMP_2 == 8
-#    define BOOST_PP_LOCAL_SE_DIGIT_2 8
-# elif BOOST_PP_SLOT_TEMP_2 == 9
-#    define BOOST_PP_LOCAL_SE_DIGIT_2 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_1 == 0
-#    define BOOST_PP_LOCAL_SE_DIGIT_1 0
-# elif BOOST_PP_SLOT_TEMP_1 == 1
-#    define BOOST_PP_LOCAL_SE_DIGIT_1 1
-# elif BOOST_PP_SLOT_TEMP_1 == 2
-#    define BOOST_PP_LOCAL_SE_DIGIT_1 2
-# elif BOOST_PP_SLOT_TEMP_1 == 3
-#    define BOOST_PP_LOCAL_SE_DIGIT_1 3
-# elif BOOST_PP_SLOT_TEMP_1 == 4
-#    define BOOST_PP_LOCAL_SE_DIGIT_1 4
-# elif BOOST_PP_SLOT_TEMP_1 == 5
-#    define BOOST_PP_LOCAL_SE_DIGIT_1 5
-# elif BOOST_PP_SLOT_TEMP_1 == 6
-#    define BOOST_PP_LOCAL_SE_DIGIT_1 6
-# elif BOOST_PP_SLOT_TEMP_1 == 7
-#    define BOOST_PP_LOCAL_SE_DIGIT_1 7
-# elif BOOST_PP_SLOT_TEMP_1 == 8
-#    define BOOST_PP_LOCAL_SE_DIGIT_1 8
-# elif BOOST_PP_SLOT_TEMP_1 == 9
-#    define BOOST_PP_LOCAL_SE_DIGIT_1 9
-# endif
-#
-# if BOOST_PP_LOCAL_SE_DIGIT_3
-#    define BOOST_PP_LOCAL_SE() BOOST_PP_SLOT_CC_3(BOOST_PP_LOCAL_SE_DIGIT_3, BOOST_PP_LOCAL_SE_DIGIT_2, BOOST_PP_LOCAL_SE_DIGIT_1)
-# elif BOOST_PP_LOCAL_SE_DIGIT_2
-#    define BOOST_PP_LOCAL_SE() BOOST_PP_SLOT_CC_2(BOOST_PP_LOCAL_SE_DIGIT_2, BOOST_PP_LOCAL_SE_DIGIT_1)
-# else
-#    define BOOST_PP_LOCAL_SE() BOOST_PP_LOCAL_SE_DIGIT_1
-# endif
diff --git a/boost/preprocessor/iteration/iterate.hpp b/boost/preprocessor/iteration/iterate.hpp
deleted file mode 100644
index 8f861e7..0000000
--- a/boost/preprocessor/iteration/iterate.hpp
+++ /dev/null
@@ -1,82 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_ITERATION_ITERATE_HPP
-# define BOOST_PREPROCESSOR_ITERATION_ITERATE_HPP
-#
-# include <boost/preprocessor/arithmetic/dec.hpp>
-# include <boost/preprocessor/arithmetic/inc.hpp>
-# include <boost/preprocessor/array/elem.hpp>
-# include <boost/preprocessor/array/size.hpp>
-# include <boost/preprocessor/cat.hpp>
-# include <boost/preprocessor/slot/slot.hpp>
-# include <boost/preprocessor/tuple/elem.hpp>
-#
-# /* BOOST_PP_ITERATION_DEPTH */
-#
-# define BOOST_PP_ITERATION_DEPTH() 0
-#
-# /* BOOST_PP_ITERATION */
-#
-# define BOOST_PP_ITERATION() BOOST_PP_CAT(BOOST_PP_ITERATION_, BOOST_PP_ITERATION_DEPTH())
-#
-# /* BOOST_PP_ITERATION_START && BOOST_PP_ITERATION_FINISH */
-#
-# define BOOST_PP_ITERATION_START() BOOST_PP_CAT(BOOST_PP_ITERATION_START_, BOOST_PP_ITERATION_DEPTH())
-# define BOOST_PP_ITERATION_FINISH() BOOST_PP_CAT(BOOST_PP_ITERATION_FINISH_, BOOST_PP_ITERATION_DEPTH())
-#
-# /* BOOST_PP_ITERATION_FLAGS */
-#
-# define BOOST_PP_ITERATION_FLAGS() (BOOST_PP_CAT(BOOST_PP_ITERATION_FLAGS_, BOOST_PP_ITERATION_DEPTH())())
-#
-# /* BOOST_PP_FRAME_ITERATION */
-#
-# define BOOST_PP_FRAME_ITERATION(i) BOOST_PP_CAT(BOOST_PP_ITERATION_, i)
-#
-# /* BOOST_PP_FRAME_START && BOOST_PP_FRAME_FINISH */
-#
-# define BOOST_PP_FRAME_START(i) BOOST_PP_CAT(BOOST_PP_ITERATION_START_, i)
-# define BOOST_PP_FRAME_FINISH(i) BOOST_PP_CAT(BOOST_PP_ITERATION_FINISH_, i)
-#
-# /* BOOST_PP_FRAME_FLAGS */
-#
-# define BOOST_PP_FRAME_FLAGS(i) (BOOST_PP_CAT(BOOST_PP_ITERATION_FLAGS_, i)())
-#
-# /* BOOST_PP_RELATIVE_ITERATION */
-#
-# define BOOST_PP_RELATIVE_ITERATION(i) BOOST_PP_CAT(BOOST_PP_RELATIVE_, i)(BOOST_PP_ITERATION_)
-#
-# define BOOST_PP_RELATIVE_0(m) BOOST_PP_CAT(m, BOOST_PP_ITERATION_DEPTH())
-# define BOOST_PP_RELATIVE_1(m) BOOST_PP_CAT(m, BOOST_PP_DEC(BOOST_PP_ITERATION_DEPTH()))
-# define BOOST_PP_RELATIVE_2(m) BOOST_PP_CAT(m, BOOST_PP_DEC(BOOST_PP_DEC(BOOST_PP_ITERATION_DEPTH())))
-# define BOOST_PP_RELATIVE_3(m) BOOST_PP_CAT(m, BOOST_PP_DEC(BOOST_PP_DEC(BOOST_PP_DEC(BOOST_PP_ITERATION_DEPTH()))))
-# define BOOST_PP_RELATIVE_4(m) BOOST_PP_CAT(m, BOOST_PP_DEC(BOOST_PP_DEC(BOOST_PP_DEC(BOOST_PP_DEC(BOOST_PP_ITERATION_DEPTH())))))
-#
-# /* BOOST_PP_RELATIVE_START && BOOST_PP_RELATIVE_FINISH */
-#
-# define BOOST_PP_RELATIVE_START(i) BOOST_PP_CAT(BOOST_PP_RELATIVE_, i)(BOOST_PP_ITERATION_START_)
-# define BOOST_PP_RELATIVE_FINISH(i) BOOST_PP_CAT(BOOST_PP_RELATIVE_, i)(BOOST_PP_ITERATION_FINISH_)
-#
-# /* BOOST_PP_RELATIVE_FLAGS */
-#
-# define BOOST_PP_RELATIVE_FLAGS(i) (BOOST_PP_CAT(BOOST_PP_RELATIVE_, i)(BOOST_PP_ITERATION_FLAGS_)())
-#
-# /* BOOST_PP_ITERATE */
-#
-# define BOOST_PP_ITERATE() BOOST_PP_CAT(BOOST_PP_ITERATE_, BOOST_PP_INC(BOOST_PP_ITERATION_DEPTH()))
-#
-# define BOOST_PP_ITERATE_1 <boost/preprocessor/iteration/detail/iter/forward1.hpp>
-# define BOOST_PP_ITERATE_2 <boost/preprocessor/iteration/detail/iter/forward2.hpp>
-# define BOOST_PP_ITERATE_3 <boost/preprocessor/iteration/detail/iter/forward3.hpp>
-# define BOOST_PP_ITERATE_4 <boost/preprocessor/iteration/detail/iter/forward4.hpp>
-# define BOOST_PP_ITERATE_5 <boost/preprocessor/iteration/detail/iter/forward5.hpp>
-#
-# endif
diff --git a/boost/preprocessor/iteration/local.hpp b/boost/preprocessor/iteration/local.hpp
deleted file mode 100644
index 289fb1a..0000000
--- a/boost/preprocessor/iteration/local.hpp
+++ /dev/null
@@ -1,26 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_ITERATION_LOCAL_HPP
-# define BOOST_PREPROCESSOR_ITERATION_LOCAL_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/slot/slot.hpp>
-# include <boost/preprocessor/tuple/elem.hpp>
-#
-# /* BOOST_PP_LOCAL_ITERATE */
-#
-# define BOOST_PP_LOCAL_ITERATE() <boost/preprocessor/iteration/detail/local.hpp>
-#
-# define BOOST_PP_LOCAL_C(n) (BOOST_PP_LOCAL_S) <= n && (BOOST_PP_LOCAL_F) >= n
-# define BOOST_PP_LOCAL_R(n) (BOOST_PP_LOCAL_F) <= n && (BOOST_PP_LOCAL_S) >= n
-#
-# endif
diff --git a/boost/preprocessor/iteration/self.hpp b/boost/preprocessor/iteration/self.hpp
deleted file mode 100644
index 6e0464c..0000000
--- a/boost/preprocessor/iteration/self.hpp
+++ /dev/null
@@ -1,19 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_ITERATION_SELF_HPP
-# define BOOST_PREPROCESSOR_ITERATION_SELF_HPP
-#
-# /* BOOST_PP_INCLUDE_SELF */
-#
-# define BOOST_PP_INCLUDE_SELF() <boost/preprocessor/iteration/detail/self.hpp>
-#
-# endif
diff --git a/boost/preprocessor/list/adt.hpp b/boost/preprocessor/list/adt.hpp
deleted file mode 100644
index b4f12ba..0000000
--- a/boost/preprocessor/list/adt.hpp
+++ /dev/null
@@ -1,73 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * Distributed under the Boost Software License, Version 1.0. (See
-#  * accompanying file LICENSE_1_0.txt or copy at
-#  * http://www.boost.org/LICENSE_1_0.txt)
-#  *
-#  * See http://www.boost.org for most recent version.
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# ifndef BOOST_PREPROCESSOR_LIST_ADT_HPP
-# define BOOST_PREPROCESSOR_LIST_ADT_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/detail/is_binary.hpp>
-# include <boost/preprocessor/logical/compl.hpp>
-# include <boost/preprocessor/tuple/eat.hpp>
-#
-# /* BOOST_PP_LIST_CONS */
-#
-# define BOOST_PP_LIST_CONS(head, tail) (head, tail)
-#
-# /* BOOST_PP_LIST_NIL */
-#
-# define BOOST_PP_LIST_NIL BOOST_PP_NIL
-#
-# /* BOOST_PP_LIST_FIRST */
-#
-# define BOOST_PP_LIST_FIRST(list) BOOST_PP_LIST_FIRST_D(list)
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#    define BOOST_PP_LIST_FIRST_D(list) BOOST_PP_LIST_FIRST_I list
-# else
-#    define BOOST_PP_LIST_FIRST_D(list) BOOST_PP_LIST_FIRST_I ## list
-# endif
-#
-# define BOOST_PP_LIST_FIRST_I(head, tail) head
-#
-# /* BOOST_PP_LIST_REST */
-#
-# define BOOST_PP_LIST_REST(list) BOOST_PP_LIST_REST_D(list)
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#    define BOOST_PP_LIST_REST_D(list) BOOST_PP_LIST_REST_I list
-# else
-#    define BOOST_PP_LIST_REST_D(list) BOOST_PP_LIST_REST_I ## list
-# endif
-#
-# define BOOST_PP_LIST_REST_I(head, tail) tail
-#
-# /* BOOST_PP_LIST_IS_CONS */
-#
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_BCC()
-#    define BOOST_PP_LIST_IS_CONS(list) BOOST_PP_LIST_IS_CONS_D(list)
-#    define BOOST_PP_LIST_IS_CONS_D(list) BOOST_PP_LIST_IS_CONS_ ## list
-#    define BOOST_PP_LIST_IS_CONS_(head, tail) 1
-#    define BOOST_PP_LIST_IS_CONS_BOOST_PP_NIL 0
-# else
-#    define BOOST_PP_LIST_IS_CONS(list) BOOST_PP_IS_BINARY(list)
-# endif
-#
-# /* BOOST_PP_LIST_IS_NIL */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_BCC()
-#    define BOOST_PP_LIST_IS_NIL(list) BOOST_PP_COMPL(BOOST_PP_IS_BINARY(list))
-# else
-#    define BOOST_PP_LIST_IS_NIL(list) BOOST_PP_COMPL(BOOST_PP_LIST_IS_CONS(list))
-# endif
-#
-# endif
diff --git a/boost/preprocessor/list/append.hpp b/boost/preprocessor/list/append.hpp
deleted file mode 100644
index 26e9d74..0000000
--- a/boost/preprocessor/list/append.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * Distributed under the Boost Software License, Version 1.0. (See
-#  * accompanying file LICENSE_1_0.txt or copy at
-#  * http://www.boost.org/LICENSE_1_0.txt)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_LIST_APPEND_HPP
-# define BOOST_PREPROCESSOR_LIST_APPEND_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/list/fold_right.hpp>
-#
-# /* BOOST_PP_LIST_APPEND */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_LIST_APPEND(a, b) BOOST_PP_LIST_FOLD_RIGHT(BOOST_PP_LIST_APPEND_O, b, a)
-# else
-#    define BOOST_PP_LIST_APPEND(a, b) BOOST_PP_LIST_APPEND_I(a, b)
-#    define BOOST_PP_LIST_APPEND_I(a, b) BOOST_PP_LIST_FOLD_RIGHT(BOOST_PP_LIST_APPEND_O, b, a)
-# endif
-#
-# define BOOST_PP_LIST_APPEND_O(d, s, x) (x, s)
-#
-# /* BOOST_PP_LIST_APPEND_D */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_LIST_APPEND_D(d, a, b) BOOST_PP_LIST_FOLD_RIGHT_ ## d(BOOST_PP_LIST_APPEND_O, b, a)
-# else
-#    define BOOST_PP_LIST_APPEND_D(d, a, b) BOOST_PP_LIST_APPEND_D_I(d, a, b)
-#    define BOOST_PP_LIST_APPEND_D_I(d, a, b) BOOST_PP_LIST_FOLD_RIGHT_ ## d(BOOST_PP_LIST_APPEND_O, b, a)
-# endif
-#
-# endif
diff --git a/boost/preprocessor/list/detail/dmc/fold_left.hpp b/boost/preprocessor/list/detail/dmc/fold_left.hpp
deleted file mode 100644
index 844ac5b..0000000
--- a/boost/preprocessor/list/detail/dmc/fold_left.hpp
+++ /dev/null
@@ -1,279 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * Distributed under the Boost Software License, Version 1.0. (See
-#  * accompanying file LICENSE_1_0.txt or copy at
-#  * http://www.boost.org/LICENSE_1_0.txt)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_LIST_DETAIL_FOLD_LEFT_HPP
-# define BOOST_PREPROCESSOR_LIST_DETAIL_FOLD_LEFT_HPP
-#
-# include <boost/preprocessor/control/expr_iif.hpp>
-# include <boost/preprocessor/control/iif.hpp>
-# include <boost/preprocessor/list/adt.hpp>
-# include <boost/preprocessor/tuple/elem.hpp>
-#
-# define BOOST_PP_LIST_FOLD_LEFT_1(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_2, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(2, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_2(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_3, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(3, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_3(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_4, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(4, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_4(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_5, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(5, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_5(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_6, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(6, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_6(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_7, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(7, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_7(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_8, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(8, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_8(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_9, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(9, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_9(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_10, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(10, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_10(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_11, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(11, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_11(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_12, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(12, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_12(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_13, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(13, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_13(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_14, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(14, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_14(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_15, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(15, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_15(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_16, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(16, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_16(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_17, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(17, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_17(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_18, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(18, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_18(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_19, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(19, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_19(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_20, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(20, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_20(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_21, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(21, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_21(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_22, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(22, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_22(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_23, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(23, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_23(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_24, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(24, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_24(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_25, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(25, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_25(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_26, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(26, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_26(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_27, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(27, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_27(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_28, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(28, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_28(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_29, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(29, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_29(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_30, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(30, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_30(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_31, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(31, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_31(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_32, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(32, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_32(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_33, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(33, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_33(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_34, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(34, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_34(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_35, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(35, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_35(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_36, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(36, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_36(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_37, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(37, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_37(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_38, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(38, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_38(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_39, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(39, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_39(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_40, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(40, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_40(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_41, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(41, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_41(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_42, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(42, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_42(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_43, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(43, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_43(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_44, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(44, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_44(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_45, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(45, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_45(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_46, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(46, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_46(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_47, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(47, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_47(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_48, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(48, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_48(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_49, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(49, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_49(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_50, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(50, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_50(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_51, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(51, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_51(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_52, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(52, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_52(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_53, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(53, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_53(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_54, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(54, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_54(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_55, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(55, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_55(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_56, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(56, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_56(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_57, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(57, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_57(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_58, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(58, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_58(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_59, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(59, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_59(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_60, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(60, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_60(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_61, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(61, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_61(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_62, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(62, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_62(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_63, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(63, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_63(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_64, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(64, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_64(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_65, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(65, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_65(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_66, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(66, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_66(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_67, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(67, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_67(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_68, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(68, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_68(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_69, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(69, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_69(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_70, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(70, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_70(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_71, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(71, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_71(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_72, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(72, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_72(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_73, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(73, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_73(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_74, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(74, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_74(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_75, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(75, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_75(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_76, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(76, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_76(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_77, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(77, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_77(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_78, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(78, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_78(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_79, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(79, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_79(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_80, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(80, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_80(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_81, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(81, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_81(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_82, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(82, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_82(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_83, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(83, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_83(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_84, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(84, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_84(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_85, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(85, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_85(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_86, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(86, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_86(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_87, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(87, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_87(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_88, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(88, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_88(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_89, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(89, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_89(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_90, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(90, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_90(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_91, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(91, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_91(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_92, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(92, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_92(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_93, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(93, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_93(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_94, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(94, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_94(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_95, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(95, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_95(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_96, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(96, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_96(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_97, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(97, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_97(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_98, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(98, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_98(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_99, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(99, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_99(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_100, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(100, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_100(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_101, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(101, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_101(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_102, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(102, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_102(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_103, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(103, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_103(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_104, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(104, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_104(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_105, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(105, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_105(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_106, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(106, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_106(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_107, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(107, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_107(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_108, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(108, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_108(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_109, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(109, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_109(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_110, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(110, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_110(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_111, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(111, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_111(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_112, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(112, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_112(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_113, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(113, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_113(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_114, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(114, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_114(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_115, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(115, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_115(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_116, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(116, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_116(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_117, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(117, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_117(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_118, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(118, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_118(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_119, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(119, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_119(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_120, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(120, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_120(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_121, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(121, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_121(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_122, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(122, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_122(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_123, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(123, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_123(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_124, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(124, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_124(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_125, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(125, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_125(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_126, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(126, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_126(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_127, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(127, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_127(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_128, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(128, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_128(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_129, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(129, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_129(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_130, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(130, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_130(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_131, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(131, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_131(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_132, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(132, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_132(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_133, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(133, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_133(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_134, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(134, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_134(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_135, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(135, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_135(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_136, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(136, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_136(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_137, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(137, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_137(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_138, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(138, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_138(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_139, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(139, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_139(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_140, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(140, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_140(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_141, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(141, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_141(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_142, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(142, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_142(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_143, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(143, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_143(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_144, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(144, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_144(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_145, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(145, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_145(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_146, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(146, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_146(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_147, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(147, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_147(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_148, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(148, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_148(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_149, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(149, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_149(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_150, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(150, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_150(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_151, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(151, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_151(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_152, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(152, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_152(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_153, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(153, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_153(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_154, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(154, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_154(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_155, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(155, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_155(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_156, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(156, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_156(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_157, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(157, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_157(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_158, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(158, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_158(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_159, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(159, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_159(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_160, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(160, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_160(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_161, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(161, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_161(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_162, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(162, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_162(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_163, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(163, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_163(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_164, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(164, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_164(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_165, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(165, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_165(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_166, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(166, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_166(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_167, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(167, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_167(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_168, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(168, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_168(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_169, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(169, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_169(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_170, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(170, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_170(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_171, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(171, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_171(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_172, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(172, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_172(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_173, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(173, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_173(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_174, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(174, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_174(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_175, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(175, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_175(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_176, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(176, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_176(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_177, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(177, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_177(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_178, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(178, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_178(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_179, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(179, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_179(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_180, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(180, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_180(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_181, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(181, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_181(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_182, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(182, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_182(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_183, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(183, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_183(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_184, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(184, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_184(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_185, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(185, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_185(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_186, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(186, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_186(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_187, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(187, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_187(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_188, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(188, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_188(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_189, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(189, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_189(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_190, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(190, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_190(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_191, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(191, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_191(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_192, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(192, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_192(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_193, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(193, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_193(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_194, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(194, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_194(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_195, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(195, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_195(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_196, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(196, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_196(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_197, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(197, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_197(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_198, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(198, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_198(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_199, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(199, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_199(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_200, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(200, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_200(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_201, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(201, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_201(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_202, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(202, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_202(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_203, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(203, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_203(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_204, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(204, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_204(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_205, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(205, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_205(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_206, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(206, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_206(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_207, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(207, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_207(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_208, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(208, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_208(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_209, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(209, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_209(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_210, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(210, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_210(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_211, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(211, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_211(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_212, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(212, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_212(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_213, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(213, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_213(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_214, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(214, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_214(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_215, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(215, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_215(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_216, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(216, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_216(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_217, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(217, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_217(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_218, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(218, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_218(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_219, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(219, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_219(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_220, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(220, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_220(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_221, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(221, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_221(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_222, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(222, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_222(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_223, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(223, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_223(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_224, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(224, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_224(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_225, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(225, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_225(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_226, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(226, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_226(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_227, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(227, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_227(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_228, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(228, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_228(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_229, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(229, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_229(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_230, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(230, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_230(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_231, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(231, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_231(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_232, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(232, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_232(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_233, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(233, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_233(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_234, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(234, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_234(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_235, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(235, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_235(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_236, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(236, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_236(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_237, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(237, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_237(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_238, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(238, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_238(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_239, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(239, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_239(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_240, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(240, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_240(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_241, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(241, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_241(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_242, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(242, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_242(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_243, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(243, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_243(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_244, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(244, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_244(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_245, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(245, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_245(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_246, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(246, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_246(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_247, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(247, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_247(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_248, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(248, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_248(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_249, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(249, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_249(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_250, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(250, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_250(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_251, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(251, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_251(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_252, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(252, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_252(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_253, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(253, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_253(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_254, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(254, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_254(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_255, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(255, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_255(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_256, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(256, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_256(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_257, BOOST_PP_TUPLE_ELEM_3_1)(o, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, BOOST_PP_TUPLE_ELEM_3_1)(257, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-#
-# endif
diff --git a/boost/preprocessor/list/detail/edg/fold_left.hpp b/boost/preprocessor/list/detail/edg/fold_left.hpp
deleted file mode 100644
index ae9524f..0000000
--- a/boost/preprocessor/list/detail/edg/fold_left.hpp
+++ /dev/null
@@ -1,536 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * Distributed under the Boost Software License, Version 1.0. (See
-#  * accompanying file LICENSE_1_0.txt or copy at
-#  * http://www.boost.org/LICENSE_1_0.txt)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_LIST_DETAIL_EDG_FOLD_LEFT_HPP
-# define BOOST_PREPROCESSOR_LIST_DETAIL_EDG_FOLD_LEFT_HPP
-#
-# include <boost/preprocessor/control/expr_iif.hpp>
-# include <boost/preprocessor/control/iif.hpp>
-# include <boost/preprocessor/list/adt.hpp>
-# include <boost/preprocessor/tuple/eat.hpp>
-#
-# define BOOST_PP_LIST_FOLD_LEFT_1(o, s, l) BOOST_PP_LIST_FOLD_LEFT_1_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_2(o, s, l) BOOST_PP_LIST_FOLD_LEFT_2_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_3(o, s, l) BOOST_PP_LIST_FOLD_LEFT_3_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_4(o, s, l) BOOST_PP_LIST_FOLD_LEFT_4_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_5(o, s, l) BOOST_PP_LIST_FOLD_LEFT_5_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_6(o, s, l) BOOST_PP_LIST_FOLD_LEFT_6_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_7(o, s, l) BOOST_PP_LIST_FOLD_LEFT_7_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_8(o, s, l) BOOST_PP_LIST_FOLD_LEFT_8_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_9(o, s, l) BOOST_PP_LIST_FOLD_LEFT_9_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_10(o, s, l) BOOST_PP_LIST_FOLD_LEFT_10_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_11(o, s, l) BOOST_PP_LIST_FOLD_LEFT_11_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_12(o, s, l) BOOST_PP_LIST_FOLD_LEFT_12_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_13(o, s, l) BOOST_PP_LIST_FOLD_LEFT_13_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_14(o, s, l) BOOST_PP_LIST_FOLD_LEFT_14_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_15(o, s, l) BOOST_PP_LIST_FOLD_LEFT_15_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_16(o, s, l) BOOST_PP_LIST_FOLD_LEFT_16_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_17(o, s, l) BOOST_PP_LIST_FOLD_LEFT_17_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_18(o, s, l) BOOST_PP_LIST_FOLD_LEFT_18_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_19(o, s, l) BOOST_PP_LIST_FOLD_LEFT_19_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_20(o, s, l) BOOST_PP_LIST_FOLD_LEFT_20_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_21(o, s, l) BOOST_PP_LIST_FOLD_LEFT_21_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_22(o, s, l) BOOST_PP_LIST_FOLD_LEFT_22_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_23(o, s, l) BOOST_PP_LIST_FOLD_LEFT_23_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_24(o, s, l) BOOST_PP_LIST_FOLD_LEFT_24_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_25(o, s, l) BOOST_PP_LIST_FOLD_LEFT_25_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_26(o, s, l) BOOST_PP_LIST_FOLD_LEFT_26_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_27(o, s, l) BOOST_PP_LIST_FOLD_LEFT_27_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_28(o, s, l) BOOST_PP_LIST_FOLD_LEFT_28_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_29(o, s, l) BOOST_PP_LIST_FOLD_LEFT_29_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_30(o, s, l) BOOST_PP_LIST_FOLD_LEFT_30_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_31(o, s, l) BOOST_PP_LIST_FOLD_LEFT_31_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_32(o, s, l) BOOST_PP_LIST_FOLD_LEFT_32_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_33(o, s, l) BOOST_PP_LIST_FOLD_LEFT_33_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_34(o, s, l) BOOST_PP_LIST_FOLD_LEFT_34_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_35(o, s, l) BOOST_PP_LIST_FOLD_LEFT_35_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_36(o, s, l) BOOST_PP_LIST_FOLD_LEFT_36_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_37(o, s, l) BOOST_PP_LIST_FOLD_LEFT_37_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_38(o, s, l) BOOST_PP_LIST_FOLD_LEFT_38_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_39(o, s, l) BOOST_PP_LIST_FOLD_LEFT_39_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_40(o, s, l) BOOST_PP_LIST_FOLD_LEFT_40_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_41(o, s, l) BOOST_PP_LIST_FOLD_LEFT_41_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_42(o, s, l) BOOST_PP_LIST_FOLD_LEFT_42_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_43(o, s, l) BOOST_PP_LIST_FOLD_LEFT_43_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_44(o, s, l) BOOST_PP_LIST_FOLD_LEFT_44_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_45(o, s, l) BOOST_PP_LIST_FOLD_LEFT_45_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_46(o, s, l) BOOST_PP_LIST_FOLD_LEFT_46_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_47(o, s, l) BOOST_PP_LIST_FOLD_LEFT_47_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_48(o, s, l) BOOST_PP_LIST_FOLD_LEFT_48_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_49(o, s, l) BOOST_PP_LIST_FOLD_LEFT_49_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_50(o, s, l) BOOST_PP_LIST_FOLD_LEFT_50_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_51(o, s, l) BOOST_PP_LIST_FOLD_LEFT_51_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_52(o, s, l) BOOST_PP_LIST_FOLD_LEFT_52_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_53(o, s, l) BOOST_PP_LIST_FOLD_LEFT_53_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_54(o, s, l) BOOST_PP_LIST_FOLD_LEFT_54_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_55(o, s, l) BOOST_PP_LIST_FOLD_LEFT_55_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_56(o, s, l) BOOST_PP_LIST_FOLD_LEFT_56_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_57(o, s, l) BOOST_PP_LIST_FOLD_LEFT_57_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_58(o, s, l) BOOST_PP_LIST_FOLD_LEFT_58_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_59(o, s, l) BOOST_PP_LIST_FOLD_LEFT_59_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_60(o, s, l) BOOST_PP_LIST_FOLD_LEFT_60_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_61(o, s, l) BOOST_PP_LIST_FOLD_LEFT_61_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_62(o, s, l) BOOST_PP_LIST_FOLD_LEFT_62_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_63(o, s, l) BOOST_PP_LIST_FOLD_LEFT_63_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_64(o, s, l) BOOST_PP_LIST_FOLD_LEFT_64_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_65(o, s, l) BOOST_PP_LIST_FOLD_LEFT_65_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_66(o, s, l) BOOST_PP_LIST_FOLD_LEFT_66_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_67(o, s, l) BOOST_PP_LIST_FOLD_LEFT_67_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_68(o, s, l) BOOST_PP_LIST_FOLD_LEFT_68_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_69(o, s, l) BOOST_PP_LIST_FOLD_LEFT_69_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_70(o, s, l) BOOST_PP_LIST_FOLD_LEFT_70_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_71(o, s, l) BOOST_PP_LIST_FOLD_LEFT_71_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_72(o, s, l) BOOST_PP_LIST_FOLD_LEFT_72_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_73(o, s, l) BOOST_PP_LIST_FOLD_LEFT_73_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_74(o, s, l) BOOST_PP_LIST_FOLD_LEFT_74_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_75(o, s, l) BOOST_PP_LIST_FOLD_LEFT_75_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_76(o, s, l) BOOST_PP_LIST_FOLD_LEFT_76_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_77(o, s, l) BOOST_PP_LIST_FOLD_LEFT_77_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_78(o, s, l) BOOST_PP_LIST_FOLD_LEFT_78_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_79(o, s, l) BOOST_PP_LIST_FOLD_LEFT_79_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_80(o, s, l) BOOST_PP_LIST_FOLD_LEFT_80_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_81(o, s, l) BOOST_PP_LIST_FOLD_LEFT_81_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_82(o, s, l) BOOST_PP_LIST_FOLD_LEFT_82_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_83(o, s, l) BOOST_PP_LIST_FOLD_LEFT_83_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_84(o, s, l) BOOST_PP_LIST_FOLD_LEFT_84_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_85(o, s, l) BOOST_PP_LIST_FOLD_LEFT_85_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_86(o, s, l) BOOST_PP_LIST_FOLD_LEFT_86_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_87(o, s, l) BOOST_PP_LIST_FOLD_LEFT_87_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_88(o, s, l) BOOST_PP_LIST_FOLD_LEFT_88_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_89(o, s, l) BOOST_PP_LIST_FOLD_LEFT_89_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_90(o, s, l) BOOST_PP_LIST_FOLD_LEFT_90_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_91(o, s, l) BOOST_PP_LIST_FOLD_LEFT_91_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_92(o, s, l) BOOST_PP_LIST_FOLD_LEFT_92_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_93(o, s, l) BOOST_PP_LIST_FOLD_LEFT_93_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_94(o, s, l) BOOST_PP_LIST_FOLD_LEFT_94_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_95(o, s, l) BOOST_PP_LIST_FOLD_LEFT_95_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_96(o, s, l) BOOST_PP_LIST_FOLD_LEFT_96_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_97(o, s, l) BOOST_PP_LIST_FOLD_LEFT_97_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_98(o, s, l) BOOST_PP_LIST_FOLD_LEFT_98_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_99(o, s, l) BOOST_PP_LIST_FOLD_LEFT_99_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_100(o, s, l) BOOST_PP_LIST_FOLD_LEFT_100_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_101(o, s, l) BOOST_PP_LIST_FOLD_LEFT_101_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_102(o, s, l) BOOST_PP_LIST_FOLD_LEFT_102_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_103(o, s, l) BOOST_PP_LIST_FOLD_LEFT_103_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_104(o, s, l) BOOST_PP_LIST_FOLD_LEFT_104_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_105(o, s, l) BOOST_PP_LIST_FOLD_LEFT_105_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_106(o, s, l) BOOST_PP_LIST_FOLD_LEFT_106_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_107(o, s, l) BOOST_PP_LIST_FOLD_LEFT_107_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_108(o, s, l) BOOST_PP_LIST_FOLD_LEFT_108_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_109(o, s, l) BOOST_PP_LIST_FOLD_LEFT_109_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_110(o, s, l) BOOST_PP_LIST_FOLD_LEFT_110_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_111(o, s, l) BOOST_PP_LIST_FOLD_LEFT_111_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_112(o, s, l) BOOST_PP_LIST_FOLD_LEFT_112_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_113(o, s, l) BOOST_PP_LIST_FOLD_LEFT_113_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_114(o, s, l) BOOST_PP_LIST_FOLD_LEFT_114_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_115(o, s, l) BOOST_PP_LIST_FOLD_LEFT_115_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_116(o, s, l) BOOST_PP_LIST_FOLD_LEFT_116_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_117(o, s, l) BOOST_PP_LIST_FOLD_LEFT_117_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_118(o, s, l) BOOST_PP_LIST_FOLD_LEFT_118_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_119(o, s, l) BOOST_PP_LIST_FOLD_LEFT_119_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_120(o, s, l) BOOST_PP_LIST_FOLD_LEFT_120_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_121(o, s, l) BOOST_PP_LIST_FOLD_LEFT_121_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_122(o, s, l) BOOST_PP_LIST_FOLD_LEFT_122_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_123(o, s, l) BOOST_PP_LIST_FOLD_LEFT_123_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_124(o, s, l) BOOST_PP_LIST_FOLD_LEFT_124_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_125(o, s, l) BOOST_PP_LIST_FOLD_LEFT_125_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_126(o, s, l) BOOST_PP_LIST_FOLD_LEFT_126_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_127(o, s, l) BOOST_PP_LIST_FOLD_LEFT_127_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_128(o, s, l) BOOST_PP_LIST_FOLD_LEFT_128_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_129(o, s, l) BOOST_PP_LIST_FOLD_LEFT_129_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_130(o, s, l) BOOST_PP_LIST_FOLD_LEFT_130_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_131(o, s, l) BOOST_PP_LIST_FOLD_LEFT_131_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_132(o, s, l) BOOST_PP_LIST_FOLD_LEFT_132_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_133(o, s, l) BOOST_PP_LIST_FOLD_LEFT_133_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_134(o, s, l) BOOST_PP_LIST_FOLD_LEFT_134_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_135(o, s, l) BOOST_PP_LIST_FOLD_LEFT_135_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_136(o, s, l) BOOST_PP_LIST_FOLD_LEFT_136_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_137(o, s, l) BOOST_PP_LIST_FOLD_LEFT_137_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_138(o, s, l) BOOST_PP_LIST_FOLD_LEFT_138_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_139(o, s, l) BOOST_PP_LIST_FOLD_LEFT_139_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_140(o, s, l) BOOST_PP_LIST_FOLD_LEFT_140_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_141(o, s, l) BOOST_PP_LIST_FOLD_LEFT_141_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_142(o, s, l) BOOST_PP_LIST_FOLD_LEFT_142_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_143(o, s, l) BOOST_PP_LIST_FOLD_LEFT_143_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_144(o, s, l) BOOST_PP_LIST_FOLD_LEFT_144_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_145(o, s, l) BOOST_PP_LIST_FOLD_LEFT_145_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_146(o, s, l) BOOST_PP_LIST_FOLD_LEFT_146_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_147(o, s, l) BOOST_PP_LIST_FOLD_LEFT_147_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_148(o, s, l) BOOST_PP_LIST_FOLD_LEFT_148_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_149(o, s, l) BOOST_PP_LIST_FOLD_LEFT_149_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_150(o, s, l) BOOST_PP_LIST_FOLD_LEFT_150_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_151(o, s, l) BOOST_PP_LIST_FOLD_LEFT_151_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_152(o, s, l) BOOST_PP_LIST_FOLD_LEFT_152_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_153(o, s, l) BOOST_PP_LIST_FOLD_LEFT_153_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_154(o, s, l) BOOST_PP_LIST_FOLD_LEFT_154_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_155(o, s, l) BOOST_PP_LIST_FOLD_LEFT_155_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_156(o, s, l) BOOST_PP_LIST_FOLD_LEFT_156_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_157(o, s, l) BOOST_PP_LIST_FOLD_LEFT_157_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_158(o, s, l) BOOST_PP_LIST_FOLD_LEFT_158_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_159(o, s, l) BOOST_PP_LIST_FOLD_LEFT_159_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_160(o, s, l) BOOST_PP_LIST_FOLD_LEFT_160_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_161(o, s, l) BOOST_PP_LIST_FOLD_LEFT_161_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_162(o, s, l) BOOST_PP_LIST_FOLD_LEFT_162_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_163(o, s, l) BOOST_PP_LIST_FOLD_LEFT_163_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_164(o, s, l) BOOST_PP_LIST_FOLD_LEFT_164_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_165(o, s, l) BOOST_PP_LIST_FOLD_LEFT_165_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_166(o, s, l) BOOST_PP_LIST_FOLD_LEFT_166_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_167(o, s, l) BOOST_PP_LIST_FOLD_LEFT_167_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_168(o, s, l) BOOST_PP_LIST_FOLD_LEFT_168_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_169(o, s, l) BOOST_PP_LIST_FOLD_LEFT_169_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_170(o, s, l) BOOST_PP_LIST_FOLD_LEFT_170_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_171(o, s, l) BOOST_PP_LIST_FOLD_LEFT_171_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_172(o, s, l) BOOST_PP_LIST_FOLD_LEFT_172_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_173(o, s, l) BOOST_PP_LIST_FOLD_LEFT_173_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_174(o, s, l) BOOST_PP_LIST_FOLD_LEFT_174_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_175(o, s, l) BOOST_PP_LIST_FOLD_LEFT_175_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_176(o, s, l) BOOST_PP_LIST_FOLD_LEFT_176_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_177(o, s, l) BOOST_PP_LIST_FOLD_LEFT_177_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_178(o, s, l) BOOST_PP_LIST_FOLD_LEFT_178_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_179(o, s, l) BOOST_PP_LIST_FOLD_LEFT_179_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_180(o, s, l) BOOST_PP_LIST_FOLD_LEFT_180_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_181(o, s, l) BOOST_PP_LIST_FOLD_LEFT_181_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_182(o, s, l) BOOST_PP_LIST_FOLD_LEFT_182_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_183(o, s, l) BOOST_PP_LIST_FOLD_LEFT_183_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_184(o, s, l) BOOST_PP_LIST_FOLD_LEFT_184_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_185(o, s, l) BOOST_PP_LIST_FOLD_LEFT_185_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_186(o, s, l) BOOST_PP_LIST_FOLD_LEFT_186_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_187(o, s, l) BOOST_PP_LIST_FOLD_LEFT_187_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_188(o, s, l) BOOST_PP_LIST_FOLD_LEFT_188_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_189(o, s, l) BOOST_PP_LIST_FOLD_LEFT_189_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_190(o, s, l) BOOST_PP_LIST_FOLD_LEFT_190_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_191(o, s, l) BOOST_PP_LIST_FOLD_LEFT_191_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_192(o, s, l) BOOST_PP_LIST_FOLD_LEFT_192_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_193(o, s, l) BOOST_PP_LIST_FOLD_LEFT_193_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_194(o, s, l) BOOST_PP_LIST_FOLD_LEFT_194_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_195(o, s, l) BOOST_PP_LIST_FOLD_LEFT_195_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_196(o, s, l) BOOST_PP_LIST_FOLD_LEFT_196_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_197(o, s, l) BOOST_PP_LIST_FOLD_LEFT_197_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_198(o, s, l) BOOST_PP_LIST_FOLD_LEFT_198_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_199(o, s, l) BOOST_PP_LIST_FOLD_LEFT_199_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_200(o, s, l) BOOST_PP_LIST_FOLD_LEFT_200_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_201(o, s, l) BOOST_PP_LIST_FOLD_LEFT_201_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_202(o, s, l) BOOST_PP_LIST_FOLD_LEFT_202_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_203(o, s, l) BOOST_PP_LIST_FOLD_LEFT_203_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_204(o, s, l) BOOST_PP_LIST_FOLD_LEFT_204_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_205(o, s, l) BOOST_PP_LIST_FOLD_LEFT_205_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_206(o, s, l) BOOST_PP_LIST_FOLD_LEFT_206_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_207(o, s, l) BOOST_PP_LIST_FOLD_LEFT_207_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_208(o, s, l) BOOST_PP_LIST_FOLD_LEFT_208_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_209(o, s, l) BOOST_PP_LIST_FOLD_LEFT_209_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_210(o, s, l) BOOST_PP_LIST_FOLD_LEFT_210_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_211(o, s, l) BOOST_PP_LIST_FOLD_LEFT_211_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_212(o, s, l) BOOST_PP_LIST_FOLD_LEFT_212_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_213(o, s, l) BOOST_PP_LIST_FOLD_LEFT_213_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_214(o, s, l) BOOST_PP_LIST_FOLD_LEFT_214_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_215(o, s, l) BOOST_PP_LIST_FOLD_LEFT_215_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_216(o, s, l) BOOST_PP_LIST_FOLD_LEFT_216_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_217(o, s, l) BOOST_PP_LIST_FOLD_LEFT_217_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_218(o, s, l) BOOST_PP_LIST_FOLD_LEFT_218_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_219(o, s, l) BOOST_PP_LIST_FOLD_LEFT_219_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_220(o, s, l) BOOST_PP_LIST_FOLD_LEFT_220_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_221(o, s, l) BOOST_PP_LIST_FOLD_LEFT_221_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_222(o, s, l) BOOST_PP_LIST_FOLD_LEFT_222_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_223(o, s, l) BOOST_PP_LIST_FOLD_LEFT_223_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_224(o, s, l) BOOST_PP_LIST_FOLD_LEFT_224_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_225(o, s, l) BOOST_PP_LIST_FOLD_LEFT_225_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_226(o, s, l) BOOST_PP_LIST_FOLD_LEFT_226_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_227(o, s, l) BOOST_PP_LIST_FOLD_LEFT_227_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_228(o, s, l) BOOST_PP_LIST_FOLD_LEFT_228_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_229(o, s, l) BOOST_PP_LIST_FOLD_LEFT_229_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_230(o, s, l) BOOST_PP_LIST_FOLD_LEFT_230_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_231(o, s, l) BOOST_PP_LIST_FOLD_LEFT_231_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_232(o, s, l) BOOST_PP_LIST_FOLD_LEFT_232_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_233(o, s, l) BOOST_PP_LIST_FOLD_LEFT_233_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_234(o, s, l) BOOST_PP_LIST_FOLD_LEFT_234_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_235(o, s, l) BOOST_PP_LIST_FOLD_LEFT_235_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_236(o, s, l) BOOST_PP_LIST_FOLD_LEFT_236_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_237(o, s, l) BOOST_PP_LIST_FOLD_LEFT_237_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_238(o, s, l) BOOST_PP_LIST_FOLD_LEFT_238_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_239(o, s, l) BOOST_PP_LIST_FOLD_LEFT_239_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_240(o, s, l) BOOST_PP_LIST_FOLD_LEFT_240_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_241(o, s, l) BOOST_PP_LIST_FOLD_LEFT_241_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_242(o, s, l) BOOST_PP_LIST_FOLD_LEFT_242_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_243(o, s, l) BOOST_PP_LIST_FOLD_LEFT_243_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_244(o, s, l) BOOST_PP_LIST_FOLD_LEFT_244_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_245(o, s, l) BOOST_PP_LIST_FOLD_LEFT_245_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_246(o, s, l) BOOST_PP_LIST_FOLD_LEFT_246_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_247(o, s, l) BOOST_PP_LIST_FOLD_LEFT_247_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_248(o, s, l) BOOST_PP_LIST_FOLD_LEFT_248_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_249(o, s, l) BOOST_PP_LIST_FOLD_LEFT_249_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_250(o, s, l) BOOST_PP_LIST_FOLD_LEFT_250_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_251(o, s, l) BOOST_PP_LIST_FOLD_LEFT_251_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_252(o, s, l) BOOST_PP_LIST_FOLD_LEFT_252_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_253(o, s, l) BOOST_PP_LIST_FOLD_LEFT_253_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_254(o, s, l) BOOST_PP_LIST_FOLD_LEFT_254_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_255(o, s, l) BOOST_PP_LIST_FOLD_LEFT_255_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_256(o, s, l) BOOST_PP_LIST_FOLD_LEFT_256_D(o, s, l)
-#
-# define BOOST_PP_LIST_FOLD_LEFT_1_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_2, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(2, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_2_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_3, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(3, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_3_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_4, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(4, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_4_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_5, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(5, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_5_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_6, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(6, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_6_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_7, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(7, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_7_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_8, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(8, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_8_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_9, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(9, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_9_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_10, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(10, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_10_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_11, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(11, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_11_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_12, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(12, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_12_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_13, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(13, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_13_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_14, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(14, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_14_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_15, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(15, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_15_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_16, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(16, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_16_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_17, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(17, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_17_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_18, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(18, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_18_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_19, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(19, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_19_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_20, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(20, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_20_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_21, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(21, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_21_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_22, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(22, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_22_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_23, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(23, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_23_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_24, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(24, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_24_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_25, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(25, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_25_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_26, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(26, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_26_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_27, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(27, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_27_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_28, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(28, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_28_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_29, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(29, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_29_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_30, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(30, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_30_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_31, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(31, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_31_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_32, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(32, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_32_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_33, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(33, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_33_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_34, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(34, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_34_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_35, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(35, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_35_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_36, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(36, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_36_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_37, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(37, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_37_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_38, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(38, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_38_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_39, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(39, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_39_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_40, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(40, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_40_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_41, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(41, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_41_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_42, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(42, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_42_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_43, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(43, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_43_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_44, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(44, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_44_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_45, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(45, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_45_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_46, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(46, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_46_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_47, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(47, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_47_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_48, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(48, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_48_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_49, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(49, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_49_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_50, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(50, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_50_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_51, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(51, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_51_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_52, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(52, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_52_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_53, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(53, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_53_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_54, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(54, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_54_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_55, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(55, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_55_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_56, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(56, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_56_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_57, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(57, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_57_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_58, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(58, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_58_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_59, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(59, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_59_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_60, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(60, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_60_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_61, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(61, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_61_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_62, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(62, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_62_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_63, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(63, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_63_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_64, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(64, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_64_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_65, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(65, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_65_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_66, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(66, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_66_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_67, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(67, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_67_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_68, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(68, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_68_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_69, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(69, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_69_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_70, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(70, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_70_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_71, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(71, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_71_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_72, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(72, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_72_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_73, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(73, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_73_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_74, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(74, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_74_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_75, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(75, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_75_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_76, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(76, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_76_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_77, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(77, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_77_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_78, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(78, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_78_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_79, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(79, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_79_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_80, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(80, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_80_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_81, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(81, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_81_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_82, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(82, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_82_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_83, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(83, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_83_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_84, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(84, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_84_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_85, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(85, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_85_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_86, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(86, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_86_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_87, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(87, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_87_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_88, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(88, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_88_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_89, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(89, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_89_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_90, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(90, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_90_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_91, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(91, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_91_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_92, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(92, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_92_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_93, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(93, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_93_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_94, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(94, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_94_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_95, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(95, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_95_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_96, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(96, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_96_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_97, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(97, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_97_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_98, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(98, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_98_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_99, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(99, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_99_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_100, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(100, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_100_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_101, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(101, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_101_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_102, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(102, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_102_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_103, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(103, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_103_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_104, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(104, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_104_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_105, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(105, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_105_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_106, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(106, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_106_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_107, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(107, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_107_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_108, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(108, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_108_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_109, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(109, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_109_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_110, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(110, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_110_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_111, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(111, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_111_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_112, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(112, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_112_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_113, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(113, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_113_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_114, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(114, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_114_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_115, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(115, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_115_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_116, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(116, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_116_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_117, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(117, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_117_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_118, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(118, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_118_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_119, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(119, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_119_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_120, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(120, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_120_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_121, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(121, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_121_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_122, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(122, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_122_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_123, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(123, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_123_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_124, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(124, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_124_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_125, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(125, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_125_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_126, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(126, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_126_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_127, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(127, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_127_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_128, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(128, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_128_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_129, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(129, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_129_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_130, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(130, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_130_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_131, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(131, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_131_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_132, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(132, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_132_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_133, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(133, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_133_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_134, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(134, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_134_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_135, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(135, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_135_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_136, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(136, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_136_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_137, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(137, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_137_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_138, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(138, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_138_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_139, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(139, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_139_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_140, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(140, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_140_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_141, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(141, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_141_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_142, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(142, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_142_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_143, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(143, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_143_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_144, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(144, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_144_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_145, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(145, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_145_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_146, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(146, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_146_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_147, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(147, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_147_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_148, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(148, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_148_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_149, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(149, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_149_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_150, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(150, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_150_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_151, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(151, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_151_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_152, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(152, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_152_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_153, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(153, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_153_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_154, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(154, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_154_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_155, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(155, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_155_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_156, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(156, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_156_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_157, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(157, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_157_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_158, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(158, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_158_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_159, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(159, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_159_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_160, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(160, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_160_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_161, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(161, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_161_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_162, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(162, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_162_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_163, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(163, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_163_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_164, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(164, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_164_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_165, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(165, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_165_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_166, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(166, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_166_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_167, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(167, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_167_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_168, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(168, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_168_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_169, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(169, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_169_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_170, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(170, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_170_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_171, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(171, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_171_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_172, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(172, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_172_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_173, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(173, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_173_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_174, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(174, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_174_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_175, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(175, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_175_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_176, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(176, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_176_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_177, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(177, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_177_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_178, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(178, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_178_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_179, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(179, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_179_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_180, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(180, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_180_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_181, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(181, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_181_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_182, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(182, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_182_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_183, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(183, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_183_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_184, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(184, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_184_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_185, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(185, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_185_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_186, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(186, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_186_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_187, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(187, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_187_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_188, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(188, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_188_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_189, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(189, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_189_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_190, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(190, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_190_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_191, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(191, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_191_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_192, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(192, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_192_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_193, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(193, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_193_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_194, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(194, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_194_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_195, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(195, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_195_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_196, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(196, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_196_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_197, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(197, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_197_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_198, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(198, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_198_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_199, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(199, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_199_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_200, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(200, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_200_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_201, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(201, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_201_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_202, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(202, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_202_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_203, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(203, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_203_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_204, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(204, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_204_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_205, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(205, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_205_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_206, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(206, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_206_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_207, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(207, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_207_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_208, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(208, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_208_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_209, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(209, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_209_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_210, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(210, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_210_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_211, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(211, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_211_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_212, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(212, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_212_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_213, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(213, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_213_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_214, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(214, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_214_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_215, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(215, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_215_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_216, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(216, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_216_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_217, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(217, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_217_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_218, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(218, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_218_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_219, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(219, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_219_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_220, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(220, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_220_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_221, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(221, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_221_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_222, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(222, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_222_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_223, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(223, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_223_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_224, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(224, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_224_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_225, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(225, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_225_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_226, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(226, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_226_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_227, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(227, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_227_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_228, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(228, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_228_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_229, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(229, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_229_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_230, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(230, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_230_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_231, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(231, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_231_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_232, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(232, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_232_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_233, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(233, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_233_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_234, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(234, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_234_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_235, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(235, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_235_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_236, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(236, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_236_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_237, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(237, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_237_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_238, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(238, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_238_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_239, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(239, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_239_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_240, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(240, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_240_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_241, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(241, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_241_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_242, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(242, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_242_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_243, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(243, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_243_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_244, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(244, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_244_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_245, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(245, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_245_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_246, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(246, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_246_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_247, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(247, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_247_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_248, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(248, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_248_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_249, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(249, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_249_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_250, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(250, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_250_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_251, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(251, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_251_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_252, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(252, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_252_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_253, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(253, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_253_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_254, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(254, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_254_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_255, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(255, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_255_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_256, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(256, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_256_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_257, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(257, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-#
-# endif
diff --git a/boost/preprocessor/list/detail/edg/fold_right.hpp b/boost/preprocessor/list/detail/edg/fold_right.hpp
deleted file mode 100644
index d372d2e..0000000
--- a/boost/preprocessor/list/detail/edg/fold_right.hpp
+++ /dev/null
@@ -1,794 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * Distributed under the Boost Software License, Version 1.0. (See
-#  * accompanying file LICENSE_1_0.txt or copy at
-#  * http://www.boost.org/LICENSE_1_0.txt)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_LIST_DETAIL_EDG_FOLD_RIGHT_HPP
-# define BOOST_PREPROCESSOR_LIST_DETAIL_EDG_FOLD_RIGHT_HPP
-#
-# include <boost/preprocessor/control/iif.hpp>
-# include <boost/preprocessor/list/adt.hpp>
-# include <boost/preprocessor/tuple/eat.hpp>
-#
-# define BOOST_PP_LIST_FOLD_RIGHT_1(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_1_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_2(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_2_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_3(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_3_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_4(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_4_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_5(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_5_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_6(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_6_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_7(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_7_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_8(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_8_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_9(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_9_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_10(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_10_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_11(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_11_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_12(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_12_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_13(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_13_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_14(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_14_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_15(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_15_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_16(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_16_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_17(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_17_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_18(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_18_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_19(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_19_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_20(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_20_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_21(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_21_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_22(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_22_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_23(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_23_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_24(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_24_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_25(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_25_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_26(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_26_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_27(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_27_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_28(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_28_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_29(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_29_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_30(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_30_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_31(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_31_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_32(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_32_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_33(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_33_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_34(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_34_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_35(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_35_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_36(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_36_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_37(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_37_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_38(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_38_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_39(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_39_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_40(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_40_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_41(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_41_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_42(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_42_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_43(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_43_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_44(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_44_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_45(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_45_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_46(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_46_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_47(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_47_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_48(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_48_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_49(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_49_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_50(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_50_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_51(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_51_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_52(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_52_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_53(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_53_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_54(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_54_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_55(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_55_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_56(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_56_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_57(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_57_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_58(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_58_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_59(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_59_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_60(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_60_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_61(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_61_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_62(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_62_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_63(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_63_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_64(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_64_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_65(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_65_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_66(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_66_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_67(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_67_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_68(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_68_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_69(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_69_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_70(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_70_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_71(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_71_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_72(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_72_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_73(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_73_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_74(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_74_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_75(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_75_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_76(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_76_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_77(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_77_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_78(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_78_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_79(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_79_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_80(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_80_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_81(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_81_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_82(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_82_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_83(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_83_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_84(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_84_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_85(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_85_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_86(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_86_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_87(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_87_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_88(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_88_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_89(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_89_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_90(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_90_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_91(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_91_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_92(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_92_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_93(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_93_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_94(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_94_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_95(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_95_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_96(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_96_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_97(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_97_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_98(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_98_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_99(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_99_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_100(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_100_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_101(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_101_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_102(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_102_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_103(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_103_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_104(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_104_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_105(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_105_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_106(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_106_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_107(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_107_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_108(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_108_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_109(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_109_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_110(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_110_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_111(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_111_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_112(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_112_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_113(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_113_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_114(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_114_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_115(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_115_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_116(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_116_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_117(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_117_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_118(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_118_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_119(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_119_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_120(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_120_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_121(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_121_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_122(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_122_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_123(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_123_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_124(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_124_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_125(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_125_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_126(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_126_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_127(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_127_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_128(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_128_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_129(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_129_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_130(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_130_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_131(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_131_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_132(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_132_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_133(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_133_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_134(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_134_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_135(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_135_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_136(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_136_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_137(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_137_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_138(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_138_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_139(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_139_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_140(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_140_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_141(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_141_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_142(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_142_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_143(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_143_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_144(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_144_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_145(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_145_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_146(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_146_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_147(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_147_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_148(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_148_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_149(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_149_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_150(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_150_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_151(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_151_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_152(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_152_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_153(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_153_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_154(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_154_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_155(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_155_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_156(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_156_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_157(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_157_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_158(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_158_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_159(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_159_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_160(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_160_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_161(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_161_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_162(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_162_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_163(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_163_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_164(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_164_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_165(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_165_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_166(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_166_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_167(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_167_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_168(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_168_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_169(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_169_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_170(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_170_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_171(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_171_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_172(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_172_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_173(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_173_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_174(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_174_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_175(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_175_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_176(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_176_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_177(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_177_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_178(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_178_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_179(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_179_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_180(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_180_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_181(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_181_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_182(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_182_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_183(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_183_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_184(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_184_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_185(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_185_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_186(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_186_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_187(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_187_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_188(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_188_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_189(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_189_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_190(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_190_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_191(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_191_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_192(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_192_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_193(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_193_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_194(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_194_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_195(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_195_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_196(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_196_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_197(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_197_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_198(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_198_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_199(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_199_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_200(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_200_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_201(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_201_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_202(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_202_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_203(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_203_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_204(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_204_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_205(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_205_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_206(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_206_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_207(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_207_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_208(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_208_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_209(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_209_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_210(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_210_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_211(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_211_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_212(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_212_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_213(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_213_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_214(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_214_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_215(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_215_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_216(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_216_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_217(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_217_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_218(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_218_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_219(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_219_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_220(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_220_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_221(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_221_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_222(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_222_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_223(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_223_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_224(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_224_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_225(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_225_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_226(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_226_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_227(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_227_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_228(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_228_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_229(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_229_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_230(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_230_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_231(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_231_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_232(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_232_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_233(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_233_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_234(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_234_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_235(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_235_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_236(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_236_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_237(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_237_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_238(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_238_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_239(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_239_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_240(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_240_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_241(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_241_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_242(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_242_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_243(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_243_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_244(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_244_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_245(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_245_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_246(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_246_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_247(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_247_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_248(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_248_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_249(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_249_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_250(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_250_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_251(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_251_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_252(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_252_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_253(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_253_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_254(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_254_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_255(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_255_D(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_256(o, s, l) BOOST_PP_LIST_FOLD_RIGHT_256_D(o, s, l)
-#
-# define BOOST_PP_LIST_FOLD_RIGHT_1_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(2, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_2, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_2_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(3, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_3, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_3_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(4, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_4, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_4_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(5, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_5, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_5_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(6, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_6, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_6_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(7, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_7, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_7_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(8, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_8, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_8_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(9, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_9, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_9_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(10, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_10, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_10_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(11, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_11, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_11_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(12, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_12, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_12_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(13, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_13, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_13_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(14, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_14, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_14_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(15, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_15, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_15_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(16, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_16, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_16_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(17, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_17, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_17_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(18, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_18, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_18_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(19, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_19, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_19_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(20, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_20, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_20_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(21, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_21, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_21_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(22, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_22, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_22_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(23, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_23, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_23_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(24, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_24, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_24_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(25, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_25, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_25_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(26, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_26, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_26_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(27, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_27, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_27_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(28, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_28, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_28_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(29, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_29, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_29_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(30, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_30, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_30_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(31, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_31, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_31_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(32, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_32, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_32_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(33, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_33, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_33_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(34, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_34, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_34_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(35, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_35, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_35_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(36, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_36, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_36_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(37, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_37, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_37_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(38, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_38, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_38_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(39, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_39, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_39_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(40, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_40, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_40_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(41, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_41, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_41_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(42, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_42, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_42_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(43, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_43, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_43_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(44, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_44, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_44_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(45, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_45, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_45_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(46, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_46, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_46_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(47, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_47, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_47_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(48, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_48, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_48_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(49, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_49, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_49_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(50, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_50, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_50_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(51, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_51, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_51_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(52, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_52, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_52_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(53, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_53, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_53_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(54, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_54, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_54_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(55, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_55, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_55_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(56, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_56, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_56_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(57, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_57, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_57_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(58, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_58, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_58_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(59, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_59, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_59_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(60, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_60, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_60_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(61, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_61, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_61_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(62, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_62, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_62_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(63, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_63, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_63_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(64, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_64, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_64_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(65, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_65, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_65_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(66, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_66, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_66_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(67, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_67, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_67_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(68, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_68, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_68_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(69, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_69, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_69_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(70, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_70, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_70_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(71, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_71, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_71_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(72, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_72, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_72_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(73, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_73, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_73_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(74, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_74, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_74_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(75, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_75, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_75_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(76, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_76, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_76_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(77, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_77, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_77_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(78, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_78, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_78_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(79, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_79, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_79_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(80, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_80, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_80_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(81, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_81, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_81_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(82, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_82, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_82_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(83, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_83, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_83_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(84, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_84, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_84_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(85, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_85, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_85_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(86, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_86, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_86_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(87, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_87, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_87_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(88, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_88, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_88_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(89, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_89, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_89_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(90, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_90, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_90_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(91, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_91, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_91_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(92, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_92, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_92_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(93, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_93, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_93_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(94, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_94, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_94_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(95, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_95, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_95_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(96, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_96, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_96_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(97, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_97, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_97_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(98, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_98, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_98_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(99, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_99, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_99_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(100, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_100, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_100_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(101, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_101, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_101_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(102, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_102, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_102_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(103, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_103, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_103_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(104, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_104, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_104_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(105, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_105, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_105_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(106, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_106, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_106_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(107, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_107, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_107_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(108, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_108, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_108_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(109, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_109, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_109_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(110, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_110, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_110_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(111, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_111, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_111_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(112, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_112, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_112_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(113, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_113, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_113_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(114, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_114, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_114_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(115, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_115, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_115_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(116, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_116, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_116_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(117, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_117, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_117_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(118, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_118, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_118_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(119, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_119, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_119_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(120, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_120, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_120_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(121, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_121, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_121_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(122, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_122, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_122_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(123, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_123, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_123_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(124, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_124, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_124_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(125, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_125, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_125_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(126, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_126, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_126_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(127, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_127, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_127_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(128, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_128, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_128_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(129, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_129, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_129_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(130, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_130, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_130_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(131, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_131, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_131_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(132, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_132, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_132_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(133, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_133, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_133_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(134, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_134, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_134_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(135, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_135, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_135_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(136, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_136, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_136_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(137, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_137, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_137_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(138, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_138, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_138_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(139, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_139, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_139_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(140, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_140, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_140_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(141, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_141, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_141_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(142, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_142, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_142_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(143, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_143, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_143_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(144, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_144, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_144_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(145, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_145, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_145_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(146, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_146, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_146_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(147, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_147, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_147_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(148, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_148, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_148_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(149, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_149, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_149_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(150, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_150, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_150_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(151, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_151, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_151_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(152, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_152, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_152_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(153, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_153, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_153_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(154, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_154, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_154_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(155, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_155, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_155_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(156, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_156, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_156_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(157, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_157, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_157_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(158, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_158, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_158_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(159, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_159, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_159_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(160, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_160, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_160_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(161, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_161, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_161_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(162, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_162, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_162_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(163, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_163, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_163_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(164, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_164, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_164_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(165, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_165, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_165_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(166, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_166, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_166_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(167, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_167, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_167_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(168, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_168, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_168_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(169, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_169, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_169_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(170, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_170, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_170_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(171, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_171, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_171_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(172, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_172, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_172_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(173, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_173, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_173_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(174, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_174, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_174_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(175, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_175, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_175_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(176, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_176, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_176_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(177, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_177, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_177_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(178, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_178, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_178_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(179, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_179, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_179_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(180, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_180, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_180_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(181, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_181, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_181_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(182, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_182, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_182_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(183, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_183, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_183_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(184, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_184, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_184_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(185, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_185, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_185_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(186, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_186, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_186_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(187, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_187, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_187_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(188, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_188, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_188_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(189, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_189, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_189_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(190, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_190, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_190_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(191, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_191, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_191_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(192, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_192, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_192_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(193, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_193, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_193_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(194, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_194, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_194_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(195, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_195, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_195_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(196, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_196, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_196_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(197, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_197, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_197_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(198, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_198, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_198_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(199, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_199, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_199_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(200, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_200, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_200_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(201, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_201, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_201_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(202, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_202, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_202_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(203, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_203, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_203_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(204, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_204, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_204_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(205, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_205, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_205_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(206, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_206, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_206_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(207, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_207, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_207_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(208, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_208, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_208_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(209, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_209, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_209_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(210, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_210, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_210_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(211, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_211, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_211_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(212, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_212, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_212_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(213, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_213, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_213_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(214, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_214, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_214_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(215, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_215, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_215_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(216, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_216, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_216_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(217, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_217, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_217_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(218, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_218, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_218_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(219, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_219, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_219_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(220, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_220, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_220_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(221, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_221, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_221_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(222, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_222, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_222_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(223, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_223, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_223_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(224, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_224, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_224_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(225, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_225, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_225_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(226, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_226, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_226_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(227, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_227, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_227_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(228, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_228, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_228_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(229, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_229, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_229_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(230, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_230, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_230_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(231, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_231, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_231_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(232, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_232, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_232_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(233, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_233, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_233_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(234, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_234, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_234_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(235, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_235, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_235_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(236, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_236, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_236_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(237, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_237, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_237_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(238, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_238, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_238_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(239, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_239, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_239_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(240, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_240, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_240_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(241, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_241, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_241_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(242, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_242, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_242_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(243, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_243, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_243_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(244, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_244, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_244_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(245, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_245, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_245_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(246, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_246, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_246_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(247, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_247, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_247_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(248, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_248, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_248_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(249, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_249, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_249_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(250, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_250, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_250_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(251, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_251, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_251_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(252, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_252, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_252_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(253, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_253, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_253_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(254, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_254, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_254_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(255, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_255, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_255_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(256, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_256, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-# define BOOST_PP_LIST_FOLD_RIGHT_256_D(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), o, s BOOST_PP_TUPLE_EAT_3)(257, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_RIGHT_257, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3)(o, s, BOOST_PP_LIST_REST(l)), BOOST_PP_LIST_FIRST(l))
-#
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_NIL 1
-#
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_1(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_2(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_3(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_4(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_5(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_6(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_7(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_8(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_9(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_10(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_11(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_12(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_13(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_14(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_15(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_16(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_17(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_18(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_19(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_20(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_21(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_22(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_23(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_24(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_25(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_26(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_27(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_28(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_29(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_30(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_31(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_32(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_33(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_34(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_35(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_36(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_37(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_38(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_39(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_40(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_41(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_42(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_43(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_44(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_45(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_46(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_47(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_48(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_49(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_50(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_51(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_52(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_53(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_54(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_55(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_56(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_57(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_58(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_59(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_60(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_61(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_62(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_63(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_64(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_65(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_66(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_67(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_68(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_69(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_70(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_71(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_72(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_73(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_74(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_75(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_76(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_77(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_78(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_79(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_80(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_81(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_82(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_83(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_84(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_85(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_86(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_87(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_88(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_89(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_90(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_91(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_92(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_93(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_94(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_95(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_96(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_97(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_98(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_99(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_100(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_101(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_102(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_103(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_104(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_105(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_106(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_107(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_108(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_109(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_110(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_111(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_112(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_113(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_114(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_115(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_116(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_117(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_118(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_119(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_120(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_121(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_122(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_123(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_124(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_125(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_126(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_127(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_128(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_129(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_130(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_131(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_132(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_133(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_134(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_135(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_136(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_137(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_138(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_139(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_140(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_141(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_142(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_143(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_144(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_145(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_146(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_147(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_148(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_149(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_150(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_151(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_152(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_153(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_154(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_155(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_156(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_157(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_158(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_159(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_160(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_161(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_162(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_163(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_164(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_165(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_166(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_167(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_168(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_169(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_170(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_171(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_172(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_173(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_174(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_175(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_176(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_177(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_178(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_179(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_180(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_181(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_182(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_183(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_184(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_185(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_186(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_187(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_188(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_189(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_190(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_191(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_192(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_193(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_194(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_195(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_196(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_197(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_198(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_199(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_200(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_201(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_202(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_203(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_204(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_205(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_206(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_207(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_208(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_209(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_210(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_211(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_212(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_213(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_214(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_215(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_216(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_217(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_218(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_219(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_220(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_221(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_222(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_223(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_224(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_225(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_226(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_227(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_228(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_229(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_230(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_231(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_232(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_233(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_234(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_235(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_236(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_237(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_238(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_239(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_240(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_241(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_242(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_243(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_244(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_245(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_246(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_247(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_248(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_249(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_250(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_251(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_252(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_253(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_254(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_255(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_RIGHT_CHECK_BOOST_PP_LIST_FOLD_RIGHT_256(o, s, l) 0
-#
-# endif
diff --git a/boost/preprocessor/list/detail/fold_left.hpp b/boost/preprocessor/list/detail/fold_left.hpp
deleted file mode 100644
index f5fcab7..0000000
--- a/boost/preprocessor/list/detail/fold_left.hpp
+++ /dev/null
@@ -1,279 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * Distributed under the Boost Software License, Version 1.0. (See
-#  * accompanying file LICENSE_1_0.txt or copy at
-#  * http://www.boost.org/LICENSE_1_0.txt)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_LIST_DETAIL_FOLD_LEFT_HPP
-# define BOOST_PREPROCESSOR_LIST_DETAIL_FOLD_LEFT_HPP
-#
-# include <boost/preprocessor/control/expr_iif.hpp>
-# include <boost/preprocessor/control/iif.hpp>
-# include <boost/preprocessor/list/adt.hpp>
-# include <boost/preprocessor/tuple/eat.hpp>
-#
-# define BOOST_PP_LIST_FOLD_LEFT_1(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_2, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(2, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_2(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_3, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(3, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_3(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_4, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(4, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_4(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_5, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(5, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_5(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_6, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(6, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_6(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_7, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(7, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_7(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_8, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(8, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_8(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_9, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(9, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_9(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_10, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(10, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_10(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_11, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(11, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_11(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_12, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(12, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_12(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_13, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(13, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_13(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_14, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(14, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_14(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_15, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(15, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_15(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_16, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(16, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_16(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_17, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(17, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_17(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_18, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(18, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_18(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_19, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(19, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_19(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_20, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(20, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_20(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_21, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(21, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_21(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_22, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(22, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_22(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_23, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(23, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_23(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_24, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(24, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_24(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_25, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(25, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_25(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_26, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(26, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_26(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_27, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(27, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_27(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_28, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(28, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_28(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_29, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(29, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_29(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_30, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(30, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_30(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_31, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(31, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_31(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_32, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(32, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_32(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_33, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(33, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_33(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_34, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(34, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_34(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_35, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(35, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_35(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_36, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(36, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_36(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_37, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(37, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_37(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_38, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(38, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_38(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_39, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(39, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_39(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_40, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(40, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_40(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_41, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(41, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_41(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_42, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(42, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_42(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_43, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(43, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_43(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_44, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(44, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_44(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_45, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(45, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_45(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_46, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(46, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_46(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_47, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(47, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_47(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_48, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(48, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_48(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_49, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(49, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_49(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_50, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(50, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_50(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_51, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(51, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_51(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_52, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(52, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_52(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_53, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(53, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_53(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_54, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(54, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_54(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_55, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(55, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_55(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_56, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(56, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_56(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_57, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(57, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_57(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_58, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(58, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_58(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_59, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(59, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_59(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_60, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(60, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_60(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_61, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(61, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_61(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_62, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(62, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_62(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_63, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(63, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_63(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_64, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(64, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_64(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_65, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(65, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_65(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_66, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(66, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_66(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_67, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(67, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_67(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_68, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(68, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_68(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_69, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(69, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_69(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_70, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(70, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_70(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_71, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(71, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_71(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_72, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(72, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_72(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_73, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(73, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_73(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_74, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(74, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_74(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_75, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(75, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_75(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_76, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(76, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_76(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_77, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(77, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_77(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_78, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(78, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_78(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_79, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(79, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_79(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_80, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(80, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_80(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_81, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(81, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_81(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_82, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(82, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_82(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_83, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(83, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_83(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_84, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(84, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_84(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_85, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(85, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_85(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_86, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(86, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_86(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_87, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(87, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_87(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_88, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(88, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_88(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_89, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(89, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_89(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_90, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(90, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_90(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_91, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(91, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_91(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_92, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(92, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_92(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_93, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(93, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_93(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_94, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(94, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_94(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_95, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(95, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_95(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_96, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(96, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_96(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_97, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(97, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_97(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_98, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(98, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_98(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_99, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(99, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_99(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_100, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(100, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_100(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_101, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(101, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_101(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_102, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(102, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_102(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_103, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(103, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_103(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_104, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(104, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_104(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_105, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(105, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_105(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_106, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(106, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_106(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_107, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(107, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_107(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_108, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(108, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_108(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_109, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(109, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_109(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_110, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(110, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_110(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_111, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(111, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_111(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_112, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(112, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_112(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_113, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(113, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_113(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_114, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(114, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_114(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_115, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(115, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_115(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_116, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(116, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_116(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_117, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(117, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_117(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_118, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(118, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_118(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_119, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(119, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_119(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_120, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(120, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_120(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_121, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(121, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_121(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_122, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(122, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_122(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_123, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(123, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_123(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_124, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(124, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_124(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_125, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(125, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_125(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_126, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(126, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_126(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_127, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(127, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_127(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_128, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(128, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_128(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_129, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(129, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_129(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_130, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(130, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_130(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_131, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(131, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_131(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_132, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(132, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_132(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_133, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(133, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_133(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_134, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(134, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_134(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_135, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(135, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_135(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_136, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(136, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_136(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_137, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(137, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_137(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_138, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(138, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_138(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_139, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(139, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_139(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_140, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(140, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_140(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_141, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(141, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_141(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_142, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(142, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_142(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_143, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(143, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_143(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_144, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(144, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_144(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_145, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(145, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_145(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_146, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(146, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_146(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_147, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(147, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_147(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_148, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(148, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_148(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_149, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(149, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_149(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_150, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(150, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_150(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_151, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(151, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_151(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_152, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(152, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_152(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_153, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(153, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_153(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_154, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(154, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_154(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_155, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(155, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_155(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_156, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(156, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_156(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_157, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(157, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_157(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_158, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(158, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_158(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_159, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(159, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_159(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_160, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(160, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_160(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_161, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(161, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_161(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_162, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(162, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_162(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_163, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(163, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_163(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_164, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(164, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_164(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_165, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(165, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_165(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_166, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(166, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_166(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_167, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(167, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_167(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_168, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(168, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_168(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_169, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(169, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_169(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_170, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(170, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_170(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_171, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(171, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_171(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_172, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(172, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_172(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_173, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(173, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_173(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_174, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(174, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_174(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_175, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(175, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_175(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_176, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(176, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_176(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_177, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(177, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_177(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_178, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(178, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_178(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_179, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(179, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_179(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_180, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(180, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_180(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_181, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(181, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_181(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_182, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(182, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_182(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_183, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(183, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_183(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_184, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(184, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_184(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_185, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(185, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_185(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_186, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(186, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_186(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_187, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(187, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_187(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_188, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(188, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_188(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_189, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(189, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_189(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_190, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(190, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_190(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_191, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(191, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_191(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_192, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(192, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_192(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_193, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(193, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_193(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_194, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(194, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_194(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_195, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(195, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_195(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_196, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(196, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_196(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_197, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(197, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_197(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_198, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(198, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_198(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_199, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(199, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_199(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_200, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(200, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_200(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_201, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(201, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_201(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_202, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(202, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_202(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_203, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(203, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_203(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_204, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(204, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_204(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_205, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(205, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_205(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_206, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(206, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_206(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_207, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(207, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_207(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_208, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(208, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_208(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_209, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(209, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_209(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_210, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(210, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_210(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_211, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(211, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_211(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_212, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(212, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_212(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_213, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(213, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_213(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_214, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(214, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_214(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_215, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(215, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_215(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_216, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(216, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_216(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_217, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(217, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_217(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_218, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(218, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_218(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_219, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(219, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_219(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_220, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(220, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_220(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_221, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(221, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_221(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_222, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(222, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_222(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_223, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(223, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_223(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_224, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(224, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_224(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_225, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(225, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_225(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_226, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(226, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_226(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_227, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(227, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_227(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_228, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(228, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_228(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_229, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(229, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_229(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_230, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(230, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_230(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_231, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(231, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_231(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_232, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(232, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_232(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_233, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(233, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_233(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_234, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(234, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_234(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_235, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(235, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_235(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_236, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(236, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_236(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_237, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(237, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_237(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_238, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(238, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_238(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_239, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(239, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_239(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_240, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(240, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_240(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_241, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(241, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_241(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_242, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(242, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_242(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_243, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(243, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_243(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_244, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(244, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_244(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_245, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(245, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_245(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_246, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(246, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_246(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_247, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(247, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_247(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_248, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(248, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_248(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_249, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(249, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_249(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_250, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(250, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_250(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_251, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(251, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_251(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_252, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(252, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_252(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_253, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(253, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_253(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_254, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(254, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_254(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_255, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(255, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_255(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_256, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(256, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-# define BOOST_PP_LIST_FOLD_LEFT_256(o, s, l) BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(l), BOOST_PP_LIST_FOLD_LEFT_257, s BOOST_PP_TUPLE_EAT_3)(o, BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(l), o)(257, s, BOOST_PP_LIST_FIRST(l)), BOOST_PP_LIST_REST(l))
-#
-# endif
diff --git a/boost/preprocessor/list/detail/fold_right.hpp b/boost/preprocessor/list/detail/fold_right.hpp
deleted file mode 100644
index 29146d5..0000000
--- a/boost/preprocessor/list/detail/fold_right.hpp
+++ /dev/null
@@ -1,277 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * Distributed under the Boost Software License, Version 1.0. (See
-#  * accompanying file LICENSE_1_0.txt or copy at
-#  * http://www.boost.org/LICENSE_1_0.txt)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_LIST_DETAIL_FOLD_RIGHT_HPP
-# define BOOST_PREPROCESSOR_LIST_DETAIL_FOLD_RIGHT_HPP
-#
-# include <boost/preprocessor/list/fold_left.hpp>
-# include <boost/preprocessor/list/reverse.hpp>
-#
-# define BOOST_PP_LIST_FOLD_RIGHT_1(o, s, l) BOOST_PP_LIST_FOLD_LEFT_1(o, s, BOOST_PP_LIST_REVERSE_D(1, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_2(o, s, l) BOOST_PP_LIST_FOLD_LEFT_2(o, s, BOOST_PP_LIST_REVERSE_D(2, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_3(o, s, l) BOOST_PP_LIST_FOLD_LEFT_3(o, s, BOOST_PP_LIST_REVERSE_D(3, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_4(o, s, l) BOOST_PP_LIST_FOLD_LEFT_4(o, s, BOOST_PP_LIST_REVERSE_D(4, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_5(o, s, l) BOOST_PP_LIST_FOLD_LEFT_5(o, s, BOOST_PP_LIST_REVERSE_D(5, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_6(o, s, l) BOOST_PP_LIST_FOLD_LEFT_6(o, s, BOOST_PP_LIST_REVERSE_D(6, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_7(o, s, l) BOOST_PP_LIST_FOLD_LEFT_7(o, s, BOOST_PP_LIST_REVERSE_D(7, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_8(o, s, l) BOOST_PP_LIST_FOLD_LEFT_8(o, s, BOOST_PP_LIST_REVERSE_D(8, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_9(o, s, l) BOOST_PP_LIST_FOLD_LEFT_9(o, s, BOOST_PP_LIST_REVERSE_D(9, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_10(o, s, l) BOOST_PP_LIST_FOLD_LEFT_10(o, s, BOOST_PP_LIST_REVERSE_D(10, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_11(o, s, l) BOOST_PP_LIST_FOLD_LEFT_11(o, s, BOOST_PP_LIST_REVERSE_D(11, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_12(o, s, l) BOOST_PP_LIST_FOLD_LEFT_12(o, s, BOOST_PP_LIST_REVERSE_D(12, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_13(o, s, l) BOOST_PP_LIST_FOLD_LEFT_13(o, s, BOOST_PP_LIST_REVERSE_D(13, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_14(o, s, l) BOOST_PP_LIST_FOLD_LEFT_14(o, s, BOOST_PP_LIST_REVERSE_D(14, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_15(o, s, l) BOOST_PP_LIST_FOLD_LEFT_15(o, s, BOOST_PP_LIST_REVERSE_D(15, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_16(o, s, l) BOOST_PP_LIST_FOLD_LEFT_16(o, s, BOOST_PP_LIST_REVERSE_D(16, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_17(o, s, l) BOOST_PP_LIST_FOLD_LEFT_17(o, s, BOOST_PP_LIST_REVERSE_D(17, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_18(o, s, l) BOOST_PP_LIST_FOLD_LEFT_18(o, s, BOOST_PP_LIST_REVERSE_D(18, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_19(o, s, l) BOOST_PP_LIST_FOLD_LEFT_19(o, s, BOOST_PP_LIST_REVERSE_D(19, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_20(o, s, l) BOOST_PP_LIST_FOLD_LEFT_20(o, s, BOOST_PP_LIST_REVERSE_D(20, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_21(o, s, l) BOOST_PP_LIST_FOLD_LEFT_21(o, s, BOOST_PP_LIST_REVERSE_D(21, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_22(o, s, l) BOOST_PP_LIST_FOLD_LEFT_22(o, s, BOOST_PP_LIST_REVERSE_D(22, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_23(o, s, l) BOOST_PP_LIST_FOLD_LEFT_23(o, s, BOOST_PP_LIST_REVERSE_D(23, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_24(o, s, l) BOOST_PP_LIST_FOLD_LEFT_24(o, s, BOOST_PP_LIST_REVERSE_D(24, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_25(o, s, l) BOOST_PP_LIST_FOLD_LEFT_25(o, s, BOOST_PP_LIST_REVERSE_D(25, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_26(o, s, l) BOOST_PP_LIST_FOLD_LEFT_26(o, s, BOOST_PP_LIST_REVERSE_D(26, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_27(o, s, l) BOOST_PP_LIST_FOLD_LEFT_27(o, s, BOOST_PP_LIST_REVERSE_D(27, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_28(o, s, l) BOOST_PP_LIST_FOLD_LEFT_28(o, s, BOOST_PP_LIST_REVERSE_D(28, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_29(o, s, l) BOOST_PP_LIST_FOLD_LEFT_29(o, s, BOOST_PP_LIST_REVERSE_D(29, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_30(o, s, l) BOOST_PP_LIST_FOLD_LEFT_30(o, s, BOOST_PP_LIST_REVERSE_D(30, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_31(o, s, l) BOOST_PP_LIST_FOLD_LEFT_31(o, s, BOOST_PP_LIST_REVERSE_D(31, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_32(o, s, l) BOOST_PP_LIST_FOLD_LEFT_32(o, s, BOOST_PP_LIST_REVERSE_D(32, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_33(o, s, l) BOOST_PP_LIST_FOLD_LEFT_33(o, s, BOOST_PP_LIST_REVERSE_D(33, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_34(o, s, l) BOOST_PP_LIST_FOLD_LEFT_34(o, s, BOOST_PP_LIST_REVERSE_D(34, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_35(o, s, l) BOOST_PP_LIST_FOLD_LEFT_35(o, s, BOOST_PP_LIST_REVERSE_D(35, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_36(o, s, l) BOOST_PP_LIST_FOLD_LEFT_36(o, s, BOOST_PP_LIST_REVERSE_D(36, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_37(o, s, l) BOOST_PP_LIST_FOLD_LEFT_37(o, s, BOOST_PP_LIST_REVERSE_D(37, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_38(o, s, l) BOOST_PP_LIST_FOLD_LEFT_38(o, s, BOOST_PP_LIST_REVERSE_D(38, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_39(o, s, l) BOOST_PP_LIST_FOLD_LEFT_39(o, s, BOOST_PP_LIST_REVERSE_D(39, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_40(o, s, l) BOOST_PP_LIST_FOLD_LEFT_40(o, s, BOOST_PP_LIST_REVERSE_D(40, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_41(o, s, l) BOOST_PP_LIST_FOLD_LEFT_41(o, s, BOOST_PP_LIST_REVERSE_D(41, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_42(o, s, l) BOOST_PP_LIST_FOLD_LEFT_42(o, s, BOOST_PP_LIST_REVERSE_D(42, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_43(o, s, l) BOOST_PP_LIST_FOLD_LEFT_43(o, s, BOOST_PP_LIST_REVERSE_D(43, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_44(o, s, l) BOOST_PP_LIST_FOLD_LEFT_44(o, s, BOOST_PP_LIST_REVERSE_D(44, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_45(o, s, l) BOOST_PP_LIST_FOLD_LEFT_45(o, s, BOOST_PP_LIST_REVERSE_D(45, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_46(o, s, l) BOOST_PP_LIST_FOLD_LEFT_46(o, s, BOOST_PP_LIST_REVERSE_D(46, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_47(o, s, l) BOOST_PP_LIST_FOLD_LEFT_47(o, s, BOOST_PP_LIST_REVERSE_D(47, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_48(o, s, l) BOOST_PP_LIST_FOLD_LEFT_48(o, s, BOOST_PP_LIST_REVERSE_D(48, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_49(o, s, l) BOOST_PP_LIST_FOLD_LEFT_49(o, s, BOOST_PP_LIST_REVERSE_D(49, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_50(o, s, l) BOOST_PP_LIST_FOLD_LEFT_50(o, s, BOOST_PP_LIST_REVERSE_D(50, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_51(o, s, l) BOOST_PP_LIST_FOLD_LEFT_51(o, s, BOOST_PP_LIST_REVERSE_D(51, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_52(o, s, l) BOOST_PP_LIST_FOLD_LEFT_52(o, s, BOOST_PP_LIST_REVERSE_D(52, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_53(o, s, l) BOOST_PP_LIST_FOLD_LEFT_53(o, s, BOOST_PP_LIST_REVERSE_D(53, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_54(o, s, l) BOOST_PP_LIST_FOLD_LEFT_54(o, s, BOOST_PP_LIST_REVERSE_D(54, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_55(o, s, l) BOOST_PP_LIST_FOLD_LEFT_55(o, s, BOOST_PP_LIST_REVERSE_D(55, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_56(o, s, l) BOOST_PP_LIST_FOLD_LEFT_56(o, s, BOOST_PP_LIST_REVERSE_D(56, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_57(o, s, l) BOOST_PP_LIST_FOLD_LEFT_57(o, s, BOOST_PP_LIST_REVERSE_D(57, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_58(o, s, l) BOOST_PP_LIST_FOLD_LEFT_58(o, s, BOOST_PP_LIST_REVERSE_D(58, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_59(o, s, l) BOOST_PP_LIST_FOLD_LEFT_59(o, s, BOOST_PP_LIST_REVERSE_D(59, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_60(o, s, l) BOOST_PP_LIST_FOLD_LEFT_60(o, s, BOOST_PP_LIST_REVERSE_D(60, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_61(o, s, l) BOOST_PP_LIST_FOLD_LEFT_61(o, s, BOOST_PP_LIST_REVERSE_D(61, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_62(o, s, l) BOOST_PP_LIST_FOLD_LEFT_62(o, s, BOOST_PP_LIST_REVERSE_D(62, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_63(o, s, l) BOOST_PP_LIST_FOLD_LEFT_63(o, s, BOOST_PP_LIST_REVERSE_D(63, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_64(o, s, l) BOOST_PP_LIST_FOLD_LEFT_64(o, s, BOOST_PP_LIST_REVERSE_D(64, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_65(o, s, l) BOOST_PP_LIST_FOLD_LEFT_65(o, s, BOOST_PP_LIST_REVERSE_D(65, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_66(o, s, l) BOOST_PP_LIST_FOLD_LEFT_66(o, s, BOOST_PP_LIST_REVERSE_D(66, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_67(o, s, l) BOOST_PP_LIST_FOLD_LEFT_67(o, s, BOOST_PP_LIST_REVERSE_D(67, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_68(o, s, l) BOOST_PP_LIST_FOLD_LEFT_68(o, s, BOOST_PP_LIST_REVERSE_D(68, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_69(o, s, l) BOOST_PP_LIST_FOLD_LEFT_69(o, s, BOOST_PP_LIST_REVERSE_D(69, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_70(o, s, l) BOOST_PP_LIST_FOLD_LEFT_70(o, s, BOOST_PP_LIST_REVERSE_D(70, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_71(o, s, l) BOOST_PP_LIST_FOLD_LEFT_71(o, s, BOOST_PP_LIST_REVERSE_D(71, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_72(o, s, l) BOOST_PP_LIST_FOLD_LEFT_72(o, s, BOOST_PP_LIST_REVERSE_D(72, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_73(o, s, l) BOOST_PP_LIST_FOLD_LEFT_73(o, s, BOOST_PP_LIST_REVERSE_D(73, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_74(o, s, l) BOOST_PP_LIST_FOLD_LEFT_74(o, s, BOOST_PP_LIST_REVERSE_D(74, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_75(o, s, l) BOOST_PP_LIST_FOLD_LEFT_75(o, s, BOOST_PP_LIST_REVERSE_D(75, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_76(o, s, l) BOOST_PP_LIST_FOLD_LEFT_76(o, s, BOOST_PP_LIST_REVERSE_D(76, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_77(o, s, l) BOOST_PP_LIST_FOLD_LEFT_77(o, s, BOOST_PP_LIST_REVERSE_D(77, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_78(o, s, l) BOOST_PP_LIST_FOLD_LEFT_78(o, s, BOOST_PP_LIST_REVERSE_D(78, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_79(o, s, l) BOOST_PP_LIST_FOLD_LEFT_79(o, s, BOOST_PP_LIST_REVERSE_D(79, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_80(o, s, l) BOOST_PP_LIST_FOLD_LEFT_80(o, s, BOOST_PP_LIST_REVERSE_D(80, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_81(o, s, l) BOOST_PP_LIST_FOLD_LEFT_81(o, s, BOOST_PP_LIST_REVERSE_D(81, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_82(o, s, l) BOOST_PP_LIST_FOLD_LEFT_82(o, s, BOOST_PP_LIST_REVERSE_D(82, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_83(o, s, l) BOOST_PP_LIST_FOLD_LEFT_83(o, s, BOOST_PP_LIST_REVERSE_D(83, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_84(o, s, l) BOOST_PP_LIST_FOLD_LEFT_84(o, s, BOOST_PP_LIST_REVERSE_D(84, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_85(o, s, l) BOOST_PP_LIST_FOLD_LEFT_85(o, s, BOOST_PP_LIST_REVERSE_D(85, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_86(o, s, l) BOOST_PP_LIST_FOLD_LEFT_86(o, s, BOOST_PP_LIST_REVERSE_D(86, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_87(o, s, l) BOOST_PP_LIST_FOLD_LEFT_87(o, s, BOOST_PP_LIST_REVERSE_D(87, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_88(o, s, l) BOOST_PP_LIST_FOLD_LEFT_88(o, s, BOOST_PP_LIST_REVERSE_D(88, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_89(o, s, l) BOOST_PP_LIST_FOLD_LEFT_89(o, s, BOOST_PP_LIST_REVERSE_D(89, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_90(o, s, l) BOOST_PP_LIST_FOLD_LEFT_90(o, s, BOOST_PP_LIST_REVERSE_D(90, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_91(o, s, l) BOOST_PP_LIST_FOLD_LEFT_91(o, s, BOOST_PP_LIST_REVERSE_D(91, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_92(o, s, l) BOOST_PP_LIST_FOLD_LEFT_92(o, s, BOOST_PP_LIST_REVERSE_D(92, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_93(o, s, l) BOOST_PP_LIST_FOLD_LEFT_93(o, s, BOOST_PP_LIST_REVERSE_D(93, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_94(o, s, l) BOOST_PP_LIST_FOLD_LEFT_94(o, s, BOOST_PP_LIST_REVERSE_D(94, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_95(o, s, l) BOOST_PP_LIST_FOLD_LEFT_95(o, s, BOOST_PP_LIST_REVERSE_D(95, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_96(o, s, l) BOOST_PP_LIST_FOLD_LEFT_96(o, s, BOOST_PP_LIST_REVERSE_D(96, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_97(o, s, l) BOOST_PP_LIST_FOLD_LEFT_97(o, s, BOOST_PP_LIST_REVERSE_D(97, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_98(o, s, l) BOOST_PP_LIST_FOLD_LEFT_98(o, s, BOOST_PP_LIST_REVERSE_D(98, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_99(o, s, l) BOOST_PP_LIST_FOLD_LEFT_99(o, s, BOOST_PP_LIST_REVERSE_D(99, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_100(o, s, l) BOOST_PP_LIST_FOLD_LEFT_100(o, s, BOOST_PP_LIST_REVERSE_D(100, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_101(o, s, l) BOOST_PP_LIST_FOLD_LEFT_101(o, s, BOOST_PP_LIST_REVERSE_D(101, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_102(o, s, l) BOOST_PP_LIST_FOLD_LEFT_102(o, s, BOOST_PP_LIST_REVERSE_D(102, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_103(o, s, l) BOOST_PP_LIST_FOLD_LEFT_103(o, s, BOOST_PP_LIST_REVERSE_D(103, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_104(o, s, l) BOOST_PP_LIST_FOLD_LEFT_104(o, s, BOOST_PP_LIST_REVERSE_D(104, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_105(o, s, l) BOOST_PP_LIST_FOLD_LEFT_105(o, s, BOOST_PP_LIST_REVERSE_D(105, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_106(o, s, l) BOOST_PP_LIST_FOLD_LEFT_106(o, s, BOOST_PP_LIST_REVERSE_D(106, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_107(o, s, l) BOOST_PP_LIST_FOLD_LEFT_107(o, s, BOOST_PP_LIST_REVERSE_D(107, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_108(o, s, l) BOOST_PP_LIST_FOLD_LEFT_108(o, s, BOOST_PP_LIST_REVERSE_D(108, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_109(o, s, l) BOOST_PP_LIST_FOLD_LEFT_109(o, s, BOOST_PP_LIST_REVERSE_D(109, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_110(o, s, l) BOOST_PP_LIST_FOLD_LEFT_110(o, s, BOOST_PP_LIST_REVERSE_D(110, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_111(o, s, l) BOOST_PP_LIST_FOLD_LEFT_111(o, s, BOOST_PP_LIST_REVERSE_D(111, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_112(o, s, l) BOOST_PP_LIST_FOLD_LEFT_112(o, s, BOOST_PP_LIST_REVERSE_D(112, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_113(o, s, l) BOOST_PP_LIST_FOLD_LEFT_113(o, s, BOOST_PP_LIST_REVERSE_D(113, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_114(o, s, l) BOOST_PP_LIST_FOLD_LEFT_114(o, s, BOOST_PP_LIST_REVERSE_D(114, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_115(o, s, l) BOOST_PP_LIST_FOLD_LEFT_115(o, s, BOOST_PP_LIST_REVERSE_D(115, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_116(o, s, l) BOOST_PP_LIST_FOLD_LEFT_116(o, s, BOOST_PP_LIST_REVERSE_D(116, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_117(o, s, l) BOOST_PP_LIST_FOLD_LEFT_117(o, s, BOOST_PP_LIST_REVERSE_D(117, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_118(o, s, l) BOOST_PP_LIST_FOLD_LEFT_118(o, s, BOOST_PP_LIST_REVERSE_D(118, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_119(o, s, l) BOOST_PP_LIST_FOLD_LEFT_119(o, s, BOOST_PP_LIST_REVERSE_D(119, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_120(o, s, l) BOOST_PP_LIST_FOLD_LEFT_120(o, s, BOOST_PP_LIST_REVERSE_D(120, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_121(o, s, l) BOOST_PP_LIST_FOLD_LEFT_121(o, s, BOOST_PP_LIST_REVERSE_D(121, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_122(o, s, l) BOOST_PP_LIST_FOLD_LEFT_122(o, s, BOOST_PP_LIST_REVERSE_D(122, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_123(o, s, l) BOOST_PP_LIST_FOLD_LEFT_123(o, s, BOOST_PP_LIST_REVERSE_D(123, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_124(o, s, l) BOOST_PP_LIST_FOLD_LEFT_124(o, s, BOOST_PP_LIST_REVERSE_D(124, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_125(o, s, l) BOOST_PP_LIST_FOLD_LEFT_125(o, s, BOOST_PP_LIST_REVERSE_D(125, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_126(o, s, l) BOOST_PP_LIST_FOLD_LEFT_126(o, s, BOOST_PP_LIST_REVERSE_D(126, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_127(o, s, l) BOOST_PP_LIST_FOLD_LEFT_127(o, s, BOOST_PP_LIST_REVERSE_D(127, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_128(o, s, l) BOOST_PP_LIST_FOLD_LEFT_128(o, s, BOOST_PP_LIST_REVERSE_D(128, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_129(o, s, l) BOOST_PP_LIST_FOLD_LEFT_129(o, s, BOOST_PP_LIST_REVERSE_D(129, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_130(o, s, l) BOOST_PP_LIST_FOLD_LEFT_130(o, s, BOOST_PP_LIST_REVERSE_D(130, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_131(o, s, l) BOOST_PP_LIST_FOLD_LEFT_131(o, s, BOOST_PP_LIST_REVERSE_D(131, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_132(o, s, l) BOOST_PP_LIST_FOLD_LEFT_132(o, s, BOOST_PP_LIST_REVERSE_D(132, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_133(o, s, l) BOOST_PP_LIST_FOLD_LEFT_133(o, s, BOOST_PP_LIST_REVERSE_D(133, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_134(o, s, l) BOOST_PP_LIST_FOLD_LEFT_134(o, s, BOOST_PP_LIST_REVERSE_D(134, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_135(o, s, l) BOOST_PP_LIST_FOLD_LEFT_135(o, s, BOOST_PP_LIST_REVERSE_D(135, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_136(o, s, l) BOOST_PP_LIST_FOLD_LEFT_136(o, s, BOOST_PP_LIST_REVERSE_D(136, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_137(o, s, l) BOOST_PP_LIST_FOLD_LEFT_137(o, s, BOOST_PP_LIST_REVERSE_D(137, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_138(o, s, l) BOOST_PP_LIST_FOLD_LEFT_138(o, s, BOOST_PP_LIST_REVERSE_D(138, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_139(o, s, l) BOOST_PP_LIST_FOLD_LEFT_139(o, s, BOOST_PP_LIST_REVERSE_D(139, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_140(o, s, l) BOOST_PP_LIST_FOLD_LEFT_140(o, s, BOOST_PP_LIST_REVERSE_D(140, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_141(o, s, l) BOOST_PP_LIST_FOLD_LEFT_141(o, s, BOOST_PP_LIST_REVERSE_D(141, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_142(o, s, l) BOOST_PP_LIST_FOLD_LEFT_142(o, s, BOOST_PP_LIST_REVERSE_D(142, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_143(o, s, l) BOOST_PP_LIST_FOLD_LEFT_143(o, s, BOOST_PP_LIST_REVERSE_D(143, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_144(o, s, l) BOOST_PP_LIST_FOLD_LEFT_144(o, s, BOOST_PP_LIST_REVERSE_D(144, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_145(o, s, l) BOOST_PP_LIST_FOLD_LEFT_145(o, s, BOOST_PP_LIST_REVERSE_D(145, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_146(o, s, l) BOOST_PP_LIST_FOLD_LEFT_146(o, s, BOOST_PP_LIST_REVERSE_D(146, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_147(o, s, l) BOOST_PP_LIST_FOLD_LEFT_147(o, s, BOOST_PP_LIST_REVERSE_D(147, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_148(o, s, l) BOOST_PP_LIST_FOLD_LEFT_148(o, s, BOOST_PP_LIST_REVERSE_D(148, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_149(o, s, l) BOOST_PP_LIST_FOLD_LEFT_149(o, s, BOOST_PP_LIST_REVERSE_D(149, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_150(o, s, l) BOOST_PP_LIST_FOLD_LEFT_150(o, s, BOOST_PP_LIST_REVERSE_D(150, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_151(o, s, l) BOOST_PP_LIST_FOLD_LEFT_151(o, s, BOOST_PP_LIST_REVERSE_D(151, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_152(o, s, l) BOOST_PP_LIST_FOLD_LEFT_152(o, s, BOOST_PP_LIST_REVERSE_D(152, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_153(o, s, l) BOOST_PP_LIST_FOLD_LEFT_153(o, s, BOOST_PP_LIST_REVERSE_D(153, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_154(o, s, l) BOOST_PP_LIST_FOLD_LEFT_154(o, s, BOOST_PP_LIST_REVERSE_D(154, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_155(o, s, l) BOOST_PP_LIST_FOLD_LEFT_155(o, s, BOOST_PP_LIST_REVERSE_D(155, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_156(o, s, l) BOOST_PP_LIST_FOLD_LEFT_156(o, s, BOOST_PP_LIST_REVERSE_D(156, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_157(o, s, l) BOOST_PP_LIST_FOLD_LEFT_157(o, s, BOOST_PP_LIST_REVERSE_D(157, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_158(o, s, l) BOOST_PP_LIST_FOLD_LEFT_158(o, s, BOOST_PP_LIST_REVERSE_D(158, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_159(o, s, l) BOOST_PP_LIST_FOLD_LEFT_159(o, s, BOOST_PP_LIST_REVERSE_D(159, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_160(o, s, l) BOOST_PP_LIST_FOLD_LEFT_160(o, s, BOOST_PP_LIST_REVERSE_D(160, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_161(o, s, l) BOOST_PP_LIST_FOLD_LEFT_161(o, s, BOOST_PP_LIST_REVERSE_D(161, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_162(o, s, l) BOOST_PP_LIST_FOLD_LEFT_162(o, s, BOOST_PP_LIST_REVERSE_D(162, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_163(o, s, l) BOOST_PP_LIST_FOLD_LEFT_163(o, s, BOOST_PP_LIST_REVERSE_D(163, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_164(o, s, l) BOOST_PP_LIST_FOLD_LEFT_164(o, s, BOOST_PP_LIST_REVERSE_D(164, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_165(o, s, l) BOOST_PP_LIST_FOLD_LEFT_165(o, s, BOOST_PP_LIST_REVERSE_D(165, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_166(o, s, l) BOOST_PP_LIST_FOLD_LEFT_166(o, s, BOOST_PP_LIST_REVERSE_D(166, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_167(o, s, l) BOOST_PP_LIST_FOLD_LEFT_167(o, s, BOOST_PP_LIST_REVERSE_D(167, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_168(o, s, l) BOOST_PP_LIST_FOLD_LEFT_168(o, s, BOOST_PP_LIST_REVERSE_D(168, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_169(o, s, l) BOOST_PP_LIST_FOLD_LEFT_169(o, s, BOOST_PP_LIST_REVERSE_D(169, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_170(o, s, l) BOOST_PP_LIST_FOLD_LEFT_170(o, s, BOOST_PP_LIST_REVERSE_D(170, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_171(o, s, l) BOOST_PP_LIST_FOLD_LEFT_171(o, s, BOOST_PP_LIST_REVERSE_D(171, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_172(o, s, l) BOOST_PP_LIST_FOLD_LEFT_172(o, s, BOOST_PP_LIST_REVERSE_D(172, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_173(o, s, l) BOOST_PP_LIST_FOLD_LEFT_173(o, s, BOOST_PP_LIST_REVERSE_D(173, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_174(o, s, l) BOOST_PP_LIST_FOLD_LEFT_174(o, s, BOOST_PP_LIST_REVERSE_D(174, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_175(o, s, l) BOOST_PP_LIST_FOLD_LEFT_175(o, s, BOOST_PP_LIST_REVERSE_D(175, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_176(o, s, l) BOOST_PP_LIST_FOLD_LEFT_176(o, s, BOOST_PP_LIST_REVERSE_D(176, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_177(o, s, l) BOOST_PP_LIST_FOLD_LEFT_177(o, s, BOOST_PP_LIST_REVERSE_D(177, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_178(o, s, l) BOOST_PP_LIST_FOLD_LEFT_178(o, s, BOOST_PP_LIST_REVERSE_D(178, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_179(o, s, l) BOOST_PP_LIST_FOLD_LEFT_179(o, s, BOOST_PP_LIST_REVERSE_D(179, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_180(o, s, l) BOOST_PP_LIST_FOLD_LEFT_180(o, s, BOOST_PP_LIST_REVERSE_D(180, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_181(o, s, l) BOOST_PP_LIST_FOLD_LEFT_181(o, s, BOOST_PP_LIST_REVERSE_D(181, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_182(o, s, l) BOOST_PP_LIST_FOLD_LEFT_182(o, s, BOOST_PP_LIST_REVERSE_D(182, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_183(o, s, l) BOOST_PP_LIST_FOLD_LEFT_183(o, s, BOOST_PP_LIST_REVERSE_D(183, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_184(o, s, l) BOOST_PP_LIST_FOLD_LEFT_184(o, s, BOOST_PP_LIST_REVERSE_D(184, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_185(o, s, l) BOOST_PP_LIST_FOLD_LEFT_185(o, s, BOOST_PP_LIST_REVERSE_D(185, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_186(o, s, l) BOOST_PP_LIST_FOLD_LEFT_186(o, s, BOOST_PP_LIST_REVERSE_D(186, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_187(o, s, l) BOOST_PP_LIST_FOLD_LEFT_187(o, s, BOOST_PP_LIST_REVERSE_D(187, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_188(o, s, l) BOOST_PP_LIST_FOLD_LEFT_188(o, s, BOOST_PP_LIST_REVERSE_D(188, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_189(o, s, l) BOOST_PP_LIST_FOLD_LEFT_189(o, s, BOOST_PP_LIST_REVERSE_D(189, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_190(o, s, l) BOOST_PP_LIST_FOLD_LEFT_190(o, s, BOOST_PP_LIST_REVERSE_D(190, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_191(o, s, l) BOOST_PP_LIST_FOLD_LEFT_191(o, s, BOOST_PP_LIST_REVERSE_D(191, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_192(o, s, l) BOOST_PP_LIST_FOLD_LEFT_192(o, s, BOOST_PP_LIST_REVERSE_D(192, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_193(o, s, l) BOOST_PP_LIST_FOLD_LEFT_193(o, s, BOOST_PP_LIST_REVERSE_D(193, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_194(o, s, l) BOOST_PP_LIST_FOLD_LEFT_194(o, s, BOOST_PP_LIST_REVERSE_D(194, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_195(o, s, l) BOOST_PP_LIST_FOLD_LEFT_195(o, s, BOOST_PP_LIST_REVERSE_D(195, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_196(o, s, l) BOOST_PP_LIST_FOLD_LEFT_196(o, s, BOOST_PP_LIST_REVERSE_D(196, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_197(o, s, l) BOOST_PP_LIST_FOLD_LEFT_197(o, s, BOOST_PP_LIST_REVERSE_D(197, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_198(o, s, l) BOOST_PP_LIST_FOLD_LEFT_198(o, s, BOOST_PP_LIST_REVERSE_D(198, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_199(o, s, l) BOOST_PP_LIST_FOLD_LEFT_199(o, s, BOOST_PP_LIST_REVERSE_D(199, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_200(o, s, l) BOOST_PP_LIST_FOLD_LEFT_200(o, s, BOOST_PP_LIST_REVERSE_D(200, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_201(o, s, l) BOOST_PP_LIST_FOLD_LEFT_201(o, s, BOOST_PP_LIST_REVERSE_D(201, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_202(o, s, l) BOOST_PP_LIST_FOLD_LEFT_202(o, s, BOOST_PP_LIST_REVERSE_D(202, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_203(o, s, l) BOOST_PP_LIST_FOLD_LEFT_203(o, s, BOOST_PP_LIST_REVERSE_D(203, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_204(o, s, l) BOOST_PP_LIST_FOLD_LEFT_204(o, s, BOOST_PP_LIST_REVERSE_D(204, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_205(o, s, l) BOOST_PP_LIST_FOLD_LEFT_205(o, s, BOOST_PP_LIST_REVERSE_D(205, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_206(o, s, l) BOOST_PP_LIST_FOLD_LEFT_206(o, s, BOOST_PP_LIST_REVERSE_D(206, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_207(o, s, l) BOOST_PP_LIST_FOLD_LEFT_207(o, s, BOOST_PP_LIST_REVERSE_D(207, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_208(o, s, l) BOOST_PP_LIST_FOLD_LEFT_208(o, s, BOOST_PP_LIST_REVERSE_D(208, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_209(o, s, l) BOOST_PP_LIST_FOLD_LEFT_209(o, s, BOOST_PP_LIST_REVERSE_D(209, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_210(o, s, l) BOOST_PP_LIST_FOLD_LEFT_210(o, s, BOOST_PP_LIST_REVERSE_D(210, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_211(o, s, l) BOOST_PP_LIST_FOLD_LEFT_211(o, s, BOOST_PP_LIST_REVERSE_D(211, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_212(o, s, l) BOOST_PP_LIST_FOLD_LEFT_212(o, s, BOOST_PP_LIST_REVERSE_D(212, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_213(o, s, l) BOOST_PP_LIST_FOLD_LEFT_213(o, s, BOOST_PP_LIST_REVERSE_D(213, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_214(o, s, l) BOOST_PP_LIST_FOLD_LEFT_214(o, s, BOOST_PP_LIST_REVERSE_D(214, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_215(o, s, l) BOOST_PP_LIST_FOLD_LEFT_215(o, s, BOOST_PP_LIST_REVERSE_D(215, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_216(o, s, l) BOOST_PP_LIST_FOLD_LEFT_216(o, s, BOOST_PP_LIST_REVERSE_D(216, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_217(o, s, l) BOOST_PP_LIST_FOLD_LEFT_217(o, s, BOOST_PP_LIST_REVERSE_D(217, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_218(o, s, l) BOOST_PP_LIST_FOLD_LEFT_218(o, s, BOOST_PP_LIST_REVERSE_D(218, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_219(o, s, l) BOOST_PP_LIST_FOLD_LEFT_219(o, s, BOOST_PP_LIST_REVERSE_D(219, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_220(o, s, l) BOOST_PP_LIST_FOLD_LEFT_220(o, s, BOOST_PP_LIST_REVERSE_D(220, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_221(o, s, l) BOOST_PP_LIST_FOLD_LEFT_221(o, s, BOOST_PP_LIST_REVERSE_D(221, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_222(o, s, l) BOOST_PP_LIST_FOLD_LEFT_222(o, s, BOOST_PP_LIST_REVERSE_D(222, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_223(o, s, l) BOOST_PP_LIST_FOLD_LEFT_223(o, s, BOOST_PP_LIST_REVERSE_D(223, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_224(o, s, l) BOOST_PP_LIST_FOLD_LEFT_224(o, s, BOOST_PP_LIST_REVERSE_D(224, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_225(o, s, l) BOOST_PP_LIST_FOLD_LEFT_225(o, s, BOOST_PP_LIST_REVERSE_D(225, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_226(o, s, l) BOOST_PP_LIST_FOLD_LEFT_226(o, s, BOOST_PP_LIST_REVERSE_D(226, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_227(o, s, l) BOOST_PP_LIST_FOLD_LEFT_227(o, s, BOOST_PP_LIST_REVERSE_D(227, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_228(o, s, l) BOOST_PP_LIST_FOLD_LEFT_228(o, s, BOOST_PP_LIST_REVERSE_D(228, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_229(o, s, l) BOOST_PP_LIST_FOLD_LEFT_229(o, s, BOOST_PP_LIST_REVERSE_D(229, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_230(o, s, l) BOOST_PP_LIST_FOLD_LEFT_230(o, s, BOOST_PP_LIST_REVERSE_D(230, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_231(o, s, l) BOOST_PP_LIST_FOLD_LEFT_231(o, s, BOOST_PP_LIST_REVERSE_D(231, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_232(o, s, l) BOOST_PP_LIST_FOLD_LEFT_232(o, s, BOOST_PP_LIST_REVERSE_D(232, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_233(o, s, l) BOOST_PP_LIST_FOLD_LEFT_233(o, s, BOOST_PP_LIST_REVERSE_D(233, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_234(o, s, l) BOOST_PP_LIST_FOLD_LEFT_234(o, s, BOOST_PP_LIST_REVERSE_D(234, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_235(o, s, l) BOOST_PP_LIST_FOLD_LEFT_235(o, s, BOOST_PP_LIST_REVERSE_D(235, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_236(o, s, l) BOOST_PP_LIST_FOLD_LEFT_236(o, s, BOOST_PP_LIST_REVERSE_D(236, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_237(o, s, l) BOOST_PP_LIST_FOLD_LEFT_237(o, s, BOOST_PP_LIST_REVERSE_D(237, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_238(o, s, l) BOOST_PP_LIST_FOLD_LEFT_238(o, s, BOOST_PP_LIST_REVERSE_D(238, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_239(o, s, l) BOOST_PP_LIST_FOLD_LEFT_239(o, s, BOOST_PP_LIST_REVERSE_D(239, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_240(o, s, l) BOOST_PP_LIST_FOLD_LEFT_240(o, s, BOOST_PP_LIST_REVERSE_D(240, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_241(o, s, l) BOOST_PP_LIST_FOLD_LEFT_241(o, s, BOOST_PP_LIST_REVERSE_D(241, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_242(o, s, l) BOOST_PP_LIST_FOLD_LEFT_242(o, s, BOOST_PP_LIST_REVERSE_D(242, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_243(o, s, l) BOOST_PP_LIST_FOLD_LEFT_243(o, s, BOOST_PP_LIST_REVERSE_D(243, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_244(o, s, l) BOOST_PP_LIST_FOLD_LEFT_244(o, s, BOOST_PP_LIST_REVERSE_D(244, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_245(o, s, l) BOOST_PP_LIST_FOLD_LEFT_245(o, s, BOOST_PP_LIST_REVERSE_D(245, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_246(o, s, l) BOOST_PP_LIST_FOLD_LEFT_246(o, s, BOOST_PP_LIST_REVERSE_D(246, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_247(o, s, l) BOOST_PP_LIST_FOLD_LEFT_247(o, s, BOOST_PP_LIST_REVERSE_D(247, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_248(o, s, l) BOOST_PP_LIST_FOLD_LEFT_248(o, s, BOOST_PP_LIST_REVERSE_D(248, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_249(o, s, l) BOOST_PP_LIST_FOLD_LEFT_249(o, s, BOOST_PP_LIST_REVERSE_D(249, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_250(o, s, l) BOOST_PP_LIST_FOLD_LEFT_250(o, s, BOOST_PP_LIST_REVERSE_D(250, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_251(o, s, l) BOOST_PP_LIST_FOLD_LEFT_251(o, s, BOOST_PP_LIST_REVERSE_D(251, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_252(o, s, l) BOOST_PP_LIST_FOLD_LEFT_252(o, s, BOOST_PP_LIST_REVERSE_D(252, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_253(o, s, l) BOOST_PP_LIST_FOLD_LEFT_253(o, s, BOOST_PP_LIST_REVERSE_D(253, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_254(o, s, l) BOOST_PP_LIST_FOLD_LEFT_254(o, s, BOOST_PP_LIST_REVERSE_D(254, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_255(o, s, l) BOOST_PP_LIST_FOLD_LEFT_255(o, s, BOOST_PP_LIST_REVERSE_D(255, l))
-# define BOOST_PP_LIST_FOLD_RIGHT_256(o, s, l) BOOST_PP_LIST_FOLD_LEFT_256(o, s, BOOST_PP_LIST_REVERSE_D(256, l))
-#
-# endif
diff --git a/boost/preprocessor/list/fold_left.hpp b/boost/preprocessor/list/fold_left.hpp
deleted file mode 100644
index f235aec..0000000
--- a/boost/preprocessor/list/fold_left.hpp
+++ /dev/null
@@ -1,303 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * Distributed under the Boost Software License, Version 1.0. (See
-#  * accompanying file LICENSE_1_0.txt or copy at
-#  * http://www.boost.org/LICENSE_1_0.txt)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_LIST_FOLD_LEFT_HPP
-# define BOOST_PREPROCESSOR_LIST_FOLD_LEFT_HPP
-#
-# include <boost/preprocessor/cat.hpp>
-# include <boost/preprocessor/control/while.hpp>
-# include <boost/preprocessor/debug/error.hpp>
-# include <boost/preprocessor/detail/auto_rec.hpp>
-#
-# /* BOOST_PP_LIST_FOLD_LEFT */
-#
-# if 0
-#    define BOOST_PP_LIST_FOLD_LEFT(op, state, list)
-# endif
-#
-# define BOOST_PP_LIST_FOLD_LEFT BOOST_PP_CAT(BOOST_PP_LIST_FOLD_LEFT_, BOOST_PP_AUTO_REC(BOOST_PP_WHILE_P, 256))
-#
-# define BOOST_PP_LIST_FOLD_LEFT_257(o, s, l) BOOST_PP_ERROR(0x0004)
-#
-# define BOOST_PP_LIST_FOLD_LEFT_D(d, o, s, l) BOOST_PP_LIST_FOLD_LEFT_ ## d(o, s, l)
-# define BOOST_PP_LIST_FOLD_LEFT_2ND BOOST_PP_LIST_FOLD_LEFT
-# define BOOST_PP_LIST_FOLD_LEFT_2ND_D BOOST_PP_LIST_FOLD_LEFT_D
-#
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    include <boost/preprocessor/list/detail/edg/fold_left.hpp>
-# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC()
-#    include <boost/preprocessor/list/detail/dmc/fold_left.hpp>
-# else
-#    include <boost/preprocessor/list/detail/fold_left.hpp>
-# endif
-#
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_NIL 1
-#
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_1(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_2(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_3(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_4(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_5(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_6(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_7(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_8(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_9(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_10(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_11(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_12(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_13(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_14(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_15(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_16(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_17(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_18(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_19(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_20(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_21(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_22(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_23(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_24(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_25(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_26(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_27(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_28(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_29(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_30(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_31(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_32(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_33(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_34(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_35(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_36(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_37(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_38(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_39(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_40(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_41(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_42(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_43(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_44(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_45(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_46(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_47(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_48(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_49(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_50(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_51(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_52(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_53(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_54(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_55(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_56(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_57(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_58(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_59(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_60(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_61(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_62(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_63(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_64(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_65(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_66(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_67(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_68(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_69(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_70(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_71(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_72(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_73(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_74(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_75(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_76(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_77(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_78(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_79(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_80(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_81(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_82(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_83(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_84(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_85(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_86(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_87(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_88(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_89(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_90(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_91(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_92(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_93(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_94(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_95(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_96(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_97(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_98(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_99(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_100(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_101(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_102(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_103(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_104(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_105(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_106(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_107(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_108(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_109(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_110(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_111(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_112(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_113(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_114(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_115(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_116(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_117(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_118(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_119(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_120(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_121(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_122(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_123(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_124(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_125(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_126(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_127(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_128(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_129(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_130(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_131(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_132(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_133(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_134(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_135(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_136(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_137(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_138(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_139(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_140(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_141(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_142(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_143(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_144(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_145(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_146(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_147(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_148(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_149(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_150(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_151(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_152(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_153(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_154(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_155(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_156(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_157(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_158(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_159(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_160(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_161(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_162(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_163(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_164(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_165(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_166(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_167(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_168(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_169(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_170(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_171(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_172(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_173(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_174(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_175(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_176(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_177(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_178(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_179(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_180(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_181(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_182(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_183(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_184(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_185(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_186(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_187(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_188(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_189(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_190(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_191(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_192(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_193(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_194(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_195(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_196(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_197(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_198(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_199(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_200(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_201(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_202(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_203(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_204(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_205(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_206(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_207(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_208(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_209(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_210(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_211(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_212(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_213(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_214(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_215(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_216(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_217(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_218(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_219(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_220(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_221(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_222(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_223(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_224(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_225(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_226(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_227(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_228(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_229(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_230(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_231(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_232(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_233(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_234(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_235(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_236(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_237(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_238(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_239(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_240(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_241(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_242(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_243(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_244(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_245(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_246(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_247(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_248(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_249(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_250(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_251(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_252(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_253(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_254(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_255(o, s, l) 0
-# define BOOST_PP_LIST_FOLD_LEFT_CHECK_BOOST_PP_LIST_FOLD_LEFT_256(o, s, l) 0
-#
-# endif
diff --git a/boost/preprocessor/list/fold_right.hpp b/boost/preprocessor/list/fold_right.hpp
deleted file mode 100644
index ce18afe..0000000
--- a/boost/preprocessor/list/fold_right.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * Distributed under the Boost Software License, Version 1.0. (See
-#  * accompanying file LICENSE_1_0.txt or copy at
-#  * http://www.boost.org/LICENSE_1_0.txt)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_LIST_FOLD_RIGHT_HPP
-# define BOOST_PREPROCESSOR_LIST_FOLD_RIGHT_HPP
-#
-# include <boost/preprocessor/cat.hpp>
-# include <boost/preprocessor/control/while.hpp>
-# include <boost/preprocessor/debug/error.hpp>
-# include <boost/preprocessor/detail/auto_rec.hpp>
-#
-# if 0
-#    define BOOST_PP_LIST_FOLD_RIGHT(op, state, list)
-# endif
-#
-# define BOOST_PP_LIST_FOLD_RIGHT BOOST_PP_CAT(BOOST_PP_LIST_FOLD_RIGHT_, BOOST_PP_AUTO_REC(BOOST_PP_WHILE_P, 256))
-#
-# define BOOST_PP_LIST_FOLD_RIGHT_257(o, s, l) BOOST_PP_ERROR(0x0004)
-#
-# define BOOST_PP_LIST_FOLD_RIGHT_D(d, o, s, l) BOOST_PP_LIST_FOLD_RIGHT_ ## d(o, s, l)
-# define BOOST_PP_LIST_FOLD_RIGHT_2ND BOOST_PP_LIST_FOLD_RIGHT
-# define BOOST_PP_LIST_FOLD_RIGHT_2ND_D BOOST_PP_LIST_FOLD_RIGHT_D
-#
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    include <boost/preprocessor/list/detail/edg/fold_right.hpp>
-# else
-#    include <boost/preprocessor/list/detail/fold_right.hpp>
-# endif
-#
-# endif
diff --git a/boost/preprocessor/list/for_each_i.hpp b/boost/preprocessor/list/for_each_i.hpp
deleted file mode 100644
index 8f02e2e..0000000
--- a/boost/preprocessor/list/for_each_i.hpp
+++ /dev/null
@@ -1,65 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * Distributed under the Boost Software License, Version 1.0. (See
-#  * accompanying file LICENSE_1_0.txt or copy at
-#  * http://www.boost.org/LICENSE_1_0.txt)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_LIST_LIST_FOR_EACH_I_HPP
-# define BOOST_PREPROCESSOR_LIST_LIST_FOR_EACH_I_HPP
-#
-# include <boost/preprocessor/arithmetic/inc.hpp>
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/list/adt.hpp>
-# include <boost/preprocessor/repetition/for.hpp>
-# include <boost/preprocessor/tuple/elem.hpp>
-# include <boost/preprocessor/tuple/rem.hpp>
-#
-# /* BOOST_PP_LIST_FOR_EACH_I */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() && ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
-#    define BOOST_PP_LIST_FOR_EACH_I(macro, data, list) BOOST_PP_FOR((macro, data, list, 0), BOOST_PP_LIST_FOR_EACH_I_P, BOOST_PP_LIST_FOR_EACH_I_O, BOOST_PP_LIST_FOR_EACH_I_M)
-# else
-#    define BOOST_PP_LIST_FOR_EACH_I(macro, data, list) BOOST_PP_LIST_FOR_EACH_I_I(macro, data, list)
-#    define BOOST_PP_LIST_FOR_EACH_I_I(macro, data, list) BOOST_PP_FOR((macro, data, list, 0), BOOST_PP_LIST_FOR_EACH_I_P, BOOST_PP_LIST_FOR_EACH_I_O, BOOST_PP_LIST_FOR_EACH_I_M)
-# endif
-#
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()
-#    define BOOST_PP_LIST_FOR_EACH_I_P(r, x) BOOST_PP_LIST_FOR_EACH_I_P_D x
-#    define BOOST_PP_LIST_FOR_EACH_I_P_D(m, d, l, i) BOOST_PP_LIST_IS_CONS(l)
-# else
-#    define BOOST_PP_LIST_FOR_EACH_I_P(r, x) BOOST_PP_LIST_IS_CONS(BOOST_PP_TUPLE_ELEM(4, 2, x))
-# endif
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#    define BOOST_PP_LIST_FOR_EACH_I_O(r, x) BOOST_PP_LIST_FOR_EACH_I_O_D x
-#    define BOOST_PP_LIST_FOR_EACH_I_O_D(m, d, l, i) (m, d, BOOST_PP_LIST_REST(l), BOOST_PP_INC(i))
-# else
-#    define BOOST_PP_LIST_FOR_EACH_I_O(r, x) (BOOST_PP_TUPLE_ELEM(4, 0, x), BOOST_PP_TUPLE_ELEM(4, 1, x), BOOST_PP_LIST_REST(BOOST_PP_TUPLE_ELEM(4, 2, x)), BOOST_PP_INC(BOOST_PP_TUPLE_ELEM(4, 3, x)))
-# endif
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_LIST_FOR_EACH_I_M(r, x) BOOST_PP_LIST_FOR_EACH_I_M_D(r, BOOST_PP_TUPLE_ELEM(4, 0, x), BOOST_PP_TUPLE_ELEM(4, 1, x), BOOST_PP_TUPLE_ELEM(4, 2, x), BOOST_PP_TUPLE_ELEM(4, 3, x))
-# else
-#    define BOOST_PP_LIST_FOR_EACH_I_M(r, x) BOOST_PP_LIST_FOR_EACH_I_M_I(r, BOOST_PP_TUPLE_REM_4 x)
-#    define BOOST_PP_LIST_FOR_EACH_I_M_I(r, x_e) BOOST_PP_LIST_FOR_EACH_I_M_D(r, x_e)
-# endif
-#
-# define BOOST_PP_LIST_FOR_EACH_I_M_D(r, m, d, l, i) m(r, d, i, BOOST_PP_LIST_FIRST(l))
-#
-# /* BOOST_PP_LIST_FOR_EACH_I_R */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_LIST_FOR_EACH_I_R(r, macro, data, list) BOOST_PP_FOR_ ## r((macro, data, list, 0), BOOST_PP_LIST_FOR_EACH_I_P, BOOST_PP_LIST_FOR_EACH_I_O, BOOST_PP_LIST_FOR_EACH_I_M)
-# else
-#    define BOOST_PP_LIST_FOR_EACH_I_R(r, macro, data, list) BOOST_PP_LIST_FOR_EACH_I_R_I(r, macro, data, list)
-#    define BOOST_PP_LIST_FOR_EACH_I_R_I(r, macro, data, list) BOOST_PP_FOR_ ## r((macro, data, list, 0), BOOST_PP_LIST_FOR_EACH_I_P, BOOST_PP_LIST_FOR_EACH_I_O, BOOST_PP_LIST_FOR_EACH_I_M)
-# endif
-#
-# endif
diff --git a/boost/preprocessor/list/reverse.hpp b/boost/preprocessor/list/reverse.hpp
deleted file mode 100644
index 651da05..0000000
--- a/boost/preprocessor/list/reverse.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * Distributed under the Boost Software License, Version 1.0. (See
-#  * accompanying file LICENSE_1_0.txt or copy at
-#  * http://www.boost.org/LICENSE_1_0.txt)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_LIST_REVERSE_HPP
-# define BOOST_PREPROCESSOR_LIST_REVERSE_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/list/fold_left.hpp>
-#
-# /* BOOST_PP_LIST_REVERSE */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_LIST_REVERSE(list) BOOST_PP_LIST_FOLD_LEFT(BOOST_PP_LIST_REVERSE_O, BOOST_PP_NIL, list)
-# else
-#    define BOOST_PP_LIST_REVERSE(list) BOOST_PP_LIST_REVERSE_I(list)
-#    define BOOST_PP_LIST_REVERSE_I(list) BOOST_PP_LIST_FOLD_LEFT(BOOST_PP_LIST_REVERSE_O, BOOST_PP_NIL, list)
-# endif
-#
-# define BOOST_PP_LIST_REVERSE_O(d, s, x) (x, s)
-#
-# /* BOOST_PP_LIST_REVERSE_D */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_LIST_REVERSE_D(d, list) BOOST_PP_LIST_FOLD_LEFT_ ## d(BOOST_PP_LIST_REVERSE_O, BOOST_PP_NIL, list)
-# else
-#    define BOOST_PP_LIST_REVERSE_D(d, list) BOOST_PP_LIST_REVERSE_D_I(d, list)
-#    define BOOST_PP_LIST_REVERSE_D_I(d, list) BOOST_PP_LIST_FOLD_LEFT_ ## d(BOOST_PP_LIST_REVERSE_O, BOOST_PP_NIL, list)
-# endif
-#
-# endif
diff --git a/boost/preprocessor/list/transform.hpp b/boost/preprocessor/list/transform.hpp
deleted file mode 100644
index 840f306..0000000
--- a/boost/preprocessor/list/transform.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * Distributed under the Boost Software License, Version 1.0. (See
-#  * accompanying file LICENSE_1_0.txt or copy at
-#  * http://www.boost.org/LICENSE_1_0.txt)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_LIST_TRANSFORM_HPP
-# define BOOST_PREPROCESSOR_LIST_TRANSFORM_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/list/fold_right.hpp>
-# include <boost/preprocessor/tuple/elem.hpp>
-# include <boost/preprocessor/tuple/rem.hpp>
-#
-# /* BOOST_PP_LIST_TRANSFORM */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_LIST_TRANSFORM(op, data, list) BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_LIST_FOLD_RIGHT(BOOST_PP_LIST_TRANSFORM_O, (op, data, BOOST_PP_NIL), list))
-# else
-#    define BOOST_PP_LIST_TRANSFORM(op, data, list) BOOST_PP_LIST_TRANSFORM_I(op, data, list)
-#    define BOOST_PP_LIST_TRANSFORM_I(op, data, list) BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_LIST_FOLD_RIGHT(BOOST_PP_LIST_TRANSFORM_O, (op, data, BOOST_PP_NIL), list))
-# endif
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_LIST_TRANSFORM_O(d, odr, elem) BOOST_PP_LIST_TRANSFORM_O_D(d, BOOST_PP_TUPLE_ELEM(3, 0, odr), BOOST_PP_TUPLE_ELEM(3, 1, odr), BOOST_PP_TUPLE_ELEM(3, 2, odr), elem)
-# else
-#    define BOOST_PP_LIST_TRANSFORM_O(d, odr, elem) BOOST_PP_LIST_TRANSFORM_O_I(d, BOOST_PP_TUPLE_REM_3 odr, elem)
-#    define BOOST_PP_LIST_TRANSFORM_O_I(d, im, elem) BOOST_PP_LIST_TRANSFORM_O_D(d, im, elem)
-# endif
-#
-# define BOOST_PP_LIST_TRANSFORM_O_D(d, op, data, res, elem) (op, data, (op(d, data, elem), res))
-#
-# /* BOOST_PP_LIST_TRANSFORM_D */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_LIST_TRANSFORM_D(d, op, data, list) BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_LIST_FOLD_RIGHT_ ## d(BOOST_PP_LIST_TRANSFORM_O, (op, data, BOOST_PP_NIL), list))
-# else
-#    define BOOST_PP_LIST_TRANSFORM_D(d, op, data, list) BOOST_PP_LIST_TRANSFORM_D_I(d, op, data, list)
-#    define BOOST_PP_LIST_TRANSFORM_D_I(d, op, data, list) BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_LIST_FOLD_RIGHT_ ## d(BOOST_PP_LIST_TRANSFORM_O, (op, data, BOOST_PP_NIL), list))
-# endif
-#
-# endif
diff --git a/boost/preprocessor/logical/and.hpp b/boost/preprocessor/logical/and.hpp
deleted file mode 100644
index 8590365..0000000
--- a/boost/preprocessor/logical/and.hpp
+++ /dev/null
@@ -1,30 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * Distributed under the Boost Software License, Version 1.0. (See
-#  * accompanying file LICENSE_1_0.txt or copy at
-#  * http://www.boost.org/LICENSE_1_0.txt)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_LOGICAL_AND_HPP
-# define BOOST_PREPROCESSOR_LOGICAL_AND_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/logical/bool.hpp>
-# include <boost/preprocessor/logical/bitand.hpp>
-#
-# /* BOOST_PP_AND */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_AND(p, q) BOOST_PP_BITAND(BOOST_PP_BOOL(p), BOOST_PP_BOOL(q))
-# else
-#    define BOOST_PP_AND(p, q) BOOST_PP_AND_I(p, q)
-#    define BOOST_PP_AND_I(p, q) BOOST_PP_BITAND(BOOST_PP_BOOL(p), BOOST_PP_BOOL(q))
-# endif
-#
-# endif
diff --git a/boost/preprocessor/logical/bitand.hpp b/boost/preprocessor/logical/bitand.hpp
deleted file mode 100644
index 74e9527..0000000
--- a/boost/preprocessor/logical/bitand.hpp
+++ /dev/null
@@ -1,38 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_LOGICAL_BITAND_HPP
-# define BOOST_PREPROCESSOR_LOGICAL_BITAND_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-#
-# /* BOOST_PP_BITAND */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#    define BOOST_PP_BITAND(x, y) BOOST_PP_BITAND_I(x, y)
-# else
-#    define BOOST_PP_BITAND(x, y) BOOST_PP_BITAND_OO((x, y))
-#    define BOOST_PP_BITAND_OO(par) BOOST_PP_BITAND_I ## par
-# endif
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
-#    define BOOST_PP_BITAND_I(x, y) BOOST_PP_BITAND_ ## x ## y
-# else
-#    define BOOST_PP_BITAND_I(x, y) BOOST_PP_BITAND_ID(BOOST_PP_BITAND_ ## x ## y)
-#    define BOOST_PP_BITAND_ID(res) res
-# endif
-#
-# define BOOST_PP_BITAND_00 0
-# define BOOST_PP_BITAND_01 0
-# define BOOST_PP_BITAND_10 0
-# define BOOST_PP_BITAND_11 1
-#
-# endif
diff --git a/boost/preprocessor/logical/bitor.hpp b/boost/preprocessor/logical/bitor.hpp
deleted file mode 100644
index c0bc2c6..0000000
--- a/boost/preprocessor/logical/bitor.hpp
+++ /dev/null
@@ -1,38 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_LOGICAL_BITOR_HPP
-# define BOOST_PREPROCESSOR_LOGICAL_BITOR_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-#
-# /* BOOST_PP_BITOR */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#    define BOOST_PP_BITOR(x, y) BOOST_PP_BITOR_I(x, y)
-# else
-#    define BOOST_PP_BITOR(x, y) BOOST_PP_BITOR_OO((x, y))
-#    define BOOST_PP_BITOR_OO(par) BOOST_PP_BITOR_I ## par
-# endif
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
-#    define BOOST_PP_BITOR_I(x, y) BOOST_PP_BITOR_ ## x ## y
-# else
-#    define BOOST_PP_BITOR_I(x, y) BOOST_PP_BITOR_ID(BOOST_PP_BITOR_ ## x ## y)
-#    define BOOST_PP_BITOR_ID(id) id
-# endif
-#
-# define BOOST_PP_BITOR_00 0
-# define BOOST_PP_BITOR_01 1
-# define BOOST_PP_BITOR_10 1
-# define BOOST_PP_BITOR_11 1
-#
-# endif
diff --git a/boost/preprocessor/logical/bool.hpp b/boost/preprocessor/logical/bool.hpp
deleted file mode 100644
index fc01b5b..0000000
--- a/boost/preprocessor/logical/bool.hpp
+++ /dev/null
@@ -1,288 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * Distributed under the Boost Software License, Version 1.0. (See
-#  * accompanying file LICENSE_1_0.txt or copy at
-#  * http://www.boost.org/LICENSE_1_0.txt)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_LOGICAL_BOOL_HPP
-# define BOOST_PREPROCESSOR_LOGICAL_BOOL_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-#
-# /* BOOST_PP_BOOL */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#    define BOOST_PP_BOOL(x) BOOST_PP_BOOL_I(x)
-# else
-#    define BOOST_PP_BOOL(x) BOOST_PP_BOOL_OO((x))
-#    define BOOST_PP_BOOL_OO(par) BOOST_PP_BOOL_I ## par
-# endif
-#
-# define BOOST_PP_BOOL_I(x) BOOST_PP_BOOL_ ## x
-#
-# define BOOST_PP_BOOL_0 0
-# define BOOST_PP_BOOL_1 1
-# define BOOST_PP_BOOL_2 1
-# define BOOST_PP_BOOL_3 1
-# define BOOST_PP_BOOL_4 1
-# define BOOST_PP_BOOL_5 1
-# define BOOST_PP_BOOL_6 1
-# define BOOST_PP_BOOL_7 1
-# define BOOST_PP_BOOL_8 1
-# define BOOST_PP_BOOL_9 1
-# define BOOST_PP_BOOL_10 1
-# define BOOST_PP_BOOL_11 1
-# define BOOST_PP_BOOL_12 1
-# define BOOST_PP_BOOL_13 1
-# define BOOST_PP_BOOL_14 1
-# define BOOST_PP_BOOL_15 1
-# define BOOST_PP_BOOL_16 1
-# define BOOST_PP_BOOL_17 1
-# define BOOST_PP_BOOL_18 1
-# define BOOST_PP_BOOL_19 1
-# define BOOST_PP_BOOL_20 1
-# define BOOST_PP_BOOL_21 1
-# define BOOST_PP_BOOL_22 1
-# define BOOST_PP_BOOL_23 1
-# define BOOST_PP_BOOL_24 1
-# define BOOST_PP_BOOL_25 1
-# define BOOST_PP_BOOL_26 1
-# define BOOST_PP_BOOL_27 1
-# define BOOST_PP_BOOL_28 1
-# define BOOST_PP_BOOL_29 1
-# define BOOST_PP_BOOL_30 1
-# define BOOST_PP_BOOL_31 1
-# define BOOST_PP_BOOL_32 1
-# define BOOST_PP_BOOL_33 1
-# define BOOST_PP_BOOL_34 1
-# define BOOST_PP_BOOL_35 1
-# define BOOST_PP_BOOL_36 1
-# define BOOST_PP_BOOL_37 1
-# define BOOST_PP_BOOL_38 1
-# define BOOST_PP_BOOL_39 1
-# define BOOST_PP_BOOL_40 1
-# define BOOST_PP_BOOL_41 1
-# define BOOST_PP_BOOL_42 1
-# define BOOST_PP_BOOL_43 1
-# define BOOST_PP_BOOL_44 1
-# define BOOST_PP_BOOL_45 1
-# define BOOST_PP_BOOL_46 1
-# define BOOST_PP_BOOL_47 1
-# define BOOST_PP_BOOL_48 1
-# define BOOST_PP_BOOL_49 1
-# define BOOST_PP_BOOL_50 1
-# define BOOST_PP_BOOL_51 1
-# define BOOST_PP_BOOL_52 1
-# define BOOST_PP_BOOL_53 1
-# define BOOST_PP_BOOL_54 1
-# define BOOST_PP_BOOL_55 1
-# define BOOST_PP_BOOL_56 1
-# define BOOST_PP_BOOL_57 1
-# define BOOST_PP_BOOL_58 1
-# define BOOST_PP_BOOL_59 1
-# define BOOST_PP_BOOL_60 1
-# define BOOST_PP_BOOL_61 1
-# define BOOST_PP_BOOL_62 1
-# define BOOST_PP_BOOL_63 1
-# define BOOST_PP_BOOL_64 1
-# define BOOST_PP_BOOL_65 1
-# define BOOST_PP_BOOL_66 1
-# define BOOST_PP_BOOL_67 1
-# define BOOST_PP_BOOL_68 1
-# define BOOST_PP_BOOL_69 1
-# define BOOST_PP_BOOL_70 1
-# define BOOST_PP_BOOL_71 1
-# define BOOST_PP_BOOL_72 1
-# define BOOST_PP_BOOL_73 1
-# define BOOST_PP_BOOL_74 1
-# define BOOST_PP_BOOL_75 1
-# define BOOST_PP_BOOL_76 1
-# define BOOST_PP_BOOL_77 1
-# define BOOST_PP_BOOL_78 1
-# define BOOST_PP_BOOL_79 1
-# define BOOST_PP_BOOL_80 1
-# define BOOST_PP_BOOL_81 1
-# define BOOST_PP_BOOL_82 1
-# define BOOST_PP_BOOL_83 1
-# define BOOST_PP_BOOL_84 1
-# define BOOST_PP_BOOL_85 1
-# define BOOST_PP_BOOL_86 1
-# define BOOST_PP_BOOL_87 1
-# define BOOST_PP_BOOL_88 1
-# define BOOST_PP_BOOL_89 1
-# define BOOST_PP_BOOL_90 1
-# define BOOST_PP_BOOL_91 1
-# define BOOST_PP_BOOL_92 1
-# define BOOST_PP_BOOL_93 1
-# define BOOST_PP_BOOL_94 1
-# define BOOST_PP_BOOL_95 1
-# define BOOST_PP_BOOL_96 1
-# define BOOST_PP_BOOL_97 1
-# define BOOST_PP_BOOL_98 1
-# define BOOST_PP_BOOL_99 1
-# define BOOST_PP_BOOL_100 1
-# define BOOST_PP_BOOL_101 1
-# define BOOST_PP_BOOL_102 1
-# define BOOST_PP_BOOL_103 1
-# define BOOST_PP_BOOL_104 1
-# define BOOST_PP_BOOL_105 1
-# define BOOST_PP_BOOL_106 1
-# define BOOST_PP_BOOL_107 1
-# define BOOST_PP_BOOL_108 1
-# define BOOST_PP_BOOL_109 1
-# define BOOST_PP_BOOL_110 1
-# define BOOST_PP_BOOL_111 1
-# define BOOST_PP_BOOL_112 1
-# define BOOST_PP_BOOL_113 1
-# define BOOST_PP_BOOL_114 1
-# define BOOST_PP_BOOL_115 1
-# define BOOST_PP_BOOL_116 1
-# define BOOST_PP_BOOL_117 1
-# define BOOST_PP_BOOL_118 1
-# define BOOST_PP_BOOL_119 1
-# define BOOST_PP_BOOL_120 1
-# define BOOST_PP_BOOL_121 1
-# define BOOST_PP_BOOL_122 1
-# define BOOST_PP_BOOL_123 1
-# define BOOST_PP_BOOL_124 1
-# define BOOST_PP_BOOL_125 1
-# define BOOST_PP_BOOL_126 1
-# define BOOST_PP_BOOL_127 1
-# define BOOST_PP_BOOL_128 1
-# define BOOST_PP_BOOL_129 1
-# define BOOST_PP_BOOL_130 1
-# define BOOST_PP_BOOL_131 1
-# define BOOST_PP_BOOL_132 1
-# define BOOST_PP_BOOL_133 1
-# define BOOST_PP_BOOL_134 1
-# define BOOST_PP_BOOL_135 1
-# define BOOST_PP_BOOL_136 1
-# define BOOST_PP_BOOL_137 1
-# define BOOST_PP_BOOL_138 1
-# define BOOST_PP_BOOL_139 1
-# define BOOST_PP_BOOL_140 1
-# define BOOST_PP_BOOL_141 1
-# define BOOST_PP_BOOL_142 1
-# define BOOST_PP_BOOL_143 1
-# define BOOST_PP_BOOL_144 1
-# define BOOST_PP_BOOL_145 1
-# define BOOST_PP_BOOL_146 1
-# define BOOST_PP_BOOL_147 1
-# define BOOST_PP_BOOL_148 1
-# define BOOST_PP_BOOL_149 1
-# define BOOST_PP_BOOL_150 1
-# define BOOST_PP_BOOL_151 1
-# define BOOST_PP_BOOL_152 1
-# define BOOST_PP_BOOL_153 1
-# define BOOST_PP_BOOL_154 1
-# define BOOST_PP_BOOL_155 1
-# define BOOST_PP_BOOL_156 1
-# define BOOST_PP_BOOL_157 1
-# define BOOST_PP_BOOL_158 1
-# define BOOST_PP_BOOL_159 1
-# define BOOST_PP_BOOL_160 1
-# define BOOST_PP_BOOL_161 1
-# define BOOST_PP_BOOL_162 1
-# define BOOST_PP_BOOL_163 1
-# define BOOST_PP_BOOL_164 1
-# define BOOST_PP_BOOL_165 1
-# define BOOST_PP_BOOL_166 1
-# define BOOST_PP_BOOL_167 1
-# define BOOST_PP_BOOL_168 1
-# define BOOST_PP_BOOL_169 1
-# define BOOST_PP_BOOL_170 1
-# define BOOST_PP_BOOL_171 1
-# define BOOST_PP_BOOL_172 1
-# define BOOST_PP_BOOL_173 1
-# define BOOST_PP_BOOL_174 1
-# define BOOST_PP_BOOL_175 1
-# define BOOST_PP_BOOL_176 1
-# define BOOST_PP_BOOL_177 1
-# define BOOST_PP_BOOL_178 1
-# define BOOST_PP_BOOL_179 1
-# define BOOST_PP_BOOL_180 1
-# define BOOST_PP_BOOL_181 1
-# define BOOST_PP_BOOL_182 1
-# define BOOST_PP_BOOL_183 1
-# define BOOST_PP_BOOL_184 1
-# define BOOST_PP_BOOL_185 1
-# define BOOST_PP_BOOL_186 1
-# define BOOST_PP_BOOL_187 1
-# define BOOST_PP_BOOL_188 1
-# define BOOST_PP_BOOL_189 1
-# define BOOST_PP_BOOL_190 1
-# define BOOST_PP_BOOL_191 1
-# define BOOST_PP_BOOL_192 1
-# define BOOST_PP_BOOL_193 1
-# define BOOST_PP_BOOL_194 1
-# define BOOST_PP_BOOL_195 1
-# define BOOST_PP_BOOL_196 1
-# define BOOST_PP_BOOL_197 1
-# define BOOST_PP_BOOL_198 1
-# define BOOST_PP_BOOL_199 1
-# define BOOST_PP_BOOL_200 1
-# define BOOST_PP_BOOL_201 1
-# define BOOST_PP_BOOL_202 1
-# define BOOST_PP_BOOL_203 1
-# define BOOST_PP_BOOL_204 1
-# define BOOST_PP_BOOL_205 1
-# define BOOST_PP_BOOL_206 1
-# define BOOST_PP_BOOL_207 1
-# define BOOST_PP_BOOL_208 1
-# define BOOST_PP_BOOL_209 1
-# define BOOST_PP_BOOL_210 1
-# define BOOST_PP_BOOL_211 1
-# define BOOST_PP_BOOL_212 1
-# define BOOST_PP_BOOL_213 1
-# define BOOST_PP_BOOL_214 1
-# define BOOST_PP_BOOL_215 1
-# define BOOST_PP_BOOL_216 1
-# define BOOST_PP_BOOL_217 1
-# define BOOST_PP_BOOL_218 1
-# define BOOST_PP_BOOL_219 1
-# define BOOST_PP_BOOL_220 1
-# define BOOST_PP_BOOL_221 1
-# define BOOST_PP_BOOL_222 1
-# define BOOST_PP_BOOL_223 1
-# define BOOST_PP_BOOL_224 1
-# define BOOST_PP_BOOL_225 1
-# define BOOST_PP_BOOL_226 1
-# define BOOST_PP_BOOL_227 1
-# define BOOST_PP_BOOL_228 1
-# define BOOST_PP_BOOL_229 1
-# define BOOST_PP_BOOL_230 1
-# define BOOST_PP_BOOL_231 1
-# define BOOST_PP_BOOL_232 1
-# define BOOST_PP_BOOL_233 1
-# define BOOST_PP_BOOL_234 1
-# define BOOST_PP_BOOL_235 1
-# define BOOST_PP_BOOL_236 1
-# define BOOST_PP_BOOL_237 1
-# define BOOST_PP_BOOL_238 1
-# define BOOST_PP_BOOL_239 1
-# define BOOST_PP_BOOL_240 1
-# define BOOST_PP_BOOL_241 1
-# define BOOST_PP_BOOL_242 1
-# define BOOST_PP_BOOL_243 1
-# define BOOST_PP_BOOL_244 1
-# define BOOST_PP_BOOL_245 1
-# define BOOST_PP_BOOL_246 1
-# define BOOST_PP_BOOL_247 1
-# define BOOST_PP_BOOL_248 1
-# define BOOST_PP_BOOL_249 1
-# define BOOST_PP_BOOL_250 1
-# define BOOST_PP_BOOL_251 1
-# define BOOST_PP_BOOL_252 1
-# define BOOST_PP_BOOL_253 1
-# define BOOST_PP_BOOL_254 1
-# define BOOST_PP_BOOL_255 1
-# define BOOST_PP_BOOL_256 1
-#
-# endif
diff --git a/boost/preprocessor/logical/compl.hpp b/boost/preprocessor/logical/compl.hpp
deleted file mode 100644
index ad4c7a4..0000000
--- a/boost/preprocessor/logical/compl.hpp
+++ /dev/null
@@ -1,36 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_LOGICAL_COMPL_HPP
-# define BOOST_PREPROCESSOR_LOGICAL_COMPL_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-#
-# /* BOOST_PP_COMPL */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#    define BOOST_PP_COMPL(x) BOOST_PP_COMPL_I(x)
-# else
-#    define BOOST_PP_COMPL(x) BOOST_PP_COMPL_OO((x))
-#    define BOOST_PP_COMPL_OO(par) BOOST_PP_COMPL_I ## par
-# endif
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
-#    define BOOST_PP_COMPL_I(x) BOOST_PP_COMPL_ ## x
-# else
-#    define BOOST_PP_COMPL_I(x) BOOST_PP_COMPL_ID(BOOST_PP_COMPL_ ## x)
-#    define BOOST_PP_COMPL_ID(id) id
-# endif
-#
-# define BOOST_PP_COMPL_0 1
-# define BOOST_PP_COMPL_1 0
-#
-# endif
diff --git a/boost/preprocessor/logical/not.hpp b/boost/preprocessor/logical/not.hpp
deleted file mode 100644
index b509d3f..0000000
--- a/boost/preprocessor/logical/not.hpp
+++ /dev/null
@@ -1,30 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * Distributed under the Boost Software License, Version 1.0. (See
-#  * accompanying file LICENSE_1_0.txt or copy at
-#  * http://www.boost.org/LICENSE_1_0.txt)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_LOGICAL_NOT_HPP
-# define BOOST_PREPROCESSOR_LOGICAL_NOT_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/logical/bool.hpp>
-# include <boost/preprocessor/logical/compl.hpp>
-#
-# /* BOOST_PP_NOT */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_NOT(x) BOOST_PP_COMPL(BOOST_PP_BOOL(x))
-# else
-#    define BOOST_PP_NOT(x) BOOST_PP_NOT_I(x)
-#    define BOOST_PP_NOT_I(x) BOOST_PP_COMPL(BOOST_PP_BOOL(x))
-# endif
-#
-# endif
diff --git a/boost/preprocessor/logical/or.hpp b/boost/preprocessor/logical/or.hpp
deleted file mode 100644
index 88d5207..0000000
--- a/boost/preprocessor/logical/or.hpp
+++ /dev/null
@@ -1,30 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * Distributed under the Boost Software License, Version 1.0. (See
-#  * accompanying file LICENSE_1_0.txt or copy at
-#  * http://www.boost.org/LICENSE_1_0.txt)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_LOGICAL_OR_HPP
-# define BOOST_PREPROCESSOR_LOGICAL_OR_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/logical/bool.hpp>
-# include <boost/preprocessor/logical/bitor.hpp>
-#
-# /* BOOST_PP_OR */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_OR(p, q) BOOST_PP_BITOR(BOOST_PP_BOOL(p), BOOST_PP_BOOL(q))
-# else
-#    define BOOST_PP_OR(p, q) BOOST_PP_OR_I(p, q)
-#    define BOOST_PP_OR_I(p, q) BOOST_PP_BITOR(BOOST_PP_BOOL(p), BOOST_PP_BOOL(q))
-# endif
-#
-# endif
diff --git a/boost/preprocessor/punctuation/comma.hpp b/boost/preprocessor/punctuation/comma.hpp
deleted file mode 100644
index 38c2e0e..0000000
--- a/boost/preprocessor/punctuation/comma.hpp
+++ /dev/null
@@ -1,21 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * Distributed under the Boost Software License, Version 1.0. (See
-#  * accompanying file LICENSE_1_0.txt or copy at
-#  * http://www.boost.org/LICENSE_1_0.txt)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_PUNCTUATION_COMMA_HPP
-# define BOOST_PREPROCESSOR_PUNCTUATION_COMMA_HPP
-#
-# /* BOOST_PP_COMMA */
-#
-# define BOOST_PP_COMMA() ,
-#
-# endif
diff --git a/boost/preprocessor/punctuation/comma_if.hpp b/boost/preprocessor/punctuation/comma_if.hpp
deleted file mode 100644
index c711f36..0000000
--- a/boost/preprocessor/punctuation/comma_if.hpp
+++ /dev/null
@@ -1,31 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * Distributed under the Boost Software License, Version 1.0. (See
-#  * accompanying file LICENSE_1_0.txt or copy at
-#  * http://www.boost.org/LICENSE_1_0.txt)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_PUNCTUATION_COMMA_IF_HPP
-# define BOOST_PREPROCESSOR_PUNCTUATION_COMMA_IF_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/control/if.hpp>
-# include <boost/preprocessor/facilities/empty.hpp>
-# include <boost/preprocessor/punctuation/comma.hpp>
-#
-# /* BOOST_PP_COMMA_IF */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_COMMA_IF(cond) BOOST_PP_IF(cond, BOOST_PP_COMMA, BOOST_PP_EMPTY)()
-# else
-#    define BOOST_PP_COMMA_IF(cond) BOOST_PP_COMMA_IF_I(cond)
-#    define BOOST_PP_COMMA_IF_I(cond) BOOST_PP_IF(cond, BOOST_PP_COMMA, BOOST_PP_EMPTY)()
-# endif
-#
-# endif
diff --git a/boost/preprocessor/punctuation/paren.hpp b/boost/preprocessor/punctuation/paren.hpp
deleted file mode 100644
index 28c18cb..0000000
--- a/boost/preprocessor/punctuation/paren.hpp
+++ /dev/null
@@ -1,23 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_PUNCTUATION_PAREN_HPP
-# define BOOST_PREPROCESSOR_PUNCTUATION_PAREN_HPP
-#
-# /* BOOST_PP_LPAREN */
-#
-# define BOOST_PP_LPAREN() (
-#
-# /* BOOST_PP_RPAREN */
-#
-# define BOOST_PP_RPAREN() )
-#
-# endif
diff --git a/boost/preprocessor/repeat.hpp b/boost/preprocessor/repeat.hpp
deleted file mode 100644
index 7c47ee8..0000000
--- a/boost/preprocessor/repeat.hpp
+++ /dev/null
@@ -1,17 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_REPEAT_HPP
-# define BOOST_PREPROCESSOR_REPEAT_HPP
-#
-# include <boost/preprocessor/repetition/repeat.hpp>
-#
-# endif
diff --git a/boost/preprocessor/repeat_from_to.hpp b/boost/preprocessor/repeat_from_to.hpp
deleted file mode 100644
index 4ddc3be..0000000
--- a/boost/preprocessor/repeat_from_to.hpp
+++ /dev/null
@@ -1,17 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_REPEAT_FROM_TO_HPP
-# define BOOST_PREPROCESSOR_REPEAT_FROM_TO_HPP
-#
-# include <boost/preprocessor/repetition/repeat_from_to.hpp>
-#
-# endif
diff --git a/boost/preprocessor/repetition/detail/dmc/for.hpp b/boost/preprocessor/repetition/detail/dmc/for.hpp
deleted file mode 100644
index 1d907ff..0000000
--- a/boost/preprocessor/repetition/detail/dmc/for.hpp
+++ /dev/null
@@ -1,536 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * Distributed under the Boost Software License, Version 1.0. (See
-#  * accompanying file LICENSE_1_0.txt or copy at
-#  * http://www.boost.org/LICENSE_1_0.txt)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_REPETITION_DETAIL_FOR_HPP
-# define BOOST_PREPROCESSOR_REPETITION_DETAIL_FOR_HPP
-#
-# include <boost/preprocessor/control/expr_iif.hpp>
-# include <boost/preprocessor/control/iif.hpp>
-# include <boost/preprocessor/logical/bool.hpp>
-# include <boost/preprocessor/tuple/eat.hpp>
-#
-# define BOOST_PP_FOR_1(s, p, o, m) BOOST_PP_FOR_1_C(BOOST_PP_BOOL(p##(2, s)), s, p, o, m)
-# define BOOST_PP_FOR_2(s, p, o, m) BOOST_PP_FOR_2_C(BOOST_PP_BOOL(p##(3, s)), s, p, o, m)
-# define BOOST_PP_FOR_3(s, p, o, m) BOOST_PP_FOR_3_C(BOOST_PP_BOOL(p##(4, s)), s, p, o, m)
-# define BOOST_PP_FOR_4(s, p, o, m) BOOST_PP_FOR_4_C(BOOST_PP_BOOL(p##(5, s)), s, p, o, m)
-# define BOOST_PP_FOR_5(s, p, o, m) BOOST_PP_FOR_5_C(BOOST_PP_BOOL(p##(6, s)), s, p, o, m)
-# define BOOST_PP_FOR_6(s, p, o, m) BOOST_PP_FOR_6_C(BOOST_PP_BOOL(p##(7, s)), s, p, o, m)
-# define BOOST_PP_FOR_7(s, p, o, m) BOOST_PP_FOR_7_C(BOOST_PP_BOOL(p##(8, s)), s, p, o, m)
-# define BOOST_PP_FOR_8(s, p, o, m) BOOST_PP_FOR_8_C(BOOST_PP_BOOL(p##(9, s)), s, p, o, m)
-# define BOOST_PP_FOR_9(s, p, o, m) BOOST_PP_FOR_9_C(BOOST_PP_BOOL(p##(10, s)), s, p, o, m)
-# define BOOST_PP_FOR_10(s, p, o, m) BOOST_PP_FOR_10_C(BOOST_PP_BOOL(p##(11, s)), s, p, o, m)
-# define BOOST_PP_FOR_11(s, p, o, m) BOOST_PP_FOR_11_C(BOOST_PP_BOOL(p##(12, s)), s, p, o, m)
-# define BOOST_PP_FOR_12(s, p, o, m) BOOST_PP_FOR_12_C(BOOST_PP_BOOL(p##(13, s)), s, p, o, m)
-# define BOOST_PP_FOR_13(s, p, o, m) BOOST_PP_FOR_13_C(BOOST_PP_BOOL(p##(14, s)), s, p, o, m)
-# define BOOST_PP_FOR_14(s, p, o, m) BOOST_PP_FOR_14_C(BOOST_PP_BOOL(p##(15, s)), s, p, o, m)
-# define BOOST_PP_FOR_15(s, p, o, m) BOOST_PP_FOR_15_C(BOOST_PP_BOOL(p##(16, s)), s, p, o, m)
-# define BOOST_PP_FOR_16(s, p, o, m) BOOST_PP_FOR_16_C(BOOST_PP_BOOL(p##(17, s)), s, p, o, m)
-# define BOOST_PP_FOR_17(s, p, o, m) BOOST_PP_FOR_17_C(BOOST_PP_BOOL(p##(18, s)), s, p, o, m)
-# define BOOST_PP_FOR_18(s, p, o, m) BOOST_PP_FOR_18_C(BOOST_PP_BOOL(p##(19, s)), s, p, o, m)
-# define BOOST_PP_FOR_19(s, p, o, m) BOOST_PP_FOR_19_C(BOOST_PP_BOOL(p##(20, s)), s, p, o, m)
-# define BOOST_PP_FOR_20(s, p, o, m) BOOST_PP_FOR_20_C(BOOST_PP_BOOL(p##(21, s)), s, p, o, m)
-# define BOOST_PP_FOR_21(s, p, o, m) BOOST_PP_FOR_21_C(BOOST_PP_BOOL(p##(22, s)), s, p, o, m)
-# define BOOST_PP_FOR_22(s, p, o, m) BOOST_PP_FOR_22_C(BOOST_PP_BOOL(p##(23, s)), s, p, o, m)
-# define BOOST_PP_FOR_23(s, p, o, m) BOOST_PP_FOR_23_C(BOOST_PP_BOOL(p##(24, s)), s, p, o, m)
-# define BOOST_PP_FOR_24(s, p, o, m) BOOST_PP_FOR_24_C(BOOST_PP_BOOL(p##(25, s)), s, p, o, m)
-# define BOOST_PP_FOR_25(s, p, o, m) BOOST_PP_FOR_25_C(BOOST_PP_BOOL(p##(26, s)), s, p, o, m)
-# define BOOST_PP_FOR_26(s, p, o, m) BOOST_PP_FOR_26_C(BOOST_PP_BOOL(p##(27, s)), s, p, o, m)
-# define BOOST_PP_FOR_27(s, p, o, m) BOOST_PP_FOR_27_C(BOOST_PP_BOOL(p##(28, s)), s, p, o, m)
-# define BOOST_PP_FOR_28(s, p, o, m) BOOST_PP_FOR_28_C(BOOST_PP_BOOL(p##(29, s)), s, p, o, m)
-# define BOOST_PP_FOR_29(s, p, o, m) BOOST_PP_FOR_29_C(BOOST_PP_BOOL(p##(30, s)), s, p, o, m)
-# define BOOST_PP_FOR_30(s, p, o, m) BOOST_PP_FOR_30_C(BOOST_PP_BOOL(p##(31, s)), s, p, o, m)
-# define BOOST_PP_FOR_31(s, p, o, m) BOOST_PP_FOR_31_C(BOOST_PP_BOOL(p##(32, s)), s, p, o, m)
-# define BOOST_PP_FOR_32(s, p, o, m) BOOST_PP_FOR_32_C(BOOST_PP_BOOL(p##(33, s)), s, p, o, m)
-# define BOOST_PP_FOR_33(s, p, o, m) BOOST_PP_FOR_33_C(BOOST_PP_BOOL(p##(34, s)), s, p, o, m)
-# define BOOST_PP_FOR_34(s, p, o, m) BOOST_PP_FOR_34_C(BOOST_PP_BOOL(p##(35, s)), s, p, o, m)
-# define BOOST_PP_FOR_35(s, p, o, m) BOOST_PP_FOR_35_C(BOOST_PP_BOOL(p##(36, s)), s, p, o, m)
-# define BOOST_PP_FOR_36(s, p, o, m) BOOST_PP_FOR_36_C(BOOST_PP_BOOL(p##(37, s)), s, p, o, m)
-# define BOOST_PP_FOR_37(s, p, o, m) BOOST_PP_FOR_37_C(BOOST_PP_BOOL(p##(38, s)), s, p, o, m)
-# define BOOST_PP_FOR_38(s, p, o, m) BOOST_PP_FOR_38_C(BOOST_PP_BOOL(p##(39, s)), s, p, o, m)
-# define BOOST_PP_FOR_39(s, p, o, m) BOOST_PP_FOR_39_C(BOOST_PP_BOOL(p##(40, s)), s, p, o, m)
-# define BOOST_PP_FOR_40(s, p, o, m) BOOST_PP_FOR_40_C(BOOST_PP_BOOL(p##(41, s)), s, p, o, m)
-# define BOOST_PP_FOR_41(s, p, o, m) BOOST_PP_FOR_41_C(BOOST_PP_BOOL(p##(42, s)), s, p, o, m)
-# define BOOST_PP_FOR_42(s, p, o, m) BOOST_PP_FOR_42_C(BOOST_PP_BOOL(p##(43, s)), s, p, o, m)
-# define BOOST_PP_FOR_43(s, p, o, m) BOOST_PP_FOR_43_C(BOOST_PP_BOOL(p##(44, s)), s, p, o, m)
-# define BOOST_PP_FOR_44(s, p, o, m) BOOST_PP_FOR_44_C(BOOST_PP_BOOL(p##(45, s)), s, p, o, m)
-# define BOOST_PP_FOR_45(s, p, o, m) BOOST_PP_FOR_45_C(BOOST_PP_BOOL(p##(46, s)), s, p, o, m)
-# define BOOST_PP_FOR_46(s, p, o, m) BOOST_PP_FOR_46_C(BOOST_PP_BOOL(p##(47, s)), s, p, o, m)
-# define BOOST_PP_FOR_47(s, p, o, m) BOOST_PP_FOR_47_C(BOOST_PP_BOOL(p##(48, s)), s, p, o, m)
-# define BOOST_PP_FOR_48(s, p, o, m) BOOST_PP_FOR_48_C(BOOST_PP_BOOL(p##(49, s)), s, p, o, m)
-# define BOOST_PP_FOR_49(s, p, o, m) BOOST_PP_FOR_49_C(BOOST_PP_BOOL(p##(50, s)), s, p, o, m)
-# define BOOST_PP_FOR_50(s, p, o, m) BOOST_PP_FOR_50_C(BOOST_PP_BOOL(p##(51, s)), s, p, o, m)
-# define BOOST_PP_FOR_51(s, p, o, m) BOOST_PP_FOR_51_C(BOOST_PP_BOOL(p##(52, s)), s, p, o, m)
-# define BOOST_PP_FOR_52(s, p, o, m) BOOST_PP_FOR_52_C(BOOST_PP_BOOL(p##(53, s)), s, p, o, m)
-# define BOOST_PP_FOR_53(s, p, o, m) BOOST_PP_FOR_53_C(BOOST_PP_BOOL(p##(54, s)), s, p, o, m)
-# define BOOST_PP_FOR_54(s, p, o, m) BOOST_PP_FOR_54_C(BOOST_PP_BOOL(p##(55, s)), s, p, o, m)
-# define BOOST_PP_FOR_55(s, p, o, m) BOOST_PP_FOR_55_C(BOOST_PP_BOOL(p##(56, s)), s, p, o, m)
-# define BOOST_PP_FOR_56(s, p, o, m) BOOST_PP_FOR_56_C(BOOST_PP_BOOL(p##(57, s)), s, p, o, m)
-# define BOOST_PP_FOR_57(s, p, o, m) BOOST_PP_FOR_57_C(BOOST_PP_BOOL(p##(58, s)), s, p, o, m)
-# define BOOST_PP_FOR_58(s, p, o, m) BOOST_PP_FOR_58_C(BOOST_PP_BOOL(p##(59, s)), s, p, o, m)
-# define BOOST_PP_FOR_59(s, p, o, m) BOOST_PP_FOR_59_C(BOOST_PP_BOOL(p##(60, s)), s, p, o, m)
-# define BOOST_PP_FOR_60(s, p, o, m) BOOST_PP_FOR_60_C(BOOST_PP_BOOL(p##(61, s)), s, p, o, m)
-# define BOOST_PP_FOR_61(s, p, o, m) BOOST_PP_FOR_61_C(BOOST_PP_BOOL(p##(62, s)), s, p, o, m)
-# define BOOST_PP_FOR_62(s, p, o, m) BOOST_PP_FOR_62_C(BOOST_PP_BOOL(p##(63, s)), s, p, o, m)
-# define BOOST_PP_FOR_63(s, p, o, m) BOOST_PP_FOR_63_C(BOOST_PP_BOOL(p##(64, s)), s, p, o, m)
-# define BOOST_PP_FOR_64(s, p, o, m) BOOST_PP_FOR_64_C(BOOST_PP_BOOL(p##(65, s)), s, p, o, m)
-# define BOOST_PP_FOR_65(s, p, o, m) BOOST_PP_FOR_65_C(BOOST_PP_BOOL(p##(66, s)), s, p, o, m)
-# define BOOST_PP_FOR_66(s, p, o, m) BOOST_PP_FOR_66_C(BOOST_PP_BOOL(p##(67, s)), s, p, o, m)
-# define BOOST_PP_FOR_67(s, p, o, m) BOOST_PP_FOR_67_C(BOOST_PP_BOOL(p##(68, s)), s, p, o, m)
-# define BOOST_PP_FOR_68(s, p, o, m) BOOST_PP_FOR_68_C(BOOST_PP_BOOL(p##(69, s)), s, p, o, m)
-# define BOOST_PP_FOR_69(s, p, o, m) BOOST_PP_FOR_69_C(BOOST_PP_BOOL(p##(70, s)), s, p, o, m)
-# define BOOST_PP_FOR_70(s, p, o, m) BOOST_PP_FOR_70_C(BOOST_PP_BOOL(p##(71, s)), s, p, o, m)
-# define BOOST_PP_FOR_71(s, p, o, m) BOOST_PP_FOR_71_C(BOOST_PP_BOOL(p##(72, s)), s, p, o, m)
-# define BOOST_PP_FOR_72(s, p, o, m) BOOST_PP_FOR_72_C(BOOST_PP_BOOL(p##(73, s)), s, p, o, m)
-# define BOOST_PP_FOR_73(s, p, o, m) BOOST_PP_FOR_73_C(BOOST_PP_BOOL(p##(74, s)), s, p, o, m)
-# define BOOST_PP_FOR_74(s, p, o, m) BOOST_PP_FOR_74_C(BOOST_PP_BOOL(p##(75, s)), s, p, o, m)
-# define BOOST_PP_FOR_75(s, p, o, m) BOOST_PP_FOR_75_C(BOOST_PP_BOOL(p##(76, s)), s, p, o, m)
-# define BOOST_PP_FOR_76(s, p, o, m) BOOST_PP_FOR_76_C(BOOST_PP_BOOL(p##(77, s)), s, p, o, m)
-# define BOOST_PP_FOR_77(s, p, o, m) BOOST_PP_FOR_77_C(BOOST_PP_BOOL(p##(78, s)), s, p, o, m)
-# define BOOST_PP_FOR_78(s, p, o, m) BOOST_PP_FOR_78_C(BOOST_PP_BOOL(p##(79, s)), s, p, o, m)
-# define BOOST_PP_FOR_79(s, p, o, m) BOOST_PP_FOR_79_C(BOOST_PP_BOOL(p##(80, s)), s, p, o, m)
-# define BOOST_PP_FOR_80(s, p, o, m) BOOST_PP_FOR_80_C(BOOST_PP_BOOL(p##(81, s)), s, p, o, m)
-# define BOOST_PP_FOR_81(s, p, o, m) BOOST_PP_FOR_81_C(BOOST_PP_BOOL(p##(82, s)), s, p, o, m)
-# define BOOST_PP_FOR_82(s, p, o, m) BOOST_PP_FOR_82_C(BOOST_PP_BOOL(p##(83, s)), s, p, o, m)
-# define BOOST_PP_FOR_83(s, p, o, m) BOOST_PP_FOR_83_C(BOOST_PP_BOOL(p##(84, s)), s, p, o, m)
-# define BOOST_PP_FOR_84(s, p, o, m) BOOST_PP_FOR_84_C(BOOST_PP_BOOL(p##(85, s)), s, p, o, m)
-# define BOOST_PP_FOR_85(s, p, o, m) BOOST_PP_FOR_85_C(BOOST_PP_BOOL(p##(86, s)), s, p, o, m)
-# define BOOST_PP_FOR_86(s, p, o, m) BOOST_PP_FOR_86_C(BOOST_PP_BOOL(p##(87, s)), s, p, o, m)
-# define BOOST_PP_FOR_87(s, p, o, m) BOOST_PP_FOR_87_C(BOOST_PP_BOOL(p##(88, s)), s, p, o, m)
-# define BOOST_PP_FOR_88(s, p, o, m) BOOST_PP_FOR_88_C(BOOST_PP_BOOL(p##(89, s)), s, p, o, m)
-# define BOOST_PP_FOR_89(s, p, o, m) BOOST_PP_FOR_89_C(BOOST_PP_BOOL(p##(90, s)), s, p, o, m)
-# define BOOST_PP_FOR_90(s, p, o, m) BOOST_PP_FOR_90_C(BOOST_PP_BOOL(p##(91, s)), s, p, o, m)
-# define BOOST_PP_FOR_91(s, p, o, m) BOOST_PP_FOR_91_C(BOOST_PP_BOOL(p##(92, s)), s, p, o, m)
-# define BOOST_PP_FOR_92(s, p, o, m) BOOST_PP_FOR_92_C(BOOST_PP_BOOL(p##(93, s)), s, p, o, m)
-# define BOOST_PP_FOR_93(s, p, o, m) BOOST_PP_FOR_93_C(BOOST_PP_BOOL(p##(94, s)), s, p, o, m)
-# define BOOST_PP_FOR_94(s, p, o, m) BOOST_PP_FOR_94_C(BOOST_PP_BOOL(p##(95, s)), s, p, o, m)
-# define BOOST_PP_FOR_95(s, p, o, m) BOOST_PP_FOR_95_C(BOOST_PP_BOOL(p##(96, s)), s, p, o, m)
-# define BOOST_PP_FOR_96(s, p, o, m) BOOST_PP_FOR_96_C(BOOST_PP_BOOL(p##(97, s)), s, p, o, m)
-# define BOOST_PP_FOR_97(s, p, o, m) BOOST_PP_FOR_97_C(BOOST_PP_BOOL(p##(98, s)), s, p, o, m)
-# define BOOST_PP_FOR_98(s, p, o, m) BOOST_PP_FOR_98_C(BOOST_PP_BOOL(p##(99, s)), s, p, o, m)
-# define BOOST_PP_FOR_99(s, p, o, m) BOOST_PP_FOR_99_C(BOOST_PP_BOOL(p##(100, s)), s, p, o, m)
-# define BOOST_PP_FOR_100(s, p, o, m) BOOST_PP_FOR_100_C(BOOST_PP_BOOL(p##(101, s)), s, p, o, m)
-# define BOOST_PP_FOR_101(s, p, o, m) BOOST_PP_FOR_101_C(BOOST_PP_BOOL(p##(102, s)), s, p, o, m)
-# define BOOST_PP_FOR_102(s, p, o, m) BOOST_PP_FOR_102_C(BOOST_PP_BOOL(p##(103, s)), s, p, o, m)
-# define BOOST_PP_FOR_103(s, p, o, m) BOOST_PP_FOR_103_C(BOOST_PP_BOOL(p##(104, s)), s, p, o, m)
-# define BOOST_PP_FOR_104(s, p, o, m) BOOST_PP_FOR_104_C(BOOST_PP_BOOL(p##(105, s)), s, p, o, m)
-# define BOOST_PP_FOR_105(s, p, o, m) BOOST_PP_FOR_105_C(BOOST_PP_BOOL(p##(106, s)), s, p, o, m)
-# define BOOST_PP_FOR_106(s, p, o, m) BOOST_PP_FOR_106_C(BOOST_PP_BOOL(p##(107, s)), s, p, o, m)
-# define BOOST_PP_FOR_107(s, p, o, m) BOOST_PP_FOR_107_C(BOOST_PP_BOOL(p##(108, s)), s, p, o, m)
-# define BOOST_PP_FOR_108(s, p, o, m) BOOST_PP_FOR_108_C(BOOST_PP_BOOL(p##(109, s)), s, p, o, m)
-# define BOOST_PP_FOR_109(s, p, o, m) BOOST_PP_FOR_109_C(BOOST_PP_BOOL(p##(110, s)), s, p, o, m)
-# define BOOST_PP_FOR_110(s, p, o, m) BOOST_PP_FOR_110_C(BOOST_PP_BOOL(p##(111, s)), s, p, o, m)
-# define BOOST_PP_FOR_111(s, p, o, m) BOOST_PP_FOR_111_C(BOOST_PP_BOOL(p##(112, s)), s, p, o, m)
-# define BOOST_PP_FOR_112(s, p, o, m) BOOST_PP_FOR_112_C(BOOST_PP_BOOL(p##(113, s)), s, p, o, m)
-# define BOOST_PP_FOR_113(s, p, o, m) BOOST_PP_FOR_113_C(BOOST_PP_BOOL(p##(114, s)), s, p, o, m)
-# define BOOST_PP_FOR_114(s, p, o, m) BOOST_PP_FOR_114_C(BOOST_PP_BOOL(p##(115, s)), s, p, o, m)
-# define BOOST_PP_FOR_115(s, p, o, m) BOOST_PP_FOR_115_C(BOOST_PP_BOOL(p##(116, s)), s, p, o, m)
-# define BOOST_PP_FOR_116(s, p, o, m) BOOST_PP_FOR_116_C(BOOST_PP_BOOL(p##(117, s)), s, p, o, m)
-# define BOOST_PP_FOR_117(s, p, o, m) BOOST_PP_FOR_117_C(BOOST_PP_BOOL(p##(118, s)), s, p, o, m)
-# define BOOST_PP_FOR_118(s, p, o, m) BOOST_PP_FOR_118_C(BOOST_PP_BOOL(p##(119, s)), s, p, o, m)
-# define BOOST_PP_FOR_119(s, p, o, m) BOOST_PP_FOR_119_C(BOOST_PP_BOOL(p##(120, s)), s, p, o, m)
-# define BOOST_PP_FOR_120(s, p, o, m) BOOST_PP_FOR_120_C(BOOST_PP_BOOL(p##(121, s)), s, p, o, m)
-# define BOOST_PP_FOR_121(s, p, o, m) BOOST_PP_FOR_121_C(BOOST_PP_BOOL(p##(122, s)), s, p, o, m)
-# define BOOST_PP_FOR_122(s, p, o, m) BOOST_PP_FOR_122_C(BOOST_PP_BOOL(p##(123, s)), s, p, o, m)
-# define BOOST_PP_FOR_123(s, p, o, m) BOOST_PP_FOR_123_C(BOOST_PP_BOOL(p##(124, s)), s, p, o, m)
-# define BOOST_PP_FOR_124(s, p, o, m) BOOST_PP_FOR_124_C(BOOST_PP_BOOL(p##(125, s)), s, p, o, m)
-# define BOOST_PP_FOR_125(s, p, o, m) BOOST_PP_FOR_125_C(BOOST_PP_BOOL(p##(126, s)), s, p, o, m)
-# define BOOST_PP_FOR_126(s, p, o, m) BOOST_PP_FOR_126_C(BOOST_PP_BOOL(p##(127, s)), s, p, o, m)
-# define BOOST_PP_FOR_127(s, p, o, m) BOOST_PP_FOR_127_C(BOOST_PP_BOOL(p##(128, s)), s, p, o, m)
-# define BOOST_PP_FOR_128(s, p, o, m) BOOST_PP_FOR_128_C(BOOST_PP_BOOL(p##(129, s)), s, p, o, m)
-# define BOOST_PP_FOR_129(s, p, o, m) BOOST_PP_FOR_129_C(BOOST_PP_BOOL(p##(130, s)), s, p, o, m)
-# define BOOST_PP_FOR_130(s, p, o, m) BOOST_PP_FOR_130_C(BOOST_PP_BOOL(p##(131, s)), s, p, o, m)
-# define BOOST_PP_FOR_131(s, p, o, m) BOOST_PP_FOR_131_C(BOOST_PP_BOOL(p##(132, s)), s, p, o, m)
-# define BOOST_PP_FOR_132(s, p, o, m) BOOST_PP_FOR_132_C(BOOST_PP_BOOL(p##(133, s)), s, p, o, m)
-# define BOOST_PP_FOR_133(s, p, o, m) BOOST_PP_FOR_133_C(BOOST_PP_BOOL(p##(134, s)), s, p, o, m)
-# define BOOST_PP_FOR_134(s, p, o, m) BOOST_PP_FOR_134_C(BOOST_PP_BOOL(p##(135, s)), s, p, o, m)
-# define BOOST_PP_FOR_135(s, p, o, m) BOOST_PP_FOR_135_C(BOOST_PP_BOOL(p##(136, s)), s, p, o, m)
-# define BOOST_PP_FOR_136(s, p, o, m) BOOST_PP_FOR_136_C(BOOST_PP_BOOL(p##(137, s)), s, p, o, m)
-# define BOOST_PP_FOR_137(s, p, o, m) BOOST_PP_FOR_137_C(BOOST_PP_BOOL(p##(138, s)), s, p, o, m)
-# define BOOST_PP_FOR_138(s, p, o, m) BOOST_PP_FOR_138_C(BOOST_PP_BOOL(p##(139, s)), s, p, o, m)
-# define BOOST_PP_FOR_139(s, p, o, m) BOOST_PP_FOR_139_C(BOOST_PP_BOOL(p##(140, s)), s, p, o, m)
-# define BOOST_PP_FOR_140(s, p, o, m) BOOST_PP_FOR_140_C(BOOST_PP_BOOL(p##(141, s)), s, p, o, m)
-# define BOOST_PP_FOR_141(s, p, o, m) BOOST_PP_FOR_141_C(BOOST_PP_BOOL(p##(142, s)), s, p, o, m)
-# define BOOST_PP_FOR_142(s, p, o, m) BOOST_PP_FOR_142_C(BOOST_PP_BOOL(p##(143, s)), s, p, o, m)
-# define BOOST_PP_FOR_143(s, p, o, m) BOOST_PP_FOR_143_C(BOOST_PP_BOOL(p##(144, s)), s, p, o, m)
-# define BOOST_PP_FOR_144(s, p, o, m) BOOST_PP_FOR_144_C(BOOST_PP_BOOL(p##(145, s)), s, p, o, m)
-# define BOOST_PP_FOR_145(s, p, o, m) BOOST_PP_FOR_145_C(BOOST_PP_BOOL(p##(146, s)), s, p, o, m)
-# define BOOST_PP_FOR_146(s, p, o, m) BOOST_PP_FOR_146_C(BOOST_PP_BOOL(p##(147, s)), s, p, o, m)
-# define BOOST_PP_FOR_147(s, p, o, m) BOOST_PP_FOR_147_C(BOOST_PP_BOOL(p##(148, s)), s, p, o, m)
-# define BOOST_PP_FOR_148(s, p, o, m) BOOST_PP_FOR_148_C(BOOST_PP_BOOL(p##(149, s)), s, p, o, m)
-# define BOOST_PP_FOR_149(s, p, o, m) BOOST_PP_FOR_149_C(BOOST_PP_BOOL(p##(150, s)), s, p, o, m)
-# define BOOST_PP_FOR_150(s, p, o, m) BOOST_PP_FOR_150_C(BOOST_PP_BOOL(p##(151, s)), s, p, o, m)
-# define BOOST_PP_FOR_151(s, p, o, m) BOOST_PP_FOR_151_C(BOOST_PP_BOOL(p##(152, s)), s, p, o, m)
-# define BOOST_PP_FOR_152(s, p, o, m) BOOST_PP_FOR_152_C(BOOST_PP_BOOL(p##(153, s)), s, p, o, m)
-# define BOOST_PP_FOR_153(s, p, o, m) BOOST_PP_FOR_153_C(BOOST_PP_BOOL(p##(154, s)), s, p, o, m)
-# define BOOST_PP_FOR_154(s, p, o, m) BOOST_PP_FOR_154_C(BOOST_PP_BOOL(p##(155, s)), s, p, o, m)
-# define BOOST_PP_FOR_155(s, p, o, m) BOOST_PP_FOR_155_C(BOOST_PP_BOOL(p##(156, s)), s, p, o, m)
-# define BOOST_PP_FOR_156(s, p, o, m) BOOST_PP_FOR_156_C(BOOST_PP_BOOL(p##(157, s)), s, p, o, m)
-# define BOOST_PP_FOR_157(s, p, o, m) BOOST_PP_FOR_157_C(BOOST_PP_BOOL(p##(158, s)), s, p, o, m)
-# define BOOST_PP_FOR_158(s, p, o, m) BOOST_PP_FOR_158_C(BOOST_PP_BOOL(p##(159, s)), s, p, o, m)
-# define BOOST_PP_FOR_159(s, p, o, m) BOOST_PP_FOR_159_C(BOOST_PP_BOOL(p##(160, s)), s, p, o, m)
-# define BOOST_PP_FOR_160(s, p, o, m) BOOST_PP_FOR_160_C(BOOST_PP_BOOL(p##(161, s)), s, p, o, m)
-# define BOOST_PP_FOR_161(s, p, o, m) BOOST_PP_FOR_161_C(BOOST_PP_BOOL(p##(162, s)), s, p, o, m)
-# define BOOST_PP_FOR_162(s, p, o, m) BOOST_PP_FOR_162_C(BOOST_PP_BOOL(p##(163, s)), s, p, o, m)
-# define BOOST_PP_FOR_163(s, p, o, m) BOOST_PP_FOR_163_C(BOOST_PP_BOOL(p##(164, s)), s, p, o, m)
-# define BOOST_PP_FOR_164(s, p, o, m) BOOST_PP_FOR_164_C(BOOST_PP_BOOL(p##(165, s)), s, p, o, m)
-# define BOOST_PP_FOR_165(s, p, o, m) BOOST_PP_FOR_165_C(BOOST_PP_BOOL(p##(166, s)), s, p, o, m)
-# define BOOST_PP_FOR_166(s, p, o, m) BOOST_PP_FOR_166_C(BOOST_PP_BOOL(p##(167, s)), s, p, o, m)
-# define BOOST_PP_FOR_167(s, p, o, m) BOOST_PP_FOR_167_C(BOOST_PP_BOOL(p##(168, s)), s, p, o, m)
-# define BOOST_PP_FOR_168(s, p, o, m) BOOST_PP_FOR_168_C(BOOST_PP_BOOL(p##(169, s)), s, p, o, m)
-# define BOOST_PP_FOR_169(s, p, o, m) BOOST_PP_FOR_169_C(BOOST_PP_BOOL(p##(170, s)), s, p, o, m)
-# define BOOST_PP_FOR_170(s, p, o, m) BOOST_PP_FOR_170_C(BOOST_PP_BOOL(p##(171, s)), s, p, o, m)
-# define BOOST_PP_FOR_171(s, p, o, m) BOOST_PP_FOR_171_C(BOOST_PP_BOOL(p##(172, s)), s, p, o, m)
-# define BOOST_PP_FOR_172(s, p, o, m) BOOST_PP_FOR_172_C(BOOST_PP_BOOL(p##(173, s)), s, p, o, m)
-# define BOOST_PP_FOR_173(s, p, o, m) BOOST_PP_FOR_173_C(BOOST_PP_BOOL(p##(174, s)), s, p, o, m)
-# define BOOST_PP_FOR_174(s, p, o, m) BOOST_PP_FOR_174_C(BOOST_PP_BOOL(p##(175, s)), s, p, o, m)
-# define BOOST_PP_FOR_175(s, p, o, m) BOOST_PP_FOR_175_C(BOOST_PP_BOOL(p##(176, s)), s, p, o, m)
-# define BOOST_PP_FOR_176(s, p, o, m) BOOST_PP_FOR_176_C(BOOST_PP_BOOL(p##(177, s)), s, p, o, m)
-# define BOOST_PP_FOR_177(s, p, o, m) BOOST_PP_FOR_177_C(BOOST_PP_BOOL(p##(178, s)), s, p, o, m)
-# define BOOST_PP_FOR_178(s, p, o, m) BOOST_PP_FOR_178_C(BOOST_PP_BOOL(p##(179, s)), s, p, o, m)
-# define BOOST_PP_FOR_179(s, p, o, m) BOOST_PP_FOR_179_C(BOOST_PP_BOOL(p##(180, s)), s, p, o, m)
-# define BOOST_PP_FOR_180(s, p, o, m) BOOST_PP_FOR_180_C(BOOST_PP_BOOL(p##(181, s)), s, p, o, m)
-# define BOOST_PP_FOR_181(s, p, o, m) BOOST_PP_FOR_181_C(BOOST_PP_BOOL(p##(182, s)), s, p, o, m)
-# define BOOST_PP_FOR_182(s, p, o, m) BOOST_PP_FOR_182_C(BOOST_PP_BOOL(p##(183, s)), s, p, o, m)
-# define BOOST_PP_FOR_183(s, p, o, m) BOOST_PP_FOR_183_C(BOOST_PP_BOOL(p##(184, s)), s, p, o, m)
-# define BOOST_PP_FOR_184(s, p, o, m) BOOST_PP_FOR_184_C(BOOST_PP_BOOL(p##(185, s)), s, p, o, m)
-# define BOOST_PP_FOR_185(s, p, o, m) BOOST_PP_FOR_185_C(BOOST_PP_BOOL(p##(186, s)), s, p, o, m)
-# define BOOST_PP_FOR_186(s, p, o, m) BOOST_PP_FOR_186_C(BOOST_PP_BOOL(p##(187, s)), s, p, o, m)
-# define BOOST_PP_FOR_187(s, p, o, m) BOOST_PP_FOR_187_C(BOOST_PP_BOOL(p##(188, s)), s, p, o, m)
-# define BOOST_PP_FOR_188(s, p, o, m) BOOST_PP_FOR_188_C(BOOST_PP_BOOL(p##(189, s)), s, p, o, m)
-# define BOOST_PP_FOR_189(s, p, o, m) BOOST_PP_FOR_189_C(BOOST_PP_BOOL(p##(190, s)), s, p, o, m)
-# define BOOST_PP_FOR_190(s, p, o, m) BOOST_PP_FOR_190_C(BOOST_PP_BOOL(p##(191, s)), s, p, o, m)
-# define BOOST_PP_FOR_191(s, p, o, m) BOOST_PP_FOR_191_C(BOOST_PP_BOOL(p##(192, s)), s, p, o, m)
-# define BOOST_PP_FOR_192(s, p, o, m) BOOST_PP_FOR_192_C(BOOST_PP_BOOL(p##(193, s)), s, p, o, m)
-# define BOOST_PP_FOR_193(s, p, o, m) BOOST_PP_FOR_193_C(BOOST_PP_BOOL(p##(194, s)), s, p, o, m)
-# define BOOST_PP_FOR_194(s, p, o, m) BOOST_PP_FOR_194_C(BOOST_PP_BOOL(p##(195, s)), s, p, o, m)
-# define BOOST_PP_FOR_195(s, p, o, m) BOOST_PP_FOR_195_C(BOOST_PP_BOOL(p##(196, s)), s, p, o, m)
-# define BOOST_PP_FOR_196(s, p, o, m) BOOST_PP_FOR_196_C(BOOST_PP_BOOL(p##(197, s)), s, p, o, m)
-# define BOOST_PP_FOR_197(s, p, o, m) BOOST_PP_FOR_197_C(BOOST_PP_BOOL(p##(198, s)), s, p, o, m)
-# define BOOST_PP_FOR_198(s, p, o, m) BOOST_PP_FOR_198_C(BOOST_PP_BOOL(p##(199, s)), s, p, o, m)
-# define BOOST_PP_FOR_199(s, p, o, m) BOOST_PP_FOR_199_C(BOOST_PP_BOOL(p##(200, s)), s, p, o, m)
-# define BOOST_PP_FOR_200(s, p, o, m) BOOST_PP_FOR_200_C(BOOST_PP_BOOL(p##(201, s)), s, p, o, m)
-# define BOOST_PP_FOR_201(s, p, o, m) BOOST_PP_FOR_201_C(BOOST_PP_BOOL(p##(202, s)), s, p, o, m)
-# define BOOST_PP_FOR_202(s, p, o, m) BOOST_PP_FOR_202_C(BOOST_PP_BOOL(p##(203, s)), s, p, o, m)
-# define BOOST_PP_FOR_203(s, p, o, m) BOOST_PP_FOR_203_C(BOOST_PP_BOOL(p##(204, s)), s, p, o, m)
-# define BOOST_PP_FOR_204(s, p, o, m) BOOST_PP_FOR_204_C(BOOST_PP_BOOL(p##(205, s)), s, p, o, m)
-# define BOOST_PP_FOR_205(s, p, o, m) BOOST_PP_FOR_205_C(BOOST_PP_BOOL(p##(206, s)), s, p, o, m)
-# define BOOST_PP_FOR_206(s, p, o, m) BOOST_PP_FOR_206_C(BOOST_PP_BOOL(p##(207, s)), s, p, o, m)
-# define BOOST_PP_FOR_207(s, p, o, m) BOOST_PP_FOR_207_C(BOOST_PP_BOOL(p##(208, s)), s, p, o, m)
-# define BOOST_PP_FOR_208(s, p, o, m) BOOST_PP_FOR_208_C(BOOST_PP_BOOL(p##(209, s)), s, p, o, m)
-# define BOOST_PP_FOR_209(s, p, o, m) BOOST_PP_FOR_209_C(BOOST_PP_BOOL(p##(210, s)), s, p, o, m)
-# define BOOST_PP_FOR_210(s, p, o, m) BOOST_PP_FOR_210_C(BOOST_PP_BOOL(p##(211, s)), s, p, o, m)
-# define BOOST_PP_FOR_211(s, p, o, m) BOOST_PP_FOR_211_C(BOOST_PP_BOOL(p##(212, s)), s, p, o, m)
-# define BOOST_PP_FOR_212(s, p, o, m) BOOST_PP_FOR_212_C(BOOST_PP_BOOL(p##(213, s)), s, p, o, m)
-# define BOOST_PP_FOR_213(s, p, o, m) BOOST_PP_FOR_213_C(BOOST_PP_BOOL(p##(214, s)), s, p, o, m)
-# define BOOST_PP_FOR_214(s, p, o, m) BOOST_PP_FOR_214_C(BOOST_PP_BOOL(p##(215, s)), s, p, o, m)
-# define BOOST_PP_FOR_215(s, p, o, m) BOOST_PP_FOR_215_C(BOOST_PP_BOOL(p##(216, s)), s, p, o, m)
-# define BOOST_PP_FOR_216(s, p, o, m) BOOST_PP_FOR_216_C(BOOST_PP_BOOL(p##(217, s)), s, p, o, m)
-# define BOOST_PP_FOR_217(s, p, o, m) BOOST_PP_FOR_217_C(BOOST_PP_BOOL(p##(218, s)), s, p, o, m)
-# define BOOST_PP_FOR_218(s, p, o, m) BOOST_PP_FOR_218_C(BOOST_PP_BOOL(p##(219, s)), s, p, o, m)
-# define BOOST_PP_FOR_219(s, p, o, m) BOOST_PP_FOR_219_C(BOOST_PP_BOOL(p##(220, s)), s, p, o, m)
-# define BOOST_PP_FOR_220(s, p, o, m) BOOST_PP_FOR_220_C(BOOST_PP_BOOL(p##(221, s)), s, p, o, m)
-# define BOOST_PP_FOR_221(s, p, o, m) BOOST_PP_FOR_221_C(BOOST_PP_BOOL(p##(222, s)), s, p, o, m)
-# define BOOST_PP_FOR_222(s, p, o, m) BOOST_PP_FOR_222_C(BOOST_PP_BOOL(p##(223, s)), s, p, o, m)
-# define BOOST_PP_FOR_223(s, p, o, m) BOOST_PP_FOR_223_C(BOOST_PP_BOOL(p##(224, s)), s, p, o, m)
-# define BOOST_PP_FOR_224(s, p, o, m) BOOST_PP_FOR_224_C(BOOST_PP_BOOL(p##(225, s)), s, p, o, m)
-# define BOOST_PP_FOR_225(s, p, o, m) BOOST_PP_FOR_225_C(BOOST_PP_BOOL(p##(226, s)), s, p, o, m)
-# define BOOST_PP_FOR_226(s, p, o, m) BOOST_PP_FOR_226_C(BOOST_PP_BOOL(p##(227, s)), s, p, o, m)
-# define BOOST_PP_FOR_227(s, p, o, m) BOOST_PP_FOR_227_C(BOOST_PP_BOOL(p##(228, s)), s, p, o, m)
-# define BOOST_PP_FOR_228(s, p, o, m) BOOST_PP_FOR_228_C(BOOST_PP_BOOL(p##(229, s)), s, p, o, m)
-# define BOOST_PP_FOR_229(s, p, o, m) BOOST_PP_FOR_229_C(BOOST_PP_BOOL(p##(230, s)), s, p, o, m)
-# define BOOST_PP_FOR_230(s, p, o, m) BOOST_PP_FOR_230_C(BOOST_PP_BOOL(p##(231, s)), s, p, o, m)
-# define BOOST_PP_FOR_231(s, p, o, m) BOOST_PP_FOR_231_C(BOOST_PP_BOOL(p##(232, s)), s, p, o, m)
-# define BOOST_PP_FOR_232(s, p, o, m) BOOST_PP_FOR_232_C(BOOST_PP_BOOL(p##(233, s)), s, p, o, m)
-# define BOOST_PP_FOR_233(s, p, o, m) BOOST_PP_FOR_233_C(BOOST_PP_BOOL(p##(234, s)), s, p, o, m)
-# define BOOST_PP_FOR_234(s, p, o, m) BOOST_PP_FOR_234_C(BOOST_PP_BOOL(p##(235, s)), s, p, o, m)
-# define BOOST_PP_FOR_235(s, p, o, m) BOOST_PP_FOR_235_C(BOOST_PP_BOOL(p##(236, s)), s, p, o, m)
-# define BOOST_PP_FOR_236(s, p, o, m) BOOST_PP_FOR_236_C(BOOST_PP_BOOL(p##(237, s)), s, p, o, m)
-# define BOOST_PP_FOR_237(s, p, o, m) BOOST_PP_FOR_237_C(BOOST_PP_BOOL(p##(238, s)), s, p, o, m)
-# define BOOST_PP_FOR_238(s, p, o, m) BOOST_PP_FOR_238_C(BOOST_PP_BOOL(p##(239, s)), s, p, o, m)
-# define BOOST_PP_FOR_239(s, p, o, m) BOOST_PP_FOR_239_C(BOOST_PP_BOOL(p##(240, s)), s, p, o, m)
-# define BOOST_PP_FOR_240(s, p, o, m) BOOST_PP_FOR_240_C(BOOST_PP_BOOL(p##(241, s)), s, p, o, m)
-# define BOOST_PP_FOR_241(s, p, o, m) BOOST_PP_FOR_241_C(BOOST_PP_BOOL(p##(242, s)), s, p, o, m)
-# define BOOST_PP_FOR_242(s, p, o, m) BOOST_PP_FOR_242_C(BOOST_PP_BOOL(p##(243, s)), s, p, o, m)
-# define BOOST_PP_FOR_243(s, p, o, m) BOOST_PP_FOR_243_C(BOOST_PP_BOOL(p##(244, s)), s, p, o, m)
-# define BOOST_PP_FOR_244(s, p, o, m) BOOST_PP_FOR_244_C(BOOST_PP_BOOL(p##(245, s)), s, p, o, m)
-# define BOOST_PP_FOR_245(s, p, o, m) BOOST_PP_FOR_245_C(BOOST_PP_BOOL(p##(246, s)), s, p, o, m)
-# define BOOST_PP_FOR_246(s, p, o, m) BOOST_PP_FOR_246_C(BOOST_PP_BOOL(p##(247, s)), s, p, o, m)
-# define BOOST_PP_FOR_247(s, p, o, m) BOOST_PP_FOR_247_C(BOOST_PP_BOOL(p##(248, s)), s, p, o, m)
-# define BOOST_PP_FOR_248(s, p, o, m) BOOST_PP_FOR_248_C(BOOST_PP_BOOL(p##(249, s)), s, p, o, m)
-# define BOOST_PP_FOR_249(s, p, o, m) BOOST_PP_FOR_249_C(BOOST_PP_BOOL(p##(250, s)), s, p, o, m)
-# define BOOST_PP_FOR_250(s, p, o, m) BOOST_PP_FOR_250_C(BOOST_PP_BOOL(p##(251, s)), s, p, o, m)
-# define BOOST_PP_FOR_251(s, p, o, m) BOOST_PP_FOR_251_C(BOOST_PP_BOOL(p##(252, s)), s, p, o, m)
-# define BOOST_PP_FOR_252(s, p, o, m) BOOST_PP_FOR_252_C(BOOST_PP_BOOL(p##(253, s)), s, p, o, m)
-# define BOOST_PP_FOR_253(s, p, o, m) BOOST_PP_FOR_253_C(BOOST_PP_BOOL(p##(254, s)), s, p, o, m)
-# define BOOST_PP_FOR_254(s, p, o, m) BOOST_PP_FOR_254_C(BOOST_PP_BOOL(p##(255, s)), s, p, o, m)
-# define BOOST_PP_FOR_255(s, p, o, m) BOOST_PP_FOR_255_C(BOOST_PP_BOOL(p##(256, s)), s, p, o, m)
-# define BOOST_PP_FOR_256(s, p, o, m) BOOST_PP_FOR_256_C(BOOST_PP_BOOL(p##(257, s)), s, p, o, m)
-#
-# define BOOST_PP_FOR_1_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(2, s) BOOST_PP_IIF(c, BOOST_PP_FOR_2, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(2, s), p, o, m)
-# define BOOST_PP_FOR_2_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(3, s) BOOST_PP_IIF(c, BOOST_PP_FOR_3, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(3, s), p, o, m)
-# define BOOST_PP_FOR_3_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(4, s) BOOST_PP_IIF(c, BOOST_PP_FOR_4, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(4, s), p, o, m)
-# define BOOST_PP_FOR_4_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(5, s) BOOST_PP_IIF(c, BOOST_PP_FOR_5, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(5, s), p, o, m)
-# define BOOST_PP_FOR_5_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(6, s) BOOST_PP_IIF(c, BOOST_PP_FOR_6, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(6, s), p, o, m)
-# define BOOST_PP_FOR_6_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(7, s) BOOST_PP_IIF(c, BOOST_PP_FOR_7, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(7, s), p, o, m)
-# define BOOST_PP_FOR_7_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(8, s) BOOST_PP_IIF(c, BOOST_PP_FOR_8, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(8, s), p, o, m)
-# define BOOST_PP_FOR_8_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(9, s) BOOST_PP_IIF(c, BOOST_PP_FOR_9, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(9, s), p, o, m)
-# define BOOST_PP_FOR_9_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(10, s) BOOST_PP_IIF(c, BOOST_PP_FOR_10, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(10, s), p, o, m)
-# define BOOST_PP_FOR_10_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(11, s) BOOST_PP_IIF(c, BOOST_PP_FOR_11, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(11, s), p, o, m)
-# define BOOST_PP_FOR_11_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(12, s) BOOST_PP_IIF(c, BOOST_PP_FOR_12, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(12, s), p, o, m)
-# define BOOST_PP_FOR_12_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(13, s) BOOST_PP_IIF(c, BOOST_PP_FOR_13, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(13, s), p, o, m)
-# define BOOST_PP_FOR_13_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(14, s) BOOST_PP_IIF(c, BOOST_PP_FOR_14, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(14, s), p, o, m)
-# define BOOST_PP_FOR_14_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(15, s) BOOST_PP_IIF(c, BOOST_PP_FOR_15, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(15, s), p, o, m)
-# define BOOST_PP_FOR_15_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(16, s) BOOST_PP_IIF(c, BOOST_PP_FOR_16, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(16, s), p, o, m)
-# define BOOST_PP_FOR_16_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(17, s) BOOST_PP_IIF(c, BOOST_PP_FOR_17, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(17, s), p, o, m)
-# define BOOST_PP_FOR_17_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(18, s) BOOST_PP_IIF(c, BOOST_PP_FOR_18, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(18, s), p, o, m)
-# define BOOST_PP_FOR_18_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(19, s) BOOST_PP_IIF(c, BOOST_PP_FOR_19, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(19, s), p, o, m)
-# define BOOST_PP_FOR_19_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(20, s) BOOST_PP_IIF(c, BOOST_PP_FOR_20, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(20, s), p, o, m)
-# define BOOST_PP_FOR_20_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(21, s) BOOST_PP_IIF(c, BOOST_PP_FOR_21, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(21, s), p, o, m)
-# define BOOST_PP_FOR_21_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(22, s) BOOST_PP_IIF(c, BOOST_PP_FOR_22, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(22, s), p, o, m)
-# define BOOST_PP_FOR_22_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(23, s) BOOST_PP_IIF(c, BOOST_PP_FOR_23, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(23, s), p, o, m)
-# define BOOST_PP_FOR_23_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(24, s) BOOST_PP_IIF(c, BOOST_PP_FOR_24, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(24, s), p, o, m)
-# define BOOST_PP_FOR_24_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(25, s) BOOST_PP_IIF(c, BOOST_PP_FOR_25, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(25, s), p, o, m)
-# define BOOST_PP_FOR_25_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(26, s) BOOST_PP_IIF(c, BOOST_PP_FOR_26, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(26, s), p, o, m)
-# define BOOST_PP_FOR_26_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(27, s) BOOST_PP_IIF(c, BOOST_PP_FOR_27, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(27, s), p, o, m)
-# define BOOST_PP_FOR_27_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(28, s) BOOST_PP_IIF(c, BOOST_PP_FOR_28, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(28, s), p, o, m)
-# define BOOST_PP_FOR_28_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(29, s) BOOST_PP_IIF(c, BOOST_PP_FOR_29, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(29, s), p, o, m)
-# define BOOST_PP_FOR_29_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(30, s) BOOST_PP_IIF(c, BOOST_PP_FOR_30, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(30, s), p, o, m)
-# define BOOST_PP_FOR_30_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(31, s) BOOST_PP_IIF(c, BOOST_PP_FOR_31, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(31, s), p, o, m)
-# define BOOST_PP_FOR_31_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(32, s) BOOST_PP_IIF(c, BOOST_PP_FOR_32, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(32, s), p, o, m)
-# define BOOST_PP_FOR_32_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(33, s) BOOST_PP_IIF(c, BOOST_PP_FOR_33, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(33, s), p, o, m)
-# define BOOST_PP_FOR_33_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(34, s) BOOST_PP_IIF(c, BOOST_PP_FOR_34, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(34, s), p, o, m)
-# define BOOST_PP_FOR_34_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(35, s) BOOST_PP_IIF(c, BOOST_PP_FOR_35, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(35, s), p, o, m)
-# define BOOST_PP_FOR_35_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(36, s) BOOST_PP_IIF(c, BOOST_PP_FOR_36, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(36, s), p, o, m)
-# define BOOST_PP_FOR_36_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(37, s) BOOST_PP_IIF(c, BOOST_PP_FOR_37, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(37, s), p, o, m)
-# define BOOST_PP_FOR_37_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(38, s) BOOST_PP_IIF(c, BOOST_PP_FOR_38, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(38, s), p, o, m)
-# define BOOST_PP_FOR_38_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(39, s) BOOST_PP_IIF(c, BOOST_PP_FOR_39, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(39, s), p, o, m)
-# define BOOST_PP_FOR_39_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(40, s) BOOST_PP_IIF(c, BOOST_PP_FOR_40, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(40, s), p, o, m)
-# define BOOST_PP_FOR_40_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(41, s) BOOST_PP_IIF(c, BOOST_PP_FOR_41, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(41, s), p, o, m)
-# define BOOST_PP_FOR_41_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(42, s) BOOST_PP_IIF(c, BOOST_PP_FOR_42, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(42, s), p, o, m)
-# define BOOST_PP_FOR_42_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(43, s) BOOST_PP_IIF(c, BOOST_PP_FOR_43, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(43, s), p, o, m)
-# define BOOST_PP_FOR_43_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(44, s) BOOST_PP_IIF(c, BOOST_PP_FOR_44, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(44, s), p, o, m)
-# define BOOST_PP_FOR_44_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(45, s) BOOST_PP_IIF(c, BOOST_PP_FOR_45, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(45, s), p, o, m)
-# define BOOST_PP_FOR_45_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(46, s) BOOST_PP_IIF(c, BOOST_PP_FOR_46, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(46, s), p, o, m)
-# define BOOST_PP_FOR_46_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(47, s) BOOST_PP_IIF(c, BOOST_PP_FOR_47, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(47, s), p, o, m)
-# define BOOST_PP_FOR_47_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(48, s) BOOST_PP_IIF(c, BOOST_PP_FOR_48, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(48, s), p, o, m)
-# define BOOST_PP_FOR_48_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(49, s) BOOST_PP_IIF(c, BOOST_PP_FOR_49, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(49, s), p, o, m)
-# define BOOST_PP_FOR_49_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(50, s) BOOST_PP_IIF(c, BOOST_PP_FOR_50, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(50, s), p, o, m)
-# define BOOST_PP_FOR_50_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(51, s) BOOST_PP_IIF(c, BOOST_PP_FOR_51, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(51, s), p, o, m)
-# define BOOST_PP_FOR_51_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(52, s) BOOST_PP_IIF(c, BOOST_PP_FOR_52, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(52, s), p, o, m)
-# define BOOST_PP_FOR_52_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(53, s) BOOST_PP_IIF(c, BOOST_PP_FOR_53, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(53, s), p, o, m)
-# define BOOST_PP_FOR_53_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(54, s) BOOST_PP_IIF(c, BOOST_PP_FOR_54, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(54, s), p, o, m)
-# define BOOST_PP_FOR_54_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(55, s) BOOST_PP_IIF(c, BOOST_PP_FOR_55, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(55, s), p, o, m)
-# define BOOST_PP_FOR_55_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(56, s) BOOST_PP_IIF(c, BOOST_PP_FOR_56, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(56, s), p, o, m)
-# define BOOST_PP_FOR_56_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(57, s) BOOST_PP_IIF(c, BOOST_PP_FOR_57, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(57, s), p, o, m)
-# define BOOST_PP_FOR_57_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(58, s) BOOST_PP_IIF(c, BOOST_PP_FOR_58, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(58, s), p, o, m)
-# define BOOST_PP_FOR_58_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(59, s) BOOST_PP_IIF(c, BOOST_PP_FOR_59, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(59, s), p, o, m)
-# define BOOST_PP_FOR_59_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(60, s) BOOST_PP_IIF(c, BOOST_PP_FOR_60, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(60, s), p, o, m)
-# define BOOST_PP_FOR_60_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(61, s) BOOST_PP_IIF(c, BOOST_PP_FOR_61, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(61, s), p, o, m)
-# define BOOST_PP_FOR_61_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(62, s) BOOST_PP_IIF(c, BOOST_PP_FOR_62, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(62, s), p, o, m)
-# define BOOST_PP_FOR_62_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(63, s) BOOST_PP_IIF(c, BOOST_PP_FOR_63, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(63, s), p, o, m)
-# define BOOST_PP_FOR_63_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(64, s) BOOST_PP_IIF(c, BOOST_PP_FOR_64, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(64, s), p, o, m)
-# define BOOST_PP_FOR_64_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(65, s) BOOST_PP_IIF(c, BOOST_PP_FOR_65, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(65, s), p, o, m)
-# define BOOST_PP_FOR_65_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(66, s) BOOST_PP_IIF(c, BOOST_PP_FOR_66, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(66, s), p, o, m)
-# define BOOST_PP_FOR_66_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(67, s) BOOST_PP_IIF(c, BOOST_PP_FOR_67, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(67, s), p, o, m)
-# define BOOST_PP_FOR_67_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(68, s) BOOST_PP_IIF(c, BOOST_PP_FOR_68, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(68, s), p, o, m)
-# define BOOST_PP_FOR_68_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(69, s) BOOST_PP_IIF(c, BOOST_PP_FOR_69, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(69, s), p, o, m)
-# define BOOST_PP_FOR_69_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(70, s) BOOST_PP_IIF(c, BOOST_PP_FOR_70, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(70, s), p, o, m)
-# define BOOST_PP_FOR_70_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(71, s) BOOST_PP_IIF(c, BOOST_PP_FOR_71, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(71, s), p, o, m)
-# define BOOST_PP_FOR_71_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(72, s) BOOST_PP_IIF(c, BOOST_PP_FOR_72, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(72, s), p, o, m)
-# define BOOST_PP_FOR_72_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(73, s) BOOST_PP_IIF(c, BOOST_PP_FOR_73, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(73, s), p, o, m)
-# define BOOST_PP_FOR_73_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(74, s) BOOST_PP_IIF(c, BOOST_PP_FOR_74, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(74, s), p, o, m)
-# define BOOST_PP_FOR_74_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(75, s) BOOST_PP_IIF(c, BOOST_PP_FOR_75, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(75, s), p, o, m)
-# define BOOST_PP_FOR_75_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(76, s) BOOST_PP_IIF(c, BOOST_PP_FOR_76, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(76, s), p, o, m)
-# define BOOST_PP_FOR_76_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(77, s) BOOST_PP_IIF(c, BOOST_PP_FOR_77, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(77, s), p, o, m)
-# define BOOST_PP_FOR_77_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(78, s) BOOST_PP_IIF(c, BOOST_PP_FOR_78, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(78, s), p, o, m)
-# define BOOST_PP_FOR_78_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(79, s) BOOST_PP_IIF(c, BOOST_PP_FOR_79, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(79, s), p, o, m)
-# define BOOST_PP_FOR_79_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(80, s) BOOST_PP_IIF(c, BOOST_PP_FOR_80, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(80, s), p, o, m)
-# define BOOST_PP_FOR_80_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(81, s) BOOST_PP_IIF(c, BOOST_PP_FOR_81, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(81, s), p, o, m)
-# define BOOST_PP_FOR_81_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(82, s) BOOST_PP_IIF(c, BOOST_PP_FOR_82, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(82, s), p, o, m)
-# define BOOST_PP_FOR_82_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(83, s) BOOST_PP_IIF(c, BOOST_PP_FOR_83, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(83, s), p, o, m)
-# define BOOST_PP_FOR_83_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(84, s) BOOST_PP_IIF(c, BOOST_PP_FOR_84, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(84, s), p, o, m)
-# define BOOST_PP_FOR_84_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(85, s) BOOST_PP_IIF(c, BOOST_PP_FOR_85, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(85, s), p, o, m)
-# define BOOST_PP_FOR_85_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(86, s) BOOST_PP_IIF(c, BOOST_PP_FOR_86, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(86, s), p, o, m)
-# define BOOST_PP_FOR_86_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(87, s) BOOST_PP_IIF(c, BOOST_PP_FOR_87, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(87, s), p, o, m)
-# define BOOST_PP_FOR_87_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(88, s) BOOST_PP_IIF(c, BOOST_PP_FOR_88, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(88, s), p, o, m)
-# define BOOST_PP_FOR_88_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(89, s) BOOST_PP_IIF(c, BOOST_PP_FOR_89, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(89, s), p, o, m)
-# define BOOST_PP_FOR_89_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(90, s) BOOST_PP_IIF(c, BOOST_PP_FOR_90, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(90, s), p, o, m)
-# define BOOST_PP_FOR_90_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(91, s) BOOST_PP_IIF(c, BOOST_PP_FOR_91, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(91, s), p, o, m)
-# define BOOST_PP_FOR_91_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(92, s) BOOST_PP_IIF(c, BOOST_PP_FOR_92, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(92, s), p, o, m)
-# define BOOST_PP_FOR_92_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(93, s) BOOST_PP_IIF(c, BOOST_PP_FOR_93, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(93, s), p, o, m)
-# define BOOST_PP_FOR_93_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(94, s) BOOST_PP_IIF(c, BOOST_PP_FOR_94, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(94, s), p, o, m)
-# define BOOST_PP_FOR_94_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(95, s) BOOST_PP_IIF(c, BOOST_PP_FOR_95, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(95, s), p, o, m)
-# define BOOST_PP_FOR_95_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(96, s) BOOST_PP_IIF(c, BOOST_PP_FOR_96, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(96, s), p, o, m)
-# define BOOST_PP_FOR_96_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(97, s) BOOST_PP_IIF(c, BOOST_PP_FOR_97, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(97, s), p, o, m)
-# define BOOST_PP_FOR_97_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(98, s) BOOST_PP_IIF(c, BOOST_PP_FOR_98, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(98, s), p, o, m)
-# define BOOST_PP_FOR_98_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(99, s) BOOST_PP_IIF(c, BOOST_PP_FOR_99, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(99, s), p, o, m)
-# define BOOST_PP_FOR_99_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(100, s) BOOST_PP_IIF(c, BOOST_PP_FOR_100, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(100, s), p, o, m)
-# define BOOST_PP_FOR_100_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(101, s) BOOST_PP_IIF(c, BOOST_PP_FOR_101, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(101, s), p, o, m)
-# define BOOST_PP_FOR_101_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(102, s) BOOST_PP_IIF(c, BOOST_PP_FOR_102, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(102, s), p, o, m)
-# define BOOST_PP_FOR_102_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(103, s) BOOST_PP_IIF(c, BOOST_PP_FOR_103, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(103, s), p, o, m)
-# define BOOST_PP_FOR_103_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(104, s) BOOST_PP_IIF(c, BOOST_PP_FOR_104, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(104, s), p, o, m)
-# define BOOST_PP_FOR_104_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(105, s) BOOST_PP_IIF(c, BOOST_PP_FOR_105, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(105, s), p, o, m)
-# define BOOST_PP_FOR_105_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(106, s) BOOST_PP_IIF(c, BOOST_PP_FOR_106, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(106, s), p, o, m)
-# define BOOST_PP_FOR_106_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(107, s) BOOST_PP_IIF(c, BOOST_PP_FOR_107, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(107, s), p, o, m)
-# define BOOST_PP_FOR_107_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(108, s) BOOST_PP_IIF(c, BOOST_PP_FOR_108, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(108, s), p, o, m)
-# define BOOST_PP_FOR_108_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(109, s) BOOST_PP_IIF(c, BOOST_PP_FOR_109, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(109, s), p, o, m)
-# define BOOST_PP_FOR_109_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(110, s) BOOST_PP_IIF(c, BOOST_PP_FOR_110, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(110, s), p, o, m)
-# define BOOST_PP_FOR_110_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(111, s) BOOST_PP_IIF(c, BOOST_PP_FOR_111, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(111, s), p, o, m)
-# define BOOST_PP_FOR_111_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(112, s) BOOST_PP_IIF(c, BOOST_PP_FOR_112, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(112, s), p, o, m)
-# define BOOST_PP_FOR_112_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(113, s) BOOST_PP_IIF(c, BOOST_PP_FOR_113, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(113, s), p, o, m)
-# define BOOST_PP_FOR_113_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(114, s) BOOST_PP_IIF(c, BOOST_PP_FOR_114, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(114, s), p, o, m)
-# define BOOST_PP_FOR_114_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(115, s) BOOST_PP_IIF(c, BOOST_PP_FOR_115, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(115, s), p, o, m)
-# define BOOST_PP_FOR_115_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(116, s) BOOST_PP_IIF(c, BOOST_PP_FOR_116, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(116, s), p, o, m)
-# define BOOST_PP_FOR_116_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(117, s) BOOST_PP_IIF(c, BOOST_PP_FOR_117, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(117, s), p, o, m)
-# define BOOST_PP_FOR_117_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(118, s) BOOST_PP_IIF(c, BOOST_PP_FOR_118, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(118, s), p, o, m)
-# define BOOST_PP_FOR_118_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(119, s) BOOST_PP_IIF(c, BOOST_PP_FOR_119, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(119, s), p, o, m)
-# define BOOST_PP_FOR_119_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(120, s) BOOST_PP_IIF(c, BOOST_PP_FOR_120, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(120, s), p, o, m)
-# define BOOST_PP_FOR_120_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(121, s) BOOST_PP_IIF(c, BOOST_PP_FOR_121, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(121, s), p, o, m)
-# define BOOST_PP_FOR_121_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(122, s) BOOST_PP_IIF(c, BOOST_PP_FOR_122, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(122, s), p, o, m)
-# define BOOST_PP_FOR_122_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(123, s) BOOST_PP_IIF(c, BOOST_PP_FOR_123, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(123, s), p, o, m)
-# define BOOST_PP_FOR_123_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(124, s) BOOST_PP_IIF(c, BOOST_PP_FOR_124, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(124, s), p, o, m)
-# define BOOST_PP_FOR_124_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(125, s) BOOST_PP_IIF(c, BOOST_PP_FOR_125, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(125, s), p, o, m)
-# define BOOST_PP_FOR_125_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(126, s) BOOST_PP_IIF(c, BOOST_PP_FOR_126, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(126, s), p, o, m)
-# define BOOST_PP_FOR_126_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(127, s) BOOST_PP_IIF(c, BOOST_PP_FOR_127, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(127, s), p, o, m)
-# define BOOST_PP_FOR_127_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(128, s) BOOST_PP_IIF(c, BOOST_PP_FOR_128, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(128, s), p, o, m)
-# define BOOST_PP_FOR_128_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(129, s) BOOST_PP_IIF(c, BOOST_PP_FOR_129, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(129, s), p, o, m)
-# define BOOST_PP_FOR_129_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(130, s) BOOST_PP_IIF(c, BOOST_PP_FOR_130, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(130, s), p, o, m)
-# define BOOST_PP_FOR_130_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(131, s) BOOST_PP_IIF(c, BOOST_PP_FOR_131, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(131, s), p, o, m)
-# define BOOST_PP_FOR_131_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(132, s) BOOST_PP_IIF(c, BOOST_PP_FOR_132, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(132, s), p, o, m)
-# define BOOST_PP_FOR_132_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(133, s) BOOST_PP_IIF(c, BOOST_PP_FOR_133, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(133, s), p, o, m)
-# define BOOST_PP_FOR_133_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(134, s) BOOST_PP_IIF(c, BOOST_PP_FOR_134, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(134, s), p, o, m)
-# define BOOST_PP_FOR_134_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(135, s) BOOST_PP_IIF(c, BOOST_PP_FOR_135, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(135, s), p, o, m)
-# define BOOST_PP_FOR_135_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(136, s) BOOST_PP_IIF(c, BOOST_PP_FOR_136, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(136, s), p, o, m)
-# define BOOST_PP_FOR_136_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(137, s) BOOST_PP_IIF(c, BOOST_PP_FOR_137, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(137, s), p, o, m)
-# define BOOST_PP_FOR_137_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(138, s) BOOST_PP_IIF(c, BOOST_PP_FOR_138, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(138, s), p, o, m)
-# define BOOST_PP_FOR_138_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(139, s) BOOST_PP_IIF(c, BOOST_PP_FOR_139, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(139, s), p, o, m)
-# define BOOST_PP_FOR_139_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(140, s) BOOST_PP_IIF(c, BOOST_PP_FOR_140, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(140, s), p, o, m)
-# define BOOST_PP_FOR_140_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(141, s) BOOST_PP_IIF(c, BOOST_PP_FOR_141, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(141, s), p, o, m)
-# define BOOST_PP_FOR_141_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(142, s) BOOST_PP_IIF(c, BOOST_PP_FOR_142, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(142, s), p, o, m)
-# define BOOST_PP_FOR_142_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(143, s) BOOST_PP_IIF(c, BOOST_PP_FOR_143, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(143, s), p, o, m)
-# define BOOST_PP_FOR_143_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(144, s) BOOST_PP_IIF(c, BOOST_PP_FOR_144, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(144, s), p, o, m)
-# define BOOST_PP_FOR_144_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(145, s) BOOST_PP_IIF(c, BOOST_PP_FOR_145, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(145, s), p, o, m)
-# define BOOST_PP_FOR_145_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(146, s) BOOST_PP_IIF(c, BOOST_PP_FOR_146, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(146, s), p, o, m)
-# define BOOST_PP_FOR_146_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(147, s) BOOST_PP_IIF(c, BOOST_PP_FOR_147, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(147, s), p, o, m)
-# define BOOST_PP_FOR_147_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(148, s) BOOST_PP_IIF(c, BOOST_PP_FOR_148, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(148, s), p, o, m)
-# define BOOST_PP_FOR_148_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(149, s) BOOST_PP_IIF(c, BOOST_PP_FOR_149, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(149, s), p, o, m)
-# define BOOST_PP_FOR_149_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(150, s) BOOST_PP_IIF(c, BOOST_PP_FOR_150, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(150, s), p, o, m)
-# define BOOST_PP_FOR_150_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(151, s) BOOST_PP_IIF(c, BOOST_PP_FOR_151, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(151, s), p, o, m)
-# define BOOST_PP_FOR_151_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(152, s) BOOST_PP_IIF(c, BOOST_PP_FOR_152, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(152, s), p, o, m)
-# define BOOST_PP_FOR_152_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(153, s) BOOST_PP_IIF(c, BOOST_PP_FOR_153, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(153, s), p, o, m)
-# define BOOST_PP_FOR_153_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(154, s) BOOST_PP_IIF(c, BOOST_PP_FOR_154, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(154, s), p, o, m)
-# define BOOST_PP_FOR_154_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(155, s) BOOST_PP_IIF(c, BOOST_PP_FOR_155, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(155, s), p, o, m)
-# define BOOST_PP_FOR_155_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(156, s) BOOST_PP_IIF(c, BOOST_PP_FOR_156, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(156, s), p, o, m)
-# define BOOST_PP_FOR_156_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(157, s) BOOST_PP_IIF(c, BOOST_PP_FOR_157, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(157, s), p, o, m)
-# define BOOST_PP_FOR_157_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(158, s) BOOST_PP_IIF(c, BOOST_PP_FOR_158, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(158, s), p, o, m)
-# define BOOST_PP_FOR_158_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(159, s) BOOST_PP_IIF(c, BOOST_PP_FOR_159, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(159, s), p, o, m)
-# define BOOST_PP_FOR_159_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(160, s) BOOST_PP_IIF(c, BOOST_PP_FOR_160, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(160, s), p, o, m)
-# define BOOST_PP_FOR_160_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(161, s) BOOST_PP_IIF(c, BOOST_PP_FOR_161, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(161, s), p, o, m)
-# define BOOST_PP_FOR_161_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(162, s) BOOST_PP_IIF(c, BOOST_PP_FOR_162, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(162, s), p, o, m)
-# define BOOST_PP_FOR_162_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(163, s) BOOST_PP_IIF(c, BOOST_PP_FOR_163, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(163, s), p, o, m)
-# define BOOST_PP_FOR_163_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(164, s) BOOST_PP_IIF(c, BOOST_PP_FOR_164, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(164, s), p, o, m)
-# define BOOST_PP_FOR_164_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(165, s) BOOST_PP_IIF(c, BOOST_PP_FOR_165, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(165, s), p, o, m)
-# define BOOST_PP_FOR_165_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(166, s) BOOST_PP_IIF(c, BOOST_PP_FOR_166, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(166, s), p, o, m)
-# define BOOST_PP_FOR_166_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(167, s) BOOST_PP_IIF(c, BOOST_PP_FOR_167, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(167, s), p, o, m)
-# define BOOST_PP_FOR_167_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(168, s) BOOST_PP_IIF(c, BOOST_PP_FOR_168, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(168, s), p, o, m)
-# define BOOST_PP_FOR_168_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(169, s) BOOST_PP_IIF(c, BOOST_PP_FOR_169, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(169, s), p, o, m)
-# define BOOST_PP_FOR_169_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(170, s) BOOST_PP_IIF(c, BOOST_PP_FOR_170, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(170, s), p, o, m)
-# define BOOST_PP_FOR_170_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(171, s) BOOST_PP_IIF(c, BOOST_PP_FOR_171, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(171, s), p, o, m)
-# define BOOST_PP_FOR_171_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(172, s) BOOST_PP_IIF(c, BOOST_PP_FOR_172, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(172, s), p, o, m)
-# define BOOST_PP_FOR_172_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(173, s) BOOST_PP_IIF(c, BOOST_PP_FOR_173, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(173, s), p, o, m)
-# define BOOST_PP_FOR_173_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(174, s) BOOST_PP_IIF(c, BOOST_PP_FOR_174, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(174, s), p, o, m)
-# define BOOST_PP_FOR_174_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(175, s) BOOST_PP_IIF(c, BOOST_PP_FOR_175, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(175, s), p, o, m)
-# define BOOST_PP_FOR_175_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(176, s) BOOST_PP_IIF(c, BOOST_PP_FOR_176, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(176, s), p, o, m)
-# define BOOST_PP_FOR_176_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(177, s) BOOST_PP_IIF(c, BOOST_PP_FOR_177, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(177, s), p, o, m)
-# define BOOST_PP_FOR_177_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(178, s) BOOST_PP_IIF(c, BOOST_PP_FOR_178, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(178, s), p, o, m)
-# define BOOST_PP_FOR_178_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(179, s) BOOST_PP_IIF(c, BOOST_PP_FOR_179, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(179, s), p, o, m)
-# define BOOST_PP_FOR_179_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(180, s) BOOST_PP_IIF(c, BOOST_PP_FOR_180, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(180, s), p, o, m)
-# define BOOST_PP_FOR_180_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(181, s) BOOST_PP_IIF(c, BOOST_PP_FOR_181, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(181, s), p, o, m)
-# define BOOST_PP_FOR_181_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(182, s) BOOST_PP_IIF(c, BOOST_PP_FOR_182, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(182, s), p, o, m)
-# define BOOST_PP_FOR_182_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(183, s) BOOST_PP_IIF(c, BOOST_PP_FOR_183, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(183, s), p, o, m)
-# define BOOST_PP_FOR_183_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(184, s) BOOST_PP_IIF(c, BOOST_PP_FOR_184, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(184, s), p, o, m)
-# define BOOST_PP_FOR_184_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(185, s) BOOST_PP_IIF(c, BOOST_PP_FOR_185, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(185, s), p, o, m)
-# define BOOST_PP_FOR_185_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(186, s) BOOST_PP_IIF(c, BOOST_PP_FOR_186, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(186, s), p, o, m)
-# define BOOST_PP_FOR_186_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(187, s) BOOST_PP_IIF(c, BOOST_PP_FOR_187, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(187, s), p, o, m)
-# define BOOST_PP_FOR_187_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(188, s) BOOST_PP_IIF(c, BOOST_PP_FOR_188, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(188, s), p, o, m)
-# define BOOST_PP_FOR_188_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(189, s) BOOST_PP_IIF(c, BOOST_PP_FOR_189, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(189, s), p, o, m)
-# define BOOST_PP_FOR_189_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(190, s) BOOST_PP_IIF(c, BOOST_PP_FOR_190, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(190, s), p, o, m)
-# define BOOST_PP_FOR_190_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(191, s) BOOST_PP_IIF(c, BOOST_PP_FOR_191, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(191, s), p, o, m)
-# define BOOST_PP_FOR_191_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(192, s) BOOST_PP_IIF(c, BOOST_PP_FOR_192, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(192, s), p, o, m)
-# define BOOST_PP_FOR_192_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(193, s) BOOST_PP_IIF(c, BOOST_PP_FOR_193, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(193, s), p, o, m)
-# define BOOST_PP_FOR_193_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(194, s) BOOST_PP_IIF(c, BOOST_PP_FOR_194, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(194, s), p, o, m)
-# define BOOST_PP_FOR_194_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(195, s) BOOST_PP_IIF(c, BOOST_PP_FOR_195, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(195, s), p, o, m)
-# define BOOST_PP_FOR_195_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(196, s) BOOST_PP_IIF(c, BOOST_PP_FOR_196, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(196, s), p, o, m)
-# define BOOST_PP_FOR_196_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(197, s) BOOST_PP_IIF(c, BOOST_PP_FOR_197, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(197, s), p, o, m)
-# define BOOST_PP_FOR_197_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(198, s) BOOST_PP_IIF(c, BOOST_PP_FOR_198, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(198, s), p, o, m)
-# define BOOST_PP_FOR_198_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(199, s) BOOST_PP_IIF(c, BOOST_PP_FOR_199, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(199, s), p, o, m)
-# define BOOST_PP_FOR_199_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(200, s) BOOST_PP_IIF(c, BOOST_PP_FOR_200, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(200, s), p, o, m)
-# define BOOST_PP_FOR_200_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(201, s) BOOST_PP_IIF(c, BOOST_PP_FOR_201, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(201, s), p, o, m)
-# define BOOST_PP_FOR_201_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(202, s) BOOST_PP_IIF(c, BOOST_PP_FOR_202, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(202, s), p, o, m)
-# define BOOST_PP_FOR_202_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(203, s) BOOST_PP_IIF(c, BOOST_PP_FOR_203, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(203, s), p, o, m)
-# define BOOST_PP_FOR_203_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(204, s) BOOST_PP_IIF(c, BOOST_PP_FOR_204, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(204, s), p, o, m)
-# define BOOST_PP_FOR_204_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(205, s) BOOST_PP_IIF(c, BOOST_PP_FOR_205, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(205, s), p, o, m)
-# define BOOST_PP_FOR_205_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(206, s) BOOST_PP_IIF(c, BOOST_PP_FOR_206, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(206, s), p, o, m)
-# define BOOST_PP_FOR_206_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(207, s) BOOST_PP_IIF(c, BOOST_PP_FOR_207, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(207, s), p, o, m)
-# define BOOST_PP_FOR_207_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(208, s) BOOST_PP_IIF(c, BOOST_PP_FOR_208, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(208, s), p, o, m)
-# define BOOST_PP_FOR_208_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(209, s) BOOST_PP_IIF(c, BOOST_PP_FOR_209, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(209, s), p, o, m)
-# define BOOST_PP_FOR_209_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(210, s) BOOST_PP_IIF(c, BOOST_PP_FOR_210, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(210, s), p, o, m)
-# define BOOST_PP_FOR_210_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(211, s) BOOST_PP_IIF(c, BOOST_PP_FOR_211, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(211, s), p, o, m)
-# define BOOST_PP_FOR_211_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(212, s) BOOST_PP_IIF(c, BOOST_PP_FOR_212, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(212, s), p, o, m)
-# define BOOST_PP_FOR_212_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(213, s) BOOST_PP_IIF(c, BOOST_PP_FOR_213, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(213, s), p, o, m)
-# define BOOST_PP_FOR_213_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(214, s) BOOST_PP_IIF(c, BOOST_PP_FOR_214, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(214, s), p, o, m)
-# define BOOST_PP_FOR_214_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(215, s) BOOST_PP_IIF(c, BOOST_PP_FOR_215, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(215, s), p, o, m)
-# define BOOST_PP_FOR_215_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(216, s) BOOST_PP_IIF(c, BOOST_PP_FOR_216, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(216, s), p, o, m)
-# define BOOST_PP_FOR_216_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(217, s) BOOST_PP_IIF(c, BOOST_PP_FOR_217, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(217, s), p, o, m)
-# define BOOST_PP_FOR_217_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(218, s) BOOST_PP_IIF(c, BOOST_PP_FOR_218, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(218, s), p, o, m)
-# define BOOST_PP_FOR_218_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(219, s) BOOST_PP_IIF(c, BOOST_PP_FOR_219, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(219, s), p, o, m)
-# define BOOST_PP_FOR_219_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(220, s) BOOST_PP_IIF(c, BOOST_PP_FOR_220, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(220, s), p, o, m)
-# define BOOST_PP_FOR_220_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(221, s) BOOST_PP_IIF(c, BOOST_PP_FOR_221, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(221, s), p, o, m)
-# define BOOST_PP_FOR_221_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(222, s) BOOST_PP_IIF(c, BOOST_PP_FOR_222, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(222, s), p, o, m)
-# define BOOST_PP_FOR_222_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(223, s) BOOST_PP_IIF(c, BOOST_PP_FOR_223, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(223, s), p, o, m)
-# define BOOST_PP_FOR_223_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(224, s) BOOST_PP_IIF(c, BOOST_PP_FOR_224, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(224, s), p, o, m)
-# define BOOST_PP_FOR_224_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(225, s) BOOST_PP_IIF(c, BOOST_PP_FOR_225, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(225, s), p, o, m)
-# define BOOST_PP_FOR_225_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(226, s) BOOST_PP_IIF(c, BOOST_PP_FOR_226, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(226, s), p, o, m)
-# define BOOST_PP_FOR_226_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(227, s) BOOST_PP_IIF(c, BOOST_PP_FOR_227, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(227, s), p, o, m)
-# define BOOST_PP_FOR_227_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(228, s) BOOST_PP_IIF(c, BOOST_PP_FOR_228, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(228, s), p, o, m)
-# define BOOST_PP_FOR_228_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(229, s) BOOST_PP_IIF(c, BOOST_PP_FOR_229, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(229, s), p, o, m)
-# define BOOST_PP_FOR_229_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(230, s) BOOST_PP_IIF(c, BOOST_PP_FOR_230, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(230, s), p, o, m)
-# define BOOST_PP_FOR_230_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(231, s) BOOST_PP_IIF(c, BOOST_PP_FOR_231, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(231, s), p, o, m)
-# define BOOST_PP_FOR_231_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(232, s) BOOST_PP_IIF(c, BOOST_PP_FOR_232, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(232, s), p, o, m)
-# define BOOST_PP_FOR_232_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(233, s) BOOST_PP_IIF(c, BOOST_PP_FOR_233, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(233, s), p, o, m)
-# define BOOST_PP_FOR_233_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(234, s) BOOST_PP_IIF(c, BOOST_PP_FOR_234, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(234, s), p, o, m)
-# define BOOST_PP_FOR_234_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(235, s) BOOST_PP_IIF(c, BOOST_PP_FOR_235, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(235, s), p, o, m)
-# define BOOST_PP_FOR_235_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(236, s) BOOST_PP_IIF(c, BOOST_PP_FOR_236, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(236, s), p, o, m)
-# define BOOST_PP_FOR_236_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(237, s) BOOST_PP_IIF(c, BOOST_PP_FOR_237, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(237, s), p, o, m)
-# define BOOST_PP_FOR_237_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(238, s) BOOST_PP_IIF(c, BOOST_PP_FOR_238, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(238, s), p, o, m)
-# define BOOST_PP_FOR_238_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(239, s) BOOST_PP_IIF(c, BOOST_PP_FOR_239, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(239, s), p, o, m)
-# define BOOST_PP_FOR_239_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(240, s) BOOST_PP_IIF(c, BOOST_PP_FOR_240, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(240, s), p, o, m)
-# define BOOST_PP_FOR_240_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(241, s) BOOST_PP_IIF(c, BOOST_PP_FOR_241, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(241, s), p, o, m)
-# define BOOST_PP_FOR_241_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(242, s) BOOST_PP_IIF(c, BOOST_PP_FOR_242, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(242, s), p, o, m)
-# define BOOST_PP_FOR_242_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(243, s) BOOST_PP_IIF(c, BOOST_PP_FOR_243, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(243, s), p, o, m)
-# define BOOST_PP_FOR_243_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(244, s) BOOST_PP_IIF(c, BOOST_PP_FOR_244, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(244, s), p, o, m)
-# define BOOST_PP_FOR_244_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(245, s) BOOST_PP_IIF(c, BOOST_PP_FOR_245, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(245, s), p, o, m)
-# define BOOST_PP_FOR_245_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(246, s) BOOST_PP_IIF(c, BOOST_PP_FOR_246, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(246, s), p, o, m)
-# define BOOST_PP_FOR_246_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(247, s) BOOST_PP_IIF(c, BOOST_PP_FOR_247, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(247, s), p, o, m)
-# define BOOST_PP_FOR_247_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(248, s) BOOST_PP_IIF(c, BOOST_PP_FOR_248, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(248, s), p, o, m)
-# define BOOST_PP_FOR_248_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(249, s) BOOST_PP_IIF(c, BOOST_PP_FOR_249, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(249, s), p, o, m)
-# define BOOST_PP_FOR_249_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(250, s) BOOST_PP_IIF(c, BOOST_PP_FOR_250, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(250, s), p, o, m)
-# define BOOST_PP_FOR_250_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(251, s) BOOST_PP_IIF(c, BOOST_PP_FOR_251, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(251, s), p, o, m)
-# define BOOST_PP_FOR_251_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(252, s) BOOST_PP_IIF(c, BOOST_PP_FOR_252, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(252, s), p, o, m)
-# define BOOST_PP_FOR_252_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(253, s) BOOST_PP_IIF(c, BOOST_PP_FOR_253, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(253, s), p, o, m)
-# define BOOST_PP_FOR_253_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(254, s) BOOST_PP_IIF(c, BOOST_PP_FOR_254, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(254, s), p, o, m)
-# define BOOST_PP_FOR_254_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(255, s) BOOST_PP_IIF(c, BOOST_PP_FOR_255, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(255, s), p, o, m)
-# define BOOST_PP_FOR_255_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(256, s) BOOST_PP_IIF(c, BOOST_PP_FOR_256, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(256, s), p, o, m)
-# define BOOST_PP_FOR_256_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(257, s) BOOST_PP_IIF(c, BOOST_PP_FOR_257, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(257, s), p, o, m)
-#
-# endif
diff --git a/boost/preprocessor/repetition/detail/edg/for.hpp b/boost/preprocessor/repetition/detail/edg/for.hpp
deleted file mode 100644
index 212921a..0000000
--- a/boost/preprocessor/repetition/detail/edg/for.hpp
+++ /dev/null
@@ -1,534 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * Distributed under the Boost Software License, Version 1.0. (See
-#  * accompanying file LICENSE_1_0.txt or copy at
-#  * http://www.boost.org/LICENSE_1_0.txt)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_REPETITION_DETAIL_EDG_FOR_HPP
-# define BOOST_PREPROCESSOR_REPETITION_DETAIL_EDG_FOR_HPP
-#
-# include <boost/preprocessor/control/if.hpp>
-# include <boost/preprocessor/tuple/eat.hpp>
-#
-# define BOOST_PP_FOR_1(s, p, o, m) BOOST_PP_FOR_1_I(s, p, o, m)
-# define BOOST_PP_FOR_2(s, p, o, m) BOOST_PP_FOR_2_I(s, p, o, m)
-# define BOOST_PP_FOR_3(s, p, o, m) BOOST_PP_FOR_3_I(s, p, o, m)
-# define BOOST_PP_FOR_4(s, p, o, m) BOOST_PP_FOR_4_I(s, p, o, m)
-# define BOOST_PP_FOR_5(s, p, o, m) BOOST_PP_FOR_5_I(s, p, o, m)
-# define BOOST_PP_FOR_6(s, p, o, m) BOOST_PP_FOR_6_I(s, p, o, m)
-# define BOOST_PP_FOR_7(s, p, o, m) BOOST_PP_FOR_7_I(s, p, o, m)
-# define BOOST_PP_FOR_8(s, p, o, m) BOOST_PP_FOR_8_I(s, p, o, m)
-# define BOOST_PP_FOR_9(s, p, o, m) BOOST_PP_FOR_9_I(s, p, o, m)
-# define BOOST_PP_FOR_10(s, p, o, m) BOOST_PP_FOR_10_I(s, p, o, m)
-# define BOOST_PP_FOR_11(s, p, o, m) BOOST_PP_FOR_11_I(s, p, o, m)
-# define BOOST_PP_FOR_12(s, p, o, m) BOOST_PP_FOR_12_I(s, p, o, m)
-# define BOOST_PP_FOR_13(s, p, o, m) BOOST_PP_FOR_13_I(s, p, o, m)
-# define BOOST_PP_FOR_14(s, p, o, m) BOOST_PP_FOR_14_I(s, p, o, m)
-# define BOOST_PP_FOR_15(s, p, o, m) BOOST_PP_FOR_15_I(s, p, o, m)
-# define BOOST_PP_FOR_16(s, p, o, m) BOOST_PP_FOR_16_I(s, p, o, m)
-# define BOOST_PP_FOR_17(s, p, o, m) BOOST_PP_FOR_17_I(s, p, o, m)
-# define BOOST_PP_FOR_18(s, p, o, m) BOOST_PP_FOR_18_I(s, p, o, m)
-# define BOOST_PP_FOR_19(s, p, o, m) BOOST_PP_FOR_19_I(s, p, o, m)
-# define BOOST_PP_FOR_20(s, p, o, m) BOOST_PP_FOR_20_I(s, p, o, m)
-# define BOOST_PP_FOR_21(s, p, o, m) BOOST_PP_FOR_21_I(s, p, o, m)
-# define BOOST_PP_FOR_22(s, p, o, m) BOOST_PP_FOR_22_I(s, p, o, m)
-# define BOOST_PP_FOR_23(s, p, o, m) BOOST_PP_FOR_23_I(s, p, o, m)
-# define BOOST_PP_FOR_24(s, p, o, m) BOOST_PP_FOR_24_I(s, p, o, m)
-# define BOOST_PP_FOR_25(s, p, o, m) BOOST_PP_FOR_25_I(s, p, o, m)
-# define BOOST_PP_FOR_26(s, p, o, m) BOOST_PP_FOR_26_I(s, p, o, m)
-# define BOOST_PP_FOR_27(s, p, o, m) BOOST_PP_FOR_27_I(s, p, o, m)
-# define BOOST_PP_FOR_28(s, p, o, m) BOOST_PP_FOR_28_I(s, p, o, m)
-# define BOOST_PP_FOR_29(s, p, o, m) BOOST_PP_FOR_29_I(s, p, o, m)
-# define BOOST_PP_FOR_30(s, p, o, m) BOOST_PP_FOR_30_I(s, p, o, m)
-# define BOOST_PP_FOR_31(s, p, o, m) BOOST_PP_FOR_31_I(s, p, o, m)
-# define BOOST_PP_FOR_32(s, p, o, m) BOOST_PP_FOR_32_I(s, p, o, m)
-# define BOOST_PP_FOR_33(s, p, o, m) BOOST_PP_FOR_33_I(s, p, o, m)
-# define BOOST_PP_FOR_34(s, p, o, m) BOOST_PP_FOR_34_I(s, p, o, m)
-# define BOOST_PP_FOR_35(s, p, o, m) BOOST_PP_FOR_35_I(s, p, o, m)
-# define BOOST_PP_FOR_36(s, p, o, m) BOOST_PP_FOR_36_I(s, p, o, m)
-# define BOOST_PP_FOR_37(s, p, o, m) BOOST_PP_FOR_37_I(s, p, o, m)
-# define BOOST_PP_FOR_38(s, p, o, m) BOOST_PP_FOR_38_I(s, p, o, m)
-# define BOOST_PP_FOR_39(s, p, o, m) BOOST_PP_FOR_39_I(s, p, o, m)
-# define BOOST_PP_FOR_40(s, p, o, m) BOOST_PP_FOR_40_I(s, p, o, m)
-# define BOOST_PP_FOR_41(s, p, o, m) BOOST_PP_FOR_41_I(s, p, o, m)
-# define BOOST_PP_FOR_42(s, p, o, m) BOOST_PP_FOR_42_I(s, p, o, m)
-# define BOOST_PP_FOR_43(s, p, o, m) BOOST_PP_FOR_43_I(s, p, o, m)
-# define BOOST_PP_FOR_44(s, p, o, m) BOOST_PP_FOR_44_I(s, p, o, m)
-# define BOOST_PP_FOR_45(s, p, o, m) BOOST_PP_FOR_45_I(s, p, o, m)
-# define BOOST_PP_FOR_46(s, p, o, m) BOOST_PP_FOR_46_I(s, p, o, m)
-# define BOOST_PP_FOR_47(s, p, o, m) BOOST_PP_FOR_47_I(s, p, o, m)
-# define BOOST_PP_FOR_48(s, p, o, m) BOOST_PP_FOR_48_I(s, p, o, m)
-# define BOOST_PP_FOR_49(s, p, o, m) BOOST_PP_FOR_49_I(s, p, o, m)
-# define BOOST_PP_FOR_50(s, p, o, m) BOOST_PP_FOR_50_I(s, p, o, m)
-# define BOOST_PP_FOR_51(s, p, o, m) BOOST_PP_FOR_51_I(s, p, o, m)
-# define BOOST_PP_FOR_52(s, p, o, m) BOOST_PP_FOR_52_I(s, p, o, m)
-# define BOOST_PP_FOR_53(s, p, o, m) BOOST_PP_FOR_53_I(s, p, o, m)
-# define BOOST_PP_FOR_54(s, p, o, m) BOOST_PP_FOR_54_I(s, p, o, m)
-# define BOOST_PP_FOR_55(s, p, o, m) BOOST_PP_FOR_55_I(s, p, o, m)
-# define BOOST_PP_FOR_56(s, p, o, m) BOOST_PP_FOR_56_I(s, p, o, m)
-# define BOOST_PP_FOR_57(s, p, o, m) BOOST_PP_FOR_57_I(s, p, o, m)
-# define BOOST_PP_FOR_58(s, p, o, m) BOOST_PP_FOR_58_I(s, p, o, m)
-# define BOOST_PP_FOR_59(s, p, o, m) BOOST_PP_FOR_59_I(s, p, o, m)
-# define BOOST_PP_FOR_60(s, p, o, m) BOOST_PP_FOR_60_I(s, p, o, m)
-# define BOOST_PP_FOR_61(s, p, o, m) BOOST_PP_FOR_61_I(s, p, o, m)
-# define BOOST_PP_FOR_62(s, p, o, m) BOOST_PP_FOR_62_I(s, p, o, m)
-# define BOOST_PP_FOR_63(s, p, o, m) BOOST_PP_FOR_63_I(s, p, o, m)
-# define BOOST_PP_FOR_64(s, p, o, m) BOOST_PP_FOR_64_I(s, p, o, m)
-# define BOOST_PP_FOR_65(s, p, o, m) BOOST_PP_FOR_65_I(s, p, o, m)
-# define BOOST_PP_FOR_66(s, p, o, m) BOOST_PP_FOR_66_I(s, p, o, m)
-# define BOOST_PP_FOR_67(s, p, o, m) BOOST_PP_FOR_67_I(s, p, o, m)
-# define BOOST_PP_FOR_68(s, p, o, m) BOOST_PP_FOR_68_I(s, p, o, m)
-# define BOOST_PP_FOR_69(s, p, o, m) BOOST_PP_FOR_69_I(s, p, o, m)
-# define BOOST_PP_FOR_70(s, p, o, m) BOOST_PP_FOR_70_I(s, p, o, m)
-# define BOOST_PP_FOR_71(s, p, o, m) BOOST_PP_FOR_71_I(s, p, o, m)
-# define BOOST_PP_FOR_72(s, p, o, m) BOOST_PP_FOR_72_I(s, p, o, m)
-# define BOOST_PP_FOR_73(s, p, o, m) BOOST_PP_FOR_73_I(s, p, o, m)
-# define BOOST_PP_FOR_74(s, p, o, m) BOOST_PP_FOR_74_I(s, p, o, m)
-# define BOOST_PP_FOR_75(s, p, o, m) BOOST_PP_FOR_75_I(s, p, o, m)
-# define BOOST_PP_FOR_76(s, p, o, m) BOOST_PP_FOR_76_I(s, p, o, m)
-# define BOOST_PP_FOR_77(s, p, o, m) BOOST_PP_FOR_77_I(s, p, o, m)
-# define BOOST_PP_FOR_78(s, p, o, m) BOOST_PP_FOR_78_I(s, p, o, m)
-# define BOOST_PP_FOR_79(s, p, o, m) BOOST_PP_FOR_79_I(s, p, o, m)
-# define BOOST_PP_FOR_80(s, p, o, m) BOOST_PP_FOR_80_I(s, p, o, m)
-# define BOOST_PP_FOR_81(s, p, o, m) BOOST_PP_FOR_81_I(s, p, o, m)
-# define BOOST_PP_FOR_82(s, p, o, m) BOOST_PP_FOR_82_I(s, p, o, m)
-# define BOOST_PP_FOR_83(s, p, o, m) BOOST_PP_FOR_83_I(s, p, o, m)
-# define BOOST_PP_FOR_84(s, p, o, m) BOOST_PP_FOR_84_I(s, p, o, m)
-# define BOOST_PP_FOR_85(s, p, o, m) BOOST_PP_FOR_85_I(s, p, o, m)
-# define BOOST_PP_FOR_86(s, p, o, m) BOOST_PP_FOR_86_I(s, p, o, m)
-# define BOOST_PP_FOR_87(s, p, o, m) BOOST_PP_FOR_87_I(s, p, o, m)
-# define BOOST_PP_FOR_88(s, p, o, m) BOOST_PP_FOR_88_I(s, p, o, m)
-# define BOOST_PP_FOR_89(s, p, o, m) BOOST_PP_FOR_89_I(s, p, o, m)
-# define BOOST_PP_FOR_90(s, p, o, m) BOOST_PP_FOR_90_I(s, p, o, m)
-# define BOOST_PP_FOR_91(s, p, o, m) BOOST_PP_FOR_91_I(s, p, o, m)
-# define BOOST_PP_FOR_92(s, p, o, m) BOOST_PP_FOR_92_I(s, p, o, m)
-# define BOOST_PP_FOR_93(s, p, o, m) BOOST_PP_FOR_93_I(s, p, o, m)
-# define BOOST_PP_FOR_94(s, p, o, m) BOOST_PP_FOR_94_I(s, p, o, m)
-# define BOOST_PP_FOR_95(s, p, o, m) BOOST_PP_FOR_95_I(s, p, o, m)
-# define BOOST_PP_FOR_96(s, p, o, m) BOOST_PP_FOR_96_I(s, p, o, m)
-# define BOOST_PP_FOR_97(s, p, o, m) BOOST_PP_FOR_97_I(s, p, o, m)
-# define BOOST_PP_FOR_98(s, p, o, m) BOOST_PP_FOR_98_I(s, p, o, m)
-# define BOOST_PP_FOR_99(s, p, o, m) BOOST_PP_FOR_99_I(s, p, o, m)
-# define BOOST_PP_FOR_100(s, p, o, m) BOOST_PP_FOR_100_I(s, p, o, m)
-# define BOOST_PP_FOR_101(s, p, o, m) BOOST_PP_FOR_101_I(s, p, o, m)
-# define BOOST_PP_FOR_102(s, p, o, m) BOOST_PP_FOR_102_I(s, p, o, m)
-# define BOOST_PP_FOR_103(s, p, o, m) BOOST_PP_FOR_103_I(s, p, o, m)
-# define BOOST_PP_FOR_104(s, p, o, m) BOOST_PP_FOR_104_I(s, p, o, m)
-# define BOOST_PP_FOR_105(s, p, o, m) BOOST_PP_FOR_105_I(s, p, o, m)
-# define BOOST_PP_FOR_106(s, p, o, m) BOOST_PP_FOR_106_I(s, p, o, m)
-# define BOOST_PP_FOR_107(s, p, o, m) BOOST_PP_FOR_107_I(s, p, o, m)
-# define BOOST_PP_FOR_108(s, p, o, m) BOOST_PP_FOR_108_I(s, p, o, m)
-# define BOOST_PP_FOR_109(s, p, o, m) BOOST_PP_FOR_109_I(s, p, o, m)
-# define BOOST_PP_FOR_110(s, p, o, m) BOOST_PP_FOR_110_I(s, p, o, m)
-# define BOOST_PP_FOR_111(s, p, o, m) BOOST_PP_FOR_111_I(s, p, o, m)
-# define BOOST_PP_FOR_112(s, p, o, m) BOOST_PP_FOR_112_I(s, p, o, m)
-# define BOOST_PP_FOR_113(s, p, o, m) BOOST_PP_FOR_113_I(s, p, o, m)
-# define BOOST_PP_FOR_114(s, p, o, m) BOOST_PP_FOR_114_I(s, p, o, m)
-# define BOOST_PP_FOR_115(s, p, o, m) BOOST_PP_FOR_115_I(s, p, o, m)
-# define BOOST_PP_FOR_116(s, p, o, m) BOOST_PP_FOR_116_I(s, p, o, m)
-# define BOOST_PP_FOR_117(s, p, o, m) BOOST_PP_FOR_117_I(s, p, o, m)
-# define BOOST_PP_FOR_118(s, p, o, m) BOOST_PP_FOR_118_I(s, p, o, m)
-# define BOOST_PP_FOR_119(s, p, o, m) BOOST_PP_FOR_119_I(s, p, o, m)
-# define BOOST_PP_FOR_120(s, p, o, m) BOOST_PP_FOR_120_I(s, p, o, m)
-# define BOOST_PP_FOR_121(s, p, o, m) BOOST_PP_FOR_121_I(s, p, o, m)
-# define BOOST_PP_FOR_122(s, p, o, m) BOOST_PP_FOR_122_I(s, p, o, m)
-# define BOOST_PP_FOR_123(s, p, o, m) BOOST_PP_FOR_123_I(s, p, o, m)
-# define BOOST_PP_FOR_124(s, p, o, m) BOOST_PP_FOR_124_I(s, p, o, m)
-# define BOOST_PP_FOR_125(s, p, o, m) BOOST_PP_FOR_125_I(s, p, o, m)
-# define BOOST_PP_FOR_126(s, p, o, m) BOOST_PP_FOR_126_I(s, p, o, m)
-# define BOOST_PP_FOR_127(s, p, o, m) BOOST_PP_FOR_127_I(s, p, o, m)
-# define BOOST_PP_FOR_128(s, p, o, m) BOOST_PP_FOR_128_I(s, p, o, m)
-# define BOOST_PP_FOR_129(s, p, o, m) BOOST_PP_FOR_129_I(s, p, o, m)
-# define BOOST_PP_FOR_130(s, p, o, m) BOOST_PP_FOR_130_I(s, p, o, m)
-# define BOOST_PP_FOR_131(s, p, o, m) BOOST_PP_FOR_131_I(s, p, o, m)
-# define BOOST_PP_FOR_132(s, p, o, m) BOOST_PP_FOR_132_I(s, p, o, m)
-# define BOOST_PP_FOR_133(s, p, o, m) BOOST_PP_FOR_133_I(s, p, o, m)
-# define BOOST_PP_FOR_134(s, p, o, m) BOOST_PP_FOR_134_I(s, p, o, m)
-# define BOOST_PP_FOR_135(s, p, o, m) BOOST_PP_FOR_135_I(s, p, o, m)
-# define BOOST_PP_FOR_136(s, p, o, m) BOOST_PP_FOR_136_I(s, p, o, m)
-# define BOOST_PP_FOR_137(s, p, o, m) BOOST_PP_FOR_137_I(s, p, o, m)
-# define BOOST_PP_FOR_138(s, p, o, m) BOOST_PP_FOR_138_I(s, p, o, m)
-# define BOOST_PP_FOR_139(s, p, o, m) BOOST_PP_FOR_139_I(s, p, o, m)
-# define BOOST_PP_FOR_140(s, p, o, m) BOOST_PP_FOR_140_I(s, p, o, m)
-# define BOOST_PP_FOR_141(s, p, o, m) BOOST_PP_FOR_141_I(s, p, o, m)
-# define BOOST_PP_FOR_142(s, p, o, m) BOOST_PP_FOR_142_I(s, p, o, m)
-# define BOOST_PP_FOR_143(s, p, o, m) BOOST_PP_FOR_143_I(s, p, o, m)
-# define BOOST_PP_FOR_144(s, p, o, m) BOOST_PP_FOR_144_I(s, p, o, m)
-# define BOOST_PP_FOR_145(s, p, o, m) BOOST_PP_FOR_145_I(s, p, o, m)
-# define BOOST_PP_FOR_146(s, p, o, m) BOOST_PP_FOR_146_I(s, p, o, m)
-# define BOOST_PP_FOR_147(s, p, o, m) BOOST_PP_FOR_147_I(s, p, o, m)
-# define BOOST_PP_FOR_148(s, p, o, m) BOOST_PP_FOR_148_I(s, p, o, m)
-# define BOOST_PP_FOR_149(s, p, o, m) BOOST_PP_FOR_149_I(s, p, o, m)
-# define BOOST_PP_FOR_150(s, p, o, m) BOOST_PP_FOR_150_I(s, p, o, m)
-# define BOOST_PP_FOR_151(s, p, o, m) BOOST_PP_FOR_151_I(s, p, o, m)
-# define BOOST_PP_FOR_152(s, p, o, m) BOOST_PP_FOR_152_I(s, p, o, m)
-# define BOOST_PP_FOR_153(s, p, o, m) BOOST_PP_FOR_153_I(s, p, o, m)
-# define BOOST_PP_FOR_154(s, p, o, m) BOOST_PP_FOR_154_I(s, p, o, m)
-# define BOOST_PP_FOR_155(s, p, o, m) BOOST_PP_FOR_155_I(s, p, o, m)
-# define BOOST_PP_FOR_156(s, p, o, m) BOOST_PP_FOR_156_I(s, p, o, m)
-# define BOOST_PP_FOR_157(s, p, o, m) BOOST_PP_FOR_157_I(s, p, o, m)
-# define BOOST_PP_FOR_158(s, p, o, m) BOOST_PP_FOR_158_I(s, p, o, m)
-# define BOOST_PP_FOR_159(s, p, o, m) BOOST_PP_FOR_159_I(s, p, o, m)
-# define BOOST_PP_FOR_160(s, p, o, m) BOOST_PP_FOR_160_I(s, p, o, m)
-# define BOOST_PP_FOR_161(s, p, o, m) BOOST_PP_FOR_161_I(s, p, o, m)
-# define BOOST_PP_FOR_162(s, p, o, m) BOOST_PP_FOR_162_I(s, p, o, m)
-# define BOOST_PP_FOR_163(s, p, o, m) BOOST_PP_FOR_163_I(s, p, o, m)
-# define BOOST_PP_FOR_164(s, p, o, m) BOOST_PP_FOR_164_I(s, p, o, m)
-# define BOOST_PP_FOR_165(s, p, o, m) BOOST_PP_FOR_165_I(s, p, o, m)
-# define BOOST_PP_FOR_166(s, p, o, m) BOOST_PP_FOR_166_I(s, p, o, m)
-# define BOOST_PP_FOR_167(s, p, o, m) BOOST_PP_FOR_167_I(s, p, o, m)
-# define BOOST_PP_FOR_168(s, p, o, m) BOOST_PP_FOR_168_I(s, p, o, m)
-# define BOOST_PP_FOR_169(s, p, o, m) BOOST_PP_FOR_169_I(s, p, o, m)
-# define BOOST_PP_FOR_170(s, p, o, m) BOOST_PP_FOR_170_I(s, p, o, m)
-# define BOOST_PP_FOR_171(s, p, o, m) BOOST_PP_FOR_171_I(s, p, o, m)
-# define BOOST_PP_FOR_172(s, p, o, m) BOOST_PP_FOR_172_I(s, p, o, m)
-# define BOOST_PP_FOR_173(s, p, o, m) BOOST_PP_FOR_173_I(s, p, o, m)
-# define BOOST_PP_FOR_174(s, p, o, m) BOOST_PP_FOR_174_I(s, p, o, m)
-# define BOOST_PP_FOR_175(s, p, o, m) BOOST_PP_FOR_175_I(s, p, o, m)
-# define BOOST_PP_FOR_176(s, p, o, m) BOOST_PP_FOR_176_I(s, p, o, m)
-# define BOOST_PP_FOR_177(s, p, o, m) BOOST_PP_FOR_177_I(s, p, o, m)
-# define BOOST_PP_FOR_178(s, p, o, m) BOOST_PP_FOR_178_I(s, p, o, m)
-# define BOOST_PP_FOR_179(s, p, o, m) BOOST_PP_FOR_179_I(s, p, o, m)
-# define BOOST_PP_FOR_180(s, p, o, m) BOOST_PP_FOR_180_I(s, p, o, m)
-# define BOOST_PP_FOR_181(s, p, o, m) BOOST_PP_FOR_181_I(s, p, o, m)
-# define BOOST_PP_FOR_182(s, p, o, m) BOOST_PP_FOR_182_I(s, p, o, m)
-# define BOOST_PP_FOR_183(s, p, o, m) BOOST_PP_FOR_183_I(s, p, o, m)
-# define BOOST_PP_FOR_184(s, p, o, m) BOOST_PP_FOR_184_I(s, p, o, m)
-# define BOOST_PP_FOR_185(s, p, o, m) BOOST_PP_FOR_185_I(s, p, o, m)
-# define BOOST_PP_FOR_186(s, p, o, m) BOOST_PP_FOR_186_I(s, p, o, m)
-# define BOOST_PP_FOR_187(s, p, o, m) BOOST_PP_FOR_187_I(s, p, o, m)
-# define BOOST_PP_FOR_188(s, p, o, m) BOOST_PP_FOR_188_I(s, p, o, m)
-# define BOOST_PP_FOR_189(s, p, o, m) BOOST_PP_FOR_189_I(s, p, o, m)
-# define BOOST_PP_FOR_190(s, p, o, m) BOOST_PP_FOR_190_I(s, p, o, m)
-# define BOOST_PP_FOR_191(s, p, o, m) BOOST_PP_FOR_191_I(s, p, o, m)
-# define BOOST_PP_FOR_192(s, p, o, m) BOOST_PP_FOR_192_I(s, p, o, m)
-# define BOOST_PP_FOR_193(s, p, o, m) BOOST_PP_FOR_193_I(s, p, o, m)
-# define BOOST_PP_FOR_194(s, p, o, m) BOOST_PP_FOR_194_I(s, p, o, m)
-# define BOOST_PP_FOR_195(s, p, o, m) BOOST_PP_FOR_195_I(s, p, o, m)
-# define BOOST_PP_FOR_196(s, p, o, m) BOOST_PP_FOR_196_I(s, p, o, m)
-# define BOOST_PP_FOR_197(s, p, o, m) BOOST_PP_FOR_197_I(s, p, o, m)
-# define BOOST_PP_FOR_198(s, p, o, m) BOOST_PP_FOR_198_I(s, p, o, m)
-# define BOOST_PP_FOR_199(s, p, o, m) BOOST_PP_FOR_199_I(s, p, o, m)
-# define BOOST_PP_FOR_200(s, p, o, m) BOOST_PP_FOR_200_I(s, p, o, m)
-# define BOOST_PP_FOR_201(s, p, o, m) BOOST_PP_FOR_201_I(s, p, o, m)
-# define BOOST_PP_FOR_202(s, p, o, m) BOOST_PP_FOR_202_I(s, p, o, m)
-# define BOOST_PP_FOR_203(s, p, o, m) BOOST_PP_FOR_203_I(s, p, o, m)
-# define BOOST_PP_FOR_204(s, p, o, m) BOOST_PP_FOR_204_I(s, p, o, m)
-# define BOOST_PP_FOR_205(s, p, o, m) BOOST_PP_FOR_205_I(s, p, o, m)
-# define BOOST_PP_FOR_206(s, p, o, m) BOOST_PP_FOR_206_I(s, p, o, m)
-# define BOOST_PP_FOR_207(s, p, o, m) BOOST_PP_FOR_207_I(s, p, o, m)
-# define BOOST_PP_FOR_208(s, p, o, m) BOOST_PP_FOR_208_I(s, p, o, m)
-# define BOOST_PP_FOR_209(s, p, o, m) BOOST_PP_FOR_209_I(s, p, o, m)
-# define BOOST_PP_FOR_210(s, p, o, m) BOOST_PP_FOR_210_I(s, p, o, m)
-# define BOOST_PP_FOR_211(s, p, o, m) BOOST_PP_FOR_211_I(s, p, o, m)
-# define BOOST_PP_FOR_212(s, p, o, m) BOOST_PP_FOR_212_I(s, p, o, m)
-# define BOOST_PP_FOR_213(s, p, o, m) BOOST_PP_FOR_213_I(s, p, o, m)
-# define BOOST_PP_FOR_214(s, p, o, m) BOOST_PP_FOR_214_I(s, p, o, m)
-# define BOOST_PP_FOR_215(s, p, o, m) BOOST_PP_FOR_215_I(s, p, o, m)
-# define BOOST_PP_FOR_216(s, p, o, m) BOOST_PP_FOR_216_I(s, p, o, m)
-# define BOOST_PP_FOR_217(s, p, o, m) BOOST_PP_FOR_217_I(s, p, o, m)
-# define BOOST_PP_FOR_218(s, p, o, m) BOOST_PP_FOR_218_I(s, p, o, m)
-# define BOOST_PP_FOR_219(s, p, o, m) BOOST_PP_FOR_219_I(s, p, o, m)
-# define BOOST_PP_FOR_220(s, p, o, m) BOOST_PP_FOR_220_I(s, p, o, m)
-# define BOOST_PP_FOR_221(s, p, o, m) BOOST_PP_FOR_221_I(s, p, o, m)
-# define BOOST_PP_FOR_222(s, p, o, m) BOOST_PP_FOR_222_I(s, p, o, m)
-# define BOOST_PP_FOR_223(s, p, o, m) BOOST_PP_FOR_223_I(s, p, o, m)
-# define BOOST_PP_FOR_224(s, p, o, m) BOOST_PP_FOR_224_I(s, p, o, m)
-# define BOOST_PP_FOR_225(s, p, o, m) BOOST_PP_FOR_225_I(s, p, o, m)
-# define BOOST_PP_FOR_226(s, p, o, m) BOOST_PP_FOR_226_I(s, p, o, m)
-# define BOOST_PP_FOR_227(s, p, o, m) BOOST_PP_FOR_227_I(s, p, o, m)
-# define BOOST_PP_FOR_228(s, p, o, m) BOOST_PP_FOR_228_I(s, p, o, m)
-# define BOOST_PP_FOR_229(s, p, o, m) BOOST_PP_FOR_229_I(s, p, o, m)
-# define BOOST_PP_FOR_230(s, p, o, m) BOOST_PP_FOR_230_I(s, p, o, m)
-# define BOOST_PP_FOR_231(s, p, o, m) BOOST_PP_FOR_231_I(s, p, o, m)
-# define BOOST_PP_FOR_232(s, p, o, m) BOOST_PP_FOR_232_I(s, p, o, m)
-# define BOOST_PP_FOR_233(s, p, o, m) BOOST_PP_FOR_233_I(s, p, o, m)
-# define BOOST_PP_FOR_234(s, p, o, m) BOOST_PP_FOR_234_I(s, p, o, m)
-# define BOOST_PP_FOR_235(s, p, o, m) BOOST_PP_FOR_235_I(s, p, o, m)
-# define BOOST_PP_FOR_236(s, p, o, m) BOOST_PP_FOR_236_I(s, p, o, m)
-# define BOOST_PP_FOR_237(s, p, o, m) BOOST_PP_FOR_237_I(s, p, o, m)
-# define BOOST_PP_FOR_238(s, p, o, m) BOOST_PP_FOR_238_I(s, p, o, m)
-# define BOOST_PP_FOR_239(s, p, o, m) BOOST_PP_FOR_239_I(s, p, o, m)
-# define BOOST_PP_FOR_240(s, p, o, m) BOOST_PP_FOR_240_I(s, p, o, m)
-# define BOOST_PP_FOR_241(s, p, o, m) BOOST_PP_FOR_241_I(s, p, o, m)
-# define BOOST_PP_FOR_242(s, p, o, m) BOOST_PP_FOR_242_I(s, p, o, m)
-# define BOOST_PP_FOR_243(s, p, o, m) BOOST_PP_FOR_243_I(s, p, o, m)
-# define BOOST_PP_FOR_244(s, p, o, m) BOOST_PP_FOR_244_I(s, p, o, m)
-# define BOOST_PP_FOR_245(s, p, o, m) BOOST_PP_FOR_245_I(s, p, o, m)
-# define BOOST_PP_FOR_246(s, p, o, m) BOOST_PP_FOR_246_I(s, p, o, m)
-# define BOOST_PP_FOR_247(s, p, o, m) BOOST_PP_FOR_247_I(s, p, o, m)
-# define BOOST_PP_FOR_248(s, p, o, m) BOOST_PP_FOR_248_I(s, p, o, m)
-# define BOOST_PP_FOR_249(s, p, o, m) BOOST_PP_FOR_249_I(s, p, o, m)
-# define BOOST_PP_FOR_250(s, p, o, m) BOOST_PP_FOR_250_I(s, p, o, m)
-# define BOOST_PP_FOR_251(s, p, o, m) BOOST_PP_FOR_251_I(s, p, o, m)
-# define BOOST_PP_FOR_252(s, p, o, m) BOOST_PP_FOR_252_I(s, p, o, m)
-# define BOOST_PP_FOR_253(s, p, o, m) BOOST_PP_FOR_253_I(s, p, o, m)
-# define BOOST_PP_FOR_254(s, p, o, m) BOOST_PP_FOR_254_I(s, p, o, m)
-# define BOOST_PP_FOR_255(s, p, o, m) BOOST_PP_FOR_255_I(s, p, o, m)
-# define BOOST_PP_FOR_256(s, p, o, m) BOOST_PP_FOR_256_I(s, p, o, m)
-#
-# define BOOST_PP_FOR_1_I(s, p, o, m) BOOST_PP_IF(p(2, s), m, BOOST_PP_TUPLE_EAT_2)(2, s) BOOST_PP_IF(p(2, s), BOOST_PP_FOR_2, BOOST_PP_TUPLE_EAT_4)(o(2, s), p, o, m)
-# define BOOST_PP_FOR_2_I(s, p, o, m) BOOST_PP_IF(p(3, s), m, BOOST_PP_TUPLE_EAT_2)(3, s) BOOST_PP_IF(p(3, s), BOOST_PP_FOR_3, BOOST_PP_TUPLE_EAT_4)(o(3, s), p, o, m)
-# define BOOST_PP_FOR_3_I(s, p, o, m) BOOST_PP_IF(p(4, s), m, BOOST_PP_TUPLE_EAT_2)(4, s) BOOST_PP_IF(p(4, s), BOOST_PP_FOR_4, BOOST_PP_TUPLE_EAT_4)(o(4, s), p, o, m)
-# define BOOST_PP_FOR_4_I(s, p, o, m) BOOST_PP_IF(p(5, s), m, BOOST_PP_TUPLE_EAT_2)(5, s) BOOST_PP_IF(p(5, s), BOOST_PP_FOR_5, BOOST_PP_TUPLE_EAT_4)(o(5, s), p, o, m)
-# define BOOST_PP_FOR_5_I(s, p, o, m) BOOST_PP_IF(p(6, s), m, BOOST_PP_TUPLE_EAT_2)(6, s) BOOST_PP_IF(p(6, s), BOOST_PP_FOR_6, BOOST_PP_TUPLE_EAT_4)(o(6, s), p, o, m)
-# define BOOST_PP_FOR_6_I(s, p, o, m) BOOST_PP_IF(p(7, s), m, BOOST_PP_TUPLE_EAT_2)(7, s) BOOST_PP_IF(p(7, s), BOOST_PP_FOR_7, BOOST_PP_TUPLE_EAT_4)(o(7, s), p, o, m)
-# define BOOST_PP_FOR_7_I(s, p, o, m) BOOST_PP_IF(p(8, s), m, BOOST_PP_TUPLE_EAT_2)(8, s) BOOST_PP_IF(p(8, s), BOOST_PP_FOR_8, BOOST_PP_TUPLE_EAT_4)(o(8, s), p, o, m)
-# define BOOST_PP_FOR_8_I(s, p, o, m) BOOST_PP_IF(p(9, s), m, BOOST_PP_TUPLE_EAT_2)(9, s) BOOST_PP_IF(p(9, s), BOOST_PP_FOR_9, BOOST_PP_TUPLE_EAT_4)(o(9, s), p, o, m)
-# define BOOST_PP_FOR_9_I(s, p, o, m) BOOST_PP_IF(p(10, s), m, BOOST_PP_TUPLE_EAT_2)(10, s) BOOST_PP_IF(p(10, s), BOOST_PP_FOR_10, BOOST_PP_TUPLE_EAT_4)(o(10, s), p, o, m)
-# define BOOST_PP_FOR_10_I(s, p, o, m) BOOST_PP_IF(p(11, s), m, BOOST_PP_TUPLE_EAT_2)(11, s) BOOST_PP_IF(p(11, s), BOOST_PP_FOR_11, BOOST_PP_TUPLE_EAT_4)(o(11, s), p, o, m)
-# define BOOST_PP_FOR_11_I(s, p, o, m) BOOST_PP_IF(p(12, s), m, BOOST_PP_TUPLE_EAT_2)(12, s) BOOST_PP_IF(p(12, s), BOOST_PP_FOR_12, BOOST_PP_TUPLE_EAT_4)(o(12, s), p, o, m)
-# define BOOST_PP_FOR_12_I(s, p, o, m) BOOST_PP_IF(p(13, s), m, BOOST_PP_TUPLE_EAT_2)(13, s) BOOST_PP_IF(p(13, s), BOOST_PP_FOR_13, BOOST_PP_TUPLE_EAT_4)(o(13, s), p, o, m)
-# define BOOST_PP_FOR_13_I(s, p, o, m) BOOST_PP_IF(p(14, s), m, BOOST_PP_TUPLE_EAT_2)(14, s) BOOST_PP_IF(p(14, s), BOOST_PP_FOR_14, BOOST_PP_TUPLE_EAT_4)(o(14, s), p, o, m)
-# define BOOST_PP_FOR_14_I(s, p, o, m) BOOST_PP_IF(p(15, s), m, BOOST_PP_TUPLE_EAT_2)(15, s) BOOST_PP_IF(p(15, s), BOOST_PP_FOR_15, BOOST_PP_TUPLE_EAT_4)(o(15, s), p, o, m)
-# define BOOST_PP_FOR_15_I(s, p, o, m) BOOST_PP_IF(p(16, s), m, BOOST_PP_TUPLE_EAT_2)(16, s) BOOST_PP_IF(p(16, s), BOOST_PP_FOR_16, BOOST_PP_TUPLE_EAT_4)(o(16, s), p, o, m)
-# define BOOST_PP_FOR_16_I(s, p, o, m) BOOST_PP_IF(p(17, s), m, BOOST_PP_TUPLE_EAT_2)(17, s) BOOST_PP_IF(p(17, s), BOOST_PP_FOR_17, BOOST_PP_TUPLE_EAT_4)(o(17, s), p, o, m)
-# define BOOST_PP_FOR_17_I(s, p, o, m) BOOST_PP_IF(p(18, s), m, BOOST_PP_TUPLE_EAT_2)(18, s) BOOST_PP_IF(p(18, s), BOOST_PP_FOR_18, BOOST_PP_TUPLE_EAT_4)(o(18, s), p, o, m)
-# define BOOST_PP_FOR_18_I(s, p, o, m) BOOST_PP_IF(p(19, s), m, BOOST_PP_TUPLE_EAT_2)(19, s) BOOST_PP_IF(p(19, s), BOOST_PP_FOR_19, BOOST_PP_TUPLE_EAT_4)(o(19, s), p, o, m)
-# define BOOST_PP_FOR_19_I(s, p, o, m) BOOST_PP_IF(p(20, s), m, BOOST_PP_TUPLE_EAT_2)(20, s) BOOST_PP_IF(p(20, s), BOOST_PP_FOR_20, BOOST_PP_TUPLE_EAT_4)(o(20, s), p, o, m)
-# define BOOST_PP_FOR_20_I(s, p, o, m) BOOST_PP_IF(p(21, s), m, BOOST_PP_TUPLE_EAT_2)(21, s) BOOST_PP_IF(p(21, s), BOOST_PP_FOR_21, BOOST_PP_TUPLE_EAT_4)(o(21, s), p, o, m)
-# define BOOST_PP_FOR_21_I(s, p, o, m) BOOST_PP_IF(p(22, s), m, BOOST_PP_TUPLE_EAT_2)(22, s) BOOST_PP_IF(p(22, s), BOOST_PP_FOR_22, BOOST_PP_TUPLE_EAT_4)(o(22, s), p, o, m)
-# define BOOST_PP_FOR_22_I(s, p, o, m) BOOST_PP_IF(p(23, s), m, BOOST_PP_TUPLE_EAT_2)(23, s) BOOST_PP_IF(p(23, s), BOOST_PP_FOR_23, BOOST_PP_TUPLE_EAT_4)(o(23, s), p, o, m)
-# define BOOST_PP_FOR_23_I(s, p, o, m) BOOST_PP_IF(p(24, s), m, BOOST_PP_TUPLE_EAT_2)(24, s) BOOST_PP_IF(p(24, s), BOOST_PP_FOR_24, BOOST_PP_TUPLE_EAT_4)(o(24, s), p, o, m)
-# define BOOST_PP_FOR_24_I(s, p, o, m) BOOST_PP_IF(p(25, s), m, BOOST_PP_TUPLE_EAT_2)(25, s) BOOST_PP_IF(p(25, s), BOOST_PP_FOR_25, BOOST_PP_TUPLE_EAT_4)(o(25, s), p, o, m)
-# define BOOST_PP_FOR_25_I(s, p, o, m) BOOST_PP_IF(p(26, s), m, BOOST_PP_TUPLE_EAT_2)(26, s) BOOST_PP_IF(p(26, s), BOOST_PP_FOR_26, BOOST_PP_TUPLE_EAT_4)(o(26, s), p, o, m)
-# define BOOST_PP_FOR_26_I(s, p, o, m) BOOST_PP_IF(p(27, s), m, BOOST_PP_TUPLE_EAT_2)(27, s) BOOST_PP_IF(p(27, s), BOOST_PP_FOR_27, BOOST_PP_TUPLE_EAT_4)(o(27, s), p, o, m)
-# define BOOST_PP_FOR_27_I(s, p, o, m) BOOST_PP_IF(p(28, s), m, BOOST_PP_TUPLE_EAT_2)(28, s) BOOST_PP_IF(p(28, s), BOOST_PP_FOR_28, BOOST_PP_TUPLE_EAT_4)(o(28, s), p, o, m)
-# define BOOST_PP_FOR_28_I(s, p, o, m) BOOST_PP_IF(p(29, s), m, BOOST_PP_TUPLE_EAT_2)(29, s) BOOST_PP_IF(p(29, s), BOOST_PP_FOR_29, BOOST_PP_TUPLE_EAT_4)(o(29, s), p, o, m)
-# define BOOST_PP_FOR_29_I(s, p, o, m) BOOST_PP_IF(p(30, s), m, BOOST_PP_TUPLE_EAT_2)(30, s) BOOST_PP_IF(p(30, s), BOOST_PP_FOR_30, BOOST_PP_TUPLE_EAT_4)(o(30, s), p, o, m)
-# define BOOST_PP_FOR_30_I(s, p, o, m) BOOST_PP_IF(p(31, s), m, BOOST_PP_TUPLE_EAT_2)(31, s) BOOST_PP_IF(p(31, s), BOOST_PP_FOR_31, BOOST_PP_TUPLE_EAT_4)(o(31, s), p, o, m)
-# define BOOST_PP_FOR_31_I(s, p, o, m) BOOST_PP_IF(p(32, s), m, BOOST_PP_TUPLE_EAT_2)(32, s) BOOST_PP_IF(p(32, s), BOOST_PP_FOR_32, BOOST_PP_TUPLE_EAT_4)(o(32, s), p, o, m)
-# define BOOST_PP_FOR_32_I(s, p, o, m) BOOST_PP_IF(p(33, s), m, BOOST_PP_TUPLE_EAT_2)(33, s) BOOST_PP_IF(p(33, s), BOOST_PP_FOR_33, BOOST_PP_TUPLE_EAT_4)(o(33, s), p, o, m)
-# define BOOST_PP_FOR_33_I(s, p, o, m) BOOST_PP_IF(p(34, s), m, BOOST_PP_TUPLE_EAT_2)(34, s) BOOST_PP_IF(p(34, s), BOOST_PP_FOR_34, BOOST_PP_TUPLE_EAT_4)(o(34, s), p, o, m)
-# define BOOST_PP_FOR_34_I(s, p, o, m) BOOST_PP_IF(p(35, s), m, BOOST_PP_TUPLE_EAT_2)(35, s) BOOST_PP_IF(p(35, s), BOOST_PP_FOR_35, BOOST_PP_TUPLE_EAT_4)(o(35, s), p, o, m)
-# define BOOST_PP_FOR_35_I(s, p, o, m) BOOST_PP_IF(p(36, s), m, BOOST_PP_TUPLE_EAT_2)(36, s) BOOST_PP_IF(p(36, s), BOOST_PP_FOR_36, BOOST_PP_TUPLE_EAT_4)(o(36, s), p, o, m)
-# define BOOST_PP_FOR_36_I(s, p, o, m) BOOST_PP_IF(p(37, s), m, BOOST_PP_TUPLE_EAT_2)(37, s) BOOST_PP_IF(p(37, s), BOOST_PP_FOR_37, BOOST_PP_TUPLE_EAT_4)(o(37, s), p, o, m)
-# define BOOST_PP_FOR_37_I(s, p, o, m) BOOST_PP_IF(p(38, s), m, BOOST_PP_TUPLE_EAT_2)(38, s) BOOST_PP_IF(p(38, s), BOOST_PP_FOR_38, BOOST_PP_TUPLE_EAT_4)(o(38, s), p, o, m)
-# define BOOST_PP_FOR_38_I(s, p, o, m) BOOST_PP_IF(p(39, s), m, BOOST_PP_TUPLE_EAT_2)(39, s) BOOST_PP_IF(p(39, s), BOOST_PP_FOR_39, BOOST_PP_TUPLE_EAT_4)(o(39, s), p, o, m)
-# define BOOST_PP_FOR_39_I(s, p, o, m) BOOST_PP_IF(p(40, s), m, BOOST_PP_TUPLE_EAT_2)(40, s) BOOST_PP_IF(p(40, s), BOOST_PP_FOR_40, BOOST_PP_TUPLE_EAT_4)(o(40, s), p, o, m)
-# define BOOST_PP_FOR_40_I(s, p, o, m) BOOST_PP_IF(p(41, s), m, BOOST_PP_TUPLE_EAT_2)(41, s) BOOST_PP_IF(p(41, s), BOOST_PP_FOR_41, BOOST_PP_TUPLE_EAT_4)(o(41, s), p, o, m)
-# define BOOST_PP_FOR_41_I(s, p, o, m) BOOST_PP_IF(p(42, s), m, BOOST_PP_TUPLE_EAT_2)(42, s) BOOST_PP_IF(p(42, s), BOOST_PP_FOR_42, BOOST_PP_TUPLE_EAT_4)(o(42, s), p, o, m)
-# define BOOST_PP_FOR_42_I(s, p, o, m) BOOST_PP_IF(p(43, s), m, BOOST_PP_TUPLE_EAT_2)(43, s) BOOST_PP_IF(p(43, s), BOOST_PP_FOR_43, BOOST_PP_TUPLE_EAT_4)(o(43, s), p, o, m)
-# define BOOST_PP_FOR_43_I(s, p, o, m) BOOST_PP_IF(p(44, s), m, BOOST_PP_TUPLE_EAT_2)(44, s) BOOST_PP_IF(p(44, s), BOOST_PP_FOR_44, BOOST_PP_TUPLE_EAT_4)(o(44, s), p, o, m)
-# define BOOST_PP_FOR_44_I(s, p, o, m) BOOST_PP_IF(p(45, s), m, BOOST_PP_TUPLE_EAT_2)(45, s) BOOST_PP_IF(p(45, s), BOOST_PP_FOR_45, BOOST_PP_TUPLE_EAT_4)(o(45, s), p, o, m)
-# define BOOST_PP_FOR_45_I(s, p, o, m) BOOST_PP_IF(p(46, s), m, BOOST_PP_TUPLE_EAT_2)(46, s) BOOST_PP_IF(p(46, s), BOOST_PP_FOR_46, BOOST_PP_TUPLE_EAT_4)(o(46, s), p, o, m)
-# define BOOST_PP_FOR_46_I(s, p, o, m) BOOST_PP_IF(p(47, s), m, BOOST_PP_TUPLE_EAT_2)(47, s) BOOST_PP_IF(p(47, s), BOOST_PP_FOR_47, BOOST_PP_TUPLE_EAT_4)(o(47, s), p, o, m)
-# define BOOST_PP_FOR_47_I(s, p, o, m) BOOST_PP_IF(p(48, s), m, BOOST_PP_TUPLE_EAT_2)(48, s) BOOST_PP_IF(p(48, s), BOOST_PP_FOR_48, BOOST_PP_TUPLE_EAT_4)(o(48, s), p, o, m)
-# define BOOST_PP_FOR_48_I(s, p, o, m) BOOST_PP_IF(p(49, s), m, BOOST_PP_TUPLE_EAT_2)(49, s) BOOST_PP_IF(p(49, s), BOOST_PP_FOR_49, BOOST_PP_TUPLE_EAT_4)(o(49, s), p, o, m)
-# define BOOST_PP_FOR_49_I(s, p, o, m) BOOST_PP_IF(p(50, s), m, BOOST_PP_TUPLE_EAT_2)(50, s) BOOST_PP_IF(p(50, s), BOOST_PP_FOR_50, BOOST_PP_TUPLE_EAT_4)(o(50, s), p, o, m)
-# define BOOST_PP_FOR_50_I(s, p, o, m) BOOST_PP_IF(p(51, s), m, BOOST_PP_TUPLE_EAT_2)(51, s) BOOST_PP_IF(p(51, s), BOOST_PP_FOR_51, BOOST_PP_TUPLE_EAT_4)(o(51, s), p, o, m)
-# define BOOST_PP_FOR_51_I(s, p, o, m) BOOST_PP_IF(p(52, s), m, BOOST_PP_TUPLE_EAT_2)(52, s) BOOST_PP_IF(p(52, s), BOOST_PP_FOR_52, BOOST_PP_TUPLE_EAT_4)(o(52, s), p, o, m)
-# define BOOST_PP_FOR_52_I(s, p, o, m) BOOST_PP_IF(p(53, s), m, BOOST_PP_TUPLE_EAT_2)(53, s) BOOST_PP_IF(p(53, s), BOOST_PP_FOR_53, BOOST_PP_TUPLE_EAT_4)(o(53, s), p, o, m)
-# define BOOST_PP_FOR_53_I(s, p, o, m) BOOST_PP_IF(p(54, s), m, BOOST_PP_TUPLE_EAT_2)(54, s) BOOST_PP_IF(p(54, s), BOOST_PP_FOR_54, BOOST_PP_TUPLE_EAT_4)(o(54, s), p, o, m)
-# define BOOST_PP_FOR_54_I(s, p, o, m) BOOST_PP_IF(p(55, s), m, BOOST_PP_TUPLE_EAT_2)(55, s) BOOST_PP_IF(p(55, s), BOOST_PP_FOR_55, BOOST_PP_TUPLE_EAT_4)(o(55, s), p, o, m)
-# define BOOST_PP_FOR_55_I(s, p, o, m) BOOST_PP_IF(p(56, s), m, BOOST_PP_TUPLE_EAT_2)(56, s) BOOST_PP_IF(p(56, s), BOOST_PP_FOR_56, BOOST_PP_TUPLE_EAT_4)(o(56, s), p, o, m)
-# define BOOST_PP_FOR_56_I(s, p, o, m) BOOST_PP_IF(p(57, s), m, BOOST_PP_TUPLE_EAT_2)(57, s) BOOST_PP_IF(p(57, s), BOOST_PP_FOR_57, BOOST_PP_TUPLE_EAT_4)(o(57, s), p, o, m)
-# define BOOST_PP_FOR_57_I(s, p, o, m) BOOST_PP_IF(p(58, s), m, BOOST_PP_TUPLE_EAT_2)(58, s) BOOST_PP_IF(p(58, s), BOOST_PP_FOR_58, BOOST_PP_TUPLE_EAT_4)(o(58, s), p, o, m)
-# define BOOST_PP_FOR_58_I(s, p, o, m) BOOST_PP_IF(p(59, s), m, BOOST_PP_TUPLE_EAT_2)(59, s) BOOST_PP_IF(p(59, s), BOOST_PP_FOR_59, BOOST_PP_TUPLE_EAT_4)(o(59, s), p, o, m)
-# define BOOST_PP_FOR_59_I(s, p, o, m) BOOST_PP_IF(p(60, s), m, BOOST_PP_TUPLE_EAT_2)(60, s) BOOST_PP_IF(p(60, s), BOOST_PP_FOR_60, BOOST_PP_TUPLE_EAT_4)(o(60, s), p, o, m)
-# define BOOST_PP_FOR_60_I(s, p, o, m) BOOST_PP_IF(p(61, s), m, BOOST_PP_TUPLE_EAT_2)(61, s) BOOST_PP_IF(p(61, s), BOOST_PP_FOR_61, BOOST_PP_TUPLE_EAT_4)(o(61, s), p, o, m)
-# define BOOST_PP_FOR_61_I(s, p, o, m) BOOST_PP_IF(p(62, s), m, BOOST_PP_TUPLE_EAT_2)(62, s) BOOST_PP_IF(p(62, s), BOOST_PP_FOR_62, BOOST_PP_TUPLE_EAT_4)(o(62, s), p, o, m)
-# define BOOST_PP_FOR_62_I(s, p, o, m) BOOST_PP_IF(p(63, s), m, BOOST_PP_TUPLE_EAT_2)(63, s) BOOST_PP_IF(p(63, s), BOOST_PP_FOR_63, BOOST_PP_TUPLE_EAT_4)(o(63, s), p, o, m)
-# define BOOST_PP_FOR_63_I(s, p, o, m) BOOST_PP_IF(p(64, s), m, BOOST_PP_TUPLE_EAT_2)(64, s) BOOST_PP_IF(p(64, s), BOOST_PP_FOR_64, BOOST_PP_TUPLE_EAT_4)(o(64, s), p, o, m)
-# define BOOST_PP_FOR_64_I(s, p, o, m) BOOST_PP_IF(p(65, s), m, BOOST_PP_TUPLE_EAT_2)(65, s) BOOST_PP_IF(p(65, s), BOOST_PP_FOR_65, BOOST_PP_TUPLE_EAT_4)(o(65, s), p, o, m)
-# define BOOST_PP_FOR_65_I(s, p, o, m) BOOST_PP_IF(p(66, s), m, BOOST_PP_TUPLE_EAT_2)(66, s) BOOST_PP_IF(p(66, s), BOOST_PP_FOR_66, BOOST_PP_TUPLE_EAT_4)(o(66, s), p, o, m)
-# define BOOST_PP_FOR_66_I(s, p, o, m) BOOST_PP_IF(p(67, s), m, BOOST_PP_TUPLE_EAT_2)(67, s) BOOST_PP_IF(p(67, s), BOOST_PP_FOR_67, BOOST_PP_TUPLE_EAT_4)(o(67, s), p, o, m)
-# define BOOST_PP_FOR_67_I(s, p, o, m) BOOST_PP_IF(p(68, s), m, BOOST_PP_TUPLE_EAT_2)(68, s) BOOST_PP_IF(p(68, s), BOOST_PP_FOR_68, BOOST_PP_TUPLE_EAT_4)(o(68, s), p, o, m)
-# define BOOST_PP_FOR_68_I(s, p, o, m) BOOST_PP_IF(p(69, s), m, BOOST_PP_TUPLE_EAT_2)(69, s) BOOST_PP_IF(p(69, s), BOOST_PP_FOR_69, BOOST_PP_TUPLE_EAT_4)(o(69, s), p, o, m)
-# define BOOST_PP_FOR_69_I(s, p, o, m) BOOST_PP_IF(p(70, s), m, BOOST_PP_TUPLE_EAT_2)(70, s) BOOST_PP_IF(p(70, s), BOOST_PP_FOR_70, BOOST_PP_TUPLE_EAT_4)(o(70, s), p, o, m)
-# define BOOST_PP_FOR_70_I(s, p, o, m) BOOST_PP_IF(p(71, s), m, BOOST_PP_TUPLE_EAT_2)(71, s) BOOST_PP_IF(p(71, s), BOOST_PP_FOR_71, BOOST_PP_TUPLE_EAT_4)(o(71, s), p, o, m)
-# define BOOST_PP_FOR_71_I(s, p, o, m) BOOST_PP_IF(p(72, s), m, BOOST_PP_TUPLE_EAT_2)(72, s) BOOST_PP_IF(p(72, s), BOOST_PP_FOR_72, BOOST_PP_TUPLE_EAT_4)(o(72, s), p, o, m)
-# define BOOST_PP_FOR_72_I(s, p, o, m) BOOST_PP_IF(p(73, s), m, BOOST_PP_TUPLE_EAT_2)(73, s) BOOST_PP_IF(p(73, s), BOOST_PP_FOR_73, BOOST_PP_TUPLE_EAT_4)(o(73, s), p, o, m)
-# define BOOST_PP_FOR_73_I(s, p, o, m) BOOST_PP_IF(p(74, s), m, BOOST_PP_TUPLE_EAT_2)(74, s) BOOST_PP_IF(p(74, s), BOOST_PP_FOR_74, BOOST_PP_TUPLE_EAT_4)(o(74, s), p, o, m)
-# define BOOST_PP_FOR_74_I(s, p, o, m) BOOST_PP_IF(p(75, s), m, BOOST_PP_TUPLE_EAT_2)(75, s) BOOST_PP_IF(p(75, s), BOOST_PP_FOR_75, BOOST_PP_TUPLE_EAT_4)(o(75, s), p, o, m)
-# define BOOST_PP_FOR_75_I(s, p, o, m) BOOST_PP_IF(p(76, s), m, BOOST_PP_TUPLE_EAT_2)(76, s) BOOST_PP_IF(p(76, s), BOOST_PP_FOR_76, BOOST_PP_TUPLE_EAT_4)(o(76, s), p, o, m)
-# define BOOST_PP_FOR_76_I(s, p, o, m) BOOST_PP_IF(p(77, s), m, BOOST_PP_TUPLE_EAT_2)(77, s) BOOST_PP_IF(p(77, s), BOOST_PP_FOR_77, BOOST_PP_TUPLE_EAT_4)(o(77, s), p, o, m)
-# define BOOST_PP_FOR_77_I(s, p, o, m) BOOST_PP_IF(p(78, s), m, BOOST_PP_TUPLE_EAT_2)(78, s) BOOST_PP_IF(p(78, s), BOOST_PP_FOR_78, BOOST_PP_TUPLE_EAT_4)(o(78, s), p, o, m)
-# define BOOST_PP_FOR_78_I(s, p, o, m) BOOST_PP_IF(p(79, s), m, BOOST_PP_TUPLE_EAT_2)(79, s) BOOST_PP_IF(p(79, s), BOOST_PP_FOR_79, BOOST_PP_TUPLE_EAT_4)(o(79, s), p, o, m)
-# define BOOST_PP_FOR_79_I(s, p, o, m) BOOST_PP_IF(p(80, s), m, BOOST_PP_TUPLE_EAT_2)(80, s) BOOST_PP_IF(p(80, s), BOOST_PP_FOR_80, BOOST_PP_TUPLE_EAT_4)(o(80, s), p, o, m)
-# define BOOST_PP_FOR_80_I(s, p, o, m) BOOST_PP_IF(p(81, s), m, BOOST_PP_TUPLE_EAT_2)(81, s) BOOST_PP_IF(p(81, s), BOOST_PP_FOR_81, BOOST_PP_TUPLE_EAT_4)(o(81, s), p, o, m)
-# define BOOST_PP_FOR_81_I(s, p, o, m) BOOST_PP_IF(p(82, s), m, BOOST_PP_TUPLE_EAT_2)(82, s) BOOST_PP_IF(p(82, s), BOOST_PP_FOR_82, BOOST_PP_TUPLE_EAT_4)(o(82, s), p, o, m)
-# define BOOST_PP_FOR_82_I(s, p, o, m) BOOST_PP_IF(p(83, s), m, BOOST_PP_TUPLE_EAT_2)(83, s) BOOST_PP_IF(p(83, s), BOOST_PP_FOR_83, BOOST_PP_TUPLE_EAT_4)(o(83, s), p, o, m)
-# define BOOST_PP_FOR_83_I(s, p, o, m) BOOST_PP_IF(p(84, s), m, BOOST_PP_TUPLE_EAT_2)(84, s) BOOST_PP_IF(p(84, s), BOOST_PP_FOR_84, BOOST_PP_TUPLE_EAT_4)(o(84, s), p, o, m)
-# define BOOST_PP_FOR_84_I(s, p, o, m) BOOST_PP_IF(p(85, s), m, BOOST_PP_TUPLE_EAT_2)(85, s) BOOST_PP_IF(p(85, s), BOOST_PP_FOR_85, BOOST_PP_TUPLE_EAT_4)(o(85, s), p, o, m)
-# define BOOST_PP_FOR_85_I(s, p, o, m) BOOST_PP_IF(p(86, s), m, BOOST_PP_TUPLE_EAT_2)(86, s) BOOST_PP_IF(p(86, s), BOOST_PP_FOR_86, BOOST_PP_TUPLE_EAT_4)(o(86, s), p, o, m)
-# define BOOST_PP_FOR_86_I(s, p, o, m) BOOST_PP_IF(p(87, s), m, BOOST_PP_TUPLE_EAT_2)(87, s) BOOST_PP_IF(p(87, s), BOOST_PP_FOR_87, BOOST_PP_TUPLE_EAT_4)(o(87, s), p, o, m)
-# define BOOST_PP_FOR_87_I(s, p, o, m) BOOST_PP_IF(p(88, s), m, BOOST_PP_TUPLE_EAT_2)(88, s) BOOST_PP_IF(p(88, s), BOOST_PP_FOR_88, BOOST_PP_TUPLE_EAT_4)(o(88, s), p, o, m)
-# define BOOST_PP_FOR_88_I(s, p, o, m) BOOST_PP_IF(p(89, s), m, BOOST_PP_TUPLE_EAT_2)(89, s) BOOST_PP_IF(p(89, s), BOOST_PP_FOR_89, BOOST_PP_TUPLE_EAT_4)(o(89, s), p, o, m)
-# define BOOST_PP_FOR_89_I(s, p, o, m) BOOST_PP_IF(p(90, s), m, BOOST_PP_TUPLE_EAT_2)(90, s) BOOST_PP_IF(p(90, s), BOOST_PP_FOR_90, BOOST_PP_TUPLE_EAT_4)(o(90, s), p, o, m)
-# define BOOST_PP_FOR_90_I(s, p, o, m) BOOST_PP_IF(p(91, s), m, BOOST_PP_TUPLE_EAT_2)(91, s) BOOST_PP_IF(p(91, s), BOOST_PP_FOR_91, BOOST_PP_TUPLE_EAT_4)(o(91, s), p, o, m)
-# define BOOST_PP_FOR_91_I(s, p, o, m) BOOST_PP_IF(p(92, s), m, BOOST_PP_TUPLE_EAT_2)(92, s) BOOST_PP_IF(p(92, s), BOOST_PP_FOR_92, BOOST_PP_TUPLE_EAT_4)(o(92, s), p, o, m)
-# define BOOST_PP_FOR_92_I(s, p, o, m) BOOST_PP_IF(p(93, s), m, BOOST_PP_TUPLE_EAT_2)(93, s) BOOST_PP_IF(p(93, s), BOOST_PP_FOR_93, BOOST_PP_TUPLE_EAT_4)(o(93, s), p, o, m)
-# define BOOST_PP_FOR_93_I(s, p, o, m) BOOST_PP_IF(p(94, s), m, BOOST_PP_TUPLE_EAT_2)(94, s) BOOST_PP_IF(p(94, s), BOOST_PP_FOR_94, BOOST_PP_TUPLE_EAT_4)(o(94, s), p, o, m)
-# define BOOST_PP_FOR_94_I(s, p, o, m) BOOST_PP_IF(p(95, s), m, BOOST_PP_TUPLE_EAT_2)(95, s) BOOST_PP_IF(p(95, s), BOOST_PP_FOR_95, BOOST_PP_TUPLE_EAT_4)(o(95, s), p, o, m)
-# define BOOST_PP_FOR_95_I(s, p, o, m) BOOST_PP_IF(p(96, s), m, BOOST_PP_TUPLE_EAT_2)(96, s) BOOST_PP_IF(p(96, s), BOOST_PP_FOR_96, BOOST_PP_TUPLE_EAT_4)(o(96, s), p, o, m)
-# define BOOST_PP_FOR_96_I(s, p, o, m) BOOST_PP_IF(p(97, s), m, BOOST_PP_TUPLE_EAT_2)(97, s) BOOST_PP_IF(p(97, s), BOOST_PP_FOR_97, BOOST_PP_TUPLE_EAT_4)(o(97, s), p, o, m)
-# define BOOST_PP_FOR_97_I(s, p, o, m) BOOST_PP_IF(p(98, s), m, BOOST_PP_TUPLE_EAT_2)(98, s) BOOST_PP_IF(p(98, s), BOOST_PP_FOR_98, BOOST_PP_TUPLE_EAT_4)(o(98, s), p, o, m)
-# define BOOST_PP_FOR_98_I(s, p, o, m) BOOST_PP_IF(p(99, s), m, BOOST_PP_TUPLE_EAT_2)(99, s) BOOST_PP_IF(p(99, s), BOOST_PP_FOR_99, BOOST_PP_TUPLE_EAT_4)(o(99, s), p, o, m)
-# define BOOST_PP_FOR_99_I(s, p, o, m) BOOST_PP_IF(p(100, s), m, BOOST_PP_TUPLE_EAT_2)(100, s) BOOST_PP_IF(p(100, s), BOOST_PP_FOR_100, BOOST_PP_TUPLE_EAT_4)(o(100, s), p, o, m)
-# define BOOST_PP_FOR_100_I(s, p, o, m) BOOST_PP_IF(p(101, s), m, BOOST_PP_TUPLE_EAT_2)(101, s) BOOST_PP_IF(p(101, s), BOOST_PP_FOR_101, BOOST_PP_TUPLE_EAT_4)(o(101, s), p, o, m)
-# define BOOST_PP_FOR_101_I(s, p, o, m) BOOST_PP_IF(p(102, s), m, BOOST_PP_TUPLE_EAT_2)(102, s) BOOST_PP_IF(p(102, s), BOOST_PP_FOR_102, BOOST_PP_TUPLE_EAT_4)(o(102, s), p, o, m)
-# define BOOST_PP_FOR_102_I(s, p, o, m) BOOST_PP_IF(p(103, s), m, BOOST_PP_TUPLE_EAT_2)(103, s) BOOST_PP_IF(p(103, s), BOOST_PP_FOR_103, BOOST_PP_TUPLE_EAT_4)(o(103, s), p, o, m)
-# define BOOST_PP_FOR_103_I(s, p, o, m) BOOST_PP_IF(p(104, s), m, BOOST_PP_TUPLE_EAT_2)(104, s) BOOST_PP_IF(p(104, s), BOOST_PP_FOR_104, BOOST_PP_TUPLE_EAT_4)(o(104, s), p, o, m)
-# define BOOST_PP_FOR_104_I(s, p, o, m) BOOST_PP_IF(p(105, s), m, BOOST_PP_TUPLE_EAT_2)(105, s) BOOST_PP_IF(p(105, s), BOOST_PP_FOR_105, BOOST_PP_TUPLE_EAT_4)(o(105, s), p, o, m)
-# define BOOST_PP_FOR_105_I(s, p, o, m) BOOST_PP_IF(p(106, s), m, BOOST_PP_TUPLE_EAT_2)(106, s) BOOST_PP_IF(p(106, s), BOOST_PP_FOR_106, BOOST_PP_TUPLE_EAT_4)(o(106, s), p, o, m)
-# define BOOST_PP_FOR_106_I(s, p, o, m) BOOST_PP_IF(p(107, s), m, BOOST_PP_TUPLE_EAT_2)(107, s) BOOST_PP_IF(p(107, s), BOOST_PP_FOR_107, BOOST_PP_TUPLE_EAT_4)(o(107, s), p, o, m)
-# define BOOST_PP_FOR_107_I(s, p, o, m) BOOST_PP_IF(p(108, s), m, BOOST_PP_TUPLE_EAT_2)(108, s) BOOST_PP_IF(p(108, s), BOOST_PP_FOR_108, BOOST_PP_TUPLE_EAT_4)(o(108, s), p, o, m)
-# define BOOST_PP_FOR_108_I(s, p, o, m) BOOST_PP_IF(p(109, s), m, BOOST_PP_TUPLE_EAT_2)(109, s) BOOST_PP_IF(p(109, s), BOOST_PP_FOR_109, BOOST_PP_TUPLE_EAT_4)(o(109, s), p, o, m)
-# define BOOST_PP_FOR_109_I(s, p, o, m) BOOST_PP_IF(p(110, s), m, BOOST_PP_TUPLE_EAT_2)(110, s) BOOST_PP_IF(p(110, s), BOOST_PP_FOR_110, BOOST_PP_TUPLE_EAT_4)(o(110, s), p, o, m)
-# define BOOST_PP_FOR_110_I(s, p, o, m) BOOST_PP_IF(p(111, s), m, BOOST_PP_TUPLE_EAT_2)(111, s) BOOST_PP_IF(p(111, s), BOOST_PP_FOR_111, BOOST_PP_TUPLE_EAT_4)(o(111, s), p, o, m)
-# define BOOST_PP_FOR_111_I(s, p, o, m) BOOST_PP_IF(p(112, s), m, BOOST_PP_TUPLE_EAT_2)(112, s) BOOST_PP_IF(p(112, s), BOOST_PP_FOR_112, BOOST_PP_TUPLE_EAT_4)(o(112, s), p, o, m)
-# define BOOST_PP_FOR_112_I(s, p, o, m) BOOST_PP_IF(p(113, s), m, BOOST_PP_TUPLE_EAT_2)(113, s) BOOST_PP_IF(p(113, s), BOOST_PP_FOR_113, BOOST_PP_TUPLE_EAT_4)(o(113, s), p, o, m)
-# define BOOST_PP_FOR_113_I(s, p, o, m) BOOST_PP_IF(p(114, s), m, BOOST_PP_TUPLE_EAT_2)(114, s) BOOST_PP_IF(p(114, s), BOOST_PP_FOR_114, BOOST_PP_TUPLE_EAT_4)(o(114, s), p, o, m)
-# define BOOST_PP_FOR_114_I(s, p, o, m) BOOST_PP_IF(p(115, s), m, BOOST_PP_TUPLE_EAT_2)(115, s) BOOST_PP_IF(p(115, s), BOOST_PP_FOR_115, BOOST_PP_TUPLE_EAT_4)(o(115, s), p, o, m)
-# define BOOST_PP_FOR_115_I(s, p, o, m) BOOST_PP_IF(p(116, s), m, BOOST_PP_TUPLE_EAT_2)(116, s) BOOST_PP_IF(p(116, s), BOOST_PP_FOR_116, BOOST_PP_TUPLE_EAT_4)(o(116, s), p, o, m)
-# define BOOST_PP_FOR_116_I(s, p, o, m) BOOST_PP_IF(p(117, s), m, BOOST_PP_TUPLE_EAT_2)(117, s) BOOST_PP_IF(p(117, s), BOOST_PP_FOR_117, BOOST_PP_TUPLE_EAT_4)(o(117, s), p, o, m)
-# define BOOST_PP_FOR_117_I(s, p, o, m) BOOST_PP_IF(p(118, s), m, BOOST_PP_TUPLE_EAT_2)(118, s) BOOST_PP_IF(p(118, s), BOOST_PP_FOR_118, BOOST_PP_TUPLE_EAT_4)(o(118, s), p, o, m)
-# define BOOST_PP_FOR_118_I(s, p, o, m) BOOST_PP_IF(p(119, s), m, BOOST_PP_TUPLE_EAT_2)(119, s) BOOST_PP_IF(p(119, s), BOOST_PP_FOR_119, BOOST_PP_TUPLE_EAT_4)(o(119, s), p, o, m)
-# define BOOST_PP_FOR_119_I(s, p, o, m) BOOST_PP_IF(p(120, s), m, BOOST_PP_TUPLE_EAT_2)(120, s) BOOST_PP_IF(p(120, s), BOOST_PP_FOR_120, BOOST_PP_TUPLE_EAT_4)(o(120, s), p, o, m)
-# define BOOST_PP_FOR_120_I(s, p, o, m) BOOST_PP_IF(p(121, s), m, BOOST_PP_TUPLE_EAT_2)(121, s) BOOST_PP_IF(p(121, s), BOOST_PP_FOR_121, BOOST_PP_TUPLE_EAT_4)(o(121, s), p, o, m)
-# define BOOST_PP_FOR_121_I(s, p, o, m) BOOST_PP_IF(p(122, s), m, BOOST_PP_TUPLE_EAT_2)(122, s) BOOST_PP_IF(p(122, s), BOOST_PP_FOR_122, BOOST_PP_TUPLE_EAT_4)(o(122, s), p, o, m)
-# define BOOST_PP_FOR_122_I(s, p, o, m) BOOST_PP_IF(p(123, s), m, BOOST_PP_TUPLE_EAT_2)(123, s) BOOST_PP_IF(p(123, s), BOOST_PP_FOR_123, BOOST_PP_TUPLE_EAT_4)(o(123, s), p, o, m)
-# define BOOST_PP_FOR_123_I(s, p, o, m) BOOST_PP_IF(p(124, s), m, BOOST_PP_TUPLE_EAT_2)(124, s) BOOST_PP_IF(p(124, s), BOOST_PP_FOR_124, BOOST_PP_TUPLE_EAT_4)(o(124, s), p, o, m)
-# define BOOST_PP_FOR_124_I(s, p, o, m) BOOST_PP_IF(p(125, s), m, BOOST_PP_TUPLE_EAT_2)(125, s) BOOST_PP_IF(p(125, s), BOOST_PP_FOR_125, BOOST_PP_TUPLE_EAT_4)(o(125, s), p, o, m)
-# define BOOST_PP_FOR_125_I(s, p, o, m) BOOST_PP_IF(p(126, s), m, BOOST_PP_TUPLE_EAT_2)(126, s) BOOST_PP_IF(p(126, s), BOOST_PP_FOR_126, BOOST_PP_TUPLE_EAT_4)(o(126, s), p, o, m)
-# define BOOST_PP_FOR_126_I(s, p, o, m) BOOST_PP_IF(p(127, s), m, BOOST_PP_TUPLE_EAT_2)(127, s) BOOST_PP_IF(p(127, s), BOOST_PP_FOR_127, BOOST_PP_TUPLE_EAT_4)(o(127, s), p, o, m)
-# define BOOST_PP_FOR_127_I(s, p, o, m) BOOST_PP_IF(p(128, s), m, BOOST_PP_TUPLE_EAT_2)(128, s) BOOST_PP_IF(p(128, s), BOOST_PP_FOR_128, BOOST_PP_TUPLE_EAT_4)(o(128, s), p, o, m)
-# define BOOST_PP_FOR_128_I(s, p, o, m) BOOST_PP_IF(p(129, s), m, BOOST_PP_TUPLE_EAT_2)(129, s) BOOST_PP_IF(p(129, s), BOOST_PP_FOR_129, BOOST_PP_TUPLE_EAT_4)(o(129, s), p, o, m)
-# define BOOST_PP_FOR_129_I(s, p, o, m) BOOST_PP_IF(p(130, s), m, BOOST_PP_TUPLE_EAT_2)(130, s) BOOST_PP_IF(p(130, s), BOOST_PP_FOR_130, BOOST_PP_TUPLE_EAT_4)(o(130, s), p, o, m)
-# define BOOST_PP_FOR_130_I(s, p, o, m) BOOST_PP_IF(p(131, s), m, BOOST_PP_TUPLE_EAT_2)(131, s) BOOST_PP_IF(p(131, s), BOOST_PP_FOR_131, BOOST_PP_TUPLE_EAT_4)(o(131, s), p, o, m)
-# define BOOST_PP_FOR_131_I(s, p, o, m) BOOST_PP_IF(p(132, s), m, BOOST_PP_TUPLE_EAT_2)(132, s) BOOST_PP_IF(p(132, s), BOOST_PP_FOR_132, BOOST_PP_TUPLE_EAT_4)(o(132, s), p, o, m)
-# define BOOST_PP_FOR_132_I(s, p, o, m) BOOST_PP_IF(p(133, s), m, BOOST_PP_TUPLE_EAT_2)(133, s) BOOST_PP_IF(p(133, s), BOOST_PP_FOR_133, BOOST_PP_TUPLE_EAT_4)(o(133, s), p, o, m)
-# define BOOST_PP_FOR_133_I(s, p, o, m) BOOST_PP_IF(p(134, s), m, BOOST_PP_TUPLE_EAT_2)(134, s) BOOST_PP_IF(p(134, s), BOOST_PP_FOR_134, BOOST_PP_TUPLE_EAT_4)(o(134, s), p, o, m)
-# define BOOST_PP_FOR_134_I(s, p, o, m) BOOST_PP_IF(p(135, s), m, BOOST_PP_TUPLE_EAT_2)(135, s) BOOST_PP_IF(p(135, s), BOOST_PP_FOR_135, BOOST_PP_TUPLE_EAT_4)(o(135, s), p, o, m)
-# define BOOST_PP_FOR_135_I(s, p, o, m) BOOST_PP_IF(p(136, s), m, BOOST_PP_TUPLE_EAT_2)(136, s) BOOST_PP_IF(p(136, s), BOOST_PP_FOR_136, BOOST_PP_TUPLE_EAT_4)(o(136, s), p, o, m)
-# define BOOST_PP_FOR_136_I(s, p, o, m) BOOST_PP_IF(p(137, s), m, BOOST_PP_TUPLE_EAT_2)(137, s) BOOST_PP_IF(p(137, s), BOOST_PP_FOR_137, BOOST_PP_TUPLE_EAT_4)(o(137, s), p, o, m)
-# define BOOST_PP_FOR_137_I(s, p, o, m) BOOST_PP_IF(p(138, s), m, BOOST_PP_TUPLE_EAT_2)(138, s) BOOST_PP_IF(p(138, s), BOOST_PP_FOR_138, BOOST_PP_TUPLE_EAT_4)(o(138, s), p, o, m)
-# define BOOST_PP_FOR_138_I(s, p, o, m) BOOST_PP_IF(p(139, s), m, BOOST_PP_TUPLE_EAT_2)(139, s) BOOST_PP_IF(p(139, s), BOOST_PP_FOR_139, BOOST_PP_TUPLE_EAT_4)(o(139, s), p, o, m)
-# define BOOST_PP_FOR_139_I(s, p, o, m) BOOST_PP_IF(p(140, s), m, BOOST_PP_TUPLE_EAT_2)(140, s) BOOST_PP_IF(p(140, s), BOOST_PP_FOR_140, BOOST_PP_TUPLE_EAT_4)(o(140, s), p, o, m)
-# define BOOST_PP_FOR_140_I(s, p, o, m) BOOST_PP_IF(p(141, s), m, BOOST_PP_TUPLE_EAT_2)(141, s) BOOST_PP_IF(p(141, s), BOOST_PP_FOR_141, BOOST_PP_TUPLE_EAT_4)(o(141, s), p, o, m)
-# define BOOST_PP_FOR_141_I(s, p, o, m) BOOST_PP_IF(p(142, s), m, BOOST_PP_TUPLE_EAT_2)(142, s) BOOST_PP_IF(p(142, s), BOOST_PP_FOR_142, BOOST_PP_TUPLE_EAT_4)(o(142, s), p, o, m)
-# define BOOST_PP_FOR_142_I(s, p, o, m) BOOST_PP_IF(p(143, s), m, BOOST_PP_TUPLE_EAT_2)(143, s) BOOST_PP_IF(p(143, s), BOOST_PP_FOR_143, BOOST_PP_TUPLE_EAT_4)(o(143, s), p, o, m)
-# define BOOST_PP_FOR_143_I(s, p, o, m) BOOST_PP_IF(p(144, s), m, BOOST_PP_TUPLE_EAT_2)(144, s) BOOST_PP_IF(p(144, s), BOOST_PP_FOR_144, BOOST_PP_TUPLE_EAT_4)(o(144, s), p, o, m)
-# define BOOST_PP_FOR_144_I(s, p, o, m) BOOST_PP_IF(p(145, s), m, BOOST_PP_TUPLE_EAT_2)(145, s) BOOST_PP_IF(p(145, s), BOOST_PP_FOR_145, BOOST_PP_TUPLE_EAT_4)(o(145, s), p, o, m)
-# define BOOST_PP_FOR_145_I(s, p, o, m) BOOST_PP_IF(p(146, s), m, BOOST_PP_TUPLE_EAT_2)(146, s) BOOST_PP_IF(p(146, s), BOOST_PP_FOR_146, BOOST_PP_TUPLE_EAT_4)(o(146, s), p, o, m)
-# define BOOST_PP_FOR_146_I(s, p, o, m) BOOST_PP_IF(p(147, s), m, BOOST_PP_TUPLE_EAT_2)(147, s) BOOST_PP_IF(p(147, s), BOOST_PP_FOR_147, BOOST_PP_TUPLE_EAT_4)(o(147, s), p, o, m)
-# define BOOST_PP_FOR_147_I(s, p, o, m) BOOST_PP_IF(p(148, s), m, BOOST_PP_TUPLE_EAT_2)(148, s) BOOST_PP_IF(p(148, s), BOOST_PP_FOR_148, BOOST_PP_TUPLE_EAT_4)(o(148, s), p, o, m)
-# define BOOST_PP_FOR_148_I(s, p, o, m) BOOST_PP_IF(p(149, s), m, BOOST_PP_TUPLE_EAT_2)(149, s) BOOST_PP_IF(p(149, s), BOOST_PP_FOR_149, BOOST_PP_TUPLE_EAT_4)(o(149, s), p, o, m)
-# define BOOST_PP_FOR_149_I(s, p, o, m) BOOST_PP_IF(p(150, s), m, BOOST_PP_TUPLE_EAT_2)(150, s) BOOST_PP_IF(p(150, s), BOOST_PP_FOR_150, BOOST_PP_TUPLE_EAT_4)(o(150, s), p, o, m)
-# define BOOST_PP_FOR_150_I(s, p, o, m) BOOST_PP_IF(p(151, s), m, BOOST_PP_TUPLE_EAT_2)(151, s) BOOST_PP_IF(p(151, s), BOOST_PP_FOR_151, BOOST_PP_TUPLE_EAT_4)(o(151, s), p, o, m)
-# define BOOST_PP_FOR_151_I(s, p, o, m) BOOST_PP_IF(p(152, s), m, BOOST_PP_TUPLE_EAT_2)(152, s) BOOST_PP_IF(p(152, s), BOOST_PP_FOR_152, BOOST_PP_TUPLE_EAT_4)(o(152, s), p, o, m)
-# define BOOST_PP_FOR_152_I(s, p, o, m) BOOST_PP_IF(p(153, s), m, BOOST_PP_TUPLE_EAT_2)(153, s) BOOST_PP_IF(p(153, s), BOOST_PP_FOR_153, BOOST_PP_TUPLE_EAT_4)(o(153, s), p, o, m)
-# define BOOST_PP_FOR_153_I(s, p, o, m) BOOST_PP_IF(p(154, s), m, BOOST_PP_TUPLE_EAT_2)(154, s) BOOST_PP_IF(p(154, s), BOOST_PP_FOR_154, BOOST_PP_TUPLE_EAT_4)(o(154, s), p, o, m)
-# define BOOST_PP_FOR_154_I(s, p, o, m) BOOST_PP_IF(p(155, s), m, BOOST_PP_TUPLE_EAT_2)(155, s) BOOST_PP_IF(p(155, s), BOOST_PP_FOR_155, BOOST_PP_TUPLE_EAT_4)(o(155, s), p, o, m)
-# define BOOST_PP_FOR_155_I(s, p, o, m) BOOST_PP_IF(p(156, s), m, BOOST_PP_TUPLE_EAT_2)(156, s) BOOST_PP_IF(p(156, s), BOOST_PP_FOR_156, BOOST_PP_TUPLE_EAT_4)(o(156, s), p, o, m)
-# define BOOST_PP_FOR_156_I(s, p, o, m) BOOST_PP_IF(p(157, s), m, BOOST_PP_TUPLE_EAT_2)(157, s) BOOST_PP_IF(p(157, s), BOOST_PP_FOR_157, BOOST_PP_TUPLE_EAT_4)(o(157, s), p, o, m)
-# define BOOST_PP_FOR_157_I(s, p, o, m) BOOST_PP_IF(p(158, s), m, BOOST_PP_TUPLE_EAT_2)(158, s) BOOST_PP_IF(p(158, s), BOOST_PP_FOR_158, BOOST_PP_TUPLE_EAT_4)(o(158, s), p, o, m)
-# define BOOST_PP_FOR_158_I(s, p, o, m) BOOST_PP_IF(p(159, s), m, BOOST_PP_TUPLE_EAT_2)(159, s) BOOST_PP_IF(p(159, s), BOOST_PP_FOR_159, BOOST_PP_TUPLE_EAT_4)(o(159, s), p, o, m)
-# define BOOST_PP_FOR_159_I(s, p, o, m) BOOST_PP_IF(p(160, s), m, BOOST_PP_TUPLE_EAT_2)(160, s) BOOST_PP_IF(p(160, s), BOOST_PP_FOR_160, BOOST_PP_TUPLE_EAT_4)(o(160, s), p, o, m)
-# define BOOST_PP_FOR_160_I(s, p, o, m) BOOST_PP_IF(p(161, s), m, BOOST_PP_TUPLE_EAT_2)(161, s) BOOST_PP_IF(p(161, s), BOOST_PP_FOR_161, BOOST_PP_TUPLE_EAT_4)(o(161, s), p, o, m)
-# define BOOST_PP_FOR_161_I(s, p, o, m) BOOST_PP_IF(p(162, s), m, BOOST_PP_TUPLE_EAT_2)(162, s) BOOST_PP_IF(p(162, s), BOOST_PP_FOR_162, BOOST_PP_TUPLE_EAT_4)(o(162, s), p, o, m)
-# define BOOST_PP_FOR_162_I(s, p, o, m) BOOST_PP_IF(p(163, s), m, BOOST_PP_TUPLE_EAT_2)(163, s) BOOST_PP_IF(p(163, s), BOOST_PP_FOR_163, BOOST_PP_TUPLE_EAT_4)(o(163, s), p, o, m)
-# define BOOST_PP_FOR_163_I(s, p, o, m) BOOST_PP_IF(p(164, s), m, BOOST_PP_TUPLE_EAT_2)(164, s) BOOST_PP_IF(p(164, s), BOOST_PP_FOR_164, BOOST_PP_TUPLE_EAT_4)(o(164, s), p, o, m)
-# define BOOST_PP_FOR_164_I(s, p, o, m) BOOST_PP_IF(p(165, s), m, BOOST_PP_TUPLE_EAT_2)(165, s) BOOST_PP_IF(p(165, s), BOOST_PP_FOR_165, BOOST_PP_TUPLE_EAT_4)(o(165, s), p, o, m)
-# define BOOST_PP_FOR_165_I(s, p, o, m) BOOST_PP_IF(p(166, s), m, BOOST_PP_TUPLE_EAT_2)(166, s) BOOST_PP_IF(p(166, s), BOOST_PP_FOR_166, BOOST_PP_TUPLE_EAT_4)(o(166, s), p, o, m)
-# define BOOST_PP_FOR_166_I(s, p, o, m) BOOST_PP_IF(p(167, s), m, BOOST_PP_TUPLE_EAT_2)(167, s) BOOST_PP_IF(p(167, s), BOOST_PP_FOR_167, BOOST_PP_TUPLE_EAT_4)(o(167, s), p, o, m)
-# define BOOST_PP_FOR_167_I(s, p, o, m) BOOST_PP_IF(p(168, s), m, BOOST_PP_TUPLE_EAT_2)(168, s) BOOST_PP_IF(p(168, s), BOOST_PP_FOR_168, BOOST_PP_TUPLE_EAT_4)(o(168, s), p, o, m)
-# define BOOST_PP_FOR_168_I(s, p, o, m) BOOST_PP_IF(p(169, s), m, BOOST_PP_TUPLE_EAT_2)(169, s) BOOST_PP_IF(p(169, s), BOOST_PP_FOR_169, BOOST_PP_TUPLE_EAT_4)(o(169, s), p, o, m)
-# define BOOST_PP_FOR_169_I(s, p, o, m) BOOST_PP_IF(p(170, s), m, BOOST_PP_TUPLE_EAT_2)(170, s) BOOST_PP_IF(p(170, s), BOOST_PP_FOR_170, BOOST_PP_TUPLE_EAT_4)(o(170, s), p, o, m)
-# define BOOST_PP_FOR_170_I(s, p, o, m) BOOST_PP_IF(p(171, s), m, BOOST_PP_TUPLE_EAT_2)(171, s) BOOST_PP_IF(p(171, s), BOOST_PP_FOR_171, BOOST_PP_TUPLE_EAT_4)(o(171, s), p, o, m)
-# define BOOST_PP_FOR_171_I(s, p, o, m) BOOST_PP_IF(p(172, s), m, BOOST_PP_TUPLE_EAT_2)(172, s) BOOST_PP_IF(p(172, s), BOOST_PP_FOR_172, BOOST_PP_TUPLE_EAT_4)(o(172, s), p, o, m)
-# define BOOST_PP_FOR_172_I(s, p, o, m) BOOST_PP_IF(p(173, s), m, BOOST_PP_TUPLE_EAT_2)(173, s) BOOST_PP_IF(p(173, s), BOOST_PP_FOR_173, BOOST_PP_TUPLE_EAT_4)(o(173, s), p, o, m)
-# define BOOST_PP_FOR_173_I(s, p, o, m) BOOST_PP_IF(p(174, s), m, BOOST_PP_TUPLE_EAT_2)(174, s) BOOST_PP_IF(p(174, s), BOOST_PP_FOR_174, BOOST_PP_TUPLE_EAT_4)(o(174, s), p, o, m)
-# define BOOST_PP_FOR_174_I(s, p, o, m) BOOST_PP_IF(p(175, s), m, BOOST_PP_TUPLE_EAT_2)(175, s) BOOST_PP_IF(p(175, s), BOOST_PP_FOR_175, BOOST_PP_TUPLE_EAT_4)(o(175, s), p, o, m)
-# define BOOST_PP_FOR_175_I(s, p, o, m) BOOST_PP_IF(p(176, s), m, BOOST_PP_TUPLE_EAT_2)(176, s) BOOST_PP_IF(p(176, s), BOOST_PP_FOR_176, BOOST_PP_TUPLE_EAT_4)(o(176, s), p, o, m)
-# define BOOST_PP_FOR_176_I(s, p, o, m) BOOST_PP_IF(p(177, s), m, BOOST_PP_TUPLE_EAT_2)(177, s) BOOST_PP_IF(p(177, s), BOOST_PP_FOR_177, BOOST_PP_TUPLE_EAT_4)(o(177, s), p, o, m)
-# define BOOST_PP_FOR_177_I(s, p, o, m) BOOST_PP_IF(p(178, s), m, BOOST_PP_TUPLE_EAT_2)(178, s) BOOST_PP_IF(p(178, s), BOOST_PP_FOR_178, BOOST_PP_TUPLE_EAT_4)(o(178, s), p, o, m)
-# define BOOST_PP_FOR_178_I(s, p, o, m) BOOST_PP_IF(p(179, s), m, BOOST_PP_TUPLE_EAT_2)(179, s) BOOST_PP_IF(p(179, s), BOOST_PP_FOR_179, BOOST_PP_TUPLE_EAT_4)(o(179, s), p, o, m)
-# define BOOST_PP_FOR_179_I(s, p, o, m) BOOST_PP_IF(p(180, s), m, BOOST_PP_TUPLE_EAT_2)(180, s) BOOST_PP_IF(p(180, s), BOOST_PP_FOR_180, BOOST_PP_TUPLE_EAT_4)(o(180, s), p, o, m)
-# define BOOST_PP_FOR_180_I(s, p, o, m) BOOST_PP_IF(p(181, s), m, BOOST_PP_TUPLE_EAT_2)(181, s) BOOST_PP_IF(p(181, s), BOOST_PP_FOR_181, BOOST_PP_TUPLE_EAT_4)(o(181, s), p, o, m)
-# define BOOST_PP_FOR_181_I(s, p, o, m) BOOST_PP_IF(p(182, s), m, BOOST_PP_TUPLE_EAT_2)(182, s) BOOST_PP_IF(p(182, s), BOOST_PP_FOR_182, BOOST_PP_TUPLE_EAT_4)(o(182, s), p, o, m)
-# define BOOST_PP_FOR_182_I(s, p, o, m) BOOST_PP_IF(p(183, s), m, BOOST_PP_TUPLE_EAT_2)(183, s) BOOST_PP_IF(p(183, s), BOOST_PP_FOR_183, BOOST_PP_TUPLE_EAT_4)(o(183, s), p, o, m)
-# define BOOST_PP_FOR_183_I(s, p, o, m) BOOST_PP_IF(p(184, s), m, BOOST_PP_TUPLE_EAT_2)(184, s) BOOST_PP_IF(p(184, s), BOOST_PP_FOR_184, BOOST_PP_TUPLE_EAT_4)(o(184, s), p, o, m)
-# define BOOST_PP_FOR_184_I(s, p, o, m) BOOST_PP_IF(p(185, s), m, BOOST_PP_TUPLE_EAT_2)(185, s) BOOST_PP_IF(p(185, s), BOOST_PP_FOR_185, BOOST_PP_TUPLE_EAT_4)(o(185, s), p, o, m)
-# define BOOST_PP_FOR_185_I(s, p, o, m) BOOST_PP_IF(p(186, s), m, BOOST_PP_TUPLE_EAT_2)(186, s) BOOST_PP_IF(p(186, s), BOOST_PP_FOR_186, BOOST_PP_TUPLE_EAT_4)(o(186, s), p, o, m)
-# define BOOST_PP_FOR_186_I(s, p, o, m) BOOST_PP_IF(p(187, s), m, BOOST_PP_TUPLE_EAT_2)(187, s) BOOST_PP_IF(p(187, s), BOOST_PP_FOR_187, BOOST_PP_TUPLE_EAT_4)(o(187, s), p, o, m)
-# define BOOST_PP_FOR_187_I(s, p, o, m) BOOST_PP_IF(p(188, s), m, BOOST_PP_TUPLE_EAT_2)(188, s) BOOST_PP_IF(p(188, s), BOOST_PP_FOR_188, BOOST_PP_TUPLE_EAT_4)(o(188, s), p, o, m)
-# define BOOST_PP_FOR_188_I(s, p, o, m) BOOST_PP_IF(p(189, s), m, BOOST_PP_TUPLE_EAT_2)(189, s) BOOST_PP_IF(p(189, s), BOOST_PP_FOR_189, BOOST_PP_TUPLE_EAT_4)(o(189, s), p, o, m)
-# define BOOST_PP_FOR_189_I(s, p, o, m) BOOST_PP_IF(p(190, s), m, BOOST_PP_TUPLE_EAT_2)(190, s) BOOST_PP_IF(p(190, s), BOOST_PP_FOR_190, BOOST_PP_TUPLE_EAT_4)(o(190, s), p, o, m)
-# define BOOST_PP_FOR_190_I(s, p, o, m) BOOST_PP_IF(p(191, s), m, BOOST_PP_TUPLE_EAT_2)(191, s) BOOST_PP_IF(p(191, s), BOOST_PP_FOR_191, BOOST_PP_TUPLE_EAT_4)(o(191, s), p, o, m)
-# define BOOST_PP_FOR_191_I(s, p, o, m) BOOST_PP_IF(p(192, s), m, BOOST_PP_TUPLE_EAT_2)(192, s) BOOST_PP_IF(p(192, s), BOOST_PP_FOR_192, BOOST_PP_TUPLE_EAT_4)(o(192, s), p, o, m)
-# define BOOST_PP_FOR_192_I(s, p, o, m) BOOST_PP_IF(p(193, s), m, BOOST_PP_TUPLE_EAT_2)(193, s) BOOST_PP_IF(p(193, s), BOOST_PP_FOR_193, BOOST_PP_TUPLE_EAT_4)(o(193, s), p, o, m)
-# define BOOST_PP_FOR_193_I(s, p, o, m) BOOST_PP_IF(p(194, s), m, BOOST_PP_TUPLE_EAT_2)(194, s) BOOST_PP_IF(p(194, s), BOOST_PP_FOR_194, BOOST_PP_TUPLE_EAT_4)(o(194, s), p, o, m)
-# define BOOST_PP_FOR_194_I(s, p, o, m) BOOST_PP_IF(p(195, s), m, BOOST_PP_TUPLE_EAT_2)(195, s) BOOST_PP_IF(p(195, s), BOOST_PP_FOR_195, BOOST_PP_TUPLE_EAT_4)(o(195, s), p, o, m)
-# define BOOST_PP_FOR_195_I(s, p, o, m) BOOST_PP_IF(p(196, s), m, BOOST_PP_TUPLE_EAT_2)(196, s) BOOST_PP_IF(p(196, s), BOOST_PP_FOR_196, BOOST_PP_TUPLE_EAT_4)(o(196, s), p, o, m)
-# define BOOST_PP_FOR_196_I(s, p, o, m) BOOST_PP_IF(p(197, s), m, BOOST_PP_TUPLE_EAT_2)(197, s) BOOST_PP_IF(p(197, s), BOOST_PP_FOR_197, BOOST_PP_TUPLE_EAT_4)(o(197, s), p, o, m)
-# define BOOST_PP_FOR_197_I(s, p, o, m) BOOST_PP_IF(p(198, s), m, BOOST_PP_TUPLE_EAT_2)(198, s) BOOST_PP_IF(p(198, s), BOOST_PP_FOR_198, BOOST_PP_TUPLE_EAT_4)(o(198, s), p, o, m)
-# define BOOST_PP_FOR_198_I(s, p, o, m) BOOST_PP_IF(p(199, s), m, BOOST_PP_TUPLE_EAT_2)(199, s) BOOST_PP_IF(p(199, s), BOOST_PP_FOR_199, BOOST_PP_TUPLE_EAT_4)(o(199, s), p, o, m)
-# define BOOST_PP_FOR_199_I(s, p, o, m) BOOST_PP_IF(p(200, s), m, BOOST_PP_TUPLE_EAT_2)(200, s) BOOST_PP_IF(p(200, s), BOOST_PP_FOR_200, BOOST_PP_TUPLE_EAT_4)(o(200, s), p, o, m)
-# define BOOST_PP_FOR_200_I(s, p, o, m) BOOST_PP_IF(p(201, s), m, BOOST_PP_TUPLE_EAT_2)(201, s) BOOST_PP_IF(p(201, s), BOOST_PP_FOR_201, BOOST_PP_TUPLE_EAT_4)(o(201, s), p, o, m)
-# define BOOST_PP_FOR_201_I(s, p, o, m) BOOST_PP_IF(p(202, s), m, BOOST_PP_TUPLE_EAT_2)(202, s) BOOST_PP_IF(p(202, s), BOOST_PP_FOR_202, BOOST_PP_TUPLE_EAT_4)(o(202, s), p, o, m)
-# define BOOST_PP_FOR_202_I(s, p, o, m) BOOST_PP_IF(p(203, s), m, BOOST_PP_TUPLE_EAT_2)(203, s) BOOST_PP_IF(p(203, s), BOOST_PP_FOR_203, BOOST_PP_TUPLE_EAT_4)(o(203, s), p, o, m)
-# define BOOST_PP_FOR_203_I(s, p, o, m) BOOST_PP_IF(p(204, s), m, BOOST_PP_TUPLE_EAT_2)(204, s) BOOST_PP_IF(p(204, s), BOOST_PP_FOR_204, BOOST_PP_TUPLE_EAT_4)(o(204, s), p, o, m)
-# define BOOST_PP_FOR_204_I(s, p, o, m) BOOST_PP_IF(p(205, s), m, BOOST_PP_TUPLE_EAT_2)(205, s) BOOST_PP_IF(p(205, s), BOOST_PP_FOR_205, BOOST_PP_TUPLE_EAT_4)(o(205, s), p, o, m)
-# define BOOST_PP_FOR_205_I(s, p, o, m) BOOST_PP_IF(p(206, s), m, BOOST_PP_TUPLE_EAT_2)(206, s) BOOST_PP_IF(p(206, s), BOOST_PP_FOR_206, BOOST_PP_TUPLE_EAT_4)(o(206, s), p, o, m)
-# define BOOST_PP_FOR_206_I(s, p, o, m) BOOST_PP_IF(p(207, s), m, BOOST_PP_TUPLE_EAT_2)(207, s) BOOST_PP_IF(p(207, s), BOOST_PP_FOR_207, BOOST_PP_TUPLE_EAT_4)(o(207, s), p, o, m)
-# define BOOST_PP_FOR_207_I(s, p, o, m) BOOST_PP_IF(p(208, s), m, BOOST_PP_TUPLE_EAT_2)(208, s) BOOST_PP_IF(p(208, s), BOOST_PP_FOR_208, BOOST_PP_TUPLE_EAT_4)(o(208, s), p, o, m)
-# define BOOST_PP_FOR_208_I(s, p, o, m) BOOST_PP_IF(p(209, s), m, BOOST_PP_TUPLE_EAT_2)(209, s) BOOST_PP_IF(p(209, s), BOOST_PP_FOR_209, BOOST_PP_TUPLE_EAT_4)(o(209, s), p, o, m)
-# define BOOST_PP_FOR_209_I(s, p, o, m) BOOST_PP_IF(p(210, s), m, BOOST_PP_TUPLE_EAT_2)(210, s) BOOST_PP_IF(p(210, s), BOOST_PP_FOR_210, BOOST_PP_TUPLE_EAT_4)(o(210, s), p, o, m)
-# define BOOST_PP_FOR_210_I(s, p, o, m) BOOST_PP_IF(p(211, s), m, BOOST_PP_TUPLE_EAT_2)(211, s) BOOST_PP_IF(p(211, s), BOOST_PP_FOR_211, BOOST_PP_TUPLE_EAT_4)(o(211, s), p, o, m)
-# define BOOST_PP_FOR_211_I(s, p, o, m) BOOST_PP_IF(p(212, s), m, BOOST_PP_TUPLE_EAT_2)(212, s) BOOST_PP_IF(p(212, s), BOOST_PP_FOR_212, BOOST_PP_TUPLE_EAT_4)(o(212, s), p, o, m)
-# define BOOST_PP_FOR_212_I(s, p, o, m) BOOST_PP_IF(p(213, s), m, BOOST_PP_TUPLE_EAT_2)(213, s) BOOST_PP_IF(p(213, s), BOOST_PP_FOR_213, BOOST_PP_TUPLE_EAT_4)(o(213, s), p, o, m)
-# define BOOST_PP_FOR_213_I(s, p, o, m) BOOST_PP_IF(p(214, s), m, BOOST_PP_TUPLE_EAT_2)(214, s) BOOST_PP_IF(p(214, s), BOOST_PP_FOR_214, BOOST_PP_TUPLE_EAT_4)(o(214, s), p, o, m)
-# define BOOST_PP_FOR_214_I(s, p, o, m) BOOST_PP_IF(p(215, s), m, BOOST_PP_TUPLE_EAT_2)(215, s) BOOST_PP_IF(p(215, s), BOOST_PP_FOR_215, BOOST_PP_TUPLE_EAT_4)(o(215, s), p, o, m)
-# define BOOST_PP_FOR_215_I(s, p, o, m) BOOST_PP_IF(p(216, s), m, BOOST_PP_TUPLE_EAT_2)(216, s) BOOST_PP_IF(p(216, s), BOOST_PP_FOR_216, BOOST_PP_TUPLE_EAT_4)(o(216, s), p, o, m)
-# define BOOST_PP_FOR_216_I(s, p, o, m) BOOST_PP_IF(p(217, s), m, BOOST_PP_TUPLE_EAT_2)(217, s) BOOST_PP_IF(p(217, s), BOOST_PP_FOR_217, BOOST_PP_TUPLE_EAT_4)(o(217, s), p, o, m)
-# define BOOST_PP_FOR_217_I(s, p, o, m) BOOST_PP_IF(p(218, s), m, BOOST_PP_TUPLE_EAT_2)(218, s) BOOST_PP_IF(p(218, s), BOOST_PP_FOR_218, BOOST_PP_TUPLE_EAT_4)(o(218, s), p, o, m)
-# define BOOST_PP_FOR_218_I(s, p, o, m) BOOST_PP_IF(p(219, s), m, BOOST_PP_TUPLE_EAT_2)(219, s) BOOST_PP_IF(p(219, s), BOOST_PP_FOR_219, BOOST_PP_TUPLE_EAT_4)(o(219, s), p, o, m)
-# define BOOST_PP_FOR_219_I(s, p, o, m) BOOST_PP_IF(p(220, s), m, BOOST_PP_TUPLE_EAT_2)(220, s) BOOST_PP_IF(p(220, s), BOOST_PP_FOR_220, BOOST_PP_TUPLE_EAT_4)(o(220, s), p, o, m)
-# define BOOST_PP_FOR_220_I(s, p, o, m) BOOST_PP_IF(p(221, s), m, BOOST_PP_TUPLE_EAT_2)(221, s) BOOST_PP_IF(p(221, s), BOOST_PP_FOR_221, BOOST_PP_TUPLE_EAT_4)(o(221, s), p, o, m)
-# define BOOST_PP_FOR_221_I(s, p, o, m) BOOST_PP_IF(p(222, s), m, BOOST_PP_TUPLE_EAT_2)(222, s) BOOST_PP_IF(p(222, s), BOOST_PP_FOR_222, BOOST_PP_TUPLE_EAT_4)(o(222, s), p, o, m)
-# define BOOST_PP_FOR_222_I(s, p, o, m) BOOST_PP_IF(p(223, s), m, BOOST_PP_TUPLE_EAT_2)(223, s) BOOST_PP_IF(p(223, s), BOOST_PP_FOR_223, BOOST_PP_TUPLE_EAT_4)(o(223, s), p, o, m)
-# define BOOST_PP_FOR_223_I(s, p, o, m) BOOST_PP_IF(p(224, s), m, BOOST_PP_TUPLE_EAT_2)(224, s) BOOST_PP_IF(p(224, s), BOOST_PP_FOR_224, BOOST_PP_TUPLE_EAT_4)(o(224, s), p, o, m)
-# define BOOST_PP_FOR_224_I(s, p, o, m) BOOST_PP_IF(p(225, s), m, BOOST_PP_TUPLE_EAT_2)(225, s) BOOST_PP_IF(p(225, s), BOOST_PP_FOR_225, BOOST_PP_TUPLE_EAT_4)(o(225, s), p, o, m)
-# define BOOST_PP_FOR_225_I(s, p, o, m) BOOST_PP_IF(p(226, s), m, BOOST_PP_TUPLE_EAT_2)(226, s) BOOST_PP_IF(p(226, s), BOOST_PP_FOR_226, BOOST_PP_TUPLE_EAT_4)(o(226, s), p, o, m)
-# define BOOST_PP_FOR_226_I(s, p, o, m) BOOST_PP_IF(p(227, s), m, BOOST_PP_TUPLE_EAT_2)(227, s) BOOST_PP_IF(p(227, s), BOOST_PP_FOR_227, BOOST_PP_TUPLE_EAT_4)(o(227, s), p, o, m)
-# define BOOST_PP_FOR_227_I(s, p, o, m) BOOST_PP_IF(p(228, s), m, BOOST_PP_TUPLE_EAT_2)(228, s) BOOST_PP_IF(p(228, s), BOOST_PP_FOR_228, BOOST_PP_TUPLE_EAT_4)(o(228, s), p, o, m)
-# define BOOST_PP_FOR_228_I(s, p, o, m) BOOST_PP_IF(p(229, s), m, BOOST_PP_TUPLE_EAT_2)(229, s) BOOST_PP_IF(p(229, s), BOOST_PP_FOR_229, BOOST_PP_TUPLE_EAT_4)(o(229, s), p, o, m)
-# define BOOST_PP_FOR_229_I(s, p, o, m) BOOST_PP_IF(p(230, s), m, BOOST_PP_TUPLE_EAT_2)(230, s) BOOST_PP_IF(p(230, s), BOOST_PP_FOR_230, BOOST_PP_TUPLE_EAT_4)(o(230, s), p, o, m)
-# define BOOST_PP_FOR_230_I(s, p, o, m) BOOST_PP_IF(p(231, s), m, BOOST_PP_TUPLE_EAT_2)(231, s) BOOST_PP_IF(p(231, s), BOOST_PP_FOR_231, BOOST_PP_TUPLE_EAT_4)(o(231, s), p, o, m)
-# define BOOST_PP_FOR_231_I(s, p, o, m) BOOST_PP_IF(p(232, s), m, BOOST_PP_TUPLE_EAT_2)(232, s) BOOST_PP_IF(p(232, s), BOOST_PP_FOR_232, BOOST_PP_TUPLE_EAT_4)(o(232, s), p, o, m)
-# define BOOST_PP_FOR_232_I(s, p, o, m) BOOST_PP_IF(p(233, s), m, BOOST_PP_TUPLE_EAT_2)(233, s) BOOST_PP_IF(p(233, s), BOOST_PP_FOR_233, BOOST_PP_TUPLE_EAT_4)(o(233, s), p, o, m)
-# define BOOST_PP_FOR_233_I(s, p, o, m) BOOST_PP_IF(p(234, s), m, BOOST_PP_TUPLE_EAT_2)(234, s) BOOST_PP_IF(p(234, s), BOOST_PP_FOR_234, BOOST_PP_TUPLE_EAT_4)(o(234, s), p, o, m)
-# define BOOST_PP_FOR_234_I(s, p, o, m) BOOST_PP_IF(p(235, s), m, BOOST_PP_TUPLE_EAT_2)(235, s) BOOST_PP_IF(p(235, s), BOOST_PP_FOR_235, BOOST_PP_TUPLE_EAT_4)(o(235, s), p, o, m)
-# define BOOST_PP_FOR_235_I(s, p, o, m) BOOST_PP_IF(p(236, s), m, BOOST_PP_TUPLE_EAT_2)(236, s) BOOST_PP_IF(p(236, s), BOOST_PP_FOR_236, BOOST_PP_TUPLE_EAT_4)(o(236, s), p, o, m)
-# define BOOST_PP_FOR_236_I(s, p, o, m) BOOST_PP_IF(p(237, s), m, BOOST_PP_TUPLE_EAT_2)(237, s) BOOST_PP_IF(p(237, s), BOOST_PP_FOR_237, BOOST_PP_TUPLE_EAT_4)(o(237, s), p, o, m)
-# define BOOST_PP_FOR_237_I(s, p, o, m) BOOST_PP_IF(p(238, s), m, BOOST_PP_TUPLE_EAT_2)(238, s) BOOST_PP_IF(p(238, s), BOOST_PP_FOR_238, BOOST_PP_TUPLE_EAT_4)(o(238, s), p, o, m)
-# define BOOST_PP_FOR_238_I(s, p, o, m) BOOST_PP_IF(p(239, s), m, BOOST_PP_TUPLE_EAT_2)(239, s) BOOST_PP_IF(p(239, s), BOOST_PP_FOR_239, BOOST_PP_TUPLE_EAT_4)(o(239, s), p, o, m)
-# define BOOST_PP_FOR_239_I(s, p, o, m) BOOST_PP_IF(p(240, s), m, BOOST_PP_TUPLE_EAT_2)(240, s) BOOST_PP_IF(p(240, s), BOOST_PP_FOR_240, BOOST_PP_TUPLE_EAT_4)(o(240, s), p, o, m)
-# define BOOST_PP_FOR_240_I(s, p, o, m) BOOST_PP_IF(p(241, s), m, BOOST_PP_TUPLE_EAT_2)(241, s) BOOST_PP_IF(p(241, s), BOOST_PP_FOR_241, BOOST_PP_TUPLE_EAT_4)(o(241, s), p, o, m)
-# define BOOST_PP_FOR_241_I(s, p, o, m) BOOST_PP_IF(p(242, s), m, BOOST_PP_TUPLE_EAT_2)(242, s) BOOST_PP_IF(p(242, s), BOOST_PP_FOR_242, BOOST_PP_TUPLE_EAT_4)(o(242, s), p, o, m)
-# define BOOST_PP_FOR_242_I(s, p, o, m) BOOST_PP_IF(p(243, s), m, BOOST_PP_TUPLE_EAT_2)(243, s) BOOST_PP_IF(p(243, s), BOOST_PP_FOR_243, BOOST_PP_TUPLE_EAT_4)(o(243, s), p, o, m)
-# define BOOST_PP_FOR_243_I(s, p, o, m) BOOST_PP_IF(p(244, s), m, BOOST_PP_TUPLE_EAT_2)(244, s) BOOST_PP_IF(p(244, s), BOOST_PP_FOR_244, BOOST_PP_TUPLE_EAT_4)(o(244, s), p, o, m)
-# define BOOST_PP_FOR_244_I(s, p, o, m) BOOST_PP_IF(p(245, s), m, BOOST_PP_TUPLE_EAT_2)(245, s) BOOST_PP_IF(p(245, s), BOOST_PP_FOR_245, BOOST_PP_TUPLE_EAT_4)(o(245, s), p, o, m)
-# define BOOST_PP_FOR_245_I(s, p, o, m) BOOST_PP_IF(p(246, s), m, BOOST_PP_TUPLE_EAT_2)(246, s) BOOST_PP_IF(p(246, s), BOOST_PP_FOR_246, BOOST_PP_TUPLE_EAT_4)(o(246, s), p, o, m)
-# define BOOST_PP_FOR_246_I(s, p, o, m) BOOST_PP_IF(p(247, s), m, BOOST_PP_TUPLE_EAT_2)(247, s) BOOST_PP_IF(p(247, s), BOOST_PP_FOR_247, BOOST_PP_TUPLE_EAT_4)(o(247, s), p, o, m)
-# define BOOST_PP_FOR_247_I(s, p, o, m) BOOST_PP_IF(p(248, s), m, BOOST_PP_TUPLE_EAT_2)(248, s) BOOST_PP_IF(p(248, s), BOOST_PP_FOR_248, BOOST_PP_TUPLE_EAT_4)(o(248, s), p, o, m)
-# define BOOST_PP_FOR_248_I(s, p, o, m) BOOST_PP_IF(p(249, s), m, BOOST_PP_TUPLE_EAT_2)(249, s) BOOST_PP_IF(p(249, s), BOOST_PP_FOR_249, BOOST_PP_TUPLE_EAT_4)(o(249, s), p, o, m)
-# define BOOST_PP_FOR_249_I(s, p, o, m) BOOST_PP_IF(p(250, s), m, BOOST_PP_TUPLE_EAT_2)(250, s) BOOST_PP_IF(p(250, s), BOOST_PP_FOR_250, BOOST_PP_TUPLE_EAT_4)(o(250, s), p, o, m)
-# define BOOST_PP_FOR_250_I(s, p, o, m) BOOST_PP_IF(p(251, s), m, BOOST_PP_TUPLE_EAT_2)(251, s) BOOST_PP_IF(p(251, s), BOOST_PP_FOR_251, BOOST_PP_TUPLE_EAT_4)(o(251, s), p, o, m)
-# define BOOST_PP_FOR_251_I(s, p, o, m) BOOST_PP_IF(p(252, s), m, BOOST_PP_TUPLE_EAT_2)(252, s) BOOST_PP_IF(p(252, s), BOOST_PP_FOR_252, BOOST_PP_TUPLE_EAT_4)(o(252, s), p, o, m)
-# define BOOST_PP_FOR_252_I(s, p, o, m) BOOST_PP_IF(p(253, s), m, BOOST_PP_TUPLE_EAT_2)(253, s) BOOST_PP_IF(p(253, s), BOOST_PP_FOR_253, BOOST_PP_TUPLE_EAT_4)(o(253, s), p, o, m)
-# define BOOST_PP_FOR_253_I(s, p, o, m) BOOST_PP_IF(p(254, s), m, BOOST_PP_TUPLE_EAT_2)(254, s) BOOST_PP_IF(p(254, s), BOOST_PP_FOR_254, BOOST_PP_TUPLE_EAT_4)(o(254, s), p, o, m)
-# define BOOST_PP_FOR_254_I(s, p, o, m) BOOST_PP_IF(p(255, s), m, BOOST_PP_TUPLE_EAT_2)(255, s) BOOST_PP_IF(p(255, s), BOOST_PP_FOR_255, BOOST_PP_TUPLE_EAT_4)(o(255, s), p, o, m)
-# define BOOST_PP_FOR_255_I(s, p, o, m) BOOST_PP_IF(p(256, s), m, BOOST_PP_TUPLE_EAT_2)(256, s) BOOST_PP_IF(p(256, s), BOOST_PP_FOR_256, BOOST_PP_TUPLE_EAT_4)(o(256, s), p, o, m)
-# define BOOST_PP_FOR_256_I(s, p, o, m) BOOST_PP_IF(p(257, s), m, BOOST_PP_TUPLE_EAT_2)(257, s) BOOST_PP_IF(p(257, s), BOOST_PP_FOR_257, BOOST_PP_TUPLE_EAT_4)(o(257, s), p, o, m)
-#
-# endif
diff --git a/boost/preprocessor/repetition/detail/for.hpp b/boost/preprocessor/repetition/detail/for.hpp
deleted file mode 100644
index 2770f2c..0000000
--- a/boost/preprocessor/repetition/detail/for.hpp
+++ /dev/null
@@ -1,536 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * Distributed under the Boost Software License, Version 1.0. (See
-#  * accompanying file LICENSE_1_0.txt or copy at
-#  * http://www.boost.org/LICENSE_1_0.txt)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_REPETITION_DETAIL_FOR_HPP
-# define BOOST_PREPROCESSOR_REPETITION_DETAIL_FOR_HPP
-#
-# include <boost/preprocessor/control/expr_iif.hpp>
-# include <boost/preprocessor/control/iif.hpp>
-# include <boost/preprocessor/logical/bool.hpp>
-# include <boost/preprocessor/tuple/eat.hpp>
-#
-# define BOOST_PP_FOR_1(s, p, o, m) BOOST_PP_FOR_1_C(BOOST_PP_BOOL(p(2, s)), s, p, o, m)
-# define BOOST_PP_FOR_2(s, p, o, m) BOOST_PP_FOR_2_C(BOOST_PP_BOOL(p(3, s)), s, p, o, m)
-# define BOOST_PP_FOR_3(s, p, o, m) BOOST_PP_FOR_3_C(BOOST_PP_BOOL(p(4, s)), s, p, o, m)
-# define BOOST_PP_FOR_4(s, p, o, m) BOOST_PP_FOR_4_C(BOOST_PP_BOOL(p(5, s)), s, p, o, m)
-# define BOOST_PP_FOR_5(s, p, o, m) BOOST_PP_FOR_5_C(BOOST_PP_BOOL(p(6, s)), s, p, o, m)
-# define BOOST_PP_FOR_6(s, p, o, m) BOOST_PP_FOR_6_C(BOOST_PP_BOOL(p(7, s)), s, p, o, m)
-# define BOOST_PP_FOR_7(s, p, o, m) BOOST_PP_FOR_7_C(BOOST_PP_BOOL(p(8, s)), s, p, o, m)
-# define BOOST_PP_FOR_8(s, p, o, m) BOOST_PP_FOR_8_C(BOOST_PP_BOOL(p(9, s)), s, p, o, m)
-# define BOOST_PP_FOR_9(s, p, o, m) BOOST_PP_FOR_9_C(BOOST_PP_BOOL(p(10, s)), s, p, o, m)
-# define BOOST_PP_FOR_10(s, p, o, m) BOOST_PP_FOR_10_C(BOOST_PP_BOOL(p(11, s)), s, p, o, m)
-# define BOOST_PP_FOR_11(s, p, o, m) BOOST_PP_FOR_11_C(BOOST_PP_BOOL(p(12, s)), s, p, o, m)
-# define BOOST_PP_FOR_12(s, p, o, m) BOOST_PP_FOR_12_C(BOOST_PP_BOOL(p(13, s)), s, p, o, m)
-# define BOOST_PP_FOR_13(s, p, o, m) BOOST_PP_FOR_13_C(BOOST_PP_BOOL(p(14, s)), s, p, o, m)
-# define BOOST_PP_FOR_14(s, p, o, m) BOOST_PP_FOR_14_C(BOOST_PP_BOOL(p(15, s)), s, p, o, m)
-# define BOOST_PP_FOR_15(s, p, o, m) BOOST_PP_FOR_15_C(BOOST_PP_BOOL(p(16, s)), s, p, o, m)
-# define BOOST_PP_FOR_16(s, p, o, m) BOOST_PP_FOR_16_C(BOOST_PP_BOOL(p(17, s)), s, p, o, m)
-# define BOOST_PP_FOR_17(s, p, o, m) BOOST_PP_FOR_17_C(BOOST_PP_BOOL(p(18, s)), s, p, o, m)
-# define BOOST_PP_FOR_18(s, p, o, m) BOOST_PP_FOR_18_C(BOOST_PP_BOOL(p(19, s)), s, p, o, m)
-# define BOOST_PP_FOR_19(s, p, o, m) BOOST_PP_FOR_19_C(BOOST_PP_BOOL(p(20, s)), s, p, o, m)
-# define BOOST_PP_FOR_20(s, p, o, m) BOOST_PP_FOR_20_C(BOOST_PP_BOOL(p(21, s)), s, p, o, m)
-# define BOOST_PP_FOR_21(s, p, o, m) BOOST_PP_FOR_21_C(BOOST_PP_BOOL(p(22, s)), s, p, o, m)
-# define BOOST_PP_FOR_22(s, p, o, m) BOOST_PP_FOR_22_C(BOOST_PP_BOOL(p(23, s)), s, p, o, m)
-# define BOOST_PP_FOR_23(s, p, o, m) BOOST_PP_FOR_23_C(BOOST_PP_BOOL(p(24, s)), s, p, o, m)
-# define BOOST_PP_FOR_24(s, p, o, m) BOOST_PP_FOR_24_C(BOOST_PP_BOOL(p(25, s)), s, p, o, m)
-# define BOOST_PP_FOR_25(s, p, o, m) BOOST_PP_FOR_25_C(BOOST_PP_BOOL(p(26, s)), s, p, o, m)
-# define BOOST_PP_FOR_26(s, p, o, m) BOOST_PP_FOR_26_C(BOOST_PP_BOOL(p(27, s)), s, p, o, m)
-# define BOOST_PP_FOR_27(s, p, o, m) BOOST_PP_FOR_27_C(BOOST_PP_BOOL(p(28, s)), s, p, o, m)
-# define BOOST_PP_FOR_28(s, p, o, m) BOOST_PP_FOR_28_C(BOOST_PP_BOOL(p(29, s)), s, p, o, m)
-# define BOOST_PP_FOR_29(s, p, o, m) BOOST_PP_FOR_29_C(BOOST_PP_BOOL(p(30, s)), s, p, o, m)
-# define BOOST_PP_FOR_30(s, p, o, m) BOOST_PP_FOR_30_C(BOOST_PP_BOOL(p(31, s)), s, p, o, m)
-# define BOOST_PP_FOR_31(s, p, o, m) BOOST_PP_FOR_31_C(BOOST_PP_BOOL(p(32, s)), s, p, o, m)
-# define BOOST_PP_FOR_32(s, p, o, m) BOOST_PP_FOR_32_C(BOOST_PP_BOOL(p(33, s)), s, p, o, m)
-# define BOOST_PP_FOR_33(s, p, o, m) BOOST_PP_FOR_33_C(BOOST_PP_BOOL(p(34, s)), s, p, o, m)
-# define BOOST_PP_FOR_34(s, p, o, m) BOOST_PP_FOR_34_C(BOOST_PP_BOOL(p(35, s)), s, p, o, m)
-# define BOOST_PP_FOR_35(s, p, o, m) BOOST_PP_FOR_35_C(BOOST_PP_BOOL(p(36, s)), s, p, o, m)
-# define BOOST_PP_FOR_36(s, p, o, m) BOOST_PP_FOR_36_C(BOOST_PP_BOOL(p(37, s)), s, p, o, m)
-# define BOOST_PP_FOR_37(s, p, o, m) BOOST_PP_FOR_37_C(BOOST_PP_BOOL(p(38, s)), s, p, o, m)
-# define BOOST_PP_FOR_38(s, p, o, m) BOOST_PP_FOR_38_C(BOOST_PP_BOOL(p(39, s)), s, p, o, m)
-# define BOOST_PP_FOR_39(s, p, o, m) BOOST_PP_FOR_39_C(BOOST_PP_BOOL(p(40, s)), s, p, o, m)
-# define BOOST_PP_FOR_40(s, p, o, m) BOOST_PP_FOR_40_C(BOOST_PP_BOOL(p(41, s)), s, p, o, m)
-# define BOOST_PP_FOR_41(s, p, o, m) BOOST_PP_FOR_41_C(BOOST_PP_BOOL(p(42, s)), s, p, o, m)
-# define BOOST_PP_FOR_42(s, p, o, m) BOOST_PP_FOR_42_C(BOOST_PP_BOOL(p(43, s)), s, p, o, m)
-# define BOOST_PP_FOR_43(s, p, o, m) BOOST_PP_FOR_43_C(BOOST_PP_BOOL(p(44, s)), s, p, o, m)
-# define BOOST_PP_FOR_44(s, p, o, m) BOOST_PP_FOR_44_C(BOOST_PP_BOOL(p(45, s)), s, p, o, m)
-# define BOOST_PP_FOR_45(s, p, o, m) BOOST_PP_FOR_45_C(BOOST_PP_BOOL(p(46, s)), s, p, o, m)
-# define BOOST_PP_FOR_46(s, p, o, m) BOOST_PP_FOR_46_C(BOOST_PP_BOOL(p(47, s)), s, p, o, m)
-# define BOOST_PP_FOR_47(s, p, o, m) BOOST_PP_FOR_47_C(BOOST_PP_BOOL(p(48, s)), s, p, o, m)
-# define BOOST_PP_FOR_48(s, p, o, m) BOOST_PP_FOR_48_C(BOOST_PP_BOOL(p(49, s)), s, p, o, m)
-# define BOOST_PP_FOR_49(s, p, o, m) BOOST_PP_FOR_49_C(BOOST_PP_BOOL(p(50, s)), s, p, o, m)
-# define BOOST_PP_FOR_50(s, p, o, m) BOOST_PP_FOR_50_C(BOOST_PP_BOOL(p(51, s)), s, p, o, m)
-# define BOOST_PP_FOR_51(s, p, o, m) BOOST_PP_FOR_51_C(BOOST_PP_BOOL(p(52, s)), s, p, o, m)
-# define BOOST_PP_FOR_52(s, p, o, m) BOOST_PP_FOR_52_C(BOOST_PP_BOOL(p(53, s)), s, p, o, m)
-# define BOOST_PP_FOR_53(s, p, o, m) BOOST_PP_FOR_53_C(BOOST_PP_BOOL(p(54, s)), s, p, o, m)
-# define BOOST_PP_FOR_54(s, p, o, m) BOOST_PP_FOR_54_C(BOOST_PP_BOOL(p(55, s)), s, p, o, m)
-# define BOOST_PP_FOR_55(s, p, o, m) BOOST_PP_FOR_55_C(BOOST_PP_BOOL(p(56, s)), s, p, o, m)
-# define BOOST_PP_FOR_56(s, p, o, m) BOOST_PP_FOR_56_C(BOOST_PP_BOOL(p(57, s)), s, p, o, m)
-# define BOOST_PP_FOR_57(s, p, o, m) BOOST_PP_FOR_57_C(BOOST_PP_BOOL(p(58, s)), s, p, o, m)
-# define BOOST_PP_FOR_58(s, p, o, m) BOOST_PP_FOR_58_C(BOOST_PP_BOOL(p(59, s)), s, p, o, m)
-# define BOOST_PP_FOR_59(s, p, o, m) BOOST_PP_FOR_59_C(BOOST_PP_BOOL(p(60, s)), s, p, o, m)
-# define BOOST_PP_FOR_60(s, p, o, m) BOOST_PP_FOR_60_C(BOOST_PP_BOOL(p(61, s)), s, p, o, m)
-# define BOOST_PP_FOR_61(s, p, o, m) BOOST_PP_FOR_61_C(BOOST_PP_BOOL(p(62, s)), s, p, o, m)
-# define BOOST_PP_FOR_62(s, p, o, m) BOOST_PP_FOR_62_C(BOOST_PP_BOOL(p(63, s)), s, p, o, m)
-# define BOOST_PP_FOR_63(s, p, o, m) BOOST_PP_FOR_63_C(BOOST_PP_BOOL(p(64, s)), s, p, o, m)
-# define BOOST_PP_FOR_64(s, p, o, m) BOOST_PP_FOR_64_C(BOOST_PP_BOOL(p(65, s)), s, p, o, m)
-# define BOOST_PP_FOR_65(s, p, o, m) BOOST_PP_FOR_65_C(BOOST_PP_BOOL(p(66, s)), s, p, o, m)
-# define BOOST_PP_FOR_66(s, p, o, m) BOOST_PP_FOR_66_C(BOOST_PP_BOOL(p(67, s)), s, p, o, m)
-# define BOOST_PP_FOR_67(s, p, o, m) BOOST_PP_FOR_67_C(BOOST_PP_BOOL(p(68, s)), s, p, o, m)
-# define BOOST_PP_FOR_68(s, p, o, m) BOOST_PP_FOR_68_C(BOOST_PP_BOOL(p(69, s)), s, p, o, m)
-# define BOOST_PP_FOR_69(s, p, o, m) BOOST_PP_FOR_69_C(BOOST_PP_BOOL(p(70, s)), s, p, o, m)
-# define BOOST_PP_FOR_70(s, p, o, m) BOOST_PP_FOR_70_C(BOOST_PP_BOOL(p(71, s)), s, p, o, m)
-# define BOOST_PP_FOR_71(s, p, o, m) BOOST_PP_FOR_71_C(BOOST_PP_BOOL(p(72, s)), s, p, o, m)
-# define BOOST_PP_FOR_72(s, p, o, m) BOOST_PP_FOR_72_C(BOOST_PP_BOOL(p(73, s)), s, p, o, m)
-# define BOOST_PP_FOR_73(s, p, o, m) BOOST_PP_FOR_73_C(BOOST_PP_BOOL(p(74, s)), s, p, o, m)
-# define BOOST_PP_FOR_74(s, p, o, m) BOOST_PP_FOR_74_C(BOOST_PP_BOOL(p(75, s)), s, p, o, m)
-# define BOOST_PP_FOR_75(s, p, o, m) BOOST_PP_FOR_75_C(BOOST_PP_BOOL(p(76, s)), s, p, o, m)
-# define BOOST_PP_FOR_76(s, p, o, m) BOOST_PP_FOR_76_C(BOOST_PP_BOOL(p(77, s)), s, p, o, m)
-# define BOOST_PP_FOR_77(s, p, o, m) BOOST_PP_FOR_77_C(BOOST_PP_BOOL(p(78, s)), s, p, o, m)
-# define BOOST_PP_FOR_78(s, p, o, m) BOOST_PP_FOR_78_C(BOOST_PP_BOOL(p(79, s)), s, p, o, m)
-# define BOOST_PP_FOR_79(s, p, o, m) BOOST_PP_FOR_79_C(BOOST_PP_BOOL(p(80, s)), s, p, o, m)
-# define BOOST_PP_FOR_80(s, p, o, m) BOOST_PP_FOR_80_C(BOOST_PP_BOOL(p(81, s)), s, p, o, m)
-# define BOOST_PP_FOR_81(s, p, o, m) BOOST_PP_FOR_81_C(BOOST_PP_BOOL(p(82, s)), s, p, o, m)
-# define BOOST_PP_FOR_82(s, p, o, m) BOOST_PP_FOR_82_C(BOOST_PP_BOOL(p(83, s)), s, p, o, m)
-# define BOOST_PP_FOR_83(s, p, o, m) BOOST_PP_FOR_83_C(BOOST_PP_BOOL(p(84, s)), s, p, o, m)
-# define BOOST_PP_FOR_84(s, p, o, m) BOOST_PP_FOR_84_C(BOOST_PP_BOOL(p(85, s)), s, p, o, m)
-# define BOOST_PP_FOR_85(s, p, o, m) BOOST_PP_FOR_85_C(BOOST_PP_BOOL(p(86, s)), s, p, o, m)
-# define BOOST_PP_FOR_86(s, p, o, m) BOOST_PP_FOR_86_C(BOOST_PP_BOOL(p(87, s)), s, p, o, m)
-# define BOOST_PP_FOR_87(s, p, o, m) BOOST_PP_FOR_87_C(BOOST_PP_BOOL(p(88, s)), s, p, o, m)
-# define BOOST_PP_FOR_88(s, p, o, m) BOOST_PP_FOR_88_C(BOOST_PP_BOOL(p(89, s)), s, p, o, m)
-# define BOOST_PP_FOR_89(s, p, o, m) BOOST_PP_FOR_89_C(BOOST_PP_BOOL(p(90, s)), s, p, o, m)
-# define BOOST_PP_FOR_90(s, p, o, m) BOOST_PP_FOR_90_C(BOOST_PP_BOOL(p(91, s)), s, p, o, m)
-# define BOOST_PP_FOR_91(s, p, o, m) BOOST_PP_FOR_91_C(BOOST_PP_BOOL(p(92, s)), s, p, o, m)
-# define BOOST_PP_FOR_92(s, p, o, m) BOOST_PP_FOR_92_C(BOOST_PP_BOOL(p(93, s)), s, p, o, m)
-# define BOOST_PP_FOR_93(s, p, o, m) BOOST_PP_FOR_93_C(BOOST_PP_BOOL(p(94, s)), s, p, o, m)
-# define BOOST_PP_FOR_94(s, p, o, m) BOOST_PP_FOR_94_C(BOOST_PP_BOOL(p(95, s)), s, p, o, m)
-# define BOOST_PP_FOR_95(s, p, o, m) BOOST_PP_FOR_95_C(BOOST_PP_BOOL(p(96, s)), s, p, o, m)
-# define BOOST_PP_FOR_96(s, p, o, m) BOOST_PP_FOR_96_C(BOOST_PP_BOOL(p(97, s)), s, p, o, m)
-# define BOOST_PP_FOR_97(s, p, o, m) BOOST_PP_FOR_97_C(BOOST_PP_BOOL(p(98, s)), s, p, o, m)
-# define BOOST_PP_FOR_98(s, p, o, m) BOOST_PP_FOR_98_C(BOOST_PP_BOOL(p(99, s)), s, p, o, m)
-# define BOOST_PP_FOR_99(s, p, o, m) BOOST_PP_FOR_99_C(BOOST_PP_BOOL(p(100, s)), s, p, o, m)
-# define BOOST_PP_FOR_100(s, p, o, m) BOOST_PP_FOR_100_C(BOOST_PP_BOOL(p(101, s)), s, p, o, m)
-# define BOOST_PP_FOR_101(s, p, o, m) BOOST_PP_FOR_101_C(BOOST_PP_BOOL(p(102, s)), s, p, o, m)
-# define BOOST_PP_FOR_102(s, p, o, m) BOOST_PP_FOR_102_C(BOOST_PP_BOOL(p(103, s)), s, p, o, m)
-# define BOOST_PP_FOR_103(s, p, o, m) BOOST_PP_FOR_103_C(BOOST_PP_BOOL(p(104, s)), s, p, o, m)
-# define BOOST_PP_FOR_104(s, p, o, m) BOOST_PP_FOR_104_C(BOOST_PP_BOOL(p(105, s)), s, p, o, m)
-# define BOOST_PP_FOR_105(s, p, o, m) BOOST_PP_FOR_105_C(BOOST_PP_BOOL(p(106, s)), s, p, o, m)
-# define BOOST_PP_FOR_106(s, p, o, m) BOOST_PP_FOR_106_C(BOOST_PP_BOOL(p(107, s)), s, p, o, m)
-# define BOOST_PP_FOR_107(s, p, o, m) BOOST_PP_FOR_107_C(BOOST_PP_BOOL(p(108, s)), s, p, o, m)
-# define BOOST_PP_FOR_108(s, p, o, m) BOOST_PP_FOR_108_C(BOOST_PP_BOOL(p(109, s)), s, p, o, m)
-# define BOOST_PP_FOR_109(s, p, o, m) BOOST_PP_FOR_109_C(BOOST_PP_BOOL(p(110, s)), s, p, o, m)
-# define BOOST_PP_FOR_110(s, p, o, m) BOOST_PP_FOR_110_C(BOOST_PP_BOOL(p(111, s)), s, p, o, m)
-# define BOOST_PP_FOR_111(s, p, o, m) BOOST_PP_FOR_111_C(BOOST_PP_BOOL(p(112, s)), s, p, o, m)
-# define BOOST_PP_FOR_112(s, p, o, m) BOOST_PP_FOR_112_C(BOOST_PP_BOOL(p(113, s)), s, p, o, m)
-# define BOOST_PP_FOR_113(s, p, o, m) BOOST_PP_FOR_113_C(BOOST_PP_BOOL(p(114, s)), s, p, o, m)
-# define BOOST_PP_FOR_114(s, p, o, m) BOOST_PP_FOR_114_C(BOOST_PP_BOOL(p(115, s)), s, p, o, m)
-# define BOOST_PP_FOR_115(s, p, o, m) BOOST_PP_FOR_115_C(BOOST_PP_BOOL(p(116, s)), s, p, o, m)
-# define BOOST_PP_FOR_116(s, p, o, m) BOOST_PP_FOR_116_C(BOOST_PP_BOOL(p(117, s)), s, p, o, m)
-# define BOOST_PP_FOR_117(s, p, o, m) BOOST_PP_FOR_117_C(BOOST_PP_BOOL(p(118, s)), s, p, o, m)
-# define BOOST_PP_FOR_118(s, p, o, m) BOOST_PP_FOR_118_C(BOOST_PP_BOOL(p(119, s)), s, p, o, m)
-# define BOOST_PP_FOR_119(s, p, o, m) BOOST_PP_FOR_119_C(BOOST_PP_BOOL(p(120, s)), s, p, o, m)
-# define BOOST_PP_FOR_120(s, p, o, m) BOOST_PP_FOR_120_C(BOOST_PP_BOOL(p(121, s)), s, p, o, m)
-# define BOOST_PP_FOR_121(s, p, o, m) BOOST_PP_FOR_121_C(BOOST_PP_BOOL(p(122, s)), s, p, o, m)
-# define BOOST_PP_FOR_122(s, p, o, m) BOOST_PP_FOR_122_C(BOOST_PP_BOOL(p(123, s)), s, p, o, m)
-# define BOOST_PP_FOR_123(s, p, o, m) BOOST_PP_FOR_123_C(BOOST_PP_BOOL(p(124, s)), s, p, o, m)
-# define BOOST_PP_FOR_124(s, p, o, m) BOOST_PP_FOR_124_C(BOOST_PP_BOOL(p(125, s)), s, p, o, m)
-# define BOOST_PP_FOR_125(s, p, o, m) BOOST_PP_FOR_125_C(BOOST_PP_BOOL(p(126, s)), s, p, o, m)
-# define BOOST_PP_FOR_126(s, p, o, m) BOOST_PP_FOR_126_C(BOOST_PP_BOOL(p(127, s)), s, p, o, m)
-# define BOOST_PP_FOR_127(s, p, o, m) BOOST_PP_FOR_127_C(BOOST_PP_BOOL(p(128, s)), s, p, o, m)
-# define BOOST_PP_FOR_128(s, p, o, m) BOOST_PP_FOR_128_C(BOOST_PP_BOOL(p(129, s)), s, p, o, m)
-# define BOOST_PP_FOR_129(s, p, o, m) BOOST_PP_FOR_129_C(BOOST_PP_BOOL(p(130, s)), s, p, o, m)
-# define BOOST_PP_FOR_130(s, p, o, m) BOOST_PP_FOR_130_C(BOOST_PP_BOOL(p(131, s)), s, p, o, m)
-# define BOOST_PP_FOR_131(s, p, o, m) BOOST_PP_FOR_131_C(BOOST_PP_BOOL(p(132, s)), s, p, o, m)
-# define BOOST_PP_FOR_132(s, p, o, m) BOOST_PP_FOR_132_C(BOOST_PP_BOOL(p(133, s)), s, p, o, m)
-# define BOOST_PP_FOR_133(s, p, o, m) BOOST_PP_FOR_133_C(BOOST_PP_BOOL(p(134, s)), s, p, o, m)
-# define BOOST_PP_FOR_134(s, p, o, m) BOOST_PP_FOR_134_C(BOOST_PP_BOOL(p(135, s)), s, p, o, m)
-# define BOOST_PP_FOR_135(s, p, o, m) BOOST_PP_FOR_135_C(BOOST_PP_BOOL(p(136, s)), s, p, o, m)
-# define BOOST_PP_FOR_136(s, p, o, m) BOOST_PP_FOR_136_C(BOOST_PP_BOOL(p(137, s)), s, p, o, m)
-# define BOOST_PP_FOR_137(s, p, o, m) BOOST_PP_FOR_137_C(BOOST_PP_BOOL(p(138, s)), s, p, o, m)
-# define BOOST_PP_FOR_138(s, p, o, m) BOOST_PP_FOR_138_C(BOOST_PP_BOOL(p(139, s)), s, p, o, m)
-# define BOOST_PP_FOR_139(s, p, o, m) BOOST_PP_FOR_139_C(BOOST_PP_BOOL(p(140, s)), s, p, o, m)
-# define BOOST_PP_FOR_140(s, p, o, m) BOOST_PP_FOR_140_C(BOOST_PP_BOOL(p(141, s)), s, p, o, m)
-# define BOOST_PP_FOR_141(s, p, o, m) BOOST_PP_FOR_141_C(BOOST_PP_BOOL(p(142, s)), s, p, o, m)
-# define BOOST_PP_FOR_142(s, p, o, m) BOOST_PP_FOR_142_C(BOOST_PP_BOOL(p(143, s)), s, p, o, m)
-# define BOOST_PP_FOR_143(s, p, o, m) BOOST_PP_FOR_143_C(BOOST_PP_BOOL(p(144, s)), s, p, o, m)
-# define BOOST_PP_FOR_144(s, p, o, m) BOOST_PP_FOR_144_C(BOOST_PP_BOOL(p(145, s)), s, p, o, m)
-# define BOOST_PP_FOR_145(s, p, o, m) BOOST_PP_FOR_145_C(BOOST_PP_BOOL(p(146, s)), s, p, o, m)
-# define BOOST_PP_FOR_146(s, p, o, m) BOOST_PP_FOR_146_C(BOOST_PP_BOOL(p(147, s)), s, p, o, m)
-# define BOOST_PP_FOR_147(s, p, o, m) BOOST_PP_FOR_147_C(BOOST_PP_BOOL(p(148, s)), s, p, o, m)
-# define BOOST_PP_FOR_148(s, p, o, m) BOOST_PP_FOR_148_C(BOOST_PP_BOOL(p(149, s)), s, p, o, m)
-# define BOOST_PP_FOR_149(s, p, o, m) BOOST_PP_FOR_149_C(BOOST_PP_BOOL(p(150, s)), s, p, o, m)
-# define BOOST_PP_FOR_150(s, p, o, m) BOOST_PP_FOR_150_C(BOOST_PP_BOOL(p(151, s)), s, p, o, m)
-# define BOOST_PP_FOR_151(s, p, o, m) BOOST_PP_FOR_151_C(BOOST_PP_BOOL(p(152, s)), s, p, o, m)
-# define BOOST_PP_FOR_152(s, p, o, m) BOOST_PP_FOR_152_C(BOOST_PP_BOOL(p(153, s)), s, p, o, m)
-# define BOOST_PP_FOR_153(s, p, o, m) BOOST_PP_FOR_153_C(BOOST_PP_BOOL(p(154, s)), s, p, o, m)
-# define BOOST_PP_FOR_154(s, p, o, m) BOOST_PP_FOR_154_C(BOOST_PP_BOOL(p(155, s)), s, p, o, m)
-# define BOOST_PP_FOR_155(s, p, o, m) BOOST_PP_FOR_155_C(BOOST_PP_BOOL(p(156, s)), s, p, o, m)
-# define BOOST_PP_FOR_156(s, p, o, m) BOOST_PP_FOR_156_C(BOOST_PP_BOOL(p(157, s)), s, p, o, m)
-# define BOOST_PP_FOR_157(s, p, o, m) BOOST_PP_FOR_157_C(BOOST_PP_BOOL(p(158, s)), s, p, o, m)
-# define BOOST_PP_FOR_158(s, p, o, m) BOOST_PP_FOR_158_C(BOOST_PP_BOOL(p(159, s)), s, p, o, m)
-# define BOOST_PP_FOR_159(s, p, o, m) BOOST_PP_FOR_159_C(BOOST_PP_BOOL(p(160, s)), s, p, o, m)
-# define BOOST_PP_FOR_160(s, p, o, m) BOOST_PP_FOR_160_C(BOOST_PP_BOOL(p(161, s)), s, p, o, m)
-# define BOOST_PP_FOR_161(s, p, o, m) BOOST_PP_FOR_161_C(BOOST_PP_BOOL(p(162, s)), s, p, o, m)
-# define BOOST_PP_FOR_162(s, p, o, m) BOOST_PP_FOR_162_C(BOOST_PP_BOOL(p(163, s)), s, p, o, m)
-# define BOOST_PP_FOR_163(s, p, o, m) BOOST_PP_FOR_163_C(BOOST_PP_BOOL(p(164, s)), s, p, o, m)
-# define BOOST_PP_FOR_164(s, p, o, m) BOOST_PP_FOR_164_C(BOOST_PP_BOOL(p(165, s)), s, p, o, m)
-# define BOOST_PP_FOR_165(s, p, o, m) BOOST_PP_FOR_165_C(BOOST_PP_BOOL(p(166, s)), s, p, o, m)
-# define BOOST_PP_FOR_166(s, p, o, m) BOOST_PP_FOR_166_C(BOOST_PP_BOOL(p(167, s)), s, p, o, m)
-# define BOOST_PP_FOR_167(s, p, o, m) BOOST_PP_FOR_167_C(BOOST_PP_BOOL(p(168, s)), s, p, o, m)
-# define BOOST_PP_FOR_168(s, p, o, m) BOOST_PP_FOR_168_C(BOOST_PP_BOOL(p(169, s)), s, p, o, m)
-# define BOOST_PP_FOR_169(s, p, o, m) BOOST_PP_FOR_169_C(BOOST_PP_BOOL(p(170, s)), s, p, o, m)
-# define BOOST_PP_FOR_170(s, p, o, m) BOOST_PP_FOR_170_C(BOOST_PP_BOOL(p(171, s)), s, p, o, m)
-# define BOOST_PP_FOR_171(s, p, o, m) BOOST_PP_FOR_171_C(BOOST_PP_BOOL(p(172, s)), s, p, o, m)
-# define BOOST_PP_FOR_172(s, p, o, m) BOOST_PP_FOR_172_C(BOOST_PP_BOOL(p(173, s)), s, p, o, m)
-# define BOOST_PP_FOR_173(s, p, o, m) BOOST_PP_FOR_173_C(BOOST_PP_BOOL(p(174, s)), s, p, o, m)
-# define BOOST_PP_FOR_174(s, p, o, m) BOOST_PP_FOR_174_C(BOOST_PP_BOOL(p(175, s)), s, p, o, m)
-# define BOOST_PP_FOR_175(s, p, o, m) BOOST_PP_FOR_175_C(BOOST_PP_BOOL(p(176, s)), s, p, o, m)
-# define BOOST_PP_FOR_176(s, p, o, m) BOOST_PP_FOR_176_C(BOOST_PP_BOOL(p(177, s)), s, p, o, m)
-# define BOOST_PP_FOR_177(s, p, o, m) BOOST_PP_FOR_177_C(BOOST_PP_BOOL(p(178, s)), s, p, o, m)
-# define BOOST_PP_FOR_178(s, p, o, m) BOOST_PP_FOR_178_C(BOOST_PP_BOOL(p(179, s)), s, p, o, m)
-# define BOOST_PP_FOR_179(s, p, o, m) BOOST_PP_FOR_179_C(BOOST_PP_BOOL(p(180, s)), s, p, o, m)
-# define BOOST_PP_FOR_180(s, p, o, m) BOOST_PP_FOR_180_C(BOOST_PP_BOOL(p(181, s)), s, p, o, m)
-# define BOOST_PP_FOR_181(s, p, o, m) BOOST_PP_FOR_181_C(BOOST_PP_BOOL(p(182, s)), s, p, o, m)
-# define BOOST_PP_FOR_182(s, p, o, m) BOOST_PP_FOR_182_C(BOOST_PP_BOOL(p(183, s)), s, p, o, m)
-# define BOOST_PP_FOR_183(s, p, o, m) BOOST_PP_FOR_183_C(BOOST_PP_BOOL(p(184, s)), s, p, o, m)
-# define BOOST_PP_FOR_184(s, p, o, m) BOOST_PP_FOR_184_C(BOOST_PP_BOOL(p(185, s)), s, p, o, m)
-# define BOOST_PP_FOR_185(s, p, o, m) BOOST_PP_FOR_185_C(BOOST_PP_BOOL(p(186, s)), s, p, o, m)
-# define BOOST_PP_FOR_186(s, p, o, m) BOOST_PP_FOR_186_C(BOOST_PP_BOOL(p(187, s)), s, p, o, m)
-# define BOOST_PP_FOR_187(s, p, o, m) BOOST_PP_FOR_187_C(BOOST_PP_BOOL(p(188, s)), s, p, o, m)
-# define BOOST_PP_FOR_188(s, p, o, m) BOOST_PP_FOR_188_C(BOOST_PP_BOOL(p(189, s)), s, p, o, m)
-# define BOOST_PP_FOR_189(s, p, o, m) BOOST_PP_FOR_189_C(BOOST_PP_BOOL(p(190, s)), s, p, o, m)
-# define BOOST_PP_FOR_190(s, p, o, m) BOOST_PP_FOR_190_C(BOOST_PP_BOOL(p(191, s)), s, p, o, m)
-# define BOOST_PP_FOR_191(s, p, o, m) BOOST_PP_FOR_191_C(BOOST_PP_BOOL(p(192, s)), s, p, o, m)
-# define BOOST_PP_FOR_192(s, p, o, m) BOOST_PP_FOR_192_C(BOOST_PP_BOOL(p(193, s)), s, p, o, m)
-# define BOOST_PP_FOR_193(s, p, o, m) BOOST_PP_FOR_193_C(BOOST_PP_BOOL(p(194, s)), s, p, o, m)
-# define BOOST_PP_FOR_194(s, p, o, m) BOOST_PP_FOR_194_C(BOOST_PP_BOOL(p(195, s)), s, p, o, m)
-# define BOOST_PP_FOR_195(s, p, o, m) BOOST_PP_FOR_195_C(BOOST_PP_BOOL(p(196, s)), s, p, o, m)
-# define BOOST_PP_FOR_196(s, p, o, m) BOOST_PP_FOR_196_C(BOOST_PP_BOOL(p(197, s)), s, p, o, m)
-# define BOOST_PP_FOR_197(s, p, o, m) BOOST_PP_FOR_197_C(BOOST_PP_BOOL(p(198, s)), s, p, o, m)
-# define BOOST_PP_FOR_198(s, p, o, m) BOOST_PP_FOR_198_C(BOOST_PP_BOOL(p(199, s)), s, p, o, m)
-# define BOOST_PP_FOR_199(s, p, o, m) BOOST_PP_FOR_199_C(BOOST_PP_BOOL(p(200, s)), s, p, o, m)
-# define BOOST_PP_FOR_200(s, p, o, m) BOOST_PP_FOR_200_C(BOOST_PP_BOOL(p(201, s)), s, p, o, m)
-# define BOOST_PP_FOR_201(s, p, o, m) BOOST_PP_FOR_201_C(BOOST_PP_BOOL(p(202, s)), s, p, o, m)
-# define BOOST_PP_FOR_202(s, p, o, m) BOOST_PP_FOR_202_C(BOOST_PP_BOOL(p(203, s)), s, p, o, m)
-# define BOOST_PP_FOR_203(s, p, o, m) BOOST_PP_FOR_203_C(BOOST_PP_BOOL(p(204, s)), s, p, o, m)
-# define BOOST_PP_FOR_204(s, p, o, m) BOOST_PP_FOR_204_C(BOOST_PP_BOOL(p(205, s)), s, p, o, m)
-# define BOOST_PP_FOR_205(s, p, o, m) BOOST_PP_FOR_205_C(BOOST_PP_BOOL(p(206, s)), s, p, o, m)
-# define BOOST_PP_FOR_206(s, p, o, m) BOOST_PP_FOR_206_C(BOOST_PP_BOOL(p(207, s)), s, p, o, m)
-# define BOOST_PP_FOR_207(s, p, o, m) BOOST_PP_FOR_207_C(BOOST_PP_BOOL(p(208, s)), s, p, o, m)
-# define BOOST_PP_FOR_208(s, p, o, m) BOOST_PP_FOR_208_C(BOOST_PP_BOOL(p(209, s)), s, p, o, m)
-# define BOOST_PP_FOR_209(s, p, o, m) BOOST_PP_FOR_209_C(BOOST_PP_BOOL(p(210, s)), s, p, o, m)
-# define BOOST_PP_FOR_210(s, p, o, m) BOOST_PP_FOR_210_C(BOOST_PP_BOOL(p(211, s)), s, p, o, m)
-# define BOOST_PP_FOR_211(s, p, o, m) BOOST_PP_FOR_211_C(BOOST_PP_BOOL(p(212, s)), s, p, o, m)
-# define BOOST_PP_FOR_212(s, p, o, m) BOOST_PP_FOR_212_C(BOOST_PP_BOOL(p(213, s)), s, p, o, m)
-# define BOOST_PP_FOR_213(s, p, o, m) BOOST_PP_FOR_213_C(BOOST_PP_BOOL(p(214, s)), s, p, o, m)
-# define BOOST_PP_FOR_214(s, p, o, m) BOOST_PP_FOR_214_C(BOOST_PP_BOOL(p(215, s)), s, p, o, m)
-# define BOOST_PP_FOR_215(s, p, o, m) BOOST_PP_FOR_215_C(BOOST_PP_BOOL(p(216, s)), s, p, o, m)
-# define BOOST_PP_FOR_216(s, p, o, m) BOOST_PP_FOR_216_C(BOOST_PP_BOOL(p(217, s)), s, p, o, m)
-# define BOOST_PP_FOR_217(s, p, o, m) BOOST_PP_FOR_217_C(BOOST_PP_BOOL(p(218, s)), s, p, o, m)
-# define BOOST_PP_FOR_218(s, p, o, m) BOOST_PP_FOR_218_C(BOOST_PP_BOOL(p(219, s)), s, p, o, m)
-# define BOOST_PP_FOR_219(s, p, o, m) BOOST_PP_FOR_219_C(BOOST_PP_BOOL(p(220, s)), s, p, o, m)
-# define BOOST_PP_FOR_220(s, p, o, m) BOOST_PP_FOR_220_C(BOOST_PP_BOOL(p(221, s)), s, p, o, m)
-# define BOOST_PP_FOR_221(s, p, o, m) BOOST_PP_FOR_221_C(BOOST_PP_BOOL(p(222, s)), s, p, o, m)
-# define BOOST_PP_FOR_222(s, p, o, m) BOOST_PP_FOR_222_C(BOOST_PP_BOOL(p(223, s)), s, p, o, m)
-# define BOOST_PP_FOR_223(s, p, o, m) BOOST_PP_FOR_223_C(BOOST_PP_BOOL(p(224, s)), s, p, o, m)
-# define BOOST_PP_FOR_224(s, p, o, m) BOOST_PP_FOR_224_C(BOOST_PP_BOOL(p(225, s)), s, p, o, m)
-# define BOOST_PP_FOR_225(s, p, o, m) BOOST_PP_FOR_225_C(BOOST_PP_BOOL(p(226, s)), s, p, o, m)
-# define BOOST_PP_FOR_226(s, p, o, m) BOOST_PP_FOR_226_C(BOOST_PP_BOOL(p(227, s)), s, p, o, m)
-# define BOOST_PP_FOR_227(s, p, o, m) BOOST_PP_FOR_227_C(BOOST_PP_BOOL(p(228, s)), s, p, o, m)
-# define BOOST_PP_FOR_228(s, p, o, m) BOOST_PP_FOR_228_C(BOOST_PP_BOOL(p(229, s)), s, p, o, m)
-# define BOOST_PP_FOR_229(s, p, o, m) BOOST_PP_FOR_229_C(BOOST_PP_BOOL(p(230, s)), s, p, o, m)
-# define BOOST_PP_FOR_230(s, p, o, m) BOOST_PP_FOR_230_C(BOOST_PP_BOOL(p(231, s)), s, p, o, m)
-# define BOOST_PP_FOR_231(s, p, o, m) BOOST_PP_FOR_231_C(BOOST_PP_BOOL(p(232, s)), s, p, o, m)
-# define BOOST_PP_FOR_232(s, p, o, m) BOOST_PP_FOR_232_C(BOOST_PP_BOOL(p(233, s)), s, p, o, m)
-# define BOOST_PP_FOR_233(s, p, o, m) BOOST_PP_FOR_233_C(BOOST_PP_BOOL(p(234, s)), s, p, o, m)
-# define BOOST_PP_FOR_234(s, p, o, m) BOOST_PP_FOR_234_C(BOOST_PP_BOOL(p(235, s)), s, p, o, m)
-# define BOOST_PP_FOR_235(s, p, o, m) BOOST_PP_FOR_235_C(BOOST_PP_BOOL(p(236, s)), s, p, o, m)
-# define BOOST_PP_FOR_236(s, p, o, m) BOOST_PP_FOR_236_C(BOOST_PP_BOOL(p(237, s)), s, p, o, m)
-# define BOOST_PP_FOR_237(s, p, o, m) BOOST_PP_FOR_237_C(BOOST_PP_BOOL(p(238, s)), s, p, o, m)
-# define BOOST_PP_FOR_238(s, p, o, m) BOOST_PP_FOR_238_C(BOOST_PP_BOOL(p(239, s)), s, p, o, m)
-# define BOOST_PP_FOR_239(s, p, o, m) BOOST_PP_FOR_239_C(BOOST_PP_BOOL(p(240, s)), s, p, o, m)
-# define BOOST_PP_FOR_240(s, p, o, m) BOOST_PP_FOR_240_C(BOOST_PP_BOOL(p(241, s)), s, p, o, m)
-# define BOOST_PP_FOR_241(s, p, o, m) BOOST_PP_FOR_241_C(BOOST_PP_BOOL(p(242, s)), s, p, o, m)
-# define BOOST_PP_FOR_242(s, p, o, m) BOOST_PP_FOR_242_C(BOOST_PP_BOOL(p(243, s)), s, p, o, m)
-# define BOOST_PP_FOR_243(s, p, o, m) BOOST_PP_FOR_243_C(BOOST_PP_BOOL(p(244, s)), s, p, o, m)
-# define BOOST_PP_FOR_244(s, p, o, m) BOOST_PP_FOR_244_C(BOOST_PP_BOOL(p(245, s)), s, p, o, m)
-# define BOOST_PP_FOR_245(s, p, o, m) BOOST_PP_FOR_245_C(BOOST_PP_BOOL(p(246, s)), s, p, o, m)
-# define BOOST_PP_FOR_246(s, p, o, m) BOOST_PP_FOR_246_C(BOOST_PP_BOOL(p(247, s)), s, p, o, m)
-# define BOOST_PP_FOR_247(s, p, o, m) BOOST_PP_FOR_247_C(BOOST_PP_BOOL(p(248, s)), s, p, o, m)
-# define BOOST_PP_FOR_248(s, p, o, m) BOOST_PP_FOR_248_C(BOOST_PP_BOOL(p(249, s)), s, p, o, m)
-# define BOOST_PP_FOR_249(s, p, o, m) BOOST_PP_FOR_249_C(BOOST_PP_BOOL(p(250, s)), s, p, o, m)
-# define BOOST_PP_FOR_250(s, p, o, m) BOOST_PP_FOR_250_C(BOOST_PP_BOOL(p(251, s)), s, p, o, m)
-# define BOOST_PP_FOR_251(s, p, o, m) BOOST_PP_FOR_251_C(BOOST_PP_BOOL(p(252, s)), s, p, o, m)
-# define BOOST_PP_FOR_252(s, p, o, m) BOOST_PP_FOR_252_C(BOOST_PP_BOOL(p(253, s)), s, p, o, m)
-# define BOOST_PP_FOR_253(s, p, o, m) BOOST_PP_FOR_253_C(BOOST_PP_BOOL(p(254, s)), s, p, o, m)
-# define BOOST_PP_FOR_254(s, p, o, m) BOOST_PP_FOR_254_C(BOOST_PP_BOOL(p(255, s)), s, p, o, m)
-# define BOOST_PP_FOR_255(s, p, o, m) BOOST_PP_FOR_255_C(BOOST_PP_BOOL(p(256, s)), s, p, o, m)
-# define BOOST_PP_FOR_256(s, p, o, m) BOOST_PP_FOR_256_C(BOOST_PP_BOOL(p(257, s)), s, p, o, m)
-#
-# define BOOST_PP_FOR_1_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(2, s) BOOST_PP_IIF(c, BOOST_PP_FOR_2, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(2, s), p, o, m)
-# define BOOST_PP_FOR_2_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(3, s) BOOST_PP_IIF(c, BOOST_PP_FOR_3, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(3, s), p, o, m)
-# define BOOST_PP_FOR_3_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(4, s) BOOST_PP_IIF(c, BOOST_PP_FOR_4, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(4, s), p, o, m)
-# define BOOST_PP_FOR_4_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(5, s) BOOST_PP_IIF(c, BOOST_PP_FOR_5, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(5, s), p, o, m)
-# define BOOST_PP_FOR_5_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(6, s) BOOST_PP_IIF(c, BOOST_PP_FOR_6, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(6, s), p, o, m)
-# define BOOST_PP_FOR_6_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(7, s) BOOST_PP_IIF(c, BOOST_PP_FOR_7, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(7, s), p, o, m)
-# define BOOST_PP_FOR_7_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(8, s) BOOST_PP_IIF(c, BOOST_PP_FOR_8, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(8, s), p, o, m)
-# define BOOST_PP_FOR_8_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(9, s) BOOST_PP_IIF(c, BOOST_PP_FOR_9, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(9, s), p, o, m)
-# define BOOST_PP_FOR_9_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(10, s) BOOST_PP_IIF(c, BOOST_PP_FOR_10, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(10, s), p, o, m)
-# define BOOST_PP_FOR_10_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(11, s) BOOST_PP_IIF(c, BOOST_PP_FOR_11, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(11, s), p, o, m)
-# define BOOST_PP_FOR_11_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(12, s) BOOST_PP_IIF(c, BOOST_PP_FOR_12, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(12, s), p, o, m)
-# define BOOST_PP_FOR_12_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(13, s) BOOST_PP_IIF(c, BOOST_PP_FOR_13, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(13, s), p, o, m)
-# define BOOST_PP_FOR_13_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(14, s) BOOST_PP_IIF(c, BOOST_PP_FOR_14, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(14, s), p, o, m)
-# define BOOST_PP_FOR_14_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(15, s) BOOST_PP_IIF(c, BOOST_PP_FOR_15, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(15, s), p, o, m)
-# define BOOST_PP_FOR_15_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(16, s) BOOST_PP_IIF(c, BOOST_PP_FOR_16, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(16, s), p, o, m)
-# define BOOST_PP_FOR_16_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(17, s) BOOST_PP_IIF(c, BOOST_PP_FOR_17, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(17, s), p, o, m)
-# define BOOST_PP_FOR_17_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(18, s) BOOST_PP_IIF(c, BOOST_PP_FOR_18, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(18, s), p, o, m)
-# define BOOST_PP_FOR_18_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(19, s) BOOST_PP_IIF(c, BOOST_PP_FOR_19, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(19, s), p, o, m)
-# define BOOST_PP_FOR_19_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(20, s) BOOST_PP_IIF(c, BOOST_PP_FOR_20, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(20, s), p, o, m)
-# define BOOST_PP_FOR_20_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(21, s) BOOST_PP_IIF(c, BOOST_PP_FOR_21, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(21, s), p, o, m)
-# define BOOST_PP_FOR_21_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(22, s) BOOST_PP_IIF(c, BOOST_PP_FOR_22, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(22, s), p, o, m)
-# define BOOST_PP_FOR_22_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(23, s) BOOST_PP_IIF(c, BOOST_PP_FOR_23, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(23, s), p, o, m)
-# define BOOST_PP_FOR_23_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(24, s) BOOST_PP_IIF(c, BOOST_PP_FOR_24, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(24, s), p, o, m)
-# define BOOST_PP_FOR_24_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(25, s) BOOST_PP_IIF(c, BOOST_PP_FOR_25, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(25, s), p, o, m)
-# define BOOST_PP_FOR_25_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(26, s) BOOST_PP_IIF(c, BOOST_PP_FOR_26, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(26, s), p, o, m)
-# define BOOST_PP_FOR_26_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(27, s) BOOST_PP_IIF(c, BOOST_PP_FOR_27, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(27, s), p, o, m)
-# define BOOST_PP_FOR_27_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(28, s) BOOST_PP_IIF(c, BOOST_PP_FOR_28, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(28, s), p, o, m)
-# define BOOST_PP_FOR_28_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(29, s) BOOST_PP_IIF(c, BOOST_PP_FOR_29, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(29, s), p, o, m)
-# define BOOST_PP_FOR_29_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(30, s) BOOST_PP_IIF(c, BOOST_PP_FOR_30, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(30, s), p, o, m)
-# define BOOST_PP_FOR_30_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(31, s) BOOST_PP_IIF(c, BOOST_PP_FOR_31, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(31, s), p, o, m)
-# define BOOST_PP_FOR_31_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(32, s) BOOST_PP_IIF(c, BOOST_PP_FOR_32, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(32, s), p, o, m)
-# define BOOST_PP_FOR_32_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(33, s) BOOST_PP_IIF(c, BOOST_PP_FOR_33, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(33, s), p, o, m)
-# define BOOST_PP_FOR_33_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(34, s) BOOST_PP_IIF(c, BOOST_PP_FOR_34, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(34, s), p, o, m)
-# define BOOST_PP_FOR_34_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(35, s) BOOST_PP_IIF(c, BOOST_PP_FOR_35, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(35, s), p, o, m)
-# define BOOST_PP_FOR_35_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(36, s) BOOST_PP_IIF(c, BOOST_PP_FOR_36, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(36, s), p, o, m)
-# define BOOST_PP_FOR_36_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(37, s) BOOST_PP_IIF(c, BOOST_PP_FOR_37, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(37, s), p, o, m)
-# define BOOST_PP_FOR_37_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(38, s) BOOST_PP_IIF(c, BOOST_PP_FOR_38, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(38, s), p, o, m)
-# define BOOST_PP_FOR_38_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(39, s) BOOST_PP_IIF(c, BOOST_PP_FOR_39, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(39, s), p, o, m)
-# define BOOST_PP_FOR_39_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(40, s) BOOST_PP_IIF(c, BOOST_PP_FOR_40, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(40, s), p, o, m)
-# define BOOST_PP_FOR_40_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(41, s) BOOST_PP_IIF(c, BOOST_PP_FOR_41, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(41, s), p, o, m)
-# define BOOST_PP_FOR_41_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(42, s) BOOST_PP_IIF(c, BOOST_PP_FOR_42, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(42, s), p, o, m)
-# define BOOST_PP_FOR_42_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(43, s) BOOST_PP_IIF(c, BOOST_PP_FOR_43, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(43, s), p, o, m)
-# define BOOST_PP_FOR_43_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(44, s) BOOST_PP_IIF(c, BOOST_PP_FOR_44, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(44, s), p, o, m)
-# define BOOST_PP_FOR_44_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(45, s) BOOST_PP_IIF(c, BOOST_PP_FOR_45, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(45, s), p, o, m)
-# define BOOST_PP_FOR_45_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(46, s) BOOST_PP_IIF(c, BOOST_PP_FOR_46, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(46, s), p, o, m)
-# define BOOST_PP_FOR_46_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(47, s) BOOST_PP_IIF(c, BOOST_PP_FOR_47, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(47, s), p, o, m)
-# define BOOST_PP_FOR_47_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(48, s) BOOST_PP_IIF(c, BOOST_PP_FOR_48, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(48, s), p, o, m)
-# define BOOST_PP_FOR_48_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(49, s) BOOST_PP_IIF(c, BOOST_PP_FOR_49, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(49, s), p, o, m)
-# define BOOST_PP_FOR_49_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(50, s) BOOST_PP_IIF(c, BOOST_PP_FOR_50, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(50, s), p, o, m)
-# define BOOST_PP_FOR_50_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(51, s) BOOST_PP_IIF(c, BOOST_PP_FOR_51, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(51, s), p, o, m)
-# define BOOST_PP_FOR_51_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(52, s) BOOST_PP_IIF(c, BOOST_PP_FOR_52, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(52, s), p, o, m)
-# define BOOST_PP_FOR_52_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(53, s) BOOST_PP_IIF(c, BOOST_PP_FOR_53, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(53, s), p, o, m)
-# define BOOST_PP_FOR_53_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(54, s) BOOST_PP_IIF(c, BOOST_PP_FOR_54, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(54, s), p, o, m)
-# define BOOST_PP_FOR_54_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(55, s) BOOST_PP_IIF(c, BOOST_PP_FOR_55, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(55, s), p, o, m)
-# define BOOST_PP_FOR_55_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(56, s) BOOST_PP_IIF(c, BOOST_PP_FOR_56, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(56, s), p, o, m)
-# define BOOST_PP_FOR_56_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(57, s) BOOST_PP_IIF(c, BOOST_PP_FOR_57, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(57, s), p, o, m)
-# define BOOST_PP_FOR_57_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(58, s) BOOST_PP_IIF(c, BOOST_PP_FOR_58, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(58, s), p, o, m)
-# define BOOST_PP_FOR_58_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(59, s) BOOST_PP_IIF(c, BOOST_PP_FOR_59, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(59, s), p, o, m)
-# define BOOST_PP_FOR_59_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(60, s) BOOST_PP_IIF(c, BOOST_PP_FOR_60, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(60, s), p, o, m)
-# define BOOST_PP_FOR_60_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(61, s) BOOST_PP_IIF(c, BOOST_PP_FOR_61, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(61, s), p, o, m)
-# define BOOST_PP_FOR_61_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(62, s) BOOST_PP_IIF(c, BOOST_PP_FOR_62, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(62, s), p, o, m)
-# define BOOST_PP_FOR_62_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(63, s) BOOST_PP_IIF(c, BOOST_PP_FOR_63, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(63, s), p, o, m)
-# define BOOST_PP_FOR_63_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(64, s) BOOST_PP_IIF(c, BOOST_PP_FOR_64, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(64, s), p, o, m)
-# define BOOST_PP_FOR_64_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(65, s) BOOST_PP_IIF(c, BOOST_PP_FOR_65, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(65, s), p, o, m)
-# define BOOST_PP_FOR_65_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(66, s) BOOST_PP_IIF(c, BOOST_PP_FOR_66, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(66, s), p, o, m)
-# define BOOST_PP_FOR_66_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(67, s) BOOST_PP_IIF(c, BOOST_PP_FOR_67, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(67, s), p, o, m)
-# define BOOST_PP_FOR_67_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(68, s) BOOST_PP_IIF(c, BOOST_PP_FOR_68, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(68, s), p, o, m)
-# define BOOST_PP_FOR_68_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(69, s) BOOST_PP_IIF(c, BOOST_PP_FOR_69, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(69, s), p, o, m)
-# define BOOST_PP_FOR_69_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(70, s) BOOST_PP_IIF(c, BOOST_PP_FOR_70, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(70, s), p, o, m)
-# define BOOST_PP_FOR_70_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(71, s) BOOST_PP_IIF(c, BOOST_PP_FOR_71, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(71, s), p, o, m)
-# define BOOST_PP_FOR_71_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(72, s) BOOST_PP_IIF(c, BOOST_PP_FOR_72, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(72, s), p, o, m)
-# define BOOST_PP_FOR_72_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(73, s) BOOST_PP_IIF(c, BOOST_PP_FOR_73, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(73, s), p, o, m)
-# define BOOST_PP_FOR_73_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(74, s) BOOST_PP_IIF(c, BOOST_PP_FOR_74, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(74, s), p, o, m)
-# define BOOST_PP_FOR_74_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(75, s) BOOST_PP_IIF(c, BOOST_PP_FOR_75, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(75, s), p, o, m)
-# define BOOST_PP_FOR_75_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(76, s) BOOST_PP_IIF(c, BOOST_PP_FOR_76, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(76, s), p, o, m)
-# define BOOST_PP_FOR_76_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(77, s) BOOST_PP_IIF(c, BOOST_PP_FOR_77, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(77, s), p, o, m)
-# define BOOST_PP_FOR_77_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(78, s) BOOST_PP_IIF(c, BOOST_PP_FOR_78, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(78, s), p, o, m)
-# define BOOST_PP_FOR_78_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(79, s) BOOST_PP_IIF(c, BOOST_PP_FOR_79, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(79, s), p, o, m)
-# define BOOST_PP_FOR_79_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(80, s) BOOST_PP_IIF(c, BOOST_PP_FOR_80, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(80, s), p, o, m)
-# define BOOST_PP_FOR_80_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(81, s) BOOST_PP_IIF(c, BOOST_PP_FOR_81, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(81, s), p, o, m)
-# define BOOST_PP_FOR_81_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(82, s) BOOST_PP_IIF(c, BOOST_PP_FOR_82, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(82, s), p, o, m)
-# define BOOST_PP_FOR_82_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(83, s) BOOST_PP_IIF(c, BOOST_PP_FOR_83, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(83, s), p, o, m)
-# define BOOST_PP_FOR_83_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(84, s) BOOST_PP_IIF(c, BOOST_PP_FOR_84, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(84, s), p, o, m)
-# define BOOST_PP_FOR_84_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(85, s) BOOST_PP_IIF(c, BOOST_PP_FOR_85, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(85, s), p, o, m)
-# define BOOST_PP_FOR_85_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(86, s) BOOST_PP_IIF(c, BOOST_PP_FOR_86, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(86, s), p, o, m)
-# define BOOST_PP_FOR_86_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(87, s) BOOST_PP_IIF(c, BOOST_PP_FOR_87, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(87, s), p, o, m)
-# define BOOST_PP_FOR_87_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(88, s) BOOST_PP_IIF(c, BOOST_PP_FOR_88, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(88, s), p, o, m)
-# define BOOST_PP_FOR_88_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(89, s) BOOST_PP_IIF(c, BOOST_PP_FOR_89, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(89, s), p, o, m)
-# define BOOST_PP_FOR_89_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(90, s) BOOST_PP_IIF(c, BOOST_PP_FOR_90, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(90, s), p, o, m)
-# define BOOST_PP_FOR_90_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(91, s) BOOST_PP_IIF(c, BOOST_PP_FOR_91, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(91, s), p, o, m)
-# define BOOST_PP_FOR_91_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(92, s) BOOST_PP_IIF(c, BOOST_PP_FOR_92, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(92, s), p, o, m)
-# define BOOST_PP_FOR_92_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(93, s) BOOST_PP_IIF(c, BOOST_PP_FOR_93, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(93, s), p, o, m)
-# define BOOST_PP_FOR_93_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(94, s) BOOST_PP_IIF(c, BOOST_PP_FOR_94, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(94, s), p, o, m)
-# define BOOST_PP_FOR_94_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(95, s) BOOST_PP_IIF(c, BOOST_PP_FOR_95, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(95, s), p, o, m)
-# define BOOST_PP_FOR_95_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(96, s) BOOST_PP_IIF(c, BOOST_PP_FOR_96, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(96, s), p, o, m)
-# define BOOST_PP_FOR_96_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(97, s) BOOST_PP_IIF(c, BOOST_PP_FOR_97, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(97, s), p, o, m)
-# define BOOST_PP_FOR_97_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(98, s) BOOST_PP_IIF(c, BOOST_PP_FOR_98, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(98, s), p, o, m)
-# define BOOST_PP_FOR_98_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(99, s) BOOST_PP_IIF(c, BOOST_PP_FOR_99, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(99, s), p, o, m)
-# define BOOST_PP_FOR_99_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(100, s) BOOST_PP_IIF(c, BOOST_PP_FOR_100, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(100, s), p, o, m)
-# define BOOST_PP_FOR_100_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(101, s) BOOST_PP_IIF(c, BOOST_PP_FOR_101, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(101, s), p, o, m)
-# define BOOST_PP_FOR_101_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(102, s) BOOST_PP_IIF(c, BOOST_PP_FOR_102, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(102, s), p, o, m)
-# define BOOST_PP_FOR_102_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(103, s) BOOST_PP_IIF(c, BOOST_PP_FOR_103, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(103, s), p, o, m)
-# define BOOST_PP_FOR_103_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(104, s) BOOST_PP_IIF(c, BOOST_PP_FOR_104, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(104, s), p, o, m)
-# define BOOST_PP_FOR_104_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(105, s) BOOST_PP_IIF(c, BOOST_PP_FOR_105, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(105, s), p, o, m)
-# define BOOST_PP_FOR_105_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(106, s) BOOST_PP_IIF(c, BOOST_PP_FOR_106, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(106, s), p, o, m)
-# define BOOST_PP_FOR_106_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(107, s) BOOST_PP_IIF(c, BOOST_PP_FOR_107, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(107, s), p, o, m)
-# define BOOST_PP_FOR_107_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(108, s) BOOST_PP_IIF(c, BOOST_PP_FOR_108, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(108, s), p, o, m)
-# define BOOST_PP_FOR_108_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(109, s) BOOST_PP_IIF(c, BOOST_PP_FOR_109, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(109, s), p, o, m)
-# define BOOST_PP_FOR_109_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(110, s) BOOST_PP_IIF(c, BOOST_PP_FOR_110, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(110, s), p, o, m)
-# define BOOST_PP_FOR_110_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(111, s) BOOST_PP_IIF(c, BOOST_PP_FOR_111, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(111, s), p, o, m)
-# define BOOST_PP_FOR_111_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(112, s) BOOST_PP_IIF(c, BOOST_PP_FOR_112, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(112, s), p, o, m)
-# define BOOST_PP_FOR_112_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(113, s) BOOST_PP_IIF(c, BOOST_PP_FOR_113, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(113, s), p, o, m)
-# define BOOST_PP_FOR_113_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(114, s) BOOST_PP_IIF(c, BOOST_PP_FOR_114, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(114, s), p, o, m)
-# define BOOST_PP_FOR_114_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(115, s) BOOST_PP_IIF(c, BOOST_PP_FOR_115, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(115, s), p, o, m)
-# define BOOST_PP_FOR_115_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(116, s) BOOST_PP_IIF(c, BOOST_PP_FOR_116, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(116, s), p, o, m)
-# define BOOST_PP_FOR_116_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(117, s) BOOST_PP_IIF(c, BOOST_PP_FOR_117, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(117, s), p, o, m)
-# define BOOST_PP_FOR_117_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(118, s) BOOST_PP_IIF(c, BOOST_PP_FOR_118, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(118, s), p, o, m)
-# define BOOST_PP_FOR_118_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(119, s) BOOST_PP_IIF(c, BOOST_PP_FOR_119, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(119, s), p, o, m)
-# define BOOST_PP_FOR_119_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(120, s) BOOST_PP_IIF(c, BOOST_PP_FOR_120, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(120, s), p, o, m)
-# define BOOST_PP_FOR_120_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(121, s) BOOST_PP_IIF(c, BOOST_PP_FOR_121, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(121, s), p, o, m)
-# define BOOST_PP_FOR_121_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(122, s) BOOST_PP_IIF(c, BOOST_PP_FOR_122, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(122, s), p, o, m)
-# define BOOST_PP_FOR_122_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(123, s) BOOST_PP_IIF(c, BOOST_PP_FOR_123, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(123, s), p, o, m)
-# define BOOST_PP_FOR_123_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(124, s) BOOST_PP_IIF(c, BOOST_PP_FOR_124, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(124, s), p, o, m)
-# define BOOST_PP_FOR_124_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(125, s) BOOST_PP_IIF(c, BOOST_PP_FOR_125, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(125, s), p, o, m)
-# define BOOST_PP_FOR_125_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(126, s) BOOST_PP_IIF(c, BOOST_PP_FOR_126, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(126, s), p, o, m)
-# define BOOST_PP_FOR_126_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(127, s) BOOST_PP_IIF(c, BOOST_PP_FOR_127, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(127, s), p, o, m)
-# define BOOST_PP_FOR_127_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(128, s) BOOST_PP_IIF(c, BOOST_PP_FOR_128, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(128, s), p, o, m)
-# define BOOST_PP_FOR_128_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(129, s) BOOST_PP_IIF(c, BOOST_PP_FOR_129, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(129, s), p, o, m)
-# define BOOST_PP_FOR_129_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(130, s) BOOST_PP_IIF(c, BOOST_PP_FOR_130, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(130, s), p, o, m)
-# define BOOST_PP_FOR_130_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(131, s) BOOST_PP_IIF(c, BOOST_PP_FOR_131, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(131, s), p, o, m)
-# define BOOST_PP_FOR_131_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(132, s) BOOST_PP_IIF(c, BOOST_PP_FOR_132, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(132, s), p, o, m)
-# define BOOST_PP_FOR_132_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(133, s) BOOST_PP_IIF(c, BOOST_PP_FOR_133, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(133, s), p, o, m)
-# define BOOST_PP_FOR_133_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(134, s) BOOST_PP_IIF(c, BOOST_PP_FOR_134, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(134, s), p, o, m)
-# define BOOST_PP_FOR_134_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(135, s) BOOST_PP_IIF(c, BOOST_PP_FOR_135, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(135, s), p, o, m)
-# define BOOST_PP_FOR_135_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(136, s) BOOST_PP_IIF(c, BOOST_PP_FOR_136, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(136, s), p, o, m)
-# define BOOST_PP_FOR_136_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(137, s) BOOST_PP_IIF(c, BOOST_PP_FOR_137, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(137, s), p, o, m)
-# define BOOST_PP_FOR_137_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(138, s) BOOST_PP_IIF(c, BOOST_PP_FOR_138, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(138, s), p, o, m)
-# define BOOST_PP_FOR_138_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(139, s) BOOST_PP_IIF(c, BOOST_PP_FOR_139, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(139, s), p, o, m)
-# define BOOST_PP_FOR_139_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(140, s) BOOST_PP_IIF(c, BOOST_PP_FOR_140, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(140, s), p, o, m)
-# define BOOST_PP_FOR_140_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(141, s) BOOST_PP_IIF(c, BOOST_PP_FOR_141, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(141, s), p, o, m)
-# define BOOST_PP_FOR_141_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(142, s) BOOST_PP_IIF(c, BOOST_PP_FOR_142, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(142, s), p, o, m)
-# define BOOST_PP_FOR_142_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(143, s) BOOST_PP_IIF(c, BOOST_PP_FOR_143, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(143, s), p, o, m)
-# define BOOST_PP_FOR_143_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(144, s) BOOST_PP_IIF(c, BOOST_PP_FOR_144, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(144, s), p, o, m)
-# define BOOST_PP_FOR_144_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(145, s) BOOST_PP_IIF(c, BOOST_PP_FOR_145, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(145, s), p, o, m)
-# define BOOST_PP_FOR_145_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(146, s) BOOST_PP_IIF(c, BOOST_PP_FOR_146, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(146, s), p, o, m)
-# define BOOST_PP_FOR_146_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(147, s) BOOST_PP_IIF(c, BOOST_PP_FOR_147, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(147, s), p, o, m)
-# define BOOST_PP_FOR_147_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(148, s) BOOST_PP_IIF(c, BOOST_PP_FOR_148, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(148, s), p, o, m)
-# define BOOST_PP_FOR_148_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(149, s) BOOST_PP_IIF(c, BOOST_PP_FOR_149, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(149, s), p, o, m)
-# define BOOST_PP_FOR_149_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(150, s) BOOST_PP_IIF(c, BOOST_PP_FOR_150, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(150, s), p, o, m)
-# define BOOST_PP_FOR_150_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(151, s) BOOST_PP_IIF(c, BOOST_PP_FOR_151, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(151, s), p, o, m)
-# define BOOST_PP_FOR_151_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(152, s) BOOST_PP_IIF(c, BOOST_PP_FOR_152, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(152, s), p, o, m)
-# define BOOST_PP_FOR_152_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(153, s) BOOST_PP_IIF(c, BOOST_PP_FOR_153, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(153, s), p, o, m)
-# define BOOST_PP_FOR_153_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(154, s) BOOST_PP_IIF(c, BOOST_PP_FOR_154, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(154, s), p, o, m)
-# define BOOST_PP_FOR_154_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(155, s) BOOST_PP_IIF(c, BOOST_PP_FOR_155, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(155, s), p, o, m)
-# define BOOST_PP_FOR_155_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(156, s) BOOST_PP_IIF(c, BOOST_PP_FOR_156, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(156, s), p, o, m)
-# define BOOST_PP_FOR_156_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(157, s) BOOST_PP_IIF(c, BOOST_PP_FOR_157, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(157, s), p, o, m)
-# define BOOST_PP_FOR_157_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(158, s) BOOST_PP_IIF(c, BOOST_PP_FOR_158, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(158, s), p, o, m)
-# define BOOST_PP_FOR_158_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(159, s) BOOST_PP_IIF(c, BOOST_PP_FOR_159, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(159, s), p, o, m)
-# define BOOST_PP_FOR_159_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(160, s) BOOST_PP_IIF(c, BOOST_PP_FOR_160, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(160, s), p, o, m)
-# define BOOST_PP_FOR_160_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(161, s) BOOST_PP_IIF(c, BOOST_PP_FOR_161, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(161, s), p, o, m)
-# define BOOST_PP_FOR_161_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(162, s) BOOST_PP_IIF(c, BOOST_PP_FOR_162, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(162, s), p, o, m)
-# define BOOST_PP_FOR_162_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(163, s) BOOST_PP_IIF(c, BOOST_PP_FOR_163, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(163, s), p, o, m)
-# define BOOST_PP_FOR_163_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(164, s) BOOST_PP_IIF(c, BOOST_PP_FOR_164, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(164, s), p, o, m)
-# define BOOST_PP_FOR_164_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(165, s) BOOST_PP_IIF(c, BOOST_PP_FOR_165, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(165, s), p, o, m)
-# define BOOST_PP_FOR_165_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(166, s) BOOST_PP_IIF(c, BOOST_PP_FOR_166, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(166, s), p, o, m)
-# define BOOST_PP_FOR_166_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(167, s) BOOST_PP_IIF(c, BOOST_PP_FOR_167, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(167, s), p, o, m)
-# define BOOST_PP_FOR_167_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(168, s) BOOST_PP_IIF(c, BOOST_PP_FOR_168, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(168, s), p, o, m)
-# define BOOST_PP_FOR_168_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(169, s) BOOST_PP_IIF(c, BOOST_PP_FOR_169, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(169, s), p, o, m)
-# define BOOST_PP_FOR_169_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(170, s) BOOST_PP_IIF(c, BOOST_PP_FOR_170, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(170, s), p, o, m)
-# define BOOST_PP_FOR_170_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(171, s) BOOST_PP_IIF(c, BOOST_PP_FOR_171, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(171, s), p, o, m)
-# define BOOST_PP_FOR_171_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(172, s) BOOST_PP_IIF(c, BOOST_PP_FOR_172, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(172, s), p, o, m)
-# define BOOST_PP_FOR_172_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(173, s) BOOST_PP_IIF(c, BOOST_PP_FOR_173, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(173, s), p, o, m)
-# define BOOST_PP_FOR_173_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(174, s) BOOST_PP_IIF(c, BOOST_PP_FOR_174, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(174, s), p, o, m)
-# define BOOST_PP_FOR_174_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(175, s) BOOST_PP_IIF(c, BOOST_PP_FOR_175, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(175, s), p, o, m)
-# define BOOST_PP_FOR_175_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(176, s) BOOST_PP_IIF(c, BOOST_PP_FOR_176, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(176, s), p, o, m)
-# define BOOST_PP_FOR_176_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(177, s) BOOST_PP_IIF(c, BOOST_PP_FOR_177, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(177, s), p, o, m)
-# define BOOST_PP_FOR_177_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(178, s) BOOST_PP_IIF(c, BOOST_PP_FOR_178, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(178, s), p, o, m)
-# define BOOST_PP_FOR_178_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(179, s) BOOST_PP_IIF(c, BOOST_PP_FOR_179, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(179, s), p, o, m)
-# define BOOST_PP_FOR_179_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(180, s) BOOST_PP_IIF(c, BOOST_PP_FOR_180, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(180, s), p, o, m)
-# define BOOST_PP_FOR_180_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(181, s) BOOST_PP_IIF(c, BOOST_PP_FOR_181, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(181, s), p, o, m)
-# define BOOST_PP_FOR_181_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(182, s) BOOST_PP_IIF(c, BOOST_PP_FOR_182, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(182, s), p, o, m)
-# define BOOST_PP_FOR_182_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(183, s) BOOST_PP_IIF(c, BOOST_PP_FOR_183, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(183, s), p, o, m)
-# define BOOST_PP_FOR_183_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(184, s) BOOST_PP_IIF(c, BOOST_PP_FOR_184, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(184, s), p, o, m)
-# define BOOST_PP_FOR_184_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(185, s) BOOST_PP_IIF(c, BOOST_PP_FOR_185, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(185, s), p, o, m)
-# define BOOST_PP_FOR_185_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(186, s) BOOST_PP_IIF(c, BOOST_PP_FOR_186, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(186, s), p, o, m)
-# define BOOST_PP_FOR_186_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(187, s) BOOST_PP_IIF(c, BOOST_PP_FOR_187, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(187, s), p, o, m)
-# define BOOST_PP_FOR_187_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(188, s) BOOST_PP_IIF(c, BOOST_PP_FOR_188, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(188, s), p, o, m)
-# define BOOST_PP_FOR_188_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(189, s) BOOST_PP_IIF(c, BOOST_PP_FOR_189, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(189, s), p, o, m)
-# define BOOST_PP_FOR_189_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(190, s) BOOST_PP_IIF(c, BOOST_PP_FOR_190, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(190, s), p, o, m)
-# define BOOST_PP_FOR_190_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(191, s) BOOST_PP_IIF(c, BOOST_PP_FOR_191, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(191, s), p, o, m)
-# define BOOST_PP_FOR_191_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(192, s) BOOST_PP_IIF(c, BOOST_PP_FOR_192, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(192, s), p, o, m)
-# define BOOST_PP_FOR_192_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(193, s) BOOST_PP_IIF(c, BOOST_PP_FOR_193, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(193, s), p, o, m)
-# define BOOST_PP_FOR_193_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(194, s) BOOST_PP_IIF(c, BOOST_PP_FOR_194, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(194, s), p, o, m)
-# define BOOST_PP_FOR_194_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(195, s) BOOST_PP_IIF(c, BOOST_PP_FOR_195, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(195, s), p, o, m)
-# define BOOST_PP_FOR_195_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(196, s) BOOST_PP_IIF(c, BOOST_PP_FOR_196, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(196, s), p, o, m)
-# define BOOST_PP_FOR_196_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(197, s) BOOST_PP_IIF(c, BOOST_PP_FOR_197, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(197, s), p, o, m)
-# define BOOST_PP_FOR_197_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(198, s) BOOST_PP_IIF(c, BOOST_PP_FOR_198, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(198, s), p, o, m)
-# define BOOST_PP_FOR_198_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(199, s) BOOST_PP_IIF(c, BOOST_PP_FOR_199, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(199, s), p, o, m)
-# define BOOST_PP_FOR_199_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(200, s) BOOST_PP_IIF(c, BOOST_PP_FOR_200, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(200, s), p, o, m)
-# define BOOST_PP_FOR_200_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(201, s) BOOST_PP_IIF(c, BOOST_PP_FOR_201, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(201, s), p, o, m)
-# define BOOST_PP_FOR_201_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(202, s) BOOST_PP_IIF(c, BOOST_PP_FOR_202, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(202, s), p, o, m)
-# define BOOST_PP_FOR_202_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(203, s) BOOST_PP_IIF(c, BOOST_PP_FOR_203, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(203, s), p, o, m)
-# define BOOST_PP_FOR_203_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(204, s) BOOST_PP_IIF(c, BOOST_PP_FOR_204, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(204, s), p, o, m)
-# define BOOST_PP_FOR_204_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(205, s) BOOST_PP_IIF(c, BOOST_PP_FOR_205, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(205, s), p, o, m)
-# define BOOST_PP_FOR_205_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(206, s) BOOST_PP_IIF(c, BOOST_PP_FOR_206, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(206, s), p, o, m)
-# define BOOST_PP_FOR_206_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(207, s) BOOST_PP_IIF(c, BOOST_PP_FOR_207, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(207, s), p, o, m)
-# define BOOST_PP_FOR_207_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(208, s) BOOST_PP_IIF(c, BOOST_PP_FOR_208, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(208, s), p, o, m)
-# define BOOST_PP_FOR_208_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(209, s) BOOST_PP_IIF(c, BOOST_PP_FOR_209, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(209, s), p, o, m)
-# define BOOST_PP_FOR_209_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(210, s) BOOST_PP_IIF(c, BOOST_PP_FOR_210, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(210, s), p, o, m)
-# define BOOST_PP_FOR_210_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(211, s) BOOST_PP_IIF(c, BOOST_PP_FOR_211, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(211, s), p, o, m)
-# define BOOST_PP_FOR_211_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(212, s) BOOST_PP_IIF(c, BOOST_PP_FOR_212, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(212, s), p, o, m)
-# define BOOST_PP_FOR_212_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(213, s) BOOST_PP_IIF(c, BOOST_PP_FOR_213, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(213, s), p, o, m)
-# define BOOST_PP_FOR_213_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(214, s) BOOST_PP_IIF(c, BOOST_PP_FOR_214, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(214, s), p, o, m)
-# define BOOST_PP_FOR_214_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(215, s) BOOST_PP_IIF(c, BOOST_PP_FOR_215, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(215, s), p, o, m)
-# define BOOST_PP_FOR_215_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(216, s) BOOST_PP_IIF(c, BOOST_PP_FOR_216, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(216, s), p, o, m)
-# define BOOST_PP_FOR_216_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(217, s) BOOST_PP_IIF(c, BOOST_PP_FOR_217, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(217, s), p, o, m)
-# define BOOST_PP_FOR_217_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(218, s) BOOST_PP_IIF(c, BOOST_PP_FOR_218, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(218, s), p, o, m)
-# define BOOST_PP_FOR_218_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(219, s) BOOST_PP_IIF(c, BOOST_PP_FOR_219, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(219, s), p, o, m)
-# define BOOST_PP_FOR_219_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(220, s) BOOST_PP_IIF(c, BOOST_PP_FOR_220, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(220, s), p, o, m)
-# define BOOST_PP_FOR_220_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(221, s) BOOST_PP_IIF(c, BOOST_PP_FOR_221, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(221, s), p, o, m)
-# define BOOST_PP_FOR_221_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(222, s) BOOST_PP_IIF(c, BOOST_PP_FOR_222, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(222, s), p, o, m)
-# define BOOST_PP_FOR_222_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(223, s) BOOST_PP_IIF(c, BOOST_PP_FOR_223, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(223, s), p, o, m)
-# define BOOST_PP_FOR_223_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(224, s) BOOST_PP_IIF(c, BOOST_PP_FOR_224, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(224, s), p, o, m)
-# define BOOST_PP_FOR_224_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(225, s) BOOST_PP_IIF(c, BOOST_PP_FOR_225, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(225, s), p, o, m)
-# define BOOST_PP_FOR_225_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(226, s) BOOST_PP_IIF(c, BOOST_PP_FOR_226, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(226, s), p, o, m)
-# define BOOST_PP_FOR_226_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(227, s) BOOST_PP_IIF(c, BOOST_PP_FOR_227, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(227, s), p, o, m)
-# define BOOST_PP_FOR_227_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(228, s) BOOST_PP_IIF(c, BOOST_PP_FOR_228, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(228, s), p, o, m)
-# define BOOST_PP_FOR_228_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(229, s) BOOST_PP_IIF(c, BOOST_PP_FOR_229, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(229, s), p, o, m)
-# define BOOST_PP_FOR_229_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(230, s) BOOST_PP_IIF(c, BOOST_PP_FOR_230, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(230, s), p, o, m)
-# define BOOST_PP_FOR_230_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(231, s) BOOST_PP_IIF(c, BOOST_PP_FOR_231, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(231, s), p, o, m)
-# define BOOST_PP_FOR_231_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(232, s) BOOST_PP_IIF(c, BOOST_PP_FOR_232, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(232, s), p, o, m)
-# define BOOST_PP_FOR_232_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(233, s) BOOST_PP_IIF(c, BOOST_PP_FOR_233, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(233, s), p, o, m)
-# define BOOST_PP_FOR_233_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(234, s) BOOST_PP_IIF(c, BOOST_PP_FOR_234, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(234, s), p, o, m)
-# define BOOST_PP_FOR_234_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(235, s) BOOST_PP_IIF(c, BOOST_PP_FOR_235, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(235, s), p, o, m)
-# define BOOST_PP_FOR_235_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(236, s) BOOST_PP_IIF(c, BOOST_PP_FOR_236, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(236, s), p, o, m)
-# define BOOST_PP_FOR_236_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(237, s) BOOST_PP_IIF(c, BOOST_PP_FOR_237, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(237, s), p, o, m)
-# define BOOST_PP_FOR_237_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(238, s) BOOST_PP_IIF(c, BOOST_PP_FOR_238, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(238, s), p, o, m)
-# define BOOST_PP_FOR_238_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(239, s) BOOST_PP_IIF(c, BOOST_PP_FOR_239, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(239, s), p, o, m)
-# define BOOST_PP_FOR_239_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(240, s) BOOST_PP_IIF(c, BOOST_PP_FOR_240, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(240, s), p, o, m)
-# define BOOST_PP_FOR_240_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(241, s) BOOST_PP_IIF(c, BOOST_PP_FOR_241, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(241, s), p, o, m)
-# define BOOST_PP_FOR_241_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(242, s) BOOST_PP_IIF(c, BOOST_PP_FOR_242, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(242, s), p, o, m)
-# define BOOST_PP_FOR_242_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(243, s) BOOST_PP_IIF(c, BOOST_PP_FOR_243, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(243, s), p, o, m)
-# define BOOST_PP_FOR_243_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(244, s) BOOST_PP_IIF(c, BOOST_PP_FOR_244, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(244, s), p, o, m)
-# define BOOST_PP_FOR_244_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(245, s) BOOST_PP_IIF(c, BOOST_PP_FOR_245, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(245, s), p, o, m)
-# define BOOST_PP_FOR_245_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(246, s) BOOST_PP_IIF(c, BOOST_PP_FOR_246, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(246, s), p, o, m)
-# define BOOST_PP_FOR_246_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(247, s) BOOST_PP_IIF(c, BOOST_PP_FOR_247, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(247, s), p, o, m)
-# define BOOST_PP_FOR_247_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(248, s) BOOST_PP_IIF(c, BOOST_PP_FOR_248, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(248, s), p, o, m)
-# define BOOST_PP_FOR_248_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(249, s) BOOST_PP_IIF(c, BOOST_PP_FOR_249, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(249, s), p, o, m)
-# define BOOST_PP_FOR_249_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(250, s) BOOST_PP_IIF(c, BOOST_PP_FOR_250, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(250, s), p, o, m)
-# define BOOST_PP_FOR_250_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(251, s) BOOST_PP_IIF(c, BOOST_PP_FOR_251, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(251, s), p, o, m)
-# define BOOST_PP_FOR_251_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(252, s) BOOST_PP_IIF(c, BOOST_PP_FOR_252, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(252, s), p, o, m)
-# define BOOST_PP_FOR_252_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(253, s) BOOST_PP_IIF(c, BOOST_PP_FOR_253, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(253, s), p, o, m)
-# define BOOST_PP_FOR_253_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(254, s) BOOST_PP_IIF(c, BOOST_PP_FOR_254, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(254, s), p, o, m)
-# define BOOST_PP_FOR_254_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(255, s) BOOST_PP_IIF(c, BOOST_PP_FOR_255, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(255, s), p, o, m)
-# define BOOST_PP_FOR_255_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(256, s) BOOST_PP_IIF(c, BOOST_PP_FOR_256, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(256, s), p, o, m)
-# define BOOST_PP_FOR_256_C(c, s, p, o, m) BOOST_PP_IIF(c, m, BOOST_PP_TUPLE_EAT_2)(257, s) BOOST_PP_IIF(c, BOOST_PP_FOR_257, BOOST_PP_TUPLE_EAT_4)(BOOST_PP_EXPR_IIF(c, o)(257, s), p, o, m)
-#
-# endif
diff --git a/boost/preprocessor/repetition/detail/msvc/for.hpp b/boost/preprocessor/repetition/detail/msvc/for.hpp
deleted file mode 100644
index 35c1996..0000000
--- a/boost/preprocessor/repetition/detail/msvc/for.hpp
+++ /dev/null
@@ -1,277 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * Distributed under the Boost Software License, Version 1.0. (See
-#  * accompanying file LICENSE_1_0.txt or copy at
-#  * http://www.boost.org/LICENSE_1_0.txt)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_REPETITION_DETAIL_MSVC_FOR_HPP
-# define BOOST_PREPROCESSOR_REPETITION_DETAIL_MSVC_FOR_HPP
-#
-# include <boost/preprocessor/control/if.hpp>
-# include <boost/preprocessor/tuple/eat.hpp>
-#
-# define BOOST_PP_FOR_1(s, p, o, m) BOOST_PP_IF(p(2, s), m, BOOST_PP_TUPLE_EAT_2)(2, s) BOOST_PP_IF(p(2, s), BOOST_PP_FOR_2, BOOST_PP_TUPLE_EAT_4)(o(2, s), p, o, m)
-# define BOOST_PP_FOR_2(s, p, o, m) BOOST_PP_IF(p(3, s), m, BOOST_PP_TUPLE_EAT_2)(3, s) BOOST_PP_IF(p(3, s), BOOST_PP_FOR_3, BOOST_PP_TUPLE_EAT_4)(o(3, s), p, o, m)
-# define BOOST_PP_FOR_3(s, p, o, m) BOOST_PP_IF(p(4, s), m, BOOST_PP_TUPLE_EAT_2)(4, s) BOOST_PP_IF(p(4, s), BOOST_PP_FOR_4, BOOST_PP_TUPLE_EAT_4)(o(4, s), p, o, m)
-# define BOOST_PP_FOR_4(s, p, o, m) BOOST_PP_IF(p(5, s), m, BOOST_PP_TUPLE_EAT_2)(5, s) BOOST_PP_IF(p(5, s), BOOST_PP_FOR_5, BOOST_PP_TUPLE_EAT_4)(o(5, s), p, o, m)
-# define BOOST_PP_FOR_5(s, p, o, m) BOOST_PP_IF(p(6, s), m, BOOST_PP_TUPLE_EAT_2)(6, s) BOOST_PP_IF(p(6, s), BOOST_PP_FOR_6, BOOST_PP_TUPLE_EAT_4)(o(6, s), p, o, m)
-# define BOOST_PP_FOR_6(s, p, o, m) BOOST_PP_IF(p(7, s), m, BOOST_PP_TUPLE_EAT_2)(7, s) BOOST_PP_IF(p(7, s), BOOST_PP_FOR_7, BOOST_PP_TUPLE_EAT_4)(o(7, s), p, o, m)
-# define BOOST_PP_FOR_7(s, p, o, m) BOOST_PP_IF(p(8, s), m, BOOST_PP_TUPLE_EAT_2)(8, s) BOOST_PP_IF(p(8, s), BOOST_PP_FOR_8, BOOST_PP_TUPLE_EAT_4)(o(8, s), p, o, m)
-# define BOOST_PP_FOR_8(s, p, o, m) BOOST_PP_IF(p(9, s), m, BOOST_PP_TUPLE_EAT_2)(9, s) BOOST_PP_IF(p(9, s), BOOST_PP_FOR_9, BOOST_PP_TUPLE_EAT_4)(o(9, s), p, o, m)
-# define BOOST_PP_FOR_9(s, p, o, m) BOOST_PP_IF(p(10, s), m, BOOST_PP_TUPLE_EAT_2)(10, s) BOOST_PP_IF(p(10, s), BOOST_PP_FOR_10, BOOST_PP_TUPLE_EAT_4)(o(10, s), p, o, m)
-# define BOOST_PP_FOR_10(s, p, o, m) BOOST_PP_IF(p(11, s), m, BOOST_PP_TUPLE_EAT_2)(11, s) BOOST_PP_IF(p(11, s), BOOST_PP_FOR_11, BOOST_PP_TUPLE_EAT_4)(o(11, s), p, o, m)
-# define BOOST_PP_FOR_11(s, p, o, m) BOOST_PP_IF(p(12, s), m, BOOST_PP_TUPLE_EAT_2)(12, s) BOOST_PP_IF(p(12, s), BOOST_PP_FOR_12, BOOST_PP_TUPLE_EAT_4)(o(12, s), p, o, m)
-# define BOOST_PP_FOR_12(s, p, o, m) BOOST_PP_IF(p(13, s), m, BOOST_PP_TUPLE_EAT_2)(13, s) BOOST_PP_IF(p(13, s), BOOST_PP_FOR_13, BOOST_PP_TUPLE_EAT_4)(o(13, s), p, o, m)
-# define BOOST_PP_FOR_13(s, p, o, m) BOOST_PP_IF(p(14, s), m, BOOST_PP_TUPLE_EAT_2)(14, s) BOOST_PP_IF(p(14, s), BOOST_PP_FOR_14, BOOST_PP_TUPLE_EAT_4)(o(14, s), p, o, m)
-# define BOOST_PP_FOR_14(s, p, o, m) BOOST_PP_IF(p(15, s), m, BOOST_PP_TUPLE_EAT_2)(15, s) BOOST_PP_IF(p(15, s), BOOST_PP_FOR_15, BOOST_PP_TUPLE_EAT_4)(o(15, s), p, o, m)
-# define BOOST_PP_FOR_15(s, p, o, m) BOOST_PP_IF(p(16, s), m, BOOST_PP_TUPLE_EAT_2)(16, s) BOOST_PP_IF(p(16, s), BOOST_PP_FOR_16, BOOST_PP_TUPLE_EAT_4)(o(16, s), p, o, m)
-# define BOOST_PP_FOR_16(s, p, o, m) BOOST_PP_IF(p(17, s), m, BOOST_PP_TUPLE_EAT_2)(17, s) BOOST_PP_IF(p(17, s), BOOST_PP_FOR_17, BOOST_PP_TUPLE_EAT_4)(o(17, s), p, o, m)
-# define BOOST_PP_FOR_17(s, p, o, m) BOOST_PP_IF(p(18, s), m, BOOST_PP_TUPLE_EAT_2)(18, s) BOOST_PP_IF(p(18, s), BOOST_PP_FOR_18, BOOST_PP_TUPLE_EAT_4)(o(18, s), p, o, m)
-# define BOOST_PP_FOR_18(s, p, o, m) BOOST_PP_IF(p(19, s), m, BOOST_PP_TUPLE_EAT_2)(19, s) BOOST_PP_IF(p(19, s), BOOST_PP_FOR_19, BOOST_PP_TUPLE_EAT_4)(o(19, s), p, o, m)
-# define BOOST_PP_FOR_19(s, p, o, m) BOOST_PP_IF(p(20, s), m, BOOST_PP_TUPLE_EAT_2)(20, s) BOOST_PP_IF(p(20, s), BOOST_PP_FOR_20, BOOST_PP_TUPLE_EAT_4)(o(20, s), p, o, m)
-# define BOOST_PP_FOR_20(s, p, o, m) BOOST_PP_IF(p(21, s), m, BOOST_PP_TUPLE_EAT_2)(21, s) BOOST_PP_IF(p(21, s), BOOST_PP_FOR_21, BOOST_PP_TUPLE_EAT_4)(o(21, s), p, o, m)
-# define BOOST_PP_FOR_21(s, p, o, m) BOOST_PP_IF(p(22, s), m, BOOST_PP_TUPLE_EAT_2)(22, s) BOOST_PP_IF(p(22, s), BOOST_PP_FOR_22, BOOST_PP_TUPLE_EAT_4)(o(22, s), p, o, m)
-# define BOOST_PP_FOR_22(s, p, o, m) BOOST_PP_IF(p(23, s), m, BOOST_PP_TUPLE_EAT_2)(23, s) BOOST_PP_IF(p(23, s), BOOST_PP_FOR_23, BOOST_PP_TUPLE_EAT_4)(o(23, s), p, o, m)
-# define BOOST_PP_FOR_23(s, p, o, m) BOOST_PP_IF(p(24, s), m, BOOST_PP_TUPLE_EAT_2)(24, s) BOOST_PP_IF(p(24, s), BOOST_PP_FOR_24, BOOST_PP_TUPLE_EAT_4)(o(24, s), p, o, m)
-# define BOOST_PP_FOR_24(s, p, o, m) BOOST_PP_IF(p(25, s), m, BOOST_PP_TUPLE_EAT_2)(25, s) BOOST_PP_IF(p(25, s), BOOST_PP_FOR_25, BOOST_PP_TUPLE_EAT_4)(o(25, s), p, o, m)
-# define BOOST_PP_FOR_25(s, p, o, m) BOOST_PP_IF(p(26, s), m, BOOST_PP_TUPLE_EAT_2)(26, s) BOOST_PP_IF(p(26, s), BOOST_PP_FOR_26, BOOST_PP_TUPLE_EAT_4)(o(26, s), p, o, m)
-# define BOOST_PP_FOR_26(s, p, o, m) BOOST_PP_IF(p(27, s), m, BOOST_PP_TUPLE_EAT_2)(27, s) BOOST_PP_IF(p(27, s), BOOST_PP_FOR_27, BOOST_PP_TUPLE_EAT_4)(o(27, s), p, o, m)
-# define BOOST_PP_FOR_27(s, p, o, m) BOOST_PP_IF(p(28, s), m, BOOST_PP_TUPLE_EAT_2)(28, s) BOOST_PP_IF(p(28, s), BOOST_PP_FOR_28, BOOST_PP_TUPLE_EAT_4)(o(28, s), p, o, m)
-# define BOOST_PP_FOR_28(s, p, o, m) BOOST_PP_IF(p(29, s), m, BOOST_PP_TUPLE_EAT_2)(29, s) BOOST_PP_IF(p(29, s), BOOST_PP_FOR_29, BOOST_PP_TUPLE_EAT_4)(o(29, s), p, o, m)
-# define BOOST_PP_FOR_29(s, p, o, m) BOOST_PP_IF(p(30, s), m, BOOST_PP_TUPLE_EAT_2)(30, s) BOOST_PP_IF(p(30, s), BOOST_PP_FOR_30, BOOST_PP_TUPLE_EAT_4)(o(30, s), p, o, m)
-# define BOOST_PP_FOR_30(s, p, o, m) BOOST_PP_IF(p(31, s), m, BOOST_PP_TUPLE_EAT_2)(31, s) BOOST_PP_IF(p(31, s), BOOST_PP_FOR_31, BOOST_PP_TUPLE_EAT_4)(o(31, s), p, o, m)
-# define BOOST_PP_FOR_31(s, p, o, m) BOOST_PP_IF(p(32, s), m, BOOST_PP_TUPLE_EAT_2)(32, s) BOOST_PP_IF(p(32, s), BOOST_PP_FOR_32, BOOST_PP_TUPLE_EAT_4)(o(32, s), p, o, m)
-# define BOOST_PP_FOR_32(s, p, o, m) BOOST_PP_IF(p(33, s), m, BOOST_PP_TUPLE_EAT_2)(33, s) BOOST_PP_IF(p(33, s), BOOST_PP_FOR_33, BOOST_PP_TUPLE_EAT_4)(o(33, s), p, o, m)
-# define BOOST_PP_FOR_33(s, p, o, m) BOOST_PP_IF(p(34, s), m, BOOST_PP_TUPLE_EAT_2)(34, s) BOOST_PP_IF(p(34, s), BOOST_PP_FOR_34, BOOST_PP_TUPLE_EAT_4)(o(34, s), p, o, m)
-# define BOOST_PP_FOR_34(s, p, o, m) BOOST_PP_IF(p(35, s), m, BOOST_PP_TUPLE_EAT_2)(35, s) BOOST_PP_IF(p(35, s), BOOST_PP_FOR_35, BOOST_PP_TUPLE_EAT_4)(o(35, s), p, o, m)
-# define BOOST_PP_FOR_35(s, p, o, m) BOOST_PP_IF(p(36, s), m, BOOST_PP_TUPLE_EAT_2)(36, s) BOOST_PP_IF(p(36, s), BOOST_PP_FOR_36, BOOST_PP_TUPLE_EAT_4)(o(36, s), p, o, m)
-# define BOOST_PP_FOR_36(s, p, o, m) BOOST_PP_IF(p(37, s), m, BOOST_PP_TUPLE_EAT_2)(37, s) BOOST_PP_IF(p(37, s), BOOST_PP_FOR_37, BOOST_PP_TUPLE_EAT_4)(o(37, s), p, o, m)
-# define BOOST_PP_FOR_37(s, p, o, m) BOOST_PP_IF(p(38, s), m, BOOST_PP_TUPLE_EAT_2)(38, s) BOOST_PP_IF(p(38, s), BOOST_PP_FOR_38, BOOST_PP_TUPLE_EAT_4)(o(38, s), p, o, m)
-# define BOOST_PP_FOR_38(s, p, o, m) BOOST_PP_IF(p(39, s), m, BOOST_PP_TUPLE_EAT_2)(39, s) BOOST_PP_IF(p(39, s), BOOST_PP_FOR_39, BOOST_PP_TUPLE_EAT_4)(o(39, s), p, o, m)
-# define BOOST_PP_FOR_39(s, p, o, m) BOOST_PP_IF(p(40, s), m, BOOST_PP_TUPLE_EAT_2)(40, s) BOOST_PP_IF(p(40, s), BOOST_PP_FOR_40, BOOST_PP_TUPLE_EAT_4)(o(40, s), p, o, m)
-# define BOOST_PP_FOR_40(s, p, o, m) BOOST_PP_IF(p(41, s), m, BOOST_PP_TUPLE_EAT_2)(41, s) BOOST_PP_IF(p(41, s), BOOST_PP_FOR_41, BOOST_PP_TUPLE_EAT_4)(o(41, s), p, o, m)
-# define BOOST_PP_FOR_41(s, p, o, m) BOOST_PP_IF(p(42, s), m, BOOST_PP_TUPLE_EAT_2)(42, s) BOOST_PP_IF(p(42, s), BOOST_PP_FOR_42, BOOST_PP_TUPLE_EAT_4)(o(42, s), p, o, m)
-# define BOOST_PP_FOR_42(s, p, o, m) BOOST_PP_IF(p(43, s), m, BOOST_PP_TUPLE_EAT_2)(43, s) BOOST_PP_IF(p(43, s), BOOST_PP_FOR_43, BOOST_PP_TUPLE_EAT_4)(o(43, s), p, o, m)
-# define BOOST_PP_FOR_43(s, p, o, m) BOOST_PP_IF(p(44, s), m, BOOST_PP_TUPLE_EAT_2)(44, s) BOOST_PP_IF(p(44, s), BOOST_PP_FOR_44, BOOST_PP_TUPLE_EAT_4)(o(44, s), p, o, m)
-# define BOOST_PP_FOR_44(s, p, o, m) BOOST_PP_IF(p(45, s), m, BOOST_PP_TUPLE_EAT_2)(45, s) BOOST_PP_IF(p(45, s), BOOST_PP_FOR_45, BOOST_PP_TUPLE_EAT_4)(o(45, s), p, o, m)
-# define BOOST_PP_FOR_45(s, p, o, m) BOOST_PP_IF(p(46, s), m, BOOST_PP_TUPLE_EAT_2)(46, s) BOOST_PP_IF(p(46, s), BOOST_PP_FOR_46, BOOST_PP_TUPLE_EAT_4)(o(46, s), p, o, m)
-# define BOOST_PP_FOR_46(s, p, o, m) BOOST_PP_IF(p(47, s), m, BOOST_PP_TUPLE_EAT_2)(47, s) BOOST_PP_IF(p(47, s), BOOST_PP_FOR_47, BOOST_PP_TUPLE_EAT_4)(o(47, s), p, o, m)
-# define BOOST_PP_FOR_47(s, p, o, m) BOOST_PP_IF(p(48, s), m, BOOST_PP_TUPLE_EAT_2)(48, s) BOOST_PP_IF(p(48, s), BOOST_PP_FOR_48, BOOST_PP_TUPLE_EAT_4)(o(48, s), p, o, m)
-# define BOOST_PP_FOR_48(s, p, o, m) BOOST_PP_IF(p(49, s), m, BOOST_PP_TUPLE_EAT_2)(49, s) BOOST_PP_IF(p(49, s), BOOST_PP_FOR_49, BOOST_PP_TUPLE_EAT_4)(o(49, s), p, o, m)
-# define BOOST_PP_FOR_49(s, p, o, m) BOOST_PP_IF(p(50, s), m, BOOST_PP_TUPLE_EAT_2)(50, s) BOOST_PP_IF(p(50, s), BOOST_PP_FOR_50, BOOST_PP_TUPLE_EAT_4)(o(50, s), p, o, m)
-# define BOOST_PP_FOR_50(s, p, o, m) BOOST_PP_IF(p(51, s), m, BOOST_PP_TUPLE_EAT_2)(51, s) BOOST_PP_IF(p(51, s), BOOST_PP_FOR_51, BOOST_PP_TUPLE_EAT_4)(o(51, s), p, o, m)
-# define BOOST_PP_FOR_51(s, p, o, m) BOOST_PP_IF(p(52, s), m, BOOST_PP_TUPLE_EAT_2)(52, s) BOOST_PP_IF(p(52, s), BOOST_PP_FOR_52, BOOST_PP_TUPLE_EAT_4)(o(52, s), p, o, m)
-# define BOOST_PP_FOR_52(s, p, o, m) BOOST_PP_IF(p(53, s), m, BOOST_PP_TUPLE_EAT_2)(53, s) BOOST_PP_IF(p(53, s), BOOST_PP_FOR_53, BOOST_PP_TUPLE_EAT_4)(o(53, s), p, o, m)
-# define BOOST_PP_FOR_53(s, p, o, m) BOOST_PP_IF(p(54, s), m, BOOST_PP_TUPLE_EAT_2)(54, s) BOOST_PP_IF(p(54, s), BOOST_PP_FOR_54, BOOST_PP_TUPLE_EAT_4)(o(54, s), p, o, m)
-# define BOOST_PP_FOR_54(s, p, o, m) BOOST_PP_IF(p(55, s), m, BOOST_PP_TUPLE_EAT_2)(55, s) BOOST_PP_IF(p(55, s), BOOST_PP_FOR_55, BOOST_PP_TUPLE_EAT_4)(o(55, s), p, o, m)
-# define BOOST_PP_FOR_55(s, p, o, m) BOOST_PP_IF(p(56, s), m, BOOST_PP_TUPLE_EAT_2)(56, s) BOOST_PP_IF(p(56, s), BOOST_PP_FOR_56, BOOST_PP_TUPLE_EAT_4)(o(56, s), p, o, m)
-# define BOOST_PP_FOR_56(s, p, o, m) BOOST_PP_IF(p(57, s), m, BOOST_PP_TUPLE_EAT_2)(57, s) BOOST_PP_IF(p(57, s), BOOST_PP_FOR_57, BOOST_PP_TUPLE_EAT_4)(o(57, s), p, o, m)
-# define BOOST_PP_FOR_57(s, p, o, m) BOOST_PP_IF(p(58, s), m, BOOST_PP_TUPLE_EAT_2)(58, s) BOOST_PP_IF(p(58, s), BOOST_PP_FOR_58, BOOST_PP_TUPLE_EAT_4)(o(58, s), p, o, m)
-# define BOOST_PP_FOR_58(s, p, o, m) BOOST_PP_IF(p(59, s), m, BOOST_PP_TUPLE_EAT_2)(59, s) BOOST_PP_IF(p(59, s), BOOST_PP_FOR_59, BOOST_PP_TUPLE_EAT_4)(o(59, s), p, o, m)
-# define BOOST_PP_FOR_59(s, p, o, m) BOOST_PP_IF(p(60, s), m, BOOST_PP_TUPLE_EAT_2)(60, s) BOOST_PP_IF(p(60, s), BOOST_PP_FOR_60, BOOST_PP_TUPLE_EAT_4)(o(60, s), p, o, m)
-# define BOOST_PP_FOR_60(s, p, o, m) BOOST_PP_IF(p(61, s), m, BOOST_PP_TUPLE_EAT_2)(61, s) BOOST_PP_IF(p(61, s), BOOST_PP_FOR_61, BOOST_PP_TUPLE_EAT_4)(o(61, s), p, o, m)
-# define BOOST_PP_FOR_61(s, p, o, m) BOOST_PP_IF(p(62, s), m, BOOST_PP_TUPLE_EAT_2)(62, s) BOOST_PP_IF(p(62, s), BOOST_PP_FOR_62, BOOST_PP_TUPLE_EAT_4)(o(62, s), p, o, m)
-# define BOOST_PP_FOR_62(s, p, o, m) BOOST_PP_IF(p(63, s), m, BOOST_PP_TUPLE_EAT_2)(63, s) BOOST_PP_IF(p(63, s), BOOST_PP_FOR_63, BOOST_PP_TUPLE_EAT_4)(o(63, s), p, o, m)
-# define BOOST_PP_FOR_63(s, p, o, m) BOOST_PP_IF(p(64, s), m, BOOST_PP_TUPLE_EAT_2)(64, s) BOOST_PP_IF(p(64, s), BOOST_PP_FOR_64, BOOST_PP_TUPLE_EAT_4)(o(64, s), p, o, m)
-# define BOOST_PP_FOR_64(s, p, o, m) BOOST_PP_IF(p(65, s), m, BOOST_PP_TUPLE_EAT_2)(65, s) BOOST_PP_IF(p(65, s), BOOST_PP_FOR_65, BOOST_PP_TUPLE_EAT_4)(o(65, s), p, o, m)
-# define BOOST_PP_FOR_65(s, p, o, m) BOOST_PP_IF(p(66, s), m, BOOST_PP_TUPLE_EAT_2)(66, s) BOOST_PP_IF(p(66, s), BOOST_PP_FOR_66, BOOST_PP_TUPLE_EAT_4)(o(66, s), p, o, m)
-# define BOOST_PP_FOR_66(s, p, o, m) BOOST_PP_IF(p(67, s), m, BOOST_PP_TUPLE_EAT_2)(67, s) BOOST_PP_IF(p(67, s), BOOST_PP_FOR_67, BOOST_PP_TUPLE_EAT_4)(o(67, s), p, o, m)
-# define BOOST_PP_FOR_67(s, p, o, m) BOOST_PP_IF(p(68, s), m, BOOST_PP_TUPLE_EAT_2)(68, s) BOOST_PP_IF(p(68, s), BOOST_PP_FOR_68, BOOST_PP_TUPLE_EAT_4)(o(68, s), p, o, m)
-# define BOOST_PP_FOR_68(s, p, o, m) BOOST_PP_IF(p(69, s), m, BOOST_PP_TUPLE_EAT_2)(69, s) BOOST_PP_IF(p(69, s), BOOST_PP_FOR_69, BOOST_PP_TUPLE_EAT_4)(o(69, s), p, o, m)
-# define BOOST_PP_FOR_69(s, p, o, m) BOOST_PP_IF(p(70, s), m, BOOST_PP_TUPLE_EAT_2)(70, s) BOOST_PP_IF(p(70, s), BOOST_PP_FOR_70, BOOST_PP_TUPLE_EAT_4)(o(70, s), p, o, m)
-# define BOOST_PP_FOR_70(s, p, o, m) BOOST_PP_IF(p(71, s), m, BOOST_PP_TUPLE_EAT_2)(71, s) BOOST_PP_IF(p(71, s), BOOST_PP_FOR_71, BOOST_PP_TUPLE_EAT_4)(o(71, s), p, o, m)
-# define BOOST_PP_FOR_71(s, p, o, m) BOOST_PP_IF(p(72, s), m, BOOST_PP_TUPLE_EAT_2)(72, s) BOOST_PP_IF(p(72, s), BOOST_PP_FOR_72, BOOST_PP_TUPLE_EAT_4)(o(72, s), p, o, m)
-# define BOOST_PP_FOR_72(s, p, o, m) BOOST_PP_IF(p(73, s), m, BOOST_PP_TUPLE_EAT_2)(73, s) BOOST_PP_IF(p(73, s), BOOST_PP_FOR_73, BOOST_PP_TUPLE_EAT_4)(o(73, s), p, o, m)
-# define BOOST_PP_FOR_73(s, p, o, m) BOOST_PP_IF(p(74, s), m, BOOST_PP_TUPLE_EAT_2)(74, s) BOOST_PP_IF(p(74, s), BOOST_PP_FOR_74, BOOST_PP_TUPLE_EAT_4)(o(74, s), p, o, m)
-# define BOOST_PP_FOR_74(s, p, o, m) BOOST_PP_IF(p(75, s), m, BOOST_PP_TUPLE_EAT_2)(75, s) BOOST_PP_IF(p(75, s), BOOST_PP_FOR_75, BOOST_PP_TUPLE_EAT_4)(o(75, s), p, o, m)
-# define BOOST_PP_FOR_75(s, p, o, m) BOOST_PP_IF(p(76, s), m, BOOST_PP_TUPLE_EAT_2)(76, s) BOOST_PP_IF(p(76, s), BOOST_PP_FOR_76, BOOST_PP_TUPLE_EAT_4)(o(76, s), p, o, m)
-# define BOOST_PP_FOR_76(s, p, o, m) BOOST_PP_IF(p(77, s), m, BOOST_PP_TUPLE_EAT_2)(77, s) BOOST_PP_IF(p(77, s), BOOST_PP_FOR_77, BOOST_PP_TUPLE_EAT_4)(o(77, s), p, o, m)
-# define BOOST_PP_FOR_77(s, p, o, m) BOOST_PP_IF(p(78, s), m, BOOST_PP_TUPLE_EAT_2)(78, s) BOOST_PP_IF(p(78, s), BOOST_PP_FOR_78, BOOST_PP_TUPLE_EAT_4)(o(78, s), p, o, m)
-# define BOOST_PP_FOR_78(s, p, o, m) BOOST_PP_IF(p(79, s), m, BOOST_PP_TUPLE_EAT_2)(79, s) BOOST_PP_IF(p(79, s), BOOST_PP_FOR_79, BOOST_PP_TUPLE_EAT_4)(o(79, s), p, o, m)
-# define BOOST_PP_FOR_79(s, p, o, m) BOOST_PP_IF(p(80, s), m, BOOST_PP_TUPLE_EAT_2)(80, s) BOOST_PP_IF(p(80, s), BOOST_PP_FOR_80, BOOST_PP_TUPLE_EAT_4)(o(80, s), p, o, m)
-# define BOOST_PP_FOR_80(s, p, o, m) BOOST_PP_IF(p(81, s), m, BOOST_PP_TUPLE_EAT_2)(81, s) BOOST_PP_IF(p(81, s), BOOST_PP_FOR_81, BOOST_PP_TUPLE_EAT_4)(o(81, s), p, o, m)
-# define BOOST_PP_FOR_81(s, p, o, m) BOOST_PP_IF(p(82, s), m, BOOST_PP_TUPLE_EAT_2)(82, s) BOOST_PP_IF(p(82, s), BOOST_PP_FOR_82, BOOST_PP_TUPLE_EAT_4)(o(82, s), p, o, m)
-# define BOOST_PP_FOR_82(s, p, o, m) BOOST_PP_IF(p(83, s), m, BOOST_PP_TUPLE_EAT_2)(83, s) BOOST_PP_IF(p(83, s), BOOST_PP_FOR_83, BOOST_PP_TUPLE_EAT_4)(o(83, s), p, o, m)
-# define BOOST_PP_FOR_83(s, p, o, m) BOOST_PP_IF(p(84, s), m, BOOST_PP_TUPLE_EAT_2)(84, s) BOOST_PP_IF(p(84, s), BOOST_PP_FOR_84, BOOST_PP_TUPLE_EAT_4)(o(84, s), p, o, m)
-# define BOOST_PP_FOR_84(s, p, o, m) BOOST_PP_IF(p(85, s), m, BOOST_PP_TUPLE_EAT_2)(85, s) BOOST_PP_IF(p(85, s), BOOST_PP_FOR_85, BOOST_PP_TUPLE_EAT_4)(o(85, s), p, o, m)
-# define BOOST_PP_FOR_85(s, p, o, m) BOOST_PP_IF(p(86, s), m, BOOST_PP_TUPLE_EAT_2)(86, s) BOOST_PP_IF(p(86, s), BOOST_PP_FOR_86, BOOST_PP_TUPLE_EAT_4)(o(86, s), p, o, m)
-# define BOOST_PP_FOR_86(s, p, o, m) BOOST_PP_IF(p(87, s), m, BOOST_PP_TUPLE_EAT_2)(87, s) BOOST_PP_IF(p(87, s), BOOST_PP_FOR_87, BOOST_PP_TUPLE_EAT_4)(o(87, s), p, o, m)
-# define BOOST_PP_FOR_87(s, p, o, m) BOOST_PP_IF(p(88, s), m, BOOST_PP_TUPLE_EAT_2)(88, s) BOOST_PP_IF(p(88, s), BOOST_PP_FOR_88, BOOST_PP_TUPLE_EAT_4)(o(88, s), p, o, m)
-# define BOOST_PP_FOR_88(s, p, o, m) BOOST_PP_IF(p(89, s), m, BOOST_PP_TUPLE_EAT_2)(89, s) BOOST_PP_IF(p(89, s), BOOST_PP_FOR_89, BOOST_PP_TUPLE_EAT_4)(o(89, s), p, o, m)
-# define BOOST_PP_FOR_89(s, p, o, m) BOOST_PP_IF(p(90, s), m, BOOST_PP_TUPLE_EAT_2)(90, s) BOOST_PP_IF(p(90, s), BOOST_PP_FOR_90, BOOST_PP_TUPLE_EAT_4)(o(90, s), p, o, m)
-# define BOOST_PP_FOR_90(s, p, o, m) BOOST_PP_IF(p(91, s), m, BOOST_PP_TUPLE_EAT_2)(91, s) BOOST_PP_IF(p(91, s), BOOST_PP_FOR_91, BOOST_PP_TUPLE_EAT_4)(o(91, s), p, o, m)
-# define BOOST_PP_FOR_91(s, p, o, m) BOOST_PP_IF(p(92, s), m, BOOST_PP_TUPLE_EAT_2)(92, s) BOOST_PP_IF(p(92, s), BOOST_PP_FOR_92, BOOST_PP_TUPLE_EAT_4)(o(92, s), p, o, m)
-# define BOOST_PP_FOR_92(s, p, o, m) BOOST_PP_IF(p(93, s), m, BOOST_PP_TUPLE_EAT_2)(93, s) BOOST_PP_IF(p(93, s), BOOST_PP_FOR_93, BOOST_PP_TUPLE_EAT_4)(o(93, s), p, o, m)
-# define BOOST_PP_FOR_93(s, p, o, m) BOOST_PP_IF(p(94, s), m, BOOST_PP_TUPLE_EAT_2)(94, s) BOOST_PP_IF(p(94, s), BOOST_PP_FOR_94, BOOST_PP_TUPLE_EAT_4)(o(94, s), p, o, m)
-# define BOOST_PP_FOR_94(s, p, o, m) BOOST_PP_IF(p(95, s), m, BOOST_PP_TUPLE_EAT_2)(95, s) BOOST_PP_IF(p(95, s), BOOST_PP_FOR_95, BOOST_PP_TUPLE_EAT_4)(o(95, s), p, o, m)
-# define BOOST_PP_FOR_95(s, p, o, m) BOOST_PP_IF(p(96, s), m, BOOST_PP_TUPLE_EAT_2)(96, s) BOOST_PP_IF(p(96, s), BOOST_PP_FOR_96, BOOST_PP_TUPLE_EAT_4)(o(96, s), p, o, m)
-# define BOOST_PP_FOR_96(s, p, o, m) BOOST_PP_IF(p(97, s), m, BOOST_PP_TUPLE_EAT_2)(97, s) BOOST_PP_IF(p(97, s), BOOST_PP_FOR_97, BOOST_PP_TUPLE_EAT_4)(o(97, s), p, o, m)
-# define BOOST_PP_FOR_97(s, p, o, m) BOOST_PP_IF(p(98, s), m, BOOST_PP_TUPLE_EAT_2)(98, s) BOOST_PP_IF(p(98, s), BOOST_PP_FOR_98, BOOST_PP_TUPLE_EAT_4)(o(98, s), p, o, m)
-# define BOOST_PP_FOR_98(s, p, o, m) BOOST_PP_IF(p(99, s), m, BOOST_PP_TUPLE_EAT_2)(99, s) BOOST_PP_IF(p(99, s), BOOST_PP_FOR_99, BOOST_PP_TUPLE_EAT_4)(o(99, s), p, o, m)
-# define BOOST_PP_FOR_99(s, p, o, m) BOOST_PP_IF(p(100, s), m, BOOST_PP_TUPLE_EAT_2)(100, s) BOOST_PP_IF(p(100, s), BOOST_PP_FOR_100, BOOST_PP_TUPLE_EAT_4)(o(100, s), p, o, m)
-# define BOOST_PP_FOR_100(s, p, o, m) BOOST_PP_IF(p(101, s), m, BOOST_PP_TUPLE_EAT_2)(101, s) BOOST_PP_IF(p(101, s), BOOST_PP_FOR_101, BOOST_PP_TUPLE_EAT_4)(o(101, s), p, o, m)
-# define BOOST_PP_FOR_101(s, p, o, m) BOOST_PP_IF(p(102, s), m, BOOST_PP_TUPLE_EAT_2)(102, s) BOOST_PP_IF(p(102, s), BOOST_PP_FOR_102, BOOST_PP_TUPLE_EAT_4)(o(102, s), p, o, m)
-# define BOOST_PP_FOR_102(s, p, o, m) BOOST_PP_IF(p(103, s), m, BOOST_PP_TUPLE_EAT_2)(103, s) BOOST_PP_IF(p(103, s), BOOST_PP_FOR_103, BOOST_PP_TUPLE_EAT_4)(o(103, s), p, o, m)
-# define BOOST_PP_FOR_103(s, p, o, m) BOOST_PP_IF(p(104, s), m, BOOST_PP_TUPLE_EAT_2)(104, s) BOOST_PP_IF(p(104, s), BOOST_PP_FOR_104, BOOST_PP_TUPLE_EAT_4)(o(104, s), p, o, m)
-# define BOOST_PP_FOR_104(s, p, o, m) BOOST_PP_IF(p(105, s), m, BOOST_PP_TUPLE_EAT_2)(105, s) BOOST_PP_IF(p(105, s), BOOST_PP_FOR_105, BOOST_PP_TUPLE_EAT_4)(o(105, s), p, o, m)
-# define BOOST_PP_FOR_105(s, p, o, m) BOOST_PP_IF(p(106, s), m, BOOST_PP_TUPLE_EAT_2)(106, s) BOOST_PP_IF(p(106, s), BOOST_PP_FOR_106, BOOST_PP_TUPLE_EAT_4)(o(106, s), p, o, m)
-# define BOOST_PP_FOR_106(s, p, o, m) BOOST_PP_IF(p(107, s), m, BOOST_PP_TUPLE_EAT_2)(107, s) BOOST_PP_IF(p(107, s), BOOST_PP_FOR_107, BOOST_PP_TUPLE_EAT_4)(o(107, s), p, o, m)
-# define BOOST_PP_FOR_107(s, p, o, m) BOOST_PP_IF(p(108, s), m, BOOST_PP_TUPLE_EAT_2)(108, s) BOOST_PP_IF(p(108, s), BOOST_PP_FOR_108, BOOST_PP_TUPLE_EAT_4)(o(108, s), p, o, m)
-# define BOOST_PP_FOR_108(s, p, o, m) BOOST_PP_IF(p(109, s), m, BOOST_PP_TUPLE_EAT_2)(109, s) BOOST_PP_IF(p(109, s), BOOST_PP_FOR_109, BOOST_PP_TUPLE_EAT_4)(o(109, s), p, o, m)
-# define BOOST_PP_FOR_109(s, p, o, m) BOOST_PP_IF(p(110, s), m, BOOST_PP_TUPLE_EAT_2)(110, s) BOOST_PP_IF(p(110, s), BOOST_PP_FOR_110, BOOST_PP_TUPLE_EAT_4)(o(110, s), p, o, m)
-# define BOOST_PP_FOR_110(s, p, o, m) BOOST_PP_IF(p(111, s), m, BOOST_PP_TUPLE_EAT_2)(111, s) BOOST_PP_IF(p(111, s), BOOST_PP_FOR_111, BOOST_PP_TUPLE_EAT_4)(o(111, s), p, o, m)
-# define BOOST_PP_FOR_111(s, p, o, m) BOOST_PP_IF(p(112, s), m, BOOST_PP_TUPLE_EAT_2)(112, s) BOOST_PP_IF(p(112, s), BOOST_PP_FOR_112, BOOST_PP_TUPLE_EAT_4)(o(112, s), p, o, m)
-# define BOOST_PP_FOR_112(s, p, o, m) BOOST_PP_IF(p(113, s), m, BOOST_PP_TUPLE_EAT_2)(113, s) BOOST_PP_IF(p(113, s), BOOST_PP_FOR_113, BOOST_PP_TUPLE_EAT_4)(o(113, s), p, o, m)
-# define BOOST_PP_FOR_113(s, p, o, m) BOOST_PP_IF(p(114, s), m, BOOST_PP_TUPLE_EAT_2)(114, s) BOOST_PP_IF(p(114, s), BOOST_PP_FOR_114, BOOST_PP_TUPLE_EAT_4)(o(114, s), p, o, m)
-# define BOOST_PP_FOR_114(s, p, o, m) BOOST_PP_IF(p(115, s), m, BOOST_PP_TUPLE_EAT_2)(115, s) BOOST_PP_IF(p(115, s), BOOST_PP_FOR_115, BOOST_PP_TUPLE_EAT_4)(o(115, s), p, o, m)
-# define BOOST_PP_FOR_115(s, p, o, m) BOOST_PP_IF(p(116, s), m, BOOST_PP_TUPLE_EAT_2)(116, s) BOOST_PP_IF(p(116, s), BOOST_PP_FOR_116, BOOST_PP_TUPLE_EAT_4)(o(116, s), p, o, m)
-# define BOOST_PP_FOR_116(s, p, o, m) BOOST_PP_IF(p(117, s), m, BOOST_PP_TUPLE_EAT_2)(117, s) BOOST_PP_IF(p(117, s), BOOST_PP_FOR_117, BOOST_PP_TUPLE_EAT_4)(o(117, s), p, o, m)
-# define BOOST_PP_FOR_117(s, p, o, m) BOOST_PP_IF(p(118, s), m, BOOST_PP_TUPLE_EAT_2)(118, s) BOOST_PP_IF(p(118, s), BOOST_PP_FOR_118, BOOST_PP_TUPLE_EAT_4)(o(118, s), p, o, m)
-# define BOOST_PP_FOR_118(s, p, o, m) BOOST_PP_IF(p(119, s), m, BOOST_PP_TUPLE_EAT_2)(119, s) BOOST_PP_IF(p(119, s), BOOST_PP_FOR_119, BOOST_PP_TUPLE_EAT_4)(o(119, s), p, o, m)
-# define BOOST_PP_FOR_119(s, p, o, m) BOOST_PP_IF(p(120, s), m, BOOST_PP_TUPLE_EAT_2)(120, s) BOOST_PP_IF(p(120, s), BOOST_PP_FOR_120, BOOST_PP_TUPLE_EAT_4)(o(120, s), p, o, m)
-# define BOOST_PP_FOR_120(s, p, o, m) BOOST_PP_IF(p(121, s), m, BOOST_PP_TUPLE_EAT_2)(121, s) BOOST_PP_IF(p(121, s), BOOST_PP_FOR_121, BOOST_PP_TUPLE_EAT_4)(o(121, s), p, o, m)
-# define BOOST_PP_FOR_121(s, p, o, m) BOOST_PP_IF(p(122, s), m, BOOST_PP_TUPLE_EAT_2)(122, s) BOOST_PP_IF(p(122, s), BOOST_PP_FOR_122, BOOST_PP_TUPLE_EAT_4)(o(122, s), p, o, m)
-# define BOOST_PP_FOR_122(s, p, o, m) BOOST_PP_IF(p(123, s), m, BOOST_PP_TUPLE_EAT_2)(123, s) BOOST_PP_IF(p(123, s), BOOST_PP_FOR_123, BOOST_PP_TUPLE_EAT_4)(o(123, s), p, o, m)
-# define BOOST_PP_FOR_123(s, p, o, m) BOOST_PP_IF(p(124, s), m, BOOST_PP_TUPLE_EAT_2)(124, s) BOOST_PP_IF(p(124, s), BOOST_PP_FOR_124, BOOST_PP_TUPLE_EAT_4)(o(124, s), p, o, m)
-# define BOOST_PP_FOR_124(s, p, o, m) BOOST_PP_IF(p(125, s), m, BOOST_PP_TUPLE_EAT_2)(125, s) BOOST_PP_IF(p(125, s), BOOST_PP_FOR_125, BOOST_PP_TUPLE_EAT_4)(o(125, s), p, o, m)
-# define BOOST_PP_FOR_125(s, p, o, m) BOOST_PP_IF(p(126, s), m, BOOST_PP_TUPLE_EAT_2)(126, s) BOOST_PP_IF(p(126, s), BOOST_PP_FOR_126, BOOST_PP_TUPLE_EAT_4)(o(126, s), p, o, m)
-# define BOOST_PP_FOR_126(s, p, o, m) BOOST_PP_IF(p(127, s), m, BOOST_PP_TUPLE_EAT_2)(127, s) BOOST_PP_IF(p(127, s), BOOST_PP_FOR_127, BOOST_PP_TUPLE_EAT_4)(o(127, s), p, o, m)
-# define BOOST_PP_FOR_127(s, p, o, m) BOOST_PP_IF(p(128, s), m, BOOST_PP_TUPLE_EAT_2)(128, s) BOOST_PP_IF(p(128, s), BOOST_PP_FOR_128, BOOST_PP_TUPLE_EAT_4)(o(128, s), p, o, m)
-# define BOOST_PP_FOR_128(s, p, o, m) BOOST_PP_IF(p(129, s), m, BOOST_PP_TUPLE_EAT_2)(129, s) BOOST_PP_IF(p(129, s), BOOST_PP_FOR_129, BOOST_PP_TUPLE_EAT_4)(o(129, s), p, o, m)
-# define BOOST_PP_FOR_129(s, p, o, m) BOOST_PP_IF(p(130, s), m, BOOST_PP_TUPLE_EAT_2)(130, s) BOOST_PP_IF(p(130, s), BOOST_PP_FOR_130, BOOST_PP_TUPLE_EAT_4)(o(130, s), p, o, m)
-# define BOOST_PP_FOR_130(s, p, o, m) BOOST_PP_IF(p(131, s), m, BOOST_PP_TUPLE_EAT_2)(131, s) BOOST_PP_IF(p(131, s), BOOST_PP_FOR_131, BOOST_PP_TUPLE_EAT_4)(o(131, s), p, o, m)
-# define BOOST_PP_FOR_131(s, p, o, m) BOOST_PP_IF(p(132, s), m, BOOST_PP_TUPLE_EAT_2)(132, s) BOOST_PP_IF(p(132, s), BOOST_PP_FOR_132, BOOST_PP_TUPLE_EAT_4)(o(132, s), p, o, m)
-# define BOOST_PP_FOR_132(s, p, o, m) BOOST_PP_IF(p(133, s), m, BOOST_PP_TUPLE_EAT_2)(133, s) BOOST_PP_IF(p(133, s), BOOST_PP_FOR_133, BOOST_PP_TUPLE_EAT_4)(o(133, s), p, o, m)
-# define BOOST_PP_FOR_133(s, p, o, m) BOOST_PP_IF(p(134, s), m, BOOST_PP_TUPLE_EAT_2)(134, s) BOOST_PP_IF(p(134, s), BOOST_PP_FOR_134, BOOST_PP_TUPLE_EAT_4)(o(134, s), p, o, m)
-# define BOOST_PP_FOR_134(s, p, o, m) BOOST_PP_IF(p(135, s), m, BOOST_PP_TUPLE_EAT_2)(135, s) BOOST_PP_IF(p(135, s), BOOST_PP_FOR_135, BOOST_PP_TUPLE_EAT_4)(o(135, s), p, o, m)
-# define BOOST_PP_FOR_135(s, p, o, m) BOOST_PP_IF(p(136, s), m, BOOST_PP_TUPLE_EAT_2)(136, s) BOOST_PP_IF(p(136, s), BOOST_PP_FOR_136, BOOST_PP_TUPLE_EAT_4)(o(136, s), p, o, m)
-# define BOOST_PP_FOR_136(s, p, o, m) BOOST_PP_IF(p(137, s), m, BOOST_PP_TUPLE_EAT_2)(137, s) BOOST_PP_IF(p(137, s), BOOST_PP_FOR_137, BOOST_PP_TUPLE_EAT_4)(o(137, s), p, o, m)
-# define BOOST_PP_FOR_137(s, p, o, m) BOOST_PP_IF(p(138, s), m, BOOST_PP_TUPLE_EAT_2)(138, s) BOOST_PP_IF(p(138, s), BOOST_PP_FOR_138, BOOST_PP_TUPLE_EAT_4)(o(138, s), p, o, m)
-# define BOOST_PP_FOR_138(s, p, o, m) BOOST_PP_IF(p(139, s), m, BOOST_PP_TUPLE_EAT_2)(139, s) BOOST_PP_IF(p(139, s), BOOST_PP_FOR_139, BOOST_PP_TUPLE_EAT_4)(o(139, s), p, o, m)
-# define BOOST_PP_FOR_139(s, p, o, m) BOOST_PP_IF(p(140, s), m, BOOST_PP_TUPLE_EAT_2)(140, s) BOOST_PP_IF(p(140, s), BOOST_PP_FOR_140, BOOST_PP_TUPLE_EAT_4)(o(140, s), p, o, m)
-# define BOOST_PP_FOR_140(s, p, o, m) BOOST_PP_IF(p(141, s), m, BOOST_PP_TUPLE_EAT_2)(141, s) BOOST_PP_IF(p(141, s), BOOST_PP_FOR_141, BOOST_PP_TUPLE_EAT_4)(o(141, s), p, o, m)
-# define BOOST_PP_FOR_141(s, p, o, m) BOOST_PP_IF(p(142, s), m, BOOST_PP_TUPLE_EAT_2)(142, s) BOOST_PP_IF(p(142, s), BOOST_PP_FOR_142, BOOST_PP_TUPLE_EAT_4)(o(142, s), p, o, m)
-# define BOOST_PP_FOR_142(s, p, o, m) BOOST_PP_IF(p(143, s), m, BOOST_PP_TUPLE_EAT_2)(143, s) BOOST_PP_IF(p(143, s), BOOST_PP_FOR_143, BOOST_PP_TUPLE_EAT_4)(o(143, s), p, o, m)
-# define BOOST_PP_FOR_143(s, p, o, m) BOOST_PP_IF(p(144, s), m, BOOST_PP_TUPLE_EAT_2)(144, s) BOOST_PP_IF(p(144, s), BOOST_PP_FOR_144, BOOST_PP_TUPLE_EAT_4)(o(144, s), p, o, m)
-# define BOOST_PP_FOR_144(s, p, o, m) BOOST_PP_IF(p(145, s), m, BOOST_PP_TUPLE_EAT_2)(145, s) BOOST_PP_IF(p(145, s), BOOST_PP_FOR_145, BOOST_PP_TUPLE_EAT_4)(o(145, s), p, o, m)
-# define BOOST_PP_FOR_145(s, p, o, m) BOOST_PP_IF(p(146, s), m, BOOST_PP_TUPLE_EAT_2)(146, s) BOOST_PP_IF(p(146, s), BOOST_PP_FOR_146, BOOST_PP_TUPLE_EAT_4)(o(146, s), p, o, m)
-# define BOOST_PP_FOR_146(s, p, o, m) BOOST_PP_IF(p(147, s), m, BOOST_PP_TUPLE_EAT_2)(147, s) BOOST_PP_IF(p(147, s), BOOST_PP_FOR_147, BOOST_PP_TUPLE_EAT_4)(o(147, s), p, o, m)
-# define BOOST_PP_FOR_147(s, p, o, m) BOOST_PP_IF(p(148, s), m, BOOST_PP_TUPLE_EAT_2)(148, s) BOOST_PP_IF(p(148, s), BOOST_PP_FOR_148, BOOST_PP_TUPLE_EAT_4)(o(148, s), p, o, m)
-# define BOOST_PP_FOR_148(s, p, o, m) BOOST_PP_IF(p(149, s), m, BOOST_PP_TUPLE_EAT_2)(149, s) BOOST_PP_IF(p(149, s), BOOST_PP_FOR_149, BOOST_PP_TUPLE_EAT_4)(o(149, s), p, o, m)
-# define BOOST_PP_FOR_149(s, p, o, m) BOOST_PP_IF(p(150, s), m, BOOST_PP_TUPLE_EAT_2)(150, s) BOOST_PP_IF(p(150, s), BOOST_PP_FOR_150, BOOST_PP_TUPLE_EAT_4)(o(150, s), p, o, m)
-# define BOOST_PP_FOR_150(s, p, o, m) BOOST_PP_IF(p(151, s), m, BOOST_PP_TUPLE_EAT_2)(151, s) BOOST_PP_IF(p(151, s), BOOST_PP_FOR_151, BOOST_PP_TUPLE_EAT_4)(o(151, s), p, o, m)
-# define BOOST_PP_FOR_151(s, p, o, m) BOOST_PP_IF(p(152, s), m, BOOST_PP_TUPLE_EAT_2)(152, s) BOOST_PP_IF(p(152, s), BOOST_PP_FOR_152, BOOST_PP_TUPLE_EAT_4)(o(152, s), p, o, m)
-# define BOOST_PP_FOR_152(s, p, o, m) BOOST_PP_IF(p(153, s), m, BOOST_PP_TUPLE_EAT_2)(153, s) BOOST_PP_IF(p(153, s), BOOST_PP_FOR_153, BOOST_PP_TUPLE_EAT_4)(o(153, s), p, o, m)
-# define BOOST_PP_FOR_153(s, p, o, m) BOOST_PP_IF(p(154, s), m, BOOST_PP_TUPLE_EAT_2)(154, s) BOOST_PP_IF(p(154, s), BOOST_PP_FOR_154, BOOST_PP_TUPLE_EAT_4)(o(154, s), p, o, m)
-# define BOOST_PP_FOR_154(s, p, o, m) BOOST_PP_IF(p(155, s), m, BOOST_PP_TUPLE_EAT_2)(155, s) BOOST_PP_IF(p(155, s), BOOST_PP_FOR_155, BOOST_PP_TUPLE_EAT_4)(o(155, s), p, o, m)
-# define BOOST_PP_FOR_155(s, p, o, m) BOOST_PP_IF(p(156, s), m, BOOST_PP_TUPLE_EAT_2)(156, s) BOOST_PP_IF(p(156, s), BOOST_PP_FOR_156, BOOST_PP_TUPLE_EAT_4)(o(156, s), p, o, m)
-# define BOOST_PP_FOR_156(s, p, o, m) BOOST_PP_IF(p(157, s), m, BOOST_PP_TUPLE_EAT_2)(157, s) BOOST_PP_IF(p(157, s), BOOST_PP_FOR_157, BOOST_PP_TUPLE_EAT_4)(o(157, s), p, o, m)
-# define BOOST_PP_FOR_157(s, p, o, m) BOOST_PP_IF(p(158, s), m, BOOST_PP_TUPLE_EAT_2)(158, s) BOOST_PP_IF(p(158, s), BOOST_PP_FOR_158, BOOST_PP_TUPLE_EAT_4)(o(158, s), p, o, m)
-# define BOOST_PP_FOR_158(s, p, o, m) BOOST_PP_IF(p(159, s), m, BOOST_PP_TUPLE_EAT_2)(159, s) BOOST_PP_IF(p(159, s), BOOST_PP_FOR_159, BOOST_PP_TUPLE_EAT_4)(o(159, s), p, o, m)
-# define BOOST_PP_FOR_159(s, p, o, m) BOOST_PP_IF(p(160, s), m, BOOST_PP_TUPLE_EAT_2)(160, s) BOOST_PP_IF(p(160, s), BOOST_PP_FOR_160, BOOST_PP_TUPLE_EAT_4)(o(160, s), p, o, m)
-# define BOOST_PP_FOR_160(s, p, o, m) BOOST_PP_IF(p(161, s), m, BOOST_PP_TUPLE_EAT_2)(161, s) BOOST_PP_IF(p(161, s), BOOST_PP_FOR_161, BOOST_PP_TUPLE_EAT_4)(o(161, s), p, o, m)
-# define BOOST_PP_FOR_161(s, p, o, m) BOOST_PP_IF(p(162, s), m, BOOST_PP_TUPLE_EAT_2)(162, s) BOOST_PP_IF(p(162, s), BOOST_PP_FOR_162, BOOST_PP_TUPLE_EAT_4)(o(162, s), p, o, m)
-# define BOOST_PP_FOR_162(s, p, o, m) BOOST_PP_IF(p(163, s), m, BOOST_PP_TUPLE_EAT_2)(163, s) BOOST_PP_IF(p(163, s), BOOST_PP_FOR_163, BOOST_PP_TUPLE_EAT_4)(o(163, s), p, o, m)
-# define BOOST_PP_FOR_163(s, p, o, m) BOOST_PP_IF(p(164, s), m, BOOST_PP_TUPLE_EAT_2)(164, s) BOOST_PP_IF(p(164, s), BOOST_PP_FOR_164, BOOST_PP_TUPLE_EAT_4)(o(164, s), p, o, m)
-# define BOOST_PP_FOR_164(s, p, o, m) BOOST_PP_IF(p(165, s), m, BOOST_PP_TUPLE_EAT_2)(165, s) BOOST_PP_IF(p(165, s), BOOST_PP_FOR_165, BOOST_PP_TUPLE_EAT_4)(o(165, s), p, o, m)
-# define BOOST_PP_FOR_165(s, p, o, m) BOOST_PP_IF(p(166, s), m, BOOST_PP_TUPLE_EAT_2)(166, s) BOOST_PP_IF(p(166, s), BOOST_PP_FOR_166, BOOST_PP_TUPLE_EAT_4)(o(166, s), p, o, m)
-# define BOOST_PP_FOR_166(s, p, o, m) BOOST_PP_IF(p(167, s), m, BOOST_PP_TUPLE_EAT_2)(167, s) BOOST_PP_IF(p(167, s), BOOST_PP_FOR_167, BOOST_PP_TUPLE_EAT_4)(o(167, s), p, o, m)
-# define BOOST_PP_FOR_167(s, p, o, m) BOOST_PP_IF(p(168, s), m, BOOST_PP_TUPLE_EAT_2)(168, s) BOOST_PP_IF(p(168, s), BOOST_PP_FOR_168, BOOST_PP_TUPLE_EAT_4)(o(168, s), p, o, m)
-# define BOOST_PP_FOR_168(s, p, o, m) BOOST_PP_IF(p(169, s), m, BOOST_PP_TUPLE_EAT_2)(169, s) BOOST_PP_IF(p(169, s), BOOST_PP_FOR_169, BOOST_PP_TUPLE_EAT_4)(o(169, s), p, o, m)
-# define BOOST_PP_FOR_169(s, p, o, m) BOOST_PP_IF(p(170, s), m, BOOST_PP_TUPLE_EAT_2)(170, s) BOOST_PP_IF(p(170, s), BOOST_PP_FOR_170, BOOST_PP_TUPLE_EAT_4)(o(170, s), p, o, m)
-# define BOOST_PP_FOR_170(s, p, o, m) BOOST_PP_IF(p(171, s), m, BOOST_PP_TUPLE_EAT_2)(171, s) BOOST_PP_IF(p(171, s), BOOST_PP_FOR_171, BOOST_PP_TUPLE_EAT_4)(o(171, s), p, o, m)
-# define BOOST_PP_FOR_171(s, p, o, m) BOOST_PP_IF(p(172, s), m, BOOST_PP_TUPLE_EAT_2)(172, s) BOOST_PP_IF(p(172, s), BOOST_PP_FOR_172, BOOST_PP_TUPLE_EAT_4)(o(172, s), p, o, m)
-# define BOOST_PP_FOR_172(s, p, o, m) BOOST_PP_IF(p(173, s), m, BOOST_PP_TUPLE_EAT_2)(173, s) BOOST_PP_IF(p(173, s), BOOST_PP_FOR_173, BOOST_PP_TUPLE_EAT_4)(o(173, s), p, o, m)
-# define BOOST_PP_FOR_173(s, p, o, m) BOOST_PP_IF(p(174, s), m, BOOST_PP_TUPLE_EAT_2)(174, s) BOOST_PP_IF(p(174, s), BOOST_PP_FOR_174, BOOST_PP_TUPLE_EAT_4)(o(174, s), p, o, m)
-# define BOOST_PP_FOR_174(s, p, o, m) BOOST_PP_IF(p(175, s), m, BOOST_PP_TUPLE_EAT_2)(175, s) BOOST_PP_IF(p(175, s), BOOST_PP_FOR_175, BOOST_PP_TUPLE_EAT_4)(o(175, s), p, o, m)
-# define BOOST_PP_FOR_175(s, p, o, m) BOOST_PP_IF(p(176, s), m, BOOST_PP_TUPLE_EAT_2)(176, s) BOOST_PP_IF(p(176, s), BOOST_PP_FOR_176, BOOST_PP_TUPLE_EAT_4)(o(176, s), p, o, m)
-# define BOOST_PP_FOR_176(s, p, o, m) BOOST_PP_IF(p(177, s), m, BOOST_PP_TUPLE_EAT_2)(177, s) BOOST_PP_IF(p(177, s), BOOST_PP_FOR_177, BOOST_PP_TUPLE_EAT_4)(o(177, s), p, o, m)
-# define BOOST_PP_FOR_177(s, p, o, m) BOOST_PP_IF(p(178, s), m, BOOST_PP_TUPLE_EAT_2)(178, s) BOOST_PP_IF(p(178, s), BOOST_PP_FOR_178, BOOST_PP_TUPLE_EAT_4)(o(178, s), p, o, m)
-# define BOOST_PP_FOR_178(s, p, o, m) BOOST_PP_IF(p(179, s), m, BOOST_PP_TUPLE_EAT_2)(179, s) BOOST_PP_IF(p(179, s), BOOST_PP_FOR_179, BOOST_PP_TUPLE_EAT_4)(o(179, s), p, o, m)
-# define BOOST_PP_FOR_179(s, p, o, m) BOOST_PP_IF(p(180, s), m, BOOST_PP_TUPLE_EAT_2)(180, s) BOOST_PP_IF(p(180, s), BOOST_PP_FOR_180, BOOST_PP_TUPLE_EAT_4)(o(180, s), p, o, m)
-# define BOOST_PP_FOR_180(s, p, o, m) BOOST_PP_IF(p(181, s), m, BOOST_PP_TUPLE_EAT_2)(181, s) BOOST_PP_IF(p(181, s), BOOST_PP_FOR_181, BOOST_PP_TUPLE_EAT_4)(o(181, s), p, o, m)
-# define BOOST_PP_FOR_181(s, p, o, m) BOOST_PP_IF(p(182, s), m, BOOST_PP_TUPLE_EAT_2)(182, s) BOOST_PP_IF(p(182, s), BOOST_PP_FOR_182, BOOST_PP_TUPLE_EAT_4)(o(182, s), p, o, m)
-# define BOOST_PP_FOR_182(s, p, o, m) BOOST_PP_IF(p(183, s), m, BOOST_PP_TUPLE_EAT_2)(183, s) BOOST_PP_IF(p(183, s), BOOST_PP_FOR_183, BOOST_PP_TUPLE_EAT_4)(o(183, s), p, o, m)
-# define BOOST_PP_FOR_183(s, p, o, m) BOOST_PP_IF(p(184, s), m, BOOST_PP_TUPLE_EAT_2)(184, s) BOOST_PP_IF(p(184, s), BOOST_PP_FOR_184, BOOST_PP_TUPLE_EAT_4)(o(184, s), p, o, m)
-# define BOOST_PP_FOR_184(s, p, o, m) BOOST_PP_IF(p(185, s), m, BOOST_PP_TUPLE_EAT_2)(185, s) BOOST_PP_IF(p(185, s), BOOST_PP_FOR_185, BOOST_PP_TUPLE_EAT_4)(o(185, s), p, o, m)
-# define BOOST_PP_FOR_185(s, p, o, m) BOOST_PP_IF(p(186, s), m, BOOST_PP_TUPLE_EAT_2)(186, s) BOOST_PP_IF(p(186, s), BOOST_PP_FOR_186, BOOST_PP_TUPLE_EAT_4)(o(186, s), p, o, m)
-# define BOOST_PP_FOR_186(s, p, o, m) BOOST_PP_IF(p(187, s), m, BOOST_PP_TUPLE_EAT_2)(187, s) BOOST_PP_IF(p(187, s), BOOST_PP_FOR_187, BOOST_PP_TUPLE_EAT_4)(o(187, s), p, o, m)
-# define BOOST_PP_FOR_187(s, p, o, m) BOOST_PP_IF(p(188, s), m, BOOST_PP_TUPLE_EAT_2)(188, s) BOOST_PP_IF(p(188, s), BOOST_PP_FOR_188, BOOST_PP_TUPLE_EAT_4)(o(188, s), p, o, m)
-# define BOOST_PP_FOR_188(s, p, o, m) BOOST_PP_IF(p(189, s), m, BOOST_PP_TUPLE_EAT_2)(189, s) BOOST_PP_IF(p(189, s), BOOST_PP_FOR_189, BOOST_PP_TUPLE_EAT_4)(o(189, s), p, o, m)
-# define BOOST_PP_FOR_189(s, p, o, m) BOOST_PP_IF(p(190, s), m, BOOST_PP_TUPLE_EAT_2)(190, s) BOOST_PP_IF(p(190, s), BOOST_PP_FOR_190, BOOST_PP_TUPLE_EAT_4)(o(190, s), p, o, m)
-# define BOOST_PP_FOR_190(s, p, o, m) BOOST_PP_IF(p(191, s), m, BOOST_PP_TUPLE_EAT_2)(191, s) BOOST_PP_IF(p(191, s), BOOST_PP_FOR_191, BOOST_PP_TUPLE_EAT_4)(o(191, s), p, o, m)
-# define BOOST_PP_FOR_191(s, p, o, m) BOOST_PP_IF(p(192, s), m, BOOST_PP_TUPLE_EAT_2)(192, s) BOOST_PP_IF(p(192, s), BOOST_PP_FOR_192, BOOST_PP_TUPLE_EAT_4)(o(192, s), p, o, m)
-# define BOOST_PP_FOR_192(s, p, o, m) BOOST_PP_IF(p(193, s), m, BOOST_PP_TUPLE_EAT_2)(193, s) BOOST_PP_IF(p(193, s), BOOST_PP_FOR_193, BOOST_PP_TUPLE_EAT_4)(o(193, s), p, o, m)
-# define BOOST_PP_FOR_193(s, p, o, m) BOOST_PP_IF(p(194, s), m, BOOST_PP_TUPLE_EAT_2)(194, s) BOOST_PP_IF(p(194, s), BOOST_PP_FOR_194, BOOST_PP_TUPLE_EAT_4)(o(194, s), p, o, m)
-# define BOOST_PP_FOR_194(s, p, o, m) BOOST_PP_IF(p(195, s), m, BOOST_PP_TUPLE_EAT_2)(195, s) BOOST_PP_IF(p(195, s), BOOST_PP_FOR_195, BOOST_PP_TUPLE_EAT_4)(o(195, s), p, o, m)
-# define BOOST_PP_FOR_195(s, p, o, m) BOOST_PP_IF(p(196, s), m, BOOST_PP_TUPLE_EAT_2)(196, s) BOOST_PP_IF(p(196, s), BOOST_PP_FOR_196, BOOST_PP_TUPLE_EAT_4)(o(196, s), p, o, m)
-# define BOOST_PP_FOR_196(s, p, o, m) BOOST_PP_IF(p(197, s), m, BOOST_PP_TUPLE_EAT_2)(197, s) BOOST_PP_IF(p(197, s), BOOST_PP_FOR_197, BOOST_PP_TUPLE_EAT_4)(o(197, s), p, o, m)
-# define BOOST_PP_FOR_197(s, p, o, m) BOOST_PP_IF(p(198, s), m, BOOST_PP_TUPLE_EAT_2)(198, s) BOOST_PP_IF(p(198, s), BOOST_PP_FOR_198, BOOST_PP_TUPLE_EAT_4)(o(198, s), p, o, m)
-# define BOOST_PP_FOR_198(s, p, o, m) BOOST_PP_IF(p(199, s), m, BOOST_PP_TUPLE_EAT_2)(199, s) BOOST_PP_IF(p(199, s), BOOST_PP_FOR_199, BOOST_PP_TUPLE_EAT_4)(o(199, s), p, o, m)
-# define BOOST_PP_FOR_199(s, p, o, m) BOOST_PP_IF(p(200, s), m, BOOST_PP_TUPLE_EAT_2)(200, s) BOOST_PP_IF(p(200, s), BOOST_PP_FOR_200, BOOST_PP_TUPLE_EAT_4)(o(200, s), p, o, m)
-# define BOOST_PP_FOR_200(s, p, o, m) BOOST_PP_IF(p(201, s), m, BOOST_PP_TUPLE_EAT_2)(201, s) BOOST_PP_IF(p(201, s), BOOST_PP_FOR_201, BOOST_PP_TUPLE_EAT_4)(o(201, s), p, o, m)
-# define BOOST_PP_FOR_201(s, p, o, m) BOOST_PP_IF(p(202, s), m, BOOST_PP_TUPLE_EAT_2)(202, s) BOOST_PP_IF(p(202, s), BOOST_PP_FOR_202, BOOST_PP_TUPLE_EAT_4)(o(202, s), p, o, m)
-# define BOOST_PP_FOR_202(s, p, o, m) BOOST_PP_IF(p(203, s), m, BOOST_PP_TUPLE_EAT_2)(203, s) BOOST_PP_IF(p(203, s), BOOST_PP_FOR_203, BOOST_PP_TUPLE_EAT_4)(o(203, s), p, o, m)
-# define BOOST_PP_FOR_203(s, p, o, m) BOOST_PP_IF(p(204, s), m, BOOST_PP_TUPLE_EAT_2)(204, s) BOOST_PP_IF(p(204, s), BOOST_PP_FOR_204, BOOST_PP_TUPLE_EAT_4)(o(204, s), p, o, m)
-# define BOOST_PP_FOR_204(s, p, o, m) BOOST_PP_IF(p(205, s), m, BOOST_PP_TUPLE_EAT_2)(205, s) BOOST_PP_IF(p(205, s), BOOST_PP_FOR_205, BOOST_PP_TUPLE_EAT_4)(o(205, s), p, o, m)
-# define BOOST_PP_FOR_205(s, p, o, m) BOOST_PP_IF(p(206, s), m, BOOST_PP_TUPLE_EAT_2)(206, s) BOOST_PP_IF(p(206, s), BOOST_PP_FOR_206, BOOST_PP_TUPLE_EAT_4)(o(206, s), p, o, m)
-# define BOOST_PP_FOR_206(s, p, o, m) BOOST_PP_IF(p(207, s), m, BOOST_PP_TUPLE_EAT_2)(207, s) BOOST_PP_IF(p(207, s), BOOST_PP_FOR_207, BOOST_PP_TUPLE_EAT_4)(o(207, s), p, o, m)
-# define BOOST_PP_FOR_207(s, p, o, m) BOOST_PP_IF(p(208, s), m, BOOST_PP_TUPLE_EAT_2)(208, s) BOOST_PP_IF(p(208, s), BOOST_PP_FOR_208, BOOST_PP_TUPLE_EAT_4)(o(208, s), p, o, m)
-# define BOOST_PP_FOR_208(s, p, o, m) BOOST_PP_IF(p(209, s), m, BOOST_PP_TUPLE_EAT_2)(209, s) BOOST_PP_IF(p(209, s), BOOST_PP_FOR_209, BOOST_PP_TUPLE_EAT_4)(o(209, s), p, o, m)
-# define BOOST_PP_FOR_209(s, p, o, m) BOOST_PP_IF(p(210, s), m, BOOST_PP_TUPLE_EAT_2)(210, s) BOOST_PP_IF(p(210, s), BOOST_PP_FOR_210, BOOST_PP_TUPLE_EAT_4)(o(210, s), p, o, m)
-# define BOOST_PP_FOR_210(s, p, o, m) BOOST_PP_IF(p(211, s), m, BOOST_PP_TUPLE_EAT_2)(211, s) BOOST_PP_IF(p(211, s), BOOST_PP_FOR_211, BOOST_PP_TUPLE_EAT_4)(o(211, s), p, o, m)
-# define BOOST_PP_FOR_211(s, p, o, m) BOOST_PP_IF(p(212, s), m, BOOST_PP_TUPLE_EAT_2)(212, s) BOOST_PP_IF(p(212, s), BOOST_PP_FOR_212, BOOST_PP_TUPLE_EAT_4)(o(212, s), p, o, m)
-# define BOOST_PP_FOR_212(s, p, o, m) BOOST_PP_IF(p(213, s), m, BOOST_PP_TUPLE_EAT_2)(213, s) BOOST_PP_IF(p(213, s), BOOST_PP_FOR_213, BOOST_PP_TUPLE_EAT_4)(o(213, s), p, o, m)
-# define BOOST_PP_FOR_213(s, p, o, m) BOOST_PP_IF(p(214, s), m, BOOST_PP_TUPLE_EAT_2)(214, s) BOOST_PP_IF(p(214, s), BOOST_PP_FOR_214, BOOST_PP_TUPLE_EAT_4)(o(214, s), p, o, m)
-# define BOOST_PP_FOR_214(s, p, o, m) BOOST_PP_IF(p(215, s), m, BOOST_PP_TUPLE_EAT_2)(215, s) BOOST_PP_IF(p(215, s), BOOST_PP_FOR_215, BOOST_PP_TUPLE_EAT_4)(o(215, s), p, o, m)
-# define BOOST_PP_FOR_215(s, p, o, m) BOOST_PP_IF(p(216, s), m, BOOST_PP_TUPLE_EAT_2)(216, s) BOOST_PP_IF(p(216, s), BOOST_PP_FOR_216, BOOST_PP_TUPLE_EAT_4)(o(216, s), p, o, m)
-# define BOOST_PP_FOR_216(s, p, o, m) BOOST_PP_IF(p(217, s), m, BOOST_PP_TUPLE_EAT_2)(217, s) BOOST_PP_IF(p(217, s), BOOST_PP_FOR_217, BOOST_PP_TUPLE_EAT_4)(o(217, s), p, o, m)
-# define BOOST_PP_FOR_217(s, p, o, m) BOOST_PP_IF(p(218, s), m, BOOST_PP_TUPLE_EAT_2)(218, s) BOOST_PP_IF(p(218, s), BOOST_PP_FOR_218, BOOST_PP_TUPLE_EAT_4)(o(218, s), p, o, m)
-# define BOOST_PP_FOR_218(s, p, o, m) BOOST_PP_IF(p(219, s), m, BOOST_PP_TUPLE_EAT_2)(219, s) BOOST_PP_IF(p(219, s), BOOST_PP_FOR_219, BOOST_PP_TUPLE_EAT_4)(o(219, s), p, o, m)
-# define BOOST_PP_FOR_219(s, p, o, m) BOOST_PP_IF(p(220, s), m, BOOST_PP_TUPLE_EAT_2)(220, s) BOOST_PP_IF(p(220, s), BOOST_PP_FOR_220, BOOST_PP_TUPLE_EAT_4)(o(220, s), p, o, m)
-# define BOOST_PP_FOR_220(s, p, o, m) BOOST_PP_IF(p(221, s), m, BOOST_PP_TUPLE_EAT_2)(221, s) BOOST_PP_IF(p(221, s), BOOST_PP_FOR_221, BOOST_PP_TUPLE_EAT_4)(o(221, s), p, o, m)
-# define BOOST_PP_FOR_221(s, p, o, m) BOOST_PP_IF(p(222, s), m, BOOST_PP_TUPLE_EAT_2)(222, s) BOOST_PP_IF(p(222, s), BOOST_PP_FOR_222, BOOST_PP_TUPLE_EAT_4)(o(222, s), p, o, m)
-# define BOOST_PP_FOR_222(s, p, o, m) BOOST_PP_IF(p(223, s), m, BOOST_PP_TUPLE_EAT_2)(223, s) BOOST_PP_IF(p(223, s), BOOST_PP_FOR_223, BOOST_PP_TUPLE_EAT_4)(o(223, s), p, o, m)
-# define BOOST_PP_FOR_223(s, p, o, m) BOOST_PP_IF(p(224, s), m, BOOST_PP_TUPLE_EAT_2)(224, s) BOOST_PP_IF(p(224, s), BOOST_PP_FOR_224, BOOST_PP_TUPLE_EAT_4)(o(224, s), p, o, m)
-# define BOOST_PP_FOR_224(s, p, o, m) BOOST_PP_IF(p(225, s), m, BOOST_PP_TUPLE_EAT_2)(225, s) BOOST_PP_IF(p(225, s), BOOST_PP_FOR_225, BOOST_PP_TUPLE_EAT_4)(o(225, s), p, o, m)
-# define BOOST_PP_FOR_225(s, p, o, m) BOOST_PP_IF(p(226, s), m, BOOST_PP_TUPLE_EAT_2)(226, s) BOOST_PP_IF(p(226, s), BOOST_PP_FOR_226, BOOST_PP_TUPLE_EAT_4)(o(226, s), p, o, m)
-# define BOOST_PP_FOR_226(s, p, o, m) BOOST_PP_IF(p(227, s), m, BOOST_PP_TUPLE_EAT_2)(227, s) BOOST_PP_IF(p(227, s), BOOST_PP_FOR_227, BOOST_PP_TUPLE_EAT_4)(o(227, s), p, o, m)
-# define BOOST_PP_FOR_227(s, p, o, m) BOOST_PP_IF(p(228, s), m, BOOST_PP_TUPLE_EAT_2)(228, s) BOOST_PP_IF(p(228, s), BOOST_PP_FOR_228, BOOST_PP_TUPLE_EAT_4)(o(228, s), p, o, m)
-# define BOOST_PP_FOR_228(s, p, o, m) BOOST_PP_IF(p(229, s), m, BOOST_PP_TUPLE_EAT_2)(229, s) BOOST_PP_IF(p(229, s), BOOST_PP_FOR_229, BOOST_PP_TUPLE_EAT_4)(o(229, s), p, o, m)
-# define BOOST_PP_FOR_229(s, p, o, m) BOOST_PP_IF(p(230, s), m, BOOST_PP_TUPLE_EAT_2)(230, s) BOOST_PP_IF(p(230, s), BOOST_PP_FOR_230, BOOST_PP_TUPLE_EAT_4)(o(230, s), p, o, m)
-# define BOOST_PP_FOR_230(s, p, o, m) BOOST_PP_IF(p(231, s), m, BOOST_PP_TUPLE_EAT_2)(231, s) BOOST_PP_IF(p(231, s), BOOST_PP_FOR_231, BOOST_PP_TUPLE_EAT_4)(o(231, s), p, o, m)
-# define BOOST_PP_FOR_231(s, p, o, m) BOOST_PP_IF(p(232, s), m, BOOST_PP_TUPLE_EAT_2)(232, s) BOOST_PP_IF(p(232, s), BOOST_PP_FOR_232, BOOST_PP_TUPLE_EAT_4)(o(232, s), p, o, m)
-# define BOOST_PP_FOR_232(s, p, o, m) BOOST_PP_IF(p(233, s), m, BOOST_PP_TUPLE_EAT_2)(233, s) BOOST_PP_IF(p(233, s), BOOST_PP_FOR_233, BOOST_PP_TUPLE_EAT_4)(o(233, s), p, o, m)
-# define BOOST_PP_FOR_233(s, p, o, m) BOOST_PP_IF(p(234, s), m, BOOST_PP_TUPLE_EAT_2)(234, s) BOOST_PP_IF(p(234, s), BOOST_PP_FOR_234, BOOST_PP_TUPLE_EAT_4)(o(234, s), p, o, m)
-# define BOOST_PP_FOR_234(s, p, o, m) BOOST_PP_IF(p(235, s), m, BOOST_PP_TUPLE_EAT_2)(235, s) BOOST_PP_IF(p(235, s), BOOST_PP_FOR_235, BOOST_PP_TUPLE_EAT_4)(o(235, s), p, o, m)
-# define BOOST_PP_FOR_235(s, p, o, m) BOOST_PP_IF(p(236, s), m, BOOST_PP_TUPLE_EAT_2)(236, s) BOOST_PP_IF(p(236, s), BOOST_PP_FOR_236, BOOST_PP_TUPLE_EAT_4)(o(236, s), p, o, m)
-# define BOOST_PP_FOR_236(s, p, o, m) BOOST_PP_IF(p(237, s), m, BOOST_PP_TUPLE_EAT_2)(237, s) BOOST_PP_IF(p(237, s), BOOST_PP_FOR_237, BOOST_PP_TUPLE_EAT_4)(o(237, s), p, o, m)
-# define BOOST_PP_FOR_237(s, p, o, m) BOOST_PP_IF(p(238, s), m, BOOST_PP_TUPLE_EAT_2)(238, s) BOOST_PP_IF(p(238, s), BOOST_PP_FOR_238, BOOST_PP_TUPLE_EAT_4)(o(238, s), p, o, m)
-# define BOOST_PP_FOR_238(s, p, o, m) BOOST_PP_IF(p(239, s), m, BOOST_PP_TUPLE_EAT_2)(239, s) BOOST_PP_IF(p(239, s), BOOST_PP_FOR_239, BOOST_PP_TUPLE_EAT_4)(o(239, s), p, o, m)
-# define BOOST_PP_FOR_239(s, p, o, m) BOOST_PP_IF(p(240, s), m, BOOST_PP_TUPLE_EAT_2)(240, s) BOOST_PP_IF(p(240, s), BOOST_PP_FOR_240, BOOST_PP_TUPLE_EAT_4)(o(240, s), p, o, m)
-# define BOOST_PP_FOR_240(s, p, o, m) BOOST_PP_IF(p(241, s), m, BOOST_PP_TUPLE_EAT_2)(241, s) BOOST_PP_IF(p(241, s), BOOST_PP_FOR_241, BOOST_PP_TUPLE_EAT_4)(o(241, s), p, o, m)
-# define BOOST_PP_FOR_241(s, p, o, m) BOOST_PP_IF(p(242, s), m, BOOST_PP_TUPLE_EAT_2)(242, s) BOOST_PP_IF(p(242, s), BOOST_PP_FOR_242, BOOST_PP_TUPLE_EAT_4)(o(242, s), p, o, m)
-# define BOOST_PP_FOR_242(s, p, o, m) BOOST_PP_IF(p(243, s), m, BOOST_PP_TUPLE_EAT_2)(243, s) BOOST_PP_IF(p(243, s), BOOST_PP_FOR_243, BOOST_PP_TUPLE_EAT_4)(o(243, s), p, o, m)
-# define BOOST_PP_FOR_243(s, p, o, m) BOOST_PP_IF(p(244, s), m, BOOST_PP_TUPLE_EAT_2)(244, s) BOOST_PP_IF(p(244, s), BOOST_PP_FOR_244, BOOST_PP_TUPLE_EAT_4)(o(244, s), p, o, m)
-# define BOOST_PP_FOR_244(s, p, o, m) BOOST_PP_IF(p(245, s), m, BOOST_PP_TUPLE_EAT_2)(245, s) BOOST_PP_IF(p(245, s), BOOST_PP_FOR_245, BOOST_PP_TUPLE_EAT_4)(o(245, s), p, o, m)
-# define BOOST_PP_FOR_245(s, p, o, m) BOOST_PP_IF(p(246, s), m, BOOST_PP_TUPLE_EAT_2)(246, s) BOOST_PP_IF(p(246, s), BOOST_PP_FOR_246, BOOST_PP_TUPLE_EAT_4)(o(246, s), p, o, m)
-# define BOOST_PP_FOR_246(s, p, o, m) BOOST_PP_IF(p(247, s), m, BOOST_PP_TUPLE_EAT_2)(247, s) BOOST_PP_IF(p(247, s), BOOST_PP_FOR_247, BOOST_PP_TUPLE_EAT_4)(o(247, s), p, o, m)
-# define BOOST_PP_FOR_247(s, p, o, m) BOOST_PP_IF(p(248, s), m, BOOST_PP_TUPLE_EAT_2)(248, s) BOOST_PP_IF(p(248, s), BOOST_PP_FOR_248, BOOST_PP_TUPLE_EAT_4)(o(248, s), p, o, m)
-# define BOOST_PP_FOR_248(s, p, o, m) BOOST_PP_IF(p(249, s), m, BOOST_PP_TUPLE_EAT_2)(249, s) BOOST_PP_IF(p(249, s), BOOST_PP_FOR_249, BOOST_PP_TUPLE_EAT_4)(o(249, s), p, o, m)
-# define BOOST_PP_FOR_249(s, p, o, m) BOOST_PP_IF(p(250, s), m, BOOST_PP_TUPLE_EAT_2)(250, s) BOOST_PP_IF(p(250, s), BOOST_PP_FOR_250, BOOST_PP_TUPLE_EAT_4)(o(250, s), p, o, m)
-# define BOOST_PP_FOR_250(s, p, o, m) BOOST_PP_IF(p(251, s), m, BOOST_PP_TUPLE_EAT_2)(251, s) BOOST_PP_IF(p(251, s), BOOST_PP_FOR_251, BOOST_PP_TUPLE_EAT_4)(o(251, s), p, o, m)
-# define BOOST_PP_FOR_251(s, p, o, m) BOOST_PP_IF(p(252, s), m, BOOST_PP_TUPLE_EAT_2)(252, s) BOOST_PP_IF(p(252, s), BOOST_PP_FOR_252, BOOST_PP_TUPLE_EAT_4)(o(252, s), p, o, m)
-# define BOOST_PP_FOR_252(s, p, o, m) BOOST_PP_IF(p(253, s), m, BOOST_PP_TUPLE_EAT_2)(253, s) BOOST_PP_IF(p(253, s), BOOST_PP_FOR_253, BOOST_PP_TUPLE_EAT_4)(o(253, s), p, o, m)
-# define BOOST_PP_FOR_253(s, p, o, m) BOOST_PP_IF(p(254, s), m, BOOST_PP_TUPLE_EAT_2)(254, s) BOOST_PP_IF(p(254, s), BOOST_PP_FOR_254, BOOST_PP_TUPLE_EAT_4)(o(254, s), p, o, m)
-# define BOOST_PP_FOR_254(s, p, o, m) BOOST_PP_IF(p(255, s), m, BOOST_PP_TUPLE_EAT_2)(255, s) BOOST_PP_IF(p(255, s), BOOST_PP_FOR_255, BOOST_PP_TUPLE_EAT_4)(o(255, s), p, o, m)
-# define BOOST_PP_FOR_255(s, p, o, m) BOOST_PP_IF(p(256, s), m, BOOST_PP_TUPLE_EAT_2)(256, s) BOOST_PP_IF(p(256, s), BOOST_PP_FOR_256, BOOST_PP_TUPLE_EAT_4)(o(256, s), p, o, m)
-# define BOOST_PP_FOR_256(s, p, o, m) BOOST_PP_IF(p(257, s), m, BOOST_PP_TUPLE_EAT_2)(257, s) BOOST_PP_IF(p(257, s), BOOST_PP_FOR_257, BOOST_PP_TUPLE_EAT_4)(o(257, s), p, o, m)
-#
-# endif
diff --git a/boost/preprocessor/repetition/enum.hpp b/boost/preprocessor/repetition/enum.hpp
deleted file mode 100644
index 0198cd9..0000000
--- a/boost/preprocessor/repetition/enum.hpp
+++ /dev/null
@@ -1,66 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * Distributed under the Boost Software License, Version 1.0. (See
-#  * accompanying file LICENSE_1_0.txt or copy at
-#  * http://www.boost.org/LICENSE_1_0.txt)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_HPP
-# define BOOST_PREPROCESSOR_REPETITION_ENUM_HPP
-#
-# include <boost/preprocessor/cat.hpp>
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/debug/error.hpp>
-# include <boost/preprocessor/detail/auto_rec.hpp>
-# include <boost/preprocessor/punctuation/comma_if.hpp>
-# include <boost/preprocessor/repetition/repeat.hpp>
-# include <boost/preprocessor/tuple/elem.hpp>
-# include <boost/preprocessor/tuple/rem.hpp>
-#
-# /* BOOST_PP_ENUM */
-#
-# if 0
-#    define BOOST_PP_ENUM(count, macro, data)
-# endif
-#
-# define BOOST_PP_ENUM BOOST_PP_CAT(BOOST_PP_ENUM_, BOOST_PP_AUTO_REC(BOOST_PP_REPEAT_P, 4))
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_ENUM_1(c, m, d) BOOST_PP_REPEAT_1(c, BOOST_PP_ENUM_M_1, (m, d))
-#    define BOOST_PP_ENUM_2(c, m, d) BOOST_PP_REPEAT_2(c, BOOST_PP_ENUM_M_2, (m, d))
-#    define BOOST_PP_ENUM_3(c, m, d) BOOST_PP_REPEAT_3(c, BOOST_PP_ENUM_M_3, (m, d))
-# else
-#    define BOOST_PP_ENUM_1(c, m, d) BOOST_PP_ENUM_1_I(c, m, d)
-#    define BOOST_PP_ENUM_2(c, m, d) BOOST_PP_ENUM_2_I(c, m, d)
-#    define BOOST_PP_ENUM_3(c, m, d) BOOST_PP_ENUM_3_I(c, m, d)
-#    define BOOST_PP_ENUM_1_I(c, m, d) BOOST_PP_REPEAT_1(c, BOOST_PP_ENUM_M_1, (m, d))
-#    define BOOST_PP_ENUM_2_I(c, m, d) BOOST_PP_REPEAT_2(c, BOOST_PP_ENUM_M_2, (m, d))
-#    define BOOST_PP_ENUM_3_I(c, m, d) BOOST_PP_REPEAT_3(c, BOOST_PP_ENUM_M_3, (m, d))
-# endif
-#
-# define BOOST_PP_ENUM_4(c, m, d) BOOST_PP_ERROR(0x0003)
-#
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()
-#    define BOOST_PP_ENUM_M_1(z, n, md) BOOST_PP_ENUM_M_1_IM(z, n, BOOST_PP_TUPLE_REM_2 md)
-#    define BOOST_PP_ENUM_M_2(z, n, md) BOOST_PP_ENUM_M_2_IM(z, n, BOOST_PP_TUPLE_REM_2 md)
-#    define BOOST_PP_ENUM_M_3(z, n, md) BOOST_PP_ENUM_M_3_IM(z, n, BOOST_PP_TUPLE_REM_2 md)
-#    define BOOST_PP_ENUM_M_1_IM(z, n, im) BOOST_PP_ENUM_M_1_I(z, n, im)
-#    define BOOST_PP_ENUM_M_2_IM(z, n, im) BOOST_PP_ENUM_M_2_I(z, n, im)
-#    define BOOST_PP_ENUM_M_3_IM(z, n, im) BOOST_PP_ENUM_M_3_I(z, n, im)
-# else
-#    define BOOST_PP_ENUM_M_1(z, n, md) BOOST_PP_ENUM_M_1_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, md), BOOST_PP_TUPLE_ELEM(2, 1, md))
-#    define BOOST_PP_ENUM_M_2(z, n, md) BOOST_PP_ENUM_M_2_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, md), BOOST_PP_TUPLE_ELEM(2, 1, md))
-#    define BOOST_PP_ENUM_M_3(z, n, md) BOOST_PP_ENUM_M_3_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, md), BOOST_PP_TUPLE_ELEM(2, 1, md))
-# endif
-#
-# define BOOST_PP_ENUM_M_1_I(z, n, m, d) BOOST_PP_COMMA_IF(n) m(z, n, d)
-# define BOOST_PP_ENUM_M_2_I(z, n, m, d) BOOST_PP_COMMA_IF(n) m(z, n, d)
-# define BOOST_PP_ENUM_M_3_I(z, n, m, d) BOOST_PP_COMMA_IF(n) m(z, n, d)
-#
-# endif
diff --git a/boost/preprocessor/repetition/enum_binary_params.hpp b/boost/preprocessor/repetition/enum_binary_params.hpp
deleted file mode 100644
index a2c1048..0000000
--- a/boost/preprocessor/repetition/enum_binary_params.hpp
+++ /dev/null
@@ -1,54 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_BINARY_PARAMS_HPP
-# define BOOST_PREPROCESSOR_REPETITION_ENUM_BINARY_PARAMS_HPP
-#
-# include <boost/preprocessor/cat.hpp>
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/punctuation/comma_if.hpp>
-# include <boost/preprocessor/repetition/repeat.hpp>
-# include <boost/preprocessor/tuple/elem.hpp>
-# include <boost/preprocessor/tuple/rem.hpp>
-#
-# /* BOOST_PP_ENUM_BINARY_PARAMS */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_ENUM_BINARY_PARAMS(count, p1, p2) BOOST_PP_REPEAT(count, BOOST_PP_ENUM_BINARY_PARAMS_M, (p1, p2))
-# else
-#    define BOOST_PP_ENUM_BINARY_PARAMS(count, p1, p2) BOOST_PP_ENUM_BINARY_PARAMS_I(count, p1, p2)
-#    define BOOST_PP_ENUM_BINARY_PARAMS_I(count, p1, p2) BOOST_PP_REPEAT(count, BOOST_PP_ENUM_BINARY_PARAMS_M, (p1, p2))
-# endif
-#
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()
-#    define BOOST_PP_ENUM_BINARY_PARAMS_M(z, n, pp) BOOST_PP_ENUM_BINARY_PARAMS_M_IM(z, n, BOOST_PP_TUPLE_REM_2 pp)
-#    define BOOST_PP_ENUM_BINARY_PARAMS_M_IM(z, n, im) BOOST_PP_ENUM_BINARY_PARAMS_M_I(z, n, im)
-# else
-#    define BOOST_PP_ENUM_BINARY_PARAMS_M(z, n, pp) BOOST_PP_ENUM_BINARY_PARAMS_M_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, pp), BOOST_PP_TUPLE_ELEM(2, 1, pp))
-# endif
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
-#    define BOOST_PP_ENUM_BINARY_PARAMS_M_I(z, n, p1, p2) BOOST_PP_ENUM_BINARY_PARAMS_M_II(z, n, p1, p2)
-#    define BOOST_PP_ENUM_BINARY_PARAMS_M_II(z, n, p1, p2) BOOST_PP_COMMA_IF(n) p1 ## n p2 ## n
-# else
-#    define BOOST_PP_ENUM_BINARY_PARAMS_M_I(z, n, p1, p2) BOOST_PP_COMMA_IF(n) BOOST_PP_CAT(p1, n) BOOST_PP_CAT(p2, n)
-# endif
-#
-# /* BOOST_PP_ENUM_BINARY_PARAMS_Z */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_ENUM_BINARY_PARAMS_Z(z, count, p1, p2) BOOST_PP_REPEAT_ ## z(count, BOOST_PP_ENUM_BINARY_PARAMS_M, (p1, p2))
-# else
-#    define BOOST_PP_ENUM_BINARY_PARAMS_Z(z, count, p1, p2) BOOST_PP_ENUM_BINARY_PARAMS_Z_I(z, count, p1, p2)
-#    define BOOST_PP_ENUM_BINARY_PARAMS_Z_I(z, count, p1, p2) BOOST_PP_REPEAT_ ## z(count, BOOST_PP_ENUM_BINARY_PARAMS_M, (p1, p2))
-# endif
-#
-# endif
diff --git a/boost/preprocessor/repetition/enum_params.hpp b/boost/preprocessor/repetition/enum_params.hpp
deleted file mode 100644
index 65a2369..0000000
--- a/boost/preprocessor/repetition/enum_params.hpp
+++ /dev/null
@@ -1,41 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * Distributed under the Boost Software License, Version 1.0. (See
-#  * accompanying file LICENSE_1_0.txt or copy at
-#  * http://www.boost.org/LICENSE_1_0.txt)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_PARAMS_HPP
-# define BOOST_PREPROCESSOR_REPETITION_ENUM_PARAMS_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/punctuation/comma_if.hpp>
-# include <boost/preprocessor/repetition/repeat.hpp>
-#
-# /* BOOST_PP_ENUM_PARAMS */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_ENUM_PARAMS(count, param) BOOST_PP_REPEAT(count, BOOST_PP_ENUM_PARAMS_M, param)
-# else
-#    define BOOST_PP_ENUM_PARAMS(count, param) BOOST_PP_ENUM_PARAMS_I(count, param)
-#    define BOOST_PP_ENUM_PARAMS_I(count, param) BOOST_PP_REPEAT(count, BOOST_PP_ENUM_PARAMS_M, param)
-# endif
-#
-# define BOOST_PP_ENUM_PARAMS_M(z, n, param) BOOST_PP_COMMA_IF(n) param ## n
-#
-# /* BOOST_PP_ENUM_PARAMS_Z */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_ENUM_PARAMS_Z(z, count, param) BOOST_PP_REPEAT_ ## z(count, BOOST_PP_ENUM_PARAMS_M, param)
-# else
-#    define BOOST_PP_ENUM_PARAMS_Z(z, count, param) BOOST_PP_ENUM_PARAMS_Z_I(z, count, param)
-#    define BOOST_PP_ENUM_PARAMS_Z_I(z, count, param) BOOST_PP_REPEAT_ ## z(count, BOOST_PP_ENUM_PARAMS_M, param)
-# endif
-#
-# endif
diff --git a/boost/preprocessor/repetition/enum_params_with_a_default.hpp b/boost/preprocessor/repetition/enum_params_with_a_default.hpp
deleted file mode 100644
index 7496df6..0000000
--- a/boost/preprocessor/repetition/enum_params_with_a_default.hpp
+++ /dev/null
@@ -1,25 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * Distributed under the Boost Software License, Version 1.0. (See
-#  * accompanying file LICENSE_1_0.txt or copy at
-#  * http://www.boost.org/LICENSE_1_0.txt)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_PARAMS_WITH_A_DEFAULT_HPP
-# define BOOST_PREPROCESSOR_REPETITION_ENUM_PARAMS_WITH_A_DEFAULT_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/facilities/intercept.hpp>
-# include <boost/preprocessor/repetition/enum_binary_params.hpp>
-#
-# /* BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT */
-#
-# define BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(count, param, def) BOOST_PP_ENUM_BINARY_PARAMS(count, param, = def BOOST_PP_INTERCEPT)
-#
-# endif
diff --git a/boost/preprocessor/repetition/enum_shifted.hpp b/boost/preprocessor/repetition/enum_shifted.hpp
deleted file mode 100644
index d5b006f..0000000
--- a/boost/preprocessor/repetition/enum_shifted.hpp
+++ /dev/null
@@ -1,68 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * Distributed under the Boost Software License, Version 1.0. (See
-#  * accompanying file LICENSE_1_0.txt or copy at
-#  * http://www.boost.org/LICENSE_1_0.txt)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_SHIFTED_HPP
-# define BOOST_PREPROCESSOR_REPETITION_ENUM_SHIFTED_HPP
-#
-# include <boost/preprocessor/cat.hpp>
-# include <boost/preprocessor/arithmetic/dec.hpp>
-# include <boost/preprocessor/arithmetic/inc.hpp>
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/debug/error.hpp>
-# include <boost/preprocessor/detail/auto_rec.hpp>
-# include <boost/preprocessor/punctuation/comma_if.hpp>
-# include <boost/preprocessor/repetition/repeat.hpp>
-# include <boost/preprocessor/tuple/elem.hpp>
-# include <boost/preprocessor/tuple/rem.hpp>
-#
-# /* BOOST_PP_ENUM_SHIFTED */
-#
-# if 0
-#    define BOOST_PP_ENUM_SHIFTED(count, macro, data)
-# endif
-#
-# define BOOST_PP_ENUM_SHIFTED BOOST_PP_CAT(BOOST_PP_ENUM_SHIFTED_, BOOST_PP_AUTO_REC(BOOST_PP_REPEAT_P, 4))
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_ENUM_SHIFTED_1(c, m, d) BOOST_PP_REPEAT_1(BOOST_PP_DEC(c), BOOST_PP_ENUM_SHIFTED_M_1, (m, d))
-#    define BOOST_PP_ENUM_SHIFTED_2(c, m, d) BOOST_PP_REPEAT_2(BOOST_PP_DEC(c), BOOST_PP_ENUM_SHIFTED_M_2, (m, d))
-#    define BOOST_PP_ENUM_SHIFTED_3(c, m, d) BOOST_PP_REPEAT_3(BOOST_PP_DEC(c), BOOST_PP_ENUM_SHIFTED_M_3, (m, d))
-# else
-#    define BOOST_PP_ENUM_SHIFTED_1(c, m, d) BOOST_PP_ENUM_SHIFTED_1_I(c, m, d)
-#    define BOOST_PP_ENUM_SHIFTED_2(c, m, d) BOOST_PP_ENUM_SHIFTED_1_2(c, m, d)
-#    define BOOST_PP_ENUM_SHIFTED_3(c, m, d) BOOST_PP_ENUM_SHIFTED_1_3(c, m, d)
-#    define BOOST_PP_ENUM_SHIFTED_1_I(c, m, d) BOOST_PP_REPEAT_1(BOOST_PP_DEC(c), BOOST_PP_ENUM_SHIFTED_M_1, (m, d))
-#    define BOOST_PP_ENUM_SHIFTED_2_I(c, m, d) BOOST_PP_REPEAT_2(BOOST_PP_DEC(c), BOOST_PP_ENUM_SHIFTED_M_2, (m, d))
-#    define BOOST_PP_ENUM_SHIFTED_3_I(c, m, d) BOOST_PP_REPEAT_3(BOOST_PP_DEC(c), BOOST_PP_ENUM_SHIFTED_M_3, (m, d))
-# endif
-#
-# define BOOST_PP_ENUM_SHIFTED_4(c, m, d) BOOST_PP_ERROR(0x0003)
-#
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()
-#    define BOOST_PP_ENUM_SHIFTED_M_1(z, n, md) BOOST_PP_ENUM_SHIFTED_M_1_IM(z, n, BOOST_PP_TUPLE_REM_2 md)
-#    define BOOST_PP_ENUM_SHIFTED_M_2(z, n, md) BOOST_PP_ENUM_SHIFTED_M_2_IM(z, n, BOOST_PP_TUPLE_REM_2 md)
-#    define BOOST_PP_ENUM_SHIFTED_M_3(z, n, md) BOOST_PP_ENUM_SHIFTED_M_3_IM(z, n, BOOST_PP_TUPLE_REM_2 md)
-#    define BOOST_PP_ENUM_SHIFTED_M_1_IM(z, n, im) BOOST_PP_ENUM_SHIFTED_M_1_I(z, n, im)
-#    define BOOST_PP_ENUM_SHIFTED_M_2_IM(z, n, im) BOOST_PP_ENUM_SHIFTED_M_2_I(z, n, im)
-#    define BOOST_PP_ENUM_SHIFTED_M_3_IM(z, n, im) BOOST_PP_ENUM_SHIFTED_M_3_I(z, n, im)
-# else
-#    define BOOST_PP_ENUM_SHIFTED_M_1(z, n, md) BOOST_PP_ENUM_SHIFTED_M_1_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, md), BOOST_PP_TUPLE_ELEM(2, 1, md))
-#    define BOOST_PP_ENUM_SHIFTED_M_2(z, n, md) BOOST_PP_ENUM_SHIFTED_M_2_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, md), BOOST_PP_TUPLE_ELEM(2, 1, md))
-#    define BOOST_PP_ENUM_SHIFTED_M_3(z, n, md) BOOST_PP_ENUM_SHIFTED_M_3_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, md), BOOST_PP_TUPLE_ELEM(2, 1, md))
-# endif
-#
-# define BOOST_PP_ENUM_SHIFTED_M_1_I(z, n, m, d) BOOST_PP_COMMA_IF(n) m(z, BOOST_PP_INC(n), d)
-# define BOOST_PP_ENUM_SHIFTED_M_2_I(z, n, m, d) BOOST_PP_COMMA_IF(n) m(z, BOOST_PP_INC(n), d)
-# define BOOST_PP_ENUM_SHIFTED_M_3_I(z, n, m, d) BOOST_PP_COMMA_IF(n) m(z, BOOST_PP_INC(n), d)
-#
-# endif
diff --git a/boost/preprocessor/repetition/enum_shifted_params.hpp b/boost/preprocessor/repetition/enum_shifted_params.hpp
deleted file mode 100644
index 88b2bf4..0000000
--- a/boost/preprocessor/repetition/enum_shifted_params.hpp
+++ /dev/null
@@ -1,44 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * Distributed under the Boost Software License, Version 1.0. (See
-#  * accompanying file LICENSE_1_0.txt or copy at
-#  * http://www.boost.org/LICENSE_1_0.txt)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_SHIFTED_PARAMS_HPP
-# define BOOST_PREPROCESSOR_REPETITION_ENUM_SHIFTED_PARAMS_HPP
-#
-# include <boost/preprocessor/arithmetic/dec.hpp>
-# include <boost/preprocessor/arithmetic/inc.hpp>
-# include <boost/preprocessor/cat.hpp>
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/punctuation/comma_if.hpp>
-# include <boost/preprocessor/repetition/repeat.hpp>
-#
-# /* BOOST_PP_ENUM_SHIFTED_PARAMS */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_ENUM_SHIFTED_PARAMS(count, param) BOOST_PP_REPEAT(BOOST_PP_DEC(count), BOOST_PP_ENUM_SHIFTED_PARAMS_M, param)
-# else
-#    define BOOST_PP_ENUM_SHIFTED_PARAMS(count, param) BOOST_PP_ENUM_SHIFTED_PARAMS_I(count, param)
-#    define BOOST_PP_ENUM_SHIFTED_PARAMS_I(count, param) BOOST_PP_REPEAT(BOOST_PP_DEC(count), BOOST_PP_ENUM_SHIFTED_PARAMS_M, param)
-# endif
-#
-# define BOOST_PP_ENUM_SHIFTED_PARAMS_M(z, n, param) BOOST_PP_COMMA_IF(n) BOOST_PP_CAT(param, BOOST_PP_INC(n))
-#
-# /* BOOST_PP_ENUM_SHIFTED_PARAMS_Z */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_ENUM_SHIFTED_PARAMS_Z(z, count, param) BOOST_PP_REPEAT_ ## z(BOOST_PP_DEC(count), BOOST_PP_ENUM_SHIFTED_PARAMS_M, param)
-# else
-#    define BOOST_PP_ENUM_SHIFTED_PARAMS_Z(z, count, param) BOOST_PP_ENUM_SHIFTED_PARAMS_Z_I(z, count, param)
-#    define BOOST_PP_ENUM_SHIFTED_PARAMS_Z_I(z, count, param) BOOST_PP_REPEAT_ ## z(BOOST_PP_DEC(count), BOOST_PP_ENUM_SHIFTED_PARAMS_M, param)
-# endif
-#
-# endif
diff --git a/boost/preprocessor/repetition/enum_trailing.hpp b/boost/preprocessor/repetition/enum_trailing.hpp
deleted file mode 100644
index 20af2d5..0000000
--- a/boost/preprocessor/repetition/enum_trailing.hpp
+++ /dev/null
@@ -1,63 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_TRAILING_HPP
-# define BOOST_PREPROCESSOR_REPETITION_ENUM_TRAILING_HPP
-#
-# include <boost/preprocessor/cat.hpp>
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/debug/error.hpp>
-# include <boost/preprocessor/detail/auto_rec.hpp>
-# include <boost/preprocessor/repetition/repeat.hpp>
-# include <boost/preprocessor/tuple/elem.hpp>
-# include <boost/preprocessor/tuple/rem.hpp>
-#
-# /* BOOST_PP_ENUM_TRAILING */
-#
-# if 0
-#    define BOOST_PP_ENUM_TRAILING(count, macro, data)
-# endif
-#
-# define BOOST_PP_ENUM_TRAILING BOOST_PP_CAT(BOOST_PP_ENUM_TRAILING_, BOOST_PP_AUTO_REC(BOOST_PP_REPEAT_P, 4))
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_ENUM_TRAILING_1(c, m, d) BOOST_PP_REPEAT_1(c, BOOST_PP_ENUM_TRAILING_M_1, (m, d))
-#    define BOOST_PP_ENUM_TRAILING_2(c, m, d) BOOST_PP_REPEAT_2(c, BOOST_PP_ENUM_TRAILING_M_2, (m, d))
-#    define BOOST_PP_ENUM_TRAILING_3(c, m, d) BOOST_PP_REPEAT_3(c, BOOST_PP_ENUM_TRAILING_M_3, (m, d))
-# else
-#    define BOOST_PP_ENUM_TRAILING_1(c, m, d) BOOST_PP_ENUM_TRAILING_1_I(c, m, d)
-#    define BOOST_PP_ENUM_TRAILING_2(c, m, d) BOOST_PP_ENUM_TRAILING_2_I(c, m, d)
-#    define BOOST_PP_ENUM_TRAILING_3(c, m, d) BOOST_PP_ENUM_TRAILING_3_I(c, m, d)
-#    define BOOST_PP_ENUM_TRAILING_1_I(c, m, d) BOOST_PP_REPEAT_1(c, BOOST_PP_ENUM_TRAILING_M_1, (m, d))
-#    define BOOST_PP_ENUM_TRAILING_2_I(c, m, d) BOOST_PP_REPEAT_2(c, BOOST_PP_ENUM_TRAILING_M_2, (m, d))
-#    define BOOST_PP_ENUM_TRAILING_3_I(c, m, d) BOOST_PP_REPEAT_3(c, BOOST_PP_ENUM_TRAILING_M_3, (m, d))
-# endif
-#
-# define BOOST_PP_ENUM_TRAILING_4(c, m, d) BOOST_PP_ERROR(0x0003)
-#
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()
-#    define BOOST_PP_ENUM_TRAILING_M_1(z, n, md) BOOST_PP_ENUM_TRAILING_M_1_IM(z, n, BOOST_PP_TUPLE_REM_2 md)
-#    define BOOST_PP_ENUM_TRAILING_M_2(z, n, md) BOOST_PP_ENUM_TRAILING_M_2_IM(z, n, BOOST_PP_TUPLE_REM_2 md)
-#    define BOOST_PP_ENUM_TRAILING_M_3(z, n, md) BOOST_PP_ENUM_TRAILING_M_3_IM(z, n, BOOST_PP_TUPLE_REM_2 md)
-#    define BOOST_PP_ENUM_TRAILING_M_1_IM(z, n, im) BOOST_PP_ENUM_TRAILING_M_1_I(z, n, im)
-#    define BOOST_PP_ENUM_TRAILING_M_2_IM(z, n, im) BOOST_PP_ENUM_TRAILING_M_2_I(z, n, im)
-#    define BOOST_PP_ENUM_TRAILING_M_3_IM(z, n, im) BOOST_PP_ENUM_TRAILING_M_3_I(z, n, im)
-# else
-#    define BOOST_PP_ENUM_TRAILING_M_1(z, n, md) BOOST_PP_ENUM_TRAILING_M_1_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, md), BOOST_PP_TUPLE_ELEM(2, 1, md))
-#    define BOOST_PP_ENUM_TRAILING_M_2(z, n, md) BOOST_PP_ENUM_TRAILING_M_2_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, md), BOOST_PP_TUPLE_ELEM(2, 1, md))
-#    define BOOST_PP_ENUM_TRAILING_M_3(z, n, md) BOOST_PP_ENUM_TRAILING_M_3_I(z, n, BOOST_PP_TUPLE_ELEM(2, 0, md), BOOST_PP_TUPLE_ELEM(2, 1, md))
-# endif
-#
-# define BOOST_PP_ENUM_TRAILING_M_1_I(z, n, m, d) , m(z, n, d)
-# define BOOST_PP_ENUM_TRAILING_M_2_I(z, n, m, d) , m(z, n, d)
-# define BOOST_PP_ENUM_TRAILING_M_3_I(z, n, m, d) , m(z, n, d)
-#
-# endif
diff --git a/boost/preprocessor/repetition/enum_trailing_params.hpp b/boost/preprocessor/repetition/enum_trailing_params.hpp
deleted file mode 100644
index f7520db..0000000
--- a/boost/preprocessor/repetition/enum_trailing_params.hpp
+++ /dev/null
@@ -1,38 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_TRAILING_PARAMS_HPP
-# define BOOST_PREPROCESSOR_REPETITION_ENUM_TRAILING_PARAMS_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/repetition/repeat.hpp>
-#
-# /* BOOST_PP_ENUM_TRAILING_PARAMS */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_ENUM_TRAILING_PARAMS(count, param) BOOST_PP_REPEAT(count, BOOST_PP_ENUM_TRAILING_PARAMS_M, param)
-# else
-#    define BOOST_PP_ENUM_TRAILING_PARAMS(count, param) BOOST_PP_ENUM_TRAILING_PARAMS_I(count, param)
-#    define BOOST_PP_ENUM_TRAILING_PARAMS_I(count, param) BOOST_PP_REPEAT(count, BOOST_PP_ENUM_TRAILING_PARAMS_M, param)
-# endif
-#
-# define BOOST_PP_ENUM_TRAILING_PARAMS_M(z, n, param) , param ## n
-#
-# /* BOOST_PP_ENUM_TRAILING_PARAMS_Z */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_ENUM_TRAILING_PARAMS_Z(z, count, param) BOOST_PP_REPEAT_ ## z(count, BOOST_PP_ENUM_TRAILING_PARAMS_M, param)
-# else
-#    define BOOST_PP_ENUM_TRAILING_PARAMS_Z(z, count, param) BOOST_PP_ENUM_TRAILING_PARAMS_Z_I(z, count, param)
-#    define BOOST_PP_ENUM_TRAILING_PARAMS_Z_I(z, count, param) BOOST_PP_REPEAT_ ## z(count, BOOST_PP_ENUM_TRAILING_PARAMS_M, param)
-# endif
-#
-# endif
diff --git a/boost/preprocessor/repetition/for.hpp b/boost/preprocessor/repetition/for.hpp
deleted file mode 100644
index 5a63753..0000000
--- a/boost/preprocessor/repetition/for.hpp
+++ /dev/null
@@ -1,306 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * Distributed under the Boost Software License, Version 1.0. (See
-#  * accompanying file LICENSE_1_0.txt or copy at
-#  * http://www.boost.org/LICENSE_1_0.txt)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_REPETITION_FOR_HPP
-# define BOOST_PREPROCESSOR_REPETITION_FOR_HPP
-#
-# include <boost/preprocessor/cat.hpp>
-# include <boost/preprocessor/debug/error.hpp>
-# include <boost/preprocessor/detail/auto_rec.hpp>
-#
-# /* BOOST_PP_FOR */
-#
-# if 0
-#    define BOOST_PP_FOR(state, pred, op, macro)
-# endif
-#
-# define BOOST_PP_FOR BOOST_PP_CAT(BOOST_PP_FOR_, BOOST_PP_AUTO_REC(BOOST_PP_FOR_P, 256))
-#
-# define BOOST_PP_FOR_P(n) BOOST_PP_CAT(BOOST_PP_FOR_CHECK_, BOOST_PP_FOR_ ## n(1, BOOST_PP_FOR_SR_P, BOOST_PP_FOR_SR_O, BOOST_PP_FOR_SR_M))
-#
-# define BOOST_PP_FOR_SR_P(r, s) s
-# define BOOST_PP_FOR_SR_O(r, s) 0
-# define BOOST_PP_FOR_SR_M(r, s) BOOST_PP_NIL
-#
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    include <boost/preprocessor/repetition/detail/edg/for.hpp>
-# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
-#    include <boost/preprocessor/repetition/detail/msvc/for.hpp>
-# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC()
-#    include <boost/preprocessor/repetition/detail/dmc/for.hpp>
-# else
-#    include <boost/preprocessor/repetition/detail/for.hpp>
-# endif
-#
-# define BOOST_PP_FOR_257(s, p, o, m) BOOST_PP_ERROR(0x0002)
-#
-# define BOOST_PP_FOR_CHECK_BOOST_PP_NIL 1
-#
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_1(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_2(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_3(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_4(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_5(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_6(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_7(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_8(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_9(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_10(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_11(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_12(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_13(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_14(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_15(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_16(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_17(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_18(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_19(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_20(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_21(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_22(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_23(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_24(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_25(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_26(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_27(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_28(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_29(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_30(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_31(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_32(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_33(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_34(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_35(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_36(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_37(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_38(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_39(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_40(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_41(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_42(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_43(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_44(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_45(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_46(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_47(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_48(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_49(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_50(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_51(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_52(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_53(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_54(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_55(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_56(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_57(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_58(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_59(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_60(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_61(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_62(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_63(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_64(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_65(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_66(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_67(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_68(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_69(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_70(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_71(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_72(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_73(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_74(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_75(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_76(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_77(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_78(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_79(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_80(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_81(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_82(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_83(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_84(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_85(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_86(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_87(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_88(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_89(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_90(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_91(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_92(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_93(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_94(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_95(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_96(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_97(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_98(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_99(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_100(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_101(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_102(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_103(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_104(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_105(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_106(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_107(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_108(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_109(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_110(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_111(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_112(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_113(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_114(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_115(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_116(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_117(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_118(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_119(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_120(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_121(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_122(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_123(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_124(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_125(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_126(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_127(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_128(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_129(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_130(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_131(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_132(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_133(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_134(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_135(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_136(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_137(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_138(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_139(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_140(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_141(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_142(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_143(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_144(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_145(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_146(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_147(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_148(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_149(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_150(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_151(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_152(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_153(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_154(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_155(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_156(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_157(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_158(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_159(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_160(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_161(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_162(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_163(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_164(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_165(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_166(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_167(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_168(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_169(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_170(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_171(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_172(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_173(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_174(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_175(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_176(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_177(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_178(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_179(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_180(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_181(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_182(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_183(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_184(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_185(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_186(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_187(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_188(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_189(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_190(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_191(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_192(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_193(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_194(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_195(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_196(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_197(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_198(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_199(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_200(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_201(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_202(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_203(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_204(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_205(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_206(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_207(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_208(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_209(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_210(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_211(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_212(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_213(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_214(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_215(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_216(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_217(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_218(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_219(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_220(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_221(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_222(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_223(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_224(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_225(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_226(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_227(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_228(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_229(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_230(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_231(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_232(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_233(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_234(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_235(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_236(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_237(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_238(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_239(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_240(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_241(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_242(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_243(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_244(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_245(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_246(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_247(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_248(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_249(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_250(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_251(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_252(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_253(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_254(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_255(s, p, o, m) 0
-# define BOOST_PP_FOR_CHECK_BOOST_PP_FOR_256(s, p, o, m) 0
-#
-# endif
diff --git a/boost/preprocessor/repetition/repeat.hpp b/boost/preprocessor/repetition/repeat.hpp
deleted file mode 100644
index 0172738..0000000
--- a/boost/preprocessor/repetition/repeat.hpp
+++ /dev/null
@@ -1,825 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * Distributed under the Boost Software License, Version 1.0. (See
-#  * accompanying file LICENSE_1_0.txt or copy at
-#  * http://www.boost.org/LICENSE_1_0.txt)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_REPETITION_REPEAT_HPP
-# define BOOST_PREPROCESSOR_REPETITION_REPEAT_HPP
-#
-# include <boost/preprocessor/cat.hpp>
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/debug/error.hpp>
-# include <boost/preprocessor/detail/auto_rec.hpp>
-# include <boost/preprocessor/tuple/eat.hpp>
-#
-# /* BOOST_PP_REPEAT */
-#
-# if 0
-#    define BOOST_PP_REPEAT(count, macro, data)
-# endif
-#
-# define BOOST_PP_REPEAT BOOST_PP_CAT(BOOST_PP_REPEAT_, BOOST_PP_AUTO_REC(BOOST_PP_REPEAT_P, 4))
-#
-# define BOOST_PP_REPEAT_P(n) BOOST_PP_CAT(BOOST_PP_REPEAT_CHECK_, BOOST_PP_REPEAT_ ## n(1, BOOST_PP_NIL BOOST_PP_TUPLE_EAT_3, BOOST_PP_NIL))
-#
-# define BOOST_PP_REPEAT_CHECK_BOOST_PP_NIL 1
-# define BOOST_PP_REPEAT_CHECK_BOOST_PP_REPEAT_1(c, m, d) 0
-# define BOOST_PP_REPEAT_CHECK_BOOST_PP_REPEAT_2(c, m, d) 0
-# define BOOST_PP_REPEAT_CHECK_BOOST_PP_REPEAT_3(c, m, d) 0
-#
-# define BOOST_PP_REPEAT_1(c, m, d) BOOST_PP_REPEAT_1_I(c, m, d)
-# define BOOST_PP_REPEAT_2(c, m, d) BOOST_PP_REPEAT_2_I(c, m, d)
-# define BOOST_PP_REPEAT_3(c, m, d) BOOST_PP_REPEAT_3_I(c, m, d)
-# define BOOST_PP_REPEAT_4(c, m, d) BOOST_PP_ERROR(0x0003)
-#
-# define BOOST_PP_REPEAT_1_I(c, m, d) BOOST_PP_REPEAT_1_ ## c(m, d)
-# define BOOST_PP_REPEAT_2_I(c, m, d) BOOST_PP_REPEAT_2_ ## c(m, d)
-# define BOOST_PP_REPEAT_3_I(c, m, d) BOOST_PP_REPEAT_3_ ## c(m, d)
-#
-# define BOOST_PP_REPEAT_1ST BOOST_PP_REPEAT_1
-# define BOOST_PP_REPEAT_2ND BOOST_PP_REPEAT_2
-# define BOOST_PP_REPEAT_3RD BOOST_PP_REPEAT_3
-#
-# define BOOST_PP_REPEAT_1_0(m, d)
-# define BOOST_PP_REPEAT_1_1(m, d) m(2, 0, d)
-# define BOOST_PP_REPEAT_1_2(m, d) BOOST_PP_REPEAT_1_1(m, d) m(2, 1, d)
-# define BOOST_PP_REPEAT_1_3(m, d) BOOST_PP_REPEAT_1_2(m, d) m(2, 2, d)
-# define BOOST_PP_REPEAT_1_4(m, d) BOOST_PP_REPEAT_1_3(m, d) m(2, 3, d)
-# define BOOST_PP_REPEAT_1_5(m, d) BOOST_PP_REPEAT_1_4(m, d) m(2, 4, d)
-# define BOOST_PP_REPEAT_1_6(m, d) BOOST_PP_REPEAT_1_5(m, d) m(2, 5, d)
-# define BOOST_PP_REPEAT_1_7(m, d) BOOST_PP_REPEAT_1_6(m, d) m(2, 6, d)
-# define BOOST_PP_REPEAT_1_8(m, d) BOOST_PP_REPEAT_1_7(m, d) m(2, 7, d)
-# define BOOST_PP_REPEAT_1_9(m, d) BOOST_PP_REPEAT_1_8(m, d) m(2, 8, d)
-# define BOOST_PP_REPEAT_1_10(m, d) BOOST_PP_REPEAT_1_9(m, d) m(2, 9, d)
-# define BOOST_PP_REPEAT_1_11(m, d) BOOST_PP_REPEAT_1_10(m, d) m(2, 10, d)
-# define BOOST_PP_REPEAT_1_12(m, d) BOOST_PP_REPEAT_1_11(m, d) m(2, 11, d)
-# define BOOST_PP_REPEAT_1_13(m, d) BOOST_PP_REPEAT_1_12(m, d) m(2, 12, d)
-# define BOOST_PP_REPEAT_1_14(m, d) BOOST_PP_REPEAT_1_13(m, d) m(2, 13, d)
-# define BOOST_PP_REPEAT_1_15(m, d) BOOST_PP_REPEAT_1_14(m, d) m(2, 14, d)
-# define BOOST_PP_REPEAT_1_16(m, d) BOOST_PP_REPEAT_1_15(m, d) m(2, 15, d)
-# define BOOST_PP_REPEAT_1_17(m, d) BOOST_PP_REPEAT_1_16(m, d) m(2, 16, d)
-# define BOOST_PP_REPEAT_1_18(m, d) BOOST_PP_REPEAT_1_17(m, d) m(2, 17, d)
-# define BOOST_PP_REPEAT_1_19(m, d) BOOST_PP_REPEAT_1_18(m, d) m(2, 18, d)
-# define BOOST_PP_REPEAT_1_20(m, d) BOOST_PP_REPEAT_1_19(m, d) m(2, 19, d)
-# define BOOST_PP_REPEAT_1_21(m, d) BOOST_PP_REPEAT_1_20(m, d) m(2, 20, d)
-# define BOOST_PP_REPEAT_1_22(m, d) BOOST_PP_REPEAT_1_21(m, d) m(2, 21, d)
-# define BOOST_PP_REPEAT_1_23(m, d) BOOST_PP_REPEAT_1_22(m, d) m(2, 22, d)
-# define BOOST_PP_REPEAT_1_24(m, d) BOOST_PP_REPEAT_1_23(m, d) m(2, 23, d)
-# define BOOST_PP_REPEAT_1_25(m, d) BOOST_PP_REPEAT_1_24(m, d) m(2, 24, d)
-# define BOOST_PP_REPEAT_1_26(m, d) BOOST_PP_REPEAT_1_25(m, d) m(2, 25, d)
-# define BOOST_PP_REPEAT_1_27(m, d) BOOST_PP_REPEAT_1_26(m, d) m(2, 26, d)
-# define BOOST_PP_REPEAT_1_28(m, d) BOOST_PP_REPEAT_1_27(m, d) m(2, 27, d)
-# define BOOST_PP_REPEAT_1_29(m, d) BOOST_PP_REPEAT_1_28(m, d) m(2, 28, d)
-# define BOOST_PP_REPEAT_1_30(m, d) BOOST_PP_REPEAT_1_29(m, d) m(2, 29, d)
-# define BOOST_PP_REPEAT_1_31(m, d) BOOST_PP_REPEAT_1_30(m, d) m(2, 30, d)
-# define BOOST_PP_REPEAT_1_32(m, d) BOOST_PP_REPEAT_1_31(m, d) m(2, 31, d)
-# define BOOST_PP_REPEAT_1_33(m, d) BOOST_PP_REPEAT_1_32(m, d) m(2, 32, d)
-# define BOOST_PP_REPEAT_1_34(m, d) BOOST_PP_REPEAT_1_33(m, d) m(2, 33, d)
-# define BOOST_PP_REPEAT_1_35(m, d) BOOST_PP_REPEAT_1_34(m, d) m(2, 34, d)
-# define BOOST_PP_REPEAT_1_36(m, d) BOOST_PP_REPEAT_1_35(m, d) m(2, 35, d)
-# define BOOST_PP_REPEAT_1_37(m, d) BOOST_PP_REPEAT_1_36(m, d) m(2, 36, d)
-# define BOOST_PP_REPEAT_1_38(m, d) BOOST_PP_REPEAT_1_37(m, d) m(2, 37, d)
-# define BOOST_PP_REPEAT_1_39(m, d) BOOST_PP_REPEAT_1_38(m, d) m(2, 38, d)
-# define BOOST_PP_REPEAT_1_40(m, d) BOOST_PP_REPEAT_1_39(m, d) m(2, 39, d)
-# define BOOST_PP_REPEAT_1_41(m, d) BOOST_PP_REPEAT_1_40(m, d) m(2, 40, d)
-# define BOOST_PP_REPEAT_1_42(m, d) BOOST_PP_REPEAT_1_41(m, d) m(2, 41, d)
-# define BOOST_PP_REPEAT_1_43(m, d) BOOST_PP_REPEAT_1_42(m, d) m(2, 42, d)
-# define BOOST_PP_REPEAT_1_44(m, d) BOOST_PP_REPEAT_1_43(m, d) m(2, 43, d)
-# define BOOST_PP_REPEAT_1_45(m, d) BOOST_PP_REPEAT_1_44(m, d) m(2, 44, d)
-# define BOOST_PP_REPEAT_1_46(m, d) BOOST_PP_REPEAT_1_45(m, d) m(2, 45, d)
-# define BOOST_PP_REPEAT_1_47(m, d) BOOST_PP_REPEAT_1_46(m, d) m(2, 46, d)
-# define BOOST_PP_REPEAT_1_48(m, d) BOOST_PP_REPEAT_1_47(m, d) m(2, 47, d)
-# define BOOST_PP_REPEAT_1_49(m, d) BOOST_PP_REPEAT_1_48(m, d) m(2, 48, d)
-# define BOOST_PP_REPEAT_1_50(m, d) BOOST_PP_REPEAT_1_49(m, d) m(2, 49, d)
-# define BOOST_PP_REPEAT_1_51(m, d) BOOST_PP_REPEAT_1_50(m, d) m(2, 50, d)
-# define BOOST_PP_REPEAT_1_52(m, d) BOOST_PP_REPEAT_1_51(m, d) m(2, 51, d)
-# define BOOST_PP_REPEAT_1_53(m, d) BOOST_PP_REPEAT_1_52(m, d) m(2, 52, d)
-# define BOOST_PP_REPEAT_1_54(m, d) BOOST_PP_REPEAT_1_53(m, d) m(2, 53, d)
-# define BOOST_PP_REPEAT_1_55(m, d) BOOST_PP_REPEAT_1_54(m, d) m(2, 54, d)
-# define BOOST_PP_REPEAT_1_56(m, d) BOOST_PP_REPEAT_1_55(m, d) m(2, 55, d)
-# define BOOST_PP_REPEAT_1_57(m, d) BOOST_PP_REPEAT_1_56(m, d) m(2, 56, d)
-# define BOOST_PP_REPEAT_1_58(m, d) BOOST_PP_REPEAT_1_57(m, d) m(2, 57, d)
-# define BOOST_PP_REPEAT_1_59(m, d) BOOST_PP_REPEAT_1_58(m, d) m(2, 58, d)
-# define BOOST_PP_REPEAT_1_60(m, d) BOOST_PP_REPEAT_1_59(m, d) m(2, 59, d)
-# define BOOST_PP_REPEAT_1_61(m, d) BOOST_PP_REPEAT_1_60(m, d) m(2, 60, d)
-# define BOOST_PP_REPEAT_1_62(m, d) BOOST_PP_REPEAT_1_61(m, d) m(2, 61, d)
-# define BOOST_PP_REPEAT_1_63(m, d) BOOST_PP_REPEAT_1_62(m, d) m(2, 62, d)
-# define BOOST_PP_REPEAT_1_64(m, d) BOOST_PP_REPEAT_1_63(m, d) m(2, 63, d)
-# define BOOST_PP_REPEAT_1_65(m, d) BOOST_PP_REPEAT_1_64(m, d) m(2, 64, d)
-# define BOOST_PP_REPEAT_1_66(m, d) BOOST_PP_REPEAT_1_65(m, d) m(2, 65, d)
-# define BOOST_PP_REPEAT_1_67(m, d) BOOST_PP_REPEAT_1_66(m, d) m(2, 66, d)
-# define BOOST_PP_REPEAT_1_68(m, d) BOOST_PP_REPEAT_1_67(m, d) m(2, 67, d)
-# define BOOST_PP_REPEAT_1_69(m, d) BOOST_PP_REPEAT_1_68(m, d) m(2, 68, d)
-# define BOOST_PP_REPEAT_1_70(m, d) BOOST_PP_REPEAT_1_69(m, d) m(2, 69, d)
-# define BOOST_PP_REPEAT_1_71(m, d) BOOST_PP_REPEAT_1_70(m, d) m(2, 70, d)
-# define BOOST_PP_REPEAT_1_72(m, d) BOOST_PP_REPEAT_1_71(m, d) m(2, 71, d)
-# define BOOST_PP_REPEAT_1_73(m, d) BOOST_PP_REPEAT_1_72(m, d) m(2, 72, d)
-# define BOOST_PP_REPEAT_1_74(m, d) BOOST_PP_REPEAT_1_73(m, d) m(2, 73, d)
-# define BOOST_PP_REPEAT_1_75(m, d) BOOST_PP_REPEAT_1_74(m, d) m(2, 74, d)
-# define BOOST_PP_REPEAT_1_76(m, d) BOOST_PP_REPEAT_1_75(m, d) m(2, 75, d)
-# define BOOST_PP_REPEAT_1_77(m, d) BOOST_PP_REPEAT_1_76(m, d) m(2, 76, d)
-# define BOOST_PP_REPEAT_1_78(m, d) BOOST_PP_REPEAT_1_77(m, d) m(2, 77, d)
-# define BOOST_PP_REPEAT_1_79(m, d) BOOST_PP_REPEAT_1_78(m, d) m(2, 78, d)
-# define BOOST_PP_REPEAT_1_80(m, d) BOOST_PP_REPEAT_1_79(m, d) m(2, 79, d)
-# define BOOST_PP_REPEAT_1_81(m, d) BOOST_PP_REPEAT_1_80(m, d) m(2, 80, d)
-# define BOOST_PP_REPEAT_1_82(m, d) BOOST_PP_REPEAT_1_81(m, d) m(2, 81, d)
-# define BOOST_PP_REPEAT_1_83(m, d) BOOST_PP_REPEAT_1_82(m, d) m(2, 82, d)
-# define BOOST_PP_REPEAT_1_84(m, d) BOOST_PP_REPEAT_1_83(m, d) m(2, 83, d)
-# define BOOST_PP_REPEAT_1_85(m, d) BOOST_PP_REPEAT_1_84(m, d) m(2, 84, d)
-# define BOOST_PP_REPEAT_1_86(m, d) BOOST_PP_REPEAT_1_85(m, d) m(2, 85, d)
-# define BOOST_PP_REPEAT_1_87(m, d) BOOST_PP_REPEAT_1_86(m, d) m(2, 86, d)
-# define BOOST_PP_REPEAT_1_88(m, d) BOOST_PP_REPEAT_1_87(m, d) m(2, 87, d)
-# define BOOST_PP_REPEAT_1_89(m, d) BOOST_PP_REPEAT_1_88(m, d) m(2, 88, d)
-# define BOOST_PP_REPEAT_1_90(m, d) BOOST_PP_REPEAT_1_89(m, d) m(2, 89, d)
-# define BOOST_PP_REPEAT_1_91(m, d) BOOST_PP_REPEAT_1_90(m, d) m(2, 90, d)
-# define BOOST_PP_REPEAT_1_92(m, d) BOOST_PP_REPEAT_1_91(m, d) m(2, 91, d)
-# define BOOST_PP_REPEAT_1_93(m, d) BOOST_PP_REPEAT_1_92(m, d) m(2, 92, d)
-# define BOOST_PP_REPEAT_1_94(m, d) BOOST_PP_REPEAT_1_93(m, d) m(2, 93, d)
-# define BOOST_PP_REPEAT_1_95(m, d) BOOST_PP_REPEAT_1_94(m, d) m(2, 94, d)
-# define BOOST_PP_REPEAT_1_96(m, d) BOOST_PP_REPEAT_1_95(m, d) m(2, 95, d)
-# define BOOST_PP_REPEAT_1_97(m, d) BOOST_PP_REPEAT_1_96(m, d) m(2, 96, d)
-# define BOOST_PP_REPEAT_1_98(m, d) BOOST_PP_REPEAT_1_97(m, d) m(2, 97, d)
-# define BOOST_PP_REPEAT_1_99(m, d) BOOST_PP_REPEAT_1_98(m, d) m(2, 98, d)
-# define BOOST_PP_REPEAT_1_100(m, d) BOOST_PP_REPEAT_1_99(m, d) m(2, 99, d)
-# define BOOST_PP_REPEAT_1_101(m, d) BOOST_PP_REPEAT_1_100(m, d) m(2, 100, d)
-# define BOOST_PP_REPEAT_1_102(m, d) BOOST_PP_REPEAT_1_101(m, d) m(2, 101, d)
-# define BOOST_PP_REPEAT_1_103(m, d) BOOST_PP_REPEAT_1_102(m, d) m(2, 102, d)
-# define BOOST_PP_REPEAT_1_104(m, d) BOOST_PP_REPEAT_1_103(m, d) m(2, 103, d)
-# define BOOST_PP_REPEAT_1_105(m, d) BOOST_PP_REPEAT_1_104(m, d) m(2, 104, d)
-# define BOOST_PP_REPEAT_1_106(m, d) BOOST_PP_REPEAT_1_105(m, d) m(2, 105, d)
-# define BOOST_PP_REPEAT_1_107(m, d) BOOST_PP_REPEAT_1_106(m, d) m(2, 106, d)
-# define BOOST_PP_REPEAT_1_108(m, d) BOOST_PP_REPEAT_1_107(m, d) m(2, 107, d)
-# define BOOST_PP_REPEAT_1_109(m, d) BOOST_PP_REPEAT_1_108(m, d) m(2, 108, d)
-# define BOOST_PP_REPEAT_1_110(m, d) BOOST_PP_REPEAT_1_109(m, d) m(2, 109, d)
-# define BOOST_PP_REPEAT_1_111(m, d) BOOST_PP_REPEAT_1_110(m, d) m(2, 110, d)
-# define BOOST_PP_REPEAT_1_112(m, d) BOOST_PP_REPEAT_1_111(m, d) m(2, 111, d)
-# define BOOST_PP_REPEAT_1_113(m, d) BOOST_PP_REPEAT_1_112(m, d) m(2, 112, d)
-# define BOOST_PP_REPEAT_1_114(m, d) BOOST_PP_REPEAT_1_113(m, d) m(2, 113, d)
-# define BOOST_PP_REPEAT_1_115(m, d) BOOST_PP_REPEAT_1_114(m, d) m(2, 114, d)
-# define BOOST_PP_REPEAT_1_116(m, d) BOOST_PP_REPEAT_1_115(m, d) m(2, 115, d)
-# define BOOST_PP_REPEAT_1_117(m, d) BOOST_PP_REPEAT_1_116(m, d) m(2, 116, d)
-# define BOOST_PP_REPEAT_1_118(m, d) BOOST_PP_REPEAT_1_117(m, d) m(2, 117, d)
-# define BOOST_PP_REPEAT_1_119(m, d) BOOST_PP_REPEAT_1_118(m, d) m(2, 118, d)
-# define BOOST_PP_REPEAT_1_120(m, d) BOOST_PP_REPEAT_1_119(m, d) m(2, 119, d)
-# define BOOST_PP_REPEAT_1_121(m, d) BOOST_PP_REPEAT_1_120(m, d) m(2, 120, d)
-# define BOOST_PP_REPEAT_1_122(m, d) BOOST_PP_REPEAT_1_121(m, d) m(2, 121, d)
-# define BOOST_PP_REPEAT_1_123(m, d) BOOST_PP_REPEAT_1_122(m, d) m(2, 122, d)
-# define BOOST_PP_REPEAT_1_124(m, d) BOOST_PP_REPEAT_1_123(m, d) m(2, 123, d)
-# define BOOST_PP_REPEAT_1_125(m, d) BOOST_PP_REPEAT_1_124(m, d) m(2, 124, d)
-# define BOOST_PP_REPEAT_1_126(m, d) BOOST_PP_REPEAT_1_125(m, d) m(2, 125, d)
-# define BOOST_PP_REPEAT_1_127(m, d) BOOST_PP_REPEAT_1_126(m, d) m(2, 126, d)
-# define BOOST_PP_REPEAT_1_128(m, d) BOOST_PP_REPEAT_1_127(m, d) m(2, 127, d)
-# define BOOST_PP_REPEAT_1_129(m, d) BOOST_PP_REPEAT_1_128(m, d) m(2, 128, d)
-# define BOOST_PP_REPEAT_1_130(m, d) BOOST_PP_REPEAT_1_129(m, d) m(2, 129, d)
-# define BOOST_PP_REPEAT_1_131(m, d) BOOST_PP_REPEAT_1_130(m, d) m(2, 130, d)
-# define BOOST_PP_REPEAT_1_132(m, d) BOOST_PP_REPEAT_1_131(m, d) m(2, 131, d)
-# define BOOST_PP_REPEAT_1_133(m, d) BOOST_PP_REPEAT_1_132(m, d) m(2, 132, d)
-# define BOOST_PP_REPEAT_1_134(m, d) BOOST_PP_REPEAT_1_133(m, d) m(2, 133, d)
-# define BOOST_PP_REPEAT_1_135(m, d) BOOST_PP_REPEAT_1_134(m, d) m(2, 134, d)
-# define BOOST_PP_REPEAT_1_136(m, d) BOOST_PP_REPEAT_1_135(m, d) m(2, 135, d)
-# define BOOST_PP_REPEAT_1_137(m, d) BOOST_PP_REPEAT_1_136(m, d) m(2, 136, d)
-# define BOOST_PP_REPEAT_1_138(m, d) BOOST_PP_REPEAT_1_137(m, d) m(2, 137, d)
-# define BOOST_PP_REPEAT_1_139(m, d) BOOST_PP_REPEAT_1_138(m, d) m(2, 138, d)
-# define BOOST_PP_REPEAT_1_140(m, d) BOOST_PP_REPEAT_1_139(m, d) m(2, 139, d)
-# define BOOST_PP_REPEAT_1_141(m, d) BOOST_PP_REPEAT_1_140(m, d) m(2, 140, d)
-# define BOOST_PP_REPEAT_1_142(m, d) BOOST_PP_REPEAT_1_141(m, d) m(2, 141, d)
-# define BOOST_PP_REPEAT_1_143(m, d) BOOST_PP_REPEAT_1_142(m, d) m(2, 142, d)
-# define BOOST_PP_REPEAT_1_144(m, d) BOOST_PP_REPEAT_1_143(m, d) m(2, 143, d)
-# define BOOST_PP_REPEAT_1_145(m, d) BOOST_PP_REPEAT_1_144(m, d) m(2, 144, d)
-# define BOOST_PP_REPEAT_1_146(m, d) BOOST_PP_REPEAT_1_145(m, d) m(2, 145, d)
-# define BOOST_PP_REPEAT_1_147(m, d) BOOST_PP_REPEAT_1_146(m, d) m(2, 146, d)
-# define BOOST_PP_REPEAT_1_148(m, d) BOOST_PP_REPEAT_1_147(m, d) m(2, 147, d)
-# define BOOST_PP_REPEAT_1_149(m, d) BOOST_PP_REPEAT_1_148(m, d) m(2, 148, d)
-# define BOOST_PP_REPEAT_1_150(m, d) BOOST_PP_REPEAT_1_149(m, d) m(2, 149, d)
-# define BOOST_PP_REPEAT_1_151(m, d) BOOST_PP_REPEAT_1_150(m, d) m(2, 150, d)
-# define BOOST_PP_REPEAT_1_152(m, d) BOOST_PP_REPEAT_1_151(m, d) m(2, 151, d)
-# define BOOST_PP_REPEAT_1_153(m, d) BOOST_PP_REPEAT_1_152(m, d) m(2, 152, d)
-# define BOOST_PP_REPEAT_1_154(m, d) BOOST_PP_REPEAT_1_153(m, d) m(2, 153, d)
-# define BOOST_PP_REPEAT_1_155(m, d) BOOST_PP_REPEAT_1_154(m, d) m(2, 154, d)
-# define BOOST_PP_REPEAT_1_156(m, d) BOOST_PP_REPEAT_1_155(m, d) m(2, 155, d)
-# define BOOST_PP_REPEAT_1_157(m, d) BOOST_PP_REPEAT_1_156(m, d) m(2, 156, d)
-# define BOOST_PP_REPEAT_1_158(m, d) BOOST_PP_REPEAT_1_157(m, d) m(2, 157, d)
-# define BOOST_PP_REPEAT_1_159(m, d) BOOST_PP_REPEAT_1_158(m, d) m(2, 158, d)
-# define BOOST_PP_REPEAT_1_160(m, d) BOOST_PP_REPEAT_1_159(m, d) m(2, 159, d)
-# define BOOST_PP_REPEAT_1_161(m, d) BOOST_PP_REPEAT_1_160(m, d) m(2, 160, d)
-# define BOOST_PP_REPEAT_1_162(m, d) BOOST_PP_REPEAT_1_161(m, d) m(2, 161, d)
-# define BOOST_PP_REPEAT_1_163(m, d) BOOST_PP_REPEAT_1_162(m, d) m(2, 162, d)
-# define BOOST_PP_REPEAT_1_164(m, d) BOOST_PP_REPEAT_1_163(m, d) m(2, 163, d)
-# define BOOST_PP_REPEAT_1_165(m, d) BOOST_PP_REPEAT_1_164(m, d) m(2, 164, d)
-# define BOOST_PP_REPEAT_1_166(m, d) BOOST_PP_REPEAT_1_165(m, d) m(2, 165, d)
-# define BOOST_PP_REPEAT_1_167(m, d) BOOST_PP_REPEAT_1_166(m, d) m(2, 166, d)
-# define BOOST_PP_REPEAT_1_168(m, d) BOOST_PP_REPEAT_1_167(m, d) m(2, 167, d)
-# define BOOST_PP_REPEAT_1_169(m, d) BOOST_PP_REPEAT_1_168(m, d) m(2, 168, d)
-# define BOOST_PP_REPEAT_1_170(m, d) BOOST_PP_REPEAT_1_169(m, d) m(2, 169, d)
-# define BOOST_PP_REPEAT_1_171(m, d) BOOST_PP_REPEAT_1_170(m, d) m(2, 170, d)
-# define BOOST_PP_REPEAT_1_172(m, d) BOOST_PP_REPEAT_1_171(m, d) m(2, 171, d)
-# define BOOST_PP_REPEAT_1_173(m, d) BOOST_PP_REPEAT_1_172(m, d) m(2, 172, d)
-# define BOOST_PP_REPEAT_1_174(m, d) BOOST_PP_REPEAT_1_173(m, d) m(2, 173, d)
-# define BOOST_PP_REPEAT_1_175(m, d) BOOST_PP_REPEAT_1_174(m, d) m(2, 174, d)
-# define BOOST_PP_REPEAT_1_176(m, d) BOOST_PP_REPEAT_1_175(m, d) m(2, 175, d)
-# define BOOST_PP_REPEAT_1_177(m, d) BOOST_PP_REPEAT_1_176(m, d) m(2, 176, d)
-# define BOOST_PP_REPEAT_1_178(m, d) BOOST_PP_REPEAT_1_177(m, d) m(2, 177, d)
-# define BOOST_PP_REPEAT_1_179(m, d) BOOST_PP_REPEAT_1_178(m, d) m(2, 178, d)
-# define BOOST_PP_REPEAT_1_180(m, d) BOOST_PP_REPEAT_1_179(m, d) m(2, 179, d)
-# define BOOST_PP_REPEAT_1_181(m, d) BOOST_PP_REPEAT_1_180(m, d) m(2, 180, d)
-# define BOOST_PP_REPEAT_1_182(m, d) BOOST_PP_REPEAT_1_181(m, d) m(2, 181, d)
-# define BOOST_PP_REPEAT_1_183(m, d) BOOST_PP_REPEAT_1_182(m, d) m(2, 182, d)
-# define BOOST_PP_REPEAT_1_184(m, d) BOOST_PP_REPEAT_1_183(m, d) m(2, 183, d)
-# define BOOST_PP_REPEAT_1_185(m, d) BOOST_PP_REPEAT_1_184(m, d) m(2, 184, d)
-# define BOOST_PP_REPEAT_1_186(m, d) BOOST_PP_REPEAT_1_185(m, d) m(2, 185, d)
-# define BOOST_PP_REPEAT_1_187(m, d) BOOST_PP_REPEAT_1_186(m, d) m(2, 186, d)
-# define BOOST_PP_REPEAT_1_188(m, d) BOOST_PP_REPEAT_1_187(m, d) m(2, 187, d)
-# define BOOST_PP_REPEAT_1_189(m, d) BOOST_PP_REPEAT_1_188(m, d) m(2, 188, d)
-# define BOOST_PP_REPEAT_1_190(m, d) BOOST_PP_REPEAT_1_189(m, d) m(2, 189, d)
-# define BOOST_PP_REPEAT_1_191(m, d) BOOST_PP_REPEAT_1_190(m, d) m(2, 190, d)
-# define BOOST_PP_REPEAT_1_192(m, d) BOOST_PP_REPEAT_1_191(m, d) m(2, 191, d)
-# define BOOST_PP_REPEAT_1_193(m, d) BOOST_PP_REPEAT_1_192(m, d) m(2, 192, d)
-# define BOOST_PP_REPEAT_1_194(m, d) BOOST_PP_REPEAT_1_193(m, d) m(2, 193, d)
-# define BOOST_PP_REPEAT_1_195(m, d) BOOST_PP_REPEAT_1_194(m, d) m(2, 194, d)
-# define BOOST_PP_REPEAT_1_196(m, d) BOOST_PP_REPEAT_1_195(m, d) m(2, 195, d)
-# define BOOST_PP_REPEAT_1_197(m, d) BOOST_PP_REPEAT_1_196(m, d) m(2, 196, d)
-# define BOOST_PP_REPEAT_1_198(m, d) BOOST_PP_REPEAT_1_197(m, d) m(2, 197, d)
-# define BOOST_PP_REPEAT_1_199(m, d) BOOST_PP_REPEAT_1_198(m, d) m(2, 198, d)
-# define BOOST_PP_REPEAT_1_200(m, d) BOOST_PP_REPEAT_1_199(m, d) m(2, 199, d)
-# define BOOST_PP_REPEAT_1_201(m, d) BOOST_PP_REPEAT_1_200(m, d) m(2, 200, d)
-# define BOOST_PP_REPEAT_1_202(m, d) BOOST_PP_REPEAT_1_201(m, d) m(2, 201, d)
-# define BOOST_PP_REPEAT_1_203(m, d) BOOST_PP_REPEAT_1_202(m, d) m(2, 202, d)
-# define BOOST_PP_REPEAT_1_204(m, d) BOOST_PP_REPEAT_1_203(m, d) m(2, 203, d)
-# define BOOST_PP_REPEAT_1_205(m, d) BOOST_PP_REPEAT_1_204(m, d) m(2, 204, d)
-# define BOOST_PP_REPEAT_1_206(m, d) BOOST_PP_REPEAT_1_205(m, d) m(2, 205, d)
-# define BOOST_PP_REPEAT_1_207(m, d) BOOST_PP_REPEAT_1_206(m, d) m(2, 206, d)
-# define BOOST_PP_REPEAT_1_208(m, d) BOOST_PP_REPEAT_1_207(m, d) m(2, 207, d)
-# define BOOST_PP_REPEAT_1_209(m, d) BOOST_PP_REPEAT_1_208(m, d) m(2, 208, d)
-# define BOOST_PP_REPEAT_1_210(m, d) BOOST_PP_REPEAT_1_209(m, d) m(2, 209, d)
-# define BOOST_PP_REPEAT_1_211(m, d) BOOST_PP_REPEAT_1_210(m, d) m(2, 210, d)
-# define BOOST_PP_REPEAT_1_212(m, d) BOOST_PP_REPEAT_1_211(m, d) m(2, 211, d)
-# define BOOST_PP_REPEAT_1_213(m, d) BOOST_PP_REPEAT_1_212(m, d) m(2, 212, d)
-# define BOOST_PP_REPEAT_1_214(m, d) BOOST_PP_REPEAT_1_213(m, d) m(2, 213, d)
-# define BOOST_PP_REPEAT_1_215(m, d) BOOST_PP_REPEAT_1_214(m, d) m(2, 214, d)
-# define BOOST_PP_REPEAT_1_216(m, d) BOOST_PP_REPEAT_1_215(m, d) m(2, 215, d)
-# define BOOST_PP_REPEAT_1_217(m, d) BOOST_PP_REPEAT_1_216(m, d) m(2, 216, d)
-# define BOOST_PP_REPEAT_1_218(m, d) BOOST_PP_REPEAT_1_217(m, d) m(2, 217, d)
-# define BOOST_PP_REPEAT_1_219(m, d) BOOST_PP_REPEAT_1_218(m, d) m(2, 218, d)
-# define BOOST_PP_REPEAT_1_220(m, d) BOOST_PP_REPEAT_1_219(m, d) m(2, 219, d)
-# define BOOST_PP_REPEAT_1_221(m, d) BOOST_PP_REPEAT_1_220(m, d) m(2, 220, d)
-# define BOOST_PP_REPEAT_1_222(m, d) BOOST_PP_REPEAT_1_221(m, d) m(2, 221, d)
-# define BOOST_PP_REPEAT_1_223(m, d) BOOST_PP_REPEAT_1_222(m, d) m(2, 222, d)
-# define BOOST_PP_REPEAT_1_224(m, d) BOOST_PP_REPEAT_1_223(m, d) m(2, 223, d)
-# define BOOST_PP_REPEAT_1_225(m, d) BOOST_PP_REPEAT_1_224(m, d) m(2, 224, d)
-# define BOOST_PP_REPEAT_1_226(m, d) BOOST_PP_REPEAT_1_225(m, d) m(2, 225, d)
-# define BOOST_PP_REPEAT_1_227(m, d) BOOST_PP_REPEAT_1_226(m, d) m(2, 226, d)
-# define BOOST_PP_REPEAT_1_228(m, d) BOOST_PP_REPEAT_1_227(m, d) m(2, 227, d)
-# define BOOST_PP_REPEAT_1_229(m, d) BOOST_PP_REPEAT_1_228(m, d) m(2, 228, d)
-# define BOOST_PP_REPEAT_1_230(m, d) BOOST_PP_REPEAT_1_229(m, d) m(2, 229, d)
-# define BOOST_PP_REPEAT_1_231(m, d) BOOST_PP_REPEAT_1_230(m, d) m(2, 230, d)
-# define BOOST_PP_REPEAT_1_232(m, d) BOOST_PP_REPEAT_1_231(m, d) m(2, 231, d)
-# define BOOST_PP_REPEAT_1_233(m, d) BOOST_PP_REPEAT_1_232(m, d) m(2, 232, d)
-# define BOOST_PP_REPEAT_1_234(m, d) BOOST_PP_REPEAT_1_233(m, d) m(2, 233, d)
-# define BOOST_PP_REPEAT_1_235(m, d) BOOST_PP_REPEAT_1_234(m, d) m(2, 234, d)
-# define BOOST_PP_REPEAT_1_236(m, d) BOOST_PP_REPEAT_1_235(m, d) m(2, 235, d)
-# define BOOST_PP_REPEAT_1_237(m, d) BOOST_PP_REPEAT_1_236(m, d) m(2, 236, d)
-# define BOOST_PP_REPEAT_1_238(m, d) BOOST_PP_REPEAT_1_237(m, d) m(2, 237, d)
-# define BOOST_PP_REPEAT_1_239(m, d) BOOST_PP_REPEAT_1_238(m, d) m(2, 238, d)
-# define BOOST_PP_REPEAT_1_240(m, d) BOOST_PP_REPEAT_1_239(m, d) m(2, 239, d)
-# define BOOST_PP_REPEAT_1_241(m, d) BOOST_PP_REPEAT_1_240(m, d) m(2, 240, d)
-# define BOOST_PP_REPEAT_1_242(m, d) BOOST_PP_REPEAT_1_241(m, d) m(2, 241, d)
-# define BOOST_PP_REPEAT_1_243(m, d) BOOST_PP_REPEAT_1_242(m, d) m(2, 242, d)
-# define BOOST_PP_REPEAT_1_244(m, d) BOOST_PP_REPEAT_1_243(m, d) m(2, 243, d)
-# define BOOST_PP_REPEAT_1_245(m, d) BOOST_PP_REPEAT_1_244(m, d) m(2, 244, d)
-# define BOOST_PP_REPEAT_1_246(m, d) BOOST_PP_REPEAT_1_245(m, d) m(2, 245, d)
-# define BOOST_PP_REPEAT_1_247(m, d) BOOST_PP_REPEAT_1_246(m, d) m(2, 246, d)
-# define BOOST_PP_REPEAT_1_248(m, d) BOOST_PP_REPEAT_1_247(m, d) m(2, 247, d)
-# define BOOST_PP_REPEAT_1_249(m, d) BOOST_PP_REPEAT_1_248(m, d) m(2, 248, d)
-# define BOOST_PP_REPEAT_1_250(m, d) BOOST_PP_REPEAT_1_249(m, d) m(2, 249, d)
-# define BOOST_PP_REPEAT_1_251(m, d) BOOST_PP_REPEAT_1_250(m, d) m(2, 250, d)
-# define BOOST_PP_REPEAT_1_252(m, d) BOOST_PP_REPEAT_1_251(m, d) m(2, 251, d)
-# define BOOST_PP_REPEAT_1_253(m, d) BOOST_PP_REPEAT_1_252(m, d) m(2, 252, d)
-# define BOOST_PP_REPEAT_1_254(m, d) BOOST_PP_REPEAT_1_253(m, d) m(2, 253, d)
-# define BOOST_PP_REPEAT_1_255(m, d) BOOST_PP_REPEAT_1_254(m, d) m(2, 254, d)
-# define BOOST_PP_REPEAT_1_256(m, d) BOOST_PP_REPEAT_1_255(m, d) m(2, 255, d)
-#
-# define BOOST_PP_REPEAT_2_0(m, d)
-# define BOOST_PP_REPEAT_2_1(m, d) m(3, 0, d)
-# define BOOST_PP_REPEAT_2_2(m, d) BOOST_PP_REPEAT_2_1(m, d) m(3, 1, d)
-# define BOOST_PP_REPEAT_2_3(m, d) BOOST_PP_REPEAT_2_2(m, d) m(3, 2, d)
-# define BOOST_PP_REPEAT_2_4(m, d) BOOST_PP_REPEAT_2_3(m, d) m(3, 3, d)
-# define BOOST_PP_REPEAT_2_5(m, d) BOOST_PP_REPEAT_2_4(m, d) m(3, 4, d)
-# define BOOST_PP_REPEAT_2_6(m, d) BOOST_PP_REPEAT_2_5(m, d) m(3, 5, d)
-# define BOOST_PP_REPEAT_2_7(m, d) BOOST_PP_REPEAT_2_6(m, d) m(3, 6, d)
-# define BOOST_PP_REPEAT_2_8(m, d) BOOST_PP_REPEAT_2_7(m, d) m(3, 7, d)
-# define BOOST_PP_REPEAT_2_9(m, d) BOOST_PP_REPEAT_2_8(m, d) m(3, 8, d)
-# define BOOST_PP_REPEAT_2_10(m, d) BOOST_PP_REPEAT_2_9(m, d) m(3, 9, d)
-# define BOOST_PP_REPEAT_2_11(m, d) BOOST_PP_REPEAT_2_10(m, d) m(3, 10, d)
-# define BOOST_PP_REPEAT_2_12(m, d) BOOST_PP_REPEAT_2_11(m, d) m(3, 11, d)
-# define BOOST_PP_REPEAT_2_13(m, d) BOOST_PP_REPEAT_2_12(m, d) m(3, 12, d)
-# define BOOST_PP_REPEAT_2_14(m, d) BOOST_PP_REPEAT_2_13(m, d) m(3, 13, d)
-# define BOOST_PP_REPEAT_2_15(m, d) BOOST_PP_REPEAT_2_14(m, d) m(3, 14, d)
-# define BOOST_PP_REPEAT_2_16(m, d) BOOST_PP_REPEAT_2_15(m, d) m(3, 15, d)
-# define BOOST_PP_REPEAT_2_17(m, d) BOOST_PP_REPEAT_2_16(m, d) m(3, 16, d)
-# define BOOST_PP_REPEAT_2_18(m, d) BOOST_PP_REPEAT_2_17(m, d) m(3, 17, d)
-# define BOOST_PP_REPEAT_2_19(m, d) BOOST_PP_REPEAT_2_18(m, d) m(3, 18, d)
-# define BOOST_PP_REPEAT_2_20(m, d) BOOST_PP_REPEAT_2_19(m, d) m(3, 19, d)
-# define BOOST_PP_REPEAT_2_21(m, d) BOOST_PP_REPEAT_2_20(m, d) m(3, 20, d)
-# define BOOST_PP_REPEAT_2_22(m, d) BOOST_PP_REPEAT_2_21(m, d) m(3, 21, d)
-# define BOOST_PP_REPEAT_2_23(m, d) BOOST_PP_REPEAT_2_22(m, d) m(3, 22, d)
-# define BOOST_PP_REPEAT_2_24(m, d) BOOST_PP_REPEAT_2_23(m, d) m(3, 23, d)
-# define BOOST_PP_REPEAT_2_25(m, d) BOOST_PP_REPEAT_2_24(m, d) m(3, 24, d)
-# define BOOST_PP_REPEAT_2_26(m, d) BOOST_PP_REPEAT_2_25(m, d) m(3, 25, d)
-# define BOOST_PP_REPEAT_2_27(m, d) BOOST_PP_REPEAT_2_26(m, d) m(3, 26, d)
-# define BOOST_PP_REPEAT_2_28(m, d) BOOST_PP_REPEAT_2_27(m, d) m(3, 27, d)
-# define BOOST_PP_REPEAT_2_29(m, d) BOOST_PP_REPEAT_2_28(m, d) m(3, 28, d)
-# define BOOST_PP_REPEAT_2_30(m, d) BOOST_PP_REPEAT_2_29(m, d) m(3, 29, d)
-# define BOOST_PP_REPEAT_2_31(m, d) BOOST_PP_REPEAT_2_30(m, d) m(3, 30, d)
-# define BOOST_PP_REPEAT_2_32(m, d) BOOST_PP_REPEAT_2_31(m, d) m(3, 31, d)
-# define BOOST_PP_REPEAT_2_33(m, d) BOOST_PP_REPEAT_2_32(m, d) m(3, 32, d)
-# define BOOST_PP_REPEAT_2_34(m, d) BOOST_PP_REPEAT_2_33(m, d) m(3, 33, d)
-# define BOOST_PP_REPEAT_2_35(m, d) BOOST_PP_REPEAT_2_34(m, d) m(3, 34, d)
-# define BOOST_PP_REPEAT_2_36(m, d) BOOST_PP_REPEAT_2_35(m, d) m(3, 35, d)
-# define BOOST_PP_REPEAT_2_37(m, d) BOOST_PP_REPEAT_2_36(m, d) m(3, 36, d)
-# define BOOST_PP_REPEAT_2_38(m, d) BOOST_PP_REPEAT_2_37(m, d) m(3, 37, d)
-# define BOOST_PP_REPEAT_2_39(m, d) BOOST_PP_REPEAT_2_38(m, d) m(3, 38, d)
-# define BOOST_PP_REPEAT_2_40(m, d) BOOST_PP_REPEAT_2_39(m, d) m(3, 39, d)
-# define BOOST_PP_REPEAT_2_41(m, d) BOOST_PP_REPEAT_2_40(m, d) m(3, 40, d)
-# define BOOST_PP_REPEAT_2_42(m, d) BOOST_PP_REPEAT_2_41(m, d) m(3, 41, d)
-# define BOOST_PP_REPEAT_2_43(m, d) BOOST_PP_REPEAT_2_42(m, d) m(3, 42, d)
-# define BOOST_PP_REPEAT_2_44(m, d) BOOST_PP_REPEAT_2_43(m, d) m(3, 43, d)
-# define BOOST_PP_REPEAT_2_45(m, d) BOOST_PP_REPEAT_2_44(m, d) m(3, 44, d)
-# define BOOST_PP_REPEAT_2_46(m, d) BOOST_PP_REPEAT_2_45(m, d) m(3, 45, d)
-# define BOOST_PP_REPEAT_2_47(m, d) BOOST_PP_REPEAT_2_46(m, d) m(3, 46, d)
-# define BOOST_PP_REPEAT_2_48(m, d) BOOST_PP_REPEAT_2_47(m, d) m(3, 47, d)
-# define BOOST_PP_REPEAT_2_49(m, d) BOOST_PP_REPEAT_2_48(m, d) m(3, 48, d)
-# define BOOST_PP_REPEAT_2_50(m, d) BOOST_PP_REPEAT_2_49(m, d) m(3, 49, d)
-# define BOOST_PP_REPEAT_2_51(m, d) BOOST_PP_REPEAT_2_50(m, d) m(3, 50, d)
-# define BOOST_PP_REPEAT_2_52(m, d) BOOST_PP_REPEAT_2_51(m, d) m(3, 51, d)
-# define BOOST_PP_REPEAT_2_53(m, d) BOOST_PP_REPEAT_2_52(m, d) m(3, 52, d)
-# define BOOST_PP_REPEAT_2_54(m, d) BOOST_PP_REPEAT_2_53(m, d) m(3, 53, d)
-# define BOOST_PP_REPEAT_2_55(m, d) BOOST_PP_REPEAT_2_54(m, d) m(3, 54, d)
-# define BOOST_PP_REPEAT_2_56(m, d) BOOST_PP_REPEAT_2_55(m, d) m(3, 55, d)
-# define BOOST_PP_REPEAT_2_57(m, d) BOOST_PP_REPEAT_2_56(m, d) m(3, 56, d)
-# define BOOST_PP_REPEAT_2_58(m, d) BOOST_PP_REPEAT_2_57(m, d) m(3, 57, d)
-# define BOOST_PP_REPEAT_2_59(m, d) BOOST_PP_REPEAT_2_58(m, d) m(3, 58, d)
-# define BOOST_PP_REPEAT_2_60(m, d) BOOST_PP_REPEAT_2_59(m, d) m(3, 59, d)
-# define BOOST_PP_REPEAT_2_61(m, d) BOOST_PP_REPEAT_2_60(m, d) m(3, 60, d)
-# define BOOST_PP_REPEAT_2_62(m, d) BOOST_PP_REPEAT_2_61(m, d) m(3, 61, d)
-# define BOOST_PP_REPEAT_2_63(m, d) BOOST_PP_REPEAT_2_62(m, d) m(3, 62, d)
-# define BOOST_PP_REPEAT_2_64(m, d) BOOST_PP_REPEAT_2_63(m, d) m(3, 63, d)
-# define BOOST_PP_REPEAT_2_65(m, d) BOOST_PP_REPEAT_2_64(m, d) m(3, 64, d)
-# define BOOST_PP_REPEAT_2_66(m, d) BOOST_PP_REPEAT_2_65(m, d) m(3, 65, d)
-# define BOOST_PP_REPEAT_2_67(m, d) BOOST_PP_REPEAT_2_66(m, d) m(3, 66, d)
-# define BOOST_PP_REPEAT_2_68(m, d) BOOST_PP_REPEAT_2_67(m, d) m(3, 67, d)
-# define BOOST_PP_REPEAT_2_69(m, d) BOOST_PP_REPEAT_2_68(m, d) m(3, 68, d)
-# define BOOST_PP_REPEAT_2_70(m, d) BOOST_PP_REPEAT_2_69(m, d) m(3, 69, d)
-# define BOOST_PP_REPEAT_2_71(m, d) BOOST_PP_REPEAT_2_70(m, d) m(3, 70, d)
-# define BOOST_PP_REPEAT_2_72(m, d) BOOST_PP_REPEAT_2_71(m, d) m(3, 71, d)
-# define BOOST_PP_REPEAT_2_73(m, d) BOOST_PP_REPEAT_2_72(m, d) m(3, 72, d)
-# define BOOST_PP_REPEAT_2_74(m, d) BOOST_PP_REPEAT_2_73(m, d) m(3, 73, d)
-# define BOOST_PP_REPEAT_2_75(m, d) BOOST_PP_REPEAT_2_74(m, d) m(3, 74, d)
-# define BOOST_PP_REPEAT_2_76(m, d) BOOST_PP_REPEAT_2_75(m, d) m(3, 75, d)
-# define BOOST_PP_REPEAT_2_77(m, d) BOOST_PP_REPEAT_2_76(m, d) m(3, 76, d)
-# define BOOST_PP_REPEAT_2_78(m, d) BOOST_PP_REPEAT_2_77(m, d) m(3, 77, d)
-# define BOOST_PP_REPEAT_2_79(m, d) BOOST_PP_REPEAT_2_78(m, d) m(3, 78, d)
-# define BOOST_PP_REPEAT_2_80(m, d) BOOST_PP_REPEAT_2_79(m, d) m(3, 79, d)
-# define BOOST_PP_REPEAT_2_81(m, d) BOOST_PP_REPEAT_2_80(m, d) m(3, 80, d)
-# define BOOST_PP_REPEAT_2_82(m, d) BOOST_PP_REPEAT_2_81(m, d) m(3, 81, d)
-# define BOOST_PP_REPEAT_2_83(m, d) BOOST_PP_REPEAT_2_82(m, d) m(3, 82, d)
-# define BOOST_PP_REPEAT_2_84(m, d) BOOST_PP_REPEAT_2_83(m, d) m(3, 83, d)
-# define BOOST_PP_REPEAT_2_85(m, d) BOOST_PP_REPEAT_2_84(m, d) m(3, 84, d)
-# define BOOST_PP_REPEAT_2_86(m, d) BOOST_PP_REPEAT_2_85(m, d) m(3, 85, d)
-# define BOOST_PP_REPEAT_2_87(m, d) BOOST_PP_REPEAT_2_86(m, d) m(3, 86, d)
-# define BOOST_PP_REPEAT_2_88(m, d) BOOST_PP_REPEAT_2_87(m, d) m(3, 87, d)
-# define BOOST_PP_REPEAT_2_89(m, d) BOOST_PP_REPEAT_2_88(m, d) m(3, 88, d)
-# define BOOST_PP_REPEAT_2_90(m, d) BOOST_PP_REPEAT_2_89(m, d) m(3, 89, d)
-# define BOOST_PP_REPEAT_2_91(m, d) BOOST_PP_REPEAT_2_90(m, d) m(3, 90, d)
-# define BOOST_PP_REPEAT_2_92(m, d) BOOST_PP_REPEAT_2_91(m, d) m(3, 91, d)
-# define BOOST_PP_REPEAT_2_93(m, d) BOOST_PP_REPEAT_2_92(m, d) m(3, 92, d)
-# define BOOST_PP_REPEAT_2_94(m, d) BOOST_PP_REPEAT_2_93(m, d) m(3, 93, d)
-# define BOOST_PP_REPEAT_2_95(m, d) BOOST_PP_REPEAT_2_94(m, d) m(3, 94, d)
-# define BOOST_PP_REPEAT_2_96(m, d) BOOST_PP_REPEAT_2_95(m, d) m(3, 95, d)
-# define BOOST_PP_REPEAT_2_97(m, d) BOOST_PP_REPEAT_2_96(m, d) m(3, 96, d)
-# define BOOST_PP_REPEAT_2_98(m, d) BOOST_PP_REPEAT_2_97(m, d) m(3, 97, d)
-# define BOOST_PP_REPEAT_2_99(m, d) BOOST_PP_REPEAT_2_98(m, d) m(3, 98, d)
-# define BOOST_PP_REPEAT_2_100(m, d) BOOST_PP_REPEAT_2_99(m, d) m(3, 99, d)
-# define BOOST_PP_REPEAT_2_101(m, d) BOOST_PP_REPEAT_2_100(m, d) m(3, 100, d)
-# define BOOST_PP_REPEAT_2_102(m, d) BOOST_PP_REPEAT_2_101(m, d) m(3, 101, d)
-# define BOOST_PP_REPEAT_2_103(m, d) BOOST_PP_REPEAT_2_102(m, d) m(3, 102, d)
-# define BOOST_PP_REPEAT_2_104(m, d) BOOST_PP_REPEAT_2_103(m, d) m(3, 103, d)
-# define BOOST_PP_REPEAT_2_105(m, d) BOOST_PP_REPEAT_2_104(m, d) m(3, 104, d)
-# define BOOST_PP_REPEAT_2_106(m, d) BOOST_PP_REPEAT_2_105(m, d) m(3, 105, d)
-# define BOOST_PP_REPEAT_2_107(m, d) BOOST_PP_REPEAT_2_106(m, d) m(3, 106, d)
-# define BOOST_PP_REPEAT_2_108(m, d) BOOST_PP_REPEAT_2_107(m, d) m(3, 107, d)
-# define BOOST_PP_REPEAT_2_109(m, d) BOOST_PP_REPEAT_2_108(m, d) m(3, 108, d)
-# define BOOST_PP_REPEAT_2_110(m, d) BOOST_PP_REPEAT_2_109(m, d) m(3, 109, d)
-# define BOOST_PP_REPEAT_2_111(m, d) BOOST_PP_REPEAT_2_110(m, d) m(3, 110, d)
-# define BOOST_PP_REPEAT_2_112(m, d) BOOST_PP_REPEAT_2_111(m, d) m(3, 111, d)
-# define BOOST_PP_REPEAT_2_113(m, d) BOOST_PP_REPEAT_2_112(m, d) m(3, 112, d)
-# define BOOST_PP_REPEAT_2_114(m, d) BOOST_PP_REPEAT_2_113(m, d) m(3, 113, d)
-# define BOOST_PP_REPEAT_2_115(m, d) BOOST_PP_REPEAT_2_114(m, d) m(3, 114, d)
-# define BOOST_PP_REPEAT_2_116(m, d) BOOST_PP_REPEAT_2_115(m, d) m(3, 115, d)
-# define BOOST_PP_REPEAT_2_117(m, d) BOOST_PP_REPEAT_2_116(m, d) m(3, 116, d)
-# define BOOST_PP_REPEAT_2_118(m, d) BOOST_PP_REPEAT_2_117(m, d) m(3, 117, d)
-# define BOOST_PP_REPEAT_2_119(m, d) BOOST_PP_REPEAT_2_118(m, d) m(3, 118, d)
-# define BOOST_PP_REPEAT_2_120(m, d) BOOST_PP_REPEAT_2_119(m, d) m(3, 119, d)
-# define BOOST_PP_REPEAT_2_121(m, d) BOOST_PP_REPEAT_2_120(m, d) m(3, 120, d)
-# define BOOST_PP_REPEAT_2_122(m, d) BOOST_PP_REPEAT_2_121(m, d) m(3, 121, d)
-# define BOOST_PP_REPEAT_2_123(m, d) BOOST_PP_REPEAT_2_122(m, d) m(3, 122, d)
-# define BOOST_PP_REPEAT_2_124(m, d) BOOST_PP_REPEAT_2_123(m, d) m(3, 123, d)
-# define BOOST_PP_REPEAT_2_125(m, d) BOOST_PP_REPEAT_2_124(m, d) m(3, 124, d)
-# define BOOST_PP_REPEAT_2_126(m, d) BOOST_PP_REPEAT_2_125(m, d) m(3, 125, d)
-# define BOOST_PP_REPEAT_2_127(m, d) BOOST_PP_REPEAT_2_126(m, d) m(3, 126, d)
-# define BOOST_PP_REPEAT_2_128(m, d) BOOST_PP_REPEAT_2_127(m, d) m(3, 127, d)
-# define BOOST_PP_REPEAT_2_129(m, d) BOOST_PP_REPEAT_2_128(m, d) m(3, 128, d)
-# define BOOST_PP_REPEAT_2_130(m, d) BOOST_PP_REPEAT_2_129(m, d) m(3, 129, d)
-# define BOOST_PP_REPEAT_2_131(m, d) BOOST_PP_REPEAT_2_130(m, d) m(3, 130, d)
-# define BOOST_PP_REPEAT_2_132(m, d) BOOST_PP_REPEAT_2_131(m, d) m(3, 131, d)
-# define BOOST_PP_REPEAT_2_133(m, d) BOOST_PP_REPEAT_2_132(m, d) m(3, 132, d)
-# define BOOST_PP_REPEAT_2_134(m, d) BOOST_PP_REPEAT_2_133(m, d) m(3, 133, d)
-# define BOOST_PP_REPEAT_2_135(m, d) BOOST_PP_REPEAT_2_134(m, d) m(3, 134, d)
-# define BOOST_PP_REPEAT_2_136(m, d) BOOST_PP_REPEAT_2_135(m, d) m(3, 135, d)
-# define BOOST_PP_REPEAT_2_137(m, d) BOOST_PP_REPEAT_2_136(m, d) m(3, 136, d)
-# define BOOST_PP_REPEAT_2_138(m, d) BOOST_PP_REPEAT_2_137(m, d) m(3, 137, d)
-# define BOOST_PP_REPEAT_2_139(m, d) BOOST_PP_REPEAT_2_138(m, d) m(3, 138, d)
-# define BOOST_PP_REPEAT_2_140(m, d) BOOST_PP_REPEAT_2_139(m, d) m(3, 139, d)
-# define BOOST_PP_REPEAT_2_141(m, d) BOOST_PP_REPEAT_2_140(m, d) m(3, 140, d)
-# define BOOST_PP_REPEAT_2_142(m, d) BOOST_PP_REPEAT_2_141(m, d) m(3, 141, d)
-# define BOOST_PP_REPEAT_2_143(m, d) BOOST_PP_REPEAT_2_142(m, d) m(3, 142, d)
-# define BOOST_PP_REPEAT_2_144(m, d) BOOST_PP_REPEAT_2_143(m, d) m(3, 143, d)
-# define BOOST_PP_REPEAT_2_145(m, d) BOOST_PP_REPEAT_2_144(m, d) m(3, 144, d)
-# define BOOST_PP_REPEAT_2_146(m, d) BOOST_PP_REPEAT_2_145(m, d) m(3, 145, d)
-# define BOOST_PP_REPEAT_2_147(m, d) BOOST_PP_REPEAT_2_146(m, d) m(3, 146, d)
-# define BOOST_PP_REPEAT_2_148(m, d) BOOST_PP_REPEAT_2_147(m, d) m(3, 147, d)
-# define BOOST_PP_REPEAT_2_149(m, d) BOOST_PP_REPEAT_2_148(m, d) m(3, 148, d)
-# define BOOST_PP_REPEAT_2_150(m, d) BOOST_PP_REPEAT_2_149(m, d) m(3, 149, d)
-# define BOOST_PP_REPEAT_2_151(m, d) BOOST_PP_REPEAT_2_150(m, d) m(3, 150, d)
-# define BOOST_PP_REPEAT_2_152(m, d) BOOST_PP_REPEAT_2_151(m, d) m(3, 151, d)
-# define BOOST_PP_REPEAT_2_153(m, d) BOOST_PP_REPEAT_2_152(m, d) m(3, 152, d)
-# define BOOST_PP_REPEAT_2_154(m, d) BOOST_PP_REPEAT_2_153(m, d) m(3, 153, d)
-# define BOOST_PP_REPEAT_2_155(m, d) BOOST_PP_REPEAT_2_154(m, d) m(3, 154, d)
-# define BOOST_PP_REPEAT_2_156(m, d) BOOST_PP_REPEAT_2_155(m, d) m(3, 155, d)
-# define BOOST_PP_REPEAT_2_157(m, d) BOOST_PP_REPEAT_2_156(m, d) m(3, 156, d)
-# define BOOST_PP_REPEAT_2_158(m, d) BOOST_PP_REPEAT_2_157(m, d) m(3, 157, d)
-# define BOOST_PP_REPEAT_2_159(m, d) BOOST_PP_REPEAT_2_158(m, d) m(3, 158, d)
-# define BOOST_PP_REPEAT_2_160(m, d) BOOST_PP_REPEAT_2_159(m, d) m(3, 159, d)
-# define BOOST_PP_REPEAT_2_161(m, d) BOOST_PP_REPEAT_2_160(m, d) m(3, 160, d)
-# define BOOST_PP_REPEAT_2_162(m, d) BOOST_PP_REPEAT_2_161(m, d) m(3, 161, d)
-# define BOOST_PP_REPEAT_2_163(m, d) BOOST_PP_REPEAT_2_162(m, d) m(3, 162, d)
-# define BOOST_PP_REPEAT_2_164(m, d) BOOST_PP_REPEAT_2_163(m, d) m(3, 163, d)
-# define BOOST_PP_REPEAT_2_165(m, d) BOOST_PP_REPEAT_2_164(m, d) m(3, 164, d)
-# define BOOST_PP_REPEAT_2_166(m, d) BOOST_PP_REPEAT_2_165(m, d) m(3, 165, d)
-# define BOOST_PP_REPEAT_2_167(m, d) BOOST_PP_REPEAT_2_166(m, d) m(3, 166, d)
-# define BOOST_PP_REPEAT_2_168(m, d) BOOST_PP_REPEAT_2_167(m, d) m(3, 167, d)
-# define BOOST_PP_REPEAT_2_169(m, d) BOOST_PP_REPEAT_2_168(m, d) m(3, 168, d)
-# define BOOST_PP_REPEAT_2_170(m, d) BOOST_PP_REPEAT_2_169(m, d) m(3, 169, d)
-# define BOOST_PP_REPEAT_2_171(m, d) BOOST_PP_REPEAT_2_170(m, d) m(3, 170, d)
-# define BOOST_PP_REPEAT_2_172(m, d) BOOST_PP_REPEAT_2_171(m, d) m(3, 171, d)
-# define BOOST_PP_REPEAT_2_173(m, d) BOOST_PP_REPEAT_2_172(m, d) m(3, 172, d)
-# define BOOST_PP_REPEAT_2_174(m, d) BOOST_PP_REPEAT_2_173(m, d) m(3, 173, d)
-# define BOOST_PP_REPEAT_2_175(m, d) BOOST_PP_REPEAT_2_174(m, d) m(3, 174, d)
-# define BOOST_PP_REPEAT_2_176(m, d) BOOST_PP_REPEAT_2_175(m, d) m(3, 175, d)
-# define BOOST_PP_REPEAT_2_177(m, d) BOOST_PP_REPEAT_2_176(m, d) m(3, 176, d)
-# define BOOST_PP_REPEAT_2_178(m, d) BOOST_PP_REPEAT_2_177(m, d) m(3, 177, d)
-# define BOOST_PP_REPEAT_2_179(m, d) BOOST_PP_REPEAT_2_178(m, d) m(3, 178, d)
-# define BOOST_PP_REPEAT_2_180(m, d) BOOST_PP_REPEAT_2_179(m, d) m(3, 179, d)
-# define BOOST_PP_REPEAT_2_181(m, d) BOOST_PP_REPEAT_2_180(m, d) m(3, 180, d)
-# define BOOST_PP_REPEAT_2_182(m, d) BOOST_PP_REPEAT_2_181(m, d) m(3, 181, d)
-# define BOOST_PP_REPEAT_2_183(m, d) BOOST_PP_REPEAT_2_182(m, d) m(3, 182, d)
-# define BOOST_PP_REPEAT_2_184(m, d) BOOST_PP_REPEAT_2_183(m, d) m(3, 183, d)
-# define BOOST_PP_REPEAT_2_185(m, d) BOOST_PP_REPEAT_2_184(m, d) m(3, 184, d)
-# define BOOST_PP_REPEAT_2_186(m, d) BOOST_PP_REPEAT_2_185(m, d) m(3, 185, d)
-# define BOOST_PP_REPEAT_2_187(m, d) BOOST_PP_REPEAT_2_186(m, d) m(3, 186, d)
-# define BOOST_PP_REPEAT_2_188(m, d) BOOST_PP_REPEAT_2_187(m, d) m(3, 187, d)
-# define BOOST_PP_REPEAT_2_189(m, d) BOOST_PP_REPEAT_2_188(m, d) m(3, 188, d)
-# define BOOST_PP_REPEAT_2_190(m, d) BOOST_PP_REPEAT_2_189(m, d) m(3, 189, d)
-# define BOOST_PP_REPEAT_2_191(m, d) BOOST_PP_REPEAT_2_190(m, d) m(3, 190, d)
-# define BOOST_PP_REPEAT_2_192(m, d) BOOST_PP_REPEAT_2_191(m, d) m(3, 191, d)
-# define BOOST_PP_REPEAT_2_193(m, d) BOOST_PP_REPEAT_2_192(m, d) m(3, 192, d)
-# define BOOST_PP_REPEAT_2_194(m, d) BOOST_PP_REPEAT_2_193(m, d) m(3, 193, d)
-# define BOOST_PP_REPEAT_2_195(m, d) BOOST_PP_REPEAT_2_194(m, d) m(3, 194, d)
-# define BOOST_PP_REPEAT_2_196(m, d) BOOST_PP_REPEAT_2_195(m, d) m(3, 195, d)
-# define BOOST_PP_REPEAT_2_197(m, d) BOOST_PP_REPEAT_2_196(m, d) m(3, 196, d)
-# define BOOST_PP_REPEAT_2_198(m, d) BOOST_PP_REPEAT_2_197(m, d) m(3, 197, d)
-# define BOOST_PP_REPEAT_2_199(m, d) BOOST_PP_REPEAT_2_198(m, d) m(3, 198, d)
-# define BOOST_PP_REPEAT_2_200(m, d) BOOST_PP_REPEAT_2_199(m, d) m(3, 199, d)
-# define BOOST_PP_REPEAT_2_201(m, d) BOOST_PP_REPEAT_2_200(m, d) m(3, 200, d)
-# define BOOST_PP_REPEAT_2_202(m, d) BOOST_PP_REPEAT_2_201(m, d) m(3, 201, d)
-# define BOOST_PP_REPEAT_2_203(m, d) BOOST_PP_REPEAT_2_202(m, d) m(3, 202, d)
-# define BOOST_PP_REPEAT_2_204(m, d) BOOST_PP_REPEAT_2_203(m, d) m(3, 203, d)
-# define BOOST_PP_REPEAT_2_205(m, d) BOOST_PP_REPEAT_2_204(m, d) m(3, 204, d)
-# define BOOST_PP_REPEAT_2_206(m, d) BOOST_PP_REPEAT_2_205(m, d) m(3, 205, d)
-# define BOOST_PP_REPEAT_2_207(m, d) BOOST_PP_REPEAT_2_206(m, d) m(3, 206, d)
-# define BOOST_PP_REPEAT_2_208(m, d) BOOST_PP_REPEAT_2_207(m, d) m(3, 207, d)
-# define BOOST_PP_REPEAT_2_209(m, d) BOOST_PP_REPEAT_2_208(m, d) m(3, 208, d)
-# define BOOST_PP_REPEAT_2_210(m, d) BOOST_PP_REPEAT_2_209(m, d) m(3, 209, d)
-# define BOOST_PP_REPEAT_2_211(m, d) BOOST_PP_REPEAT_2_210(m, d) m(3, 210, d)
-# define BOOST_PP_REPEAT_2_212(m, d) BOOST_PP_REPEAT_2_211(m, d) m(3, 211, d)
-# define BOOST_PP_REPEAT_2_213(m, d) BOOST_PP_REPEAT_2_212(m, d) m(3, 212, d)
-# define BOOST_PP_REPEAT_2_214(m, d) BOOST_PP_REPEAT_2_213(m, d) m(3, 213, d)
-# define BOOST_PP_REPEAT_2_215(m, d) BOOST_PP_REPEAT_2_214(m, d) m(3, 214, d)
-# define BOOST_PP_REPEAT_2_216(m, d) BOOST_PP_REPEAT_2_215(m, d) m(3, 215, d)
-# define BOOST_PP_REPEAT_2_217(m, d) BOOST_PP_REPEAT_2_216(m, d) m(3, 216, d)
-# define BOOST_PP_REPEAT_2_218(m, d) BOOST_PP_REPEAT_2_217(m, d) m(3, 217, d)
-# define BOOST_PP_REPEAT_2_219(m, d) BOOST_PP_REPEAT_2_218(m, d) m(3, 218, d)
-# define BOOST_PP_REPEAT_2_220(m, d) BOOST_PP_REPEAT_2_219(m, d) m(3, 219, d)
-# define BOOST_PP_REPEAT_2_221(m, d) BOOST_PP_REPEAT_2_220(m, d) m(3, 220, d)
-# define BOOST_PP_REPEAT_2_222(m, d) BOOST_PP_REPEAT_2_221(m, d) m(3, 221, d)
-# define BOOST_PP_REPEAT_2_223(m, d) BOOST_PP_REPEAT_2_222(m, d) m(3, 222, d)
-# define BOOST_PP_REPEAT_2_224(m, d) BOOST_PP_REPEAT_2_223(m, d) m(3, 223, d)
-# define BOOST_PP_REPEAT_2_225(m, d) BOOST_PP_REPEAT_2_224(m, d) m(3, 224, d)
-# define BOOST_PP_REPEAT_2_226(m, d) BOOST_PP_REPEAT_2_225(m, d) m(3, 225, d)
-# define BOOST_PP_REPEAT_2_227(m, d) BOOST_PP_REPEAT_2_226(m, d) m(3, 226, d)
-# define BOOST_PP_REPEAT_2_228(m, d) BOOST_PP_REPEAT_2_227(m, d) m(3, 227, d)
-# define BOOST_PP_REPEAT_2_229(m, d) BOOST_PP_REPEAT_2_228(m, d) m(3, 228, d)
-# define BOOST_PP_REPEAT_2_230(m, d) BOOST_PP_REPEAT_2_229(m, d) m(3, 229, d)
-# define BOOST_PP_REPEAT_2_231(m, d) BOOST_PP_REPEAT_2_230(m, d) m(3, 230, d)
-# define BOOST_PP_REPEAT_2_232(m, d) BOOST_PP_REPEAT_2_231(m, d) m(3, 231, d)
-# define BOOST_PP_REPEAT_2_233(m, d) BOOST_PP_REPEAT_2_232(m, d) m(3, 232, d)
-# define BOOST_PP_REPEAT_2_234(m, d) BOOST_PP_REPEAT_2_233(m, d) m(3, 233, d)
-# define BOOST_PP_REPEAT_2_235(m, d) BOOST_PP_REPEAT_2_234(m, d) m(3, 234, d)
-# define BOOST_PP_REPEAT_2_236(m, d) BOOST_PP_REPEAT_2_235(m, d) m(3, 235, d)
-# define BOOST_PP_REPEAT_2_237(m, d) BOOST_PP_REPEAT_2_236(m, d) m(3, 236, d)
-# define BOOST_PP_REPEAT_2_238(m, d) BOOST_PP_REPEAT_2_237(m, d) m(3, 237, d)
-# define BOOST_PP_REPEAT_2_239(m, d) BOOST_PP_REPEAT_2_238(m, d) m(3, 238, d)
-# define BOOST_PP_REPEAT_2_240(m, d) BOOST_PP_REPEAT_2_239(m, d) m(3, 239, d)
-# define BOOST_PP_REPEAT_2_241(m, d) BOOST_PP_REPEAT_2_240(m, d) m(3, 240, d)
-# define BOOST_PP_REPEAT_2_242(m, d) BOOST_PP_REPEAT_2_241(m, d) m(3, 241, d)
-# define BOOST_PP_REPEAT_2_243(m, d) BOOST_PP_REPEAT_2_242(m, d) m(3, 242, d)
-# define BOOST_PP_REPEAT_2_244(m, d) BOOST_PP_REPEAT_2_243(m, d) m(3, 243, d)
-# define BOOST_PP_REPEAT_2_245(m, d) BOOST_PP_REPEAT_2_244(m, d) m(3, 244, d)
-# define BOOST_PP_REPEAT_2_246(m, d) BOOST_PP_REPEAT_2_245(m, d) m(3, 245, d)
-# define BOOST_PP_REPEAT_2_247(m, d) BOOST_PP_REPEAT_2_246(m, d) m(3, 246, d)
-# define BOOST_PP_REPEAT_2_248(m, d) BOOST_PP_REPEAT_2_247(m, d) m(3, 247, d)
-# define BOOST_PP_REPEAT_2_249(m, d) BOOST_PP_REPEAT_2_248(m, d) m(3, 248, d)
-# define BOOST_PP_REPEAT_2_250(m, d) BOOST_PP_REPEAT_2_249(m, d) m(3, 249, d)
-# define BOOST_PP_REPEAT_2_251(m, d) BOOST_PP_REPEAT_2_250(m, d) m(3, 250, d)
-# define BOOST_PP_REPEAT_2_252(m, d) BOOST_PP_REPEAT_2_251(m, d) m(3, 251, d)
-# define BOOST_PP_REPEAT_2_253(m, d) BOOST_PP_REPEAT_2_252(m, d) m(3, 252, d)
-# define BOOST_PP_REPEAT_2_254(m, d) BOOST_PP_REPEAT_2_253(m, d) m(3, 253, d)
-# define BOOST_PP_REPEAT_2_255(m, d) BOOST_PP_REPEAT_2_254(m, d) m(3, 254, d)
-# define BOOST_PP_REPEAT_2_256(m, d) BOOST_PP_REPEAT_2_255(m, d) m(3, 255, d)
-#
-# define BOOST_PP_REPEAT_3_0(m, d)
-# define BOOST_PP_REPEAT_3_1(m, d) m(4, 0, d)
-# define BOOST_PP_REPEAT_3_2(m, d) BOOST_PP_REPEAT_3_1(m, d) m(4, 1, d)
-# define BOOST_PP_REPEAT_3_3(m, d) BOOST_PP_REPEAT_3_2(m, d) m(4, 2, d)
-# define BOOST_PP_REPEAT_3_4(m, d) BOOST_PP_REPEAT_3_3(m, d) m(4, 3, d)
-# define BOOST_PP_REPEAT_3_5(m, d) BOOST_PP_REPEAT_3_4(m, d) m(4, 4, d)
-# define BOOST_PP_REPEAT_3_6(m, d) BOOST_PP_REPEAT_3_5(m, d) m(4, 5, d)
-# define BOOST_PP_REPEAT_3_7(m, d) BOOST_PP_REPEAT_3_6(m, d) m(4, 6, d)
-# define BOOST_PP_REPEAT_3_8(m, d) BOOST_PP_REPEAT_3_7(m, d) m(4, 7, d)
-# define BOOST_PP_REPEAT_3_9(m, d) BOOST_PP_REPEAT_3_8(m, d) m(4, 8, d)
-# define BOOST_PP_REPEAT_3_10(m, d) BOOST_PP_REPEAT_3_9(m, d) m(4, 9, d)
-# define BOOST_PP_REPEAT_3_11(m, d) BOOST_PP_REPEAT_3_10(m, d) m(4, 10, d)
-# define BOOST_PP_REPEAT_3_12(m, d) BOOST_PP_REPEAT_3_11(m, d) m(4, 11, d)
-# define BOOST_PP_REPEAT_3_13(m, d) BOOST_PP_REPEAT_3_12(m, d) m(4, 12, d)
-# define BOOST_PP_REPEAT_3_14(m, d) BOOST_PP_REPEAT_3_13(m, d) m(4, 13, d)
-# define BOOST_PP_REPEAT_3_15(m, d) BOOST_PP_REPEAT_3_14(m, d) m(4, 14, d)
-# define BOOST_PP_REPEAT_3_16(m, d) BOOST_PP_REPEAT_3_15(m, d) m(4, 15, d)
-# define BOOST_PP_REPEAT_3_17(m, d) BOOST_PP_REPEAT_3_16(m, d) m(4, 16, d)
-# define BOOST_PP_REPEAT_3_18(m, d) BOOST_PP_REPEAT_3_17(m, d) m(4, 17, d)
-# define BOOST_PP_REPEAT_3_19(m, d) BOOST_PP_REPEAT_3_18(m, d) m(4, 18, d)
-# define BOOST_PP_REPEAT_3_20(m, d) BOOST_PP_REPEAT_3_19(m, d) m(4, 19, d)
-# define BOOST_PP_REPEAT_3_21(m, d) BOOST_PP_REPEAT_3_20(m, d) m(4, 20, d)
-# define BOOST_PP_REPEAT_3_22(m, d) BOOST_PP_REPEAT_3_21(m, d) m(4, 21, d)
-# define BOOST_PP_REPEAT_3_23(m, d) BOOST_PP_REPEAT_3_22(m, d) m(4, 22, d)
-# define BOOST_PP_REPEAT_3_24(m, d) BOOST_PP_REPEAT_3_23(m, d) m(4, 23, d)
-# define BOOST_PP_REPEAT_3_25(m, d) BOOST_PP_REPEAT_3_24(m, d) m(4, 24, d)
-# define BOOST_PP_REPEAT_3_26(m, d) BOOST_PP_REPEAT_3_25(m, d) m(4, 25, d)
-# define BOOST_PP_REPEAT_3_27(m, d) BOOST_PP_REPEAT_3_26(m, d) m(4, 26, d)
-# define BOOST_PP_REPEAT_3_28(m, d) BOOST_PP_REPEAT_3_27(m, d) m(4, 27, d)
-# define BOOST_PP_REPEAT_3_29(m, d) BOOST_PP_REPEAT_3_28(m, d) m(4, 28, d)
-# define BOOST_PP_REPEAT_3_30(m, d) BOOST_PP_REPEAT_3_29(m, d) m(4, 29, d)
-# define BOOST_PP_REPEAT_3_31(m, d) BOOST_PP_REPEAT_3_30(m, d) m(4, 30, d)
-# define BOOST_PP_REPEAT_3_32(m, d) BOOST_PP_REPEAT_3_31(m, d) m(4, 31, d)
-# define BOOST_PP_REPEAT_3_33(m, d) BOOST_PP_REPEAT_3_32(m, d) m(4, 32, d)
-# define BOOST_PP_REPEAT_3_34(m, d) BOOST_PP_REPEAT_3_33(m, d) m(4, 33, d)
-# define BOOST_PP_REPEAT_3_35(m, d) BOOST_PP_REPEAT_3_34(m, d) m(4, 34, d)
-# define BOOST_PP_REPEAT_3_36(m, d) BOOST_PP_REPEAT_3_35(m, d) m(4, 35, d)
-# define BOOST_PP_REPEAT_3_37(m, d) BOOST_PP_REPEAT_3_36(m, d) m(4, 36, d)
-# define BOOST_PP_REPEAT_3_38(m, d) BOOST_PP_REPEAT_3_37(m, d) m(4, 37, d)
-# define BOOST_PP_REPEAT_3_39(m, d) BOOST_PP_REPEAT_3_38(m, d) m(4, 38, d)
-# define BOOST_PP_REPEAT_3_40(m, d) BOOST_PP_REPEAT_3_39(m, d) m(4, 39, d)
-# define BOOST_PP_REPEAT_3_41(m, d) BOOST_PP_REPEAT_3_40(m, d) m(4, 40, d)
-# define BOOST_PP_REPEAT_3_42(m, d) BOOST_PP_REPEAT_3_41(m, d) m(4, 41, d)
-# define BOOST_PP_REPEAT_3_43(m, d) BOOST_PP_REPEAT_3_42(m, d) m(4, 42, d)
-# define BOOST_PP_REPEAT_3_44(m, d) BOOST_PP_REPEAT_3_43(m, d) m(4, 43, d)
-# define BOOST_PP_REPEAT_3_45(m, d) BOOST_PP_REPEAT_3_44(m, d) m(4, 44, d)
-# define BOOST_PP_REPEAT_3_46(m, d) BOOST_PP_REPEAT_3_45(m, d) m(4, 45, d)
-# define BOOST_PP_REPEAT_3_47(m, d) BOOST_PP_REPEAT_3_46(m, d) m(4, 46, d)
-# define BOOST_PP_REPEAT_3_48(m, d) BOOST_PP_REPEAT_3_47(m, d) m(4, 47, d)
-# define BOOST_PP_REPEAT_3_49(m, d) BOOST_PP_REPEAT_3_48(m, d) m(4, 48, d)
-# define BOOST_PP_REPEAT_3_50(m, d) BOOST_PP_REPEAT_3_49(m, d) m(4, 49, d)
-# define BOOST_PP_REPEAT_3_51(m, d) BOOST_PP_REPEAT_3_50(m, d) m(4, 50, d)
-# define BOOST_PP_REPEAT_3_52(m, d) BOOST_PP_REPEAT_3_51(m, d) m(4, 51, d)
-# define BOOST_PP_REPEAT_3_53(m, d) BOOST_PP_REPEAT_3_52(m, d) m(4, 52, d)
-# define BOOST_PP_REPEAT_3_54(m, d) BOOST_PP_REPEAT_3_53(m, d) m(4, 53, d)
-# define BOOST_PP_REPEAT_3_55(m, d) BOOST_PP_REPEAT_3_54(m, d) m(4, 54, d)
-# define BOOST_PP_REPEAT_3_56(m, d) BOOST_PP_REPEAT_3_55(m, d) m(4, 55, d)
-# define BOOST_PP_REPEAT_3_57(m, d) BOOST_PP_REPEAT_3_56(m, d) m(4, 56, d)
-# define BOOST_PP_REPEAT_3_58(m, d) BOOST_PP_REPEAT_3_57(m, d) m(4, 57, d)
-# define BOOST_PP_REPEAT_3_59(m, d) BOOST_PP_REPEAT_3_58(m, d) m(4, 58, d)
-# define BOOST_PP_REPEAT_3_60(m, d) BOOST_PP_REPEAT_3_59(m, d) m(4, 59, d)
-# define BOOST_PP_REPEAT_3_61(m, d) BOOST_PP_REPEAT_3_60(m, d) m(4, 60, d)
-# define BOOST_PP_REPEAT_3_62(m, d) BOOST_PP_REPEAT_3_61(m, d) m(4, 61, d)
-# define BOOST_PP_REPEAT_3_63(m, d) BOOST_PP_REPEAT_3_62(m, d) m(4, 62, d)
-# define BOOST_PP_REPEAT_3_64(m, d) BOOST_PP_REPEAT_3_63(m, d) m(4, 63, d)
-# define BOOST_PP_REPEAT_3_65(m, d) BOOST_PP_REPEAT_3_64(m, d) m(4, 64, d)
-# define BOOST_PP_REPEAT_3_66(m, d) BOOST_PP_REPEAT_3_65(m, d) m(4, 65, d)
-# define BOOST_PP_REPEAT_3_67(m, d) BOOST_PP_REPEAT_3_66(m, d) m(4, 66, d)
-# define BOOST_PP_REPEAT_3_68(m, d) BOOST_PP_REPEAT_3_67(m, d) m(4, 67, d)
-# define BOOST_PP_REPEAT_3_69(m, d) BOOST_PP_REPEAT_3_68(m, d) m(4, 68, d)
-# define BOOST_PP_REPEAT_3_70(m, d) BOOST_PP_REPEAT_3_69(m, d) m(4, 69, d)
-# define BOOST_PP_REPEAT_3_71(m, d) BOOST_PP_REPEAT_3_70(m, d) m(4, 70, d)
-# define BOOST_PP_REPEAT_3_72(m, d) BOOST_PP_REPEAT_3_71(m, d) m(4, 71, d)
-# define BOOST_PP_REPEAT_3_73(m, d) BOOST_PP_REPEAT_3_72(m, d) m(4, 72, d)
-# define BOOST_PP_REPEAT_3_74(m, d) BOOST_PP_REPEAT_3_73(m, d) m(4, 73, d)
-# define BOOST_PP_REPEAT_3_75(m, d) BOOST_PP_REPEAT_3_74(m, d) m(4, 74, d)
-# define BOOST_PP_REPEAT_3_76(m, d) BOOST_PP_REPEAT_3_75(m, d) m(4, 75, d)
-# define BOOST_PP_REPEAT_3_77(m, d) BOOST_PP_REPEAT_3_76(m, d) m(4, 76, d)
-# define BOOST_PP_REPEAT_3_78(m, d) BOOST_PP_REPEAT_3_77(m, d) m(4, 77, d)
-# define BOOST_PP_REPEAT_3_79(m, d) BOOST_PP_REPEAT_3_78(m, d) m(4, 78, d)
-# define BOOST_PP_REPEAT_3_80(m, d) BOOST_PP_REPEAT_3_79(m, d) m(4, 79, d)
-# define BOOST_PP_REPEAT_3_81(m, d) BOOST_PP_REPEAT_3_80(m, d) m(4, 80, d)
-# define BOOST_PP_REPEAT_3_82(m, d) BOOST_PP_REPEAT_3_81(m, d) m(4, 81, d)
-# define BOOST_PP_REPEAT_3_83(m, d) BOOST_PP_REPEAT_3_82(m, d) m(4, 82, d)
-# define BOOST_PP_REPEAT_3_84(m, d) BOOST_PP_REPEAT_3_83(m, d) m(4, 83, d)
-# define BOOST_PP_REPEAT_3_85(m, d) BOOST_PP_REPEAT_3_84(m, d) m(4, 84, d)
-# define BOOST_PP_REPEAT_3_86(m, d) BOOST_PP_REPEAT_3_85(m, d) m(4, 85, d)
-# define BOOST_PP_REPEAT_3_87(m, d) BOOST_PP_REPEAT_3_86(m, d) m(4, 86, d)
-# define BOOST_PP_REPEAT_3_88(m, d) BOOST_PP_REPEAT_3_87(m, d) m(4, 87, d)
-# define BOOST_PP_REPEAT_3_89(m, d) BOOST_PP_REPEAT_3_88(m, d) m(4, 88, d)
-# define BOOST_PP_REPEAT_3_90(m, d) BOOST_PP_REPEAT_3_89(m, d) m(4, 89, d)
-# define BOOST_PP_REPEAT_3_91(m, d) BOOST_PP_REPEAT_3_90(m, d) m(4, 90, d)
-# define BOOST_PP_REPEAT_3_92(m, d) BOOST_PP_REPEAT_3_91(m, d) m(4, 91, d)
-# define BOOST_PP_REPEAT_3_93(m, d) BOOST_PP_REPEAT_3_92(m, d) m(4, 92, d)
-# define BOOST_PP_REPEAT_3_94(m, d) BOOST_PP_REPEAT_3_93(m, d) m(4, 93, d)
-# define BOOST_PP_REPEAT_3_95(m, d) BOOST_PP_REPEAT_3_94(m, d) m(4, 94, d)
-# define BOOST_PP_REPEAT_3_96(m, d) BOOST_PP_REPEAT_3_95(m, d) m(4, 95, d)
-# define BOOST_PP_REPEAT_3_97(m, d) BOOST_PP_REPEAT_3_96(m, d) m(4, 96, d)
-# define BOOST_PP_REPEAT_3_98(m, d) BOOST_PP_REPEAT_3_97(m, d) m(4, 97, d)
-# define BOOST_PP_REPEAT_3_99(m, d) BOOST_PP_REPEAT_3_98(m, d) m(4, 98, d)
-# define BOOST_PP_REPEAT_3_100(m, d) BOOST_PP_REPEAT_3_99(m, d) m(4, 99, d)
-# define BOOST_PP_REPEAT_3_101(m, d) BOOST_PP_REPEAT_3_100(m, d) m(4, 100, d)
-# define BOOST_PP_REPEAT_3_102(m, d) BOOST_PP_REPEAT_3_101(m, d) m(4, 101, d)
-# define BOOST_PP_REPEAT_3_103(m, d) BOOST_PP_REPEAT_3_102(m, d) m(4, 102, d)
-# define BOOST_PP_REPEAT_3_104(m, d) BOOST_PP_REPEAT_3_103(m, d) m(4, 103, d)
-# define BOOST_PP_REPEAT_3_105(m, d) BOOST_PP_REPEAT_3_104(m, d) m(4, 104, d)
-# define BOOST_PP_REPEAT_3_106(m, d) BOOST_PP_REPEAT_3_105(m, d) m(4, 105, d)
-# define BOOST_PP_REPEAT_3_107(m, d) BOOST_PP_REPEAT_3_106(m, d) m(4, 106, d)
-# define BOOST_PP_REPEAT_3_108(m, d) BOOST_PP_REPEAT_3_107(m, d) m(4, 107, d)
-# define BOOST_PP_REPEAT_3_109(m, d) BOOST_PP_REPEAT_3_108(m, d) m(4, 108, d)
-# define BOOST_PP_REPEAT_3_110(m, d) BOOST_PP_REPEAT_3_109(m, d) m(4, 109, d)
-# define BOOST_PP_REPEAT_3_111(m, d) BOOST_PP_REPEAT_3_110(m, d) m(4, 110, d)
-# define BOOST_PP_REPEAT_3_112(m, d) BOOST_PP_REPEAT_3_111(m, d) m(4, 111, d)
-# define BOOST_PP_REPEAT_3_113(m, d) BOOST_PP_REPEAT_3_112(m, d) m(4, 112, d)
-# define BOOST_PP_REPEAT_3_114(m, d) BOOST_PP_REPEAT_3_113(m, d) m(4, 113, d)
-# define BOOST_PP_REPEAT_3_115(m, d) BOOST_PP_REPEAT_3_114(m, d) m(4, 114, d)
-# define BOOST_PP_REPEAT_3_116(m, d) BOOST_PP_REPEAT_3_115(m, d) m(4, 115, d)
-# define BOOST_PP_REPEAT_3_117(m, d) BOOST_PP_REPEAT_3_116(m, d) m(4, 116, d)
-# define BOOST_PP_REPEAT_3_118(m, d) BOOST_PP_REPEAT_3_117(m, d) m(4, 117, d)
-# define BOOST_PP_REPEAT_3_119(m, d) BOOST_PP_REPEAT_3_118(m, d) m(4, 118, d)
-# define BOOST_PP_REPEAT_3_120(m, d) BOOST_PP_REPEAT_3_119(m, d) m(4, 119, d)
-# define BOOST_PP_REPEAT_3_121(m, d) BOOST_PP_REPEAT_3_120(m, d) m(4, 120, d)
-# define BOOST_PP_REPEAT_3_122(m, d) BOOST_PP_REPEAT_3_121(m, d) m(4, 121, d)
-# define BOOST_PP_REPEAT_3_123(m, d) BOOST_PP_REPEAT_3_122(m, d) m(4, 122, d)
-# define BOOST_PP_REPEAT_3_124(m, d) BOOST_PP_REPEAT_3_123(m, d) m(4, 123, d)
-# define BOOST_PP_REPEAT_3_125(m, d) BOOST_PP_REPEAT_3_124(m, d) m(4, 124, d)
-# define BOOST_PP_REPEAT_3_126(m, d) BOOST_PP_REPEAT_3_125(m, d) m(4, 125, d)
-# define BOOST_PP_REPEAT_3_127(m, d) BOOST_PP_REPEAT_3_126(m, d) m(4, 126, d)
-# define BOOST_PP_REPEAT_3_128(m, d) BOOST_PP_REPEAT_3_127(m, d) m(4, 127, d)
-# define BOOST_PP_REPEAT_3_129(m, d) BOOST_PP_REPEAT_3_128(m, d) m(4, 128, d)
-# define BOOST_PP_REPEAT_3_130(m, d) BOOST_PP_REPEAT_3_129(m, d) m(4, 129, d)
-# define BOOST_PP_REPEAT_3_131(m, d) BOOST_PP_REPEAT_3_130(m, d) m(4, 130, d)
-# define BOOST_PP_REPEAT_3_132(m, d) BOOST_PP_REPEAT_3_131(m, d) m(4, 131, d)
-# define BOOST_PP_REPEAT_3_133(m, d) BOOST_PP_REPEAT_3_132(m, d) m(4, 132, d)
-# define BOOST_PP_REPEAT_3_134(m, d) BOOST_PP_REPEAT_3_133(m, d) m(4, 133, d)
-# define BOOST_PP_REPEAT_3_135(m, d) BOOST_PP_REPEAT_3_134(m, d) m(4, 134, d)
-# define BOOST_PP_REPEAT_3_136(m, d) BOOST_PP_REPEAT_3_135(m, d) m(4, 135, d)
-# define BOOST_PP_REPEAT_3_137(m, d) BOOST_PP_REPEAT_3_136(m, d) m(4, 136, d)
-# define BOOST_PP_REPEAT_3_138(m, d) BOOST_PP_REPEAT_3_137(m, d) m(4, 137, d)
-# define BOOST_PP_REPEAT_3_139(m, d) BOOST_PP_REPEAT_3_138(m, d) m(4, 138, d)
-# define BOOST_PP_REPEAT_3_140(m, d) BOOST_PP_REPEAT_3_139(m, d) m(4, 139, d)
-# define BOOST_PP_REPEAT_3_141(m, d) BOOST_PP_REPEAT_3_140(m, d) m(4, 140, d)
-# define BOOST_PP_REPEAT_3_142(m, d) BOOST_PP_REPEAT_3_141(m, d) m(4, 141, d)
-# define BOOST_PP_REPEAT_3_143(m, d) BOOST_PP_REPEAT_3_142(m, d) m(4, 142, d)
-# define BOOST_PP_REPEAT_3_144(m, d) BOOST_PP_REPEAT_3_143(m, d) m(4, 143, d)
-# define BOOST_PP_REPEAT_3_145(m, d) BOOST_PP_REPEAT_3_144(m, d) m(4, 144, d)
-# define BOOST_PP_REPEAT_3_146(m, d) BOOST_PP_REPEAT_3_145(m, d) m(4, 145, d)
-# define BOOST_PP_REPEAT_3_147(m, d) BOOST_PP_REPEAT_3_146(m, d) m(4, 146, d)
-# define BOOST_PP_REPEAT_3_148(m, d) BOOST_PP_REPEAT_3_147(m, d) m(4, 147, d)
-# define BOOST_PP_REPEAT_3_149(m, d) BOOST_PP_REPEAT_3_148(m, d) m(4, 148, d)
-# define BOOST_PP_REPEAT_3_150(m, d) BOOST_PP_REPEAT_3_149(m, d) m(4, 149, d)
-# define BOOST_PP_REPEAT_3_151(m, d) BOOST_PP_REPEAT_3_150(m, d) m(4, 150, d)
-# define BOOST_PP_REPEAT_3_152(m, d) BOOST_PP_REPEAT_3_151(m, d) m(4, 151, d)
-# define BOOST_PP_REPEAT_3_153(m, d) BOOST_PP_REPEAT_3_152(m, d) m(4, 152, d)
-# define BOOST_PP_REPEAT_3_154(m, d) BOOST_PP_REPEAT_3_153(m, d) m(4, 153, d)
-# define BOOST_PP_REPEAT_3_155(m, d) BOOST_PP_REPEAT_3_154(m, d) m(4, 154, d)
-# define BOOST_PP_REPEAT_3_156(m, d) BOOST_PP_REPEAT_3_155(m, d) m(4, 155, d)
-# define BOOST_PP_REPEAT_3_157(m, d) BOOST_PP_REPEAT_3_156(m, d) m(4, 156, d)
-# define BOOST_PP_REPEAT_3_158(m, d) BOOST_PP_REPEAT_3_157(m, d) m(4, 157, d)
-# define BOOST_PP_REPEAT_3_159(m, d) BOOST_PP_REPEAT_3_158(m, d) m(4, 158, d)
-# define BOOST_PP_REPEAT_3_160(m, d) BOOST_PP_REPEAT_3_159(m, d) m(4, 159, d)
-# define BOOST_PP_REPEAT_3_161(m, d) BOOST_PP_REPEAT_3_160(m, d) m(4, 160, d)
-# define BOOST_PP_REPEAT_3_162(m, d) BOOST_PP_REPEAT_3_161(m, d) m(4, 161, d)
-# define BOOST_PP_REPEAT_3_163(m, d) BOOST_PP_REPEAT_3_162(m, d) m(4, 162, d)
-# define BOOST_PP_REPEAT_3_164(m, d) BOOST_PP_REPEAT_3_163(m, d) m(4, 163, d)
-# define BOOST_PP_REPEAT_3_165(m, d) BOOST_PP_REPEAT_3_164(m, d) m(4, 164, d)
-# define BOOST_PP_REPEAT_3_166(m, d) BOOST_PP_REPEAT_3_165(m, d) m(4, 165, d)
-# define BOOST_PP_REPEAT_3_167(m, d) BOOST_PP_REPEAT_3_166(m, d) m(4, 166, d)
-# define BOOST_PP_REPEAT_3_168(m, d) BOOST_PP_REPEAT_3_167(m, d) m(4, 167, d)
-# define BOOST_PP_REPEAT_3_169(m, d) BOOST_PP_REPEAT_3_168(m, d) m(4, 168, d)
-# define BOOST_PP_REPEAT_3_170(m, d) BOOST_PP_REPEAT_3_169(m, d) m(4, 169, d)
-# define BOOST_PP_REPEAT_3_171(m, d) BOOST_PP_REPEAT_3_170(m, d) m(4, 170, d)
-# define BOOST_PP_REPEAT_3_172(m, d) BOOST_PP_REPEAT_3_171(m, d) m(4, 171, d)
-# define BOOST_PP_REPEAT_3_173(m, d) BOOST_PP_REPEAT_3_172(m, d) m(4, 172, d)
-# define BOOST_PP_REPEAT_3_174(m, d) BOOST_PP_REPEAT_3_173(m, d) m(4, 173, d)
-# define BOOST_PP_REPEAT_3_175(m, d) BOOST_PP_REPEAT_3_174(m, d) m(4, 174, d)
-# define BOOST_PP_REPEAT_3_176(m, d) BOOST_PP_REPEAT_3_175(m, d) m(4, 175, d)
-# define BOOST_PP_REPEAT_3_177(m, d) BOOST_PP_REPEAT_3_176(m, d) m(4, 176, d)
-# define BOOST_PP_REPEAT_3_178(m, d) BOOST_PP_REPEAT_3_177(m, d) m(4, 177, d)
-# define BOOST_PP_REPEAT_3_179(m, d) BOOST_PP_REPEAT_3_178(m, d) m(4, 178, d)
-# define BOOST_PP_REPEAT_3_180(m, d) BOOST_PP_REPEAT_3_179(m, d) m(4, 179, d)
-# define BOOST_PP_REPEAT_3_181(m, d) BOOST_PP_REPEAT_3_180(m, d) m(4, 180, d)
-# define BOOST_PP_REPEAT_3_182(m, d) BOOST_PP_REPEAT_3_181(m, d) m(4, 181, d)
-# define BOOST_PP_REPEAT_3_183(m, d) BOOST_PP_REPEAT_3_182(m, d) m(4, 182, d)
-# define BOOST_PP_REPEAT_3_184(m, d) BOOST_PP_REPEAT_3_183(m, d) m(4, 183, d)
-# define BOOST_PP_REPEAT_3_185(m, d) BOOST_PP_REPEAT_3_184(m, d) m(4, 184, d)
-# define BOOST_PP_REPEAT_3_186(m, d) BOOST_PP_REPEAT_3_185(m, d) m(4, 185, d)
-# define BOOST_PP_REPEAT_3_187(m, d) BOOST_PP_REPEAT_3_186(m, d) m(4, 186, d)
-# define BOOST_PP_REPEAT_3_188(m, d) BOOST_PP_REPEAT_3_187(m, d) m(4, 187, d)
-# define BOOST_PP_REPEAT_3_189(m, d) BOOST_PP_REPEAT_3_188(m, d) m(4, 188, d)
-# define BOOST_PP_REPEAT_3_190(m, d) BOOST_PP_REPEAT_3_189(m, d) m(4, 189, d)
-# define BOOST_PP_REPEAT_3_191(m, d) BOOST_PP_REPEAT_3_190(m, d) m(4, 190, d)
-# define BOOST_PP_REPEAT_3_192(m, d) BOOST_PP_REPEAT_3_191(m, d) m(4, 191, d)
-# define BOOST_PP_REPEAT_3_193(m, d) BOOST_PP_REPEAT_3_192(m, d) m(4, 192, d)
-# define BOOST_PP_REPEAT_3_194(m, d) BOOST_PP_REPEAT_3_193(m, d) m(4, 193, d)
-# define BOOST_PP_REPEAT_3_195(m, d) BOOST_PP_REPEAT_3_194(m, d) m(4, 194, d)
-# define BOOST_PP_REPEAT_3_196(m, d) BOOST_PP_REPEAT_3_195(m, d) m(4, 195, d)
-# define BOOST_PP_REPEAT_3_197(m, d) BOOST_PP_REPEAT_3_196(m, d) m(4, 196, d)
-# define BOOST_PP_REPEAT_3_198(m, d) BOOST_PP_REPEAT_3_197(m, d) m(4, 197, d)
-# define BOOST_PP_REPEAT_3_199(m, d) BOOST_PP_REPEAT_3_198(m, d) m(4, 198, d)
-# define BOOST_PP_REPEAT_3_200(m, d) BOOST_PP_REPEAT_3_199(m, d) m(4, 199, d)
-# define BOOST_PP_REPEAT_3_201(m, d) BOOST_PP_REPEAT_3_200(m, d) m(4, 200, d)
-# define BOOST_PP_REPEAT_3_202(m, d) BOOST_PP_REPEAT_3_201(m, d) m(4, 201, d)
-# define BOOST_PP_REPEAT_3_203(m, d) BOOST_PP_REPEAT_3_202(m, d) m(4, 202, d)
-# define BOOST_PP_REPEAT_3_204(m, d) BOOST_PP_REPEAT_3_203(m, d) m(4, 203, d)
-# define BOOST_PP_REPEAT_3_205(m, d) BOOST_PP_REPEAT_3_204(m, d) m(4, 204, d)
-# define BOOST_PP_REPEAT_3_206(m, d) BOOST_PP_REPEAT_3_205(m, d) m(4, 205, d)
-# define BOOST_PP_REPEAT_3_207(m, d) BOOST_PP_REPEAT_3_206(m, d) m(4, 206, d)
-# define BOOST_PP_REPEAT_3_208(m, d) BOOST_PP_REPEAT_3_207(m, d) m(4, 207, d)
-# define BOOST_PP_REPEAT_3_209(m, d) BOOST_PP_REPEAT_3_208(m, d) m(4, 208, d)
-# define BOOST_PP_REPEAT_3_210(m, d) BOOST_PP_REPEAT_3_209(m, d) m(4, 209, d)
-# define BOOST_PP_REPEAT_3_211(m, d) BOOST_PP_REPEAT_3_210(m, d) m(4, 210, d)
-# define BOOST_PP_REPEAT_3_212(m, d) BOOST_PP_REPEAT_3_211(m, d) m(4, 211, d)
-# define BOOST_PP_REPEAT_3_213(m, d) BOOST_PP_REPEAT_3_212(m, d) m(4, 212, d)
-# define BOOST_PP_REPEAT_3_214(m, d) BOOST_PP_REPEAT_3_213(m, d) m(4, 213, d)
-# define BOOST_PP_REPEAT_3_215(m, d) BOOST_PP_REPEAT_3_214(m, d) m(4, 214, d)
-# define BOOST_PP_REPEAT_3_216(m, d) BOOST_PP_REPEAT_3_215(m, d) m(4, 215, d)
-# define BOOST_PP_REPEAT_3_217(m, d) BOOST_PP_REPEAT_3_216(m, d) m(4, 216, d)
-# define BOOST_PP_REPEAT_3_218(m, d) BOOST_PP_REPEAT_3_217(m, d) m(4, 217, d)
-# define BOOST_PP_REPEAT_3_219(m, d) BOOST_PP_REPEAT_3_218(m, d) m(4, 218, d)
-# define BOOST_PP_REPEAT_3_220(m, d) BOOST_PP_REPEAT_3_219(m, d) m(4, 219, d)
-# define BOOST_PP_REPEAT_3_221(m, d) BOOST_PP_REPEAT_3_220(m, d) m(4, 220, d)
-# define BOOST_PP_REPEAT_3_222(m, d) BOOST_PP_REPEAT_3_221(m, d) m(4, 221, d)
-# define BOOST_PP_REPEAT_3_223(m, d) BOOST_PP_REPEAT_3_222(m, d) m(4, 222, d)
-# define BOOST_PP_REPEAT_3_224(m, d) BOOST_PP_REPEAT_3_223(m, d) m(4, 223, d)
-# define BOOST_PP_REPEAT_3_225(m, d) BOOST_PP_REPEAT_3_224(m, d) m(4, 224, d)
-# define BOOST_PP_REPEAT_3_226(m, d) BOOST_PP_REPEAT_3_225(m, d) m(4, 225, d)
-# define BOOST_PP_REPEAT_3_227(m, d) BOOST_PP_REPEAT_3_226(m, d) m(4, 226, d)
-# define BOOST_PP_REPEAT_3_228(m, d) BOOST_PP_REPEAT_3_227(m, d) m(4, 227, d)
-# define BOOST_PP_REPEAT_3_229(m, d) BOOST_PP_REPEAT_3_228(m, d) m(4, 228, d)
-# define BOOST_PP_REPEAT_3_230(m, d) BOOST_PP_REPEAT_3_229(m, d) m(4, 229, d)
-# define BOOST_PP_REPEAT_3_231(m, d) BOOST_PP_REPEAT_3_230(m, d) m(4, 230, d)
-# define BOOST_PP_REPEAT_3_232(m, d) BOOST_PP_REPEAT_3_231(m, d) m(4, 231, d)
-# define BOOST_PP_REPEAT_3_233(m, d) BOOST_PP_REPEAT_3_232(m, d) m(4, 232, d)
-# define BOOST_PP_REPEAT_3_234(m, d) BOOST_PP_REPEAT_3_233(m, d) m(4, 233, d)
-# define BOOST_PP_REPEAT_3_235(m, d) BOOST_PP_REPEAT_3_234(m, d) m(4, 234, d)
-# define BOOST_PP_REPEAT_3_236(m, d) BOOST_PP_REPEAT_3_235(m, d) m(4, 235, d)
-# define BOOST_PP_REPEAT_3_237(m, d) BOOST_PP_REPEAT_3_236(m, d) m(4, 236, d)
-# define BOOST_PP_REPEAT_3_238(m, d) BOOST_PP_REPEAT_3_237(m, d) m(4, 237, d)
-# define BOOST_PP_REPEAT_3_239(m, d) BOOST_PP_REPEAT_3_238(m, d) m(4, 238, d)
-# define BOOST_PP_REPEAT_3_240(m, d) BOOST_PP_REPEAT_3_239(m, d) m(4, 239, d)
-# define BOOST_PP_REPEAT_3_241(m, d) BOOST_PP_REPEAT_3_240(m, d) m(4, 240, d)
-# define BOOST_PP_REPEAT_3_242(m, d) BOOST_PP_REPEAT_3_241(m, d) m(4, 241, d)
-# define BOOST_PP_REPEAT_3_243(m, d) BOOST_PP_REPEAT_3_242(m, d) m(4, 242, d)
-# define BOOST_PP_REPEAT_3_244(m, d) BOOST_PP_REPEAT_3_243(m, d) m(4, 243, d)
-# define BOOST_PP_REPEAT_3_245(m, d) BOOST_PP_REPEAT_3_244(m, d) m(4, 244, d)
-# define BOOST_PP_REPEAT_3_246(m, d) BOOST_PP_REPEAT_3_245(m, d) m(4, 245, d)
-# define BOOST_PP_REPEAT_3_247(m, d) BOOST_PP_REPEAT_3_246(m, d) m(4, 246, d)
-# define BOOST_PP_REPEAT_3_248(m, d) BOOST_PP_REPEAT_3_247(m, d) m(4, 247, d)
-# define BOOST_PP_REPEAT_3_249(m, d) BOOST_PP_REPEAT_3_248(m, d) m(4, 248, d)
-# define BOOST_PP_REPEAT_3_250(m, d) BOOST_PP_REPEAT_3_249(m, d) m(4, 249, d)
-# define BOOST_PP_REPEAT_3_251(m, d) BOOST_PP_REPEAT_3_250(m, d) m(4, 250, d)
-# define BOOST_PP_REPEAT_3_252(m, d) BOOST_PP_REPEAT_3_251(m, d) m(4, 251, d)
-# define BOOST_PP_REPEAT_3_253(m, d) BOOST_PP_REPEAT_3_252(m, d) m(4, 252, d)
-# define BOOST_PP_REPEAT_3_254(m, d) BOOST_PP_REPEAT_3_253(m, d) m(4, 253, d)
-# define BOOST_PP_REPEAT_3_255(m, d) BOOST_PP_REPEAT_3_254(m, d) m(4, 254, d)
-# define BOOST_PP_REPEAT_3_256(m, d) BOOST_PP_REPEAT_3_255(m, d) m(4, 255, d)
-#
-# endif
diff --git a/boost/preprocessor/repetition/repeat_from_to.hpp b/boost/preprocessor/repetition/repeat_from_to.hpp
deleted file mode 100644
index efe539e..0000000
--- a/boost/preprocessor/repetition/repeat_from_to.hpp
+++ /dev/null
@@ -1,87 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * Distributed under the Boost Software License, Version 1.0. (See
-#  * accompanying file LICENSE_1_0.txt or copy at
-#  * http://www.boost.org/LICENSE_1_0.txt)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_REPETITION_REPEAT_FROM_TO_HPP
-# define BOOST_PREPROCESSOR_REPETITION_REPEAT_FROM_TO_HPP
-#
-# include <boost/preprocessor/arithmetic/add.hpp>
-# include <boost/preprocessor/arithmetic/sub.hpp>
-# include <boost/preprocessor/cat.hpp>
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/control/while.hpp>
-# include <boost/preprocessor/debug/error.hpp>
-# include <boost/preprocessor/detail/auto_rec.hpp>
-# include <boost/preprocessor/repetition/repeat.hpp>
-# include <boost/preprocessor/tuple/elem.hpp>
-# include <boost/preprocessor/tuple/rem.hpp>
-#
-# /* BOOST_PP_REPEAT_FROM_TO */
-#
-# if 0
-#    define BOOST_PP_REPEAT_FROM_TO(first, last, macro, data)
-# endif
-#
-# define BOOST_PP_REPEAT_FROM_TO BOOST_PP_CAT(BOOST_PP_REPEAT_FROM_TO_, BOOST_PP_AUTO_REC(BOOST_PP_REPEAT_P, 4))
-#
-# define BOOST_PP_REPEAT_FROM_TO_1(f, l, m, dt) BOOST_PP_REPEAT_FROM_TO_D_1(BOOST_PP_AUTO_REC(BOOST_PP_WHILE_P, 256), f, l, m, dt)
-# define BOOST_PP_REPEAT_FROM_TO_2(f, l, m, dt) BOOST_PP_REPEAT_FROM_TO_D_2(BOOST_PP_AUTO_REC(BOOST_PP_WHILE_P, 256), f, l, m, dt)
-# define BOOST_PP_REPEAT_FROM_TO_3(f, l, m, dt) BOOST_PP_REPEAT_FROM_TO_D_3(BOOST_PP_AUTO_REC(BOOST_PP_WHILE_P, 256), f, l, m, dt)
-# define BOOST_PP_REPEAT_FROM_TO_4(f, l, m, dt) BOOST_PP_ERROR(0x0003)
-#
-# define BOOST_PP_REPEAT_FROM_TO_1ST BOOST_PP_REPEAT_FROM_TO_1
-# define BOOST_PP_REPEAT_FROM_TO_2ND BOOST_PP_REPEAT_FROM_TO_2
-# define BOOST_PP_REPEAT_FROM_TO_3RD BOOST_PP_REPEAT_FROM_TO_3
-#
-# /* BOOST_PP_REPEAT_FROM_TO_D */
-#
-# if 0
-#    define BOOST_PP_REPEAT_FROM_TO_D(d, first, last, macro, data)
-# endif
-#
-# define BOOST_PP_REPEAT_FROM_TO_D BOOST_PP_CAT(BOOST_PP_REPEAT_FROM_TO_D_, BOOST_PP_AUTO_REC(BOOST_PP_REPEAT_P, 4))
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_REPEAT_FROM_TO_D_1(d, f, l, m, dt) BOOST_PP_REPEAT_1(BOOST_PP_SUB_D(d, l, f), BOOST_PP_REPEAT_FROM_TO_M_1, (d, f, m, dt))
-#    define BOOST_PP_REPEAT_FROM_TO_D_2(d, f, l, m, dt) BOOST_PP_REPEAT_2(BOOST_PP_SUB_D(d, l, f), BOOST_PP_REPEAT_FROM_TO_M_2, (d, f, m, dt))
-#    define BOOST_PP_REPEAT_FROM_TO_D_3(d, f, l, m, dt) BOOST_PP_REPEAT_3(BOOST_PP_SUB_D(d, l, f), BOOST_PP_REPEAT_FROM_TO_M_3, (d, f, m, dt))
-# else
-#    define BOOST_PP_REPEAT_FROM_TO_D_1(d, f, l, m, dt) BOOST_PP_REPEAT_FROM_TO_D_1_I(d, f, l, m, dt)
-#    define BOOST_PP_REPEAT_FROM_TO_D_2(d, f, l, m, dt) BOOST_PP_REPEAT_FROM_TO_D_2_I(d, f, l, m, dt)
-#    define BOOST_PP_REPEAT_FROM_TO_D_3(d, f, l, m, dt) BOOST_PP_REPEAT_FROM_TO_D_3_I(d, f, l, m, dt)
-#    define BOOST_PP_REPEAT_FROM_TO_D_1_I(d, f, l, m, dt) BOOST_PP_REPEAT_1(BOOST_PP_SUB_D(d, l, f), BOOST_PP_REPEAT_FROM_TO_M_1, (d, f, m, dt))
-#    define BOOST_PP_REPEAT_FROM_TO_D_2_I(d, f, l, m, dt) BOOST_PP_REPEAT_2(BOOST_PP_SUB_D(d, l, f), BOOST_PP_REPEAT_FROM_TO_M_2, (d, f, m, dt))
-#    define BOOST_PP_REPEAT_FROM_TO_D_3_I(d, f, l, m, dt) BOOST_PP_REPEAT_3(BOOST_PP_SUB_D(d, l, f), BOOST_PP_REPEAT_FROM_TO_M_3, (d, f, m, dt))
-# endif
-#
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()
-#    define BOOST_PP_REPEAT_FROM_TO_M_1(z, n, dfmd) BOOST_PP_REPEAT_FROM_TO_M_1_IM(z, n, BOOST_PP_TUPLE_REM_4 dfmd)
-#    define BOOST_PP_REPEAT_FROM_TO_M_2(z, n, dfmd) BOOST_PP_REPEAT_FROM_TO_M_2_IM(z, n, BOOST_PP_TUPLE_REM_4 dfmd)
-#    define BOOST_PP_REPEAT_FROM_TO_M_3(z, n, dfmd) BOOST_PP_REPEAT_FROM_TO_M_3_IM(z, n, BOOST_PP_TUPLE_REM_4 dfmd)
-#    define BOOST_PP_REPEAT_FROM_TO_M_1_IM(z, n, im) BOOST_PP_REPEAT_FROM_TO_M_1_I(z, n, im)
-#    define BOOST_PP_REPEAT_FROM_TO_M_2_IM(z, n, im) BOOST_PP_REPEAT_FROM_TO_M_2_I(z, n, im)
-#    define BOOST_PP_REPEAT_FROM_TO_M_3_IM(z, n, im) BOOST_PP_REPEAT_FROM_TO_M_3_I(z, n, im)
-# else
-#    define BOOST_PP_REPEAT_FROM_TO_M_1(z, n, dfmd) BOOST_PP_REPEAT_FROM_TO_M_1_I(z, n, BOOST_PP_TUPLE_ELEM(4, 0, dfmd), BOOST_PP_TUPLE_ELEM(4, 1, dfmd), BOOST_PP_TUPLE_ELEM(4, 2, dfmd), BOOST_PP_TUPLE_ELEM(4, 3, dfmd))
-#    define BOOST_PP_REPEAT_FROM_TO_M_2(z, n, dfmd) BOOST_PP_REPEAT_FROM_TO_M_2_I(z, n, BOOST_PP_TUPLE_ELEM(4, 0, dfmd), BOOST_PP_TUPLE_ELEM(4, 1, dfmd), BOOST_PP_TUPLE_ELEM(4, 2, dfmd), BOOST_PP_TUPLE_ELEM(4, 3, dfmd))
-#    define BOOST_PP_REPEAT_FROM_TO_M_3(z, n, dfmd) BOOST_PP_REPEAT_FROM_TO_M_3_I(z, n, BOOST_PP_TUPLE_ELEM(4, 0, dfmd), BOOST_PP_TUPLE_ELEM(4, 1, dfmd), BOOST_PP_TUPLE_ELEM(4, 2, dfmd), BOOST_PP_TUPLE_ELEM(4, 3, dfmd))
-# endif
-#
-# define BOOST_PP_REPEAT_FROM_TO_M_1_I(z, n, d, f, m, dt) BOOST_PP_REPEAT_FROM_TO_M_1_II(z, BOOST_PP_ADD_D(d, n, f), m, dt)
-# define BOOST_PP_REPEAT_FROM_TO_M_2_I(z, n, d, f, m, dt) BOOST_PP_REPEAT_FROM_TO_M_2_II(z, BOOST_PP_ADD_D(d, n, f), m, dt)
-# define BOOST_PP_REPEAT_FROM_TO_M_3_I(z, n, d, f, m, dt) BOOST_PP_REPEAT_FROM_TO_M_3_II(z, BOOST_PP_ADD_D(d, n, f), m, dt)
-#
-# define BOOST_PP_REPEAT_FROM_TO_M_1_II(z, n, m, dt) m(z, n, dt)
-# define BOOST_PP_REPEAT_FROM_TO_M_2_II(z, n, m, dt) m(z, n, dt)
-# define BOOST_PP_REPEAT_FROM_TO_M_3_II(z, n, m, dt) m(z, n, dt)
-#
-# endif
diff --git a/boost/preprocessor/seq/cat.hpp b/boost/preprocessor/seq/cat.hpp
deleted file mode 100644
index b6b09ff..0000000
--- a/boost/preprocessor/seq/cat.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_SEQ_CAT_HPP
-# define BOOST_PREPROCESSOR_SEQ_CAT_HPP
-#
-# include <boost/preprocessor/arithmetic/dec.hpp>
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/control/if.hpp>
-# include <boost/preprocessor/seq/fold_left.hpp>
-# include <boost/preprocessor/seq/seq.hpp>
-# include <boost/preprocessor/seq/size.hpp>
-# include <boost/preprocessor/tuple/eat.hpp>
-#
-# /* BOOST_PP_SEQ_CAT */
-#
-# define BOOST_PP_SEQ_CAT(seq) \
-    BOOST_PP_IF( \
-        BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(seq)), \
-        BOOST_PP_SEQ_CAT_I, \
-        BOOST_PP_SEQ_HEAD \
-    )(seq) \
-    /**/
-# define BOOST_PP_SEQ_CAT_I(seq) BOOST_PP_SEQ_FOLD_LEFT(BOOST_PP_SEQ_CAT_O, BOOST_PP_SEQ_HEAD(seq), BOOST_PP_SEQ_TAIL(seq))
-#
-# define BOOST_PP_SEQ_CAT_O(s, st, elem) BOOST_PP_SEQ_CAT_O_I(st, elem)
-# define BOOST_PP_SEQ_CAT_O_I(a, b) a ## b
-#
-# /* BOOST_PP_SEQ_CAT_S */
-#
-# define BOOST_PP_SEQ_CAT_S(s, seq) \
-    BOOST_PP_IF( \
-        BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(seq)), \
-        BOOST_PP_SEQ_CAT_S_I_A, \
-        BOOST_PP_SEQ_CAT_S_I_B \
-    )(s, seq) \
-    /**/
-# define BOOST_PP_SEQ_CAT_S_I_A(s, seq) BOOST_PP_SEQ_FOLD_LEFT_ ## s(BOOST_PP_SEQ_CAT_O, BOOST_PP_SEQ_HEAD(seq), BOOST_PP_SEQ_TAIL(seq))
-# define BOOST_PP_SEQ_CAT_S_I_B(s, seq) BOOST_PP_SEQ_HEAD(seq)
-#
-# endif
diff --git a/boost/preprocessor/seq/detail/split.hpp b/boost/preprocessor/seq/detail/split.hpp
deleted file mode 100644
index 7c33931..0000000
--- a/boost/preprocessor/seq/detail/split.hpp
+++ /dev/null
@@ -1,284 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_SEQ_DETAIL_SPLIT_HPP
-# define BOOST_PREPROCESSOR_SEQ_DETAIL_SPLIT_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-#
-# /* BOOST_PP_SEQ_SPLIT */
-#
-# define BOOST_PP_SEQ_SPLIT(n, seq) BOOST_PP_SEQ_SPLIT_D(n, seq)
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#    define BOOST_PP_SEQ_SPLIT_D(n, seq) (BOOST_PP_SEQ_SPLIT_ ## n seq)
-# else
-#    define BOOST_PP_SEQ_SPLIT_D(n, seq) (BOOST_PP_SEQ_SPLIT_ ## n ## seq)
-# endif
-#
-# define BOOST_PP_SEQ_SPLIT_1(x) (x),
-# define BOOST_PP_SEQ_SPLIT_2(x) (x) BOOST_PP_SEQ_SPLIT_1
-# define BOOST_PP_SEQ_SPLIT_3(x) (x) BOOST_PP_SEQ_SPLIT_2
-# define BOOST_PP_SEQ_SPLIT_4(x) (x) BOOST_PP_SEQ_SPLIT_3
-# define BOOST_PP_SEQ_SPLIT_5(x) (x) BOOST_PP_SEQ_SPLIT_4
-# define BOOST_PP_SEQ_SPLIT_6(x) (x) BOOST_PP_SEQ_SPLIT_5
-# define BOOST_PP_SEQ_SPLIT_7(x) (x) BOOST_PP_SEQ_SPLIT_6
-# define BOOST_PP_SEQ_SPLIT_8(x) (x) BOOST_PP_SEQ_SPLIT_7
-# define BOOST_PP_SEQ_SPLIT_9(x) (x) BOOST_PP_SEQ_SPLIT_8
-# define BOOST_PP_SEQ_SPLIT_10(x) (x) BOOST_PP_SEQ_SPLIT_9
-# define BOOST_PP_SEQ_SPLIT_11(x) (x) BOOST_PP_SEQ_SPLIT_10
-# define BOOST_PP_SEQ_SPLIT_12(x) (x) BOOST_PP_SEQ_SPLIT_11
-# define BOOST_PP_SEQ_SPLIT_13(x) (x) BOOST_PP_SEQ_SPLIT_12
-# define BOOST_PP_SEQ_SPLIT_14(x) (x) BOOST_PP_SEQ_SPLIT_13
-# define BOOST_PP_SEQ_SPLIT_15(x) (x) BOOST_PP_SEQ_SPLIT_14
-# define BOOST_PP_SEQ_SPLIT_16(x) (x) BOOST_PP_SEQ_SPLIT_15
-# define BOOST_PP_SEQ_SPLIT_17(x) (x) BOOST_PP_SEQ_SPLIT_16
-# define BOOST_PP_SEQ_SPLIT_18(x) (x) BOOST_PP_SEQ_SPLIT_17
-# define BOOST_PP_SEQ_SPLIT_19(x) (x) BOOST_PP_SEQ_SPLIT_18
-# define BOOST_PP_SEQ_SPLIT_20(x) (x) BOOST_PP_SEQ_SPLIT_19
-# define BOOST_PP_SEQ_SPLIT_21(x) (x) BOOST_PP_SEQ_SPLIT_20
-# define BOOST_PP_SEQ_SPLIT_22(x) (x) BOOST_PP_SEQ_SPLIT_21
-# define BOOST_PP_SEQ_SPLIT_23(x) (x) BOOST_PP_SEQ_SPLIT_22
-# define BOOST_PP_SEQ_SPLIT_24(x) (x) BOOST_PP_SEQ_SPLIT_23
-# define BOOST_PP_SEQ_SPLIT_25(x) (x) BOOST_PP_SEQ_SPLIT_24
-# define BOOST_PP_SEQ_SPLIT_26(x) (x) BOOST_PP_SEQ_SPLIT_25
-# define BOOST_PP_SEQ_SPLIT_27(x) (x) BOOST_PP_SEQ_SPLIT_26
-# define BOOST_PP_SEQ_SPLIT_28(x) (x) BOOST_PP_SEQ_SPLIT_27
-# define BOOST_PP_SEQ_SPLIT_29(x) (x) BOOST_PP_SEQ_SPLIT_28
-# define BOOST_PP_SEQ_SPLIT_30(x) (x) BOOST_PP_SEQ_SPLIT_29
-# define BOOST_PP_SEQ_SPLIT_31(x) (x) BOOST_PP_SEQ_SPLIT_30
-# define BOOST_PP_SEQ_SPLIT_32(x) (x) BOOST_PP_SEQ_SPLIT_31
-# define BOOST_PP_SEQ_SPLIT_33(x) (x) BOOST_PP_SEQ_SPLIT_32
-# define BOOST_PP_SEQ_SPLIT_34(x) (x) BOOST_PP_SEQ_SPLIT_33
-# define BOOST_PP_SEQ_SPLIT_35(x) (x) BOOST_PP_SEQ_SPLIT_34
-# define BOOST_PP_SEQ_SPLIT_36(x) (x) BOOST_PP_SEQ_SPLIT_35
-# define BOOST_PP_SEQ_SPLIT_37(x) (x) BOOST_PP_SEQ_SPLIT_36
-# define BOOST_PP_SEQ_SPLIT_38(x) (x) BOOST_PP_SEQ_SPLIT_37
-# define BOOST_PP_SEQ_SPLIT_39(x) (x) BOOST_PP_SEQ_SPLIT_38
-# define BOOST_PP_SEQ_SPLIT_40(x) (x) BOOST_PP_SEQ_SPLIT_39
-# define BOOST_PP_SEQ_SPLIT_41(x) (x) BOOST_PP_SEQ_SPLIT_40
-# define BOOST_PP_SEQ_SPLIT_42(x) (x) BOOST_PP_SEQ_SPLIT_41
-# define BOOST_PP_SEQ_SPLIT_43(x) (x) BOOST_PP_SEQ_SPLIT_42
-# define BOOST_PP_SEQ_SPLIT_44(x) (x) BOOST_PP_SEQ_SPLIT_43
-# define BOOST_PP_SEQ_SPLIT_45(x) (x) BOOST_PP_SEQ_SPLIT_44
-# define BOOST_PP_SEQ_SPLIT_46(x) (x) BOOST_PP_SEQ_SPLIT_45
-# define BOOST_PP_SEQ_SPLIT_47(x) (x) BOOST_PP_SEQ_SPLIT_46
-# define BOOST_PP_SEQ_SPLIT_48(x) (x) BOOST_PP_SEQ_SPLIT_47
-# define BOOST_PP_SEQ_SPLIT_49(x) (x) BOOST_PP_SEQ_SPLIT_48
-# define BOOST_PP_SEQ_SPLIT_50(x) (x) BOOST_PP_SEQ_SPLIT_49
-# define BOOST_PP_SEQ_SPLIT_51(x) (x) BOOST_PP_SEQ_SPLIT_50
-# define BOOST_PP_SEQ_SPLIT_52(x) (x) BOOST_PP_SEQ_SPLIT_51
-# define BOOST_PP_SEQ_SPLIT_53(x) (x) BOOST_PP_SEQ_SPLIT_52
-# define BOOST_PP_SEQ_SPLIT_54(x) (x) BOOST_PP_SEQ_SPLIT_53
-# define BOOST_PP_SEQ_SPLIT_55(x) (x) BOOST_PP_SEQ_SPLIT_54
-# define BOOST_PP_SEQ_SPLIT_56(x) (x) BOOST_PP_SEQ_SPLIT_55
-# define BOOST_PP_SEQ_SPLIT_57(x) (x) BOOST_PP_SEQ_SPLIT_56
-# define BOOST_PP_SEQ_SPLIT_58(x) (x) BOOST_PP_SEQ_SPLIT_57
-# define BOOST_PP_SEQ_SPLIT_59(x) (x) BOOST_PP_SEQ_SPLIT_58
-# define BOOST_PP_SEQ_SPLIT_60(x) (x) BOOST_PP_SEQ_SPLIT_59
-# define BOOST_PP_SEQ_SPLIT_61(x) (x) BOOST_PP_SEQ_SPLIT_60
-# define BOOST_PP_SEQ_SPLIT_62(x) (x) BOOST_PP_SEQ_SPLIT_61
-# define BOOST_PP_SEQ_SPLIT_63(x) (x) BOOST_PP_SEQ_SPLIT_62
-# define BOOST_PP_SEQ_SPLIT_64(x) (x) BOOST_PP_SEQ_SPLIT_63
-# define BOOST_PP_SEQ_SPLIT_65(x) (x) BOOST_PP_SEQ_SPLIT_64
-# define BOOST_PP_SEQ_SPLIT_66(x) (x) BOOST_PP_SEQ_SPLIT_65
-# define BOOST_PP_SEQ_SPLIT_67(x) (x) BOOST_PP_SEQ_SPLIT_66
-# define BOOST_PP_SEQ_SPLIT_68(x) (x) BOOST_PP_SEQ_SPLIT_67
-# define BOOST_PP_SEQ_SPLIT_69(x) (x) BOOST_PP_SEQ_SPLIT_68
-# define BOOST_PP_SEQ_SPLIT_70(x) (x) BOOST_PP_SEQ_SPLIT_69
-# define BOOST_PP_SEQ_SPLIT_71(x) (x) BOOST_PP_SEQ_SPLIT_70
-# define BOOST_PP_SEQ_SPLIT_72(x) (x) BOOST_PP_SEQ_SPLIT_71
-# define BOOST_PP_SEQ_SPLIT_73(x) (x) BOOST_PP_SEQ_SPLIT_72
-# define BOOST_PP_SEQ_SPLIT_74(x) (x) BOOST_PP_SEQ_SPLIT_73
-# define BOOST_PP_SEQ_SPLIT_75(x) (x) BOOST_PP_SEQ_SPLIT_74
-# define BOOST_PP_SEQ_SPLIT_76(x) (x) BOOST_PP_SEQ_SPLIT_75
-# define BOOST_PP_SEQ_SPLIT_77(x) (x) BOOST_PP_SEQ_SPLIT_76
-# define BOOST_PP_SEQ_SPLIT_78(x) (x) BOOST_PP_SEQ_SPLIT_77
-# define BOOST_PP_SEQ_SPLIT_79(x) (x) BOOST_PP_SEQ_SPLIT_78
-# define BOOST_PP_SEQ_SPLIT_80(x) (x) BOOST_PP_SEQ_SPLIT_79
-# define BOOST_PP_SEQ_SPLIT_81(x) (x) BOOST_PP_SEQ_SPLIT_80
-# define BOOST_PP_SEQ_SPLIT_82(x) (x) BOOST_PP_SEQ_SPLIT_81
-# define BOOST_PP_SEQ_SPLIT_83(x) (x) BOOST_PP_SEQ_SPLIT_82
-# define BOOST_PP_SEQ_SPLIT_84(x) (x) BOOST_PP_SEQ_SPLIT_83
-# define BOOST_PP_SEQ_SPLIT_85(x) (x) BOOST_PP_SEQ_SPLIT_84
-# define BOOST_PP_SEQ_SPLIT_86(x) (x) BOOST_PP_SEQ_SPLIT_85
-# define BOOST_PP_SEQ_SPLIT_87(x) (x) BOOST_PP_SEQ_SPLIT_86
-# define BOOST_PP_SEQ_SPLIT_88(x) (x) BOOST_PP_SEQ_SPLIT_87
-# define BOOST_PP_SEQ_SPLIT_89(x) (x) BOOST_PP_SEQ_SPLIT_88
-# define BOOST_PP_SEQ_SPLIT_90(x) (x) BOOST_PP_SEQ_SPLIT_89
-# define BOOST_PP_SEQ_SPLIT_91(x) (x) BOOST_PP_SEQ_SPLIT_90
-# define BOOST_PP_SEQ_SPLIT_92(x) (x) BOOST_PP_SEQ_SPLIT_91
-# define BOOST_PP_SEQ_SPLIT_93(x) (x) BOOST_PP_SEQ_SPLIT_92
-# define BOOST_PP_SEQ_SPLIT_94(x) (x) BOOST_PP_SEQ_SPLIT_93
-# define BOOST_PP_SEQ_SPLIT_95(x) (x) BOOST_PP_SEQ_SPLIT_94
-# define BOOST_PP_SEQ_SPLIT_96(x) (x) BOOST_PP_SEQ_SPLIT_95
-# define BOOST_PP_SEQ_SPLIT_97(x) (x) BOOST_PP_SEQ_SPLIT_96
-# define BOOST_PP_SEQ_SPLIT_98(x) (x) BOOST_PP_SEQ_SPLIT_97
-# define BOOST_PP_SEQ_SPLIT_99(x) (x) BOOST_PP_SEQ_SPLIT_98
-# define BOOST_PP_SEQ_SPLIT_100(x) (x) BOOST_PP_SEQ_SPLIT_99
-# define BOOST_PP_SEQ_SPLIT_101(x) (x) BOOST_PP_SEQ_SPLIT_100
-# define BOOST_PP_SEQ_SPLIT_102(x) (x) BOOST_PP_SEQ_SPLIT_101
-# define BOOST_PP_SEQ_SPLIT_103(x) (x) BOOST_PP_SEQ_SPLIT_102
-# define BOOST_PP_SEQ_SPLIT_104(x) (x) BOOST_PP_SEQ_SPLIT_103
-# define BOOST_PP_SEQ_SPLIT_105(x) (x) BOOST_PP_SEQ_SPLIT_104
-# define BOOST_PP_SEQ_SPLIT_106(x) (x) BOOST_PP_SEQ_SPLIT_105
-# define BOOST_PP_SEQ_SPLIT_107(x) (x) BOOST_PP_SEQ_SPLIT_106
-# define BOOST_PP_SEQ_SPLIT_108(x) (x) BOOST_PP_SEQ_SPLIT_107
-# define BOOST_PP_SEQ_SPLIT_109(x) (x) BOOST_PP_SEQ_SPLIT_108
-# define BOOST_PP_SEQ_SPLIT_110(x) (x) BOOST_PP_SEQ_SPLIT_109
-# define BOOST_PP_SEQ_SPLIT_111(x) (x) BOOST_PP_SEQ_SPLIT_110
-# define BOOST_PP_SEQ_SPLIT_112(x) (x) BOOST_PP_SEQ_SPLIT_111
-# define BOOST_PP_SEQ_SPLIT_113(x) (x) BOOST_PP_SEQ_SPLIT_112
-# define BOOST_PP_SEQ_SPLIT_114(x) (x) BOOST_PP_SEQ_SPLIT_113
-# define BOOST_PP_SEQ_SPLIT_115(x) (x) BOOST_PP_SEQ_SPLIT_114
-# define BOOST_PP_SEQ_SPLIT_116(x) (x) BOOST_PP_SEQ_SPLIT_115
-# define BOOST_PP_SEQ_SPLIT_117(x) (x) BOOST_PP_SEQ_SPLIT_116
-# define BOOST_PP_SEQ_SPLIT_118(x) (x) BOOST_PP_SEQ_SPLIT_117
-# define BOOST_PP_SEQ_SPLIT_119(x) (x) BOOST_PP_SEQ_SPLIT_118
-# define BOOST_PP_SEQ_SPLIT_120(x) (x) BOOST_PP_SEQ_SPLIT_119
-# define BOOST_PP_SEQ_SPLIT_121(x) (x) BOOST_PP_SEQ_SPLIT_120
-# define BOOST_PP_SEQ_SPLIT_122(x) (x) BOOST_PP_SEQ_SPLIT_121
-# define BOOST_PP_SEQ_SPLIT_123(x) (x) BOOST_PP_SEQ_SPLIT_122
-# define BOOST_PP_SEQ_SPLIT_124(x) (x) BOOST_PP_SEQ_SPLIT_123
-# define BOOST_PP_SEQ_SPLIT_125(x) (x) BOOST_PP_SEQ_SPLIT_124
-# define BOOST_PP_SEQ_SPLIT_126(x) (x) BOOST_PP_SEQ_SPLIT_125
-# define BOOST_PP_SEQ_SPLIT_127(x) (x) BOOST_PP_SEQ_SPLIT_126
-# define BOOST_PP_SEQ_SPLIT_128(x) (x) BOOST_PP_SEQ_SPLIT_127
-# define BOOST_PP_SEQ_SPLIT_129(x) (x) BOOST_PP_SEQ_SPLIT_128
-# define BOOST_PP_SEQ_SPLIT_130(x) (x) BOOST_PP_SEQ_SPLIT_129
-# define BOOST_PP_SEQ_SPLIT_131(x) (x) BOOST_PP_SEQ_SPLIT_130
-# define BOOST_PP_SEQ_SPLIT_132(x) (x) BOOST_PP_SEQ_SPLIT_131
-# define BOOST_PP_SEQ_SPLIT_133(x) (x) BOOST_PP_SEQ_SPLIT_132
-# define BOOST_PP_SEQ_SPLIT_134(x) (x) BOOST_PP_SEQ_SPLIT_133
-# define BOOST_PP_SEQ_SPLIT_135(x) (x) BOOST_PP_SEQ_SPLIT_134
-# define BOOST_PP_SEQ_SPLIT_136(x) (x) BOOST_PP_SEQ_SPLIT_135
-# define BOOST_PP_SEQ_SPLIT_137(x) (x) BOOST_PP_SEQ_SPLIT_136
-# define BOOST_PP_SEQ_SPLIT_138(x) (x) BOOST_PP_SEQ_SPLIT_137
-# define BOOST_PP_SEQ_SPLIT_139(x) (x) BOOST_PP_SEQ_SPLIT_138
-# define BOOST_PP_SEQ_SPLIT_140(x) (x) BOOST_PP_SEQ_SPLIT_139
-# define BOOST_PP_SEQ_SPLIT_141(x) (x) BOOST_PP_SEQ_SPLIT_140
-# define BOOST_PP_SEQ_SPLIT_142(x) (x) BOOST_PP_SEQ_SPLIT_141
-# define BOOST_PP_SEQ_SPLIT_143(x) (x) BOOST_PP_SEQ_SPLIT_142
-# define BOOST_PP_SEQ_SPLIT_144(x) (x) BOOST_PP_SEQ_SPLIT_143
-# define BOOST_PP_SEQ_SPLIT_145(x) (x) BOOST_PP_SEQ_SPLIT_144
-# define BOOST_PP_SEQ_SPLIT_146(x) (x) BOOST_PP_SEQ_SPLIT_145
-# define BOOST_PP_SEQ_SPLIT_147(x) (x) BOOST_PP_SEQ_SPLIT_146
-# define BOOST_PP_SEQ_SPLIT_148(x) (x) BOOST_PP_SEQ_SPLIT_147
-# define BOOST_PP_SEQ_SPLIT_149(x) (x) BOOST_PP_SEQ_SPLIT_148
-# define BOOST_PP_SEQ_SPLIT_150(x) (x) BOOST_PP_SEQ_SPLIT_149
-# define BOOST_PP_SEQ_SPLIT_151(x) (x) BOOST_PP_SEQ_SPLIT_150
-# define BOOST_PP_SEQ_SPLIT_152(x) (x) BOOST_PP_SEQ_SPLIT_151
-# define BOOST_PP_SEQ_SPLIT_153(x) (x) BOOST_PP_SEQ_SPLIT_152
-# define BOOST_PP_SEQ_SPLIT_154(x) (x) BOOST_PP_SEQ_SPLIT_153
-# define BOOST_PP_SEQ_SPLIT_155(x) (x) BOOST_PP_SEQ_SPLIT_154
-# define BOOST_PP_SEQ_SPLIT_156(x) (x) BOOST_PP_SEQ_SPLIT_155
-# define BOOST_PP_SEQ_SPLIT_157(x) (x) BOOST_PP_SEQ_SPLIT_156
-# define BOOST_PP_SEQ_SPLIT_158(x) (x) BOOST_PP_SEQ_SPLIT_157
-# define BOOST_PP_SEQ_SPLIT_159(x) (x) BOOST_PP_SEQ_SPLIT_158
-# define BOOST_PP_SEQ_SPLIT_160(x) (x) BOOST_PP_SEQ_SPLIT_159
-# define BOOST_PP_SEQ_SPLIT_161(x) (x) BOOST_PP_SEQ_SPLIT_160
-# define BOOST_PP_SEQ_SPLIT_162(x) (x) BOOST_PP_SEQ_SPLIT_161
-# define BOOST_PP_SEQ_SPLIT_163(x) (x) BOOST_PP_SEQ_SPLIT_162
-# define BOOST_PP_SEQ_SPLIT_164(x) (x) BOOST_PP_SEQ_SPLIT_163
-# define BOOST_PP_SEQ_SPLIT_165(x) (x) BOOST_PP_SEQ_SPLIT_164
-# define BOOST_PP_SEQ_SPLIT_166(x) (x) BOOST_PP_SEQ_SPLIT_165
-# define BOOST_PP_SEQ_SPLIT_167(x) (x) BOOST_PP_SEQ_SPLIT_166
-# define BOOST_PP_SEQ_SPLIT_168(x) (x) BOOST_PP_SEQ_SPLIT_167
-# define BOOST_PP_SEQ_SPLIT_169(x) (x) BOOST_PP_SEQ_SPLIT_168
-# define BOOST_PP_SEQ_SPLIT_170(x) (x) BOOST_PP_SEQ_SPLIT_169
-# define BOOST_PP_SEQ_SPLIT_171(x) (x) BOOST_PP_SEQ_SPLIT_170
-# define BOOST_PP_SEQ_SPLIT_172(x) (x) BOOST_PP_SEQ_SPLIT_171
-# define BOOST_PP_SEQ_SPLIT_173(x) (x) BOOST_PP_SEQ_SPLIT_172
-# define BOOST_PP_SEQ_SPLIT_174(x) (x) BOOST_PP_SEQ_SPLIT_173
-# define BOOST_PP_SEQ_SPLIT_175(x) (x) BOOST_PP_SEQ_SPLIT_174
-# define BOOST_PP_SEQ_SPLIT_176(x) (x) BOOST_PP_SEQ_SPLIT_175
-# define BOOST_PP_SEQ_SPLIT_177(x) (x) BOOST_PP_SEQ_SPLIT_176
-# define BOOST_PP_SEQ_SPLIT_178(x) (x) BOOST_PP_SEQ_SPLIT_177
-# define BOOST_PP_SEQ_SPLIT_179(x) (x) BOOST_PP_SEQ_SPLIT_178
-# define BOOST_PP_SEQ_SPLIT_180(x) (x) BOOST_PP_SEQ_SPLIT_179
-# define BOOST_PP_SEQ_SPLIT_181(x) (x) BOOST_PP_SEQ_SPLIT_180
-# define BOOST_PP_SEQ_SPLIT_182(x) (x) BOOST_PP_SEQ_SPLIT_181
-# define BOOST_PP_SEQ_SPLIT_183(x) (x) BOOST_PP_SEQ_SPLIT_182
-# define BOOST_PP_SEQ_SPLIT_184(x) (x) BOOST_PP_SEQ_SPLIT_183
-# define BOOST_PP_SEQ_SPLIT_185(x) (x) BOOST_PP_SEQ_SPLIT_184
-# define BOOST_PP_SEQ_SPLIT_186(x) (x) BOOST_PP_SEQ_SPLIT_185
-# define BOOST_PP_SEQ_SPLIT_187(x) (x) BOOST_PP_SEQ_SPLIT_186
-# define BOOST_PP_SEQ_SPLIT_188(x) (x) BOOST_PP_SEQ_SPLIT_187
-# define BOOST_PP_SEQ_SPLIT_189(x) (x) BOOST_PP_SEQ_SPLIT_188
-# define BOOST_PP_SEQ_SPLIT_190(x) (x) BOOST_PP_SEQ_SPLIT_189
-# define BOOST_PP_SEQ_SPLIT_191(x) (x) BOOST_PP_SEQ_SPLIT_190
-# define BOOST_PP_SEQ_SPLIT_192(x) (x) BOOST_PP_SEQ_SPLIT_191
-# define BOOST_PP_SEQ_SPLIT_193(x) (x) BOOST_PP_SEQ_SPLIT_192
-# define BOOST_PP_SEQ_SPLIT_194(x) (x) BOOST_PP_SEQ_SPLIT_193
-# define BOOST_PP_SEQ_SPLIT_195(x) (x) BOOST_PP_SEQ_SPLIT_194
-# define BOOST_PP_SEQ_SPLIT_196(x) (x) BOOST_PP_SEQ_SPLIT_195
-# define BOOST_PP_SEQ_SPLIT_197(x) (x) BOOST_PP_SEQ_SPLIT_196
-# define BOOST_PP_SEQ_SPLIT_198(x) (x) BOOST_PP_SEQ_SPLIT_197
-# define BOOST_PP_SEQ_SPLIT_199(x) (x) BOOST_PP_SEQ_SPLIT_198
-# define BOOST_PP_SEQ_SPLIT_200(x) (x) BOOST_PP_SEQ_SPLIT_199
-# define BOOST_PP_SEQ_SPLIT_201(x) (x) BOOST_PP_SEQ_SPLIT_200
-# define BOOST_PP_SEQ_SPLIT_202(x) (x) BOOST_PP_SEQ_SPLIT_201
-# define BOOST_PP_SEQ_SPLIT_203(x) (x) BOOST_PP_SEQ_SPLIT_202
-# define BOOST_PP_SEQ_SPLIT_204(x) (x) BOOST_PP_SEQ_SPLIT_203
-# define BOOST_PP_SEQ_SPLIT_205(x) (x) BOOST_PP_SEQ_SPLIT_204
-# define BOOST_PP_SEQ_SPLIT_206(x) (x) BOOST_PP_SEQ_SPLIT_205
-# define BOOST_PP_SEQ_SPLIT_207(x) (x) BOOST_PP_SEQ_SPLIT_206
-# define BOOST_PP_SEQ_SPLIT_208(x) (x) BOOST_PP_SEQ_SPLIT_207
-# define BOOST_PP_SEQ_SPLIT_209(x) (x) BOOST_PP_SEQ_SPLIT_208
-# define BOOST_PP_SEQ_SPLIT_210(x) (x) BOOST_PP_SEQ_SPLIT_209
-# define BOOST_PP_SEQ_SPLIT_211(x) (x) BOOST_PP_SEQ_SPLIT_210
-# define BOOST_PP_SEQ_SPLIT_212(x) (x) BOOST_PP_SEQ_SPLIT_211
-# define BOOST_PP_SEQ_SPLIT_213(x) (x) BOOST_PP_SEQ_SPLIT_212
-# define BOOST_PP_SEQ_SPLIT_214(x) (x) BOOST_PP_SEQ_SPLIT_213
-# define BOOST_PP_SEQ_SPLIT_215(x) (x) BOOST_PP_SEQ_SPLIT_214
-# define BOOST_PP_SEQ_SPLIT_216(x) (x) BOOST_PP_SEQ_SPLIT_215
-# define BOOST_PP_SEQ_SPLIT_217(x) (x) BOOST_PP_SEQ_SPLIT_216
-# define BOOST_PP_SEQ_SPLIT_218(x) (x) BOOST_PP_SEQ_SPLIT_217
-# define BOOST_PP_SEQ_SPLIT_219(x) (x) BOOST_PP_SEQ_SPLIT_218
-# define BOOST_PP_SEQ_SPLIT_220(x) (x) BOOST_PP_SEQ_SPLIT_219
-# define BOOST_PP_SEQ_SPLIT_221(x) (x) BOOST_PP_SEQ_SPLIT_220
-# define BOOST_PP_SEQ_SPLIT_222(x) (x) BOOST_PP_SEQ_SPLIT_221
-# define BOOST_PP_SEQ_SPLIT_223(x) (x) BOOST_PP_SEQ_SPLIT_222
-# define BOOST_PP_SEQ_SPLIT_224(x) (x) BOOST_PP_SEQ_SPLIT_223
-# define BOOST_PP_SEQ_SPLIT_225(x) (x) BOOST_PP_SEQ_SPLIT_224
-# define BOOST_PP_SEQ_SPLIT_226(x) (x) BOOST_PP_SEQ_SPLIT_225
-# define BOOST_PP_SEQ_SPLIT_227(x) (x) BOOST_PP_SEQ_SPLIT_226
-# define BOOST_PP_SEQ_SPLIT_228(x) (x) BOOST_PP_SEQ_SPLIT_227
-# define BOOST_PP_SEQ_SPLIT_229(x) (x) BOOST_PP_SEQ_SPLIT_228
-# define BOOST_PP_SEQ_SPLIT_230(x) (x) BOOST_PP_SEQ_SPLIT_229
-# define BOOST_PP_SEQ_SPLIT_231(x) (x) BOOST_PP_SEQ_SPLIT_230
-# define BOOST_PP_SEQ_SPLIT_232(x) (x) BOOST_PP_SEQ_SPLIT_231
-# define BOOST_PP_SEQ_SPLIT_233(x) (x) BOOST_PP_SEQ_SPLIT_232
-# define BOOST_PP_SEQ_SPLIT_234(x) (x) BOOST_PP_SEQ_SPLIT_233
-# define BOOST_PP_SEQ_SPLIT_235(x) (x) BOOST_PP_SEQ_SPLIT_234
-# define BOOST_PP_SEQ_SPLIT_236(x) (x) BOOST_PP_SEQ_SPLIT_235
-# define BOOST_PP_SEQ_SPLIT_237(x) (x) BOOST_PP_SEQ_SPLIT_236
-# define BOOST_PP_SEQ_SPLIT_238(x) (x) BOOST_PP_SEQ_SPLIT_237
-# define BOOST_PP_SEQ_SPLIT_239(x) (x) BOOST_PP_SEQ_SPLIT_238
-# define BOOST_PP_SEQ_SPLIT_240(x) (x) BOOST_PP_SEQ_SPLIT_239
-# define BOOST_PP_SEQ_SPLIT_241(x) (x) BOOST_PP_SEQ_SPLIT_240
-# define BOOST_PP_SEQ_SPLIT_242(x) (x) BOOST_PP_SEQ_SPLIT_241
-# define BOOST_PP_SEQ_SPLIT_243(x) (x) BOOST_PP_SEQ_SPLIT_242
-# define BOOST_PP_SEQ_SPLIT_244(x) (x) BOOST_PP_SEQ_SPLIT_243
-# define BOOST_PP_SEQ_SPLIT_245(x) (x) BOOST_PP_SEQ_SPLIT_244
-# define BOOST_PP_SEQ_SPLIT_246(x) (x) BOOST_PP_SEQ_SPLIT_245
-# define BOOST_PP_SEQ_SPLIT_247(x) (x) BOOST_PP_SEQ_SPLIT_246
-# define BOOST_PP_SEQ_SPLIT_248(x) (x) BOOST_PP_SEQ_SPLIT_247
-# define BOOST_PP_SEQ_SPLIT_249(x) (x) BOOST_PP_SEQ_SPLIT_248
-# define BOOST_PP_SEQ_SPLIT_250(x) (x) BOOST_PP_SEQ_SPLIT_249
-# define BOOST_PP_SEQ_SPLIT_251(x) (x) BOOST_PP_SEQ_SPLIT_250
-# define BOOST_PP_SEQ_SPLIT_252(x) (x) BOOST_PP_SEQ_SPLIT_251
-# define BOOST_PP_SEQ_SPLIT_253(x) (x) BOOST_PP_SEQ_SPLIT_252
-# define BOOST_PP_SEQ_SPLIT_254(x) (x) BOOST_PP_SEQ_SPLIT_253
-# define BOOST_PP_SEQ_SPLIT_255(x) (x) BOOST_PP_SEQ_SPLIT_254
-# define BOOST_PP_SEQ_SPLIT_256(x) (x) BOOST_PP_SEQ_SPLIT_255
-#
-# endif
diff --git a/boost/preprocessor/seq/elem.hpp b/boost/preprocessor/seq/elem.hpp
deleted file mode 100644
index 9c7a4b2..0000000
--- a/boost/preprocessor/seq/elem.hpp
+++ /dev/null
@@ -1,304 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_SEQ_ELEM_HPP
-# define BOOST_PREPROCESSOR_SEQ_ELEM_HPP
-#
-# include <boost/preprocessor/cat.hpp>
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/facilities/empty.hpp>
-#
-# /* BOOST_PP_SEQ_ELEM */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#    define BOOST_PP_SEQ_ELEM(i, seq) BOOST_PP_SEQ_ELEM_I(i, seq)
-# else
-#    define BOOST_PP_SEQ_ELEM(i, seq) BOOST_PP_SEQ_ELEM_I((i, seq))
-# endif
-#
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
-#    define BOOST_PP_SEQ_ELEM_I(i, seq) BOOST_PP_SEQ_ELEM_II((BOOST_PP_SEQ_ELEM_ ## i seq))
-#    define BOOST_PP_SEQ_ELEM_II(res) BOOST_PP_SEQ_ELEM_IV(BOOST_PP_SEQ_ELEM_III res)
-#    define BOOST_PP_SEQ_ELEM_III(x, _) x BOOST_PP_EMPTY()
-#    define BOOST_PP_SEQ_ELEM_IV(x) x
-# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#    define BOOST_PP_SEQ_ELEM_I(par) BOOST_PP_SEQ_ELEM_II ## par
-#    define BOOST_PP_SEQ_ELEM_II(i, seq) BOOST_PP_SEQ_ELEM_III(BOOST_PP_SEQ_ELEM_ ## i ## seq)
-#    define BOOST_PP_SEQ_ELEM_III(im) BOOST_PP_SEQ_ELEM_IV(im)
-#    define BOOST_PP_SEQ_ELEM_IV(x, _) x
-# else
-#    if defined(__IBMC__) || defined(__IBMCPP__)
-#        define BOOST_PP_SEQ_ELEM_I(i, seq) BOOST_PP_SEQ_ELEM_II(BOOST_PP_CAT(BOOST_PP_SEQ_ELEM_ ## i, seq))
-#    else
-#        define BOOST_PP_SEQ_ELEM_I(i, seq) BOOST_PP_SEQ_ELEM_II(BOOST_PP_SEQ_ELEM_ ## i seq)
-#    endif
-#    define BOOST_PP_SEQ_ELEM_II(im) BOOST_PP_SEQ_ELEM_III(im)
-#    define BOOST_PP_SEQ_ELEM_III(x, _) x
-# endif
-#
-# define BOOST_PP_SEQ_ELEM_0(x) x, BOOST_PP_NIL
-# define BOOST_PP_SEQ_ELEM_1(_) BOOST_PP_SEQ_ELEM_0
-# define BOOST_PP_SEQ_ELEM_2(_) BOOST_PP_SEQ_ELEM_1
-# define BOOST_PP_SEQ_ELEM_3(_) BOOST_PP_SEQ_ELEM_2
-# define BOOST_PP_SEQ_ELEM_4(_) BOOST_PP_SEQ_ELEM_3
-# define BOOST_PP_SEQ_ELEM_5(_) BOOST_PP_SEQ_ELEM_4
-# define BOOST_PP_SEQ_ELEM_6(_) BOOST_PP_SEQ_ELEM_5
-# define BOOST_PP_SEQ_ELEM_7(_) BOOST_PP_SEQ_ELEM_6
-# define BOOST_PP_SEQ_ELEM_8(_) BOOST_PP_SEQ_ELEM_7
-# define BOOST_PP_SEQ_ELEM_9(_) BOOST_PP_SEQ_ELEM_8
-# define BOOST_PP_SEQ_ELEM_10(_) BOOST_PP_SEQ_ELEM_9
-# define BOOST_PP_SEQ_ELEM_11(_) BOOST_PP_SEQ_ELEM_10
-# define BOOST_PP_SEQ_ELEM_12(_) BOOST_PP_SEQ_ELEM_11
-# define BOOST_PP_SEQ_ELEM_13(_) BOOST_PP_SEQ_ELEM_12
-# define BOOST_PP_SEQ_ELEM_14(_) BOOST_PP_SEQ_ELEM_13
-# define BOOST_PP_SEQ_ELEM_15(_) BOOST_PP_SEQ_ELEM_14
-# define BOOST_PP_SEQ_ELEM_16(_) BOOST_PP_SEQ_ELEM_15
-# define BOOST_PP_SEQ_ELEM_17(_) BOOST_PP_SEQ_ELEM_16
-# define BOOST_PP_SEQ_ELEM_18(_) BOOST_PP_SEQ_ELEM_17
-# define BOOST_PP_SEQ_ELEM_19(_) BOOST_PP_SEQ_ELEM_18
-# define BOOST_PP_SEQ_ELEM_20(_) BOOST_PP_SEQ_ELEM_19
-# define BOOST_PP_SEQ_ELEM_21(_) BOOST_PP_SEQ_ELEM_20
-# define BOOST_PP_SEQ_ELEM_22(_) BOOST_PP_SEQ_ELEM_21
-# define BOOST_PP_SEQ_ELEM_23(_) BOOST_PP_SEQ_ELEM_22
-# define BOOST_PP_SEQ_ELEM_24(_) BOOST_PP_SEQ_ELEM_23
-# define BOOST_PP_SEQ_ELEM_25(_) BOOST_PP_SEQ_ELEM_24
-# define BOOST_PP_SEQ_ELEM_26(_) BOOST_PP_SEQ_ELEM_25
-# define BOOST_PP_SEQ_ELEM_27(_) BOOST_PP_SEQ_ELEM_26
-# define BOOST_PP_SEQ_ELEM_28(_) BOOST_PP_SEQ_ELEM_27
-# define BOOST_PP_SEQ_ELEM_29(_) BOOST_PP_SEQ_ELEM_28
-# define BOOST_PP_SEQ_ELEM_30(_) BOOST_PP_SEQ_ELEM_29
-# define BOOST_PP_SEQ_ELEM_31(_) BOOST_PP_SEQ_ELEM_30
-# define BOOST_PP_SEQ_ELEM_32(_) BOOST_PP_SEQ_ELEM_31
-# define BOOST_PP_SEQ_ELEM_33(_) BOOST_PP_SEQ_ELEM_32
-# define BOOST_PP_SEQ_ELEM_34(_) BOOST_PP_SEQ_ELEM_33
-# define BOOST_PP_SEQ_ELEM_35(_) BOOST_PP_SEQ_ELEM_34
-# define BOOST_PP_SEQ_ELEM_36(_) BOOST_PP_SEQ_ELEM_35
-# define BOOST_PP_SEQ_ELEM_37(_) BOOST_PP_SEQ_ELEM_36
-# define BOOST_PP_SEQ_ELEM_38(_) BOOST_PP_SEQ_ELEM_37
-# define BOOST_PP_SEQ_ELEM_39(_) BOOST_PP_SEQ_ELEM_38
-# define BOOST_PP_SEQ_ELEM_40(_) BOOST_PP_SEQ_ELEM_39
-# define BOOST_PP_SEQ_ELEM_41(_) BOOST_PP_SEQ_ELEM_40
-# define BOOST_PP_SEQ_ELEM_42(_) BOOST_PP_SEQ_ELEM_41
-# define BOOST_PP_SEQ_ELEM_43(_) BOOST_PP_SEQ_ELEM_42
-# define BOOST_PP_SEQ_ELEM_44(_) BOOST_PP_SEQ_ELEM_43
-# define BOOST_PP_SEQ_ELEM_45(_) BOOST_PP_SEQ_ELEM_44
-# define BOOST_PP_SEQ_ELEM_46(_) BOOST_PP_SEQ_ELEM_45
-# define BOOST_PP_SEQ_ELEM_47(_) BOOST_PP_SEQ_ELEM_46
-# define BOOST_PP_SEQ_ELEM_48(_) BOOST_PP_SEQ_ELEM_47
-# define BOOST_PP_SEQ_ELEM_49(_) BOOST_PP_SEQ_ELEM_48
-# define BOOST_PP_SEQ_ELEM_50(_) BOOST_PP_SEQ_ELEM_49
-# define BOOST_PP_SEQ_ELEM_51(_) BOOST_PP_SEQ_ELEM_50
-# define BOOST_PP_SEQ_ELEM_52(_) BOOST_PP_SEQ_ELEM_51
-# define BOOST_PP_SEQ_ELEM_53(_) BOOST_PP_SEQ_ELEM_52
-# define BOOST_PP_SEQ_ELEM_54(_) BOOST_PP_SEQ_ELEM_53
-# define BOOST_PP_SEQ_ELEM_55(_) BOOST_PP_SEQ_ELEM_54
-# define BOOST_PP_SEQ_ELEM_56(_) BOOST_PP_SEQ_ELEM_55
-# define BOOST_PP_SEQ_ELEM_57(_) BOOST_PP_SEQ_ELEM_56
-# define BOOST_PP_SEQ_ELEM_58(_) BOOST_PP_SEQ_ELEM_57
-# define BOOST_PP_SEQ_ELEM_59(_) BOOST_PP_SEQ_ELEM_58
-# define BOOST_PP_SEQ_ELEM_60(_) BOOST_PP_SEQ_ELEM_59
-# define BOOST_PP_SEQ_ELEM_61(_) BOOST_PP_SEQ_ELEM_60
-# define BOOST_PP_SEQ_ELEM_62(_) BOOST_PP_SEQ_ELEM_61
-# define BOOST_PP_SEQ_ELEM_63(_) BOOST_PP_SEQ_ELEM_62
-# define BOOST_PP_SEQ_ELEM_64(_) BOOST_PP_SEQ_ELEM_63
-# define BOOST_PP_SEQ_ELEM_65(_) BOOST_PP_SEQ_ELEM_64
-# define BOOST_PP_SEQ_ELEM_66(_) BOOST_PP_SEQ_ELEM_65
-# define BOOST_PP_SEQ_ELEM_67(_) BOOST_PP_SEQ_ELEM_66
-# define BOOST_PP_SEQ_ELEM_68(_) BOOST_PP_SEQ_ELEM_67
-# define BOOST_PP_SEQ_ELEM_69(_) BOOST_PP_SEQ_ELEM_68
-# define BOOST_PP_SEQ_ELEM_70(_) BOOST_PP_SEQ_ELEM_69
-# define BOOST_PP_SEQ_ELEM_71(_) BOOST_PP_SEQ_ELEM_70
-# define BOOST_PP_SEQ_ELEM_72(_) BOOST_PP_SEQ_ELEM_71
-# define BOOST_PP_SEQ_ELEM_73(_) BOOST_PP_SEQ_ELEM_72
-# define BOOST_PP_SEQ_ELEM_74(_) BOOST_PP_SEQ_ELEM_73
-# define BOOST_PP_SEQ_ELEM_75(_) BOOST_PP_SEQ_ELEM_74
-# define BOOST_PP_SEQ_ELEM_76(_) BOOST_PP_SEQ_ELEM_75
-# define BOOST_PP_SEQ_ELEM_77(_) BOOST_PP_SEQ_ELEM_76
-# define BOOST_PP_SEQ_ELEM_78(_) BOOST_PP_SEQ_ELEM_77
-# define BOOST_PP_SEQ_ELEM_79(_) BOOST_PP_SEQ_ELEM_78
-# define BOOST_PP_SEQ_ELEM_80(_) BOOST_PP_SEQ_ELEM_79
-# define BOOST_PP_SEQ_ELEM_81(_) BOOST_PP_SEQ_ELEM_80
-# define BOOST_PP_SEQ_ELEM_82(_) BOOST_PP_SEQ_ELEM_81
-# define BOOST_PP_SEQ_ELEM_83(_) BOOST_PP_SEQ_ELEM_82
-# define BOOST_PP_SEQ_ELEM_84(_) BOOST_PP_SEQ_ELEM_83
-# define BOOST_PP_SEQ_ELEM_85(_) BOOST_PP_SEQ_ELEM_84
-# define BOOST_PP_SEQ_ELEM_86(_) BOOST_PP_SEQ_ELEM_85
-# define BOOST_PP_SEQ_ELEM_87(_) BOOST_PP_SEQ_ELEM_86
-# define BOOST_PP_SEQ_ELEM_88(_) BOOST_PP_SEQ_ELEM_87
-# define BOOST_PP_SEQ_ELEM_89(_) BOOST_PP_SEQ_ELEM_88
-# define BOOST_PP_SEQ_ELEM_90(_) BOOST_PP_SEQ_ELEM_89
-# define BOOST_PP_SEQ_ELEM_91(_) BOOST_PP_SEQ_ELEM_90
-# define BOOST_PP_SEQ_ELEM_92(_) BOOST_PP_SEQ_ELEM_91
-# define BOOST_PP_SEQ_ELEM_93(_) BOOST_PP_SEQ_ELEM_92
-# define BOOST_PP_SEQ_ELEM_94(_) BOOST_PP_SEQ_ELEM_93
-# define BOOST_PP_SEQ_ELEM_95(_) BOOST_PP_SEQ_ELEM_94
-# define BOOST_PP_SEQ_ELEM_96(_) BOOST_PP_SEQ_ELEM_95
-# define BOOST_PP_SEQ_ELEM_97(_) BOOST_PP_SEQ_ELEM_96
-# define BOOST_PP_SEQ_ELEM_98(_) BOOST_PP_SEQ_ELEM_97
-# define BOOST_PP_SEQ_ELEM_99(_) BOOST_PP_SEQ_ELEM_98
-# define BOOST_PP_SEQ_ELEM_100(_) BOOST_PP_SEQ_ELEM_99
-# define BOOST_PP_SEQ_ELEM_101(_) BOOST_PP_SEQ_ELEM_100
-# define BOOST_PP_SEQ_ELEM_102(_) BOOST_PP_SEQ_ELEM_101
-# define BOOST_PP_SEQ_ELEM_103(_) BOOST_PP_SEQ_ELEM_102
-# define BOOST_PP_SEQ_ELEM_104(_) BOOST_PP_SEQ_ELEM_103
-# define BOOST_PP_SEQ_ELEM_105(_) BOOST_PP_SEQ_ELEM_104
-# define BOOST_PP_SEQ_ELEM_106(_) BOOST_PP_SEQ_ELEM_105
-# define BOOST_PP_SEQ_ELEM_107(_) BOOST_PP_SEQ_ELEM_106
-# define BOOST_PP_SEQ_ELEM_108(_) BOOST_PP_SEQ_ELEM_107
-# define BOOST_PP_SEQ_ELEM_109(_) BOOST_PP_SEQ_ELEM_108
-# define BOOST_PP_SEQ_ELEM_110(_) BOOST_PP_SEQ_ELEM_109
-# define BOOST_PP_SEQ_ELEM_111(_) BOOST_PP_SEQ_ELEM_110
-# define BOOST_PP_SEQ_ELEM_112(_) BOOST_PP_SEQ_ELEM_111
-# define BOOST_PP_SEQ_ELEM_113(_) BOOST_PP_SEQ_ELEM_112
-# define BOOST_PP_SEQ_ELEM_114(_) BOOST_PP_SEQ_ELEM_113
-# define BOOST_PP_SEQ_ELEM_115(_) BOOST_PP_SEQ_ELEM_114
-# define BOOST_PP_SEQ_ELEM_116(_) BOOST_PP_SEQ_ELEM_115
-# define BOOST_PP_SEQ_ELEM_117(_) BOOST_PP_SEQ_ELEM_116
-# define BOOST_PP_SEQ_ELEM_118(_) BOOST_PP_SEQ_ELEM_117
-# define BOOST_PP_SEQ_ELEM_119(_) BOOST_PP_SEQ_ELEM_118
-# define BOOST_PP_SEQ_ELEM_120(_) BOOST_PP_SEQ_ELEM_119
-# define BOOST_PP_SEQ_ELEM_121(_) BOOST_PP_SEQ_ELEM_120
-# define BOOST_PP_SEQ_ELEM_122(_) BOOST_PP_SEQ_ELEM_121
-# define BOOST_PP_SEQ_ELEM_123(_) BOOST_PP_SEQ_ELEM_122
-# define BOOST_PP_SEQ_ELEM_124(_) BOOST_PP_SEQ_ELEM_123
-# define BOOST_PP_SEQ_ELEM_125(_) BOOST_PP_SEQ_ELEM_124
-# define BOOST_PP_SEQ_ELEM_126(_) BOOST_PP_SEQ_ELEM_125
-# define BOOST_PP_SEQ_ELEM_127(_) BOOST_PP_SEQ_ELEM_126
-# define BOOST_PP_SEQ_ELEM_128(_) BOOST_PP_SEQ_ELEM_127
-# define BOOST_PP_SEQ_ELEM_129(_) BOOST_PP_SEQ_ELEM_128
-# define BOOST_PP_SEQ_ELEM_130(_) BOOST_PP_SEQ_ELEM_129
-# define BOOST_PP_SEQ_ELEM_131(_) BOOST_PP_SEQ_ELEM_130
-# define BOOST_PP_SEQ_ELEM_132(_) BOOST_PP_SEQ_ELEM_131
-# define BOOST_PP_SEQ_ELEM_133(_) BOOST_PP_SEQ_ELEM_132
-# define BOOST_PP_SEQ_ELEM_134(_) BOOST_PP_SEQ_ELEM_133
-# define BOOST_PP_SEQ_ELEM_135(_) BOOST_PP_SEQ_ELEM_134
-# define BOOST_PP_SEQ_ELEM_136(_) BOOST_PP_SEQ_ELEM_135
-# define BOOST_PP_SEQ_ELEM_137(_) BOOST_PP_SEQ_ELEM_136
-# define BOOST_PP_SEQ_ELEM_138(_) BOOST_PP_SEQ_ELEM_137
-# define BOOST_PP_SEQ_ELEM_139(_) BOOST_PP_SEQ_ELEM_138
-# define BOOST_PP_SEQ_ELEM_140(_) BOOST_PP_SEQ_ELEM_139
-# define BOOST_PP_SEQ_ELEM_141(_) BOOST_PP_SEQ_ELEM_140
-# define BOOST_PP_SEQ_ELEM_142(_) BOOST_PP_SEQ_ELEM_141
-# define BOOST_PP_SEQ_ELEM_143(_) BOOST_PP_SEQ_ELEM_142
-# define BOOST_PP_SEQ_ELEM_144(_) BOOST_PP_SEQ_ELEM_143
-# define BOOST_PP_SEQ_ELEM_145(_) BOOST_PP_SEQ_ELEM_144
-# define BOOST_PP_SEQ_ELEM_146(_) BOOST_PP_SEQ_ELEM_145
-# define BOOST_PP_SEQ_ELEM_147(_) BOOST_PP_SEQ_ELEM_146
-# define BOOST_PP_SEQ_ELEM_148(_) BOOST_PP_SEQ_ELEM_147
-# define BOOST_PP_SEQ_ELEM_149(_) BOOST_PP_SEQ_ELEM_148
-# define BOOST_PP_SEQ_ELEM_150(_) BOOST_PP_SEQ_ELEM_149
-# define BOOST_PP_SEQ_ELEM_151(_) BOOST_PP_SEQ_ELEM_150
-# define BOOST_PP_SEQ_ELEM_152(_) BOOST_PP_SEQ_ELEM_151
-# define BOOST_PP_SEQ_ELEM_153(_) BOOST_PP_SEQ_ELEM_152
-# define BOOST_PP_SEQ_ELEM_154(_) BOOST_PP_SEQ_ELEM_153
-# define BOOST_PP_SEQ_ELEM_155(_) BOOST_PP_SEQ_ELEM_154
-# define BOOST_PP_SEQ_ELEM_156(_) BOOST_PP_SEQ_ELEM_155
-# define BOOST_PP_SEQ_ELEM_157(_) BOOST_PP_SEQ_ELEM_156
-# define BOOST_PP_SEQ_ELEM_158(_) BOOST_PP_SEQ_ELEM_157
-# define BOOST_PP_SEQ_ELEM_159(_) BOOST_PP_SEQ_ELEM_158
-# define BOOST_PP_SEQ_ELEM_160(_) BOOST_PP_SEQ_ELEM_159
-# define BOOST_PP_SEQ_ELEM_161(_) BOOST_PP_SEQ_ELEM_160
-# define BOOST_PP_SEQ_ELEM_162(_) BOOST_PP_SEQ_ELEM_161
-# define BOOST_PP_SEQ_ELEM_163(_) BOOST_PP_SEQ_ELEM_162
-# define BOOST_PP_SEQ_ELEM_164(_) BOOST_PP_SEQ_ELEM_163
-# define BOOST_PP_SEQ_ELEM_165(_) BOOST_PP_SEQ_ELEM_164
-# define BOOST_PP_SEQ_ELEM_166(_) BOOST_PP_SEQ_ELEM_165
-# define BOOST_PP_SEQ_ELEM_167(_) BOOST_PP_SEQ_ELEM_166
-# define BOOST_PP_SEQ_ELEM_168(_) BOOST_PP_SEQ_ELEM_167
-# define BOOST_PP_SEQ_ELEM_169(_) BOOST_PP_SEQ_ELEM_168
-# define BOOST_PP_SEQ_ELEM_170(_) BOOST_PP_SEQ_ELEM_169
-# define BOOST_PP_SEQ_ELEM_171(_) BOOST_PP_SEQ_ELEM_170
-# define BOOST_PP_SEQ_ELEM_172(_) BOOST_PP_SEQ_ELEM_171
-# define BOOST_PP_SEQ_ELEM_173(_) BOOST_PP_SEQ_ELEM_172
-# define BOOST_PP_SEQ_ELEM_174(_) BOOST_PP_SEQ_ELEM_173
-# define BOOST_PP_SEQ_ELEM_175(_) BOOST_PP_SEQ_ELEM_174
-# define BOOST_PP_SEQ_ELEM_176(_) BOOST_PP_SEQ_ELEM_175
-# define BOOST_PP_SEQ_ELEM_177(_) BOOST_PP_SEQ_ELEM_176
-# define BOOST_PP_SEQ_ELEM_178(_) BOOST_PP_SEQ_ELEM_177
-# define BOOST_PP_SEQ_ELEM_179(_) BOOST_PP_SEQ_ELEM_178
-# define BOOST_PP_SEQ_ELEM_180(_) BOOST_PP_SEQ_ELEM_179
-# define BOOST_PP_SEQ_ELEM_181(_) BOOST_PP_SEQ_ELEM_180
-# define BOOST_PP_SEQ_ELEM_182(_) BOOST_PP_SEQ_ELEM_181
-# define BOOST_PP_SEQ_ELEM_183(_) BOOST_PP_SEQ_ELEM_182
-# define BOOST_PP_SEQ_ELEM_184(_) BOOST_PP_SEQ_ELEM_183
-# define BOOST_PP_SEQ_ELEM_185(_) BOOST_PP_SEQ_ELEM_184
-# define BOOST_PP_SEQ_ELEM_186(_) BOOST_PP_SEQ_ELEM_185
-# define BOOST_PP_SEQ_ELEM_187(_) BOOST_PP_SEQ_ELEM_186
-# define BOOST_PP_SEQ_ELEM_188(_) BOOST_PP_SEQ_ELEM_187
-# define BOOST_PP_SEQ_ELEM_189(_) BOOST_PP_SEQ_ELEM_188
-# define BOOST_PP_SEQ_ELEM_190(_) BOOST_PP_SEQ_ELEM_189
-# define BOOST_PP_SEQ_ELEM_191(_) BOOST_PP_SEQ_ELEM_190
-# define BOOST_PP_SEQ_ELEM_192(_) BOOST_PP_SEQ_ELEM_191
-# define BOOST_PP_SEQ_ELEM_193(_) BOOST_PP_SEQ_ELEM_192
-# define BOOST_PP_SEQ_ELEM_194(_) BOOST_PP_SEQ_ELEM_193
-# define BOOST_PP_SEQ_ELEM_195(_) BOOST_PP_SEQ_ELEM_194
-# define BOOST_PP_SEQ_ELEM_196(_) BOOST_PP_SEQ_ELEM_195
-# define BOOST_PP_SEQ_ELEM_197(_) BOOST_PP_SEQ_ELEM_196
-# define BOOST_PP_SEQ_ELEM_198(_) BOOST_PP_SEQ_ELEM_197
-# define BOOST_PP_SEQ_ELEM_199(_) BOOST_PP_SEQ_ELEM_198
-# define BOOST_PP_SEQ_ELEM_200(_) BOOST_PP_SEQ_ELEM_199
-# define BOOST_PP_SEQ_ELEM_201(_) BOOST_PP_SEQ_ELEM_200
-# define BOOST_PP_SEQ_ELEM_202(_) BOOST_PP_SEQ_ELEM_201
-# define BOOST_PP_SEQ_ELEM_203(_) BOOST_PP_SEQ_ELEM_202
-# define BOOST_PP_SEQ_ELEM_204(_) BOOST_PP_SEQ_ELEM_203
-# define BOOST_PP_SEQ_ELEM_205(_) BOOST_PP_SEQ_ELEM_204
-# define BOOST_PP_SEQ_ELEM_206(_) BOOST_PP_SEQ_ELEM_205
-# define BOOST_PP_SEQ_ELEM_207(_) BOOST_PP_SEQ_ELEM_206
-# define BOOST_PP_SEQ_ELEM_208(_) BOOST_PP_SEQ_ELEM_207
-# define BOOST_PP_SEQ_ELEM_209(_) BOOST_PP_SEQ_ELEM_208
-# define BOOST_PP_SEQ_ELEM_210(_) BOOST_PP_SEQ_ELEM_209
-# define BOOST_PP_SEQ_ELEM_211(_) BOOST_PP_SEQ_ELEM_210
-# define BOOST_PP_SEQ_ELEM_212(_) BOOST_PP_SEQ_ELEM_211
-# define BOOST_PP_SEQ_ELEM_213(_) BOOST_PP_SEQ_ELEM_212
-# define BOOST_PP_SEQ_ELEM_214(_) BOOST_PP_SEQ_ELEM_213
-# define BOOST_PP_SEQ_ELEM_215(_) BOOST_PP_SEQ_ELEM_214
-# define BOOST_PP_SEQ_ELEM_216(_) BOOST_PP_SEQ_ELEM_215
-# define BOOST_PP_SEQ_ELEM_217(_) BOOST_PP_SEQ_ELEM_216
-# define BOOST_PP_SEQ_ELEM_218(_) BOOST_PP_SEQ_ELEM_217
-# define BOOST_PP_SEQ_ELEM_219(_) BOOST_PP_SEQ_ELEM_218
-# define BOOST_PP_SEQ_ELEM_220(_) BOOST_PP_SEQ_ELEM_219
-# define BOOST_PP_SEQ_ELEM_221(_) BOOST_PP_SEQ_ELEM_220
-# define BOOST_PP_SEQ_ELEM_222(_) BOOST_PP_SEQ_ELEM_221
-# define BOOST_PP_SEQ_ELEM_223(_) BOOST_PP_SEQ_ELEM_222
-# define BOOST_PP_SEQ_ELEM_224(_) BOOST_PP_SEQ_ELEM_223
-# define BOOST_PP_SEQ_ELEM_225(_) BOOST_PP_SEQ_ELEM_224
-# define BOOST_PP_SEQ_ELEM_226(_) BOOST_PP_SEQ_ELEM_225
-# define BOOST_PP_SEQ_ELEM_227(_) BOOST_PP_SEQ_ELEM_226
-# define BOOST_PP_SEQ_ELEM_228(_) BOOST_PP_SEQ_ELEM_227
-# define BOOST_PP_SEQ_ELEM_229(_) BOOST_PP_SEQ_ELEM_228
-# define BOOST_PP_SEQ_ELEM_230(_) BOOST_PP_SEQ_ELEM_229
-# define BOOST_PP_SEQ_ELEM_231(_) BOOST_PP_SEQ_ELEM_230
-# define BOOST_PP_SEQ_ELEM_232(_) BOOST_PP_SEQ_ELEM_231
-# define BOOST_PP_SEQ_ELEM_233(_) BOOST_PP_SEQ_ELEM_232
-# define BOOST_PP_SEQ_ELEM_234(_) BOOST_PP_SEQ_ELEM_233
-# define BOOST_PP_SEQ_ELEM_235(_) BOOST_PP_SEQ_ELEM_234
-# define BOOST_PP_SEQ_ELEM_236(_) BOOST_PP_SEQ_ELEM_235
-# define BOOST_PP_SEQ_ELEM_237(_) BOOST_PP_SEQ_ELEM_236
-# define BOOST_PP_SEQ_ELEM_238(_) BOOST_PP_SEQ_ELEM_237
-# define BOOST_PP_SEQ_ELEM_239(_) BOOST_PP_SEQ_ELEM_238
-# define BOOST_PP_SEQ_ELEM_240(_) BOOST_PP_SEQ_ELEM_239
-# define BOOST_PP_SEQ_ELEM_241(_) BOOST_PP_SEQ_ELEM_240
-# define BOOST_PP_SEQ_ELEM_242(_) BOOST_PP_SEQ_ELEM_241
-# define BOOST_PP_SEQ_ELEM_243(_) BOOST_PP_SEQ_ELEM_242
-# define BOOST_PP_SEQ_ELEM_244(_) BOOST_PP_SEQ_ELEM_243
-# define BOOST_PP_SEQ_ELEM_245(_) BOOST_PP_SEQ_ELEM_244
-# define BOOST_PP_SEQ_ELEM_246(_) BOOST_PP_SEQ_ELEM_245
-# define BOOST_PP_SEQ_ELEM_247(_) BOOST_PP_SEQ_ELEM_246
-# define BOOST_PP_SEQ_ELEM_248(_) BOOST_PP_SEQ_ELEM_247
-# define BOOST_PP_SEQ_ELEM_249(_) BOOST_PP_SEQ_ELEM_248
-# define BOOST_PP_SEQ_ELEM_250(_) BOOST_PP_SEQ_ELEM_249
-# define BOOST_PP_SEQ_ELEM_251(_) BOOST_PP_SEQ_ELEM_250
-# define BOOST_PP_SEQ_ELEM_252(_) BOOST_PP_SEQ_ELEM_251
-# define BOOST_PP_SEQ_ELEM_253(_) BOOST_PP_SEQ_ELEM_252
-# define BOOST_PP_SEQ_ELEM_254(_) BOOST_PP_SEQ_ELEM_253
-# define BOOST_PP_SEQ_ELEM_255(_) BOOST_PP_SEQ_ELEM_254
-#
-# endif
diff --git a/boost/preprocessor/seq/enum.hpp b/boost/preprocessor/seq/enum.hpp
deleted file mode 100644
index b63b242..0000000
--- a/boost/preprocessor/seq/enum.hpp
+++ /dev/null
@@ -1,288 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_SEQ_ENUM_HPP
-# define BOOST_PREPROCESSOR_SEQ_ENUM_HPP
-#
-# include <boost/preprocessor/cat.hpp>
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/seq/size.hpp>
-#
-# /* BOOST_PP_SEQ_ENUM */
-#
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_SEQ_ENUM(seq) BOOST_PP_SEQ_ENUM_I(seq)
-#    define BOOST_PP_SEQ_ENUM_I(seq) BOOST_PP_CAT(BOOST_PP_SEQ_ENUM_, BOOST_PP_SEQ_SIZE(seq)) seq
-# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#    define BOOST_PP_SEQ_ENUM(seq) BOOST_PP_SEQ_ENUM_I(BOOST_PP_SEQ_SIZE(seq), seq)
-#    define BOOST_PP_SEQ_ENUM_I(size, seq) BOOST_PP_CAT(BOOST_PP_SEQ_ENUM_, size) seq
-# else
-#    define BOOST_PP_SEQ_ENUM(seq) BOOST_PP_CAT(BOOST_PP_SEQ_ENUM_, BOOST_PP_SEQ_SIZE(seq)) seq
-# endif
-#
-# define BOOST_PP_SEQ_ENUM_1(x) x
-# define BOOST_PP_SEQ_ENUM_2(x) x, BOOST_PP_SEQ_ENUM_1
-# define BOOST_PP_SEQ_ENUM_3(x) x, BOOST_PP_SEQ_ENUM_2
-# define BOOST_PP_SEQ_ENUM_4(x) x, BOOST_PP_SEQ_ENUM_3
-# define BOOST_PP_SEQ_ENUM_5(x) x, BOOST_PP_SEQ_ENUM_4
-# define BOOST_PP_SEQ_ENUM_6(x) x, BOOST_PP_SEQ_ENUM_5
-# define BOOST_PP_SEQ_ENUM_7(x) x, BOOST_PP_SEQ_ENUM_6
-# define BOOST_PP_SEQ_ENUM_8(x) x, BOOST_PP_SEQ_ENUM_7
-# define BOOST_PP_SEQ_ENUM_9(x) x, BOOST_PP_SEQ_ENUM_8
-# define BOOST_PP_SEQ_ENUM_10(x) x, BOOST_PP_SEQ_ENUM_9
-# define BOOST_PP_SEQ_ENUM_11(x) x, BOOST_PP_SEQ_ENUM_10
-# define BOOST_PP_SEQ_ENUM_12(x) x, BOOST_PP_SEQ_ENUM_11
-# define BOOST_PP_SEQ_ENUM_13(x) x, BOOST_PP_SEQ_ENUM_12
-# define BOOST_PP_SEQ_ENUM_14(x) x, BOOST_PP_SEQ_ENUM_13
-# define BOOST_PP_SEQ_ENUM_15(x) x, BOOST_PP_SEQ_ENUM_14
-# define BOOST_PP_SEQ_ENUM_16(x) x, BOOST_PP_SEQ_ENUM_15
-# define BOOST_PP_SEQ_ENUM_17(x) x, BOOST_PP_SEQ_ENUM_16
-# define BOOST_PP_SEQ_ENUM_18(x) x, BOOST_PP_SEQ_ENUM_17
-# define BOOST_PP_SEQ_ENUM_19(x) x, BOOST_PP_SEQ_ENUM_18
-# define BOOST_PP_SEQ_ENUM_20(x) x, BOOST_PP_SEQ_ENUM_19
-# define BOOST_PP_SEQ_ENUM_21(x) x, BOOST_PP_SEQ_ENUM_20
-# define BOOST_PP_SEQ_ENUM_22(x) x, BOOST_PP_SEQ_ENUM_21
-# define BOOST_PP_SEQ_ENUM_23(x) x, BOOST_PP_SEQ_ENUM_22
-# define BOOST_PP_SEQ_ENUM_24(x) x, BOOST_PP_SEQ_ENUM_23
-# define BOOST_PP_SEQ_ENUM_25(x) x, BOOST_PP_SEQ_ENUM_24
-# define BOOST_PP_SEQ_ENUM_26(x) x, BOOST_PP_SEQ_ENUM_25
-# define BOOST_PP_SEQ_ENUM_27(x) x, BOOST_PP_SEQ_ENUM_26
-# define BOOST_PP_SEQ_ENUM_28(x) x, BOOST_PP_SEQ_ENUM_27
-# define BOOST_PP_SEQ_ENUM_29(x) x, BOOST_PP_SEQ_ENUM_28
-# define BOOST_PP_SEQ_ENUM_30(x) x, BOOST_PP_SEQ_ENUM_29
-# define BOOST_PP_SEQ_ENUM_31(x) x, BOOST_PP_SEQ_ENUM_30
-# define BOOST_PP_SEQ_ENUM_32(x) x, BOOST_PP_SEQ_ENUM_31
-# define BOOST_PP_SEQ_ENUM_33(x) x, BOOST_PP_SEQ_ENUM_32
-# define BOOST_PP_SEQ_ENUM_34(x) x, BOOST_PP_SEQ_ENUM_33
-# define BOOST_PP_SEQ_ENUM_35(x) x, BOOST_PP_SEQ_ENUM_34
-# define BOOST_PP_SEQ_ENUM_36(x) x, BOOST_PP_SEQ_ENUM_35
-# define BOOST_PP_SEQ_ENUM_37(x) x, BOOST_PP_SEQ_ENUM_36
-# define BOOST_PP_SEQ_ENUM_38(x) x, BOOST_PP_SEQ_ENUM_37
-# define BOOST_PP_SEQ_ENUM_39(x) x, BOOST_PP_SEQ_ENUM_38
-# define BOOST_PP_SEQ_ENUM_40(x) x, BOOST_PP_SEQ_ENUM_39
-# define BOOST_PP_SEQ_ENUM_41(x) x, BOOST_PP_SEQ_ENUM_40
-# define BOOST_PP_SEQ_ENUM_42(x) x, BOOST_PP_SEQ_ENUM_41
-# define BOOST_PP_SEQ_ENUM_43(x) x, BOOST_PP_SEQ_ENUM_42
-# define BOOST_PP_SEQ_ENUM_44(x) x, BOOST_PP_SEQ_ENUM_43
-# define BOOST_PP_SEQ_ENUM_45(x) x, BOOST_PP_SEQ_ENUM_44
-# define BOOST_PP_SEQ_ENUM_46(x) x, BOOST_PP_SEQ_ENUM_45
-# define BOOST_PP_SEQ_ENUM_47(x) x, BOOST_PP_SEQ_ENUM_46
-# define BOOST_PP_SEQ_ENUM_48(x) x, BOOST_PP_SEQ_ENUM_47
-# define BOOST_PP_SEQ_ENUM_49(x) x, BOOST_PP_SEQ_ENUM_48
-# define BOOST_PP_SEQ_ENUM_50(x) x, BOOST_PP_SEQ_ENUM_49
-# define BOOST_PP_SEQ_ENUM_51(x) x, BOOST_PP_SEQ_ENUM_50
-# define BOOST_PP_SEQ_ENUM_52(x) x, BOOST_PP_SEQ_ENUM_51
-# define BOOST_PP_SEQ_ENUM_53(x) x, BOOST_PP_SEQ_ENUM_52
-# define BOOST_PP_SEQ_ENUM_54(x) x, BOOST_PP_SEQ_ENUM_53
-# define BOOST_PP_SEQ_ENUM_55(x) x, BOOST_PP_SEQ_ENUM_54
-# define BOOST_PP_SEQ_ENUM_56(x) x, BOOST_PP_SEQ_ENUM_55
-# define BOOST_PP_SEQ_ENUM_57(x) x, BOOST_PP_SEQ_ENUM_56
-# define BOOST_PP_SEQ_ENUM_58(x) x, BOOST_PP_SEQ_ENUM_57
-# define BOOST_PP_SEQ_ENUM_59(x) x, BOOST_PP_SEQ_ENUM_58
-# define BOOST_PP_SEQ_ENUM_60(x) x, BOOST_PP_SEQ_ENUM_59
-# define BOOST_PP_SEQ_ENUM_61(x) x, BOOST_PP_SEQ_ENUM_60
-# define BOOST_PP_SEQ_ENUM_62(x) x, BOOST_PP_SEQ_ENUM_61
-# define BOOST_PP_SEQ_ENUM_63(x) x, BOOST_PP_SEQ_ENUM_62
-# define BOOST_PP_SEQ_ENUM_64(x) x, BOOST_PP_SEQ_ENUM_63
-# define BOOST_PP_SEQ_ENUM_65(x) x, BOOST_PP_SEQ_ENUM_64
-# define BOOST_PP_SEQ_ENUM_66(x) x, BOOST_PP_SEQ_ENUM_65
-# define BOOST_PP_SEQ_ENUM_67(x) x, BOOST_PP_SEQ_ENUM_66
-# define BOOST_PP_SEQ_ENUM_68(x) x, BOOST_PP_SEQ_ENUM_67
-# define BOOST_PP_SEQ_ENUM_69(x) x, BOOST_PP_SEQ_ENUM_68
-# define BOOST_PP_SEQ_ENUM_70(x) x, BOOST_PP_SEQ_ENUM_69
-# define BOOST_PP_SEQ_ENUM_71(x) x, BOOST_PP_SEQ_ENUM_70
-# define BOOST_PP_SEQ_ENUM_72(x) x, BOOST_PP_SEQ_ENUM_71
-# define BOOST_PP_SEQ_ENUM_73(x) x, BOOST_PP_SEQ_ENUM_72
-# define BOOST_PP_SEQ_ENUM_74(x) x, BOOST_PP_SEQ_ENUM_73
-# define BOOST_PP_SEQ_ENUM_75(x) x, BOOST_PP_SEQ_ENUM_74
-# define BOOST_PP_SEQ_ENUM_76(x) x, BOOST_PP_SEQ_ENUM_75
-# define BOOST_PP_SEQ_ENUM_77(x) x, BOOST_PP_SEQ_ENUM_76
-# define BOOST_PP_SEQ_ENUM_78(x) x, BOOST_PP_SEQ_ENUM_77
-# define BOOST_PP_SEQ_ENUM_79(x) x, BOOST_PP_SEQ_ENUM_78
-# define BOOST_PP_SEQ_ENUM_80(x) x, BOOST_PP_SEQ_ENUM_79
-# define BOOST_PP_SEQ_ENUM_81(x) x, BOOST_PP_SEQ_ENUM_80
-# define BOOST_PP_SEQ_ENUM_82(x) x, BOOST_PP_SEQ_ENUM_81
-# define BOOST_PP_SEQ_ENUM_83(x) x, BOOST_PP_SEQ_ENUM_82
-# define BOOST_PP_SEQ_ENUM_84(x) x, BOOST_PP_SEQ_ENUM_83
-# define BOOST_PP_SEQ_ENUM_85(x) x, BOOST_PP_SEQ_ENUM_84
-# define BOOST_PP_SEQ_ENUM_86(x) x, BOOST_PP_SEQ_ENUM_85
-# define BOOST_PP_SEQ_ENUM_87(x) x, BOOST_PP_SEQ_ENUM_86
-# define BOOST_PP_SEQ_ENUM_88(x) x, BOOST_PP_SEQ_ENUM_87
-# define BOOST_PP_SEQ_ENUM_89(x) x, BOOST_PP_SEQ_ENUM_88
-# define BOOST_PP_SEQ_ENUM_90(x) x, BOOST_PP_SEQ_ENUM_89
-# define BOOST_PP_SEQ_ENUM_91(x) x, BOOST_PP_SEQ_ENUM_90
-# define BOOST_PP_SEQ_ENUM_92(x) x, BOOST_PP_SEQ_ENUM_91
-# define BOOST_PP_SEQ_ENUM_93(x) x, BOOST_PP_SEQ_ENUM_92
-# define BOOST_PP_SEQ_ENUM_94(x) x, BOOST_PP_SEQ_ENUM_93
-# define BOOST_PP_SEQ_ENUM_95(x) x, BOOST_PP_SEQ_ENUM_94
-# define BOOST_PP_SEQ_ENUM_96(x) x, BOOST_PP_SEQ_ENUM_95
-# define BOOST_PP_SEQ_ENUM_97(x) x, BOOST_PP_SEQ_ENUM_96
-# define BOOST_PP_SEQ_ENUM_98(x) x, BOOST_PP_SEQ_ENUM_97
-# define BOOST_PP_SEQ_ENUM_99(x) x, BOOST_PP_SEQ_ENUM_98
-# define BOOST_PP_SEQ_ENUM_100(x) x, BOOST_PP_SEQ_ENUM_99
-# define BOOST_PP_SEQ_ENUM_101(x) x, BOOST_PP_SEQ_ENUM_100
-# define BOOST_PP_SEQ_ENUM_102(x) x, BOOST_PP_SEQ_ENUM_101
-# define BOOST_PP_SEQ_ENUM_103(x) x, BOOST_PP_SEQ_ENUM_102
-# define BOOST_PP_SEQ_ENUM_104(x) x, BOOST_PP_SEQ_ENUM_103
-# define BOOST_PP_SEQ_ENUM_105(x) x, BOOST_PP_SEQ_ENUM_104
-# define BOOST_PP_SEQ_ENUM_106(x) x, BOOST_PP_SEQ_ENUM_105
-# define BOOST_PP_SEQ_ENUM_107(x) x, BOOST_PP_SEQ_ENUM_106
-# define BOOST_PP_SEQ_ENUM_108(x) x, BOOST_PP_SEQ_ENUM_107
-# define BOOST_PP_SEQ_ENUM_109(x) x, BOOST_PP_SEQ_ENUM_108
-# define BOOST_PP_SEQ_ENUM_110(x) x, BOOST_PP_SEQ_ENUM_109
-# define BOOST_PP_SEQ_ENUM_111(x) x, BOOST_PP_SEQ_ENUM_110
-# define BOOST_PP_SEQ_ENUM_112(x) x, BOOST_PP_SEQ_ENUM_111
-# define BOOST_PP_SEQ_ENUM_113(x) x, BOOST_PP_SEQ_ENUM_112
-# define BOOST_PP_SEQ_ENUM_114(x) x, BOOST_PP_SEQ_ENUM_113
-# define BOOST_PP_SEQ_ENUM_115(x) x, BOOST_PP_SEQ_ENUM_114
-# define BOOST_PP_SEQ_ENUM_116(x) x, BOOST_PP_SEQ_ENUM_115
-# define BOOST_PP_SEQ_ENUM_117(x) x, BOOST_PP_SEQ_ENUM_116
-# define BOOST_PP_SEQ_ENUM_118(x) x, BOOST_PP_SEQ_ENUM_117
-# define BOOST_PP_SEQ_ENUM_119(x) x, BOOST_PP_SEQ_ENUM_118
-# define BOOST_PP_SEQ_ENUM_120(x) x, BOOST_PP_SEQ_ENUM_119
-# define BOOST_PP_SEQ_ENUM_121(x) x, BOOST_PP_SEQ_ENUM_120
-# define BOOST_PP_SEQ_ENUM_122(x) x, BOOST_PP_SEQ_ENUM_121
-# define BOOST_PP_SEQ_ENUM_123(x) x, BOOST_PP_SEQ_ENUM_122
-# define BOOST_PP_SEQ_ENUM_124(x) x, BOOST_PP_SEQ_ENUM_123
-# define BOOST_PP_SEQ_ENUM_125(x) x, BOOST_PP_SEQ_ENUM_124
-# define BOOST_PP_SEQ_ENUM_126(x) x, BOOST_PP_SEQ_ENUM_125
-# define BOOST_PP_SEQ_ENUM_127(x) x, BOOST_PP_SEQ_ENUM_126
-# define BOOST_PP_SEQ_ENUM_128(x) x, BOOST_PP_SEQ_ENUM_127
-# define BOOST_PP_SEQ_ENUM_129(x) x, BOOST_PP_SEQ_ENUM_128
-# define BOOST_PP_SEQ_ENUM_130(x) x, BOOST_PP_SEQ_ENUM_129
-# define BOOST_PP_SEQ_ENUM_131(x) x, BOOST_PP_SEQ_ENUM_130
-# define BOOST_PP_SEQ_ENUM_132(x) x, BOOST_PP_SEQ_ENUM_131
-# define BOOST_PP_SEQ_ENUM_133(x) x, BOOST_PP_SEQ_ENUM_132
-# define BOOST_PP_SEQ_ENUM_134(x) x, BOOST_PP_SEQ_ENUM_133
-# define BOOST_PP_SEQ_ENUM_135(x) x, BOOST_PP_SEQ_ENUM_134
-# define BOOST_PP_SEQ_ENUM_136(x) x, BOOST_PP_SEQ_ENUM_135
-# define BOOST_PP_SEQ_ENUM_137(x) x, BOOST_PP_SEQ_ENUM_136
-# define BOOST_PP_SEQ_ENUM_138(x) x, BOOST_PP_SEQ_ENUM_137
-# define BOOST_PP_SEQ_ENUM_139(x) x, BOOST_PP_SEQ_ENUM_138
-# define BOOST_PP_SEQ_ENUM_140(x) x, BOOST_PP_SEQ_ENUM_139
-# define BOOST_PP_SEQ_ENUM_141(x) x, BOOST_PP_SEQ_ENUM_140
-# define BOOST_PP_SEQ_ENUM_142(x) x, BOOST_PP_SEQ_ENUM_141
-# define BOOST_PP_SEQ_ENUM_143(x) x, BOOST_PP_SEQ_ENUM_142
-# define BOOST_PP_SEQ_ENUM_144(x) x, BOOST_PP_SEQ_ENUM_143
-# define BOOST_PP_SEQ_ENUM_145(x) x, BOOST_PP_SEQ_ENUM_144
-# define BOOST_PP_SEQ_ENUM_146(x) x, BOOST_PP_SEQ_ENUM_145
-# define BOOST_PP_SEQ_ENUM_147(x) x, BOOST_PP_SEQ_ENUM_146
-# define BOOST_PP_SEQ_ENUM_148(x) x, BOOST_PP_SEQ_ENUM_147
-# define BOOST_PP_SEQ_ENUM_149(x) x, BOOST_PP_SEQ_ENUM_148
-# define BOOST_PP_SEQ_ENUM_150(x) x, BOOST_PP_SEQ_ENUM_149
-# define BOOST_PP_SEQ_ENUM_151(x) x, BOOST_PP_SEQ_ENUM_150
-# define BOOST_PP_SEQ_ENUM_152(x) x, BOOST_PP_SEQ_ENUM_151
-# define BOOST_PP_SEQ_ENUM_153(x) x, BOOST_PP_SEQ_ENUM_152
-# define BOOST_PP_SEQ_ENUM_154(x) x, BOOST_PP_SEQ_ENUM_153
-# define BOOST_PP_SEQ_ENUM_155(x) x, BOOST_PP_SEQ_ENUM_154
-# define BOOST_PP_SEQ_ENUM_156(x) x, BOOST_PP_SEQ_ENUM_155
-# define BOOST_PP_SEQ_ENUM_157(x) x, BOOST_PP_SEQ_ENUM_156
-# define BOOST_PP_SEQ_ENUM_158(x) x, BOOST_PP_SEQ_ENUM_157
-# define BOOST_PP_SEQ_ENUM_159(x) x, BOOST_PP_SEQ_ENUM_158
-# define BOOST_PP_SEQ_ENUM_160(x) x, BOOST_PP_SEQ_ENUM_159
-# define BOOST_PP_SEQ_ENUM_161(x) x, BOOST_PP_SEQ_ENUM_160
-# define BOOST_PP_SEQ_ENUM_162(x) x, BOOST_PP_SEQ_ENUM_161
-# define BOOST_PP_SEQ_ENUM_163(x) x, BOOST_PP_SEQ_ENUM_162
-# define BOOST_PP_SEQ_ENUM_164(x) x, BOOST_PP_SEQ_ENUM_163
-# define BOOST_PP_SEQ_ENUM_165(x) x, BOOST_PP_SEQ_ENUM_164
-# define BOOST_PP_SEQ_ENUM_166(x) x, BOOST_PP_SEQ_ENUM_165
-# define BOOST_PP_SEQ_ENUM_167(x) x, BOOST_PP_SEQ_ENUM_166
-# define BOOST_PP_SEQ_ENUM_168(x) x, BOOST_PP_SEQ_ENUM_167
-# define BOOST_PP_SEQ_ENUM_169(x) x, BOOST_PP_SEQ_ENUM_168
-# define BOOST_PP_SEQ_ENUM_170(x) x, BOOST_PP_SEQ_ENUM_169
-# define BOOST_PP_SEQ_ENUM_171(x) x, BOOST_PP_SEQ_ENUM_170
-# define BOOST_PP_SEQ_ENUM_172(x) x, BOOST_PP_SEQ_ENUM_171
-# define BOOST_PP_SEQ_ENUM_173(x) x, BOOST_PP_SEQ_ENUM_172
-# define BOOST_PP_SEQ_ENUM_174(x) x, BOOST_PP_SEQ_ENUM_173
-# define BOOST_PP_SEQ_ENUM_175(x) x, BOOST_PP_SEQ_ENUM_174
-# define BOOST_PP_SEQ_ENUM_176(x) x, BOOST_PP_SEQ_ENUM_175
-# define BOOST_PP_SEQ_ENUM_177(x) x, BOOST_PP_SEQ_ENUM_176
-# define BOOST_PP_SEQ_ENUM_178(x) x, BOOST_PP_SEQ_ENUM_177
-# define BOOST_PP_SEQ_ENUM_179(x) x, BOOST_PP_SEQ_ENUM_178
-# define BOOST_PP_SEQ_ENUM_180(x) x, BOOST_PP_SEQ_ENUM_179
-# define BOOST_PP_SEQ_ENUM_181(x) x, BOOST_PP_SEQ_ENUM_180
-# define BOOST_PP_SEQ_ENUM_182(x) x, BOOST_PP_SEQ_ENUM_181
-# define BOOST_PP_SEQ_ENUM_183(x) x, BOOST_PP_SEQ_ENUM_182
-# define BOOST_PP_SEQ_ENUM_184(x) x, BOOST_PP_SEQ_ENUM_183
-# define BOOST_PP_SEQ_ENUM_185(x) x, BOOST_PP_SEQ_ENUM_184
-# define BOOST_PP_SEQ_ENUM_186(x) x, BOOST_PP_SEQ_ENUM_185
-# define BOOST_PP_SEQ_ENUM_187(x) x, BOOST_PP_SEQ_ENUM_186
-# define BOOST_PP_SEQ_ENUM_188(x) x, BOOST_PP_SEQ_ENUM_187
-# define BOOST_PP_SEQ_ENUM_189(x) x, BOOST_PP_SEQ_ENUM_188
-# define BOOST_PP_SEQ_ENUM_190(x) x, BOOST_PP_SEQ_ENUM_189
-# define BOOST_PP_SEQ_ENUM_191(x) x, BOOST_PP_SEQ_ENUM_190
-# define BOOST_PP_SEQ_ENUM_192(x) x, BOOST_PP_SEQ_ENUM_191
-# define BOOST_PP_SEQ_ENUM_193(x) x, BOOST_PP_SEQ_ENUM_192
-# define BOOST_PP_SEQ_ENUM_194(x) x, BOOST_PP_SEQ_ENUM_193
-# define BOOST_PP_SEQ_ENUM_195(x) x, BOOST_PP_SEQ_ENUM_194
-# define BOOST_PP_SEQ_ENUM_196(x) x, BOOST_PP_SEQ_ENUM_195
-# define BOOST_PP_SEQ_ENUM_197(x) x, BOOST_PP_SEQ_ENUM_196
-# define BOOST_PP_SEQ_ENUM_198(x) x, BOOST_PP_SEQ_ENUM_197
-# define BOOST_PP_SEQ_ENUM_199(x) x, BOOST_PP_SEQ_ENUM_198
-# define BOOST_PP_SEQ_ENUM_200(x) x, BOOST_PP_SEQ_ENUM_199
-# define BOOST_PP_SEQ_ENUM_201(x) x, BOOST_PP_SEQ_ENUM_200
-# define BOOST_PP_SEQ_ENUM_202(x) x, BOOST_PP_SEQ_ENUM_201
-# define BOOST_PP_SEQ_ENUM_203(x) x, BOOST_PP_SEQ_ENUM_202
-# define BOOST_PP_SEQ_ENUM_204(x) x, BOOST_PP_SEQ_ENUM_203
-# define BOOST_PP_SEQ_ENUM_205(x) x, BOOST_PP_SEQ_ENUM_204
-# define BOOST_PP_SEQ_ENUM_206(x) x, BOOST_PP_SEQ_ENUM_205
-# define BOOST_PP_SEQ_ENUM_207(x) x, BOOST_PP_SEQ_ENUM_206
-# define BOOST_PP_SEQ_ENUM_208(x) x, BOOST_PP_SEQ_ENUM_207
-# define BOOST_PP_SEQ_ENUM_209(x) x, BOOST_PP_SEQ_ENUM_208
-# define BOOST_PP_SEQ_ENUM_210(x) x, BOOST_PP_SEQ_ENUM_209
-# define BOOST_PP_SEQ_ENUM_211(x) x, BOOST_PP_SEQ_ENUM_210
-# define BOOST_PP_SEQ_ENUM_212(x) x, BOOST_PP_SEQ_ENUM_211
-# define BOOST_PP_SEQ_ENUM_213(x) x, BOOST_PP_SEQ_ENUM_212
-# define BOOST_PP_SEQ_ENUM_214(x) x, BOOST_PP_SEQ_ENUM_213
-# define BOOST_PP_SEQ_ENUM_215(x) x, BOOST_PP_SEQ_ENUM_214
-# define BOOST_PP_SEQ_ENUM_216(x) x, BOOST_PP_SEQ_ENUM_215
-# define BOOST_PP_SEQ_ENUM_217(x) x, BOOST_PP_SEQ_ENUM_216
-# define BOOST_PP_SEQ_ENUM_218(x) x, BOOST_PP_SEQ_ENUM_217
-# define BOOST_PP_SEQ_ENUM_219(x) x, BOOST_PP_SEQ_ENUM_218
-# define BOOST_PP_SEQ_ENUM_220(x) x, BOOST_PP_SEQ_ENUM_219
-# define BOOST_PP_SEQ_ENUM_221(x) x, BOOST_PP_SEQ_ENUM_220
-# define BOOST_PP_SEQ_ENUM_222(x) x, BOOST_PP_SEQ_ENUM_221
-# define BOOST_PP_SEQ_ENUM_223(x) x, BOOST_PP_SEQ_ENUM_222
-# define BOOST_PP_SEQ_ENUM_224(x) x, BOOST_PP_SEQ_ENUM_223
-# define BOOST_PP_SEQ_ENUM_225(x) x, BOOST_PP_SEQ_ENUM_224
-# define BOOST_PP_SEQ_ENUM_226(x) x, BOOST_PP_SEQ_ENUM_225
-# define BOOST_PP_SEQ_ENUM_227(x) x, BOOST_PP_SEQ_ENUM_226
-# define BOOST_PP_SEQ_ENUM_228(x) x, BOOST_PP_SEQ_ENUM_227
-# define BOOST_PP_SEQ_ENUM_229(x) x, BOOST_PP_SEQ_ENUM_228
-# define BOOST_PP_SEQ_ENUM_230(x) x, BOOST_PP_SEQ_ENUM_229
-# define BOOST_PP_SEQ_ENUM_231(x) x, BOOST_PP_SEQ_ENUM_230
-# define BOOST_PP_SEQ_ENUM_232(x) x, BOOST_PP_SEQ_ENUM_231
-# define BOOST_PP_SEQ_ENUM_233(x) x, BOOST_PP_SEQ_ENUM_232
-# define BOOST_PP_SEQ_ENUM_234(x) x, BOOST_PP_SEQ_ENUM_233
-# define BOOST_PP_SEQ_ENUM_235(x) x, BOOST_PP_SEQ_ENUM_234
-# define BOOST_PP_SEQ_ENUM_236(x) x, BOOST_PP_SEQ_ENUM_235
-# define BOOST_PP_SEQ_ENUM_237(x) x, BOOST_PP_SEQ_ENUM_236
-# define BOOST_PP_SEQ_ENUM_238(x) x, BOOST_PP_SEQ_ENUM_237
-# define BOOST_PP_SEQ_ENUM_239(x) x, BOOST_PP_SEQ_ENUM_238
-# define BOOST_PP_SEQ_ENUM_240(x) x, BOOST_PP_SEQ_ENUM_239
-# define BOOST_PP_SEQ_ENUM_241(x) x, BOOST_PP_SEQ_ENUM_240
-# define BOOST_PP_SEQ_ENUM_242(x) x, BOOST_PP_SEQ_ENUM_241
-# define BOOST_PP_SEQ_ENUM_243(x) x, BOOST_PP_SEQ_ENUM_242
-# define BOOST_PP_SEQ_ENUM_244(x) x, BOOST_PP_SEQ_ENUM_243
-# define BOOST_PP_SEQ_ENUM_245(x) x, BOOST_PP_SEQ_ENUM_244
-# define BOOST_PP_SEQ_ENUM_246(x) x, BOOST_PP_SEQ_ENUM_245
-# define BOOST_PP_SEQ_ENUM_247(x) x, BOOST_PP_SEQ_ENUM_246
-# define BOOST_PP_SEQ_ENUM_248(x) x, BOOST_PP_SEQ_ENUM_247
-# define BOOST_PP_SEQ_ENUM_249(x) x, BOOST_PP_SEQ_ENUM_248
-# define BOOST_PP_SEQ_ENUM_250(x) x, BOOST_PP_SEQ_ENUM_249
-# define BOOST_PP_SEQ_ENUM_251(x) x, BOOST_PP_SEQ_ENUM_250
-# define BOOST_PP_SEQ_ENUM_252(x) x, BOOST_PP_SEQ_ENUM_251
-# define BOOST_PP_SEQ_ENUM_253(x) x, BOOST_PP_SEQ_ENUM_252
-# define BOOST_PP_SEQ_ENUM_254(x) x, BOOST_PP_SEQ_ENUM_253
-# define BOOST_PP_SEQ_ENUM_255(x) x, BOOST_PP_SEQ_ENUM_254
-# define BOOST_PP_SEQ_ENUM_256(x) x, BOOST_PP_SEQ_ENUM_255
-#
-# endif
diff --git a/boost/preprocessor/seq/first_n.hpp b/boost/preprocessor/seq/first_n.hpp
deleted file mode 100644
index c3c0716..0000000
--- a/boost/preprocessor/seq/first_n.hpp
+++ /dev/null
@@ -1,30 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_SEQ_FIRST_N_HPP
-# define BOOST_PREPROCESSOR_SEQ_FIRST_N_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/control/if.hpp>
-# include <boost/preprocessor/seq/detail/split.hpp>
-# include <boost/preprocessor/tuple/eat.hpp>
-# include <boost/preprocessor/tuple/elem.hpp>
-#
-# /* BOOST_PP_SEQ_FIRST_N */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_SEQ_FIRST_N(n, seq) BOOST_PP_IF(n, BOOST_PP_TUPLE_ELEM, BOOST_PP_TUPLE_EAT_3)(2, 0, BOOST_PP_SEQ_SPLIT(n, seq (nil)))
-# else
-#    define BOOST_PP_SEQ_FIRST_N(n, seq) BOOST_PP_SEQ_FIRST_N_I(n, seq)
-#    define BOOST_PP_SEQ_FIRST_N_I(n, seq) BOOST_PP_IF(n, BOOST_PP_TUPLE_ELEM, BOOST_PP_TUPLE_EAT_3)(2, 0, BOOST_PP_SEQ_SPLIT(n, seq (nil)))
-# endif
-#
-# endif
diff --git a/boost/preprocessor/seq/fold_left.hpp b/boost/preprocessor/seq/fold_left.hpp
deleted file mode 100644
index ab051b6..0000000
--- a/boost/preprocessor/seq/fold_left.hpp
+++ /dev/null
@@ -1,1070 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_SEQ_FOLD_LEFT_HPP
-# define BOOST_PREPROCESSOR_SEQ_FOLD_LEFT_HPP
-#
-# include <boost/preprocessor/arithmetic/dec.hpp>
-# include <boost/preprocessor/cat.hpp>
-# include <boost/preprocessor/control/if.hpp>
-# include <boost/preprocessor/debug/error.hpp>
-# include <boost/preprocessor/detail/auto_rec.hpp>
-# include <boost/preprocessor/seq/seq.hpp>
-# include <boost/preprocessor/seq/size.hpp>
-#
-# /* BOOST_PP_SEQ_FOLD_LEFT */
-#
-# if 0
-#    define BOOST_PP_SEQ_FOLD_LEFT(op, state, seq) ...
-# endif
-#
-# define BOOST_PP_SEQ_FOLD_LEFT BOOST_PP_CAT(BOOST_PP_SEQ_FOLD_LEFT_, BOOST_PP_AUTO_REC(BOOST_PP_SEQ_FOLD_LEFT_P, 256))
-# define BOOST_PP_SEQ_FOLD_LEFT_P(n) BOOST_PP_CAT(BOOST_PP_SEQ_FOLD_LEFT_CHECK_, BOOST_PP_SEQ_FOLD_LEFT_I_ ## n(BOOST_PP_SEQ_FOLD_LEFT_O, BOOST_PP_NIL, (nil), 1))
-# define BOOST_PP_SEQ_FOLD_LEFT_O(s, st, _) st
-#
-# define BOOST_PP_SEQ_FOLD_LEFT_257(op, st, ss) BOOST_PP_ERROR(0x0005)
-# define BOOST_PP_SEQ_FOLD_LEFT_I_257(op, st, ss, sz) BOOST_PP_ERROR(0x0005)
-#
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_NIL 1
-#
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_1(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_2(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_3(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_4(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_5(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_6(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_7(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_8(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_9(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_10(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_11(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_12(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_13(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_14(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_15(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_16(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_17(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_18(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_19(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_20(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_21(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_22(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_23(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_24(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_25(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_26(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_27(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_28(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_29(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_30(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_31(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_32(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_33(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_34(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_35(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_36(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_37(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_38(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_39(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_40(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_41(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_42(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_43(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_44(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_45(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_46(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_47(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_48(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_49(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_50(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_51(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_52(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_53(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_54(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_55(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_56(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_57(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_58(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_59(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_60(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_61(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_62(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_63(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_64(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_65(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_66(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_67(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_68(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_69(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_70(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_71(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_72(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_73(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_74(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_75(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_76(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_77(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_78(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_79(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_80(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_81(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_82(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_83(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_84(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_85(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_86(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_87(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_88(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_89(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_90(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_91(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_92(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_93(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_94(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_95(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_96(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_97(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_98(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_99(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_100(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_101(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_102(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_103(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_104(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_105(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_106(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_107(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_108(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_109(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_110(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_111(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_112(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_113(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_114(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_115(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_116(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_117(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_118(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_119(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_120(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_121(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_122(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_123(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_124(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_125(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_126(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_127(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_128(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_129(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_130(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_131(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_132(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_133(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_134(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_135(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_136(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_137(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_138(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_139(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_140(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_141(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_142(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_143(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_144(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_145(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_146(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_147(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_148(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_149(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_150(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_151(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_152(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_153(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_154(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_155(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_156(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_157(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_158(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_159(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_160(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_161(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_162(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_163(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_164(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_165(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_166(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_167(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_168(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_169(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_170(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_171(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_172(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_173(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_174(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_175(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_176(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_177(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_178(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_179(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_180(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_181(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_182(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_183(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_184(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_185(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_186(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_187(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_188(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_189(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_190(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_191(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_192(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_193(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_194(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_195(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_196(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_197(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_198(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_199(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_200(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_201(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_202(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_203(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_204(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_205(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_206(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_207(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_208(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_209(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_210(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_211(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_212(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_213(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_214(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_215(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_216(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_217(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_218(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_219(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_220(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_221(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_222(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_223(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_224(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_225(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_226(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_227(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_228(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_229(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_230(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_231(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_232(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_233(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_234(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_235(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_236(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_237(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_238(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_239(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_240(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_241(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_242(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_243(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_244(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_245(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_246(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_247(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_248(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_249(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_250(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_251(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_252(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_253(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_254(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_255(op, st, ss, sz) 0
-# define BOOST_PP_SEQ_FOLD_LEFT_CHECK_BOOST_PP_SEQ_FOLD_LEFT_I_256(op, st, ss, sz) 0
-#
-# define BOOST_PP_SEQ_FOLD_LEFT_F(op, st, ss, sz) st
-#
-# define BOOST_PP_SEQ_FOLD_LEFT_1(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_1(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_2(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_2(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_3(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_3(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_4(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_4(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_5(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_5(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_6(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_6(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_7(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_7(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_8(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_8(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_9(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_9(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_10(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_10(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_11(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_11(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_12(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_12(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_13(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_13(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_14(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_14(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_15(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_15(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_16(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_16(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_17(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_17(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_18(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_18(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_19(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_19(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_20(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_20(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_21(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_21(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_22(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_22(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_23(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_23(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_24(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_24(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_25(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_25(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_26(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_26(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_27(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_27(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_28(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_28(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_29(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_29(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_30(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_30(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_31(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_31(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_32(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_32(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_33(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_33(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_34(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_34(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_35(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_35(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_36(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_36(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_37(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_37(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_38(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_38(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_39(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_39(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_40(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_40(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_41(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_41(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_42(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_42(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_43(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_43(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_44(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_44(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_45(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_45(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_46(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_46(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_47(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_47(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_48(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_48(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_49(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_49(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_50(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_50(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_51(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_51(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_52(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_52(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_53(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_53(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_54(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_54(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_55(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_55(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_56(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_56(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_57(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_57(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_58(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_58(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_59(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_59(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_60(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_60(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_61(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_61(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_62(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_62(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_63(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_63(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_64(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_64(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_65(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_65(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_66(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_66(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_67(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_67(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_68(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_68(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_69(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_69(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_70(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_70(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_71(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_71(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_72(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_72(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_73(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_73(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_74(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_74(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_75(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_75(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_76(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_76(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_77(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_77(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_78(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_78(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_79(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_79(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_80(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_80(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_81(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_81(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_82(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_82(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_83(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_83(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_84(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_84(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_85(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_85(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_86(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_86(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_87(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_87(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_88(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_88(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_89(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_89(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_90(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_90(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_91(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_91(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_92(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_92(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_93(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_93(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_94(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_94(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_95(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_95(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_96(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_96(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_97(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_97(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_98(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_98(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_99(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_99(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_100(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_100(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_101(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_101(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_102(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_102(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_103(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_103(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_104(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_104(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_105(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_105(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_106(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_106(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_107(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_107(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_108(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_108(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_109(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_109(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_110(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_110(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_111(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_111(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_112(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_112(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_113(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_113(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_114(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_114(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_115(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_115(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_116(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_116(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_117(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_117(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_118(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_118(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_119(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_119(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_120(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_120(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_121(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_121(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_122(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_122(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_123(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_123(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_124(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_124(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_125(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_125(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_126(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_126(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_127(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_127(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_128(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_128(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_129(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_129(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_130(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_130(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_131(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_131(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_132(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_132(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_133(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_133(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_134(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_134(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_135(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_135(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_136(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_136(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_137(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_137(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_138(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_138(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_139(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_139(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_140(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_140(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_141(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_141(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_142(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_142(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_143(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_143(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_144(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_144(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_145(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_145(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_146(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_146(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_147(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_147(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_148(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_148(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_149(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_149(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_150(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_150(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_151(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_151(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_152(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_152(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_153(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_153(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_154(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_154(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_155(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_155(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_156(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_156(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_157(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_157(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_158(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_158(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_159(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_159(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_160(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_160(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_161(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_161(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_162(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_162(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_163(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_163(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_164(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_164(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_165(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_165(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_166(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_166(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_167(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_167(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_168(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_168(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_169(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_169(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_170(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_170(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_171(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_171(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_172(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_172(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_173(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_173(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_174(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_174(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_175(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_175(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_176(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_176(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_177(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_177(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_178(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_178(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_179(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_179(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_180(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_180(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_181(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_181(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_182(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_182(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_183(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_183(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_184(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_184(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_185(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_185(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_186(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_186(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_187(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_187(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_188(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_188(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_189(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_189(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_190(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_190(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_191(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_191(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_192(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_192(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_193(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_193(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_194(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_194(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_195(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_195(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_196(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_196(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_197(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_197(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_198(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_198(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_199(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_199(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_200(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_200(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_201(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_201(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_202(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_202(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_203(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_203(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_204(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_204(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_205(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_205(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_206(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_206(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_207(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_207(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_208(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_208(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_209(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_209(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_210(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_210(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_211(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_211(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_212(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_212(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_213(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_213(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_214(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_214(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_215(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_215(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_216(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_216(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_217(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_217(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_218(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_218(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_219(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_219(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_220(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_220(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_221(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_221(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_222(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_222(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_223(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_223(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_224(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_224(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_225(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_225(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_226(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_226(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_227(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_227(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_228(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_228(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_229(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_229(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_230(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_230(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_231(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_231(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_232(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_232(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_233(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_233(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_234(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_234(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_235(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_235(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_236(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_236(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_237(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_237(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_238(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_238(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_239(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_239(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_240(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_240(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_241(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_241(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_242(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_242(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_243(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_243(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_244(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_244(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_245(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_245(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_246(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_246(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_247(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_247(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_248(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_248(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_249(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_249(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_250(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_250(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_251(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_251(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_252(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_252(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_253(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_253(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_254(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_254(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_255(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_255(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-# define BOOST_PP_SEQ_FOLD_LEFT_256(op, st, ss) BOOST_PP_SEQ_FOLD_LEFT_I_256(op, st, ss, BOOST_PP_SEQ_SIZE(ss))
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC()
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_1(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_2, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(2, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_2(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_3, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(3, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_3(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_4, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(4, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_4(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_5, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(5, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_5(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_6, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(6, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_6(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_7, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(7, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_7(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_8, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(8, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_8(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_9, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(9, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_9(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_10, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(10, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_10(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_11, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(11, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_11(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_12, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(12, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_12(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_13, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(13, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_13(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_14, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(14, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_14(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_15, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(15, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_15(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_16, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(16, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_16(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_17, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(17, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_17(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_18, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(18, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_18(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_19, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(19, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_19(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_20, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(20, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_20(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_21, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(21, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_21(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_22, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(22, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_22(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_23, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(23, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_23(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_24, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(24, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_24(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_25, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(25, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_25(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_26, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(26, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_26(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_27, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(27, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_27(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_28, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(28, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_28(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_29, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(29, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_29(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_30, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(30, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_30(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_31, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(31, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_31(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_32, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(32, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_32(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_33, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(33, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_33(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_34, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(34, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_34(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_35, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(35, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_35(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_36, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(36, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_36(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_37, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(37, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_37(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_38, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(38, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_38(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_39, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(39, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_39(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_40, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(40, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_40(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_41, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(41, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_41(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_42, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(42, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_42(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_43, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(43, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_43(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_44, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(44, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_44(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_45, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(45, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_45(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_46, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(46, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_46(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_47, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(47, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_47(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_48, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(48, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_48(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_49, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(49, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_49(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_50, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(50, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_50(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_51, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(51, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_51(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_52, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(52, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_52(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_53, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(53, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_53(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_54, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(54, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_54(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_55, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(55, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_55(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_56, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(56, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_56(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_57, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(57, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_57(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_58, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(58, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_58(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_59, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(59, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_59(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_60, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(60, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_60(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_61, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(61, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_61(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_62, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(62, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_62(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_63, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(63, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_63(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_64, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(64, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_64(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_65, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(65, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_65(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_66, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(66, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_66(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_67, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(67, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_67(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_68, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(68, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_68(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_69, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(69, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_69(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_70, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(70, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_70(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_71, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(71, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_71(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_72, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(72, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_72(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_73, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(73, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_73(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_74, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(74, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_74(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_75, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(75, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_75(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_76, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(76, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_76(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_77, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(77, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_77(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_78, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(78, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_78(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_79, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(79, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_79(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_80, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(80, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_80(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_81, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(81, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_81(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_82, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(82, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_82(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_83, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(83, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_83(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_84, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(84, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_84(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_85, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(85, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_85(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_86, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(86, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_86(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_87, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(87, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_87(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_88, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(88, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_88(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_89, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(89, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_89(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_90, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(90, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_90(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_91, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(91, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_91(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_92, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(92, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_92(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_93, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(93, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_93(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_94, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(94, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_94(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_95, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(95, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_95(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_96, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(96, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_96(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_97, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(97, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_97(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_98, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(98, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_98(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_99, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(99, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_99(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_100, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(100, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_100(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_101, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(101, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_101(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_102, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(102, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_102(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_103, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(103, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_103(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_104, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(104, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_104(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_105, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(105, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_105(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_106, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(106, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_106(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_107, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(107, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_107(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_108, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(108, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_108(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_109, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(109, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_109(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_110, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(110, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_110(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_111, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(111, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_111(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_112, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(112, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_112(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_113, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(113, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_113(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_114, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(114, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_114(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_115, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(115, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_115(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_116, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(116, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_116(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_117, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(117, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_117(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_118, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(118, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_118(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_119, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(119, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_119(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_120, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(120, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_120(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_121, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(121, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_121(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_122, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(122, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_122(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_123, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(123, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_123(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_124, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(124, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_124(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_125, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(125, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_125(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_126, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(126, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_126(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_127, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(127, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_127(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_128, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(128, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_128(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_129, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(129, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_129(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_130, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(130, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_130(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_131, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(131, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_131(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_132, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(132, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_132(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_133, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(133, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_133(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_134, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(134, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_134(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_135, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(135, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_135(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_136, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(136, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_136(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_137, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(137, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_137(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_138, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(138, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_138(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_139, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(139, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_139(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_140, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(140, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_140(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_141, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(141, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_141(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_142, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(142, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_142(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_143, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(143, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_143(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_144, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(144, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_144(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_145, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(145, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_145(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_146, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(146, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_146(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_147, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(147, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_147(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_148, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(148, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_148(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_149, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(149, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_149(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_150, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(150, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_150(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_151, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(151, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_151(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_152, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(152, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_152(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_153, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(153, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_153(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_154, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(154, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_154(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_155, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(155, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_155(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_156, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(156, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_156(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_157, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(157, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_157(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_158, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(158, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_158(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_159, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(159, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_159(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_160, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(160, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_160(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_161, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(161, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_161(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_162, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(162, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_162(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_163, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(163, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_163(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_164, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(164, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_164(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_165, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(165, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_165(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_166, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(166, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_166(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_167, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(167, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_167(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_168, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(168, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_168(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_169, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(169, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_169(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_170, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(170, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_170(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_171, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(171, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_171(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_172, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(172, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_172(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_173, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(173, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_173(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_174, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(174, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_174(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_175, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(175, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_175(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_176, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(176, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_176(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_177, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(177, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_177(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_178, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(178, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_178(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_179, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(179, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_179(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_180, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(180, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_180(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_181, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(181, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_181(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_182, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(182, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_182(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_183, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(183, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_183(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_184, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(184, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_184(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_185, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(185, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_185(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_186, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(186, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_186(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_187, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(187, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_187(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_188, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(188, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_188(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_189, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(189, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_189(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_190, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(190, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_190(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_191, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(191, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_191(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_192, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(192, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_192(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_193, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(193, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_193(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_194, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(194, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_194(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_195, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(195, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_195(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_196, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(196, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_196(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_197, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(197, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_197(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_198, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(198, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_198(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_199, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(199, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_199(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_200, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(200, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_200(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_201, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(201, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_201(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_202, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(202, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_202(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_203, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(203, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_203(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_204, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(204, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_204(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_205, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(205, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_205(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_206, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(206, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_206(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_207, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(207, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_207(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_208, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(208, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_208(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_209, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(209, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_209(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_210, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(210, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_210(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_211, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(211, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_211(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_212, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(212, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_212(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_213, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(213, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_213(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_214, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(214, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_214(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_215, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(215, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_215(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_216, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(216, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_216(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_217, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(217, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_217(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_218, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(218, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_218(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_219, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(219, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_219(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_220, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(220, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_220(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_221, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(221, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_221(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_222, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(222, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_222(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_223, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(223, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_223(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_224, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(224, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_224(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_225, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(225, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_225(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_226, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(226, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_226(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_227, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(227, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_227(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_228, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(228, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_228(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_229, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(229, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_229(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_230, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(230, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_230(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_231, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(231, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_231(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_232, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(232, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_232(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_233, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(233, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_233(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_234, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(234, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_234(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_235, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(235, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_235(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_236, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(236, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_236(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_237, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(237, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_237(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_238, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(238, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_238(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_239, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(239, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_239(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_240, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(240, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_240(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_241, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(241, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_241(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_242, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(242, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_242(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_243, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(243, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_243(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_244, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(244, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_244(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_245, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(245, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_245(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_246, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(246, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_246(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_247, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(247, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_247(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_248, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(248, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_248(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_249, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(249, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_249(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_250, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(250, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_250(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_251, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(251, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_251(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_252, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(252, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_252(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_253, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(253, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_253(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_254, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(254, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_254(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_255, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(255, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_255(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_256, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(256, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_256(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_257, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op(257, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-# else
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_1(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_2, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(2, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_2(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_3, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(3, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_3(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_4, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(4, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_4(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_5, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(5, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_5(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_6, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(6, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_6(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_7, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(7, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_7(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_8, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(8, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_8(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_9, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(9, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_9(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_10, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(10, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_10(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_11, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(11, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_11(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_12, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(12, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_12(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_13, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(13, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_13(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_14, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(14, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_14(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_15, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(15, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_15(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_16, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(16, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_16(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_17, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(17, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_17(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_18, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(18, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_18(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_19, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(19, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_19(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_20, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(20, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_20(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_21, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(21, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_21(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_22, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(22, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_22(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_23, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(23, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_23(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_24, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(24, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_24(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_25, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(25, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_25(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_26, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(26, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_26(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_27, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(27, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_27(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_28, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(28, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_28(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_29, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(29, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_29(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_30, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(30, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_30(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_31, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(31, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_31(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_32, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(32, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_32(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_33, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(33, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_33(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_34, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(34, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_34(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_35, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(35, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_35(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_36, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(36, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_36(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_37, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(37, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_37(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_38, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(38, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_38(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_39, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(39, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_39(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_40, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(40, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_40(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_41, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(41, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_41(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_42, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(42, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_42(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_43, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(43, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_43(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_44, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(44, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_44(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_45, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(45, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_45(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_46, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(46, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_46(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_47, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(47, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_47(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_48, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(48, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_48(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_49, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(49, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_49(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_50, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(50, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_50(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_51, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(51, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_51(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_52, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(52, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_52(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_53, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(53, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_53(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_54, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(54, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_54(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_55, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(55, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_55(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_56, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(56, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_56(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_57, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(57, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_57(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_58, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(58, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_58(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_59, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(59, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_59(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_60, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(60, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_60(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_61, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(61, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_61(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_62, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(62, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_62(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_63, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(63, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_63(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_64, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(64, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_64(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_65, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(65, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_65(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_66, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(66, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_66(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_67, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(67, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_67(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_68, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(68, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_68(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_69, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(69, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_69(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_70, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(70, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_70(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_71, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(71, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_71(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_72, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(72, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_72(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_73, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(73, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_73(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_74, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(74, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_74(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_75, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(75, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_75(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_76, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(76, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_76(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_77, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(77, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_77(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_78, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(78, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_78(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_79, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(79, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_79(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_80, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(80, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_80(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_81, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(81, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_81(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_82, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(82, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_82(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_83, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(83, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_83(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_84, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(84, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_84(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_85, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(85, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_85(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_86, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(86, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_86(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_87, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(87, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_87(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_88, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(88, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_88(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_89, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(89, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_89(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_90, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(90, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_90(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_91, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(91, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_91(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_92, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(92, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_92(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_93, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(93, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_93(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_94, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(94, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_94(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_95, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(95, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_95(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_96, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(96, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_96(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_97, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(97, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_97(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_98, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(98, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_98(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_99, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(99, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_99(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_100, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(100, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_100(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_101, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(101, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_101(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_102, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(102, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_102(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_103, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(103, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_103(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_104, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(104, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_104(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_105, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(105, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_105(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_106, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(106, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_106(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_107, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(107, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_107(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_108, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(108, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_108(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_109, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(109, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_109(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_110, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(110, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_110(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_111, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(111, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_111(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_112, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(112, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_112(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_113, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(113, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_113(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_114, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(114, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_114(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_115, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(115, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_115(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_116, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(116, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_116(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_117, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(117, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_117(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_118, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(118, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_118(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_119, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(119, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_119(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_120, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(120, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_120(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_121, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(121, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_121(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_122, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(122, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_122(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_123, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(123, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_123(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_124, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(124, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_124(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_125, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(125, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_125(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_126, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(126, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_126(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_127, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(127, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_127(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_128, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(128, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_128(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_129, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(129, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_129(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_130, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(130, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_130(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_131, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(131, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_131(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_132, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(132, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_132(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_133, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(133, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_133(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_134, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(134, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_134(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_135, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(135, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_135(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_136, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(136, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_136(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_137, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(137, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_137(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_138, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(138, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_138(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_139, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(139, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_139(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_140, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(140, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_140(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_141, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(141, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_141(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_142, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(142, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_142(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_143, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(143, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_143(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_144, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(144, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_144(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_145, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(145, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_145(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_146, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(146, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_146(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_147, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(147, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_147(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_148, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(148, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_148(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_149, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(149, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_149(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_150, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(150, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_150(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_151, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(151, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_151(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_152, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(152, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_152(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_153, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(153, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_153(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_154, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(154, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_154(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_155, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(155, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_155(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_156, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(156, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_156(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_157, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(157, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_157(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_158, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(158, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_158(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_159, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(159, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_159(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_160, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(160, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_160(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_161, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(161, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_161(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_162, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(162, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_162(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_163, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(163, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_163(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_164, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(164, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_164(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_165, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(165, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_165(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_166, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(166, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_166(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_167, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(167, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_167(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_168, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(168, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_168(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_169, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(169, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_169(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_170, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(170, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_170(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_171, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(171, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_171(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_172, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(172, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_172(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_173, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(173, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_173(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_174, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(174, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_174(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_175, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(175, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_175(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_176, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(176, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_176(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_177, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(177, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_177(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_178, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(178, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_178(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_179, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(179, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_179(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_180, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(180, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_180(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_181, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(181, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_181(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_182, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(182, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_182(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_183, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(183, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_183(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_184, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(184, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_184(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_185, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(185, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_185(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_186, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(186, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_186(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_187, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(187, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_187(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_188, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(188, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_188(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_189, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(189, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_189(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_190, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(190, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_190(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_191, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(191, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_191(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_192, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(192, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_192(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_193, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(193, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_193(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_194, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(194, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_194(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_195, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(195, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_195(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_196, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(196, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_196(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_197, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(197, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_197(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_198, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(198, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_198(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_199, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(199, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_199(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_200, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(200, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_200(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_201, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(201, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_201(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_202, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(202, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_202(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_203, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(203, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_203(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_204, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(204, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_204(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_205, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(205, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_205(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_206, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(206, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_206(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_207, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(207, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_207(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_208, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(208, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_208(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_209, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(209, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_209(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_210, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(210, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_210(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_211, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(211, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_211(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_212, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(212, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_212(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_213, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(213, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_213(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_214, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(214, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_214(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_215, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(215, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_215(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_216, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(216, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_216(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_217, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(217, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_217(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_218, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(218, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_218(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_219, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(219, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_219(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_220, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(220, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_220(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_221, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(221, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_221(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_222, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(222, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_222(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_223, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(223, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_223(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_224, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(224, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_224(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_225, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(225, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_225(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_226, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(226, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_226(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_227, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(227, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_227(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_228, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(228, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_228(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_229, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(229, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_229(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_230, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(230, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_230(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_231, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(231, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_231(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_232, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(232, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_232(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_233, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(233, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_233(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_234, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(234, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_234(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_235, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(235, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_235(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_236, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(236, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_236(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_237, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(237, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_237(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_238, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(238, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_238(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_239, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(239, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_239(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_240, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(240, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_240(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_241, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(241, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_241(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_242, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(242, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_242(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_243, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(243, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_243(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_244, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(244, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_244(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_245, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(245, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_245(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_246, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(246, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_246(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_247, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(247, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_247(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_248, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(248, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_248(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_249, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(249, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_249(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_250, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(250, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_250(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_251, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(251, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_251(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_252, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(252, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_252(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_253, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(253, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_253(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_254, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(254, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_254(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_255, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(255, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_255(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_256, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(256, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-#    define BOOST_PP_SEQ_FOLD_LEFT_I_256(op, st, ss, sz) BOOST_PP_IF(BOOST_PP_DEC(sz), BOOST_PP_SEQ_FOLD_LEFT_I_257, BOOST_PP_SEQ_FOLD_LEFT_F)(op, op##(257, st, BOOST_PP_SEQ_HEAD(ss)), BOOST_PP_SEQ_TAIL(ss), BOOST_PP_DEC(sz))
-# endif
-#
-# endif
diff --git a/boost/preprocessor/seq/for_each.hpp b/boost/preprocessor/seq/for_each.hpp
deleted file mode 100644
index e997a9a..0000000
--- a/boost/preprocessor/seq/for_each.hpp
+++ /dev/null
@@ -1,60 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_SEQ_FOR_EACH_HPP
-# define BOOST_PREPROCESSOR_SEQ_FOR_EACH_HPP
-#
-# include <boost/preprocessor/arithmetic/dec.hpp>
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/repetition/for.hpp>
-# include <boost/preprocessor/seq/seq.hpp>
-# include <boost/preprocessor/seq/size.hpp>
-# include <boost/preprocessor/tuple/elem.hpp>
-# include <boost/preprocessor/tuple/rem.hpp>
-#
-# /* BOOST_PP_SEQ_FOR_EACH */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_SEQ_FOR_EACH(macro, data, seq) BOOST_PP_FOR((macro, data, seq (nil)), BOOST_PP_SEQ_FOR_EACH_P, BOOST_PP_SEQ_FOR_EACH_O, BOOST_PP_SEQ_FOR_EACH_M)
-# else
-#    define BOOST_PP_SEQ_FOR_EACH(macro, data, seq) BOOST_PP_SEQ_FOR_EACH_D(macro, data, seq)
-#    define BOOST_PP_SEQ_FOR_EACH_D(macro, data, seq) BOOST_PP_FOR((macro, data, seq (nil)), BOOST_PP_SEQ_FOR_EACH_P, BOOST_PP_SEQ_FOR_EACH_O, BOOST_PP_SEQ_FOR_EACH_M)
-# endif
-#
-# define BOOST_PP_SEQ_FOR_EACH_P(r, x) BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(BOOST_PP_TUPLE_ELEM(3, 2, x)))
-#
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()
-#    define BOOST_PP_SEQ_FOR_EACH_O(r, x) BOOST_PP_SEQ_FOR_EACH_O_I x
-# else
-#    define BOOST_PP_SEQ_FOR_EACH_O(r, x) BOOST_PP_SEQ_FOR_EACH_O_I(BOOST_PP_TUPLE_ELEM(3, 0, x), BOOST_PP_TUPLE_ELEM(3, 1, x), BOOST_PP_TUPLE_ELEM(3, 2, x))
-# endif
-#
-# define BOOST_PP_SEQ_FOR_EACH_O_I(macro, data, seq) (macro, data, BOOST_PP_SEQ_TAIL(seq))
-#
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()
-#    define BOOST_PP_SEQ_FOR_EACH_M(r, x) BOOST_PP_SEQ_FOR_EACH_M_IM(r, BOOST_PP_TUPLE_REM_3 x)
-#    define BOOST_PP_SEQ_FOR_EACH_M_IM(r, im) BOOST_PP_SEQ_FOR_EACH_M_I(r, im)
-# else
-#    define BOOST_PP_SEQ_FOR_EACH_M(r, x) BOOST_PP_SEQ_FOR_EACH_M_I(r, BOOST_PP_TUPLE_ELEM(3, 0, x), BOOST_PP_TUPLE_ELEM(3, 1, x), BOOST_PP_TUPLE_ELEM(3, 2, x))
-# endif
-#
-# define BOOST_PP_SEQ_FOR_EACH_M_I(r, macro, data, seq) macro(r, data, BOOST_PP_SEQ_HEAD(seq))
-#
-# /* BOOST_PP_SEQ_FOR_EACH_R */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_SEQ_FOR_EACH_R(r, macro, data, seq) BOOST_PP_FOR_ ## r((macro, data, seq (nil)), BOOST_PP_SEQ_FOR_EACH_P, BOOST_PP_SEQ_FOR_EACH_O, BOOST_PP_SEQ_FOR_EACH_M)
-# else
-#    define BOOST_PP_SEQ_FOR_EACH_R(r, macro, data, seq) BOOST_PP_SEQ_FOR_EACH_R_I(r, macro, data, seq)
-#    define BOOST_PP_SEQ_FOR_EACH_R_I(r, macro, data, seq) BOOST_PP_FOR_ ## r((macro, data, seq (nil)), BOOST_PP_SEQ_FOR_EACH_P, BOOST_PP_SEQ_FOR_EACH_O, BOOST_PP_SEQ_FOR_EACH_M)
-# endif
-#
-# endif
diff --git a/boost/preprocessor/seq/for_each_i.hpp b/boost/preprocessor/seq/for_each_i.hpp
deleted file mode 100644
index c8edf5a..0000000
--- a/boost/preprocessor/seq/for_each_i.hpp
+++ /dev/null
@@ -1,61 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_SEQ_FOR_EACH_I_HPP
-# define BOOST_PREPROCESSOR_SEQ_FOR_EACH_I_HPP
-#
-# include <boost/preprocessor/arithmetic/dec.hpp>
-# include <boost/preprocessor/arithmetic/inc.hpp>
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/repetition/for.hpp>
-# include <boost/preprocessor/seq/seq.hpp>
-# include <boost/preprocessor/seq/size.hpp>
-# include <boost/preprocessor/tuple/elem.hpp>
-# include <boost/preprocessor/tuple/rem.hpp>
-#
-# /* BOOST_PP_SEQ_FOR_EACH_I */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_SEQ_FOR_EACH_I(macro, data, seq) BOOST_PP_FOR((macro, data, seq (nil), 0), BOOST_PP_SEQ_FOR_EACH_I_P, BOOST_PP_SEQ_FOR_EACH_I_O, BOOST_PP_SEQ_FOR_EACH_I_M)
-# else
-#    define BOOST_PP_SEQ_FOR_EACH_I(macro, data, seq) BOOST_PP_SEQ_FOR_EACH_I_I(macro, data, seq)
-#    define BOOST_PP_SEQ_FOR_EACH_I_I(macro, data, seq) BOOST_PP_FOR((macro, data, seq (nil), 0), BOOST_PP_SEQ_FOR_EACH_I_P, BOOST_PP_SEQ_FOR_EACH_I_O, BOOST_PP_SEQ_FOR_EACH_I_M)
-# endif
-#
-# define BOOST_PP_SEQ_FOR_EACH_I_P(r, x) BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(BOOST_PP_TUPLE_ELEM(4, 2, x)))
-#
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()
-#    define BOOST_PP_SEQ_FOR_EACH_I_O(r, x) BOOST_PP_SEQ_FOR_EACH_I_O_I x
-# else
-#    define BOOST_PP_SEQ_FOR_EACH_I_O(r, x) BOOST_PP_SEQ_FOR_EACH_I_O_I(BOOST_PP_TUPLE_ELEM(4, 0, x), BOOST_PP_TUPLE_ELEM(4, 1, x), BOOST_PP_TUPLE_ELEM(4, 2, x), BOOST_PP_TUPLE_ELEM(4, 3, x))
-# endif
-#
-# define BOOST_PP_SEQ_FOR_EACH_I_O_I(macro, data, seq, i) (macro, data, BOOST_PP_SEQ_TAIL(seq), BOOST_PP_INC(i))
-#
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()
-#    define BOOST_PP_SEQ_FOR_EACH_I_M(r, x) BOOST_PP_SEQ_FOR_EACH_I_M_IM(r, BOOST_PP_TUPLE_REM_4 x)
-#    define BOOST_PP_SEQ_FOR_EACH_I_M_IM(r, im) BOOST_PP_SEQ_FOR_EACH_I_M_I(r, im)
-# else
-#    define BOOST_PP_SEQ_FOR_EACH_I_M(r, x) BOOST_PP_SEQ_FOR_EACH_I_M_I(r, BOOST_PP_TUPLE_ELEM(4, 0, x), BOOST_PP_TUPLE_ELEM(4, 1, x), BOOST_PP_TUPLE_ELEM(4, 2, x), BOOST_PP_TUPLE_ELEM(4, 3, x))
-# endif
-#
-# define BOOST_PP_SEQ_FOR_EACH_I_M_I(r, macro, data, seq, i) macro(r, data, i, BOOST_PP_SEQ_HEAD(seq))
-#
-# /* BOOST_PP_SEQ_FOR_EACH_I_R */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_SEQ_FOR_EACH_I_R(r, macro, data, seq) BOOST_PP_FOR_ ## r((macro, data, seq (nil), 0), BOOST_PP_SEQ_FOR_EACH_I_P, BOOST_PP_SEQ_FOR_EACH_I_O, BOOST_PP_SEQ_FOR_EACH_I_M)
-# else
-#    define BOOST_PP_SEQ_FOR_EACH_I_R(r, macro, data, seq) BOOST_PP_SEQ_FOR_EACH_I_R_I(r, macro, data, seq)
-#    define BOOST_PP_SEQ_FOR_EACH_I_R_I(r, macro, data, seq) BOOST_PP_FOR_ ## r((macro, data, seq (nil), 0), BOOST_PP_SEQ_FOR_EACH_I_P, BOOST_PP_SEQ_FOR_EACH_I_O, BOOST_PP_SEQ_FOR_EACH_I_M)
-# endif
-#
-# endif
diff --git a/boost/preprocessor/seq/rest_n.hpp b/boost/preprocessor/seq/rest_n.hpp
deleted file mode 100644
index 7e589cc..0000000
--- a/boost/preprocessor/seq/rest_n.hpp
+++ /dev/null
@@ -1,30 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_SEQ_REST_N_HPP
-# define BOOST_PREPROCESSOR_SEQ_REST_N_HPP
-#
-# include <boost/preprocessor/arithmetic/inc.hpp>
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/facilities/empty.hpp>
-# include <boost/preprocessor/seq/detail/split.hpp>
-# include <boost/preprocessor/tuple/elem.hpp>
-#
-# /* BOOST_PP_SEQ_REST_N */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_SEQ_REST_N(n, seq) BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_SEQ_SPLIT(BOOST_PP_INC(n), (nil) seq BOOST_PP_EMPTY))()
-# else
-#    define BOOST_PP_SEQ_REST_N(n, seq) BOOST_PP_SEQ_REST_N_I(n, seq)
-#    define BOOST_PP_SEQ_REST_N_I(n, seq) BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_SEQ_SPLIT(BOOST_PP_INC(n), (nil) seq BOOST_PP_EMPTY))()
-# endif
-#
-# endif
diff --git a/boost/preprocessor/seq/seq.hpp b/boost/preprocessor/seq/seq.hpp
deleted file mode 100644
index f5ca84c..0000000
--- a/boost/preprocessor/seq/seq.hpp
+++ /dev/null
@@ -1,44 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_SEQ_SEQ_HPP
-# define BOOST_PREPROCESSOR_SEQ_SEQ_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/seq/elem.hpp>
-#
-# /* BOOST_PP_SEQ_HEAD */
-#
-# define BOOST_PP_SEQ_HEAD(seq) BOOST_PP_SEQ_ELEM(0, seq)
-#
-# /* BOOST_PP_SEQ_TAIL */
-#
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#    define BOOST_PP_SEQ_TAIL(seq) BOOST_PP_SEQ_TAIL_1((seq))
-#    define BOOST_PP_SEQ_TAIL_1(par) BOOST_PP_SEQ_TAIL_2 ## par
-#    define BOOST_PP_SEQ_TAIL_2(seq) BOOST_PP_SEQ_TAIL_I ## seq
-# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
-#    define BOOST_PP_SEQ_TAIL(seq) BOOST_PP_SEQ_TAIL_ID(BOOST_PP_SEQ_TAIL_I seq)
-#    define BOOST_PP_SEQ_TAIL_ID(id) id
-# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_SEQ_TAIL(seq) BOOST_PP_SEQ_TAIL_D(seq)
-#    define BOOST_PP_SEQ_TAIL_D(seq) BOOST_PP_SEQ_TAIL_I seq
-# else
-#    define BOOST_PP_SEQ_TAIL(seq) BOOST_PP_SEQ_TAIL_I seq
-# endif
-#
-# define BOOST_PP_SEQ_TAIL_I(x)
-#
-# /* BOOST_PP_SEQ_NIL */
-#
-# define BOOST_PP_SEQ_NIL(x) (x)
-#
-# endif
diff --git a/boost/preprocessor/seq/size.hpp b/boost/preprocessor/seq/size.hpp
deleted file mode 100644
index 385c00a..0000000
--- a/boost/preprocessor/seq/size.hpp
+++ /dev/null
@@ -1,547 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_SEQ_SIZE_HPP
-# define BOOST_PREPROCESSOR_SEQ_SIZE_HPP
-#
-# include <boost/preprocessor/cat.hpp>
-# include <boost/preprocessor/config/config.hpp>
-#
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#    define BOOST_PP_SEQ_SIZE(seq) BOOST_PP_SEQ_SIZE_I((seq))
-#    define BOOST_PP_SEQ_SIZE_I(par) BOOST_PP_SEQ_SIZE_II ## par
-#    define BOOST_PP_SEQ_SIZE_II(seq) BOOST_PP_CAT(BOOST_PP_SEQ_SIZE_, BOOST_PP_SEQ_SIZE_0 ## seq)
-# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() || BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
-#    define BOOST_PP_SEQ_SIZE(seq) BOOST_PP_SEQ_SIZE_I(seq)
-#    define BOOST_PP_SEQ_SIZE_I(seq) BOOST_PP_CAT(BOOST_PP_SEQ_SIZE_, BOOST_PP_SEQ_SIZE_0 seq)
-# elif defined(__IBMC__) || defined(__IBMCPP__)
-#    define BOOST_PP_SEQ_SIZE(seq) BOOST_PP_CAT(BOOST_PP_SEQ_SIZE_, BOOST_PP_CAT(BOOST_PP_SEQ_SIZE_0, seq))
-# else
-#    define BOOST_PP_SEQ_SIZE(seq) BOOST_PP_CAT(BOOST_PP_SEQ_SIZE_, BOOST_PP_SEQ_SIZE_0 seq)
-# endif
-#
-# define BOOST_PP_SEQ_SIZE_0(_) BOOST_PP_SEQ_SIZE_1
-# define BOOST_PP_SEQ_SIZE_1(_) BOOST_PP_SEQ_SIZE_2
-# define BOOST_PP_SEQ_SIZE_2(_) BOOST_PP_SEQ_SIZE_3
-# define BOOST_PP_SEQ_SIZE_3(_) BOOST_PP_SEQ_SIZE_4
-# define BOOST_PP_SEQ_SIZE_4(_) BOOST_PP_SEQ_SIZE_5
-# define BOOST_PP_SEQ_SIZE_5(_) BOOST_PP_SEQ_SIZE_6
-# define BOOST_PP_SEQ_SIZE_6(_) BOOST_PP_SEQ_SIZE_7
-# define BOOST_PP_SEQ_SIZE_7(_) BOOST_PP_SEQ_SIZE_8
-# define BOOST_PP_SEQ_SIZE_8(_) BOOST_PP_SEQ_SIZE_9
-# define BOOST_PP_SEQ_SIZE_9(_) BOOST_PP_SEQ_SIZE_10
-# define BOOST_PP_SEQ_SIZE_10(_) BOOST_PP_SEQ_SIZE_11
-# define BOOST_PP_SEQ_SIZE_11(_) BOOST_PP_SEQ_SIZE_12
-# define BOOST_PP_SEQ_SIZE_12(_) BOOST_PP_SEQ_SIZE_13
-# define BOOST_PP_SEQ_SIZE_13(_) BOOST_PP_SEQ_SIZE_14
-# define BOOST_PP_SEQ_SIZE_14(_) BOOST_PP_SEQ_SIZE_15
-# define BOOST_PP_SEQ_SIZE_15(_) BOOST_PP_SEQ_SIZE_16
-# define BOOST_PP_SEQ_SIZE_16(_) BOOST_PP_SEQ_SIZE_17
-# define BOOST_PP_SEQ_SIZE_17(_) BOOST_PP_SEQ_SIZE_18
-# define BOOST_PP_SEQ_SIZE_18(_) BOOST_PP_SEQ_SIZE_19
-# define BOOST_PP_SEQ_SIZE_19(_) BOOST_PP_SEQ_SIZE_20
-# define BOOST_PP_SEQ_SIZE_20(_) BOOST_PP_SEQ_SIZE_21
-# define BOOST_PP_SEQ_SIZE_21(_) BOOST_PP_SEQ_SIZE_22
-# define BOOST_PP_SEQ_SIZE_22(_) BOOST_PP_SEQ_SIZE_23
-# define BOOST_PP_SEQ_SIZE_23(_) BOOST_PP_SEQ_SIZE_24
-# define BOOST_PP_SEQ_SIZE_24(_) BOOST_PP_SEQ_SIZE_25
-# define BOOST_PP_SEQ_SIZE_25(_) BOOST_PP_SEQ_SIZE_26
-# define BOOST_PP_SEQ_SIZE_26(_) BOOST_PP_SEQ_SIZE_27
-# define BOOST_PP_SEQ_SIZE_27(_) BOOST_PP_SEQ_SIZE_28
-# define BOOST_PP_SEQ_SIZE_28(_) BOOST_PP_SEQ_SIZE_29
-# define BOOST_PP_SEQ_SIZE_29(_) BOOST_PP_SEQ_SIZE_30
-# define BOOST_PP_SEQ_SIZE_30(_) BOOST_PP_SEQ_SIZE_31
-# define BOOST_PP_SEQ_SIZE_31(_) BOOST_PP_SEQ_SIZE_32
-# define BOOST_PP_SEQ_SIZE_32(_) BOOST_PP_SEQ_SIZE_33
-# define BOOST_PP_SEQ_SIZE_33(_) BOOST_PP_SEQ_SIZE_34
-# define BOOST_PP_SEQ_SIZE_34(_) BOOST_PP_SEQ_SIZE_35
-# define BOOST_PP_SEQ_SIZE_35(_) BOOST_PP_SEQ_SIZE_36
-# define BOOST_PP_SEQ_SIZE_36(_) BOOST_PP_SEQ_SIZE_37
-# define BOOST_PP_SEQ_SIZE_37(_) BOOST_PP_SEQ_SIZE_38
-# define BOOST_PP_SEQ_SIZE_38(_) BOOST_PP_SEQ_SIZE_39
-# define BOOST_PP_SEQ_SIZE_39(_) BOOST_PP_SEQ_SIZE_40
-# define BOOST_PP_SEQ_SIZE_40(_) BOOST_PP_SEQ_SIZE_41
-# define BOOST_PP_SEQ_SIZE_41(_) BOOST_PP_SEQ_SIZE_42
-# define BOOST_PP_SEQ_SIZE_42(_) BOOST_PP_SEQ_SIZE_43
-# define BOOST_PP_SEQ_SIZE_43(_) BOOST_PP_SEQ_SIZE_44
-# define BOOST_PP_SEQ_SIZE_44(_) BOOST_PP_SEQ_SIZE_45
-# define BOOST_PP_SEQ_SIZE_45(_) BOOST_PP_SEQ_SIZE_46
-# define BOOST_PP_SEQ_SIZE_46(_) BOOST_PP_SEQ_SIZE_47
-# define BOOST_PP_SEQ_SIZE_47(_) BOOST_PP_SEQ_SIZE_48
-# define BOOST_PP_SEQ_SIZE_48(_) BOOST_PP_SEQ_SIZE_49
-# define BOOST_PP_SEQ_SIZE_49(_) BOOST_PP_SEQ_SIZE_50
-# define BOOST_PP_SEQ_SIZE_50(_) BOOST_PP_SEQ_SIZE_51
-# define BOOST_PP_SEQ_SIZE_51(_) BOOST_PP_SEQ_SIZE_52
-# define BOOST_PP_SEQ_SIZE_52(_) BOOST_PP_SEQ_SIZE_53
-# define BOOST_PP_SEQ_SIZE_53(_) BOOST_PP_SEQ_SIZE_54
-# define BOOST_PP_SEQ_SIZE_54(_) BOOST_PP_SEQ_SIZE_55
-# define BOOST_PP_SEQ_SIZE_55(_) BOOST_PP_SEQ_SIZE_56
-# define BOOST_PP_SEQ_SIZE_56(_) BOOST_PP_SEQ_SIZE_57
-# define BOOST_PP_SEQ_SIZE_57(_) BOOST_PP_SEQ_SIZE_58
-# define BOOST_PP_SEQ_SIZE_58(_) BOOST_PP_SEQ_SIZE_59
-# define BOOST_PP_SEQ_SIZE_59(_) BOOST_PP_SEQ_SIZE_60
-# define BOOST_PP_SEQ_SIZE_60(_) BOOST_PP_SEQ_SIZE_61
-# define BOOST_PP_SEQ_SIZE_61(_) BOOST_PP_SEQ_SIZE_62
-# define BOOST_PP_SEQ_SIZE_62(_) BOOST_PP_SEQ_SIZE_63
-# define BOOST_PP_SEQ_SIZE_63(_) BOOST_PP_SEQ_SIZE_64
-# define BOOST_PP_SEQ_SIZE_64(_) BOOST_PP_SEQ_SIZE_65
-# define BOOST_PP_SEQ_SIZE_65(_) BOOST_PP_SEQ_SIZE_66
-# define BOOST_PP_SEQ_SIZE_66(_) BOOST_PP_SEQ_SIZE_67
-# define BOOST_PP_SEQ_SIZE_67(_) BOOST_PP_SEQ_SIZE_68
-# define BOOST_PP_SEQ_SIZE_68(_) BOOST_PP_SEQ_SIZE_69
-# define BOOST_PP_SEQ_SIZE_69(_) BOOST_PP_SEQ_SIZE_70
-# define BOOST_PP_SEQ_SIZE_70(_) BOOST_PP_SEQ_SIZE_71
-# define BOOST_PP_SEQ_SIZE_71(_) BOOST_PP_SEQ_SIZE_72
-# define BOOST_PP_SEQ_SIZE_72(_) BOOST_PP_SEQ_SIZE_73
-# define BOOST_PP_SEQ_SIZE_73(_) BOOST_PP_SEQ_SIZE_74
-# define BOOST_PP_SEQ_SIZE_74(_) BOOST_PP_SEQ_SIZE_75
-# define BOOST_PP_SEQ_SIZE_75(_) BOOST_PP_SEQ_SIZE_76
-# define BOOST_PP_SEQ_SIZE_76(_) BOOST_PP_SEQ_SIZE_77
-# define BOOST_PP_SEQ_SIZE_77(_) BOOST_PP_SEQ_SIZE_78
-# define BOOST_PP_SEQ_SIZE_78(_) BOOST_PP_SEQ_SIZE_79
-# define BOOST_PP_SEQ_SIZE_79(_) BOOST_PP_SEQ_SIZE_80
-# define BOOST_PP_SEQ_SIZE_80(_) BOOST_PP_SEQ_SIZE_81
-# define BOOST_PP_SEQ_SIZE_81(_) BOOST_PP_SEQ_SIZE_82
-# define BOOST_PP_SEQ_SIZE_82(_) BOOST_PP_SEQ_SIZE_83
-# define BOOST_PP_SEQ_SIZE_83(_) BOOST_PP_SEQ_SIZE_84
-# define BOOST_PP_SEQ_SIZE_84(_) BOOST_PP_SEQ_SIZE_85
-# define BOOST_PP_SEQ_SIZE_85(_) BOOST_PP_SEQ_SIZE_86
-# define BOOST_PP_SEQ_SIZE_86(_) BOOST_PP_SEQ_SIZE_87
-# define BOOST_PP_SEQ_SIZE_87(_) BOOST_PP_SEQ_SIZE_88
-# define BOOST_PP_SEQ_SIZE_88(_) BOOST_PP_SEQ_SIZE_89
-# define BOOST_PP_SEQ_SIZE_89(_) BOOST_PP_SEQ_SIZE_90
-# define BOOST_PP_SEQ_SIZE_90(_) BOOST_PP_SEQ_SIZE_91
-# define BOOST_PP_SEQ_SIZE_91(_) BOOST_PP_SEQ_SIZE_92
-# define BOOST_PP_SEQ_SIZE_92(_) BOOST_PP_SEQ_SIZE_93
-# define BOOST_PP_SEQ_SIZE_93(_) BOOST_PP_SEQ_SIZE_94
-# define BOOST_PP_SEQ_SIZE_94(_) BOOST_PP_SEQ_SIZE_95
-# define BOOST_PP_SEQ_SIZE_95(_) BOOST_PP_SEQ_SIZE_96
-# define BOOST_PP_SEQ_SIZE_96(_) BOOST_PP_SEQ_SIZE_97
-# define BOOST_PP_SEQ_SIZE_97(_) BOOST_PP_SEQ_SIZE_98
-# define BOOST_PP_SEQ_SIZE_98(_) BOOST_PP_SEQ_SIZE_99
-# define BOOST_PP_SEQ_SIZE_99(_) BOOST_PP_SEQ_SIZE_100
-# define BOOST_PP_SEQ_SIZE_100(_) BOOST_PP_SEQ_SIZE_101
-# define BOOST_PP_SEQ_SIZE_101(_) BOOST_PP_SEQ_SIZE_102
-# define BOOST_PP_SEQ_SIZE_102(_) BOOST_PP_SEQ_SIZE_103
-# define BOOST_PP_SEQ_SIZE_103(_) BOOST_PP_SEQ_SIZE_104
-# define BOOST_PP_SEQ_SIZE_104(_) BOOST_PP_SEQ_SIZE_105
-# define BOOST_PP_SEQ_SIZE_105(_) BOOST_PP_SEQ_SIZE_106
-# define BOOST_PP_SEQ_SIZE_106(_) BOOST_PP_SEQ_SIZE_107
-# define BOOST_PP_SEQ_SIZE_107(_) BOOST_PP_SEQ_SIZE_108
-# define BOOST_PP_SEQ_SIZE_108(_) BOOST_PP_SEQ_SIZE_109
-# define BOOST_PP_SEQ_SIZE_109(_) BOOST_PP_SEQ_SIZE_110
-# define BOOST_PP_SEQ_SIZE_110(_) BOOST_PP_SEQ_SIZE_111
-# define BOOST_PP_SEQ_SIZE_111(_) BOOST_PP_SEQ_SIZE_112
-# define BOOST_PP_SEQ_SIZE_112(_) BOOST_PP_SEQ_SIZE_113
-# define BOOST_PP_SEQ_SIZE_113(_) BOOST_PP_SEQ_SIZE_114
-# define BOOST_PP_SEQ_SIZE_114(_) BOOST_PP_SEQ_SIZE_115
-# define BOOST_PP_SEQ_SIZE_115(_) BOOST_PP_SEQ_SIZE_116
-# define BOOST_PP_SEQ_SIZE_116(_) BOOST_PP_SEQ_SIZE_117
-# define BOOST_PP_SEQ_SIZE_117(_) BOOST_PP_SEQ_SIZE_118
-# define BOOST_PP_SEQ_SIZE_118(_) BOOST_PP_SEQ_SIZE_119
-# define BOOST_PP_SEQ_SIZE_119(_) BOOST_PP_SEQ_SIZE_120
-# define BOOST_PP_SEQ_SIZE_120(_) BOOST_PP_SEQ_SIZE_121
-# define BOOST_PP_SEQ_SIZE_121(_) BOOST_PP_SEQ_SIZE_122
-# define BOOST_PP_SEQ_SIZE_122(_) BOOST_PP_SEQ_SIZE_123
-# define BOOST_PP_SEQ_SIZE_123(_) BOOST_PP_SEQ_SIZE_124
-# define BOOST_PP_SEQ_SIZE_124(_) BOOST_PP_SEQ_SIZE_125
-# define BOOST_PP_SEQ_SIZE_125(_) BOOST_PP_SEQ_SIZE_126
-# define BOOST_PP_SEQ_SIZE_126(_) BOOST_PP_SEQ_SIZE_127
-# define BOOST_PP_SEQ_SIZE_127(_) BOOST_PP_SEQ_SIZE_128
-# define BOOST_PP_SEQ_SIZE_128(_) BOOST_PP_SEQ_SIZE_129
-# define BOOST_PP_SEQ_SIZE_129(_) BOOST_PP_SEQ_SIZE_130
-# define BOOST_PP_SEQ_SIZE_130(_) BOOST_PP_SEQ_SIZE_131
-# define BOOST_PP_SEQ_SIZE_131(_) BOOST_PP_SEQ_SIZE_132
-# define BOOST_PP_SEQ_SIZE_132(_) BOOST_PP_SEQ_SIZE_133
-# define BOOST_PP_SEQ_SIZE_133(_) BOOST_PP_SEQ_SIZE_134
-# define BOOST_PP_SEQ_SIZE_134(_) BOOST_PP_SEQ_SIZE_135
-# define BOOST_PP_SEQ_SIZE_135(_) BOOST_PP_SEQ_SIZE_136
-# define BOOST_PP_SEQ_SIZE_136(_) BOOST_PP_SEQ_SIZE_137
-# define BOOST_PP_SEQ_SIZE_137(_) BOOST_PP_SEQ_SIZE_138
-# define BOOST_PP_SEQ_SIZE_138(_) BOOST_PP_SEQ_SIZE_139
-# define BOOST_PP_SEQ_SIZE_139(_) BOOST_PP_SEQ_SIZE_140
-# define BOOST_PP_SEQ_SIZE_140(_) BOOST_PP_SEQ_SIZE_141
-# define BOOST_PP_SEQ_SIZE_141(_) BOOST_PP_SEQ_SIZE_142
-# define BOOST_PP_SEQ_SIZE_142(_) BOOST_PP_SEQ_SIZE_143
-# define BOOST_PP_SEQ_SIZE_143(_) BOOST_PP_SEQ_SIZE_144
-# define BOOST_PP_SEQ_SIZE_144(_) BOOST_PP_SEQ_SIZE_145
-# define BOOST_PP_SEQ_SIZE_145(_) BOOST_PP_SEQ_SIZE_146
-# define BOOST_PP_SEQ_SIZE_146(_) BOOST_PP_SEQ_SIZE_147
-# define BOOST_PP_SEQ_SIZE_147(_) BOOST_PP_SEQ_SIZE_148
-# define BOOST_PP_SEQ_SIZE_148(_) BOOST_PP_SEQ_SIZE_149
-# define BOOST_PP_SEQ_SIZE_149(_) BOOST_PP_SEQ_SIZE_150
-# define BOOST_PP_SEQ_SIZE_150(_) BOOST_PP_SEQ_SIZE_151
-# define BOOST_PP_SEQ_SIZE_151(_) BOOST_PP_SEQ_SIZE_152
-# define BOOST_PP_SEQ_SIZE_152(_) BOOST_PP_SEQ_SIZE_153
-# define BOOST_PP_SEQ_SIZE_153(_) BOOST_PP_SEQ_SIZE_154
-# define BOOST_PP_SEQ_SIZE_154(_) BOOST_PP_SEQ_SIZE_155
-# define BOOST_PP_SEQ_SIZE_155(_) BOOST_PP_SEQ_SIZE_156
-# define BOOST_PP_SEQ_SIZE_156(_) BOOST_PP_SEQ_SIZE_157
-# define BOOST_PP_SEQ_SIZE_157(_) BOOST_PP_SEQ_SIZE_158
-# define BOOST_PP_SEQ_SIZE_158(_) BOOST_PP_SEQ_SIZE_159
-# define BOOST_PP_SEQ_SIZE_159(_) BOOST_PP_SEQ_SIZE_160
-# define BOOST_PP_SEQ_SIZE_160(_) BOOST_PP_SEQ_SIZE_161
-# define BOOST_PP_SEQ_SIZE_161(_) BOOST_PP_SEQ_SIZE_162
-# define BOOST_PP_SEQ_SIZE_162(_) BOOST_PP_SEQ_SIZE_163
-# define BOOST_PP_SEQ_SIZE_163(_) BOOST_PP_SEQ_SIZE_164
-# define BOOST_PP_SEQ_SIZE_164(_) BOOST_PP_SEQ_SIZE_165
-# define BOOST_PP_SEQ_SIZE_165(_) BOOST_PP_SEQ_SIZE_166
-# define BOOST_PP_SEQ_SIZE_166(_) BOOST_PP_SEQ_SIZE_167
-# define BOOST_PP_SEQ_SIZE_167(_) BOOST_PP_SEQ_SIZE_168
-# define BOOST_PP_SEQ_SIZE_168(_) BOOST_PP_SEQ_SIZE_169
-# define BOOST_PP_SEQ_SIZE_169(_) BOOST_PP_SEQ_SIZE_170
-# define BOOST_PP_SEQ_SIZE_170(_) BOOST_PP_SEQ_SIZE_171
-# define BOOST_PP_SEQ_SIZE_171(_) BOOST_PP_SEQ_SIZE_172
-# define BOOST_PP_SEQ_SIZE_172(_) BOOST_PP_SEQ_SIZE_173
-# define BOOST_PP_SEQ_SIZE_173(_) BOOST_PP_SEQ_SIZE_174
-# define BOOST_PP_SEQ_SIZE_174(_) BOOST_PP_SEQ_SIZE_175
-# define BOOST_PP_SEQ_SIZE_175(_) BOOST_PP_SEQ_SIZE_176
-# define BOOST_PP_SEQ_SIZE_176(_) BOOST_PP_SEQ_SIZE_177
-# define BOOST_PP_SEQ_SIZE_177(_) BOOST_PP_SEQ_SIZE_178
-# define BOOST_PP_SEQ_SIZE_178(_) BOOST_PP_SEQ_SIZE_179
-# define BOOST_PP_SEQ_SIZE_179(_) BOOST_PP_SEQ_SIZE_180
-# define BOOST_PP_SEQ_SIZE_180(_) BOOST_PP_SEQ_SIZE_181
-# define BOOST_PP_SEQ_SIZE_181(_) BOOST_PP_SEQ_SIZE_182
-# define BOOST_PP_SEQ_SIZE_182(_) BOOST_PP_SEQ_SIZE_183
-# define BOOST_PP_SEQ_SIZE_183(_) BOOST_PP_SEQ_SIZE_184
-# define BOOST_PP_SEQ_SIZE_184(_) BOOST_PP_SEQ_SIZE_185
-# define BOOST_PP_SEQ_SIZE_185(_) BOOST_PP_SEQ_SIZE_186
-# define BOOST_PP_SEQ_SIZE_186(_) BOOST_PP_SEQ_SIZE_187
-# define BOOST_PP_SEQ_SIZE_187(_) BOOST_PP_SEQ_SIZE_188
-# define BOOST_PP_SEQ_SIZE_188(_) BOOST_PP_SEQ_SIZE_189
-# define BOOST_PP_SEQ_SIZE_189(_) BOOST_PP_SEQ_SIZE_190
-# define BOOST_PP_SEQ_SIZE_190(_) BOOST_PP_SEQ_SIZE_191
-# define BOOST_PP_SEQ_SIZE_191(_) BOOST_PP_SEQ_SIZE_192
-# define BOOST_PP_SEQ_SIZE_192(_) BOOST_PP_SEQ_SIZE_193
-# define BOOST_PP_SEQ_SIZE_193(_) BOOST_PP_SEQ_SIZE_194
-# define BOOST_PP_SEQ_SIZE_194(_) BOOST_PP_SEQ_SIZE_195
-# define BOOST_PP_SEQ_SIZE_195(_) BOOST_PP_SEQ_SIZE_196
-# define BOOST_PP_SEQ_SIZE_196(_) BOOST_PP_SEQ_SIZE_197
-# define BOOST_PP_SEQ_SIZE_197(_) BOOST_PP_SEQ_SIZE_198
-# define BOOST_PP_SEQ_SIZE_198(_) BOOST_PP_SEQ_SIZE_199
-# define BOOST_PP_SEQ_SIZE_199(_) BOOST_PP_SEQ_SIZE_200
-# define BOOST_PP_SEQ_SIZE_200(_) BOOST_PP_SEQ_SIZE_201
-# define BOOST_PP_SEQ_SIZE_201(_) BOOST_PP_SEQ_SIZE_202
-# define BOOST_PP_SEQ_SIZE_202(_) BOOST_PP_SEQ_SIZE_203
-# define BOOST_PP_SEQ_SIZE_203(_) BOOST_PP_SEQ_SIZE_204
-# define BOOST_PP_SEQ_SIZE_204(_) BOOST_PP_SEQ_SIZE_205
-# define BOOST_PP_SEQ_SIZE_205(_) BOOST_PP_SEQ_SIZE_206
-# define BOOST_PP_SEQ_SIZE_206(_) BOOST_PP_SEQ_SIZE_207
-# define BOOST_PP_SEQ_SIZE_207(_) BOOST_PP_SEQ_SIZE_208
-# define BOOST_PP_SEQ_SIZE_208(_) BOOST_PP_SEQ_SIZE_209
-# define BOOST_PP_SEQ_SIZE_209(_) BOOST_PP_SEQ_SIZE_210
-# define BOOST_PP_SEQ_SIZE_210(_) BOOST_PP_SEQ_SIZE_211
-# define BOOST_PP_SEQ_SIZE_211(_) BOOST_PP_SEQ_SIZE_212
-# define BOOST_PP_SEQ_SIZE_212(_) BOOST_PP_SEQ_SIZE_213
-# define BOOST_PP_SEQ_SIZE_213(_) BOOST_PP_SEQ_SIZE_214
-# define BOOST_PP_SEQ_SIZE_214(_) BOOST_PP_SEQ_SIZE_215
-# define BOOST_PP_SEQ_SIZE_215(_) BOOST_PP_SEQ_SIZE_216
-# define BOOST_PP_SEQ_SIZE_216(_) BOOST_PP_SEQ_SIZE_217
-# define BOOST_PP_SEQ_SIZE_217(_) BOOST_PP_SEQ_SIZE_218
-# define BOOST_PP_SEQ_SIZE_218(_) BOOST_PP_SEQ_SIZE_219
-# define BOOST_PP_SEQ_SIZE_219(_) BOOST_PP_SEQ_SIZE_220
-# define BOOST_PP_SEQ_SIZE_220(_) BOOST_PP_SEQ_SIZE_221
-# define BOOST_PP_SEQ_SIZE_221(_) BOOST_PP_SEQ_SIZE_222
-# define BOOST_PP_SEQ_SIZE_222(_) BOOST_PP_SEQ_SIZE_223
-# define BOOST_PP_SEQ_SIZE_223(_) BOOST_PP_SEQ_SIZE_224
-# define BOOST_PP_SEQ_SIZE_224(_) BOOST_PP_SEQ_SIZE_225
-# define BOOST_PP_SEQ_SIZE_225(_) BOOST_PP_SEQ_SIZE_226
-# define BOOST_PP_SEQ_SIZE_226(_) BOOST_PP_SEQ_SIZE_227
-# define BOOST_PP_SEQ_SIZE_227(_) BOOST_PP_SEQ_SIZE_228
-# define BOOST_PP_SEQ_SIZE_228(_) BOOST_PP_SEQ_SIZE_229
-# define BOOST_PP_SEQ_SIZE_229(_) BOOST_PP_SEQ_SIZE_230
-# define BOOST_PP_SEQ_SIZE_230(_) BOOST_PP_SEQ_SIZE_231
-# define BOOST_PP_SEQ_SIZE_231(_) BOOST_PP_SEQ_SIZE_232
-# define BOOST_PP_SEQ_SIZE_232(_) BOOST_PP_SEQ_SIZE_233
-# define BOOST_PP_SEQ_SIZE_233(_) BOOST_PP_SEQ_SIZE_234
-# define BOOST_PP_SEQ_SIZE_234(_) BOOST_PP_SEQ_SIZE_235
-# define BOOST_PP_SEQ_SIZE_235(_) BOOST_PP_SEQ_SIZE_236
-# define BOOST_PP_SEQ_SIZE_236(_) BOOST_PP_SEQ_SIZE_237
-# define BOOST_PP_SEQ_SIZE_237(_) BOOST_PP_SEQ_SIZE_238
-# define BOOST_PP_SEQ_SIZE_238(_) BOOST_PP_SEQ_SIZE_239
-# define BOOST_PP_SEQ_SIZE_239(_) BOOST_PP_SEQ_SIZE_240
-# define BOOST_PP_SEQ_SIZE_240(_) BOOST_PP_SEQ_SIZE_241
-# define BOOST_PP_SEQ_SIZE_241(_) BOOST_PP_SEQ_SIZE_242
-# define BOOST_PP_SEQ_SIZE_242(_) BOOST_PP_SEQ_SIZE_243
-# define BOOST_PP_SEQ_SIZE_243(_) BOOST_PP_SEQ_SIZE_244
-# define BOOST_PP_SEQ_SIZE_244(_) BOOST_PP_SEQ_SIZE_245
-# define BOOST_PP_SEQ_SIZE_245(_) BOOST_PP_SEQ_SIZE_246
-# define BOOST_PP_SEQ_SIZE_246(_) BOOST_PP_SEQ_SIZE_247
-# define BOOST_PP_SEQ_SIZE_247(_) BOOST_PP_SEQ_SIZE_248
-# define BOOST_PP_SEQ_SIZE_248(_) BOOST_PP_SEQ_SIZE_249
-# define BOOST_PP_SEQ_SIZE_249(_) BOOST_PP_SEQ_SIZE_250
-# define BOOST_PP_SEQ_SIZE_250(_) BOOST_PP_SEQ_SIZE_251
-# define BOOST_PP_SEQ_SIZE_251(_) BOOST_PP_SEQ_SIZE_252
-# define BOOST_PP_SEQ_SIZE_252(_) BOOST_PP_SEQ_SIZE_253
-# define BOOST_PP_SEQ_SIZE_253(_) BOOST_PP_SEQ_SIZE_254
-# define BOOST_PP_SEQ_SIZE_254(_) BOOST_PP_SEQ_SIZE_255
-# define BOOST_PP_SEQ_SIZE_255(_) BOOST_PP_SEQ_SIZE_256
-# define BOOST_PP_SEQ_SIZE_256(_) BOOST_PP_SEQ_SIZE_257
-#
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_0 0
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_1 1
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_2 2
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_3 3
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_4 4
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_5 5
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_6 6
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_7 7
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_8 8
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_9 9
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_10 10
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_11 11
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_12 12
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_13 13
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_14 14
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_15 15
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_16 16
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_17 17
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_18 18
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_19 19
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_20 20
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_21 21
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_22 22
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_23 23
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_24 24
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_25 25
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_26 26
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_27 27
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_28 28
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_29 29
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_30 30
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_31 31
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_32 32
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_33 33
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_34 34
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_35 35
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_36 36
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_37 37
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_38 38
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_39 39
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_40 40
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_41 41
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_42 42
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_43 43
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_44 44
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_45 45
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_46 46
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_47 47
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_48 48
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_49 49
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_50 50
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_51 51
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_52 52
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_53 53
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_54 54
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_55 55
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_56 56
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_57 57
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_58 58
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_59 59
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_60 60
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_61 61
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_62 62
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_63 63
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_64 64
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_65 65
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_66 66
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_67 67
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_68 68
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_69 69
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_70 70
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_71 71
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_72 72
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_73 73
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_74 74
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_75 75
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_76 76
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_77 77
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_78 78
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_79 79
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_80 80
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_81 81
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_82 82
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_83 83
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_84 84
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_85 85
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_86 86
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_87 87
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_88 88
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_89 89
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_90 90
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_91 91
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_92 92
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_93 93
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_94 94
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_95 95
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_96 96
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_97 97
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_98 98
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_99 99
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_100 100
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_101 101
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_102 102
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_103 103
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_104 104
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_105 105
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_106 106
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_107 107
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_108 108
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_109 109
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_110 110
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_111 111
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_112 112
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_113 113
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_114 114
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_115 115
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_116 116
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_117 117
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_118 118
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_119 119
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_120 120
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_121 121
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_122 122
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_123 123
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_124 124
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_125 125
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_126 126
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_127 127
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_128 128
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_129 129
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_130 130
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_131 131
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_132 132
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_133 133
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_134 134
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_135 135
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_136 136
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_137 137
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_138 138
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_139 139
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_140 140
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_141 141
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_142 142
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_143 143
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_144 144
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_145 145
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_146 146
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_147 147
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_148 148
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_149 149
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_150 150
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_151 151
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_152 152
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_153 153
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_154 154
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_155 155
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_156 156
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_157 157
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_158 158
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_159 159
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_160 160
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_161 161
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_162 162
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_163 163
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_164 164
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_165 165
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_166 166
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_167 167
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_168 168
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_169 169
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_170 170
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_171 171
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_172 172
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_173 173
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_174 174
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_175 175
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_176 176
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_177 177
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_178 178
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_179 179
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_180 180
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_181 181
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_182 182
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_183 183
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_184 184
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_185 185
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_186 186
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_187 187
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_188 188
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_189 189
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_190 190
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_191 191
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_192 192
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_193 193
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_194 194
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_195 195
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_196 196
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_197 197
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_198 198
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_199 199
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_200 200
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_201 201
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_202 202
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_203 203
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_204 204
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_205 205
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_206 206
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_207 207
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_208 208
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_209 209
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_210 210
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_211 211
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_212 212
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_213 213
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_214 214
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_215 215
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_216 216
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_217 217
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_218 218
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_219 219
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_220 220
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_221 221
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_222 222
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_223 223
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_224 224
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_225 225
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_226 226
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_227 227
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_228 228
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_229 229
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_230 230
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_231 231
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_232 232
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_233 233
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_234 234
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_235 235
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_236 236
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_237 237
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_238 238
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_239 239
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_240 240
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_241 241
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_242 242
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_243 243
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_244 244
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_245 245
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_246 246
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_247 247
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_248 248
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_249 249
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_250 250
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_251 251
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_252 252
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_253 253
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_254 254
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_255 255
-# define BOOST_PP_SEQ_SIZE_BOOST_PP_SEQ_SIZE_256 256
-#
-# endif
diff --git a/boost/preprocessor/seq/subseq.hpp b/boost/preprocessor/seq/subseq.hpp
deleted file mode 100644
index fb242f1..0000000
--- a/boost/preprocessor/seq/subseq.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_SEQ_SUBSEQ_HPP
-# define BOOST_PREPROCESSOR_SEQ_SUBSEQ_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/seq/first_n.hpp>
-# include <boost/preprocessor/seq/rest_n.hpp>
-#
-# /* BOOST_PP_SEQ_SUBSEQ */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_SEQ_SUBSEQ(seq, i, len) BOOST_PP_SEQ_FIRST_N(len, BOOST_PP_SEQ_REST_N(i, seq))
-# else
-#    define BOOST_PP_SEQ_SUBSEQ(seq, i, len) BOOST_PP_SEQ_SUBSEQ_I(seq, i, len)
-#    define BOOST_PP_SEQ_SUBSEQ_I(seq, i, len) BOOST_PP_SEQ_FIRST_N(len, BOOST_PP_SEQ_REST_N(i, seq))
-# endif
-#
-# endif
diff --git a/boost/preprocessor/seq/transform.hpp b/boost/preprocessor/seq/transform.hpp
deleted file mode 100644
index 79d8108..0000000
--- a/boost/preprocessor/seq/transform.hpp
+++ /dev/null
@@ -1,48 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_SEQ_TRANSFORM_HPP
-# define BOOST_PREPROCESSOR_SEQ_TRANSFORM_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/seq/fold_left.hpp>
-# include <boost/preprocessor/seq/seq.hpp>
-# include <boost/preprocessor/tuple/elem.hpp>
-# include <boost/preprocessor/tuple/rem.hpp>
-#
-# /* BOOST_PP_SEQ_TRANSFORM */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_SEQ_TRANSFORM(op, data, seq) BOOST_PP_SEQ_TAIL(BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_SEQ_FOLD_LEFT(BOOST_PP_SEQ_TRANSFORM_O, (op, data, (nil)), seq)))
-# else
-#    define BOOST_PP_SEQ_TRANSFORM(op, data, seq) BOOST_PP_SEQ_TRANSFORM_I(op, data, seq)
-#    define BOOST_PP_SEQ_TRANSFORM_I(op, data, seq) BOOST_PP_SEQ_TAIL(BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_SEQ_FOLD_LEFT(BOOST_PP_SEQ_TRANSFORM_O, (op, data, (nil)), seq)))
-# endif
-#
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_STRICT()
-#    define BOOST_PP_SEQ_TRANSFORM_O(s, state, elem) BOOST_PP_SEQ_TRANSFORM_O_IM(s, BOOST_PP_TUPLE_REM_3 state, elem)
-#    define BOOST_PP_SEQ_TRANSFORM_O_IM(s, im, elem) BOOST_PP_SEQ_TRANSFORM_O_I(s, im, elem)
-# else
-#    define BOOST_PP_SEQ_TRANSFORM_O(s, state, elem) BOOST_PP_SEQ_TRANSFORM_O_I(s, BOOST_PP_TUPLE_ELEM(3, 0, state), BOOST_PP_TUPLE_ELEM(3, 1, state), BOOST_PP_TUPLE_ELEM(3, 2, state), elem)
-# endif
-#
-# define BOOST_PP_SEQ_TRANSFORM_O_I(s, op, data, res, elem) (op, data, res (op(s, data, elem)))
-#
-# /* BOOST_PP_SEQ_TRANSFORM_S */
-#
-# if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#    define BOOST_PP_SEQ_TRANSFORM_S(s, op, data, seq) BOOST_PP_SEQ_TAIL(BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_SEQ_FOLD_LEFT_ ## s(BOOST_PP_SEQ_TRANSFORM_O, (op, data, (nil)), seq)))
-# else
-#    define BOOST_PP_SEQ_TRANSFORM_S(s, op, data, seq) BOOST_PP_SEQ_TRANSFORM_S_I(s, op, data, seq)
-#    define BOOST_PP_SEQ_TRANSFORM_S_I(s, op, data, seq) BOOST_PP_SEQ_TAIL(BOOST_PP_TUPLE_ELEM(3, 2, BOOST_PP_SEQ_FOLD_LEFT_ ## s(BOOST_PP_SEQ_TRANSFORM_O, (op, data, (nil)), seq)))
-# endif
-#
-# endif
diff --git a/boost/preprocessor/slot/detail/counter.hpp b/boost/preprocessor/slot/detail/counter.hpp
deleted file mode 100644
index a1c0df1..0000000
--- a/boost/preprocessor/slot/detail/counter.hpp
+++ /dev/null
@@ -1,269 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2005.                                  *
-#  *     Distributed under the Boost Software License, Version 1.0. (See      *
-#  *     accompanying file LICENSE_1_0.txt or copy at                         *
-#  *     http://www.boost.org/LICENSE_1_0.txt)                                *
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# define BOOST_PP_VALUE BOOST_PP_COUNTER + 1
-#
-# include <boost/preprocessor/slot/detail/shared.hpp>
-#
-# undef BOOST_PP_COUNTER
-#
-# undef BOOST_PP_COUNTER_DIGIT_1
-# undef BOOST_PP_COUNTER_DIGIT_2
-# undef BOOST_PP_COUNTER_DIGIT_3
-# undef BOOST_PP_COUNTER_DIGIT_4
-# undef BOOST_PP_COUNTER_DIGIT_5
-# undef BOOST_PP_COUNTER_DIGIT_6
-# undef BOOST_PP_COUNTER_DIGIT_7
-# undef BOOST_PP_COUNTER_DIGIT_8
-# undef BOOST_PP_COUNTER_DIGIT_9
-# undef BOOST_PP_COUNTER_DIGIT_10
-#
-# if BOOST_PP_SLOT_TEMP_10 == 0
-#    define BOOST_PP_COUNTER_DIGIT_10 0
-# elif BOOST_PP_SLOT_TEMP_10 == 1
-#    define BOOST_PP_COUNTER_DIGIT_10 1
-# elif BOOST_PP_SLOT_TEMP_10 == 2
-#    define BOOST_PP_COUNTER_DIGIT_10 2
-# elif BOOST_PP_SLOT_TEMP_10 == 3
-#    define BOOST_PP_COUNTER_DIGIT_10 3
-# elif BOOST_PP_SLOT_TEMP_10 == 4
-#    define BOOST_PP_COUNTER_DIGIT_10 4
-# elif BOOST_PP_SLOT_TEMP_10 == 5
-#    define BOOST_PP_COUNTER_DIGIT_10 5
-# elif BOOST_PP_SLOT_TEMP_10 == 6
-#    define BOOST_PP_COUNTER_DIGIT_10 6
-# elif BOOST_PP_SLOT_TEMP_10 == 7
-#    define BOOST_PP_COUNTER_DIGIT_10 7
-# elif BOOST_PP_SLOT_TEMP_10 == 8
-#    define BOOST_PP_COUNTER_DIGIT_10 8
-# elif BOOST_PP_SLOT_TEMP_10 == 9
-#    define BOOST_PP_COUNTER_DIGIT_10 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_9 == 0
-#    define BOOST_PP_COUNTER_DIGIT_9 0
-# elif BOOST_PP_SLOT_TEMP_9 == 1
-#    define BOOST_PP_COUNTER_DIGIT_9 1
-# elif BOOST_PP_SLOT_TEMP_9 == 2
-#    define BOOST_PP_COUNTER_DIGIT_9 2
-# elif BOOST_PP_SLOT_TEMP_9 == 3
-#    define BOOST_PP_COUNTER_DIGIT_9 3
-# elif BOOST_PP_SLOT_TEMP_9 == 4
-#    define BOOST_PP_COUNTER_DIGIT_9 4
-# elif BOOST_PP_SLOT_TEMP_9 == 5
-#    define BOOST_PP_COUNTER_DIGIT_9 5
-# elif BOOST_PP_SLOT_TEMP_9 == 6
-#    define BOOST_PP_COUNTER_DIGIT_9 6
-# elif BOOST_PP_SLOT_TEMP_9 == 7
-#    define BOOST_PP_COUNTER_DIGIT_9 7
-# elif BOOST_PP_SLOT_TEMP_9 == 8
-#    define BOOST_PP_COUNTER_DIGIT_9 8
-# elif BOOST_PP_SLOT_TEMP_9 == 9
-#    define BOOST_PP_COUNTER_DIGIT_9 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_8 == 0
-#    define BOOST_PP_COUNTER_DIGIT_8 0
-# elif BOOST_PP_SLOT_TEMP_8 == 1
-#    define BOOST_PP_COUNTER_DIGIT_8 1
-# elif BOOST_PP_SLOT_TEMP_8 == 2
-#    define BOOST_PP_COUNTER_DIGIT_8 2
-# elif BOOST_PP_SLOT_TEMP_8 == 3
-#    define BOOST_PP_COUNTER_DIGIT_8 3
-# elif BOOST_PP_SLOT_TEMP_8 == 4
-#    define BOOST_PP_COUNTER_DIGIT_8 4
-# elif BOOST_PP_SLOT_TEMP_8 == 5
-#    define BOOST_PP_COUNTER_DIGIT_8 5
-# elif BOOST_PP_SLOT_TEMP_8 == 6
-#    define BOOST_PP_COUNTER_DIGIT_8 6
-# elif BOOST_PP_SLOT_TEMP_8 == 7
-#    define BOOST_PP_COUNTER_DIGIT_8 7
-# elif BOOST_PP_SLOT_TEMP_8 == 8
-#    define BOOST_PP_COUNTER_DIGIT_8 8
-# elif BOOST_PP_SLOT_TEMP_8 == 9
-#    define BOOST_PP_COUNTER_DIGIT_8 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_7 == 0
-#    define BOOST_PP_COUNTER_DIGIT_7 0
-# elif BOOST_PP_SLOT_TEMP_7 == 1
-#    define BOOST_PP_COUNTER_DIGIT_7 1
-# elif BOOST_PP_SLOT_TEMP_7 == 2
-#    define BOOST_PP_COUNTER_DIGIT_7 2
-# elif BOOST_PP_SLOT_TEMP_7 == 3
-#    define BOOST_PP_COUNTER_DIGIT_7 3
-# elif BOOST_PP_SLOT_TEMP_7 == 4
-#    define BOOST_PP_COUNTER_DIGIT_7 4
-# elif BOOST_PP_SLOT_TEMP_7 == 5
-#    define BOOST_PP_COUNTER_DIGIT_7 5
-# elif BOOST_PP_SLOT_TEMP_7 == 6
-#    define BOOST_PP_COUNTER_DIGIT_7 6
-# elif BOOST_PP_SLOT_TEMP_7 == 7
-#    define BOOST_PP_COUNTER_DIGIT_7 7
-# elif BOOST_PP_SLOT_TEMP_7 == 8
-#    define BOOST_PP_COUNTER_DIGIT_7 8
-# elif BOOST_PP_SLOT_TEMP_7 == 9
-#    define BOOST_PP_COUNTER_DIGIT_7 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_6 == 0
-#    define BOOST_PP_COUNTER_DIGIT_6 0
-# elif BOOST_PP_SLOT_TEMP_6 == 1
-#    define BOOST_PP_COUNTER_DIGIT_6 1
-# elif BOOST_PP_SLOT_TEMP_6 == 2
-#    define BOOST_PP_COUNTER_DIGIT_6 2
-# elif BOOST_PP_SLOT_TEMP_6 == 3
-#    define BOOST_PP_COUNTER_DIGIT_6 3
-# elif BOOST_PP_SLOT_TEMP_6 == 4
-#    define BOOST_PP_COUNTER_DIGIT_6 4
-# elif BOOST_PP_SLOT_TEMP_6 == 5
-#    define BOOST_PP_COUNTER_DIGIT_6 5
-# elif BOOST_PP_SLOT_TEMP_6 == 6
-#    define BOOST_PP_COUNTER_DIGIT_6 6
-# elif BOOST_PP_SLOT_TEMP_6 == 7
-#    define BOOST_PP_COUNTER_DIGIT_6 7
-# elif BOOST_PP_SLOT_TEMP_6 == 8
-#    define BOOST_PP_COUNTER_DIGIT_6 8
-# elif BOOST_PP_SLOT_TEMP_6 == 9
-#    define BOOST_PP_COUNTER_DIGIT_6 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_5 == 0
-#    define BOOST_PP_COUNTER_DIGIT_5 0
-# elif BOOST_PP_SLOT_TEMP_5 == 1
-#    define BOOST_PP_COUNTER_DIGIT_5 1
-# elif BOOST_PP_SLOT_TEMP_5 == 2
-#    define BOOST_PP_COUNTER_DIGIT_5 2
-# elif BOOST_PP_SLOT_TEMP_5 == 3
-#    define BOOST_PP_COUNTER_DIGIT_5 3
-# elif BOOST_PP_SLOT_TEMP_5 == 4
-#    define BOOST_PP_COUNTER_DIGIT_5 4
-# elif BOOST_PP_SLOT_TEMP_5 == 5
-#    define BOOST_PP_COUNTER_DIGIT_5 5
-# elif BOOST_PP_SLOT_TEMP_5 == 6
-#    define BOOST_PP_COUNTER_DIGIT_5 6
-# elif BOOST_PP_SLOT_TEMP_5 == 7
-#    define BOOST_PP_COUNTER_DIGIT_5 7
-# elif BOOST_PP_SLOT_TEMP_5 == 8
-#    define BOOST_PP_COUNTER_DIGIT_5 8
-# elif BOOST_PP_SLOT_TEMP_5 == 9
-#    define BOOST_PP_COUNTER_DIGIT_5 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_4 == 0
-#    define BOOST_PP_COUNTER_DIGIT_4 0
-# elif BOOST_PP_SLOT_TEMP_4 == 1
-#    define BOOST_PP_COUNTER_DIGIT_4 1
-# elif BOOST_PP_SLOT_TEMP_4 == 2
-#    define BOOST_PP_COUNTER_DIGIT_4 2
-# elif BOOST_PP_SLOT_TEMP_4 == 3
-#    define BOOST_PP_COUNTER_DIGIT_4 3
-# elif BOOST_PP_SLOT_TEMP_4 == 4
-#    define BOOST_PP_COUNTER_DIGIT_4 4
-# elif BOOST_PP_SLOT_TEMP_4 == 5
-#    define BOOST_PP_COUNTER_DIGIT_4 5
-# elif BOOST_PP_SLOT_TEMP_4 == 6
-#    define BOOST_PP_COUNTER_DIGIT_4 6
-# elif BOOST_PP_SLOT_TEMP_4 == 7
-#    define BOOST_PP_COUNTER_DIGIT_4 7
-# elif BOOST_PP_SLOT_TEMP_4 == 8
-#    define BOOST_PP_COUNTER_DIGIT_4 8
-# elif BOOST_PP_SLOT_TEMP_4 == 9
-#    define BOOST_PP_COUNTER_DIGIT_4 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_3 == 0
-#    define BOOST_PP_COUNTER_DIGIT_3 0
-# elif BOOST_PP_SLOT_TEMP_3 == 1
-#    define BOOST_PP_COUNTER_DIGIT_3 1
-# elif BOOST_PP_SLOT_TEMP_3 == 2
-#    define BOOST_PP_COUNTER_DIGIT_3 2
-# elif BOOST_PP_SLOT_TEMP_3 == 3
-#    define BOOST_PP_COUNTER_DIGIT_3 3
-# elif BOOST_PP_SLOT_TEMP_3 == 4
-#    define BOOST_PP_COUNTER_DIGIT_3 4
-# elif BOOST_PP_SLOT_TEMP_3 == 5
-#    define BOOST_PP_COUNTER_DIGIT_3 5
-# elif BOOST_PP_SLOT_TEMP_3 == 6
-#    define BOOST_PP_COUNTER_DIGIT_3 6
-# elif BOOST_PP_SLOT_TEMP_3 == 7
-#    define BOOST_PP_COUNTER_DIGIT_3 7
-# elif BOOST_PP_SLOT_TEMP_3 == 8
-#    define BOOST_PP_COUNTER_DIGIT_3 8
-# elif BOOST_PP_SLOT_TEMP_3 == 9
-#    define BOOST_PP_COUNTER_DIGIT_3 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_2 == 0
-#    define BOOST_PP_COUNTER_DIGIT_2 0
-# elif BOOST_PP_SLOT_TEMP_2 == 1
-#    define BOOST_PP_COUNTER_DIGIT_2 1
-# elif BOOST_PP_SLOT_TEMP_2 == 2
-#    define BOOST_PP_COUNTER_DIGIT_2 2
-# elif BOOST_PP_SLOT_TEMP_2 == 3
-#    define BOOST_PP_COUNTER_DIGIT_2 3
-# elif BOOST_PP_SLOT_TEMP_2 == 4
-#    define BOOST_PP_COUNTER_DIGIT_2 4
-# elif BOOST_PP_SLOT_TEMP_2 == 5
-#    define BOOST_PP_COUNTER_DIGIT_2 5
-# elif BOOST_PP_SLOT_TEMP_2 == 6
-#    define BOOST_PP_COUNTER_DIGIT_2 6
-# elif BOOST_PP_SLOT_TEMP_2 == 7
-#    define BOOST_PP_COUNTER_DIGIT_2 7
-# elif BOOST_PP_SLOT_TEMP_2 == 8
-#    define BOOST_PP_COUNTER_DIGIT_2 8
-# elif BOOST_PP_SLOT_TEMP_2 == 9
-#    define BOOST_PP_COUNTER_DIGIT_2 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_1 == 0
-#    define BOOST_PP_COUNTER_DIGIT_1 0
-# elif BOOST_PP_SLOT_TEMP_1 == 1
-#    define BOOST_PP_COUNTER_DIGIT_1 1
-# elif BOOST_PP_SLOT_TEMP_1 == 2
-#    define BOOST_PP_COUNTER_DIGIT_1 2
-# elif BOOST_PP_SLOT_TEMP_1 == 3
-#    define BOOST_PP_COUNTER_DIGIT_1 3
-# elif BOOST_PP_SLOT_TEMP_1 == 4
-#    define BOOST_PP_COUNTER_DIGIT_1 4
-# elif BOOST_PP_SLOT_TEMP_1 == 5
-#    define BOOST_PP_COUNTER_DIGIT_1 5
-# elif BOOST_PP_SLOT_TEMP_1 == 6
-#    define BOOST_PP_COUNTER_DIGIT_1 6
-# elif BOOST_PP_SLOT_TEMP_1 == 7
-#    define BOOST_PP_COUNTER_DIGIT_1 7
-# elif BOOST_PP_SLOT_TEMP_1 == 8
-#    define BOOST_PP_COUNTER_DIGIT_1 8
-# elif BOOST_PP_SLOT_TEMP_1 == 9
-#    define BOOST_PP_COUNTER_DIGIT_1 9
-# endif
-#
-# if BOOST_PP_COUNTER_DIGIT_10
-#    define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_10(BOOST_PP_COUNTER_DIGIT_10, BOOST_PP_COUNTER_DIGIT_9, BOOST_PP_COUNTER_DIGIT_8, BOOST_PP_COUNTER_DIGIT_7, BOOST_PP_COUNTER_DIGIT_6, BOOST_PP_COUNTER_DIGIT_5, BOOST_PP_COUNTER_DIGIT_4, BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)
-# elif BOOST_PP_COUNTER_DIGIT_9
-#    define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_9(BOOST_PP_COUNTER_DIGIT_9, BOOST_PP_COUNTER_DIGIT_8, BOOST_PP_COUNTER_DIGIT_7, BOOST_PP_COUNTER_DIGIT_6, BOOST_PP_COUNTER_DIGIT_5, BOOST_PP_COUNTER_DIGIT_4, BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)
-# elif BOOST_PP_COUNTER_DIGIT_8
-#    define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_8(BOOST_PP_COUNTER_DIGIT_8, BOOST_PP_COUNTER_DIGIT_7, BOOST_PP_COUNTER_DIGIT_6, BOOST_PP_COUNTER_DIGIT_5, BOOST_PP_COUNTER_DIGIT_4, BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)
-# elif BOOST_PP_COUNTER_DIGIT_7
-#    define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_7(BOOST_PP_COUNTER_DIGIT_7, BOOST_PP_COUNTER_DIGIT_6, BOOST_PP_COUNTER_DIGIT_5, BOOST_PP_COUNTER_DIGIT_4, BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)
-# elif BOOST_PP_COUNTER_DIGIT_6
-#    define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_6(BOOST_PP_COUNTER_DIGIT_6, BOOST_PP_COUNTER_DIGIT_5, BOOST_PP_COUNTER_DIGIT_4, BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)
-# elif BOOST_PP_COUNTER_DIGIT_5
-#    define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_5(BOOST_PP_COUNTER_DIGIT_5, BOOST_PP_COUNTER_DIGIT_4, BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)
-# elif BOOST_PP_COUNTER_DIGIT_4
-#    define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_4(BOOST_PP_COUNTER_DIGIT_4, BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)
-# elif BOOST_PP_COUNTER_DIGIT_3
-#    define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_3(BOOST_PP_COUNTER_DIGIT_3, BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)
-# elif BOOST_PP_COUNTER_DIGIT_2
-#    define BOOST_PP_COUNTER BOOST_PP_SLOT_CC_2(BOOST_PP_COUNTER_DIGIT_2, BOOST_PP_COUNTER_DIGIT_1)
-# else
-#    define BOOST_PP_COUNTER BOOST_PP_COUNTER_DIGIT_1
-# endif
diff --git a/boost/preprocessor/slot/detail/def.hpp b/boost/preprocessor/slot/detail/def.hpp
deleted file mode 100644
index 885099e..0000000
--- a/boost/preprocessor/slot/detail/def.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_SLOT_DETAIL_DEF_HPP
-# define BOOST_PREPROCESSOR_SLOT_DETAIL_DEF_HPP
-#
-# /* BOOST_PP_SLOT_OFFSET_x */
-#
-# define BOOST_PP_SLOT_OFFSET_10(x) (x) % 1000000000UL
-# define BOOST_PP_SLOT_OFFSET_9(x) BOOST_PP_SLOT_OFFSET_10(x) % 100000000UL
-# define BOOST_PP_SLOT_OFFSET_8(x) BOOST_PP_SLOT_OFFSET_9(x) % 10000000UL
-# define BOOST_PP_SLOT_OFFSET_7(x) BOOST_PP_SLOT_OFFSET_8(x) % 1000000UL
-# define BOOST_PP_SLOT_OFFSET_6(x) BOOST_PP_SLOT_OFFSET_7(x) % 100000UL
-# define BOOST_PP_SLOT_OFFSET_5(x) BOOST_PP_SLOT_OFFSET_6(x) % 10000UL
-# define BOOST_PP_SLOT_OFFSET_4(x) BOOST_PP_SLOT_OFFSET_5(x) % 1000UL
-# define BOOST_PP_SLOT_OFFSET_3(x) BOOST_PP_SLOT_OFFSET_4(x) % 100UL
-# define BOOST_PP_SLOT_OFFSET_2(x) BOOST_PP_SLOT_OFFSET_3(x) % 10UL
-#
-# /* BOOST_PP_SLOT_CC_x */
-#
-# define BOOST_PP_SLOT_CC_2(a, b) BOOST_PP_SLOT_CC_2_D(a, b)
-# define BOOST_PP_SLOT_CC_3(a, b, c) BOOST_PP_SLOT_CC_3_D(a, b, c)
-# define BOOST_PP_SLOT_CC_4(a, b, c, d) BOOST_PP_SLOT_CC_4_D(a, b, c, d)
-# define BOOST_PP_SLOT_CC_5(a, b, c, d, e) BOOST_PP_SLOT_CC_5_D(a, b, c, d, e)
-# define BOOST_PP_SLOT_CC_6(a, b, c, d, e, f) BOOST_PP_SLOT_CC_6_D(a, b, c, d, e, f)
-# define BOOST_PP_SLOT_CC_7(a, b, c, d, e, f, g) BOOST_PP_SLOT_CC_7_D(a, b, c, d, e, f, g)
-# define BOOST_PP_SLOT_CC_8(a, b, c, d, e, f, g, h) BOOST_PP_SLOT_CC_8_D(a, b, c, d, e, f, g, h)
-# define BOOST_PP_SLOT_CC_9(a, b, c, d, e, f, g, h, i) BOOST_PP_SLOT_CC_9_D(a, b, c, d, e, f, g, h, i)
-# define BOOST_PP_SLOT_CC_10(a, b, c, d, e, f, g, h, i, j) BOOST_PP_SLOT_CC_10_D(a, b, c, d, e, f, g, h, i, j)
-#
-# define BOOST_PP_SLOT_CC_2_D(a, b) a ## b
-# define BOOST_PP_SLOT_CC_3_D(a, b, c) a ## b ## c
-# define BOOST_PP_SLOT_CC_4_D(a, b, c, d) a ## b ## c ## d
-# define BOOST_PP_SLOT_CC_5_D(a, b, c, d, e) a ## b ## c ## d ## e
-# define BOOST_PP_SLOT_CC_6_D(a, b, c, d, e, f) a ## b ## c ## d ## e ## f
-# define BOOST_PP_SLOT_CC_7_D(a, b, c, d, e, f, g) a ## b ## c ## d ## e ## f ## g
-# define BOOST_PP_SLOT_CC_8_D(a, b, c, d, e, f, g, h) a ## b ## c ## d ## e ## f ## g ## h
-# define BOOST_PP_SLOT_CC_9_D(a, b, c, d, e, f, g, h, i) a ## b ## c ## d ## e ## f ## g ## h ## i
-# define BOOST_PP_SLOT_CC_10_D(a, b, c, d, e, f, g, h, i, j) a ## b ## c ## d ## e ## f ## g ## h ## i ## j
-#
-# endif
diff --git a/boost/preprocessor/slot/detail/shared.hpp b/boost/preprocessor/slot/detail/shared.hpp
deleted file mode 100644
index c97ac54..0000000
--- a/boost/preprocessor/slot/detail/shared.hpp
+++ /dev/null
@@ -1,247 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PP_VALUE
-#    error BOOST_PP_ERROR:  BOOST_PP_VALUE is not defined
-# endif
-#
-# undef BOOST_PP_SLOT_TEMP_1
-# undef BOOST_PP_SLOT_TEMP_2
-# undef BOOST_PP_SLOT_TEMP_3
-# undef BOOST_PP_SLOT_TEMP_4
-# undef BOOST_PP_SLOT_TEMP_5
-# undef BOOST_PP_SLOT_TEMP_6
-# undef BOOST_PP_SLOT_TEMP_7
-# undef BOOST_PP_SLOT_TEMP_8
-# undef BOOST_PP_SLOT_TEMP_9
-# undef BOOST_PP_SLOT_TEMP_10
-#
-# if (BOOST_PP_VALUE) / 1000000000UL == 0
-#    define BOOST_PP_SLOT_TEMP_10 0
-# elif (BOOST_PP_VALUE) / 1000000000UL == 1
-#    define BOOST_PP_SLOT_TEMP_10 1
-# elif (BOOST_PP_VALUE) / 1000000000UL == 2
-#    define BOOST_PP_SLOT_TEMP_10 2
-# elif (BOOST_PP_VALUE) / 1000000000UL == 3
-#    define BOOST_PP_SLOT_TEMP_10 3
-# elif (BOOST_PP_VALUE) / 1000000000UL == 4
-#    define BOOST_PP_SLOT_TEMP_10 4
-# elif (BOOST_PP_VALUE) / 1000000000UL == 5
-#    define BOOST_PP_SLOT_TEMP_10 5
-# elif (BOOST_PP_VALUE) / 1000000000UL == 6
-#    define BOOST_PP_SLOT_TEMP_10 6
-# elif (BOOST_PP_VALUE) / 1000000000UL == 7
-#    define BOOST_PP_SLOT_TEMP_10 7
-# elif (BOOST_PP_VALUE) / 1000000000UL == 8
-#    define BOOST_PP_SLOT_TEMP_10 8
-# elif (BOOST_PP_VALUE) / 1000000000UL == 9
-#    define BOOST_PP_SLOT_TEMP_10 9
-# endif
-#
-# if BOOST_PP_SLOT_OFFSET_10(BOOST_PP_VALUE) / 100000000UL == 0
-#    define BOOST_PP_SLOT_TEMP_9 0
-# elif BOOST_PP_SLOT_OFFSET_10(BOOST_PP_VALUE) / 100000000UL == 1
-#    define BOOST_PP_SLOT_TEMP_9 1
-# elif BOOST_PP_SLOT_OFFSET_10(BOOST_PP_VALUE) / 100000000UL == 2
-#    define BOOST_PP_SLOT_TEMP_9 2
-# elif BOOST_PP_SLOT_OFFSET_10(BOOST_PP_VALUE) / 100000000UL == 3
-#    define BOOST_PP_SLOT_TEMP_9 3
-# elif BOOST_PP_SLOT_OFFSET_10(BOOST_PP_VALUE) / 100000000UL == 4
-#    define BOOST_PP_SLOT_TEMP_9 4
-# elif BOOST_PP_SLOT_OFFSET_10(BOOST_PP_VALUE) / 100000000UL == 5
-#    define BOOST_PP_SLOT_TEMP_9 5
-# elif BOOST_PP_SLOT_OFFSET_10(BOOST_PP_VALUE) / 100000000UL == 6
-#    define BOOST_PP_SLOT_TEMP_9 6
-# elif BOOST_PP_SLOT_OFFSET_10(BOOST_PP_VALUE) / 100000000UL == 7
-#    define BOOST_PP_SLOT_TEMP_9 7
-# elif BOOST_PP_SLOT_OFFSET_10(BOOST_PP_VALUE) / 100000000UL == 8
-#    define BOOST_PP_SLOT_TEMP_9 8
-# elif BOOST_PP_SLOT_OFFSET_10(BOOST_PP_VALUE) / 100000000UL == 9
-#    define BOOST_PP_SLOT_TEMP_9 9
-# endif
-#
-# if BOOST_PP_SLOT_OFFSET_9(BOOST_PP_VALUE) / 10000000UL == 0
-#    define BOOST_PP_SLOT_TEMP_8 0
-# elif BOOST_PP_SLOT_OFFSET_9(BOOST_PP_VALUE) / 10000000UL == 1
-#    define BOOST_PP_SLOT_TEMP_8 1
-# elif BOOST_PP_SLOT_OFFSET_9(BOOST_PP_VALUE) / 10000000UL == 2
-#    define BOOST_PP_SLOT_TEMP_8 2
-# elif BOOST_PP_SLOT_OFFSET_9(BOOST_PP_VALUE) / 10000000UL == 3
-#    define BOOST_PP_SLOT_TEMP_8 3
-# elif BOOST_PP_SLOT_OFFSET_9(BOOST_PP_VALUE) / 10000000UL == 4
-#    define BOOST_PP_SLOT_TEMP_8 4
-# elif BOOST_PP_SLOT_OFFSET_9(BOOST_PP_VALUE) / 10000000UL == 5
-#    define BOOST_PP_SLOT_TEMP_8 5
-# elif BOOST_PP_SLOT_OFFSET_9(BOOST_PP_VALUE) / 10000000UL == 6
-#    define BOOST_PP_SLOT_TEMP_8 6
-# elif BOOST_PP_SLOT_OFFSET_9(BOOST_PP_VALUE) / 10000000UL == 7
-#    define BOOST_PP_SLOT_TEMP_8 7
-# elif BOOST_PP_SLOT_OFFSET_9(BOOST_PP_VALUE) / 10000000UL == 8
-#    define BOOST_PP_SLOT_TEMP_8 8
-# elif BOOST_PP_SLOT_OFFSET_9(BOOST_PP_VALUE) / 10000000UL == 9
-#    define BOOST_PP_SLOT_TEMP_8 9
-# endif
-#
-# if BOOST_PP_SLOT_OFFSET_8(BOOST_PP_VALUE) / 1000000UL == 0
-#    define BOOST_PP_SLOT_TEMP_7 0
-# elif BOOST_PP_SLOT_OFFSET_8(BOOST_PP_VALUE) / 1000000UL == 1
-#    define BOOST_PP_SLOT_TEMP_7 1
-# elif BOOST_PP_SLOT_OFFSET_8(BOOST_PP_VALUE) / 1000000UL == 2
-#    define BOOST_PP_SLOT_TEMP_7 2
-# elif BOOST_PP_SLOT_OFFSET_8(BOOST_PP_VALUE) / 1000000UL == 3
-#    define BOOST_PP_SLOT_TEMP_7 3
-# elif BOOST_PP_SLOT_OFFSET_8(BOOST_PP_VALUE) / 1000000UL == 4
-#    define BOOST_PP_SLOT_TEMP_7 4
-# elif BOOST_PP_SLOT_OFFSET_8(BOOST_PP_VALUE) / 1000000UL == 5
-#    define BOOST_PP_SLOT_TEMP_7 5
-# elif BOOST_PP_SLOT_OFFSET_8(BOOST_PP_VALUE) / 1000000UL == 6
-#    define BOOST_PP_SLOT_TEMP_7 6
-# elif BOOST_PP_SLOT_OFFSET_8(BOOST_PP_VALUE) / 1000000UL == 7
-#    define BOOST_PP_SLOT_TEMP_7 7
-# elif BOOST_PP_SLOT_OFFSET_8(BOOST_PP_VALUE) / 1000000UL == 8
-#    define BOOST_PP_SLOT_TEMP_7 8
-# elif BOOST_PP_SLOT_OFFSET_8(BOOST_PP_VALUE) / 1000000UL == 9
-#    define BOOST_PP_SLOT_TEMP_7 9
-# endif
-#
-# if BOOST_PP_SLOT_OFFSET_7(BOOST_PP_VALUE) / 100000UL == 0
-#    define BOOST_PP_SLOT_TEMP_6 0
-# elif BOOST_PP_SLOT_OFFSET_7(BOOST_PP_VALUE) / 100000UL == 1
-#    define BOOST_PP_SLOT_TEMP_6 1
-# elif BOOST_PP_SLOT_OFFSET_7(BOOST_PP_VALUE) / 100000UL == 2
-#    define BOOST_PP_SLOT_TEMP_6 2
-# elif BOOST_PP_SLOT_OFFSET_7(BOOST_PP_VALUE) / 100000UL == 3
-#    define BOOST_PP_SLOT_TEMP_6 3
-# elif BOOST_PP_SLOT_OFFSET_7(BOOST_PP_VALUE) / 100000UL == 4
-#    define BOOST_PP_SLOT_TEMP_6 4
-# elif BOOST_PP_SLOT_OFFSET_7(BOOST_PP_VALUE) / 100000UL == 5
-#    define BOOST_PP_SLOT_TEMP_6 5
-# elif BOOST_PP_SLOT_OFFSET_7(BOOST_PP_VALUE) / 100000UL == 6
-#    define BOOST_PP_SLOT_TEMP_6 6
-# elif BOOST_PP_SLOT_OFFSET_7(BOOST_PP_VALUE) / 100000UL == 7
-#    define BOOST_PP_SLOT_TEMP_6 7
-# elif BOOST_PP_SLOT_OFFSET_7(BOOST_PP_VALUE) / 100000UL == 8
-#    define BOOST_PP_SLOT_TEMP_6 8
-# elif BOOST_PP_SLOT_OFFSET_7(BOOST_PP_VALUE) / 100000UL == 9
-#    define BOOST_PP_SLOT_TEMP_6 9
-# endif
-#
-# if BOOST_PP_SLOT_OFFSET_6(BOOST_PP_VALUE) / 10000UL == 0
-#    define BOOST_PP_SLOT_TEMP_5 0
-# elif BOOST_PP_SLOT_OFFSET_6(BOOST_PP_VALUE) / 10000UL == 1
-#    define BOOST_PP_SLOT_TEMP_5 1
-# elif BOOST_PP_SLOT_OFFSET_6(BOOST_PP_VALUE) / 10000UL == 2
-#    define BOOST_PP_SLOT_TEMP_5 2
-# elif BOOST_PP_SLOT_OFFSET_6(BOOST_PP_VALUE) / 10000UL == 3
-#    define BOOST_PP_SLOT_TEMP_5 3
-# elif BOOST_PP_SLOT_OFFSET_6(BOOST_PP_VALUE) / 10000UL == 4
-#    define BOOST_PP_SLOT_TEMP_5 4
-# elif BOOST_PP_SLOT_OFFSET_6(BOOST_PP_VALUE) / 10000UL == 5
-#    define BOOST_PP_SLOT_TEMP_5 5
-# elif BOOST_PP_SLOT_OFFSET_6(BOOST_PP_VALUE) / 10000UL == 6
-#    define BOOST_PP_SLOT_TEMP_5 6
-# elif BOOST_PP_SLOT_OFFSET_6(BOOST_PP_VALUE) / 10000UL == 7
-#    define BOOST_PP_SLOT_TEMP_5 7
-# elif BOOST_PP_SLOT_OFFSET_6(BOOST_PP_VALUE) / 10000UL == 8
-#    define BOOST_PP_SLOT_TEMP_5 8
-# elif BOOST_PP_SLOT_OFFSET_6(BOOST_PP_VALUE) / 10000UL == 9
-#    define BOOST_PP_SLOT_TEMP_5 9
-# endif
-#
-# if BOOST_PP_SLOT_OFFSET_5(BOOST_PP_VALUE) / 1000UL == 0
-#    define BOOST_PP_SLOT_TEMP_4 0
-# elif BOOST_PP_SLOT_OFFSET_5(BOOST_PP_VALUE) / 1000UL == 1
-#    define BOOST_PP_SLOT_TEMP_4 1
-# elif BOOST_PP_SLOT_OFFSET_5(BOOST_PP_VALUE) / 1000UL == 2
-#    define BOOST_PP_SLOT_TEMP_4 2
-# elif BOOST_PP_SLOT_OFFSET_5(BOOST_PP_VALUE) / 1000UL == 3
-#    define BOOST_PP_SLOT_TEMP_4 3
-# elif BOOST_PP_SLOT_OFFSET_5(BOOST_PP_VALUE) / 1000UL == 4
-#    define BOOST_PP_SLOT_TEMP_4 4
-# elif BOOST_PP_SLOT_OFFSET_5(BOOST_PP_VALUE) / 1000UL == 5
-#    define BOOST_PP_SLOT_TEMP_4 5
-# elif BOOST_PP_SLOT_OFFSET_5(BOOST_PP_VALUE) / 1000UL == 6
-#    define BOOST_PP_SLOT_TEMP_4 6
-# elif BOOST_PP_SLOT_OFFSET_5(BOOST_PP_VALUE) / 1000UL == 7
-#    define BOOST_PP_SLOT_TEMP_4 7
-# elif BOOST_PP_SLOT_OFFSET_5(BOOST_PP_VALUE) / 1000UL == 8
-#    define BOOST_PP_SLOT_TEMP_4 8
-# elif BOOST_PP_SLOT_OFFSET_5(BOOST_PP_VALUE) / 1000UL == 9
-#    define BOOST_PP_SLOT_TEMP_4 9
-# endif
-#
-# if BOOST_PP_SLOT_OFFSET_4(BOOST_PP_VALUE) / 100UL == 0
-#    define BOOST_PP_SLOT_TEMP_3 0
-# elif BOOST_PP_SLOT_OFFSET_4(BOOST_PP_VALUE) / 100UL == 1
-#    define BOOST_PP_SLOT_TEMP_3 1
-# elif BOOST_PP_SLOT_OFFSET_4(BOOST_PP_VALUE) / 100UL == 2
-#    define BOOST_PP_SLOT_TEMP_3 2
-# elif BOOST_PP_SLOT_OFFSET_4(BOOST_PP_VALUE) / 100UL == 3
-#    define BOOST_PP_SLOT_TEMP_3 3
-# elif BOOST_PP_SLOT_OFFSET_4(BOOST_PP_VALUE) / 100UL == 4
-#    define BOOST_PP_SLOT_TEMP_3 4
-# elif BOOST_PP_SLOT_OFFSET_4(BOOST_PP_VALUE) / 100UL == 5
-#    define BOOST_PP_SLOT_TEMP_3 5
-# elif BOOST_PP_SLOT_OFFSET_4(BOOST_PP_VALUE) / 100UL == 6
-#    define BOOST_PP_SLOT_TEMP_3 6
-# elif BOOST_PP_SLOT_OFFSET_4(BOOST_PP_VALUE) / 100UL == 7
-#    define BOOST_PP_SLOT_TEMP_3 7
-# elif BOOST_PP_SLOT_OFFSET_4(BOOST_PP_VALUE) / 100UL == 8
-#    define BOOST_PP_SLOT_TEMP_3 8
-# elif BOOST_PP_SLOT_OFFSET_4(BOOST_PP_VALUE) / 100UL == 9
-#    define BOOST_PP_SLOT_TEMP_3 9
-# endif
-#
-# if BOOST_PP_SLOT_OFFSET_3(BOOST_PP_VALUE) / 10UL == 0
-#    define BOOST_PP_SLOT_TEMP_2 0
-# elif BOOST_PP_SLOT_OFFSET_3(BOOST_PP_VALUE) / 10UL == 1
-#    define BOOST_PP_SLOT_TEMP_2 1
-# elif BOOST_PP_SLOT_OFFSET_3(BOOST_PP_VALUE) / 10UL == 2
-#    define BOOST_PP_SLOT_TEMP_2 2
-# elif BOOST_PP_SLOT_OFFSET_3(BOOST_PP_VALUE) / 10UL == 3
-#    define BOOST_PP_SLOT_TEMP_2 3
-# elif BOOST_PP_SLOT_OFFSET_3(BOOST_PP_VALUE) / 10UL == 4
-#    define BOOST_PP_SLOT_TEMP_2 4
-# elif BOOST_PP_SLOT_OFFSET_3(BOOST_PP_VALUE) / 10UL == 5
-#    define BOOST_PP_SLOT_TEMP_2 5
-# elif BOOST_PP_SLOT_OFFSET_3(BOOST_PP_VALUE) / 10UL == 6
-#    define BOOST_PP_SLOT_TEMP_2 6
-# elif BOOST_PP_SLOT_OFFSET_3(BOOST_PP_VALUE) / 10UL == 7
-#    define BOOST_PP_SLOT_TEMP_2 7
-# elif BOOST_PP_SLOT_OFFSET_3(BOOST_PP_VALUE) / 10UL == 8
-#    define BOOST_PP_SLOT_TEMP_2 8
-# elif BOOST_PP_SLOT_OFFSET_3(BOOST_PP_VALUE) / 10UL == 9
-#    define BOOST_PP_SLOT_TEMP_2 9
-# endif
-#
-# if BOOST_PP_SLOT_OFFSET_2(BOOST_PP_VALUE) == 0
-#    define BOOST_PP_SLOT_TEMP_1 0
-# elif BOOST_PP_SLOT_OFFSET_2(BOOST_PP_VALUE) == 1
-#    define BOOST_PP_SLOT_TEMP_1 1
-# elif BOOST_PP_SLOT_OFFSET_2(BOOST_PP_VALUE) == 2
-#    define BOOST_PP_SLOT_TEMP_1 2
-# elif BOOST_PP_SLOT_OFFSET_2(BOOST_PP_VALUE) == 3
-#    define BOOST_PP_SLOT_TEMP_1 3
-# elif BOOST_PP_SLOT_OFFSET_2(BOOST_PP_VALUE) == 4
-#    define BOOST_PP_SLOT_TEMP_1 4
-# elif BOOST_PP_SLOT_OFFSET_2(BOOST_PP_VALUE) == 5
-#    define BOOST_PP_SLOT_TEMP_1 5
-# elif BOOST_PP_SLOT_OFFSET_2(BOOST_PP_VALUE) == 6
-#    define BOOST_PP_SLOT_TEMP_1 6
-# elif BOOST_PP_SLOT_OFFSET_2(BOOST_PP_VALUE) == 7
-#    define BOOST_PP_SLOT_TEMP_1 7
-# elif BOOST_PP_SLOT_OFFSET_2(BOOST_PP_VALUE) == 8
-#    define BOOST_PP_SLOT_TEMP_1 8
-# elif BOOST_PP_SLOT_OFFSET_2(BOOST_PP_VALUE) == 9
-#    define BOOST_PP_SLOT_TEMP_1 9
-# endif
-#
-# undef BOOST_PP_VALUE
diff --git a/boost/preprocessor/slot/detail/slot1.hpp b/boost/preprocessor/slot/detail/slot1.hpp
deleted file mode 100644
index b22748e..0000000
--- a/boost/preprocessor/slot/detail/slot1.hpp
+++ /dev/null
@@ -1,267 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# include <boost/preprocessor/slot/detail/shared.hpp>
-#
-# undef BOOST_PP_SLOT_1
-#
-# undef BOOST_PP_SLOT_1_DIGIT_1
-# undef BOOST_PP_SLOT_1_DIGIT_2
-# undef BOOST_PP_SLOT_1_DIGIT_3
-# undef BOOST_PP_SLOT_1_DIGIT_4
-# undef BOOST_PP_SLOT_1_DIGIT_5
-# undef BOOST_PP_SLOT_1_DIGIT_6
-# undef BOOST_PP_SLOT_1_DIGIT_7
-# undef BOOST_PP_SLOT_1_DIGIT_8
-# undef BOOST_PP_SLOT_1_DIGIT_9
-# undef BOOST_PP_SLOT_1_DIGIT_10
-#
-# if BOOST_PP_SLOT_TEMP_10 == 0
-#    define BOOST_PP_SLOT_1_DIGIT_10 0
-# elif BOOST_PP_SLOT_TEMP_10 == 1
-#    define BOOST_PP_SLOT_1_DIGIT_10 1
-# elif BOOST_PP_SLOT_TEMP_10 == 2
-#    define BOOST_PP_SLOT_1_DIGIT_10 2
-# elif BOOST_PP_SLOT_TEMP_10 == 3
-#    define BOOST_PP_SLOT_1_DIGIT_10 3
-# elif BOOST_PP_SLOT_TEMP_10 == 4
-#    define BOOST_PP_SLOT_1_DIGIT_10 4
-# elif BOOST_PP_SLOT_TEMP_10 == 5
-#    define BOOST_PP_SLOT_1_DIGIT_10 5
-# elif BOOST_PP_SLOT_TEMP_10 == 6
-#    define BOOST_PP_SLOT_1_DIGIT_10 6
-# elif BOOST_PP_SLOT_TEMP_10 == 7
-#    define BOOST_PP_SLOT_1_DIGIT_10 7
-# elif BOOST_PP_SLOT_TEMP_10 == 8
-#    define BOOST_PP_SLOT_1_DIGIT_10 8
-# elif BOOST_PP_SLOT_TEMP_10 == 9
-#    define BOOST_PP_SLOT_1_DIGIT_10 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_9 == 0
-#    define BOOST_PP_SLOT_1_DIGIT_9 0
-# elif BOOST_PP_SLOT_TEMP_9 == 1
-#    define BOOST_PP_SLOT_1_DIGIT_9 1
-# elif BOOST_PP_SLOT_TEMP_9 == 2
-#    define BOOST_PP_SLOT_1_DIGIT_9 2
-# elif BOOST_PP_SLOT_TEMP_9 == 3
-#    define BOOST_PP_SLOT_1_DIGIT_9 3
-# elif BOOST_PP_SLOT_TEMP_9 == 4
-#    define BOOST_PP_SLOT_1_DIGIT_9 4
-# elif BOOST_PP_SLOT_TEMP_9 == 5
-#    define BOOST_PP_SLOT_1_DIGIT_9 5
-# elif BOOST_PP_SLOT_TEMP_9 == 6
-#    define BOOST_PP_SLOT_1_DIGIT_9 6
-# elif BOOST_PP_SLOT_TEMP_9 == 7
-#    define BOOST_PP_SLOT_1_DIGIT_9 7
-# elif BOOST_PP_SLOT_TEMP_9 == 8
-#    define BOOST_PP_SLOT_1_DIGIT_9 8
-# elif BOOST_PP_SLOT_TEMP_9 == 9
-#    define BOOST_PP_SLOT_1_DIGIT_9 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_8 == 0
-#    define BOOST_PP_SLOT_1_DIGIT_8 0
-# elif BOOST_PP_SLOT_TEMP_8 == 1
-#    define BOOST_PP_SLOT_1_DIGIT_8 1
-# elif BOOST_PP_SLOT_TEMP_8 == 2
-#    define BOOST_PP_SLOT_1_DIGIT_8 2
-# elif BOOST_PP_SLOT_TEMP_8 == 3
-#    define BOOST_PP_SLOT_1_DIGIT_8 3
-# elif BOOST_PP_SLOT_TEMP_8 == 4
-#    define BOOST_PP_SLOT_1_DIGIT_8 4
-# elif BOOST_PP_SLOT_TEMP_8 == 5
-#    define BOOST_PP_SLOT_1_DIGIT_8 5
-# elif BOOST_PP_SLOT_TEMP_8 == 6
-#    define BOOST_PP_SLOT_1_DIGIT_8 6
-# elif BOOST_PP_SLOT_TEMP_8 == 7
-#    define BOOST_PP_SLOT_1_DIGIT_8 7
-# elif BOOST_PP_SLOT_TEMP_8 == 8
-#    define BOOST_PP_SLOT_1_DIGIT_8 8
-# elif BOOST_PP_SLOT_TEMP_8 == 9
-#    define BOOST_PP_SLOT_1_DIGIT_8 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_7 == 0
-#    define BOOST_PP_SLOT_1_DIGIT_7 0
-# elif BOOST_PP_SLOT_TEMP_7 == 1
-#    define BOOST_PP_SLOT_1_DIGIT_7 1
-# elif BOOST_PP_SLOT_TEMP_7 == 2
-#    define BOOST_PP_SLOT_1_DIGIT_7 2
-# elif BOOST_PP_SLOT_TEMP_7 == 3
-#    define BOOST_PP_SLOT_1_DIGIT_7 3
-# elif BOOST_PP_SLOT_TEMP_7 == 4
-#    define BOOST_PP_SLOT_1_DIGIT_7 4
-# elif BOOST_PP_SLOT_TEMP_7 == 5
-#    define BOOST_PP_SLOT_1_DIGIT_7 5
-# elif BOOST_PP_SLOT_TEMP_7 == 6
-#    define BOOST_PP_SLOT_1_DIGIT_7 6
-# elif BOOST_PP_SLOT_TEMP_7 == 7
-#    define BOOST_PP_SLOT_1_DIGIT_7 7
-# elif BOOST_PP_SLOT_TEMP_7 == 8
-#    define BOOST_PP_SLOT_1_DIGIT_7 8
-# elif BOOST_PP_SLOT_TEMP_7 == 9
-#    define BOOST_PP_SLOT_1_DIGIT_7 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_6 == 0
-#    define BOOST_PP_SLOT_1_DIGIT_6 0
-# elif BOOST_PP_SLOT_TEMP_6 == 1
-#    define BOOST_PP_SLOT_1_DIGIT_6 1
-# elif BOOST_PP_SLOT_TEMP_6 == 2
-#    define BOOST_PP_SLOT_1_DIGIT_6 2
-# elif BOOST_PP_SLOT_TEMP_6 == 3
-#    define BOOST_PP_SLOT_1_DIGIT_6 3
-# elif BOOST_PP_SLOT_TEMP_6 == 4
-#    define BOOST_PP_SLOT_1_DIGIT_6 4
-# elif BOOST_PP_SLOT_TEMP_6 == 5
-#    define BOOST_PP_SLOT_1_DIGIT_6 5
-# elif BOOST_PP_SLOT_TEMP_6 == 6
-#    define BOOST_PP_SLOT_1_DIGIT_6 6
-# elif BOOST_PP_SLOT_TEMP_6 == 7
-#    define BOOST_PP_SLOT_1_DIGIT_6 7
-# elif BOOST_PP_SLOT_TEMP_6 == 8
-#    define BOOST_PP_SLOT_1_DIGIT_6 8
-# elif BOOST_PP_SLOT_TEMP_6 == 9
-#    define BOOST_PP_SLOT_1_DIGIT_6 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_5 == 0
-#    define BOOST_PP_SLOT_1_DIGIT_5 0
-# elif BOOST_PP_SLOT_TEMP_5 == 1
-#    define BOOST_PP_SLOT_1_DIGIT_5 1
-# elif BOOST_PP_SLOT_TEMP_5 == 2
-#    define BOOST_PP_SLOT_1_DIGIT_5 2
-# elif BOOST_PP_SLOT_TEMP_5 == 3
-#    define BOOST_PP_SLOT_1_DIGIT_5 3
-# elif BOOST_PP_SLOT_TEMP_5 == 4
-#    define BOOST_PP_SLOT_1_DIGIT_5 4
-# elif BOOST_PP_SLOT_TEMP_5 == 5
-#    define BOOST_PP_SLOT_1_DIGIT_5 5
-# elif BOOST_PP_SLOT_TEMP_5 == 6
-#    define BOOST_PP_SLOT_1_DIGIT_5 6
-# elif BOOST_PP_SLOT_TEMP_5 == 7
-#    define BOOST_PP_SLOT_1_DIGIT_5 7
-# elif BOOST_PP_SLOT_TEMP_5 == 8
-#    define BOOST_PP_SLOT_1_DIGIT_5 8
-# elif BOOST_PP_SLOT_TEMP_5 == 9
-#    define BOOST_PP_SLOT_1_DIGIT_5 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_4 == 0
-#    define BOOST_PP_SLOT_1_DIGIT_4 0
-# elif BOOST_PP_SLOT_TEMP_4 == 1
-#    define BOOST_PP_SLOT_1_DIGIT_4 1
-# elif BOOST_PP_SLOT_TEMP_4 == 2
-#    define BOOST_PP_SLOT_1_DIGIT_4 2
-# elif BOOST_PP_SLOT_TEMP_4 == 3
-#    define BOOST_PP_SLOT_1_DIGIT_4 3
-# elif BOOST_PP_SLOT_TEMP_4 == 4
-#    define BOOST_PP_SLOT_1_DIGIT_4 4
-# elif BOOST_PP_SLOT_TEMP_4 == 5
-#    define BOOST_PP_SLOT_1_DIGIT_4 5
-# elif BOOST_PP_SLOT_TEMP_4 == 6
-#    define BOOST_PP_SLOT_1_DIGIT_4 6
-# elif BOOST_PP_SLOT_TEMP_4 == 7
-#    define BOOST_PP_SLOT_1_DIGIT_4 7
-# elif BOOST_PP_SLOT_TEMP_4 == 8
-#    define BOOST_PP_SLOT_1_DIGIT_4 8
-# elif BOOST_PP_SLOT_TEMP_4 == 9
-#    define BOOST_PP_SLOT_1_DIGIT_4 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_3 == 0
-#    define BOOST_PP_SLOT_1_DIGIT_3 0
-# elif BOOST_PP_SLOT_TEMP_3 == 1
-#    define BOOST_PP_SLOT_1_DIGIT_3 1
-# elif BOOST_PP_SLOT_TEMP_3 == 2
-#    define BOOST_PP_SLOT_1_DIGIT_3 2
-# elif BOOST_PP_SLOT_TEMP_3 == 3
-#    define BOOST_PP_SLOT_1_DIGIT_3 3
-# elif BOOST_PP_SLOT_TEMP_3 == 4
-#    define BOOST_PP_SLOT_1_DIGIT_3 4
-# elif BOOST_PP_SLOT_TEMP_3 == 5
-#    define BOOST_PP_SLOT_1_DIGIT_3 5
-# elif BOOST_PP_SLOT_TEMP_3 == 6
-#    define BOOST_PP_SLOT_1_DIGIT_3 6
-# elif BOOST_PP_SLOT_TEMP_3 == 7
-#    define BOOST_PP_SLOT_1_DIGIT_3 7
-# elif BOOST_PP_SLOT_TEMP_3 == 8
-#    define BOOST_PP_SLOT_1_DIGIT_3 8
-# elif BOOST_PP_SLOT_TEMP_3 == 9
-#    define BOOST_PP_SLOT_1_DIGIT_3 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_2 == 0
-#    define BOOST_PP_SLOT_1_DIGIT_2 0
-# elif BOOST_PP_SLOT_TEMP_2 == 1
-#    define BOOST_PP_SLOT_1_DIGIT_2 1
-# elif BOOST_PP_SLOT_TEMP_2 == 2
-#    define BOOST_PP_SLOT_1_DIGIT_2 2
-# elif BOOST_PP_SLOT_TEMP_2 == 3
-#    define BOOST_PP_SLOT_1_DIGIT_2 3
-# elif BOOST_PP_SLOT_TEMP_2 == 4
-#    define BOOST_PP_SLOT_1_DIGIT_2 4
-# elif BOOST_PP_SLOT_TEMP_2 == 5
-#    define BOOST_PP_SLOT_1_DIGIT_2 5
-# elif BOOST_PP_SLOT_TEMP_2 == 6
-#    define BOOST_PP_SLOT_1_DIGIT_2 6
-# elif BOOST_PP_SLOT_TEMP_2 == 7
-#    define BOOST_PP_SLOT_1_DIGIT_2 7
-# elif BOOST_PP_SLOT_TEMP_2 == 8
-#    define BOOST_PP_SLOT_1_DIGIT_2 8
-# elif BOOST_PP_SLOT_TEMP_2 == 9
-#    define BOOST_PP_SLOT_1_DIGIT_2 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_1 == 0
-#    define BOOST_PP_SLOT_1_DIGIT_1 0
-# elif BOOST_PP_SLOT_TEMP_1 == 1
-#    define BOOST_PP_SLOT_1_DIGIT_1 1
-# elif BOOST_PP_SLOT_TEMP_1 == 2
-#    define BOOST_PP_SLOT_1_DIGIT_1 2
-# elif BOOST_PP_SLOT_TEMP_1 == 3
-#    define BOOST_PP_SLOT_1_DIGIT_1 3
-# elif BOOST_PP_SLOT_TEMP_1 == 4
-#    define BOOST_PP_SLOT_1_DIGIT_1 4
-# elif BOOST_PP_SLOT_TEMP_1 == 5
-#    define BOOST_PP_SLOT_1_DIGIT_1 5
-# elif BOOST_PP_SLOT_TEMP_1 == 6
-#    define BOOST_PP_SLOT_1_DIGIT_1 6
-# elif BOOST_PP_SLOT_TEMP_1 == 7
-#    define BOOST_PP_SLOT_1_DIGIT_1 7
-# elif BOOST_PP_SLOT_TEMP_1 == 8
-#    define BOOST_PP_SLOT_1_DIGIT_1 8
-# elif BOOST_PP_SLOT_TEMP_1 == 9
-#    define BOOST_PP_SLOT_1_DIGIT_1 9
-# endif
-#
-# if BOOST_PP_SLOT_1_DIGIT_10
-#    define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_10(BOOST_PP_SLOT_1_DIGIT_10, BOOST_PP_SLOT_1_DIGIT_9, BOOST_PP_SLOT_1_DIGIT_8, BOOST_PP_SLOT_1_DIGIT_7, BOOST_PP_SLOT_1_DIGIT_6, BOOST_PP_SLOT_1_DIGIT_5, BOOST_PP_SLOT_1_DIGIT_4, BOOST_PP_SLOT_1_DIGIT_3, BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1)
-# elif BOOST_PP_SLOT_1_DIGIT_9
-#    define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_9(BOOST_PP_SLOT_1_DIGIT_9, BOOST_PP_SLOT_1_DIGIT_8, BOOST_PP_SLOT_1_DIGIT_7, BOOST_PP_SLOT_1_DIGIT_6, BOOST_PP_SLOT_1_DIGIT_5, BOOST_PP_SLOT_1_DIGIT_4, BOOST_PP_SLOT_1_DIGIT_3, BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1)
-# elif BOOST_PP_SLOT_1_DIGIT_8
-#    define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_8(BOOST_PP_SLOT_1_DIGIT_8, BOOST_PP_SLOT_1_DIGIT_7, BOOST_PP_SLOT_1_DIGIT_6, BOOST_PP_SLOT_1_DIGIT_5, BOOST_PP_SLOT_1_DIGIT_4, BOOST_PP_SLOT_1_DIGIT_3, BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1)
-# elif BOOST_PP_SLOT_1_DIGIT_7
-#    define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_7(BOOST_PP_SLOT_1_DIGIT_7, BOOST_PP_SLOT_1_DIGIT_6, BOOST_PP_SLOT_1_DIGIT_5, BOOST_PP_SLOT_1_DIGIT_4, BOOST_PP_SLOT_1_DIGIT_3, BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1)
-# elif BOOST_PP_SLOT_1_DIGIT_6
-#    define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_6(BOOST_PP_SLOT_1_DIGIT_6, BOOST_PP_SLOT_1_DIGIT_5, BOOST_PP_SLOT_1_DIGIT_4, BOOST_PP_SLOT_1_DIGIT_3, BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1)
-# elif BOOST_PP_SLOT_1_DIGIT_5
-#    define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_5(BOOST_PP_SLOT_1_DIGIT_5, BOOST_PP_SLOT_1_DIGIT_4, BOOST_PP_SLOT_1_DIGIT_3, BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1)
-# elif BOOST_PP_SLOT_1_DIGIT_4
-#    define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_4(BOOST_PP_SLOT_1_DIGIT_4, BOOST_PP_SLOT_1_DIGIT_3, BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1)
-# elif BOOST_PP_SLOT_1_DIGIT_3
-#    define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_3(BOOST_PP_SLOT_1_DIGIT_3, BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1)
-# elif BOOST_PP_SLOT_1_DIGIT_2
-#    define BOOST_PP_SLOT_1() BOOST_PP_SLOT_CC_2(BOOST_PP_SLOT_1_DIGIT_2, BOOST_PP_SLOT_1_DIGIT_1)
-# else
-#    define BOOST_PP_SLOT_1() BOOST_PP_SLOT_1_DIGIT_1
-# endif
diff --git a/boost/preprocessor/slot/detail/slot2.hpp b/boost/preprocessor/slot/detail/slot2.hpp
deleted file mode 100644
index 5d5258c..0000000
--- a/boost/preprocessor/slot/detail/slot2.hpp
+++ /dev/null
@@ -1,267 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# include <boost/preprocessor/slot/detail/shared.hpp>
-#
-# undef BOOST_PP_SLOT_2
-#
-# undef BOOST_PP_SLOT_2_DIGIT_1
-# undef BOOST_PP_SLOT_2_DIGIT_2
-# undef BOOST_PP_SLOT_2_DIGIT_3
-# undef BOOST_PP_SLOT_2_DIGIT_4
-# undef BOOST_PP_SLOT_2_DIGIT_5
-# undef BOOST_PP_SLOT_2_DIGIT_6
-# undef BOOST_PP_SLOT_2_DIGIT_7
-# undef BOOST_PP_SLOT_2_DIGIT_8
-# undef BOOST_PP_SLOT_2_DIGIT_9
-# undef BOOST_PP_SLOT_2_DIGIT_10
-#
-# if BOOST_PP_SLOT_TEMP_10 == 0
-#    define BOOST_PP_SLOT_2_DIGIT_10 0
-# elif BOOST_PP_SLOT_TEMP_10 == 1
-#    define BOOST_PP_SLOT_2_DIGIT_10 1
-# elif BOOST_PP_SLOT_TEMP_10 == 2
-#    define BOOST_PP_SLOT_2_DIGIT_10 2
-# elif BOOST_PP_SLOT_TEMP_10 == 3
-#    define BOOST_PP_SLOT_2_DIGIT_10 3
-# elif BOOST_PP_SLOT_TEMP_10 == 4
-#    define BOOST_PP_SLOT_2_DIGIT_10 4
-# elif BOOST_PP_SLOT_TEMP_10 == 5
-#    define BOOST_PP_SLOT_2_DIGIT_10 5
-# elif BOOST_PP_SLOT_TEMP_10 == 6
-#    define BOOST_PP_SLOT_2_DIGIT_10 6
-# elif BOOST_PP_SLOT_TEMP_10 == 7
-#    define BOOST_PP_SLOT_2_DIGIT_10 7
-# elif BOOST_PP_SLOT_TEMP_10 == 8
-#    define BOOST_PP_SLOT_2_DIGIT_10 8
-# elif BOOST_PP_SLOT_TEMP_10 == 9
-#    define BOOST_PP_SLOT_2_DIGIT_10 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_9 == 0
-#    define BOOST_PP_SLOT_2_DIGIT_9 0
-# elif BOOST_PP_SLOT_TEMP_9 == 1
-#    define BOOST_PP_SLOT_2_DIGIT_9 1
-# elif BOOST_PP_SLOT_TEMP_9 == 2
-#    define BOOST_PP_SLOT_2_DIGIT_9 2
-# elif BOOST_PP_SLOT_TEMP_9 == 3
-#    define BOOST_PP_SLOT_2_DIGIT_9 3
-# elif BOOST_PP_SLOT_TEMP_9 == 4
-#    define BOOST_PP_SLOT_2_DIGIT_9 4
-# elif BOOST_PP_SLOT_TEMP_9 == 5
-#    define BOOST_PP_SLOT_2_DIGIT_9 5
-# elif BOOST_PP_SLOT_TEMP_9 == 6
-#    define BOOST_PP_SLOT_2_DIGIT_9 6
-# elif BOOST_PP_SLOT_TEMP_9 == 7
-#    define BOOST_PP_SLOT_2_DIGIT_9 7
-# elif BOOST_PP_SLOT_TEMP_9 == 8
-#    define BOOST_PP_SLOT_2_DIGIT_9 8
-# elif BOOST_PP_SLOT_TEMP_9 == 9
-#    define BOOST_PP_SLOT_2_DIGIT_9 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_8 == 0
-#    define BOOST_PP_SLOT_2_DIGIT_8 0
-# elif BOOST_PP_SLOT_TEMP_8 == 1
-#    define BOOST_PP_SLOT_2_DIGIT_8 1
-# elif BOOST_PP_SLOT_TEMP_8 == 2
-#    define BOOST_PP_SLOT_2_DIGIT_8 2
-# elif BOOST_PP_SLOT_TEMP_8 == 3
-#    define BOOST_PP_SLOT_2_DIGIT_8 3
-# elif BOOST_PP_SLOT_TEMP_8 == 4
-#    define BOOST_PP_SLOT_2_DIGIT_8 4
-# elif BOOST_PP_SLOT_TEMP_8 == 5
-#    define BOOST_PP_SLOT_2_DIGIT_8 5
-# elif BOOST_PP_SLOT_TEMP_8 == 6
-#    define BOOST_PP_SLOT_2_DIGIT_8 6
-# elif BOOST_PP_SLOT_TEMP_8 == 7
-#    define BOOST_PP_SLOT_2_DIGIT_8 7
-# elif BOOST_PP_SLOT_TEMP_8 == 8
-#    define BOOST_PP_SLOT_2_DIGIT_8 8
-# elif BOOST_PP_SLOT_TEMP_8 == 9
-#    define BOOST_PP_SLOT_2_DIGIT_8 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_7 == 0
-#    define BOOST_PP_SLOT_2_DIGIT_7 0
-# elif BOOST_PP_SLOT_TEMP_7 == 1
-#    define BOOST_PP_SLOT_2_DIGIT_7 1
-# elif BOOST_PP_SLOT_TEMP_7 == 2
-#    define BOOST_PP_SLOT_2_DIGIT_7 2
-# elif BOOST_PP_SLOT_TEMP_7 == 3
-#    define BOOST_PP_SLOT_2_DIGIT_7 3
-# elif BOOST_PP_SLOT_TEMP_7 == 4
-#    define BOOST_PP_SLOT_2_DIGIT_7 4
-# elif BOOST_PP_SLOT_TEMP_7 == 5
-#    define BOOST_PP_SLOT_2_DIGIT_7 5
-# elif BOOST_PP_SLOT_TEMP_7 == 6
-#    define BOOST_PP_SLOT_2_DIGIT_7 6
-# elif BOOST_PP_SLOT_TEMP_7 == 7
-#    define BOOST_PP_SLOT_2_DIGIT_7 7
-# elif BOOST_PP_SLOT_TEMP_7 == 8
-#    define BOOST_PP_SLOT_2_DIGIT_7 8
-# elif BOOST_PP_SLOT_TEMP_7 == 9
-#    define BOOST_PP_SLOT_2_DIGIT_7 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_6 == 0
-#    define BOOST_PP_SLOT_2_DIGIT_6 0
-# elif BOOST_PP_SLOT_TEMP_6 == 1
-#    define BOOST_PP_SLOT_2_DIGIT_6 1
-# elif BOOST_PP_SLOT_TEMP_6 == 2
-#    define BOOST_PP_SLOT_2_DIGIT_6 2
-# elif BOOST_PP_SLOT_TEMP_6 == 3
-#    define BOOST_PP_SLOT_2_DIGIT_6 3
-# elif BOOST_PP_SLOT_TEMP_6 == 4
-#    define BOOST_PP_SLOT_2_DIGIT_6 4
-# elif BOOST_PP_SLOT_TEMP_6 == 5
-#    define BOOST_PP_SLOT_2_DIGIT_6 5
-# elif BOOST_PP_SLOT_TEMP_6 == 6
-#    define BOOST_PP_SLOT_2_DIGIT_6 6
-# elif BOOST_PP_SLOT_TEMP_6 == 7
-#    define BOOST_PP_SLOT_2_DIGIT_6 7
-# elif BOOST_PP_SLOT_TEMP_6 == 8
-#    define BOOST_PP_SLOT_2_DIGIT_6 8
-# elif BOOST_PP_SLOT_TEMP_6 == 9
-#    define BOOST_PP_SLOT_2_DIGIT_6 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_5 == 0
-#    define BOOST_PP_SLOT_2_DIGIT_5 0
-# elif BOOST_PP_SLOT_TEMP_5 == 1
-#    define BOOST_PP_SLOT_2_DIGIT_5 1
-# elif BOOST_PP_SLOT_TEMP_5 == 2
-#    define BOOST_PP_SLOT_2_DIGIT_5 2
-# elif BOOST_PP_SLOT_TEMP_5 == 3
-#    define BOOST_PP_SLOT_2_DIGIT_5 3
-# elif BOOST_PP_SLOT_TEMP_5 == 4
-#    define BOOST_PP_SLOT_2_DIGIT_5 4
-# elif BOOST_PP_SLOT_TEMP_5 == 5
-#    define BOOST_PP_SLOT_2_DIGIT_5 5
-# elif BOOST_PP_SLOT_TEMP_5 == 6
-#    define BOOST_PP_SLOT_2_DIGIT_5 6
-# elif BOOST_PP_SLOT_TEMP_5 == 7
-#    define BOOST_PP_SLOT_2_DIGIT_5 7
-# elif BOOST_PP_SLOT_TEMP_5 == 8
-#    define BOOST_PP_SLOT_2_DIGIT_5 8
-# elif BOOST_PP_SLOT_TEMP_5 == 9
-#    define BOOST_PP_SLOT_2_DIGIT_5 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_4 == 0
-#    define BOOST_PP_SLOT_2_DIGIT_4 0
-# elif BOOST_PP_SLOT_TEMP_4 == 1
-#    define BOOST_PP_SLOT_2_DIGIT_4 1
-# elif BOOST_PP_SLOT_TEMP_4 == 2
-#    define BOOST_PP_SLOT_2_DIGIT_4 2
-# elif BOOST_PP_SLOT_TEMP_4 == 3
-#    define BOOST_PP_SLOT_2_DIGIT_4 3
-# elif BOOST_PP_SLOT_TEMP_4 == 4
-#    define BOOST_PP_SLOT_2_DIGIT_4 4
-# elif BOOST_PP_SLOT_TEMP_4 == 5
-#    define BOOST_PP_SLOT_2_DIGIT_4 5
-# elif BOOST_PP_SLOT_TEMP_4 == 6
-#    define BOOST_PP_SLOT_2_DIGIT_4 6
-# elif BOOST_PP_SLOT_TEMP_4 == 7
-#    define BOOST_PP_SLOT_2_DIGIT_4 7
-# elif BOOST_PP_SLOT_TEMP_4 == 8
-#    define BOOST_PP_SLOT_2_DIGIT_4 8
-# elif BOOST_PP_SLOT_TEMP_4 == 9
-#    define BOOST_PP_SLOT_2_DIGIT_4 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_3 == 0
-#    define BOOST_PP_SLOT_2_DIGIT_3 0
-# elif BOOST_PP_SLOT_TEMP_3 == 1
-#    define BOOST_PP_SLOT_2_DIGIT_3 1
-# elif BOOST_PP_SLOT_TEMP_3 == 2
-#    define BOOST_PP_SLOT_2_DIGIT_3 2
-# elif BOOST_PP_SLOT_TEMP_3 == 3
-#    define BOOST_PP_SLOT_2_DIGIT_3 3
-# elif BOOST_PP_SLOT_TEMP_3 == 4
-#    define BOOST_PP_SLOT_2_DIGIT_3 4
-# elif BOOST_PP_SLOT_TEMP_3 == 5
-#    define BOOST_PP_SLOT_2_DIGIT_3 5
-# elif BOOST_PP_SLOT_TEMP_3 == 6
-#    define BOOST_PP_SLOT_2_DIGIT_3 6
-# elif BOOST_PP_SLOT_TEMP_3 == 7
-#    define BOOST_PP_SLOT_2_DIGIT_3 7
-# elif BOOST_PP_SLOT_TEMP_3 == 8
-#    define BOOST_PP_SLOT_2_DIGIT_3 8
-# elif BOOST_PP_SLOT_TEMP_3 == 9
-#    define BOOST_PP_SLOT_2_DIGIT_3 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_2 == 0
-#    define BOOST_PP_SLOT_2_DIGIT_2 0
-# elif BOOST_PP_SLOT_TEMP_2 == 1
-#    define BOOST_PP_SLOT_2_DIGIT_2 1
-# elif BOOST_PP_SLOT_TEMP_2 == 2
-#    define BOOST_PP_SLOT_2_DIGIT_2 2
-# elif BOOST_PP_SLOT_TEMP_2 == 3
-#    define BOOST_PP_SLOT_2_DIGIT_2 3
-# elif BOOST_PP_SLOT_TEMP_2 == 4
-#    define BOOST_PP_SLOT_2_DIGIT_2 4
-# elif BOOST_PP_SLOT_TEMP_2 == 5
-#    define BOOST_PP_SLOT_2_DIGIT_2 5
-# elif BOOST_PP_SLOT_TEMP_2 == 6
-#    define BOOST_PP_SLOT_2_DIGIT_2 6
-# elif BOOST_PP_SLOT_TEMP_2 == 7
-#    define BOOST_PP_SLOT_2_DIGIT_2 7
-# elif BOOST_PP_SLOT_TEMP_2 == 8
-#    define BOOST_PP_SLOT_2_DIGIT_2 8
-# elif BOOST_PP_SLOT_TEMP_2 == 9
-#    define BOOST_PP_SLOT_2_DIGIT_2 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_1 == 0
-#    define BOOST_PP_SLOT_2_DIGIT_1 0
-# elif BOOST_PP_SLOT_TEMP_1 == 1
-#    define BOOST_PP_SLOT_2_DIGIT_1 1
-# elif BOOST_PP_SLOT_TEMP_1 == 2
-#    define BOOST_PP_SLOT_2_DIGIT_1 2
-# elif BOOST_PP_SLOT_TEMP_1 == 3
-#    define BOOST_PP_SLOT_2_DIGIT_1 3
-# elif BOOST_PP_SLOT_TEMP_1 == 4
-#    define BOOST_PP_SLOT_2_DIGIT_1 4
-# elif BOOST_PP_SLOT_TEMP_1 == 5
-#    define BOOST_PP_SLOT_2_DIGIT_1 5
-# elif BOOST_PP_SLOT_TEMP_1 == 6
-#    define BOOST_PP_SLOT_2_DIGIT_1 6
-# elif BOOST_PP_SLOT_TEMP_1 == 7
-#    define BOOST_PP_SLOT_2_DIGIT_1 7
-# elif BOOST_PP_SLOT_TEMP_1 == 8
-#    define BOOST_PP_SLOT_2_DIGIT_1 8
-# elif BOOST_PP_SLOT_TEMP_1 == 9
-#    define BOOST_PP_SLOT_2_DIGIT_1 9
-# endif
-#
-# if BOOST_PP_SLOT_2_DIGIT_10
-#    define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_10(BOOST_PP_SLOT_2_DIGIT_10, BOOST_PP_SLOT_2_DIGIT_9, BOOST_PP_SLOT_2_DIGIT_8, BOOST_PP_SLOT_2_DIGIT_7, BOOST_PP_SLOT_2_DIGIT_6, BOOST_PP_SLOT_2_DIGIT_5, BOOST_PP_SLOT_2_DIGIT_4, BOOST_PP_SLOT_2_DIGIT_3, BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1)
-# elif BOOST_PP_SLOT_2_DIGIT_9
-#    define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_9(BOOST_PP_SLOT_2_DIGIT_9, BOOST_PP_SLOT_2_DIGIT_8, BOOST_PP_SLOT_2_DIGIT_7, BOOST_PP_SLOT_2_DIGIT_6, BOOST_PP_SLOT_2_DIGIT_5, BOOST_PP_SLOT_2_DIGIT_4, BOOST_PP_SLOT_2_DIGIT_3, BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1)
-# elif BOOST_PP_SLOT_2_DIGIT_8
-#    define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_8(BOOST_PP_SLOT_2_DIGIT_8, BOOST_PP_SLOT_2_DIGIT_7, BOOST_PP_SLOT_2_DIGIT_6, BOOST_PP_SLOT_2_DIGIT_5, BOOST_PP_SLOT_2_DIGIT_4, BOOST_PP_SLOT_2_DIGIT_3, BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1)
-# elif BOOST_PP_SLOT_2_DIGIT_7
-#    define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_7(BOOST_PP_SLOT_2_DIGIT_7, BOOST_PP_SLOT_2_DIGIT_6, BOOST_PP_SLOT_2_DIGIT_5, BOOST_PP_SLOT_2_DIGIT_4, BOOST_PP_SLOT_2_DIGIT_3, BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1)
-# elif BOOST_PP_SLOT_2_DIGIT_6
-#    define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_6(BOOST_PP_SLOT_2_DIGIT_6, BOOST_PP_SLOT_2_DIGIT_5, BOOST_PP_SLOT_2_DIGIT_4, BOOST_PP_SLOT_2_DIGIT_3, BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1)
-# elif BOOST_PP_SLOT_2_DIGIT_5
-#    define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_5(BOOST_PP_SLOT_2_DIGIT_5, BOOST_PP_SLOT_2_DIGIT_4, BOOST_PP_SLOT_2_DIGIT_3, BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1)
-# elif BOOST_PP_SLOT_2_DIGIT_4
-#    define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_4(BOOST_PP_SLOT_2_DIGIT_4, BOOST_PP_SLOT_2_DIGIT_3, BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1)
-# elif BOOST_PP_SLOT_2_DIGIT_3
-#    define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_3(BOOST_PP_SLOT_2_DIGIT_3, BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1)
-# elif BOOST_PP_SLOT_2_DIGIT_2
-#    define BOOST_PP_SLOT_2() BOOST_PP_SLOT_CC_2(BOOST_PP_SLOT_2_DIGIT_2, BOOST_PP_SLOT_2_DIGIT_1)
-# else
-#    define BOOST_PP_SLOT_2() BOOST_PP_SLOT_2_DIGIT_1
-# endif
diff --git a/boost/preprocessor/slot/detail/slot3.hpp b/boost/preprocessor/slot/detail/slot3.hpp
deleted file mode 100644
index 005cf21..0000000
--- a/boost/preprocessor/slot/detail/slot3.hpp
+++ /dev/null
@@ -1,267 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# include <boost/preprocessor/slot/detail/shared.hpp>
-#
-# undef BOOST_PP_SLOT_3
-#
-# undef BOOST_PP_SLOT_3_DIGIT_1
-# undef BOOST_PP_SLOT_3_DIGIT_2
-# undef BOOST_PP_SLOT_3_DIGIT_3
-# undef BOOST_PP_SLOT_3_DIGIT_4
-# undef BOOST_PP_SLOT_3_DIGIT_5
-# undef BOOST_PP_SLOT_3_DIGIT_6
-# undef BOOST_PP_SLOT_3_DIGIT_7
-# undef BOOST_PP_SLOT_3_DIGIT_8
-# undef BOOST_PP_SLOT_3_DIGIT_9
-# undef BOOST_PP_SLOT_3_DIGIT_10
-#
-# if BOOST_PP_SLOT_TEMP_10 == 0
-#    define BOOST_PP_SLOT_3_DIGIT_10 0
-# elif BOOST_PP_SLOT_TEMP_10 == 1
-#    define BOOST_PP_SLOT_3_DIGIT_10 1
-# elif BOOST_PP_SLOT_TEMP_10 == 2
-#    define BOOST_PP_SLOT_3_DIGIT_10 2
-# elif BOOST_PP_SLOT_TEMP_10 == 3
-#    define BOOST_PP_SLOT_3_DIGIT_10 3
-# elif BOOST_PP_SLOT_TEMP_10 == 4
-#    define BOOST_PP_SLOT_3_DIGIT_10 4
-# elif BOOST_PP_SLOT_TEMP_10 == 5
-#    define BOOST_PP_SLOT_3_DIGIT_10 5
-# elif BOOST_PP_SLOT_TEMP_10 == 6
-#    define BOOST_PP_SLOT_3_DIGIT_10 6
-# elif BOOST_PP_SLOT_TEMP_10 == 7
-#    define BOOST_PP_SLOT_3_DIGIT_10 7
-# elif BOOST_PP_SLOT_TEMP_10 == 8
-#    define BOOST_PP_SLOT_3_DIGIT_10 8
-# elif BOOST_PP_SLOT_TEMP_10 == 9
-#    define BOOST_PP_SLOT_3_DIGIT_10 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_9 == 0
-#    define BOOST_PP_SLOT_3_DIGIT_9 0
-# elif BOOST_PP_SLOT_TEMP_9 == 1
-#    define BOOST_PP_SLOT_3_DIGIT_9 1
-# elif BOOST_PP_SLOT_TEMP_9 == 2
-#    define BOOST_PP_SLOT_3_DIGIT_9 2
-# elif BOOST_PP_SLOT_TEMP_9 == 3
-#    define BOOST_PP_SLOT_3_DIGIT_9 3
-# elif BOOST_PP_SLOT_TEMP_9 == 4
-#    define BOOST_PP_SLOT_3_DIGIT_9 4
-# elif BOOST_PP_SLOT_TEMP_9 == 5
-#    define BOOST_PP_SLOT_3_DIGIT_9 5
-# elif BOOST_PP_SLOT_TEMP_9 == 6
-#    define BOOST_PP_SLOT_3_DIGIT_9 6
-# elif BOOST_PP_SLOT_TEMP_9 == 7
-#    define BOOST_PP_SLOT_3_DIGIT_9 7
-# elif BOOST_PP_SLOT_TEMP_9 == 8
-#    define BOOST_PP_SLOT_3_DIGIT_9 8
-# elif BOOST_PP_SLOT_TEMP_9 == 9
-#    define BOOST_PP_SLOT_3_DIGIT_9 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_8 == 0
-#    define BOOST_PP_SLOT_3_DIGIT_8 0
-# elif BOOST_PP_SLOT_TEMP_8 == 1
-#    define BOOST_PP_SLOT_3_DIGIT_8 1
-# elif BOOST_PP_SLOT_TEMP_8 == 2
-#    define BOOST_PP_SLOT_3_DIGIT_8 2
-# elif BOOST_PP_SLOT_TEMP_8 == 3
-#    define BOOST_PP_SLOT_3_DIGIT_8 3
-# elif BOOST_PP_SLOT_TEMP_8 == 4
-#    define BOOST_PP_SLOT_3_DIGIT_8 4
-# elif BOOST_PP_SLOT_TEMP_8 == 5
-#    define BOOST_PP_SLOT_3_DIGIT_8 5
-# elif BOOST_PP_SLOT_TEMP_8 == 6
-#    define BOOST_PP_SLOT_3_DIGIT_8 6
-# elif BOOST_PP_SLOT_TEMP_8 == 7
-#    define BOOST_PP_SLOT_3_DIGIT_8 7
-# elif BOOST_PP_SLOT_TEMP_8 == 8
-#    define BOOST_PP_SLOT_3_DIGIT_8 8
-# elif BOOST_PP_SLOT_TEMP_8 == 9
-#    define BOOST_PP_SLOT_3_DIGIT_8 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_7 == 0
-#    define BOOST_PP_SLOT_3_DIGIT_7 0
-# elif BOOST_PP_SLOT_TEMP_7 == 1
-#    define BOOST_PP_SLOT_3_DIGIT_7 1
-# elif BOOST_PP_SLOT_TEMP_7 == 2
-#    define BOOST_PP_SLOT_3_DIGIT_7 2
-# elif BOOST_PP_SLOT_TEMP_7 == 3
-#    define BOOST_PP_SLOT_3_DIGIT_7 3
-# elif BOOST_PP_SLOT_TEMP_7 == 4
-#    define BOOST_PP_SLOT_3_DIGIT_7 4
-# elif BOOST_PP_SLOT_TEMP_7 == 5
-#    define BOOST_PP_SLOT_3_DIGIT_7 5
-# elif BOOST_PP_SLOT_TEMP_7 == 6
-#    define BOOST_PP_SLOT_3_DIGIT_7 6
-# elif BOOST_PP_SLOT_TEMP_7 == 7
-#    define BOOST_PP_SLOT_3_DIGIT_7 7
-# elif BOOST_PP_SLOT_TEMP_7 == 8
-#    define BOOST_PP_SLOT_3_DIGIT_7 8
-# elif BOOST_PP_SLOT_TEMP_7 == 9
-#    define BOOST_PP_SLOT_3_DIGIT_7 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_6 == 0
-#    define BOOST_PP_SLOT_3_DIGIT_6 0
-# elif BOOST_PP_SLOT_TEMP_6 == 1
-#    define BOOST_PP_SLOT_3_DIGIT_6 1
-# elif BOOST_PP_SLOT_TEMP_6 == 2
-#    define BOOST_PP_SLOT_3_DIGIT_6 2
-# elif BOOST_PP_SLOT_TEMP_6 == 3
-#    define BOOST_PP_SLOT_3_DIGIT_6 3
-# elif BOOST_PP_SLOT_TEMP_6 == 4
-#    define BOOST_PP_SLOT_3_DIGIT_6 4
-# elif BOOST_PP_SLOT_TEMP_6 == 5
-#    define BOOST_PP_SLOT_3_DIGIT_6 5
-# elif BOOST_PP_SLOT_TEMP_6 == 6
-#    define BOOST_PP_SLOT_3_DIGIT_6 6
-# elif BOOST_PP_SLOT_TEMP_6 == 7
-#    define BOOST_PP_SLOT_3_DIGIT_6 7
-# elif BOOST_PP_SLOT_TEMP_6 == 8
-#    define BOOST_PP_SLOT_3_DIGIT_6 8
-# elif BOOST_PP_SLOT_TEMP_6 == 9
-#    define BOOST_PP_SLOT_3_DIGIT_6 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_5 == 0
-#    define BOOST_PP_SLOT_3_DIGIT_5 0
-# elif BOOST_PP_SLOT_TEMP_5 == 1
-#    define BOOST_PP_SLOT_3_DIGIT_5 1
-# elif BOOST_PP_SLOT_TEMP_5 == 2
-#    define BOOST_PP_SLOT_3_DIGIT_5 2
-# elif BOOST_PP_SLOT_TEMP_5 == 3
-#    define BOOST_PP_SLOT_3_DIGIT_5 3
-# elif BOOST_PP_SLOT_TEMP_5 == 4
-#    define BOOST_PP_SLOT_3_DIGIT_5 4
-# elif BOOST_PP_SLOT_TEMP_5 == 5
-#    define BOOST_PP_SLOT_3_DIGIT_5 5
-# elif BOOST_PP_SLOT_TEMP_5 == 6
-#    define BOOST_PP_SLOT_3_DIGIT_5 6
-# elif BOOST_PP_SLOT_TEMP_5 == 7
-#    define BOOST_PP_SLOT_3_DIGIT_5 7
-# elif BOOST_PP_SLOT_TEMP_5 == 8
-#    define BOOST_PP_SLOT_3_DIGIT_5 8
-# elif BOOST_PP_SLOT_TEMP_5 == 9
-#    define BOOST_PP_SLOT_3_DIGIT_5 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_4 == 0
-#    define BOOST_PP_SLOT_3_DIGIT_4 0
-# elif BOOST_PP_SLOT_TEMP_4 == 1
-#    define BOOST_PP_SLOT_3_DIGIT_4 1
-# elif BOOST_PP_SLOT_TEMP_4 == 2
-#    define BOOST_PP_SLOT_3_DIGIT_4 2
-# elif BOOST_PP_SLOT_TEMP_4 == 3
-#    define BOOST_PP_SLOT_3_DIGIT_4 3
-# elif BOOST_PP_SLOT_TEMP_4 == 4
-#    define BOOST_PP_SLOT_3_DIGIT_4 4
-# elif BOOST_PP_SLOT_TEMP_4 == 5
-#    define BOOST_PP_SLOT_3_DIGIT_4 5
-# elif BOOST_PP_SLOT_TEMP_4 == 6
-#    define BOOST_PP_SLOT_3_DIGIT_4 6
-# elif BOOST_PP_SLOT_TEMP_4 == 7
-#    define BOOST_PP_SLOT_3_DIGIT_4 7
-# elif BOOST_PP_SLOT_TEMP_4 == 8
-#    define BOOST_PP_SLOT_3_DIGIT_4 8
-# elif BOOST_PP_SLOT_TEMP_4 == 9
-#    define BOOST_PP_SLOT_3_DIGIT_4 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_3 == 0
-#    define BOOST_PP_SLOT_3_DIGIT_3 0
-# elif BOOST_PP_SLOT_TEMP_3 == 1
-#    define BOOST_PP_SLOT_3_DIGIT_3 1
-# elif BOOST_PP_SLOT_TEMP_3 == 2
-#    define BOOST_PP_SLOT_3_DIGIT_3 2
-# elif BOOST_PP_SLOT_TEMP_3 == 3
-#    define BOOST_PP_SLOT_3_DIGIT_3 3
-# elif BOOST_PP_SLOT_TEMP_3 == 4
-#    define BOOST_PP_SLOT_3_DIGIT_3 4
-# elif BOOST_PP_SLOT_TEMP_3 == 5
-#    define BOOST_PP_SLOT_3_DIGIT_3 5
-# elif BOOST_PP_SLOT_TEMP_3 == 6
-#    define BOOST_PP_SLOT_3_DIGIT_3 6
-# elif BOOST_PP_SLOT_TEMP_3 == 7
-#    define BOOST_PP_SLOT_3_DIGIT_3 7
-# elif BOOST_PP_SLOT_TEMP_3 == 8
-#    define BOOST_PP_SLOT_3_DIGIT_3 8
-# elif BOOST_PP_SLOT_TEMP_3 == 9
-#    define BOOST_PP_SLOT_3_DIGIT_3 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_2 == 0
-#    define BOOST_PP_SLOT_3_DIGIT_2 0
-# elif BOOST_PP_SLOT_TEMP_2 == 1
-#    define BOOST_PP_SLOT_3_DIGIT_2 1
-# elif BOOST_PP_SLOT_TEMP_2 == 2
-#    define BOOST_PP_SLOT_3_DIGIT_2 2
-# elif BOOST_PP_SLOT_TEMP_2 == 3
-#    define BOOST_PP_SLOT_3_DIGIT_2 3
-# elif BOOST_PP_SLOT_TEMP_2 == 4
-#    define BOOST_PP_SLOT_3_DIGIT_2 4
-# elif BOOST_PP_SLOT_TEMP_2 == 5
-#    define BOOST_PP_SLOT_3_DIGIT_2 5
-# elif BOOST_PP_SLOT_TEMP_2 == 6
-#    define BOOST_PP_SLOT_3_DIGIT_2 6
-# elif BOOST_PP_SLOT_TEMP_2 == 7
-#    define BOOST_PP_SLOT_3_DIGIT_2 7
-# elif BOOST_PP_SLOT_TEMP_2 == 8
-#    define BOOST_PP_SLOT_3_DIGIT_2 8
-# elif BOOST_PP_SLOT_TEMP_2 == 9
-#    define BOOST_PP_SLOT_3_DIGIT_2 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_1 == 0
-#    define BOOST_PP_SLOT_3_DIGIT_1 0
-# elif BOOST_PP_SLOT_TEMP_1 == 1
-#    define BOOST_PP_SLOT_3_DIGIT_1 1
-# elif BOOST_PP_SLOT_TEMP_1 == 2
-#    define BOOST_PP_SLOT_3_DIGIT_1 2
-# elif BOOST_PP_SLOT_TEMP_1 == 3
-#    define BOOST_PP_SLOT_3_DIGIT_1 3
-# elif BOOST_PP_SLOT_TEMP_1 == 4
-#    define BOOST_PP_SLOT_3_DIGIT_1 4
-# elif BOOST_PP_SLOT_TEMP_1 == 5
-#    define BOOST_PP_SLOT_3_DIGIT_1 5
-# elif BOOST_PP_SLOT_TEMP_1 == 6
-#    define BOOST_PP_SLOT_3_DIGIT_1 6
-# elif BOOST_PP_SLOT_TEMP_1 == 7
-#    define BOOST_PP_SLOT_3_DIGIT_1 7
-# elif BOOST_PP_SLOT_TEMP_1 == 8
-#    define BOOST_PP_SLOT_3_DIGIT_1 8
-# elif BOOST_PP_SLOT_TEMP_1 == 9
-#    define BOOST_PP_SLOT_3_DIGIT_1 9
-# endif
-#
-# if BOOST_PP_SLOT_3_DIGIT_10
-#    define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_10(BOOST_PP_SLOT_3_DIGIT_10, BOOST_PP_SLOT_3_DIGIT_9, BOOST_PP_SLOT_3_DIGIT_8, BOOST_PP_SLOT_3_DIGIT_7, BOOST_PP_SLOT_3_DIGIT_6, BOOST_PP_SLOT_3_DIGIT_5, BOOST_PP_SLOT_3_DIGIT_4, BOOST_PP_SLOT_3_DIGIT_3, BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1)
-# elif BOOST_PP_SLOT_3_DIGIT_9
-#    define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_9(BOOST_PP_SLOT_3_DIGIT_9, BOOST_PP_SLOT_3_DIGIT_8, BOOST_PP_SLOT_3_DIGIT_7, BOOST_PP_SLOT_3_DIGIT_6, BOOST_PP_SLOT_3_DIGIT_5, BOOST_PP_SLOT_3_DIGIT_4, BOOST_PP_SLOT_3_DIGIT_3, BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1)
-# elif BOOST_PP_SLOT_3_DIGIT_8
-#    define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_8(BOOST_PP_SLOT_3_DIGIT_8, BOOST_PP_SLOT_3_DIGIT_7, BOOST_PP_SLOT_3_DIGIT_6, BOOST_PP_SLOT_3_DIGIT_5, BOOST_PP_SLOT_3_DIGIT_4, BOOST_PP_SLOT_3_DIGIT_3, BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1)
-# elif BOOST_PP_SLOT_3_DIGIT_7
-#    define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_7(BOOST_PP_SLOT_3_DIGIT_7, BOOST_PP_SLOT_3_DIGIT_6, BOOST_PP_SLOT_3_DIGIT_5, BOOST_PP_SLOT_3_DIGIT_4, BOOST_PP_SLOT_3_DIGIT_3, BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1)
-# elif BOOST_PP_SLOT_3_DIGIT_6
-#    define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_6(BOOST_PP_SLOT_3_DIGIT_6, BOOST_PP_SLOT_3_DIGIT_5, BOOST_PP_SLOT_3_DIGIT_4, BOOST_PP_SLOT_3_DIGIT_3, BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1)
-# elif BOOST_PP_SLOT_3_DIGIT_5
-#    define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_5(BOOST_PP_SLOT_3_DIGIT_5, BOOST_PP_SLOT_3_DIGIT_4, BOOST_PP_SLOT_3_DIGIT_3, BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1)
-# elif BOOST_PP_SLOT_3_DIGIT_4
-#    define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_4(BOOST_PP_SLOT_3_DIGIT_4, BOOST_PP_SLOT_3_DIGIT_3, BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1)
-# elif BOOST_PP_SLOT_3_DIGIT_3
-#    define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_3(BOOST_PP_SLOT_3_DIGIT_3, BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1)
-# elif BOOST_PP_SLOT_3_DIGIT_2
-#    define BOOST_PP_SLOT_3() BOOST_PP_SLOT_CC_2(BOOST_PP_SLOT_3_DIGIT_2, BOOST_PP_SLOT_3_DIGIT_1)
-# else
-#    define BOOST_PP_SLOT_3() BOOST_PP_SLOT_3_DIGIT_1
-# endif
diff --git a/boost/preprocessor/slot/detail/slot4.hpp b/boost/preprocessor/slot/detail/slot4.hpp
deleted file mode 100644
index 9aa4d8a..0000000
--- a/boost/preprocessor/slot/detail/slot4.hpp
+++ /dev/null
@@ -1,267 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# include <boost/preprocessor/slot/detail/shared.hpp>
-#
-# undef BOOST_PP_SLOT_4
-#
-# undef BOOST_PP_SLOT_4_DIGIT_1
-# undef BOOST_PP_SLOT_4_DIGIT_2
-# undef BOOST_PP_SLOT_4_DIGIT_3
-# undef BOOST_PP_SLOT_4_DIGIT_4
-# undef BOOST_PP_SLOT_4_DIGIT_5
-# undef BOOST_PP_SLOT_4_DIGIT_6
-# undef BOOST_PP_SLOT_4_DIGIT_7
-# undef BOOST_PP_SLOT_4_DIGIT_8
-# undef BOOST_PP_SLOT_4_DIGIT_9
-# undef BOOST_PP_SLOT_4_DIGIT_10
-#
-# if BOOST_PP_SLOT_TEMP_10 == 0
-#    define BOOST_PP_SLOT_4_DIGIT_10 0
-# elif BOOST_PP_SLOT_TEMP_10 == 1
-#    define BOOST_PP_SLOT_4_DIGIT_10 1
-# elif BOOST_PP_SLOT_TEMP_10 == 2
-#    define BOOST_PP_SLOT_4_DIGIT_10 2
-# elif BOOST_PP_SLOT_TEMP_10 == 3
-#    define BOOST_PP_SLOT_4_DIGIT_10 3
-# elif BOOST_PP_SLOT_TEMP_10 == 4
-#    define BOOST_PP_SLOT_4_DIGIT_10 4
-# elif BOOST_PP_SLOT_TEMP_10 == 5
-#    define BOOST_PP_SLOT_4_DIGIT_10 5
-# elif BOOST_PP_SLOT_TEMP_10 == 6
-#    define BOOST_PP_SLOT_4_DIGIT_10 6
-# elif BOOST_PP_SLOT_TEMP_10 == 7
-#    define BOOST_PP_SLOT_4_DIGIT_10 7
-# elif BOOST_PP_SLOT_TEMP_10 == 8
-#    define BOOST_PP_SLOT_4_DIGIT_10 8
-# elif BOOST_PP_SLOT_TEMP_10 == 9
-#    define BOOST_PP_SLOT_4_DIGIT_10 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_9 == 0
-#    define BOOST_PP_SLOT_4_DIGIT_9 0
-# elif BOOST_PP_SLOT_TEMP_9 == 1
-#    define BOOST_PP_SLOT_4_DIGIT_9 1
-# elif BOOST_PP_SLOT_TEMP_9 == 2
-#    define BOOST_PP_SLOT_4_DIGIT_9 2
-# elif BOOST_PP_SLOT_TEMP_9 == 3
-#    define BOOST_PP_SLOT_4_DIGIT_9 3
-# elif BOOST_PP_SLOT_TEMP_9 == 4
-#    define BOOST_PP_SLOT_4_DIGIT_9 4
-# elif BOOST_PP_SLOT_TEMP_9 == 5
-#    define BOOST_PP_SLOT_4_DIGIT_9 5
-# elif BOOST_PP_SLOT_TEMP_9 == 6
-#    define BOOST_PP_SLOT_4_DIGIT_9 6
-# elif BOOST_PP_SLOT_TEMP_9 == 7
-#    define BOOST_PP_SLOT_4_DIGIT_9 7
-# elif BOOST_PP_SLOT_TEMP_9 == 8
-#    define BOOST_PP_SLOT_4_DIGIT_9 8
-# elif BOOST_PP_SLOT_TEMP_9 == 9
-#    define BOOST_PP_SLOT_4_DIGIT_9 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_8 == 0
-#    define BOOST_PP_SLOT_4_DIGIT_8 0
-# elif BOOST_PP_SLOT_TEMP_8 == 1
-#    define BOOST_PP_SLOT_4_DIGIT_8 1
-# elif BOOST_PP_SLOT_TEMP_8 == 2
-#    define BOOST_PP_SLOT_4_DIGIT_8 2
-# elif BOOST_PP_SLOT_TEMP_8 == 3
-#    define BOOST_PP_SLOT_4_DIGIT_8 3
-# elif BOOST_PP_SLOT_TEMP_8 == 4
-#    define BOOST_PP_SLOT_4_DIGIT_8 4
-# elif BOOST_PP_SLOT_TEMP_8 == 5
-#    define BOOST_PP_SLOT_4_DIGIT_8 5
-# elif BOOST_PP_SLOT_TEMP_8 == 6
-#    define BOOST_PP_SLOT_4_DIGIT_8 6
-# elif BOOST_PP_SLOT_TEMP_8 == 7
-#    define BOOST_PP_SLOT_4_DIGIT_8 7
-# elif BOOST_PP_SLOT_TEMP_8 == 8
-#    define BOOST_PP_SLOT_4_DIGIT_8 8
-# elif BOOST_PP_SLOT_TEMP_8 == 9
-#    define BOOST_PP_SLOT_4_DIGIT_8 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_7 == 0
-#    define BOOST_PP_SLOT_4_DIGIT_7 0
-# elif BOOST_PP_SLOT_TEMP_7 == 1
-#    define BOOST_PP_SLOT_4_DIGIT_7 1
-# elif BOOST_PP_SLOT_TEMP_7 == 2
-#    define BOOST_PP_SLOT_4_DIGIT_7 2
-# elif BOOST_PP_SLOT_TEMP_7 == 3
-#    define BOOST_PP_SLOT_4_DIGIT_7 3
-# elif BOOST_PP_SLOT_TEMP_7 == 4
-#    define BOOST_PP_SLOT_4_DIGIT_7 4
-# elif BOOST_PP_SLOT_TEMP_7 == 5
-#    define BOOST_PP_SLOT_4_DIGIT_7 5
-# elif BOOST_PP_SLOT_TEMP_7 == 6
-#    define BOOST_PP_SLOT_4_DIGIT_7 6
-# elif BOOST_PP_SLOT_TEMP_7 == 7
-#    define BOOST_PP_SLOT_4_DIGIT_7 7
-# elif BOOST_PP_SLOT_TEMP_7 == 8
-#    define BOOST_PP_SLOT_4_DIGIT_7 8
-# elif BOOST_PP_SLOT_TEMP_7 == 9
-#    define BOOST_PP_SLOT_4_DIGIT_7 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_6 == 0
-#    define BOOST_PP_SLOT_4_DIGIT_6 0
-# elif BOOST_PP_SLOT_TEMP_6 == 1
-#    define BOOST_PP_SLOT_4_DIGIT_6 1
-# elif BOOST_PP_SLOT_TEMP_6 == 2
-#    define BOOST_PP_SLOT_4_DIGIT_6 2
-# elif BOOST_PP_SLOT_TEMP_6 == 3
-#    define BOOST_PP_SLOT_4_DIGIT_6 3
-# elif BOOST_PP_SLOT_TEMP_6 == 4
-#    define BOOST_PP_SLOT_4_DIGIT_6 4
-# elif BOOST_PP_SLOT_TEMP_6 == 5
-#    define BOOST_PP_SLOT_4_DIGIT_6 5
-# elif BOOST_PP_SLOT_TEMP_6 == 6
-#    define BOOST_PP_SLOT_4_DIGIT_6 6
-# elif BOOST_PP_SLOT_TEMP_6 == 7
-#    define BOOST_PP_SLOT_4_DIGIT_6 7
-# elif BOOST_PP_SLOT_TEMP_6 == 8
-#    define BOOST_PP_SLOT_4_DIGIT_6 8
-# elif BOOST_PP_SLOT_TEMP_6 == 9
-#    define BOOST_PP_SLOT_4_DIGIT_6 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_5 == 0
-#    define BOOST_PP_SLOT_4_DIGIT_5 0
-# elif BOOST_PP_SLOT_TEMP_5 == 1
-#    define BOOST_PP_SLOT_4_DIGIT_5 1
-# elif BOOST_PP_SLOT_TEMP_5 == 2
-#    define BOOST_PP_SLOT_4_DIGIT_5 2
-# elif BOOST_PP_SLOT_TEMP_5 == 3
-#    define BOOST_PP_SLOT_4_DIGIT_5 3
-# elif BOOST_PP_SLOT_TEMP_5 == 4
-#    define BOOST_PP_SLOT_4_DIGIT_5 4
-# elif BOOST_PP_SLOT_TEMP_5 == 5
-#    define BOOST_PP_SLOT_4_DIGIT_5 5
-# elif BOOST_PP_SLOT_TEMP_5 == 6
-#    define BOOST_PP_SLOT_4_DIGIT_5 6
-# elif BOOST_PP_SLOT_TEMP_5 == 7
-#    define BOOST_PP_SLOT_4_DIGIT_5 7
-# elif BOOST_PP_SLOT_TEMP_5 == 8
-#    define BOOST_PP_SLOT_4_DIGIT_5 8
-# elif BOOST_PP_SLOT_TEMP_5 == 9
-#    define BOOST_PP_SLOT_4_DIGIT_5 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_4 == 0
-#    define BOOST_PP_SLOT_4_DIGIT_4 0
-# elif BOOST_PP_SLOT_TEMP_4 == 1
-#    define BOOST_PP_SLOT_4_DIGIT_4 1
-# elif BOOST_PP_SLOT_TEMP_4 == 2
-#    define BOOST_PP_SLOT_4_DIGIT_4 2
-# elif BOOST_PP_SLOT_TEMP_4 == 3
-#    define BOOST_PP_SLOT_4_DIGIT_4 3
-# elif BOOST_PP_SLOT_TEMP_4 == 4
-#    define BOOST_PP_SLOT_4_DIGIT_4 4
-# elif BOOST_PP_SLOT_TEMP_4 == 5
-#    define BOOST_PP_SLOT_4_DIGIT_4 5
-# elif BOOST_PP_SLOT_TEMP_4 == 6
-#    define BOOST_PP_SLOT_4_DIGIT_4 6
-# elif BOOST_PP_SLOT_TEMP_4 == 7
-#    define BOOST_PP_SLOT_4_DIGIT_4 7
-# elif BOOST_PP_SLOT_TEMP_4 == 8
-#    define BOOST_PP_SLOT_4_DIGIT_4 8
-# elif BOOST_PP_SLOT_TEMP_4 == 9
-#    define BOOST_PP_SLOT_4_DIGIT_4 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_3 == 0
-#    define BOOST_PP_SLOT_4_DIGIT_3 0
-# elif BOOST_PP_SLOT_TEMP_3 == 1
-#    define BOOST_PP_SLOT_4_DIGIT_3 1
-# elif BOOST_PP_SLOT_TEMP_3 == 2
-#    define BOOST_PP_SLOT_4_DIGIT_3 2
-# elif BOOST_PP_SLOT_TEMP_3 == 3
-#    define BOOST_PP_SLOT_4_DIGIT_3 3
-# elif BOOST_PP_SLOT_TEMP_3 == 4
-#    define BOOST_PP_SLOT_4_DIGIT_3 4
-# elif BOOST_PP_SLOT_TEMP_3 == 5
-#    define BOOST_PP_SLOT_4_DIGIT_3 5
-# elif BOOST_PP_SLOT_TEMP_3 == 6
-#    define BOOST_PP_SLOT_4_DIGIT_3 6
-# elif BOOST_PP_SLOT_TEMP_3 == 7
-#    define BOOST_PP_SLOT_4_DIGIT_3 7
-# elif BOOST_PP_SLOT_TEMP_3 == 8
-#    define BOOST_PP_SLOT_4_DIGIT_3 8
-# elif BOOST_PP_SLOT_TEMP_3 == 9
-#    define BOOST_PP_SLOT_4_DIGIT_3 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_2 == 0
-#    define BOOST_PP_SLOT_4_DIGIT_2 0
-# elif BOOST_PP_SLOT_TEMP_2 == 1
-#    define BOOST_PP_SLOT_4_DIGIT_2 1
-# elif BOOST_PP_SLOT_TEMP_2 == 2
-#    define BOOST_PP_SLOT_4_DIGIT_2 2
-# elif BOOST_PP_SLOT_TEMP_2 == 3
-#    define BOOST_PP_SLOT_4_DIGIT_2 3
-# elif BOOST_PP_SLOT_TEMP_2 == 4
-#    define BOOST_PP_SLOT_4_DIGIT_2 4
-# elif BOOST_PP_SLOT_TEMP_2 == 5
-#    define BOOST_PP_SLOT_4_DIGIT_2 5
-# elif BOOST_PP_SLOT_TEMP_2 == 6
-#    define BOOST_PP_SLOT_4_DIGIT_2 6
-# elif BOOST_PP_SLOT_TEMP_2 == 7
-#    define BOOST_PP_SLOT_4_DIGIT_2 7
-# elif BOOST_PP_SLOT_TEMP_2 == 8
-#    define BOOST_PP_SLOT_4_DIGIT_2 8
-# elif BOOST_PP_SLOT_TEMP_2 == 9
-#    define BOOST_PP_SLOT_4_DIGIT_2 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_1 == 0
-#    define BOOST_PP_SLOT_4_DIGIT_1 0
-# elif BOOST_PP_SLOT_TEMP_1 == 1
-#    define BOOST_PP_SLOT_4_DIGIT_1 1
-# elif BOOST_PP_SLOT_TEMP_1 == 2
-#    define BOOST_PP_SLOT_4_DIGIT_1 2
-# elif BOOST_PP_SLOT_TEMP_1 == 3
-#    define BOOST_PP_SLOT_4_DIGIT_1 3
-# elif BOOST_PP_SLOT_TEMP_1 == 4
-#    define BOOST_PP_SLOT_4_DIGIT_1 4
-# elif BOOST_PP_SLOT_TEMP_1 == 5
-#    define BOOST_PP_SLOT_4_DIGIT_1 5
-# elif BOOST_PP_SLOT_TEMP_1 == 6
-#    define BOOST_PP_SLOT_4_DIGIT_1 6
-# elif BOOST_PP_SLOT_TEMP_1 == 7
-#    define BOOST_PP_SLOT_4_DIGIT_1 7
-# elif BOOST_PP_SLOT_TEMP_1 == 8
-#    define BOOST_PP_SLOT_4_DIGIT_1 8
-# elif BOOST_PP_SLOT_TEMP_1 == 9
-#    define BOOST_PP_SLOT_4_DIGIT_1 9
-# endif
-#
-# if BOOST_PP_SLOT_4_DIGIT_10
-#    define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_10(BOOST_PP_SLOT_4_DIGIT_10, BOOST_PP_SLOT_4_DIGIT_9, BOOST_PP_SLOT_4_DIGIT_8, BOOST_PP_SLOT_4_DIGIT_7, BOOST_PP_SLOT_4_DIGIT_6, BOOST_PP_SLOT_4_DIGIT_5, BOOST_PP_SLOT_4_DIGIT_4, BOOST_PP_SLOT_4_DIGIT_3, BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1)
-# elif BOOST_PP_SLOT_4_DIGIT_9
-#    define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_9(BOOST_PP_SLOT_4_DIGIT_9, BOOST_PP_SLOT_4_DIGIT_8, BOOST_PP_SLOT_4_DIGIT_7, BOOST_PP_SLOT_4_DIGIT_6, BOOST_PP_SLOT_4_DIGIT_5, BOOST_PP_SLOT_4_DIGIT_4, BOOST_PP_SLOT_4_DIGIT_3, BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1)
-# elif BOOST_PP_SLOT_4_DIGIT_8
-#    define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_8(BOOST_PP_SLOT_4_DIGIT_8, BOOST_PP_SLOT_4_DIGIT_7, BOOST_PP_SLOT_4_DIGIT_6, BOOST_PP_SLOT_4_DIGIT_5, BOOST_PP_SLOT_4_DIGIT_4, BOOST_PP_SLOT_4_DIGIT_3, BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1)
-# elif BOOST_PP_SLOT_4_DIGIT_7
-#    define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_7(BOOST_PP_SLOT_4_DIGIT_7, BOOST_PP_SLOT_4_DIGIT_6, BOOST_PP_SLOT_4_DIGIT_5, BOOST_PP_SLOT_4_DIGIT_4, BOOST_PP_SLOT_4_DIGIT_3, BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1)
-# elif BOOST_PP_SLOT_4_DIGIT_6
-#    define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_6(BOOST_PP_SLOT_4_DIGIT_6, BOOST_PP_SLOT_4_DIGIT_5, BOOST_PP_SLOT_4_DIGIT_4, BOOST_PP_SLOT_4_DIGIT_3, BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1)
-# elif BOOST_PP_SLOT_4_DIGIT_5
-#    define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_5(BOOST_PP_SLOT_4_DIGIT_5, BOOST_PP_SLOT_4_DIGIT_4, BOOST_PP_SLOT_4_DIGIT_3, BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1)
-# elif BOOST_PP_SLOT_4_DIGIT_4
-#    define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_4(BOOST_PP_SLOT_4_DIGIT_4, BOOST_PP_SLOT_4_DIGIT_3, BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1)
-# elif BOOST_PP_SLOT_4_DIGIT_3
-#    define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_3(BOOST_PP_SLOT_4_DIGIT_3, BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1)
-# elif BOOST_PP_SLOT_4_DIGIT_2
-#    define BOOST_PP_SLOT_4() BOOST_PP_SLOT_CC_2(BOOST_PP_SLOT_4_DIGIT_2, BOOST_PP_SLOT_4_DIGIT_1)
-# else
-#    define BOOST_PP_SLOT_4() BOOST_PP_SLOT_4_DIGIT_1
-# endif
diff --git a/boost/preprocessor/slot/detail/slot5.hpp b/boost/preprocessor/slot/detail/slot5.hpp
deleted file mode 100644
index d17535d..0000000
--- a/boost/preprocessor/slot/detail/slot5.hpp
+++ /dev/null
@@ -1,267 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# include <boost/preprocessor/slot/detail/shared.hpp>
-#
-# undef BOOST_PP_SLOT_5
-#
-# undef BOOST_PP_SLOT_5_DIGIT_1
-# undef BOOST_PP_SLOT_5_DIGIT_2
-# undef BOOST_PP_SLOT_5_DIGIT_3
-# undef BOOST_PP_SLOT_5_DIGIT_4
-# undef BOOST_PP_SLOT_5_DIGIT_5
-# undef BOOST_PP_SLOT_5_DIGIT_6
-# undef BOOST_PP_SLOT_5_DIGIT_7
-# undef BOOST_PP_SLOT_5_DIGIT_8
-# undef BOOST_PP_SLOT_5_DIGIT_9
-# undef BOOST_PP_SLOT_5_DIGIT_10
-#
-# if BOOST_PP_SLOT_TEMP_10 == 0
-#    define BOOST_PP_SLOT_5_DIGIT_10 0
-# elif BOOST_PP_SLOT_TEMP_10 == 1
-#    define BOOST_PP_SLOT_5_DIGIT_10 1
-# elif BOOST_PP_SLOT_TEMP_10 == 2
-#    define BOOST_PP_SLOT_5_DIGIT_10 2
-# elif BOOST_PP_SLOT_TEMP_10 == 3
-#    define BOOST_PP_SLOT_5_DIGIT_10 3
-# elif BOOST_PP_SLOT_TEMP_10 == 4
-#    define BOOST_PP_SLOT_5_DIGIT_10 4
-# elif BOOST_PP_SLOT_TEMP_10 == 5
-#    define BOOST_PP_SLOT_5_DIGIT_10 5
-# elif BOOST_PP_SLOT_TEMP_10 == 6
-#    define BOOST_PP_SLOT_5_DIGIT_10 6
-# elif BOOST_PP_SLOT_TEMP_10 == 7
-#    define BOOST_PP_SLOT_5_DIGIT_10 7
-# elif BOOST_PP_SLOT_TEMP_10 == 8
-#    define BOOST_PP_SLOT_5_DIGIT_10 8
-# elif BOOST_PP_SLOT_TEMP_10 == 9
-#    define BOOST_PP_SLOT_5_DIGIT_10 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_9 == 0
-#    define BOOST_PP_SLOT_5_DIGIT_9 0
-# elif BOOST_PP_SLOT_TEMP_9 == 1
-#    define BOOST_PP_SLOT_5_DIGIT_9 1
-# elif BOOST_PP_SLOT_TEMP_9 == 2
-#    define BOOST_PP_SLOT_5_DIGIT_9 2
-# elif BOOST_PP_SLOT_TEMP_9 == 3
-#    define BOOST_PP_SLOT_5_DIGIT_9 3
-# elif BOOST_PP_SLOT_TEMP_9 == 4
-#    define BOOST_PP_SLOT_5_DIGIT_9 4
-# elif BOOST_PP_SLOT_TEMP_9 == 5
-#    define BOOST_PP_SLOT_5_DIGIT_9 5
-# elif BOOST_PP_SLOT_TEMP_9 == 6
-#    define BOOST_PP_SLOT_5_DIGIT_9 6
-# elif BOOST_PP_SLOT_TEMP_9 == 7
-#    define BOOST_PP_SLOT_5_DIGIT_9 7
-# elif BOOST_PP_SLOT_TEMP_9 == 8
-#    define BOOST_PP_SLOT_5_DIGIT_9 8
-# elif BOOST_PP_SLOT_TEMP_9 == 9
-#    define BOOST_PP_SLOT_5_DIGIT_9 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_8 == 0
-#    define BOOST_PP_SLOT_5_DIGIT_8 0
-# elif BOOST_PP_SLOT_TEMP_8 == 1
-#    define BOOST_PP_SLOT_5_DIGIT_8 1
-# elif BOOST_PP_SLOT_TEMP_8 == 2
-#    define BOOST_PP_SLOT_5_DIGIT_8 2
-# elif BOOST_PP_SLOT_TEMP_8 == 3
-#    define BOOST_PP_SLOT_5_DIGIT_8 3
-# elif BOOST_PP_SLOT_TEMP_8 == 4
-#    define BOOST_PP_SLOT_5_DIGIT_8 4
-# elif BOOST_PP_SLOT_TEMP_8 == 5
-#    define BOOST_PP_SLOT_5_DIGIT_8 5
-# elif BOOST_PP_SLOT_TEMP_8 == 6
-#    define BOOST_PP_SLOT_5_DIGIT_8 6
-# elif BOOST_PP_SLOT_TEMP_8 == 7
-#    define BOOST_PP_SLOT_5_DIGIT_8 7
-# elif BOOST_PP_SLOT_TEMP_8 == 8
-#    define BOOST_PP_SLOT_5_DIGIT_8 8
-# elif BOOST_PP_SLOT_TEMP_8 == 9
-#    define BOOST_PP_SLOT_5_DIGIT_8 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_7 == 0
-#    define BOOST_PP_SLOT_5_DIGIT_7 0
-# elif BOOST_PP_SLOT_TEMP_7 == 1
-#    define BOOST_PP_SLOT_5_DIGIT_7 1
-# elif BOOST_PP_SLOT_TEMP_7 == 2
-#    define BOOST_PP_SLOT_5_DIGIT_7 2
-# elif BOOST_PP_SLOT_TEMP_7 == 3
-#    define BOOST_PP_SLOT_5_DIGIT_7 3
-# elif BOOST_PP_SLOT_TEMP_7 == 4
-#    define BOOST_PP_SLOT_5_DIGIT_7 4
-# elif BOOST_PP_SLOT_TEMP_7 == 5
-#    define BOOST_PP_SLOT_5_DIGIT_7 5
-# elif BOOST_PP_SLOT_TEMP_7 == 6
-#    define BOOST_PP_SLOT_5_DIGIT_7 6
-# elif BOOST_PP_SLOT_TEMP_7 == 7
-#    define BOOST_PP_SLOT_5_DIGIT_7 7
-# elif BOOST_PP_SLOT_TEMP_7 == 8
-#    define BOOST_PP_SLOT_5_DIGIT_7 8
-# elif BOOST_PP_SLOT_TEMP_7 == 9
-#    define BOOST_PP_SLOT_5_DIGIT_7 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_6 == 0
-#    define BOOST_PP_SLOT_5_DIGIT_6 0
-# elif BOOST_PP_SLOT_TEMP_6 == 1
-#    define BOOST_PP_SLOT_5_DIGIT_6 1
-# elif BOOST_PP_SLOT_TEMP_6 == 2
-#    define BOOST_PP_SLOT_5_DIGIT_6 2
-# elif BOOST_PP_SLOT_TEMP_6 == 3
-#    define BOOST_PP_SLOT_5_DIGIT_6 3
-# elif BOOST_PP_SLOT_TEMP_6 == 4
-#    define BOOST_PP_SLOT_5_DIGIT_6 4
-# elif BOOST_PP_SLOT_TEMP_6 == 5
-#    define BOOST_PP_SLOT_5_DIGIT_6 5
-# elif BOOST_PP_SLOT_TEMP_6 == 6
-#    define BOOST_PP_SLOT_5_DIGIT_6 6
-# elif BOOST_PP_SLOT_TEMP_6 == 7
-#    define BOOST_PP_SLOT_5_DIGIT_6 7
-# elif BOOST_PP_SLOT_TEMP_6 == 8
-#    define BOOST_PP_SLOT_5_DIGIT_6 8
-# elif BOOST_PP_SLOT_TEMP_6 == 9
-#    define BOOST_PP_SLOT_5_DIGIT_6 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_5 == 0
-#    define BOOST_PP_SLOT_5_DIGIT_5 0
-# elif BOOST_PP_SLOT_TEMP_5 == 1
-#    define BOOST_PP_SLOT_5_DIGIT_5 1
-# elif BOOST_PP_SLOT_TEMP_5 == 2
-#    define BOOST_PP_SLOT_5_DIGIT_5 2
-# elif BOOST_PP_SLOT_TEMP_5 == 3
-#    define BOOST_PP_SLOT_5_DIGIT_5 3
-# elif BOOST_PP_SLOT_TEMP_5 == 4
-#    define BOOST_PP_SLOT_5_DIGIT_5 4
-# elif BOOST_PP_SLOT_TEMP_5 == 5
-#    define BOOST_PP_SLOT_5_DIGIT_5 5
-# elif BOOST_PP_SLOT_TEMP_5 == 6
-#    define BOOST_PP_SLOT_5_DIGIT_5 6
-# elif BOOST_PP_SLOT_TEMP_5 == 7
-#    define BOOST_PP_SLOT_5_DIGIT_5 7
-# elif BOOST_PP_SLOT_TEMP_5 == 8
-#    define BOOST_PP_SLOT_5_DIGIT_5 8
-# elif BOOST_PP_SLOT_TEMP_5 == 9
-#    define BOOST_PP_SLOT_5_DIGIT_5 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_4 == 0
-#    define BOOST_PP_SLOT_5_DIGIT_4 0
-# elif BOOST_PP_SLOT_TEMP_4 == 1
-#    define BOOST_PP_SLOT_5_DIGIT_4 1
-# elif BOOST_PP_SLOT_TEMP_4 == 2
-#    define BOOST_PP_SLOT_5_DIGIT_4 2
-# elif BOOST_PP_SLOT_TEMP_4 == 3
-#    define BOOST_PP_SLOT_5_DIGIT_4 3
-# elif BOOST_PP_SLOT_TEMP_4 == 4
-#    define BOOST_PP_SLOT_5_DIGIT_4 4
-# elif BOOST_PP_SLOT_TEMP_4 == 5
-#    define BOOST_PP_SLOT_5_DIGIT_4 5
-# elif BOOST_PP_SLOT_TEMP_4 == 6
-#    define BOOST_PP_SLOT_5_DIGIT_4 6
-# elif BOOST_PP_SLOT_TEMP_4 == 7
-#    define BOOST_PP_SLOT_5_DIGIT_4 7
-# elif BOOST_PP_SLOT_TEMP_4 == 8
-#    define BOOST_PP_SLOT_5_DIGIT_4 8
-# elif BOOST_PP_SLOT_TEMP_4 == 9
-#    define BOOST_PP_SLOT_5_DIGIT_4 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_3 == 0
-#    define BOOST_PP_SLOT_5_DIGIT_3 0
-# elif BOOST_PP_SLOT_TEMP_3 == 1
-#    define BOOST_PP_SLOT_5_DIGIT_3 1
-# elif BOOST_PP_SLOT_TEMP_3 == 2
-#    define BOOST_PP_SLOT_5_DIGIT_3 2
-# elif BOOST_PP_SLOT_TEMP_3 == 3
-#    define BOOST_PP_SLOT_5_DIGIT_3 3
-# elif BOOST_PP_SLOT_TEMP_3 == 4
-#    define BOOST_PP_SLOT_5_DIGIT_3 4
-# elif BOOST_PP_SLOT_TEMP_3 == 5
-#    define BOOST_PP_SLOT_5_DIGIT_3 5
-# elif BOOST_PP_SLOT_TEMP_3 == 6
-#    define BOOST_PP_SLOT_5_DIGIT_3 6
-# elif BOOST_PP_SLOT_TEMP_3 == 7
-#    define BOOST_PP_SLOT_5_DIGIT_3 7
-# elif BOOST_PP_SLOT_TEMP_3 == 8
-#    define BOOST_PP_SLOT_5_DIGIT_3 8
-# elif BOOST_PP_SLOT_TEMP_3 == 9
-#    define BOOST_PP_SLOT_5_DIGIT_3 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_2 == 0
-#    define BOOST_PP_SLOT_5_DIGIT_2 0
-# elif BOOST_PP_SLOT_TEMP_2 == 1
-#    define BOOST_PP_SLOT_5_DIGIT_2 1
-# elif BOOST_PP_SLOT_TEMP_2 == 2
-#    define BOOST_PP_SLOT_5_DIGIT_2 2
-# elif BOOST_PP_SLOT_TEMP_2 == 3
-#    define BOOST_PP_SLOT_5_DIGIT_2 3
-# elif BOOST_PP_SLOT_TEMP_2 == 4
-#    define BOOST_PP_SLOT_5_DIGIT_2 4
-# elif BOOST_PP_SLOT_TEMP_2 == 5
-#    define BOOST_PP_SLOT_5_DIGIT_2 5
-# elif BOOST_PP_SLOT_TEMP_2 == 6
-#    define BOOST_PP_SLOT_5_DIGIT_2 6
-# elif BOOST_PP_SLOT_TEMP_2 == 7
-#    define BOOST_PP_SLOT_5_DIGIT_2 7
-# elif BOOST_PP_SLOT_TEMP_2 == 8
-#    define BOOST_PP_SLOT_5_DIGIT_2 8
-# elif BOOST_PP_SLOT_TEMP_2 == 9
-#    define BOOST_PP_SLOT_5_DIGIT_2 9
-# endif
-#
-# if BOOST_PP_SLOT_TEMP_1 == 0
-#    define BOOST_PP_SLOT_5_DIGIT_1 0
-# elif BOOST_PP_SLOT_TEMP_1 == 1
-#    define BOOST_PP_SLOT_5_DIGIT_1 1
-# elif BOOST_PP_SLOT_TEMP_1 == 2
-#    define BOOST_PP_SLOT_5_DIGIT_1 2
-# elif BOOST_PP_SLOT_TEMP_1 == 3
-#    define BOOST_PP_SLOT_5_DIGIT_1 3
-# elif BOOST_PP_SLOT_TEMP_1 == 4
-#    define BOOST_PP_SLOT_5_DIGIT_1 4
-# elif BOOST_PP_SLOT_TEMP_1 == 5
-#    define BOOST_PP_SLOT_5_DIGIT_1 5
-# elif BOOST_PP_SLOT_TEMP_1 == 6
-#    define BOOST_PP_SLOT_5_DIGIT_1 6
-# elif BOOST_PP_SLOT_TEMP_1 == 7
-#    define BOOST_PP_SLOT_5_DIGIT_1 7
-# elif BOOST_PP_SLOT_TEMP_1 == 8
-#    define BOOST_PP_SLOT_5_DIGIT_1 8
-# elif BOOST_PP_SLOT_TEMP_1 == 9
-#    define BOOST_PP_SLOT_5_DIGIT_1 9
-# endif
-#
-# if BOOST_PP_SLOT_5_DIGIT_10
-#    define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_10(BOOST_PP_SLOT_5_DIGIT_10, BOOST_PP_SLOT_5_DIGIT_9, BOOST_PP_SLOT_5_DIGIT_8, BOOST_PP_SLOT_5_DIGIT_7, BOOST_PP_SLOT_5_DIGIT_6, BOOST_PP_SLOT_5_DIGIT_5, BOOST_PP_SLOT_5_DIGIT_4, BOOST_PP_SLOT_5_DIGIT_3, BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1)
-# elif BOOST_PP_SLOT_5_DIGIT_9
-#    define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_9(BOOST_PP_SLOT_5_DIGIT_9, BOOST_PP_SLOT_5_DIGIT_8, BOOST_PP_SLOT_5_DIGIT_7, BOOST_PP_SLOT_5_DIGIT_6, BOOST_PP_SLOT_5_DIGIT_5, BOOST_PP_SLOT_5_DIGIT_4, BOOST_PP_SLOT_5_DIGIT_3, BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1)
-# elif BOOST_PP_SLOT_5_DIGIT_8
-#    define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_8(BOOST_PP_SLOT_5_DIGIT_8, BOOST_PP_SLOT_5_DIGIT_7, BOOST_PP_SLOT_5_DIGIT_6, BOOST_PP_SLOT_5_DIGIT_5, BOOST_PP_SLOT_5_DIGIT_4, BOOST_PP_SLOT_5_DIGIT_3, BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1)
-# elif BOOST_PP_SLOT_5_DIGIT_7
-#    define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_7(BOOST_PP_SLOT_5_DIGIT_7, BOOST_PP_SLOT_5_DIGIT_6, BOOST_PP_SLOT_5_DIGIT_5, BOOST_PP_SLOT_5_DIGIT_4, BOOST_PP_SLOT_5_DIGIT_3, BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1)
-# elif BOOST_PP_SLOT_5_DIGIT_6
-#    define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_6(BOOST_PP_SLOT_5_DIGIT_6, BOOST_PP_SLOT_5_DIGIT_5, BOOST_PP_SLOT_5_DIGIT_4, BOOST_PP_SLOT_5_DIGIT_3, BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1)
-# elif BOOST_PP_SLOT_5_DIGIT_5
-#    define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_5(BOOST_PP_SLOT_5_DIGIT_5, BOOST_PP_SLOT_5_DIGIT_4, BOOST_PP_SLOT_5_DIGIT_3, BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1)
-# elif BOOST_PP_SLOT_5_DIGIT_4
-#    define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_4(BOOST_PP_SLOT_5_DIGIT_4, BOOST_PP_SLOT_5_DIGIT_3, BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1)
-# elif BOOST_PP_SLOT_5_DIGIT_3
-#    define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_3(BOOST_PP_SLOT_5_DIGIT_3, BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1)
-# elif BOOST_PP_SLOT_5_DIGIT_2
-#    define BOOST_PP_SLOT_5() BOOST_PP_SLOT_CC_2(BOOST_PP_SLOT_5_DIGIT_2, BOOST_PP_SLOT_5_DIGIT_1)
-# else
-#    define BOOST_PP_SLOT_5() BOOST_PP_SLOT_5_DIGIT_1
-# endif
diff --git a/boost/preprocessor/slot/slot.hpp b/boost/preprocessor/slot/slot.hpp
deleted file mode 100644
index 147b097..0000000
--- a/boost/preprocessor/slot/slot.hpp
+++ /dev/null
@@ -1,32 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002.
-#  *     Distributed under the Boost Software License, Version 1.0. (See
-#  *     accompanying file LICENSE_1_0.txt or copy at
-#  *     http://www.boost.org/LICENSE_1_0.txt)
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_SLOT_SLOT_HPP
-# define BOOST_PREPROCESSOR_SLOT_SLOT_HPP
-#
-# include <boost/preprocessor/cat.hpp>
-# include <boost/preprocessor/slot/detail/def.hpp>
-#
-# /* BOOST_PP_ASSIGN_SLOT */
-#
-# define BOOST_PP_ASSIGN_SLOT(i) BOOST_PP_CAT(BOOST_PP_ASSIGN_SLOT_, i)
-#
-# define BOOST_PP_ASSIGN_SLOT_1 <boost/preprocessor/slot/detail/slot1.hpp>
-# define BOOST_PP_ASSIGN_SLOT_2 <boost/preprocessor/slot/detail/slot2.hpp>
-# define BOOST_PP_ASSIGN_SLOT_3 <boost/preprocessor/slot/detail/slot3.hpp>
-# define BOOST_PP_ASSIGN_SLOT_4 <boost/preprocessor/slot/detail/slot4.hpp>
-# define BOOST_PP_ASSIGN_SLOT_5 <boost/preprocessor/slot/detail/slot5.hpp>
-#
-# /* BOOST_PP_SLOT */
-#
-# define BOOST_PP_SLOT(i) BOOST_PP_CAT(BOOST_PP_SLOT_, i)()
-#
-# endif
diff --git a/boost/preprocessor/stringize.hpp b/boost/preprocessor/stringize.hpp
deleted file mode 100644
index 64dd5fd..0000000
--- a/boost/preprocessor/stringize.hpp
+++ /dev/null
@@ -1,33 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * Distributed under the Boost Software License, Version 1.0. (See
-#  * accompanying file LICENSE_1_0.txt or copy at
-#  * http://www.boost.org/LICENSE_1_0.txt)
-#  */
-#
-# /* Revised by Paul Mensonides (2002) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_STRINGIZE_HPP
-# define BOOST_PREPROCESSOR_STRINGIZE_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-#
-# /* BOOST_PP_STRINGIZE */
-#
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
-#    define BOOST_PP_STRINGIZE(text) BOOST_PP_STRINGIZE_A((text))
-#    define BOOST_PP_STRINGIZE_A(arg) BOOST_PP_STRINGIZE_I arg
-# elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#    define BOOST_PP_STRINGIZE(text) BOOST_PP_STRINGIZE_OO((text))
-#    define BOOST_PP_STRINGIZE_OO(par) BOOST_PP_STRINGIZE_I ## par
-# else
-#    define BOOST_PP_STRINGIZE(text) BOOST_PP_STRINGIZE_I(text)
-# endif
-#
-# define BOOST_PP_STRINGIZE_I(text) #text
-#
-# endif
diff --git a/boost/preprocessor/tuple/eat.hpp b/boost/preprocessor/tuple/eat.hpp
deleted file mode 100644
index 708015e..0000000
--- a/boost/preprocessor/tuple/eat.hpp
+++ /dev/null
@@ -1,106 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * Distributed under the Boost Software License, Version 1.0. (See
-#  * accompanying file LICENSE_1_0.txt or copy at
-#  * http://www.boost.org/LICENSE_1_0.txt)
-#  */
-#
-# /* Revised by Paul Mensonides (2002-2011) */
-# /* Revised by Edward Diener (2011) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_TUPLE_EAT_HPP
-# define BOOST_PREPROCESSOR_TUPLE_EAT_HPP
-#
-# include <boost/preprocessor/config/config.hpp>
-#
-# /* BOOST_PP_EAT */
-#
-# if BOOST_PP_VARIADICS
-#    define BOOST_PP_EAT(...)
-# else
-#    define BOOST_PP_EAT(x)
-# endif
-#
-# /* BOOST_PP_TUPLE_EAT */
-#
-# if BOOST_PP_VARIADICS
-#    define BOOST_PP_TUPLE_EAT(size) BOOST_PP_EAT
-# else
-#    if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#        define BOOST_PP_TUPLE_EAT(size) BOOST_PP_TUPLE_EAT_I(size)
-#    else
-#        define BOOST_PP_TUPLE_EAT(size) BOOST_PP_TUPLE_EAT_OO((size))
-#        define BOOST_PP_TUPLE_EAT_OO(par) BOOST_PP_TUPLE_EAT_I ## par
-#    endif
-#    define BOOST_PP_TUPLE_EAT_I(size) BOOST_PP_TUPLE_EAT_ ## size
-# endif
-# define BOOST_PP_TUPLE_EAT_1(e0)
-# define BOOST_PP_TUPLE_EAT_2(e0, e1)
-# define BOOST_PP_TUPLE_EAT_3(e0, e1, e2)
-# define BOOST_PP_TUPLE_EAT_4(e0, e1, e2, e3)
-# define BOOST_PP_TUPLE_EAT_5(e0, e1, e2, e3, e4)
-# define BOOST_PP_TUPLE_EAT_6(e0, e1, e2, e3, e4, e5)
-# define BOOST_PP_TUPLE_EAT_7(e0, e1, e2, e3, e4, e5, e6)
-# define BOOST_PP_TUPLE_EAT_8(e0, e1, e2, e3, e4, e5, e6, e7)
-# define BOOST_PP_TUPLE_EAT_9(e0, e1, e2, e3, e4, e5, e6, e7, e8)
-# define BOOST_PP_TUPLE_EAT_10(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9)
-# define BOOST_PP_TUPLE_EAT_11(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10)
-# define BOOST_PP_TUPLE_EAT_12(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11)
-# define BOOST_PP_TUPLE_EAT_13(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12)
-# define BOOST_PP_TUPLE_EAT_14(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13)
-# define BOOST_PP_TUPLE_EAT_15(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14)
-# define BOOST_PP_TUPLE_EAT_16(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15)
-# define BOOST_PP_TUPLE_EAT_17(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16)
-# define BOOST_PP_TUPLE_EAT_18(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17)
-# define BOOST_PP_TUPLE_EAT_19(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18)
-# define BOOST_PP_TUPLE_EAT_20(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19)
-# define BOOST_PP_TUPLE_EAT_21(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20)
-# define BOOST_PP_TUPLE_EAT_22(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21)
-# define BOOST_PP_TUPLE_EAT_23(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22)
-# define BOOST_PP_TUPLE_EAT_24(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23)
-# define BOOST_PP_TUPLE_EAT_25(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24)
-# define BOOST_PP_TUPLE_EAT_26(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25)
-# define BOOST_PP_TUPLE_EAT_27(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26)
-# define BOOST_PP_TUPLE_EAT_28(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27)
-# define BOOST_PP_TUPLE_EAT_29(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28)
-# define BOOST_PP_TUPLE_EAT_30(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29)
-# define BOOST_PP_TUPLE_EAT_31(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30)
-# define BOOST_PP_TUPLE_EAT_32(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31)
-# define BOOST_PP_TUPLE_EAT_33(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32)
-# define BOOST_PP_TUPLE_EAT_34(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33)
-# define BOOST_PP_TUPLE_EAT_35(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34)
-# define BOOST_PP_TUPLE_EAT_36(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35)
-# define BOOST_PP_TUPLE_EAT_37(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36)
-# define BOOST_PP_TUPLE_EAT_38(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37)
-# define BOOST_PP_TUPLE_EAT_39(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38)
-# define BOOST_PP_TUPLE_EAT_40(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39)
-# define BOOST_PP_TUPLE_EAT_41(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40)
-# define BOOST_PP_TUPLE_EAT_42(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41)
-# define BOOST_PP_TUPLE_EAT_43(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42)
-# define BOOST_PP_TUPLE_EAT_44(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43)
-# define BOOST_PP_TUPLE_EAT_45(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44)
-# define BOOST_PP_TUPLE_EAT_46(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45)
-# define BOOST_PP_TUPLE_EAT_47(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46)
-# define BOOST_PP_TUPLE_EAT_48(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47)
-# define BOOST_PP_TUPLE_EAT_49(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48)
-# define BOOST_PP_TUPLE_EAT_50(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49)
-# define BOOST_PP_TUPLE_EAT_51(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50)
-# define BOOST_PP_TUPLE_EAT_52(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51)
-# define BOOST_PP_TUPLE_EAT_53(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52)
-# define BOOST_PP_TUPLE_EAT_54(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53)
-# define BOOST_PP_TUPLE_EAT_55(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54)
-# define BOOST_PP_TUPLE_EAT_56(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55)
-# define BOOST_PP_TUPLE_EAT_57(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56)
-# define BOOST_PP_TUPLE_EAT_58(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57)
-# define BOOST_PP_TUPLE_EAT_59(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58)
-# define BOOST_PP_TUPLE_EAT_60(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59)
-# define BOOST_PP_TUPLE_EAT_61(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60)
-# define BOOST_PP_TUPLE_EAT_62(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61)
-# define BOOST_PP_TUPLE_EAT_63(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62)
-# define BOOST_PP_TUPLE_EAT_64(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63)
-#
-# endif
diff --git a/boost/preprocessor/tuple/elem.hpp b/boost/preprocessor/tuple/elem.hpp
deleted file mode 100644
index 3eba1c5..0000000
--- a/boost/preprocessor/tuple/elem.hpp
+++ /dev/null
@@ -1,191 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * Distributed under the Boost Software License, Version 1.0. (See
-#  * accompanying file LICENSE_1_0.txt or copy at
-#  * http://www.boost.org/LICENSE_1_0.txt)
-#  */
-#
-# /* Revised by Paul Mensonides (2002-2011) */
-# /* Revised by Edward Diener (2011) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_TUPLE_ELEM_HPP
-# define BOOST_PREPROCESSOR_TUPLE_ELEM_HPP
-#
-# include <boost/preprocessor/cat.hpp>
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/facilities/overload.hpp>
-# include <boost/preprocessor/tuple/rem.hpp>
-# include <boost/preprocessor/variadic/elem.hpp>
-#
-# if BOOST_PP_VARIADICS
-#    if BOOST_PP_VARIADICS_MSVC
-#        define BOOST_PP_TUPLE_ELEM(...) BOOST_PP_TUPLE_ELEM_I(BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_ELEM_O_, __VA_ARGS__), (__VA_ARGS__))
-#        define BOOST_PP_TUPLE_ELEM_I(m, args) BOOST_PP_TUPLE_ELEM_II(m, args)
-#        define BOOST_PP_TUPLE_ELEM_II(m, args) BOOST_PP_CAT(m ## args,)
-#    else
-#        define BOOST_PP_TUPLE_ELEM(...) BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_ELEM_O_, __VA_ARGS__)(__VA_ARGS__)
-#    endif
-#    define BOOST_PP_TUPLE_ELEM_O_2(n, tuple) BOOST_PP_VARIADIC_ELEM(n, BOOST_PP_REM tuple)
-#    define BOOST_PP_TUPLE_ELEM_O_3(size, n, tuple) BOOST_PP_TUPLE_ELEM_O_2(n, tuple)
-# else
-#    if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
-#        define BOOST_PP_TUPLE_ELEM(size, n, tuple) BOOST_PP_TUPLE_ELEM_I(BOOST_PP_CAT(BOOST_PP_TUPLE_ELEM_, n), BOOST_PP_CAT(BOOST_PP_CAT(BOOST_PP_TUPLE_ELEM_E_, size), tuple))
-#        define BOOST_PP_TUPLE_ELEM_I(m, args) BOOST_PP_TUPLE_ELEM_II(m, args)
-#        define BOOST_PP_TUPLE_ELEM_II(m, args) BOOST_PP_CAT(m ## args,)
-#    elif BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#        define BOOST_PP_TUPLE_ELEM(size, n, tuple) BOOST_PP_TUPLE_ELEM_I_OO((size, n, tuple))
-#        define BOOST_PP_TUPLE_ELEM_I_OO(par) BOOST_PP_TUPLE_ELEM_I ## par
-#        define BOOST_PP_TUPLE_ELEM_I(size, n, tuple) BOOST_PP_TUPLE_ELEM_II((n, BOOST_PP_TUPLE_ELEM_E_ ## size ## tuple))
-#        define BOOST_PP_TUPLE_ELEM_II(par) BOOST_PP_TUPLE_ELEM_III_OO(par)
-#        define BOOST_PP_TUPLE_ELEM_III_OO(par) BOOST_PP_TUPLE_ELEM_III ## par
-#        define BOOST_PP_TUPLE_ELEM_III(n, etuple) BOOST_PP_TUPLE_ELEM_ ## n ## etuple
-#    else
-#        define BOOST_PP_TUPLE_ELEM(size, n, tuple) BOOST_PP_TUPLE_ELEM_I(BOOST_PP_CAT(BOOST_PP_TUPLE_ELEM_, n) BOOST_PP_CAT(BOOST_PP_TUPLE_ELEM_E_, size) tuple)
-#        define BOOST_PP_TUPLE_ELEM_I(x) x
-#    endif
-#    define BOOST_PP_TUPLE_ELEM_E_1(e0) (e0, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_2(e0, e1) (e0, e1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_3(e0, e1, e2) (e0, e1, e2, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_4(e0, e1, e2, e3) (e0, e1, e2, e3, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_5(e0, e1, e2, e3, e4) (e0, e1, e2, e3, e4, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_6(e0, e1, e2, e3, e4, e5) (e0, e1, e2, e3, e4, e5, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_7(e0, e1, e2, e3, e4, e5, e6) (e0, e1, e2, e3, e4, e5, e6, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_8(e0, e1, e2, e3, e4, e5, e6, e7) (e0, e1, e2, e3, e4, e5, e6, e7, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_9(e0, e1, e2, e3, e4, e5, e6, e7, e8) (e0, e1, e2, e3, e4, e5, e6, e7, e8, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_10(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_11(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_12(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_13(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_14(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_15(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_16(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_17(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_18(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_19(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_20(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_21(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_22(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_23(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_24(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_25(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_26(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_27(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_28(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_29(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_30(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_31(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_32(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_33(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_34(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_35(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_36(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_37(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_38(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_39(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_40(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_41(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-#    define BOOST_PP_TUPLE_ELEM_E_42(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,  [...]
-#    define BOOST_PP_TUPLE_ELEM_E_43(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, [...]
-#    define BOOST_PP_TUPLE_ELEM_E_44(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? [...]
-#    define BOOST_PP_TUPLE_ELEM_E_45(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, ?, ?, ?, ?, ?, ?, ?, ?,  [...]
-#    define BOOST_PP_TUPLE_ELEM_E_46(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, ?, ?, ?, ?, ?, [...]
-#    define BOOST_PP_TUPLE_ELEM_E_47(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, ?, ? [...]
-#    define BOOST_PP_TUPLE_ELEM_E_48(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, [...]
-#    define BOOST_PP_TUPLE_ELEM_E_49(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, [...]
-#    define BOOST_PP_TUPLE_ELEM_E_50(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, [...]
-#    define BOOST_PP_TUPLE_ELEM_E_51(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, [...]
-#    define BOOST_PP_TUPLE_ELEM_E_52(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, [...]
-#    define BOOST_PP_TUPLE_ELEM_E_53(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, [...]
-#    define BOOST_PP_TUPLE_ELEM_E_54(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, [...]
-#    define BOOST_PP_TUPLE_ELEM_E_55(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, [...]
-#    define BOOST_PP_TUPLE_ELEM_E_56(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, [...]
-#    define BOOST_PP_TUPLE_ELEM_E_57(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, [...]
-#    define BOOST_PP_TUPLE_ELEM_E_58(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, [...]
-#    define BOOST_PP_TUPLE_ELEM_E_59(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, [...]
-#    define BOOST_PP_TUPLE_ELEM_E_60(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, [...]
-#    define BOOST_PP_TUPLE_ELEM_E_61(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, [...]
-#    define BOOST_PP_TUPLE_ELEM_E_62(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, [...]
-#    define BOOST_PP_TUPLE_ELEM_E_63(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62) (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, [...]
-#    define BOOST_PP_TUPLE_ELEM_E_64
-#    define BOOST_PP_TUPLE_ELEM_0(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e0
-#    define BOOST_PP_TUPLE_ELEM_1(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e1
-#    define BOOST_PP_TUPLE_ELEM_2(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e2
-#    define BOOST_PP_TUPLE_ELEM_3(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e3
-#    define BOOST_PP_TUPLE_ELEM_4(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e4
-#    define BOOST_PP_TUPLE_ELEM_5(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e5
-#    define BOOST_PP_TUPLE_ELEM_6(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e6
-#    define BOOST_PP_TUPLE_ELEM_7(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e7
-#    define BOOST_PP_TUPLE_ELEM_8(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e8
-#    define BOOST_PP_TUPLE_ELEM_9(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e9
-#    define BOOST_PP_TUPLE_ELEM_10(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e10
-#    define BOOST_PP_TUPLE_ELEM_11(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e11
-#    define BOOST_PP_TUPLE_ELEM_12(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e12
-#    define BOOST_PP_TUPLE_ELEM_13(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e13
-#    define BOOST_PP_TUPLE_ELEM_14(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e14
-#    define BOOST_PP_TUPLE_ELEM_15(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e15
-#    define BOOST_PP_TUPLE_ELEM_16(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e16
-#    define BOOST_PP_TUPLE_ELEM_17(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e17
-#    define BOOST_PP_TUPLE_ELEM_18(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e18
-#    define BOOST_PP_TUPLE_ELEM_19(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e19
-#    define BOOST_PP_TUPLE_ELEM_20(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e20
-#    define BOOST_PP_TUPLE_ELEM_21(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e21
-#    define BOOST_PP_TUPLE_ELEM_22(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e22
-#    define BOOST_PP_TUPLE_ELEM_23(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e23
-#    define BOOST_PP_TUPLE_ELEM_24(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e24
-#    define BOOST_PP_TUPLE_ELEM_25(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e25
-#    define BOOST_PP_TUPLE_ELEM_26(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e26
-#    define BOOST_PP_TUPLE_ELEM_27(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e27
-#    define BOOST_PP_TUPLE_ELEM_28(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e28
-#    define BOOST_PP_TUPLE_ELEM_29(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e29
-#    define BOOST_PP_TUPLE_ELEM_30(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e30
-#    define BOOST_PP_TUPLE_ELEM_31(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e31
-#    define BOOST_PP_TUPLE_ELEM_32(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e32
-#    define BOOST_PP_TUPLE_ELEM_33(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e33
-#    define BOOST_PP_TUPLE_ELEM_34(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e34
-#    define BOOST_PP_TUPLE_ELEM_35(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e35
-#    define BOOST_PP_TUPLE_ELEM_36(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e36
-#    define BOOST_PP_TUPLE_ELEM_37(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e37
-#    define BOOST_PP_TUPLE_ELEM_38(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e38
-#    define BOOST_PP_TUPLE_ELEM_39(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e39
-#    define BOOST_PP_TUPLE_ELEM_40(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e40
-#    define BOOST_PP_TUPLE_ELEM_41(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e41
-#    define BOOST_PP_TUPLE_ELEM_42(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e42
-#    define BOOST_PP_TUPLE_ELEM_43(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e43
-#    define BOOST_PP_TUPLE_ELEM_44(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e44
-#    define BOOST_PP_TUPLE_ELEM_45(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e45
-#    define BOOST_PP_TUPLE_ELEM_46(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e46
-#    define BOOST_PP_TUPLE_ELEM_47(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e47
-#    define BOOST_PP_TUPLE_ELEM_48(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e48
-#    define BOOST_PP_TUPLE_ELEM_49(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e49
-#    define BOOST_PP_TUPLE_ELEM_50(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e50
-#    define BOOST_PP_TUPLE_ELEM_51(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e51
-#    define BOOST_PP_TUPLE_ELEM_52(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e52
-#    define BOOST_PP_TUPLE_ELEM_53(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e53
-#    define BOOST_PP_TUPLE_ELEM_54(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e54
-#    define BOOST_PP_TUPLE_ELEM_55(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e55
-#    define BOOST_PP_TUPLE_ELEM_56(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e56
-#    define BOOST_PP_TUPLE_ELEM_57(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e57
-#    define BOOST_PP_TUPLE_ELEM_58(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e58
-#    define BOOST_PP_TUPLE_ELEM_59(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e59
-#    define BOOST_PP_TUPLE_ELEM_60(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e60
-#    define BOOST_PP_TUPLE_ELEM_61(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e61
-#    define BOOST_PP_TUPLE_ELEM_62(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e62
-#    define BOOST_PP_TUPLE_ELEM_63(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e63
-# endif
-#
-# /* directly used elsewhere in Boost... */
-#
-# define BOOST_PP_TUPLE_ELEM_1_0(a) a
-#
-# define BOOST_PP_TUPLE_ELEM_2_0(a, b) a
-# define BOOST_PP_TUPLE_ELEM_2_1(a, b) b
-#
-# define BOOST_PP_TUPLE_ELEM_3_0(a, b, c) a
-# define BOOST_PP_TUPLE_ELEM_3_1(a, b, c) b
-# define BOOST_PP_TUPLE_ELEM_3_2(a, b, c) c
-#
-# endif
diff --git a/boost/preprocessor/tuple/rem.hpp b/boost/preprocessor/tuple/rem.hpp
deleted file mode 100644
index af668a0..0000000
--- a/boost/preprocessor/tuple/rem.hpp
+++ /dev/null
@@ -1,135 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Paul Mensonides 2002-2011.                             *
-#  *     (C) Copyright Edward Diener 2011.                                    *
-#  *     Distributed under the Boost Software License, Version 1.0. (See      *
-#  *     accompanying file LICENSE_1_0.txt or copy at                         *
-#  *     http://www.boost.org/LICENSE_1_0.txt)                                *
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_TUPLE_REM_HPP
-# define BOOST_PREPROCESSOR_TUPLE_REM_HPP
-#
-# include <boost/preprocessor/cat.hpp>
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/facilities/overload.hpp>
-#
-# /* BOOST_PP_REM */
-#
-# if BOOST_PP_VARIADICS
-#    define BOOST_PP_REM(...) __VA_ARGS__
-# else
-#    define BOOST_PP_REM(x) x
-# endif
-#
-# /* BOOST_PP_TUPLE_REM */
-#
-# if BOOST_PP_VARIADICS
-#    define BOOST_PP_TUPLE_REM(size) BOOST_PP_REM
-# else
-#    if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#        define BOOST_PP_TUPLE_REM(size) BOOST_PP_TUPLE_REM_I(size)
-#    else
-#        define BOOST_PP_TUPLE_REM(size) BOOST_PP_TUPLE_REM_OO((size))
-#        define BOOST_PP_TUPLE_REM_OO(par) BOOST_PP_TUPLE_REM_I ## par
-#    endif
-#    define BOOST_PP_TUPLE_REM_I(size) BOOST_PP_TUPLE_REM_ ## size
-# endif
-# define BOOST_PP_TUPLE_REM_0()
-# define BOOST_PP_TUPLE_REM_1(e0) e0
-# define BOOST_PP_TUPLE_REM_2(e0, e1) e0, e1
-# define BOOST_PP_TUPLE_REM_3(e0, e1, e2) e0, e1, e2
-# define BOOST_PP_TUPLE_REM_4(e0, e1, e2, e3) e0, e1, e2, e3
-# define BOOST_PP_TUPLE_REM_5(e0, e1, e2, e3, e4) e0, e1, e2, e3, e4
-# define BOOST_PP_TUPLE_REM_6(e0, e1, e2, e3, e4, e5) e0, e1, e2, e3, e4, e5
-# define BOOST_PP_TUPLE_REM_7(e0, e1, e2, e3, e4, e5, e6) e0, e1, e2, e3, e4, e5, e6
-# define BOOST_PP_TUPLE_REM_8(e0, e1, e2, e3, e4, e5, e6, e7) e0, e1, e2, e3, e4, e5, e6, e7
-# define BOOST_PP_TUPLE_REM_9(e0, e1, e2, e3, e4, e5, e6, e7, e8) e0, e1, e2, e3, e4, e5, e6, e7, e8
-# define BOOST_PP_TUPLE_REM_10(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9
-# define BOOST_PP_TUPLE_REM_11(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10
-# define BOOST_PP_TUPLE_REM_12(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11
-# define BOOST_PP_TUPLE_REM_13(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12
-# define BOOST_PP_TUPLE_REM_14(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13
-# define BOOST_PP_TUPLE_REM_15(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14
-# define BOOST_PP_TUPLE_REM_16(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15
-# define BOOST_PP_TUPLE_REM_17(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16
-# define BOOST_PP_TUPLE_REM_18(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17
-# define BOOST_PP_TUPLE_REM_19(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18
-# define BOOST_PP_TUPLE_REM_20(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19
-# define BOOST_PP_TUPLE_REM_21(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20
-# define BOOST_PP_TUPLE_REM_22(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21
-# define BOOST_PP_TUPLE_REM_23(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22
-# define BOOST_PP_TUPLE_REM_24(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23
-# define BOOST_PP_TUPLE_REM_25(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24
-# define BOOST_PP_TUPLE_REM_26(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25
-# define BOOST_PP_TUPLE_REM_27(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26
-# define BOOST_PP_TUPLE_REM_28(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27
-# define BOOST_PP_TUPLE_REM_29(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28
-# define BOOST_PP_TUPLE_REM_30(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29
-# define BOOST_PP_TUPLE_REM_31(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30
-# define BOOST_PP_TUPLE_REM_32(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31
-# define BOOST_PP_TUPLE_REM_33(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32
-# define BOOST_PP_TUPLE_REM_34(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33
-# define BOOST_PP_TUPLE_REM_35(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34
-# define BOOST_PP_TUPLE_REM_36(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35
-# define BOOST_PP_TUPLE_REM_37(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36
-# define BOOST_PP_TUPLE_REM_38(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37
-# define BOOST_PP_TUPLE_REM_39(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38
-# define BOOST_PP_TUPLE_REM_40(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39
-# define BOOST_PP_TUPLE_REM_41(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40
-# define BOOST_PP_TUPLE_REM_42(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41
-# define BOOST_PP_TUPLE_REM_43(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42
-# define BOOST_PP_TUPLE_REM_44(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43
-# define BOOST_PP_TUPLE_REM_45(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44
-# define BOOST_PP_TUPLE_REM_46(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45
-# define BOOST_PP_TUPLE_REM_47(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46
-# define BOOST_PP_TUPLE_REM_48(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47
-# define BOOST_PP_TUPLE_REM_49(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48
-# define BOOST_PP_TUPLE_REM_50(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e [...]
-# define BOOST_PP_TUPLE_REM_51(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e [...]
-# define BOOST_PP_TUPLE_REM_52(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e [...]
-# define BOOST_PP_TUPLE_REM_53(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e [...]
-# define BOOST_PP_TUPLE_REM_54(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e [...]
-# define BOOST_PP_TUPLE_REM_55(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e [...]
-# define BOOST_PP_TUPLE_REM_56(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e [...]
-# define BOOST_PP_TUPLE_REM_57(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e [...]
-# define BOOST_PP_TUPLE_REM_58(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e [...]
-# define BOOST_PP_TUPLE_REM_59(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e [...]
-# define BOOST_PP_TUPLE_REM_60(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e [...]
-# define BOOST_PP_TUPLE_REM_61(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e [...]
-# define BOOST_PP_TUPLE_REM_62(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e [...]
-# define BOOST_PP_TUPLE_REM_63(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e [...]
-# define BOOST_PP_TUPLE_REM_64(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e [...]
-#
-# /* BOOST_PP_TUPLE_REM_CTOR */
-#
-# if BOOST_PP_VARIADICS
-#    if BOOST_PP_VARIADICS_MSVC
-#        define BOOST_PP_TUPLE_REM_CTOR(...) BOOST_PP_TUPLE_REM_CTOR_I(BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_REM_CTOR_O_, __VA_ARGS__), (__VA_ARGS__))
-#        define BOOST_PP_TUPLE_REM_CTOR_I(m, args) BOOST_PP_TUPLE_REM_CTOR_II(m, args)
-#        define BOOST_PP_TUPLE_REM_CTOR_II(m, args) BOOST_PP_CAT(m ## args,)
-#    else
-#        define BOOST_PP_TUPLE_REM_CTOR(...) BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_REM_CTOR_O_, __VA_ARGS__)(__VA_ARGS__)
-#    endif
-#    define BOOST_PP_TUPLE_REM_CTOR_O_1(tuple) BOOST_PP_REM tuple
-#    define BOOST_PP_TUPLE_REM_CTOR_O_2(size, tuple) BOOST_PP_TUPLE_REM_CTOR_O_1(tuple)
-# else
-#    if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG()
-#        define BOOST_PP_TUPLE_REM_CTOR(size, tuple) BOOST_PP_TUPLE_REM_CTOR_I(BOOST_PP_TUPLE_REM(size), tuple)
-#    else
-#        define BOOST_PP_TUPLE_REM_CTOR(size, tuple) BOOST_PP_TUPLE_REM_CTOR_D(size, tuple)
-#        define BOOST_PP_TUPLE_REM_CTOR_D(size, tuple) BOOST_PP_TUPLE_REM_CTOR_I(BOOST_PP_TUPLE_REM(size), tuple)
-#    endif
-#    if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#        define BOOST_PP_TUPLE_REM_CTOR_I(ext, tuple) ext tuple
-#    else
-#        define BOOST_PP_TUPLE_REM_CTOR_I(ext, tuple) BOOST_PP_TUPLE_REM_CTOR_OO((ext, tuple))
-#        define BOOST_PP_TUPLE_REM_CTOR_OO(par) BOOST_PP_TUPLE_REM_CTOR_II ## par
-#        define BOOST_PP_TUPLE_REM_CTOR_II(ext, tuple) ext ## tuple
-#    endif
-# endif
-#
-# endif
diff --git a/boost/preprocessor/tuple/to_list.hpp b/boost/preprocessor/tuple/to_list.hpp
deleted file mode 100644
index 2a9d6fe..0000000
--- a/boost/preprocessor/tuple/to_list.hpp
+++ /dev/null
@@ -1,116 +0,0 @@
-# /* Copyright (C) 2001
-#  * Housemarque Oy
-#  * http://www.housemarque.com
-#  *
-#  * Distributed under the Boost Software License, Version 1.0. (See
-#  * accompanying file LICENSE_1_0.txt or copy at
-#  * http://www.boost.org/LICENSE_1_0.txt)
-#  */
-#
-# /* Revised by Paul Mensonides (2002-2011) */
-# /* Revised by Edward Diener (2011) */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_TUPLE_TO_LIST_HPP
-# define BOOST_PREPROCESSOR_TUPLE_TO_LIST_HPP
-#
-# include <boost/preprocessor/cat.hpp>
-# include <boost/preprocessor/config/config.hpp>
-# include <boost/preprocessor/facilities/overload.hpp>
-# include <boost/preprocessor/variadic/size.hpp>
-#
-# /* BOOST_PP_TUPLE_TO_LIST */
-#
-# if BOOST_PP_VARIADICS
-#    if BOOST_PP_VARIADICS_MSVC
-#        define BOOST_PP_TUPLE_TO_LIST(...) BOOST_PP_TUPLE_TO_LIST_I(BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_TO_LIST_O_, __VA_ARGS__), (__VA_ARGS__))
-#        define BOOST_PP_TUPLE_TO_LIST_I(m, args) BOOST_PP_TUPLE_TO_LIST_II(m, args)
-#        define BOOST_PP_TUPLE_TO_LIST_II(m, args) BOOST_PP_CAT(m ## args,)
-#    else
-#        define BOOST_PP_TUPLE_TO_LIST(...) BOOST_PP_OVERLOAD(BOOST_PP_TUPLE_TO_LIST_O_, __VA_ARGS__)(__VA_ARGS__)
-#    endif
-#    define BOOST_PP_TUPLE_TO_LIST_O_1(tuple) BOOST_PP_CAT(BOOST_PP_TUPLE_TO_LIST_, BOOST_PP_VARIADIC_SIZE tuple) tuple
-#    define BOOST_PP_TUPLE_TO_LIST_O_2(size, tuple) BOOST_PP_TUPLE_TO_LIST_O_1(tuple)
-# else
-#    if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC()
-#        define BOOST_PP_TUPLE_TO_LIST(size, tuple) BOOST_PP_TUPLE_TO_LIST_I(size, tuple)
-#        if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
-#            define BOOST_PP_TUPLE_TO_LIST_I(s, t) BOOST_PP_TUPLE_TO_LIST_ ## s t
-#        else
-#            define BOOST_PP_TUPLE_TO_LIST_I(s, t) BOOST_PP_TUPLE_TO_LIST_II(BOOST_PP_TUPLE_TO_LIST_ ## s t)
-#            define BOOST_PP_TUPLE_TO_LIST_II(res) res
-#        endif
-#    else
-#        define BOOST_PP_TUPLE_TO_LIST(size, tuple) BOOST_PP_TUPLE_TO_LIST_OO((size, tuple))
-#        define BOOST_PP_TUPLE_TO_LIST_OO(par) BOOST_PP_TUPLE_TO_LIST_I ## par
-#        define BOOST_PP_TUPLE_TO_LIST_I(s, t) BOOST_PP_TUPLE_TO_LIST_ ## s ## t
-#    endif
-# endif
-#
-# define BOOST_PP_TUPLE_TO_LIST_1(e0) (e0, BOOST_PP_NIL)
-# define BOOST_PP_TUPLE_TO_LIST_2(e0, e1) (e0, (e1, BOOST_PP_NIL))
-# define BOOST_PP_TUPLE_TO_LIST_3(e0, e1, e2) (e0, (e1, (e2, BOOST_PP_NIL)))
-# define BOOST_PP_TUPLE_TO_LIST_4(e0, e1, e2, e3) (e0, (e1, (e2, (e3, BOOST_PP_NIL))))
-# define BOOST_PP_TUPLE_TO_LIST_5(e0, e1, e2, e3, e4) (e0, (e1, (e2, (e3, (e4, BOOST_PP_NIL)))))
-# define BOOST_PP_TUPLE_TO_LIST_6(e0, e1, e2, e3, e4, e5) (e0, (e1, (e2, (e3, (e4, (e5, BOOST_PP_NIL))))))
-# define BOOST_PP_TUPLE_TO_LIST_7(e0, e1, e2, e3, e4, e5, e6) (e0, (e1, (e2, (e3, (e4, (e5, (e6, BOOST_PP_NIL)))))))
-# define BOOST_PP_TUPLE_TO_LIST_8(e0, e1, e2, e3, e4, e5, e6, e7) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, BOOST_PP_NIL))))))))
-# define BOOST_PP_TUPLE_TO_LIST_9(e0, e1, e2, e3, e4, e5, e6, e7, e8) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, BOOST_PP_NIL)))))))))
-# define BOOST_PP_TUPLE_TO_LIST_10(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, BOOST_PP_NIL))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_11(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, BOOST_PP_NIL)))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_12(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, BOOST_PP_NIL))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_13(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, BOOST_PP_NIL)))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_14(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, BOOST_PP_NIL))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_15(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, BOOST_PP_NIL)))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_16(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, BOOST_PP_NIL))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_17(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, BOOST_PP_NIL)))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_18(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, BOOST_PP_NIL))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_19(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, BOOST_PP_NIL)))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_20(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, BOOST_PP_NIL))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_21(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, BOOST_PP_NIL)))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_22(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, BOOST_PP_NIL))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_23(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, BOOST_PP_NIL)))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_24(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, BOOST_PP_NIL))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_25(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, BOOST_PP_NIL)))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_26(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, BOOST_PP_NIL))))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_27(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, BOOST_PP_NIL)))))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_28(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, BOOST_PP_NIL))))))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_29(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, BOOST_PP_NIL)))))))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_30(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, BOOST_PP_NIL))))))))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_31(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, BOOST_PP_NIL)))))))))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_32(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, BOOST_PP_NIL))))))))))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_33(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, BOOST_PP_NIL)))))))))))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_34(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, BOOST_PP_NIL))))))))))))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_35(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, BOOST_PP_NIL)))))))))))))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_36(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, BOOST_PP_NIL))))))))))))))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_37(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, BOOST_PP_NIL)))))))))))))))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_38(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, BOOST_PP_NIL))))))))))))))))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_39(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, BOOST_PP_NIL)))))))))))))))))))))))))))))))))))))))
-# define BOOST_PP_TUPLE_TO_LIST_40(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, BOOST_PP_NIL))))))))))))))))))))))))) [...]
-# define BOOST_PP_TUPLE_TO_LIST_41(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, BOOST_PP_NIL)))))))))))))) [...]
-# define BOOST_PP_TUPLE_TO_LIST_42(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, BOOST_PP_NIL))) [...]
-# define BOOST_PP_TUPLE_TO_LIST_43(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, BOOS [...]
-# define BOOST_PP_TUPLE_TO_LIST_44(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41, (e42, [...]
-# define BOOST_PP_TUPLE_TO_LIST_45(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, (e41,  [...]
-# define BOOST_PP_TUPLE_TO_LIST_46(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e40, ( [...]
-# define BOOST_PP_TUPLE_TO_LIST_47(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e39, (e [...]
-# define BOOST_PP_TUPLE_TO_LIST_48(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38, (e3 [...]
-# define BOOST_PP_TUPLE_TO_LIST_49(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, (e38 [...]
-# define BOOST_PP_TUPLE_TO_LIST_50(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36, (e37, [...]
-# define BOOST_PP_TUPLE_TO_LIST_51(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, (e36,  [...]
-# define BOOST_PP_TUPLE_TO_LIST_52(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e35, ( [...]
-# define BOOST_PP_TUPLE_TO_LIST_53(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e34, (e [...]
-# define BOOST_PP_TUPLE_TO_LIST_54(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33, (e3 [...]
-# define BOOST_PP_TUPLE_TO_LIST_55(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, (e33 [...]
-# define BOOST_PP_TUPLE_TO_LIST_56(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31, (e32, [...]
-# define BOOST_PP_TUPLE_TO_LIST_57(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, (e31,  [...]
-# define BOOST_PP_TUPLE_TO_LIST_58(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e30, ( [...]
-# define BOOST_PP_TUPLE_TO_LIST_59(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e29, (e [...]
-# define BOOST_PP_TUPLE_TO_LIST_60(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28, (e2 [...]
-# define BOOST_PP_TUPLE_TO_LIST_61(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, (e28 [...]
-# define BOOST_PP_TUPLE_TO_LIST_62(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26, (e27, [...]
-# define BOOST_PP_TUPLE_TO_LIST_63(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, (e26,  [...]
-# define BOOST_PP_TUPLE_TO_LIST_64(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63) (e0, (e1, (e2, (e3, (e4, (e5, (e6, (e7, (e8, (e9, (e10, (e11, (e12, (e13, (e14, (e15, (e16, (e17, (e18, (e19, (e20, (e21, (e22, (e23, (e24, (e25, ( [...]
-#
-# endif
diff --git a/boost/preprocessor/variadic/elem.hpp b/boost/preprocessor/variadic/elem.hpp
deleted file mode 100644
index be38a94..0000000
--- a/boost/preprocessor/variadic/elem.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Edward Diener 2011.                                    *
-#  *     (C) Copyright Paul Mensonides 2011.                                  *
-#  *     Distributed under the Boost Software License, Version 1.0. (See      *
-#  *     accompanying file LICENSE_1_0.txt or copy at                         *
-#  *     http://www.boost.org/LICENSE_1_0.txt)                                *
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_VARIADIC_ELEM_HPP
-# define BOOST_PREPROCESSOR_VARIADIC_ELEM_HPP
-#
-# include <boost/preprocessor/cat.hpp>
-# include <boost/preprocessor/config/config.hpp>
-#
-# /* BOOST_PP_VARIADIC_ELEM */
-#
-# if BOOST_PP_VARIADICS
-#    if BOOST_PP_VARIADICS_MSVC
-#        define BOOST_PP_VARIADIC_ELEM(n, ...) BOOST_PP_VARIADIC_ELEM_I(n,__VA_ARGS__)
-#        define BOOST_PP_VARIADIC_ELEM_I(n, ...) BOOST_PP_CAT(BOOST_PP_CAT(BOOST_PP_VARIADIC_ELEM_, n)(__VA_ARGS__,),)
-#    else
-#        define BOOST_PP_VARIADIC_ELEM(n, ...) BOOST_PP_CAT(BOOST_PP_VARIADIC_ELEM_, n)(__VA_ARGS__,)
-#    endif
-#    define BOOST_PP_VARIADIC_ELEM_0(e0, ...) e0
-#    define BOOST_PP_VARIADIC_ELEM_1(e0, e1, ...) e1
-#    define BOOST_PP_VARIADIC_ELEM_2(e0, e1, e2, ...) e2
-#    define BOOST_PP_VARIADIC_ELEM_3(e0, e1, e2, e3, ...) e3
-#    define BOOST_PP_VARIADIC_ELEM_4(e0, e1, e2, e3, e4, ...) e4
-#    define BOOST_PP_VARIADIC_ELEM_5(e0, e1, e2, e3, e4, e5, ...) e5
-#    define BOOST_PP_VARIADIC_ELEM_6(e0, e1, e2, e3, e4, e5, e6, ...) e6
-#    define BOOST_PP_VARIADIC_ELEM_7(e0, e1, e2, e3, e4, e5, e6, e7, ...) e7
-#    define BOOST_PP_VARIADIC_ELEM_8(e0, e1, e2, e3, e4, e5, e6, e7, e8, ...) e8
-#    define BOOST_PP_VARIADIC_ELEM_9(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, ...) e9
-#    define BOOST_PP_VARIADIC_ELEM_10(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, ...) e10
-#    define BOOST_PP_VARIADIC_ELEM_11(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, ...) e11
-#    define BOOST_PP_VARIADIC_ELEM_12(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, ...) e12
-#    define BOOST_PP_VARIADIC_ELEM_13(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, ...) e13
-#    define BOOST_PP_VARIADIC_ELEM_14(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, ...) e14
-#    define BOOST_PP_VARIADIC_ELEM_15(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, ...) e15
-#    define BOOST_PP_VARIADIC_ELEM_16(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, ...) e16
-#    define BOOST_PP_VARIADIC_ELEM_17(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, ...) e17
-#    define BOOST_PP_VARIADIC_ELEM_18(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, ...) e18
-#    define BOOST_PP_VARIADIC_ELEM_19(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, ...) e19
-#    define BOOST_PP_VARIADIC_ELEM_20(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, ...) e20
-#    define BOOST_PP_VARIADIC_ELEM_21(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, ...) e21
-#    define BOOST_PP_VARIADIC_ELEM_22(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, ...) e22
-#    define BOOST_PP_VARIADIC_ELEM_23(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, ...) e23
-#    define BOOST_PP_VARIADIC_ELEM_24(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, ...) e24
-#    define BOOST_PP_VARIADIC_ELEM_25(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, ...) e25
-#    define BOOST_PP_VARIADIC_ELEM_26(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, ...) e26
-#    define BOOST_PP_VARIADIC_ELEM_27(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, ...) e27
-#    define BOOST_PP_VARIADIC_ELEM_28(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, ...) e28
-#    define BOOST_PP_VARIADIC_ELEM_29(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, ...) e29
-#    define BOOST_PP_VARIADIC_ELEM_30(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, ...) e30
-#    define BOOST_PP_VARIADIC_ELEM_31(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, ...) e31
-#    define BOOST_PP_VARIADIC_ELEM_32(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, ...) e32
-#    define BOOST_PP_VARIADIC_ELEM_33(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, ...) e33
-#    define BOOST_PP_VARIADIC_ELEM_34(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, ...) e34
-#    define BOOST_PP_VARIADIC_ELEM_35(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, ...) e35
-#    define BOOST_PP_VARIADIC_ELEM_36(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, ...) e36
-#    define BOOST_PP_VARIADIC_ELEM_37(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, ...) e37
-#    define BOOST_PP_VARIADIC_ELEM_38(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, ...) e38
-#    define BOOST_PP_VARIADIC_ELEM_39(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, ...) e39
-#    define BOOST_PP_VARIADIC_ELEM_40(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, ...) e40
-#    define BOOST_PP_VARIADIC_ELEM_41(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, ...) e41
-#    define BOOST_PP_VARIADIC_ELEM_42(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, ...) e42
-#    define BOOST_PP_VARIADIC_ELEM_43(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, ...) e43
-#    define BOOST_PP_VARIADIC_ELEM_44(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, ...) e44
-#    define BOOST_PP_VARIADIC_ELEM_45(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, ...) e45
-#    define BOOST_PP_VARIADIC_ELEM_46(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, ...) e46
-#    define BOOST_PP_VARIADIC_ELEM_47(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, ...) e47
-#    define BOOST_PP_VARIADIC_ELEM_48(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, ...) e48
-#    define BOOST_PP_VARIADIC_ELEM_49(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, ...) e49
-#    define BOOST_PP_VARIADIC_ELEM_50(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, ...) e50
-#    define BOOST_PP_VARIADIC_ELEM_51(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, ...) e51
-#    define BOOST_PP_VARIADIC_ELEM_52(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, ...) e52
-#    define BOOST_PP_VARIADIC_ELEM_53(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, ...) e53
-#    define BOOST_PP_VARIADIC_ELEM_54(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, ...) e54
-#    define BOOST_PP_VARIADIC_ELEM_55(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, ...) e55
-#    define BOOST_PP_VARIADIC_ELEM_56(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, ...) e56
-#    define BOOST_PP_VARIADIC_ELEM_57(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, ...) e57
-#    define BOOST_PP_VARIADIC_ELEM_58(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, ...) e58
-#    define BOOST_PP_VARIADIC_ELEM_59(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, ...) e59
-#    define BOOST_PP_VARIADIC_ELEM_60(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, ...) e60
-#    define BOOST_PP_VARIADIC_ELEM_61(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, ...) e61
-#    define BOOST_PP_VARIADIC_ELEM_62(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, ...) e62
-#    define BOOST_PP_VARIADIC_ELEM_63(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63, ...) e63
-# endif
-#
-# endif
diff --git a/boost/preprocessor/variadic/size.hpp b/boost/preprocessor/variadic/size.hpp
deleted file mode 100644
index b92a5ff..0000000
--- a/boost/preprocessor/variadic/size.hpp
+++ /dev/null
@@ -1,30 +0,0 @@
-# /* **************************************************************************
-#  *                                                                          *
-#  *     (C) Copyright Edward Diener 2011.                                    *
-#  *     (C) Copyright Paul Mensonides 2011.                                  *
-#  *     Distributed under the Boost Software License, Version 1.0. (See      *
-#  *     accompanying file LICENSE_1_0.txt or copy at                         *
-#  *     http://www.boost.org/LICENSE_1_0.txt)                                *
-#  *                                                                          *
-#  ************************************************************************** */
-#
-# /* See http://www.boost.org for most recent version. */
-#
-# ifndef BOOST_PREPROCESSOR_VARIADIC_SIZE_HPP
-# define BOOST_PREPROCESSOR_VARIADIC_SIZE_HPP
-#
-# include <boost/preprocessor/cat.hpp>
-# include <boost/preprocessor/config/config.hpp>
-#
-# /* BOOST_PP_VARIADIC_SIZE */
-#
-# if BOOST_PP_VARIADICS
-#    if BOOST_PP_VARIADICS_MSVC
-#        define BOOST_PP_VARIADIC_SIZE(...) BOOST_PP_CAT(BOOST_PP_VARIADIC_SIZE_I(__VA_ARGS__, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1,),)
-#    else
-#        define BOOST_PP_VARIADIC_SIZE(...) BOOST_PP_VARIADIC_SIZE_I(__VA_ARGS__, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1,)
-#    endif
-#    define BOOST_PP_VARIADIC_SIZE_I(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63, size, ...) size
-# endif
-#
-# endif
diff --git a/boost/random.hpp b/boost/random.hpp
deleted file mode 100644
index d05f2f3..0000000
--- a/boost/random.hpp
+++ /dev/null
@@ -1,85 +0,0 @@
-/* boost random.hpp header file
- *
- * Copyright Jens Maurer 2000-2001
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org/libs/random for documentation.
- *
- * $Id: random.hpp 71018 2011-04-05 21:27:52Z steven_watanabe $
- *
- * Revision history
- *  2000-02-18  portability fixes (thanks to Beman Dawes)
- *  2000-02-21  shuffle_output, inversive_congruential_schrage,
- *              generator_iterator, uniform_smallint
- *  2000-02-23  generic modulus arithmetic helper, removed *_schrage classes,
- *              implemented Streamable and EqualityComparable concepts for 
- *              generators, added Bernoulli distribution and Box-Muller
- *              transform
- *  2000-03-01  cauchy, lognormal, triangle distributions; fixed 
- *              uniform_smallint; renamed gaussian to normal distribution
- *  2000-03-05  implemented iterator syntax for distribution functions
- *  2000-04-21  removed some optimizations for better BCC/MSVC compatibility
- *  2000-05-10  adapted to BCC and MSVC
- *  2000-06-13  incorporated review results
- *  2000-07-06  moved basic templates from namespace detail to random
- *  2000-09-23  warning removals and int64 fixes (Ed Brey)
- *  2000-09-24  added lagged_fibonacci generator (Matthias Troyer)
- *  2001-02-18  moved to individual header files
- */
-
-#ifndef BOOST_RANDOM_HPP
-#define BOOST_RANDOM_HPP
-
-// generators
-#include <boost/random/additive_combine.hpp>
-#include <boost/random/discard_block.hpp>
-#include <boost/random/independent_bits.hpp>
-#include <boost/random/inversive_congruential.hpp>
-#include <boost/random/lagged_fibonacci.hpp>
-#include <boost/random/linear_congruential.hpp>
-#include <boost/random/linear_feedback_shift.hpp>
-#include <boost/random/mersenne_twister.hpp>
-#include <boost/random/ranlux.hpp>
-#include <boost/random/shuffle_order.hpp>
-#include <boost/random/shuffle_output.hpp>
-#include <boost/random/subtract_with_carry.hpp>
-#include <boost/random/taus88.hpp>
-#include <boost/random/xor_combine.hpp>
-
-// misc
-#include <boost/random/generate_canonical.hpp>
-#include <boost/random/seed_seq.hpp>
-#include <boost/random/random_number_generator.hpp>
-#include <boost/random/variate_generator.hpp>
-
-// distributions
-#include <boost/random/bernoulli_distribution.hpp>
-#include <boost/random/binomial_distribution.hpp>
-#include <boost/random/cauchy_distribution.hpp>
-#include <boost/random/chi_squared_distribution.hpp>
-#include <boost/random/discrete_distribution.hpp>
-#include <boost/random/exponential_distribution.hpp>
-#include <boost/random/extreme_value_distribution.hpp>
-#include <boost/random/fisher_f_distribution.hpp>
-#include <boost/random/gamma_distribution.hpp>
-#include <boost/random/geometric_distribution.hpp>
-#include <boost/random/lognormal_distribution.hpp>
-#include <boost/random/negative_binomial_distribution.hpp>
-#include <boost/random/normal_distribution.hpp>
-#include <boost/random/piecewise_constant_distribution.hpp>
-#include <boost/random/piecewise_linear_distribution.hpp>
-#include <boost/random/poisson_distribution.hpp>
-#include <boost/random/student_t_distribution.hpp>
-#include <boost/random/triangle_distribution.hpp>
-#include <boost/random/uniform_01.hpp>
-#include <boost/random/uniform_int.hpp>
-#include <boost/random/uniform_int_distribution.hpp>
-#include <boost/random/uniform_on_sphere.hpp>
-#include <boost/random/uniform_real.hpp>
-#include <boost/random/uniform_real_distribution.hpp>
-#include <boost/random/uniform_smallint.hpp>
-#include <boost/random/weibull_distribution.hpp>
-
-#endif // BOOST_RANDOM_HPP
diff --git a/boost/random/additive_combine.hpp b/boost/random/additive_combine.hpp
deleted file mode 100644
index b4cb63c..0000000
--- a/boost/random/additive_combine.hpp
+++ /dev/null
@@ -1,283 +0,0 @@
-/* boost random/additive_combine.hpp header file
- *
- * Copyright Jens Maurer 2000-2001
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: additive_combine.hpp 71018 2011-04-05 21:27:52Z steven_watanabe $
- *
- * Revision history
- *  2001-02-18  moved to individual header files
- */
-
-#ifndef BOOST_RANDOM_ADDITIVE_COMBINE_HPP
-#define BOOST_RANDOM_ADDITIVE_COMBINE_HPP
-
-#include <istream>
-#include <iosfwd>
-#include <algorithm> // for std::min and std::max
-#include <boost/config.hpp>
-#include <boost/cstdint.hpp>
-#include <boost/random/detail/config.hpp>
-#include <boost/random/detail/operators.hpp>
-#include <boost/random/detail/seed.hpp>
-#include <boost/random/linear_congruential.hpp>
-
-namespace boost {
-namespace random {
-
-/**
- * An instantiation of class template @c additive_combine_engine models a
- * \pseudo_random_number_generator. It combines two multiplicative
- * \linear_congruential_engine number generators, i.e. those with @c c = 0.
- * It is described in
- *
- *  @blockquote
- *  "Efficient and Portable Combined Random Number Generators", Pierre L'Ecuyer,
- *  Communications of the ACM, Vol. 31, No. 6, June 1988, pp. 742-749, 774
- *  @endblockquote
- *
- * The template parameters MLCG1 and MLCG2 shall denote two different
- * \linear_congruential_engine number generators, each with c = 0. Each
- * invocation returns a random number
- * X(n) := (MLCG1(n) - MLCG2(n)) mod (m1 - 1),
- * where m1 denotes the modulus of MLCG1. 
- */
-template<class MLCG1, class MLCG2>
-class additive_combine_engine
-{
-public:
-    typedef MLCG1 first_base;
-    typedef MLCG2 second_base;
-    typedef typename MLCG1::result_type result_type;
-
-    // Required by old Boost.Random concept
-    BOOST_STATIC_CONSTANT(bool, has_fixed_range = false);
-    /**
-     * Returns the smallest value that the generator can produce
-     */
-    static result_type min BOOST_PREVENT_MACRO_SUBSTITUTION ()
-    { return 1; }
-    /**
-     * Returns the largest value that the generator can produce
-     */
-    static result_type max BOOST_PREVENT_MACRO_SUBSTITUTION ()
-    { return MLCG1::modulus-1; }
-
-    /**
-     * Constructs an @c additive_combine_engine using the
-     * default constructors of the two base generators.
-     */
-    additive_combine_engine() : _mlcg1(), _mlcg2() { }
-    /**
-     * Constructs an @c additive_combine_engine, using seed as
-     * the constructor argument for both base generators.
-     */
-    BOOST_RANDOM_DETAIL_ARITHMETIC_CONSTRUCTOR(additive_combine_engine,
-        result_type, seed_arg)
-    {
-        _mlcg1.seed(seed_arg);
-        _mlcg2.seed(seed_arg);
-    }
-    /**
-     * Constructs an @c additive_combine_engine, using seq as
-     * the constructor argument for both base generators.
-     *
-     * @xmlwarning
-     * The semantics of this function are liable to change.
-     * A @c seed_seq is designed to generate all the seeds
-     * in one shot, but this seeds the two base engines
-     * independantly and probably ends up giving the same
-     * sequence to both.
-     * @endxmlwarning
-     */
-    BOOST_RANDOM_DETAIL_SEED_SEQ_CONSTRUCTOR(additive_combine_engine,
-        SeedSeq, seq)
-    {
-        _mlcg1.seed(seq);
-        _mlcg2.seed(seq);
-    }
-    /**
-     * Constructs an @c additive_combine_engine, using
-     * @c seed1 and @c seed2 as the constructor argument to
-     * the first and second base generators, respectively.
-     */
-    additive_combine_engine(typename MLCG1::result_type seed1, 
-                            typename MLCG2::result_type seed2)
-      : _mlcg1(seed1), _mlcg2(seed2) { }
-    /**
-     * Contructs an @c additive_combine_engine with
-     * values from the range defined by the input iterators first
-     * and last.  first will be modified to point to the element
-     * after the last one used.
-     *
-     * Throws: @c std::invalid_argument if the input range is too small.
-     *
-     * Exception Safety: Basic
-     */
-    template<class It> additive_combine_engine(It& first, It last)
-      : _mlcg1(first, last), _mlcg2(first, last) { }
-
-    /**
-     * Seeds an @c additive_combine_engine using the default
-     * seeds of the two base generators.
-     */
-    void seed()
-    {
-        _mlcg1.seed();
-        _mlcg2.seed();
-    }
-
-    /**
-     * Seeds an @c additive_combine_engine, using @c seed as the
-     * seed for both base generators.
-     */
-    BOOST_RANDOM_DETAIL_ARITHMETIC_SEED(additive_combine_engine,
-        result_type, seed_arg)
-    {
-        _mlcg1.seed(seed_arg);
-        _mlcg2.seed(seed_arg);
-    }
-
-    /**
-     * Seeds an @c additive_combine_engine, using @c seq to
-     * seed both base generators.
-     *
-     * See the warning on the corresponding constructor.
-     */
-    BOOST_RANDOM_DETAIL_SEED_SEQ_SEED(additive_combine_engine,
-        SeedSeq, seq)
-    {
-        _mlcg1.seed(seq);
-        _mlcg2.seed(seq);
-    }
-
-    /**
-     * Seeds an @c additive_combine generator, using @c seed1 and @c seed2 as
-     * the seeds to the first and second base generators, respectively.
-     */
-    void seed(typename MLCG1::result_type seed1,
-              typename MLCG2::result_type seed2)
-    {
-        _mlcg1.seed(seed1);
-        _mlcg2.seed(seed2);
-    }
-
-    /**
-     * Seeds an @c additive_combine_engine with
-     * values from the range defined by the input iterators first
-     * and last.  first will be modified to point to the element
-     * after the last one used.
-     *
-     * Throws: @c std::invalid_argument if the input range is too small.
-     *
-     * Exception Safety: Basic
-     */
-    template<class It> void seed(It& first, It last)
-    {
-        _mlcg1.seed(first, last);
-        _mlcg2.seed(first, last);
-    }
-
-    /** Returns the next value of the generator. */
-    result_type operator()() {
-        result_type val1 = _mlcg1();
-        result_type val2 = _mlcg2();
-        if(val2 < val1) return val1 - val2;
-        else return val1 - val2 + MLCG1::modulus - 1;
-    }
-  
-    /** Fills a range with random values */
-    template<class Iter>
-    void generate(Iter first, Iter last)
-    { detail::generate_from_int(*this, first, last); }
-
-    /** Advances the state of the generator by @c z. */
-    void discard(boost::uintmax_t z)
-    {
-        _mlcg1.discard(z);
-        _mlcg2.discard(z);
-    }
-
-    /**
-     * Writes the state of an @c additive_combine_engine to a @c
-     * std::ostream.  The textual representation of an @c
-     * additive_combine_engine is the textual representation of
-     * the first base generator followed by the textual representation
-     * of the second base generator.
-     */
-    BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, additive_combine_engine, r)
-    { os << r._mlcg1 << ' ' << r._mlcg2; return os; }
-
-    /**
-     * Reads the state of an @c additive_combine_engine from a
-     * @c std::istream.
-     */
-    BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, additive_combine_engine, r)
-    { is >> r._mlcg1 >> std::ws >> r._mlcg2; return is; }
-
-    /**
-     * Returns: true iff the two @c additive_combine_engines will
-     * produce the same sequence of values.
-     */
-    BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(additive_combine_engine, x, y)
-    { return x._mlcg1 == y._mlcg1 && x._mlcg2 == y._mlcg2; }
-    /**
-     * Returns: true iff the two @c additive_combine_engines will
-     * produce different sequences of values.
-     */
-    BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(additive_combine_engine)
-
-private:
-    MLCG1 _mlcg1;
-    MLCG2 _mlcg2;
-};
-
-#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
-template<class MLCG1, class MLCG2>
-const bool additive_combine_engine<MLCG1, MLCG2>::has_fixed_range;
-#endif
-
-/// \cond show_deprecated
-
-/** Provided for backwards compatibility. */
-template<class MLCG1, class MLCG2, typename MLCG1::result_type val = 0>
-class additive_combine : public additive_combine_engine<MLCG1, MLCG2>
-{
-    typedef additive_combine_engine<MLCG1, MLCG2> base_t;
-public:
-    typedef typename base_t::result_type result_type;
-    additive_combine() {}
-    template<class T>
-    additive_combine(T& arg) : base_t(arg) {}
-    template<class T>
-    additive_combine(const T& arg) : base_t(arg) {}
-    template<class It>
-    additive_combine(It& first, It last) : base_t(first, last) {}
-};
-
-/// \endcond
-
-/**
- * The specialization \ecuyer1988 was suggested in
- *
- *  @blockquote
- *  "Efficient and Portable Combined Random Number Generators", Pierre L'Ecuyer,
- *  Communications of the ACM, Vol. 31, No. 6, June 1988, pp. 742-749, 774
- *  @endblockquote
- */
-typedef additive_combine_engine<
-    linear_congruential_engine<uint32_t, 40014, 0, 2147483563>,
-    linear_congruential_engine<uint32_t, 40692, 0, 2147483399>
-> ecuyer1988;
-
-} // namespace random
-
-using random::ecuyer1988;
-
-} // namespace boost
-
-#endif // BOOST_RANDOM_ADDITIVE_COMBINE_HPP
diff --git a/boost/random/bernoulli_distribution.hpp b/boost/random/bernoulli_distribution.hpp
deleted file mode 100644
index 79d905d..0000000
--- a/boost/random/bernoulli_distribution.hpp
+++ /dev/null
@@ -1,197 +0,0 @@
-/* boost random/bernoulli_distribution.hpp header file
- *
- * Copyright Jens Maurer 2000-2001
- * Copyright Steven Watanabe 2011
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: bernoulli_distribution.hpp 71018 2011-04-05 21:27:52Z steven_watanabe $
- *
- * Revision history
- *  2001-02-18  moved to individual header files
- */
-
-#ifndef BOOST_RANDOM_BERNOULLI_DISTRIBUTION_HPP
-#define BOOST_RANDOM_BERNOULLI_DISTRIBUTION_HPP
-
-#include <iosfwd>
-#include <boost/assert.hpp>
-#include <boost/random/detail/config.hpp>
-#include <boost/random/detail/operators.hpp>
-
-namespace boost {
-namespace random {
-
-/**
- * Instantiations of class template \bernoulli_distribution model a
- * \random_distribution. Such a random distribution produces bool values
- * distributed with probabilities P(true) = p and P(false) = 1-p. p is
- * the parameter of the distribution.
- */
-template<class RealType = double>
-class bernoulli_distribution
-{
-public:
-    // In principle, this could work with both integer and floating-point
-    // types.  Generating floating-point random numbers in the first
-    // place is probably more expensive, so use integer as input.
-    typedef int input_type;
-    typedef bool result_type;
-
-    class param_type
-    {
-    public:
-
-        typedef bernoulli_distribution distribution_type;
-
-        /** 
-         * Constructs the parameters of the distribution.
-         *
-         * Requires: 0 <= p <= 1
-         */
-        explicit param_type(RealType p_arg = RealType(0.5))
-          : _p(p_arg)
-        {
-            BOOST_ASSERT(_p >= 0);
-            BOOST_ASSERT(_p <= 1);
-        }
-
-        /** Returns the p parameter of the distribution. */
-        RealType p() const { return _p; }
-
-        /** Writes the parameters to a std::ostream. */
-        BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, param_type, parm)
-        {
-            os << parm._p;
-            return os;
-        }
-
-        /** Reads the parameters from a std::istream. */
-        BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, param_type, parm)
-        {
-            is >> parm._p;
-            return is;
-        }
-
-        /** Returns true if the two sets of parameters are equal. */
-        BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(param_type, lhs, rhs)
-        { return lhs._p == rhs._p; }
-
-        /** Returns true if the two sets of parameters are different. */
-        BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(param_type)
-
-    private:
-        RealType _p;
-    };
-
-    /** 
-     * Constructs a \bernoulli_distribution object.
-     * p is the parameter of the distribution.
-     *
-     * Requires: 0 <= p <= 1
-     */
-    explicit bernoulli_distribution(const RealType& p_arg = RealType(0.5)) 
-      : _p(p_arg)
-    {
-        BOOST_ASSERT(_p >= 0);
-        BOOST_ASSERT(_p <= 1);
-    }
-    /**
-     * Constructs \bernoulli_distribution from its parameters
-     */
-    explicit bernoulli_distribution(const param_type& parm)
-      : _p(parm.p()) {}
-
-    // compiler-generated copy ctor and assignment operator are fine
-
-    /**
-     * Returns: The "p" parameter of the distribution.
-     */
-    RealType p() const { return _p; }
-
-    /** Returns the smallest value that the distribution can produce. */
-    bool min BOOST_PREVENT_MACRO_SUBSTITUTION () const
-    { return false; }
-    /** Returns the largest value that the distribution can produce. */
-    bool max BOOST_PREVENT_MACRO_SUBSTITUTION () const
-    { return true; }
-
-    /** Returns the parameters of the distribution. */
-    param_type param() const { return param_type(_p); }
-    /** Sets the parameters of the distribution. */
-    void param(const param_type& parm) { _p = parm.p(); }
-
-    /**
-     * Effects: Subsequent uses of the distribution do not depend
-     * on values produced by any engine prior to invoking reset.
-     */
-    void reset() { }
-
-    /**
-     * Returns: a random variate distributed according to the
-     * \bernoulli_distribution.
-     */
-    template<class Engine>
-    bool operator()(Engine& eng) const
-    {
-        if(_p == RealType(0))
-            return false;
-        else
-            return RealType(eng() - (eng.min)()) <= _p * RealType((eng.max)()-(eng.min)());
-    }
-
-    /**
-     * Returns: a random variate distributed according to the
-     * \bernoulli_distribution with parameters specified by param.
-     */
-    template<class Engine>
-    bool operator()(Engine& eng, const param_type& parm) const
-    {
-        return bernoulli_distribution(parm)(eng);
-    }
-
-    /**
-     * Writes the parameters of the distribution to a @c std::ostream.
-     */
-    BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, bernoulli_distribution, bd)
-    {
-        os << bd._p;
-        return os;
-    }
-
-    /**
-     * Reads the parameters of the distribution from a @c std::istream.
-     */
-    BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, bernoulli_distribution, bd)
-    {
-        is >> bd._p;
-        return is;
-    }
-
-    /**
-     * Returns true iff the two distributions will produce identical
-     * sequences of values given equal generators.
-     */
-    BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(bernoulli_distribution, lhs, rhs)
-    { return lhs._p == rhs._p; }
-    
-    /**
-     * Returns true iff the two distributions will produce different
-     * sequences of values given equal generators.
-     */
-    BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(bernoulli_distribution)
-
-private:
-    RealType _p;
-};
-
-} // namespace random
-
-using random::bernoulli_distribution;
-
-} // namespace boost
-
-#endif // BOOST_RANDOM_BERNOULLI_DISTRIBUTION_HPP
diff --git a/boost/random/binomial_distribution.hpp b/boost/random/binomial_distribution.hpp
deleted file mode 100644
index dbe2784..0000000
--- a/boost/random/binomial_distribution.hpp
+++ /dev/null
@@ -1,422 +0,0 @@
-/* boost random/binomial_distribution.hpp header file
- *
- * Copyright Steven Watanabe 2010
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: binomial_distribution.hpp 71018 2011-04-05 21:27:52Z steven_watanabe $
- */
-
-#ifndef BOOST_RANDOM_BINOMIAL_DISTRIBUTION_HPP_INCLUDED
-#define BOOST_RANDOM_BINOMIAL_DISTRIBUTION_HPP_INCLUDED
-
-#include <boost/config/no_tr1/cmath.hpp>
-#include <cstdlib>
-#include <iosfwd>
-
-#include <boost/random/detail/config.hpp>
-#include <boost/random/uniform_01.hpp>
-
-#include <boost/random/detail/disable_warnings.hpp>
-
-namespace boost {
-namespace random {
-
-namespace detail {
-
-template<class RealType>
-struct binomial_table {
-    static const RealType table[10];
-};
-
-template<class RealType>
-const RealType binomial_table<RealType>::table[10] = {
-    0.08106146679532726,
-    0.04134069595540929,
-    0.02767792568499834,
-    0.02079067210376509,
-    0.01664469118982119,
-    0.01387612882307075,
-    0.01189670994589177,
-    0.01041126526197209,
-    0.009255462182712733,
-    0.008330563433362871
-};
-
-}
-
-/**
- * The binomial distribution is an integer valued distribution with
- * two parameters, @c t and @c p.  The values of the distribution
- * are within the range [0,t].
- *
- * The distribution function is
- * \f$\displaystyle P(k) = {t \choose k}p^k(1-p)^{t-k}\f$.
- *
- * The algorithm used is the BTRD algorithm described in
- *
- *  @blockquote
- *  "The generation of binomial random variates", Wolfgang Hormann,
- *  Journal of Statistical Computation and Simulation, Volume 46,
- *  Issue 1 & 2 April 1993 , pages 101 - 110
- *  @endblockquote
- */
-template<class IntType = int, class RealType = double>
-class binomial_distribution {
-public:
-    typedef IntType result_type;
-    typedef RealType input_type;
-
-    class param_type {
-    public:
-        typedef binomial_distribution distribution_type;
-        /**
-         * Construct a param_type object.  @c t and @c p
-         * are the parameters of the distribution.
-         *
-         * Requires: t >=0 && 0 <= p <= 1
-         */
-        explicit param_type(IntType t_arg = 1, RealType p_arg = RealType (0.5))
-          : _t(t_arg), _p(p_arg)
-        {}
-        /** Returns the @c t parameter of the distribution. */
-        IntType t() const { return _t; }
-        /** Returns the @c p parameter of the distribution. */
-        RealType p() const { return _p; }
-#ifndef BOOST_RANDOM_NO_STREAM_OPERATORS
-        /** Writes the parameters of the distribution to a @c std::ostream. */
-        template<class CharT, class Traits>
-        friend std::basic_ostream<CharT,Traits>&
-        operator<<(std::basic_ostream<CharT,Traits>& os,
-                   const param_type& parm)
-        {
-            os << parm._p << " " << parm._t;
-            return os;
-        }
-    
-        /** Reads the parameters of the distribution from a @c std::istream. */
-        template<class CharT, class Traits>
-        friend std::basic_istream<CharT,Traits>&
-        operator>>(std::basic_istream<CharT,Traits>& is, param_type& parm)
-        {
-            is >> parm._p >> std::ws >> parm._t;
-            return is;
-        }
-#endif
-        /** Returns true if the parameters have the same values. */
-        friend bool operator==(const param_type& lhs, const param_type& rhs)
-        {
-            return lhs._t == rhs._t && lhs._p == rhs._p;
-        }
-        /** Returns true if the parameters have different values. */
-        friend bool operator!=(const param_type& lhs, const param_type& rhs)
-        {
-            return !(lhs == rhs);
-        }
-    private:
-        IntType _t;
-        RealType _p;
-    };
-    
-    /**
-     * Construct a @c binomial_distribution object. @c t and @c p
-     * are the parameters of the distribution.
-     *
-     * Requires: t >=0 && 0 <= p <= 1
-     */
-    explicit binomial_distribution(IntType t_arg = 1,
-                                   RealType p_arg = RealType(0.5))
-      : _t(t_arg), _p(p_arg)
-    {
-        init();
-    }
-    
-    /**
-     * Construct an @c binomial_distribution object from the
-     * parameters.
-     */
-    explicit binomial_distribution(const param_type& parm)
-      : _t(parm.t()), _p(parm.p())
-    {
-        init();
-    }
-    
-    /**
-     * Returns a random variate distributed according to the
-     * binomial distribution.
-     */
-    template<class URNG>
-    IntType operator()(URNG& urng) const
-    {
-        if(use_inversion()) {
-            if(0.5 < _p) {
-                return _t - invert(_t, 1-_p, urng);
-            } else {
-                return invert(_t, _p, urng);
-            }
-        } else if(0.5 < _p) {
-            return _t - generate(urng);
-        } else {
-            return generate(urng);
-        }
-    }
-    
-    /**
-     * Returns a random variate distributed according to the
-     * binomial distribution with parameters specified by @c param.
-     */
-    template<class URNG>
-    IntType operator()(URNG& urng, const param_type& parm) const
-    {
-        return binomial_distribution(parm)(urng);
-    }
-
-    /** Returns the @c t parameter of the distribution. */
-    IntType t() const { return _t; }
-    /** Returns the @c p parameter of the distribution. */
-    RealType p() const { return _p; }
-
-    /** Returns the smallest value that the distribution can produce. */
-    IntType min BOOST_PREVENT_MACRO_SUBSTITUTION() const { return 0; }
-    /** Returns the largest value that the distribution can produce. */
-    IntType max BOOST_PREVENT_MACRO_SUBSTITUTION() const { return _t; }
-
-    /** Returns the parameters of the distribution. */
-    param_type param() const { return param_type(_t, _p); }
-    /** Sets parameters of the distribution. */
-    void param(const param_type& parm)
-    {
-        _t = parm.t();
-        _p = parm.p();
-        init();
-    }
-
-    /**
-     * Effects: Subsequent uses of the distribution do not depend
-     * on values produced by any engine prior to invoking reset.
-     */
-    void reset() { }
-
-#ifndef BOOST_RANDOM_NO_STREAM_OPERATORS
-    /** Writes the parameters of the distribution to a @c std::ostream. */
-    template<class CharT, class Traits>
-    friend std::basic_ostream<CharT,Traits>&
-    operator<<(std::basic_ostream<CharT,Traits>& os,
-               const binomial_distribution& bd)
-    {
-        os << bd.param();
-        return os;
-    }
-    
-    /** Reads the parameters of the distribution from a @c std::istream. */
-    template<class CharT, class Traits>
-    friend std::basic_istream<CharT,Traits>&
-    operator>>(std::basic_istream<CharT,Traits>& is, binomial_distribution& bd)
-    {
-        bd.read(is);
-        return is;
-    }
-#endif
-
-    /** Returns true if the two distributions will produce the same
-        sequence of values, given equal generators. */
-    friend bool operator==(const binomial_distribution& lhs,
-                           const binomial_distribution& rhs)
-    {
-        return lhs._t == rhs._t && lhs._p == rhs._p;
-    }
-    /** Returns true if the two distributions could produce different
-        sequences of values, given equal generators. */
-    friend bool operator!=(const binomial_distribution& lhs,
-                           const binomial_distribution& rhs)
-    {
-        return !(lhs == rhs);
-    }
-
-private:
-
-    /// @cond show_private
-
-    template<class CharT, class Traits>
-    void read(std::basic_istream<CharT, Traits>& is) {
-        param_type parm;
-        if(is >> parm) {
-            param(parm);
-        }
-    }
-
-    bool use_inversion() const
-    {
-        // BTRD is safe when np >= 10
-        return m < 11;
-    }
-
-    // computes the correction factor for the Stirling approximation
-    // for log(k!)
-    static RealType fc(IntType k)
-    {
-        if(k < 10) return detail::binomial_table<RealType>::table[k];
-        else {
-            RealType ikp1 = RealType(1) / (k + 1);
-            return (RealType(1)/12
-                 - (RealType(1)/360
-                 - (RealType(1)/1260)*(ikp1*ikp1))*(ikp1*ikp1))*ikp1;
-        }
-    }
-
-    void init()
-    {
-        using std::sqrt;
-        using std::pow;
-
-        RealType p = (0.5 < _p)? (1 - _p) : _p;
-        IntType t = _t;
-        
-        m = static_cast<IntType>((t+1)*p);
-
-        if(use_inversion()) {
-            q_n = pow((1 - p), static_cast<RealType>(t));
-        } else {
-            btrd.r = p/(1-p);
-            btrd.nr = (t+1)*btrd.r;
-            btrd.npq = t*p*(1-p);
-            RealType sqrt_npq = sqrt(btrd.npq);
-            btrd.b = 1.15 + 2.53 * sqrt_npq;
-            btrd.a = -0.0873 + 0.0248*btrd.b + 0.01*p;
-            btrd.c = t*p + 0.5;
-            btrd.alpha = (2.83 + 5.1/btrd.b) * sqrt_npq;
-            btrd.v_r = 0.92 - 4.2/btrd.b;
-            btrd.u_rv_r = 0.86*btrd.v_r;
-        }
-    }
-
-    template<class URNG>
-    result_type generate(URNG& urng) const
-    {
-        using std::floor;
-        using std::abs;
-        using std::log;
-
-        while(true) {
-            RealType u;
-            RealType v = uniform_01<RealType>()(urng);
-            if(v <= btrd.u_rv_r) {
-                RealType u = v/btrd.v_r - 0.43;
-                return static_cast<IntType>(floor(
-                    (2*btrd.a/(0.5 - abs(u)) + btrd.b)*u + btrd.c));
-            }
-
-            if(v >= btrd.v_r) {
-                u = uniform_01<RealType>()(urng) - 0.5;
-            } else {
-                u = v/btrd.v_r - 0.93;
-                u = ((u < 0)? -0.5 : 0.5) - u;
-                v = uniform_01<RealType>()(urng) * btrd.v_r;
-            }
-
-            RealType us = 0.5 - abs(u);
-            IntType k = static_cast<IntType>(floor((2*btrd.a/us + btrd.b)*u + btrd.c));
-            if(k < 0 || k > _t) continue;
-            v = v*btrd.alpha/(btrd.a/(us*us) + btrd.b);
-            RealType km = abs(k - m);
-            if(km <= 15) {
-                RealType f = 1;
-                if(m < k) {
-                    IntType i = m;
-                    do {
-                        ++i;
-                        f = f*(btrd.nr/i - btrd.r);
-                    } while(i != k);
-                } else if(m > k) {
-                    IntType i = k;
-                    do {
-                        ++i;
-                        v = v*(btrd.nr/i - btrd.r);
-                    } while(i != m);
-                }
-                if(v <= f) return k;
-                else continue;
-            } else {
-                // final acceptance/rejection
-                v = log(v);
-                RealType rho =
-                    (km/btrd.npq)*(((km/3. + 0.625)*km + 1./6)/btrd.npq + 0.5);
-                RealType t = -km*km/(2*btrd.npq);
-                if(v < t - rho) return k;
-                if(v > t + rho) continue;
-
-                IntType nm = _t - m + 1;
-                RealType h = (m + 0.5)*log((m + 1)/(btrd.r*nm))
-                           + fc(m) + fc(_t - m);
-
-                IntType nk = _t - k + 1;
-                if(v <= h + (_t+1)*log(static_cast<RealType>(nm)/nk)
-                          + (k + 0.5)*log(nk*btrd.r/(k+1))
-                          - fc(k)
-                          - fc(_t - k))
-                {
-                    return k;
-                } else {
-                    continue;
-                }
-            }
-        }
-    }
-
-    template<class URNG>
-    IntType invert(IntType t, RealType p, URNG& urng) const
-    {
-        RealType q = 1 - p;
-        RealType s = p / q;
-        RealType a = (t + 1) * s;
-        RealType r = q_n;
-        RealType u = uniform_01<RealType>()(urng);
-        IntType x = 0;
-        while(u > r) {
-            u = u - r;
-            ++x;
-            r = ((a/x) - s) * r;
-        }
-        return x;
-    }
-
-    // parameters
-    IntType _t;
-    RealType _p;
-
-    // common data
-    IntType m;
-
-    union {
-        // for btrd
-        struct {
-            RealType r;
-            RealType nr;
-            RealType npq;
-            RealType b;
-            RealType a;
-            RealType c;
-            RealType alpha;
-            RealType v_r;
-            RealType u_rv_r;
-        } btrd;
-        // for inversion
-        RealType q_n;
-    };
-
-    /// @endcond
-};
-
-}
-
-// backwards compatibility
-using random::binomial_distribution;
-
-}
-
-#include <boost/random/detail/enable_warnings.hpp>
-
-#endif
diff --git a/boost/random/cauchy_distribution.hpp b/boost/random/cauchy_distribution.hpp
deleted file mode 100644
index ed673bc..0000000
--- a/boost/random/cauchy_distribution.hpp
+++ /dev/null
@@ -1,214 +0,0 @@
-/* boost random/cauchy_distribution.hpp header file
- *
- * Copyright Jens Maurer 2000-2001
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: cauchy_distribution.hpp 71018 2011-04-05 21:27:52Z steven_watanabe $
- *
- * Revision history
- *  2001-02-18  moved to individual header files
- */
-
-#ifndef BOOST_RANDOM_CAUCHY_DISTRIBUTION_HPP
-#define BOOST_RANDOM_CAUCHY_DISTRIBUTION_HPP
-
-#include <boost/config/no_tr1/cmath.hpp>
-#include <iosfwd>
-#include <istream>
-#include <boost/limits.hpp>
-#include <boost/random/detail/config.hpp>
-#include <boost/random/detail/operators.hpp>
-#include <boost/random/uniform_01.hpp>
-
-namespace boost {
-namespace random {
-
-// Cauchy distribution: 
-
-/**
- * The cauchy distribution is a continuous distribution with two
- * parameters, median and sigma.
- *
- * It has \f$\displaystyle p(x) = \frac{\sigma}{\pi(\sigma^2 + (x-m)^2)}\f$
- */
-template<class RealType = double>
-class cauchy_distribution
-{
-public:
-    typedef RealType input_type;
-    typedef RealType result_type;
-
-    class param_type
-    {
-    public:
-
-        typedef cauchy_distribution distribution_type;
-
-        /** Constructs the parameters of the cauchy distribution. */
-        explicit param_type(RealType median_arg = RealType(0.0),
-                            RealType sigma_arg = RealType(1.0))
-          : _median(median_arg), _sigma(sigma_arg) {}
-
-        // backwards compatibility for Boost.Random
-
-        /** Returns the median of the distribution. */
-        RealType median() const { return _median; }
-        /** Returns the sigma parameter of the distribution. */
-        RealType sigma() const { return _sigma; }
-
-        // The new names in C++0x.
-
-        /** Returns the median of the distribution. */
-        RealType a() const { return _median; }
-        /** Returns the sigma parameter of the distribution. */
-        RealType b() const { return _sigma; }
-
-        /** Writes the parameters to a std::ostream. */
-        BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, param_type, parm)
-        {
-            os << parm._median << " " << parm._sigma;
-            return os;
-        }
-
-        /** Reads the parameters from a std::istream. */
-        BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, param_type, parm)
-        {
-            is >> parm._median >> std::ws >> parm._sigma;
-            return is;
-        }
-
-        /** Returns true if the two sets of parameters are equal. */
-        BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(param_type, lhs, rhs)
-        { return lhs._median == rhs._median && lhs._sigma == rhs._sigma; }
-
-        /** Returns true if the two sets of parameters are different. */
-        BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(param_type)
-
-    private:
-        RealType _median;
-        RealType _sigma;
-    };
-
-    /**
-     * Constructs a \cauchy_distribution with the paramters @c median
-     * and @c sigma.
-     */
-    explicit cauchy_distribution(RealType median_arg = RealType(0.0), 
-                                 RealType sigma_arg = RealType(1.0))
-      : _median(median_arg), _sigma(sigma_arg) { }
-    
-    /**
-     * Constructs a \cauchy_distribution from it's parameters.
-     */
-    explicit cauchy_distribution(const param_type& parm)
-      : _median(parm.median()), _sigma(parm.sigma()) { }
-
-    // compiler-generated copy ctor and assignment operator are fine
-
-    // backwards compatibility for Boost.Random
-
-    /** Returns: the "median" parameter of the distribution */
-    RealType median() const { return _median; }
-    /** Returns: the "sigma" parameter of the distribution */
-    RealType sigma() const { return _sigma; }
-    
-    // The new names in C++0x
-
-    /** Returns: the "median" parameter of the distribution */
-    RealType a() const { return _median; }
-    /** Returns: the "sigma" parameter of the distribution */
-    RealType b() const { return _sigma; }
-
-    /** Returns the smallest value that the distribution can produce. */
-    RealType min BOOST_PREVENT_MACRO_SUBSTITUTION () const
-    { return -(std::numeric_limits<RealType>::infinity)(); }
-
-    /** Returns the largest value that the distribution can produce. */
-    RealType max BOOST_PREVENT_MACRO_SUBSTITUTION () const
-    { return (std::numeric_limits<RealType>::infinity)(); }
-
-    param_type param() const { return param_type(_median, _sigma); }
-
-    void param(const param_type& parm)
-    {
-        _median = parm.median();
-        _sigma = parm.sigma();
-    }
-
-    /**
-     * Effects: Subsequent uses of the distribution do not depend
-     * on values produced by any engine prior to invoking reset.
-     */
-    void reset() { }
-
-    /**
-     * Returns: A random variate distributed according to the
-     * cauchy distribution.
-     */
-    template<class Engine>
-    result_type operator()(Engine& eng)
-    {
-        // Can we have a boost::mathconst please?
-        const result_type pi = result_type(3.14159265358979323846);
-        using std::tan;
-        RealType val = uniform_01<RealType>()(eng)-result_type(0.5);
-        return _median + _sigma * tan(pi*val);
-    }
-
-    /**
-     * Returns: A random variate distributed according to the
-     * cauchy distribution with parameters specified by param.
-     */
-    template<class Engine>
-    result_type operator()(Engine& eng, const param_type& parm)
-    {
-        return cauchy_distribution(parm)(eng);
-    }
-
-    /**
-     * Writes the distribution to a @c std::ostream.
-     */
-    BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, cauchy_distribution, cd)
-    {
-        os << cd._median << " " << cd._sigma;
-        return os;
-    }
-
-    /**
-     * Reads the distribution from a @c std::istream.
-     */
-    BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, cauchy_distribution, cd)
-    {
-        is >> cd._median >> std::ws >> cd._sigma;
-        return is;
-    }
-
-    /**
-     * Returns true if the two distributions will produce
-     * identical sequences of values, given equal generators.
-     */
-    BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(cauchy_distribution, lhs, rhs)
-    { return lhs._median == rhs._median && lhs._sigma == rhs._sigma; }
-
-    /**
-     * Returns true if the two distributions may produce
-     * different sequences of values, given equal generators.
-     */
-    BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(cauchy_distribution)
-
-private:
-    RealType _median;
-    RealType _sigma;
-};
-
-} // namespace random
-
-using random::cauchy_distribution;
-
-} // namespace boost
-
-#endif // BOOST_RANDOM_CAUCHY_DISTRIBUTION_HPP
diff --git a/boost/random/chi_squared_distribution.hpp b/boost/random/chi_squared_distribution.hpp
deleted file mode 100644
index 9e7d478..0000000
--- a/boost/random/chi_squared_distribution.hpp
+++ /dev/null
@@ -1,209 +0,0 @@
-/* boost random/chi_squared_distribution.hpp header file
- *
- * Copyright Steven Watanabe 2011
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: chi_squared_distribution.hpp 71018 2011-04-05 21:27:52Z steven_watanabe $
- */
-
-#ifndef BOOST_RANDOM_CHI_SQUARED_DISTRIBUTION_HPP_INCLUDED
-#define BOOST_RANDOM_CHI_SQUARED_DISTRIBUTION_HPP_INCLUDED
-
-#include <iosfwd>
-#include <boost/limits.hpp>
-
-#include <boost/random/detail/config.hpp>
-#include <boost/random/gamma_distribution.hpp>
-
-namespace boost {
-namespace random {
-
-/**
- * The chi squared distribution is a real valued distribution with
- * one parameter, @c n.  The distribution produces values > 0.
- *
- * The distribution function is
- * \f$\displaystyle P(x) = \frac{x^{(n/2)-1}e^{-x/2}}{\Gamma(n/2)2^{n/2}}\f$.
- */
-template<class RealType = double>
-class chi_squared_distribution {
-public:
-    typedef RealType result_type;
-    typedef RealType input_type;
-
-    class param_type {
-    public:
-        typedef chi_squared_distribution distribution_type;
-        /**
-         * Construct a param_type object.  @c n
-         * is the parameter of the distribution.
-         *
-         * Requires: t >=0 && 0 <= p <= 1
-         */
-        explicit param_type(RealType n_arg = RealType(1))
-          : _n(n_arg)
-        {}
-        /** Returns the @c n parameter of the distribution. */
-        RealType n() const { return _n; }
-#ifndef BOOST_RANDOM_NO_STREAM_OPERATORS
-        /** Writes the parameters of the distribution to a @c std::ostream. */
-        template<class CharT, class Traits>
-        friend std::basic_ostream<CharT,Traits>&
-        operator<<(std::basic_ostream<CharT,Traits>& os,
-                   const param_type& parm)
-        {
-            os << parm._n;
-            return os;
-        }
-    
-        /** Reads the parameters of the distribution from a @c std::istream. */
-        template<class CharT, class Traits>
-        friend std::basic_istream<CharT,Traits>&
-        operator>>(std::basic_istream<CharT,Traits>& is, param_type& parm)
-        {
-            is >> parm._n;
-            return is;
-        }
-#endif
-        /** Returns true if the parameters have the same values. */
-        friend bool operator==(const param_type& lhs, const param_type& rhs)
-        {
-            return lhs._n == rhs._n;
-        }
-        /** Returns true if the parameters have different values. */
-        friend bool operator!=(const param_type& lhs, const param_type& rhs)
-        {
-            return !(lhs == rhs);
-        }
-    private:
-        RealType _n;
-    };
-    
-    /**
-     * Construct a @c chi_squared_distribution object. @c n
-     * is the parameter of the distribution.
-     *
-     * Requires: t >=0 && 0 <= p <= 1
-     */
-    explicit chi_squared_distribution(RealType n_arg = RealType(1))
-      : _impl(n_arg / 2)
-    {
-    }
-    
-    /**
-     * Construct an @c chi_squared_distribution object from the
-     * parameters.
-     */
-    explicit chi_squared_distribution(const param_type& parm)
-      : _impl(parm.n() / 2)
-    {
-    }
-    
-    /**
-     * Returns a random variate distributed according to the
-     * chi squared distribution.
-     */
-    template<class URNG>
-    RealType operator()(URNG& urng)
-    {
-        return 2 * _impl(urng);
-    }
-    
-    /**
-     * Returns a random variate distributed according to the
-     * chi squared distribution with parameters specified by @c param.
-     */
-    template<class URNG>
-    RealType operator()(URNG& urng, const param_type& parm) const
-    {
-        return chi_squared_distribution(parm)(urng);
-    }
-
-    /** Returns the @c n parameter of the distribution. */
-    RealType n() const { return 2 * _impl.alpha(); }
-
-    /** Returns the smallest value that the distribution can produce. */
-    RealType min BOOST_PREVENT_MACRO_SUBSTITUTION() const { return 0; }
-    /** Returns the largest value that the distribution can produce. */
-    RealType max BOOST_PREVENT_MACRO_SUBSTITUTION() const
-    { return (std::numeric_limits<RealType>::infinity)(); }
-
-    /** Returns the parameters of the distribution. */
-    param_type param() const { return param_type(n()); }
-    /** Sets parameters of the distribution. */
-    void param(const param_type& parm)
-    {
-        typedef gamma_distribution<RealType> impl_type;
-        typename impl_type::param_type impl_parm(parm.n() / 2);
-        _impl.param(impl_parm);
-    }
-
-    /**
-     * Effects: Subsequent uses of the distribution do not depend
-     * on values produced by any engine prior to invoking reset.
-     */
-    void reset() { _impl.reset(); }
-
-#ifndef BOOST_RANDOM_NO_STREAM_OPERATORS
-    /** Writes the parameters of the distribution to a @c std::ostream. */
-    template<class CharT, class Traits>
-    friend std::basic_ostream<CharT,Traits>&
-    operator<<(std::basic_ostream<CharT,Traits>& os,
-               const chi_squared_distribution& c2d)
-    {
-        os << c2d.param();
-        return os;
-    }
-    
-    /** Reads the parameters of the distribution from a @c std::istream. */
-    template<class CharT, class Traits>
-    friend std::basic_istream<CharT,Traits>&
-    operator>>(std::basic_istream<CharT,Traits>& is,
-               chi_squared_distribution& c2d)
-    {
-        c2d.read(is);
-        return is;
-    }
-#endif
-
-    /** Returns true if the two distributions will produce the same
-        sequence of values, given equal generators. */
-    friend bool operator==(const chi_squared_distribution& lhs,
-                           const chi_squared_distribution& rhs)
-    {
-        return lhs._impl == rhs._impl;
-    }
-    /** Returns true if the two distributions could produce different
-        sequences of values, given equal generators. */
-    friend bool operator!=(const chi_squared_distribution& lhs,
-                           const chi_squared_distribution& rhs)
-    {
-        return !(lhs == rhs);
-    }
-
-private:
-
-    /// @cond show_private
-
-    template<class CharT, class Traits>
-    void read(std::basic_istream<CharT, Traits>& is) {
-        param_type parm;
-        if(is >> parm) {
-            param(parm);
-        }
-    }
-
-    gamma_distribution<RealType> _impl;
-
-    /// @endcond
-};
-
-}
-
-}
-
-#endif
diff --git a/boost/random/detail/config.hpp b/boost/random/detail/config.hpp
deleted file mode 100644
index d6bc0cc..0000000
--- a/boost/random/detail/config.hpp
+++ /dev/null
@@ -1,18 +0,0 @@
-/* boost random/detail/config.hpp header file
- *
- * Copyright Steven Watanabe 2009
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: config.hpp 52492 2009-04-19 14:55:57Z steven_watanabe $
- */
-
-#include <boost/config.hpp>
-
-#if (defined(BOOST_NO_OPERATORS_IN_NAMESPACE) || defined(BOOST_NO_MEMBER_TEMPLATE_FRIENDS)) \
-    && !defined(BOOST_MSVC)
-    #define BOOST_RANDOM_NO_STREAM_OPERATORS
-#endif
diff --git a/boost/random/detail/const_mod.hpp b/boost/random/detail/const_mod.hpp
deleted file mode 100644
index 9778f55..0000000
--- a/boost/random/detail/const_mod.hpp
+++ /dev/null
@@ -1,216 +0,0 @@
-/* boost random/detail/const_mod.hpp header file
- *
- * Copyright Jens Maurer 2000-2001
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: const_mod.hpp 71018 2011-04-05 21:27:52Z steven_watanabe $
- *
- * Revision history
- *  2001-02-18  moved to individual header files
- */
-
-#ifndef BOOST_RANDOM_CONST_MOD_HPP
-#define BOOST_RANDOM_CONST_MOD_HPP
-
-#include <boost/assert.hpp>
-#include <boost/static_assert.hpp>
-#include <boost/integer_traits.hpp>
-#include <boost/type_traits/make_unsigned.hpp>
-#include <boost/random/detail/large_arithmetic.hpp>
-
-#include <boost/random/detail/disable_warnings.hpp>
-
-namespace boost {
-namespace random {
-
-template<class IntType, IntType m>
-class const_mod
-{
-public:
-  static IntType apply(IntType x)
-  {
-    if(((unsigned_m() - 1) & unsigned_m()) == 0)
-      return (unsigned_type(x)) & (unsigned_m() - 1);
-    else {
-      IntType supress_warnings = (m == 0);
-      BOOST_ASSERT(supress_warnings == 0);
-      return x % (m + supress_warnings);
-    }
-  }
-
-  static IntType add(IntType x, IntType c)
-  {
-    if(((unsigned_m() - 1) & unsigned_m()) == 0)
-      return (unsigned_type(x) + unsigned_type(c)) & (unsigned_m() - 1);
-    else if(c == 0)
-      return x;
-    else if(x < m - c)
-      return x + c;
-    else
-      return x - (m - c);
-  }
-
-  static IntType mult(IntType a, IntType x)
-  {
-    if(((unsigned_m() - 1) & unsigned_m()) == 0)
-      return unsigned_type(a) * unsigned_type(x) & (unsigned_m() - 1);
-    else if(a == 0)
-      return 0;
-    else if(a == 1)
-      return x;
-    else if(m <= traits::const_max/a)      // i.e. a*m <= max
-      return mult_small(a, x);
-    else if(traits::is_signed && (m%a < m/a))
-      return mult_schrage(a, x);
-    else
-      return mult_general(a, x);
-  }
-
-  static IntType mult_add(IntType a, IntType x, IntType c)
-  {
-    if(((unsigned_m() - 1) & unsigned_m()) == 0)
-      return (unsigned_type(a) * unsigned_type(x) + unsigned_type(c)) & (unsigned_m() - 1);
-    else if(a == 0)
-      return c;
-    else if(m <= (traits::const_max-c)/a) {  // i.e. a*m+c <= max
-      IntType supress_warnings = (m == 0);
-      BOOST_ASSERT(supress_warnings == 0);
-      return (a*x+c) % (m + supress_warnings);
-    } else
-      return add(mult(a, x), c);
-  }
-
-  static IntType pow(IntType a, boost::uintmax_t exponent)
-  {
-      IntType result = 1;
-      while(exponent != 0) {
-          if(exponent % 2 == 1) {
-              result = mult(result, a);
-          }
-          a = mult(a, a);
-          exponent /= 2;
-      }
-      return result;
-  }
-
-  static IntType invert(IntType x)
-  { return x == 0 ? 0 : (m == 0? invert_euclidian0(x) : invert_euclidian(x)); }
-
-private:
-  typedef integer_traits<IntType> traits;
-  typedef typename make_unsigned<IntType>::type unsigned_type;
-
-  const_mod();      // don't instantiate
-
-  static IntType mult_small(IntType a, IntType x)
-  {
-    IntType supress_warnings = (m == 0);
-    BOOST_ASSERT(supress_warnings == 0);
-    return a*x % (m + supress_warnings);
-  }
-
-  static IntType mult_schrage(IntType a, IntType value)
-  {
-    const IntType q = m / a;
-    const IntType r = m % a;
-
-    BOOST_ASSERT(r < q);        // check that overflow cannot happen
-
-    return sub(a*(value%q), r*(value/q));
-  }
-
-  static IntType mult_general(IntType a, IntType b)
-  {
-    IntType suppress_warnings = (m == 0);
-    BOOST_ASSERT(suppress_warnings == 0);
-    IntType modulus = m + suppress_warnings;
-    BOOST_ASSERT(modulus == m);
-    if(::boost::uintmax_t(modulus) <=
-        (::std::numeric_limits< ::boost::uintmax_t>::max)() / modulus)
-    {
-      return static_cast<IntType>(boost::uintmax_t(a) * b % modulus);
-    } else {
-      return static_cast<IntType>(detail::mulmod(a, b, modulus));
-    }
-  }
-
-  static IntType sub(IntType a, IntType b)
-  {
-    if(a < b)
-      return m - (b - a);
-    else
-      return a - b;
-  }
-
-  static unsigned_type unsigned_m()
-  {
-      if(m == 0) {
-          return unsigned_type((std::numeric_limits<IntType>::max)()) + 1;
-      } else {
-          return unsigned_type(m);
-      }
-  }
-
-  // invert c in the finite field (mod m) (m must be prime)
-  static IntType invert_euclidian(IntType c)
-  {
-    // we are interested in the gcd factor for c, because this is our inverse
-    BOOST_ASSERT(c > 0);
-    IntType l1 = 0;
-    IntType l2 = 1;
-    IntType n = c;
-    IntType p = m;
-    for(;;) {
-      IntType q = p / n;
-      l1 += q * l2;
-      p -= q * n;
-      if(p == 0)
-        return l2;
-      IntType q2 = n / p;
-      l2 += q2 * l1;
-      n -= q2 * p;
-      if(n == 0)
-        return m - l1;
-    }
-  }
-
-  // invert c in the finite field (mod m) (c must be relatively prime to m)
-  static IntType invert_euclidian0(IntType c)
-  {
-    // we are interested in the gcd factor for c, because this is our inverse
-    BOOST_ASSERT(c > 0);
-    if(c == 1) return 1;
-    IntType l1 = 0;
-    IntType l2 = 1;
-    IntType n = c;
-    IntType p = m;
-    IntType max = (std::numeric_limits<IntType>::max)();
-    IntType q = max / n;
-    BOOST_ASSERT(max % n != n - 1 && "c must be relatively prime to m.");
-    l1 += q * l2;
-    p = max - q * n + 1;
-    for(;;) {
-      if(p == 0)
-        return l2;
-      IntType q2 = n / p;
-      l2 += q2 * l1;
-      n -= q2 * p;
-      if(n == 0)
-        return m - l1;
-      q = p / n;
-      l1 += q * l2;
-      p -= q * n;
-    }
-  }
-};
-
-} // namespace random
-} // namespace boost
-
-#include <boost/random/detail/enable_warnings.hpp>
-
-#endif // BOOST_RANDOM_CONST_MOD_HPP
diff --git a/boost/random/detail/disable_warnings.hpp b/boost/random/detail/disable_warnings.hpp
deleted file mode 100644
index f3ade5e..0000000
--- a/boost/random/detail/disable_warnings.hpp
+++ /dev/null
@@ -1,23 +0,0 @@
-/* boost random/detail/disable_warnings.hpp header file
- *
- * Copyright Steven Watanabe 2009
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: disable_warnings.hpp 60755 2010-03-22 00:45:06Z steven_watanabe $
- *
- */
-
-// No #include guard.  This header is intended to be included multiple times.
-
-#include <boost/config.hpp>
-
-#ifdef BOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable:4512)
-#pragma warning(disable:4127)
-#pragma warning(disable:4724)
-#endif
diff --git a/boost/random/detail/enable_warnings.hpp b/boost/random/detail/enable_warnings.hpp
deleted file mode 100644
index 26184ea..0000000
--- a/boost/random/detail/enable_warnings.hpp
+++ /dev/null
@@ -1,18 +0,0 @@
-/* boost random/detail/enable_warnings.hpp header file
- *
- * Copyright Steven Watanabe 2009
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: enable_warnings.hpp 58649 2010-01-02 21:23:17Z steven_watanabe $
- *
- */
-
-// No #include guard.  This header is intended to be included multiple times.
-
-#ifdef BOOST_MSVC
-#pragma warning(pop)
-#endif
diff --git a/boost/random/detail/generator_bits.hpp b/boost/random/detail/generator_bits.hpp
deleted file mode 100644
index 44b4248..0000000
--- a/boost/random/detail/generator_bits.hpp
+++ /dev/null
@@ -1,36 +0,0 @@
-/* boost random/detail/generator_bits.hpp header file
- *
- * Copyright Steven Watanabe 2011
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: generator_bits.hpp 72951 2011-07-07 04:57:37Z steven_watanabe $
- *
- */
-
-#ifndef BOOST_RANDOM_DETAIL_GENERATOR_BITS_HPP
-#define BOOST_RANDOM_DETAIL_GENERATOR_BITS_HPP
-
-#include <boost/limits.hpp>
-
-namespace boost {
-namespace random {
-namespace detail {
-
-// This is a temporary measure that retains backwards
-// compatibility.
-template<class URNG>
-struct generator_bits {
-    static std::size_t value() {
-        return std::numeric_limits<typename URNG::result_type>::digits;
-    }
-};
-
-} // namespace detail
-} // namespace random
-} // namespace boost
-
-#endif // BOOST_RANDOM_DETAIL_GENERATOR_BITS_HPP
diff --git a/boost/random/detail/generator_seed_seq.hpp b/boost/random/detail/generator_seed_seq.hpp
deleted file mode 100644
index 6aaf98f..0000000
--- a/boost/random/detail/generator_seed_seq.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-/* boost random/mersenne_twister.hpp header file
- *
- * Copyright Jens Maurer 2000-2001
- * Copyright Steven Watanabe 2010
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: generator_seed_seq.hpp 71018 2011-04-05 21:27:52Z steven_watanabe $
- *
- */
-
-#ifndef BOOST_RANDOM_DETAIL_GENERATOR_SEED_SEQ_HPP_INCLUDED
-#define BOOST_RANDOM_DETAIL_GENERATOR_SEED_SEQ_HPP_INCLUDED
-
-namespace boost {
-namespace random {
-namespace detail {
-
-template<class Generator>
-class generator_seed_seq {
-public:
-    generator_seed_seq(Generator& g) : gen(&g) {}
-    template<class It>
-    void generate(It first, It last) {
-        for(; first != last; ++first) {
-            *first = (*gen)();
-        }
-    }
-private:
-    Generator* gen;
-};
-
-}
-}
-}
-
-#endif
diff --git a/boost/random/detail/integer_log2.hpp b/boost/random/detail/integer_log2.hpp
deleted file mode 100644
index e666032..0000000
--- a/boost/random/detail/integer_log2.hpp
+++ /dev/null
@@ -1,84 +0,0 @@
-/* boost random/detail/integer_log2.hpp header file
- *
- * Copyright Steven Watanabe 2011
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: integer_log2.hpp 85813 2013-09-21 20:17:00Z jewillco $
- *
- */
-
-#ifndef BOOST_RANDOM_DETAIL_INTEGER_LOG2_HPP
-#define BOOST_RANDOM_DETAIL_INTEGER_LOG2_HPP
-
-#include <boost/config.hpp>
-#include <boost/limits.hpp>
-#include <boost/pending/integer_log2.hpp>
-
-namespace boost {
-namespace random {
-namespace detail {
-
-#if !defined(BOOST_NO_CXX11_CONSTEXPR)
-#define BOOST_RANDOM_DETAIL_CONSTEXPR constexpr
-#elif defined(BOOST_MSVC)
-#define BOOST_RANDOM_DETAIL_CONSTEXPR __forceinline
-#elif defined(__GNUC__) && __GNUC__ >= 4
-#define BOOST_RANDOM_DETAIL_CONSTEXPR inline __attribute__((const)) __attribute__((always_inline))
-#else
-#define BOOST_RANDOM_DETAIL_CONSTEXPR inline
-#endif
-
-template<int Shift>
-struct integer_log2_impl
-{
-#if defined(BOOST_NO_CXX11_CONSTEXPR)
-    template<class T>
-    BOOST_RANDOM_DETAIL_CONSTEXPR static int apply(T t, int accum)
-    {
-        int update = ((t >> Shift) != 0) * Shift;
-        return integer_log2_impl<Shift / 2>::apply(t >> update, accum + update);
-    }
-#else
-    template<class T>
-    BOOST_RANDOM_DETAIL_CONSTEXPR static int apply2(T t, int accum, int update)
-    {
-        return integer_log2_impl<Shift / 2>::apply(t >> update, accum + update);
-    }
-
-    template<class T>
-    BOOST_RANDOM_DETAIL_CONSTEXPR static int apply(T t, int accum)
-    {
-        return apply2(t, accum, ((t >> Shift) != 0) * Shift);
-    }
-#endif
-};
-
-template<>
-struct integer_log2_impl<1>
-{
-    template<class T>
-    BOOST_RANDOM_DETAIL_CONSTEXPR static int apply(T t, int accum)
-    {
-        return int(t >> 1) + accum;
-    }
-};
-
-template<class T>
-BOOST_RANDOM_DETAIL_CONSTEXPR int integer_log2(T t)
-{
-    return integer_log2_impl<
-        ::boost::detail::max_pow2_less<
-            ::std::numeric_limits<T>::digits, 4
-        >::value
-    >::apply(t, 0);
-}
-
-} // namespace detail
-} // namespace random
-} // namespace boost
-
-#endif // BOOST_RANDOM_DETAIL_INTEGER_LOG2_HPP
diff --git a/boost/random/detail/large_arithmetic.hpp b/boost/random/detail/large_arithmetic.hpp
deleted file mode 100644
index 24177dc..0000000
--- a/boost/random/detail/large_arithmetic.hpp
+++ /dev/null
@@ -1,122 +0,0 @@
-/* boost random/detail/large_arithmetic.hpp header file
- *
- * Copyright Steven Watanabe 2011
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: large_arithmetic.hpp 71018 2011-04-05 21:27:52Z steven_watanabe $
- */
-
-#ifndef BOOST_RANDOM_DETAIL_LARGE_ARITHMETIC_HPP
-#define BOOST_RANDOM_DETAIL_LARGE_ARITHMETIC_HPP
-
-#include <boost/cstdint.hpp>
-#include <boost/integer.hpp>
-#include <boost/limits.hpp>
-#include <boost/random/detail/integer_log2.hpp>
-
-#include <boost/random/detail/disable_warnings.hpp>
-
-namespace boost {
-namespace random {
-namespace detail {
-
-struct div_t {
-    boost::uintmax_t quotient;
-    boost::uintmax_t remainder;
-};
-
-inline div_t muldivmod(boost::uintmax_t a, boost::uintmax_t b, boost::uintmax_t m)
-{
-    static const int bits =
-        ::std::numeric_limits< ::boost::uintmax_t>::digits / 2;
-    static const ::boost::uintmax_t mask = (::boost::uintmax_t(1) << bits) - 1;
-    typedef ::boost::uint_t<bits>::fast digit_t;
-
-    int shift = std::numeric_limits< ::boost::uintmax_t>::digits - 1
-        - detail::integer_log2(m);
-
-    a <<= shift;
-    m <<= shift;
-
-    digit_t product[4] = { 0, 0, 0, 0 };
-    digit_t a_[2] = { digit_t(a & mask), digit_t((a >> bits) & mask) };
-    digit_t b_[2] = { digit_t(b & mask), digit_t((b >> bits) & mask) };
-    digit_t m_[2] = { digit_t(m & mask), digit_t((m >> bits) & mask) };
-
-    // multiply a * b
-    for(int i = 0; i < 2; ++i) {
-        digit_t carry = 0;
-        for(int j = 0; j < 2; ++j) {
-            ::boost::uint64_t temp = ::boost::uintmax_t(a_[i]) * b_[j] +
-                carry + product[i + j];
-            product[i + j] = digit_t(temp & mask);
-            carry = digit_t(temp >> bits);
-        }
-        if(carry != 0) {
-            product[i + 2] += carry;
-        }
-    }
-
-    digit_t quotient[2];
-
-    if(m == 0) {
-        div_t result = {
-            ((::boost::uintmax_t(product[3]) << bits) | product[2]),
-            ((::boost::uintmax_t(product[1]) << bits) | product[0]) >> shift,
-        };
-        return result;
-    }
-
-    // divide product / m
-    for(int i = 3; i >= 2; --i) {
-        ::boost::uintmax_t temp =
-            ::boost::uintmax_t(product[i]) << bits | product[i - 1];
-
-        digit_t q = digit_t((product[i] == m_[1]) ? mask : temp / m_[1]);
-
-        ::boost::uintmax_t rem =
-            ((temp - ::boost::uintmax_t(q) * m_[1]) << bits) + product[i - 2];
-
-        ::boost::uintmax_t diff = m_[0] * ::boost::uintmax_t(q);
-
-        int error = 0;
-        if(diff > rem) {
-            if(diff - rem > m) {
-                error = 2;
-            } else {
-                error = 1;
-            }
-        }
-        q -= error;
-        rem = rem + error * m - diff;
-
-        quotient[i - 2] = q;
-        product[i] = 0;
-        product[i-1] = (rem >> bits) & mask;
-        product[i-2] = rem & mask;
-    }
-
-    div_t result = {
-        ((::boost::uintmax_t(quotient[1]) << bits) | quotient[0]),
-        ((::boost::uintmax_t(product[1]) << bits) | product[0]) >> shift,
-    };
-    return result;
-}
-
-inline boost::uintmax_t muldiv(boost::uintmax_t a, boost::uintmax_t b, boost::uintmax_t m)
-{ return detail::muldivmod(a, b, m).quotient; }
-
-inline boost::uintmax_t mulmod(boost::uintmax_t a, boost::uintmax_t b, boost::uintmax_t m)
-{ return detail::muldivmod(a, b, m).remainder; }
-
-} // namespace detail
-} // namespace random
-} // namespace boost
-
-#include <boost/random/detail/enable_warnings.hpp>
-
-#endif // BOOST_RANDOM_DETAIL_LARGE_ARITHMETIC_HPP
diff --git a/boost/random/detail/operators.hpp b/boost/random/detail/operators.hpp
deleted file mode 100644
index f27839a..0000000
--- a/boost/random/detail/operators.hpp
+++ /dev/null
@@ -1,84 +0,0 @@
-/* boost random/detail/operators.hpp header file
- *
- * Copyright Steven Watanabe 2010-2011
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: operators.hpp 71018 2011-04-05 21:27:52Z steven_watanabe $
- */
-
-#ifndef BOOST_RANDOM_DETAIL_OPERATORS_HPP
-#define BOOST_RANDOM_DETAIL_OPERATORS_HPP
-
-#include <boost/random/detail/config.hpp>
-#include <boost/detail/workaround.hpp>
-
-#if BOOST_WORKAROUND(BOOST_MSVC, <= 1310)   \
-    || BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x5100))
-
-#define BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, T, t)                  \
-    template<class CharT, class Traits>                                 \
-    friend std::basic_ostream<CharT,Traits>&                            \
-    operator<<(std::basic_ostream<CharT,Traits>& os, const T& t) {      \
-        t.print(os, t);                                                 \
-        return os;                                                      \
-    }                                                                   \
-    template<class CharT, class Traits>                                 \
-    static std::basic_ostream<CharT,Traits>&                            \
-    print(std::basic_ostream<CharT,Traits>& os, const T& t)
-
-#define BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, T, t)                  \
-    template<class CharT, class Traits>                                 \
-    friend std::basic_istream<CharT,Traits>&                            \
-    operator>>(std::basic_istream<CharT,Traits>& is, T& t) {            \
-        t.read(is, t);                                                  \
-        return is;                                                      \
-    }                                                                   \
-    template<class CharT, class Traits>                                 \
-    static std::basic_istream<CharT,Traits>&                            \
-    read(std::basic_istream<CharT,Traits>& is, T& t)
-
-#endif
-
-#if defined(__BORLANDC__)
-
-#define BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(T, lhs, rhs)              \
-    bool operator==(const T& rhs) const                                 \
-    { return T::is_equal(*this, rhs); }                                 \
-    static bool is_equal(const T& lhs, const T& rhs)
-
-#define BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(T)                      \
-    bool operator!=(const T& rhs) const                                 \
-    { return !T::is_equal(*this, rhs); }
-
-#endif
-
-#ifndef BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR
-#define BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, T, t)                  \
-    template<class CharT, class Traits>                                 \
-    friend std::basic_ostream<CharT,Traits>&                            \
-    operator<<(std::basic_ostream<CharT,Traits>& os, const T& t)
-#endif
-
-#ifndef BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR
-#define BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, T, t)                  \
-    template<class CharT, class Traits>                                 \
-    friend std::basic_istream<CharT,Traits>&                            \
-    operator>>(std::basic_istream<CharT,Traits>& is, T& t)
-#endif
-
-#ifndef BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR
-#define BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(T, lhs, rhs)              \
-    friend bool operator==(const T& lhs, const T& rhs)
-#endif
-
-#ifndef BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR
-#define BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(T)                      \
-    friend bool operator!=(const T& lhs, const T& rhs)                  \
-    { return !(lhs == rhs); }
-#endif
-
-#endif
diff --git a/boost/random/detail/ptr_helper.hpp b/boost/random/detail/ptr_helper.hpp
deleted file mode 100644
index 3f3fbdd..0000000
--- a/boost/random/detail/ptr_helper.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-/* boost random/detail/ptr_helper.hpp header file
- *
- * Copyright Jens Maurer 2002
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: ptr_helper.hpp 24096 2004-07-27 03:43:34Z dgregor $
- *
- */
-
-#ifndef BOOST_RANDOM_DETAIL_PTR_HELPER_HPP
-#define BOOST_RANDOM_DETAIL_PTR_HELPER_HPP
-
-#include <boost/config.hpp>
-
-
-namespace boost {
-namespace random {
-namespace detail {
-
-// type_traits could help here, but I don't want to depend on type_traits.
-template<class T>
-struct ptr_helper
-{
-  typedef T value_type;
-  typedef T& reference_type;
-  typedef const T& rvalue_type;
-  static reference_type ref(T& r) { return r; }
-  static const T& ref(const T& r) { return r; }
-};
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-template<class T>
-struct ptr_helper<T&>
-{
-  typedef T value_type;
-  typedef T& reference_type;
-  typedef T& rvalue_type;
-  static reference_type ref(T& r) { return r; }
-  static const T& ref(const T& r) { return r; }
-};
-
-template<class T>
-struct ptr_helper<T*>
-{
-  typedef T value_type;
-  typedef T& reference_type;
-  typedef T* rvalue_type;
-  static reference_type ref(T * p) { return *p; }
-  static const T& ref(const T * p) { return *p; }
-};
-#endif
-
-} // namespace detail
-} // namespace random
-} // namespace boost
-
-//
-// BOOST_RANDOM_PTR_HELPER_SPEC --
-//
-//  Helper macro for broken compilers defines specializations of
-//  ptr_helper.
-//
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-# define BOOST_RANDOM_PTR_HELPER_SPEC(T)                \
-namespace boost { namespace random { namespace detail { \
-template<>                                              \
-struct ptr_helper<T&>                                   \
-{                                                       \
-  typedef T value_type;                                 \
-  typedef T& reference_type;                            \
-  typedef T& rvalue_type;                               \
-  static reference_type ref(T& r) { return r; }         \
-  static const T& ref(const T& r) { return r; }         \
-};                                                      \
-                                                        \
-template<>                                              \
-struct ptr_helper<T*>                                   \
-{                                                       \
-  typedef T value_type;                                 \
-  typedef T& reference_type;                            \
-  typedef T* rvalue_type;                               \
-  static reference_type ref(T * p) { return *p; }       \
-  static const T& ref(const T * p) { return *p; }       \
-};                                                      \
-}}}
-#else
-# define BOOST_RANDOM_PTR_HELPER_SPEC(T)
-#endif 
-
-#endif // BOOST_RANDOM_DETAIL_PTR_HELPER_HPP
diff --git a/boost/random/detail/seed.hpp b/boost/random/detail/seed.hpp
deleted file mode 100644
index 979db29..0000000
--- a/boost/random/detail/seed.hpp
+++ /dev/null
@@ -1,114 +0,0 @@
-/* boost random/detail/seed.hpp header file
- *
- * Copyright Steven Watanabe 2009
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: seed.hpp 71018 2011-04-05 21:27:52Z steven_watanabe $
- */
-
-#ifndef BOOST_RANDOM_DETAIL_SEED_HPP
-#define BOOST_RANDOM_DETAIL_SEED_HPP
-
-#include <boost/config.hpp>
-
-// Sun seems to have trouble with the use of SFINAE for the
-// templated constructor.  So does Borland.
-#if !defined(BOOST_NO_SFINAE) && !defined(__SUNPRO_CC) && !defined(__BORLANDC__)
-
-#include <boost/utility/enable_if.hpp>
-#include <boost/type_traits/is_arithmetic.hpp>
-
-namespace boost {
-namespace random {
-namespace detail {
-
-template<class T>
-struct disable_seed : boost::disable_if<boost::is_arithmetic<T> > {};
-
-template<class Engine, class T>
-struct disable_constructor : disable_seed<T> {};
-
-template<class Engine>
-struct disable_constructor<Engine, Engine> {};
-
-#define BOOST_RANDOM_DETAIL_GENERATOR_CONSTRUCTOR(Self, Generator, gen) \
-    template<class Generator>                                           \
-    explicit Self(Generator& gen, typename ::boost::random::detail::disable_constructor<Self, Generator>::type* = 0)
-
-#define BOOST_RANDOM_DETAIL_GENERATOR_SEED(Self, Generator, gen)    \
-    template<class Generator>                                       \
-    void seed(Generator& gen, typename ::boost::random::detail::disable_seed<Generator>::type* = 0)
-
-#define BOOST_RANDOM_DETAIL_SEED_SEQ_CONSTRUCTOR(Self, SeedSeq, seq)    \
-    template<class SeedSeq>                                             \
-    explicit Self(SeedSeq& seq, typename ::boost::random::detail::disable_constructor<Self, SeedSeq>::type* = 0)
-
-#define BOOST_RANDOM_DETAIL_SEED_SEQ_SEED(Self, SeedSeq, seq)   \
-    template<class SeedSeq>                                     \
-    void seed(SeedSeq& seq, typename ::boost::random::detail::disable_seed<SeedSeq>::type* = 0)
-
-#define BOOST_RANDOM_DETAIL_ARITHMETIC_CONSTRUCTOR(Self, T, x)  \
-    explicit Self(const T& x)
-
-#define BOOST_RANDOM_DETAIL_ARITHMETIC_SEED(Self, T, x) \
-    void seed(const T& x)
-}
-}
-}
-
-#else
-
-#include <boost/type_traits/is_arithmetic.hpp>
-#include <boost/mpl/bool.hpp>
-
-#define BOOST_RANDOM_DETAIL_GENERATOR_CONSTRUCTOR(Self, Generator, gen) \
-    Self(Self& other) { *this = other; }                                \
-    Self(const Self& other) { *this = other; }                          \
-    template<class Generator>                                           \
-    explicit Self(Generator& gen) {                                     \
-        boost_random_constructor_impl(gen, ::boost::is_arithmetic<Generator>());\
-    }                                                                   \
-    template<class Generator>                                           \
-    void boost_random_constructor_impl(Generator& gen, ::boost::mpl::false_)
-
-#define BOOST_RANDOM_DETAIL_GENERATOR_SEED(Self, Generator, gen)    \
-    template<class Generator>                                       \
-    void seed(Generator& gen) {                                     \
-        boost_random_seed_impl(gen, ::boost::is_arithmetic<Generator>());\
-    }\
-    template<class Generator>\
-    void boost_random_seed_impl(Generator& gen, ::boost::mpl::false_)
-
-#define BOOST_RANDOM_DETAIL_SEED_SEQ_CONSTRUCTOR(Self, SeedSeq, seq)    \
-    Self(Self& other) { *this = other; }                                \
-    Self(const Self& other) { *this = other; }                          \
-    template<class SeedSeq>                                             \
-    explicit Self(SeedSeq& seq) {                                       \
-        boost_random_constructor_impl(seq, ::boost::is_arithmetic<SeedSeq>());\
-    }                                                                   \
-    template<class SeedSeq>                                             \
-    void boost_random_constructor_impl(SeedSeq& seq, ::boost::mpl::false_)
-
-#define BOOST_RANDOM_DETAIL_SEED_SEQ_SEED(Self, SeedSeq, seq)           \
-    template<class SeedSeq>                                             \
-    void seed(SeedSeq& seq) {                                           \
-        boost_random_seed_impl(seq, ::boost::is_arithmetic<SeedSeq>()); \
-    }                                                                   \
-    template<class SeedSeq>                                             \
-    void boost_random_seed_impl(SeedSeq& seq, ::boost::mpl::false_)
-
-#define BOOST_RANDOM_DETAIL_ARITHMETIC_CONSTRUCTOR(Self, T, x)  \
-    explicit Self(const T& x) { boost_random_constructor_impl(x, ::boost::mpl::true_()); }\
-    void boost_random_constructor_impl(const T& x, ::boost::mpl::true_)
-
-#define BOOST_RANDOM_DETAIL_ARITHMETIC_SEED(Self, T, x) \
-    void seed(const T& x) { boost_random_seed_impl(x, ::boost::mpl::true_()); }\
-    void boost_random_seed_impl(const T& x, ::boost::mpl::true_)
-
-#endif
-
-#endif
diff --git a/boost/random/detail/seed_impl.hpp b/boost/random/detail/seed_impl.hpp
deleted file mode 100644
index e044d45..0000000
--- a/boost/random/detail/seed_impl.hpp
+++ /dev/null
@@ -1,397 +0,0 @@
-/* boost random/detail/seed.hpp header file
- *
- * Copyright Steven Watanabe 2009
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: seed_impl.hpp 72951 2011-07-07 04:57:37Z steven_watanabe $
- */
-
-#ifndef BOOST_RANDOM_DETAIL_SEED_IMPL_HPP
-#define BOOST_RANDOM_DETAIL_SEED_IMPL_HPP
-
-#include <stdexcept>
-#include <boost/cstdint.hpp>
-#include <boost/config/no_tr1/cmath.hpp>
-#include <boost/integer/integer_mask.hpp>
-#include <boost/integer/static_log2.hpp>
-#include <boost/type_traits/is_signed.hpp>
-#include <boost/type_traits/is_integral.hpp>
-#include <boost/type_traits/make_unsigned.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/int.hpp>
-#include <boost/random/detail/const_mod.hpp>
-#include <boost/random/detail/integer_log2.hpp>
-#include <boost/random/detail/signed_unsigned_tools.hpp>
-#include <boost/random/detail/generator_bits.hpp>
-
-#include <boost/random/detail/disable_warnings.hpp>
-
-namespace boost {
-namespace random {
-namespace detail {
-
-// finds the seed type of an engine, given its
-// result_type.  If the result_type is integral
-// the seed type is the same.  If the result_type
-// is floating point, the seed type is uint32_t
-template<class T>
-struct seed_type
-{
-    typedef typename boost::mpl::if_<boost::is_integral<T>,
-        T,
-        boost::uint32_t
-    >::type type;
-};
-
-template<int N>
-struct const_pow_impl
-{
-    template<class T>
-    static T call(T arg, int n, T result)
-    {
-        return const_pow_impl<N / 2>::call(arg * arg, n / 2,
-            n%2 == 0? result : result * arg);
-    }
-};
-
-template<>
-struct const_pow_impl<0>
-{
-    template<class T>
-    static T call(T, int, T result)
-    {
-        return result;
-    }
-};
-
-// requires N is an upper bound on n
-template<int N, class T>
-inline T const_pow(T arg, int n) { return const_pow_impl<N>::call(arg, n, T(1)); }
-
-template<class T>
-inline T pow2(int n)
-{
-    typedef unsigned int_type;
-    const int max_bits = std::numeric_limits<int_type>::digits;
-    T multiplier = T(int_type(1) << (max_bits - 1)) * 2;
-    return (int_type(1) << (n % max_bits)) *
-        const_pow<std::numeric_limits<T>::digits / max_bits>(multiplier, n / max_bits);
-}
-
-template<class Engine, class Iter>
-void generate_from_real(Engine& eng, Iter begin, Iter end)
-{
-    using std::fmod;
-    typedef typename Engine::result_type RealType;
-    const int Bits = detail::generator_bits<Engine>::value();
-    int remaining_bits = 0;
-    boost::uint_least32_t saved_bits = 0;
-    RealType multiplier = pow2<RealType>( Bits);
-    RealType mult32 = RealType(4294967296.0); // 2^32
-    while(true) {
-        RealType val = eng() * multiplier;
-        int available_bits = Bits;
-        // Make sure the compiler can optimize this out
-        // if it isn't possible.
-        if(Bits < 32 && available_bits < 32 - remaining_bits) {
-            saved_bits |= boost::uint_least32_t(val) << remaining_bits;
-            remaining_bits += Bits;
-        } else {
-            // If Bits < 32, then remaining_bits != 0, since
-            // if remaining_bits == 0, available_bits < 32 - 0,
-            // and we won't get here to begin with.
-            if(Bits < 32 || remaining_bits != 0) {
-                boost::uint_least32_t divisor =
-                    (boost::uint_least32_t(1) << (32 - remaining_bits));
-                boost::uint_least32_t extra_bits = boost::uint_least32_t(fmod(val, mult32)) & (divisor - 1);
-                val = val / divisor;
-                *begin++ = saved_bits | (extra_bits << remaining_bits);
-                if(begin == end) return;
-                available_bits -= 32 - remaining_bits;
-                remaining_bits = 0;
-            }
-            // If Bits < 32 we should never enter this loop
-            if(Bits >= 32) {
-                for(; available_bits >= 32; available_bits -= 32) {
-                    boost::uint_least32_t word = boost::uint_least32_t(fmod(val, mult32));
-                    val /= mult32;
-                    *begin++ = word;
-                    if(begin == end) return;
-                }
-            }
-            remaining_bits = available_bits;
-            saved_bits = static_cast<boost::uint_least32_t>(val);
-        }
-    }
-}
-
-template<class Engine, class Iter>
-void generate_from_int(Engine& eng, Iter begin, Iter end)
-{
-    typedef typename Engine::result_type IntType;
-    typedef typename boost::make_unsigned<IntType>::type unsigned_type;
-    int remaining_bits = 0;
-    boost::uint_least32_t saved_bits = 0;
-    unsigned_type range = boost::random::detail::subtract<IntType>()((eng.max)(), (eng.min)());
-
-    int bits =
-        (range == (std::numeric_limits<unsigned_type>::max)()) ?
-            std::numeric_limits<unsigned_type>::digits :
-            detail::integer_log2(range + 1);
-
-    {
-        int discarded_bits = detail::integer_log2(bits);
-        unsigned_type excess = (range + 1) >> (bits - discarded_bits);
-        if(excess != 0) {
-            int extra_bits = detail::integer_log2((excess - 1) ^ excess);
-            bits = bits - discarded_bits + extra_bits;
-        }
-    }
-
-    unsigned_type mask = (static_cast<unsigned_type>(2) << (bits - 1)) - 1;
-    unsigned_type limit = ((range + 1) & ~mask) - 1;
-
-    while(true) {
-        unsigned_type val;
-        do {
-            val = boost::random::detail::subtract<IntType>()(eng(), (eng.min)());
-        } while(limit != range && val > limit);
-        val &= mask;
-        int available_bits = bits;
-        if(available_bits == 32) {
-            *begin++ = static_cast<boost::uint_least32_t>(val) & 0xFFFFFFFFu;
-            if(begin == end) return;
-        } else if(available_bits % 32 == 0) {
-            for(int i = 0; i < available_bits / 32; ++i) {
-                boost::uint_least32_t word = boost::uint_least32_t(val) & 0xFFFFFFFFu;
-                int supress_warning = (bits >= 32);
-                BOOST_ASSERT(supress_warning == 1);
-                val >>= (32 * supress_warning);
-                *begin++ = word;
-                if(begin == end) return;
-            }
-        } else if(bits < 32 && available_bits < 32 - remaining_bits) {
-            saved_bits |= boost::uint_least32_t(val) << remaining_bits;
-            remaining_bits += bits;
-        } else {
-            if(bits < 32 || remaining_bits != 0) {
-                boost::uint_least32_t extra_bits = boost::uint_least32_t(val) & ((boost::uint_least32_t(1) << (32 - remaining_bits)) - 1);
-                val >>= 32 - remaining_bits;
-                *begin++ = saved_bits | (extra_bits << remaining_bits);
-                if(begin == end) return;
-                available_bits -= 32 - remaining_bits;
-                remaining_bits = 0;
-            }
-            if(bits >= 32) {
-                for(; available_bits >= 32; available_bits -= 32) {
-                    boost::uint_least32_t word = boost::uint_least32_t(val) & 0xFFFFFFFFu;
-                    int supress_warning = (bits >= 32);
-                    BOOST_ASSERT(supress_warning == 1);
-                    val >>= (32 * supress_warning);
-                    *begin++ = word;
-                    if(begin == end) return;
-                }
-            }
-            remaining_bits = available_bits;
-            saved_bits = static_cast<boost::uint_least32_t>(val);
-        }
-    }
-}
-
-template<class Engine, class Iter>
-void generate_impl(Engine& eng, Iter first, Iter last, boost::mpl::true_)
-{
-    return detail::generate_from_int(eng, first, last);
-}
-
-template<class Engine, class Iter>
-void generate_impl(Engine& eng, Iter first, Iter last, boost::mpl::false_)
-{
-    return detail::generate_from_real(eng, first, last);
-}
-
-template<class Engine, class Iter>
-void generate(Engine& eng, Iter first, Iter last)
-{
-    return detail::generate_impl(eng, first, last, boost::is_integral<typename Engine::result_type>());
-}
-
-
-
-template<class IntType, IntType m, class SeedSeq>
-IntType seed_one_int(SeedSeq& seq)
-{
-    static const int log = ::boost::mpl::if_c<(m == 0),
-        ::boost::mpl::int_<(::std::numeric_limits<IntType>::digits)>,
-        ::boost::static_log2<m> >::type::value;
-    static const int k =
-        (log + ((~(static_cast<IntType>(2) << (log - 1)) & m)? 32 : 31)) / 32;
-    ::boost::uint_least32_t array[log / 32 + 4];
-    seq.generate(&array[0], &array[0] + k + 3);
-    IntType s = 0;
-    for(int j = 0; j < k; ++j) {
-        IntType digit = const_mod<IntType, m>::apply(IntType(array[j+3]));
-        IntType mult = IntType(1) << 32*j;
-        s = const_mod<IntType, m>::mult_add(mult, digit, s);
-    }
-    return s;
-}
-
-template<class IntType, IntType m, class Iter>
-IntType get_one_int(Iter& first, Iter last)
-{
-    static const int log = ::boost::mpl::if_c<(m == 0),
-        ::boost::mpl::int_<(::std::numeric_limits<IntType>::digits)>,
-        ::boost::static_log2<m> >::type::value;
-    static const int k =
-        (log + ((~(static_cast<IntType>(2) << (log - 1)) & m)? 32 : 31)) / 32;
-    IntType s = 0;
-    for(int j = 0; j < k; ++j) {
-        if(first == last) {
-            throw ::std::invalid_argument("Not enough elements in call to seed.");
-        }
-        IntType digit = const_mod<IntType, m>::apply(IntType(*first++));
-        IntType mult = IntType(1) << 32*j;
-        s = const_mod<IntType, m>::mult_add(mult, digit, s);
-    }
-    return s;
-}
-
-// TODO: work in-place whenever possible
-template<int w, std::size_t n, class SeedSeq, class UIntType>
-void seed_array_int_impl(SeedSeq& seq, UIntType (&x)[n])
-{
-    boost::uint_least32_t storage[((w+31)/32) * n];
-    seq.generate(&storage[0], &storage[0] + ((w+31)/32) * n);
-    for(std::size_t j = 0; j < n; j++) {
-        UIntType val = 0;
-        for(std::size_t k = 0; k < (w+31)/32; ++k) {
-            val += static_cast<UIntType>(storage[(w+31)/32*j + k]) << 32*k;
-        }
-        x[j] = val & ::boost::low_bits_mask_t<w>::sig_bits;
-    }
-}
-
-template<int w, std::size_t n, class SeedSeq, class IntType>
-inline void seed_array_int_impl(SeedSeq& seq, IntType (&x)[n], boost::mpl::true_)
-{
-    typedef typename boost::make_unsigned<IntType>::type unsigned_array[n];
-    seed_array_int_impl<w>(seq, reinterpret_cast<unsigned_array&>(x));
-}
-
-template<int w, std::size_t n, class SeedSeq, class IntType>
-inline void seed_array_int_impl(SeedSeq& seq, IntType (&x)[n], boost::mpl::false_)
-{
-    seed_array_int_impl<w>(seq, x);
-}
-
-template<int w, std::size_t n, class SeedSeq, class IntType>
-inline void seed_array_int(SeedSeq& seq, IntType (&x)[n])
-{
-    seed_array_int_impl<w>(seq, x, boost::is_signed<IntType>());
-}
-
-template<int w, std::size_t n, class Iter, class UIntType>
-void fill_array_int_impl(Iter& first, Iter last, UIntType (&x)[n])
-{
-    for(std::size_t j = 0; j < n; j++) {
-        UIntType val = 0;
-        for(std::size_t k = 0; k < (w+31)/32; ++k) {
-            if(first == last) {
-                throw std::invalid_argument("Not enough elements in call to seed.");
-            }
-            val += static_cast<UIntType>(*first++) << 32*k;
-        }
-        x[j] = val & ::boost::low_bits_mask_t<w>::sig_bits;
-    }
-}
-
-template<int w, std::size_t n, class Iter, class IntType>
-inline void fill_array_int_impl(Iter& first, Iter last, IntType (&x)[n], boost::mpl::true_)
-{
-    typedef typename boost::make_unsigned<IntType>::type unsigned_array[n];
-    fill_array_int_impl<w>(first, last, reinterpret_cast<unsigned_array&>(x));
-}
-
-template<int w, std::size_t n, class Iter, class IntType>
-inline void fill_array_int_impl(Iter& first, Iter last, IntType (&x)[n], boost::mpl::false_)
-{
-    fill_array_int_impl<w>(first, last, x);
-}
-
-template<int w, std::size_t n, class Iter, class IntType>
-inline void fill_array_int(Iter& first, Iter last, IntType (&x)[n])
-{
-    fill_array_int_impl<w>(first, last, x, boost::is_signed<IntType>());
-}
-
-template<int w, std::size_t n, class RealType>
-void seed_array_real_impl(const boost::uint_least32_t* storage, RealType (&x)[n])
-{
-    boost::uint_least32_t mask = ~((~boost::uint_least32_t(0)) << (w%32));
-    RealType two32 = 4294967296.0;
-    const RealType divisor = RealType(1)/detail::pow2<RealType>(w);
-    unsigned int j;
-    for(j = 0; j < n; ++j) {
-        RealType val = RealType(0);
-        RealType mult = divisor;
-        for(int k = 0; k < w/32; ++k) {
-            val += *storage++ * mult;
-            mult *= two32;
-        }
-        if(mask != 0) {
-            val += (*storage++ & mask) * mult;
-        }
-        BOOST_ASSERT(val >= 0);
-        BOOST_ASSERT(val < 1);
-        x[j] = val;
-    }
-}
-
-template<int w, std::size_t n, class SeedSeq, class RealType>
-void seed_array_real(SeedSeq& seq, RealType (&x)[n])
-{
-    using std::pow;
-    boost::uint_least32_t storage[((w+31)/32) * n];
-    seq.generate(&storage[0], &storage[0] + ((w+31)/32) * n);
-    seed_array_real_impl<w>(storage, x);
-}
-
-template<int w, std::size_t n, class Iter, class RealType>
-void fill_array_real(Iter& first, Iter last, RealType (&x)[n])
-{
-    boost::uint_least32_t mask = ~((~boost::uint_least32_t(0)) << (w%32));
-    RealType two32 = 4294967296.0;
-    const RealType divisor = RealType(1)/detail::pow2<RealType>(w);
-    unsigned int j;
-    for(j = 0; j < n; ++j) {
-        RealType val = RealType(0);
-        RealType mult = divisor;
-        for(int k = 0; k < w/32; ++k, ++first) {
-            if(first == last) throw std::invalid_argument("Not enough elements in call to seed.");
-            val += *first * mult;
-            mult *= two32;
-        }
-        if(mask != 0) {
-            if(first == last) throw std::invalid_argument("Not enough elements in call to seed.");
-            val += (*first & mask) * mult;
-            ++first;
-        }
-        BOOST_ASSERT(val >= 0);
-        BOOST_ASSERT(val < 1);
-        x[j] = val;
-    }
-}
-
-}
-}
-}
-
-#include <boost/random/detail/enable_warnings.hpp>
-
-#endif
diff --git a/boost/random/detail/signed_unsigned_tools.hpp b/boost/random/detail/signed_unsigned_tools.hpp
deleted file mode 100644
index 988cfb8..0000000
--- a/boost/random/detail/signed_unsigned_tools.hpp
+++ /dev/null
@@ -1,89 +0,0 @@
-/* boost random/detail/signed_unsigned_tools.hpp header file
- *
- * Copyright Jens Maurer 2006
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- */
-
-#ifndef BOOST_RANDOM_DETAIL_SIGNED_UNSIGNED_TOOLS
-#define BOOST_RANDOM_DETAIL_SIGNED_UNSIGNED_TOOLS
-
-#include <boost/limits.hpp>
-#include <boost/config.hpp>
-#include <boost/type_traits/make_unsigned.hpp>
-
-namespace boost {
-namespace random {
-namespace detail {
-
-
-/*
- * Compute x - y, we know that x >= y, return an unsigned value.
- */
-
-template<class T, bool sgn = std::numeric_limits<T>::is_signed>
-struct subtract { };
-
-template<class T>
-struct subtract<T, /* signed */ false>
-{
-  typedef T result_type;
-  result_type operator()(T x, T y) { return x - y; }
-};
-
-template<class T>
-struct subtract<T, /* signed */ true>
-{
-  typedef typename make_unsigned<T>::type result_type;
-  result_type operator()(T x, T y)
-  {
-    if (y >= 0)   // because x >= y, it follows that x >= 0, too
-      return result_type(x) - result_type(y);
-    if (x >= 0)   // y < 0
-      // avoid the nasty two's complement case for y == min()
-      return result_type(x) + result_type(-(y+1)) + 1;
-    // both x and y are negative: no signed overflow
-    return result_type(x - y);
-  }
-};
-
-/*
- * Compute x + y, x is unsigned, result fits in type of "y".
- */
-
-template<class T1, class T2, bool sgn = std::numeric_limits<T2>::is_signed>
-struct add { };
-
-template<class T1, class T2>
-struct add<T1, T2, /* signed */ false>
-{
-  typedef T2 result_type;
-  result_type operator()(T1 x, T2 y) { return T2(x) + y; }
-};
-
-template<class T1, class T2>
-struct add<T1, T2, /* signed */ true>
-{
-  typedef T2 result_type;
-  result_type operator()(T1 x, T2 y)
-  {
-    if (y >= 0)
-      return T2(x) + y;
-    // y < 0
-    if (x > T1(-(y+1)))  // result >= 0 after subtraction
-      // avoid the nasty two's complement edge case for y == min()
-      return T2(x - T1(-(y+1)) - 1);
-    // abs(x) < abs(y), thus T2 able to represent x
-    return T2(x) + y;
-  }
-};
-
-} // namespace detail
-} // namespace random
-} // namespace boost
-
-#endif // BOOST_RANDOM_DETAIL_SIGNED_UNSIGNED_TOOLS
-
diff --git a/boost/random/detail/uniform_int_float.hpp b/boost/random/detail/uniform_int_float.hpp
deleted file mode 100644
index ef20915..0000000
--- a/boost/random/detail/uniform_int_float.hpp
+++ /dev/null
@@ -1,76 +0,0 @@
-/* boost random/detail/uniform_int_float.hpp header file
- *
- * Copyright Jens Maurer 2000-2001
- * Copyright Steven Watanabe 2011
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: uniform_int_float.hpp 72951 2011-07-07 04:57:37Z steven_watanabe $
- *
- */
-
-#ifndef BOOST_RANDOM_DETAIL_UNIFORM_INT_FLOAT_HPP
-#define BOOST_RANDOM_DETAIL_UNIFORM_INT_FLOAT_HPP
-
-#include <boost/limits.hpp>
-#include <boost/config.hpp>
-#include <boost/integer.hpp>
-#include <boost/random/detail/config.hpp>
-#include <boost/random/detail/generator_bits.hpp>
-
-#include <boost/random/detail/disable_warnings.hpp>
-
-namespace boost {
-namespace random {
-namespace detail {
-
-template<class URNG>
-class uniform_int_float
-{
-public:
-    typedef URNG base_type;
-    typedef typename base_type::result_type base_result;
-
-    typedef typename boost::uint_t<
-        (std::numeric_limits<boost::uintmax_t>::digits <
-            std::numeric_limits<base_result>::digits)?
-        std::numeric_limits<boost::uintmax_t>::digits :
-        std::numeric_limits<base_result>::digits
-    >::fast result_type;
-
-    uniform_int_float(base_type& rng)
-      : _rng(rng) {}
-
-    static result_type min BOOST_PREVENT_MACRO_SUBSTITUTION ()
-    { return 0; }
-    static result_type max BOOST_PREVENT_MACRO_SUBSTITUTION ()
-    {
-        std::size_t digits = std::numeric_limits<result_type>::digits;
-        if(detail::generator_bits<URNG>::value() < digits) {
-            digits = detail::generator_bits<URNG>::value();
-        }
-        return (result_type(2) << (digits - 1)) - 1;
-    }
-    base_type& base() { return _rng; }
-    const base_type& base() const { return _rng; }
-
-    result_type operator()()
-    {
-        base_result range = static_cast<base_result>((max)())+1;
-        return static_cast<result_type>(_rng() * range);
-    }
-
-private:
-    base_type& _rng;
-};
-
-} // namespace detail
-} // namespace random
-} // namespace boost
-
-#include <boost/random/detail/enable_warnings.hpp>
-
-#endif // BOOST_RANDOM_DETAIL_UNIFORM_INT_FLOAT_HPP
diff --git a/boost/random/detail/vector_io.hpp b/boost/random/detail/vector_io.hpp
deleted file mode 100644
index 0bb261c..0000000
--- a/boost/random/detail/vector_io.hpp
+++ /dev/null
@@ -1,75 +0,0 @@
-/* boost random/vector_io.hpp header file
- *
- * Copyright Steven Watanabe 2011
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: vector_io.hpp 71018 2011-04-05 21:27:52Z steven_watanabe $
- */
-
-#ifndef BOOST_RANDOM_DETAIL_VECTOR_IO_HPP
-#define BOOST_RANDOM_DETAIL_VECTOR_IO_HPP
-
-#include <vector>
-#include <iosfwd>
-#include <istream>
-
-namespace boost {
-namespace random {
-namespace detail {
-
-template<class CharT, class Traits, class T>
-void print_vector(std::basic_ostream<CharT, Traits>& os,
-                  const std::vector<T>& vec)
-{
-    typename std::vector<T>::const_iterator
-        iter = vec.begin(),
-        end =  vec.end();
-    os << os.widen('[');
-    if(iter != end) {
-        os << *iter;
-        ++iter;
-        for(; iter != end; ++iter)
-        {
-            os << os.widen(' ') << *iter;
-        }
-    }
-    os << os.widen(']');
-}
-
-template<class CharT, class Traits, class T>
-void read_vector(std::basic_istream<CharT, Traits>& is, std::vector<T>& vec)
-{
-    CharT ch;
-    if(!(is >> ch)) {
-        return;
-    }
-    if(ch != is.widen('[')) {
-        is.putback(ch);
-        is.setstate(std::ios_base::failbit);
-        return;
-    }
-    T val;
-    while(is >> std::ws >> val) {
-        vec.push_back(val);
-    }
-    if(is.fail()) {
-        is.clear();
-        if(!(is >> ch)) {
-            return;
-        }
-        if(ch != is.widen(']')) {
-            is.putback(ch);
-            is.setstate(std::ios_base::failbit);
-        }
-    }
-}
-
-}
-}
-}
-
-#endif // BOOST_RANDOM_DETAIL_VECTOR_IO_HPP
diff --git a/boost/random/discard_block.hpp b/boost/random/discard_block.hpp
deleted file mode 100644
index aba6212..0000000
--- a/boost/random/discard_block.hpp
+++ /dev/null
@@ -1,240 +0,0 @@
-/* boost random/discard_block.hpp header file
- *
- * Copyright Jens Maurer 2002
- * Copyright Steven Watanabe 2010
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: discard_block.hpp 72951 2011-07-07 04:57:37Z steven_watanabe $
- *
- * Revision history
- *  2001-03-02  created
- */
-
-#ifndef BOOST_RANDOM_DISCARD_BLOCK_HPP
-#define BOOST_RANDOM_DISCARD_BLOCK_HPP
-
-#include <iostream>
-#include <boost/config.hpp>
-#include <boost/cstdint.hpp>
-#include <boost/limits.hpp>
-#include <boost/static_assert.hpp>
-#include <boost/random/detail/config.hpp>
-#include <boost/random/detail/seed.hpp>
-
-
-namespace boost {
-namespace random {
-
-/**
- * The class template \discard_block_engine is a model of
- * \pseudo_random_number_generator.  It modifies
- * another generator by discarding parts of its output.
- * Out of every block of @c p results, the first @c r
- * will be returned and the rest discarded.
- *
- * Requires: 0 < p <= r
- */
-template<class UniformRandomNumberGenerator, std::size_t p, std::size_t r>
-class discard_block_engine
-{
-    typedef typename detail::seed_type<
-        typename UniformRandomNumberGenerator::result_type>::type seed_type;
-public:
-    typedef UniformRandomNumberGenerator base_type;
-    typedef typename base_type::result_type result_type;
-
-    BOOST_STATIC_CONSTANT(std::size_t, block_size = p);
-    BOOST_STATIC_CONSTANT(std::size_t, used_block = r);
-
-    BOOST_STATIC_CONSTANT(bool, has_fixed_range = false);
-    BOOST_STATIC_CONSTANT(std::size_t, total_block = p);
-    BOOST_STATIC_CONSTANT(std::size_t, returned_block = r);
-
-    BOOST_STATIC_ASSERT(total_block >= returned_block);
-
-    /** Uses the default seed for the base generator. */
-    discard_block_engine() : _rng(), _n(0) { }
-    /** Constructs a new \discard_block_engine with a copy of rng. */
-    explicit discard_block_engine(const base_type & rng) : _rng(rng), _n(0) { }
-
-#ifndef BOOST_NO_RVALUE_REFERENCES
-    /** Constructs a new \discard_block_engine with rng. */
-    explicit discard_block_engine(base_type && rng) : _rng(rng), _n(0) { }
-#endif
-
-    /**
-     * Creates a new \discard_block_engine and seeds the underlying
-     * generator with @c value
-     */
-    BOOST_RANDOM_DETAIL_ARITHMETIC_CONSTRUCTOR(discard_block_engine,
-                                               seed_type, value)
-    { _rng.seed(value); _n = 0; }
-    
-    /**
-     * Creates a new \discard_block_engine and seeds the underlying
-     * generator with @c seq
-     */
-    BOOST_RANDOM_DETAIL_SEED_SEQ_CONSTRUCTOR(discard_block_engine, SeedSeq, seq)
-    { _rng.seed(seq); _n = 0; }
-    
-    /**
-     * Creates a new \discard_block_engine and seeds the underlying
-     * generator with first and last.
-     */
-    template<class It> discard_block_engine(It& first, It last)
-      : _rng(first, last), _n(0) { }
-    
-    /** default seeds the underlying generator. */
-    void seed() { _rng.seed(); _n = 0; }
-    /** Seeds the underlying generator with s. */
-    BOOST_RANDOM_DETAIL_ARITHMETIC_SEED(discard_block_engine, seed_type, s)
-    { _rng.seed(s); _n = 0; }
-    /** Seeds the underlying generator with seq. */
-    BOOST_RANDOM_DETAIL_SEED_SEQ_SEED(discard_block_engine, SeedSeq, seq)
-    { _rng.seed(seq); _n = 0; }
-    /** Seeds the underlying generator with first and last. */
-    template<class It> void seed(It& first, It last)
-    { _rng.seed(first, last); _n = 0; }
-
-    /** Returns the underlying engine. */
-    const base_type& base() const { return _rng; }
-
-    /** Returns the next value of the generator. */
-    result_type operator()()
-    {
-        if(_n >= returned_block) {
-            // discard values of random number generator
-            // Don't use discard, since we still need to
-            // be somewhat compatible with TR1.
-            // _rng.discard(total_block - _n);
-            for(std::size_t i = 0; i < total_block - _n; ++i) {
-                _rng();
-            }
-            _n = 0;
-        }
-        ++_n;
-        return _rng();
-    }
-
-    void discard(boost::uintmax_t z)
-    {
-        for(boost::uintmax_t j = 0; j < z; ++j) {
-            (*this)();
-        }
-    }
-
-    template<class It>
-    void generate(It first, It last)
-    { detail::generate(*this, first, last); }
-
-    /**
-     * Returns the smallest value that the generator can produce.
-     * This is the same as the minimum of the underlying generator.
-     */
-    static result_type min BOOST_PREVENT_MACRO_SUBSTITUTION ()
-    { return (base_type::min)(); }
-    /**
-     * Returns the largest value that the generator can produce.
-     * This is the same as the maximum of the underlying generator.
-     */
-    static result_type max BOOST_PREVENT_MACRO_SUBSTITUTION ()
-    { return (base_type::max)(); }
-
-#ifndef BOOST_RANDOM_NO_STREAM_OPERATORS
-    /** Writes a \discard_block_engine to a @c std::ostream. */
-    template<class CharT, class Traits>
-    friend std::basic_ostream<CharT,Traits>&
-    operator<<(std::basic_ostream<CharT,Traits>& os,
-               const discard_block_engine& s)
-    {
-        os << s._rng << ' ' << s._n;
-        return os;
-    }
-
-    /** Reads a \discard_block_engine from a @c std::istream. */
-    template<class CharT, class Traits>
-    friend std::basic_istream<CharT,Traits>&
-    operator>>(std::basic_istream<CharT,Traits>& is, discard_block_engine& s)
-    {
-        is >> s._rng >> std::ws >> s._n;
-        return is;
-    }
-#endif
-
-    /** Returns true if the two generators will produce identical sequences. */
-    friend bool operator==(const discard_block_engine& x,
-                           const discard_block_engine& y)
-    { return x._rng == y._rng && x._n == y._n; }
-    /** Returns true if the two generators will produce different sequences. */
-    friend bool operator!=(const discard_block_engine& x,
-                           const discard_block_engine& y)
-    { return !(x == y); }
-
-private:
-    base_type _rng;
-    std::size_t _n;
-};
-
-#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
-//  A definition is required even for integral static constants
-template<class URNG, std::size_t p, std::size_t r>
-const bool discard_block_engine<URNG, p, r>::has_fixed_range;
-template<class URNG, std::size_t p, std::size_t r>
-const std::size_t discard_block_engine<URNG, p, r>::total_block;
-template<class URNG, std::size_t p, std::size_t r>
-const std::size_t discard_block_engine<URNG, p, r>::returned_block;
-template<class URNG, std::size_t p, std::size_t r>
-const std::size_t discard_block_engine<URNG, p, r>::block_size;
-template<class URNG, std::size_t p, std::size_t r>
-const std::size_t discard_block_engine<URNG, p, r>::used_block;
-#endif
-
-/// \cond \show_deprecated
-
-template<class URNG, int p, int r>
-class discard_block : public discard_block_engine<URNG, p, r>
-{
-    typedef discard_block_engine<URNG, p, r> base_t;
-public:
-    typedef typename base_t::result_type result_type;
-    discard_block() {}
-    template<class T>
-    discard_block(T& arg) : base_t(arg) {}
-    template<class T>
-    discard_block(const T& arg) : base_t(arg) {}
-    template<class It>
-    discard_block(It& first, It last) : base_t(first, last) {}
-    result_type min BOOST_PREVENT_MACRO_SUBSTITUTION ()
-    { return (this->base().min)(); }
-    result_type max BOOST_PREVENT_MACRO_SUBSTITUTION ()
-    { return (this->base().max)(); }
-};
-
-/// \endcond
-
-namespace detail {
-
-    template<class Engine>
-    struct generator_bits;
-    
-    template<class URNG, std::size_t p, std::size_t r>
-    struct generator_bits<discard_block_engine<URNG, p, r> > {
-        static std::size_t value() { return generator_bits<URNG>::value(); }
-    };
-
-    template<class URNG, int p, int r>
-    struct generator_bits<discard_block<URNG, p, r> > {
-        static std::size_t value() { return generator_bits<URNG>::value(); }
-    };
-
-}
-
-} // namespace random
-
-} // namespace boost
-
-#endif // BOOST_RANDOM_DISCARD_BLOCK_HPP
diff --git a/boost/random/discrete_distribution.hpp b/boost/random/discrete_distribution.hpp
deleted file mode 100644
index 626ee42..0000000
--- a/boost/random/discrete_distribution.hpp
+++ /dev/null
@@ -1,453 +0,0 @@
-/* boost random/discrete_distribution.hpp header file
- *
- * Copyright Steven Watanabe 2009-2011
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: discrete_distribution.hpp 85813 2013-09-21 20:17:00Z jewillco $
- */
-
-#ifndef BOOST_RANDOM_DISCRETE_DISTRIBUTION_HPP_INCLUDED
-#define BOOST_RANDOM_DISCRETE_DISTRIBUTION_HPP_INCLUDED
-
-#include <vector>
-#include <limits>
-#include <numeric>
-#include <utility>
-#include <iterator>
-#include <boost/assert.hpp>
-#include <boost/random/uniform_01.hpp>
-#include <boost/random/uniform_int.hpp>
-#include <boost/random/detail/config.hpp>
-#include <boost/random/detail/operators.hpp>
-#include <boost/random/detail/vector_io.hpp>
-
-#ifndef BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#include <initializer_list>
-#endif
-
-#include <boost/range/begin.hpp>
-#include <boost/range/end.hpp>
-
-#include <boost/random/detail/disable_warnings.hpp>
-
-namespace boost {
-namespace random {
-
-/**
- * The class @c discrete_distribution models a \random_distribution.
- * It produces integers in the range [0, n) with the probability
- * of producing each value is specified by the parameters of the
- * distribution.
- */
-template<class IntType = int, class WeightType = double>
-class discrete_distribution {
-public:
-    typedef WeightType input_type;
-    typedef IntType result_type;
-
-    class param_type {
-    public:
-
-        typedef discrete_distribution distribution_type;
-
-        /**
-         * Constructs a @c param_type object, representing a distribution
-         * with \f$p(0) = 1\f$ and \f$p(k|k>0) = 0\f$.
-         */
-        param_type() : _probabilities(1, static_cast<WeightType>(1)) {}
-        /**
-         * If @c first == @c last, equivalent to the default constructor.
-         * Otherwise, the values of the range represent weights for the
-         * possible values of the distribution.
-         */
-        template<class Iter>
-        param_type(Iter first, Iter last) : _probabilities(first, last)
-        {
-            normalize();
-        }
-#ifndef BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-        /**
-         * If wl.size() == 0, equivalent to the default constructor.
-         * Otherwise, the values of the @c initializer_list represent
-         * weights for the possible values of the distribution.
-         */
-        param_type(const std::initializer_list<WeightType>& wl)
-          : _probabilities(wl)
-        {
-            normalize();
-        }
-#endif
-        /**
-         * If the range is empty, equivalent to the default constructor.
-         * Otherwise, the elements of the range represent
-         * weights for the possible values of the distribution.
-         */
-        template<class Range>
-        explicit param_type(const Range& range)
-          : _probabilities(boost::begin(range), boost::end(range))
-        {
-            normalize();
-        }
-
-        /**
-         * If nw is zero, equivalent to the default constructor.
-         * Otherwise, the range of the distribution is [0, nw),
-         * and the weights are found by  calling fw with values
-         * evenly distributed between \f$\mbox{xmin} + \delta/2\f$ and
-         * \f$\mbox{xmax} - \delta/2\f$, where
-         * \f$\delta = (\mbox{xmax} - \mbox{xmin})/\mbox{nw}\f$.
-         */
-        template<class Func>
-        param_type(std::size_t nw, double xmin, double xmax, Func fw)
-        {
-            std::size_t n = (nw == 0) ? 1 : nw;
-            double delta = (xmax - xmin) / n;
-            BOOST_ASSERT(delta > 0);
-            for(std::size_t k = 0; k < n; ++k) {
-                _probabilities.push_back(fw(xmin + k*delta + delta/2));
-            }
-            normalize();
-        }
-
-        /**
-         * Returns a vector containing the probabilities of each possible
-         * value of the distribution.
-         */
-        std::vector<WeightType> probabilities() const
-        {
-            return _probabilities;
-        }
-
-        /** Writes the parameters to a @c std::ostream. */
-        BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, param_type, parm)
-        {
-            detail::print_vector(os, parm._probabilities);
-            return os;
-        }
-        
-        /** Reads the parameters from a @c std::istream. */
-        BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, param_type, parm)
-        {
-            std::vector<WeightType> temp;
-            detail::read_vector(is, temp);
-            if(is) {
-                parm._probabilities.swap(temp);
-            }
-            return is;
-        }
-
-        /** Returns true if the two sets of parameters are the same. */
-        BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(param_type, lhs, rhs)
-        {
-            return lhs._probabilities == rhs._probabilities;
-        }
-        /** Returns true if the two sets of parameters are different. */
-        BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(param_type)
-    private:
-        /// @cond show_private
-        friend class discrete_distribution;
-        explicit param_type(const discrete_distribution& dist)
-          : _probabilities(dist.probabilities())
-        {}
-        void normalize()
-        {
-            WeightType sum =
-                std::accumulate(_probabilities.begin(), _probabilities.end(),
-                                static_cast<WeightType>(0));
-            for(typename std::vector<WeightType>::iterator
-                    iter = _probabilities.begin(),
-                    end = _probabilities.end();
-                    iter != end; ++iter)
-            {
-                *iter /= sum;
-            }
-        }
-        std::vector<WeightType> _probabilities;
-        /// @endcond
-    };
-
-    /**
-     * Creates a new @c discrete_distribution object that has
-     * \f$p(0) = 1\f$ and \f$p(i|i>0) = 0\f$.
-     */
-    discrete_distribution()
-    {
-        _alias_table.push_back(std::make_pair(static_cast<WeightType>(1),
-                                              static_cast<IntType>(0)));
-    }
-    /**
-     * Constructs a discrete_distribution from an iterator range.
-     * If @c first == @c last, equivalent to the default constructor.
-     * Otherwise, the values of the range represent weights for the
-     * possible values of the distribution.
-     */
-    template<class Iter>
-    discrete_distribution(Iter first, Iter last)
-    {
-        init(first, last);
-    }
-#ifndef BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-    /**
-     * Constructs a @c discrete_distribution from a @c std::initializer_list.
-     * If the @c initializer_list is empty, equivalent to the default
-     * constructor.  Otherwise, the values of the @c initializer_list
-     * represent weights for the possible values of the distribution.
-     * For example, given the distribution
-     *
-     * @code
-     * discrete_distribution<> dist{1, 4, 5};
-     * @endcode
-     *
-     * The probability of a 0 is 1/10, the probability of a 1 is 2/5,
-     * the probability of a 2 is 1/2, and no other values are possible.
-     */
-    discrete_distribution(std::initializer_list<WeightType> wl)
-    {
-        init(wl.begin(), wl.end());
-    }
-#endif
-    /**
-     * Constructs a discrete_distribution from a Boost.Range range.
-     * If the range is empty, equivalent to the default constructor.
-     * Otherwise, the values of the range represent weights for the
-     * possible values of the distribution.
-     */
-    template<class Range>
-    explicit discrete_distribution(const Range& range)
-    {
-        init(boost::begin(range), boost::end(range));
-    }
-    /**
-     * Constructs a discrete_distribution that approximates a function.
-     * If nw is zero, equivalent to the default constructor.
-     * Otherwise, the range of the distribution is [0, nw),
-     * and the weights are found by  calling fw with values
-     * evenly distributed between \f$\mbox{xmin} + \delta/2\f$ and
-     * \f$\mbox{xmax} - \delta/2\f$, where
-     * \f$\delta = (\mbox{xmax} - \mbox{xmin})/\mbox{nw}\f$.
-     */
-    template<class Func>
-    discrete_distribution(std::size_t nw, double xmin, double xmax, Func fw)
-    {
-        std::size_t n = (nw == 0) ? 1 : nw;
-        double delta = (xmax - xmin) / n;
-        BOOST_ASSERT(delta > 0);
-        std::vector<WeightType> weights;
-        for(std::size_t k = 0; k < n; ++k) {
-            weights.push_back(fw(xmin + k*delta + delta/2));
-        }
-        init(weights.begin(), weights.end());
-    }
-    /**
-     * Constructs a discrete_distribution from its parameters.
-     */
-    explicit discrete_distribution(const param_type& parm)
-    {
-        param(parm);
-    }
-
-    /**
-     * Returns a value distributed according to the parameters of the
-     * discrete_distribution.
-     */
-    template<class URNG>
-    IntType operator()(URNG& urng) const
-    {
-        BOOST_ASSERT(!_alias_table.empty());
-        WeightType test = uniform_01<WeightType>()(urng);
-        IntType result = uniform_int<IntType>((min)(), (max)())(urng);
-        if(test < _alias_table[result].first) {
-            return result;
-        } else {
-            return(_alias_table[result].second);
-        }
-    }
-    
-    /**
-     * Returns a value distributed according to the parameters
-     * specified by param.
-     */
-    template<class URNG>
-    IntType operator()(URNG& urng, const param_type& parm) const
-    {
-        while(true) {
-            WeightType val = uniform_01<WeightType>()(urng);
-            WeightType sum = 0;
-            std::size_t result = 0;
-            for(typename std::vector<WeightType>::const_iterator
-                iter = parm._probabilities.begin(),
-                end = parm._probabilities.end();
-                iter != end; ++iter, ++result)
-            {
-                sum += *iter;
-                if(sum > val) {
-                    return result;
-                }
-            }
-        }
-    }
-    
-    /** Returns the smallest value that the distribution can produce. */
-    result_type min BOOST_PREVENT_MACRO_SUBSTITUTION () const { return 0; }
-    /** Returns the largest value that the distribution can produce. */
-    result_type max BOOST_PREVENT_MACRO_SUBSTITUTION () const
-    { return static_cast<result_type>(_alias_table.size() - 1); }
-
-    /**
-     * Returns a vector containing the probabilities of each
-     * value of the distribution.  For example, given
-     *
-     * @code
-     * discrete_distribution<> dist = { 1, 4, 5 };
-     * std::vector<double> p = dist.param();
-     * @endcode
-     *
-     * the vector, p will contain {0.1, 0.4, 0.5}.
-     */
-    std::vector<WeightType> probabilities() const
-    {
-        std::vector<WeightType> result(_alias_table.size());
-        const WeightType mean =
-            static_cast<WeightType>(1) / _alias_table.size();
-        std::size_t i = 0;
-        for(typename alias_table_t::const_iterator
-                iter = _alias_table.begin(),
-                end = _alias_table.end();
-                iter != end; ++iter, ++i)
-        {
-            WeightType val = iter->first * mean;
-            result[i] += val;
-            result[iter->second] += mean - val;
-        }
-        return(result);
-    }
-
-    /** Returns the parameters of the distribution. */
-    param_type param() const
-    {
-        return param_type(*this);
-    }
-    /** Sets the parameters of the distribution. */
-    void param(const param_type& parm)
-    {
-        init(parm._probabilities.begin(), parm._probabilities.end());
-    }
-    
-    /**
-     * Effects: Subsequent uses of the distribution do not depend
-     * on values produced by any engine prior to invoking reset.
-     */
-    void reset() {}
-
-    /** Writes a distribution to a @c std::ostream. */
-    BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, discrete_distribution, dd)
-    {
-        os << dd.param();
-        return os;
-    }
-
-    /** Reads a distribution from a @c std::istream */
-    BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, discrete_distribution, dd)
-    {
-        param_type parm;
-        if(is >> parm) {
-            dd.param(parm);
-        }
-        return is;
-    }
-
-    /**
-     * Returns true if the two distributions will return the
-     * same sequence of values, when passed equal generators.
-     */
-    BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(discrete_distribution, lhs, rhs)
-    {
-        return lhs._alias_table == rhs._alias_table;
-    }
-    /**
-     * Returns true if the two distributions may return different
-     * sequences of values, when passed equal generators.
-     */
-    BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(discrete_distribution)
-
-private:
-
-    /// @cond show_private
-
-    template<class Iter>
-    void init(Iter first, Iter last, std::input_iterator_tag)
-    {
-        std::vector<WeightType> temp(first, last);
-        init(temp.begin(), temp.end());
-    }
-    template<class Iter>
-    void init(Iter first, Iter last, std::forward_iterator_tag)
-    {
-        std::vector<std::pair<WeightType, IntType> > below_average;
-        std::vector<std::pair<WeightType, IntType> > above_average;
-        std::size_t size = std::distance(first, last);
-        WeightType weight_sum =
-            std::accumulate(first, last, static_cast<WeightType>(0));
-        WeightType weight_average = weight_sum / size;
-        std::size_t i = 0;
-        for(; first != last; ++first, ++i) {
-            WeightType val = *first / weight_average;
-            std::pair<WeightType, IntType> elem(val, static_cast<IntType>(i));
-            if(val < static_cast<WeightType>(1)) {
-                below_average.push_back(elem);
-            } else {
-                above_average.push_back(elem);
-            }
-        }
-
-        _alias_table.resize(size);
-        typename alias_table_t::iterator
-            b_iter = below_average.begin(),
-            b_end = below_average.end(),
-            a_iter = above_average.begin(),
-            a_end = above_average.end()
-            ;
-        while(b_iter != b_end && a_iter != a_end) {
-            _alias_table[b_iter->second] =
-                std::make_pair(b_iter->first, a_iter->second);
-            a_iter->first -= (static_cast<WeightType>(1) - b_iter->first);
-            if(a_iter->first < static_cast<WeightType>(1)) {
-                *b_iter = *a_iter++;
-            } else {
-                ++b_iter;
-            }
-        }
-        for(; b_iter != b_end; ++b_iter) {
-            _alias_table[b_iter->second].first = static_cast<WeightType>(1);
-        }
-        for(; a_iter != a_end; ++a_iter) {
-            _alias_table[a_iter->second].first = static_cast<WeightType>(1);
-        }
-    }
-    template<class Iter>
-    void init(Iter first, Iter last)
-    {
-        if(first == last) {
-            _alias_table.clear();
-            _alias_table.push_back(std::make_pair(static_cast<WeightType>(1),
-                                                  static_cast<IntType>(0)));
-        } else {
-            typename std::iterator_traits<Iter>::iterator_category category;
-            init(first, last, category);
-        }
-    }
-    typedef std::vector<std::pair<WeightType, IntType> > alias_table_t;
-    alias_table_t _alias_table;
-    /// @endcond
-};
-
-}
-}
-
-#include <boost/random/detail/enable_warnings.hpp>
-
-#endif
diff --git a/boost/random/exponential_distribution.hpp b/boost/random/exponential_distribution.hpp
deleted file mode 100644
index dd45e35..0000000
--- a/boost/random/exponential_distribution.hpp
+++ /dev/null
@@ -1,182 +0,0 @@
-/* boost random/exponential_distribution.hpp header file
- *
- * Copyright Jens Maurer 2000-2001
- * Copyright Steven Watanabe 2011
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: exponential_distribution.hpp 71018 2011-04-05 21:27:52Z steven_watanabe $
- *
- * Revision history
- *  2001-02-18  moved to individual header files
- */
-
-#ifndef BOOST_RANDOM_EXPONENTIAL_DISTRIBUTION_HPP
-#define BOOST_RANDOM_EXPONENTIAL_DISTRIBUTION_HPP
-
-#include <boost/config/no_tr1/cmath.hpp>
-#include <iosfwd>
-#include <boost/assert.hpp>
-#include <boost/limits.hpp>
-#include <boost/random/detail/config.hpp>
-#include <boost/random/detail/operators.hpp>
-#include <boost/random/uniform_01.hpp>
-
-namespace boost {
-namespace random {
-
-/**
- * The exponential distribution is a model of \random_distribution with
- * a single parameter lambda.
- *
- * It has \f$\displaystyle p(x) = \lambda e^{-\lambda x}\f$
- */
-template<class RealType = double>
-class exponential_distribution
-{
-public:
-    typedef RealType input_type;
-    typedef RealType result_type;
-
-    class param_type
-    {
-    public:
-
-        typedef exponential_distribution distribution_type;
-
-        /**
-         * Constructs parameters with a given lambda.
-         *
-         * Requires: lambda > 0
-         */
-        param_type(RealType lambda_arg = RealType(1.0))
-          : _lambda(lambda_arg) { BOOST_ASSERT(_lambda > RealType(0)); }
-
-        /** Returns the lambda parameter of the distribution. */
-        RealType lambda() const { return _lambda; }
-
-        /** Writes the parameters to a @c std::ostream. */
-        BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, param_type, parm)
-        {
-            os << parm._lambda;
-            return os;
-        }
-        
-        /** Reads the parameters from a @c std::istream. */
-        BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, param_type, parm)
-        {
-            is >> parm._lambda;
-            return is;
-        }
-
-        /** Returns true if the two sets of parameters are equal. */
-        BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(param_type, lhs, rhs)
-        { return lhs._lambda == rhs._lambda; }
-
-        /** Returns true if the two sets of parameters are different. */
-        BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(param_type)
-
-    private:
-        RealType _lambda;
-    };
-
-    /**
-     * Constructs an exponential_distribution with a given lambda.
-     *
-     * Requires: lambda > 0
-     */
-    explicit exponential_distribution(RealType lambda_arg = RealType(1.0))
-      : _lambda(lambda_arg) { BOOST_ASSERT(_lambda > RealType(0)); }
-
-    /**
-     * Constructs an exponential_distribution from its parameters
-     */
-    explicit exponential_distribution(const param_type& parm)
-      : _lambda(parm.lambda()) {}
-
-    // compiler-generated copy ctor and assignment operator are fine
-
-    /** Returns the lambda parameter of the distribution. */
-    RealType lambda() const { return _lambda; }
-
-    /** Returns the smallest value that the distribution can produce. */
-    RealType min BOOST_PREVENT_MACRO_SUBSTITUTION () const
-    { return RealType(0); }
-    /** Returns the largest value that the distribution can produce. */
-    RealType max BOOST_PREVENT_MACRO_SUBSTITUTION () const
-    { return (std::numeric_limits<RealType>::infinity)(); }
-
-    /** Returns the parameters of the distribution. */
-    param_type param() const { return param_type(_lambda); }
-    /** Sets the parameters of the distribution. */
-    void param(const param_type& parm) { _lambda = parm.lambda(); }
-
-    /**
-     * Effects: Subsequent uses of the distribution do not depend
-     * on values produced by any engine prior to invoking reset.
-     */
-    void reset() { }
-
-    /**
-     * Returns a random variate distributed according to the
-     * exponential distribution.
-     */
-    template<class Engine>
-    result_type operator()(Engine& eng) const
-    { 
-        using std::log;
-        return -result_type(1) /
-            _lambda * log(result_type(1)-uniform_01<RealType>()(eng));
-    }
-
-    /**
-     * Returns a random variate distributed according to the exponential
-     * distribution with parameters specified by param.
-     */
-    template<class Engine>
-    result_type operator()(Engine& eng, const param_type& parm) const
-    { 
-        return exponential_distribution(parm)(eng);
-    }
-
-    /** Writes the distribution to a std::ostream. */
-    BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, exponential_distribution, ed)
-    {
-        os << ed._lambda;
-        return os;
-    }
-
-    /** Reads the distribution from a std::istream. */
-    BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, exponential_distribution, ed)
-    {
-        is >> ed._lambda;
-        return is;
-    }
-
-    /**
-     * Returns true iff the two distributions will produce identical
-     * sequences of values given equal generators.
-     */
-    BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(exponential_distribution, lhs, rhs)
-    { return lhs._lambda == rhs._lambda; }
-    
-    /**
-     * Returns true iff the two distributions will produce different
-     * sequences of values given equal generators.
-     */
-    BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(exponential_distribution)
-
-private:
-    result_type _lambda;
-};
-
-} // namespace random
-
-using random::exponential_distribution;
-
-} // namespace boost
-
-#endif // BOOST_RANDOM_EXPONENTIAL_DISTRIBUTION_HPP
diff --git a/boost/random/extreme_value_distribution.hpp b/boost/random/extreme_value_distribution.hpp
deleted file mode 100644
index 61a6554..0000000
--- a/boost/random/extreme_value_distribution.hpp
+++ /dev/null
@@ -1,177 +0,0 @@
-/* boost random/extreme_value_distribution.hpp header file
- *
- * Copyright Steven Watanabe 2010
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: extreme_value_distribution.hpp 71018 2011-04-05 21:27:52Z steven_watanabe $
- */
-
-#ifndef BOOST_RANDOM_EXTREME_VALUE_DISTRIBUTION_HPP
-#define BOOST_RANDOM_EXTREME_VALUE_DISTRIBUTION_HPP
-
-#include <boost/config/no_tr1/cmath.hpp>
-#include <iosfwd>
-#include <istream>
-#include <boost/config.hpp>
-#include <boost/limits.hpp>
-#include <boost/random/detail/operators.hpp>
-#include <boost/random/uniform_01.hpp>
-
-namespace boost {
-namespace random {
-
-/**
- * The extreme value distribution is a real valued distribution with two
- * parameters a and b.
- *
- * It has \f$\displaystyle p(x) = \frac{1}{b}e^{\frac{a-x}{b} - e^\frac{a-x}{b}}\f$.
- */
-template<class RealType = double>
-class extreme_value_distribution {
-public:
-    typedef RealType result_type;
-    typedef RealType input_type;
-
-    class param_type {
-    public:
-        typedef extreme_value_distribution distribution_type;
-
-        /**
-         * Constructs a @c param_type from the "a" and "b" parameters
-         * of the distribution.
-         *
-         * Requires: b > 0
-         */
-        explicit param_type(RealType a_arg = 1.0, RealType b_arg = 1.0)
-          : _a(a_arg), _b(b_arg)
-        {}
-
-        /** Returns the "a" parameter of the distribtuion. */
-        RealType a() const { return _a; }
-        /** Returns the "b" parameter of the distribution. */
-        RealType b() const { return _b; }
-
-        /** Writes a @c param_type to a @c std::ostream. */
-        BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, param_type, parm)
-        { os << parm._a << ' ' << parm._b; return os; }
-
-        /** Reads a @c param_type from a @c std::istream. */
-        BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, param_type, parm)
-        { is >> parm._a >> std::ws >> parm._b; return is; }
-
-        /** Returns true if the two sets of parameters are the same. */
-        BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(param_type, lhs, rhs)
-        { return lhs._a == rhs._a && lhs._b == rhs._b; }
-        
-        /** Returns true if the two sets of parameters are the different. */
-        BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(param_type)
-
-    private:
-        RealType _a;
-        RealType _b;
-    };
-
-    /**
-     * Constructs an @c extreme_value_distribution from its "a" and "b" parameters.
-     *
-     * Requires: b > 0
-     */
-    explicit extreme_value_distribution(RealType a_arg = 1.0, RealType b_arg = 1.0)
-      : _a(a_arg), _b(b_arg)
-    {}
-    /** Constructs an @c extreme_value_distribution from its parameters. */
-    explicit extreme_value_distribution(const param_type& parm)
-      : _a(parm.a()), _b(parm.b())
-    {}
-
-    /**
-     * Returns a random variate distributed according to the
-     * @c extreme_value_distribution.
-     */
-    template<class URNG>
-    RealType operator()(URNG& urng) const
-    {
-        using std::log;
-        return _a - log(-log(uniform_01<RealType>()(urng))) * _b;
-    }
-
-    /**
-     * Returns a random variate distributed accordint to the extreme
-     * value distribution with parameters specified by @c param.
-     */
-    template<class URNG>
-    RealType operator()(URNG& urng, const param_type& parm) const
-    {
-        return extreme_value_distribution(parm)(urng);
-    }
-
-    /** Returns the "a" parameter of the distribution. */
-    RealType a() const { return _a; }
-    /** Returns the "b" parameter of the distribution. */
-    RealType b() const { return _b; }
-
-    /** Returns the smallest value that the distribution can produce. */
-    RealType min BOOST_PREVENT_MACRO_SUBSTITUTION () const
-    { return -std::numeric_limits<RealType>::infinity(); }
-    /** Returns the largest value that the distribution can produce. */
-    RealType max BOOST_PREVENT_MACRO_SUBSTITUTION () const
-    { return std::numeric_limits<RealType>::infinity(); }
-
-    /** Returns the parameters of the distribution. */
-    param_type param() const { return param_type(_a, _b); }
-    /** Sets the parameters of the distribution. */
-    void param(const param_type& parm)
-    {
-        _a = parm.a();
-        _b = parm.b();
-    }
-
-    /**
-     * Effects: Subsequent uses of the distribution do not depend
-     * on values produced by any engine prior to invoking reset.
-     */
-    void reset() { }
-
-    /** Writes an @c extreme_value_distribution to a @c std::ostream. */
-    BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, extreme_value_distribution, wd)
-    {
-        os << wd.param();
-        return os;
-    }
-
-    /** Reads an @c extreme_value_distribution from a @c std::istream. */
-    BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, extreme_value_distribution, wd)
-    {
-        param_type parm;
-        if(is >> parm) {
-            wd.param(parm);
-        }
-        return is;
-    }
-
-    /**
-     * Returns true if the two instances of @c extreme_value_distribution will
-     * return identical sequences of values given equal generators.
-     */
-    BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(extreme_value_distribution, lhs, rhs)
-    { return lhs._a == rhs._a && lhs._b == rhs._b; }
-    
-    /**
-     * Returns true if the two instances of @c extreme_value_distribution will
-     * return different sequences of values given equal generators.
-     */
-    BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(extreme_value_distribution)
-
-private:
-    RealType _a;
-    RealType _b;
-};
-
-} // namespace random
-} // namespace boost
-
-#endif // BOOST_RANDOM_EXTREME_VALUE_DISTRIBUTION_HPP
diff --git a/boost/random/fisher_f_distribution.hpp b/boost/random/fisher_f_distribution.hpp
deleted file mode 100644
index 58a05ac..0000000
--- a/boost/random/fisher_f_distribution.hpp
+++ /dev/null
@@ -1,183 +0,0 @@
-/* boost random/fisher_f_distribution.hpp header file
- *
- * Copyright Steven Watanabe 2011
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: fisher_f_distribution.hpp 71018 2011-04-05 21:27:52Z steven_watanabe $
- */
-
-#ifndef BOOST_RANDOM_FISHER_F_DISTRIBUTION_HPP
-#define BOOST_RANDOM_FISHER_F_DISTRIBUTION_HPP
-
-#include <iosfwd>
-#include <istream>
-#include <boost/config.hpp>
-#include <boost/limits.hpp>
-#include <boost/random/detail/operators.hpp>
-#include <boost/random/chi_squared_distribution.hpp>
-
-namespace boost {
-namespace random {
-
-/**
- * The Fisher F distribution is a real valued distribution with two
- * parameters m and n.
- *
- * It has \f$\displaystyle p(x) =
- *   \frac{\Gamma((m+n)/2)}{\Gamma(m/2)\Gamma(n/2)}
- *   \left(\frac{m}{n}\right)^{m/2}
- *   x^{(m/2)-1} \left(1+\frac{mx}{n}\right)^{-(m+n)/2}
- * \f$.
- */
-template<class RealType = double>
-class fisher_f_distribution {
-public:
-    typedef RealType result_type;
-    typedef RealType input_type;
-
-    class param_type {
-    public:
-        typedef fisher_f_distribution distribution_type;
-
-        /**
-         * Constructs a @c param_type from the "m" and "n" parameters
-         * of the distribution.
-         *
-         * Requires: m > 0 and n > 0
-         */
-        explicit param_type(RealType m_arg = RealType(1.0),
-                            RealType n_arg = RealType(1.0))
-          : _m(m_arg), _n(n_arg)
-        {}
-
-        /** Returns the "m" parameter of the distribtuion. */
-        RealType m() const { return _m; }
-        /** Returns the "n" parameter of the distribution. */
-        RealType n() const { return _n; }
-
-        /** Writes a @c param_type to a @c std::ostream. */
-        BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, param_type, parm)
-        { os << parm._m << ' ' << parm._n; return os; }
-
-        /** Reads a @c param_type from a @c std::istream. */
-        BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, param_type, parm)
-        { is >> parm._m >> std::ws >> parm._n; return is; }
-
-        /** Returns true if the two sets of parameters are the same. */
-        BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(param_type, lhs, rhs)
-        { return lhs._m == rhs._m && lhs._n == rhs._n; }
-        
-        /** Returns true if the two sets of parameters are the different. */
-        BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(param_type)
-
-    private:
-        RealType _m;
-        RealType _n;
-    };
-
-    /**
-     * Constructs a @c fisher_f_distribution from its "m" and "n" parameters.
-     *
-     * Requires: m > 0 and n > 0
-     */
-    explicit fisher_f_distribution(RealType m_arg = RealType(1.0),
-                                   RealType n_arg = RealType(1.0))
-      : _impl_m(m_arg), _impl_n(n_arg)
-    {}
-    /** Constructs an @c fisher_f_distribution from its parameters. */
-    explicit fisher_f_distribution(const param_type& parm)
-      : _impl_m(parm.m()), _impl_n(parm.n())
-    {}
-
-    /**
-     * Returns a random variate distributed according to the
-     * F distribution.
-     */
-    template<class URNG>
-    RealType operator()(URNG& urng)
-    {
-        return (_impl_m(urng) * n()) / (_impl_n(urng) * m());
-    }
-
-    /**
-     * Returns a random variate distributed according to the
-     * F distribution with parameters specified by @c param.
-     */
-    template<class URNG>
-    RealType operator()(URNG& urng, const param_type& parm) const
-    {
-        return fisher_f_distribution(parm)(urng);
-    }
-
-    /** Returns the "m" parameter of the distribution. */
-    RealType m() const { return _impl_m.n(); }
-    /** Returns the "n" parameter of the distribution. */
-    RealType n() const { return _impl_n.n(); }
-
-    /** Returns the smallest value that the distribution can produce. */
-    RealType min BOOST_PREVENT_MACRO_SUBSTITUTION () const { return 0; }
-    /** Returns the largest value that the distribution can produce. */
-    RealType max BOOST_PREVENT_MACRO_SUBSTITUTION () const
-    { return std::numeric_limits<RealType>::infinity(); }
-
-    /** Returns the parameters of the distribution. */
-    param_type param() const { return param_type(m(), n()); }
-    /** Sets the parameters of the distribution. */
-    void param(const param_type& parm)
-    {
-        typedef chi_squared_distribution<RealType> impl_type;
-        typename impl_type::param_type m_param(parm.m());
-        _impl_m.param(m_param);
-        typename impl_type::param_type n_param(parm.n());
-        _impl_n.param(n_param);
-    }
-
-    /**
-     * Effects: Subsequent uses of the distribution do not depend
-     * on values produced by any engine prior to invoking reset.
-     */
-    void reset() { }
-
-    /** Writes an @c fisher_f_distribution to a @c std::ostream. */
-    BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, fisher_f_distribution, fd)
-    {
-        os << fd.param();
-        return os;
-    }
-
-    /** Reads an @c fisher_f_distribution from a @c std::istream. */
-    BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, fisher_f_distribution, fd)
-    {
-        param_type parm;
-        if(is >> parm) {
-            fd.param(parm);
-        }
-        return is;
-    }
-
-    /**
-     * Returns true if the two instances of @c fisher_f_distribution will
-     * return identical sequences of values given equal generators.
-     */
-    BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(fisher_f_distribution, lhs, rhs)
-    { return lhs._impl_m == rhs._impl_m && lhs._impl_n == rhs._impl_n; }
-    
-    /**
-     * Returns true if the two instances of @c fisher_f_distribution will
-     * return different sequences of values given equal generators.
-     */
-    BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(fisher_f_distribution)
-
-private:
-    chi_squared_distribution<RealType> _impl_m;
-    chi_squared_distribution<RealType> _impl_n;
-};
-
-} // namespace random
-} // namespace boost
-
-#endif // BOOST_RANDOM_EXTREME_VALUE_DISTRIBUTION_HPP
diff --git a/boost/random/gamma_distribution.hpp b/boost/random/gamma_distribution.hpp
deleted file mode 100644
index 20f5c3b..0000000
--- a/boost/random/gamma_distribution.hpp
+++ /dev/null
@@ -1,292 +0,0 @@
-/* boost random/gamma_distribution.hpp header file
- *
- * Copyright Jens Maurer 2002
- * Copyright Steven Watanabe 2010
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: gamma_distribution.hpp 71018 2011-04-05 21:27:52Z steven_watanabe $
- *
- */
-
-#ifndef BOOST_RANDOM_GAMMA_DISTRIBUTION_HPP
-#define BOOST_RANDOM_GAMMA_DISTRIBUTION_HPP
-
-#include <boost/config/no_tr1/cmath.hpp>
-#include <istream>
-#include <iosfwd>
-#include <boost/assert.hpp>
-#include <boost/limits.hpp>
-#include <boost/static_assert.hpp>
-#include <boost/random/detail/config.hpp>
-#include <boost/random/exponential_distribution.hpp>
-
-namespace boost {
-namespace random {
-
-// The algorithm is taken from Knuth
-
-/**
- * The gamma distribution is a continuous distribution with two
- * parameters alpha and beta.  It produces values > 0.
- *
- * It has
- * \f$\displaystyle p(x) = x^{\alpha-1}\frac{e^{-x/\beta}}{\beta^\alpha\Gamma(\alpha)}\f$.
- */
-template<class RealType = double>
-class gamma_distribution
-{
-public:
-    typedef RealType input_type;
-    typedef RealType result_type;
-
-    class param_type
-    {
-    public:
-        typedef gamma_distribution distribution_type;
-
-        /**
-         * Constructs a @c param_type object from the "alpha" and "beta"
-         * parameters.
-         *
-         * Requires: alpha > 0 && beta > 0
-         */
-        param_type(const RealType& alpha_arg = RealType(1.0),
-                   const RealType& beta_arg = RealType(1.0))
-          : _alpha(alpha_arg), _beta(beta_arg)
-        {
-        }
-
-        /** Returns the "alpha" parameter of the distribution. */
-        RealType alpha() const { return _alpha; }
-        /** Returns the "beta" parameter of the distribution. */
-        RealType beta() const { return _beta; }
-
-#ifndef BOOST_RANDOM_NO_STREAM_OPERATORS
-        /** Writes the parameters to a @c std::ostream. */
-        template<class CharT, class Traits>
-        friend std::basic_ostream<CharT, Traits>&
-        operator<<(std::basic_ostream<CharT, Traits>& os,
-                   const param_type& parm)
-        {
-            os << parm._alpha << ' ' << parm._beta;
-            return os;
-        }
-        
-        /** Reads the parameters from a @c std::istream. */
-        template<class CharT, class Traits>
-        friend std::basic_istream<CharT, Traits>&
-        operator>>(std::basic_istream<CharT, Traits>& is, param_type& parm)
-        {
-            is >> parm._alpha >> std::ws >> parm._beta;
-            return is;
-        }
-#endif
-
-        /** Returns true if the two sets of parameters are the same. */
-        friend bool operator==(const param_type& lhs, const param_type& rhs)
-        {
-            return lhs._alpha == rhs._alpha && lhs._beta == rhs._beta;
-        }
-        /** Returns true if the two sets fo parameters are different. */
-        friend bool operator!=(const param_type& lhs, const param_type& rhs)
-        {
-            return !(lhs == rhs);
-        }
-    private:
-        RealType _alpha;
-        RealType _beta;
-    };
-
-#ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
-    BOOST_STATIC_ASSERT(!std::numeric_limits<RealType>::is_integer);
-#endif
-
-    /**
-     * Creates a new gamma_distribution with parameters "alpha" and "beta".
-     *
-     * Requires: alpha > 0 && beta > 0
-     */
-    explicit gamma_distribution(const result_type& alpha_arg = result_type(1.0),
-                                const result_type& beta_arg = result_type(1.0))
-      : _exp(result_type(1)), _alpha(alpha_arg), _beta(beta_arg)
-    {
-        BOOST_ASSERT(_alpha > result_type(0));
-        BOOST_ASSERT(_beta > result_type(0));
-        init();
-    }
-
-    /** Constructs a @c gamma_distribution from its parameters. */
-    explicit gamma_distribution(const param_type& parm)
-      : _exp(result_type(1)), _alpha(parm.alpha()), _beta(parm.beta())
-    {
-        init();
-    }
-
-    // compiler-generated copy ctor and assignment operator are fine
-
-    /** Returns the "alpha" paramter of the distribution. */
-    RealType alpha() const { return _alpha; }
-    /** Returns the "beta" parameter of the distribution. */
-    RealType beta() const { return _beta; }
-    /** Returns the smallest value that the distribution can produce. */
-    RealType min BOOST_PREVENT_MACRO_SUBSTITUTION () const { return 0; }
-    /* Returns the largest value that the distribution can produce. */
-    RealType max BOOST_PREVENT_MACRO_SUBSTITUTION () const
-    { return (std::numeric_limits<RealType>::infinity)(); }
-
-    /** Returns the parameters of the distribution. */
-    param_type param() const { return param_type(_alpha, _beta); }
-    /** Sets the parameters of the distribution. */
-    void param(const param_type& parm)
-    {
-        _alpha = parm.alpha();
-        _beta = parm.beta();
-        init();
-    }
-    
-    /**
-     * Effects: Subsequent uses of the distribution do not depend
-     * on values produced by any engine prior to invoking reset.
-     */
-    void reset() { _exp.reset(); }
-
-    /**
-     * Returns a random variate distributed according to
-     * the gamma distribution.
-     */
-    template<class Engine>
-    result_type operator()(Engine& eng)
-    {
-#ifndef BOOST_NO_STDC_NAMESPACE
-        // allow for Koenig lookup
-        using std::tan; using std::sqrt; using std::exp; using std::log;
-        using std::pow;
-#endif
-        if(_alpha == result_type(1)) {
-            return _exp(eng) * _beta;
-        } else if(_alpha > result_type(1)) {
-            // Can we have a boost::mathconst please?
-            const result_type pi = result_type(3.14159265358979323846);
-            for(;;) {
-                result_type y = tan(pi * uniform_01<RealType>()(eng));
-                result_type x = sqrt(result_type(2)*_alpha-result_type(1))*y
-                    + _alpha-result_type(1);
-                if(x <= result_type(0))
-                    continue;
-                if(uniform_01<RealType>()(eng) >
-                    (result_type(1)+y*y) * exp((_alpha-result_type(1))
-                                               *log(x/(_alpha-result_type(1)))
-                                               - sqrt(result_type(2)*_alpha
-                                                      -result_type(1))*y))
-                    continue;
-                return x * _beta;
-            }
-        } else /* alpha < 1.0 */ {
-            for(;;) {
-                result_type u = uniform_01<RealType>()(eng);
-                result_type y = _exp(eng);
-                result_type x, q;
-                if(u < _p) {
-                    x = exp(-y/_alpha);
-                    q = _p*exp(-x);
-                } else {
-                    x = result_type(1)+y;
-                    q = _p + (result_type(1)-_p) * pow(x,_alpha-result_type(1));
-                }
-                if(u >= q)
-                    continue;
-                return x * _beta;
-            }
-        }
-    }
-
-    template<class URNG>
-    RealType operator()(URNG& urng, const param_type& parm) const
-    {
-        return gamma_distribution(parm)(urng);
-    }
-
-#ifndef BOOST_RANDOM_NO_STREAM_OPERATORS
-    /** Writes a @c gamma_distribution to a @c std::ostream. */
-    template<class CharT, class Traits>
-    friend std::basic_ostream<CharT,Traits>&
-    operator<<(std::basic_ostream<CharT,Traits>& os,
-               const gamma_distribution& gd)
-    {
-        os << gd.param();
-        return os;
-    }
-    
-    /** Reads a @c gamma_distribution from a @c std::istream. */
-    template<class CharT, class Traits>
-    friend std::basic_istream<CharT,Traits>&
-    operator>>(std::basic_istream<CharT,Traits>& is, gamma_distribution& gd)
-    {
-        gd.read(is);
-        return is;
-    }
-#endif
-
-    /**
-     * Returns true if the two distributions will produce identical
-     * sequences of random variates given equal generators.
-     */
-    friend bool operator==(const gamma_distribution& lhs,
-                           const gamma_distribution& rhs)
-    {
-        return lhs._alpha == rhs._alpha
-            && lhs._beta == rhs._beta
-            && lhs._exp == rhs._exp;
-    }
-
-    /**
-     * Returns true if the two distributions can produce different
-     * sequences of random variates, given equal generators.
-     */
-    friend bool operator!=(const gamma_distribution& lhs,
-                           const gamma_distribution& rhs)
-    {
-        return !(lhs == rhs);
-    }
-
-private:
-    /// \cond hide_private_members
-
-    template<class CharT, class Traits>
-    void read(std::basic_istream<CharT, Traits>& is)
-    {
-        param_type parm;
-        if(is >> parm) {
-            param(parm);
-        }
-    }
-
-    void init()
-    {
-#ifndef BOOST_NO_STDC_NAMESPACE
-        // allow for Koenig lookup
-        using std::exp;
-#endif
-        _p = exp(result_type(1)) / (_alpha + exp(result_type(1)));
-    }
-    /// \endcond
-
-    exponential_distribution<RealType> _exp;
-    result_type _alpha;
-    result_type _beta;
-    // some data precomputed from the parameters
-    result_type _p;
-};
-
-
-} // namespace random
-
-using random::gamma_distribution;
-
-} // namespace boost
-
-#endif // BOOST_RANDOM_GAMMA_DISTRIBUTION_HPP
diff --git a/boost/random/generate_canonical.hpp b/boost/random/generate_canonical.hpp
deleted file mode 100644
index 1bba44f..0000000
--- a/boost/random/generate_canonical.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-/* boost random/generate_canonical.hpp header file
- *
- * Copyright Steven Watanabe 2011
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: generate_canonical.hpp 72951 2011-07-07 04:57:37Z steven_watanabe $
- *
- */
-
-#ifndef BOOST_RANDOM_GENERATE_CANONICAL_HPP
-#define BOOST_RANDOM_GENERATE_CANONICAL_HPP
-
-#include <algorithm>
-#include <boost/assert.hpp>
-#include <boost/config/no_tr1/cmath.hpp>
-#include <boost/limits.hpp>
-#include <boost/type_traits/is_integral.hpp>
-#include <boost/math/special_functions.hpp>
-#include <boost/random/detail/signed_unsigned_tools.hpp>
-#include <boost/random/detail/generator_bits.hpp>
-
-namespace boost {
-namespace random {
-
-namespace detail {
-
-template<class RealType, std::size_t bits, class URNG>
-RealType generate_canonical_impl(URNG& g, boost::mpl::true_ /*is_integral*/)
-{
-    using std::pow;
-    typedef typename URNG::result_type base_result;
-    std::size_t digits = std::numeric_limits<RealType>::digits;
-    RealType R = RealType((g.max)()) - RealType((g.min)()) + 1;
-    RealType mult = R;
-    RealType limit =
-        pow(RealType(2),
-            RealType((std::min)(static_cast<std::size_t>(bits), digits)));
-    RealType S = RealType(detail::subtract<base_result>()(g(), (g.min)()));
-    while(mult < limit) {
-        RealType inc = RealType(detail::subtract<base_result>()(g(), (g.min)()));
-        S += inc * mult;
-        mult *= R;
-    }
-    return S / mult;
-}
-
-template<class RealType, std::size_t bits, class URNG>
-RealType generate_canonical_impl(URNG& g, boost::mpl::false_ /*is_integral*/)
-{
-    using std::pow;
-    using std::floor;
-    BOOST_ASSERT((g.min)() == 0);
-    BOOST_ASSERT((g.max)() == 1);
-    typedef typename URNG::result_type base_result;
-    std::size_t digits = std::numeric_limits<RealType>::digits;
-    std::size_t engine_bits = detail::generator_bits<URNG>::value();
-    std::size_t b = (std::min)(bits, digits);
-    RealType R = pow(RealType(2), RealType(engine_bits));
-    RealType mult = R;
-    RealType limit = pow(RealType(2), RealType(b));
-    RealType S = RealType(g() - (g.min)());
-    while(mult < limit) {
-        RealType inc(floor((RealType(g()) - RealType((g.min)())) * R));
-        S += inc * mult;
-        mult *= R;
-    }
-    return S / mult;
-}
-
-}
-
-/**
- * Returns a value uniformly distributed in the range [0, 1)
- * with at least @c bits random bits.
- */
-template<class RealType, std::size_t bits, class URNG>
-RealType generate_canonical(URNG& g)
-{
-    RealType result = detail::generate_canonical_impl<RealType, bits>(
-        g, boost::is_integral<typename URNG::result_type>());
-    BOOST_ASSERT(result >= 0);
-    BOOST_ASSERT(result <= 1);
-    if(result == 1) {
-        result -= std::numeric_limits<RealType>::epsilon() / 2;
-        BOOST_ASSERT(result != 1);
-    }
-    return result;
-}
-
-} // namespace random
-} // namespace boost
-
-#endif // BOOST_RANDOM_GENERATE_CANONICAL_HPP
diff --git a/boost/random/geometric_distribution.hpp b/boost/random/geometric_distribution.hpp
deleted file mode 100644
index daca0ce..0000000
--- a/boost/random/geometric_distribution.hpp
+++ /dev/null
@@ -1,267 +0,0 @@
-/* boost random/geometric_distribution.hpp header file
- *
- * Copyright Jens Maurer 2000-2001
- * Copyright Steven Watanabe 2011
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: geometric_distribution.hpp 74867 2011-10-09 23:13:31Z steven_watanabe $
- *
- * Revision history
- *  2001-02-18  moved to individual header files
- */
-
-#ifndef BOOST_RANDOM_GEOMETRIC_DISTRIBUTION_HPP
-#define BOOST_RANDOM_GEOMETRIC_DISTRIBUTION_HPP
-
-#include <boost/config/no_tr1/cmath.hpp>          // std::log
-#include <iosfwd>
-#include <ios>
-#include <boost/assert.hpp>
-#include <boost/random/detail/config.hpp>
-#include <boost/random/detail/operators.hpp>
-#include <boost/random/uniform_01.hpp>
-
-namespace boost {
-namespace random {
-
-/**
- * An instantiation of the class template @c geometric_distribution models
- * a \random_distribution.  The distribution produces positive
- * integers which are the number of bernoulli trials
- * with probability @c p required to get one that fails.
- *
- * For the geometric distribution, \f$p(i) = p(1-p)^{i}\f$.
- *
- * @xmlwarning
- * This distribution has been updated to match the C++ standard.
- * Its behavior has changed from the original
- * boost::geometric_distribution.  A backwards compatible
- * wrapper is provided in namespace boost.
- * @endxmlwarning
- */
-template<class IntType = int, class RealType = double>
-class geometric_distribution
-{
-public:
-    typedef RealType input_type;
-    typedef IntType result_type;
-
-    class param_type
-    {
-    public:
-
-        typedef geometric_distribution distribution_type;
-
-        /** Constructs the parameters with p. */
-        explicit param_type(RealType p_arg = RealType(0.5))
-          : _p(p_arg)
-        {
-            BOOST_ASSERT(RealType(0) < _p && _p < RealType(1));
-        }
-
-        /** Returns the p parameter of the distribution. */
-        RealType p() const { return _p; }
-
-        /** Writes the parameters to a std::ostream. */
-        BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, param_type, parm)
-        {
-            os << parm._p;
-            return os;
-        }
-
-        /** Reads the parameters from a std::istream. */
-        BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, param_type, parm)
-        {
-            double p_in;
-            if(is >> p_in) {
-                if(p_in > RealType(0) && p_in < RealType(1)) {
-                    parm._p = p_in;
-                } else {
-                    is.setstate(std::ios_base::failbit);
-                }
-            }
-            return is;
-        }
-
-        /** Returns true if the two sets of parameters are equal. */
-        BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(param_type, lhs, rhs)
-        { return lhs._p == rhs._p; }
-
-        /** Returns true if the two sets of parameters are different. */
-        BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(param_type)
-
-
-    private:
-        RealType _p;
-    };
-
-    /**
-     * Contructs a new geometric_distribution with the paramter @c p.
-     *
-     * Requires: 0 < p < 1
-     */
-    explicit geometric_distribution(const RealType& p = RealType(0.5))
-      : _p(p)
-    {
-        BOOST_ASSERT(RealType(0) < _p && _p < RealType(1));
-        init();
-    }
-
-    /** Constructs a new geometric_distribution from its parameters. */
-    explicit geometric_distribution(const param_type& parm)
-      : _p(parm.p())
-    {
-        init();
-    }
-
-    // compiler-generated copy ctor and assignment operator are fine
-
-    /** Returns: the distribution parameter @c p  */
-    RealType p() const { return _p; }
-
-    /** Returns the smallest value that the distribution can produce. */
-    IntType min BOOST_PREVENT_MACRO_SUBSTITUTION () const { return IntType(0); }
-
-    /** Returns the largest value that the distribution can produce. */
-    IntType max BOOST_PREVENT_MACRO_SUBSTITUTION () const
-    { return (std::numeric_limits<IntType>::max)(); }
-
-    /** Returns the parameters of the distribution. */
-    param_type param() const { return param_type(_p); }
-
-    /** Sets the parameters of the distribution. */
-    void param(const param_type& parm)
-    {
-        _p = parm.p();
-        init();
-    }
-  
-    /**
-     * Effects: Subsequent uses of the distribution do not depend
-     * on values produced by any engine prior to invoking reset.
-     */
-    void reset() { }
-
-    /**
-     * Returns a random variate distributed according to the
-     * geometric_distribution.
-     */
-    template<class Engine>
-    result_type operator()(Engine& eng) const
-    {
-        using std::log;
-        using std::floor;
-        RealType x = RealType(1) - boost::uniform_01<RealType>()(eng);
-        return IntType(floor(log(x) / _log_1mp));
-    }
-
-    /**
-     * Returns a random variate distributed according to the
-     * geometric distribution with parameters specified by param.
-     */
-    template<class Engine>
-    result_type operator()(Engine& eng, const param_type& parm) const
-    { return geometric_distribution(parm)(eng); }
-
-    /** Writes the distribution to a @c std::ostream. */
-    BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, geometric_distribution, gd)
-    {
-        os << gd._p;
-        return os;
-    }
-
-    /** Reads the distribution from a @c std::istream. */
-    BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, geometric_distribution, gd)
-    {
-        param_type parm;
-        if(is >> parm) {
-            gd.param(parm);
-        }
-        return is;
-    }
-
-    /**
-     * Returns true if the two distributions will produce identical
-     * sequences of values given equal generators.
-     */
-    BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(geometric_distribution, lhs, rhs)
-    { return lhs._p == rhs._p; }
-
-    /**
-     * Returns true if the two distributions may produce different
-     * sequences of values given equal generators.
-     */
-    BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(geometric_distribution)
-
-private:
-
-    /// \cond show_private
-
-    void init()
-    {
-        using std::log;
-        _log_1mp = log(1 - _p);
-    }
-
-    RealType _p;
-    RealType _log_1mp;
-
-    /// \endcond
-};
-
-} // namespace random
-
-/// \cond show_deprecated
-
-/**
- * Provided for backwards compatibility.  This class is
- * deprecated.  It provides the old behavior of geometric_distribution
- * with \f$p(i) = (1-p) p^{i-1}\f$.
- */
-template<class IntType = int, class RealType = double>
-class geometric_distribution
-{
-public:
-    typedef RealType input_type;
-    typedef IntType result_type;
-
-    explicit geometric_distribution(RealType p_arg = RealType(0.5))
-      : _impl(1 - p_arg) {}
-
-    RealType p() const { return 1 - _impl.p(); }
-
-    void reset() {}
-
-    template<class Engine>
-    IntType operator()(Engine& eng) const { return _impl(eng) + IntType(1); }
-
-    BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, geometric_distribution, gd)
-    {
-        os << gd.p();
-        return os;
-    }
-
-    BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, geometric_distribution, gd)
-    {
-        RealType val;
-        if(is >> val) {
-            typename impl_type::param_type impl_param(1 - val);
-            gd._impl.param(impl_param);
-        }
-        return is;
-    }
-
-private:
-    typedef random::geometric_distribution<IntType, RealType> impl_type;
-    impl_type _impl;
-};
-
-/// \endcond
-
-} // namespace boost
-
-#endif // BOOST_RANDOM_GEOMETRIC_DISTRIBUTION_HPP
diff --git a/boost/random/independent_bits.hpp b/boost/random/independent_bits.hpp
deleted file mode 100644
index f387fe2..0000000
--- a/boost/random/independent_bits.hpp
+++ /dev/null
@@ -1,260 +0,0 @@
-/* boost random/independent_bits.hpp header file
- *
- * Copyright Steven Watanabe 2011
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: independent_bits.hpp 71018 2011-04-05 21:27:52Z steven_watanabe $
- *
- */
-
-#ifndef BOOST_RANDOM_INDEPENDENT_BITS_HPP
-#define BOOST_RANDOM_INDEPENDENT_BITS_HPP
-
-#include <istream>
-#include <iosfwd>
-#include <boost/assert.hpp>
-#include <boost/limits.hpp>
-#include <boost/config.hpp>
-#include <boost/cstdint.hpp>
-#include <boost/integer/integer_mask.hpp>
-#include <boost/type_traits/make_unsigned.hpp>
-#include <boost/random/detail/config.hpp>
-#include <boost/random/detail/integer_log2.hpp>
-#include <boost/random/detail/operators.hpp>
-#include <boost/random/detail/seed.hpp>
-#include <boost/random/detail/seed_impl.hpp>
-#include <boost/random/detail/signed_unsigned_tools.hpp>
-
-namespace boost {
-namespace random {
-
-/**
- * An instantiation of class template @c independent_bits_engine
- * model a \pseudo_random_number_generator.  It generates random
- * numbers distributed between [0, 2^w) by combining one or
- * more invocations of the base engine.
- *
- * Requires: 0 < w <= std::numeric_limits<UIntType>::digits
- */
-template<class Engine, std::size_t w, class UIntType>
-class independent_bits_engine
-{
-public:
-    typedef Engine base_type;
-    typedef UIntType result_type;
-
-    // Required by old Boost.Random concept
-    BOOST_STATIC_CONSTANT(bool, has_fixed_range = false);
-
-    /** Returns the smallest value that the generator can produce. */
-    static result_type min BOOST_PREVENT_MACRO_SUBSTITUTION ()
-    { return 0; }
-    /** Returns the largest value that the generator can produce. */
-    static result_type max BOOST_PREVENT_MACRO_SUBSTITUTION ()
-    { return boost::low_bits_mask_t<w>::sig_bits; }
-
-    /**
-     * Constructs an @c independent_bits_engine using the
-     * default constructor of the base generator.
-     */
-    independent_bits_engine() { }
-
-    /**
-     * Constructs an @c independent_bits_engine, using seed as
-     * the constructor argument for both base generators.
-     */
-    BOOST_RANDOM_DETAIL_ARITHMETIC_CONSTRUCTOR(independent_bits_engine,
-        result_type, seed_arg)
-    {
-        _base.seed(seed_arg);
-    }
-
-    /**
-     * Constructs an @c independent_bits_engine, using seq as
-     * the constructor argument for the base generator.
-     */
-    BOOST_RANDOM_DETAIL_SEED_SEQ_CONSTRUCTOR(independent_bits_engine,
-        SeedSeq, seq)
-    { _base.seed(seq); }
-
-    /** Constructs an @c independent_bits_engine by copying @c base. */
-    independent_bits_engine(const base_type& base_arg) : _base(base_arg) {}
-
-    /**
-     * Contructs an @c independent_bits_engine with
-     * values from the range defined by the input iterators first
-     * and last.  first will be modified to point to the element
-     * after the last one used.
-     *
-     * Throws: @c std::invalid_argument if the input range is too small.
-     *
-     * Exception Safety: Basic
-     */
-    template<class It>
-    independent_bits_engine(It& first, It last) : _base(first, last) { }
-
-    /**
-     * Seeds an @c independent_bits_engine using the default
-     * seed of the base generator.
-     */
-    void seed() { _base.seed(); }
-
-    /**
-     * Seeds an @c independent_bits_engine, using @c seed as the
-     * seed for the base generator.
-     */
-    BOOST_RANDOM_DETAIL_ARITHMETIC_SEED(independent_bits_engine,
-        result_type, seed_arg)
-    { _base.seed(seed_arg); }
-
-    /**
-     * Seeds an @c independent_bits_engine, using @c seq to
-     * seed the base generator.
-     */
-    BOOST_RANDOM_DETAIL_SEED_SEQ_SEED(independent_bits_engine,
-        SeedSeq, seq)
-    { _base.seed(seq); }
-
-    /**
-     * Seeds an @c independent_bits_engine with
-     * values from the range defined by the input iterators first
-     * and last.  first will be modified to point to the element
-     * after the last one used.
-     *
-     * Throws: @c std::invalid_argument if the input range is too small.
-     *
-     * Exception Safety: Basic
-     */
-    template<class It> void seed(It& first, It last)
-    { _base.seed(first, last); }
-
-    /** Returns the next value of the generator. */
-    result_type operator()()
-    {
-        // While it may seem wasteful to recalculate this
-        // every time, both msvc and gcc can propagate
-        // constants, resolving this at compile time.
-        base_unsigned range =
-            detail::subtract<base_result>()((_base.max)(), (_base.min)());
-        std::size_t m =
-            (range == (std::numeric_limits<base_unsigned>::max)()) ?
-                std::numeric_limits<base_unsigned>::digits :
-                detail::integer_log2(range + 1);
-        std::size_t n = (w + m - 1) / m;
-        std::size_t w0, n0;
-        base_unsigned y0, y1;
-        base_unsigned y0_mask, y1_mask;
-        calc_params(n, range, w0, n0, y0, y1, y0_mask, y1_mask);
-        if(base_unsigned(range - y0 + 1) > y0 / n) {
-            // increment n and try again.
-            ++n;
-            calc_params(n, range, w0, n0, y0, y1, y0_mask, y1_mask);
-        }
-
-        BOOST_ASSERT(n0*w0 + (n - n0)*(w0 + 1) == w);
-
-        result_type S = 0;
-        for(std::size_t k = 0; k < n0; ++k) {
-            base_unsigned u;
-            do {
-                u = detail::subtract<base_result>()(_base(), (_base.min)());
-            } while(u > base_unsigned(y0 - 1));
-            S = (S << w0) + (u & y0_mask);
-        }
-        for(std::size_t k = 0; k < (n - n0); ++k) {
-            base_unsigned u;
-            do {
-                u = detail::subtract<base_result>()(_base(), (_base.min)());
-            } while(u > base_unsigned(y1 - 1));
-            S = (S << (w0 + 1)) + (u & y1_mask);
-        }
-        return S;
-    }
-  
-    /** Fills a range with random values */
-    template<class Iter>
-    void generate(Iter first, Iter last)
-    { detail::generate_from_int(*this, first, last); }
-
-    /** Advances the state of the generator by @c z. */
-    void discard(boost::uintmax_t z)
-    {
-        for(boost::uintmax_t i = 0; i < z; ++i) {
-            (*this)();
-        }
-    }
-
-    const base_type& base() const { return _base; }
-
-    /**
-     * Writes the textual representation if the generator to a @c std::ostream.
-     * The textual representation of the engine is the textual representation
-     * of the base engine.
-     */
-    BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, independent_bits_engine, r)
-    {
-        os << r._base;
-        return os;
-    }
-
-    /**
-     * Reads the state of an @c independent_bits_engine from a
-     * @c std::istream.
-     */
-    BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, independent_bits_engine, r)
-    {
-        is >> r._base;
-        return is;
-    }
-
-    /**
-     * Returns: true iff the two @c independent_bits_engines will
-     * produce the same sequence of values.
-     */
-    BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(independent_bits_engine, x, y)
-    { return x._base == y._base; }
-    /**
-     * Returns: true iff the two @c independent_bits_engines will
-     * produce different sequences of values.
-     */
-    BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(independent_bits_engine)
-
-private:
-
-    /// \cond show_private
-    typedef typename base_type::result_type base_result;
-    typedef typename make_unsigned<base_result>::type base_unsigned;
-
-    void calc_params(
-        std::size_t n, base_unsigned range,
-        std::size_t& w0, std::size_t& n0,
-        base_unsigned& y0, base_unsigned& y1,
-        base_unsigned& y0_mask, base_unsigned& y1_mask)
-    {
-        BOOST_ASSERT(w >= n);
-        w0 = w/n;
-        n0 = n - w % n;
-        y0_mask = (base_unsigned(2) << (w0 - 1)) - 1;
-        y1_mask = (y0_mask << 1) | 1;
-        y0 = (range + 1) & ~y0_mask;
-        y1 = (range + 1) & ~y1_mask;
-        BOOST_ASSERT(y0 != 0 || base_unsigned(range + 1) == 0);
-    }
-    /// \endcond
-
-    Engine _base;
-};
-
-#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
-template<class Engine, std::size_t w, class UIntType>
-const bool independent_bits_engine<Engine, w, UIntType>::has_fixed_range;
-#endif
-
-} // namespace random
-} // namespace boost
-
-#endif // BOOST_RANDOM_INDEPENDENT_BITS_HPP
diff --git a/boost/random/inversive_congruential.hpp b/boost/random/inversive_congruential.hpp
deleted file mode 100644
index 616909d..0000000
--- a/boost/random/inversive_congruential.hpp
+++ /dev/null
@@ -1,267 +0,0 @@
-/* boost random/inversive_congruential.hpp header file
- *
- * Copyright Jens Maurer 2000-2001
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: inversive_congruential.hpp 71018 2011-04-05 21:27:52Z steven_watanabe $
- *
- * Revision history
- *  2001-02-18  moved to individual header files
- */
-
-#ifndef BOOST_RANDOM_INVERSIVE_CONGRUENTIAL_HPP
-#define BOOST_RANDOM_INVERSIVE_CONGRUENTIAL_HPP
-
-#include <iosfwd>
-#include <stdexcept>
-#include <boost/assert.hpp>
-#include <boost/config.hpp>
-#include <boost/cstdint.hpp>
-#include <boost/integer/static_log2.hpp>
-#include <boost/random/detail/config.hpp>
-#include <boost/random/detail/const_mod.hpp>
-#include <boost/random/detail/seed.hpp>
-#include <boost/random/detail/operators.hpp>
-#include <boost/random/detail/seed_impl.hpp>
-
-#include <boost/random/detail/disable_warnings.hpp>
-
-namespace boost {
-namespace random {
-
-// Eichenauer and Lehn 1986
-/**
- * Instantiations of class template @c inversive_congruential_engine model a
- * \pseudo_random_number_generator. It uses the inversive congruential
- * algorithm (ICG) described in
- *
- *  @blockquote
- *  "Inversive pseudorandom number generators: concepts, results and links",
- *  Peter Hellekalek, In: "Proceedings of the 1995 Winter Simulation
- *  Conference", C. Alexopoulos, K. Kang, W.R. Lilegdon, and D. Goldsman
- *  (editors), 1995, pp. 255-262. ftp://random.mat.sbg.ac.at/pub/data/wsc95.ps
- *  @endblockquote
- *
- * The output sequence is defined by x(n+1) = (a*inv(x(n)) - b) (mod p),
- * where x(0), a, b, and the prime number p are parameters of the generator.
- * The expression inv(k) denotes the multiplicative inverse of k in the
- * field of integer numbers modulo p, with inv(0) := 0.
- *
- * The template parameter IntType shall denote a signed integral type large
- * enough to hold p; a, b, and p are the parameters of the generators. The
- * template parameter val is the validation value checked by validation.
- *
- * @xmlnote
- * The implementation currently uses the Euclidian Algorithm to compute
- * the multiplicative inverse. Therefore, the inversive generators are about
- * 10-20 times slower than the others (see section"performance"). However,
- * the paper talks of only 3x slowdown, so the Euclidian Algorithm is probably
- * not optimal for calculating the multiplicative inverse.
- * @endxmlnote
- */
-template<class IntType, IntType a, IntType b, IntType p>
-class inversive_congruential_engine
-{
-public:
-    typedef IntType result_type;
-    BOOST_STATIC_CONSTANT(bool, has_fixed_range = false);
-
-    BOOST_STATIC_CONSTANT(result_type, multiplier = a);
-    BOOST_STATIC_CONSTANT(result_type, increment = b);
-    BOOST_STATIC_CONSTANT(result_type, modulus = p);
-    BOOST_STATIC_CONSTANT(IntType, default_seed = 1);
-
-    static result_type min BOOST_PREVENT_MACRO_SUBSTITUTION () { return b == 0 ? 1 : 0; }
-    static result_type max BOOST_PREVENT_MACRO_SUBSTITUTION () { return p-1; }
-    
-    /**
-     * Constructs an @c inversive_congruential_engine, seeding it with
-     * the default seed.
-     */
-    inversive_congruential_engine() { seed(); }
-
-    /**
-     * Constructs an @c inversive_congruential_engine, seeding it with @c x0.
-     */
-    BOOST_RANDOM_DETAIL_ARITHMETIC_CONSTRUCTOR(inversive_congruential_engine,
-                                               IntType, x0)
-    { seed(x0); }
-    
-    /**
-     * Constructs an @c inversive_congruential_engine, seeding it with values
-     * produced by a call to @c seq.generate().
-     */
-    BOOST_RANDOM_DETAIL_SEED_SEQ_CONSTRUCTOR(inversive_congruential_engine,
-                                             SeedSeq, seq)
-    { seed(seq); }
-    
-    /**
-     * Constructs an @c inversive_congruential_engine, seeds it
-     * with values taken from the itrator range [first, last),
-     * and adjusts first to point to the element after the last one
-     * used.  If there are not enough elements, throws @c std::invalid_argument.
-     *
-     * first and last must be input iterators.
-     */
-    template<class It> inversive_congruential_engine(It& first, It last)
-    { seed(first, last); }
-
-    /**
-     * Calls seed(default_seed)
-     */
-    void seed() { seed(default_seed); }
-  
-    /**
-     * If c mod m is zero and x0 mod m is zero, changes the current value of
-     * the generator to 1. Otherwise, changes it to x0 mod m. If c is zero,
-     * distinct seeds in the range [1,m) will leave the generator in distinct
-     * states. If c is not zero, the range is [0,m).
-     */
-    BOOST_RANDOM_DETAIL_ARITHMETIC_SEED(inversive_congruential_engine, IntType, x0)
-    {
-        // wrap _x if it doesn't fit in the destination
-        if(modulus == 0) {
-            _value = x0;
-        } else {
-            _value = x0 % modulus;
-        }
-        // handle negative seeds
-        if(_value <= 0 && _value != 0) {
-            _value += modulus;
-        }
-        // adjust to the correct range
-        if(increment == 0 && _value == 0) {
-            _value = 1;
-        }
-        BOOST_ASSERT(_value >= (min)());
-        BOOST_ASSERT(_value <= (max)());
-    }
-
-    /**
-     * Seeds an @c inversive_congruential_engine using values from a SeedSeq.
-     */
-    BOOST_RANDOM_DETAIL_SEED_SEQ_SEED(inversive_congruential_engine, SeedSeq, seq)
-    { seed(detail::seed_one_int<IntType, modulus>(seq)); }
-    
-    /**
-     * seeds an @c inversive_congruential_engine with values taken
-     * from the itrator range [first, last) and adjusts @c first to
-     * point to the element after the last one used.  If there are
-     * not enough elements, throws @c std::invalid_argument.
-     *
-     * @c first and @c last must be input iterators.
-     */
-    template<class It> void seed(It& first, It last)
-    { seed(detail::get_one_int<IntType, modulus>(first, last)); }
-
-    /** Returns the next output of the generator. */
-    IntType operator()()
-    {
-        typedef const_mod<IntType, p> do_mod;
-        _value = do_mod::mult_add(a, do_mod::invert(_value), b);
-        return _value;
-    }
-  
-    /** Fills a range with random values */
-    template<class Iter>
-    void generate(Iter first, Iter last)
-    { detail::generate_from_int(*this, first, last); }
-
-    /** Advances the state of the generator by @c z. */
-    void discard(boost::uintmax_t z)
-    {
-        for(boost::uintmax_t j = 0; j < z; ++j) {
-            (*this)();
-        }
-    }
-
-    /**
-     * Writes the textual representation of the generator to a @c std::ostream.
-     */
-    BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, inversive_congruential_engine, x)
-    {
-        os << x._value;
-        return os;
-    }
-
-    /**
-     * Reads the textual representation of the generator from a @c std::istream.
-     */
-    BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, inversive_congruential_engine, x)
-    {
-        is >> x._value;
-        return is;
-    }
-
-    /**
-     * Returns true if the two generators will produce identical
-     * sequences of outputs.
-     */
-    BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(inversive_congruential_engine, x, y)
-    { return x._value == y._value; }
-
-    /**
-     * Returns true if the two generators will produce different
-     * sequences of outputs.
-     */
-    BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(inversive_congruential_engine)
-
-private:
-    IntType _value;
-};
-
-#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
-//  A definition is required even for integral static constants
-template<class IntType, IntType a, IntType b, IntType p>
-const bool inversive_congruential_engine<IntType, a, b, p>::has_fixed_range;
-template<class IntType, IntType a, IntType b, IntType p>
-const typename inversive_congruential_engine<IntType, a, b, p>::result_type inversive_congruential_engine<IntType, a, b, p>::multiplier;
-template<class IntType, IntType a, IntType b, IntType p>
-const typename inversive_congruential_engine<IntType, a, b, p>::result_type inversive_congruential_engine<IntType, a, b, p>::increment;
-template<class IntType, IntType a, IntType b, IntType p>
-const typename inversive_congruential_engine<IntType, a, b, p>::result_type inversive_congruential_engine<IntType, a, b, p>::modulus;
-template<class IntType, IntType a, IntType b, IntType p>
-const typename inversive_congruential_engine<IntType, a, b, p>::result_type inversive_congruential_engine<IntType, a, b, p>::default_seed;
-#endif
-
-/// \cond show_deprecated
-
-// provided for backwards compatibility
-template<class IntType, IntType a, IntType b, IntType p, IntType val = 0>
-class inversive_congruential : public inversive_congruential_engine<IntType, a, b, p>
-{
-    typedef inversive_congruential_engine<IntType, a, b, p> base_type;
-public:
-    inversive_congruential(IntType x0 = 1) : base_type(x0) {}
-    template<class It>
-    inversive_congruential(It& first, It last) : base_type(first, last) {}
-};
-
-/// \endcond
-
-/**
- * The specialization hellekalek1995 was suggested in
- *
- *  @blockquote
- *  "Inversive pseudorandom number generators: concepts, results and links",
- *  Peter Hellekalek, In: "Proceedings of the 1995 Winter Simulation
- *  Conference", C. Alexopoulos, K. Kang, W.R. Lilegdon, and D. Goldsman
- *  (editors), 1995, pp. 255-262. ftp://random.mat.sbg.ac.at/pub/data/wsc95.ps
- *  @endblockquote
- */
-typedef inversive_congruential_engine<uint32_t, 9102, 2147483647-36884165,
-  2147483647> hellekalek1995;
-
-} // namespace random
-
-using random::hellekalek1995;
-
-} // namespace boost
-
-#include <boost/random/detail/enable_warnings.hpp>
-
-#endif // BOOST_RANDOM_INVERSIVE_CONGRUENTIAL_HPP
diff --git a/boost/random/lagged_fibonacci.hpp b/boost/random/lagged_fibonacci.hpp
deleted file mode 100644
index eb4e405..0000000
--- a/boost/random/lagged_fibonacci.hpp
+++ /dev/null
@@ -1,536 +0,0 @@
-/* boost random/lagged_fibonacci.hpp header file
- *
- * Copyright Jens Maurer 2000-2001
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: lagged_fibonacci.hpp 72951 2011-07-07 04:57:37Z steven_watanabe $
- *
- * Revision history
- *  2001-02-18  moved to individual header files
- */
-
-#ifndef BOOST_RANDOM_LAGGED_FIBONACCI_HPP
-#define BOOST_RANDOM_LAGGED_FIBONACCI_HPP
-
-#include <istream>
-#include <iosfwd>
-#include <algorithm>     // std::max
-#include <iterator>
-#include <boost/config/no_tr1/cmath.hpp>         // std::pow
-#include <boost/config.hpp>
-#include <boost/limits.hpp>
-#include <boost/cstdint.hpp>
-#include <boost/integer/integer_mask.hpp>
-#include <boost/random/linear_congruential.hpp>
-#include <boost/random/uniform_01.hpp>
-#include <boost/random/detail/config.hpp>
-#include <boost/random/detail/seed.hpp>
-#include <boost/random/detail/operators.hpp>
-#include <boost/random/detail/generator_seed_seq.hpp>
-
-namespace boost {
-namespace random {
-
-/** 
- * Instantiations of class template \lagged_fibonacci_engine model a
- * \pseudo_random_number_generator. It uses a lagged Fibonacci
- * algorithm with two lags @c p and @c q:
- * x(i) = x(i-p) + x(i-q) (mod 2<sup>w</sup>) with p > q.
- */
-template<class UIntType, int w, unsigned int p, unsigned int q>
-class lagged_fibonacci_engine
-{
-public:
-    typedef UIntType result_type;
-    BOOST_STATIC_CONSTANT(bool, has_fixed_range = false);
-    BOOST_STATIC_CONSTANT(int, word_size = w);
-    BOOST_STATIC_CONSTANT(unsigned int, long_lag = p);
-    BOOST_STATIC_CONSTANT(unsigned int, short_lag = q);
-
-    BOOST_STATIC_CONSTANT(UIntType, default_seed = 331u);
-
-    /** Returns the smallest value that the generator can produce. */
-    static result_type min BOOST_PREVENT_MACRO_SUBSTITUTION () { return 0; }
-    /** Returns the largest value that the generator can produce. */
-    static result_type max BOOST_PREVENT_MACRO_SUBSTITUTION ()
-    { return low_bits_mask_t<w>::sig_bits; }
-
-    /** Creates a new @c lagged_fibonacci_engine and calls @c seed(). */
-    lagged_fibonacci_engine() { seed(); }
-
-    /** Creates a new @c lagged_fibonacci_engine and calls @c seed(value). */
-    BOOST_RANDOM_DETAIL_ARITHMETIC_CONSTRUCTOR(lagged_fibonacci_engine,
-        UIntType, value)
-    { seed(value); }
-
-    /** Creates a new @c lagged_fibonacci_engine and calls @c seed(seq). */
-    BOOST_RANDOM_DETAIL_SEED_SEQ_CONSTRUCTOR(lagged_fibonacci_engine,
-        SeedSeq, seq)
-    { seed(seq); }
-
-    /**
-     * Creates a new @c lagged_fibonacci_engine and calls @c seed(first, last).
-     */
-    template<class It> lagged_fibonacci_engine(It& first, It last)
-    { seed(first, last); }
-
-    // compiler-generated copy ctor and assignment operator are fine
-    
-    /** Calls @c seed(default_seed). */
-    void seed() { seed(default_seed); }
-
-    /**
-     * Sets the state of the generator to values produced by
-     * a \minstd_rand0 generator.
-     */
-    BOOST_RANDOM_DETAIL_ARITHMETIC_SEED(lagged_fibonacci_engine,
-        UIntType, value)
-    {
-        minstd_rand0 intgen(static_cast<boost::uint32_t>(value));
-        detail::generator_seed_seq<minstd_rand0> gen(intgen);
-        seed(gen);
-    }
-
-    /**
-     * Sets the state of the generator using values produced by seq.
-     */
-    BOOST_RANDOM_DETAIL_SEED_SEQ_SEED(lagged_fibonacci_engine, SeedSeq, seq)
-    {
-        detail::seed_array_int<w>(seq, x);
-        i = long_lag;
-    }
-
-    /**
-     * Sets the state of the generator to values from the iterator
-     * range [first, last).  If there are not enough elements in the
-     * range [first, last) throws @c std::invalid_argument.
-     */
-    template<class It>
-    void seed(It& first, It last)
-    {
-        detail::fill_array_int<w>(first, last, x);
-        i = long_lag;
-    }
-
-    /** Returns the next value of the generator. */
-    result_type operator()()
-    {
-        if(i >= long_lag)
-            fill();
-        return x[i++];
-    }
-  
-    /** Fills a range with random values */
-    template<class Iter>
-    void generate(Iter first, Iter last)
-    { detail::generate_from_int(*this, first, last); }
-
-    /** Advances the state of the generator by @c z. */
-    void discard(boost::uintmax_t z)
-    {
-        for(boost::uintmax_t j = 0; j < z; ++j) {
-            (*this)();
-        }
-    }
-  
-    /**
-     * Writes the textual representation of the generator to a @c std::ostream.
-     */
-    BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, lagged_fibonacci_engine, f)
-    {
-        os << f.i;
-        for(unsigned int i = 0; i < f.long_lag; ++i)
-            os << ' ' << f.x[i];
-        return os;
-    }
-    
-    /**
-     * Reads the textual representation of the generator from a @c std::istream.
-     */
-    BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, lagged_fibonacci_engine, f)
-    {
-        is >> f.i >> std::ws;
-        for(unsigned int i = 0; i < f.long_lag; ++i)
-            is >> f.x[i] >> std::ws;
-        return is;
-    }
-    
-    /**
-     * Returns true if the two generators will produce identical
-     * sequences of outputs.
-     */
-    BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(lagged_fibonacci_engine, x, y)
-    { return x.i == y.i && std::equal(x.x, x.x+long_lag, y.x); }
-    
-    /**
-     * Returns true if the two generators will produce different
-     * sequences of outputs.
-     */
-    BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(lagged_fibonacci_engine)
-
-private:
-    /// \cond show_private
-    void fill();
-    /// \endcond
-
-    unsigned int i;
-    UIntType x[long_lag];
-};
-
-#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
-//  A definition is required even for integral static constants
-template<class UIntType, int w, unsigned int p, unsigned int q>
-const bool lagged_fibonacci_engine<UIntType, w, p, q>::has_fixed_range;
-template<class UIntType, int w, unsigned int p, unsigned int q>
-const unsigned int lagged_fibonacci_engine<UIntType, w, p, q>::long_lag;
-template<class UIntType, int w, unsigned int p, unsigned int q>
-const unsigned int lagged_fibonacci_engine<UIntType, w, p, q>::short_lag;
-template<class UIntType, int w, unsigned int p, unsigned int q>
-const UIntType lagged_fibonacci_engine<UIntType, w, p, q>::default_seed;
-#endif
-
-/// \cond show_private
-
-template<class UIntType, int w, unsigned int p, unsigned int q>
-void lagged_fibonacci_engine<UIntType, w, p, q>::fill()
-{
-    // two loops to avoid costly modulo operations
-    {  // extra scope for MSVC brokenness w.r.t. for scope
-    for(unsigned int j = 0; j < short_lag; ++j)
-        x[j] = (x[j] + x[j+(long_lag-short_lag)]) & low_bits_mask_t<w>::sig_bits;
-    }
-    for(unsigned int j = short_lag; j < long_lag; ++j)
-        x[j] = (x[j] + x[j-short_lag]) & low_bits_mask_t<w>::sig_bits;
-    i = 0;
-}
-
-/// \endcond
-
-/// \cond show_deprecated
-
-// provided for backwards compatibility
-template<class UIntType, int w, unsigned int p, unsigned int q, UIntType v = 0>
-class lagged_fibonacci : public lagged_fibonacci_engine<UIntType, w, p, q>
-{
-    typedef lagged_fibonacci_engine<UIntType, w, p, q> base_type;
-public:
-    lagged_fibonacci() {}
-    BOOST_RANDOM_DETAIL_ARITHMETIC_CONSTRUCTOR(lagged_fibonacci, UIntType, val)
-    { this->seed(val); }
-    BOOST_RANDOM_DETAIL_SEED_SEQ_CONSTRUCTOR(lagged_fibonacci, SeedSeq, seq)
-    { this->seed(seq); }
-    template<class It>
-    lagged_fibonacci(It& first, It last) : base_type(first, last) {}
-};
-
-/// \endcond
-
-// lagged Fibonacci generator for the range [0..1)
-// contributed by Matthias Troyer
-// for p=55, q=24 originally by G. J. Mitchell and D. P. Moore 1958
-
-/**
- * Instantiations of class template @c lagged_fibonacci_01 model a
- * \pseudo_random_number_generator. It uses a lagged Fibonacci
- * algorithm with two lags @c p and @c q, evaluated in floating-point
- * arithmetic: x(i) = x(i-p) + x(i-q) (mod 1) with p > q. See
- *
- *  @blockquote
- *  "Uniform random number generators for supercomputers", Richard Brent,
- *  Proc. of Fifth Australian Supercomputer Conference, Melbourne,
- *  Dec. 1992, pp. 704-706.
- *  @endblockquote
- *
- * @xmlnote
- * The quality of the generator crucially depends on the choice
- * of the parameters. User code should employ one of the sensibly
- * parameterized generators such as \lagged_fibonacci607 instead.
- * @endxmlnote
- *
- * The generator requires considerable amounts of memory for the storage
- * of its state array. For example, \lagged_fibonacci607 requires about
- * 4856 bytes and \lagged_fibonacci44497 requires about 350 KBytes.
- */
-template<class RealType, int w, unsigned int p, unsigned int q>
-class lagged_fibonacci_01_engine
-{
-public:
-    typedef RealType result_type;
-    BOOST_STATIC_CONSTANT(bool, has_fixed_range = false);
-    BOOST_STATIC_CONSTANT(int, word_size = w);
-    BOOST_STATIC_CONSTANT(unsigned int, long_lag = p);
-    BOOST_STATIC_CONSTANT(unsigned int, short_lag = q);
-
-    BOOST_STATIC_CONSTANT(boost::uint32_t, default_seed = 331u);
-
-    /** Constructs a @c lagged_fibonacci_01 generator and calls @c seed(). */
-    lagged_fibonacci_01_engine() { seed(); }
-    /** Constructs a @c lagged_fibonacci_01 generator and calls @c seed(value). */
-    BOOST_RANDOM_DETAIL_ARITHMETIC_CONSTRUCTOR(lagged_fibonacci_01_engine, uint32_t, value)
-    { seed(value); }
-    /** Constructs a @c lagged_fibonacci_01 generator and calls @c seed(gen). */
-    BOOST_RANDOM_DETAIL_SEED_SEQ_CONSTRUCTOR(lagged_fibonacci_01_engine, SeedSeq, seq)
-    { seed(seq); }
-    template<class It> lagged_fibonacci_01_engine(It& first, It last)
-    { seed(first, last); }
-
-    // compiler-generated copy ctor and assignment operator are fine
-
-    /** Calls seed(default_seed). */
-    void seed() { seed(default_seed); }
-
-    /**
-     * Constructs a \minstd_rand0 generator with the constructor parameter
-     * value and calls seed with it. Distinct seeds in the range
-     * [1, 2147483647) will produce generators with different states. Other
-     * seeds will be equivalent to some seed within this range. See
-     * \linear_congruential_engine for details.
-     */
-    BOOST_RANDOM_DETAIL_ARITHMETIC_SEED(lagged_fibonacci_01_engine, boost::uint32_t, value)
-    {
-        minstd_rand0 intgen(value);
-        detail::generator_seed_seq<minstd_rand0> gen(intgen);
-        seed(gen);
-    }
-
-    /**
-     * Seeds this @c lagged_fibonacci_01_engine using values produced by
-     * @c seq.generate.
-     */
-    BOOST_RANDOM_DETAIL_SEED_SEQ_SEED(lagged_fibonacci_01_engine, SeedSeq, seq)
-    {
-        detail::seed_array_real<w>(seq, x);
-        i = long_lag;
-    }
-    
-    /**
-     * Seeds this @c lagged_fibonacci_01_engine using values from the
-     * iterator range [first, last).  If there are not enough elements
-     * in the range, throws @c std::invalid_argument.
-     */
-    template<class It>
-    void seed(It& first, It last)
-    {
-        detail::fill_array_real<w>(first, last, x);
-        i = long_lag;
-    }
-    
-    /** Returns the smallest value that the generator can produce. */
-    static result_type min BOOST_PREVENT_MACRO_SUBSTITUTION () { return result_type(0); }
-    /** Returns the upper bound of the generators outputs. */
-    static result_type max BOOST_PREVENT_MACRO_SUBSTITUTION () { return result_type(1); }
-
-    /** Returns the next value of the generator. */
-    result_type operator()()
-    {
-        if(i >= long_lag)
-            fill();
-        return x[i++];
-    }
-  
-    /** Fills a range with random values */
-    template<class Iter>
-    void generate(Iter first, Iter last)
-    { return detail::generate_from_real(*this, first, last); }
-
-    /** Advances the state of the generator by @c z. */
-    void discard(boost::uintmax_t z)
-    {
-        for(boost::uintmax_t j = 0; j < z; ++j) {
-            (*this)();
-        }
-    }
-    
-    /**
-     * Writes the textual representation of the generator to a @c std::ostream.
-     */
-    BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, lagged_fibonacci_01_engine, f)
-    {
-        // allow for Koenig lookup
-        using std::pow;
-        os << f.i;
-        std::ios_base::fmtflags oldflags = os.flags(os.dec | os.fixed | os.left); 
-        for(unsigned int i = 0; i < f.long_lag; ++i)
-            os << ' ' << f.x[i] * f.modulus();
-        os.flags(oldflags);
-        return os;
-    }
-    
-    /**
-     * Reads the textual representation of the generator from a @c std::istream.
-     */
-    BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, lagged_fibonacci_01_engine, f)
-    {
-        is >> f.i;
-        for(unsigned int i = 0; i < f.long_lag; ++i) {
-            typename lagged_fibonacci_01_engine::result_type value;
-            is >> std::ws >> value;
-            f.x[i] = value / f.modulus();
-        }
-        return is;
-    }
-    
-    /**
-     * Returns true if the two generators will produce identical
-     * sequences of outputs.
-     */
-    BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(lagged_fibonacci_01_engine, x, y)
-    { return x.i == y.i && std::equal(x.x, x.x+long_lag, y.x); }
-    
-    /**
-     * Returns true if the two generators will produce different
-     * sequences of outputs.
-     */
-    BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(lagged_fibonacci_01_engine)
-
-private:
-    /// \cond show_private
-    void fill();
-    static RealType modulus()
-    {
-        using std::pow;
-        return pow(RealType(2), word_size);
-    }
-    /// \endcond
-    unsigned int i;
-    RealType x[long_lag];
-};
-
-#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
-//  A definition is required even for integral static constants
-template<class RealType, int w, unsigned int p, unsigned int q>
-const bool lagged_fibonacci_01_engine<RealType, w, p, q>::has_fixed_range;
-template<class RealType, int w, unsigned int p, unsigned int q>
-const unsigned int lagged_fibonacci_01_engine<RealType, w, p, q>::long_lag;
-template<class RealType, int w, unsigned int p, unsigned int q>
-const unsigned int lagged_fibonacci_01_engine<RealType, w, p, q>::short_lag;
-template<class RealType, int w, unsigned int p, unsigned int q>
-const int lagged_fibonacci_01_engine<RealType,w,p,q>::word_size;
-template<class RealType, int w, unsigned int p, unsigned int q>
-const boost::uint32_t lagged_fibonacci_01_engine<RealType,w,p,q>::default_seed;
-#endif
-
-/// \cond show_private
-template<class RealType, int w, unsigned int p, unsigned int q>
-void lagged_fibonacci_01_engine<RealType, w, p, q>::fill()
-{
-    // two loops to avoid costly modulo operations
-    {  // extra scope for MSVC brokenness w.r.t. for scope
-    for(unsigned int j = 0; j < short_lag; ++j) {
-        RealType t = x[j] + x[j+(long_lag-short_lag)];
-        if(t >= RealType(1))
-            t -= RealType(1);
-        x[j] = t;
-    }
-    }
-    for(unsigned int j = short_lag; j < long_lag; ++j) {
-        RealType t = x[j] + x[j-short_lag];
-        if(t >= RealType(1))
-            t -= RealType(1);
-        x[j] = t;
-    }
-    i = 0;
-}
-/// \endcond
-
-/// \cond show_deprecated
-
-// provided for backwards compatibility
-template<class RealType, int w, unsigned int p, unsigned int q>
-class lagged_fibonacci_01 : public lagged_fibonacci_01_engine<RealType, w, p, q>
-{
-    typedef lagged_fibonacci_01_engine<RealType, w, p, q> base_type;
-public:
-    lagged_fibonacci_01() {}
-    BOOST_RANDOM_DETAIL_ARITHMETIC_CONSTRUCTOR(lagged_fibonacci_01, boost::uint32_t, val)
-    { this->seed(val); }
-    BOOST_RANDOM_DETAIL_SEED_SEQ_CONSTRUCTOR(lagged_fibonacci_01, SeedSeq, seq)
-    { this->seed(seq); }
-    template<class It>
-    lagged_fibonacci_01(It& first, It last) : base_type(first, last) {}
-};
-
-/// \endcond
-
-namespace detail {
-
-template<class Engine>
-struct generator_bits;
-
-template<class RealType, int w, unsigned int p, unsigned int q>
-struct generator_bits<lagged_fibonacci_01_engine<RealType, w, p, q> >
-{
-    static std::size_t value() { return w; }
-};
-
-template<class RealType, int w, unsigned int p, unsigned int q>
-struct generator_bits<lagged_fibonacci_01<RealType, w, p, q> >
-{
-    static std::size_t value() { return w; }
-};
-
-}
-
-#ifdef BOOST_RANDOM_DOXYGEN
-namespace detail {
-/**
- * The specializations lagged_fibonacci607 ... lagged_fibonacci44497
- * use well tested lags.
- *
- * See
- *
- *  @blockquote
- *  "On the Periods of Generalized Fibonacci Recurrences", Richard P. Brent
- *  Computer Sciences Laboratory Australian National University, December 1992
- *  @endblockquote
- *
- * The lags used here can be found in
- *
- *  @blockquote
- *  "Uniform random number generators for supercomputers", Richard Brent,
- *  Proc. of Fifth Australian Supercomputer Conference, Melbourne,
- *  Dec. 1992, pp. 704-706.
- *  @endblockquote
- */
-struct lagged_fibonacci_doc {};
-}
-#endif
-
-/** @copydoc boost::random::detail::lagged_fibonacci_doc */
-typedef lagged_fibonacci_01_engine<double, 48, 607, 273> lagged_fibonacci607;
-/** @copydoc boost::random::detail::lagged_fibonacci_doc */
-typedef lagged_fibonacci_01_engine<double, 48, 1279, 418> lagged_fibonacci1279;
-/** @copydoc boost::random::detail::lagged_fibonacci_doc */
-typedef lagged_fibonacci_01_engine<double, 48, 2281, 1252> lagged_fibonacci2281;
-/** @copydoc boost::random::detail::lagged_fibonacci_doc */
-typedef lagged_fibonacci_01_engine<double, 48, 3217, 576> lagged_fibonacci3217;
-/** @copydoc boost::random::detail::lagged_fibonacci_doc */
-typedef lagged_fibonacci_01_engine<double, 48, 4423, 2098> lagged_fibonacci4423;
-/** @copydoc boost::random::detail::lagged_fibonacci_doc */
-typedef lagged_fibonacci_01_engine<double, 48, 9689, 5502> lagged_fibonacci9689;
-/** @copydoc boost::random::detail::lagged_fibonacci_doc */
-typedef lagged_fibonacci_01_engine<double, 48, 19937, 9842> lagged_fibonacci19937;
-/** @copydoc boost::random::detail::lagged_fibonacci_doc */
-typedef lagged_fibonacci_01_engine<double, 48, 23209, 13470> lagged_fibonacci23209;
-/** @copydoc boost::random::detail::lagged_fibonacci_doc */
-typedef lagged_fibonacci_01_engine<double, 48, 44497, 21034> lagged_fibonacci44497;
-
-} // namespace random
-
-using random::lagged_fibonacci607;
-using random::lagged_fibonacci1279;
-using random::lagged_fibonacci2281;
-using random::lagged_fibonacci3217;
-using random::lagged_fibonacci4423;
-using random::lagged_fibonacci9689;
-using random::lagged_fibonacci19937;
-using random::lagged_fibonacci23209;
-using random::lagged_fibonacci44497;
-
-} // namespace boost
-
-#endif // BOOST_RANDOM_LAGGED_FIBONACCI_HPP
diff --git a/boost/random/linear_congruential.hpp b/boost/random/linear_congruential.hpp
deleted file mode 100644
index 5f8fe7a..0000000
--- a/boost/random/linear_congruential.hpp
+++ /dev/null
@@ -1,466 +0,0 @@
-/* boost random/linear_congruential.hpp header file
- *
- * Copyright Jens Maurer 2000-2001
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: linear_congruential.hpp 71018 2011-04-05 21:27:52Z steven_watanabe $
- *
- * Revision history
- *  2001-02-18  moved to individual header files
- */
-
-#ifndef BOOST_RANDOM_LINEAR_CONGRUENTIAL_HPP
-#define BOOST_RANDOM_LINEAR_CONGRUENTIAL_HPP
-
-#include <iostream>
-#include <stdexcept>
-#include <boost/assert.hpp>
-#include <boost/config.hpp>
-#include <boost/cstdint.hpp>
-#include <boost/limits.hpp>
-#include <boost/static_assert.hpp>
-#include <boost/integer/static_log2.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/type_traits/is_arithmetic.hpp>
-#include <boost/random/detail/config.hpp>
-#include <boost/random/detail/const_mod.hpp>
-#include <boost/random/detail/seed.hpp>
-#include <boost/random/detail/seed_impl.hpp>
-#include <boost/detail/workaround.hpp>
-
-#include <boost/random/detail/disable_warnings.hpp>
-
-namespace boost {
-namespace random {
-
-/**
- * Instantiations of class template linear_congruential_engine model a
- * \pseudo_random_number_generator. Linear congruential pseudo-random
- * number generators are described in:
- *
- *  @blockquote
- *  "Mathematical methods in large-scale computing units", D. H. Lehmer,
- *  Proc. 2nd Symposium on Large-Scale Digital Calculating Machines,
- *  Harvard University Press, 1951, pp. 141-146
- *  @endblockquote
- *
- * Let x(n) denote the sequence of numbers returned by some pseudo-random
- * number generator. Then for the linear congruential generator,
- * x(n+1) := (a * x(n) + c) mod m. Parameters for the generator are
- * x(0), a, c, m. The template parameter IntType shall denote an integral
- * type. It must be large enough to hold values a, c, and m. The template
- * parameters a and c must be smaller than m.
- *
- * Note: The quality of the generator crucially depends on the choice of
- * the parameters. User code should use one of the sensibly parameterized
- * generators such as minstd_rand instead.
- */
-template<class IntType, IntType a, IntType c, IntType m>
-class linear_congruential_engine
-{
-public:
-    typedef IntType result_type;
-
-    // Required for old Boost.Random concept
-    BOOST_STATIC_CONSTANT(bool, has_fixed_range = false);
-
-    BOOST_STATIC_CONSTANT(IntType, multiplier = a);
-    BOOST_STATIC_CONSTANT(IntType, increment = c);
-    BOOST_STATIC_CONSTANT(IntType, modulus = m);
-    BOOST_STATIC_CONSTANT(IntType, default_seed = 1);
-    
-    BOOST_STATIC_ASSERT(std::numeric_limits<IntType>::is_integer);
-    BOOST_STATIC_ASSERT(m == 0 || a < m);
-    BOOST_STATIC_ASSERT(m == 0 || c < m);
-    
-    /**
-     * Constructs a @c linear_congruential_engine, using the default seed
-     */
-    linear_congruential_engine() { seed(); }
-
-    /**
-     * Constructs a @c linear_congruential_engine, seeding it with @c x0.
-     */
-    BOOST_RANDOM_DETAIL_ARITHMETIC_CONSTRUCTOR(linear_congruential_engine,
-                                               IntType, x0)
-    { seed(x0); }
-    
-    /**
-     * Constructs a @c linear_congruential_engine, seeding it with values
-     * produced by a call to @c seq.generate().
-     */
-    BOOST_RANDOM_DETAIL_SEED_SEQ_CONSTRUCTOR(linear_congruential_engine,
-                                             SeedSeq, seq)
-    { seed(seq); }
-
-    /**
-     * Constructs a @c linear_congruential_engine  and seeds it
-     * with values taken from the itrator range [first, last)
-     * and adjusts first to point to the element after the last one
-     * used.  If there are not enough elements, throws @c std::invalid_argument.
-     *
-     * first and last must be input iterators.
-     */
-    template<class It>
-    linear_congruential_engine(It& first, It last)
-    {
-        seed(first, last);
-    }
-
-    // compiler-generated copy constructor and assignment operator are fine
-
-    /**
-     * Calls seed(default_seed)
-     */
-    void seed() { seed(default_seed); }
-
-    /**
-     * If c mod m is zero and x0 mod m is zero, changes the current value of
-     * the generator to 1. Otherwise, changes it to x0 mod m. If c is zero,
-     * distinct seeds in the range [1,m) will leave the generator in distinct
-     * states. If c is not zero, the range is [0,m).
-     */
-    BOOST_RANDOM_DETAIL_ARITHMETIC_SEED(linear_congruential_engine, IntType, x0)
-    {
-        // wrap _x if it doesn't fit in the destination
-        if(modulus == 0) {
-            _x = x0;
-        } else {
-            _x = x0 % modulus;
-        }
-        // handle negative seeds
-        if(_x <= 0 && _x != 0) {
-            _x += modulus;
-        }
-        // adjust to the correct range
-        if(increment == 0 && _x == 0) {
-            _x = 1;
-        }
-        BOOST_ASSERT(_x >= (min)());
-        BOOST_ASSERT(_x <= (max)());
-    }
-
-    /**
-     * Seeds a @c linear_congruential_engine using values from a SeedSeq.
-     */
-    BOOST_RANDOM_DETAIL_SEED_SEQ_SEED(linear_congruential_engine, SeedSeq, seq)
-    { seed(detail::seed_one_int<IntType, m>(seq)); }
-
-    /**
-     * seeds a @c linear_congruential_engine with values taken
-     * from the itrator range [first, last) and adjusts @c first to
-     * point to the element after the last one used.  If there are
-     * not enough elements, throws @c std::invalid_argument.
-     *
-     * @c first and @c last must be input iterators.
-     */
-    template<class It>
-    void seed(It& first, It last)
-    { seed(detail::get_one_int<IntType, m>(first, last)); }
-
-    /**
-     * Returns the smallest value that the @c linear_congruential_engine
-     * can produce.
-     */
-    static result_type min BOOST_PREVENT_MACRO_SUBSTITUTION ()
-    { return c == 0 ? 1 : 0; }
-    /**
-     * Returns the largest value that the @c linear_congruential_engine
-     * can produce.
-     */
-    static result_type max BOOST_PREVENT_MACRO_SUBSTITUTION ()
-    { return modulus-1; }
-
-    /** Returns the next value of the @c linear_congruential_engine. */
-    IntType operator()()
-    {
-        _x = const_mod<IntType, m>::mult_add(a, _x, c);
-        return _x;
-    }
-  
-    /** Fills a range with random values */
-    template<class Iter>
-    void generate(Iter first, Iter last)
-    { detail::generate_from_int(*this, first, last); }
-
-    /** Advances the state of the generator by @c z. */
-    void discard(boost::uintmax_t z)
-    {
-        typedef const_mod<IntType, m> mod_type;
-        IntType b_inv = mod_type::invert(a-1);
-        IntType b_gcd = mod_type::mult(a-1, b_inv);
-        if(b_gcd == 1) {
-            IntType a_z = mod_type::pow(a, z);
-            _x = mod_type::mult_add(a_z, _x, 
-                mod_type::mult(mod_type::mult(c, b_inv), a_z - 1));
-        } else {
-            // compute (a^z - 1)*c % (b_gcd * m) / (b / b_gcd) * inv(b / b_gcd)
-            // we're storing the intermediate result / b_gcd
-            IntType a_zm1_over_gcd = 0;
-            IntType a_km1_over_gcd = (a - 1) / b_gcd;
-            boost::uintmax_t exponent = z;
-            while(exponent != 0) {
-                if(exponent % 2 == 1) {
-                    a_zm1_over_gcd =
-                        mod_type::mult_add(
-                            b_gcd,
-                            mod_type::mult(a_zm1_over_gcd, a_km1_over_gcd),
-                            mod_type::add(a_zm1_over_gcd, a_km1_over_gcd));
-                }
-                a_km1_over_gcd = mod_type::mult_add(
-                    b_gcd,
-                    mod_type::mult(a_km1_over_gcd, a_km1_over_gcd),
-                    mod_type::add(a_km1_over_gcd, a_km1_over_gcd));
-                exponent /= 2;
-            }
-            
-            IntType a_z = mod_type::mult_add(b_gcd, a_zm1_over_gcd, 1);
-            IntType num = mod_type::mult(c, a_zm1_over_gcd);
-            b_inv = mod_type::invert((a-1)/b_gcd);
-            _x = mod_type::mult_add(a_z, _x, mod_type::mult(b_inv, num));
-        }
-    }
-
-    friend bool operator==(const linear_congruential_engine& x,
-                           const linear_congruential_engine& y)
-    { return x._x == y._x; }
-    friend bool operator!=(const linear_congruential_engine& x,
-                           const linear_congruential_engine& y)
-    { return !(x == y); }
-    
-#if !defined(BOOST_RANDOM_NO_STREAM_OPERATORS)
-    /** Writes a @c linear_congruential_engine to a @c std::ostream. */
-    template<class CharT, class Traits>
-    friend std::basic_ostream<CharT,Traits>&
-    operator<<(std::basic_ostream<CharT,Traits>& os,
-               const linear_congruential_engine& lcg)
-    {
-        return os << lcg._x;
-    }
-
-    /** Reads a @c linear_congruential_engine from a @c std::istream. */
-    template<class CharT, class Traits>
-    friend std::basic_istream<CharT,Traits>&
-    operator>>(std::basic_istream<CharT,Traits>& is,
-               linear_congruential_engine& lcg)
-    {
-        lcg.read(is);
-        return is;
-    }
-#endif
-
-private:
-
-    /// \cond show_private
-
-    template<class CharT, class Traits>
-    void read(std::basic_istream<CharT, Traits>& is) {
-        IntType x;
-        if(is >> x) {
-            if(x >= (min)() && x <= (max)()) {
-                _x = x;
-            } else {
-                is.setstate(std::ios_base::failbit);
-            }
-        }
-    }
-
-    /// \endcond
-
-    IntType _x;
-};
-
-#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
-//  A definition is required even for integral static constants
-template<class IntType, IntType a, IntType c, IntType m>
-const bool linear_congruential_engine<IntType, a, c, m>::has_fixed_range;
-template<class IntType, IntType a, IntType c, IntType m>
-const IntType linear_congruential_engine<IntType,a,c,m>::multiplier;
-template<class IntType, IntType a, IntType c, IntType m>
-const IntType linear_congruential_engine<IntType,a,c,m>::increment;
-template<class IntType, IntType a, IntType c, IntType m>
-const IntType linear_congruential_engine<IntType,a,c,m>::modulus;
-template<class IntType, IntType a, IntType c, IntType m>
-const IntType linear_congruential_engine<IntType,a,c,m>::default_seed;
-#endif
-
-/// \cond show_deprecated
-
-// provided for backwards compatibility
-template<class IntType, IntType a, IntType c, IntType m, IntType val = 0>
-class linear_congruential : public linear_congruential_engine<IntType, a, c, m>
-{
-    typedef linear_congruential_engine<IntType, a, c, m> base_type;
-public:
-    linear_congruential(IntType x0 = 1) : base_type(x0) {}
-    template<class It>
-    linear_congruential(It& first, It last) : base_type(first, last) {}
-};
-
-/// \endcond
-
-/**
- * The specialization \minstd_rand0 was originally suggested in
- *
- *  @blockquote
- *  A pseudo-random number generator for the System/360, P.A. Lewis,
- *  A.S. Goodman, J.M. Miller, IBM Systems Journal, Vol. 8, No. 2,
- *  1969, pp. 136-146
- *  @endblockquote
- *
- * It is examined more closely together with \minstd_rand in
- *
- *  @blockquote
- *  "Random Number Generators: Good ones are hard to find",
- *  Stephen K. Park and Keith W. Miller, Communications of
- *  the ACM, Vol. 31, No. 10, October 1988, pp. 1192-1201 
- *  @endblockquote
- */
-typedef linear_congruential_engine<uint32_t, 16807, 0, 2147483647> minstd_rand0;
-
-/** The specialization \minstd_rand was suggested in
- *
- *  @blockquote
- *  "Random Number Generators: Good ones are hard to find",
- *  Stephen K. Park and Keith W. Miller, Communications of
- *  the ACM, Vol. 31, No. 10, October 1988, pp. 1192-1201
- *  @endblockquote
- */
-typedef linear_congruential_engine<uint32_t, 48271, 0, 2147483647> minstd_rand;
-
-
-#if !defined(BOOST_NO_INT64_T) && !defined(BOOST_NO_INTEGRAL_INT64_T)
-/**
- * Class @c rand48 models a \pseudo_random_number_generator. It uses
- * the linear congruential algorithm with the parameters a = 0x5DEECE66D,
- * c = 0xB, m = 2**48. It delivers identical results to the @c lrand48()
- * function available on some systems (assuming lcong48 has not been called).
- *
- * It is only available on systems where @c uint64_t is provided as an
- * integral type, so that for example static in-class constants and/or
- * enum definitions with large @c uint64_t numbers work.
- */
-class rand48 
-{
-public:
-    typedef boost::uint32_t result_type;
-
-    BOOST_STATIC_CONSTANT(bool, has_fixed_range = false);
-    /**
-     * Returns the smallest value that the generator can produce
-     */
-    static uint32_t min BOOST_PREVENT_MACRO_SUBSTITUTION () { return 0; }
-    /**
-     * Returns the largest value that the generator can produce
-     */
-    static uint32_t max BOOST_PREVENT_MACRO_SUBSTITUTION ()
-    { return 0x7FFFFFFF; }
-  
-    /** Seeds the generator with the default seed. */
-    rand48() : lcf(cnv(static_cast<uint32_t>(1))) {}
-    /**
-     * Constructs a \rand48 generator with x(0) := (x0 << 16) | 0x330e.
-     */
-    BOOST_RANDOM_DETAIL_ARITHMETIC_CONSTRUCTOR(rand48, result_type, x0)
-    { seed(x0); }
-    /**
-     * Seeds the generator with values produced by @c seq.generate().
-     */
-    BOOST_RANDOM_DETAIL_SEED_SEQ_CONSTRUCTOR(rand48, SeedSeq, seq)
-    { seed(seq); }
-    /**
-     * Seeds the generator using values from an iterator range,
-     * and updates first to point one past the last value consumed.
-     */
-    template<class It> rand48(It& first, It last) : lcf(first, last) { }
-
-    // compiler-generated copy ctor and assignment operator are fine
-
-    /** Seeds the generator with the default seed. */
-    void seed() { seed(static_cast<uint32_t>(1)); }
-    /**
-     * Changes the current value x(n) of the generator to (x0 << 16) | 0x330e.
-     */
-    BOOST_RANDOM_DETAIL_ARITHMETIC_SEED(rand48, result_type, x0)
-    { lcf.seed(cnv(x0)); }
-    /**
-     * Seeds the generator using values from an iterator range,
-     * and updates first to point one past the last value consumed.
-     */
-    template<class It> void seed(It& first, It last) { lcf.seed(first,last); }
-    /**
-     * Seeds the generator with values produced by @c seq.generate().
-     */
-    BOOST_RANDOM_DETAIL_SEED_SEQ_SEED(rand48, SeedSeq, seq)
-    { lcf.seed(seq); }
-
-    /**  Returns the next value of the generator. */
-    uint32_t operator()() { return static_cast<uint32_t>(lcf() >> 17); }
-    
-    /** Advances the state of the generator by @c z. */
-    void discard(boost::uintmax_t z) { lcf.discard(z); }
-  
-    /** Fills a range with random values */
-    template<class Iter>
-    void generate(Iter first, Iter last)
-    {
-        for(; first != last; ++first) {
-            *first = (*this)();
-        }
-    }
-
-#ifndef BOOST_RANDOM_NO_STREAM_OPERATORS
-    /**  Writes a @c rand48 to a @c std::ostream. */
-    template<class CharT,class Traits>
-    friend std::basic_ostream<CharT,Traits>&
-    operator<<(std::basic_ostream<CharT,Traits>& os, const rand48& r)
-    { os << r.lcf; return os; }
-
-    /** Reads a @c rand48 from a @c std::istream. */
-    template<class CharT,class Traits>
-    friend std::basic_istream<CharT,Traits>&
-    operator>>(std::basic_istream<CharT,Traits>& is, rand48& r)
-    { is >> r.lcf; return is; }
-#endif
-
-    /**
-     * Returns true if the two generators will produce identical
-     * sequences of values.
-     */
-    friend bool operator==(const rand48& x, const rand48& y)
-    { return x.lcf == y.lcf; }
-    /**
-     * Returns true if the two generators will produce different
-     * sequences of values.
-     */
-    friend bool operator!=(const rand48& x, const rand48& y)
-    { return !(x == y); }
-private:
-    /// \cond show_private
-    typedef random::linear_congruential_engine<uint64_t,
-        // xxxxULL is not portable
-        uint64_t(0xDEECE66DUL) | (uint64_t(0x5) << 32),
-        0xB, uint64_t(1)<<48> lcf_t;
-    lcf_t lcf;
-
-    static boost::uint64_t cnv(boost::uint32_t x)
-    { return (static_cast<uint64_t>(x) << 16) | 0x330e; }
-    /// \endcond
-};
-#endif /* !BOOST_NO_INT64_T && !BOOST_NO_INTEGRAL_INT64_T */
-
-} // namespace random
-
-using random::minstd_rand0;
-using random::minstd_rand;
-using random::rand48;
-
-} // namespace boost
-
-#include <boost/random/detail/enable_warnings.hpp>
-
-#endif // BOOST_RANDOM_LINEAR_CONGRUENTIAL_HPP
diff --git a/boost/random/linear_feedback_shift.hpp b/boost/random/linear_feedback_shift.hpp
deleted file mode 100644
index 1cce9f9..0000000
--- a/boost/random/linear_feedback_shift.hpp
+++ /dev/null
@@ -1,217 +0,0 @@
-/* boost random/linear_feedback_shift.hpp header file
- *
- * Copyright Jens Maurer 2002
- * Copyright Steven Watanabe 2011
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: linear_feedback_shift.hpp 71018 2011-04-05 21:27:52Z steven_watanabe $
- *
- */
-
-#ifndef BOOST_RANDOM_LINEAR_FEEDBACK_SHIFT_HPP
-#define BOOST_RANDOM_LINEAR_FEEDBACK_SHIFT_HPP
-
-#include <iosfwd>
-#include <stdexcept>
-#include <boost/config.hpp>
-#include <boost/cstdint.hpp>
-#include <boost/static_assert.hpp>
-#include <boost/integer/integer_mask.hpp>
-#include <boost/random/detail/config.hpp>
-#include <boost/random/detail/seed.hpp>
-#include <boost/random/detail/operators.hpp>
-#include <boost/random/detail/seed_impl.hpp>
-
-namespace boost {
-namespace random {
-
-/**
- * Instatiations of @c linear_feedback_shift model a
- * \pseudo_random_number_generator.  It was originally
- * proposed in
- *
- *  @blockquote
- *  "Random numbers generated by linear recurrence modulo two.",
- *  Tausworthe, R. C.(1965), Mathematics of Computation 19, 201-209.
- *  @endblockquote
- */
-template<class UIntType, int w, int k, int q, int s>
-class linear_feedback_shift_engine
-{
-public:
-    typedef UIntType result_type;
-    BOOST_STATIC_CONSTANT(bool, has_fixed_range = false);
-    BOOST_STATIC_CONSTANT(int, word_size = w);
-    BOOST_STATIC_CONSTANT(int, exponent1 = k);
-    BOOST_STATIC_CONSTANT(int, exponent2 = q);
-    BOOST_STATIC_CONSTANT(int, step_size = s);
-    BOOST_STATIC_CONSTANT(UIntType, default_seed = 341);
-
-    /** Returns the smallest value that the generator can produce. */
-    static result_type min BOOST_PREVENT_MACRO_SUBSTITUTION () { return 0; }
-    /** Returns the largest value that the generator can produce. */
-    static result_type max BOOST_PREVENT_MACRO_SUBSTITUTION ()
-    { return wordmask(); }
-
-    BOOST_STATIC_ASSERT(w > 0);
-    BOOST_STATIC_ASSERT(q > 0);
-    BOOST_STATIC_ASSERT(k < w);
-    BOOST_STATIC_ASSERT(0 < 2*q && 2*q < k);
-    BOOST_STATIC_ASSERT(0 < s && s <= k-q);
-
-    /** Constructs a @c linear_feedback_shift_engine, using the default seed. */
-    linear_feedback_shift_engine() { seed(); }
-    
-    /** Constructs a @c linear_feedback_shift_engine, seeding it with s0. */
-    BOOST_RANDOM_DETAIL_ARITHMETIC_CONSTRUCTOR(linear_feedback_shift_engine,
-        UIntType, s0)
-    { seed(s0); }
-    
-    /** Constructs a @c linear_feedback_shift_engine, seeding it with seq. */
-    BOOST_RANDOM_DETAIL_SEED_SEQ_CONSTRUCTOR(linear_feedback_shift_engine,
-        SeedSeq, seq)
-    { seed(seq); }
-    
-    /**
-     * Constructs a @c linear_feedback_shift_engine, seeding it with 
-     * values from the range [first, last).
-     */
-    template<class It> linear_feedback_shift_engine(It& first, It last)
-    { seed(first, last); }
-    
-    /** Seeds a @c linear_feedback_shift_engine with the default seed. */
-    void seed() {  seed(default_seed); }
-    
-    /** Seeds a @c linear_feedback_shift_engine with @c s0. */
-    BOOST_RANDOM_DETAIL_ARITHMETIC_SEED(linear_feedback_shift_engine,
-        UIntType, s0)
-    {
-        value = s0 & wordmask();
-        if(value < (1 << (w-k))) {
-            value += 1 << (w-k);
-        }
-    }
-    
-    /**
-     * Seeds a @c linear_feedback_shift_engine with values
-     * produced by @c seq.generate().
-     */
-    BOOST_RANDOM_DETAIL_SEED_SEQ_SEED(linear_feedback_shift_engine,
-        SeedSeq, seq)
-    { seed(detail::seed_one_int<UIntType, (UIntType(2) << (w - 1))>(seq)); }
-    
-    /**
-     * Seeds a @c linear_feedback_shift_engine with values
-     * from the range [first, last).
-     */
-    template<class It> void seed(It& first, It last)
-    {
-        seed(detail::get_one_int<UIntType, (UIntType(2) << (w - 1))>(first, last));
-    }
-
-    /** Returns the next value of the generator. */
-    result_type operator()()
-    {
-        const UIntType b = (((value << q) ^ value) & wordmask()) >> (k-s);
-        const UIntType mask = (wordmask() << (w-k)) & wordmask();
-        value = ((value & mask) << s) ^ b;
-        return value;
-    }
-  
-    /** Fills a range with random values */
-    template<class Iter>
-    void generate(Iter first, Iter last)
-    { detail::generate_from_int(*this, first, last); }
-
-    /** Advances the state of the generator by @c z. */
-    void discard(boost::uintmax_t z)
-    {
-        for(boost::uintmax_t j = 0; j < z; ++j) {
-            (*this)();
-        }
-    }
-    
-    /**
-     * Writes the textual representation of the generator to a @c std::ostream.
-     */
-    BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, linear_feedback_shift_engine, x)
-    {
-        os << x.value;
-        return os;
-    }
-    
-    /**
-     * Reads the textual representation of the generator from a @c std::istream.
-     */
-    BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, linear_feedback_shift_engine, x)
-    {
-        is >> x.value;
-        return is;
-    }
-
-    /**
-     * Returns true if the two generators will produce identical
-     * sequences of outputs.
-     */
-    BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(linear_feedback_shift_engine, x, y)
-    { return x.value == y.value; }
-    
-    /**
-     * Returns true if the two generators will produce different
-     * sequences of outputs.
-     */
-    BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(linear_feedback_shift_engine)
-
-private:
-    /// \cond show_private
-    static UIntType wordmask() { return boost::low_bits_mask_t<w>::sig_bits; }
-    /// \endcond
-    UIntType value;
-};
-
-#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
-//  A definition is required even for integral static constants
-template<class UIntType, int w, int k, int q, int s>
-const bool linear_feedback_shift_engine<UIntType, w, k, q, s>::has_fixed_range;
-template<class UIntType, int w, int k, int q, int s>
-const int linear_feedback_shift_engine<UIntType, w, k, q, s>::word_size;
-template<class UIntType, int w, int k, int q, int s>
-const int linear_feedback_shift_engine<UIntType, w, k, q, s>::exponent1;
-template<class UIntType, int w, int k, int q, int s>
-const int linear_feedback_shift_engine<UIntType, w, k, q, s>::exponent2;
-template<class UIntType, int w, int k, int q, int s>
-const int linear_feedback_shift_engine<UIntType, w, k, q, s>::step_size;
-template<class UIntType, int w, int k, int q, int s>
-const UIntType linear_feedback_shift_engine<UIntType, w, k, q, s>::default_seed;
-#endif
-
-/// \cond show_deprecated
-
-/** Provided for backwards compatibility. */
-template<class UIntType, int w, int k, int q, int s, UIntType v = 0>
-class linear_feedback_shift :
-    public linear_feedback_shift_engine<UIntType, w, k, q, s>
-{
-    typedef linear_feedback_shift_engine<UIntType, w, k, q, s> base_type;
-public:
-    linear_feedback_shift() {}
-    BOOST_RANDOM_DETAIL_SEED_SEQ_CONSTRUCTOR(linear_feedback_shift,
-        SeedSeq, seq)
-    { seed(seq); }
-    BOOST_RANDOM_DETAIL_ARITHMETIC_CONSTRUCTOR(linear_feedback_shift,
-        UIntType, val)
-    { seed(val); }
-    template<class It>
-    linear_feedback_shift(It& first, It last) : base_type(first, last) {}
-};
-
-/// \endcond
-
-} // namespace random
-} // namespace boost
-
-#endif // BOOST_RANDOM_LINEAR_FEEDBACK_SHIFT_HPP
diff --git a/boost/random/lognormal_distribution.hpp b/boost/random/lognormal_distribution.hpp
deleted file mode 100644
index bc7ddfe..0000000
--- a/boost/random/lognormal_distribution.hpp
+++ /dev/null
@@ -1,254 +0,0 @@
-/* boost random/lognormal_distribution.hpp header file
- *
- * Copyright Jens Maurer 2000-2001
- * Copyright Steven Watanabe 2011
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: lognormal_distribution.hpp 71018 2011-04-05 21:27:52Z steven_watanabe $
- *
- * Revision history
- *  2001-02-18  moved to individual header files
- */
-
-#ifndef BOOST_RANDOM_LOGNORMAL_DISTRIBUTION_HPP
-#define BOOST_RANDOM_LOGNORMAL_DISTRIBUTION_HPP
-
-#include <boost/config/no_tr1/cmath.hpp>      // std::exp, std::sqrt
-#include <cassert>
-#include <iosfwd>
-#include <istream>
-#include <boost/limits.hpp>
-#include <boost/random/detail/config.hpp>
-#include <boost/random/detail/operators.hpp>
-#include <boost/random/normal_distribution.hpp>
-
-namespace boost {
-namespace random {
-
-/**
- * Instantiations of class template lognormal_distribution model a
- * \random_distribution. Such a distribution produces random numbers
- * with \f$\displaystyle p(x) = \frac{1}{x s \sqrt{2\pi}} e^{\frac{-\left(\log(x)-m\right)^2}{2s^2}}\f$
- * for x > 0.
- *
- * @xmlwarning
- * This distribution has been updated to match the C++ standard.
- * Its behavior has changed from the original
- * boost::lognormal_distribution.  A backwards compatible
- * version is provided in namespace boost.
- * @endxmlwarning
- */
-template<class RealType = double>
-class lognormal_distribution
-{
-public:
-    typedef typename normal_distribution<RealType>::input_type input_type;
-    typedef RealType result_type;
-
-    class param_type
-    {
-    public:
-
-        typedef lognormal_distribution distribution_type;
-
-        /** Constructs the parameters of a lognormal_distribution. */
-        explicit param_type(RealType m_arg = RealType(0.0),
-                            RealType s_arg = RealType(1.0))
-          : _m(m_arg), _s(s_arg) {}
-
-        /** Returns the "m" parameter of the distribution. */
-        RealType m() const { return _m; }
-
-        /** Returns the "s" parameter of the distribution. */
-        RealType s() const { return _s; }
-
-        /** Writes the parameters to a std::ostream. */
-        BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, param_type, parm)
-        {
-            os << parm._m << " " << parm._s;
-            return os;
-        }
-
-        /** Reads the parameters from a std::istream. */
-        BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, param_type, parm)
-        {
-            is >> parm._m >> std::ws >> parm._s;
-            return is;
-        }
-
-        /** Returns true if the two sets of parameters are equal. */
-        BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(param_type, lhs, rhs)
-        { return lhs._m == rhs._m && lhs._s == rhs._s; }
-
-        /** Returns true if the two sets of parameters are different. */
-        BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(param_type)
-
-    private:
-        RealType _m;
-        RealType _s;
-    };
-
-    /**
-     * Constructs a lognormal_distribution. @c m and @c s are the
-     * parameters of the distribution.
-     */
-    explicit lognormal_distribution(RealType m_arg = RealType(0.0),
-                                    RealType s_arg = RealType(1.0))
-      : _normal(m_arg, s_arg) {}
-
-    /**
-     * Constructs a lognormal_distribution from its parameters.
-     */
-    explicit lognormal_distribution(const param_type& parm)
-      : _normal(parm.m(), parm.s()) {}
-
-    // compiler-generated copy ctor and assignment operator are fine
-
-    /** Returns the m parameter of the distribution. */
-    RealType m() const { return _normal.mean(); }
-    /** Returns the s parameter of the distribution. */
-    RealType s() const { return _normal.sigma(); }
-
-    /** Returns the smallest value that the distribution can produce. */
-    RealType min BOOST_PREVENT_MACRO_SUBSTITUTION () const
-    { return RealType(0); }
-    /** Returns the largest value that the distribution can produce. */
-    RealType max BOOST_PREVENT_MACRO_SUBSTITUTION () const
-    { return (std::numeric_limits<RealType>::infinity)(); }
-
-    /** Returns the parameters of the distribution. */
-    param_type param() const { return param_type(m(), s()); }
-    /** Sets the parameters of the distribution. */
-    void param(const param_type& parm)
-    {
-        typedef normal_distribution<RealType> normal_type;
-        typename normal_type::param_type normal_param(parm.m(), parm.s());
-        _normal.param(normal_param);
-    }
-    
-    /**
-     * Effects: Subsequent uses of the distribution do not depend
-     * on values produced by any engine prior to invoking reset.
-     */
-    void reset() { _normal.reset(); }
-
-    /**
-     * Returns a random variate distributed according to the
-     * lognormal distribution.
-     */
-    template<class Engine>
-    result_type operator()(Engine& eng)
-    {
-        using std::exp;
-        return exp(_normal(eng));
-    }
-
-    /**
-     * Returns a random variate distributed according to the
-     * lognormal distribution with parameters specified by param.
-     */
-    template<class Engine>
-    result_type operator()(Engine& eng, const param_type& parm)
-    { return lognormal_distribution(parm)(eng); }
-
-    /** Writes the distribution to a @c std::ostream. */
-    BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, lognormal_distribution, ld)
-    {
-        os << ld._normal;
-        return os;
-    }
-
-    /** Reads the distribution from a @c std::istream. */
-    BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, lognormal_distribution, ld)
-    {
-        is >> ld._normal;
-        return is;
-    }
-
-    /**
-     * Returns true if the two distributions will produce identical
-     * sequences of values given equal generators.
-     */
-    BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(lognormal_distribution, lhs, rhs)
-    { return lhs._normal == rhs._normal; }
-
-    /**
-     * Returns true if the two distributions may produce different
-     * sequences of values given equal generators.
-     */
-    BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(lognormal_distribution)
-
-private:
-    normal_distribution<result_type> _normal;
-};
-
-} // namespace random
-
-/// \cond show_deprecated
-
-/**
- * Provided for backwards compatibility.  This class is
- * deprecated.  It provides the old behavior of lognormal_distribution with
- * \f$\displaystyle p(x) = \frac{1}{x \sigma_N \sqrt{2\pi}} e^{\frac{-\left(\log(x)-\mu_N\right)^2}{2\sigma_N^2}}\f$
- * for x > 0, where \f$\displaystyle \mu_N = \log\left(\frac{\mu^2}{\sqrt{\sigma^2 + \mu^2}}\right)\f$ and
- * \f$\displaystyle \sigma_N = \sqrt{\log\left(1 + \frac{\sigma^2}{\mu^2}\right)}\f$.
- */
-template<class RealType = double>
-class lognormal_distribution
-{
-public:
-    typedef typename normal_distribution<RealType>::input_type input_type;
-    typedef RealType result_type;
-
-    lognormal_distribution(RealType mean_arg = RealType(1.0),
-                           RealType sigma_arg = RealType(1.0))
-      : _mean(mean_arg), _sigma(sigma_arg)
-    {
-        init();
-    }
-    RealType mean() const { return _mean; }
-    RealType sigma() const { return _sigma; }
-    void reset() { _normal.reset(); }
-    template<class Engine>
-    RealType operator()(Engine& eng)
-    {
-        using std::exp;
-        return exp(_normal(eng) * _nsigma + _nmean);
-    }
-    BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, lognormal_distribution, ld)
-    {
-        os << ld._normal << " " << ld._mean << " " << ld._sigma;
-        return os;
-    }
-    BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, lognormal_distribution, ld)
-    {
-        is >> ld._normal >> std::ws >> ld._mean >> std::ws >> ld._sigma;
-        ld.init();
-        return is;
-    }
-private:
-    /// \cond show_private
-    void init()
-    {
-        using std::log;
-        using std::sqrt;
-        _nmean = log(_mean*_mean/sqrt(_sigma*_sigma + _mean*_mean));
-        _nsigma = sqrt(log(_sigma*_sigma/_mean/_mean+result_type(1)));
-    }
-    RealType _mean;
-    RealType _sigma;
-    RealType _nmean;
-    RealType _nsigma;
-    normal_distribution<RealType> _normal;
-    /// \endcond
-};
-
-/// \endcond
-
-} // namespace boost
-
-#endif // BOOST_RANDOM_LOGNORMAL_DISTRIBUTION_HPP
diff --git a/boost/random/mersenne_twister.hpp b/boost/random/mersenne_twister.hpp
deleted file mode 100644
index be60389..0000000
--- a/boost/random/mersenne_twister.hpp
+++ /dev/null
@@ -1,545 +0,0 @@
-/* boost random/mersenne_twister.hpp header file
- *
- * Copyright Jens Maurer 2000-2001
- * Copyright Steven Watanabe 2010
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: mersenne_twister.hpp 74867 2011-10-09 23:13:31Z steven_watanabe $
- *
- * Revision history
- *  2001-02-18  moved to individual header files
- */
-
-#ifndef BOOST_RANDOM_MERSENNE_TWISTER_HPP
-#define BOOST_RANDOM_MERSENNE_TWISTER_HPP
-
-#include <iosfwd>
-#include <istream>
-#include <stdexcept>
-#include <boost/config.hpp>
-#include <boost/cstdint.hpp>
-#include <boost/integer/integer_mask.hpp>
-#include <boost/random/detail/config.hpp>
-#include <boost/random/detail/ptr_helper.hpp>
-#include <boost/random/detail/seed.hpp>
-#include <boost/random/detail/seed_impl.hpp>
-#include <boost/random/detail/generator_seed_seq.hpp>
-
-namespace boost {
-namespace random {
-
-/**
- * Instantiations of class template mersenne_twister_engine model a
- * \pseudo_random_number_generator. It uses the algorithm described in
- *
- *  @blockquote
- *  "Mersenne Twister: A 623-dimensionally equidistributed uniform
- *  pseudo-random number generator", Makoto Matsumoto and Takuji Nishimura,
- *  ACM Transactions on Modeling and Computer Simulation: Special Issue on
- *  Uniform Random Number Generation, Vol. 8, No. 1, January 1998, pp. 3-30. 
- *  @endblockquote
- *
- * @xmlnote
- * The boost variant has been implemented from scratch and does not
- * derive from or use mt19937.c provided on the above WWW site. However, it
- * was verified that both produce identical output.
- * @endxmlnote
- *
- * The seeding from an integer was changed in April 2005 to address a
- * <a href="http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/MT2002/emt19937ar.html">weakness</a>.
- * 
- * The quality of the generator crucially depends on the choice of the
- * parameters.  User code should employ one of the sensibly parameterized
- * generators such as \mt19937 instead.
- *
- * The generator requires considerable amounts of memory for the storage of
- * its state array. For example, \mt11213b requires about 1408 bytes and
- * \mt19937 requires about 2496 bytes.
- */
-template<class UIntType,
-         std::size_t w, std::size_t n, std::size_t m, std::size_t r,
-         UIntType a, std::size_t u, UIntType d, std::size_t s,
-         UIntType b, std::size_t t,
-         UIntType c, std::size_t l, UIntType f>
-class mersenne_twister_engine
-{
-public:
-    typedef UIntType result_type;
-    BOOST_STATIC_CONSTANT(std::size_t, word_size = w);
-    BOOST_STATIC_CONSTANT(std::size_t, state_size = n);
-    BOOST_STATIC_CONSTANT(std::size_t, shift_size = m);
-    BOOST_STATIC_CONSTANT(std::size_t, mask_bits = r);
-    BOOST_STATIC_CONSTANT(UIntType, xor_mask = a);
-    BOOST_STATIC_CONSTANT(std::size_t, tempering_u = u);
-    BOOST_STATIC_CONSTANT(UIntType, tempering_d = d);
-    BOOST_STATIC_CONSTANT(std::size_t, tempering_s = s);
-    BOOST_STATIC_CONSTANT(UIntType, tempering_b = b);
-    BOOST_STATIC_CONSTANT(std::size_t, tempering_t = t);
-    BOOST_STATIC_CONSTANT(UIntType, tempering_c = c);
-    BOOST_STATIC_CONSTANT(std::size_t, tempering_l = l);
-    BOOST_STATIC_CONSTANT(UIntType, initialization_multiplier = f);
-    BOOST_STATIC_CONSTANT(UIntType, default_seed = 5489u);
-  
-    // backwards compatibility
-    BOOST_STATIC_CONSTANT(UIntType, parameter_a = a);
-    BOOST_STATIC_CONSTANT(std::size_t, output_u = u);
-    BOOST_STATIC_CONSTANT(std::size_t, output_s = s);
-    BOOST_STATIC_CONSTANT(UIntType, output_b = b);
-    BOOST_STATIC_CONSTANT(std::size_t, output_t = t);
-    BOOST_STATIC_CONSTANT(UIntType, output_c = c);
-    BOOST_STATIC_CONSTANT(std::size_t, output_l = l);
-    
-    // old Boost.Random concept requirements
-    BOOST_STATIC_CONSTANT(bool, has_fixed_range = false);
-
-
-    /**
-     * Constructs a @c mersenne_twister_engine and calls @c seed().
-     */
-    mersenne_twister_engine() { seed(); }
-
-    /**
-     * Constructs a @c mersenne_twister_engine and calls @c seed(value).
-     */
-    BOOST_RANDOM_DETAIL_ARITHMETIC_CONSTRUCTOR(mersenne_twister_engine,
-                                               UIntType, value)
-    { seed(value); }
-    template<class It> mersenne_twister_engine(It& first, It last)
-    { seed(first,last); }
-
-    /**
-     * Constructs a mersenne_twister_engine and calls @c seed(gen).
-     *
-     * @xmlnote
-     * The copy constructor will always be preferred over
-     * the templated constructor.
-     * @endxmlnote
-     */
-    BOOST_RANDOM_DETAIL_SEED_SEQ_CONSTRUCTOR(mersenne_twister_engine,
-                                             SeedSeq, seq)
-    { seed(seq); }
-
-    // compiler-generated copy ctor and assignment operator are fine
-
-    /** Calls @c seed(default_seed). */
-    void seed() { seed(default_seed); }
-
-    /**
-     * Sets the state x(0) to v mod 2w. Then, iteratively,
-     * sets x(i) to
-     * (i + f * (x(i-1) xor (x(i-1) rshift w-2))) mod 2<sup>w</sup>
-     * for i = 1 .. n-1. x(n) is the first value to be returned by operator().
-     */
-    BOOST_RANDOM_DETAIL_ARITHMETIC_SEED(mersenne_twister_engine, UIntType, value)
-    {
-        // New seeding algorithm from 
-        // http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/MT2002/emt19937ar.html
-        // In the previous versions, MSBs of the seed affected only MSBs of the
-        // state x[].
-        const UIntType mask = (max)();
-        x[0] = value & mask;
-        for (i = 1; i < n; i++) {
-            // See Knuth "The Art of Computer Programming"
-            // Vol. 2, 3rd ed., page 106
-            x[i] = (f * (x[i-1] ^ (x[i-1] >> (w-2))) + i) & mask;
-        }
-    }
-    
-    /**
-     * Seeds a mersenne_twister_engine using values produced by seq.generate().
-     */
-    BOOST_RANDOM_DETAIL_SEED_SEQ_SEED(mersenne_twister_engine, SeeqSeq, seq)
-    {
-        detail::seed_array_int<w>(seq, x);
-        i = n;
-
-        // fix up the state if it's all zeroes.
-        if((x[0] & (~static_cast<UIntType>(0) << r)) == 0) {
-            for(std::size_t j = 1; j < n; ++j) {
-                if(x[j] != 0) return;
-            }
-            x[0] = static_cast<UIntType>(1) << (w-1);
-        }
-    }
-
-    /** Sets the state of the generator using values from an iterator range. */
-    template<class It>
-    void seed(It& first, It last)
-    {
-        detail::fill_array_int<w>(first, last, x);
-        i = n;
-
-        // fix up the state if it's all zeroes.
-        if((x[0] & (~static_cast<UIntType>(0) << r)) == 0) {
-            for(std::size_t j = 1; j < n; ++j) {
-                if(x[j] != 0) return;
-            }
-            x[0] = static_cast<UIntType>(1) << (w-1);
-        }
-    }
-  
-    /** Returns the smallest value that the generator can produce. */
-    static result_type min BOOST_PREVENT_MACRO_SUBSTITUTION ()
-    { return 0; }
-    /** Returns the largest value that the generator can produce. */
-    static result_type max BOOST_PREVENT_MACRO_SUBSTITUTION ()
-    { return boost::low_bits_mask_t<w>::sig_bits; }
-    
-    /** Produces the next value of the generator. */
-    result_type operator()();
-
-    /** Fills a range with random values */
-    template<class Iter>
-    void generate(Iter first, Iter last)
-    { detail::generate_from_int(*this, first, last); }
-
-    /**
-     * Advances the state of the generator by @c z steps.  Equivalent to
-     *
-     * @code
-     * for(unsigned long long i = 0; i < z; ++i) {
-     *     gen();
-     * }
-     * @endcode
-     */
-    void discard(boost::uintmax_t z)
-    {
-        for(boost::uintmax_t j = 0; j < z; ++j) {
-            (*this)();
-        }
-    }
-
-#ifndef BOOST_RANDOM_NO_STREAM_OPERATORS
-    /** Writes a mersenne_twister_engine to a @c std::ostream */
-    template<class CharT, class Traits>
-    friend std::basic_ostream<CharT,Traits>&
-    operator<<(std::basic_ostream<CharT,Traits>& os,
-               const mersenne_twister_engine& mt)
-    {
-        mt.print(os);
-        return os;
-    }
-    
-    /** Reads a mersenne_twister_engine from a @c std::istream */
-    template<class CharT, class Traits>
-    friend std::basic_istream<CharT,Traits>&
-    operator>>(std::basic_istream<CharT,Traits>& is,
-               mersenne_twister_engine& mt)
-    {
-        for(std::size_t j = 0; j < mt.state_size; ++j)
-            is >> mt.x[j] >> std::ws;
-        // MSVC (up to 7.1) and Borland (up to 5.64) don't handle the template
-        // value parameter "n" available from the class template scope, so use
-        // the static constant with the same value
-        mt.i = mt.state_size;
-        return is;
-    }
-#endif
-
-    /**
-     * Returns true if the two generators are in the same state,
-     * and will thus produce identical sequences.
-     */
-    friend bool operator==(const mersenne_twister_engine& x,
-                           const mersenne_twister_engine& y)
-    {
-        if(x.i < y.i) return x.equal_imp(y);
-        else return y.equal_imp(x);
-    }
-    
-    /**
-     * Returns true if the two generators are in different states.
-     */
-    friend bool operator!=(const mersenne_twister_engine& x,
-                           const mersenne_twister_engine& y)
-    { return !(x == y); }
-
-private:
-    /// \cond show_private
-
-    void twist();
-
-    /**
-     * Does the work of operator==.  This is in a member function
-     * for portability.  Some compilers, such as msvc 7.1 and
-     * Sun CC 5.10 can't access template parameters or static
-     * members of the class from inline friend functions.
-     *
-     * requires i <= other.i
-     */
-    bool equal_imp(const mersenne_twister_engine& other) const
-    {
-        UIntType back[n];
-        std::size_t offset = other.i - i;
-        for(std::size_t j = 0; j + offset < n; ++j)
-            if(x[j] != other.x[j+offset])
-                return false;
-        rewind(&back[n-1], offset);
-        for(std::size_t j = 0; j < offset; ++j)
-            if(back[j + n - offset] != other.x[j])
-                return false;
-        return true;
-    }
-
-    /**
-     * Does the work of operator<<.  This is in a member function
-     * for portability.
-     */
-    template<class CharT, class Traits>
-    void print(std::basic_ostream<CharT, Traits>& os) const
-    {
-        UIntType data[n];
-        for(std::size_t j = 0; j < i; ++j) {
-            data[j + n - i] = x[j];
-        }
-        if(i != n) {
-            rewind(&data[n - i - 1], n - i);
-        }
-        os << data[0];
-        for(std::size_t j = 1; j < n; ++j) {
-            os << ' ' << data[j];
-        }
-    }
-
-    /**
-     * Copies z elements of the state preceding x[0] into
-     * the array whose last element is last.
-     */
-    void rewind(UIntType* last, std::size_t z) const
-    {
-        const UIntType upper_mask = (~static_cast<UIntType>(0)) << r;
-        const UIntType lower_mask = ~upper_mask;
-        UIntType y0 = x[m-1] ^ x[n-1];
-        if(y0 & (static_cast<UIntType>(1) << (w-1))) {
-            y0 = ((y0 ^ a) << 1) | 1;
-        } else {
-            y0 = y0 << 1;
-        }
-        for(std::size_t sz = 0; sz < z; ++sz) {
-            UIntType y1 =
-                rewind_find(last, sz, m-1) ^ rewind_find(last, sz, n-1);
-            if(y1 & (static_cast<UIntType>(1) << (w-1))) {
-                y1 = ((y1 ^ a) << 1) | 1;
-            } else {
-                y1 = y1 << 1;
-            }
-            *(last - sz) = (y0 & upper_mask) | (y1 & lower_mask);
-            y0 = y1;
-        }
-    }
-
-    /**
-     * Given a pointer to the last element of the rewind array,
-     * and the current size of the rewind array, finds an element
-     * relative to the next available slot in the rewind array.
-     */
-    UIntType
-    rewind_find(UIntType* last, std::size_t size, std::size_t j) const
-    {
-        std::size_t index = (j + n - size + n - 1) % n;
-        if(index < n - size) {
-            return x[index];
-        } else {
-            return *(last - (n - 1 - index));
-        }
-    }
-
-    /// \endcond
-
-    // state representation: next output is o(x(i))
-    //   x[0]  ... x[k] x[k+1] ... x[n-1]   represents
-    //  x(i-k) ... x(i) x(i+1) ... x(i-k+n-1)
-
-    UIntType x[n]; 
-    std::size_t i;
-};
-
-/// \cond show_private
-
-#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
-//  A definition is required even for integral static constants
-#define BOOST_RANDOM_MT_DEFINE_CONSTANT(type, name)                         \
-template<class UIntType, std::size_t w, std::size_t n, std::size_t m,       \
-    std::size_t r, UIntType a, std::size_t u, UIntType d, std::size_t s,    \
-    UIntType b, std::size_t t, UIntType c, std::size_t l, UIntType f>       \
-const type mersenne_twister_engine<UIntType,w,n,m,r,a,u,d,s,b,t,c,l,f>::name
-BOOST_RANDOM_MT_DEFINE_CONSTANT(std::size_t, word_size);
-BOOST_RANDOM_MT_DEFINE_CONSTANT(std::size_t, state_size);
-BOOST_RANDOM_MT_DEFINE_CONSTANT(std::size_t, shift_size);
-BOOST_RANDOM_MT_DEFINE_CONSTANT(std::size_t, mask_bits);
-BOOST_RANDOM_MT_DEFINE_CONSTANT(UIntType, xor_mask);
-BOOST_RANDOM_MT_DEFINE_CONSTANT(std::size_t, tempering_u);
-BOOST_RANDOM_MT_DEFINE_CONSTANT(UIntType, tempering_d);
-BOOST_RANDOM_MT_DEFINE_CONSTANT(std::size_t, tempering_s);
-BOOST_RANDOM_MT_DEFINE_CONSTANT(UIntType, tempering_b);
-BOOST_RANDOM_MT_DEFINE_CONSTANT(std::size_t, tempering_t);
-BOOST_RANDOM_MT_DEFINE_CONSTANT(UIntType, tempering_c);
-BOOST_RANDOM_MT_DEFINE_CONSTANT(std::size_t, tempering_l);
-BOOST_RANDOM_MT_DEFINE_CONSTANT(UIntType, initialization_multiplier);
-BOOST_RANDOM_MT_DEFINE_CONSTANT(UIntType, default_seed);
-BOOST_RANDOM_MT_DEFINE_CONSTANT(UIntType, parameter_a);
-BOOST_RANDOM_MT_DEFINE_CONSTANT(std::size_t, output_u );
-BOOST_RANDOM_MT_DEFINE_CONSTANT(std::size_t, output_s);
-BOOST_RANDOM_MT_DEFINE_CONSTANT(UIntType, output_b);
-BOOST_RANDOM_MT_DEFINE_CONSTANT(std::size_t, output_t);
-BOOST_RANDOM_MT_DEFINE_CONSTANT(UIntType, output_c);
-BOOST_RANDOM_MT_DEFINE_CONSTANT(std::size_t, output_l);
-BOOST_RANDOM_MT_DEFINE_CONSTANT(bool, has_fixed_range);
-#undef BOOST_RANDOM_MT_DEFINE_CONSTANT
-#endif
-
-template<class UIntType,
-         std::size_t w, std::size_t n, std::size_t m, std::size_t r,
-         UIntType a, std::size_t u, UIntType d, std::size_t s,
-         UIntType b, std::size_t t,
-         UIntType c, std::size_t l, UIntType f>
-void
-mersenne_twister_engine<UIntType,w,n,m,r,a,u,d,s,b,t,c,l,f>::twist()
-{
-    const UIntType upper_mask = (~static_cast<UIntType>(0)) << r;
-    const UIntType lower_mask = ~upper_mask;
-
-    const std::size_t unroll_factor = 6;
-    const std::size_t unroll_extra1 = (n-m) % unroll_factor;
-    const std::size_t unroll_extra2 = (m-1) % unroll_factor;
-
-    // split loop to avoid costly modulo operations
-    {  // extra scope for MSVC brokenness w.r.t. for scope
-        for(std::size_t j = 0; j < n-m-unroll_extra1; j++) {
-            UIntType y = (x[j] & upper_mask) | (x[j+1] & lower_mask);
-            x[j] = x[j+m] ^ (y >> 1) ^ ((x[j+1]&1) * a);
-        }
-    }
-    {
-        for(std::size_t j = n-m-unroll_extra1; j < n-m; j++) {
-            UIntType y = (x[j] & upper_mask) | (x[j+1] & lower_mask);
-            x[j] = x[j+m] ^ (y >> 1) ^ ((x[j+1]&1) * a);
-        }
-    }
-    {
-        for(std::size_t j = n-m; j < n-1-unroll_extra2; j++) {
-            UIntType y = (x[j] & upper_mask) | (x[j+1] & lower_mask);
-            x[j] = x[j-(n-m)] ^ (y >> 1) ^ ((x[j+1]&1) * a);
-        }
-    }
-    {
-        for(std::size_t j = n-1-unroll_extra2; j < n-1; j++) {
-            UIntType y = (x[j] & upper_mask) | (x[j+1] & lower_mask);
-            x[j] = x[j-(n-m)] ^ (y >> 1) ^ ((x[j+1]&1) * a);
-        }
-    }
-    // last iteration
-    UIntType y = (x[n-1] & upper_mask) | (x[0] & lower_mask);
-    x[n-1] = x[m-1] ^ (y >> 1) ^ ((x[0]&1) * a);
-    i = 0;
-}
-/// \endcond
-
-template<class UIntType,
-         std::size_t w, std::size_t n, std::size_t m, std::size_t r,
-         UIntType a, std::size_t u, UIntType d, std::size_t s,
-         UIntType b, std::size_t t,
-         UIntType c, std::size_t l, UIntType f>
-inline typename
-mersenne_twister_engine<UIntType,w,n,m,r,a,u,d,s,b,t,c,l,f>::result_type
-mersenne_twister_engine<UIntType,w,n,m,r,a,u,d,s,b,t,c,l,f>::operator()()
-{
-    if(i == n)
-        twist();
-    // Step 4
-    UIntType z = x[i];
-    ++i;
-    z ^= ((z >> u) & d);
-    z ^= ((z << s) & b);
-    z ^= ((z << t) & c);
-    z ^= (z >> l);
-    return z;
-}
-
-/**
- * The specializations \mt11213b and \mt19937 are from
- *
- *  @blockquote
- *  "Mersenne Twister: A 623-dimensionally equidistributed
- *  uniform pseudo-random number generator", Makoto Matsumoto
- *  and Takuji Nishimura, ACM Transactions on Modeling and
- *  Computer Simulation: Special Issue on Uniform Random Number
- *  Generation, Vol. 8, No. 1, January 1998, pp. 3-30. 
- *  @endblockquote
- */
-typedef mersenne_twister_engine<uint32_t,32,351,175,19,0xccab8ee7,
-    11,0xffffffff,7,0x31b6ab00,15,0xffe50000,17,1812433253> mt11213b;
-
-/**
- * The specializations \mt11213b and \mt19937 are from
- *
- *  @blockquote
- *  "Mersenne Twister: A 623-dimensionally equidistributed
- *  uniform pseudo-random number generator", Makoto Matsumoto
- *  and Takuji Nishimura, ACM Transactions on Modeling and
- *  Computer Simulation: Special Issue on Uniform Random Number
- *  Generation, Vol. 8, No. 1, January 1998, pp. 3-30. 
- *  @endblockquote
- */
-typedef mersenne_twister_engine<uint32_t,32,624,397,31,0x9908b0df,
-    11,0xffffffff,7,0x9d2c5680,15,0xefc60000,18,1812433253> mt19937;
-
-#if !defined(BOOST_NO_INT64_T) && !defined(BOOST_NO_INTEGRAL_INT64_T)
-typedef mersenne_twister_engine<uint64_t,64,312,156,31,
-    UINT64_C(0xb5026f5aa96619e9),29,UINT64_C(0x5555555555555555),17,
-    UINT64_C(0x71d67fffeda60000),37,UINT64_C(0xfff7eee000000000),43,
-    UINT64_C(6364136223846793005)> mt19937_64;
-#endif
-
-/// \cond show_deprecated
-
-template<class UIntType,
-         int w, int n, int m, int r,
-         UIntType a, int u, std::size_t s,
-         UIntType b, int t,
-         UIntType c, int l, UIntType v>
-class mersenne_twister :
-    public mersenne_twister_engine<UIntType,
-        w, n, m, r, a, u, ~(UIntType)0, s, b, t, c, l, 1812433253>
-{
-    typedef mersenne_twister_engine<UIntType,
-        w, n, m, r, a, u, ~(UIntType)0, s, b, t, c, l, 1812433253> base_type;
-public:
-    mersenne_twister() {}
-    BOOST_RANDOM_DETAIL_GENERATOR_CONSTRUCTOR(mersenne_twister, Gen, gen)
-    { seed(gen); }
-    BOOST_RANDOM_DETAIL_ARITHMETIC_CONSTRUCTOR(mersenne_twister, UIntType, val)
-    { seed(val); }
-    template<class It>
-    mersenne_twister(It& first, It last) : base_type(first, last) {}
-    void seed() { base_type::seed(); }
-    BOOST_RANDOM_DETAIL_GENERATOR_SEED(mersenne_twister, Gen, gen)
-    {
-        detail::generator_seed_seq<Gen> seq(gen);
-        base_type::seed(seq);
-    }
-    BOOST_RANDOM_DETAIL_ARITHMETIC_SEED(mersenne_twister, UIntType, val)
-    { base_type::seed(val); }
-    template<class It>
-    void seed(It& first, It last) { base_type::seed(first, last); }
-};
-
-/// \endcond
-
-} // namespace random
-
-using random::mt11213b;
-using random::mt19937;
-using random::mt19937_64;
-
-} // namespace boost
-
-BOOST_RANDOM_PTR_HELPER_SPEC(boost::mt11213b)
-BOOST_RANDOM_PTR_HELPER_SPEC(boost::mt19937)
-BOOST_RANDOM_PTR_HELPER_SPEC(boost::mt19937_64)
-
-#endif // BOOST_RANDOM_MERSENNE_TWISTER_HPP
diff --git a/boost/random/negative_binomial_distribution.hpp b/boost/random/negative_binomial_distribution.hpp
deleted file mode 100644
index 23b657f..0000000
--- a/boost/random/negative_binomial_distribution.hpp
+++ /dev/null
@@ -1,220 +0,0 @@
-/* boost random/negative_binomial_distribution.hpp header file
- *
- * Copyright Steven Watanabe 2010
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: negative_binomial_distribution.hpp 71018 2011-04-05 21:27:52Z steven_watanabe $
- */
-
-#ifndef BOOST_RANDOM_NEGATIVE_BINOMIAL_DISTRIBUTION_HPP_INCLUDED
-#define BOOST_RANDOM_NEGATIVE_BINOMIAL_DISTRIBUTION_HPP_INCLUDED
-
-#include <iosfwd>
-
-#include <boost/limits.hpp>
-#include <boost/random/detail/config.hpp>
-#include <boost/random/gamma_distribution.hpp>
-#include <boost/random/poisson_distribution.hpp>
-
-namespace boost {
-namespace random {
-
-/**
- * The negative binomial distribution is an integer valued
- * distribution with two parameters, @c k and @c p.  The
- * distribution produces non-negative values.
- *
- * The distribution function is
- * \f$\displaystyle P(i) = {k+i-1\choose i}p^k(1-p)^i\f$.
- *
- * This implementation uses a gamma-poisson mixture.
- */
-template<class IntType = int, class RealType = double>
-class negative_binomial_distribution {
-public:
-    typedef IntType result_type;
-    typedef RealType input_type;
-
-    class param_type {
-    public:
-        typedef negative_binomial_distribution distribution_type;
-        /**
-         * Construct a param_type object.  @c k and @c p
-         * are the parameters of the distribution.
-         *
-         * Requires: k >=0 && 0 <= p <= 1
-         */
-        explicit param_type(IntType k_arg = 1, RealType p_arg = RealType (0.5))
-          : _k(k_arg), _p(p_arg)
-        {}
-        /** Returns the @c k parameter of the distribution. */
-        IntType k() const { return _k; }
-        /** Returns the @c p parameter of the distribution. */
-        RealType p() const { return _p; }
-#ifndef BOOST_RANDOM_NO_STREAM_OPERATORS
-        /** Writes the parameters of the distribution to a @c std::ostream. */
-        template<class CharT, class Traits>
-        friend std::basic_ostream<CharT,Traits>&
-        operator<<(std::basic_ostream<CharT,Traits>& os,
-                   const param_type& parm)
-        {
-            os << parm._p << " " << parm._k;
-            return os;
-        }
-    
-        /** Reads the parameters of the distribution from a @c std::istream. */
-        template<class CharT, class Traits>
-        friend std::basic_istream<CharT,Traits>&
-        operator>>(std::basic_istream<CharT,Traits>& is, param_type& parm)
-        {
-            is >> parm._p >> std::ws >> parm._k;
-            return is;
-        }
-#endif
-        /** Returns true if the parameters have the same values. */
-        friend bool operator==(const param_type& lhs, const param_type& rhs)
-        {
-            return lhs._k == rhs._k && lhs._p == rhs._p;
-        }
-        /** Returns true if the parameters have different values. */
-        friend bool operator!=(const param_type& lhs, const param_type& rhs)
-        {
-            return !(lhs == rhs);
-        }
-    private:
-        IntType _k;
-        RealType _p;
-    };
-    
-    /**
-     * Construct a @c negative_binomial_distribution object. @c k and @c p
-     * are the parameters of the distribution.
-     *
-     * Requires: k >=0 && 0 <= p <= 1
-     */
-    explicit negative_binomial_distribution(IntType k_arg = 1,
-                                            RealType p_arg = RealType(0.5))
-      : _k(k_arg), _p(p_arg)
-    {}
-    
-    /**
-     * Construct an @c negative_binomial_distribution object from the
-     * parameters.
-     */
-    explicit negative_binomial_distribution(const param_type& parm)
-      : _k(parm.k()), _p(parm.p())
-    {}
-    
-    /**
-     * Returns a random variate distributed according to the
-     * negative binomial distribution.
-     */
-    template<class URNG>
-    IntType operator()(URNG& urng) const
-    {
-        gamma_distribution<RealType> gamma(_k, (1-_p)/_p);
-        poisson_distribution<IntType, RealType> poisson(gamma(urng));
-        return poisson(urng);
-    }
-    
-    /**
-     * Returns a random variate distributed according to the negative
-     * binomial distribution with parameters specified by @c param.
-     */
-    template<class URNG>
-    IntType operator()(URNG& urng, const param_type& parm) const
-    {
-        return negative_binomial_distribution(parm)(urng);
-    }
-
-    /** Returns the @c k parameter of the distribution. */
-    IntType k() const { return _k; }
-    /** Returns the @c p parameter of the distribution. */
-    RealType p() const { return _p; }
-
-    /** Returns the smallest value that the distribution can produce. */
-    IntType min BOOST_PREVENT_MACRO_SUBSTITUTION() const { return 0; }
-    /** Returns the largest value that the distribution can produce. */
-    IntType max BOOST_PREVENT_MACRO_SUBSTITUTION() const
-    { return (std::numeric_limits<IntType>::max)(); }
-
-    /** Returns the parameters of the distribution. */
-    param_type param() const { return param_type(_k, _p); }
-    /** Sets parameters of the distribution. */
-    void param(const param_type& parm)
-    {
-        _k = parm.k();
-        _p = parm.p();
-    }
-
-    /**
-     * Effects: Subsequent uses of the distribution do not depend
-     * on values produced by any engine prior to invoking reset.
-     */
-    void reset() { }
-
-#ifndef BOOST_RANDOM_NO_STREAM_OPERATORS
-    /** Writes the parameters of the distribution to a @c std::ostream. */
-    template<class CharT, class Traits>
-    friend std::basic_ostream<CharT,Traits>&
-    operator<<(std::basic_ostream<CharT,Traits>& os,
-               const negative_binomial_distribution& bd)
-    {
-        os << bd.param();
-        return os;
-    }
-    
-    /** Reads the parameters of the distribution from a @c std::istream. */
-    template<class CharT, class Traits>
-    friend std::basic_istream<CharT,Traits>&
-    operator>>(std::basic_istream<CharT,Traits>& is,
-               negative_binomial_distribution& bd)
-    {
-        bd.read(is);
-        return is;
-    }
-#endif
-
-    /** Returns true if the two distributions will produce the same
-        sequence of values, given equal generators. */
-    friend bool operator==(const negative_binomial_distribution& lhs,
-                           const negative_binomial_distribution& rhs)
-    {
-        return lhs._k == rhs._k && lhs._p == rhs._p;
-    }
-    /** Returns true if the two distributions could produce different
-        sequences of values, given equal generators. */
-    friend bool operator!=(const negative_binomial_distribution& lhs,
-                           const negative_binomial_distribution& rhs)
-    {
-        return !(lhs == rhs);
-    }
-
-private:
-
-    /// @cond \show_private
-
-    template<class CharT, class Traits>
-    void read(std::basic_istream<CharT, Traits>& is) {
-        param_type parm;
-        if(is >> parm) {
-            param(parm);
-        }
-    }
-
-    // parameters
-    IntType _k;
-    RealType _p;
-
-    /// @endcond
-};
-
-}
-
-}
-
-#endif
diff --git a/boost/random/normal_distribution.hpp b/boost/random/normal_distribution.hpp
deleted file mode 100644
index 9515fb3..0000000
--- a/boost/random/normal_distribution.hpp
+++ /dev/null
@@ -1,223 +0,0 @@
-/* boost random/normal_distribution.hpp header file
- *
- * Copyright Jens Maurer 2000-2001
- * Copyright Steven Watanabe 2010-2011
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: normal_distribution.hpp 71018 2011-04-05 21:27:52Z steven_watanabe $
- *
- * Revision history
- *  2001-02-18  moved to individual header files
- */
-
-#ifndef BOOST_RANDOM_NORMAL_DISTRIBUTION_HPP
-#define BOOST_RANDOM_NORMAL_DISTRIBUTION_HPP
-
-#include <boost/config/no_tr1/cmath.hpp>
-#include <istream>
-#include <iosfwd>
-#include <boost/assert.hpp>
-#include <boost/limits.hpp>
-#include <boost/static_assert.hpp>
-#include <boost/random/detail/config.hpp>
-#include <boost/random/detail/operators.hpp>
-#include <boost/random/uniform_01.hpp>
-
-namespace boost {
-namespace random {
-
-// deterministic Box-Muller method, uses trigonometric functions
-
-/**
- * Instantiations of class template normal_distribution model a
- * \random_distribution. Such a distribution produces random numbers
- * @c x distributed with probability density function
- * \f$\displaystyle p(x) =
- *   \frac{1}{\sqrt{2\pi\sigma}} e^{-\frac{(x-\mu)^2}{2\sigma^2}}
- * \f$,
- * where mean and sigma are the parameters of the distribution.
- */
-template<class RealType = double>
-class normal_distribution
-{
-public:
-    typedef RealType input_type;
-    typedef RealType result_type;
-
-    class param_type {
-    public:
-        typedef normal_distribution distribution_type;
-
-        /**
-         * Constructs a @c param_type with a given mean and
-         * standard deviation.
-         *
-         * Requires: sigma >= 0
-         */
-        explicit param_type(RealType mean_arg = RealType(0.0),
-                            RealType sigma_arg = RealType(1.0))
-          : _mean(mean_arg),
-            _sigma(sigma_arg)
-        {}
-
-        /** Returns the mean of the distribution. */
-        RealType mean() const { return _mean; }
-
-        /** Returns the standand deviation of the distribution. */
-        RealType sigma() const { return _sigma; }
-
-        /** Writes a @c param_type to a @c std::ostream. */
-        BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, param_type, parm)
-        { os << parm._mean << " " << parm._sigma ; return os; }
-
-        /** Reads a @c param_type from a @c std::istream. */
-        BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, param_type, parm)
-        { is >> parm._mean >> std::ws >> parm._sigma; return is; }
-
-        /** Returns true if the two sets of parameters are the same. */
-        BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(param_type, lhs, rhs)
-        { return lhs._mean == rhs._mean && lhs._sigma == rhs._sigma; }
-        
-        /** Returns true if the two sets of parameters are the different. */
-        BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(param_type)
-
-    private:
-        RealType _mean;
-        RealType _sigma;
-    };
-
-    /**
-     * Constructs a @c normal_distribution object. @c mean and @c sigma are
-     * the parameters for the distribution.
-     *
-     * Requires: sigma >= 0
-     */
-    explicit normal_distribution(const RealType& mean_arg = RealType(0.0),
-                                 const RealType& sigma_arg = RealType(1.0))
-      : _mean(mean_arg), _sigma(sigma_arg),
-        _r1(0), _r2(0), _cached_rho(0), _valid(false)
-    {
-        BOOST_ASSERT(_sigma >= RealType(0));
-    }
-
-    /**
-     * Constructs a @c normal_distribution object from its parameters.
-     */
-    explicit normal_distribution(const param_type& parm)
-      : _mean(parm.mean()), _sigma(parm.sigma()),
-        _r1(0), _r2(0), _cached_rho(0), _valid(false)
-    {}
-
-    /**  Returns the mean of the distribution. */
-    RealType mean() const { return _mean; }
-    /** Returns the standard deviation of the distribution. */
-    RealType sigma() const { return _sigma; }
-
-    /** Returns the smallest value that the distribution can produce. */
-    RealType min BOOST_PREVENT_MACRO_SUBSTITUTION () const
-    { return -std::numeric_limits<RealType>::infinity(); }
-    /** Returns the largest value that the distribution can produce. */
-    RealType max BOOST_PREVENT_MACRO_SUBSTITUTION () const
-    { return std::numeric_limits<RealType>::infinity(); }
-
-    /** Returns the parameters of the distribution. */
-    param_type param() const { return param_type(_mean, _sigma); }
-    /** Sets the parameters of the distribution. */
-    void param(const param_type& parm)
-    {
-        _mean = parm.mean();
-        _sigma = parm.sigma();
-        _valid = false;
-    }
-
-    /**
-     * Effects: Subsequent uses of the distribution do not depend
-     * on values produced by any engine prior to invoking reset.
-     */
-    void reset() { _valid = false; }
-
-    /**  Returns a normal variate. */
-    template<class Engine>
-    result_type operator()(Engine& eng)
-    {
-        using std::sqrt;
-        using std::log;
-        using std::sin;
-        using std::cos;
-
-        if(!_valid) {
-            _r1 = boost::uniform_01<RealType>()(eng);
-            _r2 = boost::uniform_01<RealType>()(eng);
-            _cached_rho = sqrt(-result_type(2) * log(result_type(1)-_r2));
-            _valid = true;
-        } else {
-            _valid = false;
-        }
-        // Can we have a boost::mathconst please?
-        const result_type pi = result_type(3.14159265358979323846);
-
-        return _cached_rho * (_valid ?
-                              cos(result_type(2)*pi*_r1) :
-                              sin(result_type(2)*pi*_r1))
-            * _sigma + _mean;
-    }
-
-    /** Returns a normal variate with parameters specified by @c param. */
-    template<class URNG>
-    result_type operator()(URNG& urng, const param_type& parm)
-    {
-        return normal_distribution(parm)(urng);
-    }
-
-    /** Writes a @c normal_distribution to a @c std::ostream. */
-    BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, normal_distribution, nd)
-    {
-        os << nd._mean << " " << nd._sigma << " "
-           << nd._valid << " " << nd._cached_rho << " " << nd._r1;
-        return os;
-    }
-
-    /** Reads a @c normal_distribution from a @c std::istream. */
-    BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, normal_distribution, nd)
-    {
-        is >> std::ws >> nd._mean >> std::ws >> nd._sigma
-           >> std::ws >> nd._valid >> std::ws >> nd._cached_rho
-           >> std::ws >> nd._r1;
-        return is;
-    }
-
-    /**
-     * Returns true if the two instances of @c normal_distribution will
-     * return identical sequences of values given equal generators.
-     */
-    BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(normal_distribution, lhs, rhs)
-    {
-        return lhs._mean == rhs._mean && lhs._sigma == rhs._sigma
-            && lhs._valid == rhs._valid
-            && (!lhs._valid || (lhs._r1 == rhs._r1 && lhs._r2 == rhs._r2));
-    }
-
-    /**
-     * Returns true if the two instances of @c normal_distribution will
-     * return different sequences of values given equal generators.
-     */
-    BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(normal_distribution)
-
-private:
-    RealType _mean, _sigma;
-    RealType _r1, _r2, _cached_rho;
-    bool _valid;
-
-};
-
-} // namespace random
-
-using random::normal_distribution;
-
-} // namespace boost
-
-#endif // BOOST_RANDOM_NORMAL_DISTRIBUTION_HPP
diff --git a/boost/random/piecewise_constant_distribution.hpp b/boost/random/piecewise_constant_distribution.hpp
deleted file mode 100644
index 21e9c1c..0000000
--- a/boost/random/piecewise_constant_distribution.hpp
+++ /dev/null
@@ -1,466 +0,0 @@
-/* boost random/piecewise_constant_distribution.hpp header file
- *
- * Copyright Steven Watanabe 2011
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: piecewise_constant_distribution.hpp 85813 2013-09-21 20:17:00Z jewillco $
- */
-
-#ifndef BOOST_RANDOM_PIECEWISE_CONSTANT_DISTRIBUTION_HPP_INCLUDED
-#define BOOST_RANDOM_PIECEWISE_CONSTANT_DISTRIBUTION_HPP_INCLUDED
-
-#include <vector>
-#include <numeric>
-#include <boost/assert.hpp>
-#include <boost/random/uniform_real.hpp>
-#include <boost/random/discrete_distribution.hpp>
-#include <boost/random/detail/config.hpp>
-#include <boost/random/detail/operators.hpp>
-#include <boost/random/detail/vector_io.hpp>
-
-#ifndef BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#include <initializer_list>
-#endif
-
-#include <boost/range/begin.hpp>
-#include <boost/range/end.hpp>
-
-namespace boost {
-namespace random {
-
-/**
- * The class @c piecewise_constant_distribution models a \random_distribution.
- */
-template<class RealType = double, class WeightType = double>
-class piecewise_constant_distribution {
-public:
-    typedef std::size_t input_type;
-    typedef RealType result_type;
-
-    class param_type {
-    public:
-
-        typedef piecewise_constant_distribution distribution_type;
-
-        /**
-         * Constructs a @c param_type object, representing a distribution
-         * that produces values uniformly distributed in the range [0, 1).
-         */
-        param_type()
-        {
-            _weights.push_back(WeightType(1));
-            _intervals.push_back(RealType(0));
-            _intervals.push_back(RealType(1));
-        }
-        /**
-         * Constructs a @c param_type object from two iterator ranges
-         * containing the interval boundaries and the interval weights.
-         * If there are less than two boundaries, then this is equivalent to
-         * the default constructor and creates a single interval, [0, 1).
-         *
-         * The values of the interval boundaries must be strictly
-         * increasing, and the number of weights must be one less than
-         * the number of interval boundaries.  If there are extra
-         * weights, they are ignored.
-         */
-        template<class IntervalIter, class WeightIter>
-        param_type(IntervalIter intervals_first, IntervalIter intervals_last,
-                   WeightIter weight_first)
-          : _intervals(intervals_first, intervals_last)
-        {
-            if(_intervals.size() < 2) {
-                _intervals.clear();
-                _intervals.push_back(RealType(0));
-                _intervals.push_back(RealType(1));
-                _weights.push_back(WeightType(1));
-            } else {
-                _weights.reserve(_intervals.size() - 1);
-                for(std::size_t i = 0; i < _intervals.size() - 1; ++i) {
-                    _weights.push_back(*weight_first++);
-                }
-            }
-        }
-#ifndef BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-        /**
-         * Constructs a @c param_type object from an
-         * initializer_list containing the interval boundaries
-         * and a unary function specifying the weights.  Each
-         * weight is determined by calling the function at the
-         * midpoint of the corresponding interval.
-         *
-         * If the initializer_list contains less than two elements,
-         * this is equivalent to the default constructor and the
-         * distribution will produce values uniformly distributed
-         * in the range [0, 1).
-         */
-        template<class T, class F>
-        param_type(const std::initializer_list<T>& il, F f)
-          : _intervals(il.begin(), il.end())
-        {
-            if(_intervals.size() < 2) {
-                _intervals.clear();
-                _intervals.push_back(RealType(0));
-                _intervals.push_back(RealType(1));
-                _weights.push_back(WeightType(1));
-            } else {
-                _weights.reserve(_intervals.size() - 1);
-                for(std::size_t i = 0; i < _intervals.size() - 1; ++i) {
-                    RealType midpoint = (_intervals[i] + _intervals[i + 1]) / 2;
-                    _weights.push_back(f(midpoint));
-                }
-            }
-        }
-#endif
-        /**
-         * Constructs a @c param_type object from Boost.Range
-         * ranges holding the interval boundaries and the weights.  If
-         * there are less than two interval boundaries, this is equivalent
-         * to the default constructor and the distribution will produce
-         * values uniformly distributed in the range [0, 1).  The
-         * number of weights must be one less than the number of
-         * interval boundaries.
-         */
-        template<class IntervalRange, class WeightRange>
-        param_type(const IntervalRange& intervals_arg,
-                   const WeightRange& weights_arg)
-          : _intervals(boost::begin(intervals_arg), boost::end(intervals_arg)),
-            _weights(boost::begin(weights_arg), boost::end(weights_arg))
-        {
-            if(_intervals.size() < 2) {
-                _intervals.clear();
-                _intervals.push_back(RealType(0));
-                _intervals.push_back(RealType(1));
-                _weights.push_back(WeightType(1));
-            }
-        }
-
-        /**
-         * Constructs the parameters for a distribution that approximates a
-         * function.  The range of the distribution is [xmin, xmax).  This
-         * range is divided into nw equally sized intervals and the weights
-         * are found by calling the unary function f on the midpoints of the
-         * intervals.
-         */
-        template<class F>
-        param_type(std::size_t nw, RealType xmin, RealType xmax, F f)
-        {
-            std::size_t n = (nw == 0) ? 1 : nw;
-            double delta = (xmax - xmin) / n;
-            BOOST_ASSERT(delta > 0);
-            for(std::size_t k = 0; k < n; ++k) {
-                _weights.push_back(f(xmin + k*delta + delta/2));
-                _intervals.push_back(xmin + k*delta);
-            }
-            _intervals.push_back(xmax);
-        }
-
-        /**  Returns a vector containing the interval boundaries. */
-        std::vector<RealType> intervals() const { return _intervals; }
-
-        /**
-         * Returns a vector containing the probability densities
-         * over all the intervals of the distribution.
-         */
-        std::vector<RealType> densities() const
-        {
-            RealType sum = std::accumulate(_weights.begin(), _weights.end(),
-                                             static_cast<RealType>(0));
-            std::vector<RealType> result;
-            result.reserve(_weights.size());
-            for(std::size_t i = 0; i < _weights.size(); ++i) {
-                RealType width = _intervals[i + 1] - _intervals[i];
-                result.push_back(_weights[i] / (sum * width));
-            }
-            return result;
-        }
-
-        /** Writes the parameters to a @c std::ostream. */
-        BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, param_type, parm)
-        {
-            detail::print_vector(os, parm._intervals);
-            detail::print_vector(os, parm._weights);
-            return os;
-        }
-        
-        /** Reads the parameters from a @c std::istream. */
-        BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, param_type, parm)
-        {
-            std::vector<RealType> new_intervals;
-            std::vector<WeightType> new_weights;
-            detail::read_vector(is, new_intervals);
-            detail::read_vector(is, new_weights);
-            if(is) {
-                parm._intervals.swap(new_intervals);
-                parm._weights.swap(new_weights);
-            }
-            return is;
-        }
-
-        /** Returns true if the two sets of parameters are the same. */
-        BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(param_type, lhs, rhs)
-        {
-            return lhs._intervals == rhs._intervals
-                && lhs._weights == rhs._weights;
-        }
-        /** Returns true if the two sets of parameters are different. */
-        BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(param_type)
-
-    private:
-
-        friend class piecewise_constant_distribution;
-
-        std::vector<RealType> _intervals;
-        std::vector<WeightType> _weights;
-    };
-
-    /**
-     * Creates a new @c piecewise_constant_distribution with
-     * a single interval, [0, 1).
-     */
-    piecewise_constant_distribution()
-    {
-        _intervals.push_back(RealType(0));
-        _intervals.push_back(RealType(1));
-    }
-    /**
-     * Constructs a piecewise_constant_distribution from two iterator ranges
-     * containing the interval boundaries and the interval weights.
-     * If there are less than two boundaries, then this is equivalent to
-     * the default constructor and creates a single interval, [0, 1).
-     *
-     * The values of the interval boundaries must be strictly
-     * increasing, and the number of weights must be one less than
-     * the number of interval boundaries.  If there are extra
-     * weights, they are ignored.
-     *
-     * For example,
-     *
-     * @code
-     * double intervals[] = { 0.0, 1.0, 4.0 };
-     * double weights[] = { 1.0, 1.0 };
-     * piecewise_constant_distribution<> dist(
-     *     &intervals[0], &intervals[0] + 3, &weights[0]);
-     * @endcode
-     *
-     * The distribution has a 50% chance of producing a
-     * value between 0 and 1 and a 50% chance of producing
-     * a value between 1 and 4.
-     */
-    template<class IntervalIter, class WeightIter>
-    piecewise_constant_distribution(IntervalIter first_interval,
-                                    IntervalIter last_interval,
-                                    WeightIter first_weight)
-      : _intervals(first_interval, last_interval)
-    {
-        if(_intervals.size() < 2) {
-            _intervals.clear();
-            _intervals.push_back(RealType(0));
-            _intervals.push_back(RealType(1));
-        } else {
-            std::vector<WeightType> actual_weights;
-            actual_weights.reserve(_intervals.size() - 1);
-            for(std::size_t i = 0; i < _intervals.size() - 1; ++i) {
-                actual_weights.push_back(*first_weight++);
-            }
-            typedef discrete_distribution<std::size_t, WeightType> bins_type;
-            typename bins_type::param_type bins_param(actual_weights);
-            _bins.param(bins_param);
-        }
-    }
-#ifndef BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-    /**
-     * Constructs a piecewise_constant_distribution from an
-     * initializer_list containing the interval boundaries
-     * and a unary function specifying the weights.  Each
-     * weight is determined by calling the function at the
-     * midpoint of the corresponding interval.
-     *
-     * If the initializer_list contains less than two elements,
-     * this is equivalent to the default constructor and the
-     * distribution will produce values uniformly distributed
-     * in the range [0, 1).
-     */
-    template<class T, class F>
-    piecewise_constant_distribution(std::initializer_list<T> il, F f)
-      : _intervals(il.begin(), il.end())
-    {
-        if(_intervals.size() < 2) {
-            _intervals.clear();
-            _intervals.push_back(RealType(0));
-            _intervals.push_back(RealType(1));
-        } else {
-            std::vector<WeightType> actual_weights;
-            actual_weights.reserve(_intervals.size() - 1);
-            for(std::size_t i = 0; i < _intervals.size() - 1; ++i) {
-                RealType midpoint = (_intervals[i] + _intervals[i + 1]) / 2;
-                actual_weights.push_back(f(midpoint));
-            }
-            typedef discrete_distribution<std::size_t, WeightType> bins_type;
-            typename bins_type::param_type bins_param(actual_weights);
-            _bins.param(bins_param);
-        }
-    }
-#endif
-    /**
-     * Constructs a piecewise_constant_distribution from Boost.Range
-     * ranges holding the interval boundaries and the weights.  If
-     * there are less than two interval boundaries, this is equivalent
-     * to the default constructor and the distribution will produce
-     * values uniformly distributed in the range [0, 1).  The
-     * number of weights must be one less than the number of
-     * interval boundaries.
-     */
-    template<class IntervalsRange, class WeightsRange>
-    piecewise_constant_distribution(const IntervalsRange& intervals_arg,
-                                    const WeightsRange& weights_arg)
-      : _bins(weights_arg),
-        _intervals(boost::begin(intervals_arg), boost::end(intervals_arg))
-    {
-        if(_intervals.size() < 2) {
-            _intervals.clear();
-            _intervals.push_back(RealType(0));
-            _intervals.push_back(RealType(1));
-        }
-    }
-    /**
-     * Constructs a piecewise_constant_distribution that approximates a
-     * function.  The range of the distribution is [xmin, xmax).  This
-     * range is divided into nw equally sized intervals and the weights
-     * are found by calling the unary function f on the midpoints of the
-     * intervals.
-     */
-    template<class F>
-    piecewise_constant_distribution(std::size_t nw,
-                                    RealType xmin,
-                                    RealType xmax,
-                                    F f)
-      : _bins(nw, xmin, xmax, f)
-    {
-        if(nw == 0) { nw = 1; }
-        RealType delta = (xmax - xmin) / nw;
-        _intervals.reserve(nw + 1);
-        for(std::size_t i = 0; i < nw; ++i) {
-            _intervals.push_back(xmin + i * delta);
-        }
-        _intervals.push_back(xmax);
-    }
-    /**
-     * Constructs a piecewise_constant_distribution from its parameters.
-     */
-    explicit piecewise_constant_distribution(const param_type& parm)
-      : _bins(parm._weights),
-        _intervals(parm._intervals)
-    {
-    }
-
-    /**
-     * Returns a value distributed according to the parameters of the
-     * piecewist_constant_distribution.
-     */
-    template<class URNG>
-    RealType operator()(URNG& urng) const
-    {
-        std::size_t i = _bins(urng);
-        return uniform_real<RealType>(_intervals[i], _intervals[i+1])(urng);
-    }
-    
-    /**
-     * Returns a value distributed according to the parameters
-     * specified by param.
-     */
-    template<class URNG>
-    RealType operator()(URNG& urng, const param_type& parm) const
-    {
-        return piecewise_constant_distribution(parm)(urng);
-    }
-    
-    /** Returns the smallest value that the distribution can produce. */
-    result_type min BOOST_PREVENT_MACRO_SUBSTITUTION () const
-    { return _intervals.front(); }
-    /** Returns the largest value that the distribution can produce. */
-    result_type max BOOST_PREVENT_MACRO_SUBSTITUTION () const
-    { return _intervals.back(); }
-
-    /**
-     * Returns a vector containing the probability density
-     * over each interval.
-     */
-    std::vector<RealType> densities() const
-    {
-        std::vector<RealType> result(_bins.probabilities());
-        for(std::size_t i = 0; i < result.size(); ++i) {
-            result[i] /= (_intervals[i+1] - _intervals[i]);
-        }
-        return(result);
-    }
-    /**  Returns a vector containing the interval boundaries. */
-    std::vector<RealType> intervals() const { return _intervals; }
-
-    /** Returns the parameters of the distribution. */
-    param_type param() const
-    {
-        return param_type(_intervals, _bins.probabilities());
-    }
-    /** Sets the parameters of the distribution. */
-    void param(const param_type& parm)
-    {
-        std::vector<RealType> new_intervals(parm._intervals);
-        typedef discrete_distribution<std::size_t, RealType> bins_type;
-        typename bins_type::param_type bins_param(parm._weights);
-        _bins.param(bins_param);
-        _intervals.swap(new_intervals);
-    }
-    
-    /**
-     * Effects: Subsequent uses of the distribution do not depend
-     * on values produced by any engine prior to invoking reset.
-     */
-    void reset() { _bins.reset(); }
-
-    /** Writes a distribution to a @c std::ostream. */
-    BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(
-        os, piecewise_constant_distribution, pcd)
-    {
-        os << pcd.param();
-        return os;
-    }
-
-    /** Reads a distribution from a @c std::istream */
-    BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(
-        is, piecewise_constant_distribution, pcd)
-    {
-        param_type parm;
-        if(is >> parm) {
-            pcd.param(parm);
-        }
-        return is;
-    }
-
-    /**
-     * Returns true if the two distributions will return the
-     * same sequence of values, when passed equal generators.
-     */
-    BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(
-        piecewise_constant_distribution, lhs,  rhs)
-    {
-        return lhs._bins == rhs._bins && lhs._intervals == rhs._intervals;
-    }
-    /**
-     * Returns true if the two distributions may return different
-     * sequences of values, when passed equal generators.
-     */
-    BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(piecewise_constant_distribution)
-
-private:
-    discrete_distribution<std::size_t, WeightType> _bins;
-    std::vector<RealType> _intervals;
-};
-
-}
-}
-
-#endif
diff --git a/boost/random/piecewise_linear_distribution.hpp b/boost/random/piecewise_linear_distribution.hpp
deleted file mode 100644
index d87d505..0000000
--- a/boost/random/piecewise_linear_distribution.hpp
+++ /dev/null
@@ -1,530 +0,0 @@
-/* boost random/piecewise_linear_distribution.hpp header file
- *
- * Copyright Steven Watanabe 2011
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: piecewise_linear_distribution.hpp 85813 2013-09-21 20:17:00Z jewillco $
- */
-
-#ifndef BOOST_RANDOM_PIECEWISE_LINEAR_DISTRIBUTION_HPP_INCLUDED
-#define BOOST_RANDOM_PIECEWISE_LINEAR_DISTRIBUTION_HPP_INCLUDED
-
-#include <vector>
-#include <algorithm>
-#include <cmath>
-#include <cstdlib>
-#include <boost/assert.hpp>
-#include <boost/random/uniform_real.hpp>
-#include <boost/random/discrete_distribution.hpp>
-#include <boost/random/detail/config.hpp>
-#include <boost/random/detail/operators.hpp>
-#include <boost/random/detail/vector_io.hpp>
-
-#ifndef BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#include <initializer_list>
-#endif
-
-#include <boost/range/begin.hpp>
-#include <boost/range/end.hpp>
-
-namespace boost {
-namespace random {
-
-/**
- * The class @c piecewise_linear_distribution models a \random_distribution.
- */
-template<class RealType = double>
-class piecewise_linear_distribution {
-public:
-    typedef std::size_t input_type;
-    typedef RealType result_type;
-
-    class param_type {
-    public:
-
-        typedef piecewise_linear_distribution distribution_type;
-
-        /**
-         * Constructs a @c param_type object, representing a distribution
-         * that produces values uniformly distributed in the range [0, 1).
-         */
-        param_type()
-        {
-            _weights.push_back(RealType(1));
-            _weights.push_back(RealType(1));
-            _intervals.push_back(RealType(0));
-            _intervals.push_back(RealType(1));
-        }
-        /**
-         * Constructs a @c param_type object from two iterator ranges
-         * containing the interval boundaries and weights at the boundaries.
-         * If there are fewer than two boundaries, then this is equivalent to
-         * the default constructor and the distribution will produce values
-         * uniformly distributed in the range [0, 1).
-         *
-         * The values of the interval boundaries must be strictly
-         * increasing, and the number of weights must be the same as
-         * the number of interval boundaries.  If there are extra
-         * weights, they are ignored.
-         */
-        template<class IntervalIter, class WeightIter>
-        param_type(IntervalIter intervals_first, IntervalIter intervals_last,
-                   WeightIter weight_first)
-          : _intervals(intervals_first, intervals_last)
-        {
-            if(_intervals.size() < 2) {
-                _intervals.clear();
-                _weights.push_back(RealType(1));
-                _weights.push_back(RealType(1));
-                _intervals.push_back(RealType(0));
-                _intervals.push_back(RealType(1));
-            } else {
-                _weights.reserve(_intervals.size());
-                for(std::size_t i = 0; i < _intervals.size(); ++i) {
-                    _weights.push_back(*weight_first++);
-                }
-            }
-        }
-#ifndef BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-        /**
-         * Constructs a @c param_type object from an initializer_list
-         * containing the interval boundaries and a unary function
-         * specifying the weights at the boundaries.  Each weight is
-         * determined by calling the function at the corresponding point.
-         *
-         * If the initializer_list contains fewer than two elements,
-         * this is equivalent to the default constructor and the
-         * distribution will produce values uniformly distributed
-         * in the range [0, 1).
-         */
-        template<class T, class F>
-        param_type(const std::initializer_list<T>& il, F f)
-          : _intervals(il.begin(), il.end())
-        {
-            if(_intervals.size() < 2) {
-                _intervals.clear();
-                _weights.push_back(RealType(1));
-                _weights.push_back(RealType(1));
-                _intervals.push_back(RealType(0));
-                _intervals.push_back(RealType(1));
-            } else {
-                _weights.reserve(_intervals.size());
-                for(typename std::vector<RealType>::const_iterator
-                    iter = _intervals.begin(), end = _intervals.end();
-                    iter != end; ++iter)
-                {
-                    _weights.push_back(f(*iter));
-                }
-            }
-        }
-#endif
-        /**
-         * Constructs a @c param_type object from Boost.Range ranges holding
-         * the interval boundaries and the weights at the boundaries.  If
-         * there are fewer than two interval boundaries, this is equivalent
-         * to the default constructor and the distribution will produce
-         * values uniformly distributed in the range [0, 1).  The
-         * number of weights must be equal to the number of
-         * interval boundaries.
-         */
-        template<class IntervalRange, class WeightRange>
-        param_type(const IntervalRange& intervals_arg,
-                   const WeightRange& weights_arg)
-          : _intervals(boost::begin(intervals_arg), boost::end(intervals_arg)),
-            _weights(boost::begin(weights_arg), boost::end(weights_arg))
-        {
-            if(_intervals.size() < 2) {
-                _weights.clear();
-                _weights.push_back(RealType(1));
-                _weights.push_back(RealType(1));
-                _intervals.clear();
-                _intervals.push_back(RealType(0));
-                _intervals.push_back(RealType(1));
-            }
-        }
-
-        /**
-         * Constructs the parameters for a distribution that approximates a
-         * function.  The range of the distribution is [xmin, xmax).  This
-         * range is divided into nw equally sized intervals and the weights
-         * are found by calling the unary function f on the boundaries of the
-         * intervals.
-         */
-        template<class F>
-        param_type(std::size_t nw, RealType xmin, RealType xmax, F f)
-        {
-            std::size_t n = (nw == 0) ? 1 : nw;
-            double delta = (xmax - xmin) / n;
-            BOOST_ASSERT(delta > 0);
-            for(std::size_t k = 0; k < n; ++k) {
-                _weights.push_back(f(xmin + k*delta));
-                _intervals.push_back(xmin + k*delta);
-            }
-            _weights.push_back(f(xmax));
-            _intervals.push_back(xmax);
-        }
-
-        /**  Returns a vector containing the interval boundaries. */
-        std::vector<RealType> intervals() const { return _intervals; }
-
-        /**
-         * Returns a vector containing the probability densities
-         * at all the interval boundaries.
-         */
-        std::vector<RealType> densities() const
-        {
-            RealType sum = static_cast<RealType>(0);
-            for(std::size_t i = 0; i < _intervals.size() - 1; ++i) {
-                RealType width = _intervals[i + 1] - _intervals[i];
-                sum += (_weights[i] + _weights[i + 1]) * width / 2;
-            }
-            std::vector<RealType> result;
-            result.reserve(_weights.size());
-            for(typename std::vector<RealType>::const_iterator
-                iter = _weights.begin(), end = _weights.end();
-                iter != end; ++iter)
-            {
-                result.push_back(*iter / sum);
-            }
-            return result;
-        }
-
-        /** Writes the parameters to a @c std::ostream. */
-        BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, param_type, parm)
-        {
-            detail::print_vector(os, parm._intervals);
-            detail::print_vector(os, parm._weights);
-            return os;
-        }
-        
-        /** Reads the parameters from a @c std::istream. */
-        BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, param_type, parm)
-        {
-            std::vector<RealType> new_intervals;
-            std::vector<RealType> new_weights;
-            detail::read_vector(is, new_intervals);
-            detail::read_vector(is, new_weights);
-            if(is) {
-                parm._intervals.swap(new_intervals);
-                parm._weights.swap(new_weights);
-            }
-            return is;
-        }
-
-        /** Returns true if the two sets of parameters are the same. */
-        BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(param_type, lhs, rhs)
-        {
-            return lhs._intervals == rhs._intervals
-                && lhs._weights == rhs._weights;
-        }
-        /** Returns true if the two sets of parameters are different. */
-        BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(param_type)
-
-    private:
-        friend class piecewise_linear_distribution;
-
-        std::vector<RealType> _intervals;
-        std::vector<RealType> _weights;
-    };
-
-    /**
-     * Creates a new @c piecewise_linear_distribution that
-     * produces values uniformly distributed in the range [0, 1).
-     */
-    piecewise_linear_distribution()
-    {
-        default_init();
-    }
-    /**
-     * Constructs a piecewise_linear_distribution from two iterator ranges
-     * containing the interval boundaries and the weights at the boundaries.
-     * If there are fewer than two boundaries, then this is equivalent to
-     * the default constructor and creates a distribution that
-     * produces values uniformly distributed in the range [0, 1).
-     *
-     * The values of the interval boundaries must be strictly
-     * increasing, and the number of weights must be equal to
-     * the number of interval boundaries.  If there are extra
-     * weights, they are ignored.
-     *
-     * For example,
-     *
-     * @code
-     * double intervals[] = { 0.0, 1.0, 2.0 };
-     * double weights[] = { 0.0, 1.0, 0.0 };
-     * piecewise_constant_distribution<> dist(
-     *     &intervals[0], &intervals[0] + 3, &weights[0]);
-     * @endcode
-     *
-     * produces a triangle distribution.
-     */
-    template<class IntervalIter, class WeightIter>
-    piecewise_linear_distribution(IntervalIter first_interval,
-                                  IntervalIter last_interval,
-                                  WeightIter first_weight)
-      : _intervals(first_interval, last_interval)
-    {
-        if(_intervals.size() < 2) {
-            default_init();
-        } else {
-            _weights.reserve(_intervals.size());
-            for(std::size_t i = 0; i < _intervals.size(); ++i) {
-                _weights.push_back(*first_weight++);
-            }
-            init();
-        }
-    }
-#ifndef BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-    /**
-     * Constructs a piecewise_linear_distribution from an
-     * initializer_list containing the interval boundaries
-     * and a unary function specifying the weights.  Each
-     * weight is determined by calling the function at the
-     * corresponding interval boundary.
-     *
-     * If the initializer_list contains fewer than two elements,
-     * this is equivalent to the default constructor and the
-     * distribution will produce values uniformly distributed
-     * in the range [0, 1).
-     */
-    template<class T, class F>
-    piecewise_linear_distribution(std::initializer_list<T> il, F f)
-      : _intervals(il.begin(), il.end())
-    {
-        if(_intervals.size() < 2) {
-            default_init();
-        } else {
-            _weights.reserve(_intervals.size());
-            for(typename std::vector<RealType>::const_iterator
-                iter = _intervals.begin(), end = _intervals.end();
-                iter != end; ++iter)
-            {
-                _weights.push_back(f(*iter));
-            }
-            init();
-        }
-    }
-#endif
-    /**
-     * Constructs a piecewise_linear_distribution from Boost.Range
-     * ranges holding the interval boundaries and the weights.  If
-     * there are fewer than two interval boundaries, this is equivalent
-     * to the default constructor and the distribution will produce
-     * values uniformly distributed in the range [0, 1).  The
-     * number of weights must be equal to the number of
-     * interval boundaries.
-     */
-    template<class IntervalsRange, class WeightsRange>
-    piecewise_linear_distribution(const IntervalsRange& intervals_arg,
-                                  const WeightsRange& weights_arg)
-      : _intervals(boost::begin(intervals_arg), boost::end(intervals_arg)),
-        _weights(boost::begin(weights_arg), boost::end(weights_arg))
-    {
-        if(_intervals.size() < 2) {
-            default_init();
-        } else {
-            init();
-        }
-    }
-    /**
-     * Constructs a piecewise_linear_distribution that approximates a
-     * function.  The range of the distribution is [xmin, xmax).  This
-     * range is divided into nw equally sized intervals and the weights
-     * are found by calling the unary function f on the interval boundaries.
-     */
-    template<class F>
-    piecewise_linear_distribution(std::size_t nw,
-                                  RealType xmin,
-                                  RealType xmax,
-                                  F f)
-    {
-        if(nw == 0) { nw = 1; }
-        RealType delta = (xmax - xmin) / nw;
-        _intervals.reserve(nw + 1);
-        for(std::size_t i = 0; i < nw; ++i) {
-            RealType x = xmin + i * delta;
-            _intervals.push_back(x);
-            _weights.push_back(f(x));
-        }
-        _intervals.push_back(xmax);
-        _weights.push_back(f(xmax));
-        init();
-    }
-    /**
-     * Constructs a piecewise_linear_distribution from its parameters.
-     */
-    explicit piecewise_linear_distribution(const param_type& parm)
-      : _intervals(parm._intervals),
-        _weights(parm._weights)
-    {
-        init();
-    }
-
-    /**
-     * Returns a value distributed according to the parameters of the
-     * piecewise_linear_distribution.
-     */
-    template<class URNG>
-    RealType operator()(URNG& urng) const
-    {
-        std::size_t i = _bins(urng);
-        bool is_in_rectangle = (i % 2 == 0);
-        i = i / 2;
-        uniform_real<RealType> dist(_intervals[i], _intervals[i+1]);
-        if(is_in_rectangle) {
-            return dist(urng);
-        } else if(_weights[i] < _weights[i+1]) {
-            return (std::max)(dist(urng), dist(urng));
-        } else {
-            return (std::min)(dist(urng), dist(urng));
-        }
-    }
-    
-    /**
-     * Returns a value distributed according to the parameters
-     * specified by param.
-     */
-    template<class URNG>
-    RealType operator()(URNG& urng, const param_type& parm) const
-    {
-        return piecewise_linear_distribution(parm)(urng);
-    }
-    
-    /** Returns the smallest value that the distribution can produce. */
-    result_type min BOOST_PREVENT_MACRO_SUBSTITUTION () const
-    { return _intervals.front(); }
-    /** Returns the largest value that the distribution can produce. */
-    result_type max BOOST_PREVENT_MACRO_SUBSTITUTION () const
-    { return _intervals.back(); }
-
-    /**
-     * Returns a vector containing the probability densities
-     * at the interval boundaries.
-     */
-    std::vector<RealType> densities() const
-    {
-        RealType sum = static_cast<RealType>(0);
-        for(std::size_t i = 0; i < _intervals.size() - 1; ++i) {
-            RealType width = _intervals[i + 1] - _intervals[i];
-            sum += (_weights[i] + _weights[i + 1]) * width / 2;
-        }
-        std::vector<RealType> result;
-        result.reserve(_weights.size());
-        for(typename std::vector<RealType>::const_iterator
-            iter = _weights.begin(), end = _weights.end();
-            iter != end; ++iter)
-        {
-            result.push_back(*iter / sum);
-        }
-        return result;
-    }
-    /**  Returns a vector containing the interval boundaries. */
-    std::vector<RealType> intervals() const { return _intervals; }
-
-    /** Returns the parameters of the distribution. */
-    param_type param() const
-    {
-        return param_type(_intervals, _weights);
-    }
-    /** Sets the parameters of the distribution. */
-    void param(const param_type& parm)
-    {
-        std::vector<RealType> new_intervals(parm._intervals);
-        std::vector<RealType> new_weights(parm._weights);
-        init(new_intervals, new_weights);
-        _intervals.swap(new_intervals);
-        _weights.swap(new_weights);
-    }
-    
-    /**
-     * Effects: Subsequent uses of the distribution do not depend
-     * on values produced by any engine prior to invoking reset.
-     */
-    void reset() { _bins.reset(); }
-
-    /** Writes a distribution to a @c std::ostream. */
-    BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(
-        os, piecewise_linear_distribution, pld)
-    {
-        os << pld.param();
-        return os;
-    }
-
-    /** Reads a distribution from a @c std::istream */
-    BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(
-        is, piecewise_linear_distribution, pld)
-    {
-        param_type parm;
-        if(is >> parm) {
-            pld.param(parm);
-        }
-        return is;
-    }
-
-    /**
-     * Returns true if the two distributions will return the
-     * same sequence of values, when passed equal generators.
-     */
-    BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(
-        piecewise_linear_distribution, lhs,  rhs)
-    {
-        return lhs._intervals == rhs._intervals && lhs._weights == rhs._weights;
-    }
-    /**
-     * Returns true if the two distributions may return different
-     * sequences of values, when passed equal generators.
-     */
-    BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(piecewise_linear_distribution)
-
-private:
-
-    /// @cond \show_private
-
-    void init(const std::vector<RealType>& intervals_arg,
-              const std::vector<RealType>& weights_arg)
-    {
-        std::vector<RealType> bin_weights;
-        bin_weights.reserve((intervals_arg.size() - 1) * 2);
-        for(std::size_t i = 0; i < intervals_arg.size() - 1; ++i) {
-            RealType width = intervals_arg[i + 1] - intervals_arg[i];
-            RealType w1 = weights_arg[i];
-            RealType w2 = weights_arg[i + 1];
-            bin_weights.push_back((std::min)(w1, w2) * width);
-            bin_weights.push_back(std::abs(w1 - w2) * width / 2);
-        }
-        typedef discrete_distribution<std::size_t, RealType> bins_type;
-        typename bins_type::param_type bins_param(bin_weights);
-        _bins.param(bins_param);
-    }
-
-    void init()
-    {
-        init(_intervals, _weights);
-    }
-
-    void default_init()
-    {
-        _intervals.clear();
-        _intervals.push_back(RealType(0));
-        _intervals.push_back(RealType(1));
-        _weights.clear();
-        _weights.push_back(RealType(1));
-        _weights.push_back(RealType(1));
-        init();
-    }
-
-    discrete_distribution<std::size_t, RealType> _bins;
-    std::vector<RealType> _intervals;
-    std::vector<RealType> _weights;
-
-    /// @endcond
-};
-
-}
-}
-
-#endif
diff --git a/boost/random/poisson_distribution.hpp b/boost/random/poisson_distribution.hpp
deleted file mode 100644
index c1eac37..0000000
--- a/boost/random/poisson_distribution.hpp
+++ /dev/null
@@ -1,360 +0,0 @@
-/* boost random/poisson_distribution.hpp header file
- *
- * Copyright Jens Maurer 2002
- * Copyright Steven Watanabe 2010
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: poisson_distribution.hpp 71018 2011-04-05 21:27:52Z steven_watanabe $
- *
- */
-
-#ifndef BOOST_RANDOM_POISSON_DISTRIBUTION_HPP
-#define BOOST_RANDOM_POISSON_DISTRIBUTION_HPP
-
-#include <boost/config/no_tr1/cmath.hpp>
-#include <cstdlib>
-#include <iosfwd>
-#include <boost/assert.hpp>
-#include <boost/limits.hpp>
-#include <boost/random/uniform_01.hpp>
-#include <boost/random/detail/config.hpp>
-
-#include <boost/random/detail/disable_warnings.hpp>
-
-namespace boost {
-namespace random {
-
-namespace detail {
-
-template<class RealType>
-struct poisson_table {
-    static RealType value[10];
-};
-
-template<class RealType>
-RealType poisson_table<RealType>::value[10] = {
-    0.0,
-    0.0,
-    0.69314718055994529,
-    1.7917594692280550,
-    3.1780538303479458,
-    4.7874917427820458,
-    6.5792512120101012,
-    8.5251613610654147,
-    10.604602902745251,
-    12.801827480081469
-};
-
-}
-
-/**
- * An instantiation of the class template @c poisson_distribution is a
- * model of \random_distribution.  The poisson distribution has
- * \f$p(i) = \frac{e^{-\lambda}\lambda^i}{i!}\f$
- *
- * This implementation is based on the PTRD algorithm described
- * 
- *  @blockquote
- *  "The transformed rejection method for generating Poisson random variables",
- *  Wolfgang Hormann, Insurance: Mathematics and Economics
- *  Volume 12, Issue 1, February 1993, Pages 39-45
- *  @endblockquote
- */
-template<class IntType = int, class RealType = double>
-class poisson_distribution {
-public:
-    typedef IntType result_type;
-    typedef RealType input_type;
-
-    class param_type {
-    public:
-        typedef poisson_distribution distribution_type;
-        /**
-         * Construct a param_type object with the parameter "mean"
-         *
-         * Requires: mean > 0
-         */
-        explicit param_type(RealType mean_arg = RealType(1))
-          : _mean(mean_arg)
-        {
-            BOOST_ASSERT(_mean > 0);
-        }
-        /* Returns the "mean" parameter of the distribution. */
-        RealType mean() const { return _mean; }
-#ifndef BOOST_RANDOM_NO_STREAM_OPERATORS
-        /** Writes the parameters of the distribution to a @c std::ostream. */
-        template<class CharT, class Traits>
-        friend std::basic_ostream<CharT, Traits>&
-        operator<<(std::basic_ostream<CharT, Traits>& os,
-                   const param_type& parm)
-        {
-            os << parm._mean;
-            return os;
-        }
-
-        /** Reads the parameters of the distribution from a @c std::istream. */
-        template<class CharT, class Traits>
-        friend std::basic_istream<CharT, Traits>&
-        operator>>(std::basic_istream<CharT, Traits>& is, param_type& parm)
-        {
-            is >> parm._mean;
-            return is;
-        }
-#endif
-        /** Returns true if the parameters have the same values. */
-        friend bool operator==(const param_type& lhs, const param_type& rhs)
-        {
-            return lhs._mean == rhs._mean;
-        }
-        /** Returns true if the parameters have different values. */
-        friend bool operator!=(const param_type& lhs, const param_type& rhs)
-        {
-            return !(lhs == rhs);
-        }
-    private:
-        RealType _mean;
-    };
-    
-    /**
-     * Constructs a @c poisson_distribution with the parameter @c mean.
-     *
-     * Requires: mean > 0
-     */
-    explicit poisson_distribution(RealType mean_arg = RealType(1))
-      : _mean(mean_arg)
-    {
-        BOOST_ASSERT(_mean > 0);
-        init();
-    }
-    
-    /**
-     * Construct an @c poisson_distribution object from the
-     * parameters.
-     */
-    explicit poisson_distribution(const param_type& parm)
-      : _mean(parm.mean())
-    {
-        init();
-    }
-    
-    /**
-     * Returns a random variate distributed according to the
-     * poisson distribution.
-     */
-    template<class URNG>
-    IntType operator()(URNG& urng) const
-    {
-        if(use_inversion()) {
-            return invert(urng);
-        } else {
-            return generate(urng);
-        }
-    }
-
-    /**
-     * Returns a random variate distributed according to the
-     * poisson distribution with parameters specified by param.
-     */
-    template<class URNG>
-    IntType operator()(URNG& urng, const param_type& parm) const
-    {
-        return poisson_distribution(parm)(urng);
-    }
-
-    /** Returns the "mean" parameter of the distribution. */
-    RealType mean() const { return _mean; }
-    
-    /** Returns the smallest value that the distribution can produce. */
-    IntType min BOOST_PREVENT_MACRO_SUBSTITUTION() const { return 0; }
-    /** Returns the largest value that the distribution can produce. */
-    IntType max BOOST_PREVENT_MACRO_SUBSTITUTION() const
-    { return (std::numeric_limits<IntType>::max)(); }
-
-    /** Returns the parameters of the distribution. */
-    param_type param() const { return param_type(_mean); }
-    /** Sets parameters of the distribution. */
-    void param(const param_type& parm)
-    {
-        _mean = parm.mean();
-        init();
-    }
-
-    /**
-     * Effects: Subsequent uses of the distribution do not depend
-     * on values produced by any engine prior to invoking reset.
-     */
-    void reset() { }
-
-#ifndef BOOST_RANDOM_NO_STREAM_OPERATORS
-    /** Writes the parameters of the distribution to a @c std::ostream. */
-    template<class CharT, class Traits>
-    friend std::basic_ostream<CharT,Traits>&
-    operator<<(std::basic_ostream<CharT,Traits>& os,
-               const poisson_distribution& pd)
-    {
-        os << pd.param();
-        return os;
-    }
-    
-    /** Reads the parameters of the distribution from a @c std::istream. */
-    template<class CharT, class Traits>
-    friend std::basic_istream<CharT,Traits>&
-    operator>>(std::basic_istream<CharT,Traits>& is, poisson_distribution& pd)
-    {
-        pd.read(is);
-        return is;
-    }
-#endif
-    
-    /** Returns true if the two distributions will produce the same
-        sequence of values, given equal generators. */
-    friend bool operator==(const poisson_distribution& lhs,
-                           const poisson_distribution& rhs)
-    {
-        return lhs._mean == rhs._mean;
-    }
-    /** Returns true if the two distributions could produce different
-        sequences of values, given equal generators. */
-    friend bool operator!=(const poisson_distribution& lhs,
-                           const poisson_distribution& rhs)
-    {
-        return !(lhs == rhs);
-    }
-
-private:
-
-    /// @cond show_private
-
-    template<class CharT, class Traits>
-    void read(std::basic_istream<CharT, Traits>& is) {
-        param_type parm;
-        if(is >> parm) {
-            param(parm);
-        }
-    }
-
-    bool use_inversion() const
-    {
-        return _mean < 10;
-    }
-
-    static RealType log_factorial(IntType k)
-    {
-        BOOST_ASSERT(k >= 0);
-        BOOST_ASSERT(k < 10);
-        return detail::poisson_table<RealType>::value[k];
-    }
-
-    void init()
-    {
-        using std::sqrt;
-        using std::exp;
-
-        if(use_inversion()) {
-            _exp_mean = exp(-_mean);
-        } else {
-            _ptrd.smu = sqrt(_mean);
-            _ptrd.b = 0.931 + 2.53 * _ptrd.smu;
-            _ptrd.a = -0.059 + 0.02483 * _ptrd.b;
-            _ptrd.inv_alpha = 1.1239 + 1.1328 / (_ptrd.b - 3.4);
-            _ptrd.v_r = 0.9277 - 3.6224 / (_ptrd.b - 2);
-        }
-    }
-    
-    template<class URNG>
-    IntType generate(URNG& urng) const
-    {
-        using std::floor;
-        using std::abs;
-        using std::log;
-
-        while(true) {
-            RealType u;
-            RealType v = uniform_01<RealType>()(urng);
-            if(v <= 0.86 * _ptrd.v_r) {
-                u = v / _ptrd.v_r - 0.43;
-                return static_cast<IntType>(floor(
-                    (2*_ptrd.a/(0.5-abs(u)) + _ptrd.b)*u + _mean + 0.445));
-            }
-
-            if(v >= _ptrd.v_r) {
-                u = uniform_01<RealType>()(urng) - 0.5;
-            } else {
-                u = v/_ptrd.v_r - 0.93;
-                u = ((u < 0)? -0.5 : 0.5) - u;
-                v = uniform_01<RealType>()(urng) * _ptrd.v_r;
-            }
-
-            RealType us = 0.5 - abs(u);
-            if(us < 0.013 && v > us) {
-                continue;
-            }
-
-            RealType k = floor((2*_ptrd.a/us + _ptrd.b)*u+_mean+0.445);
-            v = v*_ptrd.inv_alpha/(_ptrd.a/(us*us) + _ptrd.b);
-
-            RealType log_sqrt_2pi = 0.91893853320467267;
-
-            if(k >= 10) {
-                if(log(v*_ptrd.smu) <= (k + 0.5)*log(_mean/k)
-                               - _mean
-                               - log_sqrt_2pi
-                               + k
-                               - (1/12. - (1/360. - 1/(1260.*k*k))/(k*k))/k) {
-                    return static_cast<IntType>(k);
-                }
-            } else if(k >= 0) {
-                if(log(v) <= k*log(_mean)
-                           - _mean
-                           - log_factorial(static_cast<IntType>(k))) {
-                    return static_cast<IntType>(k);
-                }
-            }
-        }
-    }
-
-    template<class URNG>
-    IntType invert(URNG& urng) const
-    {
-        RealType p = _exp_mean;
-        IntType x = 0;
-        RealType u = uniform_01<RealType>()(urng);
-        while(u > p) {
-            u = u - p;
-            ++x;
-            p = _mean * p / x;
-        }
-        return x;
-    }
-
-    RealType _mean;
-
-    union {
-        // for ptrd
-        struct {
-            RealType v_r;
-            RealType a;
-            RealType b;
-            RealType smu;
-            RealType inv_alpha;
-        } _ptrd;
-        // for inversion
-        RealType _exp_mean;
-    };
-
-    /// @endcond
-};
-
-} // namespace random
-
-using random::poisson_distribution;
-
-} // namespace boost
-
-#include <boost/random/detail/enable_warnings.hpp>
-
-#endif // BOOST_RANDOM_POISSON_DISTRIBUTION_HPP
diff --git a/boost/random/random_number_generator.hpp b/boost/random/random_number_generator.hpp
deleted file mode 100644
index f8eaf01..0000000
--- a/boost/random/random_number_generator.hpp
+++ /dev/null
@@ -1,73 +0,0 @@
-/* boost random/random_number_generator.hpp header file
- *
- * Copyright Jens Maurer 2000-2001
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: random_number_generator.hpp 71018 2011-04-05 21:27:52Z steven_watanabe $
- *
- * Revision history
- *  2001-02-18  moved to individual header files
- */
-
-#ifndef BOOST_RANDOM_RANDOM_NUMBER_GENERATOR_HPP
-#define BOOST_RANDOM_RANDOM_NUMBER_GENERATOR_HPP
-
-#include <boost/assert.hpp>
-#include <boost/random/uniform_int_distribution.hpp>
-
-#include <boost/random/detail/disable_warnings.hpp>
-
-namespace boost {
-namespace random {
-
-/**
- * Instantiations of class template random_number_generator model a
- * RandomNumberGenerator (std:25.2.11 [lib.alg.random.shuffle]). On
- * each invocation, it returns a uniformly distributed integer in
- * the range [0..n).
- *
- * The template parameter IntType shall denote some integer-like value type.
- */
-template<class URNG, class IntType = long>
-class random_number_generator
-{
-public:
-    typedef URNG base_type;
-    typedef IntType argument_type;
-    typedef IntType result_type;
-    /**
-     * Constructs a random_number_generator functor with the given
-     * \uniform_random_number_generator as the underlying source of
-     * random numbers.
-     */
-    random_number_generator(base_type& rng) : _rng(rng) {}
-
-    // compiler-generated copy ctor is fine
-    // assignment is disallowed because there is a reference member
-
-    /**
-     * Returns a value in the range [0, n)
-     */
-    result_type operator()(argument_type n)
-    {
-        BOOST_ASSERT(n > 0);
-        return uniform_int_distribution<IntType>(0, n-1)(_rng);
-    }
-
-private:
-    base_type& _rng;
-};
-
-} // namespace random
-
-using random::random_number_generator;
-
-} // namespace boost
-
-#include <boost/random/detail/enable_warnings.hpp>
-
-#endif // BOOST_RANDOM_RANDOM_NUMBER_GENERATOR_HPP
diff --git a/boost/random/ranlux.hpp b/boost/random/ranlux.hpp
deleted file mode 100644
index 8847666..0000000
--- a/boost/random/ranlux.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-/* boost random/ranlux.hpp header file
- *
- * Copyright Jens Maurer 2002
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: ranlux.hpp 71018 2011-04-05 21:27:52Z steven_watanabe $
- *
- * Revision history
- *  2001-02-18  created
- */
-
-#ifndef BOOST_RANDOM_RANLUX_HPP
-#define BOOST_RANDOM_RANLUX_HPP
-
-#include <boost/config.hpp>
-#include <boost/random/subtract_with_carry.hpp>
-#include <boost/random/discard_block.hpp>
-
-namespace boost {
-
-namespace random {
-
-namespace detail {
-/**
- * The ranlux family of generators are described in
- *
- *  @blockquote
- *  "A portable high-quality random number generator for lattice field theory
- *  calculations", M. Luescher, Computer Physics Communications, 79 (1994)
- *  pp 100-110. 
- *  @endblockquote
- *
- * The levels are given in
- * 
- *  @blockquote
- *  "RANLUX: A Fortran implementation ofthe high-quality
- *  pseudorandom number generator of Luescher", F. James,
- *  Computer Physics Communications 79 (1994) 111-114
- *  @endblockquote
- */
-class ranlux_documentation {};
-}
-
-typedef subtract_with_carry_engine<uint32_t, 24, 10, 24> ranlux_base;
-typedef subtract_with_carry_01_engine<float, 24, 10, 24> ranlux_base_01;
-typedef subtract_with_carry_01_engine<double, 48, 10, 24> ranlux64_base_01;
-
-
-/** @copydoc boost::random::detail::ranlux_documentation */
-typedef discard_block_engine<ranlux_base, 223, 24> ranlux3;
-/** @copydoc boost::random::detail::ranlux_documentation */
-typedef discard_block_engine<ranlux_base, 389, 24> ranlux4;
-
-/** @copydoc boost::random::detail::ranlux_documentation */
-typedef discard_block_engine<ranlux_base_01, 223, 24> ranlux3_01;
-/** @copydoc boost::random::detail::ranlux_documentation */
-typedef discard_block_engine<ranlux_base_01, 389, 24> ranlux4_01;
-
-/** @copydoc boost::random::detail::ranlux_documentation */
-typedef discard_block_engine<ranlux64_base_01, 223, 24> ranlux64_3_01;
-/** @copydoc boost::random::detail::ranlux_documentation */
-typedef discard_block_engine<ranlux64_base_01, 389, 24> ranlux64_4_01;
-
-#if !defined(BOOST_NO_INT64_T) && !defined(BOOST_NO_INTEGRAL_INT64_T)
-typedef subtract_with_carry_engine<uint64_t, 48, 10, 24> ranlux64_base;
-/** @copydoc boost::random::detail::ranlux_documentation */
-typedef discard_block_engine<ranlux64_base, 223, 24> ranlux64_3;
-/** @copydoc boost::random::detail::ranlux_documentation */
-typedef discard_block_engine<ranlux64_base, 389, 24> ranlux64_4;
-#endif /* !BOOST_NO_INT64_T && !BOOST_NO_INTEGRAL_INT64_T */
-
-
-typedef subtract_with_carry_engine<uint32_t, 24, 10, 24> ranlux24_base;
-typedef subtract_with_carry_engine<uint64_t, 48, 5, 12> ranlux48_base;
-
-typedef discard_block_engine<ranlux24_base, 223, 23> ranlux24;
-#if !defined(BOOST_NO_INT64_T) && !defined(BOOST_NO_INTEGRAL_INT64_T)
-typedef discard_block_engine<ranlux48_base, 389, 11> ranlux48;
-#endif
-}
-
-using random::ranlux3;
-using random::ranlux4;
-using random::ranlux3_01;
-using random::ranlux4_01;
-using random::ranlux64_3_01;
-using random::ranlux64_4_01;
-#if !defined(BOOST_NO_INT64_T) && !defined(BOOST_NO_INTEGRAL_INT64_T)
-using random::ranlux64_3;
-using random::ranlux64_4;
-#endif
-
-} // namespace boost
-
-#endif // BOOST_RANDOM_LINEAR_CONGRUENTIAL_HPP
diff --git a/boost/random/seed_seq.hpp b/boost/random/seed_seq.hpp
deleted file mode 100644
index 8550040..0000000
--- a/boost/random/seed_seq.hpp
+++ /dev/null
@@ -1,118 +0,0 @@
-/* boost random/seed_seq.hpp header file
- *
- * Copyright Steven Watanabe 2010
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: seed_seq.hpp 85813 2013-09-21 20:17:00Z jewillco $
- *
- */
-
-#ifndef BOOST_RANDOM_SEED_SEQ_HPP
-#define BOOST_RANDOM_SEED_SEQ_HPP
-
-#include <boost/config.hpp>
-#include <boost/cstdint.hpp>
-#include <boost/range/begin.hpp>
-#include <boost/range/end.hpp>
-#include <cstddef>
-#include <vector>
-#include <algorithm>
-#include <iterator>
-
-#ifndef BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-#include <initializer_list>
-#endif
-
-namespace boost {
-namespace random {
-
-/**
- * The class @c seed_seq stores a sequence of 32-bit words
- * for seeding a \pseudo_random_number_generator.  These
- * words will be combined to fill the entire state of the
- * generator.
- */
-class seed_seq {
-public:
-    typedef boost::uint_least32_t result_type;
-
-    /** Initializes a seed_seq to hold an empty sequence. */
-    seed_seq() {}
-#ifndef BOOST_NO_CXX11_HDR_INITIALIZER_LIST
-    /** Initializes the sequence from an initializer_list. */
-    template<class T>
-    seed_seq(const std::initializer_list<T>& il) : v(il.begin(), il.end()) {}
-#endif
-    /** Initializes the sequence from an iterator range. */
-    template<class Iter>
-    seed_seq(Iter first, Iter last) : v(first, last) {}
-    /** Initializes the sequence from Boost.Range range. */
-    template<class Range>
-    explicit seed_seq(const Range& range)
-      : v(boost::begin(range), boost::end(range)) {}
-
-    /**
-     * Fills a range with 32-bit values based on the stored sequence.
-     *
-     * Requires: Iter must be a Random Access Iterator whose value type
-     * is an unsigned integral type at least 32 bits wide.
-     */
-    template<class Iter>
-    void generate(Iter first, Iter last) const
-    {
-        typedef typename std::iterator_traits<Iter>::value_type value_type;
-        std::fill(first, last, static_cast<value_type>(0x8b8b8b8bu));
-        std::size_t s = v.size();
-        std::size_t n = last - first;
-        std::size_t t =
-            (n >= 623) ? 11 :
-            (n >=  68) ?  7 :
-            (n >=  39) ?  5 :
-            (n >=   7) ?  3 :
-            (n - 1)/2;
-        std::size_t p = (n - t) / 2;
-        std::size_t q = p + t;
-        std::size_t m = (std::max)(s+1, n);
-        value_type mask = 0xffffffffu;
-        for(std::size_t k = 0; k < m; ++k) {
-            value_type r1 =
-                *(first + k%n) ^ *(first + (k+p)%n) ^ *(first + (k+n-1)%n);
-            r1 = r1 ^ (r1 >> 27);
-            r1 = (r1 * 1664525u) & mask;
-            value_type r2 = r1 +
-                ((k == 0) ? s :
-                 (k <= s) ? k % n + v[k - 1] :
-                 (k % n));
-            *(first + (k+p)%n) = (*(first + (k+p)%n) + r1) & mask;
-            *(first + (k+q)%n) = (*(first + (k+q)%n) + r2) & mask;
-            *(first + k%n) = r2;
-        }
-        for(std::size_t k = m; k < m + n; ++k) {
-            value_type r3 =
-                (*(first + k%n) + *(first + (k+p)%n) + *(first + (k+n-1)%n))
-                & mask;
-            r3 = r3 ^ (r3 >> 27);
-            r3 = (r3 * 1566083941u) & mask;
-            value_type r4 = r3 - k%m;
-            *(first + (k+p)%n) ^= r3;
-            *(first + (k+q)%n) ^= r4;
-            *(first + k%n) = r4;
-        }
-    }
-    /** Returns the size of the sequence. */
-    std::size_t size() const { return v.size(); }
-    /** Writes the stored sequence to iter. */
-    template<class Iter>
-    void param(Iter out) { std::copy(v.begin(), v.end(), out); }
-private:
-    std::vector<result_type> v;
-};
-
-}
-}
-
-#endif
diff --git a/boost/random/shuffle_order.hpp b/boost/random/shuffle_order.hpp
deleted file mode 100644
index 1c8d875..0000000
--- a/boost/random/shuffle_order.hpp
+++ /dev/null
@@ -1,269 +0,0 @@
-/* boost random/shuffle_order.hpp header file
- *
- * Copyright Jens Maurer 2000-2001
- * Copyright Steven Watanabe 2010
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: shuffle_order.hpp 71018 2011-04-05 21:27:52Z steven_watanabe $
- *
- */
-
-#ifndef BOOST_RANDOM_SHUFFLE_ORDER_HPP
-#define BOOST_RANDOM_SHUFFLE_ORDER_HPP
-
-#include <iostream>
-#include <algorithm>     // std::copy
-#include <cassert>
-#include <boost/config.hpp>
-#include <boost/limits.hpp>
-#include <boost/static_assert.hpp>
-#include <boost/cstdint.hpp>
-#include <boost/random/detail/operators.hpp>
-#include <boost/random/detail/seed.hpp>
-#include <boost/random/detail/signed_unsigned_tools.hpp>
-#include <boost/random/linear_congruential.hpp>
-
-#include <boost/random/detail/disable_warnings.hpp>
-
-namespace boost {
-namespace random {
-
-/**
- * Instatiations of class template @c shuffle_order_engine model a
- * \pseudo_random_number_generator. It mixes the output
- * of some (usually \linear_congruential_engine)
- * \uniform_random_number_generator to get better statistical properties.
- * The algorithm is described in
- *
- *  @blockquote
- *  "Improving a poor random number generator", Carter Bays
- *  and S.D. Durham, ACM Transactions on Mathematical Software,
- *  Vol 2, No. 1, March 1976, pp. 59-64.
- *  http://doi.acm.org/10.1145/355666.355670
- *  @endblockquote
- *
- * The output of the base generator is buffered in an array of
- * length k. Every output X(n) has a second role: It gives an
- * index into the array where X(n+1) will be retrieved. Used
- * array elements are replaced with fresh output from the base
- * generator.
- *
- * Template parameters are the base generator and the array
- * length k, which should be around 100.
- */
-template<class UniformRandomNumberGenerator, std::size_t k>
-class shuffle_order_engine
-{
-public:
-    typedef UniformRandomNumberGenerator base_type;
-    typedef typename base_type::result_type result_type;
-
-    BOOST_STATIC_CONSTANT(bool, has_fixed_range = false);
-    BOOST_STATIC_CONSTANT(std::size_t, buffer_size = k);
-    BOOST_STATIC_CONSTANT(std::size_t, table_size = k);
-
-    BOOST_STATIC_ASSERT(std::numeric_limits<result_type>::is_integer);
-    BOOST_STATIC_ASSERT(k > 0);
-
-    /**
-     * Constructs a @c shuffle_order_engine by invoking the
-     * default constructor of the base generator.
-     *
-     * Complexity: Exactly k+1 invocations of the base generator.
-     */
-    shuffle_order_engine() : _rng() { init(); }
-    /**
-     * Constructs a @c shuffle_output_engine by invoking the one-argument
-     * constructor of the base generator with the parameter seed.
-     *
-     * Complexity: Exactly k+1 invocations of the base generator.
-     */
-    BOOST_RANDOM_DETAIL_ARITHMETIC_CONSTRUCTOR(shuffle_order_engine,
-                                               result_type, s)
-    { _rng.seed(s); init(); }
-    BOOST_RANDOM_DETAIL_SEED_SEQ_CONSTRUCTOR(shuffle_order_engine, SeedSeq, seq)
-    { _rng.seed(seq); init(); }
-    /**
-     * Constructs a @c shuffle_output_engine by using a copy
-     * of the provided generator.
-     *
-     * Precondition: The template argument UniformRandomNumberGenerator
-     * shall denote a CopyConstructible type.
-     *
-     * Complexity: Exactly k+1 invocations of the base generator.
-     */
-    explicit shuffle_order_engine(const base_type & rng) : _rng(rng) { init(); }
-
-#ifndef BOOST_NO_RVALUE_REFERENCES
-    explicit shuffle_order_engine(base_type&& rng) : _rng(rng) { init(); }
-#endif
-
-    template<class It> shuffle_order_engine(It& first, It last)
-      : _rng(first, last) { init(); }
-    void seed() { _rng.seed(); init(); }
-    /**
-     * Invokes the one-argument seed method of the base generator
-     * with the parameter seed and re-initializes the internal buffer array.
-     *
-     * Complexity: Exactly k+1 invocations of the base generator.
-     */
-    BOOST_RANDOM_DETAIL_ARITHMETIC_SEED(shuffle_order_engine,
-        result_type, seed_arg)
-    { _rng.seed(seed_arg); init(); }
-    /**
-     * Invokes the one-argument seed method of the base generator
-     * with the parameter seq and re-initializes the internal buffer array.
-     *
-     * Complexity: Exactly k+1 invocations of the base generator.
-     */
-    BOOST_RANDOM_DETAIL_SEED_SEQ_SEED(shuffle_order_engine, SeedSeq, seq)
-    { _rng.seed(seq); init(); }
-    template<class It> void seed(It& first, It last)
-    { _rng.seed(first, last); init(); }
-
-    const base_type& base() const { return _rng; }
-
-    result_type operator()() {
-        // calculating the range every time may seem wasteful.  However, this
-        // makes the information locally available for the optimizer.
-        typedef typename make_unsigned<result_type>::type base_unsigned;
-        const base_unsigned brange =
-            detail::subtract<result_type>()((max)(), (min)());
-        const base_unsigned off =
-            detail::subtract<result_type>()(y, (min)());
-
-        base_unsigned j;
-        if(k == 1) {
-            j = 0;
-        } else if(brange < (std::numeric_limits<base_unsigned>::max)() / k) {
-            // try to do it in the native type if we know that it won't
-            // overflow
-            j = k * off / (brange + 1);
-        } else if(brange < (std::numeric_limits<uintmax_t>::max)() / k) {
-            // Otherwise try to use uint64_t
-            j = static_cast<base_unsigned>(
-                static_cast<uintmax_t>(off) * k /
-                (static_cast<uintmax_t>(brange) + 1));
-        } else {
-            boost::uintmax_t divisor =
-                static_cast<boost::uintmax_t>(brange) + 1;
-            j = static_cast<base_unsigned>(detail::muldiv(off, k, divisor));
-        }
-        // assert(0 <= j && j < k);
-        y = v[j];
-        v[j] = _rng();
-        return y;
-    }
-
-    /** Advances the generator by z steps. */
-    void discard(boost::uintmax_t z)
-    {
-        for(boost::uintmax_t j = 0; j < z; ++j) {
-            (*this)();
-        }
-    }
-
-    /** Fills a range with pseudo-random values. */
-    template<class Iter>
-    void generate(Iter first, Iter last)
-    { detail::generate_from_int(*this, first, last); }
-
-    /** Returns the smallest value that the generator can produce. */
-    static result_type min BOOST_PREVENT_MACRO_SUBSTITUTION ()
-    { return (base_type::min)(); }
-    /** Returns the largest value that the generator can produce. */
-    static result_type max BOOST_PREVENT_MACRO_SUBSTITUTION ()
-    { return (base_type::max)(); }
-
-    /** Writes a @c shuffle_order_engine to a @c std::ostream. */
-    BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, shuffle_order_engine, s)
-    {
-        os << s._rng;
-        for(std::size_t i = 0; i < k; ++i)
-            os << ' ' << s.v[i];
-        os << ' ' << s.y;
-        return os;
-    }
-
-    /** Reads a @c shuffle_order_engine from a @c std::istream. */
-    BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, shuffle_order_engine, s)
-    {
-        is >> s._rng;
-        for(std::size_t i = 0; i < k; ++i)
-            is >> std::ws >> s.v[i];
-        is >> std::ws >> s.y;
-        return is;
-    }
-
-    /** Returns true if the two generators will produce identical sequences. */
-    BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(shuffle_order_engine, x, y)
-    { return x._rng == y._rng && x.y == y.y && std::equal(x.v, x.v+k, y.v); }
-    /** Returns true if the two generators will produce different sequences. */
-    BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(shuffle_order_engine)
-
-private:
-
-    /// \cond show_private
-
-    void init()
-    {
-        // we cannot use std::generate, because it uses pass-by-value for _rng
-        for(result_type * p = v; p != v+k; ++p)
-            *p = _rng();
-        y = _rng();
-    }
-
-    /// \endcond
-
-    base_type _rng;
-    result_type v[k];
-    result_type y;
-};
-
-#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
-//  A definition is required even for integral static constants
-template<class URNG, std::size_t k>
-const bool shuffle_order_engine<URNG, k>::has_fixed_range;
-template<class URNG, std::size_t k>
-const std::size_t shuffle_order_engine<URNG, k>::table_size;
-template<class URNG, std::size_t k>
-const std::size_t shuffle_order_engine<URNG, k>::buffer_size;
-#endif
-
-/**
- * According to Harry Erwin (private e-mail), the specialization
- * @c kreutzer1986 was suggested in:
- *
- * @blockquote
- * "System Simulation: Programming Styles and Languages (International
- * Computer Science Series)", Wolfgang Kreutzer, Addison-Wesley, December 1986.
- * @endblockquote
- */
-typedef shuffle_order_engine<
-    linear_congruential_engine<uint32_t, 1366, 150889, 714025>,
-    97> kreutzer1986;
-
-/**
- * The specialization @c knuth_b is specified by the C++ standard.
- * It is described in
- *
- * @blockquote
- * "The Art of Computer Programming, Second Edition, Volume 2,
- * Seminumerical Algorithms", Donald Knuth, Addison-Wesley, 1981.
- * @endblockquote
- */
-typedef shuffle_order_engine<minstd_rand0, 256> knuth_b;
-
-} // namespace random
-
-using random::kreutzer1986;
-
-} // namespace boost
-
-#include <boost/random/detail/enable_warnings.hpp>
-
-#endif // BOOST_RANDOM_SHUFFLE_OUTPUT_HPP
diff --git a/boost/random/shuffle_output.hpp b/boost/random/shuffle_output.hpp
deleted file mode 100644
index 44b823f..0000000
--- a/boost/random/shuffle_output.hpp
+++ /dev/null
@@ -1,51 +0,0 @@
-/* boost random/shuffle_output.hpp header file
- *
- * Copyright Jens Maurer 2000-2001
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: shuffle_output.hpp 71018 2011-04-05 21:27:52Z steven_watanabe $
- *
- * Revision history
- *  2001-02-18  moved to individual header files
- */
-
-#ifndef BOOST_RANDOM_SHUFFLE_OUTPUT_HPP
-#define BOOST_RANDOM_SHUFFLE_OUTPUT_HPP
-
-#include <boost/random/shuffle_order.hpp>
-
-namespace boost {
-namespace random {
-
-/// \cond
-
-template<typename URNG, int k, 
-         typename URNG::result_type val = 0> 
-class shuffle_output : public shuffle_order_engine<URNG, k>
-{
-    typedef shuffle_order_engine<URNG, k> base_t;
-    typedef typename base_t::result_type result_type;
-public:
-    shuffle_output() {}
-    template<class T>
-    shuffle_output(T& arg) : base_t(arg) {}
-    template<class T>
-    shuffle_output(const T& arg) : base_t(arg) {}
-    template<class It>
-    shuffle_output(It& first, It last) : base_t(first, last) {}
-    result_type min BOOST_PREVENT_MACRO_SUBSTITUTION ()
-    { return (this->base().min)(); }
-    result_type max BOOST_PREVENT_MACRO_SUBSTITUTION ()
-    { return (this->base().max)(); }
-};
-
-/// \endcond
-
-}
-}
-
-#endif // BOOST_RANDOM_SHUFFLE_OUTPUT_HPP
diff --git a/boost/random/student_t_distribution.hpp b/boost/random/student_t_distribution.hpp
deleted file mode 100644
index 665afdb..0000000
--- a/boost/random/student_t_distribution.hpp
+++ /dev/null
@@ -1,180 +0,0 @@
-/* boost random/student_t_distribution.hpp header file
- *
- * Copyright Steven Watanabe 2011
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: student_t_distribution.hpp 71018 2011-04-05 21:27:52Z steven_watanabe $
- */
-
-#ifndef BOOST_RANDOM_STUDENT_T_DISTRIBUTION_HPP
-#define BOOST_RANDOM_STUDENT_T_DISTRIBUTION_HPP
-
-#include <boost/config/no_tr1/cmath.hpp>
-#include <iosfwd>
-#include <boost/config.hpp>
-#include <boost/limits.hpp>
-#include <boost/random/detail/operators.hpp>
-#include <boost/random/chi_squared_distribution.hpp>
-#include <boost/random/normal_distribution.hpp>
-
-namespace boost {
-namespace random {
-
-/**
- * The Student t distribution is a real valued distribution with one
- * parameter n, the number of degrees of freedom.
- *
- * It has \f$\displaystyle p(x) =
- *   \frac{1}{\sqrt{n\pi}}
- *   \frac{\Gamma((n+1)/2)}{\Gamma(n/2)}
- *   \left(1+\frac{x^2}{n}\right)^{-(n+1)/2}
- * \f$.
- */
-template<class RealType = double>
-class student_t_distribution {
-public:
-    typedef RealType result_type;
-    typedef RealType input_type;
-
-    class param_type {
-    public:
-        typedef student_t_distribution distribution_type;
-
-        /**
-         * Constructs a @c param_type with "n" degrees of freedom.
-         *
-         * Requires: n > 0
-         */
-        explicit param_type(RealType n_arg = RealType(1.0))
-          : _n(n_arg)
-        {}
-
-        /** Returns the number of degrees of freedom of the distribution. */
-        RealType n() const { return _n; }
-
-        /** Writes a @c param_type to a @c std::ostream. */
-        BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, param_type, parm)
-        { os << parm._n; return os; }
-
-        /** Reads a @c param_type from a @c std::istream. */
-        BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, param_type, parm)
-        { is >> parm._n; return is; }
-
-        /** Returns true if the two sets of parameters are the same. */
-        BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(param_type, lhs, rhs)
-        { return lhs._n == rhs._n; }
-        
-        /** Returns true if the two sets of parameters are the different. */
-        BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(param_type)
-
-    private:
-        RealType _n;
-    };
-
-    /**
-     * Constructs an @c student_t_distribution with "n" degrees of freedom.
-     *
-     * Requires: n > 0
-     */
-    explicit student_t_distribution(RealType n_arg = RealType(1.0))
-      : _normal(), _chi_squared(n_arg)
-    {}
-    /** Constructs an @c student_t_distribution from its parameters. */
-    explicit student_t_distribution(const param_type& parm)
-      : _normal(), _chi_squared(parm.n())
-    {}
-
-    /**
-     * Returns a random variate distributed according to the
-     * Student t distribution.
-     */
-    template<class URNG>
-    RealType operator()(URNG& urng)
-    {
-        using std::sqrt;
-        return _normal(urng) / sqrt(_chi_squared(urng) / n());
-    }
-
-    /**
-     * Returns a random variate distributed accordint to the Student
-     * t distribution with parameters specified by @c param.
-     */
-    template<class URNG>
-    RealType operator()(URNG& urng, const param_type& parm) const
-    {
-        return student_t_distribution(parm)(urng);
-    }
-
-    /** Returns the number of degrees of freedom. */
-    RealType n() const { return _chi_squared.n(); }
-
-    /** Returns the smallest value that the distribution can produce. */
-    RealType min BOOST_PREVENT_MACRO_SUBSTITUTION () const
-    { return -std::numeric_limits<RealType>::infinity(); }
-    /** Returns the largest value that the distribution can produce. */
-    RealType max BOOST_PREVENT_MACRO_SUBSTITUTION () const
-    { return std::numeric_limits<RealType>::infinity(); }
-
-    /** Returns the parameters of the distribution. */
-    param_type param() const { return param_type(n()); }
-    /** Sets the parameters of the distribution. */
-    void param(const param_type& parm)
-    {
-        typedef chi_squared_distribution<RealType> chi_squared_type;
-        typename chi_squared_type::param_type chi_squared_param(parm.n());
-        _chi_squared.param(chi_squared_param);
-    }
-
-    /**
-     * Effects: Subsequent uses of the distribution do not depend
-     * on values produced by any engine prior to invoking reset.
-     */
-    void reset()
-    {
-        _normal.reset();
-        _chi_squared.reset();
-    }
-
-    /** Writes a @c student_t_distribution to a @c std::ostream. */
-    BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, student_t_distribution, td)
-    {
-        os << td.param();
-        return os;
-    }
-
-    /** Reads a @c student_t_distribution from a @c std::istream. */
-    BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, student_t_distribution, td)
-    {
-        param_type parm;
-        if(is >> parm) {
-            td.param(parm);
-        }
-        return is;
-    }
-
-    /**
-     * Returns true if the two instances of @c student_t_distribution will
-     * return identical sequences of values given equal generators.
-     */
-    BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(student_t_distribution, lhs, rhs)
-    { return lhs._normal == rhs._normal && lhs._chi_squared == rhs._chi_squared; }
-    
-    /**
-     * Returns true if the two instances of @c student_t_distribution will
-     * return different sequences of values given equal generators.
-     */
-    BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(student_t_distribution)
-
-private:
-    normal_distribution<RealType> _normal;
-    chi_squared_distribution<RealType> _chi_squared;
-};
-
-} // namespace random
-} // namespace boost
-
-#endif // BOOST_RANDOM_STUDENT_T_DISTRIBUTION_HPP
diff --git a/boost/random/subtract_with_carry.hpp b/boost/random/subtract_with_carry.hpp
deleted file mode 100644
index fa82260..0000000
--- a/boost/random/subtract_with_carry.hpp
+++ /dev/null
@@ -1,613 +0,0 @@
-/* boost random/subtract_with_carry.hpp header file
- *
- * Copyright Jens Maurer 2002
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: subtract_with_carry.hpp 85813 2013-09-21 20:17:00Z jewillco $
- *
- * Revision history
- *  2002-03-02  created
- */
-
-#ifndef BOOST_RANDOM_SUBTRACT_WITH_CARRY_HPP
-#define BOOST_RANDOM_SUBTRACT_WITH_CARRY_HPP
-
-#include <boost/config/no_tr1/cmath.hpp>         // std::pow
-#include <iostream>
-#include <algorithm>     // std::equal
-#include <stdexcept>
-#include <boost/config.hpp>
-#include <boost/limits.hpp>
-#include <boost/cstdint.hpp>
-#include <boost/static_assert.hpp>
-#include <boost/integer/static_log2.hpp>
-#include <boost/integer/integer_mask.hpp>
-#include <boost/detail/workaround.hpp>
-#include <boost/random/detail/config.hpp>
-#include <boost/random/detail/seed.hpp>
-#include <boost/random/detail/operators.hpp>
-#include <boost/random/detail/seed_impl.hpp>
-#include <boost/random/detail/generator_seed_seq.hpp>
-#include <boost/random/linear_congruential.hpp>
-
-
-namespace boost {
-namespace random {
-
-namespace detail {
-   
-struct subtract_with_carry_discard
-{
-    template<class Engine>
-    static void apply(Engine& eng, boost::uintmax_t z)
-    {
-        typedef typename Engine::result_type IntType;
-        const std::size_t short_lag = Engine::short_lag;
-        const std::size_t long_lag = Engine::long_lag;
-        std::size_t k = eng.k;
-        IntType carry = eng.carry;
-        if(k != 0) {
-            // increment k until it becomes 0.
-            if(k < short_lag) {
-                std::size_t limit = (short_lag - k) < z?
-                    short_lag : (k + static_cast<std::size_t>(z));
-                for(std::size_t j = k; j < limit; ++j) {
-                    carry = eng.do_update(j, j + long_lag - short_lag, carry);
-                }
-            }
-            std::size_t limit = (long_lag - k) < z?
-                long_lag : (k + static_cast<std::size_t>(z));
-            std::size_t start = (k < short_lag ? short_lag : k);
-            for(std::size_t j = start; j < limit; ++j) {
-                carry = eng.do_update(j, j - short_lag, carry);
-            }
-        }
-
-        k = ((z % long_lag) + k) % long_lag;
-
-        if(k < z) {
-            // main loop: update full blocks from k = 0 to long_lag
-            for(std::size_t i = 0; i < (z - k) / long_lag; ++i) {
-                for(std::size_t j = 0; j < short_lag; ++j) {
-                    carry = eng.do_update(j, j + long_lag - short_lag, carry);
-                }
-                for(std::size_t j = short_lag; j < long_lag; ++j) {
-                    carry = eng.do_update(j, j - short_lag, carry);
-                }
-            }
-
-            // Update the last partial block
-            std::size_t limit = short_lag < k? short_lag : k; 
-            for(std::size_t j = 0; j < limit; ++j) {
-                carry = eng.do_update(j, j + long_lag - short_lag, carry);
-            }
-            for(std::size_t j = short_lag; j < k; ++j) {
-                carry = eng.do_update(j, j - short_lag, carry);
-            }
-        }
-        eng.carry = carry;
-        eng.k = k;
-    }
-};
-
-}
-
-/**
- * Instantiations of @c subtract_with_carry_engine model a
- * \pseudo_random_number_generator.  The algorithm is
- * described in
- *
- *  @blockquote
- *  "A New Class of Random Number Generators", George
- *  Marsaglia and Arif Zaman, Annals of Applied Probability,
- *  Volume 1, Number 3 (1991), 462-480.
- *  @endblockquote
- */
-template<class IntType, std::size_t w, std::size_t s, std::size_t r>
-class subtract_with_carry_engine
-{
-public:
-    typedef IntType result_type;
-    BOOST_STATIC_CONSTANT(std::size_t, word_size = w);
-    BOOST_STATIC_CONSTANT(std::size_t, long_lag = r);
-    BOOST_STATIC_CONSTANT(std::size_t, short_lag = s);
-    BOOST_STATIC_CONSTANT(uint32_t, default_seed = 19780503u);
-
-    // Required by the old Boost.Random concepts
-    BOOST_STATIC_CONSTANT(bool, has_fixed_range = false);
-    // Backwards compatibility
-    BOOST_STATIC_CONSTANT(result_type, modulus = (result_type(1) << w));
-    
-    BOOST_STATIC_ASSERT(std::numeric_limits<result_type>::is_integer);
-
-    /**
-     * Constructs a new @c subtract_with_carry_engine and seeds
-     * it with the default seed.
-     */
-    subtract_with_carry_engine() { seed(); }
-    /**
-     * Constructs a new @c subtract_with_carry_engine and seeds
-     * it with @c value.
-     */
-    BOOST_RANDOM_DETAIL_ARITHMETIC_CONSTRUCTOR(subtract_with_carry_engine,
-                                               IntType, value)
-    { seed(value); }
-    /**
-     * Constructs a new @c subtract_with_carry_engine and seeds
-     * it with values produced by @c seq.generate().
-     */
-    BOOST_RANDOM_DETAIL_SEED_SEQ_CONSTRUCTOR(subtract_with_carry_engine,
-                                             SeedSeq, seq)
-    { seed(seq); }
-    /**
-     * Constructs a new @c subtract_with_carry_engine and seeds
-     * it with values from a range.  first is updated to point
-     * one past the last value consumed.  If there are not
-     * enough elements in the range to fill the entire state of
-     * the generator, throws @c std::invalid_argument.
-     */
-    template<class It> subtract_with_carry_engine(It& first, It last)
-    { seed(first,last); }
-
-    // compiler-generated copy ctor and assignment operator are fine
-
-    /** Seeds the generator with the default seed. */
-    void seed() { seed(default_seed); }
-    BOOST_RANDOM_DETAIL_ARITHMETIC_SEED(subtract_with_carry_engine,
-                                        IntType, value)
-    {
-        typedef linear_congruential_engine<uint32_t,40014,0,2147483563> gen_t;
-        gen_t intgen(static_cast<boost::uint32_t>(value == 0 ? default_seed : value));
-        detail::generator_seed_seq<gen_t> gen(intgen);
-        seed(gen);
-    }
-
-    /** Seeds the generator with values produced by @c seq.generate(). */
-    BOOST_RANDOM_DETAIL_SEED_SEQ_SEED(subtract_with_carry, SeedSeq, seq)
-    {
-        detail::seed_array_int<w>(seq, x);
-        carry = (x[long_lag-1] == 0);
-        k = 0;
-    }
-
-    /**
-     * Seeds the generator with values from a range.  Updates @c first to
-     * point one past the last consumed value.  If the range does not
-     * contain enough elements to fill the entire state of the generator,
-     * throws @c std::invalid_argument.
-     */
-    template<class It>
-    void seed(It& first, It last)
-    {
-        detail::fill_array_int<w>(first, last, x);
-        carry = (x[long_lag-1] == 0);
-        k = 0;
-    }
-
-    /** Returns the smallest value that the generator can produce. */
-    static result_type min BOOST_PREVENT_MACRO_SUBSTITUTION ()
-    { return 0; }
-    /** Returns the largest value that the generator can produce. */
-    static result_type max BOOST_PREVENT_MACRO_SUBSTITUTION ()
-    { return boost::low_bits_mask_t<w>::sig_bits; }
-
-    /** Returns the next value of the generator. */
-    result_type operator()()
-    {
-        std::size_t short_index =
-            (k < short_lag)?
-                (k + long_lag - short_lag) :
-                (k - short_lag);
-        carry = do_update(k, short_index, carry);
-        IntType result = x[k];
-        ++k;
-        if(k >= long_lag)
-            k = 0;
-        return result;
-    }
-
-    /** Advances the state of the generator by @c z. */
-    void discard(boost::uintmax_t z)
-    {
-        detail::subtract_with_carry_discard::apply(*this, z);
-    }
-
-    /** Fills a range with random values. */
-    template<class It>
-    void generate(It first, It last)
-    { detail::generate_from_int(*this, first, last); }
- 
-    /** Writes a @c subtract_with_carry_engine to a @c std::ostream. */
-    BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, subtract_with_carry_engine, f)
-    {
-        for(unsigned int j = 0; j < f.long_lag; ++j)
-            os << f.compute(j) << ' ';
-        os << f.carry;
-        return os;
-    }
-
-    /** Reads a @c subtract_with_carry_engine from a @c std::istream. */
-    BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, subtract_with_carry_engine, f)
-    {
-        for(unsigned int j = 0; j < f.long_lag; ++j)
-            is >> f.x[j] >> std::ws;
-        is >> f.carry;
-        f.k = 0;
-        return is;
-    }
-
-    /**
-     * Returns true if the two generators will produce identical
-     * sequences of values.
-     */
-    BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(subtract_with_carry_engine, x, y)
-    {
-        for(unsigned int j = 0; j < r; ++j)
-            if(x.compute(j) != y.compute(j))
-                return false;
-        return true;
-    }
-
-    /**
-     * Returns true if the two generators will produce different
-     * sequences of values.
-     */
-    BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(subtract_with_carry_engine)
-
-private:
-    /// \cond show_private
-    // returns x(i-r+index), where index is in 0..r-1
-    IntType compute(unsigned int index) const
-    {
-        return x[(k+index) % long_lag];
-    }
-
-    friend struct detail::subtract_with_carry_discard;
-
-    IntType do_update(std::size_t current, std::size_t short_index, IntType carry)
-    {
-        IntType delta;
-        IntType temp = x[current] + carry;
-        if (x[short_index] >= temp) {
-            // x(n) >= 0
-            delta =  x[short_index] - temp;
-            carry = 0;
-        } else {
-            // x(n) < 0
-            delta = modulus - temp + x[short_index];
-            carry = 1;
-        }
-        x[current] = delta;
-        return carry;
-    }
-    /// \endcond
-
-    // state representation; next output (state) is x(i)
-    //   x[0]  ... x[k] x[k+1] ... x[long_lag-1]     represents
-    //  x(i-k) ... x(i) x(i+1) ... x(i-k+long_lag-1)
-    // speed: base: 20-25 nsec
-    // ranlux_4: 230 nsec, ranlux_7: 430 nsec, ranlux_14: 810 nsec
-    // This state representation makes operator== and save/restore more
-    // difficult, because we've already computed "too much" and thus
-    // have to undo some steps to get at x(i-r) etc.
-
-    // state representation: next output (state) is x(i)
-    //   x[0]  ... x[k] x[k+1]          ... x[long_lag-1]     represents
-    //  x(i-k) ... x(i) x(i-long_lag+1) ... x(i-k-1)
-    // speed: base 28 nsec
-    // ranlux_4: 370 nsec, ranlux_7: 688 nsec, ranlux_14: 1343 nsec
-    IntType x[long_lag];
-    std::size_t k;
-    IntType carry;
-};
-
-#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
-//  A definition is required even for integral static constants
-template<class IntType, std::size_t w, std::size_t s, std::size_t r>
-const bool subtract_with_carry_engine<IntType, w, s, r>::has_fixed_range;
-template<class IntType, std::size_t w, std::size_t s, std::size_t r>
-const IntType subtract_with_carry_engine<IntType, w, s, r>::modulus;
-template<class IntType, std::size_t w, std::size_t s, std::size_t r>
-const std::size_t subtract_with_carry_engine<IntType, w, s, r>::word_size;
-template<class IntType, std::size_t w, std::size_t s, std::size_t r>
-const std::size_t subtract_with_carry_engine<IntType, w, s, r>::long_lag;
-template<class IntType, std::size_t w, std::size_t s, std::size_t r>
-const std::size_t subtract_with_carry_engine<IntType, w, s, r>::short_lag;
-template<class IntType, std::size_t w, std::size_t s, std::size_t r>
-const uint32_t subtract_with_carry_engine<IntType, w, s, r>::default_seed;
-#endif
-
-
-// use a floating-point representation to produce values in [0..1)
-/**
- * Instantiations of \subtract_with_carry_01_engine model a
- * \pseudo_random_number_generator.  The algorithm is
- * described in
- *
- *  @blockquote
- *  "A New Class of Random Number Generators", George
- *  Marsaglia and Arif Zaman, Annals of Applied Probability,
- *  Volume 1, Number 3 (1991), 462-480.
- *  @endblockquote
- */
-template<class RealType, std::size_t w, std::size_t s, std::size_t r>
-class subtract_with_carry_01_engine
-{
-public:
-    typedef RealType result_type;
-    BOOST_STATIC_CONSTANT(bool, has_fixed_range = false);
-    BOOST_STATIC_CONSTANT(std::size_t, word_size = w);
-    BOOST_STATIC_CONSTANT(std::size_t, long_lag = r);
-    BOOST_STATIC_CONSTANT(std::size_t, short_lag = s);
-    BOOST_STATIC_CONSTANT(boost::uint32_t, default_seed = 19780503u);
-
-    BOOST_STATIC_ASSERT(!std::numeric_limits<result_type>::is_integer);
-
-    /** Creates a new \subtract_with_carry_01_engine using the default seed. */
-    subtract_with_carry_01_engine() { init_modulus(); seed(); }
-    /** Creates a new subtract_with_carry_01_engine and seeds it with value. */
-    BOOST_RANDOM_DETAIL_ARITHMETIC_CONSTRUCTOR(subtract_with_carry_01_engine,
-                                               boost::uint32_t, value)
-    { init_modulus(); seed(value); }
-    /**
-     * Creates a new \subtract_with_carry_01_engine and seeds with values
-     * produced by seq.generate().
-     */
-    BOOST_RANDOM_DETAIL_SEED_SEQ_CONSTRUCTOR(subtract_with_carry_01_engine,
-                                             SeedSeq, seq)
-    { init_modulus(); seed(seq); }
-    /**
-     * Creates a new \subtract_with_carry_01_engine and seeds it with values
-     * from a range.  Advances first to point one past the last consumed
-     * value.  If the range does not contain enough elements to fill the
-     * entire state, throws @c std::invalid_argument.
-     */
-    template<class It> subtract_with_carry_01_engine(It& first, It last)
-    { init_modulus(); seed(first,last); }
-
-private:
-    /// \cond show_private
-    void init_modulus()
-    {
-#ifndef BOOST_NO_STDC_NAMESPACE
-        // allow for Koenig lookup
-        using std::pow;
-#endif
-        _modulus = pow(RealType(2), RealType(word_size));
-    }
-    /// \endcond
-
-public:
-    // compiler-generated copy ctor and assignment operator are fine
-
-    /** Seeds the generator with the default seed. */
-    void seed() { seed(default_seed); }
-
-    /** Seeds the generator with @c value. */
-    BOOST_RANDOM_DETAIL_ARITHMETIC_SEED(subtract_with_carry_01_engine,
-                                        boost::uint32_t, value)
-    {
-        typedef linear_congruential_engine<uint32_t, 40014, 0, 2147483563> gen_t;
-        gen_t intgen(value == 0 ? default_seed : value);
-        detail::generator_seed_seq<gen_t> gen(intgen);
-        seed(gen);
-    }
-
-    /** Seeds the generator with values produced by @c seq.generate(). */
-    BOOST_RANDOM_DETAIL_SEED_SEQ_SEED(subtract_with_carry_01_engine,
-                                      SeedSeq, seq)
-    {
-        detail::seed_array_real<w>(seq, x);
-        carry = (x[long_lag-1] ? 0 : 1 / _modulus);
-        k = 0;
-    }
-
-    /**
-     * Seeds the generator with values from a range.  Updates first to
-     * point one past the last consumed element.  If there are not
-     * enough elements in the range to fill the entire state, throws
-     * @c std::invalid_argument.
-     */
-    template<class It>
-    void seed(It& first, It last)
-    {
-        detail::fill_array_real<w>(first, last, x);
-        carry = (x[long_lag-1] ? 0 : 1 / _modulus);
-        k = 0;
-    }
-
-    /** Returns the smallest value that the generator can produce. */
-    static result_type min BOOST_PREVENT_MACRO_SUBSTITUTION ()
-    { return result_type(0); }
-    /** Returns the largest value that the generator can produce. */
-    static result_type max BOOST_PREVENT_MACRO_SUBSTITUTION ()
-    { return result_type(1); }
-
-    /** Returns the next value of the generator. */
-    result_type operator()()
-    {
-        std::size_t short_index =
-            (k < short_lag) ?
-                (k + long_lag - short_lag) :
-                (k - short_lag);
-        carry = do_update(k, short_index, carry);
-        RealType result = x[k];
-        ++k;
-        if(k >= long_lag)
-            k = 0;
-        return result;
-    }
-
-    /** Advances the state of the generator by @c z. */
-    void discard(boost::uintmax_t z)
-    { detail::subtract_with_carry_discard::apply(*this, z); }
-
-    /** Fills a range with random values. */
-    template<class Iter>
-    void generate(Iter first, Iter last)
-    { detail::generate_from_real(*this, first, last); }
-
-    /** Writes a \subtract_with_carry_01_engine to a @c std::ostream. */
-    BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, subtract_with_carry_01_engine, f)
-    {
-        std::ios_base::fmtflags oldflags =
-            os.flags(os.dec | os.fixed | os.left); 
-        for(unsigned int j = 0; j < f.long_lag; ++j)
-            os << (f.compute(j) * f._modulus) << ' ';
-        os << (f.carry * f._modulus);
-        os.flags(oldflags);
-        return os;
-    }
-    
-    /** Reads a \subtract_with_carry_01_engine from a @c std::istream. */
-    BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, subtract_with_carry_01_engine, f)
-    {
-        RealType value;
-        for(unsigned int j = 0; j < long_lag; ++j) {
-            is >> value >> std::ws;
-            f.x[j] = value / f._modulus;
-        }
-        is >> value;
-        f.carry = value / f._modulus;
-        f.k = 0;
-        return is;
-    }
-
-    /** Returns true if the two generators will produce identical sequences. */
-    BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(subtract_with_carry_01_engine, x, y)
-    {
-        for(unsigned int j = 0; j < r; ++j)
-            if(x.compute(j) != y.compute(j))
-                return false;
-        return true;
-    }
-
-    /** Returns true if the two generators will produce different sequences. */
-    BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(subtract_with_carry_01_engine)
-
-private:
-    /// \cond show_private
-    RealType compute(unsigned int index) const
-    {
-        return x[(k+index) % long_lag];
-    }
-
-    friend struct detail::subtract_with_carry_discard;
-
-    RealType do_update(std::size_t current, std::size_t short_index, RealType carry)
-    {
-        RealType delta = x[short_index] - x[current] - carry;
-        if(delta < 0) {
-            delta += RealType(1);
-            carry = RealType(1)/_modulus;
-        } else {
-            carry = 0;
-        }
-        x[current] = delta;
-        return carry;
-    }
-    /// \endcond
-    std::size_t k;
-    RealType carry;
-    RealType x[long_lag];
-    RealType _modulus;
-};
-
-#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
-//  A definition is required even for integral static constants
-template<class RealType, std::size_t w, std::size_t s, std::size_t r>
-const bool subtract_with_carry_01_engine<RealType, w, s, r>::has_fixed_range;
-template<class RealType, std::size_t w, std::size_t s, std::size_t r>
-const std::size_t subtract_with_carry_01_engine<RealType, w, s, r>::word_size;
-template<class RealType, std::size_t w, std::size_t s, std::size_t r>
-const std::size_t subtract_with_carry_01_engine<RealType, w, s, r>::long_lag;
-template<class RealType, std::size_t w, std::size_t s, std::size_t r>
-const std::size_t subtract_with_carry_01_engine<RealType, w, s, r>::short_lag;
-template<class RealType, std::size_t w, std::size_t s, std::size_t r>
-const uint32_t subtract_with_carry_01_engine<RealType, w, s, r>::default_seed;
-#endif
-
-
-/// \cond show_deprecated
-
-template<class IntType, IntType m, unsigned s, unsigned r, IntType v>
-class subtract_with_carry :
-    public subtract_with_carry_engine<IntType,
-        boost::static_log2<m>::value, s, r>
-{
-    typedef subtract_with_carry_engine<IntType,
-        boost::static_log2<m>::value, s, r> base_type;
-public:
-    subtract_with_carry() {}
-    BOOST_RANDOM_DETAIL_GENERATOR_CONSTRUCTOR(subtract_with_carry, Gen, gen)
-    { seed(gen); }
-    BOOST_RANDOM_DETAIL_ARITHMETIC_CONSTRUCTOR(subtract_with_carry,
-                                               IntType, val)
-    { seed(val); }
-    template<class It>
-    subtract_with_carry(It& first, It last) : base_type(first, last) {}
-    void seed() { base_type::seed(); }
-    BOOST_RANDOM_DETAIL_GENERATOR_SEED(subtract_with_carry, Gen, gen)
-    {
-        detail::generator_seed_seq<Gen> seq(gen);
-        base_type::seed(seq);
-    }
-    BOOST_RANDOM_DETAIL_ARITHMETIC_SEED(subtract_with_carry, IntType, val)
-    { base_type::seed(val); }
-    template<class It>
-    void seed(It& first, It last) { base_type::seed(first, last); }
-};
-
-template<class RealType, int w, unsigned s, unsigned r, int v = 0>
-class subtract_with_carry_01 :
-    public subtract_with_carry_01_engine<RealType, w, s, r>
-{
-    typedef subtract_with_carry_01_engine<RealType, w, s, r> base_type;
-public:
-    subtract_with_carry_01() {}
-    BOOST_RANDOM_DETAIL_GENERATOR_CONSTRUCTOR(subtract_with_carry_01, Gen, gen)
-    { seed(gen); }
-    BOOST_RANDOM_DETAIL_ARITHMETIC_CONSTRUCTOR(subtract_with_carry_01,
-                                               uint32_t, val)
-    { seed(val); }
-    template<class It>
-    subtract_with_carry_01(It& first, It last) : base_type(first, last) {}
-    void seed() { base_type::seed(); }
-    BOOST_RANDOM_DETAIL_GENERATOR_SEED(subtract_with_carry_01, Gen, gen)
-    {
-        detail::generator_seed_seq<Gen> seq(gen);
-        base_type::seed(seq);
-    }
-    BOOST_RANDOM_DETAIL_ARITHMETIC_SEED(subtract_with_carry_01, uint32_t, val)
-    { base_type::seed(val); }
-    template<class It>
-    void seed(It& first, It last) { base_type::seed(first, last); }
-};
-
-/// \endcond
-
-namespace detail {
-
-template<class Engine>
-struct generator_bits;
-
-template<class RealType, std::size_t w, std::size_t s, std::size_t r>
-struct generator_bits<subtract_with_carry_01_engine<RealType, w, s, r> > {
-    static std::size_t value() { return w; }
-};
-
-template<class RealType, int w, unsigned s, unsigned r, int v>
-struct generator_bits<subtract_with_carry_01<RealType, w, s, r, v> > {
-    static std::size_t value() { return w; }
-};
-
-}
-
-} // namespace random
-} // namespace boost
-
-#endif // BOOST_RANDOM_SUBTRACT_WITH_CARRY_HPP
diff --git a/boost/random/taus88.hpp b/boost/random/taus88.hpp
deleted file mode 100644
index c9d3810..0000000
--- a/boost/random/taus88.hpp
+++ /dev/null
@@ -1,45 +0,0 @@
-/* boost random/taus88.hpp header file
- *
- * Copyright Jens Maurer 2000-2001
- * Copyright Steven Watanabe 2011
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org/libs/random for documentation.
- *
- * $Id: taus88.hpp 71018 2011-04-05 21:27:52Z steven_watanabe $
- *
- */
-
-#ifndef BOOST_RANDOM_TAUS88_HPP
-#define BOOST_RANDOM_TAUS88_HPP
-
-#include <boost/random/linear_feedback_shift.hpp>
-#include <boost/random/xor_combine.hpp>
-
-namespace boost {
-namespace random {
-
-/** 
- * The specialization taus88 was suggested in
- *
- *  @blockquote
- *  "Maximally Equidistributed Combined Tausworthe Generators",
- *  Pierre L'Ecuyer, Mathematics of Computation, Volume 65,
- *  Number 213, January 1996, Pages 203-213
- *  @endblockquote
- */
-typedef xor_combine_engine<
-    xor_combine_engine<
-        linear_feedback_shift_engine<uint32_t, 32, 31, 13, 12>, 0,
-        linear_feedback_shift_engine<uint32_t, 32, 29, 2, 4>, 0>, 0,
-    linear_feedback_shift_engine<uint32_t, 32, 28, 3, 17>, 0> taus88;
-
-} // namespace random
-
-using random::taus88;
-
-} // namespace boost
-
-#endif // BOOST_RANDOM_TAUS88_HPP
diff --git a/boost/random/triangle_distribution.hpp b/boost/random/triangle_distribution.hpp
deleted file mode 100644
index 8776000..0000000
--- a/boost/random/triangle_distribution.hpp
+++ /dev/null
@@ -1,232 +0,0 @@
-/* boost random/triangle_distribution.hpp header file
- *
- * Copyright Jens Maurer 2000-2001
- * Copyright Steven Watanabe 2011
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: triangle_distribution.hpp 71018 2011-04-05 21:27:52Z steven_watanabe $
- *
- * Revision history
- *  2001-02-18  moved to individual header files
- */
-
-#ifndef BOOST_RANDOM_TRIANGLE_DISTRIBUTION_HPP
-#define BOOST_RANDOM_TRIANGLE_DISTRIBUTION_HPP
-
-#include <boost/config/no_tr1/cmath.hpp>
-#include <iosfwd>
-#include <ios>
-#include <istream>
-#include <boost/assert.hpp>
-#include <boost/random/detail/config.hpp>
-#include <boost/random/detail/operators.hpp>
-#include <boost/random/uniform_01.hpp>
-
-namespace boost {
-namespace random {
-
-/**
- * Instantiations of @c triangle_distribution model a \random_distribution.
- * A @c triangle_distribution has three parameters, @c a, @c b, and @c c,
- * which are the smallest, the most probable and the largest values of
- * the distribution respectively.
- */
-template<class RealType = double>
-class triangle_distribution
-{
-public:
-    typedef RealType input_type;
-    typedef RealType result_type;
-
-    class param_type
-    {
-    public:
-
-        typedef triangle_distribution distribution_type;
-
-        /** Constructs the parameters of a @c triangle_distribution. */
-        explicit param_type(RealType a_arg = RealType(0.0),
-                            RealType b_arg = RealType(0.5),
-                            RealType c_arg = RealType(1.0))
-          : _a(a_arg), _b(b_arg), _c(c_arg)
-        {
-            BOOST_ASSERT(_a <= _b && _b <= _c);
-        }
-
-        /** Returns the minimum value of the distribution. */
-        RealType a() const { return _a; }
-        /** Returns the mode of the distribution. */
-        RealType b() const { return _b; }
-        /** Returns the maximum value of the distribution. */
-        RealType c() const { return _c; }
-
-        /** Writes the parameters to a @c std::ostream. */
-        BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, param_type, parm)
-        {
-            os << parm._a << " " << parm._b << " " << parm._c;
-            return os;
-        }
-
-        /** Reads the parameters from a @c std::istream. */
-        BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, param_type, parm)
-        {
-            double a_in, b_in, c_in;
-            if(is >> a_in >> std::ws >> b_in >> std::ws >> c_in) {
-                if(a_in <= b_in && b_in <= c_in) {
-                    parm._a = a_in;
-                    parm._b = b_in;
-                    parm._c = c_in;
-                } else {
-                    is.setstate(std::ios_base::failbit);
-                }
-            }
-            return is;
-        }
-
-        /** Returns true if the two sets of parameters are equal. */
-        BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(param_type, lhs, rhs)
-        { return lhs._a == rhs._a && lhs._b == rhs._b && lhs._c == rhs._c; }
-
-        /** Returns true if the two sets of parameters are different. */
-        BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(param_type)
-
-    private:
-        RealType _a;
-        RealType _b;
-        RealType _c;
-    };
-
-    /**
-     * Constructs a @c triangle_distribution with the parameters
-     * @c a, @c b, and @c c.
-     *
-     * Preconditions: a <= b <= c.
-     */
-    explicit triangle_distribution(RealType a_arg = RealType(0.0),
-                                   RealType b_arg = RealType(0.5),
-                                   RealType c_arg = RealType(1.0))
-      : _a(a_arg), _b(b_arg), _c(c_arg)
-    {
-        BOOST_ASSERT(_a <= _b && _b <= _c);
-        init();
-    }
-
-    /** Constructs a @c triangle_distribution from its parameters. */
-    explicit triangle_distribution(const param_type& parm)
-      : _a(parm.a()), _b(parm.b()), _c(parm.c())
-    {
-        init();
-    }
-
-    // compiler-generated copy ctor and assignment operator are fine
-
-    /** Returns the @c a parameter of the distribution */
-    result_type a() const { return _a; }
-    /** Returns the @c b parameter of the distribution */
-    result_type b() const { return _b; }
-    /** Returns the @c c parameter of the distribution */
-    result_type c() const { return _c; }
-
-    /** Returns the smallest value that the distribution can produce. */
-    RealType min BOOST_PREVENT_MACRO_SUBSTITUTION () const { return _a; }
-    /** Returns the largest value that the distribution can produce. */
-    RealType max BOOST_PREVENT_MACRO_SUBSTITUTION () const { return _c; }
-
-    /** Returns the parameters of the distribution. */
-    param_type param() const { return param_type(_a, _b, _c); }
-    /** Sets the parameters of the distribution. */
-    void param(const param_type& parm)
-    {
-        _a = parm.a();
-        _b = parm.b();
-        _c = parm.c();
-        init();
-    }
-
-    /**
-     * Effects: Subsequent uses of the distribution do not depend
-     * on values produced by any engine prior to invoking reset.
-     */
-    void reset() { }
-
-    /**
-     * Returns a random variate distributed according to the
-     * triangle distribution.
-     */
-    template<class Engine>
-    result_type operator()(Engine& eng)
-    {
-        using std::sqrt;
-        result_type u = uniform_01<>()(eng);
-        if( u <= q1 )
-            return _a + p1*sqrt(u);
-        else
-        return _c - d3*sqrt(d2*u-d1);
-    }
-
-    /**
-     * Returns a random variate distributed according to the
-     * triangle distribution with parameters specified by param.
-     */
-    template<class Engine>
-    result_type operator()(Engine& eng, const param_type& parm)
-    { return triangle_distribution(parm)(eng); }
-
-    /** Writes the distribution to a @c std::ostream. */
-    BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, triangle_distribution, td)
-    {
-        os << td.param();
-        return os;
-    }
-
-    /** Reads the distribution from a @c std::istream. */
-    BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, triangle_distribution, td)
-    {
-        param_type parm;
-        if(is >> parm) {
-            td.param(parm);
-        }
-        return is;
-    }
-
-    /**
-     * Returns true if the two distributions will produce identical
-     * sequences of values given equal generators.
-     */
-    BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(triangle_distribution, lhs, rhs)
-    { return lhs._a == rhs._a && lhs._b == rhs._b && lhs._c == rhs._c; }
-
-    /**
-     * Returns true if the two distributions may produce different
-     * sequences of values given equal generators.
-     */
-    BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(triangle_distribution)
-
-private:
-    /// \cond show_private
-    void init()
-    {
-        using std::sqrt;
-        d1 = _b - _a;
-        d2 = _c - _a;
-        d3 = sqrt(_c - _b);
-        q1 = d1 / d2;
-        p1 = sqrt(d1 * d2);
-    }
-    /// \endcond
-
-    RealType _a, _b, _c;
-    RealType d1, d2, d3, q1, p1;
-};
-
-} // namespace random
-
-using random::triangle_distribution;
-
-} // namespace boost
-
-#endif // BOOST_RANDOM_TRIANGLE_DISTRIBUTION_HPP
diff --git a/boost/random/uniform_01.hpp b/boost/random/uniform_01.hpp
deleted file mode 100644
index d32a085..0000000
--- a/boost/random/uniform_01.hpp
+++ /dev/null
@@ -1,277 +0,0 @@
-/* boost random/uniform_01.hpp header file
- *
- * Copyright Jens Maurer 2000-2001
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: uniform_01.hpp 71018 2011-04-05 21:27:52Z steven_watanabe $
- *
- * Revision history
- *  2001-02-18  moved to individual header files
- */
-
-#ifndef BOOST_RANDOM_UNIFORM_01_HPP
-#define BOOST_RANDOM_UNIFORM_01_HPP
-
-#include <iostream>
-#include <boost/config.hpp>
-#include <boost/limits.hpp>
-#include <boost/static_assert.hpp>
-#include <boost/random/detail/config.hpp>
-#include <boost/random/detail/ptr_helper.hpp>
-
-#include <boost/random/detail/disable_warnings.hpp>
-
-namespace boost {
-namespace random {
-
-#ifdef BOOST_RANDOM_DOXYGEN
-
-/**
- * The distribution function uniform_01 models a \random_distribution.
- * On each invocation, it returns a random floating-point value
- * uniformly distributed in the range [0..1).
- *
- * The template parameter RealType shall denote a float-like value type
- * with support for binary operators +, -, and /.
- *
- * Note: The current implementation is buggy, because it may not fill
- * all of the mantissa with random bits. I'm unsure how to fill a
- * (to-be-invented) @c boost::bigfloat class with random bits efficiently.
- * It's probably time for a traits class.
- */
-template<class RealType = double>
-class uniform_01
-{
-public:
-  typedef RealType input_type;
-  typedef RealType result_type;
-  result_type min BOOST_PREVENT_MACRO_SUBSTITUTION () const;
-  result_type max BOOST_PREVENT_MACRO_SUBSTITUTION () const;
-  void reset();
-
-  template<class Engine>
-  result_type operator()(Engine& eng);
-
-#ifndef BOOST_RANDOM_NO_STREAM_OPERATORS
-  template<class CharT, class Traits>
-  friend std::basic_ostream<CharT,Traits>&
-  operator<<(std::basic_ostream<CharT,Traits>& os, const new_uniform_01&)
-  {
-    return os;
-  }
-
-  template<class CharT, class Traits>
-  friend std::basic_istream<CharT,Traits>&
-  operator>>(std::basic_istream<CharT,Traits>& is, new_uniform_01&)
-  {
-    return is;
-  }
-#endif
-};
-
-#else
-
-namespace detail {
-
-template<class RealType>
-class new_uniform_01
-{
-public:
-  typedef RealType input_type;
-  typedef RealType result_type;
-  // compiler-generated copy ctor and copy assignment are fine
-  result_type min BOOST_PREVENT_MACRO_SUBSTITUTION () const { return result_type(0); }
-  result_type max BOOST_PREVENT_MACRO_SUBSTITUTION () const { return result_type(1); }
-  void reset() { }
-
-  template<class Engine>
-  result_type operator()(Engine& eng) {
-    for (;;) {
-      typedef typename Engine::result_type base_result;
-      result_type factor = result_type(1) /
-              (result_type((eng.max)()-(eng.min)()) +
-               result_type(std::numeric_limits<base_result>::is_integer ? 1 : 0));
-      result_type result = result_type(eng() - (eng.min)()) * factor;
-      if (result < result_type(1))
-        return result;
-    }
-  }
-
-#ifndef BOOST_RANDOM_NO_STREAM_OPERATORS
-  template<class CharT, class Traits>
-  friend std::basic_ostream<CharT,Traits>&
-  operator<<(std::basic_ostream<CharT,Traits>& os, const new_uniform_01&)
-  {
-    return os;
-  }
-
-  template<class CharT, class Traits>
-  friend std::basic_istream<CharT,Traits>&
-  operator>>(std::basic_istream<CharT,Traits>& is, new_uniform_01&)
-  {
-    return is;
-  }
-#endif
-};
-
-template<class UniformRandomNumberGenerator, class RealType>
-class backward_compatible_uniform_01
-{
-  typedef boost::random::detail::ptr_helper<UniformRandomNumberGenerator> traits;
-public:
-  typedef UniformRandomNumberGenerator base_type;
-  typedef RealType result_type;
-
-  BOOST_STATIC_CONSTANT(bool, has_fixed_range = false);
-
-#if !defined(BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS) && !(defined(BOOST_MSVC) && BOOST_MSVC <= 1300)
-  BOOST_STATIC_ASSERT(!std::numeric_limits<RealType>::is_integer);
-#endif
-
-  explicit backward_compatible_uniform_01(typename traits::rvalue_type rng)
-    : _rng(rng),
-      _factor(result_type(1) /
-              (result_type((base().max)()-(base().min)()) +
-               result_type(std::numeric_limits<base_result>::is_integer ? 1 : 0)))
-  {
-  }
-  // compiler-generated copy ctor and copy assignment are fine
-
-  result_type min BOOST_PREVENT_MACRO_SUBSTITUTION () const { return result_type(0); }
-  result_type max BOOST_PREVENT_MACRO_SUBSTITUTION () const { return result_type(1); }
-  typename traits::value_type& base() { return traits::ref(_rng); }
-  const typename traits::value_type& base() const { return traits::ref(_rng); }
-  void reset() { }
-
-  result_type operator()() {
-    for (;;) {
-      result_type result = result_type(base()() - (base().min)()) * _factor;
-      if (result < result_type(1))
-        return result;
-    }
-  }
-
-#if !defined(BOOST_NO_OPERATORS_IN_NAMESPACE) && !defined(BOOST_NO_MEMBER_TEMPLATE_FRIENDS)
-  template<class CharT, class Traits>
-  friend std::basic_ostream<CharT,Traits>&
-  operator<<(std::basic_ostream<CharT,Traits>& os, const backward_compatible_uniform_01& u)
-  {
-    os << u._rng;
-    return os;
-  }
-
-  template<class CharT, class Traits>
-  friend std::basic_istream<CharT,Traits>&
-  operator>>(std::basic_istream<CharT,Traits>& is, backward_compatible_uniform_01& u)
-  {
-    is >> u._rng;
-    return is;
-  }
-#endif
-
-private:
-  typedef typename traits::value_type::result_type base_result;
-  UniformRandomNumberGenerator _rng;
-  result_type _factor;
-};
-
-#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
-//  A definition is required even for integral static constants
-template<class UniformRandomNumberGenerator, class RealType>
-const bool backward_compatible_uniform_01<UniformRandomNumberGenerator, RealType>::has_fixed_range;
-#endif
-
-template<class UniformRandomNumberGenerator>
-struct select_uniform_01
-{
-  template<class RealType>
-  struct apply
-  {
-    typedef backward_compatible_uniform_01<UniformRandomNumberGenerator, RealType> type;
-  };
-};
-
-template<>
-struct select_uniform_01<float>
-{
-  template<class RealType>
-  struct apply
-  {
-    typedef new_uniform_01<float> type;
-  };
-};
-
-template<>
-struct select_uniform_01<double>
-{
-  template<class RealType>
-  struct apply
-  {
-    typedef new_uniform_01<double> type;
-  };
-};
-
-template<>
-struct select_uniform_01<long double>
-{
-  template<class RealType>
-  struct apply
-  {
-    typedef new_uniform_01<long double> type;
-  };
-};
-
-}
-
-// Because it is so commonly used: uniform distribution on the real [0..1)
-// range.  This allows for specializations to avoid a costly int -> float
-// conversion plus float multiplication
-template<class UniformRandomNumberGenerator = double, class RealType = double>
-class uniform_01
-  : public detail::select_uniform_01<UniformRandomNumberGenerator>::BOOST_NESTED_TEMPLATE apply<RealType>::type
-{
-  typedef typename detail::select_uniform_01<UniformRandomNumberGenerator>::BOOST_NESTED_TEMPLATE apply<RealType>::type impl_type;
-  typedef boost::random::detail::ptr_helper<UniformRandomNumberGenerator> traits;
-public:
-
-  uniform_01() {}
-
-  explicit uniform_01(typename traits::rvalue_type rng)
-    : impl_type(rng)
-  {
-  }
-
-#if !defined(BOOST_NO_OPERATORS_IN_NAMESPACE) && !defined(BOOST_NO_MEMBER_TEMPLATE_FRIENDS)
-  template<class CharT, class Traits>
-  friend std::basic_ostream<CharT,Traits>&
-  operator<<(std::basic_ostream<CharT,Traits>& os, const uniform_01& u)
-  {
-    os << static_cast<const impl_type&>(u);
-    return os;
-  }
-
-  template<class CharT, class Traits>
-  friend std::basic_istream<CharT,Traits>&
-  operator>>(std::basic_istream<CharT,Traits>& is, uniform_01& u)
-  {
-    is >> static_cast<impl_type&>(u);
-    return is;
-  }
-#endif
-};
-
-#endif
-
-} // namespace random
-
-using random::uniform_01;
-
-} // namespace boost
-
-#include <boost/random/detail/enable_warnings.hpp>
-
-#endif // BOOST_RANDOM_UNIFORM_01_HPP
diff --git a/boost/random/uniform_int.hpp b/boost/random/uniform_int.hpp
deleted file mode 100644
index 7ae3b92..0000000
--- a/boost/random/uniform_int.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-/* boost random/uniform_int.hpp header file
- *
- * Copyright Jens Maurer 2000-2001
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: uniform_int.hpp 71018 2011-04-05 21:27:52Z steven_watanabe $
- *
- * Revision history
- *  2001-04-08  added min<max assertion (N. Becker)
- *  2001-02-18  moved to individual header files
- */
-
-#ifndef BOOST_RANDOM_UNIFORM_INT_HPP
-#define BOOST_RANDOM_UNIFORM_INT_HPP
-
-#include <boost/assert.hpp>
-#include <boost/random/uniform_int_distribution.hpp>
-
-namespace boost {
-
-/**
- * The distribution function uniform_int models a \random_distribution.
- * On each invocation, it returns a random integer value uniformly
- * distributed in the set of integer numbers {min, min+1, min+2, ..., max}.
- *
- * The template parameter IntType shall denote an integer-like value type.
- *
- * This class is deprecated.  Please use @c uniform_int_distribution in
- * new code.
- */
-template<class IntType = int>
-class uniform_int : public random::uniform_int_distribution<IntType>
-{
-    typedef random::uniform_int_distribution<IntType> base_type;
-public:
-
-    class param_type : public base_type::param_type
-    {
-    public:
-        typedef uniform_int distribution_type;
-        /**
-         * Constructs the parameters of a uniform_int distribution.
-         *
-         * Requires: min <= max
-         */
-        explicit param_type(IntType min_arg = 0, IntType max_arg = 9)
-          : base_type::param_type(min_arg, max_arg)
-        {}
-    };
-
-    /**
-     * Constructs a uniform_int object. @c min and @c max are
-     * the parameters of the distribution.
-     *
-     * Requires: min <= max
-     */
-    explicit uniform_int(IntType min_arg = 0, IntType max_arg = 9)
-      : base_type(min_arg, max_arg)
-    {}
-
-    /** Constructs a uniform_int distribution from its parameters. */
-    explicit uniform_int(const param_type& parm)
-      : base_type(parm)
-    {}
-
-    /** Returns the parameters of the distribution */
-    param_type param() const { return param_type(this->a(), this->b()); }
-    /** Sets the parameters of the distribution. */
-    void param(const param_type& parm) { this->base_type::param(parm); }
-
-    // Codergear seems to have trouble with a using declaration here
-
-    template<class Engine>
-    IntType operator()(Engine& eng) const
-    {
-        return static_cast<const base_type&>(*this)(eng);
-    }
-
-    template<class Engine>
-    IntType operator()(Engine& eng, const param_type& parm) const
-    {
-        return static_cast<const base_type&>(*this)(eng, parm);
-    }
-
-    template<class Engine>
-    IntType operator()(Engine& eng, IntType n) const
-    {
-        BOOST_ASSERT(n > 0);
-        return static_cast<const base_type&>(*this)(eng, param_type(0, n - 1));
-    }
-};
-
-} // namespace boost
-
-#endif // BOOST_RANDOM_UNIFORM_INT_HPP
diff --git a/boost/random/uniform_int_distribution.hpp b/boost/random/uniform_int_distribution.hpp
deleted file mode 100644
index 0612028..0000000
--- a/boost/random/uniform_int_distribution.hpp
+++ /dev/null
@@ -1,400 +0,0 @@
-/* boost random/uniform_int_distribution.hpp header file
- *
- * Copyright Jens Maurer 2000-2001
- * Copyright Steven Watanabe 2011
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: uniform_int_distribution.hpp 71018 2011-04-05 21:27:52Z steven_watanabe $
- *
- * Revision history
- *  2001-04-08  added min<max assertion (N. Becker)
- *  2001-02-18  moved to individual header files
- */
-
-#ifndef BOOST_RANDOM_UNIFORM_INT_DISTRIBUTION_HPP
-#define BOOST_RANDOM_UNIFORM_INT_DISTRIBUTION_HPP
-
-#include <iosfwd>
-#include <ios>
-#include <istream>
-#include <boost/config.hpp>
-#include <boost/limits.hpp>
-#include <boost/assert.hpp>
-#include <boost/random/detail/config.hpp>
-#include <boost/random/detail/operators.hpp>
-#include <boost/random/detail/uniform_int_float.hpp>
-#include <boost/random/detail/signed_unsigned_tools.hpp>
-#include <boost/type_traits/make_unsigned.hpp>
-#include <boost/type_traits/is_integral.hpp>
-
-namespace boost {
-namespace random {
-namespace detail {
-    
-
-#ifdef BOOST_MSVC
-#pragma warning(push)
-// disable division by zero warning, since we can't
-// actually divide by zero.
-#pragma warning(disable:4723)
-#endif
-
-template<class Engine, class T>
-T generate_uniform_int(
-    Engine& eng, T min_value, T max_value,
-    boost::mpl::true_ /** is_integral<Engine::result_type> */)
-{
-    typedef T result_type;
-    typedef typename make_unsigned<T>::type range_type;
-    typedef typename Engine::result_type base_result;
-    // ranges are always unsigned
-    typedef typename make_unsigned<base_result>::type base_unsigned;
-    const range_type range = random::detail::subtract<result_type>()(max_value, min_value);
-    const base_result bmin = (eng.min)();
-    const base_unsigned brange =
-      random::detail::subtract<base_result>()((eng.max)(), (eng.min)());
-
-    if(range == 0) {
-      return min_value;    
-    } else if(brange == range) {
-      // this will probably never happen in real life
-      // basically nothing to do; just take care we don't overflow / underflow
-      base_unsigned v = random::detail::subtract<base_result>()(eng(), bmin);
-      return random::detail::add<base_unsigned, result_type>()(v, min_value);
-    } else if(brange < range) {
-      // use rejection method to handle things like 0..3 --> 0..4
-      for(;;) {
-        // concatenate several invocations of the base RNG
-        // take extra care to avoid overflows
-
-        //  limit == floor((range+1)/(brange+1))
-        //  Therefore limit*(brange+1) <= range+1
-        range_type limit;
-        if(range == (std::numeric_limits<range_type>::max)()) {
-          limit = range/(range_type(brange)+1);
-          if(range % (range_type(brange)+1) == range_type(brange))
-            ++limit;
-        } else {
-          limit = (range+1)/(range_type(brange)+1);
-        }
-
-        // We consider "result" as expressed to base (brange+1):
-        // For every power of (brange+1), we determine a random factor
-        range_type result = range_type(0);
-        range_type mult = range_type(1);
-
-        // loop invariants:
-        //  result < mult
-        //  mult <= range
-        while(mult <= limit) {
-          // Postcondition: result <= range, thus no overflow
-          //
-          // limit*(brange+1)<=range+1                   def. of limit       (1)
-          // eng()-bmin<=brange                          eng() post.         (2)
-          // and mult<=limit.                            loop condition      (3)
-          // Therefore mult*(eng()-bmin+1)<=range+1      by (1),(2),(3)      (4)
-          // Therefore mult*(eng()-bmin)+mult<=range+1   rearranging (4)     (5)
-          // result<mult                                 loop invariant      (6)
-          // Therefore result+mult*(eng()-bmin)<range+1  by (5), (6)         (7)
-          //
-          // Postcondition: result < mult*(brange+1)
-          //
-          // result<mult                                 loop invariant      (1)
-          // eng()-bmin<=brange                          eng() post.         (2)
-          // Therefore result+mult*(eng()-bmin) <
-          //           mult+mult*(eng()-bmin)            by (1)              (3)
-          // Therefore result+(eng()-bmin)*mult <
-          //           mult+mult*brange                  by (2), (3)         (4)
-          // Therefore result+(eng()-bmin)*mult <
-          //           mult*(brange+1)                   by (4)
-          result += static_cast<range_type>(random::detail::subtract<base_result>()(eng(), bmin) * mult);
-
-          // equivalent to (mult * (brange+1)) == range+1, but avoids overflow.
-          if(mult * range_type(brange) == range - mult + 1) {
-              // The destination range is an integer power of
-              // the generator's range.
-              return(result);
-          }
-
-          // Postcondition: mult <= range
-          // 
-          // limit*(brange+1)<=range+1                   def. of limit       (1)
-          // mult<=limit                                 loop condition      (2)
-          // Therefore mult*(brange+1)<=range+1          by (1), (2)         (3)
-          // mult*(brange+1)!=range+1                    preceding if        (4)
-          // Therefore mult*(brange+1)<range+1           by (3), (4)         (5)
-          // 
-          // Postcondition: result < mult
-          //
-          // See the second postcondition on the change to result. 
-          mult *= range_type(brange)+range_type(1);
-        }
-        // loop postcondition: range/mult < brange+1
-        //
-        // mult > limit                                  loop condition      (1)
-        // Suppose range/mult >= brange+1                Assumption          (2)
-        // range >= mult*(brange+1)                      by (2)              (3)
-        // range+1 > mult*(brange+1)                     by (3)              (4)
-        // range+1 > (limit+1)*(brange+1)                by (1), (4)         (5)
-        // (range+1)/(brange+1) > limit+1                by (5)              (6)
-        // limit < floor((range+1)/(brange+1))           by (6)              (7)
-        // limit==floor((range+1)/(brange+1))            def. of limit       (8)
-        // not (2)                                       reductio            (9)
-        //
-        // loop postcondition: (range/mult)*mult+(mult-1) >= range
-        //
-        // (range/mult)*mult + range%mult == range       identity            (1)
-        // range%mult < mult                             def. of %           (2)
-        // (range/mult)*mult+mult > range                by (1), (2)         (3)
-        // (range/mult)*mult+(mult-1) >= range           by (3)              (4)
-        //
-        // Note that the maximum value of result at this point is (mult-1),
-        // so after this final step, we generate numbers that can be
-        // at least as large as range.  We have to really careful to avoid
-        // overflow in this final addition and in the rejection.  Anything
-        // that overflows is larger than range and can thus be rejected.
-
-        // range/mult < brange+1  -> no endless loop
-        range_type result_increment =
-            generate_uniform_int(
-                eng,
-                static_cast<range_type>(0),
-                static_cast<range_type>(range/mult),
-                boost::mpl::true_());
-        if((std::numeric_limits<range_type>::max)() / mult < result_increment) {
-          // The multiplcation would overflow.  Reject immediately.
-          continue;
-        }
-        result_increment *= mult;
-        // unsigned integers are guaranteed to wrap on overflow.
-        result += result_increment;
-        if(result < result_increment) {
-          // The addition overflowed.  Reject.
-          continue;
-        }
-        if(result > range) {
-          // Too big.  Reject.
-          continue;
-        }
-        return random::detail::add<range_type, result_type>()(result, min_value);
-      }
-    } else {                   // brange > range
-      base_unsigned bucket_size;
-      // it's safe to add 1 to range, as long as we cast it first,
-      // because we know that it is less than brange.  However,
-      // we do need to be careful not to cause overflow by adding 1
-      // to brange.
-      if(brange == (std::numeric_limits<base_unsigned>::max)()) {
-        bucket_size = brange / (static_cast<base_unsigned>(range)+1);
-        if(brange % (static_cast<base_unsigned>(range)+1) == static_cast<base_unsigned>(range)) {
-          ++bucket_size;
-        }
-      } else {
-        bucket_size = (brange+1) / (static_cast<base_unsigned>(range)+1);
-      }
-      for(;;) {
-        base_unsigned result =
-          random::detail::subtract<base_result>()(eng(), bmin);
-        result /= bucket_size;
-        // result and range are non-negative, and result is possibly larger
-        // than range, so the cast is safe
-        if(result <= static_cast<base_unsigned>(range))
-          return random::detail::add<base_unsigned, result_type>()(result, min_value);
-      }
-    }
-}
-
-#ifdef BOOST_MSVC
-#pragma warning(pop)
-#endif
-
-template<class Engine, class T>
-inline T generate_uniform_int(
-    Engine& eng, T min_value, T max_value,
-    boost::mpl::false_ /** is_integral<Engine::result_type> */)
-{
-    uniform_int_float<Engine> wrapper(eng);
-    return generate_uniform_int(wrapper, min_value, max_value, boost::mpl::true_());
-}
-
-template<class Engine, class T>
-inline T generate_uniform_int(Engine& eng, T min_value, T max_value)
-{
-    typedef typename Engine::result_type base_result;
-    return generate_uniform_int(eng, min_value, max_value,
-        boost::is_integral<base_result>());
-}
-
-}
-
-/**
- * The class template uniform_int_distribution models a \random_distribution.
- * On each invocation, it returns a random integer value uniformly
- * distributed in the set of integers {min, min+1, min+2, ..., max}.
- *
- * The template parameter IntType shall denote an integer-like value type.
- */
-template<class IntType = int>
-class uniform_int_distribution
-{
-public:
-    typedef IntType input_type;
-    typedef IntType result_type;
-
-    class param_type
-    {
-    public:
-
-        typedef uniform_int_distribution distribution_type;
-
-        /**
-         * Constructs the parameters of a uniform_int_distribution.
-         *
-         * Requires min <= max
-         */
-        explicit param_type(
-            IntType min_arg = 0,
-            IntType max_arg = (std::numeric_limits<IntType>::max)())
-          : _min(min_arg), _max(max_arg)
-        {
-            BOOST_ASSERT(_min <= _max);
-        }
-
-        /** Returns the minimum value of the distribution. */
-        IntType a() const { return _min; }
-        /** Returns the maximum value of the distribution. */
-        IntType b() const { return _max; }
-
-        /** Writes the parameters to a @c std::ostream. */
-        BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, param_type, parm)
-        {
-            os << parm._min << " " << parm._max;
-            return os;
-        }
-
-        /** Reads the parameters from a @c std::istream. */
-        BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, param_type, parm)
-        {
-            IntType min_in, max_in;
-            if(is >> min_in >> std::ws >> max_in) {
-                if(min_in <= max_in) {
-                    parm._min = min_in;
-                    parm._max = max_in;
-                } else {
-                    is.setstate(std::ios_base::failbit);
-                }
-            }
-            return is;
-        }
-
-        /** Returns true if the two sets of parameters are equal. */
-        BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(param_type, lhs, rhs)
-        { return lhs._min == rhs._min && lhs._max == rhs._max; }
-
-        /** Returns true if the two sets of parameters are different. */
-        BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(param_type)
-
-    private:
-
-        IntType _min;
-        IntType _max;
-    };
-
-    /**
-     * Constructs a uniform_int_distribution. @c min and @c max are
-     * the parameters of the distribution.
-     *
-     * Requires: min <= max
-     */
-    explicit uniform_int_distribution(
-        IntType min_arg = 0,
-        IntType max_arg = (std::numeric_limits<IntType>::max)())
-      : _min(min_arg), _max(max_arg)
-    {
-        BOOST_ASSERT(min_arg <= max_arg);
-    }
-    /** Constructs a uniform_int_distribution from its parameters. */
-    explicit uniform_int_distribution(const param_type& parm)
-      : _min(parm.a()), _max(parm.b()) {}
-
-    /**  Returns the minimum value of the distribution */
-    IntType min BOOST_PREVENT_MACRO_SUBSTITUTION () const { return _min; }
-    /**  Returns the maximum value of the distribution */
-    IntType max BOOST_PREVENT_MACRO_SUBSTITUTION () const { return _max; }
-
-    /**  Returns the minimum value of the distribution */
-    IntType a() const { return _min; }
-    /**  Returns the maximum value of the distribution */
-    IntType b() const { return _max; }
-
-    /** Returns the parameters of the distribution. */
-    param_type param() const { return param_type(_min, _max); }
-    /** Sets the parameters of the distribution. */
-    void param(const param_type& parm)
-    {
-        _min = parm.a();
-        _max = parm.b();
-    }
-
-    /**
-     * Effects: Subsequent uses of the distribution do not depend
-     * on values produced by any engine prior to invoking reset.
-     */
-    void reset() { }
-
-    /** Returns an integer uniformly distributed in the range [min, max]. */
-    template<class Engine>
-    result_type operator()(Engine& eng) const
-    { return detail::generate_uniform_int(eng, _min, _max); }
-
-    /**
-     * Returns an integer uniformly distributed in the range
-     * [param.a(), param.b()].
-     */
-    template<class Engine>
-    result_type operator()(Engine& eng, const param_type& parm) const
-    { return detail::generate_uniform_int(eng, parm.a(), parm.b()); }
-
-    /** Writes the distribution to a @c std::ostream. */
-    BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, uniform_int_distribution, ud)
-    {
-        os << ud.param();
-        return os;
-    }
-
-    /** Reads the distribution from a @c std::istream. */
-    BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, uniform_int_distribution, ud)
-    {
-        param_type parm;
-        if(is >> parm) {
-            ud.param(parm);
-        }
-        return is;
-    }
-
-    /**
-     * Returns true if the two distributions will produce identical sequences
-     * of values given equal generators.
-     */
-    BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(uniform_int_distribution, lhs, rhs)
-    { return lhs._min == rhs._min && lhs._max == rhs._max; }
-    
-    /**
-     * Returns true if the two distributions may produce different sequences
-     * of values given equal generators.
-     */
-    BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(uniform_int_distribution)
-
-private:
-    IntType _min;
-    IntType _max;
-};
-
-} // namespace random
-} // namespace boost
-
-#endif // BOOST_RANDOM_UNIFORM_INT_HPP
diff --git a/boost/random/uniform_on_sphere.hpp b/boost/random/uniform_on_sphere.hpp
deleted file mode 100644
index 04071dc..0000000
--- a/boost/random/uniform_on_sphere.hpp
+++ /dev/null
@@ -1,229 +0,0 @@
-/* boost random/uniform_on_sphere.hpp header file
- *
- * Copyright Jens Maurer 2000-2001
- * Copyright Steven Watanabe 2011
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: uniform_on_sphere.hpp 71018 2011-04-05 21:27:52Z steven_watanabe $
- *
- * Revision history
- *  2001-02-18  moved to individual header files
- */
-
-#ifndef BOOST_RANDOM_UNIFORM_ON_SPHERE_HPP
-#define BOOST_RANDOM_UNIFORM_ON_SPHERE_HPP
-
-#include <vector>
-#include <algorithm>     // std::transform
-#include <functional>    // std::bind2nd, std::divides
-#include <boost/assert.hpp>
-#include <boost/random/detail/config.hpp>
-#include <boost/random/detail/operators.hpp>
-#include <boost/random/normal_distribution.hpp>
-
-namespace boost {
-namespace random {
-
-/**
- * Instantiations of class template uniform_on_sphere model a
- * \random_distribution. Such a distribution produces random
- * numbers uniformly distributed on the unit sphere of arbitrary
- * dimension @c dim. The @c Cont template parameter must be a STL-like
- * container type with begin and end operations returning non-const
- * ForwardIterators of type @c Cont::iterator. 
- */
-template<class RealType = double, class Cont = std::vector<RealType> >
-class uniform_on_sphere
-{
-public:
-    typedef RealType input_type;
-    typedef Cont result_type;
-
-    class param_type
-    {
-    public:
-
-        typedef uniform_on_sphere distribution_type;
-
-        /**
-         * Constructs the parameters of a uniform_on_sphere
-         * distribution, given the dimension of the sphere.
-         */
-        explicit param_type(int dim_arg = 2) : _dim(dim_arg)
-        {
-            BOOST_ASSERT(_dim >= 0);
-        }
-
-        /** Returns the dimension of the sphere. */
-        int dim() const { return _dim; }
-
-        /** Writes the parameters to a @c std::ostream. */
-        BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, param_type, parm)
-        {
-            os << parm._dim;
-            return os;
-        }
-
-        /** Reads the parameters from a @c std::istream. */
-        BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, param_type, parm)
-        {
-            is >> parm._dim;
-            return is;
-        }
-
-        /** Returns true if the two sets of parameters are equal. */
-        BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(param_type, lhs, rhs)
-        { return lhs._dim == rhs._dim; }
-
-        /** Returns true if the two sets of parameters are different. */
-        BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(param_type)
-
-    private:
-        int _dim;
-    };
-
-    /**
-     * Constructs a @c uniform_on_sphere distribution.
-     * @c dim is the dimension of the sphere.
-     *
-     * Requires: dim >= 0
-     */
-    explicit uniform_on_sphere(int dim_arg = 2)
-      : _container(dim_arg), _dim(dim_arg) { }
-
-    /**
-     * Constructs a @c uniform_on_sphere distribution from its parameters.
-     */
-    explicit uniform_on_sphere(const param_type& parm)
-      : _container(parm.dim()), _dim(parm.dim()) { }
-
-    // compiler-generated copy ctor and assignment operator are fine
-
-    /** Returns the dimension of the sphere. */
-    int dim() const { return _dim; }
-
-    /** Returns the parameters of the distribution. */
-    param_type param() const { return param_type(_dim); }
-    /** Sets the parameters of the distribution. */
-    void param(const param_type& parm)
-    {
-        _dim = parm.dim();
-        _container.resize(_dim);
-    }
-
-    /**
-     * Returns the smallest value that the distribution can produce.
-     * Note that this is required to approximate the standard library's
-     * requirements.  The behavior is defined according to lexicographical
-     * comparison so that for a container type of std::vector,
-     * dist.min() <= x <= dist.max() where x is any value produced
-     * by the distribution.
-     */
-    result_type min BOOST_PREVENT_MACRO_SUBSTITUTION () const
-    {
-        result_type result(_dim);
-        if(_dim != 0) {
-            result.front() = RealType(-1.0);
-        }
-        return result;
-    }
-    /**
-     * Returns the largest value that the distribution can produce.
-     * Note that this is required to approximate the standard library's
-     * requirements.  The behavior is defined according to lexicographical
-     * comparison so that for a container type of std::vector,
-     * dist.min() <= x <= dist.max() where x is any value produced
-     * by the distribution.
-     */
-    result_type max BOOST_PREVENT_MACRO_SUBSTITUTION () const
-    {
-        result_type result(_dim);
-        if(_dim != 0) {
-            result.front() = RealType(1.0);
-        }
-        return result;
-    }
-
-    /**
-     * Effects: Subsequent uses of the distribution do not depend
-     * on values produced by any engine prior to invoking reset.
-     */
-    void reset() { _normal.reset(); }
-
-    /**
-     * Returns a point uniformly distributed over the surface of
-     * a sphere of dimension dim().
-     */
-    template<class Engine>
-    const result_type & operator()(Engine& eng)
-    {
-        RealType sqsum = 0;
-        for(typename Cont::iterator it = _container.begin();
-            it != _container.end();
-            ++it) {
-            RealType val = _normal(eng);
-            *it = val;
-            sqsum += val * val;
-        }
-        using std::sqrt;
-        // for all i: result[i] /= sqrt(sqsum)
-        std::transform(_container.begin(), _container.end(), _container.begin(),
-                       std::bind2nd(std::divides<RealType>(), sqrt(sqsum)));
-        return _container;
-    }
-
-    /**
-     * Returns a point uniformly distributed over the surface of
-     * a sphere of dimension param.dim().
-     */
-    template<class Engine>
-    result_type operator()(Engine& eng, const param_type& parm) const
-    {
-        return uniform_on_sphere(parm)(eng);
-    }
-
-    /** Writes the distribution to a @c std::ostream. */
-    BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, uniform_on_sphere, sd)
-    {
-        os << sd._dim;
-        return os;
-    }
-
-    /** Reads the distribution from a @c std::istream. */
-    BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, uniform_on_sphere, sd)
-    {
-        is >> sd._dim;
-        sd._container.resize(sd._dim);
-        return is;
-    }
-
-    /**
-     * Returns true if the two distributions will produce identical
-     * sequences of values, given equal generators.
-     */
-    BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(uniform_on_sphere, lhs, rhs)
-    { return lhs._dim == rhs._dim && lhs._normal == rhs._normal; }
-
-    /**
-     * Returns true if the two distributions may produce different
-     * sequences of values, given equal generators.
-     */
-    BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(uniform_on_sphere)
-
-private:
-    normal_distribution<RealType> _normal;
-    result_type _container;
-    int _dim;
-};
-
-} // namespace random
-
-using random::uniform_on_sphere;
-
-} // namespace boost
-
-#endif // BOOST_RANDOM_UNIFORM_ON_SPHERE_HPP
diff --git a/boost/random/uniform_real.hpp b/boost/random/uniform_real.hpp
deleted file mode 100644
index 396072e..0000000
--- a/boost/random/uniform_real.hpp
+++ /dev/null
@@ -1,82 +0,0 @@
-/* boost random/uniform_real.hpp header file
- *
- * Copyright Jens Maurer 2000-2001
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: uniform_real.hpp 71018 2011-04-05 21:27:52Z steven_watanabe $
- *
- * Revision history
- *  2001-04-08  added min<max assertion (N. Becker)
- *  2001-02-18  moved to individual header files
- */
-
-#ifndef BOOST_RANDOM_UNIFORM_REAL_HPP
-#define BOOST_RANDOM_UNIFORM_REAL_HPP
-
-#include <boost/assert.hpp>
-#include <boost/config.hpp>
-#include <boost/limits.hpp>
-#include <boost/random/uniform_real_distribution.hpp>
-
-namespace boost {
-
-/**
- * The distribution function uniform_real models a random distribution.
- * On each invocation, it returns a random floating-point value uniformly
- * distributed in the range [min..max).
- *
- * This class is deprecated.  Please use @c uniform_real_distribution in
- * new code.
- */
-template<class RealType = double>
-class uniform_real : public random::uniform_real_distribution<RealType>
-{
-    typedef random::uniform_real_distribution<RealType> base_type;
-public:
-
-    class param_type : public base_type::param_type
-    {
-    public:
-        typedef uniform_real distribution_type;
-        /**
-         * Constructs the parameters of a uniform_real distribution.
-         *
-         * Requires: min <= max
-         */
-        explicit param_type(RealType min_arg = RealType(0.0),
-                            RealType max_arg = RealType(1.0))
-          : base_type::param_type(min_arg, max_arg)
-        {}
-    };
-
-    /**
-     * Constructs a uniform_real object. @c min and @c max are the
-     * parameters of the distribution.
-     *
-     * Requires: min <= max
-     */
-    explicit uniform_real(RealType min_arg = RealType(0.0),
-                          RealType max_arg = RealType(1.0))
-      : base_type(min_arg, max_arg)
-    {
-        BOOST_ASSERT(min_arg <= max_arg);
-    }
-
-    /** Constructs a uniform_real distribution from its parameters. */
-    explicit uniform_real(const param_type& parm)
-      : base_type(parm)
-    {}
-
-    /** Returns the parameters of the distribution */
-    param_type param() const { return param_type(this->a(), this->b()); }
-    /** Sets the parameters of the distribution. */
-    void param(const param_type& parm) { this->base_type::param(parm); }
-};
-
-} // namespace boost
-
-#endif // BOOST_RANDOM_UNIFORM_REAL_HPP
diff --git a/boost/random/uniform_real_distribution.hpp b/boost/random/uniform_real_distribution.hpp
deleted file mode 100644
index 61b235a..0000000
--- a/boost/random/uniform_real_distribution.hpp
+++ /dev/null
@@ -1,239 +0,0 @@
-/* boost random/uniform_real_distribution.hpp header file
- *
- * Copyright Jens Maurer 2000-2001
- * Copyright Steven Watanabe 2011
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: uniform_real_distribution.hpp 71018 2011-04-05 21:27:52Z steven_watanabe $
- *
- */
-
-#ifndef BOOST_RANDOM_UNIFORM_REAL_DISTRIBUTION_HPP
-#define BOOST_RANDOM_UNIFORM_REAL_DISTRIBUTION_HPP
-
-#include <iosfwd>
-#include <ios>
-#include <istream>
-#include <boost/assert.hpp>
-#include <boost/config.hpp>
-#include <boost/random/detail/config.hpp>
-#include <boost/random/detail/operators.hpp>
-#include <boost/random/detail/signed_unsigned_tools.hpp>
-#include <boost/type_traits/is_integral.hpp>
-
-namespace boost {
-namespace random {
-namespace detail {
-
-template<class Engine, class T>
-T generate_uniform_real(
-    Engine& eng, T min_value, T max_value,
-    boost::mpl::false_  /** is_integral<Engine::result_type> */)
-{
-    for(;;) {
-        typedef T result_type;
-        typedef typename Engine::result_type base_result;
-        result_type numerator = static_cast<T>(eng() - (eng.min)());
-        result_type divisor = static_cast<T>((eng.max)() - (eng.min)());
-        BOOST_ASSERT(divisor > 0);
-        BOOST_ASSERT(numerator >= 0 && numerator <= divisor);
-        T result = numerator / divisor * (max_value - min_value) + min_value;
-        if(result < max_value) return result;
-    }
-}
-
-template<class Engine, class T>
-T generate_uniform_real(
-    Engine& eng, T min_value, T max_value,
-    boost::mpl::true_  /** is_integral<Engine::result_type> */)
-{
-    for(;;) {
-        typedef T result_type;
-        typedef typename Engine::result_type base_result;
-        result_type numerator = static_cast<T>(subtract<base_result>()(eng(), (eng.min)()));
-        result_type divisor = static_cast<T>(subtract<base_result>()((eng.max)(), (eng.min)())) + 1;
-        BOOST_ASSERT(divisor > 0);
-        BOOST_ASSERT(numerator >= 0 && numerator <= divisor);
-        T result = numerator / divisor * (max_value - min_value) + min_value;
-        if(result < max_value) return result;
-    }
-}
-
-template<class Engine, class T>
-inline T generate_uniform_real(Engine& eng, T min_value, T max_value)
-{
-    typedef typename Engine::result_type base_result;
-    return generate_uniform_real(eng, min_value, max_value,
-        boost::is_integral<base_result>());
-}
-
-}
-
-/**
- * The class template uniform_real_distribution models a \random_distribution.
- * On each invocation, it returns a random floating-point value uniformly
- * distributed in the range [min..max).
- */
-template<class RealType = double>
-class uniform_real_distribution
-{
-public:
-    typedef RealType input_type;
-    typedef RealType result_type;
-
-    class param_type
-    {
-    public:
-
-        typedef uniform_real_distribution distribution_type;
-
-        /**
-         * Constructs the parameters of a uniform_real_distribution.
-         *
-         * Requires min <= max
-         */
-        explicit param_type(RealType min_arg = RealType(0.0),
-                            RealType max_arg = RealType(1.0))
-          : _min(min_arg), _max(max_arg)
-        {
-            BOOST_ASSERT(_min <= _max);
-        }
-
-        /** Returns the minimum value of the distribution. */
-        RealType a() const { return _min; }
-        /** Returns the maximum value of the distribution. */
-        RealType b() const { return _max; }
-
-        /** Writes the parameters to a @c std::ostream. */
-        BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, param_type, parm)
-        {
-            os << parm._min << " " << parm._max;
-            return os;
-        }
-
-        /** Reads the parameters from a @c std::istream. */
-        BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, param_type, parm)
-        {
-            RealType min_in, max_in;
-            if(is >> min_in >> std::ws >> max_in) {
-                if(min_in <= max_in) {
-                    parm._min = min_in;
-                    parm._max = max_in;
-                } else {
-                    is.setstate(std::ios_base::failbit);
-                }
-            }
-            return is;
-        }
-
-        /** Returns true if the two sets of parameters are equal. */
-        BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(param_type, lhs, rhs)
-        { return lhs._min == rhs._min && lhs._max == rhs._max; }
-
-        /** Returns true if the two sets of parameters are different. */
-        BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(param_type)
-
-    private:
-
-        RealType _min;
-        RealType _max;
-    };
-
-    /**
-     * Constructs a uniform_real_distribution. @c min and @c max are
-     * the parameters of the distribution.
-     *
-     * Requires: min <= max
-     */
-    explicit uniform_real_distribution(
-        RealType min_arg = RealType(0.0),
-        RealType max_arg = RealType(1.0))
-      : _min(min_arg), _max(max_arg)
-    {
-        BOOST_ASSERT(min_arg <= max_arg);
-    }
-    /** Constructs a uniform_real_distribution from its parameters. */
-    explicit uniform_real_distribution(const param_type& parm)
-      : _min(parm.a()), _max(parm.b()) {}
-
-    /**  Returns the minimum value of the distribution */
-    RealType min BOOST_PREVENT_MACRO_SUBSTITUTION () const { return _min; }
-    /**  Returns the maximum value of the distribution */
-    RealType max BOOST_PREVENT_MACRO_SUBSTITUTION () const { return _max; }
-
-    /**  Returns the minimum value of the distribution */
-    RealType a() const { return _min; }
-    /**  Returns the maximum value of the distribution */
-    RealType b() const { return _max; }
-
-    /** Returns the parameters of the distribution. */
-    param_type param() const { return param_type(_min, _max); }
-    /** Sets the parameters of the distribution. */
-    void param(const param_type& parm)
-    {
-        _min = parm.a();
-        _max = parm.b();
-    }
-
-    /**
-     * Effects: Subsequent uses of the distribution do not depend
-     * on values produced by any engine prior to invoking reset.
-     */
-    void reset() { }
-
-    /** Returns a value uniformly distributed in the range [min, max). */
-    template<class Engine>
-    result_type operator()(Engine& eng) const
-    { return detail::generate_uniform_real(eng, _min, _max); }
-
-    /**
-     * Returns a value uniformly distributed in the range
-     * [param.a(), param.b()).
-     */
-    template<class Engine>
-    result_type operator()(Engine& eng, const param_type& parm) const
-    { return detail::generate_uniform_real(eng, parm.a(), parm.b()); }
-
-    /** Writes the distribution to a @c std::ostream. */
-    BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, uniform_real_distribution, ud)
-    {
-        os << ud.param();
-        return os;
-    }
-
-    /** Reads the distribution from a @c std::istream. */
-    BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, uniform_real_distribution, ud)
-    {
-        param_type parm;
-        if(is >> parm) {
-            ud.param(parm);
-        }
-        return is;
-    }
-
-    /**
-     * Returns true if the two distributions will produce identical sequences
-     * of values given equal generators.
-     */
-    BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(uniform_real_distribution, lhs, rhs)
-    { return lhs._min == rhs._min && lhs._max == rhs._max; }
-    
-    /**
-     * Returns true if the two distributions may produce different sequences
-     * of values given equal generators.
-     */
-    BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(uniform_real_distribution)
-
-private:
-    RealType _min;
-    RealType _max;
-};
-
-} // namespace random
-} // namespace boost
-
-#endif // BOOST_RANDOM_UNIFORM_INT_HPP
diff --git a/boost/random/uniform_smallint.hpp b/boost/random/uniform_smallint.hpp
deleted file mode 100644
index 745fa8e..0000000
--- a/boost/random/uniform_smallint.hpp
+++ /dev/null
@@ -1,288 +0,0 @@
-/* boost random/uniform_smallint.hpp header file
- *
- * Copyright Jens Maurer 2000-2001
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: uniform_smallint.hpp 71018 2011-04-05 21:27:52Z steven_watanabe $
- *
- * Revision history
- *  2001-04-08  added min<max assertion (N. Becker)
- *  2001-02-18  moved to individual header files
- */
-
-#ifndef BOOST_RANDOM_UNIFORM_SMALLINT_HPP
-#define BOOST_RANDOM_UNIFORM_SMALLINT_HPP
-
-#include <istream>
-#include <iosfwd>
-#include <boost/assert.hpp>
-#include <boost/config.hpp>
-#include <boost/limits.hpp>
-#include <boost/type_traits/is_integral.hpp>
-#include <boost/random/detail/config.hpp>
-#include <boost/random/detail/operators.hpp>
-#include <boost/random/detail/signed_unsigned_tools.hpp>
-#include <boost/random/uniform_01.hpp>
-#include <boost/detail/workaround.hpp>
-
-namespace boost {
-namespace random {
-
-// uniform integer distribution on a small range [min, max]
-
-/**
- * The distribution function uniform_smallint models a \random_distribution.
- * On each invocation, it returns a random integer value uniformly distributed
- * in the set of integer numbers {min, min+1, min+2, ..., max}. It assumes
- * that the desired range (max-min+1) is small compared to the range of the
- * underlying source of random numbers and thus makes no attempt to limit
- * quantization errors.
- *
- * Let \f$r_{\mathtt{out}} = (\mbox{max}-\mbox{min}+1)\f$ the desired range of
- * integer numbers, and
- * let \f$r_{\mathtt{base}}\f$ be the range of the underlying source of random
- * numbers. Then, for the uniform distribution, the theoretical probability
- * for any number i in the range \f$r_{\mathtt{out}}\f$ will be
- * \f$\displaystyle p_{\mathtt{out}}(i) = \frac{1}{r_{\mathtt{out}}}\f$.
- * Likewise, assume a uniform distribution on \f$r_{\mathtt{base}}\f$ for
- * the underlying source of random numbers, i.e.
- * \f$\displaystyle p_{\mathtt{base}}(i) = \frac{1}{r_{\mathtt{base}}}\f$.
- * Let \f$p_{\mathtt{out\_s}}(i)\f$ denote the random
- * distribution generated by @c uniform_smallint. Then the sum over all
- * i in \f$r_{\mathtt{out}}\f$ of
- * \f$\displaystyle
- * \left(\frac{p_{\mathtt{out\_s}}(i)}{p_{\mathtt{out}}(i)} - 1\right)^2\f$
- * shall not exceed
- * \f$\displaystyle \frac{r_{\mathtt{out}}}{r_{\mathtt{base}}^2}
- * (r_{\mathtt{base}} \mbox{ mod } r_{\mathtt{out}})
- * (r_{\mathtt{out}} - r_{\mathtt{base}} \mbox{ mod } r_{\mathtt{out}})\f$.
- *
- * The template parameter IntType shall denote an integer-like value type.
- *
- * @xmlnote
- * The property above is the square sum of the relative differences
- * in probabilities between the desired uniform distribution
- * \f$p_{\mathtt{out}}(i)\f$ and the generated distribution
- * \f$p_{\mathtt{out\_s}}(i)\f$.
- * The property can be fulfilled with the calculation
- * \f$(\mbox{base\_rng} \mbox{ mod } r_{\mathtt{out}})\f$, as follows:
- * Let \f$r = r_{\mathtt{base}} \mbox{ mod } r_{\mathtt{out}}\f$.
- * The base distribution on \f$r_{\mathtt{base}}\f$ is folded onto the
- * range \f$r_{\mathtt{out}}\f$. The numbers i < r have assigned
- * \f$\displaystyle
- * \left\lfloor\frac{r_{\mathtt{base}}}{r_{\mathtt{out}}}\right\rfloor+1\f$
- * numbers of the base distribution, the rest has only \f$\displaystyle
- * \left\lfloor\frac{r_{\mathtt{base}}}{r_{\mathtt{out}}}\right\rfloor\f$.
- * Therefore,
- * \f$\displaystyle p_{\mathtt{out\_s}}(i) =
- * \left(\left\lfloor\frac{r_{\mathtt{base}}}
- * {r_{\mathtt{out}}}\right\rfloor+1\right) /
- * r_{\mathtt{base}}\f$ for i < r and \f$\displaystyle p_{\mathtt{out\_s}}(i) =
- * \left\lfloor\frac{r_{\mathtt{base}}}
- * {r_{\mathtt{out}}}\right\rfloor/r_{\mathtt{base}}\f$ otherwise.
- * Substituting this in the
- * above sum formula leads to the desired result.
- * @endxmlnote
- *
- * Note: The upper bound for
- * \f$(r_{\mathtt{base}} \mbox{ mod } r_{\mathtt{out}})
- * (r_{\mathtt{out}} - r_{\mathtt{base}} \mbox{ mod } r_{\mathtt{out}})\f$ is
- * \f$\displaystyle \frac{r_{\mathtt{out}}^2}{4}\f$.  Regarding the upper bound
- * for the square sum of the relative quantization error of
- * \f$\displaystyle \frac{r_\mathtt{out}^3}{4r_{\mathtt{base}}^2}\f$, it
- * seems wise to either choose \f$r_{\mathtt{base}}\f$ so that
- * \f$r_{\mathtt{base}} > 10r_{\mathtt{out}}^2\f$ or ensure that
- * \f$r_{\mathtt{base}}\f$ is
- * divisible by \f$r_{\mathtt{out}}\f$.
- */
-template<class IntType = int>
-class uniform_smallint
-{
-public:
-    typedef IntType input_type;
-    typedef IntType result_type;
-
-    class param_type
-    {
-    public:
-
-        typedef uniform_smallint distribution_type;
-
-        /** constructs the parameters of a @c uniform_smallint distribution. */
-        param_type(IntType min_arg = 0, IntType max_arg = 9)
-          : _min(min_arg), _max(max_arg)
-        {
-            BOOST_ASSERT(_min <= _max);
-        }
-
-        /** Returns the minimum value. */
-        IntType a() const { return _min; }
-        /** Returns the maximum value. */
-        IntType b() const { return _max; }
-        
-
-        /** Writes the parameters to a @c std::ostream. */
-        BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, param_type, parm)
-        {
-            os << parm._min << " " << parm._max;
-            return os;
-        }
-    
-        /** Reads the parameters from a @c std::istream. */
-        BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, param_type, parm)
-        {
-            is >> parm._min >> std::ws >> parm._max;
-            return is;
-        }
-
-        /** Returns true if the two sets of parameters are equal. */
-        BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(param_type, lhs, rhs)
-        { return lhs._min == rhs._min && lhs._max == rhs._max; }
-
-        /** Returns true if the two sets of parameters are different. */
-        BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(param_type)
-
-    private:
-        IntType _min;
-        IntType _max;
-    };
-
-    /**
-     * Constructs a @c uniform_smallint. @c min and @c max are the
-     * lower and upper bounds of the output range, respectively.
-     */
-    explicit uniform_smallint(IntType min_arg = 0, IntType max_arg = 9)
-      : _min(min_arg), _max(max_arg) {}
-
-    /**
-     * Constructs a @c uniform_smallint from its parameters.
-     */
-    explicit uniform_smallint(const param_type& parm)
-      : _min(parm.a()), _max(parm.b()) {}
-
-    /** Returns the minimum value of the distribution. */
-    result_type a() const { return _min; }
-    /** Returns the maximum value of the distribution. */
-    result_type b() const { return _max; }
-    /** Returns the minimum value of the distribution. */
-    result_type min BOOST_PREVENT_MACRO_SUBSTITUTION () const { return _min; }
-    /** Returns the maximum value of the distribution. */
-    result_type max BOOST_PREVENT_MACRO_SUBSTITUTION () const { return _max; }
-
-    /** Returns the parameters of the distribution. */
-    param_type param() const { return param_type(_min, _max); }
-    /** Sets the parameters of the distribution. */
-    void param(const param_type& parm)
-    {
-        _min = parm.a();
-        _max = parm.b();
-    }
-
-    /**
-     * Effects: Subsequent uses of the distribution do not depend
-     * on values produced by any engine prior to invoking reset.
-     */
-    void reset() { }
-
-    /** Returns a value uniformly distributed in the range [min(), max()]. */
-    template<class Engine>
-    result_type operator()(Engine& eng) const
-    {
-        typedef typename Engine::result_type base_result;
-        return generate(eng, boost::is_integral<base_result>());
-    }
-
-    /** Returns a value uniformly distributed in the range [param.a(), param.b()]. */
-    template<class Engine>
-    result_type operator()(Engine& eng, const param_type& parm) const
-    { return uniform_smallint(parm)(eng); }
-
-    /** Writes the distribution to a @c std::ostream. */
-    BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, uniform_smallint, ud)
-    {
-        os << ud._min << " " << ud._max;
-        return os;
-    }
-    
-    /** Reads the distribution from a @c std::istream. */
-    BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, uniform_smallint, ud)
-    {
-        is >> ud._min >> std::ws >> ud._max;
-        return is;
-    }
-
-    /**
-     * Returns true if the two distributions will produce identical
-     * sequences of values given equal generators.
-     */
-    BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(uniform_smallint, lhs, rhs)
-    { return lhs._min == rhs._min && lhs._max == rhs._max; }
-    
-    /**
-     * Returns true if the two distributions may produce different
-     * sequences of values given equal generators.
-     */
-    BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(uniform_smallint)
-
-private:
-    
-    // \cond show_private
-    template<class Engine>
-    result_type generate(Engine& eng, boost::mpl::true_) const
-    {
-        // equivalent to (eng() - eng.min()) % (_max - _min + 1) + _min,
-        // but guarantees no overflow.
-        typedef typename Engine::result_type base_result;
-        typedef typename boost::make_unsigned<base_result>::type base_unsigned;
-        typedef typename boost::make_unsigned<result_type>::type range_type;
-        range_type range = random::detail::subtract<result_type>()(_max, _min);
-        base_unsigned base_range =
-            random::detail::subtract<result_type>()((eng.max)(), (eng.min)());
-        base_unsigned val =
-            random::detail::subtract<base_result>()(eng(), (eng.min)());
-        if(range >= base_range) {
-            return boost::random::detail::add<range_type, result_type>()(
-                static_cast<range_type>(val), _min);
-        } else {
-            base_unsigned modulus = static_cast<base_unsigned>(range) + 1;
-            return boost::random::detail::add<range_type, result_type>()(
-                static_cast<range_type>(val % modulus), _min);
-        }
-    }
-    
-    template<class Engine>
-    result_type generate(Engine& eng, boost::mpl::false_) const
-    {
-        typedef typename Engine::result_type base_result;
-        typedef typename boost::make_unsigned<result_type>::type range_type;
-        range_type range = random::detail::subtract<result_type>()(_max, _min);
-        base_result val = boost::uniform_01<base_result>()(eng);
-        // what is the worst that can possibly happen here?
-        // base_result may not be able to represent all the values in [0, range]
-        // exactly.  If this happens, it will cause round off error and we
-        // won't be able to produce all the values in the range.  We don't
-        // care about this because the user has already told us not to by
-        // using uniform_smallint.  However, we do need to be careful
-        // to clamp the result, or floating point rounding can produce
-        // an out of range result.
-        range_type offset = static_cast<range_type>(val * (static_cast<base_result>(range) + 1));
-        if(offset > range) return _max;
-        return boost::random::detail::add<range_type, result_type>()(offset , _min);
-    }
-    // \endcond
-
-    result_type _min;
-    result_type _max;
-};
-
-} // namespace random
-
-using random::uniform_smallint;
-
-} // namespace boost
-
-#endif // BOOST_RANDOM_UNIFORM_SMALLINT_HPP
diff --git a/boost/random/variate_generator.hpp b/boost/random/variate_generator.hpp
deleted file mode 100644
index ac69800..0000000
--- a/boost/random/variate_generator.hpp
+++ /dev/null
@@ -1,122 +0,0 @@
-/* boost random/variate_generator.hpp header file
- *
- * Copyright Jens Maurer 2002
- * Copyright Steven Watanabe 2011
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: variate_generator.hpp 71018 2011-04-05 21:27:52Z steven_watanabe $
- *
- */
-
-#ifndef BOOST_RANDOM_RANDOM_GENERATOR_HPP
-#define BOOST_RANDOM_RANDOM_GENERATOR_HPP
-
-#include <boost/random/detail/ptr_helper.hpp>
-
-#include <boost/random/detail/disable_warnings.hpp>
-
-namespace boost {
-
-/// \cond hide_private_members
-
-namespace random {
-
-///\endcond
-
-/**
- * A random variate generator is used to join a random number
- * generator together with a random number distribution.
- * Boost.Random provides a vast choice of \generators as well
- * as \distributions.
- *
- * The argument for the template parameter Engine shall be of
- * the form U, U&, or U*, where U models a
- * \uniform_random_number_generator.  Then, the member
- * engine_value_type names U (not the pointer or reference to U).
- *
- * Specializations of @c variate_generator satisfy the
- * requirements of CopyConstructible. They also satisfy the
- * requirements of Assignable unless the template parameter
- * Engine is of the form U&.
- *
- * The complexity of all functions specified in this section
- * is constant. No function described in this section except
- * the constructor throws an exception.
- */
-template<class Engine, class Distribution>
-class variate_generator
-{
-private:
-    typedef boost::random::detail::ptr_helper<Engine> helper_type;
-public:
-    typedef typename helper_type::value_type engine_value_type;
-    typedef Engine engine_type;
-    typedef Distribution distribution_type;
-    typedef typename Distribution::result_type result_type;
-
-    /**
-     * Constructs a @c variate_generator object with the associated
-     * \uniform_random_number_generator eng and the associated
-     * \random_distribution d.
-     *
-     * Throws: If and what the copy constructor of Engine or
-     * Distribution throws.
-     */
-    variate_generator(Engine e, Distribution d)
-      : _eng(e), _dist(d) { }
-
-    /** Returns: distribution()(engine()) */
-    result_type operator()() { return _dist(engine()); }
-    /**
-     * Returns: distribution()(engine(), value).
-     */
-    template<class T>
-    result_type operator()(const T& value) { return _dist(engine(), value); }
-
-    /**
-     * Returns: A reference to the associated uniform random number generator.
-     */
-    engine_value_type& engine() { return helper_type::ref(_eng); }
-    /**
-     * Returns: A reference to the associated uniform random number generator.
-     */
-    const engine_value_type& engine() const { return helper_type::ref(_eng); }
-
-    /** Returns: A reference to the associated \random_distribution. */
-    distribution_type& distribution() { return _dist; }
-    /**
-     * Returns: A reference to the associated random distribution.
-     */
-    const distribution_type& distribution() const { return _dist; }
-
-    /**
-     * Precondition: distribution().min() is well-formed
-     *
-     * Returns: distribution().min()
-     */
-    result_type min BOOST_PREVENT_MACRO_SUBSTITUTION () const { return (distribution().min)(); }
-    /**
-     * Precondition: distribution().max() is well-formed
-     *
-     * Returns: distribution().max()
-     */
-    result_type max BOOST_PREVENT_MACRO_SUBSTITUTION () const { return (distribution().max)(); }
-
-private:
-    Engine _eng;
-    distribution_type _dist;
-};
-
-} // namespace random
-
-using random::variate_generator;
-
-} // namespace boost
-
-#include <boost/random/detail/enable_warnings.hpp>
-
-#endif // BOOST_RANDOM_RANDOM_GENERATOR_HPP
diff --git a/boost/random/weibull_distribution.hpp b/boost/random/weibull_distribution.hpp
deleted file mode 100644
index 2c8a26f..0000000
--- a/boost/random/weibull_distribution.hpp
+++ /dev/null
@@ -1,177 +0,0 @@
-/* boost random/weibull_distribution.hpp header file
- *
- * Copyright Steven Watanabe 2010
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: weibull_distribution.hpp 71018 2011-04-05 21:27:52Z steven_watanabe $
- */
-
-#ifndef BOOST_RANDOM_WEIBULL_DISTRIBUTION_HPP
-#define BOOST_RANDOM_WEIBULL_DISTRIBUTION_HPP
-
-#include <boost/config/no_tr1/cmath.hpp>
-#include <iosfwd>
-#include <istream>
-#include <boost/config.hpp>
-#include <boost/limits.hpp>
-#include <boost/random/detail/operators.hpp>
-#include <boost/random/uniform_01.hpp>
-
-namespace boost {
-namespace random {
-
-/**
- * The Weibull distribution is a real valued distribution with two
- * parameters a and b, producing values >= 0.
- *
- * It has \f$\displaystyle p(x) = \frac{a}{b}\left(\frac{x}{b}\right)^{a-1}e^{-\left(\frac{x}{b}\right)^a}\f$.
- */
-template<class RealType = double>
-class weibull_distribution {
-public:
-    typedef RealType result_type;
-    typedef RealType input_type;
-
-    class param_type {
-    public:
-        typedef weibull_distribution distribution_type;
-
-        /**
-         * Constructs a @c param_type from the "a" and "b" parameters
-         * of the distribution.
-         *
-         * Requires: a > 0 && b > 0
-         */
-        explicit param_type(RealType a_arg = 1.0, RealType b_arg = 1.0)
-          : _a(a_arg), _b(b_arg)
-        {}
-
-        /** Returns the "a" parameter of the distribtuion. */
-        RealType a() const { return _a; }
-        /** Returns the "b" parameter of the distribution. */
-        RealType b() const { return _b; }
-
-        /** Writes a @c param_type to a @c std::ostream. */
-        BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, param_type, parm)
-        { os << parm._a << ' ' << parm._b; return os; }
-
-        /** Reads a @c param_type from a @c std::istream. */
-        BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, param_type, parm)
-        { is >> parm._a >> std::ws >> parm._b; return is; }
-
-        /** Returns true if the two sets of parameters are the same. */
-        BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(param_type, lhs, rhs)
-        { return lhs._a == rhs._a && lhs._b == rhs._b; }
-        
-        /** Returns true if the two sets of parameters are the different. */
-        BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(param_type)
-
-    private:
-        RealType _a;
-        RealType _b;
-    };
-
-    /**
-     * Constructs a @c weibull_distribution from its "a" and "b" parameters.
-     *
-     * Requires: a > 0 && b > 0
-     */
-    explicit weibull_distribution(RealType a_arg = 1.0, RealType b_arg = 1.0)
-      : _a(a_arg), _b(b_arg)
-    {}
-    /** Constructs a @c weibull_distribution from its parameters. */
-    explicit weibull_distribution(const param_type& parm)
-      : _a(parm.a()), _b(parm.b())
-    {}
-
-    /**
-     * Returns a random variate distributed according to the
-     * @c weibull_distribution.
-     */
-    template<class URNG>
-    RealType operator()(URNG& urng) const
-    {
-        using std::pow;
-        using std::log;
-        return _b*pow(-log(1 - uniform_01<RealType>()(urng)), 1/_a);
-    }
-
-    /**
-     * Returns a random variate distributed accordint to the Weibull
-     * distribution with parameters specified by @c param.
-     */
-    template<class URNG>
-    RealType operator()(URNG& urng, const param_type& parm) const
-    {
-        return weibull_distribution(parm)(urng);
-    }
-
-    /** Returns the "a" parameter of the distribution. */
-    RealType a() const { return _a; }
-    /** Returns the "b" parameter of the distribution. */
-    RealType b() const { return _b; }
-
-    /** Returns the smallest value that the distribution can produce. */
-    RealType min BOOST_PREVENT_MACRO_SUBSTITUTION () const { return 0; }
-    /** Returns the largest value that the distribution can produce. */
-    RealType max BOOST_PREVENT_MACRO_SUBSTITUTION () const
-    { return std::numeric_limits<RealType>::infinity(); }
-
-    /** Returns the parameters of the distribution. */
-    param_type param() const { return param_type(_a, _b); }
-    /** Sets the parameters of the distribution. */
-    void param(const param_type& parm)
-    {
-        _a = parm.a();
-        _b = parm.b();
-    }
-
-    /**
-     * Effects: Subsequent uses of the distribution do not depend
-     * on values produced by any engine prior to invoking reset.
-     */
-    void reset() { }
-
-    /** Writes a @c weibull_distribution to a @c std::ostream. */
-    BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, weibull_distribution, wd)
-    {
-        os << wd.param();
-        return os;
-    }
-
-    /** Reads a @c weibull_distribution from a @c std::istream. */
-    BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, weibull_distribution, wd)
-    {
-        param_type parm;
-        if(is >> parm) {
-            wd.param(parm);
-        }
-        return is;
-    }
-
-    /**
-     * Returns true if the two instances of @c weibull_distribution will
-     * return identical sequences of values given equal generators.
-     */
-    BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(weibull_distribution, lhs, rhs)
-    { return lhs._a == rhs._a && lhs._b == rhs._b; }
-    
-    /**
-     * Returns true if the two instances of @c weibull_distribution will
-     * return different sequences of values given equal generators.
-     */
-    BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(weibull_distribution)
-
-private:
-    RealType _a;
-    RealType _b;
-};
-
-} // namespace random
-} // namespace boost
-
-#endif // BOOST_RANDOM_WEIBULL_DISTRIBUTION_HPP
diff --git a/boost/random/xor_combine.hpp b/boost/random/xor_combine.hpp
deleted file mode 100644
index d997a1c..0000000
--- a/boost/random/xor_combine.hpp
+++ /dev/null
@@ -1,207 +0,0 @@
-/* boost random/xor_combine.hpp header file
- *
- * Copyright Jens Maurer 2002
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
- *
- * See http://www.boost.org for most recent version including documentation.
- *
- * $Id: xor_combine.hpp 71018 2011-04-05 21:27:52Z steven_watanabe $
- *
- */
-
-#ifndef BOOST_RANDOM_XOR_COMBINE_HPP
-#define BOOST_RANDOM_XOR_COMBINE_HPP
-
-#include <istream>
-#include <iosfwd>
-#include <cassert>
-#include <algorithm> // for std::min and std::max
-#include <boost/config.hpp>
-#include <boost/limits.hpp>
-#include <boost/cstdint.hpp>     // uint32_t
-#include <boost/random/detail/config.hpp>
-#include <boost/random/detail/seed.hpp>
-#include <boost/random/detail/seed_impl.hpp>
-
-namespace boost {
-namespace random {
-
-/**
- * Instantiations of @c xor_combine_engine model a
- * \pseudo_random_number_generator.  To produce its output it
- * invokes each of the base generators, shifts their results
- * and xors them together.
- */
-template<class URNG1, int s1, class URNG2, int s2>
-class xor_combine_engine
-{
-public:
-    typedef URNG1 base1_type;
-    typedef URNG2 base2_type;
-    typedef typename base1_type::result_type result_type;
-
-    BOOST_STATIC_CONSTANT(bool, has_fixed_range = false);
-    BOOST_STATIC_CONSTANT(int, shift1 = s1);
-    BOOST_STATIC_CONSTANT(int, shift2 = s2);
-
-    /**
-     * Constructors a @c xor_combine_engine by default constructing
-     * both base generators.
-     */
-    xor_combine_engine() : _rng1(), _rng2() { }
-
-    /** Constructs a @c xor_combine by copying two base generators. */
-    xor_combine_engine(const base1_type & rng1, const base2_type & rng2)
-      : _rng1(rng1), _rng2(rng2) { }
-
-    /**
-     * Constructs a @c xor_combine_engine, seeding both base generators
-     * with @c v.
-     *
-     * @xmlwarning
-     * The exact algorithm used by this function may change in the future.
-     * @endxmlwarning
-     */
-    BOOST_RANDOM_DETAIL_ARITHMETIC_CONSTRUCTOR(xor_combine_engine,
-        result_type, v)
-    { seed(v); }
-
-    /**
-     * Constructs a @c xor_combine_engine, seeding both base generators
-     * with values produced by @c seq.
-     */
-    BOOST_RANDOM_DETAIL_SEED_SEQ_CONSTRUCTOR(xor_combine_engine,
-        SeedSeq, seq)
-    { seed(seq); }
-
-    /**
-     * Constructs a @c xor_combine_engine, seeding both base generators
-     * with values from the iterator range [first, last) and changes
-     * first to point to the element after the last one used.  If there
-     * are not enough elements in the range to seed both generators,
-     * throws @c std::invalid_argument.
-     */
-    template<class It> xor_combine_engine(It& first, It last)
-      : _rng1(first, last), _rng2( /* advanced by other call */ first, last) { }
-
-    /** Calls @c seed() for both base generators. */
-    void seed() { _rng1.seed(); _rng2.seed(); }
-
-    /** @c seeds both base generators with @c v. */
-    BOOST_RANDOM_DETAIL_ARITHMETIC_SEED(xor_combine_engine, result_type, v)
-    { _rng1.seed(v); _rng2.seed(v); }
-
-    /** @c seeds both base generators with values produced by @c seq. */
-    BOOST_RANDOM_DETAIL_SEED_SEQ_SEED(xor_combine_engine, SeedSeq, seq)
-    { _rng1.seed(seq); _rng2.seed(seq); }
-
-    /**
-     * seeds both base generators with values from the iterator
-     * range [first, last) and changes first to point to the element
-     * after the last one used.  If there are not enough elements in
-     * the range to seed both generators, throws @c std::invalid_argument.
-     */
-    template<class It> void seed(It& first, It last)
-    {
-        _rng1.seed(first, last);
-        _rng2.seed(first, last);
-    }
-
-    /** Returns the first base generator. */
-    const base1_type& base1() const { return _rng1; }
-
-    /** Returns the second base generator. */
-    const base2_type& base2() const { return _rng2; }
-
-    /** Returns the next value of the generator. */
-    result_type operator()()
-    {
-        return (_rng1() << s1) ^ (_rng2() << s2);
-    }
-  
-    /** Fills a range with random values */
-    template<class Iter>
-    void generate(Iter first, Iter last)
-    { detail::generate_from_int(*this, first, last); }
-
-    /** Advances the state of the generator by @c z. */
-    void discard(boost::uintmax_t z)
-    {
-        _rng1.discard(z);
-        _rng2.discard(z);
-    }
-
-    /** Returns the smallest value that the generator can produce. */
-    static result_type min BOOST_PREVENT_MACRO_SUBSTITUTION () { return (std::min)((URNG1::min)(), (URNG2::min)()); }
-    /** Returns the largest value that the generator can produce. */
-    static result_type max BOOST_PREVENT_MACRO_SUBSTITUTION () { return (std::max)((URNG1::min)(), (URNG2::max)()); }
-
-    /**
-     * Writes the textual representation of the generator to a @c std::ostream.
-     */
-    BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, xor_combine_engine, s)
-    {
-        os << s._rng1 << ' ' << s._rng2;
-        return os;
-    }
-    
-    /**
-     * Reads the textual representation of the generator from a @c std::istream.
-     */
-    BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, xor_combine_engine, s)
-    {
-        is >> s._rng1 >> std::ws >> s._rng2;
-        return is;
-    }
-    
-    /** Returns true if the two generators will produce identical sequences. */
-    BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(xor_combine_engine, x, y)
-    { return x._rng1 == y._rng1 && x._rng2 == y._rng2; }
-    
-    /** Returns true if the two generators will produce different sequences. */
-    BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(xor_combine_engine)
-
-private:
-    base1_type _rng1;
-    base2_type _rng2;
-};
-
-#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
-//  A definition is required even for integral static constants
-template<class URNG1, int s1, class URNG2, int s2>
-const bool xor_combine_engine<URNG1, s1, URNG2, s2>::has_fixed_range;
-template<class URNG1, int s1, class URNG2, int s2>
-const int xor_combine_engine<URNG1, s1, URNG2, s2>::shift1;
-template<class URNG1, int s1, class URNG2, int s2>
-const int xor_combine_engine<URNG1, s1, URNG2, s2>::shift2;
-#endif
-
-/// \cond show_private
-
-/** Provided for backwards compatibility. */
-template<class URNG1, int s1, class URNG2, int s2,
-    typename URNG1::result_type v = 0>
-class xor_combine : public xor_combine_engine<URNG1, s1, URNG2, s2>
-{
-    typedef xor_combine_engine<URNG1, s1, URNG2, s2> base_type;
-public:
-    typedef typename base_type::result_type result_type;
-    xor_combine() {}
-    xor_combine(result_type val) : base_type(val) {}
-    template<class It>
-    xor_combine(It& first, It last) : base_type(first, last) {}
-    xor_combine(const URNG1 & rng1, const URNG2 & rng2)
-      : base_type(rng1, rng2) { }
-
-    result_type min BOOST_PREVENT_MACRO_SUBSTITUTION () const { return (std::min)((this->base1().min)(), (this->base2().min)()); }
-    result_type max BOOST_PREVENT_MACRO_SUBSTITUTION () const { return (std::max)((this->base1().min)(), (this->base2().max)()); }
-};
-
-/// \endcond
-
-} // namespace random
-} // namespace boost
-
-#endif // BOOST_RANDOM_XOR_COMBINE_HPP
diff --git a/boost/range/algorithm/equal.hpp b/boost/range/algorithm/equal.hpp
deleted file mode 100644
index 4472bb1..0000000
--- a/boost/range/algorithm/equal.hpp
+++ /dev/null
@@ -1,198 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Neil Groves 2009.
-//  Use, modification and distribution is subject to the Boost Software
-//  License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-#ifndef BOOST_RANGE_ALGORITHM_EQUAL_HPP_INCLUDED
-#define BOOST_RANGE_ALGORITHM_EQUAL_HPP_INCLUDED
-
-#include <boost/config.hpp>
-#include <boost/range/concepts.hpp>
-#include <iterator>
-
-namespace boost
-{
-    namespace range_detail
-    {
-        // An implementation of equality comparison that is optimized for iterator
-        // traversal categories less than RandomAccessTraversal.
-        template< class SinglePassTraversalReadableIterator1,
-                  class SinglePassTraversalReadableIterator2,
-                  class IteratorCategoryTag1,
-                  class IteratorCategoryTag2 >
-        inline bool equal_impl( SinglePassTraversalReadableIterator1 first1,
-                                SinglePassTraversalReadableIterator1 last1,
-                                SinglePassTraversalReadableIterator2 first2,
-                                SinglePassTraversalReadableIterator2 last2,
-                                IteratorCategoryTag1,
-                                IteratorCategoryTag2 )
-        {
-            while (true)
-            {
-                // If we have reached the end of the left range then this is
-                // the end of the loop. They are equal if and only if we have
-                // simultaneously reached the end of the right range.
-                if (first1 == last1)
-                    return first2 == last2;
-
-                // If we have reached the end of the right range at this line
-                // it indicates that the right range is shorter than the left
-                // and hence the result is false.
-                if (first2 == last2)
-                    return false;
-
-                // continue looping if and only if the values are equal
-                if (*first1 != *first2)
-                    break;
-
-                ++first1;
-                ++first2;
-            }
-
-            // Reaching this line in the algorithm indicates that a value
-            // inequality has been detected.
-            return false;
-        }
-
-        template< class SinglePassTraversalReadableIterator1,
-                  class SinglePassTraversalReadableIterator2,
-                  class IteratorCategoryTag1,
-                  class IteratorCategoryTag2,
-                  class BinaryPredicate >
-        inline bool equal_impl( SinglePassTraversalReadableIterator1 first1,
-                                SinglePassTraversalReadableIterator1 last1,
-                                SinglePassTraversalReadableIterator2 first2,
-                                SinglePassTraversalReadableIterator2 last2,
-                                BinaryPredicate                      pred,
-                                IteratorCategoryTag1,
-                                IteratorCategoryTag2 )
-        {
-            while (true)
-            {
-                // If we have reached the end of the left range then this is
-                // the end of the loop. They are equal if and only if we have
-                // simultaneously reached the end of the right range.
-                if (first1 == last1)
-                    return first2 == last2;
-
-                // If we have reached the end of the right range at this line
-                // it indicates that the right range is shorter than the left
-                // and hence the result is false.
-                if (first2 == last2)
-                    return false;
-
-                // continue looping if and only if the values are equal
-                if (!pred(*first1, *first2))
-                    break;
-
-                ++first1;
-                ++first2;
-            }
-
-            // Reaching this line in the algorithm indicates that a value
-            // inequality has been detected.
-            return false;
-        }
-
-        // An implementation of equality comparison that is optimized for
-        // random access iterators.
-        template< class RandomAccessTraversalReadableIterator1,
-                  class RandomAccessTraversalReadableIterator2 >
-        inline bool equal_impl( RandomAccessTraversalReadableIterator1 first1,
-                                RandomAccessTraversalReadableIterator1 last1,
-                                RandomAccessTraversalReadableIterator2 first2,
-                                RandomAccessTraversalReadableIterator2 last2,
-                                std::random_access_iterator_tag,
-                                std::random_access_iterator_tag )
-        {
-            return ((last1 - first1) == (last2 - first2))
-                && std::equal(first1, last1, first2);
-        }
-
-        template< class RandomAccessTraversalReadableIterator1,
-                  class RandomAccessTraversalReadableIterator2,
-                  class BinaryPredicate >
-        inline bool equal_impl( RandomAccessTraversalReadableIterator1 first1,
-                                RandomAccessTraversalReadableIterator1 last1,
-                                RandomAccessTraversalReadableIterator2 first2,
-                                RandomAccessTraversalReadableIterator2 last2,
-                                BinaryPredicate                        pred )
-        {
-            return ((last1 - first1) == (last2 - first2))
-                && std::equal(first1, last1, first2, pred);
-        }
-
-        template< class SinglePassTraversalReadableIterator1,
-                  class SinglePassTraversalReadableIterator2 >
-        inline bool equal( SinglePassTraversalReadableIterator1 first1,
-                           SinglePassTraversalReadableIterator1 last1,
-                           SinglePassTraversalReadableIterator2 first2,
-                           SinglePassTraversalReadableIterator2 last2 )
-        {
-            BOOST_DEDUCED_TYPENAME std::iterator_traits< SinglePassTraversalReadableIterator1 >::iterator_category tag1;
-            BOOST_DEDUCED_TYPENAME std::iterator_traits< SinglePassTraversalReadableIterator2 >::iterator_category tag2;
-
-            return equal_impl(first1, last1, first2, last2, tag1, tag2);
-        }
-
-        template< class SinglePassTraversalReadableIterator1,
-                  class SinglePassTraversalReadableIterator2,
-                  class BinaryPredicate >
-        inline bool equal( SinglePassTraversalReadableIterator1 first1,
-                           SinglePassTraversalReadableIterator1 last1,
-                           SinglePassTraversalReadableIterator2 first2,
-                           SinglePassTraversalReadableIterator2 last2,
-                           BinaryPredicate                      pred )
-        {
-            BOOST_DEDUCED_TYPENAME std::iterator_traits< SinglePassTraversalReadableIterator1 >::iterator_category tag1;
-            BOOST_DEDUCED_TYPENAME std::iterator_traits< SinglePassTraversalReadableIterator2 >::iterator_category tag2;
-
-            return equal_impl(first1, last1, first2, last2, pred, tag1, tag2);
-        }
-
-    } // namespace range_detail
-
-    namespace range
-    {
-
-        /// \brief template function equal
-        ///
-        /// range-based version of the equal std algorithm
-        ///
-        /// \pre SinglePassRange1 is a model of the SinglePassRangeConcept
-        /// \pre SinglePassRange2 is a model of the SinglePassRangeConcept
-        /// \pre BinaryPredicate is a model of the BinaryPredicateConcept
-        template< class SinglePassRange1, class SinglePassRange2 >
-        inline bool equal( const SinglePassRange1& rng1, const SinglePassRange2& rng2 )
-        {
-            BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept<const SinglePassRange1> ));
-            BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept<const SinglePassRange2> ));
-
-            return ::boost::range_detail::equal(
-                ::boost::begin(rng1), ::boost::end(rng1),
-                ::boost::begin(rng2), ::boost::end(rng2) );
-        }
-
-        /// \overload
-        template< class SinglePassRange1, class SinglePassRange2, class BinaryPredicate >
-        inline bool equal( const SinglePassRange1& rng1, const SinglePassRange2& rng2,
-                           BinaryPredicate pred )
-        {
-            BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept<const SinglePassRange1> ));
-            BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept<const SinglePassRange2> ));
-
-            return ::boost::range_detail::equal(
-                ::boost::begin(rng1), ::boost::end(rng1),
-                ::boost::begin(rng2), ::boost::end(rng2),
-                pred);
-        }
-
-    } // namespace range
-    using ::boost::range::equal;
-} // namespace boost
-
-#endif // include guard
diff --git a/boost/range/begin.hpp b/boost/range/begin.hpp
deleted file mode 100644
index c668488..0000000
--- a/boost/range/begin.hpp
+++ /dev/null
@@ -1,143 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2004. Use, modification and
-//  distribution is subject to the Boost Software License, Version
-//  1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef BOOST_RANGE_BEGIN_HPP
-#define BOOST_RANGE_BEGIN_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1200)
-# pragma once
-#endif
-
-#include <boost/range/config.hpp>
-
-#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
-#include <boost/range/detail/begin.hpp>
-#else
-
-#include <boost/range/iterator.hpp>
-
-namespace boost
-{
-
-#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) && \
-    !BOOST_WORKAROUND(__GNUC__, < 3) \
-    /**/
-namespace range_detail
-{
-#endif
-
-    //////////////////////////////////////////////////////////////////////
-    // primary template
-    //////////////////////////////////////////////////////////////////////
-
-    template< typename C >
-    inline BOOST_DEDUCED_TYPENAME range_iterator<C>::type
-    range_begin( C& c )
-    {
-        //
-        // If you get a compile-error here, it is most likely because
-        // you have not implemented range_begin() properly in
-        // the namespace of C
-        //
-        return c.begin();
-    }
-
-    //////////////////////////////////////////////////////////////////////
-    // pair
-    //////////////////////////////////////////////////////////////////////
-
-    template< typename Iterator >
-    inline Iterator range_begin( const std::pair<Iterator,Iterator>& p )
-    {
-        return p.first;
-    }
-
-    template< typename Iterator >
-    inline Iterator range_begin( std::pair<Iterator,Iterator>& p )
-    {
-        return p.first;
-    }
-
-    //////////////////////////////////////////////////////////////////////
-    // array
-    //////////////////////////////////////////////////////////////////////
-
-    //
-    // May this be discarded? Or is it needed for bad compilers?
-    //
-    template< typename T, std::size_t sz >
-    inline const T* range_begin( const T (&a)[sz] )
-    {
-        return a;
-    }
-
-    template< typename T, std::size_t sz >
-    inline T* range_begin( T (&a)[sz] )
-    {
-        return a;
-    }
-
-
-#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) && \
-    !BOOST_WORKAROUND(__GNUC__, < 3) \
-    /**/
-} // namespace 'range_detail'
-#endif
-
-// Use a ADL namespace barrier to avoid ambiguity with other unqualified
-// calls. This is particularly important with C++0x encouraging
-// unqualified calls to begin/end.
-namespace range_adl_barrier
-{
-
-template< class T >
-inline BOOST_DEDUCED_TYPENAME range_iterator<T>::type begin( T& r )
-{
-#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) && \
-    !BOOST_WORKAROUND(__GNUC__, < 3) \
-    /**/
-    using namespace range_detail;
-#endif
-    return range_begin( r );
-}
-
-template< class T >
-inline BOOST_DEDUCED_TYPENAME range_iterator<const T>::type begin( const T& r )
-{
-#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) && \
-    !BOOST_WORKAROUND(__GNUC__, < 3) \
-    /**/
-    using namespace range_detail;
-#endif
-    return range_begin( r );
-}
-
-    } // namespace range_adl_barrier
-} // namespace boost
-
-#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING
-
-namespace boost
-{
-    namespace range_adl_barrier
-    {
-        template< class T >
-        inline BOOST_DEDUCED_TYPENAME range_iterator<const T>::type
-        const_begin( const T& r )
-        {
-            return boost::range_adl_barrier::begin( r );
-        }
-    } // namespace range_adl_barrier
-
-    using namespace range_adl_barrier;
-} // namespace boost
-
-#endif
-
diff --git a/boost/range/concepts.hpp b/boost/range/concepts.hpp
deleted file mode 100644
index 5a02a21..0000000
--- a/boost/range/concepts.hpp
+++ /dev/null
@@ -1,366 +0,0 @@
-// Boost.Range library concept checks
-//
-//  Copyright Neil Groves 2009. Use, modification and distribution
-//  are subject to the Boost Software License, Version 1.0. (See
-//  accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-//  Copyright Daniel Walker 2006. Use, modification and distribution
-//  are subject to the Boost Software License, Version 1.0. (See
-//  accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef BOOST_RANGE_CONCEPTS_HPP
-#define BOOST_RANGE_CONCEPTS_HPP
-
-#include <boost/concept_check.hpp>
-#include <boost/iterator/iterator_concepts.hpp>
-#include <boost/range/begin.hpp>
-#include <boost/range/end.hpp>
-#include <boost/range/iterator.hpp>
-#include <boost/range/value_type.hpp>
-#include <boost/range/detail/misc_concept.hpp>
-
-/*!
- * \file
- * \brief Concept checks for the Boost Range library.
- *
- * The structures in this file may be used in conjunction with the
- * Boost Concept Check library to insure that the type of a function
- * parameter is compatible with a range concept. If not, a meaningful
- * compile time error is generated. Checks are provided for the range
- * concepts related to iterator traversal categories. For example, the
- * following line checks that the type T models the ForwardRange
- * concept.
- *
- * \code
- * BOOST_CONCEPT_ASSERT((ForwardRangeConcept<T>));
- * \endcode
- *
- * A different concept check is required to ensure writeable value
- * access. For example to check for a ForwardRange that can be written
- * to, the following code is required.
- *
- * \code
- * BOOST_CONCEPT_ASSERT((WriteableForwardRangeConcept<T>));
- * \endcode
- *
- * \see http://www.boost.org/libs/range/doc/range.html for details
- * about range concepts.
- * \see http://www.boost.org/libs/iterator/doc/iterator_concepts.html
- * for details about iterator concepts.
- * \see http://www.boost.org/libs/concept_check/concept_check.htm for
- * details about concept checks.
- */
-
-namespace boost {
-
-    namespace range_detail {
-
-#ifndef BOOST_RANGE_ENABLE_CONCEPT_ASSERT
-
-// List broken compiler versions here:
-    #ifdef __GNUC__
-        // GNUC 4.2 has strange issues correctly detecting compliance with the Concepts
-        // hence the least disruptive approach is to turn-off the concept checking for
-        // this version of the compiler.
-        #if __GNUC__ == 4 && __GNUC_MINOR__ == 2
-            #define BOOST_RANGE_ENABLE_CONCEPT_ASSERT 0
-        #endif
-    #endif
-
-    #ifdef __BORLANDC__
-        #define BOOST_RANGE_ENABLE_CONCEPT_ASSERT 0
-    #endif
-
-    #ifdef __PATHCC__
-        #define BOOST_RANGE_ENABLE_CONCEPT_ASSERT 0
-    #endif
-
-// Default to using the concept asserts unless we have defined it off
-// during the search for black listed compilers.
-    #ifndef BOOST_RANGE_ENABLE_CONCEPT_ASSERT
-        #define BOOST_RANGE_ENABLE_CONCEPT_ASSERT 1
-    #endif
-
-#endif
-
-#if BOOST_RANGE_ENABLE_CONCEPT_ASSERT
-    #define BOOST_RANGE_CONCEPT_ASSERT( x ) BOOST_CONCEPT_ASSERT( x )
-#else
-    #define BOOST_RANGE_CONCEPT_ASSERT( x )
-#endif
-
-        // Rationale for the inclusion of redefined iterator concept
-        // classes:
-        //
-        // The Range algorithms often do not require that the iterators are
-        // Assignable or default constructable, but the correct standard
-        // conformant iterators do require the iterators to be a model of the
-        // Assignable concept.
-        // Iterators that contains a functor that is not assignable therefore
-        // are not correct models of the standard iterator concepts,
-        // despite being adequate for most algorithms. An example of this
-        // use case is the combination of the boost::adaptors::filtered
-        // class with a boost::lambda::bind generated functor.
-        // Ultimately modeling the range concepts using composition
-        // with the Boost.Iterator concepts would render the library
-        // incompatible with many common Boost.Lambda expressions.
-        template<class Iterator>
-        struct IncrementableIteratorConcept : CopyConstructible<Iterator>
-        {
-#if BOOST_RANGE_ENABLE_CONCEPT_ASSERT
-            typedef BOOST_DEDUCED_TYPENAME iterator_traversal<Iterator>::type traversal_category;
-
-            BOOST_RANGE_CONCEPT_ASSERT((
-                Convertible<
-                    traversal_category,
-                    incrementable_traversal_tag
-                >));
-
-            BOOST_CONCEPT_USAGE(IncrementableIteratorConcept)
-            {
-                ++i;
-                (void)i++;
-            }
-        private:
-            Iterator i;
-#endif
-        };
-
-        template<class Iterator>
-        struct SinglePassIteratorConcept
-            : IncrementableIteratorConcept<Iterator>
-            , EqualityComparable<Iterator>
-        {
-#if BOOST_RANGE_ENABLE_CONCEPT_ASSERT
-            BOOST_RANGE_CONCEPT_ASSERT((
-                Convertible<
-                    BOOST_DEDUCED_TYPENAME SinglePassIteratorConcept::traversal_category,
-                    single_pass_traversal_tag
-                >));
-
-            BOOST_CONCEPT_USAGE(SinglePassIteratorConcept)
-            {
-                Iterator i2(++i);
-                boost::ignore_unused_variable_warning(i2);
-
-                // deliberately we are loose with the postfix version for the single pass
-                // iterator due to the commonly poor adherence to the specification means that
-                // many algorithms would be unusable, whereas actually without the check they
-                // work
-                (void)(i++);
-
-                BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits<Iterator>::reference r1(*i);
-                boost::ignore_unused_variable_warning(r1);
-
-                BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits<Iterator>::reference r2(*(++i));
-                boost::ignore_unused_variable_warning(r2);
-            }
-        private:
-            Iterator i;
-#endif
-        };
-
-        template<class Iterator>
-        struct ForwardIteratorConcept
-            : SinglePassIteratorConcept<Iterator>
-            , DefaultConstructible<Iterator>
-        {
-#if BOOST_RANGE_ENABLE_CONCEPT_ASSERT
-            typedef BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits<Iterator>::difference_type difference_type;
-
-            BOOST_MPL_ASSERT((is_integral<difference_type>));
-            BOOST_MPL_ASSERT_RELATION(std::numeric_limits<difference_type>::is_signed, ==, true);
-
-            BOOST_RANGE_CONCEPT_ASSERT((
-                Convertible<
-                    BOOST_DEDUCED_TYPENAME ForwardIteratorConcept::traversal_category,
-                    forward_traversal_tag
-                >));
-
-            BOOST_CONCEPT_USAGE(ForwardIteratorConcept)
-            {
-                // See the above note in the SinglePassIteratorConcept about the handling of the
-                // postfix increment. Since with forward and better iterators there is no need
-                // for a proxy, we can sensibly require that the dereference result
-                // is convertible to reference.
-                Iterator i2(i++);
-                boost::ignore_unused_variable_warning(i2);
-                BOOST_DEDUCED_TYPENAME boost::detail::iterator_traits<Iterator>::reference r(*(i++));
-                boost::ignore_unused_variable_warning(r);
-            }
-        private:
-            Iterator i;
-#endif
-         };
-
-         template<class Iterator>
-         struct BidirectionalIteratorConcept
-             : ForwardIteratorConcept<Iterator>
-         {
- #if BOOST_RANGE_ENABLE_CONCEPT_ASSERT
-             BOOST_RANGE_CONCEPT_ASSERT((
-                 Convertible<
-                     BOOST_DEDUCED_TYPENAME BidirectionalIteratorConcept::traversal_category,
-                     bidirectional_traversal_tag
-                 >));
-
-             BOOST_CONCEPT_USAGE(BidirectionalIteratorConcept)
-             {
-                 --i;
-                 (void)i--;
-             }
-         private:
-             Iterator i;
- #endif
-         };
-
-         template<class Iterator>
-         struct RandomAccessIteratorConcept
-             : BidirectionalIteratorConcept<Iterator>
-         {
- #if BOOST_RANGE_ENABLE_CONCEPT_ASSERT
-             BOOST_RANGE_CONCEPT_ASSERT((
-                 Convertible<
-                     BOOST_DEDUCED_TYPENAME RandomAccessIteratorConcept::traversal_category,
-                     random_access_traversal_tag
-                 >));
-
-             BOOST_CONCEPT_USAGE(RandomAccessIteratorConcept)
-             {
-                 i += n;
-                 i = i + n;
-                 i = n + i;
-                 i -= n;
-                 i = i - n;
-                 n = i - j;
-             }
-         private:
-             BOOST_DEDUCED_TYPENAME RandomAccessIteratorConcept::difference_type n;
-             Iterator i;
-             Iterator j;
- #endif
-         };
-
-    } // namespace range_detail
-
-    //! Check if a type T models the SinglePassRange range concept.
-    template<class T>
-    struct SinglePassRangeConcept
-    {
-#if BOOST_RANGE_ENABLE_CONCEPT_ASSERT
-         typedef BOOST_DEDUCED_TYPENAME range_iterator<T const>::type  const_iterator;
-         typedef BOOST_DEDUCED_TYPENAME range_iterator<T>::type        iterator;
-
-         BOOST_RANGE_CONCEPT_ASSERT((range_detail::SinglePassIteratorConcept<iterator>));
-         BOOST_RANGE_CONCEPT_ASSERT((range_detail::SinglePassIteratorConcept<const_iterator>));
-
-         BOOST_CONCEPT_USAGE(SinglePassRangeConcept)
-         {
-            // This has been modified from assigning to this->i
-            // (where i was a member variable) to improve
-            // compatibility with Boost.Lambda
-            iterator i1 = boost::begin(*m_range);
-            iterator i2 = boost::end(*m_range);
-
-            ignore_unused_variable_warning(i1);
-            ignore_unused_variable_warning(i2);
-
-            const_constraints(*m_range);
-        }
-
-    private:
-        void const_constraints(const T& const_range)
-        {
-            const_iterator ci1 = boost::begin(const_range);
-            const_iterator ci2 = boost::end(const_range);
-
-            ignore_unused_variable_warning(ci1);
-            ignore_unused_variable_warning(ci2);
-        }
-
-       // Rationale:
-       // The type of m_range is T* rather than T because it allows
-       // T to be an abstract class. The other obvious alternative of
-       // T& produces a warning on some compilers.
-       T* m_range;
-#endif
-    };
-
-    //! Check if a type T models the ForwardRange range concept.
-    template<class T>
-    struct ForwardRangeConcept : SinglePassRangeConcept<T>
-    {
-#if BOOST_RANGE_ENABLE_CONCEPT_ASSERT
-        BOOST_RANGE_CONCEPT_ASSERT((range_detail::ForwardIteratorConcept<BOOST_DEDUCED_TYPENAME ForwardRangeConcept::iterator>));
-        BOOST_RANGE_CONCEPT_ASSERT((range_detail::ForwardIteratorConcept<BOOST_DEDUCED_TYPENAME ForwardRangeConcept::const_iterator>));
-#endif
-    };
-
-    template<class Range>
-    struct WriteableRangeConcept
-    {
-#if BOOST_RANGE_ENABLE_CONCEPT_ASSERT
-        typedef BOOST_DEDUCED_TYPENAME range_iterator<Range>::type iterator;
-
-        BOOST_CONCEPT_USAGE(WriteableRangeConcept)
-        {
-            *i = v;
-        }
-    private:
-        iterator i;
-        BOOST_DEDUCED_TYPENAME range_value<Range>::type v;
-#endif
-    };
-
-    //! Check if a type T models the WriteableForwardRange range concept.
-    template<class T>
-    struct WriteableForwardRangeConcept
-        : ForwardRangeConcept<T>
-        , WriteableRangeConcept<T>
-    {
-    };
-
-    //! Check if a type T models the BidirectionalRange range concept.
-    template<class T>
-    struct BidirectionalRangeConcept : ForwardRangeConcept<T>
-    {
-#if BOOST_RANGE_ENABLE_CONCEPT_ASSERT
-        BOOST_RANGE_CONCEPT_ASSERT((range_detail::BidirectionalIteratorConcept<BOOST_DEDUCED_TYPENAME BidirectionalRangeConcept::iterator>));
-        BOOST_RANGE_CONCEPT_ASSERT((range_detail::BidirectionalIteratorConcept<BOOST_DEDUCED_TYPENAME BidirectionalRangeConcept::const_iterator>));
-#endif
-    };
-
-    //! Check if a type T models the WriteableBidirectionalRange range concept.
-    template<class T>
-    struct WriteableBidirectionalRangeConcept
-        : BidirectionalRangeConcept<T>
-        , WriteableRangeConcept<T>
-    {
-    };
-
-    //! Check if a type T models the RandomAccessRange range concept.
-    template<class T>
-    struct RandomAccessRangeConcept : BidirectionalRangeConcept<T>
-    {
-#if BOOST_RANGE_ENABLE_CONCEPT_ASSERT
-        BOOST_RANGE_CONCEPT_ASSERT((range_detail::RandomAccessIteratorConcept<BOOST_DEDUCED_TYPENAME RandomAccessRangeConcept::iterator>));
-        BOOST_RANGE_CONCEPT_ASSERT((range_detail::RandomAccessIteratorConcept<BOOST_DEDUCED_TYPENAME RandomAccessRangeConcept::const_iterator>));
-#endif
-    };
-
-    //! Check if a type T models the WriteableRandomAccessRange range concept.
-    template<class T>
-    struct WriteableRandomAccessRangeConcept
-        : RandomAccessRangeConcept<T>
-        , WriteableRangeConcept<T>
-    {
-    };
-
-} // namespace boost
-
-#endif // BOOST_RANGE_CONCEPTS_HPP
diff --git a/boost/range/config.hpp b/boost/range/config.hpp
deleted file mode 100644
index 4e7fb24..0000000
--- a/boost/range/config.hpp
+++ /dev/null
@@ -1,54 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2004. Use, modification and
-//  distribution is subject to the Boost Software License, Version
-//  1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef BOOST_RANGE_CONFIG_HPP
-#define BOOST_RANGE_CONFIG_HPP
-
-#include <boost/detail/workaround.hpp>
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1200)
-# pragma once
-#endif
-
-#include <boost/config.hpp>
-
-#ifdef BOOST_RANGE_DEDUCED_TYPENAME
-#error "macro already defined!"
-#endif
-
-#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
-# define BOOST_RANGE_DEDUCED_TYPENAME typename
-#else
-# if BOOST_WORKAROUND(BOOST_MSVC, == 1300) && !defined(_MSC_EXTENSIONS)
-#  define BOOST_RANGE_DEDUCED_TYPENAME typename
-# else
-#  define BOOST_RANGE_DEDUCED_TYPENAME BOOST_DEDUCED_TYPENAME
-# endif
-#endif
-
-#ifdef BOOST_RANGE_NO_ARRAY_SUPPORT
-#error "macro already defined!"
-#endif
-
-#if BOOST_WORKAROUND( BOOST_MSVC, < 1300 ) || BOOST_WORKAROUND( __MWERKS__, <= 0x3003 )
-#define BOOST_RANGE_NO_ARRAY_SUPPORT 1
-#endif
-
-#ifdef BOOST_RANGE_NO_ARRAY_SUPPORT
-#define BOOST_RANGE_ARRAY_REF() (boost_range_array)
-#define BOOST_RANGE_NO_STATIC_ASSERT
-#else
-#define BOOST_RANGE_ARRAY_REF() (&boost_range_array)
-#endif
-
-
-
-#endif
-
diff --git a/boost/range/const_iterator.hpp b/boost/range/const_iterator.hpp
deleted file mode 100644
index 875320f..0000000
--- a/boost/range/const_iterator.hpp
+++ /dev/null
@@ -1,67 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2004. Use, modification and
-//  distribution is subject to the Boost Software License, Version
-//  1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef BOOST_RANGE_CONST_ITERATOR_HPP
-#define BOOST_RANGE_CONST_ITERATOR_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1200)
-# pragma once
-#endif
-
-#include <boost/range/config.hpp>
-
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#include <boost/range/detail/const_iterator.hpp>
-#else
-
-#include <boost/range/detail/extract_optional_type.hpp>
-#include <boost/type_traits/remove_const.hpp>
-#include <cstddef>
-#include <utility>
-
-namespace boost
-{
-    //////////////////////////////////////////////////////////////////////////
-    // default
-    //////////////////////////////////////////////////////////////////////////
-    
-    namespace range_detail {
-        BOOST_RANGE_EXTRACT_OPTIONAL_TYPE( const_iterator )
-    }
-
-    template< typename C >
-    struct range_const_iterator : range_detail::extract_const_iterator<C>
-    {};
-    
-    //////////////////////////////////////////////////////////////////////////
-    // pair
-    //////////////////////////////////////////////////////////////////////////
-
-    template< typename Iterator >
-    struct range_const_iterator< std::pair<Iterator,Iterator> >
-    {
-        typedef Iterator type;
-    };
-    
-    //////////////////////////////////////////////////////////////////////////
-    // array
-    //////////////////////////////////////////////////////////////////////////
-
-    template< typename T, std::size_t sz >
-    struct range_const_iterator< T[sz] >
-    {
-        typedef const T* type;
-    };
-
-} // namespace boost
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#endif
diff --git a/boost/range/detail/begin.hpp b/boost/range/detail/begin.hpp
deleted file mode 100644
index f3da732..0000000
--- a/boost/range/detail/begin.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2004. Use, modification and
-//  distribution is subject to the Boost Software License, Version
-//  1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef BOOST_RANGE_DETAIL_BEGIN_HPP
-#define BOOST_RANGE_DETAIL_BEGIN_HPP
-
-#include <boost/config.hpp> // BOOST_MSVC
-#include <boost/detail/workaround.hpp>
-#include <boost/range/iterator.hpp>
-#include <boost/range/detail/common.hpp>
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1310)
-# include <boost/range/value_type.hpp>
-#endif
-
-namespace boost
-{
-
-    namespace range_detail
-    {
-        template< typename T >
-        struct range_begin;
-
-        //////////////////////////////////////////////////////////////////////
-        // default
-        //////////////////////////////////////////////////////////////////////
-
-        template<>
-        struct range_begin<std_container_>
-        {
-            template< typename C >
-            static BOOST_RANGE_DEDUCED_TYPENAME range_iterator<C>::type fun( C& c )
-            {
-                return c.begin();
-            };
-        };
-
-        //////////////////////////////////////////////////////////////////////
-        // pair
-        //////////////////////////////////////////////////////////////////////
-
-        template<>
-        struct range_begin<std_pair_>
-        {
-            template< typename P >
-            static BOOST_RANGE_DEDUCED_TYPENAME range_iterator<P>::type fun( const P& p )
-            {
-                return p.first;
-            }
-        };
-
-        //////////////////////////////////////////////////////////////////////
-        // array
-        //////////////////////////////////////////////////////////////////////
-
-        template<>
-        struct range_begin<array_>
-        {
-        #if !BOOST_WORKAROUND(BOOST_MSVC, < 1310)
-            template< typename T, std::size_t sz >
-            static T* fun( T BOOST_RANGE_ARRAY_REF()[sz] )
-            {
-                return boost_range_array;
-            }
-        #else
-            template<typename T>
-            static BOOST_RANGE_DEDUCED_TYPENAME range_value<T>::type* fun(T& t)
-            {
-                return t;
-            }
-        #endif
-        };
-
-    } // namespace 'range_detail'
-
-    namespace range_adl_barrier
-    {
-        template< typename C >
-        inline BOOST_RANGE_DEDUCED_TYPENAME range_iterator<C>::type
-        begin( C& c )
-        {
-            return range_detail::range_begin< BOOST_RANGE_DEDUCED_TYPENAME range_detail::range<C>::type >::fun( c );
-        }
-    }
-} // namespace 'boost'
-
-
-#endif
diff --git a/boost/range/detail/common.hpp b/boost/range/detail/common.hpp
deleted file mode 100644
index f7539f5..0000000
--- a/boost/range/detail/common.hpp
+++ /dev/null
@@ -1,117 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2004. Use, modification and
-//  distribution is subject to the Boost Software License, Version
-//  1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef BOOST_RANGE_DETAIL_COMMON_HPP
-#define BOOST_RANGE_DETAIL_COMMON_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1200)
-# pragma once
-#endif
-
-#include <boost/range/config.hpp>
-#include <boost/range/detail/sfinae.hpp>
-#include <boost/type_traits/is_void.hpp>
-#include <boost/type_traits/detail/ice_or.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/int.hpp>
-#include <cstddef>
-
-//////////////////////////////////////////////////////////////////////////////
-// missing partial specialization  workaround.
-//////////////////////////////////////////////////////////////////////////////
-
-namespace boost 
-{
-    namespace range_detail 
-    {        
-        // 1 = std containers
-        // 2 = std::pair
-        // 3 = const std::pair
-        // 4 = array
-        // 5 = const array
-        // 6 = char array
-        // 7 = wchar_t array
-        // 8 = char*
-        // 9 = const char*
-        // 10 = whar_t*
-        // 11 = const wchar_t*
-        // 12 = string
-        
-        typedef mpl::int_<1>::type    std_container_;
-        typedef mpl::int_<2>::type    std_pair_;
-        typedef mpl::int_<3>::type    const_std_pair_;
-        typedef mpl::int_<4>::type    array_;
-        typedef mpl::int_<5>::type    const_array_;
-        typedef mpl::int_<6>::type    char_array_;
-        typedef mpl::int_<7>::type    wchar_t_array_;
-        typedef mpl::int_<8>::type    char_ptr_;
-        typedef mpl::int_<9>::type    const_char_ptr_;
-        typedef mpl::int_<10>::type   wchar_t_ptr_;
-        typedef mpl::int_<11>::type   const_wchar_t_ptr_;
-        typedef mpl::int_<12>::type   string_;
-        
-        template< typename C >
-        struct range_helper
-        {
-            static C* c;
-            static C  ptr;
-
-            BOOST_STATIC_CONSTANT( bool, is_pair_                = sizeof( boost::range_detail::is_pair_impl( c ) ) == sizeof( yes_type ) );
-            BOOST_STATIC_CONSTANT( bool, is_char_ptr_            = sizeof( boost::range_detail::is_char_ptr_impl( ptr ) ) == sizeof( yes_type ) );
-            BOOST_STATIC_CONSTANT( bool, is_const_char_ptr_      = sizeof( boost::range_detail::is_const_char_ptr_impl( ptr ) ) == sizeof( yes_type ) );
-            BOOST_STATIC_CONSTANT( bool, is_wchar_t_ptr_         = sizeof( boost::range_detail::is_wchar_t_ptr_impl( ptr ) ) == sizeof( yes_type ) );
-            BOOST_STATIC_CONSTANT( bool, is_const_wchar_t_ptr_   = sizeof( boost::range_detail::is_const_wchar_t_ptr_impl( ptr ) ) == sizeof( yes_type ) );
-            BOOST_STATIC_CONSTANT( bool, is_char_array_          = sizeof( boost::range_detail::is_char_array_impl( ptr ) ) == sizeof( yes_type ) );
-            BOOST_STATIC_CONSTANT( bool, is_wchar_t_array_       = sizeof( boost::range_detail::is_wchar_t_array_impl( ptr ) ) == sizeof( yes_type ) );
-            BOOST_STATIC_CONSTANT( bool, is_string_              = (boost::type_traits::ice_or<is_const_char_ptr_, is_const_wchar_t_ptr_>::value ));
-            BOOST_STATIC_CONSTANT( bool, is_array_               = boost::is_array<C>::value );
-            
-        };
-        
-        template< typename C >
-        class range
-        {
-            typedef BOOST_RANGE_DEDUCED_TYPENAME   boost::mpl::if_c< ::boost::range_detail::range_helper<C>::is_pair_,
-                                                                  boost::range_detail::std_pair_,
-                                                                  void >::type pair_t;
-            typedef BOOST_RANGE_DEDUCED_TYPENAME   boost::mpl::if_c< ::boost::range_detail::range_helper<C>::is_array_,
-                                                                    boost::range_detail::array_,
-                                                                    pair_t >::type array_t;
-            typedef BOOST_RANGE_DEDUCED_TYPENAME   boost::mpl::if_c< ::boost::range_detail::range_helper<C>::is_string_,
-                                                                    boost::range_detail::string_,
-                                                                    array_t >::type string_t;
-            typedef BOOST_RANGE_DEDUCED_TYPENAME   boost::mpl::if_c< ::boost::range_detail::range_helper<C>::is_const_char_ptr_,
-                                                                    boost::range_detail::const_char_ptr_,
-                                                                    string_t >::type const_char_ptr_t;
-            typedef BOOST_RANGE_DEDUCED_TYPENAME   boost::mpl::if_c< ::boost::range_detail::range_helper<C>::is_char_ptr_,
-                                                                    boost::range_detail::char_ptr_,
-                                                                    const_char_ptr_t >::type char_ptr_t;
-            typedef BOOST_RANGE_DEDUCED_TYPENAME   boost::mpl::if_c< ::boost::range_detail::range_helper<C>::is_const_wchar_t_ptr_,
-                                                                    boost::range_detail::const_wchar_t_ptr_,
-                                                                    char_ptr_t >::type const_wchar_ptr_t;
-            typedef BOOST_RANGE_DEDUCED_TYPENAME   boost::mpl::if_c< ::boost::range_detail::range_helper<C>::is_wchar_t_ptr_,
-                                                                    boost::range_detail::wchar_t_ptr_,
-                                                                    const_wchar_ptr_t >::type wchar_ptr_t;
-            typedef BOOST_RANGE_DEDUCED_TYPENAME   boost::mpl::if_c< ::boost::range_detail::range_helper<C>::is_wchar_t_array_,
-                                                                    boost::range_detail::wchar_t_array_,
-                                                                    wchar_ptr_t >::type wchar_array_t;
-            typedef BOOST_RANGE_DEDUCED_TYPENAME   boost::mpl::if_c< ::boost::range_detail::range_helper<C>::is_char_array_,
-                                                                    boost::range_detail::char_array_,
-                                                                    wchar_array_t >::type char_array_t;
-        public:
-            typedef BOOST_RANGE_DEDUCED_TYPENAME   boost::mpl::if_c< ::boost::is_void<char_array_t>::value,
-                                                                    boost::range_detail::std_container_,
-                                                                    char_array_t >::type type;  
-        }; // class 'range' 
-    }
-}
-        
-#endif
-
diff --git a/boost/range/detail/const_iterator.hpp b/boost/range/detail/const_iterator.hpp
deleted file mode 100644
index e5cb34a..0000000
--- a/boost/range/detail/const_iterator.hpp
+++ /dev/null
@@ -1,71 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2004. Use, modification and
-//  distribution is subject to the Boost Software License, Version
-//  1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef BOOST_RANGE_DETAIL_CONST_ITERATOR_HPP
-#define BOOST_RANGE_DETAIL_CONST_ITERATOR_HPP
-
-#include <boost/range/detail/common.hpp>
-#include <boost/range/detail/remove_extent.hpp>
-
-//////////////////////////////////////////////////////////////////////////////
-// missing partial specialization  workaround.
-//////////////////////////////////////////////////////////////////////////////
-
-namespace boost 
-{
-    namespace range_detail 
-    {      
-        template< typename T >
-        struct range_const_iterator_;
-
-        template<>
-        struct range_const_iterator_<std_container_>
-        {
-            template< typename C >
-            struct pts
-            {
-                typedef BOOST_RANGE_DEDUCED_TYPENAME C::const_iterator type;
-            };
-        };
-
-        template<>
-        struct range_const_iterator_<std_pair_>
-        {
-            template< typename P >
-            struct pts
-            {
-                typedef BOOST_RANGE_DEDUCED_TYPENAME P::first_type type;
-            };
-        };
-
-
-        template<>
-        struct range_const_iterator_<array_>
-        { 
-            template< typename T >
-            struct pts
-            {
-                typedef const BOOST_RANGE_DEDUCED_TYPENAME 
-                    remove_extent<T>::type* type;
-            };
-        };
-    } 
-    
-    template< typename C >
-    class range_const_iterator
-    {
-        typedef BOOST_DEDUCED_TYPENAME range_detail::range<C>::type c_type;
-    public:
-        typedef BOOST_DEDUCED_TYPENAME range_detail::range_const_iterator_<c_type>::BOOST_NESTED_TEMPLATE pts<C>::type type; 
-    };
-
-}
-
-#endif
diff --git a/boost/range/detail/end.hpp b/boost/range/detail/end.hpp
deleted file mode 100644
index 8b5f35d..0000000
--- a/boost/range/detail/end.hpp
+++ /dev/null
@@ -1,101 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2004. Use, modification and
-//  distribution is subject to the Boost Software License, Version
-//  1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef BOOST_RANGE_DETAIL_END_HPP
-#define BOOST_RANGE_DETAIL_END_HPP
-
-#include <boost/config.hpp> // BOOST_MSVC
-#include <boost/detail/workaround.hpp>
-
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-# include <boost/range/detail/vc6/end.hpp>
-#else
-# include <boost/range/detail/implementation_help.hpp>
-# include <boost/range/iterator.hpp>
-# include <boost/range/detail/common.hpp>
-# if BOOST_WORKAROUND(BOOST_MSVC, < 1310)
-#  include <boost/range/detail/remove_extent.hpp>
-# endif
-
-namespace boost
-{
-    namespace range_detail
-    {
-        template< typename T >
-        struct range_end;
-
-        //////////////////////////////////////////////////////////////////////
-        // default
-        //////////////////////////////////////////////////////////////////////
-
-        template<>
-        struct range_end<std_container_>
-        {
-            template< typename C >
-            static BOOST_RANGE_DEDUCED_TYPENAME range_iterator<C>::type
-            fun( C& c )
-            {
-                return c.end();
-            };
-        };
-
-        //////////////////////////////////////////////////////////////////////
-        // pair
-        //////////////////////////////////////////////////////////////////////
-
-        template<>
-        struct range_end<std_pair_>
-        {
-            template< typename P >
-            static BOOST_RANGE_DEDUCED_TYPENAME range_iterator<P>::type
-            fun( const P& p )
-            {
-                return p.second;
-            }
-        };
-
-        //////////////////////////////////////////////////////////////////////
-        // array
-        //////////////////////////////////////////////////////////////////////
-
-        template<>
-        struct range_end<array_>
-        {
-        #if !BOOST_WORKAROUND(BOOST_MSVC, < 1310)
-            template< typename T, std::size_t sz >
-            static T* fun( T BOOST_RANGE_ARRAY_REF()[sz] )
-            {
-                return boost::range_detail::array_end( boost_range_array );
-            }
-        #else
-            template<typename T>
-            static BOOST_RANGE_DEDUCED_TYPENAME remove_extent<T>::type* fun(T& t)
-            {
-                return t + remove_extent<T>::size;
-            }
-        #endif
-        };
-
-    } // namespace 'range_detail'
-
-    namespace range_adl_barrier
-    {
-        template< typename C >
-        inline BOOST_RANGE_DEDUCED_TYPENAME range_iterator<C>::type
-        end( C& c )
-        {
-            return range_detail::range_end< BOOST_RANGE_DEDUCED_TYPENAME range_detail::range<C>::type >::fun( c );
-        }
-    } // namespace range_adl_barrier
-
-} // namespace 'boost'
-
-# endif // VC6
-#endif
diff --git a/boost/range/detail/extract_optional_type.hpp b/boost/range/detail/extract_optional_type.hpp
deleted file mode 100644
index 4a7f71a..0000000
--- a/boost/range/detail/extract_optional_type.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Arno Schoedl & Neil Groves 2009.
-//  Use, modification and distribution is subject to the Boost Software
-//  License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-#ifndef BOOST_RANGE_DETAIL_EXTRACT_OPTIONAL_TYPE_HPP_INCLUDED
-#define BOOST_RANGE_DETAIL_EXTRACT_OPTIONAL_TYPE_HPP_INCLUDED
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1200)
-# pragma once
-#endif
-
-#include <boost/config.hpp>
-
-#ifdef BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
-
-#define BOOST_RANGE_EXTRACT_OPTIONAL_TYPE( a_typedef )                         \
-    template< typename C >                                                     \
-    struct extract_ ## a_typedef                                               \
-    {                                                                          \
-        typedef BOOST_DEDUCED_TYPENAME C::a_typedef type;                      \
-    };
-
-#else
-
-namespace boost {
-    namespace range_detail {
-        template< typename T > struct exists { typedef void type; };
-    }
-}
-
-// Defines extract_some_typedef<T> which exposes T::some_typedef as
-// extract_some_typedef<T>::type if T::some_typedef exists. Otherwise
-// extract_some_typedef<T> is empty.
-#define BOOST_RANGE_EXTRACT_OPTIONAL_TYPE( a_typedef )                         \
-    template< typename C, typename Enable=void >                               \
-    struct extract_ ## a_typedef                                               \
-    {};                                                                        \
-    template< typename C >                                                     \
-    struct extract_ ## a_typedef< C                                            \
-    , BOOST_DEDUCED_TYPENAME boost::range_detail::exists< BOOST_DEDUCED_TYPENAME C::a_typedef >::type \
-    > {                                                                        \
-        typedef BOOST_DEDUCED_TYPENAME C::a_typedef type;                      \
-    };
-
-#endif
-
-#endif // include guard
diff --git a/boost/range/detail/implementation_help.hpp b/boost/range/detail/implementation_help.hpp
deleted file mode 100644
index 1f7d163..0000000
--- a/boost/range/detail/implementation_help.hpp
+++ /dev/null
@@ -1,103 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2004. Use, modification and
-//  distribution is subject to the Boost Software License, Version
-//  1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef BOOST_RANGE_DETAIL_IMPLEMENTATION_HELP_HPP
-#define BOOST_RANGE_DETAIL_IMPLEMENTATION_HELP_HPP
-
-#include <boost/range/config.hpp>
-#include <boost/range/detail/common.hpp>
-#include <boost/type_traits/is_same.hpp>
-#include <cstddef>
-#include <string.h>
-
-#ifndef BOOST_NO_CWCHAR
-#include <wchar.h>
-#endif
-
-namespace boost
-{
-    namespace range_detail
-    {
-        template <typename T>
-        inline void boost_range_silence_warning( const T& ) { }
-
-        /////////////////////////////////////////////////////////////////////
-        // end() help
-        /////////////////////////////////////////////////////////////////////
-
-        inline const char* str_end( const char* s, const char* )
-        {
-            return s + strlen( s );
-        }
-
-#ifndef BOOST_NO_CWCHAR
-        inline const wchar_t* str_end( const wchar_t* s, const wchar_t* )
-        {
-            return s + wcslen( s );
-        }
-#else
-        inline const wchar_t* str_end( const wchar_t* s, const wchar_t* )
-        {
-            if( s == 0 || s[0] == 0 )
-                return s;
-            while( *++s != 0 )
-                ;
-            return s;
-        }
-#endif
-
-        template< class Char >
-        inline Char* str_end( Char* s )
-        {
-            return const_cast<Char*>( str_end( s, s ) );
-        }
-
-        template< class T, std::size_t sz >
-        inline T* array_end( T BOOST_RANGE_ARRAY_REF()[sz] )
-        {
-            return boost_range_array + sz;
-        }
-
-        template< class T, std::size_t sz >
-        inline const T* array_end( const T BOOST_RANGE_ARRAY_REF()[sz] )
-        {
-            return boost_range_array + sz;
-        }
-
-        /////////////////////////////////////////////////////////////////////
-        // size() help
-        /////////////////////////////////////////////////////////////////////
-
-        template< class Char >
-        inline std::size_t str_size( const Char* const& s )
-        {
-            return str_end( s ) - s;
-        }
-
-        template< class T, std::size_t sz >
-        inline std::size_t array_size( T BOOST_RANGE_ARRAY_REF()[sz] )
-        {
-            boost_range_silence_warning( boost_range_array );
-            return sz;
-        }
-
-        template< class T, std::size_t sz >
-        inline std::size_t array_size( const T BOOST_RANGE_ARRAY_REF()[sz] )
-        {
-            boost_range_silence_warning( boost_range_array );
-            return sz;
-        }
-
-    } // namespace 'range_detail'
-
-} // namespace 'boost'
-
-
-#endif
diff --git a/boost/range/detail/iterator.hpp b/boost/range/detail/iterator.hpp
deleted file mode 100644
index 58346d4..0000000
--- a/boost/range/detail/iterator.hpp
+++ /dev/null
@@ -1,78 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2004. Use, modification and
-//  distribution is subject to the Boost Software License, Version
-//  1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef BOOST_RANGE_DETAIL_ITERATOR_HPP
-#define BOOST_RANGE_DETAIL_ITERATOR_HPP
-
-#include <boost/range/detail/common.hpp>
-#include <boost/range/detail/remove_extent.hpp>
-
-#include <boost/static_assert.hpp>
-
-//////////////////////////////////////////////////////////////////////////////
-// missing partial specialization  workaround.
-//////////////////////////////////////////////////////////////////////////////
-
-namespace boost 
-{
-    namespace range_detail 
-    {        
-        template< typename T >
-        struct range_iterator_ {
-            template< typename C >
-            struct pts
-            {
-                typedef int type;
-            };
-        };
-
-        template<>
-        struct range_iterator_<std_container_>
-        {
-            template< typename C >
-            struct pts
-            {
-                typedef BOOST_RANGE_DEDUCED_TYPENAME C::iterator type;
-            };
-        };
-
-        template<>
-        struct range_iterator_<std_pair_>
-        {
-            template< typename P >
-            struct pts
-            {
-                typedef BOOST_RANGE_DEDUCED_TYPENAME P::first_type type;
-            };
-        };
-
-        template<>
-        struct range_iterator_<array_>
-        { 
-            template< typename T >
-            struct pts
-            {
-                typedef BOOST_RANGE_DEDUCED_TYPENAME 
-                    remove_extent<T>::type* type;
-            };
-        };
-        
-    } 
-
-    template< typename C >
-    class range_mutable_iterator
-    {
-        typedef BOOST_RANGE_DEDUCED_TYPENAME range_detail::range<C>::type c_type;
-    public:
-        typedef typename range_detail::range_iterator_<c_type>::BOOST_NESTED_TEMPLATE pts<C>::type type; 
-    };
-}
-
-#endif
diff --git a/boost/range/detail/misc_concept.hpp b/boost/range/detail/misc_concept.hpp
deleted file mode 100644
index 74cb919..0000000
--- a/boost/range/detail/misc_concept.hpp
+++ /dev/null
@@ -1,33 +0,0 @@
-// Boost.Range library concept checks
-//
-//  Copyright Neil Groves 2009. Use, modification and distribution
-//  are subject to the Boost Software License, Version 1.0. (See
-//  accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-#ifndef BOOST_RANGE_DETAIL_MISC_CONCEPT_HPP_INCLUDED
-#define BOOST_RANGE_DETAIL_MISC_CONCEPT_HPP_INCLUDED
-
-#include <boost/concept_check.hpp>
-
-namespace boost
-{
-    namespace range_detail
-    {
-        template<typename T1, typename T2>
-        class SameTypeConcept
-        {
-        public:
-            BOOST_CONCEPT_USAGE(SameTypeConcept)
-            {
-                same_type(a,b);
-            }
-        private:
-            template<typename T> void same_type(T,T) {}
-            T1 a;
-            T2 b;
-        };
-    }
-}
-
-#endif // include guard
diff --git a/boost/range/detail/remove_extent.hpp b/boost/range/detail/remove_extent.hpp
deleted file mode 100644
index 68e4597..0000000
--- a/boost/range/detail/remove_extent.hpp
+++ /dev/null
@@ -1,157 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Jonathan Turkanis 2005. Use, modification and
-//  distribution is subject to the Boost Software License, Version
-//  1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-
-#ifndef BOOST_RANGE_DETAIL_REMOVE_BOUNDS_HPP
-#define BOOST_RANGE_DETAIL_REMOVE_BOUNDS_HPP
-
-#include <boost/config.hpp>  // MSVC, NO_INTRINSIC_WCHAR_T, put size_t in std.
-#include <cstddef>
-#include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/type_traits/is_same.hpp>
-
-namespace boost 
-{
-    namespace range_detail
-    {
-        
-        template< typename Case1 = mpl::true_,
-                  typename Type1 = mpl::void_,
-                  typename Case2 = mpl::true_,
-                  typename Type2 = mpl::void_,
-                  typename Case3 = mpl::true_,
-                  typename Type3 = mpl::void_,
-                  typename Case4 = mpl::true_,
-                  typename Type4 = mpl::void_,
-                  typename Case5 = mpl::true_,
-                  typename Type5 = mpl::void_,
-                  typename Case6 = mpl::true_,
-                  typename Type6 = mpl::void_,
-                  typename Case7 = mpl::true_,
-                  typename Type7 = mpl::void_,
-                  typename Case8 = mpl::true_,
-                  typename Type8 = mpl::void_,
-                  typename Case9 = mpl::true_,
-                  typename Type9 = mpl::void_,
-                  typename Case10 = mpl::true_,
-                  typename Type10 = mpl::void_,
-                  typename Case11 = mpl::true_,
-                  typename Type11 = mpl::void_,
-                  typename Case12 = mpl::true_,
-                  typename Type12 = mpl::void_,
-                  typename Case13 = mpl::true_,
-                  typename Type13 = mpl::void_,
-                  typename Case14 = mpl::true_,
-                  typename Type14 = mpl::void_,
-                  typename Case15 = mpl::true_,
-                  typename Type15 = mpl::void_,
-                  typename Case16 = mpl::true_,
-                  typename Type16 = mpl::void_,
-                  typename Case17 = mpl::true_,
-                  typename Type17 = mpl::void_,
-                  typename Case18 = mpl::true_,
-                  typename Type18 = mpl::void_,
-                  typename Case19 = mpl::true_,
-                  typename Type19 = mpl::void_,
-                  typename Case20 = mpl::true_,
-                  typename Type20 = mpl::void_>
-        struct select {
-            typedef typename
-                    mpl::eval_if<
-                        Case1, mpl::identity<Type1>, mpl::eval_if<
-                        Case2, mpl::identity<Type2>, mpl::eval_if<
-                        Case3, mpl::identity<Type3>, mpl::eval_if<
-                        Case4, mpl::identity<Type4>, mpl::eval_if<
-                        Case5, mpl::identity<Type5>, mpl::eval_if<
-                        Case6, mpl::identity<Type6>, mpl::eval_if<
-                        Case7, mpl::identity<Type7>, mpl::eval_if<
-                        Case8, mpl::identity<Type8>, mpl::eval_if<
-                        Case9, mpl::identity<Type9>, mpl::if_<
-                        Case10, Type10, mpl::void_ > > > > > > > > >
-                    >::type result1;
-            typedef typename
-                    mpl::eval_if<
-                        Case11, mpl::identity<Type11>, mpl::eval_if<
-                        Case12, mpl::identity<Type12>, mpl::eval_if<
-                        Case13, mpl::identity<Type13>, mpl::eval_if<
-                        Case14, mpl::identity<Type14>, mpl::eval_if<
-                        Case15, mpl::identity<Type15>, mpl::eval_if<
-                        Case16, mpl::identity<Type16>, mpl::eval_if<
-                        Case17, mpl::identity<Type17>, mpl::eval_if<
-                        Case18, mpl::identity<Type18>, mpl::eval_if<
-                        Case19, mpl::identity<Type19>, mpl::if_<
-                        Case20, Type20, mpl::void_ > > > > > > > > >
-                    > result2;
-            typedef typename    
-                    mpl::eval_if<
-                        is_same<result1, mpl::void_>,
-                        result2,
-                        mpl::identity<result1>
-                    >::type type;
-        };
-
-        template<typename T>
-        struct remove_extent {
-            static T* ar;
-            BOOST_STATIC_CONSTANT(std::size_t, size = sizeof(*ar) / sizeof((*ar)[0]));
-
-            typedef typename
-                    select<
-                        is_same<T, bool[size]>,                  bool,
-                        is_same<T, char[size]>,                  char,
-                        is_same<T, signed char[size]>,           signed char,
-                        is_same<T, unsigned char[size]>,         unsigned char,
-                    #ifndef BOOST_NO_INTRINSIC_WCHAR_T
-                        is_same<T, wchar_t[size]>,               wchar_t,
-                    #endif
-                        is_same<T, short[size]>,                 short,
-                        is_same<T, unsigned short[size]>,        unsigned short,
-                        is_same<T, int[size]>,                   int,
-                        is_same<T, unsigned int[size]>,          unsigned int,
-                        is_same<T, long[size]>,                  long,
-                        is_same<T, unsigned long[size]>,         unsigned long,
-                        is_same<T, float[size]>,                 float,
-                        is_same<T, double[size]>,                double,
-                        is_same<T, long double[size]>,           long double
-                    >::type result1;
-            typedef typename
-                    select<
-                        is_same<T, const bool[size]>,            const bool,
-                        is_same<T, const char[size]>,            const char,
-                        is_same<T, const signed char[size]>,     const signed char,
-                        is_same<T, const unsigned char[size]>,   const unsigned char,
-                    #ifndef BOOST_NO_INTRINSIC_WCHAR_T
-                        is_same<T, const wchar_t[size]>,         const wchar_t,
-                    #endif
-                        is_same<T, const short[size]>,           const short,
-                        is_same<T, const unsigned short[size]>,  const unsigned short,
-                        is_same<T, const int[size]>,             const int,
-                        is_same<T, const unsigned int[size]>,    const unsigned int,
-                        is_same<T, const long[size]>,            const long,
-                        is_same<T, const unsigned long[size]>,   const unsigned long,
-                        is_same<T, const float[size]>,           const float,
-                        is_same<T, const double[size]>,          const double,
-                        is_same<T, const long double[size]>,     const long double
-                    > result2;
-            typedef typename
-                    mpl::eval_if<
-                        is_same<result1, mpl::void_>,
-                        result2,
-                        mpl::identity<result1>
-                    >::type type;
-        };
-
-    } // namespace 'range_detail'
-
-} // namespace 'boost'
-
-
-#endif
diff --git a/boost/range/detail/safe_bool.hpp b/boost/range/detail/safe_bool.hpp
deleted file mode 100644
index 182e510..0000000
--- a/boost/range/detail/safe_bool.hpp
+++ /dev/null
@@ -1,72 +0,0 @@
-//  This header intentionally has no include guards.
-//
-//  Copyright (c) 2010 Neil Groves
-//  Distributed under the Boost Software License, Version 1.0.
-//  See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt
-//
-// This code utilises the experience gained during the evolution of
-// <boost/smart_ptr/operator_bool.hpp>
-#ifndef BOOST_RANGE_SAFE_BOOL_INCLUDED_HPP
-#define BOOST_RANGE_SAFE_BOOL_INCLUDED_HPP
-
-#include <boost/config.hpp>
-#include <boost/range/config.hpp>
-
-namespace boost
-{
-    namespace range_detail
-    {
-
-template<class DataMemberPtr>
-class safe_bool
-{
-public:
-    typedef safe_bool this_type;
-
-#if (defined(__SUNPRO_CC) && BOOST_WORKAROUND(__SUNPRO_CC, < 0x570)) || defined(__CINT_)
-    typedef bool unspecified_bool_type;
-    static unspecified_bool_type to_unspecified_bool(const bool x, DataMemberPtr)
-    {
-        return x;
-    }
-#elif defined(_MANAGED)
-    static void unspecified_bool(this_type***)
-    {
-    }
-    typedef void(*unspecified_bool_type)(this_type***);
-    static unspecified_bool_type to_unspecified_bool(const bool x, DataMemberPtr)
-    {
-        return x ? unspecified_bool : 0;
-    }
-#elif \
-    ( defined(__MWERKS__) && BOOST_WORKAROUND(__MWERKS__, < 0x3200) ) || \
-    ( defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ < 304) ) || \
-    ( defined(__SUNPRO_CC) && BOOST_WORKAROUND(__SUNPRO_CC, <= 0x590) )
-
-    typedef bool (this_type::*unspecified_bool_type)() const;
-
-    static unspecified_bool_type to_unspecified_bool(const bool x, DataMemberPtr)
-    {
-        return x ? &this_type::detail_safe_bool_member_fn : 0;
-    }
-private:
-    bool detail_safe_bool_member_fn() const { return false; }
-#else
-    typedef DataMemberPtr unspecified_bool_type;
-    static unspecified_bool_type to_unspecified_bool(const bool x, DataMemberPtr p)
-    {
-        return x ? p : 0;
-    }
-#endif
-private:
-    safe_bool();
-    safe_bool(const safe_bool&);
-    void operator=(const safe_bool&);
-    ~safe_bool();
-};
-
-    } // namespace range_detail
-} // namespace boost
-
-#endif // include guard
diff --git a/boost/range/detail/sfinae.hpp b/boost/range/detail/sfinae.hpp
deleted file mode 100644
index 5b2c61e..0000000
--- a/boost/range/detail/sfinae.hpp
+++ /dev/null
@@ -1,77 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2004. Use, modification and
-//  distribution is subject to the Boost Software License, Version
-//  1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef BOOST_RANGE_DETAIL_SFINAE_HPP
-#define BOOST_RANGE_DETAIL_SFINAE_HPP
-
-#include <boost/range/config.hpp>
-#include <boost/type_traits/is_array.hpp>
-#include <boost/type_traits/detail/yes_no_type.hpp>
-#include <utility>
-
-
-namespace boost 
-{
-    namespace range_detail
-    {          
-        using type_traits::yes_type;
-        using type_traits::no_type;
-
-        //////////////////////////////////////////////////////////////////////
-        // string
-        //////////////////////////////////////////////////////////////////////
-        
-        yes_type is_string_impl( const char* const );
-        yes_type is_string_impl( const wchar_t* const );
-        no_type  is_string_impl( ... );
-        
-        template< std::size_t sz >
-        yes_type is_char_array_impl( char BOOST_RANGE_ARRAY_REF()[sz] );
-        template< std::size_t sz >
-        yes_type is_char_array_impl( const char BOOST_RANGE_ARRAY_REF()[sz] );
-        no_type  is_char_array_impl( ... );
-        
-        template< std::size_t sz >
-        yes_type is_wchar_t_array_impl( wchar_t BOOST_RANGE_ARRAY_REF()[sz] );
-        template< std::size_t sz >
-        yes_type is_wchar_t_array_impl( const wchar_t BOOST_RANGE_ARRAY_REF()[sz] );
-        no_type  is_wchar_t_array_impl( ... );
-                                     
-        yes_type is_char_ptr_impl( char* const );
-        no_type  is_char_ptr_impl( ... );
-        
-        yes_type is_const_char_ptr_impl( const char* const );
-        no_type  is_const_char_ptr_impl( ... );
-
-        yes_type is_wchar_t_ptr_impl( wchar_t* const );
-        no_type  is_wchar_t_ptr_impl( ... );
-        
-        yes_type is_const_wchar_t_ptr_impl( const wchar_t* const );
-        no_type  is_const_wchar_t_ptr_impl( ... );
-        
-        //////////////////////////////////////////////////////////////////////
-        // pair
-        //////////////////////////////////////////////////////////////////////
-
-        template< typename Iterator >
-        yes_type is_pair_impl( const std::pair<Iterator,Iterator>* );
-        no_type  is_pair_impl( ... );
-
-        //////////////////////////////////////////////////////////////////////
-        // tags
-        //////////////////////////////////////////////////////////////////////
-
-        struct char_or_wchar_t_array_tag {};
-        
-    } // namespace 'range_detail'
-    
-} // namespace 'boost'
-
-#endif
diff --git a/boost/range/detail/size_type.hpp b/boost/range/detail/size_type.hpp
deleted file mode 100644
index 78a60a4..0000000
--- a/boost/range/detail/size_type.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2004. Use, modification and
-//  distribution is subject to the Boost Software License, Version
-//  1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef BOOST_RANGE_DETAIL_SIZE_TYPE_HPP
-#define BOOST_RANGE_DETAIL_SIZE_TYPE_HPP
-
-#include <boost/range/detail/common.hpp>
-
-//////////////////////////////////////////////////////////////////////////////
-// missing partial specialization  workaround.
-//////////////////////////////////////////////////////////////////////////////
-
-namespace boost
-{
-    namespace range_detail
-    {
-        template< typename T >
-        struct range_size_type_
-        {
-            template< typename C >
-            struct pts
-            {
-                typedef std::size_t type;
-            };
-        };
-
-        template<>
-        struct range_size_type_<std_container_>
-        {
-            template< typename C >
-            struct pts
-            {
-                typedef BOOST_RANGE_DEDUCED_TYPENAME C::size_type type;
-            };
-        };
-    }
-
-    template< typename C >
-    class range_size
-    {
-        typedef typename range_detail::range<C>::type c_type;
-    public:
-        typedef typename range_detail::range_size_type_<c_type>::BOOST_NESTED_TEMPLATE pts<C>::type type;
-    };
-}
-
-#endif
-
diff --git a/boost/range/detail/vc6/end.hpp b/boost/range/detail/vc6/end.hpp
deleted file mode 100644
index 4f76af5..0000000
--- a/boost/range/detail/vc6/end.hpp
+++ /dev/null
@@ -1,170 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2004. Use, modification and
-//  distribution is subject to the Boost Software License, Version
-//  1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef BOOST_RANGE_DETAIL_VC6_END_HPP
-#define BOOST_RANGE_DETAIL_VC6_END_HPP
-
-#include <boost/range/detail/implementation_help.hpp>
-#include <boost/range/detail/implementation_help.hpp>
-#include <boost/range/result_iterator.hpp>
-#include <boost/range/detail/common.hpp>
-#include <boost/range/detail/remove_extent.hpp>
-
-namespace boost 
-{
-    namespace range_detail
-    {
-        template< typename T >
-        struct range_end;
-
-        //////////////////////////////////////////////////////////////////////
-        // default
-        //////////////////////////////////////////////////////////////////////
-        
-        template<>
-        struct range_end<std_container_>
-        {
-            template< typename C >
-            struct inner {
-                static BOOST_RANGE_DEDUCED_TYPENAME range_result_iterator<C>::type 
-                fun( C& c )
-                {
-                    return c.end();
-                };
-            };
-        };
-                    
-        //////////////////////////////////////////////////////////////////////
-        // pair
-        //////////////////////////////////////////////////////////////////////
-        
-        template<>
-        struct range_end<std_pair_>
-        {
-            template< typename P >
-            struct inner {
-                static BOOST_RANGE_DEDUCED_TYPENAME range_result_iterator<P>::type 
-                fun( const P& p )
-                {
-                    return p.second;
-                }
-            };
-        };
- 
-        //////////////////////////////////////////////////////////////////////
-        // array
-        //////////////////////////////////////////////////////////////////////
-        
-        template<>
-        struct range_end<array_>  
-        {
-            template< typename T >
-            struct inner {
-                static BOOST_DEDUCED_TYPENAME remove_extent<T>::type*
-                fun(T& t)
-                {
-                    return t + remove_extent<T>::size;
-                }
-            };
-        };
-
-                
-        template<>
-        struct range_end<char_array_>
-        {
-            template< typename T >
-            struct inner {
-                static BOOST_DEDUCED_TYPENAME remove_extent<T>::type*
-                fun(T& t)
-                {
-                    return t + remove_extent<T>::size;
-                }
-            };
-        };
-        
-        template<>
-        struct range_end<wchar_t_array_>
-        {
-            template< typename T >
-            struct inner {
-                static BOOST_DEDUCED_TYPENAME remove_extent<T>::type*
-                fun(T& t)
-                {
-                    return t + remove_extent<T>::size;
-                }
-            };
-        };
-
-        //////////////////////////////////////////////////////////////////////
-        // string
-        //////////////////////////////////////////////////////////////////////
-        
-        template<>
-        struct range_end<char_ptr_>
-        {
-            template< typename T >
-            struct inner {
-                static char* fun( char* s )
-                {
-                    return boost::range_detail::str_end( s );
-                }
-            };
-        };
-
-        template<>
-        struct range_end<const_char_ptr_>
-        {
-            template< typename T >
-            struct inner {
-                static const char* fun( const char* s )
-                {
-                    return boost::range_detail::str_end( s );
-                }
-            };
-        };
-
-        template<>
-        struct range_end<wchar_t_ptr_>
-        {
-            template< typename T >
-            struct inner {
-                static wchar_t* fun( wchar_t* s )
-                {
-                    return boost::range_detail::str_end( s );
-                }
-            };
-        };
-
-
-        template<>
-        struct range_end<const_wchar_t_ptr_>
-        {
-            template< typename T >
-            struct inner {
-                static const wchar_t* fun( const wchar_t* s )
-                {
-                    return boost::range_detail::str_end( s );
-                }
-            };
-        };
-        
-    } // namespace 'range_detail'
-    
-    template< typename C >
-    inline BOOST_DEDUCED_TYPENAME range_result_iterator<C>::type 
-    end( C& c )
-    {
-        return range_detail::range_end<range_detail::range<C>::type>::inner<C>::fun( c );
-    }
-    
-} // namespace 'boost'
-
-
-#endif
diff --git a/boost/range/difference_type.hpp b/boost/range/difference_type.hpp
deleted file mode 100644
index 164288f..0000000
--- a/boost/range/difference_type.hpp
+++ /dev/null
@@ -1,29 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2004. Use, modification and
-//  distribution is subject to the Boost Software License, Version
-//  1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef BOOST_RANGE_DIFFERENCE_TYPE_HPP
-#define BOOST_RANGE_DIFFERENCE_TYPE_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1200)
-# pragma once
-#endif
-
-#include <boost/range/config.hpp>
-#include <boost/range/iterator.hpp>
-#include <boost/iterator/iterator_traits.hpp>
-
-namespace boost
-{
-    template< class T >
-    struct range_difference : iterator_difference< typename range_iterator<T>::type >
-    { };
-}
-
-#endif
diff --git a/boost/range/distance.hpp b/boost/range/distance.hpp
deleted file mode 100644
index 42a106d..0000000
--- a/boost/range/distance.hpp
+++ /dev/null
@@ -1,34 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2006. Use, modification and
-//  distribution is subject to the Boost Software License, Version
-//  1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef BOOST_RANGE_DISTANCE_HPP
-#define BOOST_RANGE_DISTANCE_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1200)
-# pragma once
-#endif
-
-#include <boost/range/begin.hpp>
-#include <boost/range/end.hpp>
-#include <boost/range/difference_type.hpp>
-
-namespace boost 
-{
-
-    template< class T >
-    inline BOOST_DEDUCED_TYPENAME range_difference<T>::type 
-    distance( const T& r )
-    {
-        return std::distance( boost::begin( r ), boost::end( r ) );
-    }
-
-} // namespace 'boost'
-
-#endif
diff --git a/boost/range/empty.hpp b/boost/range/empty.hpp
deleted file mode 100644
index 36e58d7..0000000
--- a/boost/range/empty.hpp
+++ /dev/null
@@ -1,34 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2004. Use, modification and
-//  distribution is subject to the Boost Software License, Version
-//  1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef BOOST_RANGE_EMPTY_HPP
-#define BOOST_RANGE_EMPTY_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1200)
-# pragma once
-#endif
-
-#include <boost/range/config.hpp>
-#include <boost/range/begin.hpp>
-#include <boost/range/end.hpp>
-
-namespace boost 
-{ 
-
-    template< class T >
-    inline bool empty( const T& r )
-    {
-        return boost::begin( r ) == boost::end( r );
-    }
-
-} // namespace 'boost'
-
-
-#endif
diff --git a/boost/range/end.hpp b/boost/range/end.hpp
deleted file mode 100644
index d5e6526..0000000
--- a/boost/range/end.hpp
+++ /dev/null
@@ -1,136 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2004. Use, modification and
-//  distribution is subject to the Boost Software License, Version
-//  1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef BOOST_RANGE_END_HPP
-#define BOOST_RANGE_END_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1200)
-# pragma once
-#endif
-
-#include <boost/range/config.hpp>
-
-#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
-#include <boost/range/detail/end.hpp>
-#else
-
-#include <boost/range/detail/implementation_help.hpp>
-#include <boost/range/iterator.hpp>
-#include <boost/range/const_iterator.hpp>
-
-namespace boost
-{
-
-#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) && \
-    !BOOST_WORKAROUND(__GNUC__, < 3) \
-    /**/
-namespace range_detail
-{
-#endif
-
-        //////////////////////////////////////////////////////////////////////
-        // primary template
-        //////////////////////////////////////////////////////////////////////
-        template< typename C >
-        inline BOOST_DEDUCED_TYPENAME range_iterator<C>::type
-        range_end( C& c )
-        {
-            //
-            // If you get a compile-error here, it is most likely because
-            // you have not implemented range_begin() properly in
-            // the namespace of C
-            //
-            return c.end();
-        }
-
-        //////////////////////////////////////////////////////////////////////
-        // pair
-        //////////////////////////////////////////////////////////////////////
-
-        template< typename Iterator >
-        inline Iterator range_end( const std::pair<Iterator,Iterator>& p )
-        {
-            return p.second;
-        }
-
-        template< typename Iterator >
-        inline Iterator range_end( std::pair<Iterator,Iterator>& p )
-        {
-            return p.second;
-        }
-
-        //////////////////////////////////////////////////////////////////////
-        // array
-        //////////////////////////////////////////////////////////////////////
-
-        template< typename T, std::size_t sz >
-        inline const T* range_end( const T (&a)[sz] )
-        {
-            return range_detail::array_end<T,sz>( a );
-        }
-
-        template< typename T, std::size_t sz >
-        inline T* range_end( T (&a)[sz] )
-        {
-            return range_detail::array_end<T,sz>( a );
-        }
-
-#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) && \
-    !BOOST_WORKAROUND(__GNUC__, < 3) \
-    /**/
-} // namespace 'range_detail'
-#endif
-
-namespace range_adl_barrier
-{
-
-template< class T >
-inline BOOST_DEDUCED_TYPENAME range_iterator<T>::type end( T& r )
-{
-#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) && \
-    !BOOST_WORKAROUND(__GNUC__, < 3) \
-    /**/
-    using namespace range_detail;
-#endif
-    return range_end( r );
-}
-
-template< class T >
-inline BOOST_DEDUCED_TYPENAME range_iterator<const T>::type end( const T& r )
-{
-#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) && \
-    !BOOST_WORKAROUND(__GNUC__, < 3) \
-    /**/
-    using namespace range_detail;
-#endif
-    return range_end( r );
-}
-
-    } // namespace range_adl_barrier
-} // namespace 'boost'
-
-#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING
-
-namespace boost
-{
-    namespace range_adl_barrier
-    {
-        template< class T >
-        inline BOOST_DEDUCED_TYPENAME range_iterator<const T>::type
-        const_end( const T& r )
-        {
-            return boost::range_adl_barrier::end( r );
-        }
-    } // namespace range_adl_barrier
-    using namespace range_adl_barrier;
-} // namespace boost
-
-#endif
-
diff --git a/boost/range/functions.hpp b/boost/range/functions.hpp
deleted file mode 100644
index b8b8608..0000000
--- a/boost/range/functions.hpp
+++ /dev/null
@@ -1,27 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2006. Use, modification and
-//  distribution is subject to the Boost Software License, Version
-//  1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef BOOST_RANGE_FUNCTIONS_HPP
-#define BOOST_RANGE_FUNCTIONS_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1200)
-# pragma once
-#endif
-
-#include <boost/range/begin.hpp>
-#include <boost/range/end.hpp>
-#include <boost/range/size.hpp>
-#include <boost/range/distance.hpp>
-#include <boost/range/empty.hpp>
-#include <boost/range/rbegin.hpp>
-#include <boost/range/rend.hpp>
-
-#endif
-
diff --git a/boost/range/iterator.hpp b/boost/range/iterator.hpp
deleted file mode 100644
index ec73ddc..0000000
--- a/boost/range/iterator.hpp
+++ /dev/null
@@ -1,72 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2004. Use, modification and
-//  distribution is subject to the Boost Software License, Version
-//  1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef BOOST_RANGE_ITERATOR_HPP
-#define BOOST_RANGE_ITERATOR_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <boost/range/config.hpp>
-#include <boost/range/mutable_iterator.hpp>
-#include <boost/range/const_iterator.hpp>
-#include <boost/type_traits/is_const.hpp>
-#include <boost/type_traits/remove_const.hpp>
-#include <boost/mpl/eval_if.hpp>
-
-namespace boost
-{
-
-#if BOOST_WORKAROUND(BOOST_MSVC, == 1310)
-
-    namespace range_detail_vc7_1
-    {
-       template< typename C, typename Sig = void(C) >
-       struct range_iterator
-       {
-           typedef BOOST_RANGE_DEDUCED_TYPENAME
-               mpl::eval_if_c< is_const<C>::value,
-                               range_const_iterator< typename remove_const<C>::type >,
-                               range_mutable_iterator<C> >::type type;
-       };
-
-       template< typename C, typename T >
-       struct range_iterator< C, void(T[]) >
-       {
-           typedef T* type;
-       };
-    }
-
-#endif
-
-    template< typename C >
-    struct range_iterator
-    {
-#if BOOST_WORKAROUND(BOOST_MSVC, == 1310)
-
-        typedef BOOST_RANGE_DEDUCED_TYPENAME
-               range_detail_vc7_1::range_iterator<C>::type type;
-
-#else
-
-        typedef BOOST_RANGE_DEDUCED_TYPENAME
-            mpl::eval_if_c< is_const<C>::value,
-                            range_const_iterator< typename remove_const<C>::type >,
-                            range_mutable_iterator<C> >::type type;
-
-#endif
-    };
-
-} // namespace boost
-
-//#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#endif
diff --git a/boost/range/iterator_range_core.hpp b/boost/range/iterator_range_core.hpp
deleted file mode 100644
index 6e68992..0000000
--- a/boost/range/iterator_range_core.hpp
+++ /dev/null
@@ -1,653 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Neil Groves & Thorsten Ottosen & Pavol Droba 2003-2004.
-//  Use, modification and distribution is subject to the Boost Software
-//  License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-#ifndef BOOST_RANGE_ITERATOR_RANGE_CORE_HPP_INCLUDED
-#define BOOST_RANGE_ITERATOR_RANGE_CORE_HPP_INCLUDED
-
-#include <boost/config.hpp> // Define __STL_CONFIG_H, if appropriate.
-#include <boost/detail/workaround.hpp>
-
-#if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1500))
-    #pragma warning( push )
-    #pragma warning( disable : 4996 )
-#endif
-
-#include <boost/assert.hpp>
-#include <boost/iterator/iterator_traits.hpp>
-#include <boost/iterator/iterator_facade.hpp>
-#include <boost/mpl/or.hpp>
-#include <boost/type_traits/is_abstract.hpp>
-#include <boost/type_traits/is_array.hpp>
-#include <boost/type_traits/is_pointer.hpp>
-#include <boost/range/functions.hpp>
-#include <boost/range/iterator.hpp>
-#include <boost/range/difference_type.hpp>
-#include <boost/range/algorithm/equal.hpp>
-#include <boost/range/detail/safe_bool.hpp>
-#include <boost/utility/enable_if.hpp>
-#include <iterator>
-#include <algorithm>
-#include <cstddef>
-
-/*! \file
-    Defines the \c iterator_class and related functions.
-    \c iterator_range is a simple wrapper of iterator pair idiom. It provides
-    a rich subset of Container interface.
-*/
-
-
-namespace boost
-{
-    namespace iterator_range_detail
-    {
-        //
-        // The functions adl_begin and adl_end are implemented in a separate
-        // class for gcc-2.9x
-        //
-        template<class IteratorT>
-        struct iterator_range_impl {
-            template< class ForwardRange >
-            static IteratorT adl_begin( ForwardRange& r )
-            {
-                return static_cast<IteratorT>( boost::begin( r ) );
-            }
-
-            template< class ForwardRange >
-            static IteratorT adl_end( ForwardRange& r )
-            {
-                return static_cast<IteratorT>( boost::end( r ) );
-            }
-        };
-
-        template< class Left, class Right >
-        inline bool less_than( const Left& l, const Right& r )
-        {
-            return std::lexicographical_compare( boost::begin(l),
-                                                 boost::end(l),
-                                                 boost::begin(r),
-                                                 boost::end(r) );
-        }
-        
-        template< class Left, class Right >
-        inline bool greater_than( const Left& l, const Right& r )
-        {
-            return less_than(r,l);
-        }
-        
-        template< class Left, class Right >
-        inline bool less_or_equal_than( const Left& l, const Right& r )
-        {
-            return !iterator_range_detail::less_than(r,l);
-        }
-        
-        template< class Left, class Right >
-        inline bool greater_or_equal_than( const Left& l, const Right& r )
-        {
-            return !iterator_range_detail::less_than(l,r);
-        }
-
-        // This version is maintained since it is used in other boost libraries
-        // such as Boost.Assign
-        template< class Left, class Right >
-        inline bool equal(const Left& l, const Right& r)
-        {
-            return boost::equal(l, r);
-        }
-
-        struct range_tag { };
-        struct const_range_tag { };
-    }
-
-//  iterator range template class -----------------------------------------//
-
-        //! iterator_range class
-        /*!
-            An \c iterator_range delimits a range in a sequence by beginning and ending iterators.
-            An iterator_range can be passed to an algorithm which requires a sequence as an input.
-            For example, the \c toupper() function may be used most frequently on strings,
-            but can also be used on iterator_ranges:
-
-            \code
-                boost::tolower( find( s, "UPPERCASE STRING" ) );
-            \endcode
-
-            Many algorithms working with sequences take a pair of iterators,
-            delimiting a working range, as an arguments. The \c iterator_range class is an
-            encapsulation of a range identified by a pair of iterators.
-            It provides a collection interface,
-            so it is possible to pass an instance to an algorithm requiring a collection as an input.
-        */
-        template<class IteratorT>
-        class iterator_range
-        {
-            typedef range_detail::safe_bool< IteratorT iterator_range<IteratorT>::* > safe_bool_t;
-        protected: // Used by sub_range
-            //! implementation class
-            typedef iterator_range_detail::iterator_range_impl<IteratorT> impl;
-        public:
-            //! this type
-            typedef iterator_range<IteratorT> type;
-            typedef BOOST_DEDUCED_TYPENAME safe_bool_t::unspecified_bool_type unspecified_bool_type;
-            //BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION(value_type);
-
-            //! Encapsulated value type
-            typedef BOOST_DEDUCED_TYPENAME
-                iterator_value<IteratorT>::type value_type;
-
-            //! Difference type
-            typedef BOOST_DEDUCED_TYPENAME
-                iterator_difference<IteratorT>::type difference_type;
-
-            //! Size type
-            typedef std::size_t size_type; // note: must be unsigned
-
-            //! This type
-            typedef iterator_range<IteratorT> this_type;
-
-            //! Reference type
-            //
-            // Needed because value-type is the same for
-            // const and non-const iterators
-            //
-            typedef BOOST_DEDUCED_TYPENAME
-                iterator_reference<IteratorT>::type reference;
-
-            //! const_iterator type
-            /*!
-                There is no distinction between const_iterator and iterator.
-                These typedefs are provides to fulfill container interface
-            */
-            typedef IteratorT const_iterator;
-            //! iterator type
-            typedef IteratorT iterator;
-
-        private: // for return value of operator()()
-            typedef BOOST_DEDUCED_TYPENAME
-                boost::mpl::if_< boost::mpl::or_< boost::is_abstract< value_type >, 
-                                                  boost::is_array< value_type > >,
-                                 reference, value_type >::type abstract_value_type;
-
-        public:
-            iterator_range() : m_Begin( iterator() ), m_End( iterator() )
-            { }
-
-            //! Constructor from a pair of iterators
-            template< class Iterator >
-            iterator_range( Iterator Begin, Iterator End ) :
-                m_Begin(Begin), m_End(End)
-            {}
-
-            //! Constructor from a Range
-            template< class Range >
-            iterator_range( const Range& r ) :
-                m_Begin( impl::adl_begin( r ) ), m_End( impl::adl_end( r ) )
-            {}
-
-            //! Constructor from a Range
-            template< class Range >
-            iterator_range( Range& r ) :
-                m_Begin( impl::adl_begin( r ) ), m_End( impl::adl_end( r ) )
-            {}
-
-            //! Constructor from a Range
-            template< class Range >
-            iterator_range( const Range& r, iterator_range_detail::const_range_tag ) :
-                m_Begin( impl::adl_begin( r ) ), m_End( impl::adl_end( r ) )
-            {}
-
-            //! Constructor from a Range
-            template< class Range >
-            iterator_range( Range& r, iterator_range_detail::range_tag ) :
-                m_Begin( impl::adl_begin( r ) ), m_End( impl::adl_end( r ) )
-            {}
-
-            #if !BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-            this_type& operator=( const this_type& r )
-            {
-                m_Begin  = r.begin();
-                m_End    = r.end();
-                return *this;
-            }
-            #endif
-
-            template< class Iterator >
-            iterator_range& operator=( const iterator_range<Iterator>& r )
-            {
-                m_Begin  = r.begin();
-                m_End    = r.end();
-                return *this;
-            }
-
-            template< class ForwardRange >
-            iterator_range& operator=( ForwardRange& r )
-            {
-                m_Begin  = impl::adl_begin( r );
-                m_End    = impl::adl_end( r );
-                return *this;
-            }
-
-            template< class ForwardRange >
-            iterator_range& operator=( const ForwardRange& r )
-            {
-                m_Begin  = impl::adl_begin( r );
-                m_End    = impl::adl_end( r );
-                return *this;
-            }
-
-            IteratorT begin() const
-            {
-                return m_Begin;
-            }
-
-            IteratorT end() const
-            {
-                return m_End;
-            }
-
-            difference_type size() const
-            {
-                return m_End - m_Begin;
-            }
-
-            bool empty() const
-            {
-                return m_Begin == m_End;
-            }
-
-            operator unspecified_bool_type() const
-            {
-                return safe_bool_t::to_unspecified_bool(m_Begin != m_End, &iterator_range::m_Begin);
-            }
-
-            bool operator!() const
-            {
-                return empty();
-            }
-
-            bool equal( const iterator_range& r ) const
-            {
-                return m_Begin == r.m_Begin && m_End == r.m_End;
-            }
-
-
-#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
-
-            bool operator==( const iterator_range& r ) const
-            {
-                return boost::equal( *this, r );
-            }
-
-            bool operator!=( const iterator_range& r ) const
-            {
-                return !operator==(r);
-            }
-
-           bool operator<( const iterator_range& r ) const
-           {
-               return iterator_range_detail::less_than( *this, r );
-           }
-           
-           bool operator>( const iterator_range& r ) const
-           {
-               return iterator_range_detail::greater_than( *this, r );
-           }
-           
-           bool operator<=( const iterator_range& r ) const
-           {
-               return iterator_range_detail::less_or_equal_than( *this, r );
-           }
-           
-           bool operator>=( const iterator_range& r ) const
-           {
-               return iterator_range_detail::greater_or_equal_than( *this, r );
-           }
-
-#endif
-
-        public: // convenience
-           reference front() const
-           {
-               BOOST_ASSERT( !empty() );
-               return *m_Begin;
-           }
-
-           reference back() const
-           {
-               BOOST_ASSERT( !empty() );
-               IteratorT last( m_End );
-               return *--last;
-           }
-
-           // pop_front() - added to model the SinglePassRangePrimitiveConcept
-           void pop_front()
-           {
-               BOOST_ASSERT( !empty() );
-               ++m_Begin;
-           }
-
-           // pop_back() - added to model the BidirectionalRangePrimitiveConcept
-           void pop_back()
-           {
-               BOOST_ASSERT( !empty() );
-               --m_End;
-           }
-
-           reference operator[]( difference_type at ) const
-           {
-               BOOST_ASSERT( at >= 0 && at < size() );
-               return m_Begin[at];
-           }
-
-           //
-           // When storing transform iterators, operator[]()
-           // fails because it returns by reference. Therefore
-           // operator()() is provided for these cases.
-           //
-           abstract_value_type operator()( difference_type at ) const
-           {
-               BOOST_ASSERT( at >= 0 && at < size() );
-               return m_Begin[at];
-           }
-
-           iterator_range& advance_begin( difference_type n )
-           {
-               std::advance( m_Begin, n );
-               return *this;
-           }
-
-           iterator_range& advance_end( difference_type n )
-           {
-               std::advance( m_End, n );
-               return *this;
-           }
-
-        private:
-            // begin and end iterators
-            IteratorT m_Begin;
-            IteratorT m_End;
-
-        protected:
-            //
-            // Allow subclasses an easy way to access the
-            // base type
-            //
-            typedef iterator_range iterator_range_;
-        };
-
-//  iterator range free-standing operators ---------------------------//
-
-        /////////////////////////////////////////////////////////////////////
-        // comparison operators
-        /////////////////////////////////////////////////////////////////////
-
-        template< class IteratorT, class ForwardRange >
-        inline bool operator==( const ForwardRange& l,
-                                const iterator_range<IteratorT>& r )
-        {
-            return boost::equal( l, r );
-        }
-
-        template< class IteratorT, class ForwardRange >
-        inline bool operator!=( const ForwardRange& l,
-                                const iterator_range<IteratorT>& r )
-        {
-            return !boost::equal( l, r );
-        }
-
-        template< class IteratorT, class ForwardRange >
-        inline bool operator<( const ForwardRange& l,
-                               const iterator_range<IteratorT>& r )
-        {
-            return iterator_range_detail::less_than( l, r );
-        }
-        
-        template< class IteratorT, class ForwardRange >
-        inline bool operator<=( const ForwardRange& l,
-                                const iterator_range<IteratorT>& r )
-        {
-            return iterator_range_detail::less_or_equal_than( l, r );
-        }
-        
-        template< class IteratorT, class ForwardRange >
-        inline bool operator>( const ForwardRange& l,
-                               const iterator_range<IteratorT>& r )
-        {
-            return iterator_range_detail::greater_than( l, r );
-        }
-        
-        template< class IteratorT, class ForwardRange >
-        inline bool operator>=( const ForwardRange& l,
-                                const iterator_range<IteratorT>& r )
-        {
-            return iterator_range_detail::greater_or_equal_than( l, r );
-        }
-
-#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
-#else
-        template< class Iterator1T, class Iterator2T >
-        inline bool operator==( const iterator_range<Iterator1T>& l,
-                                const iterator_range<Iterator2T>& r )
-        {
-            return boost::equal( l, r );
-        }
-
-        template< class IteratorT, class ForwardRange >
-        inline bool operator==( const iterator_range<IteratorT>& l,
-                                const ForwardRange& r )
-        {
-            return boost::equal( l, r );
-        }
-
-
-        template< class Iterator1T, class Iterator2T >
-        inline bool operator!=( const iterator_range<Iterator1T>& l,
-                                const iterator_range<Iterator2T>& r )
-        {
-            return !boost::equal( l, r );
-        }
-
-        template< class IteratorT, class ForwardRange >
-        inline bool operator!=( const iterator_range<IteratorT>& l,
-                                const ForwardRange& r )
-        {
-            return !boost::equal( l, r );
-        }
-
-
-        template< class Iterator1T, class Iterator2T >
-        inline bool operator<( const iterator_range<Iterator1T>& l,
-                               const iterator_range<Iterator2T>& r )
-        {
-            return iterator_range_detail::less_than( l, r );
-        }
-
-        template< class IteratorT, class ForwardRange >
-        inline bool operator<( const iterator_range<IteratorT>& l,
-                               const ForwardRange& r )
-        {
-            return iterator_range_detail::less_than( l, r );
-        }
-        
-        template< class Iterator1T, class Iterator2T >
-        inline bool operator<=( const iterator_range<Iterator1T>& l,
-                                const iterator_range<Iterator2T>& r )
-        {
-            return iterator_range_detail::less_or_equal_than( l, r );
-        }
-        
-        template< class IteratorT, class ForwardRange >
-        inline bool operator<=( const iterator_range<IteratorT>& l,
-                                const ForwardRange& r )
-        {
-            return iterator_range_detail::less_or_equal_than( l, r );
-        }
-        
-        template< class Iterator1T, class Iterator2T >
-        inline bool operator>( const iterator_range<Iterator1T>& l,
-                               const iterator_range<Iterator2T>& r )
-        {
-            return iterator_range_detail::greater_than( l, r );
-        }
-        
-        template< class IteratorT, class ForwardRange >
-        inline bool operator>( const iterator_range<IteratorT>& l,
-                               const ForwardRange& r )
-        {
-            return iterator_range_detail::greater_than( l, r );
-        }
-        
-        template< class Iterator1T, class Iterator2T >
-        inline bool operator>=( const iterator_range<Iterator1T>& l,
-                                const iterator_range<Iterator2T>& r )
-        {
-            return iterator_range_detail::greater_or_equal_than( l, r );
-        }
-        
-        template< class IteratorT, class ForwardRange >
-        inline bool operator>=( const iterator_range<IteratorT>& l,
-                                const ForwardRange& r )
-        {
-            return iterator_range_detail::greater_or_equal_than( l, r );
-        }
-
-#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING
-
-//  iterator range utilities -----------------------------------------//
-
-        //! iterator_range construct helper
-        /*!
-            Construct an \c iterator_range from a pair of iterators
-
-            \param Begin A begin iterator
-            \param End An end iterator
-            \return iterator_range object
-        */
-        template< typename IteratorT >
-        inline iterator_range< IteratorT >
-        make_iterator_range( IteratorT Begin, IteratorT End )
-        {
-            return iterator_range<IteratorT>( Begin, End );
-        }
-
-#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
-
-        template< typename Range >
-        inline iterator_range< BOOST_DEDUCED_TYPENAME range_iterator<Range>::type >
-        make_iterator_range( Range& r )
-        {
-            return iterator_range< BOOST_DEDUCED_TYPENAME range_iterator<Range>::type >
-                ( boost::begin( r ), boost::end( r ) );
-        }
-
-#else
-        //! iterator_range construct helper
-        /*!
-            Construct an \c iterator_range from a \c Range containing the begin
-            and end iterators.
-        */
-        template< class ForwardRange >
-        inline iterator_range< BOOST_DEDUCED_TYPENAME range_iterator<ForwardRange>::type >
-        make_iterator_range( ForwardRange& r )
-        {
-           return iterator_range< BOOST_DEDUCED_TYPENAME range_iterator<ForwardRange>::type >
-                ( r, iterator_range_detail::range_tag() );
-        }
-
-        template< class ForwardRange >
-        inline iterator_range< BOOST_DEDUCED_TYPENAME range_iterator<const ForwardRange>::type >
-        make_iterator_range( const ForwardRange& r )
-        {
-           return iterator_range< BOOST_DEDUCED_TYPENAME range_iterator<const ForwardRange>::type >
-                ( r, iterator_range_detail::const_range_tag() );
-        }
-
-#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING
-
-        namespace iterator_range_detail
-        {
-            template< class Range >
-            inline iterator_range< BOOST_DEDUCED_TYPENAME range_iterator<Range>::type >
-            make_range_impl( Range& r,
-                             BOOST_DEDUCED_TYPENAME range_difference<Range>::type advance_begin,
-                             BOOST_DEDUCED_TYPENAME range_difference<Range>::type advance_end )
-            {
-                //
-                // Not worth the effort
-                //
-                //if( advance_begin == 0 && advance_end == 0 )
-                //    return make_iterator_range( r );
-                //
-
-                BOOST_DEDUCED_TYPENAME range_iterator<Range>::type
-                    new_begin = boost::begin( r ),
-                    new_end   = boost::end( r );
-                std::advance( new_begin, advance_begin );
-                std::advance( new_end, advance_end );
-                return make_iterator_range( new_begin, new_end );
-            }
-        }
-
-#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
-
-        template< class Range >
-        inline iterator_range< BOOST_DEDUCED_TYPENAME range_iterator<Range>::type >
-        make_iterator_range( Range& r,
-                    BOOST_DEDUCED_TYPENAME range_difference<Range>::type advance_begin,
-                    BOOST_DEDUCED_TYPENAME range_difference<Range>::type advance_end )
-        {
-            //BOOST_ASSERT( advance_begin - advance_end <= size(r) && "creating invalid range" );
-            return iterator_range_detail::make_range_impl( r, advance_begin, advance_end );
-        }
-
-#else
-
-        template< class Range >
-        inline iterator_range< BOOST_DEDUCED_TYPENAME range_iterator<Range>::type >
-        make_iterator_range( Range& r,
-                    BOOST_DEDUCED_TYPENAME range_difference<Range>::type advance_begin,
-                    BOOST_DEDUCED_TYPENAME range_difference<Range>::type advance_end )
-        {
-            //BOOST_ASSERT( advance_begin - advance_end <= size(r) && "creating invalid range" );
-            return iterator_range_detail::make_range_impl( r, advance_begin, advance_end );
-        }
-
-        template< class Range >
-        inline iterator_range< BOOST_DEDUCED_TYPENAME range_iterator<const Range>::type >
-        make_iterator_range( const Range& r,
-                    BOOST_DEDUCED_TYPENAME range_difference<Range>::type advance_begin,
-                    BOOST_DEDUCED_TYPENAME range_difference<Range>::type advance_end )
-        {
-            //BOOST_ASSERT( advance_begin - advance_end <= size(r) && "creating invalid range" );
-            return iterator_range_detail::make_range_impl( r, advance_begin, advance_end );
-        }
-
-#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING
-
-        //! copy a range into a sequence
-        /*!
-            Construct a new sequence of the specified type from the elements
-            in the given range
-
-            \param Range An input range
-            \return New sequence
-        */
-        template< typename SeqT, typename Range >
-        inline SeqT copy_range( const Range& r )
-        {
-            return SeqT( boost::begin( r ), boost::end( r ) );
-        }
-
-} // namespace 'boost'
-
-#if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1500))
-    #pragma warning( pop )
-#endif
-
-#endif
-
diff --git a/boost/range/mutable_iterator.hpp b/boost/range/mutable_iterator.hpp
deleted file mode 100644
index 7beca66..0000000
--- a/boost/range/mutable_iterator.hpp
+++ /dev/null
@@ -1,67 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2004. Use, modification and
-//  distribution is subject to the Boost Software License, Version
-//  1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef BOOST_RANGE_MUTABLE_ITERATOR_HPP
-#define BOOST_RANGE_MUTABLE_ITERATOR_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1200)
-# pragma once
-#endif
-
-#include <boost/range/config.hpp>
-
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#include <boost/range/detail/iterator.hpp>
-#else
-
-#include <boost/range/detail/extract_optional_type.hpp>
-#include <boost/iterator/iterator_traits.hpp>
-#include <cstddef>
-#include <utility>
-
-namespace boost
-{
-    //////////////////////////////////////////////////////////////////////////
-    // default
-    //////////////////////////////////////////////////////////////////////////
-    
-    namespace range_detail {
-        BOOST_RANGE_EXTRACT_OPTIONAL_TYPE( iterator )
-    }
-
-    template< typename C >
-    struct range_mutable_iterator : range_detail::extract_iterator<C>
-    {};
-    
-    //////////////////////////////////////////////////////////////////////////
-    // pair
-    //////////////////////////////////////////////////////////////////////////
-
-    template< typename Iterator >
-    struct range_mutable_iterator< std::pair<Iterator,Iterator> >
-    {
-        typedef Iterator type;
-    };
-
-    //////////////////////////////////////////////////////////////////////////
-    // array
-    //////////////////////////////////////////////////////////////////////////
-
-    template< typename T, std::size_t sz >
-    struct range_mutable_iterator< T[sz] >
-    {
-        typedef T* type;
-    };
-
-} // namespace boost
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#endif
diff --git a/boost/range/rbegin.hpp b/boost/range/rbegin.hpp
deleted file mode 100644
index 78e5f61..0000000
--- a/boost/range/rbegin.hpp
+++ /dev/null
@@ -1,65 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2004. Use, modification and
-//  distribution is subject to the Boost Software License, Version
-//  1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef BOOST_RANGE_RBEGIN_HPP
-#define BOOST_RANGE_RBEGIN_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1200)
-# pragma once
-#endif
-
-#include <boost/range/end.hpp>
-#include <boost/range/reverse_iterator.hpp>
-
-namespace boost
-{
-
-#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
-
-template< class C >
-inline BOOST_DEDUCED_TYPENAME range_reverse_iterator<C>::type
-rbegin( C& c )
-{
-    return BOOST_DEDUCED_TYPENAME range_reverse_iterator<C>::type( boost::end( c ) );
-}
-
-#else
-
-template< class C >
-inline BOOST_DEDUCED_TYPENAME range_reverse_iterator<C>::type
-rbegin( C& c )
-{
-    typedef BOOST_DEDUCED_TYPENAME range_reverse_iterator<C>::type
-        iter_type;
-    return iter_type( boost::end( c ) );
-}
-
-template< class C >
-inline BOOST_DEDUCED_TYPENAME range_reverse_iterator<const C>::type
-rbegin( const C& c )
-{
-    typedef BOOST_DEDUCED_TYPENAME range_reverse_iterator<const C>::type
-        iter_type;
-    return iter_type( boost::end( c ) );
-}
-
-#endif // BOOST_NO_FUNCTION_TEMPLATE_ORDERING
-
-template< class T >
-inline BOOST_DEDUCED_TYPENAME range_reverse_iterator<const T>::type
-const_rbegin( const T& r )
-{
-    return boost::rbegin( r );
-}
-
-} // namespace 'boost'
-
-#endif
-
diff --git a/boost/range/rend.hpp b/boost/range/rend.hpp
deleted file mode 100644
index fd79aa2..0000000
--- a/boost/range/rend.hpp
+++ /dev/null
@@ -1,65 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2004. Use, modification and
-//  distribution is subject to the Boost Software License, Version
-//  1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef BOOST_RANGE_REND_HPP
-#define BOOST_RANGE_REND_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1200)
-# pragma once
-#endif
-
-#include <boost/range/begin.hpp>
-#include <boost/range/reverse_iterator.hpp>
-
-namespace boost
-{
-
-#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
-
-template< class C >
-inline BOOST_DEDUCED_TYPENAME range_reverse_iterator<C>::type
-rend( C& c )
-{
-    return BOOST_DEDUCED_TYPENAME range_reverse_iterator<C>::type( boost::begin( c ) );
-}
-
-#else
-
-template< class C >
-inline BOOST_DEDUCED_TYPENAME range_reverse_iterator<C>::type
-rend( C& c )
-{
-    typedef BOOST_DEDUCED_TYPENAME range_reverse_iterator<C>::type
-               iter_type;
-    return iter_type( boost::begin( c ) );
-}
-
-template< class C >
-inline BOOST_DEDUCED_TYPENAME range_reverse_iterator<const C>::type
-rend( const C& c )
-{
-    typedef BOOST_DEDUCED_TYPENAME range_reverse_iterator<const C>::type
-        iter_type;
-    return iter_type( boost::begin( c ) );
-}
-
-#endif
-
-template< class T >
-inline BOOST_DEDUCED_TYPENAME range_reverse_iterator<const T>::type
-const_rend( const T& r )
-{
-    return boost::rend( r );
-}
-
-} // namespace 'boost'
-
-#endif
-
diff --git a/boost/range/result_iterator.hpp b/boost/range/result_iterator.hpp
deleted file mode 100644
index ba09c5f..0000000
--- a/boost/range/result_iterator.hpp
+++ /dev/null
@@ -1,33 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2004. Use, modification and
-//  distribution is subject to the Boost Software License, Version
-//  1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef BOOST_RANGE_RESULT_ITERATOR_HPP
-#define BOOST_RANGE_RESULT_ITERATOR_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <boost/range/iterator.hpp>
-
-namespace boost
-{
-    //
-    // This interface is deprecated, use range_iterator<T>
-    //
-    
-    template< typename C >
-    struct range_result_iterator : range_iterator<C>
-    { };
-    
-} // namespace boost
-
-
-#endif
diff --git a/boost/range/reverse_iterator.hpp b/boost/range/reverse_iterator.hpp
deleted file mode 100644
index f8e9221..0000000
--- a/boost/range/reverse_iterator.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2004. Use, modification and
-//  distribution is subject to the Boost Software License, Version
-//  1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef BOOST_RANGE_REVERSE_ITERATOR_HPP
-#define BOOST_RANGE_REVERSE_ITERATOR_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1200)
-# pragma once
-#endif
-
-#include <boost/range/config.hpp>
-#include <boost/range/iterator.hpp>
-#include <boost/iterator/reverse_iterator.hpp>
-
-
-namespace boost
-{
-    //////////////////////////////////////////////////////////////////////////
-    // default
-    //////////////////////////////////////////////////////////////////////////
-    
-    template< typename C >
-    struct range_reverse_iterator
-    {
-        typedef reverse_iterator< 
-            BOOST_DEDUCED_TYPENAME range_iterator<C>::type > type;
-    };
-    
-
-} // namespace boost
-
-
-#endif
diff --git a/boost/range/size.hpp b/boost/range/size.hpp
deleted file mode 100644
index 6ae74d1..0000000
--- a/boost/range/size.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2004. Use, modification and
-//  distribution is subject to the Boost Software License, Version
-//  1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef BOOST_RANGE_SIZE_HPP
-#define BOOST_RANGE_SIZE_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1200)
-# pragma once
-#endif
-
-#include <boost/range/config.hpp>
-#include <boost/range/begin.hpp>
-#include <boost/range/end.hpp>
-#include <boost/range/size_type.hpp>
-#include <boost/assert.hpp>
-
-namespace boost
-{
-    namespace range_detail
-    {
-        template<class SinglePassRange>
-        inline BOOST_DEDUCED_TYPENAME range_size<const SinglePassRange>::type
-        range_calculate_size(const SinglePassRange& rng)
-        {
-            BOOST_ASSERT( (boost::end(rng) - boost::begin(rng)) >= 0 &&
-                          "reachability invariant broken!" );
-            return boost::end(rng) - boost::begin(rng);
-        }
-    }
-
-    template<class SinglePassRange>
-    inline BOOST_DEDUCED_TYPENAME range_size<const SinglePassRange>::type
-    size(const SinglePassRange& rng)
-    {
-#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) && \
-    !BOOST_WORKAROUND(__GNUC__, < 3) \
-    /**/
-        using namespace range_detail;
-#endif
-        return range_calculate_size(rng);
-    }
-
-} // namespace 'boost'
-
-#endif
diff --git a/boost/range/size_type.hpp b/boost/range/size_type.hpp
deleted file mode 100644
index c6fb54b..0000000
--- a/boost/range/size_type.hpp
+++ /dev/null
@@ -1,89 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2004. Use, modification and
-//  distribution is subject to the Boost Software License, Version
-//  1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef BOOST_RANGE_SIZE_TYPE_HPP
-#define BOOST_RANGE_SIZE_TYPE_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <boost/range/config.hpp>
-#include <boost/range/difference_type.hpp>
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#include <boost/range/detail/size_type.hpp>
-#else
-
-#include <boost/utility/enable_if.hpp>
-#include <boost/type_traits/make_unsigned.hpp>
-#include <boost/type_traits/remove_const.hpp>
-#include <cstddef>
-#include <utility>
-
-namespace boost
-{
-    namespace detail
-    {
-
-        //////////////////////////////////////////////////////////////////////////
-        // default
-        //////////////////////////////////////////////////////////////////////////
-
-        template<typename T>
-        class has_size_type
-        {
-            typedef char no_type;
-            struct yes_type { char dummy[2]; };
-
-            template<typename C>
-            static yes_type test(BOOST_DEDUCED_TYPENAME C::size_type x);
-
-            template<typename C, typename Arg>
-            static no_type test(Arg x);
-
-        public:
-            static const bool value = sizeof(test<T>(0)) == sizeof(yes_type);
-        };
-
-        template<typename C, typename Enabler=void>
-        struct range_size
-        {
-            typedef BOOST_DEDUCED_TYPENAME make_unsigned<
-                BOOST_DEDUCED_TYPENAME range_difference<C>::type
-            >::type type;
-        };
-
-        template<typename C>
-        struct range_size<
-            C,
-            BOOST_DEDUCED_TYPENAME enable_if<has_size_type<C>, void>::type
-        >
-        {
-            typedef BOOST_DEDUCED_TYPENAME C::size_type type;
-        };
-
-    }
-
-    template< class T >
-    struct range_size :
-        detail::range_size<T>
-    { };
-
-    template< class T >
-    struct range_size<const T >
-        : detail::range_size<T>
-    { };
-
-} // namespace boost
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-
-#endif
diff --git a/boost/range/value_type.hpp b/boost/range/value_type.hpp
deleted file mode 100644
index 95c7580..0000000
--- a/boost/range/value_type.hpp
+++ /dev/null
@@ -1,34 +0,0 @@
-// Boost.Range library
-//
-//  Copyright Thorsten Ottosen 2003-2004. Use, modification and
-//  distribution is subject to the Boost Software License, Version
-//  1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-// For more information, see http://www.boost.org/libs/range/
-//
-
-#ifndef BOOST_RANGE_VALUE_TYPE_HPP
-#define BOOST_RANGE_VALUE_TYPE_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1200)
-# pragma once
-#endif
-
-#include <boost/range/config.hpp>
-#include <boost/range/iterator.hpp>
-
-//#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-//#include <boost/range/detail/value_type.hpp>
-//#else
-
-#include <boost/iterator/iterator_traits.hpp>
-
-namespace boost
-{
-    template< class T >
-    struct range_value : iterator_value< typename range_iterator<T>::type >
-    { };
-}
-
-#endif
diff --git a/boost/ref.hpp b/boost/ref.hpp
deleted file mode 100644
index 6058d69..0000000
--- a/boost/ref.hpp
+++ /dev/null
@@ -1,189 +0,0 @@
-#ifndef BOOST_REF_HPP_INCLUDED
-#define BOOST_REF_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-#include <boost/config.hpp>
-#include <boost/utility/addressof.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/detail/workaround.hpp>
-
-//
-//  ref.hpp - ref/cref, useful helper functions
-//
-//  Copyright (C) 1999, 2000 Jaakko Jarvi (jaakko.jarvi at cs.utu.fi)
-//  Copyright (C) 2001, 2002 Peter Dimov
-//  Copyright (C) 2002 David Abrahams
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-//  See http://www.boost.org/libs/bind/ref.html for documentation.
-//
-
-namespace boost
-{
-
-template<class T> class reference_wrapper
-{ 
-public:
-    typedef T type;
-
-#if defined( BOOST_MSVC ) && BOOST_WORKAROUND( BOOST_MSVC, < 1300 )
-
-    explicit reference_wrapper(T& t): t_(&t) {}
-
-#else
-
-    explicit reference_wrapper(T& t): t_(boost::addressof(t)) {}
-
-#endif
-
-    operator T& () const { return *t_; }
-
-    T& get() const { return *t_; }
-
-    T* get_pointer() const { return t_; }
-
-private:
-
-    T* t_;
-};
-
-# if defined( __BORLANDC__ ) && BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT(0x581) )
-#  define BOOST_REF_CONST
-# else
-#  define BOOST_REF_CONST const
-# endif
-
-template<class T> inline reference_wrapper<T> BOOST_REF_CONST ref(T & t)
-{ 
-    return reference_wrapper<T>(t);
-}
-
-template<class T> inline reference_wrapper<T const> BOOST_REF_CONST cref(T const & t)
-{
-    return reference_wrapper<T const>(t);
-}
-
-# undef BOOST_REF_CONST
-
-# ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-template<typename T>
-class is_reference_wrapper
-    : public mpl::false_
-{
-};
-
-template<typename T>
-class unwrap_reference
-{
- public:
-    typedef T type;
-};
-
-#  define AUX_REFERENCE_WRAPPER_METAFUNCTIONS_DEF(X) \
-template<typename T> \
-class is_reference_wrapper< X > \
-    : public mpl::true_ \
-{ \
-}; \
-\
-template<typename T> \
-class unwrap_reference< X > \
-{ \
- public: \
-    typedef T type; \
-}; \
-/**/
-
-AUX_REFERENCE_WRAPPER_METAFUNCTIONS_DEF(reference_wrapper<T>)
-#if !defined(BOOST_NO_CV_SPECIALIZATIONS)
-AUX_REFERENCE_WRAPPER_METAFUNCTIONS_DEF(reference_wrapper<T> const)
-AUX_REFERENCE_WRAPPER_METAFUNCTIONS_DEF(reference_wrapper<T> volatile)
-AUX_REFERENCE_WRAPPER_METAFUNCTIONS_DEF(reference_wrapper<T> const volatile)
-#endif
-
-#  undef AUX_REFERENCE_WRAPPER_METAFUNCTIONS_DEF
-
-# else // no partial specialization
-
-} // namespace boost
-
-#include <boost/type.hpp>
-
-namespace boost
-{
-
-namespace detail
-{
-  typedef char (&yes_reference_wrapper_t)[1];
-  typedef char (&no_reference_wrapper_t)[2];
-      
-  no_reference_wrapper_t is_reference_wrapper_test(...);
-
-  template<typename T>
-  yes_reference_wrapper_t is_reference_wrapper_test(type< reference_wrapper<T> >);
-
-  template<bool wrapped>
-  struct reference_unwrapper
-  {
-      template <class T>
-      struct apply
-      {
-          typedef T type;
-      };
-  };
-
-  template<>
-  struct reference_unwrapper<true>
-  {
-      template <class T>
-      struct apply
-      {
-          typedef typename T::type type;
-      };
-  };
-}
-
-template<typename T>
-class is_reference_wrapper
-{
- public:
-    BOOST_STATIC_CONSTANT(
-        bool, value = (
-             sizeof(detail::is_reference_wrapper_test(type<T>()))
-            == sizeof(detail::yes_reference_wrapper_t)));
-    
-    typedef ::boost::mpl::bool_<value> type;
-};
-
-template <typename T>
-class unwrap_reference
-    : public detail::reference_unwrapper<
-        is_reference_wrapper<T>::value
-      >::template apply<T>
-{};
-
-# endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-template <class T> inline typename unwrap_reference<T>::type&
-unwrap_ref(T& t)
-{
-    return t;
-}
-
-template<class T> inline T* get_pointer( reference_wrapper<T> const & r )
-{
-    return r.get_pointer();
-}
-
-} // namespace boost
-
-#endif // #ifndef BOOST_REF_HPP_INCLUDED
diff --git a/boost/shared_ptr.hpp b/boost/shared_ptr.hpp
deleted file mode 100644
index d31978c..0000000
--- a/boost/shared_ptr.hpp
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef BOOST_SHARED_PTR_HPP_INCLUDED
-#define BOOST_SHARED_PTR_HPP_INCLUDED
-
-//
-//  shared_ptr.hpp
-//
-//  (C) Copyright Greg Colvin and Beman Dawes 1998, 1999.
-//  Copyright (c) 2001-2008 Peter Dimov
-//
-//  Distributed under the Boost Software License, Version 1.0. (See
-//  accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-//  See http://www.boost.org/libs/smart_ptr/shared_ptr.htm for documentation.
-//
-
-#include <boost/smart_ptr/shared_ptr.hpp>
-
-#endif  // #ifndef BOOST_SHARED_PTR_HPP_INCLUDED
diff --git a/boost/smart_ptr/bad_weak_ptr.hpp b/boost/smart_ptr/bad_weak_ptr.hpp
deleted file mode 100644
index 3e0a1b7..0000000
--- a/boost/smart_ptr/bad_weak_ptr.hpp
+++ /dev/null
@@ -1,59 +0,0 @@
-#ifndef BOOST_SMART_PTR_BAD_WEAK_PTR_HPP_INCLUDED
-#define BOOST_SMART_PTR_BAD_WEAK_PTR_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  boost/smart_ptr/bad_weak_ptr.hpp
-//
-//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-#include <exception>
-
-#ifdef __BORLANDC__
-# pragma warn -8026     // Functions with excep. spec. are not expanded inline
-#endif
-
-namespace boost
-{
-
-// The standard library that comes with Borland C++ 5.5.1, 5.6.4
-// defines std::exception and its members as having C calling
-// convention (-pc). When the definition of bad_weak_ptr
-// is compiled with -ps, the compiler issues an error.
-// Hence, the temporary #pragma option -pc below.
-
-#if defined(__BORLANDC__) && __BORLANDC__ <= 0x564
-# pragma option push -pc
-#endif
-
-class bad_weak_ptr: public std::exception
-{
-public:
-
-    virtual char const * what() const throw()
-    {
-        return "tr1::bad_weak_ptr";
-    }
-};
-
-#if defined(__BORLANDC__) && __BORLANDC__ <= 0x564
-# pragma option pop
-#endif
-
-} // namespace boost
-
-#ifdef __BORLANDC__
-# pragma warn .8026     // Functions with excep. spec. are not expanded inline
-#endif
-
-#endif  // #ifndef BOOST_SMART_PTR_BAD_WEAK_PTR_HPP_INCLUDED
diff --git a/boost/smart_ptr/detail/atomic_count.hpp b/boost/smart_ptr/detail/atomic_count.hpp
deleted file mode 100644
index cc44ac2..0000000
--- a/boost/smart_ptr/detail/atomic_count.hpp
+++ /dev/null
@@ -1,119 +0,0 @@
-#ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  boost/detail/atomic_count.hpp - thread/SMP safe reference counter
-//
-//  Copyright (c) 2001, 2002 Peter Dimov and Multi Media Ltd.
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-//  typedef <implementation-defined> boost::detail::atomic_count;
-//
-//  atomic_count a(n);
-//
-//    (n is convertible to long)
-//
-//    Effects: Constructs an atomic_count with an initial value of n
-//
-//  a;
-//
-//    Returns: (long) the current value of a
-//
-//  ++a;
-//
-//    Effects: Atomically increments the value of a
-//    Returns: (long) the new value of a
-//
-//  --a;
-//
-//    Effects: Atomically decrements the value of a
-//    Returns: (long) the new value of a
-//
-//    Important note: when --a returns zero, it must act as a
-//      read memory barrier (RMB); i.e. the calling thread must
-//      have a synchronized view of the memory
-//
-//    On Intel IA-32 (x86) memory is always synchronized, so this
-//      is not a problem.
-//
-//    On many architectures the atomic instructions already act as
-//      a memory barrier.
-//
-//    This property is necessary for proper reference counting, since
-//      a thread can update the contents of a shared object, then
-//      release its reference, and another thread may immediately
-//      release the last reference causing object destruction.
-//
-//    The destructor needs to have a synchronized view of the
-//      object to perform proper cleanup.
-//
-//    Original example by Alexander Terekhov:
-//
-//    Given:
-//
-//    - a mutable shared object OBJ;
-//    - two threads THREAD1 and THREAD2 each holding 
-//      a private smart_ptr object pointing to that OBJ.
-//
-//    t1: THREAD1 updates OBJ (thread-safe via some synchronization)
-//      and a few cycles later (after "unlock") destroys smart_ptr;
-//
-//    t2: THREAD2 destroys smart_ptr WITHOUT doing any synchronization 
-//      with respect to shared mutable object OBJ; OBJ destructors
-//      are called driven by smart_ptr interface...
-//
-
-#include <boost/config.hpp>
-#include <boost/smart_ptr/detail/sp_has_sync.hpp>
-
-#ifndef BOOST_HAS_THREADS
-
-namespace boost
-{
-
-namespace detail
-{
-
-typedef long atomic_count;
-
-}
-
-}
-
-#elif defined(BOOST_AC_USE_PTHREADS)
-#  include <boost/smart_ptr/detail/atomic_count_pthreads.hpp>
-
-#elif defined( __GNUC__ ) && ( defined( __i386__ ) || defined( __x86_64__ ) )
-#  include <boost/smart_ptr/detail/atomic_count_gcc_x86.hpp>
-
-#elif defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
-#  include <boost/smart_ptr/detail/atomic_count_win32.hpp>
-
-#elif defined( BOOST_SP_HAS_SYNC )
-#  include <boost/smart_ptr/detail/atomic_count_sync.hpp>
-
-#elif defined(__GLIBCPP__) || defined(__GLIBCXX__)
-#  include <boost/smart_ptr/detail/atomic_count_gcc.hpp>
-
-#elif defined(BOOST_HAS_PTHREADS)
-
-#  define BOOST_AC_USE_PTHREADS
-#  include <boost/smart_ptr/detail/atomic_count_pthreads.hpp>
-
-#else
-
-// Use #define BOOST_DISABLE_THREADS to avoid the error
-#error Unrecognized threading platform
-
-#endif
-
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_HPP_INCLUDED
diff --git a/boost/smart_ptr/detail/atomic_count_gcc.hpp b/boost/smart_ptr/detail/atomic_count_gcc.hpp
deleted file mode 100644
index 54807e9..0000000
--- a/boost/smart_ptr/detail/atomic_count_gcc.hpp
+++ /dev/null
@@ -1,72 +0,0 @@
-#ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_HPP_INCLUDED
-
-//
-//  boost/detail/atomic_count_gcc.hpp
-//
-//  atomic_count for GNU libstdc++ v3
-//
-//  http://gcc.gnu.org/onlinedocs/porting/Thread-safety.html
-//
-//  Copyright (c) 2001, 2002 Peter Dimov and Multi Media Ltd.
-//  Copyright (c) 2002 Lars Gullik Bj�nnes <larsbj at lyx.org>
-//  Copyright 2003-2005 Peter Dimov
-//
-//  Distributed under the Boost Software License, Version 1.0. (See
-//  accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-
-#if __GNUC__ * 100 + __GNUC_MINOR__ >= 402
-# include <ext/atomicity.h> 
-#else 
-# include <bits/atomicity.h>
-#endif
-
-namespace boost
-{
-
-namespace detail
-{
-
-#if defined(__GLIBCXX__) // g++ 3.4+
-
-using __gnu_cxx::__atomic_add;
-using __gnu_cxx::__exchange_and_add;
-
-#endif
-
-class atomic_count
-{
-public:
-
-    explicit atomic_count( long v ) : value_( v ) {}
-
-    long operator++()
-    {
-        return __exchange_and_add( &value_, +1 ) + 1;
-    }
-
-    long operator--()
-    {
-        return __exchange_and_add( &value_, -1 ) - 1;
-    }
-
-    operator long() const
-    {
-        return __exchange_and_add( &value_, 0 );
-    }
-
-private:
-
-    atomic_count(atomic_count const &);
-    atomic_count & operator=(atomic_count const &);
-
-    mutable _Atomic_word value_;
-};
-
-} // namespace detail
-
-} // namespace boost
-
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_HPP_INCLUDED
diff --git a/boost/smart_ptr/detail/atomic_count_gcc_x86.hpp b/boost/smart_ptr/detail/atomic_count_gcc_x86.hpp
deleted file mode 100644
index 5c44d7c..0000000
--- a/boost/smart_ptr/detail/atomic_count_gcc_x86.hpp
+++ /dev/null
@@ -1,77 +0,0 @@
-#ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_X86_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_X86_HPP_INCLUDED
-
-//
-//  boost/detail/atomic_count_gcc_x86.hpp
-//
-//  atomic_count for g++ on 486+/AMD64
-//
-//  Copyright 2007 Peter Dimov
-//
-//  Distributed under the Boost Software License, Version 1.0. (See
-//  accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-
-namespace boost
-{
-
-namespace detail
-{
-
-class atomic_count
-{
-public:
-
-    explicit atomic_count( long v ) : value_( static_cast< int >( v ) ) {}
-
-    long operator++()
-    {
-        return atomic_exchange_and_add( &value_, +1 ) + 1;
-    }
-
-    long operator--()
-    {
-        return atomic_exchange_and_add( &value_, -1 ) - 1;
-    }
-
-    operator long() const
-    {
-        return atomic_exchange_and_add( &value_, 0 );
-    }
-
-private:
-
-    atomic_count(atomic_count const &);
-    atomic_count & operator=(atomic_count const &);
-
-    mutable int value_;
-
-private:
-
-    static int atomic_exchange_and_add( int * pw, int dv )
-    {
-        // int r = *pw;
-        // *pw += dv;
-        // return r;
-
-        int r;
-
-        __asm__ __volatile__
-        (
-            "lock\n\t"
-            "xadd %1, %0":
-            "+m"( *pw ), "=r"( r ): // outputs (%0, %1)
-            "1"( dv ): // inputs (%2 == %1)
-            "memory", "cc" // clobbers
-        );
-
-        return r;
-    }
-};
-
-} // namespace detail
-
-} // namespace boost
-
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_GCC_X86_HPP_INCLUDED
diff --git a/boost/smart_ptr/detail/atomic_count_pthreads.hpp b/boost/smart_ptr/detail/atomic_count_pthreads.hpp
deleted file mode 100644
index 05f7867..0000000
--- a/boost/smart_ptr/detail/atomic_count_pthreads.hpp
+++ /dev/null
@@ -1,96 +0,0 @@
-#ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_PTHREADS_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_PTHREADS_HPP_INCLUDED
-
-//
-//  boost/detail/atomic_count_pthreads.hpp
-//
-//  Copyright (c) 2001, 2002 Peter Dimov and Multi Media Ltd.
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-#include <pthread.h>
-
-//
-//  The generic pthread_mutex-based implementation sometimes leads to
-//    inefficiencies. Example: a class with two atomic_count members
-//    can get away with a single mutex.
-//
-//  Users can detect this situation by checking BOOST_AC_USE_PTHREADS.
-//
-
-namespace boost
-{
-
-namespace detail
-{
-
-class atomic_count
-{
-private:
-
-    class scoped_lock
-    {
-    public:
-
-        scoped_lock(pthread_mutex_t & m): m_(m)
-        {
-            pthread_mutex_lock(&m_);
-        }
-
-        ~scoped_lock()
-        {
-            pthread_mutex_unlock(&m_);
-        }
-
-    private:
-
-        pthread_mutex_t & m_;
-    };
-
-public:
-
-    explicit atomic_count(long v): value_(v)
-    {
-        pthread_mutex_init(&mutex_, 0);
-    }
-
-    ~atomic_count()
-    {
-        pthread_mutex_destroy(&mutex_);
-    }
-
-    long operator++()
-    {
-        scoped_lock lock(mutex_);
-        return ++value_;
-    }
-
-    long operator--()
-    {
-        scoped_lock lock(mutex_);
-        return --value_;
-    }
-
-    operator long() const
-    {
-        scoped_lock lock(mutex_);
-        return value_;
-    }
-
-private:
-
-    atomic_count(atomic_count const &);
-    atomic_count & operator=(atomic_count const &);
-
-    mutable pthread_mutex_t mutex_;
-    long value_;
-};
-
-} // namespace detail
-
-} // namespace boost
-
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_PTHREADS_HPP_INCLUDED
diff --git a/boost/smart_ptr/detail/atomic_count_sync.hpp b/boost/smart_ptr/detail/atomic_count_sync.hpp
deleted file mode 100644
index b6359b5..0000000
--- a/boost/smart_ptr/detail/atomic_count_sync.hpp
+++ /dev/null
@@ -1,61 +0,0 @@
-#ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_SYNC_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_SYNC_HPP_INCLUDED
-
-//
-//  boost/detail/atomic_count_sync.hpp
-//
-//  atomic_count for g++ 4.1+
-//
-//  http://gcc.gnu.org/onlinedocs/gcc-4.1.1/gcc/Atomic-Builtins.html
-//
-//  Copyright 2007 Peter Dimov
-//
-//  Distributed under the Boost Software License, Version 1.0. (See
-//  accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-
-#if defined( __ia64__ ) && defined( __INTEL_COMPILER )
-# include <ia64intrin.h>
-#endif
-
-namespace boost
-{
-
-namespace detail
-{
-
-class atomic_count
-{
-public:
-
-    explicit atomic_count( long v ) : value_( v ) {}
-
-    long operator++()
-    {
-        return __sync_add_and_fetch( &value_, 1 );
-    }
-
-    long operator--()
-    {
-        return __sync_add_and_fetch( &value_, -1 );
-    }
-
-    operator long() const
-    {
-        return __sync_fetch_and_add( &value_, 0 );
-    }
-
-private:
-
-    atomic_count(atomic_count const &);
-    atomic_count & operator=(atomic_count const &);
-
-    mutable long value_;
-};
-
-} // namespace detail
-
-} // namespace boost
-
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_SYNC_HPP_INCLUDED
diff --git a/boost/smart_ptr/detail/atomic_count_win32.hpp b/boost/smart_ptr/detail/atomic_count_win32.hpp
deleted file mode 100644
index 60a0569..0000000
--- a/boost/smart_ptr/detail/atomic_count_win32.hpp
+++ /dev/null
@@ -1,63 +0,0 @@
-#ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_WIN32_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_WIN32_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  boost/detail/atomic_count_win32.hpp
-//
-//  Copyright (c) 2001-2005 Peter Dimov
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-#include <boost/detail/interlocked.hpp>
-
-namespace boost
-{
-
-namespace detail
-{
-
-class atomic_count
-{
-public:
-
-    explicit atomic_count( long v ): value_( v )
-    {
-    }
-
-    long operator++()
-    {
-        return BOOST_INTERLOCKED_INCREMENT( &value_ );
-    }
-
-    long operator--()
-    {
-        return BOOST_INTERLOCKED_DECREMENT( &value_ );
-    }
-
-    operator long() const
-    {
-        return static_cast<long const volatile &>( value_ );
-    }
-
-private:
-
-    atomic_count( atomic_count const & );
-    atomic_count & operator=( atomic_count const & );
-
-    long value_;
-};
-
-} // namespace detail
-
-} // namespace boost
-
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_ATOMIC_COUNT_WIN32_HPP_INCLUDED
diff --git a/boost/smart_ptr/detail/lightweight_mutex.hpp b/boost/smart_ptr/detail/lightweight_mutex.hpp
deleted file mode 100644
index d46b193..0000000
--- a/boost/smart_ptr/detail/lightweight_mutex.hpp
+++ /dev/null
@@ -1,42 +0,0 @@
-#ifndef BOOST_SMART_PTR_DETAIL_LIGHTWEIGHT_MUTEX_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_LIGHTWEIGHT_MUTEX_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  boost/detail/lightweight_mutex.hpp - lightweight mutex
-//
-//  Copyright (c) 2002, 2003 Peter Dimov and Multi Media Ltd.
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-//  typedef <unspecified> boost::detail::lightweight_mutex;
-//
-//  boost::detail::lightweight_mutex is a header-only implementation of
-//  a subset of the Mutex concept requirements:
-//
-//  http://www.boost.org/doc/html/threads/concepts.html#threads.concepts.Mutex
-//
-//  It maps to a CRITICAL_SECTION on Windows or a pthread_mutex on POSIX.
-//
-
-#include <boost/config.hpp>
-
-#if !defined(BOOST_HAS_THREADS)
-#  include <boost/smart_ptr/detail/lwm_nop.hpp>
-#elif defined(BOOST_HAS_PTHREADS)
-#  include <boost/smart_ptr/detail/lwm_pthreads.hpp>
-#elif defined(BOOST_HAS_WINTHREADS) || defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
-#  include <boost/smart_ptr/detail/lwm_win32_cs.hpp>
-#else
-// Use #define BOOST_DISABLE_THREADS to avoid the error
-#  error Unrecognized threading platform
-#endif
-
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_LIGHTWEIGHT_MUTEX_HPP_INCLUDED
diff --git a/boost/smart_ptr/detail/lwm_nop.hpp b/boost/smart_ptr/detail/lwm_nop.hpp
deleted file mode 100644
index 521a88e..0000000
--- a/boost/smart_ptr/detail/lwm_nop.hpp
+++ /dev/null
@@ -1,37 +0,0 @@
-#ifndef BOOST_SMART_PTR_DETAIL_LWM_NOP_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_LWM_NOP_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  boost/detail/lwm_nop.hpp
-//
-//  Copyright (c) 2002 Peter Dimov and Multi Media Ltd.
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-namespace boost
-{
-
-namespace detail
-{
-
-class lightweight_mutex
-{
-public:
-
-    typedef lightweight_mutex scoped_lock;
-};
-
-} // namespace detail
-
-} // namespace boost
-
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_LWM_NOP_HPP_INCLUDED
diff --git a/boost/smart_ptr/detail/lwm_pthreads.hpp b/boost/smart_ptr/detail/lwm_pthreads.hpp
deleted file mode 100644
index 8eda518..0000000
--- a/boost/smart_ptr/detail/lwm_pthreads.hpp
+++ /dev/null
@@ -1,87 +0,0 @@
-#ifndef BOOST_SMART_PTR_DETAIL_LWM_PTHREADS_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_LWM_PTHREADS_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  boost/detail/lwm_pthreads.hpp
-//
-//  Copyright (c) 2002 Peter Dimov and Multi Media Ltd.
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-#include <boost/assert.hpp>
-#include <pthread.h>
-
-namespace boost
-{
-
-namespace detail
-{
-
-class lightweight_mutex
-{
-private:
-
-    pthread_mutex_t m_;
-
-    lightweight_mutex(lightweight_mutex const &);
-    lightweight_mutex & operator=(lightweight_mutex const &);
-
-public:
-
-    lightweight_mutex()
-    {
-
-// HPUX 10.20 / DCE has a nonstandard pthread_mutex_init
-
-#if defined(__hpux) && defined(_DECTHREADS_)
-        BOOST_VERIFY( pthread_mutex_init( &m_, pthread_mutexattr_default ) == 0 );
-#else
-        BOOST_VERIFY( pthread_mutex_init( &m_, 0 ) == 0 );
-#endif
-    }
-
-    ~lightweight_mutex()
-    {
-        BOOST_VERIFY( pthread_mutex_destroy( &m_ ) == 0 );
-    }
-
-    class scoped_lock;
-    friend class scoped_lock;
-
-    class scoped_lock
-    {
-    private:
-
-        pthread_mutex_t & m_;
-
-        scoped_lock(scoped_lock const &);
-        scoped_lock & operator=(scoped_lock const &);
-
-    public:
-
-        scoped_lock(lightweight_mutex & m): m_(m.m_)
-        {
-            BOOST_VERIFY( pthread_mutex_lock( &m_ ) == 0 );
-        }
-
-        ~scoped_lock()
-        {
-            BOOST_VERIFY( pthread_mutex_unlock( &m_ ) == 0 );
-        }
-    };
-};
-
-} // namespace detail
-
-} // namespace boost
-
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_LWM_PTHREADS_HPP_INCLUDED
diff --git a/boost/smart_ptr/detail/lwm_win32_cs.hpp b/boost/smart_ptr/detail/lwm_win32_cs.hpp
deleted file mode 100644
index 00477e4..0000000
--- a/boost/smart_ptr/detail/lwm_win32_cs.hpp
+++ /dev/null
@@ -1,108 +0,0 @@
-#ifndef BOOST_SMART_PTR_DETAIL_LWM_WIN32_CS_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_LWM_WIN32_CS_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  boost/detail/lwm_win32_cs.hpp
-//
-//  Copyright (c) 2002, 2003 Peter Dimov
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-#ifdef BOOST_USE_WINDOWS_H
-#  include <windows.h>
-#endif
-
-namespace boost
-{
-
-namespace detail
-{
-
-#ifndef BOOST_USE_WINDOWS_H
-
-struct critical_section
-{
-    struct critical_section_debug * DebugInfo;
-    long LockCount;
-    long RecursionCount;
-    void * OwningThread;
-    void * LockSemaphore;
-#if defined(_WIN64)
-    unsigned __int64 SpinCount;
-#else
-    unsigned long SpinCount;
-#endif
-};
-
-extern "C" __declspec(dllimport) void __stdcall InitializeCriticalSection(critical_section *);
-extern "C" __declspec(dllimport) void __stdcall EnterCriticalSection(critical_section *);
-extern "C" __declspec(dllimport) void __stdcall LeaveCriticalSection(critical_section *);
-extern "C" __declspec(dllimport) void __stdcall DeleteCriticalSection(critical_section *);
-
-#else
-
-typedef ::CRITICAL_SECTION critical_section;
-
-#endif // #ifndef BOOST_USE_WINDOWS_H
-
-class lightweight_mutex
-{
-private:
-
-    critical_section cs_;
-
-    lightweight_mutex(lightweight_mutex const &);
-    lightweight_mutex & operator=(lightweight_mutex const &);
-
-public:
-
-    lightweight_mutex()
-    {
-        InitializeCriticalSection(&cs_);
-    }
-
-    ~lightweight_mutex()
-    {
-        DeleteCriticalSection(&cs_);
-    }
-
-    class scoped_lock;
-    friend class scoped_lock;
-
-    class scoped_lock
-    {
-    private:
-
-        lightweight_mutex & m_;
-
-        scoped_lock(scoped_lock const &);
-        scoped_lock & operator=(scoped_lock const &);
-
-    public:
-
-        explicit scoped_lock(lightweight_mutex & m): m_(m)
-        {
-            EnterCriticalSection(&m_.cs_);
-        }
-
-        ~scoped_lock()
-        {
-            LeaveCriticalSection(&m_.cs_);
-        }
-    };
-};
-
-} // namespace detail
-
-} // namespace boost
-
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_LWM_WIN32_CS_HPP_INCLUDED
diff --git a/boost/smart_ptr/detail/operator_bool.hpp b/boost/smart_ptr/detail/operator_bool.hpp
deleted file mode 100644
index 8ae1527..0000000
--- a/boost/smart_ptr/detail/operator_bool.hpp
+++ /dev/null
@@ -1,63 +0,0 @@
-//  This header intentionally has no include guards.
-//
-//  Copyright (c) 2001-2009, 2012 Peter Dimov
-//
-//  Distributed under the Boost Software License, Version 1.0.
-//  See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt
-
-#if !defined( BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS ) && !defined( BOOST_NO_CXX11_NULLPTR )
-
-    explicit operator bool () const BOOST_NOEXCEPT
-    {
-        return px != 0;
-    }
-
-#elif ( defined(__SUNPRO_CC) && BOOST_WORKAROUND(__SUNPRO_CC, < 0x570) ) || defined(__CINT__)
-
-    operator bool () const BOOST_NOEXCEPT
-    {
-        return px != 0;
-    }
-
-#elif defined( _MANAGED )
-
-    static void unspecified_bool( this_type*** )
-    {
-    }
-
-    typedef void (*unspecified_bool_type)( this_type*** );
-
-    operator unspecified_bool_type() const BOOST_NOEXCEPT
-    {
-        return px == 0? 0: unspecified_bool;
-    }
-
-#elif \
-    ( defined(__MWERKS__) && BOOST_WORKAROUND(__MWERKS__, < 0x3200) ) || \
-    ( defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ < 304) ) || \
-    ( defined(__SUNPRO_CC) && BOOST_WORKAROUND(__SUNPRO_CC, <= 0x590) )
-
-    typedef element_type * (this_type::*unspecified_bool_type)() const;
-
-    operator unspecified_bool_type() const BOOST_NOEXCEPT
-    {
-        return px == 0? 0: &this_type::get;
-    }
-
-#else
-
-    typedef element_type * this_type::*unspecified_bool_type;
-
-    operator unspecified_bool_type() const BOOST_NOEXCEPT
-    {
-        return px == 0? 0: &this_type::px;
-    }
-
-#endif
-
-    // operator! is redundant, but some compilers need it
-    bool operator! () const BOOST_NOEXCEPT
-    {
-        return px == 0;
-    }
diff --git a/boost/smart_ptr/detail/quick_allocator.hpp b/boost/smart_ptr/detail/quick_allocator.hpp
deleted file mode 100644
index 159bd5e..0000000
--- a/boost/smart_ptr/detail/quick_allocator.hpp
+++ /dev/null
@@ -1,199 +0,0 @@
-#ifndef BOOST_SMART_PTR_DETAIL_QUICK_ALLOCATOR_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_QUICK_ALLOCATOR_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  detail/quick_allocator.hpp
-//
-//  Copyright (c) 2003 David Abrahams
-//  Copyright (c) 2003 Peter Dimov
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-#include <boost/config.hpp>
-
-#include <boost/smart_ptr/detail/lightweight_mutex.hpp>
-#include <boost/type_traits/type_with_alignment.hpp>
-#include <boost/type_traits/alignment_of.hpp>
-
-#include <new>              // ::operator new, ::operator delete
-#include <cstddef>          // std::size_t
-
-namespace boost
-{
-
-namespace detail
-{
-
-template<unsigned size, unsigned align_> union freeblock
-{
-    typedef typename boost::type_with_alignment<align_>::type aligner_type;
-    aligner_type aligner;
-    char bytes[size];
-    freeblock * next;
-};
-
-template<unsigned size, unsigned align_> struct allocator_impl
-{
-    typedef freeblock<size, align_> block;
-
-    // It may seem odd to use such small pages.
-    //
-    // However, on a typical Windows implementation that uses
-    // the OS allocator, "normal size" pages interact with the
-    // "ordinary" operator new, slowing it down dramatically.
-    //
-    // 512 byte pages are handled by the small object allocator,
-    // and don't interfere with ::new.
-    //
-    // The other alternative is to use much bigger pages (1M.)
-    //
-    // It is surprisingly easy to hit pathological behavior by
-    // varying the page size. g++ 2.96 on Red Hat Linux 7.2,
-    // for example, passionately dislikes 496. 512 seems OK.
-
-#if defined(BOOST_QA_PAGE_SIZE)
-
-    enum { items_per_page = BOOST_QA_PAGE_SIZE / size };
-
-#else
-
-    enum { items_per_page = 512 / size }; // 1048560 / size
-
-#endif
-
-#ifdef BOOST_HAS_THREADS
-
-    static lightweight_mutex & mutex()
-    {
-        static freeblock< sizeof( lightweight_mutex ), boost::alignment_of< lightweight_mutex >::value > fbm;
-        static lightweight_mutex * pm = new( &fbm ) lightweight_mutex;
-        return *pm;
-    }
-
-    static lightweight_mutex * mutex_init;
-
-#endif
-
-    static block * free;
-    static block * page;
-    static unsigned last;
-
-    static inline void * alloc()
-    {
-#ifdef BOOST_HAS_THREADS
-        lightweight_mutex::scoped_lock lock( mutex() );
-#endif
-        if(block * x = free)
-        {
-            free = x->next;
-            return x;
-        }
-        else
-        {
-            if(last == items_per_page)
-            {
-                // "Listen to me carefully: there is no memory leak"
-                // -- Scott Meyers, Eff C++ 2nd Ed Item 10
-                page = ::new block[items_per_page];
-                last = 0;
-            }
-
-            return &page[last++];
-        }
-    }
-
-    static inline void * alloc(std::size_t n)
-    {
-        if(n != size) // class-specific new called for a derived object
-        {
-            return ::operator new(n);
-        }
-        else
-        {
-#ifdef BOOST_HAS_THREADS
-            lightweight_mutex::scoped_lock lock( mutex() );
-#endif
-            if(block * x = free)
-            {
-                free = x->next;
-                return x;
-            }
-            else
-            {
-                if(last == items_per_page)
-                {
-                    page = ::new block[items_per_page];
-                    last = 0;
-                }
-
-                return &page[last++];
-            }
-        }
-    }
-
-    static inline void dealloc(void * pv)
-    {
-        if(pv != 0) // 18.4.1.1/13
-        {
-#ifdef BOOST_HAS_THREADS
-            lightweight_mutex::scoped_lock lock( mutex() );
-#endif
-            block * pb = static_cast<block *>(pv);
-            pb->next = free;
-            free = pb;
-        }
-    }
-
-    static inline void dealloc(void * pv, std::size_t n)
-    {
-        if(n != size) // class-specific delete called for a derived object
-        {
-            ::operator delete(pv);
-        }
-        else if(pv != 0) // 18.4.1.1/13
-        {
-#ifdef BOOST_HAS_THREADS
-            lightweight_mutex::scoped_lock lock( mutex() );
-#endif
-            block * pb = static_cast<block *>(pv);
-            pb->next = free;
-            free = pb;
-        }
-    }
-};
-
-#ifdef BOOST_HAS_THREADS
-
-template<unsigned size, unsigned align_>
-  lightweight_mutex * allocator_impl<size, align_>::mutex_init = &allocator_impl<size, align_>::mutex();
-
-#endif
-
-template<unsigned size, unsigned align_>
-  freeblock<size, align_> * allocator_impl<size, align_>::free = 0;
-
-template<unsigned size, unsigned align_>
-  freeblock<size, align_> * allocator_impl<size, align_>::page = 0;
-
-template<unsigned size, unsigned align_>
-  unsigned allocator_impl<size, align_>::last = allocator_impl<size, align_>::items_per_page;
-
-template<class T>
-struct quick_allocator: public allocator_impl< sizeof(T), boost::alignment_of<T>::value >
-{
-};
-
-} // namespace detail
-
-} // namespace boost
-
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_QUICK_ALLOCATOR_HPP_INCLUDED
diff --git a/boost/smart_ptr/detail/shared_count.hpp b/boost/smart_ptr/detail/shared_count.hpp
deleted file mode 100644
index 8e1dd48..0000000
--- a/boost/smart_ptr/detail/shared_count.hpp
+++ /dev/null
@@ -1,603 +0,0 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SHARED_COUNT_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SHARED_COUNT_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  detail/shared_count.hpp
-//
-//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.
-//  Copyright 2004-2005 Peter Dimov
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-#ifdef __BORLANDC__
-# pragma warn -8027     // Functions containing try are not expanded inline
-#endif
-
-#include <boost/config.hpp>
-#include <boost/checked_delete.hpp>
-#include <boost/throw_exception.hpp>
-#include <boost/smart_ptr/bad_weak_ptr.hpp>
-#include <boost/smart_ptr/detail/sp_counted_base.hpp>
-#include <boost/smart_ptr/detail/sp_counted_impl.hpp>
-#include <boost/detail/workaround.hpp>
-// In order to avoid circular dependencies with Boost.TR1
-// we make sure that our include of <memory> doesn't try to
-// pull in the TR1 headers: that's why we use this header 
-// rather than including <memory> directly:
-#include <boost/config/no_tr1/memory.hpp>  // std::auto_ptr
-#include <functional>       // std::less
-
-#ifdef BOOST_NO_EXCEPTIONS
-# include <new>              // std::bad_alloc
-#endif
-
-#if !defined( BOOST_NO_CXX11_SMART_PTR )
-# include <boost/utility/addressof.hpp>
-#endif
-
-namespace boost
-{
-
-namespace detail
-{
-
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
-
-int const shared_count_id = 0x2C35F101;
-int const   weak_count_id = 0x298C38A4;
-
-#endif
-
-struct sp_nothrow_tag {};
-
-template< class D > struct sp_inplace_tag
-{
-};
-
-#if !defined( BOOST_NO_CXX11_SMART_PTR )
-
-template< class T > class sp_reference_wrapper
-{ 
-public:
-
-    explicit sp_reference_wrapper( T & t): t_( boost::addressof( t ) )
-    {
-    }
-
-    template< class Y > void operator()( Y * p ) const
-    {
-        (*t_)( p );
-    }
-
-private:
-
-    T * t_;
-};
-
-template< class D > struct sp_convert_reference
-{
-    typedef D type;
-};
-
-template< class D > struct sp_convert_reference< D& >
-{
-    typedef sp_reference_wrapper< D > type;
-};
-
-#endif
-
-class weak_count;
-
-class shared_count
-{
-private:
-
-    sp_counted_base * pi_;
-
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
-    int id_;
-#endif
-
-    friend class weak_count;
-
-public:
-
-    shared_count(): pi_(0) // nothrow
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
-        , id_(shared_count_id)
-#endif
-    {
-    }
-
-    template<class Y> explicit shared_count( Y * p ): pi_( 0 )
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
-        , id_(shared_count_id)
-#endif
-    {
-#ifndef BOOST_NO_EXCEPTIONS
-
-        try
-        {
-            pi_ = new sp_counted_impl_p<Y>( p );
-        }
-        catch(...)
-        {
-            boost::checked_delete( p );
-            throw;
-        }
-
-#else
-
-        pi_ = new sp_counted_impl_p<Y>( p );
-
-        if( pi_ == 0 )
-        {
-            boost::checked_delete( p );
-            boost::throw_exception( std::bad_alloc() );
-        }
-
-#endif
-    }
-
-#if defined( BOOST_MSVC ) && BOOST_WORKAROUND( BOOST_MSVC, <= 1200 )
-    template<class Y, class D> shared_count( Y * p, D d ): pi_(0)
-#else
-    template<class P, class D> shared_count( P p, D d ): pi_(0)
-#endif
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
-        , id_(shared_count_id)
-#endif
-    {
-#if defined( BOOST_MSVC ) && BOOST_WORKAROUND( BOOST_MSVC, <= 1200 )
-        typedef Y* P;
-#endif
-#ifndef BOOST_NO_EXCEPTIONS
-
-        try
-        {
-            pi_ = new sp_counted_impl_pd<P, D>(p, d);
-        }
-        catch(...)
-        {
-            d(p); // delete p
-            throw;
-        }
-
-#else
-
-        pi_ = new sp_counted_impl_pd<P, D>(p, d);
-
-        if(pi_ == 0)
-        {
-            d(p); // delete p
-            boost::throw_exception(std::bad_alloc());
-        }
-
-#endif
-    }
-
-#if !defined( BOOST_NO_FUNCTION_TEMPLATE_ORDERING )
-
-    template< class P, class D > shared_count( P p, sp_inplace_tag<D> ): pi_( 0 )
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
-        , id_(shared_count_id)
-#endif
-    {
-#ifndef BOOST_NO_EXCEPTIONS
-
-        try
-        {
-            pi_ = new sp_counted_impl_pd< P, D >( p );
-        }
-        catch( ... )
-        {
-            D::operator_fn( p ); // delete p
-            throw;
-        }
-
-#else
-
-        pi_ = new sp_counted_impl_pd< P, D >( p );
-
-        if( pi_ == 0 )
-        {
-            D::operator_fn( p ); // delete p
-            boost::throw_exception( std::bad_alloc() );
-        }
-
-#endif // #ifndef BOOST_NO_EXCEPTIONS
-    }
-
-#endif // !defined( BOOST_NO_FUNCTION_TEMPLATE_ORDERING )
-
-    template<class P, class D, class A> shared_count( P p, D d, A a ): pi_( 0 )
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
-        , id_(shared_count_id)
-#endif
-    {
-        typedef sp_counted_impl_pda<P, D, A> impl_type;
-        typedef typename A::template rebind< impl_type >::other A2;
-
-        A2 a2( a );
-
-#ifndef BOOST_NO_EXCEPTIONS
-
-        try
-        {
-            pi_ = a2.allocate( 1, static_cast< impl_type* >( 0 ) );
-            new( static_cast< void* >( pi_ ) ) impl_type( p, d, a );
-        }
-        catch(...)
-        {
-            d( p );
-
-            if( pi_ != 0 )
-            {
-                a2.deallocate( static_cast< impl_type* >( pi_ ), 1 );
-            }
-
-            throw;
-        }
-
-#else
-
-        pi_ = a2.allocate( 1, static_cast< impl_type* >( 0 ) );
-
-        if( pi_ != 0 )
-        {
-            new( static_cast< void* >( pi_ ) ) impl_type( p, d, a );
-        }
-        else
-        {
-            d( p );
-            boost::throw_exception( std::bad_alloc() );
-        }
-
-#endif
-    }
-
-#if !defined( BOOST_NO_FUNCTION_TEMPLATE_ORDERING )
-
-    template< class P, class D, class A > shared_count( P p, sp_inplace_tag< D >, A a ): pi_( 0 )
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
-        , id_(shared_count_id)
-#endif
-    {
-        typedef sp_counted_impl_pda< P, D, A > impl_type;
-        typedef typename A::template rebind< impl_type >::other A2;
-
-        A2 a2( a );
-
-#ifndef BOOST_NO_EXCEPTIONS
-
-        try
-        {
-            pi_ = a2.allocate( 1, static_cast< impl_type* >( 0 ) );
-            new( static_cast< void* >( pi_ ) ) impl_type( p, a );
-        }
-        catch(...)
-        {
-            D::operator_fn( p );
-
-            if( pi_ != 0 )
-            {
-                a2.deallocate( static_cast< impl_type* >( pi_ ), 1 );
-            }
-
-            throw;
-        }
-
-#else
-
-        pi_ = a2.allocate( 1, static_cast< impl_type* >( 0 ) );
-
-        if( pi_ != 0 )
-        {
-            new( static_cast< void* >( pi_ ) ) impl_type( p, a );
-        }
-        else
-        {
-            D::operator_fn( p );
-            boost::throw_exception( std::bad_alloc() );
-        }
-
-#endif // #ifndef BOOST_NO_EXCEPTIONS
-    }
-
-#endif // !defined( BOOST_NO_FUNCTION_TEMPLATE_ORDERING )
-
-#ifndef BOOST_NO_AUTO_PTR
-
-    // auto_ptr<Y> is special cased to provide the strong guarantee
-
-    template<class Y>
-    explicit shared_count( std::auto_ptr<Y> & r ): pi_( new sp_counted_impl_p<Y>( r.get() ) )
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
-        , id_(shared_count_id)
-#endif
-    {
-#ifdef BOOST_NO_EXCEPTIONS
-
-        if( pi_ == 0 )
-        {
-            boost::throw_exception(std::bad_alloc());
-        }
-
-#endif
-
-        r.release();
-    }
-
-#endif 
-
-#if !defined( BOOST_NO_CXX11_SMART_PTR )
-
-    template<class Y, class D>
-    explicit shared_count( std::unique_ptr<Y, D> & r ): pi_( 0 )
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
-        , id_(shared_count_id)
-#endif
-    {
-        typedef typename sp_convert_reference<D>::type D2;
-
-        D2 d2( r.get_deleter() );
-        pi_ = new sp_counted_impl_pd< typename std::unique_ptr<Y, D>::pointer, D2 >( r.get(), d2 );
-
-#ifdef BOOST_NO_EXCEPTIONS
-
-        if( pi_ == 0 )
-        {
-            boost::throw_exception( std::bad_alloc() );
-        }
-
-#endif
-
-        r.release();
-    }
-
-#endif
-
-    ~shared_count() // nothrow
-    {
-        if( pi_ != 0 ) pi_->release();
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
-        id_ = 0;
-#endif
-    }
-
-    shared_count(shared_count const & r): pi_(r.pi_) // nothrow
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
-        , id_(shared_count_id)
-#endif
-    {
-        if( pi_ != 0 ) pi_->add_ref_copy();
-    }
-
-#if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES )
-
-    shared_count(shared_count && r): pi_(r.pi_) // nothrow
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
-        , id_(shared_count_id)
-#endif
-    {
-        r.pi_ = 0;
-    }
-
-#endif
-
-    explicit shared_count(weak_count const & r); // throws bad_weak_ptr when r.use_count() == 0
-    shared_count( weak_count const & r, sp_nothrow_tag ); // constructs an empty *this when r.use_count() == 0
-
-    shared_count & operator= (shared_count const & r) // nothrow
-    {
-        sp_counted_base * tmp = r.pi_;
-
-        if( tmp != pi_ )
-        {
-            if( tmp != 0 ) tmp->add_ref_copy();
-            if( pi_ != 0 ) pi_->release();
-            pi_ = tmp;
-        }
-
-        return *this;
-    }
-
-    void swap(shared_count & r) // nothrow
-    {
-        sp_counted_base * tmp = r.pi_;
-        r.pi_ = pi_;
-        pi_ = tmp;
-    }
-
-    long use_count() const // nothrow
-    {
-        return pi_ != 0? pi_->use_count(): 0;
-    }
-
-    bool unique() const // nothrow
-    {
-        return use_count() == 1;
-    }
-
-    bool empty() const // nothrow
-    {
-        return pi_ == 0;
-    }
-
-    friend inline bool operator==(shared_count const & a, shared_count const & b)
-    {
-        return a.pi_ == b.pi_;
-    }
-
-    friend inline bool operator<(shared_count const & a, shared_count const & b)
-    {
-        return std::less<sp_counted_base *>()( a.pi_, b.pi_ );
-    }
-
-    void * get_deleter( sp_typeinfo const & ti ) const
-    {
-        return pi_? pi_->get_deleter( ti ): 0;
-    }
-
-    void * get_untyped_deleter() const
-    {
-        return pi_? pi_->get_untyped_deleter(): 0;
-    }
-};
-
-
-class weak_count
-{
-private:
-
-    sp_counted_base * pi_;
-
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
-    int id_;
-#endif
-
-    friend class shared_count;
-
-public:
-
-    weak_count(): pi_(0) // nothrow
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
-        , id_(weak_count_id)
-#endif
-    {
-    }
-
-    weak_count(shared_count const & r): pi_(r.pi_) // nothrow
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
-        , id_(weak_count_id)
-#endif
-    {
-        if(pi_ != 0) pi_->weak_add_ref();
-    }
-
-    weak_count(weak_count const & r): pi_(r.pi_) // nothrow
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
-        , id_(weak_count_id)
-#endif
-    {
-        if(pi_ != 0) pi_->weak_add_ref();
-    }
-
-// Move support
-
-#if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES )
-
-    weak_count(weak_count && r): pi_(r.pi_) // nothrow
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
-        , id_(weak_count_id)
-#endif
-    {
-        r.pi_ = 0;
-    }
-
-#endif
-
-    ~weak_count() // nothrow
-    {
-        if(pi_ != 0) pi_->weak_release();
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
-        id_ = 0;
-#endif
-    }
-
-    weak_count & operator= (shared_count const & r) // nothrow
-    {
-        sp_counted_base * tmp = r.pi_;
-
-        if( tmp != pi_ )
-        {
-            if(tmp != 0) tmp->weak_add_ref();
-            if(pi_ != 0) pi_->weak_release();
-            pi_ = tmp;
-        }
-
-        return *this;
-    }
-
-    weak_count & operator= (weak_count const & r) // nothrow
-    {
-        sp_counted_base * tmp = r.pi_;
-
-        if( tmp != pi_ )
-        {
-            if(tmp != 0) tmp->weak_add_ref();
-            if(pi_ != 0) pi_->weak_release();
-            pi_ = tmp;
-        }
-
-        return *this;
-    }
-
-    void swap(weak_count & r) // nothrow
-    {
-        sp_counted_base * tmp = r.pi_;
-        r.pi_ = pi_;
-        pi_ = tmp;
-    }
-
-    long use_count() const // nothrow
-    {
-        return pi_ != 0? pi_->use_count(): 0;
-    }
-
-    bool empty() const // nothrow
-    {
-        return pi_ == 0;
-    }
-
-    friend inline bool operator==(weak_count const & a, weak_count const & b)
-    {
-        return a.pi_ == b.pi_;
-    }
-
-    friend inline bool operator<(weak_count const & a, weak_count const & b)
-    {
-        return std::less<sp_counted_base *>()(a.pi_, b.pi_);
-    }
-};
-
-inline shared_count::shared_count( weak_count const & r ): pi_( r.pi_ )
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
-        , id_(shared_count_id)
-#endif
-{
-    if( pi_ == 0 || !pi_->add_ref_lock() )
-    {
-        boost::throw_exception( boost::bad_weak_ptr() );
-    }
-}
-
-inline shared_count::shared_count( weak_count const & r, sp_nothrow_tag ): pi_( r.pi_ )
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
-        , id_(shared_count_id)
-#endif
-{
-    if( pi_ != 0 && !pi_->add_ref_lock() )
-    {
-        pi_ = 0;
-    }
-}
-
-} // namespace detail
-
-} // namespace boost
-
-#ifdef __BORLANDC__
-# pragma warn .8027     // Functions containing try are not expanded inline
-#endif
-
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SHARED_COUNT_HPP_INCLUDED
diff --git a/boost/smart_ptr/detail/shared_ptr_nmt.hpp b/boost/smart_ptr/detail/shared_ptr_nmt.hpp
deleted file mode 100644
index afc1ec0..0000000
--- a/boost/smart_ptr/detail/shared_ptr_nmt.hpp
+++ /dev/null
@@ -1,182 +0,0 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SHARED_PTR_NMT_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SHARED_PTR_NMT_HPP_INCLUDED
-
-//
-//  detail/shared_ptr_nmt.hpp - shared_ptr.hpp without member templates
-//
-//  (C) Copyright Greg Colvin and Beman Dawes 1998, 1999.
-//  Copyright (c) 2001, 2002 Peter Dimov
-//
-//  Distributed under the Boost Software License, Version 1.0. (See
-//  accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-//  See http://www.boost.org/libs/smart_ptr/shared_ptr.htm for documentation.
-//
-
-#include <boost/assert.hpp>
-#include <boost/checked_delete.hpp>
-#include <boost/throw_exception.hpp>
-#include <boost/smart_ptr/detail/atomic_count.hpp>
-
-#ifndef BOOST_NO_AUTO_PTR
-# include <memory>          // for std::auto_ptr
-#endif
-
-#include <algorithm>        // for std::swap
-#include <functional>       // for std::less
-#include <new>              // for std::bad_alloc
-
-namespace boost
-{
-
-template<class T> class shared_ptr
-{
-private:
-
-    typedef detail::atomic_count count_type;
-
-public:
-
-    typedef T element_type;
-    typedef T value_type;
-
-    explicit shared_ptr(T * p = 0): px(p)
-    {
-#ifndef BOOST_NO_EXCEPTIONS
-
-        try  // prevent leak if new throws
-        {
-            pn = new count_type(1);
-        }
-        catch(...)
-        {
-            boost::checked_delete(p);
-            throw;
-        }
-
-#else
-
-        pn = new count_type(1);
-
-        if(pn == 0)
-        {
-            boost::checked_delete(p);
-            boost::throw_exception(std::bad_alloc());
-        }
-
-#endif
-    }
-
-    ~shared_ptr()
-    {
-        if(--*pn == 0)
-        {
-            boost::checked_delete(px);
-            delete pn;
-        }
-    }
-
-    shared_ptr(shared_ptr const & r): px(r.px)  // never throws
-    {
-        pn = r.pn;
-        ++*pn;
-    }
-
-    shared_ptr & operator=(shared_ptr const & r)
-    {
-        shared_ptr(r).swap(*this);
-        return *this;
-    }
-
-#ifndef BOOST_NO_AUTO_PTR
-
-    explicit shared_ptr(std::auto_ptr<T> & r)
-    { 
-        pn = new count_type(1); // may throw
-        px = r.release(); // fix: moved here to stop leak if new throws
-    } 
-
-    shared_ptr & operator=(std::auto_ptr<T> & r)
-    {
-        shared_ptr(r).swap(*this);
-        return *this;
-    }
-
-#endif
-
-    void reset(T * p = 0)
-    {
-        BOOST_ASSERT(p == 0 || p != px);
-        shared_ptr(p).swap(*this);
-    }
-
-    T & operator*() const  // never throws
-    {
-        BOOST_ASSERT(px != 0);
-        return *px;
-    }
-
-    T * operator->() const  // never throws
-    {
-        BOOST_ASSERT(px != 0);
-        return px;
-    }
-
-    T * get() const  // never throws
-    {
-        return px;
-    }
-
-    long use_count() const  // never throws
-    {
-        return *pn;
-    }
-
-    bool unique() const  // never throws
-    {
-        return *pn == 1;
-    }
-    
-    void swap(shared_ptr<T> & other)  // never throws
-    {
-        std::swap(px, other.px);
-        std::swap(pn, other.pn);
-    }
-
-private:
-
-    T * px;            // contained pointer
-    count_type * pn;   // ptr to reference counter
-};
-
-template<class T, class U> inline bool operator==(shared_ptr<T> const & a, shared_ptr<U> const & b)
-{
-    return a.get() == b.get();
-}
-
-template<class T, class U> inline bool operator!=(shared_ptr<T> const & a, shared_ptr<U> const & b)
-{
-    return a.get() != b.get();
-}
-
-template<class T> inline bool operator<(shared_ptr<T> const & a, shared_ptr<T> const & b)
-{
-    return std::less<T*>()(a.get(), b.get());
-}
-
-template<class T> void swap(shared_ptr<T> & a, shared_ptr<T> & b)
-{
-    a.swap(b);
-}
-
-// get_pointer() enables boost::mem_fn to recognize shared_ptr
-
-template<class T> inline T * get_pointer(shared_ptr<T> const & p)
-{
-    return p.get();
-}
-
-} // namespace boost
-
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SHARED_PTR_NMT_HPP_INCLUDED
diff --git a/boost/smart_ptr/detail/sp_convertible.hpp b/boost/smart_ptr/detail/sp_convertible.hpp
deleted file mode 100644
index 31b2627..0000000
--- a/boost/smart_ptr/detail/sp_convertible.hpp
+++ /dev/null
@@ -1,91 +0,0 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SP_CONVERTIBLE_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SP_CONVERTIBLE_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//  detail/sp_convertible.hpp
-//
-//  Copyright 2008 Peter Dimov
-//
-//  Distributed under the Boost Software License, Version 1.0.
-//  See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt
-
-#include <boost/config.hpp>
-
-#if !defined( BOOST_SP_NO_SP_CONVERTIBLE ) && defined( BOOST_NO_SFINAE )
-# define BOOST_SP_NO_SP_CONVERTIBLE
-#endif
-
-#if !defined( BOOST_SP_NO_SP_CONVERTIBLE ) && defined( __GNUC__ ) && ( __GNUC__ * 100 + __GNUC_MINOR__ < 303 )
-# define BOOST_SP_NO_SP_CONVERTIBLE
-#endif
-
-#if !defined( BOOST_SP_NO_SP_CONVERTIBLE ) && defined( __BORLANDC__ ) && ( __BORLANDC__ < 0x630 )
-# define BOOST_SP_NO_SP_CONVERTIBLE
-#endif
-
-#if !defined( BOOST_SP_NO_SP_CONVERTIBLE )
-
-namespace boost
-{
-
-namespace detail
-{
-
-template< class Y, class T > struct sp_convertible
-{
-    typedef char (&yes) [1];
-    typedef char (&no)  [2];
-
-    static yes f( T* );
-    static no  f( ... );
-
-    enum _vt { value = sizeof( (f)( static_cast<Y*>(0) ) ) == sizeof(yes) };
-};
-
-template< class Y, class T > struct sp_convertible< Y, T[] >
-{
-    enum _vt { value = false };
-};
-
-template< class Y, class T > struct sp_convertible< Y[], T[] >
-{
-    enum _vt { value = sp_convertible< Y[1], T[1] >::value };
-};
-
-template< class Y, std::size_t N, class T > struct sp_convertible< Y[N], T[] >
-{
-    enum _vt { value = sp_convertible< Y[1], T[1] >::value };
-};
-
-struct sp_empty
-{
-};
-
-template< bool > struct sp_enable_if_convertible_impl;
-
-template<> struct sp_enable_if_convertible_impl<true>
-{
-    typedef sp_empty type;
-};
-
-template<> struct sp_enable_if_convertible_impl<false>
-{
-};
-
-template< class Y, class T > struct sp_enable_if_convertible: public sp_enable_if_convertible_impl< sp_convertible< Y, T >::value >
-{
-};
-
-} // namespace detail
-
-} // namespace boost
-
-#endif // !defined( BOOST_SP_NO_SP_CONVERTIBLE )
-
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_CONVERTIBLE_HPP_INCLUDED
diff --git a/boost/smart_ptr/detail/sp_counted_base.hpp b/boost/smart_ptr/detail/sp_counted_base.hpp
deleted file mode 100644
index 9ced2b9..0000000
--- a/boost/smart_ptr/detail/sp_counted_base.hpp
+++ /dev/null
@@ -1,79 +0,0 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  detail/sp_counted_base.hpp
-//
-//  Copyright 2005, 2006 Peter Dimov
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-#include <boost/config.hpp>
-#include <boost/smart_ptr/detail/sp_has_sync.hpp>
-
-#if defined( BOOST_SP_DISABLE_THREADS )
-# include <boost/smart_ptr/detail/sp_counted_base_nt.hpp>
-
-#elif defined( BOOST_SP_USE_SPINLOCK )
-# include <boost/smart_ptr/detail/sp_counted_base_spin.hpp>
-
-#elif defined( BOOST_SP_USE_PTHREADS )
-# include <boost/smart_ptr/detail/sp_counted_base_pt.hpp>
-
-#elif defined( BOOST_DISABLE_THREADS ) && !defined( BOOST_SP_ENABLE_THREADS ) && !defined( BOOST_DISABLE_WIN32 )
-# include <boost/smart_ptr/detail/sp_counted_base_nt.hpp>
-
-#elif defined( __SNC__ )
-# include <boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp>
-
-#elif defined( __GNUC__ ) && ( defined( __i386__ ) || defined( __x86_64__ ) ) && !defined(__PATHSCALE__)
-# include <boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp>
-
-#elif defined(__HP_aCC) && defined(__ia64)
-# include <boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp>
-
-#elif defined( __GNUC__ ) && defined( __ia64__ ) && !defined( __INTEL_COMPILER ) && !defined(__PATHSCALE__)
-# include <boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp>
-
-#elif defined( __IBMCPP__ ) && defined( __powerpc )
-# include <boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp>
-
-#elif defined( __MWERKS__ ) && defined( __POWERPC__ )
-# include <boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp>
-
-#elif defined( __GNUC__ ) && ( defined( __powerpc__ ) || defined( __ppc__ ) || defined( __ppc ) ) && !defined(__PATHSCALE__) && !defined( _AIX )
-# include <boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp>
-
-#elif defined( __GNUC__ ) && ( defined( __mips__ ) || defined( _mips ) ) && !defined(__PATHSCALE__)
-# include <boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp>
-
-#elif defined( BOOST_SP_HAS_SYNC )
-# include <boost/smart_ptr/detail/sp_counted_base_sync.hpp>
-
-#elif defined(__GNUC__) && ( defined( __sparcv9 ) || ( defined( __sparcv8 ) && ( __GNUC__ * 100 + __GNUC_MINOR__ >= 402 ) ) )
-# include <boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp>
-
-#elif defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ ) || defined(__CYGWIN__)
-# include <boost/smart_ptr/detail/sp_counted_base_w32.hpp>
-
-#elif defined( _AIX )
-# include <boost/smart_ptr/detail/sp_counted_base_aix.hpp>
-
-#elif !defined( BOOST_HAS_THREADS )
-# include <boost/smart_ptr/detail/sp_counted_base_nt.hpp>
-
-#else
-# include <boost/smart_ptr/detail/sp_counted_base_spin.hpp>
-
-#endif
-
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_HPP_INCLUDED
diff --git a/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp b/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp
deleted file mode 100644
index cebc243..0000000
--- a/boost/smart_ptr/detail/sp_counted_base_acc_ia64.hpp
+++ /dev/null
@@ -1,151 +0,0 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_ACC_IA64_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_ACC_IA64_HPP_INCLUDED
-
-//
-//  detail/sp_counted_base_acc_ia64.hpp - aC++ on HP-UX IA64
-//
-//  Copyright 2007 Baruch Zilber
-//  Copyright 2007 Boris Gubenko
-//
-//  Distributed under the Boost Software License, Version 1.0. (See
-//  accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-//
-//  Lock-free algorithm by Alexander Terekhov
-//
-
-#include <boost/detail/sp_typeinfo.hpp>
-#include <machine/sys/inline.h>
-
-namespace boost
-{
-
-namespace detail
-{
-
-inline void atomic_increment( int * pw )
-{
-    // ++*pw;
-
-    _Asm_fetchadd(_FASZ_W, _SEM_REL, pw, +1, _LDHINT_NONE);
-} 
-
-inline int atomic_decrement( int * pw )
-{
-    // return --*pw;
-
-    int r = static_cast<int>(_Asm_fetchadd(_FASZ_W, _SEM_REL, pw, -1, _LDHINT_NONE));
-    if (1 == r)
-    {
-        _Asm_mf();
-    }
-    
-    return r - 1;
-}
-
-inline int atomic_conditional_increment( int * pw )
-{
-    // if( *pw != 0 ) ++*pw;
-    // return *pw;
-
-    int v = *pw;
-    
-    for (;;)
-    {
-        if (0 == v)
-        {
-            return 0;
-        }
-        
-        _Asm_mov_to_ar(_AREG_CCV,
-                       v,
-                       (_UP_CALL_FENCE | _UP_SYS_FENCE | _DOWN_CALL_FENCE | _DOWN_SYS_FENCE));
-        int r = static_cast<int>(_Asm_cmpxchg(_SZ_W, _SEM_ACQ, pw, v + 1, _LDHINT_NONE));
-        if (r == v)
-        {
-            return r + 1;
-        }
-        
-        v = r;
-    }
-}
-
-class sp_counted_base
-{
-private:
-
-    sp_counted_base( sp_counted_base const & );
-    sp_counted_base & operator= ( sp_counted_base const & );
-
-    int use_count_;        // #shared
-    int weak_count_;       // #weak + (#shared != 0)
-
-public:
-
-    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
-    {
-    }
-
-    virtual ~sp_counted_base() // nothrow
-    {
-    }
-
-    // dispose() is called when use_count_ drops to zero, to release
-    // the resources managed by *this.
-
-    virtual void dispose() = 0; // nothrow
-
-    // destroy() is called when weak_count_ drops to zero.
-
-    virtual void destroy() // nothrow
-    {
-        delete this;
-    }
-
-    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
-    virtual void * get_untyped_deleter() = 0;
-
-    void add_ref_copy()
-    {
-        atomic_increment( &use_count_ );
-    }
-
-    bool add_ref_lock() // true on success
-    {
-        return atomic_conditional_increment( &use_count_ ) != 0;
-    }
-
-    void release() // nothrow
-    {
-        if( atomic_decrement( &use_count_ ) == 0 )
-        {
-            dispose();
-            weak_release();
-        }
-    }
-
-    void weak_add_ref() // nothrow
-    {
-        atomic_increment( &weak_count_ );
-    }
-
-    void weak_release() // nothrow
-    {
-        if( atomic_decrement( &weak_count_ ) == 0 )
-        {
-            destroy();
-        }
-    }
-
-    long use_count() const // nothrow
-    {
-        return static_cast<int const volatile &>( use_count_ ); // TODO use ld.acq here
-    }
-};
-
-} // namespace detail
-
-} // namespace boost
-
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_ACC_IA64_HPP_INCLUDED
diff --git a/boost/smart_ptr/detail/sp_counted_base_aix.hpp b/boost/smart_ptr/detail/sp_counted_base_aix.hpp
deleted file mode 100644
index fe6c727..0000000
--- a/boost/smart_ptr/detail/sp_counted_base_aix.hpp
+++ /dev/null
@@ -1,143 +0,0 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_AIX_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_AIX_HPP_INCLUDED
-
-//
-//  detail/sp_counted_base_aix.hpp
-//   based on: detail/sp_counted_base_w32.hpp
-//
-//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.
-//  Copyright 2004-2005 Peter Dimov
-//  Copyright 2006 Michael van der Westhuizen
-//
-//  Distributed under the Boost Software License, Version 1.0. (See
-//  accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-//
-//  Lock-free algorithm by Alexander Terekhov
-//
-//  Thanks to Ben Hitchings for the #weak + (#shared != 0)
-//  formulation
-//
-
-#include <boost/detail/sp_typeinfo.hpp>
-#include <builtins.h>
-#include <sys/atomic_op.h>
-
-namespace boost
-{
-
-namespace detail
-{
-
-inline void atomic_increment( int32_t* pw )
-{
-    // ++*pw;
-
-    fetch_and_add( pw, 1 );
-}
-
-inline int32_t atomic_decrement( int32_t * pw )
-{
-    // return --*pw;
-
-    int32_t originalValue;
-
-    __lwsync();
-    originalValue = fetch_and_add( pw, -1 );
-    __isync();
-
-    return (originalValue - 1);
-}
-
-inline int32_t atomic_conditional_increment( int32_t * pw )
-{
-    // if( *pw != 0 ) ++*pw;
-    // return *pw;
-
-    int32_t tmp = fetch_and_add( pw, 0 );
-    for( ;; )
-    {
-        if( tmp == 0 ) return 0;
-        if( compare_and_swap( pw, &tmp, tmp + 1 ) ) return (tmp + 1);
-    }
-}
-
-class sp_counted_base
-{
-private:
-
-    sp_counted_base( sp_counted_base const & );
-    sp_counted_base & operator= ( sp_counted_base const & );
-
-    int32_t use_count_;        // #shared
-    int32_t weak_count_;       // #weak + (#shared != 0)
-
-public:
-
-    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
-    {
-    }
-
-    virtual ~sp_counted_base() // nothrow
-    {
-    }
-
-    // dispose() is called when use_count_ drops to zero, to release
-    // the resources managed by *this.
-
-    virtual void dispose() = 0; // nothrow
-
-    // destroy() is called when weak_count_ drops to zero.
-
-    virtual void destroy() // nothrow
-    {
-        delete this;
-    }
-
-    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
-    virtual void * get_untyped_deleter() = 0;
-
-    void add_ref_copy()
-    {
-        atomic_increment( &use_count_ );
-    }
-
-    bool add_ref_lock() // true on success
-    {
-        return atomic_conditional_increment( &use_count_ ) != 0;
-    }
-
-    void release() // nothrow
-    {
-        if( atomic_decrement( &use_count_ ) == 0 )
-        {
-            dispose();
-            weak_release();
-        }
-    }
-
-    void weak_add_ref() // nothrow
-    {
-        atomic_increment( &weak_count_ );
-    }
-
-    void weak_release() // nothrow
-    {
-        if( atomic_decrement( &weak_count_ ) == 0 )
-        {
-            destroy();
-        }
-    }
-
-    long use_count() const // nothrow
-    {
-        return fetch_and_add( const_cast<int32_t*>(&use_count_), 0 );
-    }
-};
-
-} // namespace detail
-
-} // namespace boost
-
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_AIX_HPP_INCLUDED
diff --git a/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp b/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp
deleted file mode 100644
index 6c268e8..0000000
--- a/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp
+++ /dev/null
@@ -1,171 +0,0 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_CW_PPC_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_CW_PPC_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  detail/sp_counted_base_cw_ppc.hpp - CodeWarrior on PowerPC
-//
-//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.
-//  Copyright 2004-2005 Peter Dimov
-//
-//  Distributed under the Boost Software License, Version 1.0. (See
-//  accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-//
-//  Lock-free algorithm by Alexander Terekhov
-//
-//  Thanks to Ben Hitchings for the #weak + (#shared != 0)
-//  formulation
-//
-
-#include <boost/detail/sp_typeinfo.hpp>
-
-namespace boost
-{
-
-namespace detail
-{
-
-inline void atomic_increment( register long * pw )
-{
-    register int a;
-
-    asm
-    {
-loop:
-
-    lwarx   a, 0, pw
-    addi    a, a, 1
-    stwcx.  a, 0, pw
-    bne-    loop
-    }
-}
-
-inline long atomic_decrement( register long * pw )
-{
-    register int a;
-
-    asm
-    {
-    sync
-
-loop:
-
-    lwarx   a, 0, pw
-    addi    a, a, -1
-    stwcx.  a, 0, pw
-    bne-    loop
-
-    isync
-    }
-
-    return a;
-}
-
-inline long atomic_conditional_increment( register long * pw )
-{
-    register int a;
-
-    asm
-    {
-loop:
-
-    lwarx   a, 0, pw
-    cmpwi   a, 0
-    beq     store
-
-    addi    a, a, 1
-
-store:
-
-    stwcx.  a, 0, pw
-    bne-    loop
-    }
-
-    return a;
-}
-
-class sp_counted_base
-{
-private:
-
-    sp_counted_base( sp_counted_base const & );
-    sp_counted_base & operator= ( sp_counted_base const & );
-
-    long use_count_;        // #shared
-    long weak_count_;       // #weak + (#shared != 0)
-
-public:
-
-    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
-    {
-    }
-
-    virtual ~sp_counted_base() // nothrow
-    {
-    }
-
-    // dispose() is called when use_count_ drops to zero, to release
-    // the resources managed by *this.
-
-    virtual void dispose() = 0; // nothrow
-
-    // destroy() is called when weak_count_ drops to zero.
-
-    virtual void destroy() // nothrow
-    {
-        delete this;
-    }
-
-    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
-    virtual void * get_untyped_deleter() = 0;
-
-    void add_ref_copy()
-    {
-        atomic_increment( &use_count_ );
-    }
-
-    bool add_ref_lock() // true on success
-    {
-        return atomic_conditional_increment( &use_count_ ) != 0;
-    }
-
-    void release() // nothrow
-    {
-        if( atomic_decrement( &use_count_ ) == 0 )
-        {
-            dispose();
-            weak_release();
-        }
-    }
-
-    void weak_add_ref() // nothrow
-    {
-        atomic_increment( &weak_count_ );
-    }
-
-    void weak_release() // nothrow
-    {
-        if( atomic_decrement( &weak_count_ ) == 0 )
-        {
-            destroy();
-        }
-    }
-
-    long use_count() const // nothrow
-    {
-        return static_cast<long const volatile &>( use_count_ );
-    }
-};
-
-} // namespace detail
-
-} // namespace boost
-
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_CW_PPC_HPP_INCLUDED
diff --git a/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp b/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp
deleted file mode 100644
index f6e3904..0000000
--- a/boost/smart_ptr/detail/sp_counted_base_gcc_ia64.hpp
+++ /dev/null
@@ -1,158 +0,0 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_IA64_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_IA64_HPP_INCLUDED
-
-//
-//  detail/sp_counted_base_gcc_ia64.hpp - g++ on IA64
-//
-//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.
-//  Copyright 2004-2006 Peter Dimov
-//  Copyright 2005 Ben Hutchings
-//
-//  Distributed under the Boost Software License, Version 1.0. (See
-//  accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-//
-//  Lock-free algorithm by Alexander Terekhov
-//
-
-#include <boost/detail/sp_typeinfo.hpp>
-
-namespace boost
-{
-
-namespace detail
-{
-
-inline void atomic_increment( int * pw )
-{
-    // ++*pw;
-
-    int tmp;
-
-    // No barrier is required here but fetchadd always has an acquire or
-    // release barrier associated with it.  We choose release as it should be
-    // cheaper.
-    __asm__ ("fetchadd4.rel %0=%1,1" :
-         "=r"(tmp), "=m"(*pw) :
-         "m"( *pw ));
-}
-
-inline int atomic_decrement( int * pw )
-{
-    // return --*pw;
-
-    int rv;
-
-    __asm__ ("     fetchadd4.rel %0=%1,-1 ;; \n"
-             "     cmp.eq        p7,p0=1,%0 ;; \n"
-             "(p7) ld4.acq       %0=%1    " :
-             "=&r"(rv), "=m"(*pw) :
-             "m"( *pw ) :
-             "p7");
-
-    return rv;
-}
-
-inline int atomic_conditional_increment( int * pw )
-{
-    // if( *pw != 0 ) ++*pw;
-    // return *pw;
-
-    int rv, tmp, tmp2;
-
-    __asm__ ("0:   ld4          %0=%3           ;; \n"
-         "     cmp.eq       p7,p0=0,%0        ;; \n"
-         "(p7) br.cond.spnt 1f                \n"
-         "     mov          ar.ccv=%0         \n"
-         "     add          %1=1,%0           ;; \n"
-         "     cmpxchg4.acq %2=%3,%1,ar.ccv ;; \n"
-         "     cmp.ne       p7,p0=%0,%2       ;; \n"
-         "(p7) br.cond.spnt 0b                \n"
-         "     mov          %0=%1             ;; \n"
-         "1:" : 
-         "=&r"(rv), "=&r"(tmp), "=&r"(tmp2), "=m"(*pw) :
-         "m"( *pw ) :
-         "ar.ccv", "p7");
-
-    return rv;
-}
-
-class sp_counted_base
-{
-private:
-
-    sp_counted_base( sp_counted_base const & );
-    sp_counted_base & operator= ( sp_counted_base const & );
-
-    int use_count_;        // #shared
-    int weak_count_;       // #weak + (#shared != 0)
-
-public:
-
-    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
-    {
-    }
-
-    virtual ~sp_counted_base() // nothrow
-    {
-    }
-
-    // dispose() is called when use_count_ drops to zero, to release
-    // the resources managed by *this.
-
-    virtual void dispose() = 0; // nothrow
-
-    // destroy() is called when weak_count_ drops to zero.
-
-    virtual void destroy() // nothrow
-    {
-        delete this;
-    }
-
-    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
-    virtual void * get_untyped_deleter() = 0;
-
-    void add_ref_copy()
-    {
-        atomic_increment( &use_count_ );
-    }
-
-    bool add_ref_lock() // true on success
-    {
-        return atomic_conditional_increment( &use_count_ ) != 0;
-    }
-
-    void release() // nothrow
-    {
-        if( atomic_decrement( &use_count_ ) == 0 )
-        {
-            dispose();
-            weak_release();
-        }
-    }
-
-    void weak_add_ref() // nothrow
-    {
-        atomic_increment( &weak_count_ );
-    }
-
-    void weak_release() // nothrow
-    {
-        if( atomic_decrement( &weak_count_ ) == 0 )
-        {
-            destroy();
-        }
-    }
-
-    long use_count() const // nothrow
-    {
-        return static_cast<int const volatile &>( use_count_ ); // TODO use ld.acq here
-    }
-};
-
-} // namespace detail
-
-} // namespace boost
-
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_IA64_HPP_INCLUDED
diff --git a/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp b/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp
deleted file mode 100644
index 545c8ae..0000000
--- a/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp
+++ /dev/null
@@ -1,182 +0,0 @@
-#ifndef BOOST_DETAIL_SP_COUNTED_BASE_GCC_MIPS_HPP_INCLUDED
-#define BOOST_DETAIL_SP_COUNTED_BASE_GCC_MIPS_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  detail/sp_counted_base_gcc_mips.hpp - g++ on MIPS
-//
-//  Copyright (c) 2009, Spirent Communications, Inc.
-//
-//  Distributed under the Boost Software License, Version 1.0. (See
-//  accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-//
-//  Lock-free algorithm by Alexander Terekhov
-//
-
-#include <boost/detail/sp_typeinfo.hpp>
-
-namespace boost
-{
-
-namespace detail
-{
-
-inline void atomic_increment( int * pw )
-{
-    // ++*pw;
-
-    int tmp;
-
-    __asm__ __volatile__
-    (
-        "0:\n\t"
-        ".set push\n\t"
-        ".set mips2\n\t"
-        "ll %0, %1\n\t"
-        "addiu %0, 1\n\t"
-        "sc %0, %1\n\t"
-        ".set pop\n\t"
-        "beqz %0, 0b":
-        "=&r"( tmp ), "=m"( *pw ):
-        "m"( *pw )
-    );
-}
-
-inline int atomic_decrement( int * pw )
-{
-    // return --*pw;
-
-    int rv, tmp;
-
-    __asm__ __volatile__
-    (
-        "0:\n\t"
-        ".set push\n\t"
-        ".set mips2\n\t"
-        "ll %1, %2\n\t"
-        "addiu %0, %1, -1\n\t"
-        "sc %0, %2\n\t"
-        ".set pop\n\t"
-        "beqz %0, 0b\n\t"
-        "addiu %0, %1, -1":
-        "=&r"( rv ), "=&r"( tmp ), "=m"( *pw ):
-        "m"( *pw ):
-        "memory"
-    );
-
-    return rv;
-}
-
-inline int atomic_conditional_increment( int * pw )
-{
-    // if( *pw != 0 ) ++*pw;
-    // return *pw;
-
-    int rv, tmp;
-
-    __asm__ __volatile__
-    (
-        "0:\n\t"
-        ".set push\n\t"
-        ".set mips2\n\t"
-        "ll %0, %2\n\t"
-        "beqz %0, 1f\n\t"
-        "addiu %1, %0, 1\n\t"
-        "sc %1, %2\n\t"
-        ".set pop\n\t"
-        "beqz %1, 0b\n\t"
-        "addiu %0, %0, 1\n\t"
-        "1:":
-        "=&r"( rv ), "=&r"( tmp ), "=m"( *pw ):
-        "m"( *pw ):
-        "memory"
-    );
-
-    return rv;
-}
-
-class sp_counted_base
-{
-private:
-
-    sp_counted_base( sp_counted_base const & );
-    sp_counted_base & operator= ( sp_counted_base const & );
-
-    int use_count_;        // #shared
-    int weak_count_;       // #weak + (#shared != 0)
-
-public:
-
-    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
-    {
-    }
-
-    virtual ~sp_counted_base() // nothrow
-    {
-    }
-
-    // dispose() is called when use_count_ drops to zero, to release
-    // the resources managed by *this.
-
-    virtual void dispose() = 0; // nothrow
-
-    // destroy() is called when weak_count_ drops to zero.
-
-    virtual void destroy() // nothrow
-    {
-        delete this;
-    }
-
-    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
-    virtual void * get_untyped_deleter() = 0;
-
-    void add_ref_copy()
-    {
-        atomic_increment( &use_count_ );
-    }
-
-    bool add_ref_lock() // true on success
-    {
-        return atomic_conditional_increment( &use_count_ ) != 0;
-    }
-
-    void release() // nothrow
-    {
-        if( atomic_decrement( &use_count_ ) == 0 )
-        {
-            dispose();
-            weak_release();
-        }
-    }
-
-    void weak_add_ref() // nothrow
-    {
-        atomic_increment( &weak_count_ );
-    }
-
-    void weak_release() // nothrow
-    {
-        if( atomic_decrement( &weak_count_ ) == 0 )
-        {
-            destroy();
-        }
-    }
-
-    long use_count() const // nothrow
-    {
-        return static_cast<int const volatile &>( use_count_ );
-    }
-};
-
-} // namespace detail
-
-} // namespace boost
-
-#endif  // #ifndef BOOST_DETAIL_SP_COUNTED_BASE_GCC_MIPS_HPP_INCLUDED
diff --git a/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp b/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp
deleted file mode 100644
index 2e5bc0e..0000000
--- a/boost/smart_ptr/detail/sp_counted_base_gcc_ppc.hpp
+++ /dev/null
@@ -1,182 +0,0 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_PPC_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_PPC_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  detail/sp_counted_base_gcc_ppc.hpp - g++ on PowerPC
-//
-//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.
-//  Copyright 2004-2005 Peter Dimov
-//
-//  Distributed under the Boost Software License, Version 1.0. (See
-//  accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-//
-//  Lock-free algorithm by Alexander Terekhov
-//
-//  Thanks to Ben Hitchings for the #weak + (#shared != 0)
-//  formulation
-//
-
-#include <boost/detail/sp_typeinfo.hpp>
-
-namespace boost
-{
-
-namespace detail
-{
-
-inline void atomic_increment( int * pw )
-{
-    // ++*pw;
-
-    int tmp;
-
-    __asm__
-    (
-        "0:\n\t"
-        "lwarx %1, 0, %2\n\t"
-        "addi %1, %1, 1\n\t"
-        "stwcx. %1, 0, %2\n\t"
-        "bne- 0b":
-
-        "=m"( *pw ), "=&b"( tmp ):
-        "r"( pw ), "m"( *pw ):
-        "cc"
-    );
-}
-
-inline int atomic_decrement( int * pw )
-{
-    // return --*pw;
-
-    int rv;
-
-    __asm__ __volatile__
-    (
-        "sync\n\t"
-        "0:\n\t"
-        "lwarx %1, 0, %2\n\t"
-        "addi %1, %1, -1\n\t"
-        "stwcx. %1, 0, %2\n\t"
-        "bne- 0b\n\t"
-        "isync":
-
-        "=m"( *pw ), "=&b"( rv ):
-        "r"( pw ), "m"( *pw ):
-        "memory", "cc"
-    );
-
-    return rv;
-}
-
-inline int atomic_conditional_increment( int * pw )
-{
-    // if( *pw != 0 ) ++*pw;
-    // return *pw;
-
-    int rv;
-
-    __asm__
-    (
-        "0:\n\t"
-        "lwarx %1, 0, %2\n\t"
-        "cmpwi %1, 0\n\t"
-        "beq 1f\n\t"
-        "addi %1, %1, 1\n\t"
-        "1:\n\t"
-        "stwcx. %1, 0, %2\n\t"
-        "bne- 0b":
-
-        "=m"( *pw ), "=&b"( rv ):
-        "r"( pw ), "m"( *pw ):
-        "cc"
-    );
-
-    return rv;
-}
-
-class sp_counted_base
-{
-private:
-
-    sp_counted_base( sp_counted_base const & );
-    sp_counted_base & operator= ( sp_counted_base const & );
-
-    int use_count_;        // #shared
-    int weak_count_;       // #weak + (#shared != 0)
-
-public:
-
-    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
-    {
-    }
-
-    virtual ~sp_counted_base() // nothrow
-    {
-    }
-
-    // dispose() is called when use_count_ drops to zero, to release
-    // the resources managed by *this.
-
-    virtual void dispose() = 0; // nothrow
-
-    // destroy() is called when weak_count_ drops to zero.
-
-    virtual void destroy() // nothrow
-    {
-        delete this;
-    }
-
-    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
-    virtual void * get_untyped_deleter() = 0;
-
-    void add_ref_copy()
-    {
-        atomic_increment( &use_count_ );
-    }
-
-    bool add_ref_lock() // true on success
-    {
-        return atomic_conditional_increment( &use_count_ ) != 0;
-    }
-
-    void release() // nothrow
-    {
-        if( atomic_decrement( &use_count_ ) == 0 )
-        {
-            dispose();
-            weak_release();
-        }
-    }
-
-    void weak_add_ref() // nothrow
-    {
-        atomic_increment( &weak_count_ );
-    }
-
-    void weak_release() // nothrow
-    {
-        if( atomic_decrement( &weak_count_ ) == 0 )
-        {
-            destroy();
-        }
-    }
-
-    long use_count() const // nothrow
-    {
-        return static_cast<int const volatile &>( use_count_ );
-    }
-};
-
-} // namespace detail
-
-} // namespace boost
-
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_PPC_HPP_INCLUDED
diff --git a/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp b/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp
deleted file mode 100644
index c6d20ce..0000000
--- a/boost/smart_ptr/detail/sp_counted_base_gcc_sparc.hpp
+++ /dev/null
@@ -1,167 +0,0 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_SPARC_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_SPARC_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//  detail/sp_counted_base_gcc_sparc.hpp - g++ on Sparc V8+
-//
-//  Copyright (c) 2006 Piotr Wyderski
-//  Copyright (c) 2006 Tomas Puverle
-//  Copyright (c) 2006 Peter Dimov
-//
-//  Distributed under the Boost Software License, Version 1.0.
-//  See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt
-//
-//  Thanks to Michael van der Westhuizen
-
-#include <boost/detail/sp_typeinfo.hpp>
-#include <inttypes.h> // int32_t
-
-namespace boost
-{
-
-namespace detail
-{
-
-inline int32_t compare_and_swap( int32_t * dest_, int32_t compare_, int32_t swap_ )
-{
-    __asm__ __volatile__( "cas [%1], %2, %0"
-                        : "+r" (swap_)
-                        : "r" (dest_), "r" (compare_)
-                        : "memory" );
-
-    return swap_;
-}
-
-inline int32_t atomic_fetch_and_add( int32_t * pw, int32_t dv )
-{
-    // long r = *pw;
-    // *pw += dv;
-    // return r;
-
-    for( ;; )
-    {
-        int32_t r = *pw;
-
-        if( __builtin_expect((compare_and_swap(pw, r, r + dv) == r), 1) )
-        {
-            return r;
-        }
-    }
-}
-
-inline void atomic_increment( int32_t * pw )
-{
-    atomic_fetch_and_add( pw, 1 );
-}
-
-inline int32_t atomic_decrement( int32_t * pw )
-{
-    return atomic_fetch_and_add( pw, -1 );
-}
-
-inline int32_t atomic_conditional_increment( int32_t * pw )
-{
-    // long r = *pw;
-    // if( r != 0 ) ++*pw;
-    // return r;
-
-    for( ;; )
-    {
-        int32_t r = *pw;
-
-        if( r == 0 )
-        {
-            return r;
-        }
-
-        if( __builtin_expect( ( compare_and_swap( pw, r, r + 1 ) == r ), 1 ) )
-        {
-            return r;
-        }
-    }    
-}
-
-class sp_counted_base
-{
-private:
-
-    sp_counted_base( sp_counted_base const & );
-    sp_counted_base & operator= ( sp_counted_base const & );
-
-    int32_t use_count_;        // #shared
-    int32_t weak_count_;       // #weak + (#shared != 0)
-
-public:
-
-    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
-    {
-    }
-
-    virtual ~sp_counted_base() // nothrow
-    {
-    }
-
-    // dispose() is called when use_count_ drops to zero, to release
-    // the resources managed by *this.
-
-    virtual void dispose() = 0; // nothrow
-
-    // destroy() is called when weak_count_ drops to zero.
-
-    virtual void destroy() // nothrow
-    {
-        delete this;
-    }
-
-    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
-    virtual void * get_untyped_deleter() = 0;
-
-    void add_ref_copy()
-    {
-        atomic_increment( &use_count_ );
-    }
-
-    bool add_ref_lock() // true on success
-    {
-        return atomic_conditional_increment( &use_count_ ) != 0;
-    }
-
-    void release() // nothrow
-    {
-        if( atomic_decrement( &use_count_ ) == 1 )
-        {
-            dispose();
-            weak_release();
-        }
-    }
-
-    void weak_add_ref() // nothrow
-    {
-        atomic_increment( &weak_count_ );
-    }
-
-    void weak_release() // nothrow
-    {
-        if( atomic_decrement( &weak_count_ ) == 1 )
-        {
-            destroy();
-        }
-    }
-
-    long use_count() const // nothrow
-    {
-        return const_cast< int32_t const volatile & >( use_count_ );
-    }
-};
-
-} // namespace detail
-
-} // namespace boost
-
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_SPARC_HPP_INCLUDED
diff --git a/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp b/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp
deleted file mode 100644
index 173dce5..0000000
--- a/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp
+++ /dev/null
@@ -1,174 +0,0 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_X86_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_X86_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  detail/sp_counted_base_gcc_x86.hpp - g++ on 486+ or AMD64
-//
-//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.
-//  Copyright 2004-2005 Peter Dimov
-//
-//  Distributed under the Boost Software License, Version 1.0. (See
-//  accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-//
-//  Lock-free algorithm by Alexander Terekhov
-//
-//  Thanks to Ben Hitchings for the #weak + (#shared != 0)
-//  formulation
-//
-
-#include <boost/detail/sp_typeinfo.hpp>
-
-namespace boost
-{
-
-namespace detail
-{
-
-inline int atomic_exchange_and_add( int * pw, int dv )
-{
-    // int r = *pw;
-    // *pw += dv;
-    // return r;
-
-    int r;
-
-    __asm__ __volatile__
-    (
-        "lock\n\t"
-        "xadd %1, %0":
-        "=m"( *pw ), "=r"( r ): // outputs (%0, %1)
-        "m"( *pw ), "1"( dv ): // inputs (%2, %3 == %1)
-        "memory", "cc" // clobbers
-    );
-
-    return r;
-}
-
-inline void atomic_increment( int * pw )
-{
-    //atomic_exchange_and_add( pw, 1 );
-
-    __asm__
-    (
-        "lock\n\t"
-        "incl %0":
-        "=m"( *pw ): // output (%0)
-        "m"( *pw ): // input (%1)
-        "cc" // clobbers
-    );
-}
-
-inline int atomic_conditional_increment( int * pw )
-{
-    // int rv = *pw;
-    // if( rv != 0 ) ++*pw;
-    // return rv;
-
-    int rv, tmp;
-
-    __asm__
-    (
-        "movl %0, %%eax\n\t"
-        "0:\n\t"
-        "test %%eax, %%eax\n\t"
-        "je 1f\n\t"
-        "movl %%eax, %2\n\t"
-        "incl %2\n\t"
-        "lock\n\t"
-        "cmpxchgl %2, %0\n\t"
-        "jne 0b\n\t"
-        "1:":
-        "=m"( *pw ), "=&a"( rv ), "=&r"( tmp ): // outputs (%0, %1, %2)
-        "m"( *pw ): // input (%3)
-        "cc" // clobbers
-    );
-
-    return rv;
-}
-
-class sp_counted_base
-{
-private:
-
-    sp_counted_base( sp_counted_base const & );
-    sp_counted_base & operator= ( sp_counted_base const & );
-
-    int use_count_;        // #shared
-    int weak_count_;       // #weak + (#shared != 0)
-
-public:
-
-    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
-    {
-    }
-
-    virtual ~sp_counted_base() // nothrow
-    {
-    }
-
-    // dispose() is called when use_count_ drops to zero, to release
-    // the resources managed by *this.
-
-    virtual void dispose() = 0; // nothrow
-
-    // destroy() is called when weak_count_ drops to zero.
-
-    virtual void destroy() // nothrow
-    {
-        delete this;
-    }
-
-    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
-    virtual void * get_untyped_deleter() = 0;
-
-    void add_ref_copy()
-    {
-        atomic_increment( &use_count_ );
-    }
-
-    bool add_ref_lock() // true on success
-    {
-        return atomic_conditional_increment( &use_count_ ) != 0;
-    }
-
-    void release() // nothrow
-    {
-        if( atomic_exchange_and_add( &use_count_, -1 ) == 1 )
-        {
-            dispose();
-            weak_release();
-        }
-    }
-
-    void weak_add_ref() // nothrow
-    {
-        atomic_increment( &weak_count_ );
-    }
-
-    void weak_release() // nothrow
-    {
-        if( atomic_exchange_and_add( &weak_count_, -1 ) == 1 )
-        {
-            destroy();
-        }
-    }
-
-    long use_count() const // nothrow
-    {
-        return static_cast<int const volatile &>( use_count_ );
-    }
-};
-
-} // namespace detail
-
-} // namespace boost
-
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_GCC_X86_HPP_INCLUDED
diff --git a/boost/smart_ptr/detail/sp_counted_base_nt.hpp b/boost/smart_ptr/detail/sp_counted_base_nt.hpp
deleted file mode 100644
index 5c901f9..0000000
--- a/boost/smart_ptr/detail/sp_counted_base_nt.hpp
+++ /dev/null
@@ -1,108 +0,0 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_NT_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_NT_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  detail/sp_counted_base_nt.hpp
-//
-//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.
-//  Copyright 2004-2005 Peter Dimov
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-#include <boost/detail/sp_typeinfo.hpp>
-
-namespace boost
-{
-
-namespace detail
-{
-
-class sp_counted_base
-{
-private:
-
-    sp_counted_base( sp_counted_base const & );
-    sp_counted_base & operator= ( sp_counted_base const & );
-
-    long use_count_;        // #shared
-    long weak_count_;       // #weak + (#shared != 0)
-
-public:
-
-    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
-    {
-    }
-
-    virtual ~sp_counted_base() // nothrow
-    {
-    }
-
-    // dispose() is called when use_count_ drops to zero, to release
-    // the resources managed by *this.
-
-    virtual void dispose() = 0; // nothrow
-
-    // destroy() is called when weak_count_ drops to zero.
-
-    virtual void destroy() // nothrow
-    {
-        delete this;
-    }
-
-    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
-    virtual void * get_untyped_deleter() = 0;
-
-    void add_ref_copy()
-    {
-        ++use_count_;
-    }
-
-    bool add_ref_lock() // true on success
-    {
-        if( use_count_ == 0 ) return false;
-        ++use_count_;
-        return true;
-    }
-
-    void release() // nothrow
-    {
-        if( --use_count_ == 0 )
-        {
-            dispose();
-            weak_release();
-        }
-    }
-
-    void weak_add_ref() // nothrow
-    {
-        ++weak_count_;
-    }
-
-    void weak_release() // nothrow
-    {
-        if( --weak_count_ == 0 )
-        {
-            destroy();
-        }
-    }
-
-    long use_count() const // nothrow
-    {
-        return use_count_;
-    }
-};
-
-} // namespace detail
-
-} // namespace boost
-
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_NT_HPP_INCLUDED
diff --git a/boost/smart_ptr/detail/sp_counted_base_pt.hpp b/boost/smart_ptr/detail/sp_counted_base_pt.hpp
deleted file mode 100644
index a742c3d..0000000
--- a/boost/smart_ptr/detail/sp_counted_base_pt.hpp
+++ /dev/null
@@ -1,136 +0,0 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_PT_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_PT_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  detail/sp_counted_base_pt.hpp
-//
-//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.
-//  Copyright 2004-2005 Peter Dimov
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-#include <boost/detail/sp_typeinfo.hpp>
-#include <pthread.h>
-
-namespace boost
-{
-
-namespace detail
-{
-
-class sp_counted_base
-{
-private:
-
-    sp_counted_base( sp_counted_base const & );
-    sp_counted_base & operator= ( sp_counted_base const & );
-
-    long use_count_;        // #shared
-    long weak_count_;       // #weak + (#shared != 0)
-
-    mutable pthread_mutex_t m_;
-
-public:
-
-    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
-    {
-// HPUX 10.20 / DCE has a nonstandard pthread_mutex_init
-
-#if defined(__hpux) && defined(_DECTHREADS_)
-        pthread_mutex_init( &m_, pthread_mutexattr_default );
-#else
-        pthread_mutex_init( &m_, 0 );
-#endif
-    }
-
-    virtual ~sp_counted_base() // nothrow
-    {
-        pthread_mutex_destroy( &m_ );
-    }
-
-    // dispose() is called when use_count_ drops to zero, to release
-    // the resources managed by *this.
-
-    virtual void dispose() = 0; // nothrow
-
-    // destroy() is called when weak_count_ drops to zero.
-
-    virtual void destroy() // nothrow
-    {
-        delete this;
-    }
-
-    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
-    virtual void * get_untyped_deleter() = 0;
-
-    void add_ref_copy()
-    {
-        pthread_mutex_lock( &m_ );
-        ++use_count_;
-        pthread_mutex_unlock( &m_ );
-    }
-
-    bool add_ref_lock() // true on success
-    {
-        pthread_mutex_lock( &m_ );
-        bool r = use_count_ == 0? false: ( ++use_count_, true );
-        pthread_mutex_unlock( &m_ );
-        return r;
-    }
-
-    void release() // nothrow
-    {
-        pthread_mutex_lock( &m_ );
-        long new_use_count = --use_count_;
-        pthread_mutex_unlock( &m_ );
-
-        if( new_use_count == 0 )
-        {
-            dispose();
-            weak_release();
-        }
-    }
-
-    void weak_add_ref() // nothrow
-    {
-        pthread_mutex_lock( &m_ );
-        ++weak_count_;
-        pthread_mutex_unlock( &m_ );
-    }
-
-    void weak_release() // nothrow
-    {
-        pthread_mutex_lock( &m_ );
-        long new_weak_count = --weak_count_;
-        pthread_mutex_unlock( &m_ );
-
-        if( new_weak_count == 0 )
-        {
-            destroy();
-        }
-    }
-
-    long use_count() const // nothrow
-    {
-        pthread_mutex_lock( &m_ );
-        long r = use_count_;
-        pthread_mutex_unlock( &m_ );
-
-        return r;
-    }
-};
-
-} // namespace detail
-
-} // namespace boost
-
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_PT_HPP_INCLUDED
diff --git a/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp b/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp
deleted file mode 100644
index 56ed79f..0000000
--- a/boost/smart_ptr/detail/sp_counted_base_snc_ps3.hpp
+++ /dev/null
@@ -1,162 +0,0 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SNC_PS3_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SNC_PS3_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//  detail/sp_counted_base_gcc_sparc.hpp - g++ on Sparc V8+
-//
-//  Copyright (c) 2006 Piotr Wyderski
-//  Copyright (c) 2006 Tomas Puverle
-//  Copyright (c) 2006 Peter Dimov
-//  Copyright (c) 2011 Emil Dotchevski
-//
-//  Distributed under the Boost Software License, Version 1.0.
-//  See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt
-//
-//  Thanks to Michael van der Westhuizen
-
-#include <boost/detail/sp_typeinfo.hpp>
-#include <inttypes.h> // uint32_t
-
-namespace boost
-{
-
-namespace detail
-{
-
-inline uint32_t compare_and_swap( uint32_t * dest_, uint32_t compare_, uint32_t swap_ )
-{
-    return __builtin_cellAtomicCompareAndSwap32(dest_,compare_,swap_);
-}
-
-inline uint32_t atomic_fetch_and_add( uint32_t * pw, uint32_t dv )
-{
-    // long r = *pw;
-    // *pw += dv;
-    // return r;
-
-    for( ;; )
-    {
-        uint32_t r = *pw;
-
-        if( __builtin_expect((compare_and_swap(pw, r, r + dv) == r), 1) )
-        {
-            return r;
-        }
-    }
-}
-
-inline void atomic_increment( uint32_t * pw )
-{
-    (void) __builtin_cellAtomicIncr32( pw );
-}
-
-inline uint32_t atomic_decrement( uint32_t * pw )
-{
-    return __builtin_cellAtomicDecr32( pw );
-}
-
-inline uint32_t atomic_conditional_increment( uint32_t * pw )
-{
-    // long r = *pw;
-    // if( r != 0 ) ++*pw;
-    // return r;
-
-    for( ;; )
-    {
-        uint32_t r = *pw;
-
-        if( r == 0 )
-        {
-            return r;
-        }
-
-        if( __builtin_expect( ( compare_and_swap( pw, r, r + 1 ) == r ), 1 ) )
-        {
-            return r;
-        }
-    }    
-}
-
-class sp_counted_base
-{
-private:
-
-    sp_counted_base( sp_counted_base const & );
-    sp_counted_base & operator= ( sp_counted_base const & );
-
-    uint32_t use_count_;        // #shared
-    uint32_t weak_count_;       // #weak + (#shared != 0)
-
-public:
-
-    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
-    {
-    }
-
-    virtual ~sp_counted_base() // nothrow
-    {
-    }
-
-    // dispose() is called when use_count_ drops to zero, to release
-    // the resources managed by *this.
-
-    virtual void dispose() = 0; // nothrow
-
-    // destroy() is called when weak_count_ drops to zero.
-
-    virtual void destroy() // nothrow
-    {
-        delete this;
-    }
-
-    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
-    virtual void * get_untyped_deleter() = 0;
-
-    void add_ref_copy()
-    {
-        atomic_increment( &use_count_ );
-    }
-
-    bool add_ref_lock() // true on success
-    {
-        return atomic_conditional_increment( &use_count_ ) != 0;
-    }
-
-    void release() // nothrow
-    {
-        if( atomic_decrement( &use_count_ ) == 1 )
-        {
-            dispose();
-            weak_release();
-        }
-    }
-
-    void weak_add_ref() // nothrow
-    {
-        atomic_increment( &weak_count_ );
-    }
-
-    void weak_release() // nothrow
-    {
-        if( atomic_decrement( &weak_count_ ) == 1 )
-        {
-            destroy();
-        }
-    }
-
-    long use_count() const // nothrow
-    {
-        return const_cast< uint32_t const volatile & >( use_count_ );
-    }
-};
-
-} // namespace detail
-
-} // namespace boost
-
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SNC_PS3_HPP_INCLUDED
diff --git a/boost/smart_ptr/detail/sp_counted_base_spin.hpp b/boost/smart_ptr/detail/sp_counted_base_spin.hpp
deleted file mode 100644
index 77734e7..0000000
--- a/boost/smart_ptr/detail/sp_counted_base_spin.hpp
+++ /dev/null
@@ -1,132 +0,0 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SPIN_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SPIN_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  detail/sp_counted_base_spin.hpp - spinlock pool atomic emulation
-//
-//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.
-//  Copyright 2004-2008 Peter Dimov
-//
-//  Distributed under the Boost Software License, Version 1.0. (See
-//  accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-
-#include <boost/detail/sp_typeinfo.hpp>
-#include <boost/smart_ptr/detail/spinlock_pool.hpp>
-
-namespace boost
-{
-
-namespace detail
-{
-
-inline int atomic_exchange_and_add( int * pw, int dv )
-{
-    spinlock_pool<1>::scoped_lock lock( pw );
-
-    int r = *pw;
-    *pw += dv;
-    return r;
-}
-
-inline void atomic_increment( int * pw )
-{
-    spinlock_pool<1>::scoped_lock lock( pw );
-    ++*pw;
-}
-
-inline int atomic_conditional_increment( int * pw )
-{
-    spinlock_pool<1>::scoped_lock lock( pw );
-
-    int rv = *pw;
-    if( rv != 0 ) ++*pw;
-    return rv;
-}
-
-class sp_counted_base
-{
-private:
-
-    sp_counted_base( sp_counted_base const & );
-    sp_counted_base & operator= ( sp_counted_base const & );
-
-    int use_count_;        // #shared
-    int weak_count_;       // #weak + (#shared != 0)
-
-public:
-
-    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
-    {
-    }
-
-    virtual ~sp_counted_base() // nothrow
-    {
-    }
-
-    // dispose() is called when use_count_ drops to zero, to release
-    // the resources managed by *this.
-
-    virtual void dispose() = 0; // nothrow
-
-    // destroy() is called when weak_count_ drops to zero.
-
-    virtual void destroy() // nothrow
-    {
-        delete this;
-    }
-
-    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
-    virtual void * get_untyped_deleter() = 0;
-
-    void add_ref_copy()
-    {
-        atomic_increment( &use_count_ );
-    }
-
-    bool add_ref_lock() // true on success
-    {
-        return atomic_conditional_increment( &use_count_ ) != 0;
-    }
-
-    void release() // nothrow
-    {
-        if( atomic_exchange_and_add( &use_count_, -1 ) == 1 )
-        {
-            dispose();
-            weak_release();
-        }
-    }
-
-    void weak_add_ref() // nothrow
-    {
-        atomic_increment( &weak_count_ );
-    }
-
-    void weak_release() // nothrow
-    {
-        if( atomic_exchange_and_add( &weak_count_, -1 ) == 1 )
-        {
-            destroy();
-        }
-    }
-
-    long use_count() const // nothrow
-    {
-        spinlock_pool<1>::scoped_lock lock( &use_count_ );
-        return use_count_;
-    }
-};
-
-} // namespace detail
-
-} // namespace boost
-
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SPIN_HPP_INCLUDED
diff --git a/boost/smart_ptr/detail/sp_counted_base_sync.hpp b/boost/smart_ptr/detail/sp_counted_base_sync.hpp
deleted file mode 100644
index fafed0e..0000000
--- a/boost/smart_ptr/detail/sp_counted_base_sync.hpp
+++ /dev/null
@@ -1,156 +0,0 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SYNC_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SYNC_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//  detail/sp_counted_base_sync.hpp - g++ 4.1+ __sync intrinsics
-//
-//  Copyright (c) 2007 Peter Dimov
-//
-//  Distributed under the Boost Software License, Version 1.0.
-//  See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt
-
-#include <boost/detail/sp_typeinfo.hpp>
-#include <limits.h>
-
-#if defined( __ia64__ ) && defined( __INTEL_COMPILER )
-# include <ia64intrin.h>
-#endif
-
-namespace boost
-{
-
-namespace detail
-{
-
-#if INT_MAX >= 2147483647
-
-typedef int sp_int32_t;
-
-#else
-
-typedef long sp_int32_t;
-
-#endif
-
-inline void atomic_increment( sp_int32_t * pw )
-{
-    __sync_fetch_and_add( pw, 1 );
-}
-
-inline sp_int32_t atomic_decrement( sp_int32_t * pw )
-{
-    return __sync_fetch_and_add( pw, -1 );
-}
-
-inline sp_int32_t atomic_conditional_increment( sp_int32_t * pw )
-{
-    // long r = *pw;
-    // if( r != 0 ) ++*pw;
-    // return r;
-
-    sp_int32_t r = *pw;
-
-    for( ;; )
-    {
-        if( r == 0 )
-        {
-            return r;
-        }
-
-        sp_int32_t r2 = __sync_val_compare_and_swap( pw, r, r + 1 );
-
-        if( r2 == r )
-        {
-            return r;
-        }
-        else
-        {
-            r = r2;
-        }
-    }    
-}
-
-class sp_counted_base
-{
-private:
-
-    sp_counted_base( sp_counted_base const & );
-    sp_counted_base & operator= ( sp_counted_base const & );
-
-    sp_int32_t use_count_;        // #shared
-    sp_int32_t weak_count_;       // #weak + (#shared != 0)
-
-public:
-
-    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
-    {
-    }
-
-    virtual ~sp_counted_base() // nothrow
-    {
-    }
-
-    // dispose() is called when use_count_ drops to zero, to release
-    // the resources managed by *this.
-
-    virtual void dispose() = 0; // nothrow
-
-    // destroy() is called when weak_count_ drops to zero.
-
-    virtual void destroy() // nothrow
-    {
-        delete this;
-    }
-
-    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
-    virtual void * get_untyped_deleter() = 0;
-
-    void add_ref_copy()
-    {
-        atomic_increment( &use_count_ );
-    }
-
-    bool add_ref_lock() // true on success
-    {
-        return atomic_conditional_increment( &use_count_ ) != 0;
-    }
-
-    void release() // nothrow
-    {
-        if( atomic_decrement( &use_count_ ) == 1 )
-        {
-            dispose();
-            weak_release();
-        }
-    }
-
-    void weak_add_ref() // nothrow
-    {
-        atomic_increment( &weak_count_ );
-    }
-
-    void weak_release() // nothrow
-    {
-        if( atomic_decrement( &weak_count_ ) == 1 )
-        {
-            destroy();
-        }
-    }
-
-    long use_count() const // nothrow
-    {
-        return const_cast< sp_int32_t const volatile & >( use_count_ );
-    }
-};
-
-} // namespace detail
-
-} // namespace boost
-
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SYNC_HPP_INCLUDED
diff --git a/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp b/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp
deleted file mode 100644
index 162f309..0000000
--- a/boost/smart_ptr/detail/sp_counted_base_vacpp_ppc.hpp
+++ /dev/null
@@ -1,151 +0,0 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_VACPP_PPC_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_VACPP_PPC_HPP_INCLUDED
-
-//
-//  detail/sp_counted_base_vacpp_ppc.hpp - xlC(vacpp) on POWER
-//   based on: detail/sp_counted_base_w32.hpp
-//
-//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.
-//  Copyright 2004-2005 Peter Dimov
-//  Copyright 2006 Michael van der Westhuizen
-//  Copyright 2012 IBM Corp.
-//
-//  Distributed under the Boost Software License, Version 1.0. (See
-//  accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-//
-//  Lock-free algorithm by Alexander Terekhov
-//
-//  Thanks to Ben Hitchings for the #weak + (#shared != 0)
-//  formulation
-//
-
-#include <boost/detail/sp_typeinfo.hpp>
-
-extern "builtin" void __lwsync(void);
-extern "builtin" void __isync(void);
-extern "builtin" int __fetch_and_add(volatile int* addr, int val);
-extern "builtin" int __compare_and_swap(volatile int*, int*, int);
-
-namespace boost
-{
-
-namespace detail
-{
-
-inline void atomic_increment( int *pw )
-{
-   // ++*pw;
-   __lwsync();
-   __fetch_and_add(pw, 1);
-   __isync();
-} 
-
-inline int atomic_decrement( int *pw )
-{
-   // return --*pw;
-   __lwsync();
-   int originalValue = __fetch_and_add(pw, -1);
-   __isync();
-
-   return (originalValue - 1);
-}
-
-inline int atomic_conditional_increment( int *pw )
-{
-   // if( *pw != 0 ) ++*pw;
-   // return *pw;
-
-   __lwsync();
-   int v = *const_cast<volatile int*>(pw);
-   for (;;)
-   // loop until state is known
-   {
-      if (v == 0) return 0;
-      if (__compare_and_swap(pw, &v, v + 1))
-      {
-         __isync(); return (v + 1);
-      }
-   }
-}
-
-class sp_counted_base
-{
-private:
-
-    sp_counted_base( sp_counted_base const & );
-    sp_counted_base & operator= ( sp_counted_base const & );
-
-    int use_count_;        // #shared
-    int weak_count_;       // #weak + (#shared != 0)
-    char pad[64] __attribute__((__aligned__(64)));
-            // pad to prevent false sharing
-public:
-
-    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
-    {
-    }
-
-    virtual ~sp_counted_base() // nothrow
-    {
-    }
-
-    // dispose() is called when use_count_ drops to zero, to release
-    // the resources managed by *this.
-
-    virtual void dispose() = 0; // nothrow
-
-    // destroy() is called when weak_count_ drops to zero.
-
-    virtual void destroy() // nothrow
-    {
-        delete this;
-    }
-
-    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
-    virtual void * get_untyped_deleter() = 0;
-
-    void add_ref_copy()
-    {
-        atomic_increment( &use_count_ );
-    }
-
-    bool add_ref_lock() // true on success
-    {
-        return atomic_conditional_increment( &use_count_ ) != 0;
-    }
-
-    void release() // nothrow
-    {
-        if( atomic_decrement( &use_count_ ) == 0 )
-        {
-            dispose();
-            weak_release();
-        }
-    }
-
-    void weak_add_ref() // nothrow
-    {
-        atomic_increment( &weak_count_ );
-    }
-
-    void weak_release() // nothrow
-    {
-        if( atomic_decrement( &weak_count_ ) == 0 )
-        {
-            destroy();
-        }
-    }
-
-    long use_count() const // nothrow
-    {
-        return *const_cast<volatile int*>(&use_count_); 
-    }
-};
-
-} // namespace detail
-
-} // namespace boost
-
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_VACPP_PPC_HPP_INCLUDED
diff --git a/boost/smart_ptr/detail/sp_counted_base_w32.hpp b/boost/smart_ptr/detail/sp_counted_base_w32.hpp
deleted file mode 100644
index ff394dc..0000000
--- a/boost/smart_ptr/detail/sp_counted_base_w32.hpp
+++ /dev/null
@@ -1,131 +0,0 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_W32_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_W32_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  detail/sp_counted_base_w32.hpp
-//
-//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.
-//  Copyright 2004-2005 Peter Dimov
-//
-//  Distributed under the Boost Software License, Version 1.0. (See
-//  accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-//
-//  Lock-free algorithm by Alexander Terekhov
-//
-//  Thanks to Ben Hitchings for the #weak + (#shared != 0)
-//  formulation
-//
-
-#include <boost/detail/interlocked.hpp>
-#include <boost/detail/workaround.hpp>
-#include <boost/detail/sp_typeinfo.hpp>
-
-namespace boost
-{
-
-namespace detail
-{
-
-class sp_counted_base
-{
-private:
-
-    sp_counted_base( sp_counted_base const & );
-    sp_counted_base & operator= ( sp_counted_base const & );
-
-    long use_count_;        // #shared
-    long weak_count_;       // #weak + (#shared != 0)
-
-public:
-
-    sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
-    {
-    }
-
-    virtual ~sp_counted_base() // nothrow
-    {
-    }
-
-    // dispose() is called when use_count_ drops to zero, to release
-    // the resources managed by *this.
-
-    virtual void dispose() = 0; // nothrow
-
-    // destroy() is called when weak_count_ drops to zero.
-
-    virtual void destroy() // nothrow
-    {
-        delete this;
-    }
-
-    virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
-    virtual void * get_untyped_deleter() = 0;
-
-    void add_ref_copy()
-    {
-        BOOST_INTERLOCKED_INCREMENT( &use_count_ );
-    }
-
-    bool add_ref_lock() // true on success
-    {
-        for( ;; )
-        {
-            long tmp = static_cast< long const volatile& >( use_count_ );
-            if( tmp == 0 ) return false;
-
-#if defined( BOOST_MSVC ) && BOOST_WORKAROUND( BOOST_MSVC, == 1200 )
-
-            // work around a code generation bug
-
-            long tmp2 = tmp + 1;
-            if( BOOST_INTERLOCKED_COMPARE_EXCHANGE( &use_count_, tmp2, tmp ) == tmp2 - 1 ) return true;
-
-#else
-
-            if( BOOST_INTERLOCKED_COMPARE_EXCHANGE( &use_count_, tmp + 1, tmp ) == tmp ) return true;
-
-#endif
-        }
-    }
-
-    void release() // nothrow
-    {
-        if( BOOST_INTERLOCKED_DECREMENT( &use_count_ ) == 0 )
-        {
-            dispose();
-            weak_release();
-        }
-    }
-
-    void weak_add_ref() // nothrow
-    {
-        BOOST_INTERLOCKED_INCREMENT( &weak_count_ );
-    }
-
-    void weak_release() // nothrow
-    {
-        if( BOOST_INTERLOCKED_DECREMENT( &weak_count_ ) == 0 )
-        {
-            destroy();
-        }
-    }
-
-    long use_count() const // nothrow
-    {
-        return static_cast<long const volatile &>( use_count_ );
-    }
-};
-
-} // namespace detail
-
-} // namespace boost
-
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_W32_HPP_INCLUDED
diff --git a/boost/smart_ptr/detail/sp_counted_impl.hpp b/boost/smart_ptr/detail/sp_counted_impl.hpp
deleted file mode 100644
index d15cd3c..0000000
--- a/boost/smart_ptr/detail/sp_counted_impl.hpp
+++ /dev/null
@@ -1,254 +0,0 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_IMPL_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_IMPL_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  detail/sp_counted_impl.hpp
-//
-//  Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.
-//  Copyright 2004-2005 Peter Dimov
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-#include <boost/config.hpp>
-
-#if defined(BOOST_SP_USE_STD_ALLOCATOR) && defined(BOOST_SP_USE_QUICK_ALLOCATOR)
-# error BOOST_SP_USE_STD_ALLOCATOR and BOOST_SP_USE_QUICK_ALLOCATOR are incompatible.
-#endif
-
-#include <boost/checked_delete.hpp>
-#include <boost/smart_ptr/detail/sp_counted_base.hpp>
-
-#if defined(BOOST_SP_USE_QUICK_ALLOCATOR)
-#include <boost/smart_ptr/detail/quick_allocator.hpp>
-#endif
-
-#if defined(BOOST_SP_USE_STD_ALLOCATOR)
-#include <memory>           // std::allocator
-#endif
-
-#include <cstddef>          // std::size_t
-
-namespace boost
-{
-
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
-
-void sp_scalar_constructor_hook( void * px, std::size_t size, void * pn );
-void sp_scalar_destructor_hook( void * px, std::size_t size, void * pn );
-
-#endif
-
-namespace detail
-{
-
-template<class X> class sp_counted_impl_p: public sp_counted_base
-{
-private:
-
-    X * px_;
-
-    sp_counted_impl_p( sp_counted_impl_p const & );
-    sp_counted_impl_p & operator= ( sp_counted_impl_p const & );
-
-    typedef sp_counted_impl_p<X> this_type;
-
-public:
-
-    explicit sp_counted_impl_p( X * px ): px_( px )
-    {
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
-        boost::sp_scalar_constructor_hook( px, sizeof(X), this );
-#endif
-    }
-
-    virtual void dispose() // nothrow
-    {
-#if defined(BOOST_SP_ENABLE_DEBUG_HOOKS)
-        boost::sp_scalar_destructor_hook( px_, sizeof(X), this );
-#endif
-        boost::checked_delete( px_ );
-    }
-
-    virtual void * get_deleter( detail::sp_typeinfo const & )
-    {
-        return 0;
-    }
-
-    virtual void * get_untyped_deleter()
-    {
-        return 0;
-    }
-
-#if defined(BOOST_SP_USE_STD_ALLOCATOR)
-
-    void * operator new( std::size_t )
-    {
-        return std::allocator<this_type>().allocate( 1, static_cast<this_type *>(0) );
-    }
-
-    void operator delete( void * p )
-    {
-        std::allocator<this_type>().deallocate( static_cast<this_type *>(p), 1 );
-    }
-
-#endif
-
-#if defined(BOOST_SP_USE_QUICK_ALLOCATOR)
-
-    void * operator new( std::size_t )
-    {
-        return quick_allocator<this_type>::alloc();
-    }
-
-    void operator delete( void * p )
-    {
-        quick_allocator<this_type>::dealloc( p );
-    }
-
-#endif
-};
-
-//
-// Borland's Codeguard trips up over the -Vx- option here:
-//
-#ifdef __CODEGUARD__
-# pragma option push -Vx-
-#endif
-
-template<class P, class D> class sp_counted_impl_pd: public sp_counted_base
-{
-private:
-
-    P ptr; // copy constructor must not throw
-    D del; // copy constructor must not throw
-
-    sp_counted_impl_pd( sp_counted_impl_pd const & );
-    sp_counted_impl_pd & operator= ( sp_counted_impl_pd const & );
-
-    typedef sp_counted_impl_pd<P, D> this_type;
-
-public:
-
-    // pre: d(p) must not throw
-
-    sp_counted_impl_pd( P p, D & d ): ptr( p ), del( d )
-    {
-    }
-
-    sp_counted_impl_pd( P p ): ptr( p ), del()
-    {
-    }
-
-    virtual void dispose() // nothrow
-    {
-        del( ptr );
-    }
-
-    virtual void * get_deleter( detail::sp_typeinfo const & ti )
-    {
-        return ti == BOOST_SP_TYPEID(D)? &reinterpret_cast<char&>( del ): 0;
-    }
-
-    virtual void * get_untyped_deleter()
-    {
-        return &reinterpret_cast<char&>( del );
-    }
-
-#if defined(BOOST_SP_USE_STD_ALLOCATOR)
-
-    void * operator new( std::size_t )
-    {
-        return std::allocator<this_type>().allocate( 1, static_cast<this_type *>(0) );
-    }
-
-    void operator delete( void * p )
-    {
-        std::allocator<this_type>().deallocate( static_cast<this_type *>(p), 1 );
-    }
-
-#endif
-
-#if defined(BOOST_SP_USE_QUICK_ALLOCATOR)
-
-    void * operator new( std::size_t )
-    {
-        return quick_allocator<this_type>::alloc();
-    }
-
-    void operator delete( void * p )
-    {
-        quick_allocator<this_type>::dealloc( p );
-    }
-
-#endif
-};
-
-template<class P, class D, class A> class sp_counted_impl_pda: public sp_counted_base
-{
-private:
-
-    P p_; // copy constructor must not throw
-    D d_; // copy constructor must not throw
-    A a_; // copy constructor must not throw
-
-    sp_counted_impl_pda( sp_counted_impl_pda const & );
-    sp_counted_impl_pda & operator= ( sp_counted_impl_pda const & );
-
-    typedef sp_counted_impl_pda<P, D, A> this_type;
-
-public:
-
-    // pre: d( p ) must not throw
-
-    sp_counted_impl_pda( P p, D & d, A a ): p_( p ), d_( d ), a_( a )
-    {
-    }
-
-    sp_counted_impl_pda( P p, A a ): p_( p ), d_(), a_( a )
-    {
-    }
-
-    virtual void dispose() // nothrow
-    {
-        d_( p_ );
-    }
-
-    virtual void destroy() // nothrow
-    {
-        typedef typename A::template rebind< this_type >::other A2;
-
-        A2 a2( a_ );
-
-        this->~this_type();
-        a2.deallocate( this, 1 );
-    }
-
-    virtual void * get_deleter( detail::sp_typeinfo const & ti )
-    {
-        return ti == BOOST_SP_TYPEID( D )? &reinterpret_cast<char&>( d_ ): 0;
-    }
-
-    virtual void * get_untyped_deleter()
-    {
-        return &reinterpret_cast<char&>( d_ );
-    }
-};
-
-#ifdef __CODEGUARD__
-# pragma option pop
-#endif
-
-} // namespace detail
-
-} // namespace boost
-
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_IMPL_HPP_INCLUDED
diff --git a/boost/smart_ptr/detail/sp_has_sync.hpp b/boost/smart_ptr/detail/sp_has_sync.hpp
deleted file mode 100644
index 16de21d..0000000
--- a/boost/smart_ptr/detail/sp_has_sync.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SP_HAS_SYNC_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SP_HAS_SYNC_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  boost/smart_ptr/detail/sp_has_sync.hpp
-//
-//  Copyright (c) 2008, 2009 Peter Dimov
-//
-//  Distributed under the Boost Software License, Version 1.0.
-//  See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-//  Defines the BOOST_SP_HAS_SYNC macro if the __sync_* intrinsics
-//  are available.
-//
-
-#ifndef BOOST_SP_NO_SYNC
-
-#if defined( __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 )
-
-# define BOOST_SP_HAS_SYNC
-
-#elif defined( __IBMCPP__ ) && ( __IBMCPP__ >= 1210 )
-
-# define BOOST_SP_HAS_SYNC
-
-#elif defined( __GNUC__ ) && ( __GNUC__ * 100 + __GNUC_MINOR__ >= 401 )
-
-#define BOOST_SP_HAS_SYNC
-
-#if defined( __arm__ )  || defined( __armel__ )
-#undef BOOST_SP_HAS_SYNC
-#endif
-
-#if defined( __hppa ) || defined( __hppa__ )
-#undef BOOST_SP_HAS_SYNC
-#endif
-
-#if defined( __m68k__ )
-#undef BOOST_SP_HAS_SYNC
-#endif
-
-#if defined( __sh__ )
-#undef BOOST_SP_HAS_SYNC
-#endif
-
-#if defined( __sparc__ )
-#undef BOOST_SP_HAS_SYNC
-#endif
-
-#if defined( __INTEL_COMPILER ) && !defined( __ia64__ ) && ( __INTEL_COMPILER < 1110 )
-#undef BOOST_SP_HAS_SYNC
-#endif
-
-#if defined(__PATHSCALE__) && ((__PATHCC__ == 4) && (__PATHCC_MINOR__ < 9)) 
-#undef BOOST_SP_HAS_SYNC
-#endif
-
-#endif
-
-#endif // #ifndef BOOST_SP_NO_SYNC
-
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_HAS_SYNC_HPP_INCLUDED
diff --git a/boost/smart_ptr/detail/sp_nullptr_t.hpp b/boost/smart_ptr/detail/sp_nullptr_t.hpp
deleted file mode 100644
index ccbb123..0000000
--- a/boost/smart_ptr/detail/sp_nullptr_t.hpp
+++ /dev/null
@@ -1,45 +0,0 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SP_NULLPTR_T_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SP_NULLPTR_T_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//  detail/sp_nullptr_t.hpp
-//
-//  Copyright 2013 Peter Dimov
-//
-//  Distributed under the Boost Software License, Version 1.0.
-//  See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt
-
-#include <boost/config.hpp>
-#include <cstddef>
-
-#if !defined( BOOST_NO_CXX11_NULLPTR )
-
-namespace boost
-{
-
-namespace detail
-{
-
-#if defined( __clang__ ) && !defined( _LIBCPP_VERSION ) && !defined( BOOST_NO_CXX11_DECLTYPE )
-
-    typedef decltype(nullptr) sp_nullptr_t;
-
-#else
-
-    typedef std::nullptr_t sp_nullptr_t;
-
-#endif
-
-} // namespace detail
-
-} // namespace boost
-
-#endif // !defined( BOOST_NO_CXX11_NULLPTR )
-
-#endif  // #ifndef BOOST_SMART_PTR_DETAIL_SP_NULLPTR_T_HPP_INCLUDED
diff --git a/boost/smart_ptr/detail/spinlock.hpp b/boost/smart_ptr/detail/spinlock.hpp
deleted file mode 100644
index 88d7ad6..0000000
--- a/boost/smart_ptr/detail/spinlock.hpp
+++ /dev/null
@@ -1,56 +0,0 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SPINLOCK_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  boost/detail/spinlock.hpp
-//
-//  Copyright (c) 2008 Peter Dimov
-//
-//  Distributed under the Boost Software License, Version 1.0.
-//  See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-//  struct spinlock
-//  {
-//      void lock();
-//      bool try_lock();
-//      void unlock();
-//
-//      class scoped_lock;
-//  };
-//
-//  #define BOOST_DETAIL_SPINLOCK_INIT <unspecified>
-//
-
-#include <boost/config.hpp>
-#include <boost/smart_ptr/detail/sp_has_sync.hpp>
-
-#if defined( BOOST_SP_USE_PTHREADS )
-#  include <boost/smart_ptr/detail/spinlock_pt.hpp>
-
-#elif defined(__GNUC__) && defined( __arm__ ) && !defined( __thumb__ )
-#  include <boost/smart_ptr/detail/spinlock_gcc_arm.hpp>
-
-#elif defined( BOOST_SP_HAS_SYNC )
-#  include <boost/smart_ptr/detail/spinlock_sync.hpp>
-
-#elif defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
-#  include <boost/smart_ptr/detail/spinlock_w32.hpp>
-
-#elif defined(BOOST_HAS_PTHREADS)
-#  include <boost/smart_ptr/detail/spinlock_pt.hpp>
-
-#elif !defined(BOOST_HAS_THREADS)
-#  include <boost/smart_ptr/detail/spinlock_nt.hpp>
-
-#else
-#  error Unrecognized threading platform
-#endif
-
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_HPP_INCLUDED
diff --git a/boost/smart_ptr/detail/spinlock_gcc_arm.hpp b/boost/smart_ptr/detail/spinlock_gcc_arm.hpp
deleted file mode 100644
index 016796a..0000000
--- a/boost/smart_ptr/detail/spinlock_gcc_arm.hpp
+++ /dev/null
@@ -1,120 +0,0 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_GCC_ARM_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SPINLOCK_GCC_ARM_HPP_INCLUDED
-
-//
-//  Copyright (c) 2008, 2011 Peter Dimov
-//
-//  Distributed under the Boost Software License, Version 1.0.
-//  See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-
-#include <boost/smart_ptr/detail/yield_k.hpp>
-
-#if defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7EM__) || defined(__ARM_ARCH_7S__)
-
-# define BOOST_SP_ARM_BARRIER "dmb"
-# define BOOST_SP_ARM_HAS_LDREX
-
-#elif defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_6T2__)
-
-# define BOOST_SP_ARM_BARRIER "mcr p15, 0, r0, c7, c10, 5"
-# define BOOST_SP_ARM_HAS_LDREX
-
-#else
-
-# define BOOST_SP_ARM_BARRIER ""
-
-#endif
-
-namespace boost
-{
-
-namespace detail
-{
-
-class spinlock
-{
-public:
-
-    int v_;
-
-public:
-
-    bool try_lock()
-    {
-        int r;
-
-#ifdef BOOST_SP_ARM_HAS_LDREX
-
-        __asm__ __volatile__(
-            "ldrex %0, [%2]; \n"
-            "cmp %0, %1; \n"
-            "strexne %0, %1, [%2]; \n"
-            BOOST_SP_ARM_BARRIER :
-            "=&r"( r ): // outputs
-            "r"( 1 ), "r"( &v_ ): // inputs
-            "memory", "cc" );
-
-#else
-
-        __asm__ __volatile__(
-            "swp %0, %1, [%2];\n"
-            BOOST_SP_ARM_BARRIER :
-            "=&r"( r ): // outputs
-            "r"( 1 ), "r"( &v_ ): // inputs
-            "memory", "cc" );
-
-#endif
-
-        return r == 0;
-    }
-
-    void lock()
-    {
-        for( unsigned k = 0; !try_lock(); ++k )
-        {
-            boost::detail::yield( k );
-        }
-    }
-
-    void unlock()
-    {
-        __asm__ __volatile__( BOOST_SP_ARM_BARRIER ::: "memory" );
-        *const_cast< int volatile* >( &v_ ) = 0;
-    }
-
-public:
-
-    class scoped_lock
-    {
-    private:
-
-        spinlock & sp_;
-
-        scoped_lock( scoped_lock const & );
-        scoped_lock & operator=( scoped_lock const & );
-
-    public:
-
-        explicit scoped_lock( spinlock & sp ): sp_( sp )
-        {
-            sp.lock();
-        }
-
-        ~scoped_lock()
-        {
-            sp_.unlock();
-        }
-    };
-};
-
-} // namespace detail
-} // namespace boost
-
-#define BOOST_DETAIL_SPINLOCK_INIT {0}
-
-#undef BOOST_SP_ARM_BARRIER
-#undef BOOST_SP_ARM_HAS_LDREX
-
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_GCC_ARM_HPP_INCLUDED
diff --git a/boost/smart_ptr/detail/spinlock_nt.hpp b/boost/smart_ptr/detail/spinlock_nt.hpp
deleted file mode 100644
index 1f399d0..0000000
--- a/boost/smart_ptr/detail/spinlock_nt.hpp
+++ /dev/null
@@ -1,89 +0,0 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_NT_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SPINLOCK_NT_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  Copyright (c) 2008 Peter Dimov
-//
-//  Distributed under the Boost Software License, Version 1.0.
-//  See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-
-#include <boost/assert.hpp>
-
-namespace boost
-{
-
-namespace detail
-{
-
-class spinlock
-{
-public:
-
-    bool locked_;
-
-public:
-
-    inline bool try_lock()
-    {
-        if( locked_ )
-        {
-            return false;
-        }
-        else
-        {
-            locked_ = true;
-            return true;
-        }
-    }
-
-    inline void lock()
-    {
-        BOOST_ASSERT( !locked_ );
-        locked_ = true;
-    }
-
-    inline void unlock()
-    {
-        BOOST_ASSERT( locked_ );
-        locked_ = false;
-    }
-
-public:
-
-    class scoped_lock
-    {
-    private:
-
-        spinlock & sp_;
-
-        scoped_lock( scoped_lock const & );
-        scoped_lock & operator=( scoped_lock const & );
-
-    public:
-
-        explicit scoped_lock( spinlock & sp ): sp_( sp )
-        {
-            sp.lock();
-        }
-
-        ~scoped_lock()
-        {
-            sp_.unlock();
-        }
-    };
-};
-
-} // namespace detail
-} // namespace boost
-
-#define BOOST_DETAIL_SPINLOCK_INIT { false }
-
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_NT_HPP_INCLUDED
diff --git a/boost/smart_ptr/detail/spinlock_pool.hpp b/boost/smart_ptr/detail/spinlock_pool.hpp
deleted file mode 100644
index f09d5c6..0000000
--- a/boost/smart_ptr/detail/spinlock_pool.hpp
+++ /dev/null
@@ -1,91 +0,0 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_POOL_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SPINLOCK_POOL_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  boost/detail/spinlock_pool.hpp
-//
-//  Copyright (c) 2008 Peter Dimov
-//
-//  Distributed under the Boost Software License, Version 1.0.
-//  See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-//  spinlock_pool<0> is reserved for atomic<>, when/if it arrives
-//  spinlock_pool<1> is reserved for shared_ptr reference counts
-//  spinlock_pool<2> is reserved for shared_ptr atomic access
-//
-
-#include <boost/config.hpp>
-#include <boost/smart_ptr/detail/spinlock.hpp>
-#include <cstddef>
-
-namespace boost
-{
-
-namespace detail
-{
-
-template< int I > class spinlock_pool
-{
-private:
-
-    static spinlock pool_[ 41 ];
-
-public:
-
-    static spinlock & spinlock_for( void const * pv )
-    {
-#if defined(__VMS) && __INITIAL_POINTER_SIZE == 64  
-        std::size_t i = reinterpret_cast< unsigned long long >( pv ) % 41;
-#else  
-        std::size_t i = reinterpret_cast< std::size_t >( pv ) % 41;
-#endif  
-        return pool_[ i ];
-    }
-
-    class scoped_lock
-    {
-    private:
-
-        spinlock & sp_;
-
-        scoped_lock( scoped_lock const & );
-        scoped_lock & operator=( scoped_lock const & );
-
-    public:
-
-        explicit scoped_lock( void const * pv ): sp_( spinlock_for( pv ) )
-        {
-            sp_.lock();
-        }
-
-        ~scoped_lock()
-        {
-            sp_.unlock();
-        }
-    };
-};
-
-template< int I > spinlock spinlock_pool< I >::pool_[ 41 ] =
-{
-    BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, 
-    BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, 
-    BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, 
-    BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, 
-    BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, 
-    BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, 
-    BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, 
-    BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, BOOST_DETAIL_SPINLOCK_INIT, 
-    BOOST_DETAIL_SPINLOCK_INIT
-};
-
-} // namespace detail
-} // namespace boost
-
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_POOL_HPP_INCLUDED
diff --git a/boost/smart_ptr/detail/spinlock_pt.hpp b/boost/smart_ptr/detail/spinlock_pt.hpp
deleted file mode 100644
index f9cabfc..0000000
--- a/boost/smart_ptr/detail/spinlock_pt.hpp
+++ /dev/null
@@ -1,79 +0,0 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_PT_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SPINLOCK_PT_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  Copyright (c) 2008 Peter Dimov
-//
-//  Distributed under the Boost Software License, Version 1.0.
-//  See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-
-#include <pthread.h>
-
-namespace boost
-{
-
-namespace detail
-{
-
-class spinlock
-{
-public:
-
-    pthread_mutex_t v_;
-
-public:
-
-    bool try_lock()
-    {
-        return pthread_mutex_trylock( &v_ ) == 0;
-    }
-
-    void lock()
-    {
-        pthread_mutex_lock( &v_ );
-    }
-
-    void unlock()
-    {
-        pthread_mutex_unlock( &v_ );
-    }
-
-public:
-
-    class scoped_lock
-    {
-    private:
-
-        spinlock & sp_;
-
-        scoped_lock( scoped_lock const & );
-        scoped_lock & operator=( scoped_lock const & );
-
-    public:
-
-        explicit scoped_lock( spinlock & sp ): sp_( sp )
-        {
-            sp.lock();
-        }
-
-        ~scoped_lock()
-        {
-            sp_.unlock();
-        }
-    };
-};
-
-} // namespace detail
-} // namespace boost
-
-#define BOOST_DETAIL_SPINLOCK_INIT { PTHREAD_MUTEX_INITIALIZER }
-
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_PT_HPP_INCLUDED
diff --git a/boost/smart_ptr/detail/spinlock_sync.hpp b/boost/smart_ptr/detail/spinlock_sync.hpp
deleted file mode 100644
index a7145c5..0000000
--- a/boost/smart_ptr/detail/spinlock_sync.hpp
+++ /dev/null
@@ -1,87 +0,0 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_SYNC_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SPINLOCK_SYNC_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  Copyright (c) 2008 Peter Dimov
-//
-//  Distributed under the Boost Software License, Version 1.0.
-//  See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-
-#include <boost/smart_ptr/detail/yield_k.hpp>
-
-#if defined( __ia64__ ) && defined( __INTEL_COMPILER )
-# include <ia64intrin.h>
-#endif
-
-namespace boost
-{
-
-namespace detail
-{
-
-class spinlock
-{
-public:
-
-    int v_;
-
-public:
-
-    bool try_lock()
-    {
-        int r = __sync_lock_test_and_set( &v_, 1 );
-        return r == 0;
-    }
-
-    void lock()
-    {
-        for( unsigned k = 0; !try_lock(); ++k )
-        {
-            boost::detail::yield( k );
-        }
-    }
-
-    void unlock()
-    {
-        __sync_lock_release( &v_ );
-    }
-
-public:
-
-    class scoped_lock
-    {
-    private:
-
-        spinlock & sp_;
-
-        scoped_lock( scoped_lock const & );
-        scoped_lock & operator=( scoped_lock const & );
-
-    public:
-
-        explicit scoped_lock( spinlock & sp ): sp_( sp )
-        {
-            sp.lock();
-        }
-
-        ~scoped_lock()
-        {
-            sp_.unlock();
-        }
-    };
-};
-
-} // namespace detail
-} // namespace boost
-
-#define BOOST_DETAIL_SPINLOCK_INIT {0}
-
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_SYNC_HPP_INCLUDED
diff --git a/boost/smart_ptr/detail/spinlock_w32.hpp b/boost/smart_ptr/detail/spinlock_w32.hpp
deleted file mode 100644
index fb97629..0000000
--- a/boost/smart_ptr/detail/spinlock_w32.hpp
+++ /dev/null
@@ -1,113 +0,0 @@
-#ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_W32_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_SPINLOCK_W32_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  Copyright (c) 2008 Peter Dimov
-//
-//  Distributed under the Boost Software License, Version 1.0.
-//  See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-
-#include <boost/detail/interlocked.hpp>
-#include <boost/smart_ptr/detail/yield_k.hpp>
-
-// BOOST_COMPILER_FENCE
-
-#if defined(__INTEL_COMPILER)
-
-#define BOOST_COMPILER_FENCE __memory_barrier();
-
-#elif defined( _MSC_VER ) && _MSC_VER >= 1310
-
-extern "C" void _ReadWriteBarrier();
-#pragma intrinsic( _ReadWriteBarrier )
-
-#define BOOST_COMPILER_FENCE _ReadWriteBarrier();
-
-#elif defined(__GNUC__)
-
-#define BOOST_COMPILER_FENCE __asm__ __volatile__( "" : : : "memory" );
-
-#else
-
-#define BOOST_COMPILER_FENCE
-
-#endif
-
-//
-
-namespace boost
-{
-
-namespace detail
-{
-
-class spinlock
-{
-public:
-
-    long v_;
-
-public:
-
-    bool try_lock()
-    {
-        long r = BOOST_INTERLOCKED_EXCHANGE( &v_, 1 );
-
-        BOOST_COMPILER_FENCE
-
-        return r == 0;
-    }
-
-    void lock()
-    {
-        for( unsigned k = 0; !try_lock(); ++k )
-        {
-            boost::detail::yield( k );
-        }
-    }
-
-    void unlock()
-    {
-        BOOST_COMPILER_FENCE
-        *const_cast< long volatile* >( &v_ ) = 0;
-    }
-
-public:
-
-    class scoped_lock
-    {
-    private:
-
-        spinlock & sp_;
-
-        scoped_lock( scoped_lock const & );
-        scoped_lock & operator=( scoped_lock const & );
-
-    public:
-
-        explicit scoped_lock( spinlock & sp ): sp_( sp )
-        {
-            sp.lock();
-        }
-
-        ~scoped_lock()
-        {
-            sp_.unlock();
-        }
-    };
-};
-
-} // namespace detail
-} // namespace boost
-
-#define BOOST_DETAIL_SPINLOCK_INIT {0}
-
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_SPINLOCK_W32_HPP_INCLUDED
diff --git a/boost/smart_ptr/detail/yield_k.hpp b/boost/smart_ptr/detail/yield_k.hpp
deleted file mode 100644
index 14af524..0000000
--- a/boost/smart_ptr/detail/yield_k.hpp
+++ /dev/null
@@ -1,148 +0,0 @@
-#ifndef BOOST_SMART_PTR_DETAIL_YIELD_K_HPP_INCLUDED
-#define BOOST_SMART_PTR_DETAIL_YIELD_K_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  yield_k.hpp
-//
-//  Copyright (c) 2008 Peter Dimov
-//
-//  void yield( unsigned k );
-//
-//  Typical use:
-//
-//  for( unsigned k = 0; !try_lock(); ++k ) yield( k );
-//
-//  Distributed under the Boost Software License, Version 1.0.
-//  See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt
-//
-
-#include <boost/config.hpp>
-
-// BOOST_SMT_PAUSE
-
-#if defined(_MSC_VER) && _MSC_VER >= 1310 && ( defined(_M_IX86) || defined(_M_X64) )
-
-extern "C" void _mm_pause();
-
-#define BOOST_SMT_PAUSE _mm_pause();
-
-#elif defined(__GNUC__) && ( defined(__i386__) || defined(__x86_64__) )
-
-#define BOOST_SMT_PAUSE __asm__ __volatile__( "rep; nop" : : : "memory" );
-
-#endif
-
-//
-
-#if defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ ) || defined( __CYGWIN__ )
-
-#if defined( BOOST_USE_WINDOWS_H )
-# include <windows.h>
-#endif
-
-namespace boost
-{
-
-namespace detail
-{
-
-#if !defined( BOOST_USE_WINDOWS_H )
-  extern "C" void __stdcall Sleep( unsigned long ms );
-#endif
-
-inline void yield( unsigned k )
-{
-    if( k < 4 )
-    {
-    }
-#if defined( BOOST_SMT_PAUSE )
-    else if( k < 16 )
-    {
-        BOOST_SMT_PAUSE
-    }
-#endif
-    else if( k < 32 )
-    {
-        Sleep( 0 );
-    }
-    else
-    {
-        Sleep( 1 );
-    }
-}
-
-} // namespace detail
-
-} // namespace boost
-
-#elif defined( BOOST_HAS_PTHREADS )
-
-#include <sched.h>
-#include <time.h>
-
-namespace boost
-{
-
-namespace detail
-{
-
-inline void yield( unsigned k )
-{
-    if( k < 4 )
-    {
-    }
-#if defined( BOOST_SMT_PAUSE )
-    else if( k < 16 )
-    {
-        BOOST_SMT_PAUSE
-    }
-#endif
-    else if( k < 32 || k & 1 )
-    {
-        sched_yield();
-    }
-    else
-    {
-        // g++ -Wextra warns on {} or {0}
-        struct timespec rqtp = { 0, 0 };
-
-        // POSIX says that timespec has tv_sec and tv_nsec
-        // But it doesn't guarantee order or placement
-
-        rqtp.tv_sec = 0;
-        rqtp.tv_nsec = 1000;
-
-        nanosleep( &rqtp, 0 );
-    }
-}
-
-} // namespace detail
-
-} // namespace boost
-
-#else
-
-namespace boost
-{
-
-namespace detail
-{
-
-inline void yield( unsigned )
-{
-}
-
-} // namespace detail
-
-} // namespace boost
-
-#endif
-
-#endif // #ifndef BOOST_SMART_PTR_DETAIL_YIELD_K_HPP_INCLUDED
diff --git a/boost/smart_ptr/shared_ptr.hpp b/boost/smart_ptr/shared_ptr.hpp
deleted file mode 100644
index 9259ca0..0000000
--- a/boost/smart_ptr/shared_ptr.hpp
+++ /dev/null
@@ -1,1035 +0,0 @@
-#ifndef BOOST_SMART_PTR_SHARED_PTR_HPP_INCLUDED
-#define BOOST_SMART_PTR_SHARED_PTR_HPP_INCLUDED
-
-//
-//  shared_ptr.hpp
-//
-//  (C) Copyright Greg Colvin and Beman Dawes 1998, 1999.
-//  Copyright (c) 2001-2008 Peter Dimov
-//
-//  Distributed under the Boost Software License, Version 1.0. (See
-//  accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-//  See http://www.boost.org/libs/smart_ptr/shared_ptr.htm for documentation.
-//
-
-#include <boost/config.hpp>   // for broken compiler workarounds
-
-#if defined(BOOST_NO_MEMBER_TEMPLATES) && !defined(BOOST_MSVC6_MEMBER_TEMPLATES)
-#include <boost/smart_ptr/detail/shared_ptr_nmt.hpp>
-#else
-
-// In order to avoid circular dependencies with Boost.TR1
-// we make sure that our include of <memory> doesn't try to
-// pull in the TR1 headers: that's why we use this header 
-// rather than including <memory> directly:
-#include <boost/config/no_tr1/memory.hpp>  // std::auto_ptr
-
-#include <boost/assert.hpp>
-#include <boost/checked_delete.hpp>
-#include <boost/throw_exception.hpp>
-#include <boost/smart_ptr/detail/shared_count.hpp>
-#include <boost/detail/workaround.hpp>
-#include <boost/smart_ptr/detail/sp_convertible.hpp>
-#include <boost/smart_ptr/detail/sp_nullptr_t.hpp>
-
-#if !defined(BOOST_SP_NO_ATOMIC_ACCESS)
-#include <boost/smart_ptr/detail/spinlock_pool.hpp>
-#include <boost/memory_order.hpp>
-#endif
-
-#include <algorithm>            // for std::swap
-#include <functional>           // for std::less
-#include <typeinfo>             // for std::bad_cast
-#include <cstddef>              // for std::size_t
-
-#if !defined(BOOST_NO_IOSTREAM)
-#if !defined(BOOST_NO_IOSFWD)
-#include <iosfwd>               // for std::basic_ostream
-#else
-#include <ostream>
-#endif
-#endif
-
-namespace boost
-{
-
-template<class T> class shared_ptr;
-template<class T> class weak_ptr;
-template<class T> class enable_shared_from_this;
-class enable_shared_from_raw;
-
-namespace detail
-{
-
-// sp_element, element_type
-
-template< class T > struct sp_element
-{
-    typedef T type;
-};
-
-#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
-
-template< class T > struct sp_element< T[] >
-{
-    typedef T type;
-};
-
-#if !defined( __BORLANDC__ ) || !BOOST_WORKAROUND( __BORLANDC__, < 0x600 )
-
-template< class T, std::size_t N > struct sp_element< T[N] >
-{
-    typedef T type;
-};
-
-#endif
-
-#endif // !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
-
-// sp_dereference, return type of operator*
-
-template< class T > struct sp_dereference
-{
-    typedef T & type;
-};
-
-template<> struct sp_dereference< void >
-{
-    typedef void type;
-};
-
-#if !defined(BOOST_NO_CV_VOID_SPECIALIZATIONS)
-
-template<> struct sp_dereference< void const >
-{
-    typedef void type;
-};
-
-template<> struct sp_dereference< void volatile >
-{
-    typedef void type;
-};
-
-template<> struct sp_dereference< void const volatile >
-{
-    typedef void type;
-};
-
-#endif // !defined(BOOST_NO_CV_VOID_SPECIALIZATIONS)
-
-#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
-
-template< class T > struct sp_dereference< T[] >
-{
-    typedef void type;
-};
-
-#if !defined( __BORLANDC__ ) || !BOOST_WORKAROUND( __BORLANDC__, < 0x600 )
-
-template< class T, std::size_t N > struct sp_dereference< T[N] >
-{
-    typedef void type;
-};
-
-#endif
-
-#endif // !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
-
-// sp_member_access, return type of operator->
-
-template< class T > struct sp_member_access
-{
-    typedef T * type;
-};
-
-#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
-
-template< class T > struct sp_member_access< T[] >
-{
-    typedef void type;
-};
-
-#if !defined( __BORLANDC__ ) || !BOOST_WORKAROUND( __BORLANDC__, < 0x600 )
-
-template< class T, std::size_t N > struct sp_member_access< T[N] >
-{
-    typedef void type;
-};
-
-#endif
-
-#endif // !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
-
-// sp_array_access, return type of operator[]
-
-template< class T > struct sp_array_access
-{
-    typedef void type;
-};
-
-#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
-
-template< class T > struct sp_array_access< T[] >
-{
-    typedef T & type;
-};
-
-#if !defined( __BORLANDC__ ) || !BOOST_WORKAROUND( __BORLANDC__, < 0x600 )
-
-template< class T, std::size_t N > struct sp_array_access< T[N] >
-{
-    typedef T & type;
-};
-
-#endif
-
-#endif // !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
-
-// sp_extent, for operator[] index check
-
-template< class T > struct sp_extent
-{
-    enum _vt { value = 0 };
-};
-
-#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
-
-template< class T, std::size_t N > struct sp_extent< T[N] >
-{
-    enum _vt { value = N };
-};
-
-#endif // !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
-
-// enable_shared_from_this support
-
-template< class X, class Y, class T > inline void sp_enable_shared_from_this( boost::shared_ptr<X> const * ppx, Y const * py, boost::enable_shared_from_this< T > const * pe )
-{
-    if( pe != 0 )
-    {
-        pe->_internal_accept_owner( ppx, const_cast< Y* >( py ) );
-    }
-}
-
-template< class X, class Y > inline void sp_enable_shared_from_this( boost::shared_ptr<X> * ppx, Y const * py, boost::enable_shared_from_raw const * pe );
-
-#ifdef _MANAGED
-
-// Avoid C4793, ... causes native code generation
-
-struct sp_any_pointer
-{
-    template<class T> sp_any_pointer( T* ) {}
-};
-
-inline void sp_enable_shared_from_this( sp_any_pointer, sp_any_pointer, sp_any_pointer )
-{
-}
-
-#else // _MANAGED
-
-inline void sp_enable_shared_from_this( ... )
-{
-}
-
-#endif // _MANAGED
-
-#if !defined( BOOST_NO_SFINAE ) && !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) && !defined( BOOST_NO_AUTO_PTR )
-
-// rvalue auto_ptr support based on a technique by Dave Abrahams
-
-template< class T, class R > struct sp_enable_if_auto_ptr
-{
-};
-
-template< class T, class R > struct sp_enable_if_auto_ptr< std::auto_ptr< T >, R >
-{
-    typedef R type;
-}; 
-
-#endif
-
-// sp_assert_convertible
-
-template< class Y, class T > inline void sp_assert_convertible()
-{
-#if !defined( BOOST_SP_NO_SP_CONVERTIBLE )
-
-    // static_assert( sp_convertible< Y, T >::value );
-    typedef char tmp[ sp_convertible< Y, T >::value? 1: -1 ];
-    (void)sizeof( tmp );
-
-#else
-
-    T* p = static_cast< Y* >( 0 );
-    (void)p;
-
-#endif
-}
-
-// pointer constructor helper
-
-template< class T, class Y > inline void sp_pointer_construct( boost::shared_ptr< T > * ppx, Y * p, boost::detail::shared_count & pn )
-{
-    boost::detail::shared_count( p ).swap( pn );
-    boost::detail::sp_enable_shared_from_this( ppx, p, p );
-}
-
-#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
-
-template< class T, class Y > inline void sp_pointer_construct( boost::shared_ptr< T[] > * /*ppx*/, Y * p, boost::detail::shared_count & pn )
-{
-    sp_assert_convertible< Y[], T[] >();
-    boost::detail::shared_count( p, boost::checked_array_deleter< T >() ).swap( pn );
-}
-
-template< class T, std::size_t N, class Y > inline void sp_pointer_construct( boost::shared_ptr< T[N] > * /*ppx*/, Y * p, boost::detail::shared_count & pn )
-{
-    sp_assert_convertible< Y[N], T[N] >();
-    boost::detail::shared_count( p, boost::checked_array_deleter< T >() ).swap( pn );
-}
-
-#endif // !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
-
-// deleter constructor helper
-
-template< class T, class Y > inline void sp_deleter_construct( boost::shared_ptr< T > * ppx, Y * p )
-{
-    boost::detail::sp_enable_shared_from_this( ppx, p, p );
-}
-
-#if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
-
-template< class T, class Y > inline void sp_deleter_construct( boost::shared_ptr< T[] > * /*ppx*/, Y * /*p*/ )
-{
-    sp_assert_convertible< Y[], T[] >();
-}
-
-template< class T, std::size_t N, class Y > inline void sp_deleter_construct( boost::shared_ptr< T[N] > * /*ppx*/, Y * /*p*/ )
-{
-    sp_assert_convertible< Y[N], T[N] >();
-}
-
-#endif // !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
-
-} // namespace detail
-
-
-//
-//  shared_ptr
-//
-//  An enhanced relative of scoped_ptr with reference counted copy semantics.
-//  The object pointed to is deleted when the last shared_ptr pointing to it
-//  is destroyed or reset.
-//
-
-template<class T> class shared_ptr
-{
-private:
-
-    // Borland 5.5.1 specific workaround
-    typedef shared_ptr<T> this_type;
-
-public:
-
-    typedef typename boost::detail::sp_element< T >::type element_type;
-
-    shared_ptr() BOOST_NOEXCEPT : px( 0 ), pn() // never throws in 1.30+
-    {
-    }
-
-#if !defined( BOOST_NO_CXX11_NULLPTR )
-
-    shared_ptr( boost::detail::sp_nullptr_t ) BOOST_NOEXCEPT : px( 0 ), pn() // never throws
-    {
-    }
-
-#endif
-
-    template<class Y>
-    explicit shared_ptr( Y * p ): px( p ), pn() // Y must be complete
-    {
-        boost::detail::sp_pointer_construct( this, p, pn );
-    }
-
-    //
-    // Requirements: D's copy constructor must not throw
-    //
-    // shared_ptr will release p by calling d(p)
-    //
-
-    template<class Y, class D> shared_ptr( Y * p, D d ): px( p ), pn( p, d )
-    {
-        boost::detail::sp_deleter_construct( this, p );
-    }
-
-#if !defined( BOOST_NO_CXX11_NULLPTR )
-
-    template<class D> shared_ptr( boost::detail::sp_nullptr_t p, D d ): px( p ), pn( p, d )
-    {
-    }
-
-#endif
-
-    // As above, but with allocator. A's copy constructor shall not throw.
-
-    template<class Y, class D, class A> shared_ptr( Y * p, D d, A a ): px( p ), pn( p, d, a )
-    {
-        boost::detail::sp_deleter_construct( this, p );
-    }
-
-#if !defined( BOOST_NO_CXX11_NULLPTR )
-
-    template<class D, class A> shared_ptr( boost::detail::sp_nullptr_t p, D d, A a ): px( p ), pn( p, d, a )
-    {
-    }
-
-#endif
-
-//  generated copy constructor, destructor are fine...
-
-#if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES )
-
-// ... except in C++0x, move disables the implicit copy
-
-    shared_ptr( shared_ptr const & r ) BOOST_NOEXCEPT : px( r.px ), pn( r.pn )
-    {
-    }
-
-#endif
-
-    template<class Y>
-    explicit shared_ptr( weak_ptr<Y> const & r ): pn( r.pn ) // may throw
-    {
-        boost::detail::sp_assert_convertible< Y, T >();
-
-        // it is now safe to copy r.px, as pn(r.pn) did not throw
-        px = r.px;
-    }
-
-    template<class Y>
-    shared_ptr( weak_ptr<Y> const & r, boost::detail::sp_nothrow_tag )
-    BOOST_NOEXCEPT : px( 0 ), pn( r.pn, boost::detail::sp_nothrow_tag() )
-    {
-        if( !pn.empty() )
-        {
-            px = r.px;
-        }
-    }
-
-    template<class Y>
-#if !defined( BOOST_SP_NO_SP_CONVERTIBLE )
-
-    shared_ptr( shared_ptr<Y> const & r, typename boost::detail::sp_enable_if_convertible<Y,T>::type = boost::detail::sp_empty() )
-
-#else
-
-    shared_ptr( shared_ptr<Y> const & r )
-
-#endif
-    BOOST_NOEXCEPT : px( r.px ), pn( r.pn )
-    {
-        boost::detail::sp_assert_convertible< Y, T >();
-    }
-
-    // aliasing
-    template< class Y >
-    shared_ptr( shared_ptr<Y> const & r, element_type * p ) BOOST_NOEXCEPT : px( p ), pn( r.pn )
-    {
-    }
-
-#ifndef BOOST_NO_AUTO_PTR
-
-    template<class Y>
-    explicit shared_ptr( std::auto_ptr<Y> & r ): px(r.get()), pn()
-    {
-        boost::detail::sp_assert_convertible< Y, T >();
-
-        Y * tmp = r.get();
-        pn = boost::detail::shared_count( r );
-
-        boost::detail::sp_deleter_construct( this, tmp );
-    }
-
-#if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES )
-
-    template<class Y>
-    shared_ptr( std::auto_ptr<Y> && r ): px(r.get()), pn()
-    {
-        boost::detail::sp_assert_convertible< Y, T >();
-
-        Y * tmp = r.get();
-        pn = boost::detail::shared_count( r );
-
-        boost::detail::sp_deleter_construct( this, tmp );
-    }
-
-#elif !defined( BOOST_NO_SFINAE ) && !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
-
-    template<class Ap>
-    explicit shared_ptr( Ap r, typename boost::detail::sp_enable_if_auto_ptr<Ap, int>::type = 0 ): px( r.get() ), pn()
-    {
-        typedef typename Ap::element_type Y;
-
-        boost::detail::sp_assert_convertible< Y, T >();
-
-        Y * tmp = r.get();
-        pn = boost::detail::shared_count( r );
-
-        boost::detail::sp_deleter_construct( this, tmp );
-    }
-
-#endif // BOOST_NO_SFINAE, BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#endif // BOOST_NO_AUTO_PTR
-
-#if !defined( BOOST_NO_CXX11_SMART_PTR ) && !defined( BOOST_NO_CXX11_RVALUE_REFERENCES )
-
-    template< class Y, class D >
-    shared_ptr( std::unique_ptr< Y, D > && r ): px( r.get() ), pn()
-    {
-        boost::detail::sp_assert_convertible< Y, T >();
-
-        typename std::unique_ptr< Y, D >::pointer tmp = r.get();
-        pn = boost::detail::shared_count( r );
-
-        boost::detail::sp_deleter_construct( this, tmp );
-    }
-
-#endif
-
-    // assignment
-
-    shared_ptr & operator=( shared_ptr const & r ) BOOST_NOEXCEPT
-    {
-        this_type(r).swap(*this);
-        return *this;
-    }
-
-#if !defined(BOOST_MSVC) || (BOOST_MSVC >= 1400)
-
-    template<class Y>
-    shared_ptr & operator=(shared_ptr<Y> const & r) BOOST_NOEXCEPT
-    {
-        this_type(r).swap(*this);
-        return *this;
-    }
-
-#endif
-
-#ifndef BOOST_NO_AUTO_PTR
-
-    template<class Y>
-    shared_ptr & operator=( std::auto_ptr<Y> & r )
-    {
-        this_type( r ).swap( *this );
-        return *this;
-    }
-
-#if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES )
-
-    template<class Y>
-    shared_ptr & operator=( std::auto_ptr<Y> && r )
-    {
-        this_type( static_cast< std::auto_ptr<Y> && >( r ) ).swap( *this );
-        return *this;
-    }
-
-#elif !defined( BOOST_NO_SFINAE ) && !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
-
-    template<class Ap>
-    typename boost::detail::sp_enable_if_auto_ptr< Ap, shared_ptr & >::type operator=( Ap r )
-    {
-        this_type( r ).swap( *this );
-        return *this;
-    }
-
-#endif // BOOST_NO_SFINAE, BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#endif // BOOST_NO_AUTO_PTR
-
-#if !defined( BOOST_NO_CXX11_SMART_PTR ) && !defined( BOOST_NO_CXX11_RVALUE_REFERENCES )
-
-    template<class Y, class D>
-    shared_ptr & operator=( std::unique_ptr<Y, D> && r )
-    {
-        this_type( static_cast< std::unique_ptr<Y, D> && >( r ) ).swap(*this);
-        return *this;
-    }
-
-#endif
-
-// Move support
-
-#if !defined( BOOST_NO_CXX11_RVALUE_REFERENCES )
-
-    shared_ptr( shared_ptr && r ) BOOST_NOEXCEPT : px( r.px ), pn()
-    {
-        pn.swap( r.pn );
-        r.px = 0;
-    }
-
-    template<class Y>
-#if !defined( BOOST_SP_NO_SP_CONVERTIBLE )
-
-    shared_ptr( shared_ptr<Y> && r, typename boost::detail::sp_enable_if_convertible<Y,T>::type = boost::detail::sp_empty() )
-
-#else
-
-    shared_ptr( shared_ptr<Y> && r )
-
-#endif
-    BOOST_NOEXCEPT : px( r.px ), pn()
-    {
-        boost::detail::sp_assert_convertible< Y, T >();
-
-        pn.swap( r.pn );
-        r.px = 0;
-    }
-
-    shared_ptr & operator=( shared_ptr && r ) BOOST_NOEXCEPT
-    {
-        this_type( static_cast< shared_ptr && >( r ) ).swap( *this );
-        return *this;
-    }
-
-    template<class Y>
-    shared_ptr & operator=( shared_ptr<Y> && r ) BOOST_NOEXCEPT
-    {
-        this_type( static_cast< shared_ptr<Y> && >( r ) ).swap( *this );
-        return *this;
-    }
-
-#endif
-
-#if !defined( BOOST_NO_CXX11_NULLPTR )
-
-    shared_ptr & operator=( boost::detail::sp_nullptr_t ) BOOST_NOEXCEPT // never throws
-    {
-        this_type().swap(*this);
-        return *this;
-    }
-
-#endif
-
-    void reset() BOOST_NOEXCEPT // never throws in 1.30+
-    {
-        this_type().swap(*this);
-    }
-
-    template<class Y> void reset( Y * p ) // Y must be complete
-    {
-        BOOST_ASSERT( p == 0 || p != px ); // catch self-reset errors
-        this_type( p ).swap( *this );
-    }
-
-    template<class Y, class D> void reset( Y * p, D d )
-    {
-        this_type( p, d ).swap( *this );
-    }
-
-    template<class Y, class D, class A> void reset( Y * p, D d, A a )
-    {
-        this_type( p, d, a ).swap( *this );
-    }
-
-    template<class Y> void reset( shared_ptr<Y> const & r, element_type * p )
-    {
-        this_type( r, p ).swap( *this );
-    }
-    
-    // never throws (but has a BOOST_ASSERT in it, so not marked with BOOST_NOEXCEPT)
-    typename boost::detail::sp_dereference< T >::type operator* () const
-    {
-        BOOST_ASSERT( px != 0 );
-        return *px;
-    }
-    
-    // never throws (but has a BOOST_ASSERT in it, so not marked with BOOST_NOEXCEPT)
-    typename boost::detail::sp_member_access< T >::type operator-> () const 
-    {
-        BOOST_ASSERT( px != 0 );
-        return px;
-    }
-    
-    // never throws (but has a BOOST_ASSERT in it, so not marked with BOOST_NOEXCEPT)
-    typename boost::detail::sp_array_access< T >::type operator[] ( std::ptrdiff_t i ) const
-    {
-        BOOST_ASSERT( px != 0 );
-        BOOST_ASSERT( i >= 0 && ( i < boost::detail::sp_extent< T >::value || boost::detail::sp_extent< T >::value == 0 ) );
-
-        return px[ i ];
-    }
-
-    element_type * get() const BOOST_NOEXCEPT
-    {
-        return px;
-    }
-
-// implicit conversion to "bool"
-#include <boost/smart_ptr/detail/operator_bool.hpp>
-
-    bool unique() const BOOST_NOEXCEPT
-    {
-        return pn.unique();
-    }
-
-    long use_count() const BOOST_NOEXCEPT
-    {
-        return pn.use_count();
-    }
-
-    void swap( shared_ptr & other ) BOOST_NOEXCEPT
-    {
-        std::swap(px, other.px);
-        pn.swap(other.pn);
-    }
-
-    template<class Y> bool owner_before( shared_ptr<Y> const & rhs ) const BOOST_NOEXCEPT
-    {
-        return pn < rhs.pn;
-    }
-
-    template<class Y> bool owner_before( weak_ptr<Y> const & rhs ) const BOOST_NOEXCEPT
-    {
-        return pn < rhs.pn;
-    }
-
-    void * _internal_get_deleter( boost::detail::sp_typeinfo const & ti ) const BOOST_NOEXCEPT
-    {
-        return pn.get_deleter( ti );
-    }
-
-    void * _internal_get_untyped_deleter() const BOOST_NOEXCEPT
-    {
-        return pn.get_untyped_deleter();
-    }
-
-    bool _internal_equiv( shared_ptr const & r ) const BOOST_NOEXCEPT
-    {
-        return px == r.px && pn == r.pn;
-    }
-
-// Tasteless as this may seem, making all members public allows member templates
-// to work in the absence of member template friends. (Matthew Langston)
-
-#ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS
-
-private:
-
-    template<class Y> friend class shared_ptr;
-    template<class Y> friend class weak_ptr;
-
-
-#endif
-
-    element_type * px;                 // contained pointer
-    boost::detail::shared_count pn;    // reference counter
-
-};  // shared_ptr
-
-template<class T, class U> inline bool operator==(shared_ptr<T> const & a, shared_ptr<U> const & b) BOOST_NOEXCEPT
-{
-    return a.get() == b.get();
-}
-
-template<class T, class U> inline bool operator!=(shared_ptr<T> const & a, shared_ptr<U> const & b) BOOST_NOEXCEPT
-{
-    return a.get() != b.get();
-}
-
-#if __GNUC__ == 2 && __GNUC_MINOR__ <= 96
-
-// Resolve the ambiguity between our op!= and the one in rel_ops
-
-template<class T> inline bool operator!=(shared_ptr<T> const & a, shared_ptr<T> const & b) BOOST_NOEXCEPT
-{
-    return a.get() != b.get();
-}
-
-#endif
-
-#if !defined( BOOST_NO_CXX11_NULLPTR )
-
-template<class T> inline bool operator==( shared_ptr<T> const & p, boost::detail::sp_nullptr_t ) BOOST_NOEXCEPT
-{
-    return p.get() == 0;
-}
-
-template<class T> inline bool operator==( boost::detail::sp_nullptr_t, shared_ptr<T> const & p ) BOOST_NOEXCEPT
-{
-    return p.get() == 0;
-}
-
-template<class T> inline bool operator!=( shared_ptr<T> const & p, boost::detail::sp_nullptr_t ) BOOST_NOEXCEPT
-{
-    return p.get() != 0;
-}
-
-template<class T> inline bool operator!=( boost::detail::sp_nullptr_t, shared_ptr<T> const & p ) BOOST_NOEXCEPT
-{
-    return p.get() != 0;
-}
-
-#endif
-
-template<class T, class U> inline bool operator<(shared_ptr<T> const & a, shared_ptr<U> const & b) BOOST_NOEXCEPT
-{
-    return a.owner_before( b );
-}
-
-template<class T> inline void swap(shared_ptr<T> & a, shared_ptr<T> & b) BOOST_NOEXCEPT
-{
-    a.swap(b);
-}
-
-template<class T, class U> shared_ptr<T> static_pointer_cast( shared_ptr<U> const & r ) BOOST_NOEXCEPT
-{
-    (void) static_cast< T* >( static_cast< U* >( 0 ) );
-
-    typedef typename shared_ptr<T>::element_type E;
-
-    E * p = static_cast< E* >( r.get() );
-    return shared_ptr<T>( r, p );
-}
-
-template<class T, class U> shared_ptr<T> const_pointer_cast( shared_ptr<U> const & r ) BOOST_NOEXCEPT
-{
-    (void) const_cast< T* >( static_cast< U* >( 0 ) );
-
-    typedef typename shared_ptr<T>::element_type E;
-
-    E * p = const_cast< E* >( r.get() );
-    return shared_ptr<T>( r, p );
-}
-
-template<class T, class U> shared_ptr<T> dynamic_pointer_cast( shared_ptr<U> const & r ) BOOST_NOEXCEPT
-{
-    (void) dynamic_cast< T* >( static_cast< U* >( 0 ) );
-
-    typedef typename shared_ptr<T>::element_type E;
-
-    E * p = dynamic_cast< E* >( r.get() );
-    return p? shared_ptr<T>( r, p ): shared_ptr<T>();
-}
-
-template<class T, class U> shared_ptr<T> reinterpret_pointer_cast( shared_ptr<U> const & r ) BOOST_NOEXCEPT
-{
-    (void) reinterpret_cast< T* >( static_cast< U* >( 0 ) );
-
-    typedef typename shared_ptr<T>::element_type E;
-
-    E * p = reinterpret_cast< E* >( r.get() );
-    return shared_ptr<T>( r, p );
-}
-
-// get_pointer() enables boost::mem_fn to recognize shared_ptr
-
-template<class T> inline typename shared_ptr<T>::element_type * get_pointer(shared_ptr<T> const & p) BOOST_NOEXCEPT
-{
-    return p.get();
-}
-
-// operator<<
-
-#if !defined(BOOST_NO_IOSTREAM)
-
-#if defined(BOOST_NO_TEMPLATED_IOSTREAMS) || ( defined(__GNUC__) &&  (__GNUC__ < 3) )
-
-template<class Y> std::ostream & operator<< (std::ostream & os, shared_ptr<Y> const & p)
-{
-    os << p.get();
-    return os;
-}
-
-#else
-
-// in STLport's no-iostreams mode no iostream symbols can be used
-#ifndef _STLP_NO_IOSTREAMS
-
-# if defined(BOOST_MSVC) && BOOST_WORKAROUND(BOOST_MSVC, < 1300 && __SGI_STL_PORT)
-// MSVC6 has problems finding std::basic_ostream through the using declaration in namespace _STL
-using std::basic_ostream;
-template<class E, class T, class Y> basic_ostream<E, T> & operator<< (basic_ostream<E, T> & os, shared_ptr<Y> const & p)
-# else
-template<class E, class T, class Y> std::basic_ostream<E, T> & operator<< (std::basic_ostream<E, T> & os, shared_ptr<Y> const & p)
-# endif
-{
-    os << p.get();
-    return os;
-}
-
-#endif // _STLP_NO_IOSTREAMS
-
-#endif // __GNUC__ < 3
-
-#endif // !defined(BOOST_NO_IOSTREAM)
-
-// get_deleter
-
-namespace detail
-{
-
-#if ( defined(__GNUC__) && BOOST_WORKAROUND(__GNUC__, < 3) ) || \
-    ( defined(__EDG_VERSION__) && BOOST_WORKAROUND(__EDG_VERSION__, <= 238) ) || \
-    ( defined(__HP_aCC) && BOOST_WORKAROUND(__HP_aCC, <= 33500) )
-
-// g++ 2.9x doesn't allow static_cast<X const *>(void *)
-// apparently EDG 2.38 and HP aCC A.03.35 also don't accept it
-
-template<class D, class T> D * basic_get_deleter(shared_ptr<T> const & p)
-{
-    void const * q = p._internal_get_deleter(BOOST_SP_TYPEID(D));
-    return const_cast<D *>(static_cast<D const *>(q));
-}
-
-#else
-
-template<class D, class T> D * basic_get_deleter( shared_ptr<T> const & p ) BOOST_NOEXCEPT
-{
-    return static_cast<D *>( p._internal_get_deleter(BOOST_SP_TYPEID(D)) );
-}
-
-#endif
-
-class esft2_deleter_wrapper
-{
-private:
-
-    shared_ptr<void> deleter_;
-
-public:
-
-    esft2_deleter_wrapper()
-    {
-    }
-
-    template< class T > void set_deleter( shared_ptr<T> const & deleter )
-    {
-        deleter_ = deleter;
-    }
-
-    template<typename D> D* get_deleter() const BOOST_NOEXCEPT
-    {
-        return boost::detail::basic_get_deleter<D>( deleter_ );
-    }
-
-    template< class T> void operator()( T* )
-    {
-        BOOST_ASSERT( deleter_.use_count() <= 1 );
-        deleter_.reset();
-    }
-};
-
-} // namespace detail
-
-template<class D, class T> D * get_deleter( shared_ptr<T> const & p ) BOOST_NOEXCEPT
-{
-    D *del = boost::detail::basic_get_deleter<D>(p);
-
-    if(del == 0)
-    {
-        boost::detail::esft2_deleter_wrapper *del_wrapper = boost::detail::basic_get_deleter<boost::detail::esft2_deleter_wrapper>(p);
-// The following get_deleter method call is fully qualified because
-// older versions of gcc (2.95, 3.2.3) fail to compile it when written del_wrapper->get_deleter<D>()
-        if(del_wrapper) del = del_wrapper->::boost::detail::esft2_deleter_wrapper::get_deleter<D>();
-    }
-
-    return del;
-}
-
-// atomic access
-
-#if !defined(BOOST_SP_NO_ATOMIC_ACCESS)
-
-template<class T> inline bool atomic_is_lock_free( shared_ptr<T> const * /*p*/ ) BOOST_NOEXCEPT
-{
-    return false;
-}
-
-template<class T> shared_ptr<T> atomic_load( shared_ptr<T> const * p )
-{
-    boost::detail::spinlock_pool<2>::scoped_lock lock( p );
-    return *p;
-}
-
-template<class T> inline shared_ptr<T> atomic_load_explicit( shared_ptr<T> const * p, memory_order /*mo*/ )
-{
-    return atomic_load( p );
-}
-
-template<class T> void atomic_store( shared_ptr<T> * p, shared_ptr<T> r )
-{
-    boost::detail::spinlock_pool<2>::scoped_lock lock( p );
-    p->swap( r );
-}
-
-template<class T> inline void atomic_store_explicit( shared_ptr<T> * p, shared_ptr<T> r, memory_order /*mo*/ )
-{
-    atomic_store( p, r ); // std::move( r )
-}
-
-template<class T> shared_ptr<T> atomic_exchange( shared_ptr<T> * p, shared_ptr<T> r )
-{
-    boost::detail::spinlock & sp = boost::detail::spinlock_pool<2>::spinlock_for( p );
-
-    sp.lock();
-    p->swap( r );
-    sp.unlock();
-
-    return r; // return std::move( r )
-}
-
-template<class T> shared_ptr<T> atomic_exchange_explicit( shared_ptr<T> * p, shared_ptr<T> r, memory_order /*mo*/ )
-{
-    return atomic_exchange( p, r ); // std::move( r )
-}
-
-template<class T> bool atomic_compare_exchange( shared_ptr<T> * p, shared_ptr<T> * v, shared_ptr<T> w )
-{
-    boost::detail::spinlock & sp = boost::detail::spinlock_pool<2>::spinlock_for( p );
-
-    sp.lock();
-
-    if( p->_internal_equiv( *v ) )
-    {
-        p->swap( w );
-
-        sp.unlock();
-
-        return true;
-    }
-    else
-    {
-        shared_ptr<T> tmp( *p );
-
-        sp.unlock();
-
-        tmp.swap( *v );
-        return false;
-    }
-}
-
-template<class T> inline bool atomic_compare_exchange_explicit( shared_ptr<T> * p, shared_ptr<T> * v, shared_ptr<T> w, memory_order /*success*/, memory_order /*failure*/ )
-{
-    return atomic_compare_exchange( p, v, w ); // std::move( w )
-}
-
-#endif // !defined(BOOST_SP_NO_ATOMIC_ACCESS)
-
-// hash_value
-
-template< class T > struct hash;
-
-template< class T > std::size_t hash_value( boost::shared_ptr<T> const & p ) BOOST_NOEXCEPT
-{
-    return boost::hash< T* >()( p.get() );
-}
-
-} // namespace boost
-
-#endif  // #if defined(BOOST_NO_MEMBER_TEMPLATES) && !defined(BOOST_MSVC6_MEMBER_TEMPLATES)
-
-#endif  // #ifndef BOOST_SMART_PTR_SHARED_PTR_HPP_INCLUDED
diff --git a/boost/static_assert.hpp b/boost/static_assert.hpp
deleted file mode 100644
index d083a9c..0000000
--- a/boost/static_assert.hpp
+++ /dev/null
@@ -1,195 +0,0 @@
-//  (C) Copyright John Maddock 2000.
-//  Use, modification and distribution are subject to the 
-//  Boost Software License, Version 1.0. (See accompanying file 
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org/libs/static_assert for documentation.
-
-/*
- Revision history:
-   02 August 2000
-      Initial version.
-*/
-
-#ifndef BOOST_STATIC_ASSERT_HPP
-#define BOOST_STATIC_ASSERT_HPP
-
-#include <boost/config.hpp>
-#include <boost/detail/workaround.hpp>
-
-#if defined(__GNUC__) && !defined(__GXX_EXPERIMENTAL_CXX0X__)
-//
-// This is horrible, but it seems to be the only we can shut up the
-// "anonymous variadic macros were introduced in C99 [-Wvariadic-macros]"
-// warning that get spewed out otherwise in non-C++11 mode.
-//
-#pragma GCC system_header
-#endif
-
-#ifndef BOOST_NO_CXX11_STATIC_ASSERT
-#  ifndef BOOST_NO_CXX11_VARIADIC_MACROS
-#     define BOOST_STATIC_ASSERT_MSG( ... ) static_assert(__VA_ARGS__)
-#  else
-#     define BOOST_STATIC_ASSERT_MSG( B, Msg ) BOOST_STATIC_ASSERT( B )
-#  endif
-#else
-#     define BOOST_STATIC_ASSERT_MSG( B, Msg ) BOOST_STATIC_ASSERT( B )
-#endif
-
-#ifdef __BORLANDC__
-//
-// workaround for buggy integral-constant expression support:
-#define BOOST_BUGGY_INTEGRAL_CONSTANT_EXPRESSIONS
-#endif
-
-#if defined(__GNUC__) && (__GNUC__ == 3) && ((__GNUC_MINOR__ == 3) || (__GNUC_MINOR__ == 4))
-// gcc 3.3 and 3.4 don't produce good error messages with the default version:
-#  define BOOST_SA_GCC_WORKAROUND
-#endif
-
-//
-// If the compiler issues warnings about old C style casts,
-// then enable this:
-//
-#if defined(__GNUC__) && ((__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 4)))
-#  ifndef BOOST_NO_CXX11_VARIADIC_MACROS
-#     define BOOST_STATIC_ASSERT_BOOL_CAST( ... ) ((__VA_ARGS__) == 0 ? false : true)
-#  else
-#     define BOOST_STATIC_ASSERT_BOOL_CAST( x ) ((x) == 0 ? false : true)
-#  endif
-#else
-#  ifndef BOOST_NO_CXX11_VARIADIC_MACROS
-#     define BOOST_STATIC_ASSERT_BOOL_CAST( ... ) (bool)(__VA_ARGS__)
-#  else
-#     define BOOST_STATIC_ASSERT_BOOL_CAST(x) (bool)(x)
-#  endif
-#endif
-//
-// If the compiler warns about unused typedefs then enable this:
-//
-#if defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)))
-#  define BOOST_STATIC_ASSERT_UNUSED_ATTRIBUTE __attribute__((unused))
-#else
-#  define BOOST_STATIC_ASSERT_UNUSED_ATTRIBUTE
-#endif
-
-#ifndef BOOST_NO_CXX11_STATIC_ASSERT
-#  ifndef BOOST_NO_CXX11_VARIADIC_MACROS
-#     define BOOST_STATIC_ASSERT( ... ) static_assert(__VA_ARGS__, #__VA_ARGS__)
-#  else
-#     define BOOST_STATIC_ASSERT( B ) static_assert(B, #B)
-#  endif
-#else
-
-namespace boost{
-
-// HP aCC cannot deal with missing names for template value parameters
-template <bool x> struct STATIC_ASSERTION_FAILURE;
-
-template <> struct STATIC_ASSERTION_FAILURE<true> { enum { value = 1 }; };
-
-// HP aCC cannot deal with missing names for template value parameters
-template<int x> struct static_assert_test{};
-
-}
-
-//
-// Implicit instantiation requires that all member declarations be
-// instantiated, but that the definitions are *not* instantiated.
-//
-// It's not particularly clear how this applies to enum's or typedefs;
-// both are described as declarations [7.1.3] and [7.2] in the standard,
-// however some compilers use "delayed evaluation" of one or more of
-// these when implicitly instantiating templates.  We use typedef declarations
-// by default, but try defining BOOST_USE_ENUM_STATIC_ASSERT if the enum
-// version gets better results from your compiler...
-//
-// Implementation:
-// Both of these versions rely on sizeof(incomplete_type) generating an error
-// message containing the name of the incomplete type.  We use
-// "STATIC_ASSERTION_FAILURE" as the type name here to generate
-// an eye catching error message.  The result of the sizeof expression is either
-// used as an enum initialiser, or as a template argument depending which version
-// is in use...
-// Note that the argument to the assert is explicitly cast to bool using old-
-// style casts: too many compilers currently have problems with static_cast
-// when used inside integral constant expressions.
-//
-#if !defined(BOOST_BUGGY_INTEGRAL_CONSTANT_EXPRESSIONS)
-
-#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
-// __LINE__ macro broken when -ZI is used see Q199057
-// fortunately MSVC ignores duplicate typedef's.
-#define BOOST_STATIC_ASSERT( B ) \
-   typedef ::boost::static_assert_test<\
-      sizeof(::boost::STATIC_ASSERTION_FAILURE< (bool)( B ) >)\
-      > boost_static_assert_typedef_
-#elif defined(BOOST_MSVC) && defined(BOOST_NO_CXX11_VARIADIC_MACROS)
-#define BOOST_STATIC_ASSERT( B ) \
-   typedef ::boost::static_assert_test<\
-      sizeof(::boost::STATIC_ASSERTION_FAILURE< BOOST_STATIC_ASSERT_BOOL_CAST ( B ) >)>\
-         BOOST_JOIN(boost_static_assert_typedef_, __COUNTER__)
-#elif defined(BOOST_MSVC)
-#define BOOST_STATIC_ASSERT(...) \
-   typedef ::boost::static_assert_test<\
-      sizeof(::boost::STATIC_ASSERTION_FAILURE< BOOST_STATIC_ASSERT_BOOL_CAST (__VA_ARGS__) >)>\
-         BOOST_JOIN(boost_static_assert_typedef_, __COUNTER__)
-#elif (defined(BOOST_INTEL_CXX_VERSION) || defined(BOOST_SA_GCC_WORKAROUND))  && defined(BOOST_NO_CXX11_VARIADIC_MACROS)
-// agurt 15/sep/02: a special care is needed to force Intel C++ issue an error 
-// instead of warning in case of failure
-# define BOOST_STATIC_ASSERT( B ) \
-    typedef char BOOST_JOIN(boost_static_assert_typedef_, __LINE__) \
-        [ ::boost::STATIC_ASSERTION_FAILURE< BOOST_STATIC_ASSERT_BOOL_CAST( B ) >::value ]
-#elif (defined(BOOST_INTEL_CXX_VERSION) || defined(BOOST_SA_GCC_WORKAROUND))  && !defined(BOOST_NO_CXX11_VARIADIC_MACROS)
-// agurt 15/sep/02: a special care is needed to force Intel C++ issue an error 
-// instead of warning in case of failure
-# define BOOST_STATIC_ASSERT(...) \
-    typedef char BOOST_JOIN(boost_static_assert_typedef_, __LINE__) \
-        [ ::boost::STATIC_ASSERTION_FAILURE< BOOST_STATIC_ASSERT_BOOL_CAST( __VA_ARGS__ ) >::value ]
-#elif defined(__sgi)
-// special version for SGI MIPSpro compiler
-#define BOOST_STATIC_ASSERT( B ) \
-   BOOST_STATIC_CONSTANT(bool, \
-     BOOST_JOIN(boost_static_assert_test_, __LINE__) = ( B )); \
-   typedef ::boost::static_assert_test<\
-     sizeof(::boost::STATIC_ASSERTION_FAILURE< \
-       BOOST_JOIN(boost_static_assert_test_, __LINE__) >)>\
-         BOOST_JOIN(boost_static_assert_typedef_, __LINE__)
-#elif BOOST_WORKAROUND(__MWERKS__, <= 0x3003)
-// special version for CodeWarrior <= 8.x
-#define BOOST_STATIC_ASSERT( B ) \
-   BOOST_STATIC_CONSTANT(int, \
-     BOOST_JOIN(boost_static_assert_test_, __LINE__) = \
-       sizeof(::boost::STATIC_ASSERTION_FAILURE< BOOST_STATIC_ASSERT_BOOL_CAST( B ) >) )
-#else
-// generic version
-#  ifndef BOOST_NO_CXX11_VARIADIC_MACROS
-#     define BOOST_STATIC_ASSERT( ... ) \
-         typedef ::boost::static_assert_test<\
-            sizeof(::boost::STATIC_ASSERTION_FAILURE< BOOST_STATIC_ASSERT_BOOL_CAST( __VA_ARGS__ ) >)>\
-               BOOST_JOIN(boost_static_assert_typedef_, __LINE__) BOOST_STATIC_ASSERT_UNUSED_ATTRIBUTE
-#  else
-#     define BOOST_STATIC_ASSERT( B ) \
-         typedef ::boost::static_assert_test<\
-            sizeof(::boost::STATIC_ASSERTION_FAILURE< BOOST_STATIC_ASSERT_BOOL_CAST( B ) >)>\
-               BOOST_JOIN(boost_static_assert_typedef_, __LINE__) BOOST_STATIC_ASSERT_UNUSED_ATTRIBUTE
-#  endif
-#endif
-
-#else
-// alternative enum based implementation:
-#  ifndef BOOST_NO_CXX11_VARIADIC_MACROS
-#    define BOOST_STATIC_ASSERT( ... ) \
-         enum { BOOST_JOIN(boost_static_assert_enum_, __LINE__) \
-            = sizeof(::boost::STATIC_ASSERTION_FAILURE< (bool)( __VA_ARGS__ ) >) }
-#  else
-#    define BOOST_STATIC_ASSERT(B) \
-         enum { BOOST_JOIN(boost_static_assert_enum_, __LINE__) \
-            = sizeof(::boost::STATIC_ASSERTION_FAILURE< (bool)( B ) >) }
-#  endif
-#endif
-#endif // defined(BOOST_NO_CXX11_STATIC_ASSERT)
-
-#endif // BOOST_STATIC_ASSERT_HPP
-
-
diff --git a/boost/swap.hpp b/boost/swap.hpp
deleted file mode 100644
index dfc11f0..0000000
--- a/boost/swap.hpp
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (C) 2007 Joseph Gauterin
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_SWAP_HPP
-#define BOOST_SWAP_HPP
-
-#include "boost/utility/swap.hpp"
-
-#endif
diff --git a/boost/throw_exception.hpp b/boost/throw_exception.hpp
deleted file mode 100644
index 200683e..0000000
--- a/boost/throw_exception.hpp
+++ /dev/null
@@ -1,103 +0,0 @@
-#ifndef UUID_AA15E74A856F11E08B8D93F24824019B
-#define UUID_AA15E74A856F11E08B8D93F24824019B
-#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
-#pragma GCC system_header
-#endif
-#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
-#pragma warning(push,1)
-#endif
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-//  boost/throw_exception.hpp
-//
-//  Copyright (c) 2002 Peter Dimov and Multi Media Ltd.
-//  Copyright (c) 2008-2009 Emil Dotchevski and Reverge Studios, Inc.
-//
-//  Distributed under the Boost Software License, Version 1.0. (See
-//  accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//
-//  http://www.boost.org/libs/utility/throw_exception.html
-//
-
-#include <boost/exception/detail/attribute_noreturn.hpp>
-#include <boost/detail/workaround.hpp>
-#include <boost/config.hpp>
-#include <exception>
-
-#if !defined( BOOST_EXCEPTION_DISABLE ) && defined( __BORLANDC__ ) && BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT(0x593) )
-# define BOOST_EXCEPTION_DISABLE
-#endif
-
-#if !defined( BOOST_EXCEPTION_DISABLE ) && defined( BOOST_MSVC ) && BOOST_WORKAROUND( BOOST_MSVC, < 1310 )
-# define BOOST_EXCEPTION_DISABLE
-#endif
-
-#if !defined( BOOST_EXCEPTION_DISABLE )
-# include <boost/exception/exception.hpp>
-#if !defined(BOOST_THROW_EXCEPTION_CURRENT_FUNCTION)
-# include <boost/current_function.hpp>
-# define BOOST_THROW_EXCEPTION_CURRENT_FUNCTION BOOST_CURRENT_FUNCTION
-#endif
-# define BOOST_THROW_EXCEPTION(x) ::boost::exception_detail::throw_exception_(x,BOOST_THROW_EXCEPTION_CURRENT_FUNCTION,__FILE__,__LINE__)
-#else
-# define BOOST_THROW_EXCEPTION(x) ::boost::throw_exception(x)
-#endif
-
-namespace boost
-{
-#ifdef BOOST_NO_EXCEPTIONS
-
-void throw_exception( std::exception const & e ); // user defined
-
-#else
-
-inline void throw_exception_assert_compatibility( std::exception const & ) { }
-
-template<class E> BOOST_ATTRIBUTE_NORETURN inline void throw_exception( E const & e )
-{
-    //All boost exceptions are required to derive from std::exception,
-    //to ensure compatibility with BOOST_NO_EXCEPTIONS.
-    throw_exception_assert_compatibility(e);
-
-#ifndef BOOST_EXCEPTION_DISABLE
-    throw enable_current_exception(enable_error_info(e));
-#else
-    throw e;
-#endif
-}
-
-#endif
-
-#if !defined( BOOST_EXCEPTION_DISABLE )
-    namespace
-    exception_detail
-    {
-        template <class E>
-        BOOST_ATTRIBUTE_NORETURN
-        void
-        throw_exception_( E const & x, char const * current_function, char const * file, int line )
-        {
-            boost::throw_exception(
-                set_info(
-                    set_info(
-                        set_info(
-                            enable_error_info(x),
-                            throw_function(current_function)),
-                        throw_file(file)),
-                    throw_line(line)));
-        }
-    }
-#endif
-} // namespace boost
-
-#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
-#pragma warning(pop)
-#endif
-#endif
diff --git a/boost/tr1/detail/config.hpp b/boost/tr1/detail/config.hpp
deleted file mode 100644
index 1b95148..0000000
--- a/boost/tr1/detail/config.hpp
+++ /dev/null
@@ -1,169 +0,0 @@
-//  (C) Copyright John Maddock 2005-7.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_TR1_DETAIL_CONFIG_HPP_INCLUDED
-#  define BOOST_TR1_DETAIL_CONFIG_HPP_INCLUDED
-
-#include <cstddef>
-
-#if (defined(__GNUC__) && !(defined(linux) || defined(__linux) || defined(__linux__))) \
-   || (!defined(_AIX) && defined(__IBMCPP__)  && (__IBMCPP__ >= 800)) 
-   // Disable use of #include_next on Linux as typically we are installed in a 
-   // directory that is searched *after* the std lib include path.
-#if !defined(BOOST_HAS_INCLUDE_NEXT)
-#  define BOOST_HAS_INCLUDE_NEXT
-#endif
-// Need to find out if we're using GLIBC:
-#ifdef BOOST_TR1_UTILITY_INCLUDED
-// Oops we're in a recursive include path!!
-// Need to include utility, or some std lib header,
-// but *not* via <utility> or <boost/config/no_tr1/utility.hpp>
-#  ifndef BOOST_TR1_NO_RECURSION
-#     define BOOST_TR1_NO_RECURSION
-#     define BOOST_TR1_NO_CONFIG_RECURSION
-#  endif
-#  if defined(BOOST_HAS_INCLUDE_NEXT) && !defined(BOOST_TR1_DISABLE_INCLUDE_NEXT)
-#     include_next <utility>
-#  else
-#     include BOOST_TR1_STD_HEADER(utility)
-#  endif
-#  ifdef BOOST_TR1_NO_CONFIG_RECURSION
-#     undef BOOST_TR1_NO_CONFIG_RECURSION
-#     undef BOOST_TR1_NO_RECURSION
-#  endif
-#else
-#include <boost/config/no_tr1/utility.hpp>
-#endif
-#endif
-
-#if defined(__GLIBCXX__) && !defined(BOOST_TR1_PATH)
-#  define BOOST_TR1_PATH(name) tr1/name
-#endif
-#if !defined(BOOST_TR1_PATH)
-#  define BOOST_TR1_PATH(name) name
-#endif
-
-#define BOOST_TR1_HEADER(name) <BOOST_TR1_PATH(name)>
-
-// Can't use BOOST_WORKAROUND here, it leads to recursive includes:
-#if (defined(__BORLANDC__) && (__BORLANDC__ <= 0x600)) || (defined(_MSC_VER) && (_MSC_VER < 1310))
-#  define BOOST_TR1_USE_OLD_TUPLE
-#endif
-
-#ifdef __IBMCPP_TR1__
-   // turn on support for everything:
-#  define BOOST_HAS_TR1
-#endif
-
-#ifdef __GXX_EXPERIMENTAL_CXX0X__
-#  define BOOST_HAS_TR1_COMPLEX_OVERLOADS
-#  define BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG
-#endif
-
-#ifdef BOOST_HAS_TR1
-   // turn on support for everything:
-#  define BOOST_HAS_TR1_ARRAY
-#  define BOOST_HAS_TR1_COMPLEX_OVERLOADS
-#  define BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG
-#  define BOOST_HAS_TR1_REFERENCE_WRAPPER
-#  define BOOST_HAS_TR1_RESULT_OF
-#  define BOOST_HAS_TR1_MEM_FN
-#  define BOOST_HAS_TR1_BIND
-#  define BOOST_HAS_TR1_FUNCTION
-#  define BOOST_HAS_TR1_HASH
-#  define BOOST_HAS_TR1_SHARED_PTR
-#  define BOOST_HAS_TR1_RANDOM
-#  define BOOST_HAS_TR1_REGEX
-#  define BOOST_HAS_TR1_TUPLE
-#  define BOOST_HAS_TR1_TYPE_TRAITS
-#  define BOOST_HAS_TR1_UTILITY
-#  define BOOST_HAS_TR1_UNORDERED_MAP
-#  define BOOST_HAS_TR1_UNORDERED_SET
-#  define BOOST_HAS_TR1_CMATH
-
-#endif
-
-#if defined(__MWERKS__) && (__MWERKS__ >= 0x3205)
-//
-// Very preliminary MWCW support, may not be right:
-//
-#  define BOOST_HAS_TR1_SHARED_PTR
-#  define BOOST_HAS_TR1_REFERENCE_WRAPPER
-#  define BOOST_HAS_TR1_FUNCTION
-#  define BOOST_HAS_TR1_TUPLE
-#  define BOOST_HAS_TR1_RESULT_OF
-#endif
-
-#ifdef BOOST_HAS_GCC_TR1
-   // turn on support for everything in gcc 4.0.x:
-#  define BOOST_HAS_TR1_ARRAY
-#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 403
-//#  define BOOST_HAS_TR1_COMPLEX_OVERLOADS
-#  define BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG
-#endif
-#  define BOOST_HAS_TR1_REFERENCE_WRAPPER
-#  define BOOST_HAS_TR1_RESULT_OF
-#  define BOOST_HAS_TR1_MEM_FN
-#  define BOOST_HAS_TR1_BIND
-#  define BOOST_HAS_TR1_FUNCTION
-#  define BOOST_HAS_TR1_HASH
-#  define BOOST_HAS_TR1_SHARED_PTR
-#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 403
-#  define BOOST_HAS_TR1_RANDOM
-//#  define BOOST_HAS_TR1_REGEX
-#ifdef _GLIBCXX_USE_C99_MATH_TR1
-#  define BOOST_HAS_TR1_CMATH
-#endif
-#endif
-#  define BOOST_HAS_TR1_TUPLE
-#  define BOOST_HAS_TR1_TYPE_TRAITS
-#  define BOOST_HAS_TR1_UTILITY
-#  define BOOST_HAS_TR1_UNORDERED_MAP
-#  define BOOST_HAS_TR1_UNORDERED_SET
-
-#endif
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1500) \
-   && defined(_MSC_FULL_VER) && \
-   !defined(__SGI_STL_PORT) && \
-   !defined(_STLPORT_VERSION) && \
-   !defined(_RWSTD_VER_STR) && \
-   !defined(_RWSTD_VER)
-//
-// MSVC-9.0 defines a not-quite TR1 conforming hash
-// function object in <functional>, so we must define
-// this here, in addition the feature pack for VC9
-// provides a more or less full TR1 implementation:
-//
-#  if defined(_HAS_TR1) && (_HAS_TR1 + 0)
-#    define BOOST_HAS_TR1_ARRAY
-#    define BOOST_HAS_TR1_REFERENCE_WRAPPER
-#    define BOOST_HAS_TR1_RESULT_OF
-#    define BOOST_HAS_TR1_MEM_FN
-#    define BOOST_HAS_TR1_BIND
-#    define BOOST_HAS_TR1_FUNCTION
-#    define BOOST_HAS_TR1_HASH
-#    define BOOST_HAS_TR1_SHARED_PTR
-#    define BOOST_HAS_TR1_RANDOM
-#    define BOOST_HAS_TR1_REGEX
-#    define BOOST_HAS_TR1_TUPLE
-#    define BOOST_HAS_TR1_TYPE_TRAITS
-#    define BOOST_HAS_TR1_UTILITY
-#    define BOOST_HAS_TR1_UNORDERED_MAP
-#    define BOOST_HAS_TR1_UNORDERED_SET
-#  else
-#    define BOOST_HAS_TR1_HASH
-#  endif
-#  if _MSC_VER >= 1600
-#     define BOOST_HAS_CPP_0X
-#  endif
-#endif
-
-#include <boost/config.hpp>
-
-#endif
-
-
-
diff --git a/boost/tr1/detail/config_all.hpp b/boost/tr1/detail/config_all.hpp
deleted file mode 100644
index ecf07b6..0000000
--- a/boost/tr1/detail/config_all.hpp
+++ /dev/null
@@ -1,168 +0,0 @@
-//  (C) Copyright John Maddock 2005.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-/*
- * The gcc include path logic is derived from STLport:
- *
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Copyright (c) 1996-1999
- * Silicon Graphics Computer Systems, Inc.
- *
- * Copyright (c) 1997
- * Moscow Center for SPARC Technology
- *
- * Copyright (c) 1999-2003
- * Boris Fomitchev
- *
- * This material is provided "as is", with absolutely no warranty expressed
- * or implied. Any use is at your own risk.
- *
- * Permission to use or copy this software for any purpose is hereby granted 
- * without fee, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- *
- */
-
-#ifndef BOOST_TR1_DETAIL_CONFIG_ALL_HPP_INCLUDED
-#  define BOOST_TR1_DETAIL_CONFIG_ALL_HPP_INCLUDED
-
-//
-// IMPORTANT: we must figure out the basics, such as how to
-// forward to the real std lib headers *without* including
-// boost/config.hpp or any of the std lib headers.  A classic 
-// chicken and the egg problem....
-//
-// Including <cstddef> at least lets us detect STLport:
-//
-#include <cstddef>
-
-// Including <cstdlib> allows us to use __GLIBCXX__ to
-// determine the version of the stdc++ library in use
-// under Darwin.
-#include <cstdlib>
-
-#  if defined(_RWSTD_VER) && _RWSTD_VER >= 0x04010200
-#     if !defined (__SUNPRO_CC) && !defined (__DECCXX)
-#        define BOOST_TR1_STD_CHEADER(name) <../include/ansi/name>
-#     endif
-#  endif
-
-
-#  if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && !defined(__BORLANDC__)
-#     ifdef __SUNPRO_CC
-         // can't use <../stlport/name> since some compilers put stlport in a different directory:
-#        define BOOST_TR1_STD_HEADER(name) <../stlport4/name>
-#     elif defined(__PGI)
-#        define BOOST_TR1_STD_HEADER(name) <../CC/name>
-#     else
-#        define BOOST_TR1_STD_HEADER(name) <../stlport/name>
-#     endif
-#  elif defined(__PATHSCALE__) && (defined(__STD_RWCOMPILER_H__) || defined(_RWSTD_VER))
-#     define BOOST_TR1_STD_HEADER(name) <../include/name>
-
-#  elif defined(__SUNPRO_CC) && (defined(__STD_RWCOMPILER_H__) || defined(_RWSTD_VER))
-#     define BOOST_TR1_STD_HEADER(name) <../stdcxx4/name>
-
-#  elif defined(__HP_aCC)
-      // HP aCC include path:
-#     define BOOST_TR1_STD_HEADER(name) <../include_std/name>
-
-#  elif defined(__DECCXX)
-#     define BOOST_TR1_STD_HEADER(name) <../cxx/name>
-
-#  elif defined(__BORLANDC__) && __BORLANDC__ >= 0x570
-#     define BOOST_TR1_STD_HEADER(name) <../include/dinkumware/name>
-
-#  elif defined(__clang__)
-#     define BOOST_TR1_STD_HEADER(name) <../include/name>
-
-#  elif defined(__GNUC__) && __GNUC__ >= 3
-#    if defined(BOOST_TR1_GCC_INCLUDE_PATH)
-#      define BOOST_TR1_STD_HEADER(name) <../BOOST_TR1_GCC_INCLUDE_PATH/name>
-#    elif ( (__GNUC__ == 3 ) && ((__GNUC_MINOR__ == 0) || ((__GNUC_MINOR__ < 3) && defined(__APPLE_CC__))))
-#      define BOOST_TR1_STD_HEADER(name) <../g++-v3/name>
-#    else
-#      if ( ((__GNUC__ == 3 ) && (__GNUC_MINOR__ >= 3)) && (defined(__APPLE_CC__) || defined(__CYGWIN__)))
-#        define BOOST_TR1_STD_HEADER(name) <../c++/name>
-#      elif ((__GLIBCXX__ == 20050421) && defined(__APPLE_CC__))
-         // Some Darwin tools fix libstdc++ at 4.0.0 irrespective of the actual
-         // compiler version:
-#        define BOOST_TR1_STD_HEADER(name) <../4.0.0/name>
-         /*
-          *  Before version 3.4.0 the 0 patch level was not part of the include path:
-          */
-#      elif defined (__GNUC_PATCHLEVEL__) && ((__GNUC_PATCHLEVEL__ > 0) || \
-                                              (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \
-                                              (__GNUC__ > 3))
-#        define BOOST_TR1_STD_HEADER(name) <../__GNUC__.__GNUC_MINOR__.__GNUC_PATCHLEVEL__/name>
-#      else
-#        define BOOST_TR1_STD_HEADER(name) <../__GNUC__.__GNUC_MINOR__/name>
-#      endif
-#    endif
-
-#      if !defined(BOOST_TR1_DISABLE_INCLUDE_NEXT) && !defined(__ICC) \
-            && (defined(linux) || defined(__linux) || defined(__linux__) || defined(__GNU__) || defined(__GLIBC__))
-         // Disable use of #include_next on Linux as typically we are installed in a directory that is searched
-         // *after* the std lib include path:
-#        define BOOST_TR1_DISABLE_INCLUDE_NEXT
-#      endif
-
-#  else
-#     define BOOST_TR1_STD_HEADER(name) <../include/name>
-#  endif
-
-#if !defined(BOOST_TR1_STD_CHEADER)
-#  define BOOST_TR1_STD_CHEADER(name) BOOST_TR1_STD_HEADER(name)
-#endif
-
-#if defined(__GNUC__) && !defined(BOOST_HAS_INCLUDE_NEXT)
-#  define BOOST_HAS_INCLUDE_NEXT
-#endif
-#ifdef __GXX_EXPERIMENTAL_CXX0X__
-#  define BOOST_HAS_CPP_0X
-#endif
-#if defined(_MSC_VER) && (_MSC_VER >= 1600) && !defined(BOOST_HAS_CPP_0X)
-#   define BOOST_HAS_CPP_0X
-#endif
-//
-// We may be in the middle of parsing boost/config.hpp
-// when this header is included, so don't rely on config
-// stuff in the rest of this header...
-//
-// Find our actual std lib:
-//
-#if defined(BOOST_HAS_INCLUDE_NEXT) && !defined(BOOST_TR1_DISABLE_INCLUDE_NEXT)
-//
-// We don't take this branch if BOOST_TR1_DISABLE_INCLUDE_NEXT
-// is defined as we may be installed in 
-// /usr/include, in which case #include_next won't work as our
-// include path will occur AFTER the regular std lib one :-(
-//
-#  ifndef BOOST_TR1_NO_RECURSION
-#     define BOOST_TR1_NO_RECURSION
-#     define BOOST_TR1_NO_CONFIG_ALL_RECURSION
-#  endif
-#  include_next <utility>
-#  if (__GNUC__ < 3)
-#     include_next <algorithm>
-#     include_next <iterator>
-#  endif
-#  ifdef BOOST_TR1_NO_CONFIG_ALL_RECURSION
-#     undef BOOST_TR1_NO_CONFIG_ALL_RECURSION
-#     undef BOOST_TR1_NO_RECURSION
-#  endif
-#else
-#  include BOOST_TR1_STD_HEADER(utility)
-#endif
-
-#include <boost/tr1/detail/config.hpp>
-
-#endif
-
-
diff --git a/boost/tr1/tuple.hpp b/boost/tr1/tuple.hpp
deleted file mode 100644
index 7bc8169..0000000
--- a/boost/tr1/tuple.hpp
+++ /dev/null
@@ -1,82 +0,0 @@
-//  (C) Copyright John Maddock 2005.
-//  Use, modification and distribution are subject to the
-//  Boost Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_TR1_TUPLE_HPP_INCLUDED
-#  define BOOST_TR1_TUPLE_HPP_INCLUDED
-#  include <boost/tr1/detail/config.hpp>
-
-#ifdef BOOST_HAS_TR1_TUPLE
-
-#  if defined(BOOST_HAS_INCLUDE_NEXT) && !defined(BOOST_TR1_DISABLE_INCLUDE_NEXT)
-#     include_next BOOST_TR1_HEADER(tuple)
-#  else
-#     include <boost/tr1/detail/config_all.hpp>
-#     include BOOST_TR1_STD_HEADER(BOOST_TR1_PATH(tuple))
-#  endif
-
-#else
-
-#if defined(BOOST_TR1_USE_OLD_TUPLE)
-
-#include <boost/tuple/tuple.hpp>
-#include <boost/tuple/tuple_comparison.hpp>
-#include <boost/type_traits/integral_constant.hpp>
-
-namespace std{ namespace tr1{
-
-using ::boost::tuple;
-
-// [6.1.3.2] Tuple creation functions
-using ::boost::tuples::ignore;
-using ::boost::make_tuple;
-using ::boost::tie;
-
-// [6.1.3.3] Tuple helper classes
-template <class T> 
-struct tuple_size 
-   : public ::boost::integral_constant
-   < ::std::size_t, ::boost::tuples::length<T>::value>
-{};
-
-template < int I, class T>
-struct tuple_element
-{
-   typedef typename boost::tuples::element<I,T>::type type;
-};
-
-#if !BOOST_WORKAROUND(__BORLANDC__, < 0x0582)
-// [6.1.3.4] Element access
-using ::boost::get;
-#endif
-
-} } // namespaces
-
-#else
-
-#include <boost/fusion/include/tuple.hpp>
-#include <boost/fusion/include/std_pair.hpp>
-
-namespace std{ namespace tr1{
-
-using ::boost::fusion::tuple;
-
-// [6.1.3.2] Tuple creation functions
-using ::boost::fusion::ignore;
-using ::boost::fusion::make_tuple;
-using ::boost::fusion::tie;
-using ::boost::fusion::get;
-
-// [6.1.3.3] Tuple helper classes
-using ::boost::fusion::tuple_size;
-using ::boost::fusion::tuple_element;
-
-}}
-
-#endif
-
-#endif
-
-#endif
-
diff --git a/boost/tuple/detail/tuple_basic.hpp b/boost/tuple/detail/tuple_basic.hpp
deleted file mode 100644
index 88f0d90..0000000
--- a/boost/tuple/detail/tuple_basic.hpp
+++ /dev/null
@@ -1,980 +0,0 @@
-//  tuple_basic.hpp -----------------------------------------------------
-
-// Copyright (C) 1999, 2000 Jaakko Jarvi (jaakko.jarvi at cs.utu.fi)
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-// For more information, see http://www.boost.org
-
-// Outside help:
-// This and that, Gary Powell.
-// Fixed return types for get_head/get_tail
-// ( and other bugs ) per suggestion of Jens Maurer
-// simplified element type accessors + bug fix  (Jeremy Siek)
-// Several changes/additions according to suggestions by Douglas Gregor,
-// William Kempf, Vesa Karvonen, John Max Skaller, Ed Brey, Beman Dawes,
-// David Abrahams.
-
-// Revision history:
-// 2002 05 01 Hugo Duncan: Fix for Borland after Jaakko's previous changes
-// 2002 04 18 Jaakko: tuple element types can be void or plain function
-//                    types, as long as no object is created.
-//                    Tuple objects can no hold even noncopyable types
-//                    such as arrays.
-// 2001 10 22 John Maddock
-//      Fixes for Borland C++
-// 2001 08 30 David Abrahams
-//      Added default constructor for cons<>.
-// -----------------------------------------------------------------
-
-#ifndef BOOST_TUPLE_BASIC_HPP
-#define BOOST_TUPLE_BASIC_HPP
-
-
-#include <utility> // needed for the assignment from pair to tuple
-
-#include "boost/type_traits/cv_traits.hpp"
-#include "boost/type_traits/function_traits.hpp"
-#include "boost/utility/swap.hpp"
-
-#include "boost/detail/workaround.hpp" // needed for BOOST_WORKAROUND
-
-namespace boost {
-namespace tuples {
-
-// -- null_type --------------------------------------------------------
-struct null_type {};
-
-// a helper function to provide a const null_type type temporary
-namespace detail {
-  inline const null_type cnull() { return null_type(); }
-
-
-// -- if construct ------------------------------------------------
-// Proposed by Krzysztof Czarnecki and Ulrich Eisenecker
-
-template <bool If, class Then, class Else> struct IF { typedef Then RET; };
-
-template <class Then, class Else> struct IF<false, Then, Else> {
-  typedef Else RET;
-};
-
-} // end detail
-
-// - cons forward declaration -----------------------------------------------
-template <class HT, class TT> struct cons;
-
-
-// - tuple forward declaration -----------------------------------------------
-template <
-  class T0 = null_type, class T1 = null_type, class T2 = null_type,
-  class T3 = null_type, class T4 = null_type, class T5 = null_type,
-  class T6 = null_type, class T7 = null_type, class T8 = null_type,
-  class T9 = null_type>
-class tuple;
-
-// tuple_length forward declaration
-template<class T> struct length;
-
-
-
-namespace detail {
-
-// -- generate error template, referencing to non-existing members of this
-// template is used to produce compilation errors intentionally
-template<class T>
-class generate_error;
-
-template<int N>
-struct drop_front {
-    template<class Tuple>
-    struct apply {
-        typedef BOOST_DEDUCED_TYPENAME drop_front<N-1>::BOOST_NESTED_TEMPLATE
-            apply<Tuple> next;
-        typedef BOOST_DEDUCED_TYPENAME next::type::tail_type type;
-        static const type& call(const Tuple& tup) {
-            return next::call(tup).tail;
-        }
-    };
-};
-
-template<>
-struct drop_front<0> {
-    template<class Tuple>
-    struct apply {
-        typedef Tuple type;
-        static const type& call(const Tuple& tup) {
-            return tup;
-        }
-    };
-};
-
-} // end of namespace detail
-
-
-// -cons type accessors ----------------------------------------
-// typename tuples::element<N,T>::type gets the type of the
-// Nth element ot T, first element is at index 0
-// -------------------------------------------------------
-
-#ifndef BOOST_NO_CV_SPECIALIZATIONS
-
-template<int N, class T>
-struct element
-{
-  typedef BOOST_DEDUCED_TYPENAME detail::drop_front<N>::BOOST_NESTED_TEMPLATE
-      apply<T>::type::head_type type;
-};
-
-template<int N, class T>
-struct element<N, const T>
-{
-private:
-  typedef BOOST_DEDUCED_TYPENAME detail::drop_front<N>::BOOST_NESTED_TEMPLATE
-      apply<T>::type::head_type unqualified_type;
-public:
-#if BOOST_WORKAROUND(__BORLANDC__,<0x600)
-  typedef const unqualified_type type;
-#else
-  typedef BOOST_DEDUCED_TYPENAME boost::add_const<unqualified_type>::type type;
-#endif
-};
-#else // def BOOST_NO_CV_SPECIALIZATIONS
-
-namespace detail {
-
-template<int N, class T, bool IsConst>
-struct element_impl
-{
-  typedef BOOST_DEDUCED_TYPENAME detail::drop_front<N>::BOOST_NESTED_TEMPLATE
-      apply<T>::type::head_type type;
-};
-
-template<int N, class T>
-struct element_impl<N, T, true /* IsConst */>
-{
-  typedef BOOST_DEDUCED_TYPENAME detail::drop_front<N>::BOOST_NESTED_TEMPLATE
-      apply<T>::type::head_type unqualified_type;
-  typedef const unqualified_type type;
-};
-
-} // end of namespace detail
-
-
-template<int N, class T>
-struct element:
-  public detail::element_impl<N, T, ::boost::is_const<T>::value>
-{
-};
-
-#endif
-
-
-// -get function templates -----------------------------------------------
-// Usage: get<N>(aTuple)
-
-// -- some traits classes for get functions
-
-// access traits lifted from detail namespace to be part of the interface,
-// (Joel de Guzman's suggestion). Rationale: get functions are part of the
-// interface, so should the way to express their return types be.
-
-template <class T> struct access_traits {
-  typedef const T& const_type;
-  typedef T& non_const_type;
-
-  typedef const typename boost::remove_cv<T>::type& parameter_type;
-
-// used as the tuple constructors parameter types
-// Rationale: non-reference tuple element types can be cv-qualified.
-// It should be possible to initialize such types with temporaries,
-// and when binding temporaries to references, the reference must
-// be non-volatile and const. 8.5.3. (5)
-};
-
-template <class T> struct access_traits<T&> {
-
-  typedef T& const_type;
-  typedef T& non_const_type;
-
-  typedef T& parameter_type;
-};
-
-// get function for non-const cons-lists, returns a reference to the element
-
-template<int N, class HT, class TT>
-inline typename access_traits<
-                  typename element<N, cons<HT, TT> >::type
-                >::non_const_type
-get(cons<HT, TT>& c BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(int, N)) {
-  typedef BOOST_DEDUCED_TYPENAME detail::drop_front<N>::BOOST_NESTED_TEMPLATE
-      apply<cons<HT, TT> > impl;
-  typedef BOOST_DEDUCED_TYPENAME impl::type cons_element;
-  return const_cast<cons_element&>(impl::call(c)).head;
-}
-
-// get function for const cons-lists, returns a const reference to
-// the element. If the element is a reference, returns the reference
-// as such (that is, can return a non-const reference)
-template<int N, class HT, class TT>
-inline typename access_traits<
-                  typename element<N, cons<HT, TT> >::type
-                >::const_type
-get(const cons<HT, TT>& c BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(int, N)) {
-  typedef BOOST_DEDUCED_TYPENAME detail::drop_front<N>::BOOST_NESTED_TEMPLATE
-      apply<cons<HT, TT> > impl;
-  typedef BOOST_DEDUCED_TYPENAME impl::type cons_element;
-  return impl::call(c).head;
-}
-
-// -- the cons template  --------------------------------------------------
-namespace detail {
-
-//  These helper templates wrap void types and plain function types.
-//  The reationale is to allow one to write tuple types with those types
-//  as elements, even though it is not possible to instantiate such object.
-//  E.g: typedef tuple<void> some_type; // ok
-//  but: some_type x; // fails
-
-template <class T> class non_storeable_type {
-  non_storeable_type();
-};
-
-template <class T> struct wrap_non_storeable_type {
-  typedef typename IF<
-    ::boost::is_function<T>::value, non_storeable_type<T>, T
-  >::RET type;
-};
-template <> struct wrap_non_storeable_type<void> {
-  typedef non_storeable_type<void> type;
-};
-
-} // detail
-
-template <class HT, class TT>
-struct cons {
-
-  typedef HT head_type;
-  typedef TT tail_type;
-
-  typedef typename
-    detail::wrap_non_storeable_type<head_type>::type stored_head_type;
-
-  stored_head_type head;
-  tail_type tail;
-
-  typename access_traits<stored_head_type>::non_const_type
-  get_head() { return head; }
-
-  typename access_traits<tail_type>::non_const_type
-  get_tail() { return tail; }
-
-  typename access_traits<stored_head_type>::const_type
-  get_head() const { return head; }
-
-  typename access_traits<tail_type>::const_type
-  get_tail() const { return tail; }
-
-  cons() : head(), tail() {}
-  //  cons() : head(detail::default_arg<HT>::f()), tail() {}
-
-  // the argument for head is not strictly needed, but it prevents
-  // array type elements. This is good, since array type elements
-  // cannot be supported properly in any case (no assignment,
-  // copy works only if the tails are exactly the same type, ...)
-
-  cons(typename access_traits<stored_head_type>::parameter_type h,
-       const tail_type& t)
-    : head (h), tail(t) {}
-
-  template <class T1, class T2, class T3, class T4, class T5,
-            class T6, class T7, class T8, class T9, class T10>
-  cons( T1& t1, T2& t2, T3& t3, T4& t4, T5& t5,
-        T6& t6, T7& t7, T8& t8, T9& t9, T10& t10 )
-    : head (t1),
-      tail (t2, t3, t4, t5, t6, t7, t8, t9, t10, detail::cnull())
-      {}
-
-  template <class T2, class T3, class T4, class T5,
-            class T6, class T7, class T8, class T9, class T10>
-  cons( const null_type& /*t1*/, T2& t2, T3& t3, T4& t4, T5& t5,
-        T6& t6, T7& t7, T8& t8, T9& t9, T10& t10 )
-    : head (),
-      tail (t2, t3, t4, t5, t6, t7, t8, t9, t10, detail::cnull())
-      {}
-
-
-  template <class HT2, class TT2>
-  cons( const cons<HT2, TT2>& u ) : head(u.head), tail(u.tail) {}
-
-  template <class HT2, class TT2>
-  cons& operator=( const cons<HT2, TT2>& u ) {
-    head=u.head; tail=u.tail; return *this;
-  }
-
-  // must define assignment operator explicitly, implicit version is
-  // illformed if HT is a reference (12.8. (12))
-  cons& operator=(const cons& u) {
-    head = u.head; tail = u.tail;  return *this;
-  }
-
-  template <class T1, class T2>
-  cons& operator=( const std::pair<T1, T2>& u ) {
-    BOOST_STATIC_ASSERT(length<cons>::value == 2); // check length = 2
-    head = u.first; tail.head = u.second; return *this;
-  }
-
-  // get member functions (non-const and const)
-  template <int N>
-  typename access_traits<
-             typename element<N, cons<HT, TT> >::type
-           >::non_const_type
-  get() {
-    return boost::tuples::get<N>(*this); // delegate to non-member get
-  }
-
-  template <int N>
-  typename access_traits<
-             typename element<N, cons<HT, TT> >::type
-           >::const_type
-  get() const {
-    return boost::tuples::get<N>(*this); // delegate to non-member get
-  }
-};
-
-template <class HT>
-struct cons<HT, null_type> {
-
-  typedef HT head_type;
-  typedef null_type tail_type;
-  typedef cons<HT, null_type> self_type;
-
-  typedef typename
-    detail::wrap_non_storeable_type<head_type>::type stored_head_type;
-  stored_head_type head;
-
-  typename access_traits<stored_head_type>::non_const_type
-  get_head() { return head; }
-
-  null_type get_tail() { return null_type(); }
-
-  typename access_traits<stored_head_type>::const_type
-  get_head() const { return head; }
-
-  const null_type get_tail() const { return null_type(); }
-
-  //  cons() : head(detail::default_arg<HT>::f()) {}
-  cons() : head() {}
-
-  cons(typename access_traits<stored_head_type>::parameter_type h,
-       const null_type& = null_type())
-    : head (h) {}
-
-  template<class T1>
-  cons(T1& t1, const null_type&, const null_type&, const null_type&,
-       const null_type&, const null_type&, const null_type&,
-       const null_type&, const null_type&, const null_type&)
-  : head (t1) {}
-
-  cons(const null_type&,
-       const null_type&, const null_type&, const null_type&,
-       const null_type&, const null_type&, const null_type&,
-       const null_type&, const null_type&, const null_type&)
-  : head () {}
-
-  template <class HT2>
-  cons( const cons<HT2, null_type>& u ) : head(u.head) {}
-
-  template <class HT2>
-  cons& operator=(const cons<HT2, null_type>& u )
-  { head = u.head; return *this; }
-
-  // must define assignment operator explicitely, implicit version
-  // is illformed if HT is a reference
-  cons& operator=(const cons& u) { head = u.head; return *this; }
-
-  template <int N>
-  typename access_traits<
-             typename element<N, self_type>::type
-            >::non_const_type
-  get(BOOST_EXPLICIT_TEMPLATE_NON_TYPE(int, N)) {
-    return boost::tuples::get<N>(*this);
-  }
-
-  template <int N>
-  typename access_traits<
-             typename element<N, self_type>::type
-           >::const_type
-  get(BOOST_EXPLICIT_TEMPLATE_NON_TYPE(int, N)) const {
-    return boost::tuples::get<N>(*this);
-  }
-
-};
-
-// templates for finding out the length of the tuple -------------------
-
-template<class T>
-struct length  {
-  BOOST_STATIC_CONSTANT(int, value = 1 + length<typename T::tail_type>::value);
-};
-
-template<>
-struct length<tuple<> > {
-  BOOST_STATIC_CONSTANT(int, value = 0);
-};
-
-template<>
-struct length<tuple<> const> {
-  BOOST_STATIC_CONSTANT(int, value = 0);
-};
-
-template<>
-struct length<null_type> {
-  BOOST_STATIC_CONSTANT(int, value = 0);
-};
-
-template<>
-struct length<null_type const> {
-  BOOST_STATIC_CONSTANT(int, value = 0);
-};
-
-namespace detail {
-
-// Tuple to cons mapper --------------------------------------------------
-template <class T0, class T1, class T2, class T3, class T4,
-          class T5, class T6, class T7, class T8, class T9>
-struct map_tuple_to_cons
-{
-  typedef cons<T0,
-               typename map_tuple_to_cons<T1, T2, T3, T4, T5,
-                                          T6, T7, T8, T9, null_type>::type
-              > type;
-};
-
-// The empty tuple is a null_type
-template <>
-struct map_tuple_to_cons<null_type, null_type, null_type, null_type, null_type, null_type, null_type, null_type, null_type, null_type>
-{
-  typedef null_type type;
-};
-
-} // end detail
-
-// -------------------------------------------------------------------
-// -- tuple ------------------------------------------------------
-template <class T0, class T1, class T2, class T3, class T4,
-          class T5, class T6, class T7, class T8, class T9>
-
-class tuple :
-  public detail::map_tuple_to_cons<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>::type
-{
-public:
-  typedef typename
-    detail::map_tuple_to_cons<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>::type inherited;
-  typedef typename inherited::head_type head_type;
-  typedef typename inherited::tail_type tail_type;
-
-
-// access_traits<T>::parameter_type takes non-reference types as const T&
-  tuple() {}
-
-  tuple(typename access_traits<T0>::parameter_type t0)
-    : inherited(t0, detail::cnull(), detail::cnull(), detail::cnull(),
-                detail::cnull(), detail::cnull(), detail::cnull(),
-                detail::cnull(), detail::cnull(), detail::cnull()) {}
-
-  tuple(typename access_traits<T0>::parameter_type t0,
-        typename access_traits<T1>::parameter_type t1)
-    : inherited(t0, t1, detail::cnull(), detail::cnull(),
-                detail::cnull(), detail::cnull(), detail::cnull(),
-                detail::cnull(), detail::cnull(), detail::cnull()) {}
-
-  tuple(typename access_traits<T0>::parameter_type t0,
-        typename access_traits<T1>::parameter_type t1,
-        typename access_traits<T2>::parameter_type t2)
-    : inherited(t0, t1, t2, detail::cnull(), detail::cnull(),
-                detail::cnull(), detail::cnull(), detail::cnull(),
-                detail::cnull(), detail::cnull()) {}
-
-  tuple(typename access_traits<T0>::parameter_type t0,
-        typename access_traits<T1>::parameter_type t1,
-        typename access_traits<T2>::parameter_type t2,
-        typename access_traits<T3>::parameter_type t3)
-    : inherited(t0, t1, t2, t3, detail::cnull(), detail::cnull(),
-                detail::cnull(), detail::cnull(), detail::cnull(),
-                detail::cnull()) {}
-
-  tuple(typename access_traits<T0>::parameter_type t0,
-        typename access_traits<T1>::parameter_type t1,
-        typename access_traits<T2>::parameter_type t2,
-        typename access_traits<T3>::parameter_type t3,
-        typename access_traits<T4>::parameter_type t4)
-    : inherited(t0, t1, t2, t3, t4, detail::cnull(), detail::cnull(),
-                detail::cnull(), detail::cnull(), detail::cnull()) {}
-
-  tuple(typename access_traits<T0>::parameter_type t0,
-        typename access_traits<T1>::parameter_type t1,
-        typename access_traits<T2>::parameter_type t2,
-        typename access_traits<T3>::parameter_type t3,
-        typename access_traits<T4>::parameter_type t4,
-        typename access_traits<T5>::parameter_type t5)
-    : inherited(t0, t1, t2, t3, t4, t5, detail::cnull(), detail::cnull(),
-                detail::cnull(), detail::cnull()) {}
-
-  tuple(typename access_traits<T0>::parameter_type t0,
-        typename access_traits<T1>::parameter_type t1,
-        typename access_traits<T2>::parameter_type t2,
-        typename access_traits<T3>::parameter_type t3,
-        typename access_traits<T4>::parameter_type t4,
-        typename access_traits<T5>::parameter_type t5,
-        typename access_traits<T6>::parameter_type t6)
-    : inherited(t0, t1, t2, t3, t4, t5, t6, detail::cnull(),
-                detail::cnull(), detail::cnull()) {}
-
-  tuple(typename access_traits<T0>::parameter_type t0,
-        typename access_traits<T1>::parameter_type t1,
-        typename access_traits<T2>::parameter_type t2,
-        typename access_traits<T3>::parameter_type t3,
-        typename access_traits<T4>::parameter_type t4,
-        typename access_traits<T5>::parameter_type t5,
-        typename access_traits<T6>::parameter_type t6,
-        typename access_traits<T7>::parameter_type t7)
-    : inherited(t0, t1, t2, t3, t4, t5, t6, t7, detail::cnull(),
-                detail::cnull()) {}
-
-  tuple(typename access_traits<T0>::parameter_type t0,
-        typename access_traits<T1>::parameter_type t1,
-        typename access_traits<T2>::parameter_type t2,
-        typename access_traits<T3>::parameter_type t3,
-        typename access_traits<T4>::parameter_type t4,
-        typename access_traits<T5>::parameter_type t5,
-        typename access_traits<T6>::parameter_type t6,
-        typename access_traits<T7>::parameter_type t7,
-        typename access_traits<T8>::parameter_type t8)
-    : inherited(t0, t1, t2, t3, t4, t5, t6, t7, t8, detail::cnull()) {}
-
-  tuple(typename access_traits<T0>::parameter_type t0,
-        typename access_traits<T1>::parameter_type t1,
-        typename access_traits<T2>::parameter_type t2,
-        typename access_traits<T3>::parameter_type t3,
-        typename access_traits<T4>::parameter_type t4,
-        typename access_traits<T5>::parameter_type t5,
-        typename access_traits<T6>::parameter_type t6,
-        typename access_traits<T7>::parameter_type t7,
-        typename access_traits<T8>::parameter_type t8,
-        typename access_traits<T9>::parameter_type t9)
-    : inherited(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9) {}
-
-
-  template<class U1, class U2>
-  tuple(const cons<U1, U2>& p) : inherited(p) {}
-
-  template <class U1, class U2>
-  tuple& operator=(const cons<U1, U2>& k) {
-    inherited::operator=(k);
-    return *this;
-  }
-
-  template <class U1, class U2>
-  tuple& operator=(const std::pair<U1, U2>& k) {
-    BOOST_STATIC_ASSERT(length<tuple>::value == 2);// check_length = 2
-    this->head = k.first;
-    this->tail.head = k.second;
-    return *this;
-  }
-
-};
-
-// The empty tuple
-template <>
-class tuple<null_type, null_type, null_type, null_type, null_type, null_type, null_type, null_type, null_type, null_type>  :
-  public null_type
-{
-public:
-  typedef null_type inherited;
-};
-
-
-// Swallows any assignment   (by Doug Gregor)
-namespace detail {
-
-struct swallow_assign;
-typedef void (detail::swallow_assign::*ignore_t)();
-struct swallow_assign {
-  swallow_assign(ignore_t(*)(ignore_t)) {}
-  template<typename T>
-  swallow_assign const& operator=(const T&) const {
-    return *this;
-  }
-};
-
-
-} // namespace detail
-
-// "ignore" allows tuple positions to be ignored when using "tie".
-inline detail::ignore_t ignore(detail::ignore_t) { return 0; }
-
-// ---------------------------------------------------------------------------
-// The call_traits for make_tuple
-// Honours the reference_wrapper class.
-
-// Must be instantiated with plain or const plain types (not with references)
-
-// from template<class T> foo(const T& t) : make_tuple_traits<const T>::type
-// from template<class T> foo(T& t) : make_tuple_traits<T>::type
-
-// Conversions:
-// T -> T,
-// references -> compile_time_error
-// reference_wrapper<T> -> T&
-// const reference_wrapper<T> -> T&
-// array -> const ref array
-
-
-template<class T>
-struct make_tuple_traits {
-  typedef T type;
-
-  // commented away, see below  (JJ)
-  //  typedef typename IF<
-  //  boost::is_function<T>::value,
-  //  T&,
-  //  T>::RET type;
-
-};
-
-// The is_function test was there originally for plain function types,
-// which can't be stored as such (we must either store them as references or
-// pointers). Such a type could be formed if make_tuple was called with a
-// reference to a function.
-// But this would mean that a const qualified function type was formed in
-// the make_tuple function and hence make_tuple can't take a function
-// reference as a parameter, and thus T can't be a function type.
-// So is_function test was removed.
-// (14.8.3. says that type deduction fails if a cv-qualified function type
-// is created. (It only applies for the case of explicitly specifying template
-// args, though?)) (JJ)
-
-template<class T>
-struct make_tuple_traits<T&> {
-  typedef typename
-     detail::generate_error<T&>::
-       do_not_use_with_reference_type error;
-};
-
-// Arrays can't be stored as plain types; convert them to references.
-// All arrays are converted to const. This is because make_tuple takes its
-// parameters as const T& and thus the knowledge of the potential
-// non-constness of actual argument is lost.
-template<class T, int n>  struct make_tuple_traits <T[n]> {
-  typedef const T (&type)[n];
-};
-
-template<class T, int n>
-struct make_tuple_traits<const T[n]> {
-  typedef const T (&type)[n];
-};
-
-template<class T, int n>  struct make_tuple_traits<volatile T[n]> {
-  typedef const volatile T (&type)[n];
-};
-
-template<class T, int n>
-struct make_tuple_traits<const volatile T[n]> {
-  typedef const volatile T (&type)[n];
-};
-
-template<class T>
-struct make_tuple_traits<reference_wrapper<T> >{
-  typedef T& type;
-};
-
-template<class T>
-struct make_tuple_traits<const reference_wrapper<T> >{
-  typedef T& type;
-};
-
-template<>
-struct make_tuple_traits<detail::ignore_t(detail::ignore_t)> {
-  typedef detail::swallow_assign type;
-};
-
-
-
-namespace detail {
-
-// a helper traits to make the make_tuple functions shorter (Vesa Karvonen's
-// suggestion)
-template <
-  class T0 = null_type, class T1 = null_type, class T2 = null_type,
-  class T3 = null_type, class T4 = null_type, class T5 = null_type,
-  class T6 = null_type, class T7 = null_type, class T8 = null_type,
-  class T9 = null_type
->
-struct make_tuple_mapper {
-  typedef
-    tuple<typename make_tuple_traits<T0>::type,
-          typename make_tuple_traits<T1>::type,
-          typename make_tuple_traits<T2>::type,
-          typename make_tuple_traits<T3>::type,
-          typename make_tuple_traits<T4>::type,
-          typename make_tuple_traits<T5>::type,
-          typename make_tuple_traits<T6>::type,
-          typename make_tuple_traits<T7>::type,
-          typename make_tuple_traits<T8>::type,
-          typename make_tuple_traits<T9>::type> type;
-};
-
-} // end detail
-
-// -make_tuple function templates -----------------------------------
-inline tuple<> make_tuple() {
-  return tuple<>();
-}
-
-template<class T0>
-inline typename detail::make_tuple_mapper<T0>::type
-make_tuple(const T0& t0) {
-  typedef typename detail::make_tuple_mapper<T0>::type t;
-  return t(t0);
-}
-
-template<class T0, class T1>
-inline typename detail::make_tuple_mapper<T0, T1>::type
-make_tuple(const T0& t0, const T1& t1) {
-  typedef typename detail::make_tuple_mapper<T0, T1>::type t;
-  return t(t0, t1);
-}
-
-template<class T0, class T1, class T2>
-inline typename detail::make_tuple_mapper<T0, T1, T2>::type
-make_tuple(const T0& t0, const T1& t1, const T2& t2) {
-  typedef typename detail::make_tuple_mapper<T0, T1, T2>::type t;
-  return t(t0, t1, t2);
-}
-
-template<class T0, class T1, class T2, class T3>
-inline typename detail::make_tuple_mapper<T0, T1, T2, T3>::type
-make_tuple(const T0& t0, const T1& t1, const T2& t2, const T3& t3) {
-  typedef typename detail::make_tuple_mapper<T0, T1, T2, T3>::type t;
-  return t(t0, t1, t2, t3);
-}
-
-template<class T0, class T1, class T2, class T3, class T4>
-inline typename detail::make_tuple_mapper<T0, T1, T2, T3, T4>::type
-make_tuple(const T0& t0, const T1& t1, const T2& t2, const T3& t3,
-                  const T4& t4) {
-  typedef typename detail::make_tuple_mapper<T0, T1, T2, T3, T4>::type t;
-  return t(t0, t1, t2, t3, t4);
-}
-
-template<class T0, class T1, class T2, class T3, class T4, class T5>
-inline typename detail::make_tuple_mapper<T0, T1, T2, T3, T4, T5>::type
-make_tuple(const T0& t0, const T1& t1, const T2& t2, const T3& t3,
-                  const T4& t4, const T5& t5) {
-  typedef typename detail::make_tuple_mapper<T0, T1, T2, T3, T4, T5>::type t;
-  return t(t0, t1, t2, t3, t4, t5);
-}
-
-template<class T0, class T1, class T2, class T3, class T4, class T5, class T6>
-inline typename detail::make_tuple_mapper<T0, T1, T2, T3, T4, T5, T6>::type
-make_tuple(const T0& t0, const T1& t1, const T2& t2, const T3& t3,
-                  const T4& t4, const T5& t5, const T6& t6) {
-  typedef typename detail::make_tuple_mapper
-           <T0, T1, T2, T3, T4, T5, T6>::type t;
-  return t(t0, t1, t2, t3, t4, t5, t6);
-}
-
-template<class T0, class T1, class T2, class T3, class T4, class T5, class T6,
-         class T7>
-inline typename detail::make_tuple_mapper<T0, T1, T2, T3, T4, T5, T6, T7>::type
-make_tuple(const T0& t0, const T1& t1, const T2& t2, const T3& t3,
-                  const T4& t4, const T5& t5, const T6& t6, const T7& t7) {
-  typedef typename detail::make_tuple_mapper
-           <T0, T1, T2, T3, T4, T5, T6, T7>::type t;
-  return t(t0, t1, t2, t3, t4, t5, t6, t7);
-}
-
-template<class T0, class T1, class T2, class T3, class T4, class T5, class T6,
-         class T7, class T8>
-inline typename detail::make_tuple_mapper
-  <T0, T1, T2, T3, T4, T5, T6, T7, T8>::type
-make_tuple(const T0& t0, const T1& t1, const T2& t2, const T3& t3,
-                  const T4& t4, const T5& t5, const T6& t6, const T7& t7,
-                  const T8& t8) {
-  typedef typename detail::make_tuple_mapper
-           <T0, T1, T2, T3, T4, T5, T6, T7, T8>::type t;
-  return t(t0, t1, t2, t3, t4, t5, t6, t7, t8);
-}
-
-template<class T0, class T1, class T2, class T3, class T4, class T5, class T6,
-         class T7, class T8, class T9>
-inline typename detail::make_tuple_mapper
-  <T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>::type
-make_tuple(const T0& t0, const T1& t1, const T2& t2, const T3& t3,
-                  const T4& t4, const T5& t5, const T6& t6, const T7& t7,
-                  const T8& t8, const T9& t9) {
-  typedef typename detail::make_tuple_mapper
-           <T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>::type t;
-  return t(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9);
-}
-
-namespace detail {
-
-template<class T>
-struct tie_traits {
-  typedef T& type;
-};
-
-template<>
-struct tie_traits<ignore_t(ignore_t)> {
-  typedef swallow_assign type;
-};
-
-template<>
-struct tie_traits<void> {
-  typedef null_type type;
-};
-
-template <
-  class T0 = void, class T1 = void, class T2 = void,
-  class T3 = void, class T4 = void, class T5 = void,
-  class T6 = void, class T7 = void, class T8 = void,
-  class T9 = void
->
-struct tie_mapper {
-  typedef
-    tuple<typename tie_traits<T0>::type,
-          typename tie_traits<T1>::type,
-          typename tie_traits<T2>::type,
-          typename tie_traits<T3>::type,
-          typename tie_traits<T4>::type,
-          typename tie_traits<T5>::type,
-          typename tie_traits<T6>::type,
-          typename tie_traits<T7>::type,
-          typename tie_traits<T8>::type,
-          typename tie_traits<T9>::type> type;
-};
-
-}
-
-// Tie function templates -------------------------------------------------
-template<class T0>
-inline typename detail::tie_mapper<T0>::type
-tie(T0& t0) {
-  typedef typename detail::tie_mapper<T0>::type t;
-  return t(t0);
-}
-
-template<class T0, class T1>
-inline typename detail::tie_mapper<T0, T1>::type
-tie(T0& t0, T1& t1) {
-  typedef typename detail::tie_mapper<T0, T1>::type t;
-  return t(t0, t1);
-}
-
-template<class T0, class T1, class T2>
-inline typename detail::tie_mapper<T0, T1, T2>::type
-tie(T0& t0, T1& t1, T2& t2) {
-  typedef typename detail::tie_mapper<T0, T1, T2>::type t;
-  return t(t0, t1, t2);
-}
-
-template<class T0, class T1, class T2, class T3>
-inline typename detail::tie_mapper<T0, T1, T2, T3>::type
-tie(T0& t0, T1& t1, T2& t2, T3& t3) {
-  typedef typename detail::tie_mapper<T0, T1, T2, T3>::type t;
-  return t(t0, t1, t2, t3);
-}
-
-template<class T0, class T1, class T2, class T3, class T4>
-inline typename detail::tie_mapper<T0, T1, T2, T3, T4>::type
-tie(T0& t0, T1& t1, T2& t2, T3& t3,
-                  T4& t4) {
-  typedef typename detail::tie_mapper<T0, T1, T2, T3, T4>::type t;
-  return t(t0, t1, t2, t3, t4);
-}
-
-template<class T0, class T1, class T2, class T3, class T4, class T5>
-inline typename detail::tie_mapper<T0, T1, T2, T3, T4, T5>::type
-tie(T0& t0, T1& t1, T2& t2, T3& t3,
-                  T4& t4, T5& t5) {
-  typedef typename detail::tie_mapper<T0, T1, T2, T3, T4, T5>::type t;
-  return t(t0, t1, t2, t3, t4, t5);
-}
-
-template<class T0, class T1, class T2, class T3, class T4, class T5, class T6>
-inline typename detail::tie_mapper<T0, T1, T2, T3, T4, T5, T6>::type
-tie(T0& t0, T1& t1, T2& t2, T3& t3,
-                  T4& t4, T5& t5, T6& t6) {
-  typedef typename detail::tie_mapper
-           <T0, T1, T2, T3, T4, T5, T6>::type t;
-  return t(t0, t1, t2, t3, t4, t5, t6);
-}
-
-template<class T0, class T1, class T2, class T3, class T4, class T5, class T6,
-         class T7>
-inline typename detail::tie_mapper<T0, T1, T2, T3, T4, T5, T6, T7>::type
-tie(T0& t0, T1& t1, T2& t2, T3& t3,
-                  T4& t4, T5& t5, T6& t6, T7& t7) {
-  typedef typename detail::tie_mapper
-           <T0, T1, T2, T3, T4, T5, T6, T7>::type t;
-  return t(t0, t1, t2, t3, t4, t5, t6, t7);
-}
-
-template<class T0, class T1, class T2, class T3, class T4, class T5, class T6,
-         class T7, class T8>
-inline typename detail::tie_mapper
-  <T0, T1, T2, T3, T4, T5, T6, T7, T8>::type
-tie(T0& t0, T1& t1, T2& t2, T3& t3,
-                  T4& t4, T5& t5, T6& t6, T7& t7,
-                  T8& t8) {
-  typedef typename detail::tie_mapper
-           <T0, T1, T2, T3, T4, T5, T6, T7, T8>::type t;
-  return t(t0, t1, t2, t3, t4, t5, t6, t7, t8);
-}
-
-template<class T0, class T1, class T2, class T3, class T4, class T5, class T6,
-         class T7, class T8, class T9>
-inline typename detail::tie_mapper
-  <T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>::type
-tie(T0& t0, T1& t1, T2& t2, T3& t3,
-                  T4& t4, T5& t5, T6& t6, T7& t7,
-                  T8& t8, T9& t9) {
-  typedef typename detail::tie_mapper
-           <T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>::type t;
-  return t(t0, t1, t2, t3, t4, t5, t6, t7, t8, t9);
-}
-
-template <class T0, class T1, class T2, class T3, class T4,
-          class T5, class T6, class T7, class T8, class T9>
-void swap(tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>& lhs,
-          tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>& rhs);
-inline void swap(null_type&, null_type&) {}
-template<class HH>
-inline void swap(cons<HH, null_type>& lhs, cons<HH, null_type>& rhs) {
-  ::boost::swap(lhs.head, rhs.head);
-}
-template<class HH, class TT>
-inline void swap(cons<HH, TT>& lhs, cons<HH, TT>& rhs) {
-  ::boost::swap(lhs.head, rhs.head);
-  ::boost::tuples::swap(lhs.tail, rhs.tail);
-}
-template <class T0, class T1, class T2, class T3, class T4,
-          class T5, class T6, class T7, class T8, class T9>
-inline void swap(tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>& lhs,
-          tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>& rhs) {
-  typedef tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> tuple_type;
-  typedef typename tuple_type::inherited base;
-  ::boost::tuples::swap(static_cast<base&>(lhs), static_cast<base&>(rhs));
-}
-
-} // end of namespace tuples
-} // end of namespace boost
-
-
-#endif // BOOST_TUPLE_BASIC_HPP
-
-
diff --git a/boost/tuple/detail/tuple_basic_no_partial_spec.hpp b/boost/tuple/detail/tuple_basic_no_partial_spec.hpp
deleted file mode 100644
index 7379bf8..0000000
--- a/boost/tuple/detail/tuple_basic_no_partial_spec.hpp
+++ /dev/null
@@ -1,865 +0,0 @@
-// - tuple_basic_no_partial_spec.hpp -----------------------------------------
-
-// Copyright (C) 1999, 2000 Jaakko Jarvi (jaakko.jarvi at cs.utu.fi)
-// Copyright (C) 2001 Douglas Gregor (gregod at rpi.edu)
-// Copyright (C) 2001 Gary Powell (gary.powell at sierra.com)
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-// For more information, see http://www.boost.org or http://lambda.cs.utu.fi
-
-// Revision History
-//  14 02 01    Remove extra ';'. Also, fixed 10-parameter to make_tuple. (DG)
-//  10 02 01    Fixed "null_type" constructors.
-//              Implemented comparison operators globally.
-//              Hide element_type_ref and element_type_const_ref.
-//              (DG).
-//  09 02 01    Extended to tuples of length 10. Changed comparison for
-//              operator<()
-//              to the same used by std::pair<>, added cnull_type() (GP)
-//  03 02 01    Initial Version from original tuple.hpp code by JJ. (DG)
-
-// -----------------------------------------------------------------
-
-#ifndef BOOST_TUPLE_BASIC_NO_PARTIAL_SPEC_HPP
-#define BOOST_TUPLE_BASIC_NO_PARTIAL_SPEC_HPP
-
-#include "boost/type_traits.hpp"
-#include "boost/utility/swap.hpp"
-#include <utility>
-
-#if defined BOOST_MSVC
-#pragma warning(disable:4518) // storage-class or type specifier(s) unexpected here; ignored
-#pragma warning(disable:4181) // qualifier applied to reference type ignored
-#pragma warning(disable:4227) // qualifier applied to reference type ignored
-#endif
-
-namespace boost {
-namespace tuples {
-
-    // null_type denotes the end of a list built with "cons"
-    struct null_type
-    {
-      null_type() {}
-      null_type(const null_type&, const null_type&) {}
-    };
-
-    // a helper function to provide a const null_type type temporary
-    inline const null_type cnull_type() { return null_type(); }
-
-// forward declaration of tuple
-    template<
-      typename T1 = null_type,
-      typename T2 = null_type,
-      typename T3 = null_type,
-      typename T4 = null_type,
-      typename T5 = null_type,
-      typename T6 = null_type,
-      typename T7 = null_type,
-      typename T8 = null_type,
-      typename T9 = null_type,
-      typename T10 = null_type
-    >
-    class tuple;
-
-// forward declaration of cons
-    template<typename Head, typename Tail = null_type>
-    struct cons;
-
-    namespace detail {
-
-      // Takes a pointer and routes all assignments to whatever it points to
-      template<typename T>
-      struct assign_to_pointee
-      {
-      public:
-        explicit assign_to_pointee(T* p) : ptr(p) {}
-
-        template<typename Other>
-        assign_to_pointee& operator=(const Other& other)
-        {
-          *ptr = other;
-          return *this;
-        }
-
-      private:
-        T* ptr;
-      };
-
-      // Swallows any assignment
-      struct swallow_assign
-      {
-        template<typename T>
-        swallow_assign const& operator=(const T&) const
-        {
-          return *this;
-        }
-      };
-
-    template <typename T> struct add_const_reference : add_reference<typename add_const<T>::type> {};
-
-    template <class MyTail>
-    struct init_tail
-    {
-        // Each of vc6 and vc7 seem to require a different formulation
-        // of this return type
-        template <class H, class T>
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-        static typename add_reference<typename add_const<T>::type>::type
-#else
-        static typename add_const_reference<T>::type
-#endif
-        execute( cons<H,T> const& u, long )
-        {
-            return u.get_tail();
-        }
-    };
-
-    template <>
-    struct init_tail<null_type>
-    {
-        template <class H>
-        static null_type execute( cons<H,null_type> const& u, long )
-        {
-            return null_type();
-        }
-
-        template <class U>
-        static null_type execute(U const&, ...)
-        {
-            return null_type();
-        }
-     private:
-        template <class H, class T>
-        void execute( cons<H,T> const&, int);
-    };
-
-    template <class Other>
-    Other const&
-    init_head( Other const& u, ... )
-    {
-        return u;
-    }
-
-    template <class H, class T>
-    typename add_reference<typename add_const<H>::type>::type
-    init_head( cons<H,T> const& u, int )
-    {
-        return u.get_head();
-    }
-
-    inline char**** init_head(null_type const&, int);
-
-  } // end of namespace detail
-
-    // cons builds a heterogenous list of types
-   template<typename Head, typename Tail>
-   struct cons
-   {
-     typedef cons self_type;
-     typedef Head head_type;
-     typedef Tail tail_type;
-
-    private:
-       typedef typename boost::add_reference<head_type>::type head_ref;
-       typedef typename boost::add_reference<tail_type>::type tail_ref;
-       typedef typename detail::add_const_reference<head_type>::type head_cref;
-       typedef typename detail::add_const_reference<tail_type>::type tail_cref;
-    public:
-     head_type head;
-     tail_type tail;
-
-     head_ref get_head() { return head; }
-     tail_ref get_tail() { return tail; }
-
-     head_cref get_head() const { return head; }
-     tail_cref get_tail() const { return tail; }
-
-     cons() : head(), tail() {}
-
-#if defined BOOST_MSVC
-      template<typename Tail>
-      cons(head_cref h /* = head_type() */, // causes MSVC 6.5 to barf.
-                    const Tail& t) : head(h), tail(t.head, t.tail)
-      {
-      }
-
-      cons(head_cref h /* = head_type() */, // causes MSVC 6.5 to barf.
-                    const null_type& t) : head(h), tail(t)
-      {
-      }
-
-#else
-      template<typename T>
-      explicit cons(head_cref h, const T& t) :
-        head(h), tail(t.head, t.tail)
-      {
-      }
-
-      explicit cons(head_cref h = head_type(),
-                    tail_cref t = tail_type()) :
-        head(h), tail(t)
-      {
-      }
-#endif
-
-      template <class U>
-      cons( const U& u )
-        : head(detail::init_head(u, 0))
-        , tail(detail::init_tail<Tail>::execute(u, 0L))
-       {
-       }
-
-      template<typename Other>
-      cons& operator=(const Other& other)
-      {
-        head = other.head;
-        tail = other.tail;
-        return *this;
-      }
-    };
-
-    namespace detail {
-
-      // Determines if the parameter is null_type
-      template<typename T> struct is_null_type { enum { RET = 0 }; };
-      template<> struct is_null_type<null_type> { enum { RET = 1 }; };
-
-      /* Build a cons structure from the given Head and Tail. If both are null_type,
-      return null_type. */
-      template<typename Head, typename Tail>
-      struct build_cons
-      {
-      private:
-        enum { tail_is_null_type = is_null_type<Tail>::RET };
-      public:
-        typedef cons<Head, Tail> RET;
-      };
-
-      template<>
-      struct build_cons<null_type, null_type>
-      {
-        typedef null_type RET;
-      };
-
-      // Map the N elements of a tuple into a cons list
-      template<
-        typename T1,
-        typename T2 = null_type,
-        typename T3 = null_type,
-        typename T4 = null_type,
-        typename T5 = null_type,
-        typename T6 = null_type,
-        typename T7 = null_type,
-        typename T8 = null_type,
-        typename T9 = null_type,
-        typename T10 = null_type
-      >
-      struct map_tuple_to_cons
-      {
-        typedef typename detail::build_cons<T10, null_type  >::RET cons10;
-        typedef typename detail::build_cons<T9, cons10>::RET cons9;
-        typedef typename detail::build_cons<T8, cons9>::RET cons8;
-        typedef typename detail::build_cons<T7, cons8>::RET cons7;
-        typedef typename detail::build_cons<T6, cons7>::RET cons6;
-        typedef typename detail::build_cons<T5, cons6>::RET cons5;
-        typedef typename detail::build_cons<T4, cons5>::RET cons4;
-        typedef typename detail::build_cons<T3, cons4>::RET cons3;
-        typedef typename detail::build_cons<T2, cons3>::RET cons2;
-        typedef typename detail::build_cons<T1, cons2>::RET cons1;
-      };
-
-      // Workaround the lack of partial specialization in some compilers
-      template<int N>
-      struct _element_type
-      {
-        template<typename Tuple>
-        struct inner
-        {
-        private:
-          typedef typename Tuple::tail_type tail_type;
-          typedef _element_type<N-1> next_elt_type;
-
-        public:
-          typedef typename _element_type<N-1>::template inner<tail_type>::RET RET;
-        };
-      };
-
-      template<>
-      struct _element_type<0>
-      {
-        template<typename Tuple>
-        struct inner
-        {
-          typedef typename Tuple::head_type RET;
-        };
-      };
-
-    } // namespace detail
-
-
-    // Return the Nth type of the given Tuple
-    template<int N, typename Tuple>
-    struct element
-    {
-    private:
-      typedef detail::_element_type<N> nth_type;
-
-    public:
-      typedef typename nth_type::template inner<Tuple>::RET RET;
-      typedef RET type;
-    };
-
-    namespace detail {
-
-#if defined(BOOST_MSVC) && (BOOST_MSVC == 1300)
-      // special workaround for vc7:
-
-      template <bool x>
-      struct reference_adder
-      {
-         template <class T>
-         struct rebind
-         {
-            typedef T& type;
-         };
-      };
-
-      template <>
-      struct reference_adder<true>
-      {
-         template <class T>
-         struct rebind
-         {
-            typedef T type;
-         };
-      };
-
-
-      // Return a reference to the Nth type of the given Tuple
-      template<int N, typename Tuple>
-      struct element_ref
-      {
-      private:
-         typedef typename element<N, Tuple>::RET elt_type;
-         enum { is_ref = is_reference<elt_type>::value };
-
-      public:
-         typedef reference_adder<is_ref>::rebind<elt_type>::type RET;
-         typedef RET type;
-      };
-
-      // Return a const reference to the Nth type of the given Tuple
-      template<int N, typename Tuple>
-      struct element_const_ref
-      {
-      private:
-         typedef typename element<N, Tuple>::RET elt_type;
-         enum { is_ref = is_reference<elt_type>::value };
-
-      public:
-         typedef reference_adder<is_ref>::rebind<const elt_type>::type RET;
-         typedef RET type;
-      };
-
-#else // vc7
-
-      // Return a reference to the Nth type of the given Tuple
-      template<int N, typename Tuple>
-      struct element_ref
-      {
-      private:
-        typedef typename element<N, Tuple>::RET elt_type;
-
-      public:
-        typedef typename add_reference<elt_type>::type RET;
-        typedef RET type;
-      };
-
-      // Return a const reference to the Nth type of the given Tuple
-      template<int N, typename Tuple>
-      struct element_const_ref
-      {
-      private:
-        typedef typename element<N, Tuple>::RET elt_type;
-
-      public:
-        typedef typename add_reference<const elt_type>::type RET;
-        typedef RET type;
-      };
-#endif // vc7
-
-    } // namespace detail
-
-    // Get length of this tuple
-    template<typename Tuple>
-    struct length
-    {
-      BOOST_STATIC_CONSTANT(int, value = 1 + length<typename Tuple::tail_type>::value);
-    };
-
-    template<> struct length<tuple<> > {
-      BOOST_STATIC_CONSTANT(int, value = 0);
-    };
-
-    template<>
-    struct length<null_type>
-    {
-      BOOST_STATIC_CONSTANT(int, value = 0);
-    };
-
-    namespace detail {
-
-    // Reference the Nth element in a tuple and retrieve it with "get"
-    template<int N>
-    struct get_class
-    {
-      template<typename Head, typename Tail>
-      static inline
-      typename detail::element_ref<N, cons<Head, Tail> >::RET
-      get(cons<Head, Tail>& t)
-      {
-        return get_class<N-1>::get(t.tail);
-      }
-
-      template<typename Head, typename Tail>
-      static inline
-      typename detail::element_const_ref<N, cons<Head, Tail> >::RET
-      get(const cons<Head, Tail>& t)
-      {
-        return get_class<N-1>::get(t.tail);
-      }
-    };
-
-    template<>
-    struct get_class<0>
-    {
-      template<typename Head, typename Tail>
-      static inline
-      typename add_reference<Head>::type
-      get(cons<Head, Tail>& t)
-      {
-        return t.head;
-      }
-
-      template<typename Head, typename Tail>
-      static inline
-      typename add_reference<const Head>::type
-      get(const cons<Head, Tail>& t)
-      {
-        return t.head;
-      }
-    };
-
-    } // namespace detail
-
-    // tuple class
-    template<
-      typename T1,
-      typename T2,
-      typename T3,
-      typename T4,
-      typename T5,
-      typename T6,
-      typename T7,
-      typename T8,
-      typename T9,
-      typename T10
-    >
-    class tuple :
-      public detail::map_tuple_to_cons<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>::cons1
-    {
-    private:
-      typedef detail::map_tuple_to_cons<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> mapped_tuple;
-      typedef typename mapped_tuple::cons10 cons10;
-      typedef typename mapped_tuple::cons9 cons9;
-      typedef typename mapped_tuple::cons8 cons8;
-      typedef typename mapped_tuple::cons7 cons7;
-      typedef typename mapped_tuple::cons6 cons6;
-      typedef typename mapped_tuple::cons5 cons5;
-      typedef typename mapped_tuple::cons4 cons4;
-      typedef typename mapped_tuple::cons3 cons3;
-      typedef typename mapped_tuple::cons2 cons2;
-      typedef typename mapped_tuple::cons1 cons1;
-
-      typedef typename detail::add_const_reference<T1>::type t1_cref;
-      typedef typename detail::add_const_reference<T2>::type t2_cref;
-      typedef typename detail::add_const_reference<T3>::type t3_cref;
-      typedef typename detail::add_const_reference<T4>::type t4_cref;
-      typedef typename detail::add_const_reference<T5>::type t5_cref;
-      typedef typename detail::add_const_reference<T6>::type t6_cref;
-      typedef typename detail::add_const_reference<T7>::type t7_cref;
-      typedef typename detail::add_const_reference<T8>::type t8_cref;
-      typedef typename detail::add_const_reference<T9>::type t9_cref;
-      typedef typename detail::add_const_reference<T10>::type t10_cref;
-    public:
-      typedef cons1 inherited;
-      typedef tuple self_type;
-
-      tuple() : cons1(T1(), cons2(T2(), cons3(T3(), cons4(T4(), cons5(T5(), cons6(T6(),cons7(T7(),cons8(T8(),cons9(T9(),cons10(T10()))))))))))
-        {}
-
-      tuple(
-          t1_cref t1,
-          t2_cref t2,
-          t3_cref t3 = T3(),
-          t4_cref t4 = T4(),
-          t5_cref t5 = T5(),
-          t6_cref t6 = T6(),
-          t7_cref t7 = T7(),
-          t8_cref t8 = T8(),
-          t9_cref t9 = T9(),
-          t10_cref t10 = T10()
-      ) :
-        cons1(t1, cons2(t2, cons3(t3, cons4(t4, cons5(t5, cons6(t6,cons7(t7,cons8(t8,cons9(t9,cons10(t10))))))))))
-      {
-      }
-
-      explicit tuple(t1_cref t1)
-        : cons1(t1, cons2(T2(), cons3(T3(), cons4(T4(), cons5(T5(), cons6(T6(),cons7(T7(),cons8(T8(),cons9(T9(),cons10(T10()))))))))))
-      {}
-
-      template<typename Head, typename Tail>
-      tuple(const cons<Head, Tail>& other) :
-        cons1(other.head, other.tail)
-      {
-      }
-
-      template<typename First, typename Second>
-      self_type& operator=(const std::pair<First, Second>& other)
-      {
-        this->head = other.first;
-        this->tail.head = other.second;
-        return *this;
-      }
-
-      template<typename Head, typename Tail>
-      self_type& operator=(const cons<Head, Tail>& other)
-      {
-        this->head = other.head;
-        this->tail = other.tail;
-
-        return *this;
-      }
-    };
-
-    namespace detail {
-
-      template<int N> struct workaround_holder {};
-
-    } // namespace detail
-
-    template<int N, typename Head, typename Tail>
-    typename detail::element_ref<N, cons<Head, Tail> >::RET
-    get(cons<Head, Tail>& t, detail::workaround_holder<N>* = 0)
-    {
-      return detail::get_class<N>::get(t);
-    }
-
-    template<int N, typename Head, typename Tail>
-    typename detail::element_const_ref<N, cons<Head, Tail> >::RET
-    get(const cons<Head, Tail>& t, detail::workaround_holder<N>* = 0)
-    {
-      return detail::get_class<N>::get(t);
-    }
-
-    // Make a tuple
-    template<typename T1>
-    inline
-    tuple<T1>
-    make_tuple(const T1& t1)
-    {
-      return tuple<T1>(t1);
-    }
-
-    // Make a tuple
-    template<typename T1, typename T2>
-    inline
-    tuple<T1, T2>
-    make_tuple(const T1& t1, const T2& t2)
-    {
-      return tuple<T1, T2>(t1, t2);
-    }
-
-    // Make a tuple
-    template<typename T1, typename T2, typename T3>
-    inline
-    tuple<T1, T2, T3>
-    make_tuple(const T1& t1, const T2& t2, const T3& t3)
-    {
-      return tuple<T1, T2, T3>(t1, t2, t3);
-    }
-
-    // Make a tuple
-    template<typename T1, typename T2, typename T3, typename T4>
-    inline
-    tuple<T1, T2, T3, T4>
-    make_tuple(const T1& t1, const T2& t2, const T3& t3, const T4& t4)
-    {
-      return tuple<T1, T2, T3, T4>(t1, t2, t3, t4);
-    }
-
-    // Make a tuple
-    template<typename T1, typename T2, typename T3, typename T4, typename T5>
-    inline
-    tuple<T1, T2, T3, T4, T5>
-    make_tuple(const T1& t1, const T2& t2, const T3& t3, const T4& t4, const T5& t5)
-    {
-      return tuple<T1, T2, T3, T4, T5>(t1, t2, t3, t4, t5);
-    }
-
-    // Make a tuple
-    template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6>
-    inline
-    tuple<T1, T2, T3, T4, T5, T6>
-    make_tuple(const T1& t1, const T2& t2, const T3& t3, const T4& t4, const T5& t5, const T6& t6)
-    {
-      return tuple<T1, T2, T3, T4, T5, T6>(t1, t2, t3, t4, t5, t6);
-    }
-
-    // Make a tuple
-    template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7>
-    inline
-    tuple<T1, T2, T3, T4, T5, T6, T7>
-    make_tuple(const T1& t1, const T2& t2, const T3& t3, const T4& t4, const T5& t5, const T6& t6, const T7& t7)
-    {
-      return tuple<T1, T2, T3, T4, T5, T6, T7>(t1, t2, t3, t4, t5, t6, t7);
-    }
-
-    // Make a tuple
-    template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8>
-    inline
-    tuple<T1, T2, T3, T4, T5, T6, T7, T8>
-    make_tuple(const T1& t1, const T2& t2, const T3& t3, const T4& t4, const T5& t5, const T6& t6, const T7& t7, const T8& t8)
-    {
-      return tuple<T1, T2, T3, T4, T5, T6, T7, T8>(t1, t2, t3, t4, t5, t6, t7, t8);
-    }
-
-    // Make a tuple
-    template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9>
-    inline
-    tuple<T1, T2, T3, T4, T5, T6, T7, T8, T9>
-    make_tuple(const T1& t1, const T2& t2, const T3& t3, const T4& t4, const T5& t5, const T6& t6, const T7& t7, const T8& t8, const T9& t9)
-    {
-      return tuple<T1, T2, T3, T4, T5, T6, T7, T8, T9>(t1, t2, t3, t4, t5, t6, t7, t8, t9);
-    }
-
-    // Make a tuple
-    template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10>
-    inline
-    tuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>
-    make_tuple(const T1& t1, const T2& t2, const T3& t3, const T4& t4, const T5& t5, const T6& t6, const T7& t7, const T8& t8, const T9& t9, const T10& t10)
-    {
-      return tuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10);
-    }
-
-    // Tie variables into a tuple
-    template<typename T1>
-    inline
-    tuple<detail::assign_to_pointee<T1> >
-    tie(T1& t1)
-    {
-      return make_tuple(detail::assign_to_pointee<T1>(&t1));
-    }
-
-    // Tie variables into a tuple
-    template<typename T1, typename T2>
-    inline
-    tuple<detail::assign_to_pointee<T1>,
-      detail::assign_to_pointee<T2> >
-    tie(T1& t1, T2& t2)
-    {
-      return make_tuple(detail::assign_to_pointee<T1>(&t1),
-                        detail::assign_to_pointee<T2>(&t2));
-    }
-
-    // Tie variables into a tuple
-    template<typename T1, typename T2, typename T3>
-    inline
-    tuple<detail::assign_to_pointee<T1>,
-      detail::assign_to_pointee<T2>,
-      detail::assign_to_pointee<T3> >
-    tie(T1& t1, T2& t2, T3& t3)
-    {
-      return make_tuple(detail::assign_to_pointee<T1>(&t1),
-                        detail::assign_to_pointee<T2>(&t2),
-                        detail::assign_to_pointee<T3>(&t3));
-    }
-
-    // Tie variables into a tuple
-    template<typename T1, typename T2, typename T3, typename T4>
-    inline
-    tuple<detail::assign_to_pointee<T1>,
-      detail::assign_to_pointee<T2>,
-      detail::assign_to_pointee<T3>,
-      detail::assign_to_pointee<T4> >
-    tie(T1& t1, T2& t2, T3& t3, T4& t4)
-    {
-      return make_tuple(detail::assign_to_pointee<T1>(&t1),
-                        detail::assign_to_pointee<T2>(&t2),
-                        detail::assign_to_pointee<T3>(&t3),
-                        detail::assign_to_pointee<T4>(&t4));
-    }
-
-    // Tie variables into a tuple
-    template<typename T1, typename T2, typename T3, typename T4, typename T5>
-    inline
-    tuple<detail::assign_to_pointee<T1>,
-      detail::assign_to_pointee<T2>,
-      detail::assign_to_pointee<T3>,
-      detail::assign_to_pointee<T4>,
-      detail::assign_to_pointee<T5> >
-    tie(T1& t1, T2& t2, T3& t3, T4& t4, T5 &t5)
-    {
-      return make_tuple(detail::assign_to_pointee<T1>(&t1),
-                        detail::assign_to_pointee<T2>(&t2),
-                        detail::assign_to_pointee<T3>(&t3),
-                        detail::assign_to_pointee<T4>(&t4),
-                        detail::assign_to_pointee<T5>(&t5));
-    }
-
-    // Tie variables into a tuple
-    template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6>
-    inline
-    tuple<detail::assign_to_pointee<T1>,
-      detail::assign_to_pointee<T2>,
-      detail::assign_to_pointee<T3>,
-      detail::assign_to_pointee<T4>,
-      detail::assign_to_pointee<T5>,
-      detail::assign_to_pointee<T6> >
-    tie(T1& t1, T2& t2, T3& t3, T4& t4, T5 &t5, T6 &t6)
-    {
-      return make_tuple(detail::assign_to_pointee<T1>(&t1),
-                        detail::assign_to_pointee<T2>(&t2),
-                        detail::assign_to_pointee<T3>(&t3),
-                        detail::assign_to_pointee<T4>(&t4),
-                        detail::assign_to_pointee<T5>(&t5),
-                        detail::assign_to_pointee<T6>(&t6));
-    }
-
-    // Tie variables into a tuple
-    template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7>
-    inline
-    tuple<detail::assign_to_pointee<T1>,
-      detail::assign_to_pointee<T2>,
-      detail::assign_to_pointee<T3>,
-      detail::assign_to_pointee<T4>,
-      detail::assign_to_pointee<T5>,
-      detail::assign_to_pointee<T6>,
-      detail::assign_to_pointee<T7> >
-    tie(T1& t1, T2& t2, T3& t3, T4& t4, T5 &t5, T6 &t6, T7 &t7)
-    {
-      return make_tuple(detail::assign_to_pointee<T1>(&t1),
-                        detail::assign_to_pointee<T2>(&t2),
-                        detail::assign_to_pointee<T3>(&t3),
-                        detail::assign_to_pointee<T4>(&t4),
-                        detail::assign_to_pointee<T5>(&t5),
-                        detail::assign_to_pointee<T6>(&t6),
-                        detail::assign_to_pointee<T7>(&t7));
-    }
-
-    // Tie variables into a tuple
-    template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8>
-    inline
-    tuple<detail::assign_to_pointee<T1>,
-      detail::assign_to_pointee<T2>,
-      detail::assign_to_pointee<T3>,
-      detail::assign_to_pointee<T4>,
-      detail::assign_to_pointee<T5>,
-      detail::assign_to_pointee<T6>,
-      detail::assign_to_pointee<T7>,
-      detail::assign_to_pointee<T8> >
-    tie(T1& t1, T2& t2, T3& t3, T4& t4, T5 &t5, T6 &t6, T7 &t7, T8 &t8)
-    {
-      return make_tuple(detail::assign_to_pointee<T1>(&t1),
-                        detail::assign_to_pointee<T2>(&t2),
-                        detail::assign_to_pointee<T3>(&t3),
-                        detail::assign_to_pointee<T4>(&t4),
-                        detail::assign_to_pointee<T5>(&t5),
-                        detail::assign_to_pointee<T6>(&t6),
-                        detail::assign_to_pointee<T7>(&t7),
-                        detail::assign_to_pointee<T8>(&t8));
-    }
-
-    // Tie variables into a tuple
-    template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9>
-    inline
-    tuple<detail::assign_to_pointee<T1>,
-      detail::assign_to_pointee<T2>,
-      detail::assign_to_pointee<T3>,
-      detail::assign_to_pointee<T4>,
-      detail::assign_to_pointee<T5>,
-      detail::assign_to_pointee<T6>,
-      detail::assign_to_pointee<T7>,
-      detail::assign_to_pointee<T8>,
-      detail::assign_to_pointee<T9> >
-    tie(T1& t1, T2& t2, T3& t3, T4& t4, T5 &t5, T6 &t6, T7 &t7, T8 &t8, T9 &t9)
-    {
-      return make_tuple(detail::assign_to_pointee<T1>(&t1),
-                        detail::assign_to_pointee<T2>(&t2),
-                        detail::assign_to_pointee<T3>(&t3),
-                        detail::assign_to_pointee<T4>(&t4),
-                        detail::assign_to_pointee<T5>(&t5),
-                        detail::assign_to_pointee<T6>(&t6),
-                        detail::assign_to_pointee<T7>(&t7),
-                        detail::assign_to_pointee<T8>(&t8),
-                        detail::assign_to_pointee<T9>(&t9));
-    }
-    // Tie variables into a tuple
-    template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10>
-    inline
-    tuple<detail::assign_to_pointee<T1>,
-      detail::assign_to_pointee<T2>,
-      detail::assign_to_pointee<T3>,
-      detail::assign_to_pointee<T4>,
-      detail::assign_to_pointee<T5>,
-      detail::assign_to_pointee<T6>,
-      detail::assign_to_pointee<T7>,
-      detail::assign_to_pointee<T8>,
-      detail::assign_to_pointee<T9>,
-      detail::assign_to_pointee<T10> >
-    tie(T1& t1, T2& t2, T3& t3, T4& t4, T5 &t5, T6 &t6, T7 &t7, T8 &t8, T9 &t9, T10 &t10)
-    {
-      return make_tuple(detail::assign_to_pointee<T1>(&t1),
-                        detail::assign_to_pointee<T2>(&t2),
-                        detail::assign_to_pointee<T3>(&t3),
-                        detail::assign_to_pointee<T4>(&t4),
-                        detail::assign_to_pointee<T5>(&t5),
-                        detail::assign_to_pointee<T6>(&t6),
-                        detail::assign_to_pointee<T7>(&t7),
-                        detail::assign_to_pointee<T8>(&t8),
-                        detail::assign_to_pointee<T9>(&t9),
-                        detail::assign_to_pointee<T10>(&t10));
-    }
-    // "ignore" allows tuple positions to be ignored when using "tie".
-
-detail::swallow_assign const ignore = detail::swallow_assign();
-
-template <class T0, class T1, class T2, class T3, class T4,
-          class T5, class T6, class T7, class T8, class T9>
-void swap(tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>& lhs,
-          tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>& rhs);
-inline void swap(null_type&, null_type&) {}
-template<class HH>
-inline void swap(cons<HH, null_type>& lhs, cons<HH, null_type>& rhs) {
-  ::boost::swap(lhs.head, rhs.head);
-}
-template<class HH, class TT>
-inline void swap(cons<HH, TT>& lhs, cons<HH, TT>& rhs) {
-  ::boost::swap(lhs.head, rhs.head);
-  ::boost::tuples::swap(lhs.tail, rhs.tail);
-}
-template <class T0, class T1, class T2, class T3, class T4,
-          class T5, class T6, class T7, class T8, class T9>
-inline void swap(tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>& lhs,
-          tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>& rhs) {
-  typedef tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> tuple_type;
-  typedef typename tuple_type::inherited base;
-  ::boost::tuples::swap(static_cast<base&>(lhs), static_cast<base&>(rhs));
-}
-
-} // namespace tuples
-} // namespace boost
-#endif // BOOST_TUPLE_BASIC_NO_PARTIAL_SPEC_HPP
diff --git a/boost/tuple/tuple.hpp b/boost/tuple/tuple.hpp
deleted file mode 100644
index 7703597..0000000
--- a/boost/tuple/tuple.hpp
+++ /dev/null
@@ -1,90 +0,0 @@
-//  tuple.hpp - Boost Tuple Library --------------------------------------
-
-// Copyright (C) 1999, 2000 Jaakko Jarvi (jaakko.jarvi at cs.utu.fi)
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-// For more information, see http://www.boost.org
-
-// ----------------------------------------------------------------- 
-
-#ifndef BOOST_TUPLE_HPP
-#define BOOST_TUPLE_HPP
-
-#if defined(__sgi) && defined(_COMPILER_VERSION) && _COMPILER_VERSION <= 730
-// Work around a compiler bug.
-// boost::python::tuple has to be seen by the compiler before the
-// boost::tuple class template.
-namespace boost { namespace python { class tuple; }}
-#endif
-
-#include "boost/config.hpp"
-#include "boost/static_assert.hpp"
-
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-// The MSVC version
-#include "boost/tuple/detail/tuple_basic_no_partial_spec.hpp"
-
-#else
-// other compilers
-#include "boost/ref.hpp"
-#include "boost/tuple/detail/tuple_basic.hpp"
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-namespace boost {    
-
-using tuples::tuple;
-using tuples::make_tuple;
-using tuples::tie;
-#if !defined(BOOST_NO_USING_TEMPLATE)
-using tuples::get;
-#elif !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-//
-// The "using tuples::get" statement causes the
-// Borland compiler to ICE, use forwarding
-// functions instead:
-//
-template<int N, class HT, class TT>
-inline typename tuples::access_traits<
-                  typename tuples::element<N, tuples::cons<HT, TT> >::type
-                >::non_const_type
-get(tuples::cons<HT, TT>& c) {
-  return tuples::get<N,HT,TT>(c);
-} 
-// get function for const cons-lists, returns a const reference to
-// the element. If the element is a reference, returns the reference
-// as such (that is, can return a non-const reference)
-template<int N, class HT, class TT>
-inline typename tuples::access_traits<
-                  typename tuples::element<N, tuples::cons<HT, TT> >::type
-                >::const_type
-get(const tuples::cons<HT, TT>& c) {
-  return tuples::get<N,HT,TT>(c);
-}
-#else  // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-//
-// MSVC, using declarations don't mix with templates well,
-// so use forwarding functions instead:
-//
-template<int N, typename Head, typename Tail>
-typename tuples::detail::element_ref<N, tuples::cons<Head, Tail> >::RET
-get(tuples::cons<Head, Tail>& t, tuples::detail::workaround_holder<N>* = 0)
-{
-   return tuples::detail::get_class<N>::get(t);
-}
-
-template<int N, typename Head, typename Tail>
-typename tuples::detail::element_const_ref<N, tuples::cons<Head, Tail> >::RET
-get(const tuples::cons<Head, Tail>& t, tuples::detail::workaround_holder<N>* = 0)
-{
-   return tuples::detail::get_class<N>::get(t);
-}
-#endif // BOOST_NO_USING_TEMPLATE
-   
-} // end namespace boost
-
-
-#endif // BOOST_TUPLE_HPP
diff --git a/boost/tuple/tuple_comparison.hpp b/boost/tuple/tuple_comparison.hpp
deleted file mode 100644
index 73723a1..0000000
--- a/boost/tuple/tuple_comparison.hpp
+++ /dev/null
@@ -1,175 +0,0 @@
-// tuple_comparison.hpp -----------------------------------------------------
-//  
-// Copyright (C) 2001 Jaakko Jarvi (jaakko.jarvi at cs.utu.fi)
-// Copyright (C) 2001 Gary Powell (gary.powell at sierra.com)
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-// 
-// For more information, see http://www.boost.org
-// 
-// (The idea and first impl. of comparison operators was from Doug Gregor)
-
-// ----------------------------------------------------------------- 
-
-#ifndef BOOST_TUPLE_COMPARISON_HPP
-#define BOOST_TUPLE_COMPARISON_HPP
-
-#include "boost/tuple/tuple.hpp"
-
-// -------------------------------------------------------------
-// equality and comparison operators 
-//
-// == and != compare tuples elementwise
-// <, >, <= and >= use lexicographical ordering
-//
-// Any operator between tuples of different length fails at compile time
-// No dependencies between operators are assumed 
-// (i.e. !(a<b)  does not imply a>=b, a!=b does not imply a==b etc.
-// so any weirdnesses of elementary operators are respected).
-//
-// -------------------------------------------------------------
-
-
-namespace boost {
-namespace tuples {
-
-inline bool operator==(const null_type&, const null_type&) { return true; }
-inline bool operator>=(const null_type&, const null_type&) { return true; }
-inline bool operator<=(const null_type&, const null_type&) { return true; }
-inline bool operator!=(const null_type&, const null_type&) { return false; }
-inline bool operator<(const null_type&, const null_type&) { return false; }
-inline bool operator>(const null_type&, const null_type&) { return false; }
-
-
-namespace detail {
-  // comparison operators check statically the length of its operands and
-  // delegate the comparing task to the following functions. Hence
-  // the static check is only made once (should help the compiler).  
-  // These functions assume tuples to be of the same length.
-
-
-template<class T1, class T2>
-inline bool eq(const T1& lhs, const T2& rhs) {
-  return lhs.get_head() == rhs.get_head() &&
-         eq(lhs.get_tail(), rhs.get_tail());
-}
-template<>
-inline bool eq<null_type,null_type>(const null_type&, const null_type&) { return true; }
-
-template<class T1, class T2>
-inline bool neq(const T1& lhs, const T2& rhs) {
-  return lhs.get_head() != rhs.get_head()  ||
-         neq(lhs.get_tail(), rhs.get_tail());
-}
-template<>
-inline bool neq<null_type,null_type>(const null_type&, const null_type&) { return false; }
-
-template<class T1, class T2>
-inline bool lt(const T1& lhs, const T2& rhs) {
-  return lhs.get_head() < rhs.get_head()  ||
-          ( !(rhs.get_head() < lhs.get_head()) &&
-            lt(lhs.get_tail(), rhs.get_tail()));
-}
-template<>
-inline bool lt<null_type,null_type>(const null_type&, const null_type&) { return false; }
-
-template<class T1, class T2>
-inline bool gt(const T1& lhs, const T2& rhs) {
-  return lhs.get_head() > rhs.get_head()  ||
-          ( !(rhs.get_head() > lhs.get_head()) &&
-            gt(lhs.get_tail(), rhs.get_tail()));
-}
-template<>
-inline bool gt<null_type,null_type>(const null_type&, const null_type&) { return false; }
-
-template<class T1, class T2>
-inline bool lte(const T1& lhs, const T2& rhs) {
-  return lhs.get_head() <= rhs.get_head()  &&
-          ( !(rhs.get_head() <= lhs.get_head()) ||
-            lte(lhs.get_tail(), rhs.get_tail()));
-}
-template<>
-inline bool lte<null_type,null_type>(const null_type&, const null_type&) { return true; }
-
-template<class T1, class T2>
-inline bool gte(const T1& lhs, const T2& rhs) {
-  return lhs.get_head() >= rhs.get_head()  &&
-          ( !(rhs.get_head() >= lhs.get_head()) ||
-            gte(lhs.get_tail(), rhs.get_tail()));
-}
-template<>
-inline bool gte<null_type,null_type>(const null_type&, const null_type&) { return true; }
-
-} // end of namespace detail
-
-
-// equal ----
-
-template<class T1, class T2, class S1, class S2>
-inline bool operator==(const cons<T1, T2>& lhs, const cons<S1, S2>& rhs)
-{
-  // check that tuple lengths are equal
-  BOOST_STATIC_ASSERT(length<T2>::value == length<S2>::value);
-
-  return  detail::eq(lhs, rhs);
-}
-
-// not equal -----
-
-template<class T1, class T2, class S1, class S2>
-inline bool operator!=(const cons<T1, T2>& lhs, const cons<S1, S2>& rhs)
-{
-
-  // check that tuple lengths are equal
-  BOOST_STATIC_ASSERT(length<T2>::value == length<S2>::value);
-
-  return detail::neq(lhs, rhs);
-}
-
-// <
-template<class T1, class T2, class S1, class S2>
-inline bool operator<(const cons<T1, T2>& lhs, const cons<S1, S2>& rhs)
-{
-  // check that tuple lengths are equal
-  BOOST_STATIC_ASSERT(length<T2>::value == length<S2>::value);
-
-  return detail::lt(lhs, rhs);
-}
-
-// >
-template<class T1, class T2, class S1, class S2>
-inline bool operator>(const cons<T1, T2>& lhs, const cons<S1, S2>& rhs)
-{
-  // check that tuple lengths are equal
-  BOOST_STATIC_ASSERT(length<T2>::value == length<S2>::value);
-
-  return detail::gt(lhs, rhs);
-}
-
-// <=
-template<class T1, class T2, class S1, class S2>
-inline bool operator<=(const cons<T1, T2>& lhs, const cons<S1, S2>& rhs)
-{
-  // check that tuple lengths are equal
-  BOOST_STATIC_ASSERT(length<T2>::value == length<S2>::value);
-
-  return detail::lte(lhs, rhs);
-}
-
-// >=
-template<class T1, class T2, class S1, class S2>
-inline bool operator>=(const cons<T1, T2>& lhs, const cons<S1, S2>& rhs)
-{
-  // check that tuple lengths are equal
-  BOOST_STATIC_ASSERT(length<T2>::value == length<S2>::value);
-
-  return detail::gte(lhs, rhs);
-}
-
-} // end of namespace tuples
-} // end of namespace boost
-
-
-#endif // BOOST_TUPLE_COMPARISON_HPP
diff --git a/boost/type.hpp b/boost/type.hpp
deleted file mode 100644
index ab81c91..0000000
--- a/boost/type.hpp
+++ /dev/null
@@ -1,18 +0,0 @@
-// (C) Copyright David Abrahams 2001.
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_TYPE_DWA20010120_HPP
-# define BOOST_TYPE_DWA20010120_HPP
-
-namespace boost {
-
-  // Just a simple "type envelope". Useful in various contexts, mostly to work
-  // around some MSVC deficiencies.
-  template <class T>
-  struct type {};
-
-}
-
-#endif // BOOST_TYPE_DWA20010120_HPP
diff --git a/boost/type_traits.hpp b/boost/type_traits.hpp
deleted file mode 100644
index 9267a71..0000000
--- a/boost/type_traits.hpp
+++ /dev/null
@@ -1,101 +0,0 @@
-//  (C) Copyright John Maddock 2000.
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-//  See boost/type_traits/*.hpp for full copyright notices.
-
-#ifndef BOOST_TYPE_TRAITS_HPP
-#define BOOST_TYPE_TRAITS_HPP
-
-#include "boost/type_traits/add_const.hpp"
-#include "boost/type_traits/add_cv.hpp"
-#include "boost/type_traits/add_lvalue_reference.hpp"
-#include "boost/type_traits/add_pointer.hpp"
-#include "boost/type_traits/add_reference.hpp"
-#include "boost/type_traits/add_rvalue_reference.hpp"
-#include "boost/type_traits/add_volatile.hpp"
-#include "boost/type_traits/aligned_storage.hpp"
-#include "boost/type_traits/alignment_of.hpp"
-#include "boost/type_traits/common_type.hpp"
-#include "boost/type_traits/conditional.hpp"
-#include "boost/type_traits/decay.hpp"
-#include "boost/type_traits/extent.hpp"
-#include "boost/type_traits/floating_point_promotion.hpp"
-#include "boost/type_traits/function_traits.hpp"
-#if !defined(__BORLANDC__) && !defined(__CUDACC__)
-#include "boost/type_traits/has_new_operator.hpp"
-#endif
-#include "boost/type_traits/has_nothrow_assign.hpp"
-#include "boost/type_traits/has_nothrow_constructor.hpp"
-#include "boost/type_traits/has_nothrow_copy.hpp"
-#include "boost/type_traits/has_nothrow_destructor.hpp"
-#include <boost/type_traits/has_operator.hpp>
-#include "boost/type_traits/has_trivial_assign.hpp"
-#include "boost/type_traits/has_trivial_constructor.hpp"
-#include "boost/type_traits/has_trivial_copy.hpp"
-#include "boost/type_traits/has_trivial_destructor.hpp"
-#include "boost/type_traits/has_trivial_move_assign.hpp"
-#include "boost/type_traits/has_trivial_move_constructor.hpp"
-#include "boost/type_traits/has_virtual_destructor.hpp"
-#include "boost/type_traits/is_abstract.hpp"
-#include "boost/type_traits/is_arithmetic.hpp"
-#include "boost/type_traits/is_array.hpp"
-#include "boost/type_traits/is_base_and_derived.hpp"
-#include "boost/type_traits/is_base_of.hpp"
-#include "boost/type_traits/is_class.hpp"
-#include <boost/type_traits/is_complex.hpp>
-#include "boost/type_traits/is_compound.hpp"
-#include "boost/type_traits/is_const.hpp"
-#include "boost/type_traits/is_convertible.hpp"
-#include "boost/type_traits/is_copy_constructible.hpp"
-#include "boost/type_traits/is_empty.hpp"
-#include "boost/type_traits/is_enum.hpp"
-#include "boost/type_traits/is_float.hpp"
-#include "boost/type_traits/is_floating_point.hpp"
-#include "boost/type_traits/is_function.hpp"
-#include "boost/type_traits/is_fundamental.hpp"
-#include "boost/type_traits/is_integral.hpp"
-#include "boost/type_traits/is_lvalue_reference.hpp"
-#include "boost/type_traits/is_member_function_pointer.hpp"
-#include "boost/type_traits/is_member_object_pointer.hpp"
-#include "boost/type_traits/is_member_pointer.hpp"
-#include "boost/type_traits/is_nothrow_move_assignable.hpp"
-#include "boost/type_traits/is_nothrow_move_constructible.hpp"
-#include "boost/type_traits/is_object.hpp"
-#include "boost/type_traits/is_pod.hpp"
-#include "boost/type_traits/is_polymorphic.hpp"
-#include "boost/type_traits/is_pointer.hpp"
-#include "boost/type_traits/is_reference.hpp"
-#include "boost/type_traits/is_rvalue_reference.hpp"
-#include "boost/type_traits/is_signed.hpp"
-#include "boost/type_traits/is_same.hpp"
-#include "boost/type_traits/is_scalar.hpp"
-#include "boost/type_traits/is_stateless.hpp"
-#include "boost/type_traits/is_union.hpp"
-#include "boost/type_traits/is_unsigned.hpp"
-#include "boost/type_traits/is_void.hpp"
-#include "boost/type_traits/is_virtual_base_of.hpp"
-#include "boost/type_traits/is_volatile.hpp"
-#include <boost/type_traits/make_unsigned.hpp>
-#include <boost/type_traits/make_signed.hpp>
-#include "boost/type_traits/rank.hpp"
-#include "boost/type_traits/remove_bounds.hpp"
-#include "boost/type_traits/remove_extent.hpp"
-#include "boost/type_traits/remove_all_extents.hpp"
-#include "boost/type_traits/remove_const.hpp"
-#include "boost/type_traits/remove_cv.hpp"
-#include "boost/type_traits/remove_pointer.hpp"
-#include "boost/type_traits/remove_reference.hpp"
-#include "boost/type_traits/remove_volatile.hpp"
-#include "boost/type_traits/type_with_alignment.hpp"
-#if !(defined(__sgi) && defined(__EDG_VERSION__) && (__EDG_VERSION__ == 238))
-#include "boost/type_traits/integral_promotion.hpp"
-#include "boost/type_traits/promote.hpp"
-#endif
-
-#include "boost/type_traits/ice.hpp"
-
-#endif // BOOST_TYPE_TRAITS_HPP
diff --git a/boost/type_traits/add_const.hpp b/boost/type_traits/add_const.hpp
deleted file mode 100644
index 29f0bd9..0000000
--- a/boost/type_traits/add_const.hpp
+++ /dev/null
@@ -1,47 +0,0 @@
-
-//  (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-//  Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_ADD_CONST_HPP_INCLUDED
-#define BOOST_TT_ADD_CONST_HPP_INCLUDED
-
-#include <boost/config.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/type_trait_def.hpp>
-
-namespace boost {
-
-// * convert a type T to const type - add_const<T>
-// this is not required since the result is always
-// the same as "T const", but it does suppress warnings
-// from some compilers:
-
-#if defined(BOOST_MSVC)
-// This bogus warning will appear when add_const is applied to a
-// const volatile reference because we can't detect const volatile
-// references with MSVC6.
-#   pragma warning(push)
-#   pragma warning(disable:4181) // warning C4181: qualifier applied to reference type ignored
-#endif 
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(add_const,T,T const)
-
-#if defined(BOOST_MSVC)
-#   pragma warning(pop)
-#endif 
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,add_const,T&,T&)
-#endif
-
-} // namespace boost
-
-#include <boost/type_traits/detail/type_trait_undef.hpp>
-
-#endif // BOOST_TT_ADD_CONST_HPP_INCLUDED
diff --git a/boost/type_traits/add_cv.hpp b/boost/type_traits/add_cv.hpp
deleted file mode 100644
index bfde76a..0000000
--- a/boost/type_traits/add_cv.hpp
+++ /dev/null
@@ -1,48 +0,0 @@
-
-//  (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-//  Hinnant & John Maddock 2000.  
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-
-#ifndef BOOST_TT_ADD_CV_HPP_INCLUDED
-#define BOOST_TT_ADD_CV_HPP_INCLUDED
-
-#include <boost/config.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/type_trait_def.hpp>
-
-namespace boost {
-
-// * convert a type T to a const volatile type - add_cv<T>
-// this is not required since the result is always
-// the same as "T const volatile", but it does suppress warnings
-// from some compilers:
-
-#if defined(BOOST_MSVC)
-// This bogus warning will appear when add_volatile is applied to a
-// const volatile reference because we can't detect const volatile
-// references with MSVC6.
-#   pragma warning(push)
-#   pragma warning(disable:4181) // warning C4181: qualifier applied to reference type ignored
-#endif 
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(add_cv,T,T const volatile)
-
-#if defined(BOOST_MSVC)
-#   pragma warning(pop)
-#endif 
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,add_cv,T&,T&)
-#endif
-
-} // namespace boost
-
-#include <boost/type_traits/detail/type_trait_undef.hpp>
-
-#endif // BOOST_TT_ADD_CV_HPP_INCLUDED
diff --git a/boost/type_traits/add_lvalue_reference.hpp b/boost/type_traits/add_lvalue_reference.hpp
deleted file mode 100644
index 1d75794..0000000
--- a/boost/type_traits/add_lvalue_reference.hpp
+++ /dev/null
@@ -1,26 +0,0 @@
-//  Copyright 2010 John Maddock
-
-//  Distributed under the Boost Software License, Version 1.0.
-//  See http://www.boost.org/LICENSE_1_0.txt
-
-#ifndef BOOST_TYPE_TRAITS_EXT_ADD_LVALUE_REFERENCE__HPP
-#define BOOST_TYPE_TRAITS_EXT_ADD_LVALUE_REFERENCE__HPP
-
-#include <boost/type_traits/add_reference.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/type_trait_def.hpp>
-
-namespace boost{
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(add_lvalue_reference,T,typename boost::add_reference<T>::type)
-
-#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,add_lvalue_reference,T&&,T&)
-#endif
-
-}
-
-#include <boost/type_traits/detail/type_trait_undef.hpp>
-
-#endif  // BOOST_TYPE_TRAITS_EXT_ADD_LVALUE_REFERENCE__HPP
diff --git a/boost/type_traits/add_pointer.hpp b/boost/type_traits/add_pointer.hpp
deleted file mode 100644
index 3e0e481..0000000
--- a/boost/type_traits/add_pointer.hpp
+++ /dev/null
@@ -1,72 +0,0 @@
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_ADD_POINTER_HPP_INCLUDED
-#define BOOST_TT_ADD_POINTER_HPP_INCLUDED
-
-#include <boost/type_traits/remove_reference.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/type_trait_def.hpp>
-
-namespace boost {
-
-namespace detail {
-
-#if defined(__BORLANDC__) && (__BORLANDC__ < 0x5A0)
-//
-// For some reason this implementation stops Borlands compiler
-// from dropping cv-qualifiers, it still fails with references
-// to arrays for some reason though (shrug...) (JM 20021104)
-//
-template <typename T>
-struct add_pointer_impl
-{
-    typedef T* type;
-};
-template <typename T>
-struct add_pointer_impl<T&>
-{
-    typedef T* type;
-};
-template <typename T>
-struct add_pointer_impl<T&const>
-{
-    typedef T* type;
-};
-template <typename T>
-struct add_pointer_impl<T&volatile>
-{
-    typedef T* type;
-};
-template <typename T>
-struct add_pointer_impl<T&const volatile>
-{
-    typedef T* type;
-};
-
-#else
-
-template <typename T>
-struct add_pointer_impl
-{
-    typedef typename remove_reference<T>::type no_ref_type;
-    typedef no_ref_type* type;
-};
-
-#endif
-
-} // namespace detail
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(add_pointer,T,typename boost::detail::add_pointer_impl<T>::type)
-
-} // namespace boost
-
-#include <boost/type_traits/detail/type_trait_undef.hpp>
-
-#endif // BOOST_TT_ADD_POINTER_HPP_INCLUDED
diff --git a/boost/type_traits/add_reference.hpp b/boost/type_traits/add_reference.hpp
deleted file mode 100644
index f926a53..0000000
--- a/boost/type_traits/add_reference.hpp
+++ /dev/null
@@ -1,107 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_ADD_REFERENCE_HPP_INCLUDED
-#define BOOST_TT_ADD_REFERENCE_HPP_INCLUDED
-
-#include <boost/type_traits/is_reference.hpp>
-#include <boost/detail/workaround.hpp>
-#include <boost/config.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/type_trait_def.hpp>
-
-namespace boost {
-
-namespace detail {
-
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && defined(BOOST_MSVC6_MEMBER_TEMPLATES)
-
-template <bool x>
-struct reference_adder
-{
-    template <typename T> struct result_
-    {
-        typedef T& type;
-    };
-};
-
-template <>
-struct reference_adder<true>
-{
-    template <typename T> struct result_
-    {
-        typedef T type;
-    };
-};
-
-template <typename T>
-struct add_reference_impl
-{
-    typedef typename reference_adder<
-          ::boost::is_reference<T>::value
-        >::template result_<T> result;
-
-    typedef typename result::type type;
-};
-
-#else
-//
-// We can't filter out rvalue_references at the same level as
-// references or we get ambiguities from msvc:
-//
-
-template <typename T>
-struct add_reference_rvalue_layer
-{
-    typedef T& type;
-};
-
-#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
-template <typename T>
-struct add_reference_rvalue_layer<T&&>
-{
-    typedef T&& type;
-};
-#endif
-
-template <typename T>
-struct add_reference_impl
-{
-    typedef typename add_reference_rvalue_layer<T>::type type;
-};
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-BOOST_TT_AUX_TYPE_TRAIT_IMPL_PARTIAL_SPEC1_1(typename T,add_reference,T&,T&)
-#endif
-
-#endif
-
-// these full specialisations are always required:
-BOOST_TT_AUX_TYPE_TRAIT_IMPL_SPEC1(add_reference,void,void)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_TYPE_TRAIT_IMPL_SPEC1(add_reference,void const,void const)
-BOOST_TT_AUX_TYPE_TRAIT_IMPL_SPEC1(add_reference,void volatile,void volatile)
-BOOST_TT_AUX_TYPE_TRAIT_IMPL_SPEC1(add_reference,void const volatile,void const volatile)
-#endif
-
-} // namespace detail
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(add_reference,T,typename boost::detail::add_reference_impl<T>::type)
-
-// agurt, 07/mar/03: workaround Borland's ill-formed sensitivity to an additional
-// level of indirection, here
-#if BOOST_WORKAROUND(__BORLANDC__, < 0x600)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,add_reference,T&,T&)
-#endif
-
-} // namespace boost
-
-#include <boost/type_traits/detail/type_trait_undef.hpp>
-
-#endif // BOOST_TT_ADD_REFERENCE_HPP_INCLUDED
diff --git a/boost/type_traits/add_rvalue_reference.hpp b/boost/type_traits/add_rvalue_reference.hpp
deleted file mode 100644
index 92c2c38..0000000
--- a/boost/type_traits/add_rvalue_reference.hpp
+++ /dev/null
@@ -1,66 +0,0 @@
-//  add_rvalue_reference.hpp  ---------------------------------------------------------//
-
-//  Copyright 2010 Vicente J. Botet Escriba
-
-//  Distributed under the Boost Software License, Version 1.0.
-//  See http://www.boost.org/LICENSE_1_0.txt
-
-#ifndef BOOST_TYPE_TRAITS_EXT_ADD_RVALUE_REFERENCE__HPP
-#define BOOST_TYPE_TRAITS_EXT_ADD_RVALUE_REFERENCE__HPP
-
-#include <boost/config.hpp>
-
-//----------------------------------------------------------------------------//
-
-#include <boost/type_traits/is_void.hpp>
-#include <boost/type_traits/is_reference.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/type_trait_def.hpp>
-
-//----------------------------------------------------------------------------//
-//                                                                            //
-//                           C++03 implementation of                          //
-//             20.9.7.2 Reference modifications [meta.trans.ref]              //
-//                          Written by Vicente J. Botet Escriba               //
-//                                                                            //
-// If T names an object or function type then the member typedef type
-// shall name T&&; otherwise, type shall name T. [ Note: This rule reflects
-// the semantics of reference collapsing. For example, when a type T names
-// a type T1&, the type add_rvalue_reference<T>::type is not an rvalue
-// reference. -end note ]
-//----------------------------------------------------------------------------//
-
-namespace boost {
-
-namespace type_traits_detail {
-
-    template <typename T, bool b>
-    struct add_rvalue_reference_helper
-    { typedef T   type; };
-
-#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-    template <typename T>
-    struct add_rvalue_reference_helper<T, true>
-    {
-        typedef T&&   type;
-    };
-#endif
-
-    template <typename T>
-    struct add_rvalue_reference_imp
-    {
-       typedef typename boost::type_traits_detail::add_rvalue_reference_helper
-                  <T, (is_void<T>::value == false && is_reference<T>::value == false) >::type type;
-    };
-
-}
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(add_rvalue_reference,T,typename boost::type_traits_detail::add_rvalue_reference_imp<T>::type)
-
-}  // namespace boost
-
-#include <boost/type_traits/detail/type_trait_undef.hpp>
-
-#endif  // BOOST_TYPE_TRAITS_EXT_ADD_RVALUE_REFERENCE__HPP
-
diff --git a/boost/type_traits/add_volatile.hpp b/boost/type_traits/add_volatile.hpp
deleted file mode 100644
index 491f1c2..0000000
--- a/boost/type_traits/add_volatile.hpp
+++ /dev/null
@@ -1,47 +0,0 @@
-
-//  (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-//  Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_ADD_VOLATILE_HPP_INCLUDED
-#define BOOST_TT_ADD_VOLATILE_HPP_INCLUDED
-
-#include <boost/config.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/type_trait_def.hpp>
-
-namespace boost {
-
-// * convert a type T to volatile type - add_volatile<T>
-// this is not required since the result is always
-// the same as "T volatile", but it does suppress warnings
-// from some compilers:
-
-#if defined(BOOST_MSVC)
-// This bogus warning will appear when add_volatile is applied to a
-// const volatile reference because we can't detect const volatile
-// references with MSVC6.
-#   pragma warning(push)
-#   pragma warning(disable:4181) // warning C4181: qualifier applied to reference type ignored
-#endif 
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(add_volatile,T,T volatile)
-
-#if defined(BOOST_MSVC)
-#   pragma warning(pop)
-#endif 
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,add_volatile,T&,T&)
-#endif
-
-} // namespace boost
-
-#include <boost/type_traits/detail/type_trait_undef.hpp>
-
-#endif // BOOST_TT_ADD_VOLATILE_HPP_INCLUDED
diff --git a/boost/type_traits/aligned_storage.hpp b/boost/type_traits/aligned_storage.hpp
deleted file mode 100644
index 5420f26..0000000
--- a/boost/type_traits/aligned_storage.hpp
+++ /dev/null
@@ -1,13 +0,0 @@
-
-//  Copyright (C) John Maddock 2005.
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_ALIGNED_STORAGE_HPP_INCLUDED
-#  define BOOST_TT_ALIGNED_STORAGE_HPP_INCLUDED
-#  include <boost/aligned_storage.hpp>
-#endif // BOOST_TT_ALIGNED_STORAGE_HPP_INCLUDED
-
diff --git a/boost/type_traits/alignment_of.hpp b/boost/type_traits/alignment_of.hpp
deleted file mode 100644
index e1735dc..0000000
--- a/boost/type_traits/alignment_of.hpp
+++ /dev/null
@@ -1,128 +0,0 @@
-
-//  (C) Copyright John Maddock 2000.
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_ALIGNMENT_OF_HPP_INCLUDED
-#define BOOST_TT_ALIGNMENT_OF_HPP_INCLUDED
-
-#include <boost/config.hpp>
-#include <cstddef>
-
-#include <boost/type_traits/intrinsics.hpp>
-// should be the last #include
-#include <boost/type_traits/detail/size_t_trait_def.hpp>
-
-#ifdef BOOST_MSVC
-#   pragma warning(push)
-#   pragma warning(disable: 4121 4512) // alignment is sensitive to packing
-#endif
-#if defined(__BORLANDC__) && (__BORLANDC__ < 0x600)
-#pragma option push -Vx- -Ve-
-#endif
-
-namespace boost {
-
-template <typename T> struct alignment_of;
-
-// get the alignment of some arbitrary type:
-namespace detail {
-
-#ifdef BOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable:4324) // structure was padded due to __declspec(align())
-#endif
-template <typename T>
-struct alignment_of_hack
-{
-    char c;
-    T t;
-    alignment_of_hack();
-};
-#ifdef BOOST_MSVC
-#pragma warning(pop)
-#endif
-
-template <unsigned A, unsigned S>
-struct alignment_logic
-{
-    BOOST_STATIC_CONSTANT(std::size_t, value = A < S ? A : S);
-};
-
-
-template< typename T >
-struct alignment_of_impl
-{
-#if defined(BOOST_MSVC) && (BOOST_MSVC >= 1400)
-    //
-    // With MSVC both the native __alignof operator
-    // and our own logic gets things wrong from time to time :-(
-    // Using a combination of the two seems to make the most of a bad job:
-    //
-    BOOST_STATIC_CONSTANT(std::size_t, value =
-        (::boost::detail::alignment_logic<
-            sizeof(::boost::detail::alignment_of_hack<T>) - sizeof(T),
-            __alignof(T)
-        >::value));
-#elif !defined(BOOST_ALIGNMENT_OF)
-    BOOST_STATIC_CONSTANT(std::size_t, value =
-        (::boost::detail::alignment_logic<
-            sizeof(::boost::detail::alignment_of_hack<T>) - sizeof(T),
-            sizeof(T)
-        >::value));
-#else
-   //
-   // We put this here, rather than in the definition of
-   // alignment_of below, because MSVC's __alignof doesn't
-   // always work in that context for some unexplained reason.
-   // (See type_with_alignment tests for test cases).
-   //
-   BOOST_STATIC_CONSTANT(std::size_t, value = BOOST_ALIGNMENT_OF(T));
-#endif
-};
-
-} // namespace detail
-
-BOOST_TT_AUX_SIZE_T_TRAIT_DEF1(alignment_of,T,::boost::detail::alignment_of_impl<T>::value)
-
-// references have to be treated specially, assume
-// that a reference is just a special pointer:
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-template <typename T>
-struct alignment_of<T&>
-    : public alignment_of<T*>
-{
-};
-#endif
-#ifdef __BORLANDC__
-// long double gives an incorrect value of 10 (!)
-// unless we do this...
-struct long_double_wrapper{ long double ld; };
-template<> struct alignment_of<long double>
-   : public alignment_of<long_double_wrapper>{};
-#endif
-
-// void has to be treated specially:
-BOOST_TT_AUX_SIZE_T_TRAIT_SPEC1(alignment_of,void,0)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_SIZE_T_TRAIT_SPEC1(alignment_of,void const,0)
-BOOST_TT_AUX_SIZE_T_TRAIT_SPEC1(alignment_of,void volatile,0)
-BOOST_TT_AUX_SIZE_T_TRAIT_SPEC1(alignment_of,void const volatile,0)
-#endif
-
-} // namespace boost
-
-#if defined(__BORLANDC__) && (__BORLANDC__ < 0x600)
-#pragma option pop
-#endif
-#ifdef BOOST_MSVC
-#   pragma warning(pop)
-#endif
-
-#include <boost/type_traits/detail/size_t_trait_undef.hpp>
-
-#endif // BOOST_TT_ALIGNMENT_OF_HPP_INCLUDED
-
diff --git a/boost/type_traits/broken_compiler_spec.hpp b/boost/type_traits/broken_compiler_spec.hpp
deleted file mode 100644
index fb51769..0000000
--- a/boost/type_traits/broken_compiler_spec.hpp
+++ /dev/null
@@ -1,117 +0,0 @@
-
-//  Copyright 2001-2003 Aleksey Gurtovoy.
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_BROKEN_COMPILER_SPEC_HPP_INCLUDED
-#define BOOST_TT_BROKEN_COMPILER_SPEC_HPP_INCLUDED
-
-#include <boost/mpl/aux_/lambda_support.hpp>
-#include <boost/config.hpp>
-
-// these are needed regardless of BOOST_TT_NO_BROKEN_COMPILER_SPEC 
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-namespace boost { namespace detail {
-template< typename T > struct remove_const_impl     { typedef T type; };
-template< typename T > struct remove_volatile_impl  { typedef T type; };
-template< typename T > struct remove_pointer_impl   { typedef T type; };
-template< typename T > struct remove_reference_impl { typedef T type; };
-typedef int invoke_BOOST_TT_BROKEN_COMPILER_SPEC_outside_all_namespaces;
-}}
-#endif
-
-// agurt, 27/jun/03: disable the workaround if user defined 
-// BOOST_TT_NO_BROKEN_COMPILER_SPEC
-#if    !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
-    || defined(BOOST_TT_NO_BROKEN_COMPILER_SPEC)
-
-#   define BOOST_TT_BROKEN_COMPILER_SPEC(T) /**/
-
-#else
-
-// same as BOOST_TT_AUX_TYPE_TRAIT_IMPL_SPEC1 macro, except that it
-// never gets #undef-ined
-#   define BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(trait,spec,result) \
-template<> struct trait##_impl<spec> \
-{ \
-    typedef result type; \
-}; \
-/**/
-
-#   define BOOST_TT_AUX_REMOVE_CONST_VOLATILE_RANK1_SPEC(T)                         \
-    BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_const,T const,T)                    \
-    BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_const,T const volatile,T volatile)  \
-    BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_volatile,T volatile,T)              \
-    BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_volatile,T const volatile,T const)  \
-    /**/
-
-#   define BOOST_TT_AUX_REMOVE_PTR_REF_RANK_1_SPEC(T)                               \
-    BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_pointer,T*,T)                       \
-    BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_pointer,T*const,T)                  \
-    BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_pointer,T*volatile,T)               \
-    BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_pointer,T*const volatile,T)         \
-    BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_reference,T&,T)                     \
-    /**/
-
-#   define BOOST_TT_AUX_REMOVE_PTR_REF_RANK_2_SPEC(T)                               \
-    BOOST_TT_AUX_REMOVE_PTR_REF_RANK_1_SPEC(T)                                      \
-    BOOST_TT_AUX_REMOVE_PTR_REF_RANK_1_SPEC(T const)                                \
-    BOOST_TT_AUX_REMOVE_PTR_REF_RANK_1_SPEC(T volatile)                             \
-    BOOST_TT_AUX_REMOVE_PTR_REF_RANK_1_SPEC(T const volatile)                       \
-    /**/
-
-#   define BOOST_TT_AUX_REMOVE_ALL_RANK_1_SPEC(T)                                   \
-    BOOST_TT_AUX_REMOVE_PTR_REF_RANK_2_SPEC(T)                                      \
-    BOOST_TT_AUX_REMOVE_CONST_VOLATILE_RANK1_SPEC(T)                                \
-    /**/
-
-#   define BOOST_TT_AUX_REMOVE_ALL_RANK_2_SPEC(T)                                   \
-    BOOST_TT_AUX_REMOVE_ALL_RANK_1_SPEC(T*)                                         \
-    BOOST_TT_AUX_REMOVE_ALL_RANK_1_SPEC(T const*)                                   \
-    BOOST_TT_AUX_REMOVE_ALL_RANK_1_SPEC(T volatile*)                                \
-    BOOST_TT_AUX_REMOVE_ALL_RANK_1_SPEC(T const volatile*)                          \
-    /**/
-
-#   define BOOST_TT_BROKEN_COMPILER_SPEC(T)                                         \
-    namespace boost { namespace detail {                                            \
-    typedef invoke_BOOST_TT_BROKEN_COMPILER_SPEC_outside_all_namespaces             \
-      please_invoke_BOOST_TT_BROKEN_COMPILER_SPEC_outside_all_namespaces;           \
-    BOOST_TT_AUX_REMOVE_ALL_RANK_1_SPEC(T)                                          \
-    BOOST_TT_AUX_REMOVE_ALL_RANK_2_SPEC(T)                                          \
-    BOOST_TT_AUX_REMOVE_ALL_RANK_2_SPEC(T*)                                         \
-    BOOST_TT_AUX_REMOVE_ALL_RANK_2_SPEC(T const*)                                   \
-    BOOST_TT_AUX_REMOVE_ALL_RANK_2_SPEC(T volatile*)                                \
-    BOOST_TT_AUX_REMOVE_ALL_RANK_2_SPEC(T const volatile*)                          \
-    }}                                                                              \
-    /**/
-
-#   include <boost/type_traits/detail/type_trait_undef.hpp>
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-BOOST_TT_BROKEN_COMPILER_SPEC(bool)
-BOOST_TT_BROKEN_COMPILER_SPEC(char)
-#ifndef BOOST_NO_INTRINSIC_WCHAR_T
-BOOST_TT_BROKEN_COMPILER_SPEC(wchar_t)
-#endif
-BOOST_TT_BROKEN_COMPILER_SPEC(signed char)
-BOOST_TT_BROKEN_COMPILER_SPEC(unsigned char)
-BOOST_TT_BROKEN_COMPILER_SPEC(signed short)
-BOOST_TT_BROKEN_COMPILER_SPEC(unsigned short)
-BOOST_TT_BROKEN_COMPILER_SPEC(signed int)
-BOOST_TT_BROKEN_COMPILER_SPEC(unsigned int)
-BOOST_TT_BROKEN_COMPILER_SPEC(signed long)
-BOOST_TT_BROKEN_COMPILER_SPEC(unsigned long)
-BOOST_TT_BROKEN_COMPILER_SPEC(float)
-BOOST_TT_BROKEN_COMPILER_SPEC(double)
-//BOOST_TT_BROKEN_COMPILER_SPEC(long double)
-
-// for backward compatibility
-#define BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION(T) \
-    BOOST_TT_BROKEN_COMPILER_SPEC(T) \
-/**/
-
-#endif // BOOST_TT_BROKEN_COMPILER_SPEC_HPP_INCLUDED
diff --git a/boost/type_traits/common_type.hpp b/boost/type_traits/common_type.hpp
deleted file mode 100644
index f057770..0000000
--- a/boost/type_traits/common_type.hpp
+++ /dev/null
@@ -1,157 +0,0 @@
-//  common_type.hpp  ---------------------------------------------------------//
-
-//  Copyright 2008 Howard Hinnant
-//  Copyright 2008 Beman Dawes
-
-//  Distributed under the Boost Software License, Version 1.0.
-//  See http://www.boost.org/LICENSE_1_0.txt
-
-#ifndef BOOST_TYPE_TRAITS_COMMON_TYPE_HPP
-#define BOOST_TYPE_TRAITS_COMMON_TYPE_HPP
-
-#include <boost/config.hpp>
-
-#if defined(__SUNPRO_CC) && !defined(BOOST_COMMON_TYPE_DONT_USE_TYPEOF)
-#  define BOOST_COMMON_TYPE_DONT_USE_TYPEOF
-#endif
-#if defined(__IBMCPP__) && !defined(BOOST_COMMON_TYPE_DONT_USE_TYPEOF)
-#  define BOOST_COMMON_TYPE_DONT_USE_TYPEOF
-#endif
-
-//----------------------------------------------------------------------------//
-#if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_COMMON_TYPE_ARITY)
-#define BOOST_COMMON_TYPE_ARITY 3
-#endif
-
-//----------------------------------------------------------------------------//
-#if defined(BOOST_NO_CXX11_DECLTYPE) && !defined(BOOST_COMMON_TYPE_DONT_USE_TYPEOF)
-#include <boost/typeof/typeof.hpp>   // boost wonders never cease!
-#endif
-
-//----------------------------------------------------------------------------//
-#ifndef BOOST_NO_CXX11_STATIC_ASSERT
-#define BOOST_COMMON_TYPE_STATIC_ASSERT(CND, MSG, TYPES) static_assert(CND,MSG)
-#elif defined(BOOST_COMMON_TYPE_USES_MPL_ASSERT)
-#include <boost/mpl/assert.hpp>
-#include <boost/mpl/bool.hpp>
-#define BOOST_COMMON_TYPE_STATIC_ASSERT(CND, MSG, TYPES)                                 \
-    BOOST_MPL_ASSERT_MSG(boost::mpl::bool_< (CND) >::type::value, MSG, TYPES)
-#else
-#include <boost/static_assert.hpp>
-#define BOOST_COMMON_TYPE_STATIC_ASSERT(CND, MSG, TYPES) BOOST_STATIC_ASSERT(CND)
-#endif
-
-#if !defined(BOOST_NO_CXX11_STATIC_ASSERT) || !defined(BOOST_COMMON_TYPE_USES_MPL_ASSERT)
-#define BOOST_COMMON_TYPE_MUST_BE_A_COMPLE_TYPE "must be complete type"
-#endif
-
-#if defined(BOOST_NO_CXX11_DECLTYPE) && defined(BOOST_COMMON_TYPE_DONT_USE_TYPEOF)
-#include <boost/type_traits/detail/common_type_imp.hpp>
-#include <boost/type_traits/remove_cv.hpp>
-#endif
-#include <boost/mpl/if.hpp>
-#include <boost/utility/declval.hpp>
-#include <boost/type_traits/add_rvalue_reference.hpp>
-
-//----------------------------------------------------------------------------//
-//                                                                            //
-//                           C++03 implementation of                          //
-//             20.9.7.6 Other transformations [meta.trans.other]              //
-//                          Written by Howard Hinnant                         //
-//      Adapted for Boost by Beman Dawes, Vicente Botet and  Jeffrey Hellrung //
-//                                                                            //
-//----------------------------------------------------------------------------//
-
-namespace boost {
-
-// prototype
-#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
-    template<typename... T>
-    struct common_type;
-#else // or no specialization
-    template <class T, class U = void, class V = void>
-    struct common_type
-    {
-    public:
-        typedef typename common_type<typename common_type<T, U>::type, V>::type type;
-    };
-#endif
-
-
-// 1 arg
-    template<typename T>
-#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
-    struct common_type<T>
-#else
-    struct common_type<T, void, void>
-
-#endif
-    {
-        BOOST_COMMON_TYPE_STATIC_ASSERT(sizeof(T) > 0, BOOST_COMMON_TYPE_MUST_BE_A_COMPLE_TYPE, (T));
-    public:
-        typedef T type;
-    };
-
-// 2 args
-namespace type_traits_detail {
-
-    template <class T, class U>
-    struct common_type_2
-    {
-    private:
-        BOOST_COMMON_TYPE_STATIC_ASSERT(sizeof(T) > 0, BOOST_COMMON_TYPE_MUST_BE_A_COMPLE_TYPE, (T));
-        BOOST_COMMON_TYPE_STATIC_ASSERT(sizeof(U) > 0, BOOST_COMMON_TYPE_MUST_BE_A_COMPLE_TYPE, (U));
-        static bool declval_bool();  // workaround gcc bug; not required by std
-        static typename add_rvalue_reference<T>::type declval_T();  // workaround gcc bug; not required by std
-        static typename add_rvalue_reference<U>::type declval_U();  // workaround gcc bug; not required by std
-        static typename add_rvalue_reference<bool>::type declval_b();  
-
-#if !defined(BOOST_NO_CXX11_DECLTYPE)
-    public:
-        typedef decltype(declval<bool>() ? declval<T>() : declval<U>()) type;
-#elif defined(BOOST_COMMON_TYPE_DONT_USE_TYPEOF)
-    public:
-    typedef typename detail_type_traits_common_type::common_type_impl<
-          typename remove_cv<T>::type,
-          typename remove_cv<U>::type
-      >::type type;
-#else
-    public:
-        typedef BOOST_TYPEOF_TPL(declval_b() ? declval_T() : declval_U()) type;
-#endif
-
-#if defined(__GNUC__) && __GNUC__ == 3 && (__GNUC_MINOR__ == 2 || __GNUC_MINOR__ == 3)
-    public:
-        void public_dummy_function_just_to_silence_warning();
-#endif
-    };
-
-    template <class T>
-    struct common_type_2<T, T>
-    {
-        typedef T type;
-    };
-    }
-
-#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
-    template <class T, class U>
-    struct common_type<T, U>
-#else
-    template <class T, class U>
-    struct common_type<T, U, void>
-#endif
-    : public type_traits_detail::common_type_2<T,U>
-    { };
-
-
-// 3 or more args
-#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
-    template<typename T, typename U, typename... V>
-    struct common_type<T, U, V...> {
-    public:
-        typedef typename common_type<typename common_type<T, U>::type, V...>::type type;
-    };
-#endif
-}  // namespace boost
-
-#endif  // BOOST_TYPE_TRAITS_COMMON_TYPE_HPP
diff --git a/boost/type_traits/conditional.hpp b/boost/type_traits/conditional.hpp
deleted file mode 100644
index 8bbda85..0000000
--- a/boost/type_traits/conditional.hpp
+++ /dev/null
@@ -1,25 +0,0 @@
-
-//  (C) Copyright John Maddock 2010.  
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-
-#ifndef BOOST_TT_CONDITIONAL_HPP_INCLUDED
-#define BOOST_TT_CONDITIONAL_HPP_INCLUDED
-
-#include <boost/mpl/if.hpp>
-
-namespace boost {
-
-template <bool b, class T, class U>
-struct conditional : public mpl::if_c<b, T, U>
-{
-};
-
-} // namespace boost
-
-
-#endif // BOOST_TT_CONDITIONAL_HPP_INCLUDED
diff --git a/boost/type_traits/config.hpp b/boost/type_traits/config.hpp
deleted file mode 100644
index 7934454..0000000
--- a/boost/type_traits/config.hpp
+++ /dev/null
@@ -1,76 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_CONFIG_HPP_INCLUDED
-#define BOOST_TT_CONFIG_HPP_INCLUDED
-
-#ifndef BOOST_CONFIG_HPP
-#include <boost/config.hpp>
-#endif
-
-#include <boost/detail/workaround.hpp>
-
-//
-// whenever we have a conversion function with ellipses
-// it needs to be declared __cdecl to suppress compiler
-// warnings from MS and Borland compilers (this *must*
-// appear before we include is_same.hpp below):
-#if defined(BOOST_MSVC) || (defined(__BORLANDC__) && !defined(BOOST_DISABLE_WIN32))
-#   define BOOST_TT_DECL __cdecl
-#else
-#   define BOOST_TT_DECL /**/
-#endif
-
-# if (BOOST_WORKAROUND(__MWERKS__, < 0x3000)                         \
-    || BOOST_WORKAROUND(BOOST_MSVC, <= 1301)                        \
-    || !defined(__EDG_VERSION__) && BOOST_WORKAROUND(__GNUC__, < 3) \
-    || BOOST_WORKAROUND(__IBMCPP__, < 600 )                         \
-    || BOOST_WORKAROUND(__BORLANDC__, < 0x5A0)                      \
-    || defined(__ghs)                                               \
-    || BOOST_WORKAROUND(__HP_aCC, < 60700)           \
-    || BOOST_WORKAROUND(MPW_CPLUS, BOOST_TESTED_AT(0x890))          \
-    || BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x580)))       \
-    && defined(BOOST_NO_IS_ABSTRACT)
-
-#   define BOOST_TT_NO_CONFORMING_IS_CLASS_IMPLEMENTATION 1
-
-#endif
-
-#ifndef BOOST_TT_NO_CONFORMING_IS_CLASS_IMPLEMENTATION
-# define BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION 1
-#endif
-
-//
-// Define BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING 
-// when we can't test for function types with elipsis:
-//
-#if BOOST_WORKAROUND(__GNUC__, < 3)
-#  define BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-#endif
-
-//
-// define BOOST_TT_TEST_MS_FUNC_SIGS
-// when we want to test __stdcall etc function types with is_function etc
-// (Note, does not work with Borland, even though it does support __stdcall etc):
-//
-#if defined(_MSC_EXTENSIONS) && !defined(__BORLANDC__)
-#  define BOOST_TT_TEST_MS_FUNC_SIGS
-#endif
-
-//
-// define BOOST_TT_NO_CV_FUNC_TEST
-// if tests for cv-qualified member functions don't 
-// work in is_member_function_pointer
-//
-#if BOOST_WORKAROUND(__MWERKS__, < 0x3000) || BOOST_WORKAROUND(__IBMCPP__, <= 600)
-#  define BOOST_TT_NO_CV_FUNC_TEST
-#endif
-
-#endif // BOOST_TT_CONFIG_HPP_INCLUDED
-
-
diff --git a/boost/type_traits/conversion_traits.hpp b/boost/type_traits/conversion_traits.hpp
deleted file mode 100644
index c8e5139..0000000
--- a/boost/type_traits/conversion_traits.hpp
+++ /dev/null
@@ -1,17 +0,0 @@
-
-// Copyright 2000 John Maddock (john at johnmaddock.co.uk)
-// Copyright 2000 Jeremy Siek (jsiek at lsc.nd.edu)
-// Copyright 1999, 2000 Jaakko Jarvi (jaakko.jarvi at cs.utu.fi)
-//
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_CONVERSION_TRAITS_HPP_INCLUDED
-#define BOOST_TT_CONVERSION_TRAITS_HPP_INCLUDED
-
-#include <boost/type_traits/is_convertible.hpp>
-
-#endif // BOOST_TT_CONVERSION_TRAITS_HPP_INCLUDED
diff --git a/boost/type_traits/cv_traits.hpp b/boost/type_traits/cv_traits.hpp
deleted file mode 100644
index 5bd6c4f..0000000
--- a/boost/type_traits/cv_traits.hpp
+++ /dev/null
@@ -1,24 +0,0 @@
-//  (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-//  Hinnant & John Maddock 2000.  
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-//
-//  defines traits classes for cv-qualified types:
-//  is_const, is_volatile, remove_const, remove_volatile, remove_cv.
-
-#ifndef BOOST_TT_CV_TRAITS_HPP_INCLUDED
-#define BOOST_TT_CV_TRAITS_HPP_INCLUDED
-
-#include <boost/type_traits/add_const.hpp>
-#include <boost/type_traits/add_volatile.hpp>
-#include <boost/type_traits/add_cv.hpp>
-#include <boost/type_traits/is_const.hpp>
-#include <boost/type_traits/is_volatile.hpp>
-#include <boost/type_traits/remove_const.hpp>
-#include <boost/type_traits/remove_volatile.hpp>
-#include <boost/type_traits/remove_cv.hpp>
-
-#endif // BOOST_TT_CV_TRAITS_HPP_INCLUDED
diff --git a/boost/type_traits/decay.hpp b/boost/type_traits/decay.hpp
deleted file mode 100644
index c23a9b0..0000000
--- a/boost/type_traits/decay.hpp
+++ /dev/null
@@ -1,44 +0,0 @@
-//  (C) Copyright John Maddock & Thorsten Ottosen 2005.
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-
-#ifndef BOOST_TT_DECAY_HPP_INCLUDED
-#define BOOST_TT_DECAY_HPP_INCLUDED
-
-#include <boost/type_traits/config.hpp>
-#include <boost/type_traits/is_array.hpp>
-#include <boost/type_traits/is_function.hpp>
-#include <boost/type_traits/remove_bounds.hpp>
-#include <boost/type_traits/add_pointer.hpp>
-#include <boost/type_traits/remove_reference.hpp>
-#include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/identity.hpp>
-
-namespace boost 
-{
-
-    template< class T >
-    struct decay
-    {
-    private:
-        typedef BOOST_DEDUCED_TYPENAME remove_reference<T>::type Ty;
-    public:
-        typedef BOOST_DEDUCED_TYPENAME mpl::eval_if< 
-            is_array<Ty>,
-            mpl::identity<BOOST_DEDUCED_TYPENAME remove_bounds<Ty>::type*>,
-            BOOST_DEDUCED_TYPENAME mpl::eval_if< 
-                is_function<Ty>,
-                add_pointer<Ty>,
-                mpl::identity<Ty>
-            >
-        >::type type;
-    };
-    
-} // namespace boost
-
-
-#endif // BOOST_TT_DECAY_HPP_INCLUDED
diff --git a/boost/type_traits/detail/bool_trait_def.hpp b/boost/type_traits/detail/bool_trait_def.hpp
deleted file mode 100644
index e3c7774..0000000
--- a/boost/type_traits/detail/bool_trait_def.hpp
+++ /dev/null
@@ -1,196 +0,0 @@
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-
-// $Source$
-// $Date: 2011-10-09 15:28:33 -0700 (Sun, 09 Oct 2011) $
-// $Revision: 74865 $
-
-#include <boost/type_traits/detail/template_arity_spec.hpp>
-#include <boost/type_traits/integral_constant.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-#include <boost/config.hpp>
-
-//
-// Unfortunately some libraries have started using this header without
-// cleaning up afterwards: so we'd better undef the macros just in case 
-// they've been defined already....
-//
-#ifdef BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL
-#undef BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL
-#undef BOOST_TT_AUX_BOOL_C_BASE
-#undef BOOST_TT_AUX_BOOL_TRAIT_DEF1
-#undef BOOST_TT_AUX_BOOL_TRAIT_DEF2
-#undef BOOST_TT_AUX_BOOL_TRAIT_SPEC1
-#undef BOOST_TT_AUX_BOOL_TRAIT_SPEC2
-#undef BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1
-#undef BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC2
-#undef BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1
-#undef BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2
-#undef BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_1
-#undef BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2
-#undef BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1
-#undef BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1
-#endif
-
-#if defined(__SUNPRO_CC) && (__SUNPRO_CC < 0x570)
-#   define BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
-    typedef ::boost::integral_constant<bool,C> type; \
-    enum { value = type::value }; \
-    /**/
-#   define BOOST_TT_AUX_BOOL_C_BASE(C)
-
-#elif defined(BOOST_MSVC) && BOOST_MSVC < 1300
-
-#   define BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
-    typedef ::boost::integral_constant<bool,C> base_; \
-    using base_::value; \
-    /**/
-
-#endif
-
-#ifndef BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL
-#   define BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) /**/
-#endif
-
-#ifndef BOOST_TT_AUX_BOOL_C_BASE
-#   define BOOST_TT_AUX_BOOL_C_BASE(C) : public ::boost::integral_constant<bool,C>
-#endif 
-
-
-#define BOOST_TT_AUX_BOOL_TRAIT_DEF1(trait,T,C) \
-template< typename T > struct trait \
-    BOOST_TT_AUX_BOOL_C_BASE(C) \
-{ \
-public:\
-    BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1,trait,(T)) \
-}; \
-\
-BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(1,trait) \
-/**/
-
-
-#define BOOST_TT_AUX_BOOL_TRAIT_DEF2(trait,T1,T2,C) \
-template< typename T1, typename T2 > struct trait \
-    BOOST_TT_AUX_BOOL_C_BASE(C) \
-{ \
-public:\
-    BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(2,trait,(T1,T2)) \
-}; \
-\
-BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,trait) \
-/**/
-
-#define BOOST_TT_AUX_BOOL_TRAIT_DEF3(trait,T1,T2,T3,C) \
-template< typename T1, typename T2, typename T3 > struct trait \
-    BOOST_TT_AUX_BOOL_C_BASE(C) \
-{ \
-public:\
-    BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(3,trait,(T1,T2,T3)) \
-}; \
-\
-BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(3,trait) \
-/**/
-
-#define BOOST_TT_AUX_BOOL_TRAIT_SPEC1(trait,sp,C) \
-template<> struct trait< sp > \
-    BOOST_TT_AUX_BOOL_C_BASE(C) \
-{ \
-public:\
-    BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(1,trait,(sp)) \
-}; \
-/**/
-
-#define BOOST_TT_AUX_BOOL_TRAIT_SPEC2(trait,sp1,sp2,C) \
-template<> struct trait< sp1,sp2 > \
-    BOOST_TT_AUX_BOOL_C_BASE(C) \
-{ \
-public:\
-    BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2,trait,(sp1,sp2)) \
-}; \
-/**/
-
-#define BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(trait,sp,C) \
-template<> struct trait##_impl< sp > \
-{ \
-public:\
-    BOOST_STATIC_CONSTANT(bool, value = (C)); \
-}; \
-/**/
-
-#define BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC2(trait,sp1,sp2,C) \
-template<> struct trait##_impl< sp1,sp2 > \
-{ \
-public:\
-    BOOST_STATIC_CONSTANT(bool, value = (C)); \
-}; \
-/**/
-
-#define BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(param,trait,sp,C) \
-template< param > struct trait< sp > \
-    BOOST_TT_AUX_BOOL_C_BASE(C) \
-{ \
-public:\
-    BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
-}; \
-/**/
-
-#define BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(param1,param2,trait,sp,C) \
-template< param1, param2 > struct trait< sp > \
-    BOOST_TT_AUX_BOOL_C_BASE(C) \
-{ \
-public:\
-    BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
-}; \
-/**/
-
-#define BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_1(param,trait,sp1,sp2,C) \
-template< param > struct trait< sp1,sp2 > \
-    BOOST_TT_AUX_BOOL_C_BASE(C) \
-{ \
-public:\
-    BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2,trait,(sp1,sp2)) \
-}; \
-/**/
-
-#define BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2(param1,param2,trait,sp1,sp2,C) \
-template< param1, param2 > struct trait< sp1,sp2 > \
-    BOOST_TT_AUX_BOOL_C_BASE(C) \
-{ \
-public:\
-    BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
-}; \
-/**/
-
-#define BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(param,trait,sp1,sp2,C) \
-template< param > struct trait##_impl< sp1,sp2 > \
-{ \
-public:\
-    BOOST_STATIC_CONSTANT(bool, value = (C)); \
-}; \
-/**/
-
-#ifndef BOOST_NO_CV_SPECIALIZATIONS
-#   define BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(trait,sp,value) \
-    BOOST_TT_AUX_BOOL_TRAIT_SPEC1(trait,sp,value) \
-    BOOST_TT_AUX_BOOL_TRAIT_SPEC1(trait,sp const,value) \
-    BOOST_TT_AUX_BOOL_TRAIT_SPEC1(trait,sp volatile,value) \
-    BOOST_TT_AUX_BOOL_TRAIT_SPEC1(trait,sp const volatile,value) \
-    /**/
-#else
-#   define BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(trait,sp,value) \
-    BOOST_TT_AUX_BOOL_TRAIT_SPEC1(trait,sp,value) \
-    /**/
-#endif
diff --git a/boost/type_traits/detail/bool_trait_undef.hpp b/boost/type_traits/detail/bool_trait_undef.hpp
deleted file mode 100644
index 008febe..0000000
--- a/boost/type_traits/detail/bool_trait_undef.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-
-// $Source$
-// $Date: 2011-10-09 15:28:33 -0700 (Sun, 09 Oct 2011) $
-// $Revision: 74865 $
-
-#undef BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL
-#undef BOOST_TT_AUX_BOOL_C_BASE
-#undef BOOST_TT_AUX_BOOL_TRAIT_DEF1
-#undef BOOST_TT_AUX_BOOL_TRAIT_DEF2
-#undef BOOST_TT_AUX_BOOL_TRAIT_DEF3
-#undef BOOST_TT_AUX_BOOL_TRAIT_SPEC1
-#undef BOOST_TT_AUX_BOOL_TRAIT_SPEC2
-#undef BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1
-#undef BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC2
-#undef BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1
-#undef BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2
-#undef BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_1
-#undef BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2
-#undef BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1
-#undef BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1
diff --git a/boost/type_traits/detail/common_type_imp.hpp b/boost/type_traits/detail/common_type_imp.hpp
deleted file mode 100644
index 84de8b4..0000000
--- a/boost/type_traits/detail/common_type_imp.hpp
+++ /dev/null
@@ -1,333 +0,0 @@
-/*******************************************************************************
- * boost/type_traits/detail/common_type_imp.hpp
- *
- * Copyright 2010, Jeffrey Hellrung.
- * Distributed under the Boost Software License, Version 1.0.  (See accompanying
- * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- *
- * struct boost::common_type<T,U>
- *
- * common_type<T,U>::type is the type of the expression
- *     b() ? x() : y()
- * where b() returns a bool, x() has return type T, and y() has return type U.
- * See
- *     http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2661.htm#common_type
- *
- * Note that this evaluates to void if one or both of T and U is void.
- ******************************************************************************/
-
-#ifndef BOOST_TYPE_TRAITS_DETAIL_COMMON_TYPE_IMP_HPP
-#define BOOST_TYPE_TRAITS_DETAIL_COMMON_TYPE_IMP_HPP
-
-#include <cstddef>
-
-#include <boost/mpl/assert.hpp>
-#include <boost/mpl/at.hpp>
-#include <boost/mpl/begin_end.hpp>
-#include <boost/mpl/contains.hpp>
-#include <boost/mpl/copy.hpp>
-#include <boost/mpl/deref.hpp>
-#include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/inserter.hpp>
-#include <boost/mpl/next.hpp>
-#include <boost/mpl/or.hpp>
-#include <boost/mpl/placeholders.hpp>
-#include <boost/mpl/push_back.hpp>
-#include <boost/mpl/size.hpp>
-#include <boost/mpl/vector/vector0.hpp>
-#include <boost/mpl/vector/vector10.hpp>
-#include <boost/type_traits/integral_constant.hpp>
-#include <boost/type_traits/is_enum.hpp>
-#include <boost/type_traits/is_integral.hpp>
-#include <boost/type_traits/make_signed.hpp>
-#include <boost/type_traits/make_unsigned.hpp>
-#include <boost/type_traits/remove_cv.hpp>
-#include <boost/type_traits/remove_reference.hpp>
-#include <boost/utility/declval.hpp>
-
-namespace boost
-{
-
-namespace detail_type_traits_common_type
-{
-
-/*******************************************************************************
- * struct propagate_cv< From, To >
- *
- * This metafunction propagates cv-qualifiers on type From to type To.
- ******************************************************************************/
-
-template< class From, class To >
-struct propagate_cv
-{ typedef To type; };
-template< class From, class To >
-struct propagate_cv< const From, To >
-{ typedef To const type; };
-template< class From, class To >
-struct propagate_cv< volatile From, To >
-{ typedef To volatile type; };
-template< class From, class To >
-struct propagate_cv< const volatile From, To >
-{ typedef To const volatile type; };
-
-/*******************************************************************************
- * struct is_integral_or_enum<T>
- *
- * This metafunction determines if T is an integral type which can be made
- * signed or unsigned.
- ******************************************************************************/
-
-template< class T >
-struct is_integral_or_enum
-    : public mpl::or_< is_integral<T>, is_enum<T> >
-{ };
-template<>
-struct is_integral_or_enum< bool >
-    : public false_type
-{ };
-
-/*******************************************************************************
- * struct make_unsigned_soft<T>
- * struct make_signed_soft<T>
- *
- * These metafunction are identical to make_unsigned and make_signed,
- * respectively, except for special-casing bool.
- ******************************************************************************/
-
-template< class T >
-struct make_unsigned_soft
-    : public make_unsigned<T>
-{ };
-template<>
-struct make_unsigned_soft< bool >
-{ typedef bool type; };
-
-template< class T >
-struct make_signed_soft
-    : public make_signed<T>
-{ };
-template<>
-struct make_signed_soft< bool >
-{ typedef bool type; };
-
-/*******************************************************************************
- * struct sizeof_t<N>
- * typedef ... yes_type
- * typedef ... no_type
- *
- * These types are integral players in the use of the "sizeof trick", i.e., we
- * can distinguish overload selection by inspecting the size of the return type
- * of the overload.
- ******************************************************************************/
-
-template< std::size_t N > struct sizeof_t { char _dummy[N]; };
-typedef sizeof_t<1> yes_type;
-typedef sizeof_t<2> no_type;
-BOOST_MPL_ASSERT_RELATION( sizeof( yes_type ), ==, 1 );
-BOOST_MPL_ASSERT_RELATION( sizeof( no_type ), ==, 2 );
-
-/*******************************************************************************
- * rvalue_test(T&) -> no_type
- * rvalue_test(...) -> yes_type
- *
- * These overloads are used to determine the rvalue-ness of an expression.
- ******************************************************************************/
-
-template< class T > no_type rvalue_test(T&);
-yes_type rvalue_test(...);
-
-/*******************************************************************************
- * struct conversion_test_overloads< Sequence >
- *
- * This struct has multiple overloads of the static member function apply, each
- * one taking a single parameter of a type within the Boost.MPL sequence
- * Sequence.  Each such apply overload has a return type with sizeof equal to
- * one plus the index of the parameter type within Sequence.  Thus, we can
- * deduce the type T of an expression as long as we can generate a finite set of
- * candidate types containing T via these apply overloads and the "sizeof
- * trick".
- ******************************************************************************/
-
-template< class First, class Last, std::size_t Index >
-struct conversion_test_overloads_iterate
-    : public conversion_test_overloads_iterate<
-          typename mpl::next< First >::type, Last, Index + 1
-      >
-{
-    using conversion_test_overloads_iterate<
-        typename mpl::next< First >::type, Last, Index + 1
-    >::apply;
-    static sizeof_t< Index + 1 >
-    apply(typename mpl::deref< First >::type);
-};
-
-template< class Last, std::size_t Index >
-struct conversion_test_overloads_iterate< Last, Last, Index >
-{ static sizeof_t< Index + 1 > apply(...); };
-
-template< class Sequence >
-struct conversion_test_overloads
-    : public conversion_test_overloads_iterate<
-          typename mpl::begin< Sequence >::type,
-          typename mpl::end< Sequence >::type,
-          0
-      >
-{ };
-
-/*******************************************************************************
- * struct select< Sequence, Index >
- *
- * select is synonymous with mpl::at_c unless Index equals the size of the
- * Boost.MPL Sequence, in which case this evaluates to void.
- ******************************************************************************/
-
-template<
-    class Sequence, int Index,
-    int N = mpl::size< Sequence >::value
->
-struct select
-    : public mpl::at_c< Sequence, Index >
-{ };
-template< class Sequence, int N >
-struct select< Sequence, N, N >
-{ typedef void type; };
-
-/*******************************************************************************
- * class deduce_common_type< T, U, NominalCandidates >
- * struct nominal_candidates<T,U>
- * struct common_type_dispatch_on_rvalueness<T,U>
- * struct common_type_impl<T,U>
- *
- * These classes and structs implement the logic behind common_type, which goes
- * roughly as follows.  Let C be the type of the conditional expression
- *     declval< bool >() ? declval<T>() : declval<U>()
- * if C is an rvalue, then:
- *     let T' and U' be T and U stripped of reference- and cv-qualifiers
- *     if T' and U' are pointer types, say, T' = V* and U' = W*, then:
- *         define the set of NominalCandidates to be
- *             { V*, W*, V'*, W'* }
- *           where V' is V with whatever cv-qualifiers are on W, and W' is W
- *           with whatever cv-qualifiers are on V
- *     else if T' and U' are both integral or enum types, then:
- *         define the set of NominalCandidates to be
- *             {
- *                 unsigned_soft(T'),
- *                 unsigned_soft(U'),
- *                 signed_soft(T'),
- *                 signed_soft(U'),
- *                 T',
- *                 U',
- *                 unsigned int,
- *                 int
- *             }
- *           where unsigned_soft(X) is make_unsigned_soft<X>::type and
- *           signed_soft(X) is make_signed_soft<X>::type (these are all
- *           generally necessary to cover the various integral promotion cases)
- *     else
- *         define the set of NominalCandidates to be
- *             { T', U' }
- * else
- *     let V and W be T and U stripped of reference-qualifiers
- *     define the set of NominalCandidates to be
- *         { V&, W&, V'&, W'& }
- *     where V' is V with whatever cv-qualifiers are on W, and W' is W with
- *       whatever cv-qualifiers are on V
- * define the set of Candidates to be equal to the set of NominalCandidates with
- * duplicates removed, and use this set of Candidates to determine C using the
- * conversion_test_overloads struct
- ******************************************************************************/
-
-template< class T, class U, class NominalCandidates >
-class deduce_common_type
-{
-    typedef typename mpl::copy<
-        NominalCandidates,
-        mpl::inserter<
-            mpl::vector0<>,
-            mpl::if_<
-                mpl::contains< mpl::_1, mpl::_2 >,
-                mpl::_1,
-                mpl::push_back< mpl::_1, mpl::_2 >
-            >
-        >
-    >::type candidate_types;
-    static const int best_candidate_index =
-        sizeof( conversion_test_overloads< candidate_types >::apply(
-            declval< bool >() ? declval<T>() : declval<U>()
-        ) ) - 1;
-public:
-    typedef typename select< candidate_types, best_candidate_index >::type type;
-};
-
-template<
-    class T, class U,
-    class V = typename remove_cv< typename remove_reference<T>::type >::type,
-    class W = typename remove_cv< typename remove_reference<U>::type >::type,
-    bool = is_integral_or_enum<V>::value && is_integral_or_enum<W>::value
->
-struct nominal_candidates
-{ typedef mpl::vector2<V,W> type; };
-
-template< class T, class U, class V, class W >
-struct nominal_candidates< T, U, V, W, true >
-{
-    typedef boost::mpl::vector8<
-        typename make_unsigned_soft<V>::type,
-        typename make_unsigned_soft<W>::type,
-        typename make_signed_soft<V>::type,
-        typename make_signed_soft<W>::type,
-        V, W, unsigned int, int
-    > type;
-};
-
-template< class T, class U, class V, class W >
-struct nominal_candidates< T, U, V*, W*, false >
-{
-    typedef mpl::vector4<
-        V*, W*,
-        typename propagate_cv<W,V>::type *,
-        typename propagate_cv<V,W>::type *
-    > type;
-};
-
-template<class T, class U, bool b>
-struct common_type_dispatch_on_rvalueness
-    : public deduce_common_type< T, U, typename nominal_candidates<T,U>::type >
-{ };
-
-template< class T, class U >
-struct common_type_dispatch_on_rvalueness< T, U, false >
-{
-private:
-    typedef typename remove_reference<T>::type unrefed_T_type;
-    typedef typename remove_reference<U>::type unrefed_U_type;
-public:
-    typedef typename deduce_common_type<
-        T, U,
-        mpl::vector4<
-            unrefed_T_type &,
-            unrefed_U_type &,
-            typename propagate_cv< unrefed_U_type, unrefed_T_type >::type &,
-            typename propagate_cv< unrefed_T_type, unrefed_U_type >::type &
-        >
-    >::type type;
-};
-
-template< class T, class U >
-struct common_type_impl
-    : public common_type_dispatch_on_rvalueness<T,U, sizeof( ::boost::detail_type_traits_common_type::rvalue_test(
-        declval< bool >() ? declval<T>() : declval<U>() ) ) == sizeof( yes_type ) >
-{ };
-
-template< class T > struct common_type_impl< T, void > { typedef void type; };
-template< class T > struct common_type_impl< void, T > { typedef void type; };
-template<> struct common_type_impl< void, void > { typedef void type; };
-
-} // namespace detail_type_traits_common_type
-
-
-} // namespace boost
-
-#endif // BOOST_TYPE_TRAITS_DETAIL_COMMON_TYPE_HPP
-
diff --git a/boost/type_traits/detail/cv_traits_impl.hpp b/boost/type_traits/detail/cv_traits_impl.hpp
deleted file mode 100644
index ed20c9d..0000000
--- a/boost/type_traits/detail/cv_traits_impl.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-
-//  (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-//  Hinnant & John Maddock 2000.  
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-
-#ifndef BOOST_TT_DETAIL_CV_TRAITS_IMPL_HPP_INCLUDED
-#define BOOST_TT_DETAIL_CV_TRAITS_IMPL_HPP_INCLUDED
-
-#include <boost/config.hpp>
-#include <boost/detail/workaround.hpp>
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-// implementation helper:
-
-
-#if !(BOOST_WORKAROUND(__GNUC__,== 3) && BOOST_WORKAROUND(__GNUC_MINOR__, <= 2))
-namespace boost {
-namespace detail {
-#else
-#include <boost/type_traits/detail/yes_no_type.hpp>
-namespace boost {
-namespace type_traits {
-namespace gcc8503 {
-#endif
-
-template <typename T> struct cv_traits_imp {};
-
-template <typename T>
-struct cv_traits_imp<T*>
-{
-    BOOST_STATIC_CONSTANT(bool, is_const = false);
-    BOOST_STATIC_CONSTANT(bool, is_volatile = false);
-    typedef T unqualified_type;
-};
-
-template <typename T>
-struct cv_traits_imp<const T*>
-{
-    BOOST_STATIC_CONSTANT(bool, is_const = true);
-    BOOST_STATIC_CONSTANT(bool, is_volatile = false);
-    typedef T unqualified_type;
-};
-
-template <typename T>
-struct cv_traits_imp<volatile T*>
-{
-    BOOST_STATIC_CONSTANT(bool, is_const = false);
-    BOOST_STATIC_CONSTANT(bool, is_volatile = true);
-    typedef T unqualified_type;
-};
-
-template <typename T>
-struct cv_traits_imp<const volatile T*>
-{
-    BOOST_STATIC_CONSTANT(bool, is_const = true);
-    BOOST_STATIC_CONSTANT(bool, is_volatile = true);
-    typedef T unqualified_type;
-};
-
-#if BOOST_WORKAROUND(__GNUC__,== 3) && BOOST_WORKAROUND(__GNUC_MINOR__, <= 2)
-// We have to exclude function pointers 
-// (see http://gcc.gnu.org/bugzilla/show_bug.cgi?8503)
-yes_type mini_funcptr_tester(...);
-no_type  mini_funcptr_tester(const volatile void*);
-
-} // namespace gcc8503
-} // namespace type_traits
-
-namespace detail {
-
-// Use the implementation above for non function pointers
-template <typename T, unsigned Select 
-  = (unsigned)sizeof(::boost::type_traits::gcc8503::mini_funcptr_tester((T)0)) >
-struct cv_traits_imp : public ::boost::type_traits::gcc8503::cv_traits_imp<T> { };
-
-// Functions are never cv-qualified
-template <typename T> struct cv_traits_imp<T*,1>
-{
-    BOOST_STATIC_CONSTANT(bool, is_const = false);
-    BOOST_STATIC_CONSTANT(bool, is_volatile = false);
-    typedef T unqualified_type;
-};
-
-#endif
-
-} // namespace detail
-} // namespace boost 
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#endif // BOOST_TT_DETAIL_CV_TRAITS_IMPL_HPP_INCLUDED
diff --git a/boost/type_traits/detail/false_result.hpp b/boost/type_traits/detail/false_result.hpp
deleted file mode 100644
index e65e8bc..0000000
--- a/boost/type_traits/detail/false_result.hpp
+++ /dev/null
@@ -1,28 +0,0 @@
-//  Copyright David Abrahams 2002. 
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-
-#ifndef BOOST_TT_DETAIL_FALSE_RESULT_HPP_INCLUDED
-#define BOOST_TT_DETAIL_FALSE_RESULT_HPP_INCLUDED
-
-#include <boost/config.hpp>
-
-namespace boost {
-namespace type_traits {
-
-// Utility class which always "returns" false
-struct false_result
-{
-    template <typename T> struct result_
-    {
-        BOOST_STATIC_CONSTANT(bool, value = false);
-    };
-};
-
-}} // namespace boost::type_traits
-
-#endif // BOOST_TT_DETAIL_FALSE_RESULT_HPP_INCLUDED
diff --git a/boost/type_traits/detail/has_binary_operator.hpp b/boost/type_traits/detail/has_binary_operator.hpp
deleted file mode 100644
index 1fd26ef..0000000
--- a/boost/type_traits/detail/has_binary_operator.hpp
+++ /dev/null
@@ -1,229 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron, Robert Stewart, Steven Watanabe & Roman Perepelitsa.
-//
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#include <boost/config.hpp>
-#include <boost/type_traits/ice.hpp>
-#include <boost/type_traits/integral_constant.hpp>
-#include <boost/type_traits/is_base_of.hpp>
-#include <boost/type_traits/is_const.hpp>
-#include <boost/type_traits/is_convertible.hpp>
-#include <boost/type_traits/is_fundamental.hpp>
-#include <boost/type_traits/is_integral.hpp>
-#include <boost/type_traits/is_pointer.hpp>
-#include <boost/type_traits/is_same.hpp>
-#include <boost/type_traits/is_void.hpp>
-#include <boost/type_traits/remove_cv.hpp>
-#include <boost/type_traits/remove_pointer.hpp>
-#include <boost/type_traits/remove_reference.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-// cannot include this header without getting warnings of the kind:
-// gcc:
-//    warning: value computed is not used
-//    warning: comparison between signed and unsigned integer expressions
-// msvc:
-//    warning C4018: '<' : signed/unsigned mismatch
-//    warning C4244: '+=' : conversion from 'double' to 'char', possible loss of data
-//    warning C4547: '*' : operator before comma has no effect; expected operator with side-effect
-//    warning C4800: 'int' : forcing value to bool 'true' or 'false' (performance warning)
-//    warning C4804: '<' : unsafe use of type 'bool' in operation
-//    warning C4805: '==' : unsafe mix of type 'bool' and type 'char' in operation
-// cannot find another implementation -> declared as system header to suppress these warnings.
-#if defined(__GNUC__) && ((__GNUC__==3 && __GNUC_MINOR__>=1) || (__GNUC__>3))
-#   pragma GCC system_header
-#elif defined(BOOST_MSVC)
-#   pragma warning ( push )
-#   pragma warning ( disable : 4018 4244 4547 4800 4804 4805 4913 )
-#endif
-
-namespace boost {
-namespace detail {
-
-// This namespace ensures that argument-dependent name lookup does not mess things up.
-namespace BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl) {
-
-// 1. a function to have an instance of type T without requiring T to be default
-// constructible
-template <typename T> T &make();
-
-
-// 2. we provide our operator definition for types that do not have one already
-
-// a type returned from operator BOOST_TT_TRAIT_OP when no such operator is
-// found in the type's own namespace (our own operator is used) so that we have
-// a means to know that our operator was used
-struct no_operator { };
-
-// this class allows implicit conversions and makes the following operator
-// definition less-preferred than any other such operators that might be found
-// via argument-dependent name lookup
-struct any { template <class T> any(T const&); };
-
-// when operator BOOST_TT_TRAIT_OP is not available, this one is used
-no_operator operator BOOST_TT_TRAIT_OP (const any&, const any&);
-
-
-// 3. checks if the operator returns void or not
-// conditions: Lhs!=void and Rhs!=void
-
-// we first redefine "operator," so that we have no compilation error if
-// operator BOOST_TT_TRAIT_OP returns void and we can use the return type of
-// (lhs BOOST_TT_TRAIT_OP rhs, returns_void_t()) to deduce if
-// operator BOOST_TT_TRAIT_OP returns void or not:
-// - operator BOOST_TT_TRAIT_OP returns void   -> (lhs BOOST_TT_TRAIT_OP rhs, returns_void_t()) returns returns_void_t
-// - operator BOOST_TT_TRAIT_OP returns !=void -> (lhs BOOST_TT_TRAIT_OP rhs, returns_void_t()) returns int
-struct returns_void_t { };
-template <typename T> int operator,(const T&, returns_void_t);
-template <typename T> int operator,(const volatile T&, returns_void_t);
-
-// this intermediate trait has member value of type bool:
-// - value==true -> operator BOOST_TT_TRAIT_OP returns void
-// - value==false -> operator BOOST_TT_TRAIT_OP does not return void
-template < typename Lhs, typename Rhs >
-struct operator_returns_void {
-   // overloads of function returns_void make the difference
-   // yes_type and no_type have different size by construction
-   static ::boost::type_traits::yes_type returns_void(returns_void_t);
-   static ::boost::type_traits::no_type returns_void(int);
-   BOOST_STATIC_CONSTANT(bool, value = (sizeof(::boost::type_traits::yes_type)==sizeof(returns_void((make<Lhs>() BOOST_TT_TRAIT_OP make<Rhs>(),returns_void_t())))));
-};
-
-
-// 4. checks if the return type is Ret or Ret==dont_care
-// conditions: Lhs!=void and Rhs!=void
-
-struct dont_care { };
-
-template < typename Lhs, typename Rhs, typename Ret, bool Returns_void >
-struct operator_returns_Ret;
-
-template < typename Lhs, typename Rhs >
-struct operator_returns_Ret < Lhs, Rhs, dont_care, true > {
-   BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template < typename Lhs, typename Rhs >
-struct operator_returns_Ret < Lhs, Rhs, dont_care, false > {
-   BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template < typename Lhs, typename Rhs >
-struct operator_returns_Ret < Lhs, Rhs, void, true > {
-   BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template < typename Lhs, typename Rhs >
-struct operator_returns_Ret < Lhs, Rhs, void, false > {
-   BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template < typename Lhs, typename Rhs, typename Ret >
-struct operator_returns_Ret < Lhs, Rhs, Ret, true > {
-   BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-// otherwise checks if it is convertible to Ret using the sizeof trick
-// based on overload resolution
-// condition: Ret!=void and Ret!=dont_care and the operator does not return void
-template < typename Lhs, typename Rhs, typename Ret >
-struct operator_returns_Ret < Lhs, Rhs, Ret, false > {
-   static ::boost::type_traits::yes_type is_convertible_to_Ret(Ret); // this version is preferred for types convertible to Ret
-   static ::boost::type_traits::no_type is_convertible_to_Ret(...); // this version is used otherwise
-
-   BOOST_STATIC_CONSTANT(bool, value = (sizeof(is_convertible_to_Ret(make<Lhs>() BOOST_TT_TRAIT_OP make<Rhs>()))==sizeof(::boost::type_traits::yes_type)));
-};
-
-
-// 5. checks for operator existence
-// condition: Lhs!=void and Rhs!=void
-
-// checks if our definition of operator BOOST_TT_TRAIT_OP is used or an other
-// existing one;
-// this is done with redefinition of "operator," that returns no_operator or has_operator
-struct has_operator { };
-no_operator operator,(no_operator, has_operator);
-
-template < typename Lhs, typename Rhs >
-struct operator_exists {
-   static ::boost::type_traits::yes_type check(has_operator); // this version is preferred when operator exists
-   static ::boost::type_traits::no_type check(no_operator); // this version is used otherwise
-
-   BOOST_STATIC_CONSTANT(bool, value = (sizeof(check(((make<Lhs>() BOOST_TT_TRAIT_OP make<Rhs>()),make<has_operator>())))==sizeof(::boost::type_traits::yes_type)));
-};
-
-
-// 6. main trait: to avoid any compilation error, this class behaves
-// differently when operator BOOST_TT_TRAIT_OP(Lhs, Rhs) is forbidden by the
-// standard.
-// Forbidden_if is a bool that is:
-// - true when the operator BOOST_TT_TRAIT_OP(Lhs, Rhs) is forbidden by the standard
-//   (would yield compilation error if used)
-// - false otherwise
-template < typename Lhs, typename Rhs, typename Ret, bool Forbidden_if >
-struct trait_impl1;
-
-template < typename Lhs, typename Rhs, typename Ret >
-struct trait_impl1 < Lhs, Rhs, Ret, true > {
-   BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template < typename Lhs, typename Rhs, typename Ret >
-struct trait_impl1 < Lhs, Rhs, Ret, false > {
-   BOOST_STATIC_CONSTANT(bool,
-      value = (
-         ::boost::type_traits::ice_and<
-            operator_exists < Lhs, Rhs >::value,
-            operator_returns_Ret < Lhs, Rhs, Ret, operator_returns_void < Lhs, Rhs >::value >::value
-         >::value
-      )
-   );
-};
-
-// some specializations needs to be declared for the special void case
-template < typename Rhs, typename Ret >
-struct trait_impl1 < void, Rhs, Ret, false > {
-   BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template < typename Lhs, typename Ret >
-struct trait_impl1 < Lhs, void, Ret, false > {
-   BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template < typename Ret >
-struct trait_impl1 < void, void, Ret, false > {
-   BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-// defines some typedef for convenience
-template < typename Lhs, typename Rhs, typename Ret >
-struct trait_impl {
-   typedef typename ::boost::remove_reference<Lhs>::type Lhs_noref;
-   typedef typename ::boost::remove_reference<Rhs>::type Rhs_noref;
-   typedef typename ::boost::remove_cv<Lhs_noref>::type Lhs_nocv;
-   typedef typename ::boost::remove_cv<Rhs_noref>::type Rhs_nocv;
-   typedef typename ::boost::remove_cv< typename ::boost::remove_reference< typename ::boost::remove_pointer<Lhs_noref>::type >::type >::type Lhs_noptr;
-   typedef typename ::boost::remove_cv< typename ::boost::remove_reference< typename ::boost::remove_pointer<Rhs_noref>::type >::type >::type Rhs_noptr;
-   BOOST_STATIC_CONSTANT(bool, value = (trait_impl1 < Lhs_noref, Rhs_noref, Ret, BOOST_TT_FORBIDDEN_IF >::value));
-};
-
-} // namespace impl
-} // namespace detail
-
-// this is the accessible definition of the trait to end user
-BOOST_TT_AUX_BOOL_TRAIT_DEF3(BOOST_TT_TRAIT_NAME, Lhs, Rhs=Lhs, Ret=::boost::detail::BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)::dont_care, (::boost::detail::BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)::trait_impl < Lhs, Rhs, Ret >::value))
-
-} // namespace boost
-
-#if defined(BOOST_MSVC)
-#   pragma warning ( pop )
-#endif
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
diff --git a/boost/type_traits/detail/has_postfix_operator.hpp b/boost/type_traits/detail/has_postfix_operator.hpp
deleted file mode 100644
index 5c52b07..0000000
--- a/boost/type_traits/detail/has_postfix_operator.hpp
+++ /dev/null
@@ -1,202 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron, Robert Stewart, Steven Watanabe & Roman Perepelitsa.
-//
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#include <boost/config.hpp>
-#include <boost/type_traits/ice.hpp>
-#include <boost/type_traits/integral_constant.hpp>
-#include <boost/type_traits/is_const.hpp>
-#include <boost/type_traits/is_fundamental.hpp>
-#include <boost/type_traits/is_pointer.hpp>
-#include <boost/type_traits/is_same.hpp>
-#include <boost/type_traits/is_void.hpp>
-#include <boost/type_traits/remove_cv.hpp>
-#include <boost/type_traits/remove_pointer.hpp>
-#include <boost/type_traits/remove_reference.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-// avoid warnings
-#if defined(__GNUC__) && ((__GNUC__==3 && __GNUC_MINOR__>=1) || (__GNUC__>3))
-#   pragma GCC system_header
-#elif defined(BOOST_MSVC)
-#   pragma warning ( push )
-#   pragma warning ( disable : 4244 4913 )
-#endif
-
-namespace boost {
-namespace detail {
-
-// This namespace ensures that argument-dependent name lookup does not mess things up.
-namespace BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl) {
-
-// 1. a function to have an instance of type T without requiring T to be default
-// constructible
-template <typename T> T &make();
-
-
-// 2. we provide our operator definition for types that do not have one already
-
-// a type returned from operator BOOST_TT_TRAIT_OP when no such operator is
-// found in the type's own namespace (our own operator is used) so that we have
-// a means to know that our operator was used
-struct no_operator { };
-
-// this class allows implicit conversions and makes the following operator
-// definition less-preferred than any other such operators that might be found
-// via argument-dependent name lookup
-struct any { template <class T> any(T const&); };
-
-// when operator BOOST_TT_TRAIT_OP is not available, this one is used
-no_operator operator BOOST_TT_TRAIT_OP (const any&, int);
-
-
-// 3. checks if the operator returns void or not
-// conditions: Lhs!=void
-
-// we first redefine "operator," so that we have no compilation error if
-// operator BOOST_TT_TRAIT_OP returns void and we can use the return type of
-// (lhs BOOST_TT_TRAIT_OP, returns_void_t()) to deduce if
-// operator BOOST_TT_TRAIT_OP returns void or not:
-// - operator BOOST_TT_TRAIT_OP returns void   -> (lhs BOOST_TT_TRAIT_OP, returns_void_t()) returns returns_void_t
-// - operator BOOST_TT_TRAIT_OP returns !=void -> (lhs BOOST_TT_TRAIT_OP, returns_void_t()) returns int
-struct returns_void_t { };
-template <typename T> int operator,(const T&, returns_void_t);
-template <typename T> int operator,(const volatile T&, returns_void_t);
-
-// this intermediate trait has member value of type bool:
-// - value==true -> operator BOOST_TT_TRAIT_OP returns void
-// - value==false -> operator BOOST_TT_TRAIT_OP does not return void
-template < typename Lhs >
-struct operator_returns_void {
-   // overloads of function returns_void make the difference
-   // yes_type and no_type have different size by construction
-   static ::boost::type_traits::yes_type returns_void(returns_void_t);
-   static ::boost::type_traits::no_type returns_void(int);
-   BOOST_STATIC_CONSTANT(bool, value = (sizeof(::boost::type_traits::yes_type)==sizeof(returns_void((make<Lhs>() BOOST_TT_TRAIT_OP,returns_void_t())))));
-};
-
-
-// 4. checks if the return type is Ret or Ret==dont_care
-// conditions: Lhs!=void
-
-struct dont_care { };
-
-template < typename Lhs, typename Ret, bool Returns_void >
-struct operator_returns_Ret;
-
-template < typename Lhs >
-struct operator_returns_Ret < Lhs, dont_care, true > {
-   BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template < typename Lhs >
-struct operator_returns_Ret < Lhs, dont_care, false > {
-   BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template < typename Lhs >
-struct operator_returns_Ret < Lhs, void, true > {
-   BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template < typename Lhs >
-struct operator_returns_Ret < Lhs, void, false > {
-   BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template < typename Lhs, typename Ret >
-struct operator_returns_Ret < Lhs, Ret, true > {
-   BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-// otherwise checks if it is convertible to Ret using the sizeof trick
-// based on overload resolution
-// condition: Ret!=void and Ret!=dont_care and the operator does not return void
-template < typename Lhs, typename Ret >
-struct operator_returns_Ret < Lhs, Ret, false > {
-   static ::boost::type_traits::yes_type is_convertible_to_Ret(Ret); // this version is preferred for types convertible to Ret
-   static ::boost::type_traits::no_type is_convertible_to_Ret(...); // this version is used otherwise
-
-   BOOST_STATIC_CONSTANT(bool, value = (sizeof(is_convertible_to_Ret(make<Lhs>() BOOST_TT_TRAIT_OP))==sizeof(::boost::type_traits::yes_type)));
-};
-
-
-// 5. checks for operator existence
-// condition: Lhs!=void
-
-// checks if our definition of operator BOOST_TT_TRAIT_OP is used or an other
-// existing one;
-// this is done with redefinition of "operator," that returns no_operator or has_operator
-struct has_operator { };
-no_operator operator,(no_operator, has_operator);
-
-template < typename Lhs >
-struct operator_exists {
-   static ::boost::type_traits::yes_type check(has_operator); // this version is preferred when operator exists
-   static ::boost::type_traits::no_type check(no_operator); // this version is used otherwise
-
-   BOOST_STATIC_CONSTANT(bool, value = (sizeof(check(((make<Lhs>() BOOST_TT_TRAIT_OP),make<has_operator>())))==sizeof(::boost::type_traits::yes_type)));
-};
-
-
-// 6. main trait: to avoid any compilation error, this class behaves
-// differently when operator BOOST_TT_TRAIT_OP(Lhs) is forbidden by the
-// standard.
-// Forbidden_if is a bool that is:
-// - true when the operator BOOST_TT_TRAIT_OP(Lhs) is forbidden by the standard
-//   (would yield compilation error if used)
-// - false otherwise
-template < typename Lhs, typename Ret, bool Forbidden_if >
-struct trait_impl1;
-
-template < typename Lhs, typename Ret >
-struct trait_impl1 < Lhs, Ret, true > {
-   BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template < typename Lhs, typename Ret >
-struct trait_impl1 < Lhs, Ret, false > {
-   BOOST_STATIC_CONSTANT(bool,
-      value = (
-         ::boost::type_traits::ice_and<
-            operator_exists < Lhs >::value,
-            operator_returns_Ret < Lhs, Ret, operator_returns_void < Lhs >::value >::value
-         >::value
-      )
-   );
-};
-
-// specialization needs to be declared for the special void case
-template < typename Ret >
-struct trait_impl1 < void, Ret, false > {
-   BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-// defines some typedef for convenience
-template < typename Lhs, typename Ret >
-struct trait_impl {
-   typedef typename ::boost::remove_reference<Lhs>::type Lhs_noref;
-   typedef typename ::boost::remove_cv<Lhs_noref>::type Lhs_nocv;
-   typedef typename ::boost::remove_cv< typename ::boost::remove_reference< typename ::boost::remove_pointer<Lhs_noref>::type >::type >::type Lhs_noptr;
-   BOOST_STATIC_CONSTANT(bool, value = (trait_impl1 < Lhs_noref, Ret, BOOST_TT_FORBIDDEN_IF >::value));
-};
-
-} // namespace impl
-} // namespace detail
-
-// this is the accessible definition of the trait to end user
-BOOST_TT_AUX_BOOL_TRAIT_DEF2(BOOST_TT_TRAIT_NAME, Lhs, Ret=::boost::detail::BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)::dont_care, (::boost::detail::BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)::trait_impl< Lhs, Ret >::value))
-
-} // namespace boost
-
-#if defined(BOOST_MSVC)
-#   pragma warning ( pop )
-#endif
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
diff --git a/boost/type_traits/detail/has_prefix_operator.hpp b/boost/type_traits/detail/has_prefix_operator.hpp
deleted file mode 100644
index ac30e4d..0000000
--- a/boost/type_traits/detail/has_prefix_operator.hpp
+++ /dev/null
@@ -1,210 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron, Robert Stewart, Steven Watanabe & Roman Perepelitsa.
-//
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#include <boost/config.hpp>
-#include <boost/type_traits/ice.hpp>
-#include <boost/type_traits/integral_constant.hpp>
-#include <boost/type_traits/is_const.hpp>
-#include <boost/type_traits/is_fundamental.hpp>
-#include <boost/type_traits/is_integral.hpp>
-#include <boost/type_traits/is_pointer.hpp>
-#include <boost/type_traits/is_same.hpp>
-#include <boost/type_traits/is_void.hpp>
-#include <boost/type_traits/remove_cv.hpp>
-#include <boost/type_traits/remove_pointer.hpp>
-#include <boost/type_traits/remove_reference.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-// cannot include this header without getting warnings of the kind:
-// gcc:
-//    warning: value computed is not used
-//    warning: comparison between signed and unsigned integer expressions
-// msvc:
-//    warning C4146: unary minus operator applied to unsigned type, result still unsigned
-//    warning C4804: '-' : unsafe use of type 'bool' in operation
-// cannot find another implementation -> declared as system header to suppress these warnings.
-#if defined(__GNUC__) && ((__GNUC__==3 && __GNUC_MINOR__>=1) || (__GNUC__>3))
-#   pragma GCC system_header
-#elif defined(BOOST_MSVC)
-#   pragma warning ( push )
-#   pragma warning ( disable : 4146 4804 4913 4244 )
-#endif
-
-namespace boost {
-namespace detail {
-
-// This namespace ensures that argument-dependent name lookup does not mess things up.
-namespace BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl) {
-
-// 1. a function to have an instance of type T without requiring T to be default
-// constructible
-template <typename T> T &make();
-
-
-// 2. we provide our operator definition for types that do not have one already
-
-// a type returned from operator BOOST_TT_TRAIT_OP when no such operator is
-// found in the type's own namespace (our own operator is used) so that we have
-// a means to know that our operator was used
-struct no_operator { };
-
-// this class allows implicit conversions and makes the following operator
-// definition less-preferred than any other such operators that might be found
-// via argument-dependent name lookup
-struct any { template <class T> any(T const&); };
-
-// when operator BOOST_TT_TRAIT_OP is not available, this one is used
-no_operator operator BOOST_TT_TRAIT_OP (const any&);
-
-
-// 3. checks if the operator returns void or not
-// conditions: Rhs!=void
-
-// we first redefine "operator," so that we have no compilation error if
-// operator BOOST_TT_TRAIT_OP returns void and we can use the return type of
-// (BOOST_TT_TRAIT_OP rhs, returns_void_t()) to deduce if
-// operator BOOST_TT_TRAIT_OP returns void or not:
-// - operator BOOST_TT_TRAIT_OP returns void   -> (BOOST_TT_TRAIT_OP rhs, returns_void_t()) returns returns_void_t
-// - operator BOOST_TT_TRAIT_OP returns !=void -> (BOOST_TT_TRAIT_OP rhs, returns_void_t()) returns int
-struct returns_void_t { };
-template <typename T> int operator,(const T&, returns_void_t);
-template <typename T> int operator,(const volatile T&, returns_void_t);
-
-// this intermediate trait has member value of type bool:
-// - value==true -> operator BOOST_TT_TRAIT_OP returns void
-// - value==false -> operator BOOST_TT_TRAIT_OP does not return void
-template < typename Rhs >
-struct operator_returns_void {
-   // overloads of function returns_void make the difference
-   // yes_type and no_type have different size by construction
-   static ::boost::type_traits::yes_type returns_void(returns_void_t);
-   static ::boost::type_traits::no_type returns_void(int);
-   BOOST_STATIC_CONSTANT(bool, value = (sizeof(::boost::type_traits::yes_type)==sizeof(returns_void((BOOST_TT_TRAIT_OP make<Rhs>(),returns_void_t())))));
-};
-
-
-// 4. checks if the return type is Ret or Ret==dont_care
-// conditions: Rhs!=void
-
-struct dont_care { };
-
-template < typename Rhs, typename Ret, bool Returns_void >
-struct operator_returns_Ret;
-
-template < typename Rhs >
-struct operator_returns_Ret < Rhs, dont_care, true > {
-   BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template < typename Rhs >
-struct operator_returns_Ret < Rhs, dont_care, false > {
-   BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template < typename Rhs >
-struct operator_returns_Ret < Rhs, void, true > {
-   BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template < typename Rhs >
-struct operator_returns_Ret < Rhs, void, false > {
-   BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template < typename Rhs, typename Ret >
-struct operator_returns_Ret < Rhs, Ret, true > {
-   BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-// otherwise checks if it is convertible to Ret using the sizeof trick
-// based on overload resolution
-// condition: Ret!=void and Ret!=dont_care and the operator does not return void
-template < typename Rhs, typename Ret >
-struct operator_returns_Ret < Rhs, Ret, false > {
-   static ::boost::type_traits::yes_type is_convertible_to_Ret(Ret); // this version is preferred for types convertible to Ret
-   static ::boost::type_traits::no_type is_convertible_to_Ret(...); // this version is used otherwise
-
-   BOOST_STATIC_CONSTANT(bool, value = (sizeof(is_convertible_to_Ret(BOOST_TT_TRAIT_OP make<Rhs>()))==sizeof(::boost::type_traits::yes_type)));
-};
-
-
-// 5. checks for operator existence
-// condition: Rhs!=void
-
-// checks if our definition of operator BOOST_TT_TRAIT_OP is used or an other
-// existing one;
-// this is done with redefinition of "operator," that returns no_operator or has_operator
-struct has_operator { };
-no_operator operator,(no_operator, has_operator);
-
-template < typename Rhs >
-struct operator_exists {
-   static ::boost::type_traits::yes_type check(has_operator); // this version is preferred when operator exists
-   static ::boost::type_traits::no_type check(no_operator); // this version is used otherwise
-
-   BOOST_STATIC_CONSTANT(bool, value = (sizeof(check(((BOOST_TT_TRAIT_OP make<Rhs>()),make<has_operator>())))==sizeof(::boost::type_traits::yes_type)));
-};
-
-
-// 6. main trait: to avoid any compilation error, this class behaves
-// differently when operator BOOST_TT_TRAIT_OP(Rhs) is forbidden by the
-// standard.
-// Forbidden_if is a bool that is:
-// - true when the operator BOOST_TT_TRAIT_OP(Rhs) is forbidden by the standard
-//   (would yield compilation error if used)
-// - false otherwise
-template < typename Rhs, typename Ret, bool Forbidden_if >
-struct trait_impl1;
-
-template < typename Rhs, typename Ret >
-struct trait_impl1 < Rhs, Ret, true > {
-   BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template < typename Rhs, typename Ret >
-struct trait_impl1 < Rhs, Ret, false > {
-   BOOST_STATIC_CONSTANT(bool,
-      value = (
-         ::boost::type_traits::ice_and<
-            operator_exists < Rhs >::value,
-            operator_returns_Ret < Rhs, Ret, operator_returns_void < Rhs >::value >::value
-         >::value
-      )
-   );
-};
-
-// specialization needs to be declared for the special void case
-template < typename Ret >
-struct trait_impl1 < void, Ret, false > {
-   BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-// defines some typedef for convenience
-template < typename Rhs, typename Ret >
-struct trait_impl {
-   typedef typename ::boost::remove_reference<Rhs>::type Rhs_noref;
-   typedef typename ::boost::remove_cv<Rhs_noref>::type Rhs_nocv;
-   typedef typename ::boost::remove_cv< typename ::boost::remove_reference< typename ::boost::remove_pointer<Rhs_noref>::type >::type >::type Rhs_noptr;
-   BOOST_STATIC_CONSTANT(bool, value = (trait_impl1 < Rhs_noref, Ret, BOOST_TT_FORBIDDEN_IF >::value));
-};
-
-} // namespace impl
-} // namespace detail
-
-// this is the accessible definition of the trait to end user
-BOOST_TT_AUX_BOOL_TRAIT_DEF2(BOOST_TT_TRAIT_NAME, Rhs, Ret=::boost::detail::BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)::dont_care, (::boost::detail::BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)::trait_impl < Rhs, Ret >::value))
-
-} // namespace boost
-
-#if defined(BOOST_MSVC)
-#   pragma warning ( pop )
-#endif
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
diff --git a/boost/type_traits/detail/ice_and.hpp b/boost/type_traits/detail/ice_and.hpp
deleted file mode 100644
index 8b461b9..0000000
--- a/boost/type_traits/detail/ice_and.hpp
+++ /dev/null
@@ -1,35 +0,0 @@
-//  (C) Copyright John Maddock and Steve Cleary 2000.
-//
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_DETAIL_ICE_AND_HPP_INCLUDED
-#define BOOST_TT_DETAIL_ICE_AND_HPP_INCLUDED
-
-#include <boost/config.hpp>
-
-namespace boost {
-namespace type_traits {
-
-template <bool b1, bool b2, bool b3 = true, bool b4 = true, bool b5 = true, bool b6 = true, bool b7 = true>
-struct ice_and;
-
-template <bool b1, bool b2, bool b3, bool b4, bool b5, bool b6, bool b7>
-struct ice_and
-{
-    BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template <>
-struct ice_and<true, true, true, true, true, true, true>
-{
-    BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-} // namespace type_traits
-} // namespace boost
-
-#endif // BOOST_TT_DETAIL_ICE_AND_HPP_INCLUDED
diff --git a/boost/type_traits/detail/ice_eq.hpp b/boost/type_traits/detail/ice_eq.hpp
deleted file mode 100644
index ea42a60..0000000
--- a/boost/type_traits/detail/ice_eq.hpp
+++ /dev/null
@@ -1,36 +0,0 @@
-//  (C) Copyright John Maddock and Steve Cleary 2000.
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_DETAIL_ICE_EQ_HPP_INCLUDED
-#define BOOST_TT_DETAIL_ICE_EQ_HPP_INCLUDED
-
-#include <boost/config.hpp>
-
-namespace boost {
-namespace type_traits {
-
-template <int b1, int b2>
-struct ice_eq
-{
-    BOOST_STATIC_CONSTANT(bool, value = (b1 == b2));
-};
-
-template <int b1, int b2>
-struct ice_ne
-{
-    BOOST_STATIC_CONSTANT(bool, value = (b1 != b2));
-};
-
-#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
-template <int b1, int b2> bool const ice_eq<b1,b2>::value;
-template <int b1, int b2> bool const ice_ne<b1,b2>::value;
-#endif
-
-} // namespace type_traits
-} // namespace boost
-
-#endif // BOOST_TT_DETAIL_ICE_EQ_HPP_INCLUDED
diff --git a/boost/type_traits/detail/ice_not.hpp b/boost/type_traits/detail/ice_not.hpp
deleted file mode 100644
index ee1dca0..0000000
--- a/boost/type_traits/detail/ice_not.hpp
+++ /dev/null
@@ -1,31 +0,0 @@
-//  (C) Copyright John Maddock and Steve Cleary 2000.
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_DETAIL_ICE_NOT_HPP_INCLUDED
-#define BOOST_TT_DETAIL_ICE_NOT_HPP_INCLUDED
-
-#include <boost/config.hpp>
-
-namespace boost {
-namespace type_traits {
-
-template <bool b>
-struct ice_not
-{
-    BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template <>
-struct ice_not<true>
-{
-    BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-} // namespace type_traits
-} // namespace boost
-
-#endif // BOOST_TT_DETAIL_ICE_NOT_HPP_INCLUDED
diff --git a/boost/type_traits/detail/ice_or.hpp b/boost/type_traits/detail/ice_or.hpp
deleted file mode 100644
index f88d9f6..0000000
--- a/boost/type_traits/detail/ice_or.hpp
+++ /dev/null
@@ -1,34 +0,0 @@
-//  (C) Copyright John Maddock and Steve Cleary 2000.
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_DETAIL_ICE_OR_HPP_INCLUDED
-#define BOOST_TT_DETAIL_ICE_OR_HPP_INCLUDED
-
-#include <boost/config.hpp>
-
-namespace boost {
-namespace type_traits {
-
-template <bool b1, bool b2, bool b3 = false, bool b4 = false, bool b5 = false, bool b6 = false, bool b7 = false>
-struct ice_or;
-
-template <bool b1, bool b2, bool b3, bool b4, bool b5, bool b6, bool b7>
-struct ice_or
-{
-    BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template <>
-struct ice_or<false, false, false, false, false, false, false>
-{
-    BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-} // namespace type_traits
-} // namespace boost
-
-#endif // BOOST_TT_DETAIL_ICE_OR_HPP_INCLUDED
diff --git a/boost/type_traits/detail/is_function_ptr_helper.hpp b/boost/type_traits/detail/is_function_ptr_helper.hpp
deleted file mode 100644
index 605d0bc..0000000
--- a/boost/type_traits/detail/is_function_ptr_helper.hpp
+++ /dev/null
@@ -1,220 +0,0 @@
-
-//  Copyright 2000 John Maddock (john at johnmaddock.co.uk)
-//  Copyright 2002 Aleksey Gurtovoy (agurtovoy at meta-comm.com)
-//
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#if !defined(BOOST_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef BOOST_TT_DETAIL_IS_FUNCTION_PTR_HELPER_HPP_INCLUDED
-#define BOOST_TT_DETAIL_IS_FUNCTION_PTR_HELPER_HPP_INCLUDED
-
-#include <boost/type_traits/config.hpp>
-
-#if defined(BOOST_TT_PREPROCESSING_MODE)
-#   include <boost/preprocessor/iterate.hpp>
-#   include <boost/preprocessor/enum_params.hpp>
-#   include <boost/preprocessor/comma_if.hpp>
-#endif
-
-namespace boost {
-namespace type_traits {
-
-template <class R>
-struct is_function_ptr_helper
-{
-    BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-#if !defined(BOOST_TT_PREPROCESSING_MODE)
-// preprocessor-generated part, don't edit by hand!
-
-template <class R >
-struct is_function_ptr_helper<R (*)()> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R >
-struct is_function_ptr_helper<R (*)( ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0>
-struct is_function_ptr_helper<R (*)( T0)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0>
-struct is_function_ptr_helper<R (*)( T0 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1>
-struct is_function_ptr_helper<R (*)( T0 , T1)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1>
-struct is_function_ptr_helper<R (*)( T0 , T1 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#else
-
-#undef BOOST_STATIC_CONSTANT
-#define BOOST_PP_ITERATION_PARAMS_1 \
-    (3, (0, 25, "boost/type_traits/detail/is_function_ptr_helper.hpp"))
-#include BOOST_PP_ITERATE()
-
-#endif // BOOST_TT_PREPROCESSING_MODE
-
-} // namespace type_traits
-} // namespace boost
-
-#endif // BOOST_TT_DETAIL_IS_FUNCTION_PTR_HELPER_HPP_INCLUDED
-
-///// iteration
-
-#else
-#define BOOST_PP_COUNTER BOOST_PP_FRAME_ITERATION(1)
-
-template <class R BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct is_function_ptr_helper<R (*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T))> { BOOST_STATIC_CONSTANT(bool, value = true); };
-@#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct is_function_ptr_helper<R (*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-@#endif
-#undef BOOST_PP_COUNTER
-#endif // BOOST_PP_IS_ITERATING
diff --git a/boost/type_traits/detail/is_function_ptr_tester.hpp b/boost/type_traits/detail/is_function_ptr_tester.hpp
deleted file mode 100644
index 2ab49a3..0000000
--- a/boost/type_traits/detail/is_function_ptr_tester.hpp
+++ /dev/null
@@ -1,654 +0,0 @@
-
-//  (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, 
-//  Aleksey Gurtovoy, Howard Hinnant & John Maddock 2000.  
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#if !defined(BOOST_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef BOOST_TT_DETAIL_IS_FUNCTION_PTR_TESTER_HPP_INCLUDED
-#define BOOST_TT_DETAIL_IS_FUNCTION_PTR_TESTER_HPP_INCLUDED
-
-#include <boost/type_traits/detail/yes_no_type.hpp>
-#include <boost/type_traits/config.hpp>
-
-#if defined(BOOST_TT_PREPROCESSING_MODE)
-#   include <boost/preprocessor/iterate.hpp>
-#   include <boost/preprocessor/enum_params.hpp>
-#   include <boost/preprocessor/comma_if.hpp>
-#endif
-
-namespace boost {
-namespace type_traits {
-
-// Note it is acceptable to use ellipsis here, since the argument will
-// always be a pointer type of some sort (JM 2005/06/04):
-no_type BOOST_TT_DECL is_function_ptr_tester(...);
-
-#if !defined(BOOST_TT_PREPROCESSING_MODE)
-// pre-processed code, don't edit, try GNU cpp with 
-// cpp -I../../../ -DBOOST_TT_PREPROCESSING_MODE -x c++ -P filename
-
-template <class R >
-yes_type is_function_ptr_tester(R (*)());
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R >
-yes_type is_function_ptr_tester(R (*)( ...));
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R >
-yes_type is_function_ptr_tester(R (__stdcall*)());
-template <class R >
-yes_type is_function_ptr_tester(R (__stdcall*)( ...));
-#ifndef _MANAGED
-template <class R >
-yes_type is_function_ptr_tester(R (__fastcall*)());
-template <class R >
-yes_type is_function_ptr_tester(R (__fastcall*)( ...));
-#endif
-template <class R >
-yes_type is_function_ptr_tester(R (__cdecl*)());
-template <class R >
-yes_type is_function_ptr_tester(R (__cdecl*)( ...));
-#endif
-template <class R , class T0 >
-yes_type is_function_ptr_tester(R (*)( T0));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 >
-yes_type is_function_ptr_tester(R (*)( T0 ...));
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R , class T0 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0));
-template <class R , class T0 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 ...));
-#ifndef _MANAGED
-template <class R , class T0 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0));
-template <class R , class T0 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 ...));
-#endif
-template <class R , class T0 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0));
-template <class R , class T0 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 ...));
-#endif
-template <class R , class T0 , class T1 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 ...));
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R , class T0 , class T1 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1));
-template <class R , class T0 , class T1 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1));
-template <class R , class T0 , class T1 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 ...));
-#endif
-template <class R , class T0 , class T1 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1));
-template <class R , class T0 , class T1 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 ...));
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R , class T0 , class T1 , class T2 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2));
-template <class R , class T0 , class T1 , class T2 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 , class T2 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2));
-template <class R , class T0 , class T1 , class T2 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2));
-template <class R , class T0 , class T1 , class T2 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 ...));
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R , class T0 , class T1 , class T2 , class T3 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3));
-template <class R , class T0 , class T1 , class T2 , class T3 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 , class T2 , class T3 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3));
-template <class R , class T0 , class T1 , class T2 , class T3 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3));
-template <class R , class T0 , class T1 , class T2 , class T3 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 ...));
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 ...));
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...));
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...));
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...));
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...));
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...));
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...));
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...));
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...));
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...));
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...));
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...));
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...));
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...));
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...));
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...));
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...));
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...));
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...));
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...));
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...));
-#endif
-#else
-
-#define BOOST_PP_ITERATION_PARAMS_1 \
-    (3, (0, 25, "boost/type_traits/detail/is_function_ptr_tester.hpp"))
-#include BOOST_PP_ITERATE()
-
-#endif // BOOST_TT_PREPROCESSING_MODE
-
-} // namespace type_traits
-} // namespace boost
-
-#endif // BOOST_TT_DETAIL_IS_FUNCTION_PTR_TESTER_HPP_INCLUDED
-
-///// iteration
-
-#else
-#define BOOST_PP_COUNTER BOOST_PP_FRAME_ITERATION(1)
-#undef __stdcall
-#undef __fastcall
-#undef __cdecl
-
-template <class R BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_function_ptr_tester(R (*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)));
-@#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_function_ptr_tester(R (*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...));
-@#endif
-@#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_function_ptr_tester(R (__stdcall*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)));
-template <class R BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_function_ptr_tester(R (__stdcall*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...));
-@#ifndef _MANAGED
-template <class R BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_function_ptr_tester(R (__fastcall*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)));
-template <class R BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_function_ptr_tester(R (__fastcall*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...));
-@#endif
-template <class R BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_function_ptr_tester(R (__cdecl*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)));
-template <class R BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_function_ptr_tester(R (__cdecl*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...));
-@#endif
-
-#undef BOOST_PP_COUNTER
-#endif // BOOST_PP_IS_ITERATING
diff --git a/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp b/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp
deleted file mode 100644
index 4f75f14..0000000
--- a/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp
+++ /dev/null
@@ -1,817 +0,0 @@
-
-//  (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, 
-//  Aleksey Gurtovoy, Howard Hinnant & John Maddock 2000.  
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#if !defined(BOOST_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef BOOST_TT_DETAIL_IS_MEM_FUN_POINTER_IMPL_HPP_INCLUDED
-#define BOOST_TT_DETAIL_IS_MEM_FUN_POINTER_IMPL_HPP_INCLUDED
-
-#include <boost/config.hpp>
-
-#if defined(BOOST_TT_PREPROCESSING_MODE)
-#   include <boost/preprocessor/iterate.hpp>
-#   include <boost/preprocessor/enum_params.hpp>
-#   include <boost/preprocessor/comma_if.hpp>
-#endif
-
-namespace boost {
-namespace type_traits {
-
-template <typename T>
-struct is_mem_fun_pointer_impl
-{
-    BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-#if !defined(BOOST_TT_PREPROCESSING_MODE)
-// pre-processed code, don't edit, try GNU cpp with 
-// cpp -I../../../ -DBOOST_TT_PREPROCESSING_MODE -x c++ -P filename
-
-template <class R, class T >
-struct is_mem_fun_pointer_impl<R (T::*)() > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T >
-struct is_mem_fun_pointer_impl<R (T::*)( ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T >
-struct is_mem_fun_pointer_impl<R (T::*)() const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T >
-struct is_mem_fun_pointer_impl<R (T::*)() volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T >
-struct is_mem_fun_pointer_impl<R (T::*)() const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T >
-struct is_mem_fun_pointer_impl<R (T::*)( ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T >
-struct is_mem_fun_pointer_impl<R (T::*)( ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T >
-struct is_mem_fun_pointer_impl<R (T::*)( ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0>
-struct is_mem_fun_pointer_impl<R (T::*)( T0) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0>
-struct is_mem_fun_pointer_impl<R (T::*)( T0) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0>
-struct is_mem_fun_pointer_impl<R (T::*)( T0) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0>
-struct is_mem_fun_pointer_impl<R (T::*)( T0) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-
-#else
-
-#undef BOOST_STATIC_CONSTANT
-#define BOOST_PP_ITERATION_PARAMS_1 \
-    (3, (0, 25, "boost/type_traits/detail/is_mem_fun_pointer_impl.hpp"))
-#include BOOST_PP_ITERATE()
-
-#endif // BOOST_TT_PREPROCESSING_MODE
-
-} // namespace type_traits
-} // namespace boost
-
-#endif // BOOST_TT_DETAIL_IS_MEM_FUN_POINTER_IMPL_HPP_INCLUDED
-
-///// iteration
-
-#else
-#define BOOST_PP_COUNTER BOOST_PP_FRAME_ITERATION(1)
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct is_mem_fun_pointer_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-@#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct is_mem_fun_pointer_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-@#endif
-
-@#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct is_mem_fun_pointer_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct is_mem_fun_pointer_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct is_mem_fun_pointer_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-@#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct is_mem_fun_pointer_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct is_mem_fun_pointer_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct is_mem_fun_pointer_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-@#endif
-@#endif
-
-#undef BOOST_PP_COUNTER
-#endif // BOOST_PP_IS_ITERATING
-
diff --git a/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp b/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp
deleted file mode 100644
index e6532d3..0000000
--- a/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp
+++ /dev/null
@@ -1,2759 +0,0 @@
-
-//  (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, 
-//  Aleksey Gurtovoy, Howard Hinnant & John Maddock 2000.  
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#if !defined(BOOST_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef BOOST_TT_DETAIL_IS_MEM_FUN_POINTER_TESTER_HPP_INCLUDED
-#define BOOST_TT_DETAIL_IS_MEM_FUN_POINTER_TESTER_HPP_INCLUDED
-
-#include <boost/type_traits/detail/yes_no_type.hpp>
-#include <boost/type_traits/config.hpp>
-
-#if defined(BOOST_TT_PREPROCESSING_MODE)
-#   include <boost/preprocessor/iterate.hpp>
-#   include <boost/preprocessor/enum_params.hpp>
-#   include <boost/preprocessor/comma_if.hpp>
-#endif
-
-namespace boost {
-namespace type_traits {
-
-no_type BOOST_TT_DECL is_mem_fun_pointer_tester(...);
-
-#if !defined(BOOST_TT_PREPROCESSING_MODE)
-// pre-processed code, don't edit, try GNU cpp with 
-// cpp -I../../../ -DBOOST_TT_PREPROCESSING_MODE -x c++ -P filename
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)());
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)() const);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)() volatile);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)() const volatile);
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( ...));
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( ...) const);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( ...) volatile);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( ...) const volatile);
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)());
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)() const);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)() volatile);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)() const volatile);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( ...));
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( ...) const);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( ...) volatile);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)());
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)() const);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)() volatile);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)() const volatile);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( ...));
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( ...) const);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( ...) volatile);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( ...) const volatile);
-#endif
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)());
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)() const);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)() volatile);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)() const volatile);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( ...));
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( ...) const);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( ...) volatile);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( ...) const volatile);
-#endif
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0));
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0) const);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0) volatile);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0) const volatile);
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 ...));
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 ...) const);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 ...) volatile);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 ...) const volatile);
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0));
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0) const);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0) volatile);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0) const volatile);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 ...));
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 ...) const);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 ...) volatile);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0));
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0) const);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0) volatile);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0) const volatile);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 ...));
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 ...) const);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 ...) volatile);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0));
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0) const);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0) volatile);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0) const volatile);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 ...));
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 ...) const);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 ...) volatile);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 ...) const volatile);
-#endif
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1));
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1) const);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1) volatile);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1) const volatile);
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 ...));
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 ...) const);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 ...) volatile);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 ...) const volatile);
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1));
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1) const);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1) volatile);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1) const volatile);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 ...));
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 ...) const);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 ...) volatile);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1));
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1) const);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1) volatile);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1) const volatile);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 ...));
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 ...) const);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 ...) volatile);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1));
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1) const);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1) volatile);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1) const volatile);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 ...));
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 ...) const);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 ...) volatile);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 ...) const volatile);
-#endif
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2));
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2) const);
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2) const volatile);
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 ...) const volatile);
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2));
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2) const);
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2));
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2) const);
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2));
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2) const);
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 ...) const volatile);
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3) const volatile);
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 ...) const volatile);
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 ...) const volatile);
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4) const volatile);
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...) const volatile);
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...) const volatile);
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) const volatile);
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...) const volatile);
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...) const volatile);
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const volatile);
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const volatile);
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const volatile);
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const volatile);
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const volatile);
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const volatile);
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const volatile);
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const volatile);
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const volatile);
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const volatile);
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const volatile);
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const volatile);
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const volatile);
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const volatile);
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const volatile);
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const volatile);
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const volatile);
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const volatile);
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const volatile);
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const volatile);
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const volatile);
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const volatile);
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const volatile);
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const volatile);
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const volatile);
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const volatile);
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const volatile);
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const volatile);
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const volatile);
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const volatile);
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const volatile);
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const volatile);
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const volatile);
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const volatile);
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const volatile);
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const volatile);
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const volatile);
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const volatile);
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const volatile);
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const volatile);
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const volatile);
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const volatile);
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const volatile);
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const volatile);
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const volatile);
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const volatile);
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const volatile);
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const volatile);
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const volatile);
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const volatile);
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const volatile);
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const volatile);
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const volatile);
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const volatile);
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const volatile);
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const volatile);
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const volatile);
-#endif
-
-#else
-
-#define BOOST_PP_ITERATION_PARAMS_1 \
-    (3, (0, 25, "boost/type_traits/detail/is_mem_fun_pointer_tester.hpp"))
-#include BOOST_PP_ITERATE()
-
-#endif // BOOST_TT_PREPROCESSING_MODE
-
-} // namespace type_traits
-} // namespace boost
-
-#endif // BOOST_TT_DETAIL_IS_MEM_FUN_POINTER_TESTER_HPP_INCLUDED
-
-///// iteration
-
-#else
-#define BOOST_PP_COUNTER BOOST_PP_FRAME_ITERATION(1)
-#undef __stdcall
-#undef __fastcall
-#undef __cdecl
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)));
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const);
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) volatile);
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const volatile);
-
-@#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...));
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const);
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) volatile);
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const volatile);
-@#endif
-@#ifdef BOOST_TT_TEST_MS_FUNC_SIGS // Other calling conventions used by MS compatible compilers:
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)));
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const);
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) volatile);
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const volatile);
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...));
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const);
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) volatile);
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const volatile);
-
-@#ifndef _MANAGED
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)));
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const);
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) volatile);
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const volatile);
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...));
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const);
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) volatile);
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const volatile);
-@#endif
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)));
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const);
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) volatile);
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const volatile);
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...));
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const);
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) volatile);
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const volatile);
-@#endif
-
-#undef BOOST_PP_COUNTER
-#endif // BOOST_PP_IS_ITERATING
diff --git a/boost/type_traits/detail/size_t_trait_def.hpp b/boost/type_traits/detail/size_t_trait_def.hpp
deleted file mode 100644
index 3be4f70..0000000
--- a/boost/type_traits/detail/size_t_trait_def.hpp
+++ /dev/null
@@ -1,60 +0,0 @@
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-
-// $Source$
-// $Date: 2011-04-25 05:26:48 -0700 (Mon, 25 Apr 2011) $
-// $Revision: 71481 $
-
-#include <boost/type_traits/detail/template_arity_spec.hpp>
-#include <boost/type_traits/integral_constant.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-#include <boost/mpl/size_t.hpp>
-
-#include <cstddef>
-
-#if !defined(BOOST_MSVC) || BOOST_MSVC >= 1300
-#   define BOOST_TT_AUX_SIZE_T_BASE(C) public ::boost::integral_constant<std::size_t,C>
-#   define BOOST_TT_AUX_SIZE_T_TRAIT_VALUE_DECL(C) /**/
-#else
-#   define BOOST_TT_AUX_SIZE_T_BASE(C) public ::boost::mpl::size_t<C>
-#   define BOOST_TT_AUX_SIZE_T_TRAIT_VALUE_DECL(C) \
-    typedef ::boost::mpl::size_t<C> base_; \
-    using base_::value; \
-    /**/
-#endif
-
-
-#define BOOST_TT_AUX_SIZE_T_TRAIT_DEF1(trait,T,C) \
-template< typename T > struct trait \
-    : BOOST_TT_AUX_SIZE_T_BASE(C) \
-{ \
-public:\
-    BOOST_TT_AUX_SIZE_T_TRAIT_VALUE_DECL(C) \
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1,trait,(T)) \
-}; \
-\
-BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(1,trait) \
-/**/
-
-#define BOOST_TT_AUX_SIZE_T_TRAIT_SPEC1(trait,spec,C) \
-template<> struct trait<spec> \
-    : BOOST_TT_AUX_SIZE_T_BASE(C) \
-{ \
-public:\
-    BOOST_TT_AUX_SIZE_T_TRAIT_VALUE_DECL(C) \
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(1,trait,(spec)) \
-}; \
-/**/
-
-#define BOOST_TT_AUX_SIZE_T_TRAIT_PARTIAL_SPEC1_1(param,trait,spec,C) \
-template< param > struct trait<spec> \
-    : BOOST_TT_AUX_SIZE_T_BASE(C) \
-{ \
-}; \
-/**/
diff --git a/boost/type_traits/detail/size_t_trait_undef.hpp b/boost/type_traits/detail/size_t_trait_undef.hpp
deleted file mode 100644
index 967fd91..0000000
--- a/boost/type_traits/detail/size_t_trait_undef.hpp
+++ /dev/null
@@ -1,16 +0,0 @@
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-
-// $Source$
-// $Date: 2004-09-02 08:41:37 -0700 (Thu, 02 Sep 2004) $
-// $Revision: 24874 $
-
-#undef BOOST_TT_AUX_SIZE_T_TRAIT_DEF1
-#undef BOOST_TT_AUX_SIZE_T_TRAIT_SPEC1
-#undef BOOST_TT_AUX_SIZE_T_TRAIT_PARTIAL_SPEC1_1
diff --git a/boost/type_traits/detail/template_arity_spec.hpp b/boost/type_traits/detail/template_arity_spec.hpp
deleted file mode 100644
index fe9b422..0000000
--- a/boost/type_traits/detail/template_arity_spec.hpp
+++ /dev/null
@@ -1,31 +0,0 @@
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#include <boost/mpl/int.hpp>
-#include <boost/mpl/aux_/template_arity_fwd.hpp>
-#include <boost/mpl/aux_/preprocessor/params.hpp>
-#include <boost/mpl/aux_/config/lambda.hpp>
-#include <boost/mpl/aux_/config/overload_resolution.hpp>
-
-#if defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) \
-    && defined(BOOST_MPL_CFG_BROKEN_OVERLOAD_RESOLUTION)
-#   define BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(i, name) \
-namespace mpl { namespace aux { \
-template< BOOST_MPL_PP_PARAMS(i, typename T) > \
-struct template_arity< \
-          name< BOOST_MPL_PP_PARAMS(i, T) > \
-        > \
-    : int_<i> \
-{ \
-}; \
-}} \
-/**/
-#else
-#   define BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(i, name) /**/
-#endif
diff --git a/boost/type_traits/detail/type_trait_def.hpp b/boost/type_traits/detail/type_trait_def.hpp
deleted file mode 100644
index 224f848..0000000
--- a/boost/type_traits/detail/type_trait_def.hpp
+++ /dev/null
@@ -1,67 +0,0 @@
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-
-// $Source$
-// $Date: 2011-04-25 05:26:48 -0700 (Mon, 25 Apr 2011) $
-// $Revision: 71481 $
-
-#include <boost/type_traits/detail/template_arity_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-
-#define BOOST_TT_AUX_TYPE_TRAIT_DEF1(trait,T,result) \
-template< typename T > struct trait \
-{ \
-public:\
-    typedef result type; \
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1,trait,(T)) \
-}; \
-\
-BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(1,trait) \
-/**/
-
-#define BOOST_TT_AUX_TYPE_TRAIT_SPEC1(trait,spec,result) \
-template<> struct trait<spec> \
-{ \
-public:\
-    typedef result type; \
-    BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(1,trait,(spec)) \
-}; \
-/**/
-
-#define BOOST_TT_AUX_TYPE_TRAIT_IMPL_SPEC1(trait,spec,result) \
-template<> struct trait##_impl<spec> \
-{ \
-public:\
-    typedef result type; \
-}; \
-/**/
-
-#define BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(param,trait,spec,result) \
-template< param > struct trait<spec> \
-{ \
-public:\
-    typedef result type; \
-}; \
-/**/
-
-#define BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(param1,param2,trait,spec,result) \
-template< param1, param2 > struct trait<spec> \
-{ \
-public:\
-    typedef result; \
-}; \
-/**/
-
-#define BOOST_TT_AUX_TYPE_TRAIT_IMPL_PARTIAL_SPEC1_1(param,trait,spec,result) \
-template< param > struct trait##_impl<spec> \
-{ \
-public:\
-    typedef result type; \
-}; \
-/**/
diff --git a/boost/type_traits/detail/type_trait_undef.hpp b/boost/type_traits/detail/type_trait_undef.hpp
deleted file mode 100644
index c4f14ff..0000000
--- a/boost/type_traits/detail/type_trait_undef.hpp
+++ /dev/null
@@ -1,19 +0,0 @@
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// Distributed under the Boost Software License, Version 1.0. 
-// (See accompanying file LICENSE_1_0.txt or copy at 
-// http://www.boost.org/LICENSE_1_0.txt)
-
-// $Source$
-// $Date: 2004-09-02 08:41:37 -0700 (Thu, 02 Sep 2004) $
-// $Revision: 24874 $
-
-#undef BOOST_TT_AUX_TYPE_TRAIT_DEF1
-#undef BOOST_TT_AUX_TYPE_TRAIT_SPEC1
-#undef BOOST_TT_AUX_TYPE_TRAIT_IMPL_SPEC1
-#undef BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1
-#undef BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2
-#undef BOOST_TT_AUX_TYPE_TRAIT_IMPL_PARTIAL_SPEC1_1
diff --git a/boost/type_traits/detail/wrap.hpp b/boost/type_traits/detail/wrap.hpp
deleted file mode 100644
index d0a75d0..0000000
--- a/boost/type_traits/detail/wrap.hpp
+++ /dev/null
@@ -1,18 +0,0 @@
-//  (C) Copyright David Abrahams 2002. 
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_DETAIL_WRAP_HPP_INCLUDED
-#define BOOST_TT_DETAIL_WRAP_HPP_INCLUDED
-
-namespace boost {
-namespace type_traits {
-
-template <class T> struct wrap {};
-
-}} // namespace boost::type_traits
-
-#endif // BOOST_TT_DETAIL_WRAP_HPP_INCLUDED
diff --git a/boost/type_traits/detail/yes_no_type.hpp b/boost/type_traits/detail/yes_no_type.hpp
deleted file mode 100644
index f583730..0000000
--- a/boost/type_traits/detail/yes_no_type.hpp
+++ /dev/null
@@ -1,26 +0,0 @@
-
-//  (C) Copyright John Maddock and Steve Cleary 2000.
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-//
-//  macros and helpers for working with integral-constant-expressions.
-
-#ifndef BOOST_TT_DETAIL_YES_NO_TYPE_HPP_INCLUDED
-#define BOOST_TT_DETAIL_YES_NO_TYPE_HPP_INCLUDED
-
-namespace boost {
-namespace type_traits {
-
-typedef char yes_type;
-struct no_type
-{
-   char padding[8];
-};
-
-} // namespace type_traits
-} // namespace boost
-
-#endif // BOOST_TT_DETAIL_YES_NO_TYPE_HPP_INCLUDED
diff --git a/boost/type_traits/extent.hpp b/boost/type_traits/extent.hpp
deleted file mode 100644
index 27e8a67..0000000
--- a/boost/type_traits/extent.hpp
+++ /dev/null
@@ -1,145 +0,0 @@
-
-//  (C) Copyright John Maddock 2005.  
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-
-#ifndef BOOST_TT_EXTENT_HPP_INCLUDED
-#define BOOST_TT_EXTENT_HPP_INCLUDED
-
-// should be the last #include
-#include <boost/type_traits/detail/size_t_trait_def.hpp>
-
-namespace boost {
-
-namespace detail{
-
-#if defined( __CODEGEARC__ )
-    // wrap the impl as main trait provides additional MPL lambda support
-    template < typename T, std::size_t N >
-    struct extent_imp {
-        static const std::size_t value = __array_extent(T, N);
-    };
-
-#else
-
-template <class T, std::size_t N>
-struct extent_imp
-{
-   BOOST_STATIC_CONSTANT(std::size_t, value = 0);
-};
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
-template <class T, std::size_t R, std::size_t N>
-struct extent_imp<T[R], N>
-{
-   BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::extent_imp<T, N-1>::value));
-};
-
-template <class T, std::size_t R, std::size_t N>
-struct extent_imp<T const[R], N>
-{
-   BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::extent_imp<T, N-1>::value));
-};
-
-template <class T, std::size_t R, std::size_t N>
-struct extent_imp<T volatile[R], N>
-{
-   BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::extent_imp<T, N-1>::value));
-};
-
-template <class T, std::size_t R, std::size_t N>
-struct extent_imp<T const volatile[R], N>
-{
-   BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::extent_imp<T, N-1>::value));
-};
-
-template <class T, std::size_t R>
-struct extent_imp<T[R],0>
-{
-   BOOST_STATIC_CONSTANT(std::size_t, value = R);
-};
-
-template <class T, std::size_t R>
-struct extent_imp<T const[R], 0>
-{
-   BOOST_STATIC_CONSTANT(std::size_t, value = R);
-};
-
-template <class T, std::size_t R>
-struct extent_imp<T volatile[R], 0>
-{
-   BOOST_STATIC_CONSTANT(std::size_t, value = R);
-};
-
-template <class T, std::size_t R>
-struct extent_imp<T const volatile[R], 0>
-{
-   BOOST_STATIC_CONSTANT(std::size_t, value = R);
-};
-
-#if !BOOST_WORKAROUND(__BORLANDC__, < 0x600) && !defined(__IBMCPP__) &&  !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) && !defined(__MWERKS__)
-template <class T, std::size_t N>
-struct extent_imp<T[], N>
-{
-   BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::extent_imp<T, N-1>::value));
-};
-template <class T, std::size_t N>
-struct extent_imp<T const[], N>
-{
-   BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::extent_imp<T, N-1>::value));
-};
-template <class T, std::size_t N>
-struct extent_imp<T volatile[], N>
-{
-   BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::extent_imp<T, N-1>::value));
-};
-template <class T, std::size_t N>
-struct extent_imp<T const volatile[], N>
-{
-   BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::extent_imp<T, N-1>::value));
-};
-template <class T>
-struct extent_imp<T[], 0>
-{
-   BOOST_STATIC_CONSTANT(std::size_t, value = 0);
-};
-template <class T>
-struct extent_imp<T const[], 0>
-{
-   BOOST_STATIC_CONSTANT(std::size_t, value = 0);
-};
-template <class T>
-struct extent_imp<T volatile[], 0>
-{
-   BOOST_STATIC_CONSTANT(std::size_t, value = 0);
-};
-template <class T>
-struct extent_imp<T const volatile[], 0>
-{
-   BOOST_STATIC_CONSTANT(std::size_t, value = 0);
-};
-#endif
-#endif
-
-#endif  // non-CodeGear implementation
-}   // ::boost::detail
-
-template <class T, std::size_t N = 0>
-struct extent
-   : public ::boost::integral_constant<std::size_t, ::boost::detail::extent_imp<T,N>::value>
-{
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300) 
-   typedef ::boost::integral_constant<std::size_t, ::boost::detail::extent_imp<T,N>::value> base_; 
-   using base_::value;
-#endif
-    BOOST_MPL_AUX_LAMBDA_SUPPORT(1,extent,(T))
-};
-
-} // namespace boost
-
-#include <boost/type_traits/detail/size_t_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED
diff --git a/boost/type_traits/floating_point_promotion.hpp b/boost/type_traits/floating_point_promotion.hpp
deleted file mode 100644
index 8b6ae3a..0000000
--- a/boost/type_traits/floating_point_promotion.hpp
+++ /dev/null
@@ -1,91 +0,0 @@
-// Copyright 2005 Alexander Nasonov.
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef FILE_boost_type_traits_floating_point_promotion_hpp_INCLUDED
-#define FILE_boost_type_traits_floating_point_promotion_hpp_INCLUDED
-
-#include <boost/config.hpp>
-
-#ifdef BOOST_NO_CV_SPECIALIZATIONS
-#include <boost/mpl/at.hpp>
-#include <boost/mpl/int.hpp>
-#include <boost/mpl/multiplies.hpp>
-#include <boost/mpl/plus.hpp>
-#include <boost/mpl/vector.hpp>
-#include <boost/type_traits/is_same.hpp>
-#endif
-
-// Should be the last #include
-#include <boost/type_traits/detail/type_trait_def.hpp>
-
-namespace boost {
-
-namespace type_traits { namespace detail {
-
-#ifndef BOOST_NO_CV_SPECIALIZATIONS
-
-template<class T>
-struct floating_point_promotion
-{
-    typedef T type;
-};
-
-template<>
-struct floating_point_promotion<float>
-{
-    typedef double type;
-};
-
-template<>
-struct floating_point_promotion<float const>
-{
-    typedef double const type;
-};
-
-template<>
-struct floating_point_promotion<float volatile>
-{
-    typedef double volatile type;
-};
-
-template<>
-struct floating_point_promotion<float const volatile>
-{
-    typedef double const volatile type;
-};
-
-#else
-
-template<class T>
-struct floating_point_promotion
-  : mpl::at<
-        mpl::vector< T, double, double const, double volatile,
-                     double const volatile >
-      , mpl::plus<
-            is_same<T, float>
-          , mpl::multiplies< is_same<T, float const>         , mpl::int_<2> >
-          , mpl::multiplies< is_same<T, float volatile>      , mpl::int_<3> >
-          , mpl::multiplies< is_same<T, float const volatile>, mpl::int_<4> >
-          >
-      >
-{
-};
-
-#endif
-
-} }
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(
-      floating_point_promotion
-    , T
-    , BOOST_DEDUCED_TYPENAME
-        boost::type_traits::detail::floating_point_promotion<T>::type
-    )
-}
-
-#include <boost/type_traits/detail/type_trait_undef.hpp>
-
-#endif // #ifndef FILE_boost_type_traits_floating_point_promotion_hpp_INCLUDED
-
diff --git a/boost/type_traits/function_traits.hpp b/boost/type_traits/function_traits.hpp
deleted file mode 100644
index d715345..0000000
--- a/boost/type_traits/function_traits.hpp
+++ /dev/null
@@ -1,236 +0,0 @@
-
-//  Copyright 2000 John Maddock (john at johnmaddock.co.uk)
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_FUNCTION_TRAITS_HPP_INCLUDED
-#define BOOST_TT_FUNCTION_TRAITS_HPP_INCLUDED
-
-#include <boost/config.hpp>
-#include <boost/type_traits/is_function.hpp>
-#include <boost/type_traits/add_pointer.hpp>
-
-namespace boost {
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-namespace detail {
-
-template<typename Function> struct function_traits_helper;
-
-template<typename R>
-struct function_traits_helper<R (*)(void)>
-{
-  BOOST_STATIC_CONSTANT(unsigned, arity = 0);
-  typedef R result_type;
-};
-
-template<typename R, typename T1>
-struct function_traits_helper<R (*)(T1)>
-{
-  BOOST_STATIC_CONSTANT(unsigned, arity = 1);
-  typedef R result_type;
-  typedef T1 arg1_type;
-  typedef T1 argument_type;
-};
-
-template<typename R, typename T1, typename T2>
-struct function_traits_helper<R (*)(T1, T2)>
-{
-  BOOST_STATIC_CONSTANT(unsigned, arity = 2);
-  typedef R result_type;
-  typedef T1 arg1_type;
-  typedef T2 arg2_type;
-  typedef T1 first_argument_type;
-  typedef T2 second_argument_type;
-};
-
-template<typename R, typename T1, typename T2, typename T3>
-struct function_traits_helper<R (*)(T1, T2, T3)>
-{
-  BOOST_STATIC_CONSTANT(unsigned, arity = 3);
-  typedef R result_type;
-  typedef T1 arg1_type;
-  typedef T2 arg2_type;
-  typedef T3 arg3_type;
-};
-
-template<typename R, typename T1, typename T2, typename T3, typename T4>
-struct function_traits_helper<R (*)(T1, T2, T3, T4)>
-{
-  BOOST_STATIC_CONSTANT(unsigned, arity = 4);
-  typedef R result_type;
-  typedef T1 arg1_type;
-  typedef T2 arg2_type;
-  typedef T3 arg3_type;
-  typedef T4 arg4_type;
-};
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
-         typename T5>
-struct function_traits_helper<R (*)(T1, T2, T3, T4, T5)>
-{
-  BOOST_STATIC_CONSTANT(unsigned, arity = 5);
-  typedef R result_type;
-  typedef T1 arg1_type;
-  typedef T2 arg2_type;
-  typedef T3 arg3_type;
-  typedef T4 arg4_type;
-  typedef T5 arg5_type;
-};
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
-         typename T5, typename T6>
-struct function_traits_helper<R (*)(T1, T2, T3, T4, T5, T6)>
-{
-  BOOST_STATIC_CONSTANT(unsigned, arity = 6);
-  typedef R result_type;
-  typedef T1 arg1_type;
-  typedef T2 arg2_type;
-  typedef T3 arg3_type;
-  typedef T4 arg4_type;
-  typedef T5 arg5_type;
-  typedef T6 arg6_type;
-};
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
-         typename T5, typename T6, typename T7>
-struct function_traits_helper<R (*)(T1, T2, T3, T4, T5, T6, T7)>
-{
-  BOOST_STATIC_CONSTANT(unsigned, arity = 7);
-  typedef R result_type;
-  typedef T1 arg1_type;
-  typedef T2 arg2_type;
-  typedef T3 arg3_type;
-  typedef T4 arg4_type;
-  typedef T5 arg5_type;
-  typedef T6 arg6_type;
-  typedef T7 arg7_type;
-};
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
-         typename T5, typename T6, typename T7, typename T8>
-struct function_traits_helper<R (*)(T1, T2, T3, T4, T5, T6, T7, T8)>
-{
-  BOOST_STATIC_CONSTANT(unsigned, arity = 8);
-  typedef R result_type;
-  typedef T1 arg1_type;
-  typedef T2 arg2_type;
-  typedef T3 arg3_type;
-  typedef T4 arg4_type;
-  typedef T5 arg5_type;
-  typedef T6 arg6_type;
-  typedef T7 arg7_type;
-  typedef T8 arg8_type;
-};
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
-         typename T5, typename T6, typename T7, typename T8, typename T9>
-struct function_traits_helper<R (*)(T1, T2, T3, T4, T5, T6, T7, T8, T9)>
-{
-  BOOST_STATIC_CONSTANT(unsigned, arity = 9);
-  typedef R result_type;
-  typedef T1 arg1_type;
-  typedef T2 arg2_type;
-  typedef T3 arg3_type;
-  typedef T4 arg4_type;
-  typedef T5 arg5_type;
-  typedef T6 arg6_type;
-  typedef T7 arg7_type;
-  typedef T8 arg8_type;
-  typedef T9 arg9_type;
-};
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
-         typename T5, typename T6, typename T7, typename T8, typename T9,
-         typename T10>
-struct function_traits_helper<R (*)(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)>
-{
-  BOOST_STATIC_CONSTANT(unsigned, arity = 10);
-  typedef R result_type;
-  typedef T1 arg1_type;
-  typedef T2 arg2_type;
-  typedef T3 arg3_type;
-  typedef T4 arg4_type;
-  typedef T5 arg5_type;
-  typedef T6 arg6_type;
-  typedef T7 arg7_type;
-  typedef T8 arg8_type;
-  typedef T9 arg9_type;
-  typedef T10 arg10_type;
-};
-
-} // end namespace detail
-
-template<typename Function>
-struct function_traits : 
-  public boost::detail::function_traits_helper<typename boost::add_pointer<Function>::type>
-{
-};
-
-#else
-
-namespace detail {
-
-template<unsigned N> 
-struct type_of_size
-{
-  char elements[N];
-};
-
-template<typename R>
-type_of_size<1> function_arity_helper(R (*f)());
-
-template<typename R, typename T1>
-type_of_size<2> function_arity_helper(R (*f)(T1));
-
-template<typename R, typename T1, typename T2>
-type_of_size<3> function_arity_helper(R (*f)(T1, T2));
-
-template<typename R, typename T1, typename T2, typename T3>
-type_of_size<4> function_arity_helper(R (*f)(T1, T2, T3));
-
-template<typename R, typename T1, typename T2, typename T3, typename T4>
-type_of_size<5> function_arity_helper(R (*f)(T1, T2, T3, T4));
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
-         typename T5>
-type_of_size<6> function_arity_helper(R (*f)(T1, T2, T3, T4, T5));
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
-         typename T5, typename T6>
-type_of_size<7> function_arity_helper(R (*f)(T1, T2, T3, T4, T5, T6));
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
-         typename T5, typename T6, typename T7>
-type_of_size<8> function_arity_helper(R (*f)(T1, T2, T3, T4, T5, T6, T7));
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
-         typename T5, typename T6, typename T7, typename T8>
-type_of_size<9> function_arity_helper(R (*f)(T1, T2, T3, T4, T5, T6, T7, T8));
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
-         typename T5, typename T6, typename T7, typename T8, typename T9>
-type_of_size<10> function_arity_helper(R (*f)(T1, T2, T3, T4, T5, T6, T7, T8, 
-                                              T9));
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
-         typename T5, typename T6, typename T7, typename T8, typename T9,
-         typename T10>
-type_of_size<11> function_arity_helper(R (*f)(T1, T2, T3, T4, T5, T6, T7, T8, 
-                                              T9, T10));
-} // end namespace detail
-
-// Won't work with references
-template<typename Function>
-struct function_traits
-{
-  BOOST_STATIC_CONSTANT(unsigned, arity = (sizeof(boost::detail::function_arity_helper((Function*)0))-1));
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-}
-
-#endif // BOOST_TT_FUNCTION_TRAITS_HPP_INCLUDED
diff --git a/boost/type_traits/has_bit_and.hpp b/boost/type_traits/has_bit_and.hpp
deleted file mode 100644
index ee3307f..0000000
--- a/boost/type_traits/has_bit_and.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_HAS_BIT_AND_HPP_INCLUDED
-#define BOOST_TT_HAS_BIT_AND_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME has_bit_and
-#define BOOST_TT_TRAIT_OP &
-#define BOOST_TT_FORBIDDEN_IF\
-   ::boost::type_traits::ice_or<\
-      /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_fundamental< Lhs_nocv >::value,\
-         ::boost::is_fundamental< Rhs_nocv >::value,\
-         ::boost::type_traits::ice_or<\
-            ::boost::type_traits::ice_not< ::boost::is_integral< Lhs_noref >::value >::value,\
-            ::boost::type_traits::ice_not< ::boost::is_integral< Rhs_noref >::value >::value\
-         >::value\
-      >::value,\
-      /* Lhs==fundamental and Rhs==pointer */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_fundamental< Lhs_nocv >::value,\
-         ::boost::is_pointer< Rhs_noref >::value\
-      >::value,\
-      /* Rhs==fundamental and Lhs==pointer */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_fundamental< Rhs_nocv >::value,\
-         ::boost::is_pointer< Lhs_noref >::value\
-      >::value,\
-      /* Lhs==pointer and Rhs==pointer */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Lhs_noref >::value,\
-         ::boost::is_pointer< Rhs_noref >::value\
-      >::value\
-   >::value
-
-
-#include <boost/type_traits/detail/has_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif
diff --git a/boost/type_traits/has_bit_and_assign.hpp b/boost/type_traits/has_bit_and_assign.hpp
deleted file mode 100644
index 5b3112a..0000000
--- a/boost/type_traits/has_bit_and_assign.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_HAS_BIT_AND_ASSIGN_HPP_INCLUDED
-#define BOOST_TT_HAS_BIT_AND_ASSIGN_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME has_bit_and_assign
-#define BOOST_TT_TRAIT_OP &=
-#define BOOST_TT_FORBIDDEN_IF\
-   ::boost::type_traits::ice_or<\
-      /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_fundamental< Lhs_nocv >::value,\
-         ::boost::is_fundamental< Rhs_nocv >::value,\
-         ::boost::type_traits::ice_or<\
-            ::boost::type_traits::ice_not< ::boost::is_integral< Lhs_noref >::value >::value,\
-            ::boost::type_traits::ice_not< ::boost::is_integral< Rhs_noref >::value >::value\
-         >::value\
-      >::value,\
-      /* Lhs==fundamental and Rhs==pointer */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_fundamental< Lhs_nocv >::value,\
-         ::boost::is_pointer< Rhs_noref >::value\
-      >::value,\
-      /* Rhs==fundamental and Lhs==pointer */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_fundamental< Rhs_nocv >::value,\
-         ::boost::is_pointer< Lhs_noref >::value\
-      >::value,\
-      /* Lhs==pointer and Rhs==pointer */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Lhs_noref >::value,\
-         ::boost::is_pointer< Rhs_noref >::value\
-      >::value,\
-      /* Lhs==fundamental and Rhs==fundamental and Lhs==const */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_fundamental< Lhs_nocv >::value,\
-         ::boost::is_fundamental< Rhs_nocv >::value,\
-         ::boost::is_const< Lhs_noref >::value\
-      >::value\
-   >::value
-
-
-#include <boost/type_traits/detail/has_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif
diff --git a/boost/type_traits/has_bit_or.hpp b/boost/type_traits/has_bit_or.hpp
deleted file mode 100644
index 922b4ce..0000000
--- a/boost/type_traits/has_bit_or.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_HAS_BIT_OR_HPP_INCLUDED
-#define BOOST_TT_HAS_BIT_OR_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME has_bit_or
-#define BOOST_TT_TRAIT_OP |
-#define BOOST_TT_FORBIDDEN_IF\
-   ::boost::type_traits::ice_or<\
-      /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_fundamental< Lhs_nocv >::value,\
-         ::boost::is_fundamental< Rhs_nocv >::value,\
-         ::boost::type_traits::ice_or<\
-            ::boost::type_traits::ice_not< ::boost::is_integral< Lhs_noref >::value >::value,\
-            ::boost::type_traits::ice_not< ::boost::is_integral< Rhs_noref >::value >::value\
-         >::value\
-      >::value,\
-      /* Lhs==fundamental and Rhs==pointer */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_fundamental< Lhs_nocv >::value,\
-         ::boost::is_pointer< Rhs_noref >::value\
-      >::value,\
-      /* Rhs==fundamental and Lhs==pointer */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_fundamental< Rhs_nocv >::value,\
-         ::boost::is_pointer< Lhs_noref >::value\
-      >::value,\
-      /* Lhs==pointer and Rhs==pointer */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Lhs_noref >::value,\
-         ::boost::is_pointer< Rhs_noref >::value\
-      >::value\
-   >::value
-
-
-#include <boost/type_traits/detail/has_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif
diff --git a/boost/type_traits/has_bit_or_assign.hpp b/boost/type_traits/has_bit_or_assign.hpp
deleted file mode 100644
index 5481b92..0000000
--- a/boost/type_traits/has_bit_or_assign.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_HAS_BIT_OR_ASSIGN_HPP_INCLUDED
-#define BOOST_TT_HAS_BIT_OR_ASSIGN_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME has_bit_or_assign
-#define BOOST_TT_TRAIT_OP |=
-#define BOOST_TT_FORBIDDEN_IF\
-   ::boost::type_traits::ice_or<\
-      /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_fundamental< Lhs_nocv >::value,\
-         ::boost::is_fundamental< Rhs_nocv >::value,\
-         ::boost::type_traits::ice_or<\
-            ::boost::type_traits::ice_not< ::boost::is_integral< Lhs_noref >::value >::value,\
-            ::boost::type_traits::ice_not< ::boost::is_integral< Rhs_noref >::value >::value\
-         >::value\
-      >::value,\
-      /* Lhs==fundamental and Rhs==pointer */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_fundamental< Lhs_nocv >::value,\
-         ::boost::is_pointer< Rhs_noref >::value\
-      >::value,\
-      /* Rhs==fundamental and Lhs==pointer */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_fundamental< Rhs_nocv >::value,\
-         ::boost::is_pointer< Lhs_noref >::value\
-      >::value,\
-      /* Lhs==pointer and Rhs==pointer */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Lhs_noref >::value,\
-         ::boost::is_pointer< Rhs_noref >::value\
-      >::value,\
-      /* Lhs==fundamental and Rhs==fundamental and Lhs==const */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_fundamental< Lhs_nocv >::value,\
-         ::boost::is_fundamental< Rhs_nocv >::value,\
-         ::boost::is_const< Lhs_noref >::value\
-      >::value\
-   >::value
-
-
-#include <boost/type_traits/detail/has_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif
diff --git a/boost/type_traits/has_bit_xor.hpp b/boost/type_traits/has_bit_xor.hpp
deleted file mode 100644
index 883dcf6..0000000
--- a/boost/type_traits/has_bit_xor.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_HAS_BIT_XOR_HPP_INCLUDED
-#define BOOST_TT_HAS_BIT_XOR_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME has_bit_xor
-#define BOOST_TT_TRAIT_OP ^
-#define BOOST_TT_FORBIDDEN_IF\
-   ::boost::type_traits::ice_or<\
-      /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_fundamental< Lhs_nocv >::value,\
-         ::boost::is_fundamental< Rhs_nocv >::value,\
-         ::boost::type_traits::ice_or<\
-            ::boost::type_traits::ice_not< ::boost::is_integral< Lhs_noref >::value >::value,\
-            ::boost::type_traits::ice_not< ::boost::is_integral< Rhs_noref >::value >::value\
-         >::value\
-      >::value,\
-      /* Lhs==fundamental and Rhs==pointer */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_fundamental< Lhs_nocv >::value,\
-         ::boost::is_pointer< Rhs_noref >::value\
-      >::value,\
-      /* Rhs==fundamental and Lhs==pointer */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_fundamental< Rhs_nocv >::value,\
-         ::boost::is_pointer< Lhs_noref >::value\
-      >::value,\
-      /* Lhs==pointer and Rhs==pointer */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Lhs_noref >::value,\
-         ::boost::is_pointer< Rhs_noref >::value\
-      >::value\
-   >::value
-
-
-#include <boost/type_traits/detail/has_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif
diff --git a/boost/type_traits/has_bit_xor_assign.hpp b/boost/type_traits/has_bit_xor_assign.hpp
deleted file mode 100644
index e2767cc..0000000
--- a/boost/type_traits/has_bit_xor_assign.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_HAS_BIT_XOR_ASSIGN_HPP_INCLUDED
-#define BOOST_TT_HAS_BIT_XOR_ASSIGN_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME has_bit_xor_assign
-#define BOOST_TT_TRAIT_OP ^=
-#define BOOST_TT_FORBIDDEN_IF\
-   ::boost::type_traits::ice_or<\
-      /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_fundamental< Lhs_nocv >::value,\
-         ::boost::is_fundamental< Rhs_nocv >::value,\
-         ::boost::type_traits::ice_or<\
-            ::boost::type_traits::ice_not< ::boost::is_integral< Lhs_noref >::value >::value,\
-            ::boost::type_traits::ice_not< ::boost::is_integral< Rhs_noref >::value >::value\
-         >::value\
-      >::value,\
-      /* Lhs==fundamental and Rhs==pointer */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_fundamental< Lhs_nocv >::value,\
-         ::boost::is_pointer< Rhs_noref >::value\
-      >::value,\
-      /* Rhs==fundamental and Lhs==pointer */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_fundamental< Rhs_nocv >::value,\
-         ::boost::is_pointer< Lhs_noref >::value\
-      >::value,\
-      /* Lhs==pointer and Rhs==pointer */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Lhs_noref >::value,\
-         ::boost::is_pointer< Rhs_noref >::value\
-      >::value,\
-      /* Lhs==fundamental and Rhs==fundamental and Lhs==const */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_fundamental< Lhs_nocv >::value,\
-         ::boost::is_fundamental< Rhs_nocv >::value,\
-         ::boost::is_const< Lhs_noref >::value\
-      >::value\
-   >::value
-
-
-#include <boost/type_traits/detail/has_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif
diff --git a/boost/type_traits/has_complement.hpp b/boost/type_traits/has_complement.hpp
deleted file mode 100644
index dafd9f5..0000000
--- a/boost/type_traits/has_complement.hpp
+++ /dev/null
@@ -1,32 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_HAS_COMPLEMENT_HPP_INCLUDED
-#define BOOST_TT_HAS_COMPLEMENT_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME has_complement
-#define BOOST_TT_TRAIT_OP ~
-#define BOOST_TT_FORBIDDEN_IF\
-   ::boost::type_traits::ice_or<\
-      /* pointer */\
-      ::boost::is_pointer< Rhs_noref >::value,\
-      /* fundamental non integral */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_fundamental< Rhs_noref >::value,\
-         ::boost::type_traits::ice_not< ::boost::is_integral< Rhs_noref >::value >::value\
-      >::value\
-   >::value
-
-
-#include <boost/type_traits/detail/has_prefix_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif
diff --git a/boost/type_traits/has_dereference.hpp b/boost/type_traits/has_dereference.hpp
deleted file mode 100644
index fe48e11..0000000
--- a/boost/type_traits/has_dereference.hpp
+++ /dev/null
@@ -1,31 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_HAS_DEREFERENCE_HPP_INCLUDED
-#define BOOST_TT_HAS_DEREFERENCE_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME has_dereference
-#define BOOST_TT_TRAIT_OP *
-#define BOOST_TT_FORBIDDEN_IF\
-   /* void* or fundamental */\
-   ::boost::type_traits::ice_or<\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Rhs_noref >::value,\
-         ::boost::is_void< Rhs_noptr >::value\
-      >::value,\
-      ::boost::is_fundamental< Rhs_nocv >::value\
-   >::value
-
-
-#include <boost/type_traits/detail/has_prefix_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif
diff --git a/boost/type_traits/has_divides.hpp b/boost/type_traits/has_divides.hpp
deleted file mode 100644
index 277c2da..0000000
--- a/boost/type_traits/has_divides.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_HAS_DIVIDES_HPP_INCLUDED
-#define BOOST_TT_HAS_DIVIDES_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME has_divides
-#define BOOST_TT_TRAIT_OP /
-#define BOOST_TT_FORBIDDEN_IF\
-   /* pointer with pointer or fundamental */\
-   ::boost::type_traits::ice_or<\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Lhs_noref >::value,\
-         ::boost::type_traits::ice_or<\
-            ::boost::is_fundamental< Rhs_nocv >::value,\
-            ::boost::is_pointer< Rhs_noref >::value\
-         >::value\
-      >::value,\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Rhs_noref >::value,\
-         ::boost::type_traits::ice_or<\
-            ::boost::is_fundamental< Lhs_nocv >::value,\
-            ::boost::is_pointer< Lhs_noref >::value\
-         >::value\
-      >::value\
-   >::value
-
-
-#include <boost/type_traits/detail/has_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif
diff --git a/boost/type_traits/has_divides_assign.hpp b/boost/type_traits/has_divides_assign.hpp
deleted file mode 100644
index b21a05a..0000000
--- a/boost/type_traits/has_divides_assign.hpp
+++ /dev/null
@@ -1,47 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_HAS_DIVIDES_ASSIGN_HPP_INCLUDED
-#define BOOST_TT_HAS_DIVIDES_ASSIGN_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME has_divides_assign
-#define BOOST_TT_TRAIT_OP /=
-#define BOOST_TT_FORBIDDEN_IF\
-   ::boost::type_traits::ice_or<\
-      /* Lhs==fundamental and Lhs==const and Rhs==fundamental */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_fundamental< Lhs_nocv >::value,\
-         ::boost::is_const< Lhs_noref >::value,\
-         ::boost::is_fundamental< Rhs_nocv >::value\
-      >::value,\
-      /* Lhs==pointer and (Rhs==fundamental or Rhs==pointer) */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Lhs_noref >::value,\
-         ::boost::type_traits::ice_or<\
-            ::boost::is_fundamental< Rhs_nocv >::value,\
-            ::boost::is_pointer< Rhs_noref >::value\
-         >::value\
-      >::value,\
-      /* Rhs==pointer and (Lhs==fundamental or Lhs==pointer) */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Rhs_noref >::value,\
-         ::boost::type_traits::ice_or<\
-            ::boost::is_fundamental< Lhs_nocv >::value,\
-            ::boost::is_pointer< Lhs_noref >::value\
-         >::value\
-      >::value\
-   >::value
-
-
-#include <boost/type_traits/detail/has_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif
diff --git a/boost/type_traits/has_equal_to.hpp b/boost/type_traits/has_equal_to.hpp
deleted file mode 100644
index c2245c2..0000000
--- a/boost/type_traits/has_equal_to.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_HAS_EQUAL_TO_HPP_INCLUDED
-#define BOOST_TT_HAS_EQUAL_TO_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME has_equal_to
-#define BOOST_TT_TRAIT_OP ==
-#define BOOST_TT_FORBIDDEN_IF\
-   ::boost::type_traits::ice_or<\
-      /* Lhs==pointer and Rhs==fundamental */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Lhs_noref >::value,\
-         ::boost::is_fundamental< Rhs_nocv >::value\
-      >::value,\
-      /* Rhs==pointer and Lhs==fundamental */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Rhs_noref >::value,\
-         ::boost::is_fundamental< Lhs_nocv >::value\
-      >::value,\
-      /* Lhs==pointer and Rhs==pointer and Lhs!=base(Rhs) and Rhs!=base(Lhs) and Lhs!=void* and Rhs!=void* */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Lhs_noref >::value,\
-         ::boost::is_pointer< Rhs_noref >::value,\
-         ::boost::type_traits::ice_not<\
-            ::boost::type_traits::ice_or<\
-               ::boost::is_base_of< Lhs_noptr, Rhs_noptr >::value,\
-               ::boost::is_base_of< Rhs_noptr, Lhs_noptr >::value,\
-               ::boost::is_same< Lhs_noptr, Rhs_noptr >::value,\
-               ::boost::is_void< Lhs_noptr >::value,\
-               ::boost::is_void< Rhs_noptr >::value\
-            >::value\
-         >::value\
-      >::value\
-   >::value
-
-
-#include <boost/type_traits/detail/has_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif
diff --git a/boost/type_traits/has_greater.hpp b/boost/type_traits/has_greater.hpp
deleted file mode 100644
index ce32658..0000000
--- a/boost/type_traits/has_greater.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_HAS_GREATER_HPP_INCLUDED
-#define BOOST_TT_HAS_GREATER_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME has_greater
-#define BOOST_TT_TRAIT_OP >
-#define BOOST_TT_FORBIDDEN_IF\
-   ::boost::type_traits::ice_or<\
-      /* Lhs==pointer and Rhs==fundamental */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Lhs_noref >::value,\
-         ::boost::is_fundamental< Rhs_nocv >::value\
-      >::value,\
-      /* Rhs==pointer and Lhs==fundamental */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Rhs_noref >::value,\
-         ::boost::is_fundamental< Lhs_nocv >::value\
-      >::value,\
-      /* Lhs==pointer and Rhs==pointer and Lhs!=base(Rhs) and Rhs!=base(Lhs) and Lhs!=void* and Rhs!=void* */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Lhs_noref >::value,\
-         ::boost::is_pointer< Rhs_noref >::value,\
-         ::boost::type_traits::ice_not<\
-            ::boost::type_traits::ice_or<\
-               ::boost::is_base_of< Lhs_noptr, Rhs_noptr >::value,\
-               ::boost::is_base_of< Rhs_noptr, Lhs_noptr >::value,\
-               ::boost::is_same< Lhs_noptr, Rhs_noptr >::value,\
-               ::boost::is_void< Lhs_noptr >::value,\
-               ::boost::is_void< Rhs_noptr >::value\
-            >::value\
-         >::value\
-      >::value\
-   >::value
-
-
-#include <boost/type_traits/detail/has_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif
diff --git a/boost/type_traits/has_greater_equal.hpp b/boost/type_traits/has_greater_equal.hpp
deleted file mode 100644
index 681685a..0000000
--- a/boost/type_traits/has_greater_equal.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_HAS_GREATER_EQUAL_HPP_INCLUDED
-#define BOOST_TT_HAS_GREATER_EQUAL_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME has_greater_equal
-#define BOOST_TT_TRAIT_OP >=
-#define BOOST_TT_FORBIDDEN_IF\
-   ::boost::type_traits::ice_or<\
-      /* Lhs==pointer and Rhs==fundamental */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Lhs_noref >::value,\
-         ::boost::is_fundamental< Rhs_nocv >::value\
-      >::value,\
-      /* Rhs==pointer and Lhs==fundamental */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Rhs_noref >::value,\
-         ::boost::is_fundamental< Lhs_nocv >::value\
-      >::value,\
-      /* Lhs==pointer and Rhs==pointer and Lhs!=base(Rhs) and Rhs!=base(Lhs) and Lhs!=void* and Rhs!=void* */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Lhs_noref >::value,\
-         ::boost::is_pointer< Rhs_noref >::value,\
-         ::boost::type_traits::ice_not<\
-            ::boost::type_traits::ice_or<\
-               ::boost::is_base_of< Lhs_noptr, Rhs_noptr >::value,\
-               ::boost::is_base_of< Rhs_noptr, Lhs_noptr >::value,\
-               ::boost::is_same< Lhs_noptr, Rhs_noptr >::value,\
-               ::boost::is_void< Lhs_noptr >::value,\
-               ::boost::is_void< Rhs_noptr >::value\
-            >::value\
-         >::value\
-      >::value\
-   >::value
-
-
-#include <boost/type_traits/detail/has_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif
diff --git a/boost/type_traits/has_left_shift.hpp b/boost/type_traits/has_left_shift.hpp
deleted file mode 100644
index 88205d9..0000000
--- a/boost/type_traits/has_left_shift.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_HAS_LEFT_SHIFT_HPP_INCLUDED
-#define BOOST_TT_HAS_LEFT_SHIFT_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME has_left_shift
-#define BOOST_TT_TRAIT_OP <<
-#define BOOST_TT_FORBIDDEN_IF\
-   ::boost::type_traits::ice_or<\
-      /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_fundamental< Lhs_nocv >::value,\
-         ::boost::is_fundamental< Rhs_nocv >::value,\
-         ::boost::type_traits::ice_or<\
-            ::boost::type_traits::ice_not< ::boost::is_integral< Lhs_noref >::value >::value,\
-            ::boost::type_traits::ice_not< ::boost::is_integral< Rhs_noref >::value >::value\
-         >::value\
-      >::value,\
-      /* Lhs==fundamental and Rhs==pointer */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_fundamental< Lhs_nocv >::value,\
-         ::boost::is_pointer< Rhs_noref >::value\
-      >::value,\
-      /* Rhs==fundamental and Lhs==pointer */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_fundamental< Rhs_nocv >::value,\
-         ::boost::is_pointer< Lhs_noref >::value\
-      >::value,\
-      /* Lhs==pointer and Rhs==pointer */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Lhs_noref >::value,\
-         ::boost::is_pointer< Rhs_noref >::value\
-      >::value\
-   >::value
-
-
-#include <boost/type_traits/detail/has_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif
diff --git a/boost/type_traits/has_left_shift_assign.hpp b/boost/type_traits/has_left_shift_assign.hpp
deleted file mode 100644
index 0b3b9b1..0000000
--- a/boost/type_traits/has_left_shift_assign.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_HAS_LEFT_SHIFT_ASSIGN_HPP_INCLUDED
-#define BOOST_TT_HAS_LEFT_SHIFT_ASSIGN_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME has_left_shift_assign
-#define BOOST_TT_TRAIT_OP <<=
-#define BOOST_TT_FORBIDDEN_IF\
-   ::boost::type_traits::ice_or<\
-      /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_fundamental< Lhs_nocv >::value,\
-         ::boost::is_fundamental< Rhs_nocv >::value,\
-         ::boost::type_traits::ice_or<\
-            ::boost::type_traits::ice_not< ::boost::is_integral< Lhs_noref >::value >::value,\
-            ::boost::type_traits::ice_not< ::boost::is_integral< Rhs_noref >::value >::value\
-         >::value\
-      >::value,\
-      /* Lhs==fundamental and Rhs==pointer */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_fundamental< Lhs_nocv >::value,\
-         ::boost::is_pointer< Rhs_noref >::value\
-      >::value,\
-      /* Rhs==fundamental and Lhs==pointer */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_fundamental< Rhs_nocv >::value,\
-         ::boost::is_pointer< Lhs_noref >::value\
-      >::value,\
-      /* Lhs==pointer and Rhs==pointer */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Lhs_noref >::value,\
-         ::boost::is_pointer< Rhs_noref >::value\
-      >::value,\
-      /* Lhs==fundamental and Rhs==fundamental and Lhs==const */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_fundamental< Lhs_nocv >::value,\
-         ::boost::is_fundamental< Rhs_nocv >::value,\
-         ::boost::is_const< Lhs_noref >::value\
-      >::value\
-   >::value
-
-
-#include <boost/type_traits/detail/has_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif
diff --git a/boost/type_traits/has_less.hpp b/boost/type_traits/has_less.hpp
deleted file mode 100644
index e1a045e..0000000
--- a/boost/type_traits/has_less.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_HAS_LESS_HPP_INCLUDED
-#define BOOST_TT_HAS_LESS_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME has_less
-#define BOOST_TT_TRAIT_OP <
-#define BOOST_TT_FORBIDDEN_IF\
-   ::boost::type_traits::ice_or<\
-      /* Lhs==pointer and Rhs==fundamental */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Lhs_noref >::value,\
-         ::boost::is_fundamental< Rhs_nocv >::value\
-      >::value,\
-      /* Rhs==pointer and Lhs==fundamental */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Rhs_noref >::value,\
-         ::boost::is_fundamental< Lhs_nocv >::value\
-      >::value,\
-      /* Lhs==pointer and Rhs==pointer and Lhs!=base(Rhs) and Rhs!=base(Lhs) and Lhs!=void* and Rhs!=void* */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Lhs_noref >::value,\
-         ::boost::is_pointer< Rhs_noref >::value,\
-         ::boost::type_traits::ice_not<\
-            ::boost::type_traits::ice_or<\
-               ::boost::is_base_of< Lhs_noptr, Rhs_noptr >::value,\
-               ::boost::is_base_of< Rhs_noptr, Lhs_noptr >::value,\
-               ::boost::is_same< Lhs_noptr, Rhs_noptr >::value,\
-               ::boost::is_void< Lhs_noptr >::value,\
-               ::boost::is_void< Rhs_noptr >::value\
-            >::value\
-         >::value\
-      >::value\
-   >::value
-
-
-#include <boost/type_traits/detail/has_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif
diff --git a/boost/type_traits/has_less_equal.hpp b/boost/type_traits/has_less_equal.hpp
deleted file mode 100644
index c633b8b..0000000
--- a/boost/type_traits/has_less_equal.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_HAS_LESS_EQUAL_HPP_INCLUDED
-#define BOOST_TT_HAS_LESS_EQUAL_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME has_less_equal
-#define BOOST_TT_TRAIT_OP <=
-#define BOOST_TT_FORBIDDEN_IF\
-   ::boost::type_traits::ice_or<\
-      /* Lhs==pointer and Rhs==fundamental */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Lhs_noref >::value,\
-         ::boost::is_fundamental< Rhs_nocv >::value\
-      >::value,\
-      /* Rhs==pointer and Lhs==fundamental */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Rhs_noref >::value,\
-         ::boost::is_fundamental< Lhs_nocv >::value\
-      >::value,\
-      /* Lhs==pointer and Rhs==pointer and Lhs!=base(Rhs) and Rhs!=base(Lhs) and Lhs!=void* and Rhs!=void* */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Lhs_noref >::value,\
-         ::boost::is_pointer< Rhs_noref >::value,\
-         ::boost::type_traits::ice_not<\
-            ::boost::type_traits::ice_or<\
-               ::boost::is_base_of< Lhs_noptr, Rhs_noptr >::value,\
-               ::boost::is_base_of< Rhs_noptr, Lhs_noptr >::value,\
-               ::boost::is_same< Lhs_noptr, Rhs_noptr >::value,\
-               ::boost::is_void< Lhs_noptr >::value,\
-               ::boost::is_void< Rhs_noptr >::value\
-            >::value\
-         >::value\
-      >::value\
-   >::value
-
-
-#include <boost/type_traits/detail/has_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif
diff --git a/boost/type_traits/has_logical_and.hpp b/boost/type_traits/has_logical_and.hpp
deleted file mode 100644
index 5bfa1c3..0000000
--- a/boost/type_traits/has_logical_and.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_HAS_LOGICAL_AND_HPP_INCLUDED
-#define BOOST_TT_HAS_LOGICAL_AND_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME has_logical_and
-#define BOOST_TT_TRAIT_OP &&
-#define BOOST_TT_FORBIDDEN_IF\
-   /* pointer with fundamental non convertible to bool */\
-   ::boost::type_traits::ice_or<\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Lhs_noref >::value,\
-         ::boost::type_traits::ice_and<\
-            ::boost::is_fundamental< Rhs_nocv >::value,\
-            ::boost::type_traits::ice_not< ::boost::is_convertible< Rhs_nocv, bool >::value >::value\
-         >::value\
-      >::value,\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Rhs_noref >::value,\
-         ::boost::type_traits::ice_and<\
-            ::boost::is_fundamental< Lhs_nocv >::value,\
-            ::boost::type_traits::ice_not< ::boost::is_convertible< Lhs_nocv, bool >::value >::value\
-         >::value\
-      >::value\
-   >::value
-
-
-#include <boost/type_traits/detail/has_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif
diff --git a/boost/type_traits/has_logical_not.hpp b/boost/type_traits/has_logical_not.hpp
deleted file mode 100644
index fd99d3c..0000000
--- a/boost/type_traits/has_logical_not.hpp
+++ /dev/null
@@ -1,23 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_HAS_LOGICAL_NOT_HPP_INCLUDED
-#define BOOST_TT_HAS_LOGICAL_NOT_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME has_logical_not
-#define BOOST_TT_TRAIT_OP !
-#define BOOST_TT_FORBIDDEN_IF\
-   false
-
-#include <boost/type_traits/detail/has_prefix_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif
diff --git a/boost/type_traits/has_logical_or.hpp b/boost/type_traits/has_logical_or.hpp
deleted file mode 100644
index a4ae6c5..0000000
--- a/boost/type_traits/has_logical_or.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_HAS_LOGICAL_OR_HPP_INCLUDED
-#define BOOST_TT_HAS_LOGICAL_OR_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME has_logical_or
-#define BOOST_TT_TRAIT_OP ||
-#define BOOST_TT_FORBIDDEN_IF\
-   /* pointer with fundamental non convertible to bool */\
-   ::boost::type_traits::ice_or<\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Lhs_noref >::value,\
-         ::boost::type_traits::ice_and<\
-            ::boost::is_fundamental< Rhs_nocv >::value,\
-            ::boost::type_traits::ice_not< ::boost::is_convertible< Rhs_nocv, bool >::value >::value\
-         >::value\
-      >::value,\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Rhs_noref >::value,\
-         ::boost::type_traits::ice_and<\
-            ::boost::is_fundamental< Lhs_nocv >::value,\
-            ::boost::type_traits::ice_not< ::boost::is_convertible< Lhs_nocv, bool >::value >::value\
-         >::value\
-      >::value\
-   >::value
-
-
-#include <boost/type_traits/detail/has_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif
diff --git a/boost/type_traits/has_minus.hpp b/boost/type_traits/has_minus.hpp
deleted file mode 100644
index cc1d06b..0000000
--- a/boost/type_traits/has_minus.hpp
+++ /dev/null
@@ -1,60 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_HAS_MINUS_HPP_INCLUDED
-#define BOOST_TT_HAS_MINUS_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME has_minus
-#define BOOST_TT_TRAIT_OP -
-#define BOOST_TT_FORBIDDEN_IF\
-   ::boost::type_traits::ice_or<\
-      /* Lhs==pointer and Rhs==fundamental and Rhs!=integral */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Lhs_noref >::value,\
-         ::boost::is_fundamental< Rhs_nocv >::value,\
-         ::boost::type_traits::ice_not< ::boost::is_integral< Rhs_noref >::value >::value\
-      >::value,\
-      /* Lhs==void* and (Rhs==fundamental or Rhs==pointer) */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Lhs_noref >::value,\
-         ::boost::is_void< Lhs_noptr >::value,\
-         ::boost::type_traits::ice_or<\
-            ::boost::is_fundamental< Rhs_nocv >::value,\
-            ::boost::is_pointer< Rhs_noref >::value\
-         >::value\
-      >::value,\
-      /* Rhs==void* and (Lhs==fundamental or Lhs==pointer) */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Rhs_noref >::value,\
-         ::boost::is_void< Rhs_noptr >::value,\
-         ::boost::type_traits::ice_or<\
-            ::boost::is_fundamental< Lhs_nocv >::value,\
-            ::boost::is_pointer< Lhs_noref >::value\
-         >::value\
-      >::value,\
-      /* Lhs=fundamental and Rhs=pointer */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_fundamental< Lhs_nocv >::value,\
-         ::boost::is_pointer< Rhs_noref >::value\
-      >::value,\
-      /* two different pointers */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Lhs_noref >::value,\
-         ::boost::is_pointer< Rhs_noref >::value,\
-         ::boost::type_traits::ice_not< ::boost::is_same< Lhs_nocv, Rhs_nocv >::value >::value\
-      >::value\
-   >::value
-
-
-#include <boost/type_traits/detail/has_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif
diff --git a/boost/type_traits/has_minus_assign.hpp b/boost/type_traits/has_minus_assign.hpp
deleted file mode 100644
index 84ba359..0000000
--- a/boost/type_traits/has_minus_assign.hpp
+++ /dev/null
@@ -1,65 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_HAS_MINUS_ASSIGN_HPP_INCLUDED
-#define BOOST_TT_HAS_MINUS_ASSIGN_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME has_minus_assign
-#define BOOST_TT_TRAIT_OP -=
-#define BOOST_TT_FORBIDDEN_IF\
-   ::boost::type_traits::ice_or<\
-      /* Lhs==pointer and Rhs==fundamental and Rhs!=integral */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Lhs_noref >::value,\
-         ::boost::is_fundamental< Rhs_nocv >::value,\
-         ::boost::type_traits::ice_not< ::boost::is_integral< Rhs_noref >::value >::value\
-      >::value,\
-      /* Lhs==void* and Rhs==fundamental */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Lhs_noref >::value,\
-         ::boost::is_void< Lhs_noptr >::value,\
-         ::boost::is_fundamental< Rhs_nocv >::value\
-      >::value,\
-      /* Rhs==void* and Lhs==fundamental */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Rhs_noref >::value,\
-         ::boost::is_void< Rhs_noptr >::value,\
-         ::boost::is_fundamental< Lhs_nocv >::value\
-      >::value,\
-      /* Lhs=fundamental and Rhs=pointer */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_fundamental< Lhs_nocv >::value,\
-         ::boost::is_pointer< Rhs_noref >::value\
-      >::value,\
-      /* Lhs==pointer and Rhs==pointer */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Lhs_noref >::value,\
-         ::boost::is_pointer< Rhs_noref >::value\
-      >::value,\
-      /* (Lhs==fundamental or Lhs==pointer) and (Rhs==fundamental or Rhs==pointer) and (Lhs==const) */\
-      ::boost::type_traits::ice_and<\
-         ::boost::type_traits::ice_or<\
-            ::boost::is_fundamental< Lhs_nocv >::value,\
-            ::boost::is_pointer< Lhs_noref >::value\
-         >::value,\
-         ::boost::type_traits::ice_or<\
-            ::boost::is_fundamental< Rhs_nocv >::value,\
-            ::boost::is_pointer< Rhs_noref >::value\
-         >::value,\
-         ::boost::is_const< Lhs_noref >::value\
-      >::value\
-   >::value
-
-
-#include <boost/type_traits/detail/has_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif
diff --git a/boost/type_traits/has_modulus.hpp b/boost/type_traits/has_modulus.hpp
deleted file mode 100644
index 6948728..0000000
--- a/boost/type_traits/has_modulus.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_HAS_MODULUS_HPP_INCLUDED
-#define BOOST_TT_HAS_MODULUS_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME has_modulus
-#define BOOST_TT_TRAIT_OP %
-#define BOOST_TT_FORBIDDEN_IF\
-   ::boost::type_traits::ice_or<\
-      /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_fundamental< Lhs_nocv >::value,\
-         ::boost::is_fundamental< Rhs_nocv >::value,\
-         ::boost::type_traits::ice_or<\
-            ::boost::type_traits::ice_not< ::boost::is_integral< Lhs_noref >::value >::value,\
-            ::boost::type_traits::ice_not< ::boost::is_integral< Rhs_noref >::value >::value\
-         >::value\
-      >::value,\
-      /* Lhs==fundamental and Rhs==pointer */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_fundamental< Lhs_nocv >::value,\
-         ::boost::is_pointer< Rhs_noref >::value\
-      >::value,\
-      /* Rhs==fundamental and Lhs==pointer */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_fundamental< Rhs_nocv >::value,\
-         ::boost::is_pointer< Lhs_noref >::value\
-      >::value,\
-      /* Lhs==pointer and Rhs==pointer */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Lhs_noref >::value,\
-         ::boost::is_pointer< Rhs_noref >::value\
-      >::value\
-   >::value
-
-
-#include <boost/type_traits/detail/has_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif
diff --git a/boost/type_traits/has_modulus_assign.hpp b/boost/type_traits/has_modulus_assign.hpp
deleted file mode 100644
index f0531f0..0000000
--- a/boost/type_traits/has_modulus_assign.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_HAS_MODULUS_ASSIGN_HPP_INCLUDED
-#define BOOST_TT_HAS_MODULUS_ASSIGN_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME has_modulus_assign
-#define BOOST_TT_TRAIT_OP %=
-#define BOOST_TT_FORBIDDEN_IF\
-   ::boost::type_traits::ice_or<\
-      /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_fundamental< Lhs_nocv >::value,\
-         ::boost::is_fundamental< Rhs_nocv >::value,\
-         ::boost::type_traits::ice_or<\
-            ::boost::type_traits::ice_not< ::boost::is_integral< Lhs_noref >::value >::value,\
-            ::boost::type_traits::ice_not< ::boost::is_integral< Rhs_noref >::value >::value\
-         >::value\
-      >::value,\
-      /* Lhs==fundamental and Rhs==pointer */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_fundamental< Lhs_nocv >::value,\
-         ::boost::is_pointer< Rhs_noref >::value\
-      >::value,\
-      /* Rhs==fundamental and Lhs==pointer */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_fundamental< Rhs_nocv >::value,\
-         ::boost::is_pointer< Lhs_noref >::value\
-      >::value,\
-      /* Lhs==pointer and Rhs==pointer */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Lhs_noref >::value,\
-         ::boost::is_pointer< Rhs_noref >::value\
-      >::value,\
-      /* Lhs==fundamental and Rhs==fundamental and Lhs==const */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_fundamental< Lhs_nocv >::value,\
-         ::boost::is_fundamental< Rhs_nocv >::value,\
-         ::boost::is_const< Lhs_noref >::value\
-      >::value\
-   >::value
-
-
-#include <boost/type_traits/detail/has_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif
diff --git a/boost/type_traits/has_multiplies.hpp b/boost/type_traits/has_multiplies.hpp
deleted file mode 100644
index 4b578c5..0000000
--- a/boost/type_traits/has_multiplies.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_HAS_MULTIPLIES_HPP_INCLUDED
-#define BOOST_TT_HAS_MULTIPLIES_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME has_multiplies
-#define BOOST_TT_TRAIT_OP *
-#define BOOST_TT_FORBIDDEN_IF\
-   /* pointer with pointer or fundamental */\
-   ::boost::type_traits::ice_or<\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Lhs_noref >::value,\
-         ::boost::type_traits::ice_or<\
-            ::boost::is_fundamental< Rhs_nocv >::value,\
-            ::boost::is_pointer< Rhs_noref >::value\
-         >::value\
-      >::value,\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Rhs_noref >::value,\
-         ::boost::type_traits::ice_or<\
-            ::boost::is_fundamental< Lhs_nocv >::value,\
-            ::boost::is_pointer< Lhs_noref >::value\
-         >::value\
-      >::value\
-   >::value
-
-
-#include <boost/type_traits/detail/has_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif
diff --git a/boost/type_traits/has_multiplies_assign.hpp b/boost/type_traits/has_multiplies_assign.hpp
deleted file mode 100644
index 1678b7b..0000000
--- a/boost/type_traits/has_multiplies_assign.hpp
+++ /dev/null
@@ -1,47 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_HAS_MULTIPLIES_ASSIGN_HPP_INCLUDED
-#define BOOST_TT_HAS_MULTIPLIES_ASSIGN_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME has_multiplies_assign
-#define BOOST_TT_TRAIT_OP *=
-#define BOOST_TT_FORBIDDEN_IF\
-   ::boost::type_traits::ice_or<\
-      /* Lhs==fundamental and Lhs==const and Rhs==fundamental */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_fundamental< Lhs_nocv >::value,\
-         ::boost::is_const< Lhs_noref >::value,\
-         ::boost::is_fundamental< Rhs_nocv >::value\
-      >::value,\
-      /* Lhs==pointer and (Rhs==fundamental or Rhs==pointer) */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Lhs_noref >::value,\
-         ::boost::type_traits::ice_or<\
-            ::boost::is_fundamental< Rhs_nocv >::value,\
-            ::boost::is_pointer< Rhs_noref >::value\
-         >::value\
-      >::value,\
-      /* Rhs==pointer and (Lhs==fundamental or Lhs==pointer) */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Rhs_noref >::value,\
-         ::boost::type_traits::ice_or<\
-            ::boost::is_fundamental< Lhs_nocv >::value,\
-            ::boost::is_pointer< Lhs_noref >::value\
-         >::value\
-      >::value\
-   >::value
-
-
-#include <boost/type_traits/detail/has_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif
diff --git a/boost/type_traits/has_negate.hpp b/boost/type_traits/has_negate.hpp
deleted file mode 100644
index 452e54a..0000000
--- a/boost/type_traits/has_negate.hpp
+++ /dev/null
@@ -1,25 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_HAS_NEGATE_HPP_INCLUDED
-#define BOOST_TT_HAS_NEGATE_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME has_negate
-#define BOOST_TT_TRAIT_OP -
-#define BOOST_TT_FORBIDDEN_IF\
-   /* pointer */\
-   ::boost::is_pointer< Rhs_noref >::value
-
-
-#include <boost/type_traits/detail/has_prefix_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif
diff --git a/boost/type_traits/has_new_operator.hpp b/boost/type_traits/has_new_operator.hpp
deleted file mode 100644
index 2c2c322..0000000
--- a/boost/type_traits/has_new_operator.hpp
+++ /dev/null
@@ -1,140 +0,0 @@
-
-//  (C) Copyright Runar Undheim, Robert Ramey & John Maddock 2008.
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_HAS_NEW_OPERATOR_HPP_INCLUDED
-#define BOOST_TT_HAS_NEW_OPERATOR_HPP_INCLUDED
-
-#include <new> // std::nothrow_t
-#include <cstddef> // std::size_t
-#include <boost/type_traits/config.hpp>
-#include <boost/type_traits/detail/yes_no_type.hpp>
-#include <boost/type_traits/detail/ice_or.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-namespace detail {
-    template <class U, U x> 
-    struct test;
-
-    template <typename T>
-    struct has_new_operator_impl {
-        template<class U>
-        static type_traits::yes_type check_sig1(
-            U*, 
-            test<
-            void *(*)(std::size_t),
-                &U::operator new
-            >* = NULL
-        );
-        template<class U>
-        static type_traits::no_type check_sig1(...);
-
-        template<class U>
-        static type_traits::yes_type check_sig2(
-            U*, 
-            test<
-            void *(*)(std::size_t, const std::nothrow_t&),
-                &U::operator new
-            >* = NULL
-        );
-        template<class U>
-        static type_traits::no_type check_sig2(...);
-
-        template<class U>
-        static type_traits::yes_type check_sig3(
-            U*, 
-            test<
-            void *(*)(std::size_t, void*),
-                &U::operator new
-            >* = NULL
-        );
-        template<class U>
-        static type_traits::no_type check_sig3(...);
-
-
-        template<class U>
-        static type_traits::yes_type check_sig4(
-            U*, 
-            test<
-            void *(*)(std::size_t),
-                &U::operator new[]
-            >* = NULL
-        );
-        template<class U>
-        static type_traits::no_type check_sig4(...);
-
-        template<class U>
-        static type_traits::yes_type check_sig5(
-            U*, 
-            test<
-            void *(*)(std::size_t, const std::nothrow_t&),
-                &U::operator new[]
-            >* = NULL
-        );
-        template<class U>
-        static type_traits::no_type check_sig5(...);
-
-        template<class U>
-        static type_traits::yes_type check_sig6(
-            U*, 
-            test<
-            void *(*)(std::size_t, void*),
-                &U::operator new[]
-            >* = NULL
-        );
-        template<class U>
-        static type_traits::no_type check_sig6(...);
-
-        // GCC2 won't even parse this template if we embed the computation
-        // of s1 in the computation of value.
-        #ifdef __GNUC__
-            BOOST_STATIC_CONSTANT(unsigned, s1 = sizeof(has_new_operator_impl<T>::template check_sig1<T>(0)));
-            BOOST_STATIC_CONSTANT(unsigned, s2 = sizeof(has_new_operator_impl<T>::template check_sig2<T>(0)));
-            BOOST_STATIC_CONSTANT(unsigned, s3 = sizeof(has_new_operator_impl<T>::template check_sig3<T>(0)));
-            BOOST_STATIC_CONSTANT(unsigned, s4 = sizeof(has_new_operator_impl<T>::template check_sig4<T>(0)));
-            BOOST_STATIC_CONSTANT(unsigned, s5 = sizeof(has_new_operator_impl<T>::template check_sig5<T>(0)));
-            BOOST_STATIC_CONSTANT(unsigned, s6 = sizeof(has_new_operator_impl<T>::template check_sig6<T>(0)));
-        #else
-            #if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000)
-                #pragma warning(push)
-                #pragma warning(disable:6334)
-            #endif
-
-            BOOST_STATIC_CONSTANT(unsigned, s1 = sizeof(check_sig1<T>(0)));
-            BOOST_STATIC_CONSTANT(unsigned, s2 = sizeof(check_sig2<T>(0)));
-            BOOST_STATIC_CONSTANT(unsigned, s3 = sizeof(check_sig3<T>(0)));
-            BOOST_STATIC_CONSTANT(unsigned, s4 = sizeof(check_sig4<T>(0)));
-            BOOST_STATIC_CONSTANT(unsigned, s5 = sizeof(check_sig5<T>(0)));
-            BOOST_STATIC_CONSTANT(unsigned, s6 = sizeof(check_sig6<T>(0)));
-
-            #if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000)
-                #pragma warning(pop)
-            #endif
-        #endif
-        BOOST_STATIC_CONSTANT(bool, value = 
-           (::boost::type_traits::ice_or<
-            (s1 == sizeof(type_traits::yes_type)),
-            (s2 == sizeof(type_traits::yes_type)),
-            (s3 == sizeof(type_traits::yes_type)),
-            (s4 == sizeof(type_traits::yes_type)),
-            (s5 == sizeof(type_traits::yes_type)),
-            (s6 == sizeof(type_traits::yes_type))
-           >::value)
-        );
-    };
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_new_operator,T,::boost::detail::has_new_operator_impl<T>::value)
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_HAS_NEW_OPERATOR_HPP_INCLUDED
diff --git a/boost/type_traits/has_not_equal_to.hpp b/boost/type_traits/has_not_equal_to.hpp
deleted file mode 100644
index e7e3700..0000000
--- a/boost/type_traits/has_not_equal_to.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_HAS_NOT_EQUAL_TO_HPP_INCLUDED
-#define BOOST_TT_HAS_NOT_EQUAL_TO_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME has_not_equal_to
-#define BOOST_TT_TRAIT_OP !=
-#define BOOST_TT_FORBIDDEN_IF\
-   ::boost::type_traits::ice_or<\
-      /* Lhs==pointer and Rhs==fundamental */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Lhs_noref >::value,\
-         ::boost::is_fundamental< Rhs_nocv >::value\
-      >::value,\
-      /* Rhs==pointer and Lhs==fundamental */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Rhs_noref >::value,\
-         ::boost::is_fundamental< Lhs_nocv >::value\
-      >::value,\
-      /* Lhs==pointer and Rhs==pointer and Lhs!=base(Rhs) and Rhs!=base(Lhs) and Lhs!=void* and Rhs!=void* */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Lhs_noref >::value,\
-         ::boost::is_pointer< Rhs_noref >::value,\
-         ::boost::type_traits::ice_not<\
-            ::boost::type_traits::ice_or<\
-               ::boost::is_base_of< Lhs_noptr, Rhs_noptr >::value,\
-               ::boost::is_base_of< Rhs_noptr, Lhs_noptr >::value,\
-               ::boost::is_same< Lhs_noptr, Rhs_noptr >::value,\
-               ::boost::is_void< Lhs_noptr >::value,\
-               ::boost::is_void< Rhs_noptr >::value\
-            >::value\
-         >::value\
-      >::value\
-   >::value
-
-
-#include <boost/type_traits/detail/has_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif
diff --git a/boost/type_traits/has_nothrow_assign.hpp b/boost/type_traits/has_nothrow_assign.hpp
deleted file mode 100644
index 83e5968..0000000
--- a/boost/type_traits/has_nothrow_assign.hpp
+++ /dev/null
@@ -1,44 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_HAS_NOTHROW_ASSIGN_HPP_INCLUDED
-#define BOOST_TT_HAS_NOTHROW_ASSIGN_HPP_INCLUDED
-
-#include <boost/type_traits/has_trivial_assign.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-namespace detail{
-
-template <class T>
-struct has_nothrow_assign_imp{
-#ifndef BOOST_HAS_NOTHROW_ASSIGN
-   BOOST_STATIC_CONSTANT(bool, value = ::boost::has_trivial_assign<T>::value);
-#else
-   BOOST_STATIC_CONSTANT(bool, value = BOOST_HAS_NOTHROW_ASSIGN(T));
-#endif
-};
-
-}
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_nothrow_assign,T,::boost::detail::has_nothrow_assign_imp<T>::value)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_assign,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_assign,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_assign,void const volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_assign,void volatile,false)
-#endif
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_HAS_NOTHROW_ASSIGN_HPP_INCLUDED
diff --git a/boost/type_traits/has_nothrow_constructor.hpp b/boost/type_traits/has_nothrow_constructor.hpp
deleted file mode 100644
index 3bc4f80..0000000
--- a/boost/type_traits/has_nothrow_constructor.hpp
+++ /dev/null
@@ -1,53 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_HAS_NOTHROW_CONSTRUCTOR_HPP_INCLUDED
-#define BOOST_TT_HAS_NOTHROW_CONSTRUCTOR_HPP_INCLUDED
-
-#include <boost/type_traits/has_trivial_constructor.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-namespace detail{
-
-template <class T>
-struct has_nothrow_constructor_imp{
-#ifdef BOOST_HAS_NOTHROW_CONSTRUCTOR
-   BOOST_STATIC_CONSTANT(bool, value = BOOST_HAS_NOTHROW_CONSTRUCTOR(T));
-#else
-   BOOST_STATIC_CONSTANT(bool, value = ::boost::has_trivial_constructor<T>::value);
-#endif
-};
-
-}
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_nothrow_constructor,T,::boost::detail::has_nothrow_constructor_imp<T>::value)
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_nothrow_default_constructor,T,::boost::detail::has_nothrow_constructor_imp<T>::value)
-
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_constructor,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_constructor,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_constructor,void const volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_constructor,void volatile,false)
-#endif
-
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_default_constructor,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_default_constructor,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_default_constructor,void const volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_default_constructor,void volatile,false)
-#endif
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_HAS_NOTHROW_CONSTRUCTOR_HPP_INCLUDED
diff --git a/boost/type_traits/has_nothrow_copy.hpp b/boost/type_traits/has_nothrow_copy.hpp
deleted file mode 100644
index 9c3c903..0000000
--- a/boost/type_traits/has_nothrow_copy.hpp
+++ /dev/null
@@ -1,53 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_HAS_NOTHROW_COPY_HPP_INCLUDED
-#define BOOST_TT_HAS_NOTHROW_COPY_HPP_INCLUDED
-
-#include <boost/type_traits/has_trivial_copy.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-namespace detail{
-
-template <class T>
-struct has_nothrow_copy_imp{
-#ifdef BOOST_HAS_NOTHROW_COPY
-   BOOST_STATIC_CONSTANT(bool, value = BOOST_HAS_NOTHROW_COPY(T));
-#else
-   BOOST_STATIC_CONSTANT(bool, value = ::boost::has_trivial_copy<T>::value);
-#endif
-};
-
-}
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_nothrow_copy,T,::boost::detail::has_nothrow_copy_imp<T>::value)
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_nothrow_copy_constructor,T,::boost::detail::has_nothrow_copy_imp<T>::value)
-
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_copy,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_copy,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_copy,void const volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_copy,void volatile,false)
-#endif
-
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_copy_constructor,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_copy_constructor,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_copy_constructor,void const volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_nothrow_copy_constructor,void volatile,false)
-#endif
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_HAS_NOTHROW_COPY_HPP_INCLUDED
diff --git a/boost/type_traits/has_nothrow_destructor.hpp b/boost/type_traits/has_nothrow_destructor.hpp
deleted file mode 100644
index 4f5882a..0000000
--- a/boost/type_traits/has_nothrow_destructor.hpp
+++ /dev/null
@@ -1,25 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_HAS_NOTHROW_DESTRUCTOR_HPP_INCLUDED
-#define BOOST_TT_HAS_NOTHROW_DESTRUCTOR_HPP_INCLUDED
-
-#include <boost/type_traits/has_trivial_destructor.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_nothrow_destructor,T,::boost::has_trivial_destructor<T>::value)
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_HAS_NOTHROW_DESTRUCTOR_HPP_INCLUDED
diff --git a/boost/type_traits/has_operator.hpp b/boost/type_traits/has_operator.hpp
deleted file mode 100644
index c97a90f..0000000
--- a/boost/type_traits/has_operator.hpp
+++ /dev/null
@@ -1,51 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_HAS_OPERATOR_HPP_INCLUDED
-#define BOOST_TT_HAS_OPERATOR_HPP_INCLUDED
-
-#include <boost/type_traits/has_bit_and.hpp>
-#include <boost/type_traits/has_bit_and_assign.hpp>
-#include <boost/type_traits/has_bit_or.hpp>
-#include <boost/type_traits/has_bit_or_assign.hpp>
-#include <boost/type_traits/has_bit_xor.hpp>
-#include <boost/type_traits/has_bit_xor_assign.hpp>
-#include <boost/type_traits/has_complement.hpp>
-#include <boost/type_traits/has_dereference.hpp>
-#include <boost/type_traits/has_divides.hpp>
-#include <boost/type_traits/has_divides_assign.hpp>
-#include <boost/type_traits/has_equal_to.hpp>
-#include <boost/type_traits/has_greater.hpp>
-#include <boost/type_traits/has_greater_equal.hpp>
-#include <boost/type_traits/has_left_shift.hpp>
-#include <boost/type_traits/has_left_shift_assign.hpp>
-#include <boost/type_traits/has_less.hpp>
-#include <boost/type_traits/has_less_equal.hpp>
-#include <boost/type_traits/has_logical_and.hpp>
-#include <boost/type_traits/has_logical_not.hpp>
-#include <boost/type_traits/has_logical_or.hpp>
-#include <boost/type_traits/has_minus.hpp>
-#include <boost/type_traits/has_minus_assign.hpp>
-#include <boost/type_traits/has_modulus.hpp>
-#include <boost/type_traits/has_modulus_assign.hpp>
-#include <boost/type_traits/has_multiplies.hpp>
-#include <boost/type_traits/has_multiplies_assign.hpp>
-#include <boost/type_traits/has_negate.hpp>
-#include <boost/type_traits/has_not_equal_to.hpp>
-#include <boost/type_traits/has_plus.hpp>
-#include <boost/type_traits/has_plus_assign.hpp>
-#include <boost/type_traits/has_post_decrement.hpp>
-#include <boost/type_traits/has_post_increment.hpp>
-#include <boost/type_traits/has_pre_decrement.hpp>
-#include <boost/type_traits/has_pre_increment.hpp>
-#include <boost/type_traits/has_right_shift.hpp>
-#include <boost/type_traits/has_right_shift_assign.hpp>
-#include <boost/type_traits/has_unary_minus.hpp>
-#include <boost/type_traits/has_unary_plus.hpp>
-
-#endif
diff --git a/boost/type_traits/has_plus.hpp b/boost/type_traits/has_plus.hpp
deleted file mode 100644
index 70c1200..0000000
--- a/boost/type_traits/has_plus.hpp
+++ /dev/null
@@ -1,54 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_HAS_PLUS_HPP_INCLUDED
-#define BOOST_TT_HAS_PLUS_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME has_plus
-#define BOOST_TT_TRAIT_OP +
-#define BOOST_TT_FORBIDDEN_IF\
-   ::boost::type_traits::ice_or<\
-      /* Lhs==pointer and Rhs==pointer */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Lhs_noref >::value,\
-         ::boost::is_pointer< Rhs_noref >::value\
-      >::value,\
-      /* Lhs==void* and Rhs==fundamental */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Lhs_noref >::value,\
-         ::boost::is_void< Lhs_noptr >::value,\
-         ::boost::is_fundamental< Rhs_nocv >::value\
-      >::value,\
-      /* Rhs==void* and Lhs==fundamental */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Rhs_noref >::value,\
-         ::boost::is_void< Rhs_noptr >::value,\
-         ::boost::is_fundamental< Lhs_nocv >::value\
-      >::value,\
-      /* Lhs==pointer and Rhs==fundamental and Rhs!=integral */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Lhs_noref >::value,\
-         ::boost::is_fundamental< Rhs_nocv >::value,\
-         ::boost::type_traits::ice_not< ::boost::is_integral< Rhs_noref >::value >::value\
-      >::value,\
-      /* Rhs==pointer and Lhs==fundamental and Lhs!=integral */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Rhs_noref >::value,\
-         ::boost::is_fundamental< Lhs_nocv >::value,\
-         ::boost::type_traits::ice_not< ::boost::is_integral< Lhs_noref >::value >::value\
-      >::value\
-   >::value
-
-
-#include <boost/type_traits/detail/has_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif
diff --git a/boost/type_traits/has_plus_assign.hpp b/boost/type_traits/has_plus_assign.hpp
deleted file mode 100644
index 6d65204..0000000
--- a/boost/type_traits/has_plus_assign.hpp
+++ /dev/null
@@ -1,66 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_HAS_PLUS_ASSIGN_HPP_INCLUDED
-#define BOOST_TT_HAS_PLUS_ASSIGN_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME has_plus_assign
-#define BOOST_TT_TRAIT_OP +=
-#define BOOST_TT_FORBIDDEN_IF\
-   ::boost::type_traits::ice_or<\
-      /* Lhs==pointer and Rhs==pointer */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Lhs_noref >::value,\
-         ::boost::is_pointer< Rhs_noref >::value\
-      >::value,\
-      /* Lhs==void* and Rhs==fundamental */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Lhs_noref >::value,\
-         ::boost::is_void< Lhs_noptr >::value,\
-         ::boost::is_fundamental< Rhs_nocv >::value\
-      >::value,\
-      /* Rhs==void* and Lhs==fundamental */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Rhs_noref >::value,\
-         ::boost::is_void< Rhs_noptr >::value,\
-         ::boost::is_fundamental< Lhs_nocv >::value\
-      >::value,\
-      /* Lhs==pointer and Rhs==fundamental and Rhs!=integral */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Lhs_noref >::value,\
-         ::boost::is_fundamental< Rhs_nocv >::value,\
-         ::boost::type_traits::ice_not< ::boost::is_integral< Rhs_noref >::value >::value\
-      >::value,\
-      /* Rhs==pointer and Lhs==fundamental and Lhs!=bool */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Rhs_noref >::value,\
-         ::boost::is_fundamental< Lhs_nocv >::value,\
-         ::boost::type_traits::ice_not< ::boost::is_same< Lhs_nocv, bool >::value >::value\
-      >::value,\
-      /* (Lhs==fundamental or Lhs==pointer) and (Rhs==fundamental or Rhs==pointer) and (Lhs==const) */\
-      ::boost::type_traits::ice_and<\
-         ::boost::type_traits::ice_or<\
-            ::boost::is_fundamental< Lhs_nocv >::value,\
-            ::boost::is_pointer< Lhs_noref >::value\
-         >::value,\
-         ::boost::type_traits::ice_or<\
-            ::boost::is_fundamental< Rhs_nocv >::value,\
-            ::boost::is_pointer< Rhs_noref >::value\
-         >::value,\
-         ::boost::is_const< Lhs_noref >::value\
-      >::value\
-   >::value
-
-
-#include <boost/type_traits/detail/has_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif
diff --git a/boost/type_traits/has_post_decrement.hpp b/boost/type_traits/has_post_decrement.hpp
deleted file mode 100644
index e277eaf..0000000
--- a/boost/type_traits/has_post_decrement.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_HAS_POST_DECREMENT_HPP_INCLUDED
-#define BOOST_TT_HAS_POST_DECREMENT_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME has_post_decrement
-#define BOOST_TT_TRAIT_OP --
-#define BOOST_TT_FORBIDDEN_IF\
-   ::boost::type_traits::ice_or<\
-      /* bool */\
-      ::boost::is_same< bool, Lhs_nocv >::value,\
-      /* void* */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Lhs_noref >::value,\
-         ::boost::is_void< Lhs_noptr >::value\
-      >::value,\
-      /* (fundamental or pointer) and const */\
-      ::boost::type_traits::ice_and<\
-         ::boost::type_traits::ice_or<\
-            ::boost::is_fundamental< Lhs_nocv >::value,\
-            ::boost::is_pointer< Lhs_noref >::value\
-         >::value,\
-         ::boost::is_const< Lhs_noref >::value\
-      >::value\
-   >::value
-
-
-#include <boost/type_traits/detail/has_postfix_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif
diff --git a/boost/type_traits/has_post_increment.hpp b/boost/type_traits/has_post_increment.hpp
deleted file mode 100644
index 085b2d5..0000000
--- a/boost/type_traits/has_post_increment.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_HAS_POST_INCREMENT_HPP_INCLUDED
-#define BOOST_TT_HAS_POST_INCREMENT_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME has_post_increment
-#define BOOST_TT_TRAIT_OP ++
-#define BOOST_TT_FORBIDDEN_IF\
-   ::boost::type_traits::ice_or<\
-      /* bool */\
-      ::boost::is_same< bool, Lhs_nocv >::value,\
-      /* void* */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Lhs_noref >::value,\
-         ::boost::is_void< Lhs_noptr >::value\
-      >::value,\
-      /* (fundamental or pointer) and const */\
-      ::boost::type_traits::ice_and<\
-         ::boost::type_traits::ice_or<\
-            ::boost::is_fundamental< Lhs_nocv >::value,\
-            ::boost::is_pointer< Lhs_noref >::value\
-         >::value,\
-         ::boost::is_const< Lhs_noref >::value\
-      >::value\
-   >::value
-
-
-#include <boost/type_traits/detail/has_postfix_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif
diff --git a/boost/type_traits/has_pre_decrement.hpp b/boost/type_traits/has_pre_decrement.hpp
deleted file mode 100644
index 8f08291..0000000
--- a/boost/type_traits/has_pre_decrement.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_HAS_PRE_DECREMENT_HPP_INCLUDED
-#define BOOST_TT_HAS_PRE_DECREMENT_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME has_pre_decrement
-#define BOOST_TT_TRAIT_OP --
-#define BOOST_TT_FORBIDDEN_IF\
-   ::boost::type_traits::ice_or<\
-      /* bool */\
-      ::boost::is_same< bool, Rhs_nocv >::value,\
-      /* void* */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Rhs_noref >::value,\
-         ::boost::is_void< Rhs_noptr >::value\
-      >::value,\
-      /* (fundamental or pointer) and const */\
-      ::boost::type_traits::ice_and<\
-         ::boost::type_traits::ice_or<\
-            ::boost::is_fundamental< Rhs_nocv >::value,\
-            ::boost::is_pointer< Rhs_noref >::value\
-         >::value,\
-         ::boost::is_const< Rhs_noref >::value\
-      >::value\
-   >::value
-
-
-#include <boost/type_traits/detail/has_prefix_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif
diff --git a/boost/type_traits/has_pre_increment.hpp b/boost/type_traits/has_pre_increment.hpp
deleted file mode 100644
index fcb946d..0000000
--- a/boost/type_traits/has_pre_increment.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_HAS_PRE_INCREMENT_HPP_INCLUDED
-#define BOOST_TT_HAS_PRE_INCREMENT_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME has_pre_increment
-#define BOOST_TT_TRAIT_OP ++
-#define BOOST_TT_FORBIDDEN_IF\
-   ::boost::type_traits::ice_or<\
-      /* bool */\
-      ::boost::is_same< bool, Rhs_nocv >::value,\
-      /* void* */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Rhs_noref >::value,\
-         ::boost::is_void< Rhs_noptr >::value\
-      >::value,\
-      /* (fundamental or pointer) and const */\
-      ::boost::type_traits::ice_and<\
-         ::boost::type_traits::ice_or<\
-            ::boost::is_fundamental< Rhs_nocv >::value,\
-            ::boost::is_pointer< Rhs_noref >::value\
-         >::value,\
-         ::boost::is_const< Rhs_noref >::value\
-      >::value\
-   >::value
-
-
-#include <boost/type_traits/detail/has_prefix_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif
diff --git a/boost/type_traits/has_right_shift.hpp b/boost/type_traits/has_right_shift.hpp
deleted file mode 100644
index 5735870..0000000
--- a/boost/type_traits/has_right_shift.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_HAS_RIGHT_SHIFT_HPP_INCLUDED
-#define BOOST_TT_HAS_RIGHT_SHIFT_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME has_right_shift
-#define BOOST_TT_TRAIT_OP >>
-#define BOOST_TT_FORBIDDEN_IF\
-   ::boost::type_traits::ice_or<\
-      /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_fundamental< Lhs_nocv >::value,\
-         ::boost::is_fundamental< Rhs_nocv >::value,\
-         ::boost::type_traits::ice_or<\
-            ::boost::type_traits::ice_not< ::boost::is_integral< Lhs_noref >::value >::value,\
-            ::boost::type_traits::ice_not< ::boost::is_integral< Rhs_noref >::value >::value\
-         >::value\
-      >::value,\
-      /* Lhs==fundamental and Rhs==pointer */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_fundamental< Lhs_nocv >::value,\
-         ::boost::is_pointer< Rhs_noref >::value\
-      >::value,\
-      /* Rhs==fundamental and Lhs==pointer */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_fundamental< Rhs_nocv >::value,\
-         ::boost::is_pointer< Lhs_noref >::value\
-      >::value,\
-      /* Lhs==pointer and Rhs==pointer */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Lhs_noref >::value,\
-         ::boost::is_pointer< Rhs_noref >::value\
-      >::value\
-   >::value
-
-
-#include <boost/type_traits/detail/has_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif
diff --git a/boost/type_traits/has_right_shift_assign.hpp b/boost/type_traits/has_right_shift_assign.hpp
deleted file mode 100644
index 0536e71..0000000
--- a/boost/type_traits/has_right_shift_assign.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_HAS_RIGHT_SHIFT_ASSIGN_HPP_INCLUDED
-#define BOOST_TT_HAS_RIGHT_SHIFT_ASSIGN_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME has_right_shift_assign
-#define BOOST_TT_TRAIT_OP >>=
-#define BOOST_TT_FORBIDDEN_IF\
-   ::boost::type_traits::ice_or<\
-      /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_fundamental< Lhs_nocv >::value,\
-         ::boost::is_fundamental< Rhs_nocv >::value,\
-         ::boost::type_traits::ice_or<\
-            ::boost::type_traits::ice_not< ::boost::is_integral< Lhs_noref >::value >::value,\
-            ::boost::type_traits::ice_not< ::boost::is_integral< Rhs_noref >::value >::value\
-         >::value\
-      >::value,\
-      /* Lhs==fundamental and Rhs==pointer */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_fundamental< Lhs_nocv >::value,\
-         ::boost::is_pointer< Rhs_noref >::value\
-      >::value,\
-      /* Rhs==fundamental and Lhs==pointer */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_fundamental< Rhs_nocv >::value,\
-         ::boost::is_pointer< Lhs_noref >::value\
-      >::value,\
-      /* Lhs==pointer and Rhs==pointer */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_pointer< Lhs_noref >::value,\
-         ::boost::is_pointer< Rhs_noref >::value\
-      >::value,\
-      /* Lhs==fundamental and Rhs==fundamental and Lhs==const */\
-      ::boost::type_traits::ice_and<\
-         ::boost::is_fundamental< Lhs_nocv >::value,\
-         ::boost::is_fundamental< Rhs_nocv >::value,\
-         ::boost::is_const< Lhs_noref >::value\
-      >::value\
-   >::value
-
-
-#include <boost/type_traits/detail/has_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif
diff --git a/boost/type_traits/has_trivial_assign.hpp b/boost/type_traits/has_trivial_assign.hpp
deleted file mode 100644
index 404b62c..0000000
--- a/boost/type_traits/has_trivial_assign.hpp
+++ /dev/null
@@ -1,57 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_HAS_TRIVIAL_ASSIGN_HPP_INCLUDED
-#define BOOST_TT_HAS_TRIVIAL_ASSIGN_HPP_INCLUDED
-
-#include <boost/type_traits/config.hpp>
-#include <boost/type_traits/intrinsics.hpp>
-#include <boost/type_traits/is_pod.hpp>
-#include <boost/type_traits/is_const.hpp>
-#include <boost/type_traits/is_volatile.hpp>
-#include <boost/type_traits/detail/ice_and.hpp>
-#include <boost/type_traits/detail/ice_or.hpp>
-#include <boost/type_traits/detail/ice_not.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-namespace detail {
-
-template <typename T>
-struct has_trivial_assign_impl
-{
-#ifdef BOOST_HAS_TRIVIAL_ASSIGN
-   BOOST_STATIC_CONSTANT(bool, value = BOOST_HAS_TRIVIAL_ASSIGN(T));
-#else
-   BOOST_STATIC_CONSTANT(bool, value =
-      (::boost::type_traits::ice_and<
-        ::boost::is_pod<T>::value,
-        ::boost::type_traits::ice_not< ::boost::is_const<T>::value >::value,
-      ::boost::type_traits::ice_not< ::boost::is_volatile<T>::value >::value
-      >::value));
-#endif
-};
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_trivial_assign,T,::boost::detail::has_trivial_assign_impl<T>::value)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_assign,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_assign,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_assign,void const volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_assign,void volatile,false)
-#endif
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_HAS_TRIVIAL_ASSIGN_HPP_INCLUDED
diff --git a/boost/type_traits/has_trivial_constructor.hpp b/boost/type_traits/has_trivial_constructor.hpp
deleted file mode 100644
index 30dbdd8..0000000
--- a/boost/type_traits/has_trivial_constructor.hpp
+++ /dev/null
@@ -1,51 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_HAS_TRIVIAL_CONSTRUCTOR_HPP_INCLUDED
-#define BOOST_TT_HAS_TRIVIAL_CONSTRUCTOR_HPP_INCLUDED
-
-#include <boost/type_traits/config.hpp>
-#include <boost/type_traits/intrinsics.hpp>
-#include <boost/type_traits/is_pod.hpp>
-#include <boost/type_traits/detail/ice_or.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-namespace detail {
-
-template <typename T>
-struct has_trivial_ctor_impl
-{
-#ifdef BOOST_HAS_TRIVIAL_CONSTRUCTOR
-   BOOST_STATIC_CONSTANT(bool, value =
-      (::boost::type_traits::ice_or<
-         ::boost::is_pod<T>::value,
-         BOOST_HAS_TRIVIAL_CONSTRUCTOR(T)
-      >::value));
-#else
-   BOOST_STATIC_CONSTANT(bool, value =
-      (::boost::type_traits::ice_or<
-         ::boost::is_pod<T>::value,
-         false
-      >::value));
-#endif
-};
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_trivial_constructor,T,::boost::detail::has_trivial_ctor_impl<T>::value)
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_trivial_default_constructor,T,::boost::detail::has_trivial_ctor_impl<T>::value)
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_HAS_TRIVIAL_CONSTRUCTOR_HPP_INCLUDED
diff --git a/boost/type_traits/has_trivial_copy.hpp b/boost/type_traits/has_trivial_copy.hpp
deleted file mode 100644
index ba4d884..0000000
--- a/boost/type_traits/has_trivial_copy.hpp
+++ /dev/null
@@ -1,64 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_HAS_TRIVIAL_COPY_HPP_INCLUDED
-#define BOOST_TT_HAS_TRIVIAL_COPY_HPP_INCLUDED
-
-#include <boost/type_traits/config.hpp>
-#include <boost/type_traits/intrinsics.hpp>
-#include <boost/type_traits/is_volatile.hpp>
-#include <boost/type_traits/is_pod.hpp>
-#include <boost/type_traits/detail/ice_and.hpp>
-#include <boost/type_traits/detail/ice_or.hpp>
-#include <boost/type_traits/detail/ice_not.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-namespace detail {
-
-template <typename T>
-struct has_trivial_copy_impl
-{
-#ifdef BOOST_HAS_TRIVIAL_COPY
-   BOOST_STATIC_CONSTANT(bool, value = BOOST_HAS_TRIVIAL_COPY(T));
-#else
-   BOOST_STATIC_CONSTANT(bool, value =
-      (::boost::type_traits::ice_and<
-         ::boost::is_pod<T>::value,
-         ::boost::type_traits::ice_not< ::boost::is_volatile<T>::value >::value
-      >::value));
-#endif
-};
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_trivial_copy,T,::boost::detail::has_trivial_copy_impl<T>::value)
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_trivial_copy_constructor,T,::boost::detail::has_trivial_copy_impl<T>::value)
-
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_copy,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_copy,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_copy,void const volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_copy,void volatile,false)
-#endif
-
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_copy_constructor,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_copy_constructor,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_copy_constructor,void const volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_copy_constructor,void volatile,false)
-#endif
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_HAS_TRIVIAL_COPY_HPP_INCLUDED
diff --git a/boost/type_traits/has_trivial_destructor.hpp b/boost/type_traits/has_trivial_destructor.hpp
deleted file mode 100644
index 79d7522..0000000
--- a/boost/type_traits/has_trivial_destructor.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_HAS_TRIVIAL_DESTRUCTOR_HPP_INCLUDED
-#define BOOST_TT_HAS_TRIVIAL_DESTRUCTOR_HPP_INCLUDED
-
-#include <boost/type_traits/config.hpp>
-#include <boost/type_traits/intrinsics.hpp>
-#include <boost/type_traits/is_pod.hpp>
-#include <boost/type_traits/detail/ice_or.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-namespace detail {
-
-template <typename T>
-struct has_trivial_dtor_impl
-{
-#ifdef BOOST_HAS_TRIVIAL_DESTRUCTOR
-   BOOST_STATIC_CONSTANT(bool, value = BOOST_HAS_TRIVIAL_DESTRUCTOR(T));
-#else
-   BOOST_STATIC_CONSTANT(bool, value = ::boost::is_pod<T>::value);
-#endif
-};
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_trivial_destructor,T,::boost::detail::has_trivial_dtor_impl<T>::value)
-
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_destructor,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_destructor,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_destructor,void const volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_destructor,void volatile,false)
-#endif
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_HAS_TRIVIAL_DESTRUCTOR_HPP_INCLUDED
diff --git a/boost/type_traits/has_trivial_move_assign.hpp b/boost/type_traits/has_trivial_move_assign.hpp
deleted file mode 100644
index db337f7..0000000
--- a/boost/type_traits/has_trivial_move_assign.hpp
+++ /dev/null
@@ -1,57 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  (C) Copyright Eric Friedman 2002-2003.
-//  (C) Copyright Antony Polukhin 2013.
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_HAS_TRIVIAL_MOVE_ASSIGN_HPP_INCLUDED
-#define BOOST_TT_HAS_TRIVIAL_MOVE_ASSIGN_HPP_INCLUDED
-
-#include <boost/type_traits/config.hpp>
-#include <boost/type_traits/is_pod.hpp>
-#include <boost/type_traits/is_const.hpp>
-#include <boost/type_traits/is_volatile.hpp>
-#include <boost/type_traits/detail/ice_and.hpp>
-#include <boost/type_traits/detail/ice_not.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-namespace detail {
-
-template <typename T>
-struct has_trivial_move_assign_impl
-{
-#ifdef BOOST_HAS_TRIVIAL_MOVE_ASSIGN
-   BOOST_STATIC_CONSTANT(bool, value = (BOOST_HAS_TRIVIAL_MOVE_ASSIGN(T)));
-#else
-   BOOST_STATIC_CONSTANT(bool, value =
-           (::boost::type_traits::ice_and<
-              ::boost::is_pod<T>::value,
-              ::boost::type_traits::ice_not< ::boost::is_const<T>::value >::value,
-              ::boost::type_traits::ice_not< ::boost::is_volatile<T>::value >::value
-           >::value));
-#endif
-};
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_trivial_move_assign,T,::boost::detail::has_trivial_move_assign_impl<T>::value)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_move_assign,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_move_assign,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_move_assign,void const volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_move_assign,void volatile,false)
-#endif
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_HAS_TRIVIAL_MOVE_ASSIGN_HPP_INCLUDED
diff --git a/boost/type_traits/has_trivial_move_constructor.hpp b/boost/type_traits/has_trivial_move_constructor.hpp
deleted file mode 100644
index a341834..0000000
--- a/boost/type_traits/has_trivial_move_constructor.hpp
+++ /dev/null
@@ -1,57 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  (C) Copyright Eric Friedman 2002-2003.
-//  (C) Copyright Antony Polukhin 2013.
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_HAS_TRIVIAL_MOVE_CONSTRUCTOR_HPP_INCLUDED
-#define BOOST_TT_HAS_TRIVIAL_MOVE_CONSTRUCTOR_HPP_INCLUDED
-
-#include <boost/type_traits/config.hpp>
-#include <boost/type_traits/intrinsics.hpp>
-#include <boost/type_traits/is_pod.hpp>
-#include <boost/type_traits/is_volatile.hpp>
-#include <boost/type_traits/detail/ice_and.hpp>
-#include <boost/type_traits/detail/ice_not.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-namespace detail {
-
-template <typename T>
-struct has_trivial_move_ctor_impl
-{
-#ifdef BOOST_HAS_TRIVIAL_MOVE_CONSTRUCTOR
-   BOOST_STATIC_CONSTANT(bool, value = (BOOST_HAS_TRIVIAL_MOVE_CONSTRUCTOR(T)));
-#else
-   BOOST_STATIC_CONSTANT(bool, value =
-           (::boost::type_traits::ice_and<
-              ::boost::is_pod<T>::value,
-              ::boost::type_traits::ice_not< ::boost::is_volatile<T>::value >::value
-           >::value));
-#endif
-};
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_trivial_move_constructor,T,::boost::detail::has_trivial_move_ctor_impl<T>::value)
-
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_move_constructor,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_move_constructor,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_move_constructor,void const volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(has_trivial_move_constructor,void volatile,false)
-#endif
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_HAS_TRIVIAL_MOVE_CONSTRUCTOR_HPP_INCLUDED
diff --git a/boost/type_traits/has_unary_minus.hpp b/boost/type_traits/has_unary_minus.hpp
deleted file mode 100644
index 6b3157f..0000000
--- a/boost/type_traits/has_unary_minus.hpp
+++ /dev/null
@@ -1,25 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_HAS_UNARY_MINUS_HPP_INCLUDED
-#define BOOST_TT_HAS_UNARY_MINUS_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME has_unary_minus
-#define BOOST_TT_TRAIT_OP -
-#define BOOST_TT_FORBIDDEN_IF\
-   /* pointer */\
-   ::boost::is_pointer< Rhs_noref >::value
-
-
-#include <boost/type_traits/detail/has_prefix_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif
diff --git a/boost/type_traits/has_unary_plus.hpp b/boost/type_traits/has_unary_plus.hpp
deleted file mode 100644
index a61770f..0000000
--- a/boost/type_traits/has_unary_plus.hpp
+++ /dev/null
@@ -1,23 +0,0 @@
-//  (C) Copyright 2009-2011 Frederic Bron.
-//
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_HAS_UNARY_PLUS_HPP_INCLUDED
-#define BOOST_TT_HAS_UNARY_PLUS_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME has_unary_plus
-#define BOOST_TT_TRAIT_OP +
-#define BOOST_TT_FORBIDDEN_IF\
-   false
-
-#include <boost/type_traits/detail/has_prefix_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif
diff --git a/boost/type_traits/has_virtual_destructor.hpp b/boost/type_traits/has_virtual_destructor.hpp
deleted file mode 100644
index b741197..0000000
--- a/boost/type_traits/has_virtual_destructor.hpp
+++ /dev/null
@@ -1,29 +0,0 @@
-
-//  (C) Copyright John Maddock 2005.  
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-
-#ifndef BOOST_TT_HAS_VIRTUAL_DESTRUCTOR_HPP_INCLUDED
-#define BOOST_TT_HAS_VIRTUAL_DESTRUCTOR_HPP_INCLUDED
-
-#include <boost/type_traits/intrinsics.hpp>
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-#ifdef BOOST_HAS_VIRTUAL_DESTRUCTOR
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_virtual_destructor,T,BOOST_HAS_VIRTUAL_DESTRUCTOR(T))
-#else
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_virtual_destructor,T,false)
-#endif
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED
diff --git a/boost/type_traits/ice.hpp b/boost/type_traits/ice.hpp
deleted file mode 100644
index 134bc4b..0000000
--- a/boost/type_traits/ice.hpp
+++ /dev/null
@@ -1,20 +0,0 @@
-
-//  (C) Copyright John Maddock and Steve Cleary 2000.
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-//
-//  macros and helpers for working with integral-constant-expressions.
-
-#ifndef BOOST_TT_ICE_HPP_INCLUDED
-#define BOOST_TT_ICE_HPP_INCLUDED
-
-#include <boost/type_traits/detail/yes_no_type.hpp>
-#include <boost/type_traits/detail/ice_or.hpp>
-#include <boost/type_traits/detail/ice_and.hpp>
-#include <boost/type_traits/detail/ice_not.hpp>
-#include <boost/type_traits/detail/ice_eq.hpp>
-
-#endif // BOOST_TT_ICE_HPP_INCLUDED
diff --git a/boost/type_traits/integral_constant.hpp b/boost/type_traits/integral_constant.hpp
deleted file mode 100644
index 4ed1bb0..0000000
--- a/boost/type_traits/integral_constant.hpp
+++ /dev/null
@@ -1,53 +0,0 @@
-//  (C) Copyright John Maddock 2005. 
-//  Use, modification and distribution are subject to the 
-//  Boost Software License, Version 1.0. (See accompanying file 
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_TYPE_TRAITS_INTEGRAL_CONSTANT_HPP
-#define BOOST_TYPE_TRAITS_INTEGRAL_CONSTANT_HPP
-
-#include <boost/config.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/integral_c.hpp>
-
-namespace boost{
-
-#if defined(BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS) || defined(__BORLANDC__)
-template <class T, int val>
-#else
-template <class T, T val>
-#endif
-struct integral_constant : public mpl::integral_c<T, val>
-{
-   typedef integral_constant<T,val> type;
-};
-
-template<> struct integral_constant<bool,true> : public mpl::true_ 
-{
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-# pragma warning(push)
-# pragma warning(disable:4097)
-   typedef mpl::true_ base_;
-   using base_::value;
-# pragma warning(pop)
-#endif
-   typedef integral_constant<bool,true> type;
-};
-template<> struct integral_constant<bool,false> : public mpl::false_ 
-{
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-# pragma warning(push)
-# pragma warning(disable:4097)
-   typedef mpl::false_ base_;
-   using base_::value;
-# pragma warning(pop)
-#endif
-   typedef integral_constant<bool,false> type;
-};
-
-typedef integral_constant<bool,true> true_type;
-typedef integral_constant<bool,false> false_type;
-
-}
-
-#endif
diff --git a/boost/type_traits/integral_promotion.hpp b/boost/type_traits/integral_promotion.hpp
deleted file mode 100644
index 2109b9c..0000000
--- a/boost/type_traits/integral_promotion.hpp
+++ /dev/null
@@ -1,195 +0,0 @@
-// Copyright 2005 Alexander Nasonov.
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef FILE_boost_type_traits_integral_promotion_hpp_INCLUDED
-#define FILE_boost_type_traits_integral_promotion_hpp_INCLUDED
-
-#include <boost/config.hpp>
-
-#include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/type_traits/integral_constant.hpp>
-#include <boost/type_traits/is_const.hpp>
-#include <boost/type_traits/is_enum.hpp>
-#include <boost/type_traits/is_volatile.hpp>
-#include <boost/type_traits/remove_cv.hpp>
-
-// Should be the last #include
-#include <boost/type_traits/detail/type_trait_def.hpp>
-
-namespace boost {
-
-namespace type_traits { namespace detail {
-
-// 4.5/2
-template <class T> struct need_promotion : public boost::is_enum<T> {};
-
-// 4.5/1
-template<> struct need_promotion<char              > : public true_type {};
-template<> struct need_promotion<signed char       > : public true_type {};
-template<> struct need_promotion<unsigned char     > : public true_type {};
-template<> struct need_promotion<signed short int  > : public true_type {};
-template<> struct need_promotion<unsigned short int> : public true_type {};
-
-
-// Specializations for non-standard types.
-// Type is promoted if it's smaller then int.
-
-#define BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(T) \
-    template<> struct need_promotion<T>          \
-        : public integral_constant<bool, (sizeof(T) < sizeof(int))> {};
-
-// Same set of integral types as in boost/type_traits/is_integral.hpp.
-// Please, keep in sync.
-#if (defined(BOOST_MSVC) && (BOOST_MSVC < 1300)) \
-    || (defined(BOOST_INTEL_CXX_VERSION) && defined(_MSC_VER) && (BOOST_INTEL_CXX_VERSION <= 600)) \
-    || (defined(__BORLANDC__) && (__BORLANDC__ == 0x600) && (_MSC_VER < 1300))
-// TODO: common macro for this #if. Or better yet, PP SEQ of non-standard types.
-BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(__int8          )
-BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(unsigned __int8 )
-BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(__int16         )
-BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(unsigned __int16)
-BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(__int32         )
-BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(unsigned __int32)
-#ifdef __BORLANDC__
-BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(unsigned __int64)
-BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(         __int64)
-#endif
-#endif
-
-#if defined(BOOST_HAS_LONG_LONG)
-BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(boost::ulong_long_type)
-BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(boost::long_long_type )
-#elif defined(BOOST_HAS_MS_INT64)
-BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(unsigned __int64)
-BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(         __int64)
-#endif
-
-#undef BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE
-
-
-#ifndef BOOST_NO_INTRINSIC_WCHAR_T
-// 4.5/2
-template<> struct need_promotion<wchar_t> : public true_type {};
-#endif
-
-// 4.5/3 (integral bit-field) is not supported.
-
-// 4.5/4
-template<> struct need_promotion<bool> : public true_type {};
-
-
-// Get promoted type by index and cv qualifiers.
-
-template<int Index, int IsConst, int IsVolatile> struct promote_from_index;
-
-#define BOOST_TT_AUX_PROMOTE_FROM_INDEX(N,T)                                   \
-    template<> struct promote_from_index<N,0,0> { typedef T type; };           \
-    template<> struct promote_from_index<N,0,1> { typedef T volatile type; };  \
-    template<> struct promote_from_index<N,1,0> { typedef T const type; };     \
-    template<> struct promote_from_index<N,1,1> { typedef T const volatile type; };
-
-
-BOOST_TT_AUX_PROMOTE_FROM_INDEX(1, int          )
-BOOST_TT_AUX_PROMOTE_FROM_INDEX(2, unsigned int )
-BOOST_TT_AUX_PROMOTE_FROM_INDEX(3, long         )
-BOOST_TT_AUX_PROMOTE_FROM_INDEX(4, unsigned long)
-
-
-// WARNING: integral promotions to non-standard types
-// long long and __int64 are not defined by the standard.
-// Additional specialisations and overloads shouldn't
-// introduce ambiguity, though.
-
-#if defined(BOOST_HAS_LONG_LONG)
-BOOST_TT_AUX_PROMOTE_FROM_INDEX(5, boost::long_long_type )
-BOOST_TT_AUX_PROMOTE_FROM_INDEX(6, boost::ulong_long_type)
-#elif defined(BOOST_HAS_MS_INT64)
-BOOST_TT_AUX_PROMOTE_FROM_INDEX(7, __int64         )
-BOOST_TT_AUX_PROMOTE_FROM_INDEX(8, unsigned __int64)
-#endif
-
-#undef BOOST_TT_AUX_PROMOTE_FROM_INDEX
-
-
-// Define BOOST_TT_AUX_PROMOTED_INDEX_TESTER:
-#if !defined(BOOST_MSVC)
-
-template<int N>
-struct sized_type_for_promotion
-{
-    typedef char (&type)[N];
-};
-
-#define BOOST_TT_AUX_PROMOTED_INDEX_TESTER(I,T) \
-    sized_type_for_promotion<I>::type promoted_index_tester(T);
-
-#else
-
-#define BOOST_TT_AUX_PROMOTED_INDEX_TESTER(I,T) \
-    char (&promoted_index_tester(T))[I];
-
-#endif
-
-BOOST_TT_AUX_PROMOTED_INDEX_TESTER(1, int          )
-BOOST_TT_AUX_PROMOTED_INDEX_TESTER(2, unsigned int )
-BOOST_TT_AUX_PROMOTED_INDEX_TESTER(3, long         )
-BOOST_TT_AUX_PROMOTED_INDEX_TESTER(4, unsigned long)
-
-#if defined(BOOST_HAS_LONG_LONG)
-BOOST_TT_AUX_PROMOTED_INDEX_TESTER(5, boost::long_long_type )
-BOOST_TT_AUX_PROMOTED_INDEX_TESTER(6, boost::ulong_long_type)
-#elif defined(BOOST_HAS_MS_INT64)
-BOOST_TT_AUX_PROMOTED_INDEX_TESTER(7, __int64         )
-BOOST_TT_AUX_PROMOTED_INDEX_TESTER(8, unsigned __int64)
-#endif
-
-#undef BOOST_TT_AUX_PROMOTED_INDEX_TESTER
-
-
-// Get an index of promoted type for type T.
-// Precondition: need_promotion<T>
-template<class T>
-struct promoted_index
-{
-    static T testee; // undefined
-    BOOST_STATIC_CONSTANT(int, value = sizeof(promoted_index_tester(+testee)) );
-    // Unary plus promotes testee                    LOOK HERE ---> ^
-};
-
-template<class T>
-struct integral_promotion_impl
-{
-    typedef BOOST_DEDUCED_TYPENAME promote_from_index<
-        (boost::type_traits::detail::promoted_index<T>::value)
-      , (boost::is_const<T>::value)
-      , (boost::is_volatile<T>::value)
-      >::type type;
-};
-
-template<class T>
-struct integral_promotion
-  : public boost::mpl::eval_if<
-        need_promotion<BOOST_DEDUCED_TYPENAME remove_cv<T>::type>
-      , integral_promotion_impl<T>
-      , boost::mpl::identity<T>
-      >
-{
-};
-
-} }
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(
-      integral_promotion
-    , T
-    , BOOST_DEDUCED_TYPENAME
-        boost::type_traits::detail::integral_promotion<T>::type
-    )
-}
-
-#include <boost/type_traits/detail/type_trait_undef.hpp>
-
-#endif // #ifndef FILE_boost_type_traits_integral_promotion_hpp_INCLUDED
-
diff --git a/boost/type_traits/intrinsics.hpp b/boost/type_traits/intrinsics.hpp
deleted file mode 100644
index 799f9b6..0000000
--- a/boost/type_traits/intrinsics.hpp
+++ /dev/null
@@ -1,305 +0,0 @@
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_INTRINSICS_HPP_INCLUDED
-#define BOOST_TT_INTRINSICS_HPP_INCLUDED
-
-#ifndef BOOST_TT_CONFIG_HPP_INCLUDED
-#include <boost/type_traits/config.hpp>
-#endif
-
-//
-// Helper macros for builtin compiler support.
-// If your compiler has builtin support for any of the following
-// traits concepts, then redefine the appropriate macros to pick
-// up on the compiler support:
-//
-// (these should largely ignore cv-qualifiers)
-// BOOST_IS_UNION(T) should evaluate to true if T is a union type
-// BOOST_IS_POD(T) should evaluate to true if T is a POD type
-// BOOST_IS_EMPTY(T) should evaluate to true if T is an empty class type (and not a union)
-// BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) should evaluate to true if "T x;" has no effect
-// BOOST_HAS_TRIVIAL_COPY(T) should evaluate to true if T(t) <==> memcpy
-// BOOST_HAS_TRIVIAL_MOVE_CONSTRUCTOR(T) should evaluate to true if T(boost::move(t)) <==> memcpy
-// BOOST_HAS_TRIVIAL_ASSIGN(T) should evaluate to true if t = u <==> memcpy
-// BOOST_HAS_TRIVIAL_MOVE_ASSIGN(T) should evaluate to true if t = boost::move(u) <==> memcpy
-// BOOST_HAS_TRIVIAL_DESTRUCTOR(T) should evaluate to true if ~T() has no effect
-// BOOST_HAS_NOTHROW_CONSTRUCTOR(T) should evaluate to true if "T x;" can not throw
-// BOOST_HAS_NOTHROW_COPY(T) should evaluate to true if T(t) can not throw
-// BOOST_HAS_NOTHROW_ASSIGN(T) should evaluate to true if t = u can not throw
-// BOOST_HAS_VIRTUAL_DESTRUCTOR(T) should evaluate to true T has a virtual destructor
-//
-// The following can also be defined: when detected our implementation is greatly simplified.
-//
-// BOOST_IS_ABSTRACT(T) true if T is an abstract type
-// BOOST_IS_BASE_OF(T,U) true if T is a base class of U
-// BOOST_IS_CLASS(T) true if T is a class type (and not a union)
-// BOOST_IS_CONVERTIBLE(T,U) true if T is convertible to U
-// BOOST_IS_ENUM(T) true is T is an enum
-// BOOST_IS_POLYMORPHIC(T) true if T is a polymorphic type
-// BOOST_ALIGNMENT_OF(T) should evaluate to the alignment requirements of type T.
-
-#ifdef BOOST_HAS_SGI_TYPE_TRAITS
-    // Hook into SGI's __type_traits class, this will pick up user supplied
-    // specializations as well as SGI - compiler supplied specializations.
-#   include <boost/type_traits/is_same.hpp>
-#   ifdef __NetBSD__
-      // There are two different versions of type_traits.h on NetBSD on Spark
-      // use an implicit include via algorithm instead, to make sure we get
-      // the same version as the std lib:
-#     include <algorithm>
-#   else
-#    include <type_traits.h>
-#   endif
-#   define BOOST_IS_POD(T) ::boost::is_same< typename ::__type_traits<T>::is_POD_type, ::__true_type>::value
-#   define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) ::boost::is_same< typename ::__type_traits<T>::has_trivial_default_constructor, ::__true_type>::value
-#   define BOOST_HAS_TRIVIAL_COPY(T) ::boost::is_same< typename ::__type_traits<T>::has_trivial_copy_constructor, ::__true_type>::value
-#   define BOOST_HAS_TRIVIAL_ASSIGN(T) ::boost::is_same< typename ::__type_traits<T>::has_trivial_assignment_operator, ::__true_type>::value
-#   define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) ::boost::is_same< typename ::__type_traits<T>::has_trivial_destructor, ::__true_type>::value
-
-#   ifdef __sgi
-#      define BOOST_HAS_TYPE_TRAITS_INTRINSICS
-#   endif
-#endif
-
-#if defined(__MSL_CPP__) && (__MSL_CPP__ >= 0x8000)
-    // Metrowerks compiler is acquiring intrinsic type traits support
-    // post version 8.  We hook into the published interface to pick up
-    // user defined specializations as well as compiler intrinsics as 
-    // and when they become available:
-#   include <msl_utility>
-#   define BOOST_IS_UNION(T) BOOST_STD_EXTENSION_NAMESPACE::is_union<T>::value
-#   define BOOST_IS_POD(T) BOOST_STD_EXTENSION_NAMESPACE::is_POD<T>::value
-#   define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) BOOST_STD_EXTENSION_NAMESPACE::has_trivial_default_ctor<T>::value
-#   define BOOST_HAS_TRIVIAL_COPY(T) BOOST_STD_EXTENSION_NAMESPACE::has_trivial_copy_ctor<T>::value
-#   define BOOST_HAS_TRIVIAL_ASSIGN(T) BOOST_STD_EXTENSION_NAMESPACE::has_trivial_assignment<T>::value
-#   define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) BOOST_STD_EXTENSION_NAMESPACE::has_trivial_dtor<T>::value
-#   define BOOST_HAS_TYPE_TRAITS_INTRINSICS
-#endif
-
-#if (defined(BOOST_MSVC) && defined(BOOST_MSVC_FULL_VER) && (BOOST_MSVC_FULL_VER >=140050215))\
-         || (defined(BOOST_INTEL) && defined(_MSC_VER) && (_MSC_VER >= 1500))
-#   include <boost/type_traits/is_same.hpp>
-#   include <boost/type_traits/is_function.hpp>
-
-#   define BOOST_IS_UNION(T) __is_union(T)
-#   define BOOST_IS_POD(T) (__is_pod(T) && __has_trivial_constructor(T))
-#   define BOOST_IS_EMPTY(T) __is_empty(T)
-#   define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) __has_trivial_constructor(T)
-#   define BOOST_HAS_TRIVIAL_COPY(T) (__has_trivial_copy(T)|| ( ::boost::is_pod<T>::value && !::boost::is_volatile<T>::value))
-#   define BOOST_HAS_TRIVIAL_ASSIGN(T) (__has_trivial_assign(T) || ( ::boost::is_pod<T>::value && ! ::boost::is_const<T>::value && !::boost::is_volatile<T>::value))
-#   define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) (__has_trivial_destructor(T) || ::boost::is_pod<T>::value)
-#   define BOOST_HAS_NOTHROW_CONSTRUCTOR(T) (__has_nothrow_constructor(T) || ::boost::has_trivial_constructor<T>::value)
-#   define BOOST_HAS_NOTHROW_COPY(T) (__has_nothrow_copy(T) || ::boost::has_trivial_copy<T>::value)
-#   define BOOST_HAS_NOTHROW_ASSIGN(T) (__has_nothrow_assign(T) || ::boost::has_trivial_assign<T>::value)
-#   define BOOST_HAS_VIRTUAL_DESTRUCTOR(T) __has_virtual_destructor(T)
-
-#   define BOOST_IS_ABSTRACT(T) __is_abstract(T)
-#   define BOOST_IS_BASE_OF(T,U) (__is_base_of(T,U) && !is_same<T,U>::value)
-#   define BOOST_IS_CLASS(T) __is_class(T)
-#   define BOOST_IS_CONVERTIBLE(T,U) ((__is_convertible_to(T,U) || (is_same<T,U>::value && !is_function<U>::value)) && !__is_abstract(U))
-#   define BOOST_IS_ENUM(T) __is_enum(T)
-//  This one doesn't quite always do the right thing:
-//  #   define BOOST_IS_POLYMORPHIC(T) __is_polymorphic(T)
-//  This one fails if the default alignment has been changed with /Zp:
-//  #   define BOOST_ALIGNMENT_OF(T) __alignof(T)
-
-#   if defined(_MSC_VER) && (_MSC_VER >= 1700)
-#       define BOOST_HAS_TRIVIAL_MOVE_CONSTRUCTOR(T) ((__has_trivial_move_constructor(T) || ::boost::is_pod<T>::value) && !::boost::is_volatile<T>::value)
-#       define BOOST_HAS_TRIVIAL_MOVE_ASSIGN(T) ((__has_trivial_move_assign(T) || ::boost::is_pod<T>::value) && ! ::boost::is_const<T>::value && !::boost::is_volatile<T>::value)
-#   endif
-
-#   define BOOST_HAS_TYPE_TRAITS_INTRINSICS
-#endif
-
-#if defined(__DMC__) && (__DMC__ >= 0x848)
-// For Digital Mars C++, www.digitalmars.com
-#   define BOOST_IS_UNION(T) (__typeinfo(T) & 0x400)
-#   define BOOST_IS_POD(T) (__typeinfo(T) & 0x800)
-#   define BOOST_IS_EMPTY(T) (__typeinfo(T) & 0x1000)
-#   define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) (__typeinfo(T) & 0x10)
-#   define BOOST_HAS_TRIVIAL_COPY(T) (__typeinfo(T) & 0x20)
-#   define BOOST_HAS_TRIVIAL_ASSIGN(T) (__typeinfo(T) & 0x40)
-#   define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) (__typeinfo(T) & 0x8)
-#   define BOOST_HAS_NOTHROW_CONSTRUCTOR(T) (__typeinfo(T) & 0x80)
-#   define BOOST_HAS_NOTHROW_COPY(T) (__typeinfo(T) & 0x100)
-#   define BOOST_HAS_NOTHROW_ASSIGN(T) (__typeinfo(T) & 0x200)
-#   define BOOST_HAS_VIRTUAL_DESTRUCTOR(T) (__typeinfo(T) & 0x4)
-#   define BOOST_HAS_TYPE_TRAITS_INTRINSICS
-#endif
-
-#if defined(BOOST_CLANG) && defined(__has_feature)
-#   include <cstddef>
-#   include <boost/type_traits/is_same.hpp>
-#   include <boost/type_traits/is_reference.hpp>
-#   include <boost/type_traits/is_volatile.hpp>
-
-#   if __has_feature(is_union)
-#     define BOOST_IS_UNION(T) __is_union(T)
-#   endif
-#   if (!defined(__GLIBCXX__) || (__GLIBCXX__ >= 20080306 && __GLIBCXX__ != 20080519)) && __has_feature(is_pod)
-#     define BOOST_IS_POD(T) __is_pod(T)
-#   endif
-#   if (!defined(__GLIBCXX__) || (__GLIBCXX__ >= 20080306 && __GLIBCXX__ != 20080519)) && __has_feature(is_empty)
-#     define BOOST_IS_EMPTY(T) __is_empty(T)
-#   endif
-#   if __has_feature(has_trivial_constructor)
-#     define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) __has_trivial_constructor(T)
-#   endif
-#   if __has_feature(has_trivial_copy)
-#     define BOOST_HAS_TRIVIAL_COPY(T) (__has_trivial_copy(T) && !is_reference<T>::value && !is_volatile<T>::value)
-#   endif
-#   if __has_feature(has_trivial_assign)
-#     define BOOST_HAS_TRIVIAL_ASSIGN(T) (__has_trivial_assign(T) && !is_volatile<T>::value)
-#   endif
-#   if __has_feature(has_trivial_destructor)
-#     define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) __has_trivial_destructor(T)
-#   endif
-#   if __has_feature(has_nothrow_constructor)
-#     define BOOST_HAS_NOTHROW_CONSTRUCTOR(T) __has_nothrow_constructor(T)
-#   endif
-#   if __has_feature(has_nothrow_copy)
-#     define BOOST_HAS_NOTHROW_COPY(T) (__has_nothrow_copy(T) && !is_volatile<T>::value && !is_reference<T>::value)
-#   endif
-#   if __has_feature(has_nothrow_assign)
-#     define BOOST_HAS_NOTHROW_ASSIGN(T) (__has_nothrow_assign(T) && !is_volatile<T>::value)
-#   endif
-#   if __has_feature(has_virtual_destructor)
-#     define BOOST_HAS_VIRTUAL_DESTRUCTOR(T) __has_virtual_destructor(T)
-#   endif
-#   if __has_feature(is_abstract)
-#     define BOOST_IS_ABSTRACT(T) __is_abstract(T)
-#   endif
-#   if __has_feature(is_base_of)
-#     define BOOST_IS_BASE_OF(T,U) (__is_base_of(T,U) && !is_same<T,U>::value)
-#   endif
-#   if __has_feature(is_class)
-#     define BOOST_IS_CLASS(T) __is_class(T)
-#   endif
-#   if __has_feature(is_convertible_to)
-#     include <boost/type_traits/is_abstract.hpp>
-#     define BOOST_IS_CONVERTIBLE(T,U) (__is_convertible_to(T,U) && !::boost::is_abstract<U>::value)
-#   endif
-#   if __has_feature(is_enum)
-#     define BOOST_IS_ENUM(T) __is_enum(T)
-#   endif
-#   if __has_feature(is_polymorphic)
-#     define BOOST_IS_POLYMORPHIC(T) __is_polymorphic(T)
-#   endif
-#   if __has_feature(has_trivial_move_constructor)
-#     define BOOST_HAS_TRIVIAL_MOVE_CONSTRUCTOR(T) __has_trivial_move_constructor(T)
-#   endif
-#   if __has_feature(has_trivial_move_assign)
-#     define BOOST_HAS_TRIVIAL_MOVE_ASSIGN(T) __has_trivial_move_assign(T)
-#   endif
-#   define BOOST_ALIGNMENT_OF(T) __alignof(T)
-
-#   define BOOST_HAS_TYPE_TRAITS_INTRINSICS
-#endif
-
-#if defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3) && !defined(__GCCXML__))) && !defined(BOOST_CLANG)
-#   include <boost/type_traits/is_same.hpp>
-#   include <boost/type_traits/is_reference.hpp>
-#   include <boost/type_traits/is_volatile.hpp>
-
-#ifdef BOOST_INTEL
-#  define BOOST_INTEL_TT_OPTS || is_pod<T>::value
-#else
-#  define BOOST_INTEL_TT_OPTS
-#endif
-
-#   define BOOST_IS_UNION(T) __is_union(T)
-#   define BOOST_IS_POD(T) __is_pod(T)
-#   define BOOST_IS_EMPTY(T) __is_empty(T)
-#   define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) ((__has_trivial_constructor(T) BOOST_INTEL_TT_OPTS) && ! ::boost::is_volatile<T>::value)
-#   define BOOST_HAS_TRIVIAL_COPY(T) ((__has_trivial_copy(T) BOOST_INTEL_TT_OPTS) && !is_reference<T>::value && ! ::boost::is_volatile<T>::value)
-#   define BOOST_HAS_TRIVIAL_ASSIGN(T) ((__has_trivial_assign(T) BOOST_INTEL_TT_OPTS) && ! ::boost::is_volatile<T>::value && ! ::boost::is_const<T>::value)
-#   define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) (__has_trivial_destructor(T) BOOST_INTEL_TT_OPTS)
-#   define BOOST_HAS_NOTHROW_CONSTRUCTOR(T) (__has_nothrow_constructor(T) BOOST_INTEL_TT_OPTS)
-#   define BOOST_HAS_NOTHROW_COPY(T) ((__has_nothrow_copy(T) BOOST_INTEL_TT_OPTS) && !is_volatile<T>::value && !is_reference<T>::value)
-#   define BOOST_HAS_NOTHROW_ASSIGN(T) ((__has_nothrow_assign(T) BOOST_INTEL_TT_OPTS) && !is_volatile<T>::value && !is_const<T>::value)
-#   define BOOST_HAS_VIRTUAL_DESTRUCTOR(T) __has_virtual_destructor(T)
-
-#   define BOOST_IS_ABSTRACT(T) __is_abstract(T)
-#   define BOOST_IS_BASE_OF(T,U) (__is_base_of(T,U) && !is_same<T,U>::value)
-#   define BOOST_IS_CLASS(T) __is_class(T)
-#   define BOOST_IS_ENUM(T) __is_enum(T)
-#   define BOOST_IS_POLYMORPHIC(T) __is_polymorphic(T)
-#   if (!defined(unix) && !defined(__unix__)) || defined(__LP64__)
-      // GCC sometimes lies about alignment requirements
-      // of type double on 32-bit unix platforms, use the
-      // old implementation instead in that case:
-#     define BOOST_ALIGNMENT_OF(T) __alignof__(T)
-#   endif
-
-#   define BOOST_HAS_TYPE_TRAITS_INTRINSICS
-#endif
-
-#if defined(__ghs__) && (__GHS_VERSION_NUMBER >= 600)
-#   include <boost/type_traits/is_same.hpp>
-#   include <boost/type_traits/is_reference.hpp>
-#   include <boost/type_traits/is_volatile.hpp>
-
-#   define BOOST_IS_UNION(T) __is_union(T)
-#   define BOOST_IS_POD(T) __is_pod(T)
-#   define BOOST_IS_EMPTY(T) __is_empty(T)
-#   define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) __has_trivial_constructor(T)
-#   define BOOST_HAS_TRIVIAL_COPY(T) (__has_trivial_copy(T) && !is_reference<T>::value && !is_volatile<T>::value)
-#   define BOOST_HAS_TRIVIAL_ASSIGN(T) (__has_trivial_assign(T) && !is_volatile<T>::value)
-#   define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) __has_trivial_destructor(T)
-#   define BOOST_HAS_NOTHROW_CONSTRUCTOR(T) __has_nothrow_constructor(T)
-#   define BOOST_HAS_NOTHROW_COPY(T) (__has_nothrow_copy(T) && !is_volatile<T>::value && !is_reference<T>::value)
-#   define BOOST_HAS_NOTHROW_ASSIGN(T) (__has_nothrow_assign(T) && !is_volatile<T>::value)
-#   define BOOST_HAS_VIRTUAL_DESTRUCTOR(T) __has_virtual_destructor(T)
-
-#   define BOOST_IS_ABSTRACT(T) __is_abstract(T)
-#   define BOOST_IS_BASE_OF(T,U) (__is_base_of(T,U) && !is_same<T,U>::value)
-#   define BOOST_IS_CLASS(T) __is_class(T)
-#   define BOOST_IS_ENUM(T) __is_enum(T)
-#   define BOOST_IS_POLYMORPHIC(T) __is_polymorphic(T)
-#   define BOOST_ALIGNMENT_OF(T) __alignof__(T)
-
-#   define BOOST_HAS_TYPE_TRAITS_INTRINSICS
-#endif
-
-# if defined(__CODEGEARC__)
-#   include <boost/type_traits/is_same.hpp>
-#   include <boost/type_traits/is_reference.hpp>
-#   include <boost/type_traits/is_volatile.hpp>
-#   include <boost/type_traits/is_void.hpp>
-
-#   define BOOST_IS_UNION(T) __is_union(T)
-#   define BOOST_IS_POD(T) __is_pod(T)
-#   define BOOST_IS_EMPTY(T) __is_empty(T)
-#   define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) (__has_trivial_default_constructor(T))
-#   define BOOST_HAS_TRIVIAL_COPY(T) (__has_trivial_copy_constructor(T) && !is_volatile<T>::value && !is_reference<T>::value)
-#   define BOOST_HAS_TRIVIAL_ASSIGN(T) (__has_trivial_assign(T) && !is_volatile<T>::value)
-#   define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) (__has_trivial_destructor(T))
-#   define BOOST_HAS_NOTHROW_CONSTRUCTOR(T) (__has_nothrow_default_constructor(T))
-#   define BOOST_HAS_NOTHROW_COPY(T) (__has_nothrow_copy_constructor(T) && !is_volatile<T>::value && !is_reference<T>::value)
-#   define BOOST_HAS_NOTHROW_ASSIGN(T) (__has_nothrow_assign(T) && !is_volatile<T>::value)
-#   define BOOST_HAS_VIRTUAL_DESTRUCTOR(T) __has_virtual_destructor(T)
-
-#   define BOOST_IS_ABSTRACT(T) __is_abstract(T)
-#   define BOOST_IS_BASE_OF(T,U) (__is_base_of(T,U) && !is_void<T>::value && !is_void<U>::value)
-#   define BOOST_IS_CLASS(T) __is_class(T)
-#   define BOOST_IS_CONVERTIBLE(T,U) (__is_convertible(T,U) || is_void<U>::value)
-#   define BOOST_IS_ENUM(T) __is_enum(T)
-#   define BOOST_IS_POLYMORPHIC(T) __is_polymorphic(T)
-#   define BOOST_ALIGNMENT_OF(T) alignof(T)
-
-#   define BOOST_HAS_TYPE_TRAITS_INTRINSICS
-#endif
-
-#endif // BOOST_TT_INTRINSICS_HPP_INCLUDED
-
-
-
-
-
-
-
diff --git a/boost/type_traits/is_abstract.hpp b/boost/type_traits/is_abstract.hpp
deleted file mode 100644
index d88c143..0000000
--- a/boost/type_traits/is_abstract.hpp
+++ /dev/null
@@ -1,153 +0,0 @@
-#ifndef BOOST_TT_IS_ABSTRACT_CLASS_HPP
-#define BOOST_TT_IS_ABSTRACT_CLASS_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
-// is_abstract_class.hpp:
-//
-//  (C) Copyright 2002 Rani Sharoni (rani_sharoni at hotmail.com) and Robert Ramey
-//  Use, modification and distribution is subject to the Boost Software
-//  License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-//  
-//  See http://www.boost.org for updates, documentation, and revision history.
-//
-
-// Compile type discovery whether given type is abstract class or not.
-//
-//   Requires DR 337 to be supported by compiler
-//   (http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/cwg_active.html#337).
-//
-//
-// Believed (Jan 2004) to work on:
-//  - GCC 3.4
-//  - VC++ 7.1
-//  - compilers with new EDG frontend (Intel C++ 7, Comeau 4.3.2)
-//
-// Doesn't work on:
-//  - VC++6, VC++7.0 and less
-//  - GCC 3.3.X and less
-//  - Borland C++ 6 and less
-//      
-//
-// History:
-//  - Originally written by Rani Sharoni, see
-//    http://groups.google.com/groups?selm=df893da6.0207110613.75b2fe90%40posting.google.com
-//    At this time supported by EDG (Intel C++ 7, Comeau 4.3.2) and VC7.1.
-//  - Adapted and added into Boost.Serialization library by Robert Ramey 
-//    (starting with submission #10).
-//  - Jan 2004: GCC 3.4 fixed to support DR337 (Giovanni Bajo).
-//  - Jan 2004: modified to be part of Boost.TypeTraits (Pavel Vozenilek).
-//  - Nov 2004: Christoph Ludwig found that the implementation did not work with
-//              template types and gcc-3.4 or VC7.1, fix due to Christoph Ludwig
-//              and John Maddock.
-//  - Dec 2004: Added new config macro BOOST_NO_IS_ABSTRACT which causes the template
-//              to degrade gracefully, rather than trash the compiler (John Maddock).
-//
-
-#include <boost/type_traits/intrinsics.hpp>
-#ifndef BOOST_IS_ABSTRACT
-#include <boost/static_assert.hpp>
-#include <boost/type_traits/detail/yes_no_type.hpp>
-#include <boost/type_traits/is_class.hpp>
-#include <boost/type_traits/detail/ice_and.hpp>
-#ifdef BOOST_NO_IS_ABSTRACT
-#include <boost/type_traits/is_polymorphic.hpp>
-#endif
-#endif
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-
-namespace boost {
-namespace detail{
-
-#ifdef BOOST_IS_ABSTRACT
-template <class T>
-struct is_abstract_imp
-{
-   BOOST_STATIC_CONSTANT(bool, value = BOOST_IS_ABSTRACT(T));
-};
-#elif !defined(BOOST_NO_IS_ABSTRACT)
-template<class T>
-struct is_abstract_imp2
-{
-   // Deduction fails if T is void, function type, 
-   // reference type (14.8.2/2)or an abstract class type 
-   // according to review status issue #337
-   //
-   template<class U>
-   static type_traits::no_type check_sig(U (*)[1]);
-   template<class U>
-   static type_traits::yes_type check_sig(...);
-   //
-   // T must be a complete type, further if T is a template then
-   // it must be instantiated in order for us to get the right answer:
-   //
-   BOOST_STATIC_ASSERT(sizeof(T) != 0);
-
-   // GCC2 won't even parse this template if we embed the computation
-   // of s1 in the computation of value.
-#ifdef __GNUC__
-   BOOST_STATIC_CONSTANT(std::size_t, s1 = sizeof(is_abstract_imp2<T>::template check_sig<T>(0)));
-#else
-#if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000)
-#pragma warning(push)
-#pragma warning(disable:6334)
-#endif
-   BOOST_STATIC_CONSTANT(std::size_t, s1 = sizeof(check_sig<T>(0)));
-#if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000)
-#pragma warning(pop)
-#endif
-#endif
-    
-   BOOST_STATIC_CONSTANT(bool, value = 
-      (s1 == sizeof(type_traits::yes_type)));
-};
-
-template <bool v>
-struct is_abstract_select
-{
-   template <class T>
-   struct rebind
-   {
-      typedef is_abstract_imp2<T> type;
-   };
-};
-template <>
-struct is_abstract_select<false>
-{
-   template <class T>
-   struct rebind
-   {
-      typedef false_type type;
-   };
-};
-
-template <class T>
-struct is_abstract_imp
-{
-   typedef is_abstract_select< ::boost::is_class<T>::value> selector;
-   typedef typename selector::template rebind<T> binder;
-   typedef typename binder::type type;
-
-   BOOST_STATIC_CONSTANT(bool, value = type::value);
-};
-
-#endif
-}
-
-#ifndef BOOST_NO_IS_ABSTRACT
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_abstract,T,::boost::detail::is_abstract_imp<T>::value)
-#else
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_abstract,T,::boost::detail::is_polymorphic_imp<T>::value)
-#endif
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif //BOOST_TT_IS_ABSTRACT_CLASS_HPP
diff --git a/boost/type_traits/is_arithmetic.hpp b/boost/type_traits/is_arithmetic.hpp
deleted file mode 100644
index a1d8c46..0000000
--- a/boost/type_traits/is_arithmetic.hpp
+++ /dev/null
@@ -1,51 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_IS_ARITHMETIC_HPP_INCLUDED
-#define BOOST_TT_IS_ARITHMETIC_HPP_INCLUDED
-
-#if !defined( __CODEGEARC__ )
-#include <boost/type_traits/is_integral.hpp>
-#include <boost/type_traits/is_float.hpp>
-#include <boost/type_traits/detail/ice_or.hpp>
-#include <boost/config.hpp>
-#endif
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-#if !defined(__CODEGEARC__)
-namespace detail {
-
-template< typename T >
-struct is_arithmetic_impl
-{ 
-    BOOST_STATIC_CONSTANT(bool, value = 
-        (::boost::type_traits::ice_or< 
-            ::boost::is_integral<T>::value,
-            ::boost::is_float<T>::value
-        >::value)); 
-};
-
-} // namespace detail
-#endif
-
-//* is a type T an arithmetic type described in the standard (3.9.1p8)
-#if defined(__CODEGEARC__)
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_arithmetic,T,__is_arithmetic(T))
-#else
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_arithmetic,T,::boost::detail::is_arithmetic_impl<T>::value)
-#endif
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_ARITHMETIC_HPP_INCLUDED
diff --git a/boost/type_traits/is_array.hpp b/boost/type_traits/is_array.hpp
deleted file mode 100644
index 91c0f15..0000000
--- a/boost/type_traits/is_array.hpp
+++ /dev/null
@@ -1,91 +0,0 @@
-
-//  (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-//  Hinnant & John Maddock 2000.  
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-
-// Some fixes for is_array are based on a newsgroup posting by Jonathan Lundquist.
-
-
-#ifndef BOOST_TT_IS_ARRAY_HPP_INCLUDED
-#define BOOST_TT_IS_ARRAY_HPP_INCLUDED
-
-#include <boost/type_traits/config.hpp>
-
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#   include <boost/type_traits/detail/yes_no_type.hpp>
-#   include <boost/type_traits/detail/wrap.hpp>
-#endif
-
-#include <cstddef>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-#if defined( __CODEGEARC__ )
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_array,T,__is_array(T))
-#elif !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_array,T,false)
-#if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,is_array,T[N],true)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,is_array,T const[N],true)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,is_array,T volatile[N],true)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,is_array,T const volatile[N],true)
-#if !BOOST_WORKAROUND(__BORLANDC__, < 0x600) && !defined(__IBMCPP__) &&  !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_array,T[],true)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_array,T const[],true)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_array,T volatile[],true)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_array,T const volatile[],true)
-#endif
-#endif
-
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-namespace detail {
-
-using ::boost::type_traits::yes_type;
-using ::boost::type_traits::no_type;
-using ::boost::type_traits::wrap;
-
-template< typename T > T(* is_array_tester1(wrap<T>) )(wrap<T>);
-char BOOST_TT_DECL is_array_tester1(...);
-
-template< typename T> no_type is_array_tester2(T(*)(wrap<T>));
-yes_type BOOST_TT_DECL is_array_tester2(...);
-
-template< typename T >
-struct is_array_impl
-{ 
-    BOOST_STATIC_CONSTANT(bool, value = 
-        sizeof(::boost::detail::is_array_tester2(
-            ::boost::detail::is_array_tester1(
-                ::boost::type_traits::wrap<T>()
-                )
-        )) == 1
-    );
-};
-
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_array,void,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_array,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_array,void volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_array,void const volatile,false)
-#endif
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_array,T,::boost::detail::is_array_impl<T>::value)
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_ARRAY_HPP_INCLUDED
diff --git a/boost/type_traits/is_base_and_derived.hpp b/boost/type_traits/is_base_and_derived.hpp
deleted file mode 100644
index d6a9991..0000000
--- a/boost/type_traits/is_base_and_derived.hpp
+++ /dev/null
@@ -1,254 +0,0 @@
-
-//  (C) Copyright Rani Sharoni 2003.
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
- 
-#ifndef BOOST_TT_IS_BASE_AND_DERIVED_HPP_INCLUDED
-#define BOOST_TT_IS_BASE_AND_DERIVED_HPP_INCLUDED
-
-#include <boost/type_traits/intrinsics.hpp>
-#ifndef BOOST_IS_BASE_OF
-#include <boost/type_traits/is_class.hpp>
-#include <boost/type_traits/is_same.hpp>
-#include <boost/type_traits/is_convertible.hpp>
-#include <boost/type_traits/detail/ice_and.hpp>
-#include <boost/config.hpp>
-#include <boost/static_assert.hpp>
-#endif
-#include <boost/type_traits/remove_cv.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-namespace detail {
-
-#ifndef BOOST_IS_BASE_OF
-#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x581)) \
- && !BOOST_WORKAROUND(__SUNPRO_CC , <= 0x540) \
- && !BOOST_WORKAROUND(__EDG_VERSION__, <= 243) \
- && !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
-
-                             // The EDG version number is a lower estimate.
-                             // It is not currently known which EDG version
-                             // exactly fixes the problem.
-
-/*************************************************************************
-
-This version detects ambiguous base classes and private base classes
-correctly, and was devised by Rani Sharoni.
-
-Explanation by Terje Slettebo and Rani Sharoni.
-
-Let's take the multiple base class below as an example, and the following
-will also show why there's not a problem with private or ambiguous base
-class:
-
-struct B {};
-struct B1 : B {};
-struct B2 : B {};
-struct D : private B1, private B2 {};
-
-is_base_and_derived<B, D>::value;
-
-First, some terminology:
-
-SC  - Standard conversion
-UDC - User-defined conversion
-
-A user-defined conversion sequence consists of an SC, followed by an UDC,
-followed by another SC. Either SC may be the identity conversion.
-
-When passing the default-constructed Host object to the overloaded check_sig()
-functions (initialization 8.5/14/4/3), we have several viable implicit
-conversion sequences:
-
-For "static no_type check_sig(B const volatile *, int)" we have the conversion
-sequences:
-
-C -> C const (SC - Qualification Adjustment) -> B const volatile* (UDC)
-C -> D const volatile* (UDC) -> B1 const volatile* / B2 const volatile* ->
-     B const volatile* (SC - Conversion)
-
-For "static yes_type check_sig(D const volatile *, T)" we have the conversion
-sequence:
-
-C -> D const volatile* (UDC)
-
-According to 13.3.3.1/4, in context of user-defined conversion only the
-standard conversion sequence is considered when selecting the best viable
-function, so it only considers up to the user-defined conversion. For the
-first function this means choosing between C -> C const and C -> C, and it
-chooses the latter, because it's a proper subset (13.3.3.2/3/2) of the
-former. Therefore, we have:
-
-C -> D const volatile* (UDC) -> B1 const volatile* / B2 const volatile* ->
-     B const volatile* (SC - Conversion)
-C -> D const volatile* (UDC)
-
-Here, the principle of the "shortest subsequence" applies again, and it
-chooses C -> D const volatile*. This shows that it doesn't even need to
-consider the multiple paths to B, or accessibility, as that possibility is
-eliminated before it could possibly cause ambiguity or access violation.
-
-If D is not derived from B, it has to choose between C -> C const -> B const
-volatile* for the first function, and C -> D const volatile* for the second
-function, which are just as good (both requires a UDC, 13.3.3.2), had it not
-been for the fact that "static no_type check_sig(B const volatile *, int)" is
-not templated, which makes C -> C const -> B const volatile* the best choice
-(13.3.3/1/4), resulting in "no".
-
-Also, if Host::operator B const volatile* hadn't been const, the two
-conversion sequences for "static no_type check_sig(B const volatile *, int)", in
-the case where D is derived from B, would have been ambiguous.
-
-See also
-http://groups.google.com/groups?selm=df893da6.0301280859.522081f7%40posting.
-google.com and links therein.
-
-*************************************************************************/
-
-template <typename B, typename D>
-struct bd_helper
-{
-   //
-   // This VC7.1 specific workaround stops the compiler from generating
-   // an internal compiler error when compiling with /vmg (thanks to
-   // Aleksey Gurtovoy for figuring out the workaround).
-   //
-#if !BOOST_WORKAROUND(BOOST_MSVC, == 1310)
-    template <typename T>
-    static type_traits::yes_type check_sig(D const volatile *, T);
-    static type_traits::no_type  check_sig(B const volatile *, int);
-#else
-    static type_traits::yes_type check_sig(D const volatile *, long);
-    static type_traits::no_type  check_sig(B const volatile * const&, int);
-#endif
-};
-
-template<typename B, typename D>
-struct is_base_and_derived_impl2
-{
-#if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000)
-#pragma warning(push)
-#pragma warning(disable:6334)
-#endif
-    //
-    // May silently do the wrong thing with incomplete types
-    // unless we trap them here:
-    //
-    BOOST_STATIC_ASSERT(sizeof(B) != 0);
-    BOOST_STATIC_ASSERT(sizeof(D) != 0);
-
-    struct Host
-    {
-#if !BOOST_WORKAROUND(BOOST_MSVC, == 1310)
-        operator B const volatile *() const;
-#else
-        operator B const volatile * const&() const;
-#endif
-        operator D const volatile *();
-    };
-
-    BOOST_STATIC_CONSTANT(bool, value =
-        sizeof(bd_helper<B,D>::check_sig(Host(), 0)) == sizeof(type_traits::yes_type));
-#if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000)
-#pragma warning(pop)
-#endif
-};
-
-#else
-
-//
-// broken version:
-//
-template<typename B, typename D>
-struct is_base_and_derived_impl2
-{
-    BOOST_STATIC_CONSTANT(bool, value =
-        (::boost::is_convertible<D*,B*>::value));
-};
-
-#define BOOST_BROKEN_IS_BASE_AND_DERIVED
-
-#endif
-
-template <typename B, typename D>
-struct is_base_and_derived_impl3
-{
-    BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template <bool ic1, bool ic2, bool iss>
-struct is_base_and_derived_select
-{
-   template <class T, class U>
-   struct rebind
-   {
-      typedef is_base_and_derived_impl3<T,U> type;
-   };
-};
-
-template <>
-struct is_base_and_derived_select<true,true,false>
-{
-   template <class T, class U>
-   struct rebind
-   {
-      typedef is_base_and_derived_impl2<T,U> type;
-   };
-};
-
-template <typename B, typename D>
-struct is_base_and_derived_impl
-{
-    typedef typename remove_cv<B>::type ncvB;
-    typedef typename remove_cv<D>::type ncvD;
-
-    typedef is_base_and_derived_select<
-       ::boost::is_class<B>::value,
-       ::boost::is_class<D>::value,
-       ::boost::is_same<ncvB,ncvD>::value> selector;
-    typedef typename selector::template rebind<ncvB,ncvD> binder;
-    typedef typename binder::type bound_type;
-
-    BOOST_STATIC_CONSTANT(bool, value = bound_type::value);
-};
-#else
-template <typename B, typename D>
-struct is_base_and_derived_impl
-{
-    typedef typename remove_cv<B>::type ncvB;
-    typedef typename remove_cv<D>::type ncvD;
-
-    BOOST_STATIC_CONSTANT(bool, value = (BOOST_IS_BASE_OF(B,D) && ! ::boost::is_same<ncvB,ncvD>::value));
-};
-#endif
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF2(
-      is_base_and_derived
-    , Base
-    , Derived
-    , (::boost::detail::is_base_and_derived_impl<Base,Derived>::value)
-    )
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2(typename Base,typename Derived,is_base_and_derived,Base&,Derived,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2(typename Base,typename Derived,is_base_and_derived,Base,Derived&,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2(typename Base,typename Derived,is_base_and_derived,Base&,Derived&,false)
-#endif
-
-#if BOOST_WORKAROUND(__CODEGEARC__, BOOST_TESTED_AT(0x610))
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_1(typename Base,is_base_and_derived,Base,Base,false)
-#endif
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_BASE_AND_DERIVED_HPP_INCLUDED
diff --git a/boost/type_traits/is_base_of.hpp b/boost/type_traits/is_base_of.hpp
deleted file mode 100644
index 0cc7a32..0000000
--- a/boost/type_traits/is_base_of.hpp
+++ /dev/null
@@ -1,51 +0,0 @@
-
-//  (C) Copyright Rani Sharoni 2003-2005.
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
- 
-#ifndef BOOST_TT_IS_BASE_OF_HPP_INCLUDED
-#define BOOST_TT_IS_BASE_OF_HPP_INCLUDED
-
-#include <boost/type_traits/is_base_and_derived.hpp>
-#include <boost/type_traits/is_same.hpp>
-#include <boost/type_traits/is_class.hpp>
-#include <boost/type_traits/detail/ice_or.hpp>
-#include <boost/type_traits/detail/ice_and.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-   namespace detail{
-      template <class B, class D>
-      struct is_base_of_imp
-      {
-          typedef typename remove_cv<B>::type ncvB;
-          typedef typename remove_cv<D>::type ncvD;
-          BOOST_STATIC_CONSTANT(bool, value = (::boost::type_traits::ice_or<      
-            (::boost::detail::is_base_and_derived_impl<ncvB,ncvD>::value),
-            (::boost::type_traits::ice_and< ::boost::is_same<ncvB,ncvD>::value, ::boost::is_class<ncvB>::value>::value)>::value));
-      };
-   }
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF2(
-      is_base_of
-    , Base
-    , Derived
-    , (::boost::detail::is_base_of_imp<Base, Derived>::value))
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2(typename Base,typename Derived,is_base_of,Base&,Derived,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2(typename Base,typename Derived,is_base_of,Base,Derived&,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2(typename Base,typename Derived,is_base_of,Base&,Derived&,false)
-#endif
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_BASE_AND_DERIVED_HPP_INCLUDED
diff --git a/boost/type_traits/is_class.hpp b/boost/type_traits/is_class.hpp
deleted file mode 100644
index 1a2cd20..0000000
--- a/boost/type_traits/is_class.hpp
+++ /dev/null
@@ -1,140 +0,0 @@
-//  (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-//  Hinnant & John Maddock 2000-2003.
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-
-#ifndef BOOST_TT_IS_CLASS_HPP_INCLUDED
-#define BOOST_TT_IS_CLASS_HPP_INCLUDED
-
-#include <boost/type_traits/config.hpp>
-#include <boost/type_traits/intrinsics.hpp>
-#ifndef BOOST_IS_CLASS
-#   include <boost/type_traits/is_union.hpp>
-#   include <boost/type_traits/detail/ice_and.hpp>
-#   include <boost/type_traits/detail/ice_not.hpp>
-
-#ifdef BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION
-#   include <boost/type_traits/detail/yes_no_type.hpp>
-#else
-#   include <boost/type_traits/is_scalar.hpp>
-#   include <boost/type_traits/is_array.hpp>
-#   include <boost/type_traits/is_reference.hpp>
-#   include <boost/type_traits/is_void.hpp>
-#   include <boost/type_traits/is_function.hpp>
-#endif
-
-#endif // BOOST_IS_CLASS
-
-#ifdef __EDG_VERSION__
-#   include <boost/type_traits/remove_cv.hpp>
-#endif
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-namespace detail {
-
-#ifndef BOOST_IS_CLASS
-#ifdef BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION
-
-// This is actually the conforming implementation which works with
-// abstract classes.  However, enough compilers have trouble with
-// it that most will use the one in
-// boost/type_traits/object_traits.hpp. This implementation
-// actually works with VC7.0, but other interactions seem to fail
-// when we use it.
-
-// is_class<> metafunction due to Paul Mensonides
-// (leavings at attbi.com). For more details:
-// http://groups.google.com/groups?hl=en&selm=000001c1cc83%24e154d5e0%247772e50c%40c161550a&rnum=1
-#if defined(__GNUC__)  && !defined(__EDG_VERSION__)
-
-template <class U> ::boost::type_traits::yes_type is_class_tester(void(U::*)(void));
-template <class U> ::boost::type_traits::no_type is_class_tester(...);
-
-template <typename T>
-struct is_class_impl
-{
-
-    BOOST_STATIC_CONSTANT(bool, value =
-        (::boost::type_traits::ice_and<
-            sizeof(is_class_tester<T>(0)) == sizeof(::boost::type_traits::yes_type),
-            ::boost::type_traits::ice_not< ::boost::is_union<T>::value >::value
-        >::value)
-        );
-};
-
-#else
-
-template <typename T>
-struct is_class_impl
-{
-    template <class U> static ::boost::type_traits::yes_type is_class_tester(void(U::*)(void));
-    template <class U> static ::boost::type_traits::no_type is_class_tester(...);
-
-    BOOST_STATIC_CONSTANT(bool, value =
-        (::boost::type_traits::ice_and<
-            sizeof(is_class_tester<T>(0)) == sizeof(::boost::type_traits::yes_type),
-            ::boost::type_traits::ice_not< ::boost::is_union<T>::value >::value
-        >::value)
-        );
-};
-
-#endif
-
-#else
-
-template <typename T>
-struct is_class_impl
-{
-#   ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-    BOOST_STATIC_CONSTANT(bool, value =
-    (::boost::type_traits::ice_and<
-        ::boost::type_traits::ice_not< ::boost::is_union<T>::value >::value,
-        ::boost::type_traits::ice_not< ::boost::is_scalar<T>::value >::value,
-        ::boost::type_traits::ice_not< ::boost::is_array<T>::value >::value,
-        ::boost::type_traits::ice_not< ::boost::is_reference<T>::value>::value,
-        ::boost::type_traits::ice_not< ::boost::is_void<T>::value >::value,
-        ::boost::type_traits::ice_not< ::boost::is_function<T>::value >::value
-        >::value));
-#   else
-    BOOST_STATIC_CONSTANT(bool, value =
-    (::boost::type_traits::ice_and<
-        ::boost::type_traits::ice_not< ::boost::is_union<T>::value >::value,
-        ::boost::type_traits::ice_not< ::boost::is_scalar<T>::value >::value,
-        ::boost::type_traits::ice_not< ::boost::is_array<T>::value >::value,
-        ::boost::type_traits::ice_not< ::boost::is_reference<T>::value>::value,
-        ::boost::type_traits::ice_not< ::boost::is_void<T>::value >::value
-        >::value));
-#   endif
-};
-
-# endif // BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION
-# else // BOOST_IS_CLASS
-template <typename T>
-struct is_class_impl
-{
-    BOOST_STATIC_CONSTANT(bool, value = BOOST_IS_CLASS(T));
-};
-# endif // BOOST_IS_CLASS
-
-} // namespace detail
-
-# ifdef __EDG_VERSION__
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(
-   is_class,T, boost::detail::is_class_impl<typename boost::remove_cv<T>::type>::value)
-# else 
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_class,T,::boost::detail::is_class_impl<T>::value)
-# endif
-    
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_CLASS_HPP_INCLUDED
diff --git a/boost/type_traits/is_complex.hpp b/boost/type_traits/is_complex.hpp
deleted file mode 100644
index 0813dac..0000000
--- a/boost/type_traits/is_complex.hpp
+++ /dev/null
@@ -1,34 +0,0 @@
-//  (C) Copyright John Maddock 2007. 
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_IS_COMPLEX_HPP
-#define BOOST_TT_IS_COMPLEX_HPP
-
-#include <boost/type_traits/is_convertible.hpp>
-#include <complex>
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-
-namespace boost {
-namespace detail{
-
-struct is_convertible_from_tester
-{
-   template <class T>
-   is_convertible_from_tester(const std::complex<T>&);
-};
-
-}
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_complex,T,(::boost::is_convertible<T, boost::detail::is_convertible_from_tester>::value))
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif //BOOST_TT_IS_COMPLEX_HPP
diff --git a/boost/type_traits/is_compound.hpp b/boost/type_traits/is_compound.hpp
deleted file mode 100644
index bbaaa42..0000000
--- a/boost/type_traits/is_compound.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_IS_COMPOUND_HPP_INCLUDED
-#define BOOST_TT_IS_COMPOUND_HPP_INCLUDED
-
-#include <boost/config.hpp>
-#include <boost/type_traits/is_fundamental.hpp>
-#include <boost/type_traits/detail/ice_not.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-#if !defined( __CODEGEARC__ )
-namespace detail {
-
-template <typename T>
-struct is_compound_impl
-{
-   BOOST_STATIC_CONSTANT(bool, value =
-      (::boost::type_traits::ice_not<
-         ::boost::is_fundamental<T>::value
-       >::value));
-};
-
-} // namespace detail
-#endif // !defined( __CODEGEARC__ )
-
-#if defined( __CODEGEARC__ )
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_compound,T,__is_compound(T))
-#else
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_compound,T,::boost::detail::is_compound_impl<T>::value)
-#endif
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_COMPOUND_HPP_INCLUDED
diff --git a/boost/type_traits/is_const.hpp b/boost/type_traits/is_const.hpp
deleted file mode 100644
index 0c7da4a..0000000
--- a/boost/type_traits/is_const.hpp
+++ /dev/null
@@ -1,165 +0,0 @@
-
-//  (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, 
-//      Howard Hinnant and John Maddock 2000. 
-//  (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 2001
-
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-//    Fixed is_pointer, is_reference, is_const, is_volatile, is_same, 
-//    is_member_pointer based on the Simulated Partial Specialization work 
-//    of Mat Marcus and Jesse Jones. See  http://opensource.adobe.com or 
-//    http://groups.yahoo.com/group/boost/message/5441 
-//    Some workarounds in here use ideas suggested from "Generic<Programming>: 
-//    Mappings between Types and Values" 
-//    by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html).
-
-
-#ifndef BOOST_TT_IS_CONST_HPP_INCLUDED
-#define BOOST_TT_IS_CONST_HPP_INCLUDED
-
-#include <boost/config.hpp>
-#include <boost/detail/workaround.hpp>
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#   include <boost/type_traits/detail/cv_traits_impl.hpp>
-#   ifdef __GNUC__
-#       include <boost/type_traits/is_reference.hpp>
-#   endif
-#   if BOOST_WORKAROUND(BOOST_MSVC, < 1400)
-#       include <boost/type_traits/remove_bounds.hpp>
-#   endif
-#else
-#   include <boost/type_traits/is_reference.hpp>
-#   include <boost/type_traits/is_array.hpp>
-#   include <boost/type_traits/detail/yes_no_type.hpp>
-#   include <boost/type_traits/detail/false_result.hpp>
-#endif
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-#if defined( __CODEGEARC__ )
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_const,T,__is_const(T))
-
-#elif !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-namespace detail{
-//
-// We can't filter out rvalue_references at the same level as
-// references or we get ambiguities from msvc:
-//
-template <class T>
-struct is_const_rvalue_filter
-{
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1400)
-   BOOST_STATIC_CONSTANT(bool, value = ::boost::detail::cv_traits_imp<typename boost::remove_bounds<T>::type*>::is_const);
-#else
-   BOOST_STATIC_CONSTANT(bool, value = ::boost::detail::cv_traits_imp<T*>::is_const);
-#endif
-};
-#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
-template <class T>
-struct is_const_rvalue_filter<T&&>
-{
-   BOOST_STATIC_CONSTANT(bool, value = false);
-};
-#endif
-}
-
-//* is a type T  declared const - is_const<T>
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_const,T,::boost::detail::is_const_rvalue_filter<T>::value)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_const,T&,false)
-
-#if  defined(BOOST_ILLEGAL_CV_REFERENCES)
-// these are illegal specialisations; cv-qualifies applied to
-// references have no effect according to [8.3.2p1],
-// C++ Builder requires them though as it treats cv-qualified
-// references as distinct types...
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_const,T& const,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_const,T& volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_const,T& const volatile,false)
-#endif
-
-#if defined(__GNUC__) && (__GNUC__ < 3)
-// special case for gcc where illegally cv-qualified reference types can be
-// generated in some corner cases:
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_const,T const,!(::boost::is_reference<T>::value))
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_const,T volatile const,!(::boost::is_reference<T>::value))
-#endif
-
-#else
-
-namespace detail {
-
-using ::boost::type_traits::yes_type;
-using ::boost::type_traits::no_type;
-
-yes_type is_const_tester(const volatile void*);
-no_type is_const_tester(volatile void *);
-
-template <bool is_ref, bool array>
-struct is_const_helper
-    : public ::boost::type_traits::false_result
-{
-};
-
-template <>
-struct is_const_helper<false,false>
-{
-    template <typename T> struct result_
-    {
-        static T* t;
-        BOOST_STATIC_CONSTANT(bool, value = (
-            sizeof(boost::detail::yes_type) == sizeof(boost::detail::is_const_tester(t))
-            ));
-    };
-};
-
-template <>
-struct is_const_helper<false,true>
-{
-    template <typename T> struct result_
-    {
-        static T t;
-        BOOST_STATIC_CONSTANT(bool, value = (
-            sizeof(boost::detail::yes_type) == sizeof(boost::detail::is_const_tester(&t))
-            ));
-    };
-};
-
-template <typename T>
-struct is_const_impl
-    : public is_const_helper<
-          is_reference<T>::value
-        , is_array<T>::value
-        >::template result_<T>
-{
-};
-
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_const,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_const,void const,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_const,void volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_const,void const volatile,true)
-#endif
-
-} // namespace detail
-
-//* is a type T  declared const - is_const<T>
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_const,T,::boost::detail::is_const_impl<T>::value)
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_CONST_HPP_INCLUDED
-
diff --git a/boost/type_traits/is_convertible.hpp b/boost/type_traits/is_convertible.hpp
deleted file mode 100644
index 3eccadc..0000000
--- a/boost/type_traits/is_convertible.hpp
+++ /dev/null
@@ -1,492 +0,0 @@
-
-// Copyright 2000 John Maddock (john at johnmaddock.co.uk)
-// Copyright 2000 Jeremy Siek (jsiek at lsc.nd.edu)
-// Copyright 1999, 2000 Jaakko Jarvi (jaakko.jarvi at cs.utu.fi)
-//
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_IS_CONVERTIBLE_HPP_INCLUDED
-#define BOOST_TT_IS_CONVERTIBLE_HPP_INCLUDED
-
-#include <boost/type_traits/intrinsics.hpp>
-#ifndef BOOST_IS_CONVERTIBLE
-#include <boost/type_traits/detail/yes_no_type.hpp>
-#include <boost/type_traits/config.hpp>
-#include <boost/type_traits/is_array.hpp>
-#include <boost/type_traits/ice.hpp>
-#include <boost/type_traits/is_arithmetic.hpp>
-#include <boost/type_traits/is_void.hpp>
-#ifndef BOOST_NO_IS_ABSTRACT
-#include <boost/type_traits/is_abstract.hpp>
-#endif
-#include <boost/type_traits/add_lvalue_reference.hpp>
-#include <boost/type_traits/add_rvalue_reference.hpp>
-#include <boost/type_traits/is_function.hpp>
-
-#if defined(__MWERKS__)
-#include <boost/type_traits/remove_reference.hpp>
-#endif
-
-#endif // BOOST_IS_CONVERTIBLE
-
-// should be always the last #include directive
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-#ifndef BOOST_IS_CONVERTIBLE
-
-// is one type convertible to another?
-//
-// there are multiple versions of the is_convertible
-// template, almost every compiler seems to require its
-// own version.
-//
-// Thanks to Andrei Alexandrescu for the original version of the
-// conversion detection technique!
-//
-
-namespace detail {
-
-// MS specific version:
-
-#if defined(BOOST_MSVC) && (BOOST_MSVC <= 1300)
-
-// This workaround is necessary to handle when From is void
-// which is normally taken care of by the partial specialization
-// of the is_convertible typename.
-using ::boost::type_traits::yes_type;
-using ::boost::type_traits::no_type;
-
-template< typename From >
-struct does_conversion_exist
-{
-    template< typename To > struct result_
-    {
-        static no_type BOOST_TT_DECL _m_check(...);
-        static yes_type BOOST_TT_DECL _m_check(To);
-        static typename add_lvalue_reference<From>::type  _m_from;
-        enum { value = sizeof( _m_check(_m_from) ) == sizeof(yes_type) };
-    };
-};
-
-template<>
-struct does_conversion_exist<void>
-{
-    template< typename To > struct result_
-    {
-        enum { value = ::boost::is_void<To>::value };
-    };
-};
-
-template <typename From, typename To>
-struct is_convertible_basic_impl
-    : public does_conversion_exist<From>::template result_<To>
-{
-};
-
-#elif defined(__BORLANDC__) && (__BORLANDC__ < 0x560)
-//
-// special version for Borland compilers
-// this version breaks when used for some
-// UDT conversions:
-//
-template <typename From, typename To>
-struct is_convertible_impl
-{
-#pragma option push -w-8074
-    // This workaround for Borland breaks the EDG C++ frontend,
-    // so we only use it for Borland.
-    template <typename T> struct checker
-    {
-        static ::boost::type_traits::no_type BOOST_TT_DECL _m_check(...);
-        static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(T);
-    };
-
-    static typename add_lvalue_reference<From>::type  _m_from;
-    static bool const value = sizeof( checker<To>::_m_check(_m_from) )
-        == sizeof(::boost::type_traits::yes_type);
-#pragma option pop
-};
-
-#elif defined(__GNUC__) || defined(__BORLANDC__) && (__BORLANDC__ < 0x600)
-// special version for gcc compiler + recent Borland versions
-// note that this does not pass UDT's through (...)
-
-struct any_conversion
-{
-    template <typename T> any_conversion(const volatile T&);
-    template <typename T> any_conversion(const T&);
-    template <typename T> any_conversion(volatile T&);
-    template <typename T> any_conversion(T&);
-};
-
-template <typename T> struct checker
-{
-    static boost::type_traits::no_type _m_check(any_conversion ...);
-    static boost::type_traits::yes_type _m_check(T, int);
-};
-
-template <typename From, typename To>
-struct is_convertible_basic_impl
-{
-    typedef typename add_lvalue_reference<From>::type lvalue_type;
-    typedef typename add_rvalue_reference<From>::type rvalue_type;
-    static lvalue_type _m_from;
-#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 6)))
-    static bool const value =
-        sizeof( boost::detail::checker<To>::_m_check(static_cast<rvalue_type>(_m_from), 0) )
-        == sizeof(::boost::type_traits::yes_type);
-#else
-    static bool const value =
-        sizeof( boost::detail::checker<To>::_m_check(_m_from, 0) )
-        == sizeof(::boost::type_traits::yes_type);
-#endif
-};
-
-#elif (defined(__EDG_VERSION__) && (__EDG_VERSION__ >= 245) && !defined(__ICL)) \
-      || defined(__IBMCPP__) || defined(__HP_aCC)
-//
-// This is *almost* an ideal world implementation as it doesn't rely
-// on undefined behaviour by passing UDT's through (...).
-// Unfortunately it doesn't quite pass all the tests for most compilers (sigh...)
-// Enable this for your compiler if is_convertible_test.cpp will compile it...
-//
-// Note we do not enable this for VC7.1, because even though it passes all the
-// type_traits tests it is known to cause problems when instantiation occurs
-// deep within the instantiation tree :-(
-//
-struct any_conversion
-{
-    template <typename T> any_conversion(const volatile T&);
-    template <typename T> any_conversion(const T&);
-    template <typename T> any_conversion(volatile T&);
-    // we need this constructor to catch references to functions
-    // (which can not be cv-qualified):
-    template <typename T> any_conversion(T&);
-};
-
-template <typename From, typename To>
-struct is_convertible_basic_impl
-{
-    static ::boost::type_traits::no_type BOOST_TT_DECL _m_check(any_conversion ...);
-    static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(To, int);
-    typedef typename add_lvalue_reference<From>::type lvalue_type;
-    typedef typename add_rvalue_reference<From>::type rvalue_type; 
-    static lvalue_type _m_from;
-
-#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
-    BOOST_STATIC_CONSTANT(bool, value =
-        sizeof( _m_check(static_cast<rvalue_type>(_m_from), 0) ) == sizeof(::boost::type_traits::yes_type)
-        );
-#else
-    BOOST_STATIC_CONSTANT(bool, value =
-        sizeof( _m_check(_m_from, 0) ) == sizeof(::boost::type_traits::yes_type)
-        );
-#endif
-};
-
-#elif defined(__DMC__)
-
-struct any_conversion
-{
-    template <typename T> any_conversion(const volatile T&);
-    template <typename T> any_conversion(const T&);
-    template <typename T> any_conversion(volatile T&);
-    // we need this constructor to catch references to functions
-    // (which can not be cv-qualified):
-    template <typename T> any_conversion(T&);
-};
-
-template <typename From, typename To>
-struct is_convertible_basic_impl
-{
-    // Using '...' doesn't always work on Digital Mars. This version seems to.
-    template <class T>
-    static ::boost::type_traits::no_type BOOST_TT_DECL _m_check(any_conversion,  float, T);
-    static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(To, int, int);
-    typedef typename add_lvalue_reference<From>::type lvalue_type;
-    typedef typename add_rvalue_reference<From>::type rvalue_type;
-    static lvalue_type _m_from;
-
-    // Static constants sometime cause the conversion of _m_from to To to be
-    // called. This doesn't happen with an enum.
-#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
-    enum { value =
-        sizeof( _m_check(static_cast<rvalue_type>(_m_from), 0, 0) ) == sizeof(::boost::type_traits::yes_type)
-        };
-#else
-    enum { value =
-        sizeof( _m_check(_m_from, 0, 0) ) == sizeof(::boost::type_traits::yes_type)
-        };
-#endif
-};
-
-#elif defined(__MWERKS__)
-// 
-// CW works with the technique implemented above for EDG, except when From
-// is a function type (or a reference to such a type), in which case
-// any_conversion won't be accepted as a valid conversion. We detect this
-// exceptional situation and channel it through an alternative algorithm.
-//
-
-template <typename From, typename To,bool FromIsFunctionRef>
-struct is_convertible_basic_impl_aux;
-
-struct any_conversion
-{
-    template <typename T> any_conversion(const volatile T&);
-    template <typename T> any_conversion(const T&);
-    template <typename T> any_conversion(volatile T&);
-    template <typename T> any_conversion(T&);
-};
-
-template <typename From, typename To>
-struct is_convertible_basic_impl_aux<From,To,false /*FromIsFunctionRef*/>
-{
-    static ::boost::type_traits::no_type BOOST_TT_DECL _m_check(any_conversion ...);
-    static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(To, int);
-    typedef typename add_lvalue_reference<From>::type lvalue_type;
-    typedef typename add_rvalue_reference<From>::type rvalue_type; 
-    static lvalue_type _m_from;
-
-#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
-    BOOST_STATIC_CONSTANT(bool, value =
-        sizeof( _m_check(static_cast<rvalue_type>(_m_from), 0) ) == sizeof(::boost::type_traits::yes_type)
-        );
-#else
-    BOOST_STATIC_CONSTANT(bool, value =
-        sizeof( _m_check(_m_from, 0) ) == sizeof(::boost::type_traits::yes_type)
-        );
-#endif
-};
-
-template <typename From, typename To>
-struct is_convertible_basic_impl_aux<From,To,true /*FromIsFunctionRef*/>
-{
-    static ::boost::type_traits::no_type BOOST_TT_DECL _m_check(...);
-    static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(To);
-    typedef typename add_lvalue_reference<From>::type lvalue_type;
-    typedef typename add_rvalue_reference<From>::type rvalue_type;
-    static lvalue_type _m_from;
-#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
-    BOOST_STATIC_CONSTANT(bool, value =
-        sizeof( _m_check(static_cast<rvalue_type>(_m_from)) ) == sizeof(::boost::type_traits::yes_type)
-        );
-#else
-    BOOST_STATIC_CONSTANT(bool, value =
-        sizeof( _m_check(_m_from) ) == sizeof(::boost::type_traits::yes_type)
-        );
-#endif
-};
-
-template <typename From, typename To>
-struct is_convertible_basic_impl:
-  is_convertible_basic_impl_aux<
-    From,To,
-    ::boost::is_function<typename ::boost::remove_reference<From>::type>::value
-  >
-{};
-
-#else
-//
-// This version seems to work pretty well for a wide spectrum of compilers,
-// however it does rely on undefined behaviour by passing UDT's through (...).
-//
-template <typename From, typename To>
-struct is_convertible_basic_impl
-{
-    static ::boost::type_traits::no_type BOOST_TT_DECL _m_check(...);
-    static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(To);
-    typedef typename add_lvalue_reference<From>::type lvalue_type;
-    typedef typename add_rvalue_reference<From>::type rvalue_type; 
-    static lvalue_type _m_from;
-#ifdef BOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable:4244)
-#if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000)
-#pragma warning(disable:6334)
-#endif
-#endif
-#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
-    BOOST_STATIC_CONSTANT(bool, value =
-        sizeof( _m_check(static_cast<rvalue_type>(_m_from)) ) == sizeof(::boost::type_traits::yes_type)
-        );
-#else
-    BOOST_STATIC_CONSTANT(bool, value =
-        sizeof( _m_check(_m_from) ) == sizeof(::boost::type_traits::yes_type)
-        );
-#endif
-#ifdef BOOST_MSVC
-#pragma warning(pop)
-#endif
-};
-
-#endif // is_convertible_impl
-
-#if defined(__DMC__)
-// As before, a static constant sometimes causes errors on Digital Mars.
-template <typename From, typename To>
-struct is_convertible_impl
-{
-    enum { value =
-        (::boost::type_traits::ice_and<
-            ::boost::type_traits::ice_or<
-               ::boost::detail::is_convertible_basic_impl<From,To>::value,
-               ::boost::is_void<To>::value
-            >::value,
-            ::boost::type_traits::ice_not<
-               ::boost::is_array<To>::value
-            >::value,
-            ::boost::type_traits::ice_not<
-               ::boost::is_function<To>::value
-            >::value
-        >::value) };
-};
-#elif !defined(__BORLANDC__) || __BORLANDC__ > 0x551
-template <typename From, typename To>
-struct is_convertible_impl
-{
-    BOOST_STATIC_CONSTANT(bool, value =
-        (::boost::type_traits::ice_and<
-            ::boost::type_traits::ice_or<
-               ::boost::detail::is_convertible_basic_impl<From,To>::value,
-               ::boost::is_void<To>::value
-            >::value,
-            ::boost::type_traits::ice_not<
-               ::boost::is_array<To>::value
-            >::value,
-            ::boost::type_traits::ice_not<
-               ::boost::is_function<To>::value
-            >::value
-        >::value)
-        );
-};
-#endif
-
-template <bool trivial1, bool trivial2, bool abstract_target>
-struct is_convertible_impl_select
-{
-   template <class From, class To>
-   struct rebind
-   {
-      typedef is_convertible_impl<From, To> type;
-   };
-};
-
-template <>
-struct is_convertible_impl_select<true, true, false>
-{
-   template <class From, class To>
-   struct rebind
-   {
-      typedef true_type type;
-   };
-};
-
-template <>
-struct is_convertible_impl_select<false, false, true>
-{
-   template <class From, class To>
-   struct rebind
-   {
-      typedef false_type type;
-   };
-};
-
-template <>
-struct is_convertible_impl_select<true, false, true>
-{
-   template <class From, class To>
-   struct rebind
-   {
-      typedef false_type type;
-   };
-};
-
-template <typename From, typename To>
-struct is_convertible_impl_dispatch_base
-{
-#if !BOOST_WORKAROUND(__HP_aCC, < 60700)
-   typedef is_convertible_impl_select< 
-      ::boost::is_arithmetic<From>::value, 
-      ::boost::is_arithmetic<To>::value,
-#ifndef BOOST_NO_IS_ABSTRACT
-      ::boost::is_abstract<To>::value
-#else
-      false
-#endif
-   > selector;
-#else
-   typedef is_convertible_impl_select<false, false, false> selector;
-#endif
-   typedef typename selector::template rebind<From, To> isc_binder;
-   typedef typename isc_binder::type type;
-};
-
-template <typename From, typename To>
-struct is_convertible_impl_dispatch 
-   : public is_convertible_impl_dispatch_base<From, To>::type
-{};
-
-//
-// Now add the full and partial specialisations
-// for void types, these are common to all the
-// implementation above:
-//
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-#   define TT_AUX_BOOL_CV_VOID_TRAIT_SPEC2_PART1(trait,spec1,spec2,value) \
-    BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC2(trait,spec1,spec2,value) \
-    BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC2(trait,spec1,spec2 const,value) \
-    BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC2(trait,spec1,spec2 volatile,value) \
-    BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC2(trait,spec1,spec2 const volatile,value) \
-    /**/
-
-#   define TT_AUX_BOOL_CV_VOID_TRAIT_SPEC2(trait,spec1,spec2,value) \
-    TT_AUX_BOOL_CV_VOID_TRAIT_SPEC2_PART1(trait,spec1,spec2,value) \
-    TT_AUX_BOOL_CV_VOID_TRAIT_SPEC2_PART1(trait,spec1 const,spec2,value) \
-    TT_AUX_BOOL_CV_VOID_TRAIT_SPEC2_PART1(trait,spec1 volatile,spec2,value) \
-    TT_AUX_BOOL_CV_VOID_TRAIT_SPEC2_PART1(trait,spec1 const volatile,spec2,value) \
-    /**/
-
-    TT_AUX_BOOL_CV_VOID_TRAIT_SPEC2(is_convertible,void,void,true)
-
-#   undef TT_AUX_BOOL_CV_VOID_TRAIT_SPEC2
-#   undef TT_AUX_BOOL_CV_VOID_TRAIT_SPEC2_PART1
-
-#else
-    BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC2(is_convertible,void,void,true)
-#endif // BOOST_NO_CV_VOID_SPECIALIZATIONS
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename To,is_convertible,void,To,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename From,is_convertible,From,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename To,is_convertible,void const,To,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename To,is_convertible,void volatile,To,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename To,is_convertible,void const volatile,To,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename From,is_convertible,From,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename From,is_convertible,From,void volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename From,is_convertible,From,void const volatile,false)
-#endif
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF2(is_convertible,From,To,(::boost::detail::is_convertible_impl_dispatch<From,To>::value))
-
-#else
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF2(is_convertible,From,To,BOOST_IS_CONVERTIBLE(From,To))
-
-#endif
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_CONVERTIBLE_HPP_INCLUDED
diff --git a/boost/type_traits/is_copy_constructible.hpp b/boost/type_traits/is_copy_constructible.hpp
deleted file mode 100644
index e90ecb7..0000000
--- a/boost/type_traits/is_copy_constructible.hpp
+++ /dev/null
@@ -1,122 +0,0 @@
-//  (C) Copyright Antony Polukhin 2013.
-//
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_IS_COPY_CONSTRUCTIBLE_HPP_INCLUDED
-#define BOOST_TT_IS_COPY_CONSTRUCTIBLE_HPP_INCLUDED
-
-#include <boost/config.hpp>
-#include <boost/type_traits/detail/yes_no_type.hpp>
-#include <boost/type_traits/is_base_and_derived.hpp>
-#include <boost/type_traits/add_reference.hpp>
-#include <boost/type_traits/is_rvalue_reference.hpp>
-#include <boost/utility/declval.hpp>
-#include <boost/noncopyable.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-namespace detail{
-
-template <bool DerivedFromNoncopyable, class T>
-struct is_copy_constructible_impl2 {
-
-// Intel compiler has problems with SFINAE for copy constructors and deleted functions:
-//
-// error: function *function_name* cannot be referenced -- it is a deleted function
-// static boost::type_traits::yes_type test(T1&, decltype(T1(boost::declval<T1&>()))* = 0);
-//                                                        ^ 
-#if !defined(BOOST_NO_CXX11_DELETED_FUNCTIONS) && !defined(BOOST_INTEL_CXX_VERSION)
-
-#ifdef BOOST_NO_CXX11_DECLTYPE
-    template <class T1>
-    static boost::type_traits::yes_type test(T1&, boost::mpl::int_<sizeof(T1(boost::declval<T1&>()))>* = 0);
-#else
-    template <class T1>
-    static boost::type_traits::yes_type test(T1&, decltype(T1(boost::declval<T1&>()))* = 0);
-#endif
-
-    static boost::type_traits::no_type test(...);
-#else
-    template <class T1>
-    static boost::type_traits::no_type test(T1&, typename T1::boost_move_no_copy_constructor_or_assign* = 0);
-    static boost::type_traits::yes_type test(...);
-#endif
-
-    // If you see errors like this:
-    //
-    //      `'T::T(const T&)' is private`
-    //      `boost/type_traits/is_copy_constructible.hpp:68:5: error: within this context`
-    //
-    // then you are trying to call that macro for a structure defined like that:
-    //
-    //      struct T {
-    //          ...
-    //      private:
-    //          T(const T &);
-    //          ...
-    //      };
-    //
-    // To fix that you must modify your structure:
-    //
-    //      // C++03 and C++11 version
-    //      struct T: private boost::noncopyable {
-    //          ...
-    //      private:
-    //          T(const T &);
-    //          ...
-    //      };
-    //
-    //      // C++11 version
-    //      struct T {
-    //          ...
-    //      private:
-    //          T(const T &) = delete;
-    //          ...
-    //      };
-    BOOST_STATIC_CONSTANT(bool, value = (
-            sizeof(test(
-                boost::declval<BOOST_DEDUCED_TYPENAME boost::add_reference<T>::type>()
-            )) == sizeof(boost::type_traits::yes_type)
-        ||
-            boost::is_rvalue_reference<T>::value
-    ));
-};
-
-template <class T>
-struct is_copy_constructible_impl2<true, T> {
-    BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template <class T>
-struct is_copy_constructible_impl {
-
-    BOOST_STATIC_CONSTANT(bool, value = (
-        boost::detail::is_copy_constructible_impl2<
-            boost::is_base_and_derived<boost::noncopyable, T>::value,
-            T
-        >::value
-    ));
-};
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_copy_constructible,T,::boost::detail::is_copy_constructible_impl<T>::value)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_copy_constructible,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_copy_constructible,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_copy_constructible,void const volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_copy_constructible,void volatile,false)
-#endif
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_COPY_CONSTRUCTIBLE_HPP_INCLUDED
diff --git a/boost/type_traits/is_empty.hpp b/boost/type_traits/is_empty.hpp
deleted file mode 100644
index 8a2c5b8..0000000
--- a/boost/type_traits/is_empty.hpp
+++ /dev/null
@@ -1,229 +0,0 @@
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_IS_EMPTY_HPP_INCLUDED
-#define BOOST_TT_IS_EMPTY_HPP_INCLUDED
-
-#include <boost/type_traits/is_convertible.hpp>
-#include <boost/type_traits/detail/ice_or.hpp>
-#include <boost/type_traits/config.hpp>
-#include <boost/type_traits/intrinsics.hpp>
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#   include <boost/type_traits/remove_cv.hpp>
-#   include <boost/type_traits/is_class.hpp>
-#   include <boost/type_traits/add_reference.hpp>
-#else
-#   include <boost/type_traits/is_reference.hpp>
-#   include <boost/type_traits/is_pointer.hpp>
-#   include <boost/type_traits/is_member_pointer.hpp>
-#   include <boost/type_traits/is_array.hpp>
-#   include <boost/type_traits/is_void.hpp>
-#   include <boost/type_traits/detail/ice_and.hpp>
-#   include <boost/type_traits/detail/ice_not.hpp>
-#endif
-
-// should be always the last #include directive
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-#ifndef BOOST_INTERNAL_IS_EMPTY
-#define BOOST_INTERNAL_IS_EMPTY(T) false
-#else
-#define BOOST_INTERNAL_IS_EMPTY(T) BOOST_IS_EMPTY(T)
-#endif
-
-namespace boost {
-
-namespace detail {
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#ifdef BOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable:4624) // destructor could not be generated
-#endif
-
-template <typename T>
-struct empty_helper_t1 : public T
-{
-    empty_helper_t1();  // hh compiler bug workaround
-    int i[256];
-private:
-   // suppress compiler warnings:
-   empty_helper_t1(const empty_helper_t1&);
-   empty_helper_t1& operator=(const empty_helper_t1&);
-};
-
-#ifdef BOOST_MSVC
-#pragma warning(pop)
-#endif
-
-struct empty_helper_t2 { int i[256]; };
-
-#if !BOOST_WORKAROUND(__BORLANDC__, < 0x600)
-
-template <typename T, bool is_a_class = false>
-struct empty_helper
-{
-    BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template <typename T>
-struct empty_helper<T, true>
-{
-    BOOST_STATIC_CONSTANT(
-        bool, value = (sizeof(empty_helper_t1<T>) == sizeof(empty_helper_t2))
-        );
-};
-
-template <typename T>
-struct is_empty_impl
-{
-    typedef typename remove_cv<T>::type cvt;
-    BOOST_STATIC_CONSTANT(
-        bool, value = (
-            ::boost::type_traits::ice_or<
-              ::boost::detail::empty_helper<cvt,::boost::is_class<T>::value>::value
-              , BOOST_INTERNAL_IS_EMPTY(cvt)
-            >::value
-            ));
-};
-
-#else // __BORLANDC__
-
-template <typename T, bool is_a_class, bool convertible_to_int>
-struct empty_helper
-{
-    BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template <typename T>
-struct empty_helper<T, true, false>
-{
-    BOOST_STATIC_CONSTANT(bool, value = (
-        sizeof(empty_helper_t1<T>) == sizeof(empty_helper_t2)
-        ));
-};
-
-template <typename T>
-struct is_empty_impl
-{
-   typedef typename remove_cv<T>::type cvt;
-   typedef typename add_reference<T>::type r_type;
-
-   BOOST_STATIC_CONSTANT(
-       bool, value = (
-           ::boost::type_traits::ice_or<
-              ::boost::detail::empty_helper<
-                  cvt
-                , ::boost::is_class<T>::value
-                , ::boost::is_convertible< r_type,int>::value
-              >::value
-              , BOOST_INTERNAL_IS_EMPTY(cvt)
-           >::value));
-};
-
-#endif // __BORLANDC__
-
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#ifdef BOOST_MSVC6_MEMBER_TEMPLATES
-
-template <typename T>
-struct empty_helper_t1 : public T
-{
-   empty_helper_t1();
-   int i[256];
-};
-
-struct empty_helper_t2 { int i[256]; };
-
-template <typename T>
-struct empty_helper_base
-{
-   enum { value = (sizeof(empty_helper_t1<T>) == sizeof(empty_helper_t2)) };
-};
-
-template <typename T>
-struct empty_helper_nonbase
-{
-   enum { value = false };
-};
-
-template <bool base>
-struct empty_helper_chooser
-{
-   template <typename T> struct result_
-   {
-      typedef empty_helper_nonbase<T> type;
-   };
-};
-
-template <>
-struct empty_helper_chooser<true>
-{
-   template <typename T> struct result_
-   {
-      typedef empty_helper_base<T> type;
-   };
-};
-
-template <typename T>
-struct is_empty_impl
-{
-   typedef ::boost::detail::empty_helper_chooser<
-      ::boost::type_traits::ice_and<
-         ::boost::type_traits::ice_not< ::boost::is_reference<T>::value >::value,
-         ::boost::type_traits::ice_not< ::boost::is_convertible<T,double>::value >::value,
-         ::boost::type_traits::ice_not< ::boost::is_pointer<T>::value >::value,
-         ::boost::type_traits::ice_not< ::boost::is_member_pointer<T>::value >::value,
-         ::boost::type_traits::ice_not< ::boost::is_array<T>::value >::value,
-         ::boost::type_traits::ice_not< ::boost::is_void<T>::value >::value,
-         ::boost::type_traits::ice_not<
-            ::boost::is_convertible<T,void const volatile*>::value
-            >::value
-      >::value > chooser;
-
-   typedef typename chooser::template result_<T> result;
-   typedef typename result::type eh_type;
-
-   BOOST_STATIC_CONSTANT(bool, value =
-      (::boost::type_traits::ice_or<eh_type::value, BOOST_INTERNAL_IS_EMPTY(T)>::value));
-};
-
-#else
-
-template <typename T> struct is_empty_impl
-{
-    BOOST_STATIC_CONSTANT(bool, value = BOOST_INTERNAL_IS_EMPTY(T));
-};
-
-#endif  // BOOST_MSVC6_MEMBER_TEMPLATES
-
-#endif  // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-// these help when the compiler has no partial specialization support:
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_empty,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_empty,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_empty,void volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_empty,void const volatile,false)
-#endif
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_empty,T,::boost::detail::is_empty_impl<T>::value)
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#undef BOOST_INTERNAL_IS_EMPTY
-
-#endif // BOOST_TT_IS_EMPTY_HPP_INCLUDED
-
diff --git a/boost/type_traits/is_enum.hpp b/boost/type_traits/is_enum.hpp
deleted file mode 100644
index e35548c..0000000
--- a/boost/type_traits/is_enum.hpp
+++ /dev/null
@@ -1,189 +0,0 @@
-
-//  (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-//  Hinnant & John Maddock 2000.  
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-
-#ifndef BOOST_TT_IS_ENUM_HPP_INCLUDED
-#define BOOST_TT_IS_ENUM_HPP_INCLUDED
-
-#include <boost/type_traits/intrinsics.hpp>
-#ifndef BOOST_IS_ENUM
-#include <boost/type_traits/add_reference.hpp>
-#include <boost/type_traits/is_arithmetic.hpp>
-#include <boost/type_traits/is_reference.hpp>
-#include <boost/type_traits/is_convertible.hpp>
-#include <boost/type_traits/is_array.hpp>
-#ifdef __GNUC__
-#include <boost/type_traits/is_function.hpp>
-#endif
-#include <boost/type_traits/config.hpp>
-#if defined(BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION) 
-#  include <boost/type_traits/is_class.hpp>
-#  include <boost/type_traits/is_union.hpp>
-#endif
-#endif
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-#ifndef BOOST_IS_ENUM
-#if !(defined(__BORLANDC__) && (__BORLANDC__ <= 0x551))
-
-namespace detail {
-
-#if defined(BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION) 
-
-template <typename T>
-struct is_class_or_union
-{
-   BOOST_STATIC_CONSTANT(bool, value =
-      (::boost::type_traits::ice_or<
-           ::boost::is_class<T>::value
-         , ::boost::is_union<T>::value
-      >::value));
-};
-
-#else
-
-template <typename T>
-struct is_class_or_union
-{
-# if BOOST_WORKAROUND(BOOST_MSVC, < 1300) || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x581))// we simply can't detect it this way.
-    BOOST_STATIC_CONSTANT(bool, value = false);
-# else
-    template <class U> static ::boost::type_traits::yes_type is_class_or_union_tester(void(U::*)(void));
-
-#  if BOOST_WORKAROUND(BOOST_MSVC, == 1300)                 \
-    || BOOST_WORKAROUND(__MWERKS__, <= 0x3000) // no SFINAE
-    static ::boost::type_traits::no_type is_class_or_union_tester(...);
-    BOOST_STATIC_CONSTANT(
-        bool, value = sizeof(is_class_or_union_tester(0)) == sizeof(::boost::type_traits::yes_type));
-#  else
-    template <class U>
-    static ::boost::type_traits::no_type is_class_or_union_tester(...);
-    BOOST_STATIC_CONSTANT(
-        bool, value = sizeof(is_class_or_union_tester<T>(0)) == sizeof(::boost::type_traits::yes_type));
-#  endif
-# endif
-};
-#endif
-
-struct int_convertible
-{
-    int_convertible(int);
-};
-
-// Don't evaluate convertibility to int_convertible unless the type
-// is non-arithmetic. This suppresses warnings with GCC.
-template <bool is_typename_arithmetic_or_reference = true>
-struct is_enum_helper
-{
-    template <typename T> struct type
-    {
-        BOOST_STATIC_CONSTANT(bool, value = false);
-    };
-};
-
-template <>
-struct is_enum_helper<false>
-{
-    template <typename T> struct type
-       : public ::boost::is_convertible<typename boost::add_reference<T>::type,::boost::detail::int_convertible>
-    {
-    };
-};
-
-template <typename T> struct is_enum_impl
-{
-   //typedef ::boost::add_reference<T> ar_t;
-   //typedef typename ar_t::type r_type;
-
-#if defined(__GNUC__)
-
-#ifdef BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION
-    
-   // We MUST check for is_class_or_union on conforming compilers in
-   // order to correctly deduce that noncopyable types are not enums
-   // (dwa 2002/04/15)...
-   BOOST_STATIC_CONSTANT(bool, selector =
-      (::boost::type_traits::ice_or<
-           ::boost::is_arithmetic<T>::value
-         , ::boost::is_reference<T>::value
-         , ::boost::is_function<T>::value
-         , is_class_or_union<T>::value
-         , is_array<T>::value
-      >::value));
-#else
-   // ...however, not checking is_class_or_union on non-conforming
-   // compilers prevents a dependency recursion.
-   BOOST_STATIC_CONSTANT(bool, selector =
-      (::boost::type_traits::ice_or<
-           ::boost::is_arithmetic<T>::value
-         , ::boost::is_reference<T>::value
-         , ::boost::is_function<T>::value
-         , is_array<T>::value
-      >::value));
-#endif // BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION
-
-#else // !defined(__GNUC__):
-    
-   BOOST_STATIC_CONSTANT(bool, selector =
-      (::boost::type_traits::ice_or<
-           ::boost::is_arithmetic<T>::value
-         , ::boost::is_reference<T>::value
-         , is_class_or_union<T>::value
-         , is_array<T>::value
-      >::value));
-    
-#endif
-
-#if BOOST_WORKAROUND(__BORLANDC__, < 0x600)
-    typedef ::boost::detail::is_enum_helper<
-          ::boost::detail::is_enum_impl<T>::selector
-        > se_t;
-#else
-    typedef ::boost::detail::is_enum_helper<selector> se_t;
-#endif
-
-    typedef typename se_t::template type<T> helper;
-    BOOST_STATIC_CONSTANT(bool, value = helper::value);
-};
-
-// these help on compilers with no partial specialization support:
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_enum,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_enum,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_enum,void volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_enum,void const volatile,false)
-#endif
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_enum,T,::boost::detail::is_enum_impl<T>::value)
-
-#else // __BORLANDC__
-//
-// buggy is_convertible prevents working
-// implementation of is_enum:
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_enum,T,false)
-
-#endif
-
-#else // BOOST_IS_ENUM
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_enum,T,BOOST_IS_ENUM(T))
-
-#endif
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_ENUM_HPP_INCLUDED
diff --git a/boost/type_traits/is_float.hpp b/boost/type_traits/is_float.hpp
deleted file mode 100644
index 25d16f1..0000000
--- a/boost/type_traits/is_float.hpp
+++ /dev/null
@@ -1,27 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TYPE_TRAITS_IS_FLOAT_HPP_INCLUDED
-#define BOOST_TYPE_TRAITS_IS_FLOAT_HPP_INCLUDED
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-//* is a type T a floating-point type described in the standard (3.9.1p8)
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_float,T,false)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_float,float,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_float,double,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_float,long double,true)
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TYPE_TRAITS_IS_FLOAT_HPP_INCLUDED
diff --git a/boost/type_traits/is_floating_point.hpp b/boost/type_traits/is_floating_point.hpp
deleted file mode 100644
index 2224453..0000000
--- a/boost/type_traits/is_floating_point.hpp
+++ /dev/null
@@ -1,27 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000-2005.
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TYPE_TRAITS_IS_FLOATING_HPP_INCLUDED
-#define BOOST_TYPE_TRAITS_IS_FLOATING_HPP_INCLUDED
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-//* is a type T a floating-point type described in the standard (3.9.1p8)
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_floating_point,T,false)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_floating_point,float,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_floating_point,double,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_floating_point,long double,true)
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TYPE_TRAITS_IS_FLOAT_HPP_INCLUDED
diff --git a/boost/type_traits/is_function.hpp b/boost/type_traits/is_function.hpp
deleted file mode 100644
index cd80e74..0000000
--- a/boost/type_traits/is_function.hpp
+++ /dev/null
@@ -1,111 +0,0 @@
-
-//  Copyright 2000 John Maddock (john at johnmaddock.co.uk)
-//  Copyright 2002 Aleksey Gurtovoy (agurtovoy at meta-comm.com)
-//
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_IS_FUNCTION_HPP_INCLUDED
-#define BOOST_TT_IS_FUNCTION_HPP_INCLUDED
-
-#include <boost/type_traits/is_reference.hpp>
-#include <boost/type_traits/detail/false_result.hpp>
-#include <boost/config.hpp>
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_TT_TEST_MS_FUNC_SIGS)
-#   include <boost/type_traits/detail/is_function_ptr_helper.hpp>
-#else
-#   include <boost/type_traits/detail/is_function_ptr_tester.hpp>
-#   include <boost/type_traits/detail/yes_no_type.hpp>
-#endif
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-// is a type a function?
-// Please note that this implementation is unnecessarily complex:
-// we could just use !is_convertible<T*, const volatile void*>::value,
-// except that some compilers erroneously allow conversions from
-// function pointers to void*.
-
-namespace boost {
-
-#if !defined( __CODEGEARC__ )
-
-namespace detail {
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_TT_TEST_MS_FUNC_SIGS)
-template<bool is_ref = true>
-struct is_function_chooser
-    : public ::boost::type_traits::false_result
-{
-};
-
-template <>
-struct is_function_chooser<false>
-{
-    template< typename T > struct result_
-        : public ::boost::type_traits::is_function_ptr_helper<T*>
-    {
-    };
-};
-
-template <typename T>
-struct is_function_impl
-    : public is_function_chooser< ::boost::is_reference<T>::value >
-        ::BOOST_NESTED_TEMPLATE result_<T>
-{
-};
-
-#else
-
-template <typename T>
-struct is_function_impl
-{
-#if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000)
-#pragma warning(push)
-#pragma warning(disable:6334)
-#endif
-    static T* t;
-    BOOST_STATIC_CONSTANT(
-        bool, value = sizeof(::boost::type_traits::is_function_ptr_tester(t))
-        == sizeof(::boost::type_traits::yes_type)
-        );
-#if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000)
-#pragma warning(pop)
-#endif
-};
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-template <typename T>
-struct is_function_impl<T&> : public false_type
-{};
-#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
-template <typename T>
-struct is_function_impl<T&&> : public false_type
-{};
-#endif
-#endif
-
-#endif
-
-} // namespace detail
-
-#endif // !defined( __CODEGEARC__ )
-
-#if defined( __CODEGEARC__ )
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_function,T,__is_function(T))
-#else
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_function,T,::boost::detail::is_function_impl<T>::value)
-#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_function,T&&,false)
-#endif
-#endif
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_FUNCTION_HPP_INCLUDED
diff --git a/boost/type_traits/is_fundamental.hpp b/boost/type_traits/is_fundamental.hpp
deleted file mode 100644
index 138e296..0000000
--- a/boost/type_traits/is_fundamental.hpp
+++ /dev/null
@@ -1,45 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_IS_FUNDAMENTAL_HPP_INCLUDED
-#define BOOST_TT_IS_FUNDAMENTAL_HPP_INCLUDED
-
-#include <boost/type_traits/is_arithmetic.hpp>
-#include <boost/type_traits/is_void.hpp>
-#include <boost/type_traits/detail/ice_or.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-namespace detail {
-
-template <typename T> 
-struct is_fundamental_impl
-    : public ::boost::type_traits::ice_or< 
-          ::boost::is_arithmetic<T>::value
-        , ::boost::is_void<T>::value
-        >
-{ 
-};
-
-} // namespace detail
-
-//* is a type T a fundamental type described in the standard (3.9.1)
-#if defined( __CODEGEARC__ )
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_fundamental,T,__is_fundamental(T))
-#else
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_fundamental,T,::boost::detail::is_fundamental_impl<T>::value)
-#endif
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_FUNDAMENTAL_HPP_INCLUDED
diff --git a/boost/type_traits/is_integral.hpp b/boost/type_traits/is_integral.hpp
deleted file mode 100644
index 1ab27fd..0000000
--- a/boost/type_traits/is_integral.hpp
+++ /dev/null
@@ -1,89 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_IS_INTEGRAL_HPP_INCLUDED
-#define BOOST_TT_IS_INTEGRAL_HPP_INCLUDED
-
-#include <boost/config.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-//* is a type T an [cv-qualified-] integral type described in the standard (3.9.1p3)
-// as an extension we include long long, as this is likely to be added to the
-// standard at a later date
-#if defined( __CODEGEARC__ )
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_integral,T,__is_integral(T))
-#else
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_integral,T,false)
-
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned char,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned short,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned int,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned long,true)
-
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,signed char,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,signed short,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,signed int,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,signed long,true)
-
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,bool,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,char,true)
-
-#ifndef BOOST_NO_INTRINSIC_WCHAR_T
-// If the following line fails to compile and you're using the Intel
-// compiler, see http://lists.boost.org/MailArchives/boost-users/msg06567.php,
-// and define BOOST_NO_INTRINSIC_WCHAR_T on the command line.
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,wchar_t,true)
-#endif
-
-// Same set of integral types as in boost/type_traits/integral_promotion.hpp.
-// Please, keep in sync. -- Alexander Nasonov
-#if (defined(BOOST_MSVC) && (BOOST_MSVC < 1300)) \
-    || (defined(BOOST_INTEL_CXX_VERSION) && defined(_MSC_VER) && (BOOST_INTEL_CXX_VERSION <= 600)) \
-    || (defined(__BORLANDC__) && (__BORLANDC__ == 0x600) && (_MSC_VER < 1300))
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned __int8,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,__int8,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned __int16,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,__int16,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned __int32,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,__int32,true)
-#ifdef __BORLANDC__
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned __int64,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,__int64,true)
-#endif
-#endif
-
-# if defined(BOOST_HAS_LONG_LONG)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral, ::boost::ulong_long_type,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral, ::boost::long_long_type,true)
-#elif defined(BOOST_HAS_MS_INT64)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned __int64,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,__int64,true)
-#endif
-        
-#ifdef BOOST_HAS_INT128
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,boost::int128_type,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,boost::uint128_type,true)
-#endif
-#ifndef BOOST_NO_CXX11_CHAR16_T
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,char16_t,true)
-#endif
-#ifndef BOOST_NO_CXX11_CHAR32_T
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,char32_t,true)
-#endif
-
-#endif  // non-CodeGear implementation
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_INTEGRAL_HPP_INCLUDED
diff --git a/boost/type_traits/is_lvalue_reference.hpp b/boost/type_traits/is_lvalue_reference.hpp
deleted file mode 100644
index a6af859..0000000
--- a/boost/type_traits/is_lvalue_reference.hpp
+++ /dev/null
@@ -1,118 +0,0 @@
-
-//  (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, 
-//      Howard Hinnant and John Maddock 2000. 
-//  (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 2001
-
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-//    Fixed is_pointer, is_lvalue_reference, is_const, is_volatile, is_same, 
-//    is_member_pointer based on the Simulated Partial Specialization work 
-//    of Mat Marcus and Jesse Jones. See  http://opensource.adobe.com or 
-//    http://groups.yahoo.com/group/boost/message/5441 
-//    Some workarounds in here use ideas suggested from "Generic<Programming>: 
-//    Mappings between Types and Values" 
-//    by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html).
-
-
-#ifndef BOOST_TT_IS_LVALUE_REFERENCE_HPP_INCLUDED
-#define BOOST_TT_IS_LVALUE_REFERENCE_HPP_INCLUDED
-
-#include <boost/type_traits/config.hpp>
-
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#   include <boost/type_traits/detail/yes_no_type.hpp>
-#   include <boost/type_traits/detail/wrap.hpp>
-#endif
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-#if defined( __CODEGEARC__ )
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_lvalue_reference,T,__is_reference(T))
-#elif !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_lvalue_reference,T,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_lvalue_reference,T&,true)
-
-#if  defined(BOOST_ILLEGAL_CV_REFERENCES)
-// these are illegal specialisations; cv-qualifies applied to
-// references have no effect according to [8.3.2p1],
-// C++ Builder requires them though as it treats cv-qualified
-// references as distinct types...
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_lvalue_reference,T& const,true)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_lvalue_reference,T& volatile,true)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_lvalue_reference,T& const volatile,true)
-#endif
-
-#if defined(__GNUC__) && (__GNUC__ < 3)
-// these allow us to work around illegally cv-qualified reference
-// types.
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_lvalue_reference,T const ,::boost::is_lvalue_reference<T>::value)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_lvalue_reference,T volatile ,::boost::is_lvalue_reference<T>::value)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_lvalue_reference,T const volatile ,::boost::is_lvalue_reference<T>::value)
-// However, the above specializations confuse gcc 2.96 unless we also
-// supply these specializations for array types
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,unsigned long N,is_lvalue_reference,T[N],false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,unsigned long N,is_lvalue_reference,const T[N],false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,unsigned long N,is_lvalue_reference,volatile T[N],false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,unsigned long N,is_lvalue_reference,const volatile T[N],false)
-#endif
-
-#else
-
-#ifdef BOOST_MSVC
-#   pragma warning(push)
-#   pragma warning(disable: 4181 4097)
-#endif
-
-namespace detail {
-
-using ::boost::type_traits::yes_type;
-using ::boost::type_traits::no_type;
-using ::boost::type_traits::wrap;
-
-template <class T> T&(* is_lvalue_reference_helper1(wrap<T>) )(wrap<T>);
-char is_lvalue_reference_helper1(...);
-
-template <class T> no_type is_lvalue_reference_helper2(T&(*)(wrap<T>));
-yes_type is_lvalue_reference_helper2(...);
-
-template <typename T>
-struct is_lvalue_reference_impl
-{
-    BOOST_STATIC_CONSTANT(
-        bool, value = sizeof(
-            ::boost::detail::is_lvalue_reference_helper2(
-                ::boost::detail::is_lvalue_reference_helper1(::boost::type_traits::wrap<T>()))) == 1
-        );
-};
-
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_lvalue_reference,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_lvalue_reference,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_lvalue_reference,void volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_lvalue_reference,void const volatile,false)
-#endif
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_lvalue_reference,T,::boost::detail::is_lvalue_reference_impl<T>::value)
-
-#ifdef BOOST_MSVC
-#   pragma warning(pop)
-#endif
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_REFERENCE_HPP_INCLUDED
-
diff --git a/boost/type_traits/is_member_function_pointer.hpp b/boost/type_traits/is_member_function_pointer.hpp
deleted file mode 100644
index 38babf4..0000000
--- a/boost/type_traits/is_member_function_pointer.hpp
+++ /dev/null
@@ -1,136 +0,0 @@
-
-//  (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-//  Hinnant & John Maddock 2000.  
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-
-#ifndef BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED
-#define BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED
-
-#include <boost/type_traits/config.hpp>
-#include <boost/detail/workaround.hpp>
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
-   && !BOOST_WORKAROUND(__BORLANDC__, < 0x600) && !defined(BOOST_TT_TEST_MS_FUNC_SIGS)
-   //
-   // Note: we use the "workaround" version for MSVC because it works for 
-   // __stdcall etc function types, where as the partial specialisation
-   // version does not do so.
-   //
-#   include <boost/type_traits/detail/is_mem_fun_pointer_impl.hpp>
-#   include <boost/type_traits/remove_cv.hpp>
-#else
-#   include <boost/type_traits/is_reference.hpp>
-#   include <boost/type_traits/is_array.hpp>
-#   include <boost/type_traits/detail/yes_no_type.hpp>
-#   include <boost/type_traits/detail/false_result.hpp>
-#   include <boost/type_traits/detail/ice_or.hpp>
-#   include <boost/type_traits/detail/is_mem_fun_pointer_tester.hpp>
-#endif
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-#if defined( __CODEGEARC__ )
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_member_function_pointer,T,__is_member_function_pointer( T ))
-#elif !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !BOOST_WORKAROUND(__BORLANDC__, < 0x600) && !defined(BOOST_TT_TEST_MS_FUNC_SIGS)
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(
-      is_member_function_pointer
-    , T
-    , ::boost::type_traits::is_mem_fun_pointer_impl<typename remove_cv<T>::type>::value
-    )
-
-#else
-
-namespace detail {
-
-#ifndef __BORLANDC__
-
-template <bool>
-struct is_mem_fun_pointer_select
-    : public ::boost::type_traits::false_result
-{
-};
-
-template <>
-struct is_mem_fun_pointer_select<false>
-{
-    template <typename T> struct result_
-    {
-#if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000)
-#pragma warning(push)
-#pragma warning(disable:6334)
-#endif
-        static T* make_t;
-        typedef result_<T> self_type;
-
-        BOOST_STATIC_CONSTANT(
-            bool, value = (
-                1 == sizeof(::boost::type_traits::is_mem_fun_pointer_tester(self_type::make_t))
-            ));
-#if BOOST_WORKAROUND(BOOST_MSVC_FULL_VER, >= 140050000)
-#pragma warning(pop)
-#endif
-    };
-};
-
-template <typename T>
-struct is_member_function_pointer_impl
-    : public is_mem_fun_pointer_select<
-          ::boost::type_traits::ice_or<
-              ::boost::is_reference<T>::value
-            , ::boost::is_array<T>::value
-            >::value
-        >::template result_<T>
-{
-};
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-template <typename T>
-struct is_member_function_pointer_impl<T&> : public false_type{};
-#endif
-
-#else // Borland C++
-
-template <typename T>
-struct is_member_function_pointer_impl
-{
-   static T* m_t;
-   BOOST_STATIC_CONSTANT(
-              bool, value =
-               (1 == sizeof(type_traits::is_mem_fun_pointer_tester(m_t))) );
-};
-
-template <typename T>
-struct is_member_function_pointer_impl<T&>
-{
-   BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-#endif
-
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_member_function_pointer,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_member_function_pointer,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_member_function_pointer,void volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_member_function_pointer,void const volatile,false)
-#endif
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_member_function_pointer,T,::boost::detail::is_member_function_pointer_impl<T>::value)
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED
diff --git a/boost/type_traits/is_member_object_pointer.hpp b/boost/type_traits/is_member_object_pointer.hpp
deleted file mode 100644
index 66b76c9..0000000
--- a/boost/type_traits/is_member_object_pointer.hpp
+++ /dev/null
@@ -1,46 +0,0 @@
-
-//  (C) Copyright John Maddock 2005.  
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-
-#ifndef BOOST_TT_IS_MEMBER_OBJECT_POINTER_HPP_INCLUDED
-#define BOOST_TT_IS_MEMBER_OBJECT_POINTER_HPP_INCLUDED
-
-#include <boost/type_traits/config.hpp>
-#include <boost/type_traits/is_member_pointer.hpp>
-#include <boost/type_traits/is_member_function_pointer.hpp>
-#include <boost/type_traits/detail/ice_and.hpp>
-#include <boost/type_traits/detail/ice_not.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-namespace detail{
-
-template <typename T>
-struct is_member_object_pointer_impl
-{
-   BOOST_STATIC_CONSTANT(
-      bool, value = (::boost::type_traits::ice_and<
-         ::boost::is_member_pointer<T>::value,
-         ::boost::type_traits::ice_not<
-            ::boost::is_member_function_pointer<T>::value
-         >::value
-      >::value ));
-};
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_member_object_pointer,T,::boost::detail::is_member_object_pointer_impl<T>::value)
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED
diff --git a/boost/type_traits/is_member_pointer.hpp b/boost/type_traits/is_member_pointer.hpp
deleted file mode 100644
index a4a6d25..0000000
--- a/boost/type_traits/is_member_pointer.hpp
+++ /dev/null
@@ -1,116 +0,0 @@
-
-//  (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, 
-//      Howard Hinnant and John Maddock 2000. 
-//  (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 2001
-
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-//    Fixed is_pointer, is_reference, is_const, is_volatile, is_same, 
-//    is_member_pointer based on the Simulated Partial Specialization work 
-//    of Mat Marcus and Jesse Jones. See  http://opensource.adobe.com or 
-//    http://groups.yahoo.com/group/boost/message/5441 
-//    Some workarounds in here use ideas suggested from "Generic<Programming>: 
-//    Mappings between Types and Values" 
-//    by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html).
-
-
-#ifndef BOOST_TT_IS_MEMBER_POINTER_HPP_INCLUDED
-#define BOOST_TT_IS_MEMBER_POINTER_HPP_INCLUDED
-
-#include <boost/type_traits/config.hpp>
-#include <boost/detail/workaround.hpp>
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !BOOST_WORKAROUND(__BORLANDC__, < 0x600)
-#   include <boost/type_traits/is_member_function_pointer.hpp>
-#else
-#   include <boost/type_traits/is_reference.hpp>
-#   include <boost/type_traits/is_array.hpp>
-#   include <boost/type_traits/detail/is_mem_fun_pointer_tester.hpp>
-#   include <boost/type_traits/detail/yes_no_type.hpp>
-#   include <boost/type_traits/detail/false_result.hpp>
-#   include <boost/type_traits/detail/ice_or.hpp>
-#endif
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-#if defined( __CODEGEARC__ )
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_member_pointer,T,__is_member_pointer(T))
-#elif BOOST_WORKAROUND(__BORLANDC__, < 0x600)
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_member_pointer,T,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,typename U,is_member_pointer,U T::*,true)
-
-#elif !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_member_pointer,T,::boost::is_member_function_pointer<T>::value)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,typename U,is_member_pointer,U T::*,true)
-
-#if !BOOST_WORKAROUND(__MWERKS__,<=0x3003) && !BOOST_WORKAROUND(__IBMCPP__, <=600)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,typename U,is_member_pointer,U T::*const,true)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,typename U,is_member_pointer,U T::*volatile,true)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,typename U,is_member_pointer,U T::*const volatile,true)
-#endif
-
-#else // no partial template specialization
-
-namespace detail {
-
-template <typename R, typename T>
-::boost::type_traits::yes_type BOOST_TT_DECL is_member_pointer_tester(R T::*const volatile*);
-::boost::type_traits::no_type BOOST_TT_DECL is_member_pointer_tester(...);
-
-template <bool>
-struct is_member_pointer_select
-    : public ::boost::type_traits::false_result
-{
-};
-
-template <>
-struct is_member_pointer_select<false>
-{
-    template <typename T> struct result_
-    {
-        static T* make_t();
-        BOOST_STATIC_CONSTANT(
-            bool, value =
-            (::boost::type_traits::ice_or<
-                (1 == sizeof(::boost::type_traits::is_mem_fun_pointer_tester(make_t()))),
-                (1 == sizeof(is_member_pointer_tester(make_t())))
-            >::value) );
-    };
-};
-
-template <typename T>
-struct is_member_pointer_impl
-    : public is_member_pointer_select<
-          ::boost::type_traits::ice_or<
-              ::boost::is_reference<T>::value
-            , ::boost::is_array<T>::value
-            >::value
-        >::template result_<T>
-{
-};
-
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_member_pointer,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_member_pointer,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_member_pointer,void volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_member_pointer,void const volatile,false)
-#endif
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_member_pointer,T,::boost::detail::is_member_pointer_impl<T>::value)
-
-#endif // __BORLANDC__
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_MEMBER_POINTER_HPP_INCLUDED
diff --git a/boost/type_traits/is_nothrow_move_assignable.hpp b/boost/type_traits/is_nothrow_move_assignable.hpp
deleted file mode 100644
index 5a3427f..0000000
--- a/boost/type_traits/is_nothrow_move_assignable.hpp
+++ /dev/null
@@ -1,84 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  (C) Copyright Eric Friedman 2002-2003.
-//  (C) Copyright Antony Polukhin 2013.
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_IS_NOTHROW_MOVE_ASSIGNABLE_HPP_INCLUDED
-#define BOOST_TT_IS_NOTHROW_MOVE_ASSIGNABLE_HPP_INCLUDED
-
-#include <boost/config.hpp>
-#include <boost/type_traits/has_trivial_move_assign.hpp>
-#include <boost/type_traits/has_nothrow_assign.hpp>
-#include <boost/type_traits/is_array.hpp>
-#include <boost/type_traits/is_reference.hpp>
-#include <boost/type_traits/detail/ice_and.hpp>
-#include <boost/type_traits/detail/ice_or.hpp>
-#include <boost/type_traits/detail/ice_not.hpp>
-#include <boost/utility/enable_if.hpp>
-#include <boost/utility/declval.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-namespace detail{
-
-#ifndef BOOST_NO_CXX11_NOEXCEPT
-
-template <class T, class Enable = void>
-struct false_or_cpp11_noexcept_move_assignable: public ::boost::false_type {};
-
-template <class T>
-struct false_or_cpp11_noexcept_move_assignable <
-        T,
-        typename ::boost::enable_if_c<sizeof(T) && BOOST_NOEXCEPT_EXPR(::boost::declval<T&>() = ::boost::declval<T>())>::type
-    > : public ::boost::integral_constant<bool, BOOST_NOEXCEPT_EXPR(::boost::declval<T&>() = ::boost::declval<T>())>
-{};
-
-template <class T>
-struct is_nothrow_move_assignable_imp{
-    BOOST_STATIC_CONSTANT(bool, value = (
-        ::boost::type_traits::ice_and<
-            ::boost::type_traits::ice_not< ::boost::is_volatile<T>::value >::value,
-            ::boost::type_traits::ice_not< ::boost::is_reference<T>::value >::value,
-            ::boost::detail::false_or_cpp11_noexcept_move_assignable<T>::value
-        >::value));
-};
-
-#else
-
-template <class T>
-struct is_nothrow_move_assignable_imp{
-    BOOST_STATIC_CONSTANT(bool, value = (
-        ::boost::type_traits::ice_and<
-            ::boost::type_traits::ice_or<
-                ::boost::has_trivial_move_assign<T>::value,
-                ::boost::has_nothrow_assign<T>::value
-            >::value,
-            ::boost::type_traits::ice_not< ::boost::is_array<T>::value >::value
-        >::value));
-};
-
-#endif
-
-}
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_nothrow_move_assignable,T,::boost::detail::is_nothrow_move_assignable_imp<T>::value)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_nothrow_move_assignable,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_nothrow_move_assignable,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_nothrow_move_assignable,void const volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_nothrow_move_assignable,void volatile,false)
-#endif
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_NOTHROW_MOVE_ASSIGNABLE_HPP_INCLUDED
diff --git a/boost/type_traits/is_nothrow_move_constructible.hpp b/boost/type_traits/is_nothrow_move_constructible.hpp
deleted file mode 100644
index bc7fb88..0000000
--- a/boost/type_traits/is_nothrow_move_constructible.hpp
+++ /dev/null
@@ -1,84 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  (C) Copyright Eric Friedman 2002-2003.
-//  (C) Copyright Antony Polukhin 2013.
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_IS_NOTHROW_MOVE_CONSTRUCTIBLE_HPP_INCLUDED
-#define BOOST_TT_IS_NOTHROW_MOVE_CONSTRUCTIBLE_HPP_INCLUDED
-
-#include <boost/config.hpp>
-#include <boost/type_traits/has_trivial_move_constructor.hpp>
-#include <boost/type_traits/has_nothrow_copy.hpp>
-#include <boost/type_traits/is_array.hpp>
-#include <boost/type_traits/is_reference.hpp>
-#include <boost/type_traits/detail/ice_or.hpp>
-#include <boost/type_traits/detail/ice_and.hpp>
-#include <boost/utility/declval.hpp>
-#include <boost/utility/enable_if.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-namespace detail{
-
-#ifndef BOOST_NO_CXX11_NOEXCEPT
-
-template <class T, class Enable = void>
-struct false_or_cpp11_noexcept_move_constructible: public ::boost::false_type {};
-
-template <class T>
-struct false_or_cpp11_noexcept_move_constructible <
-        T,
-        typename ::boost::enable_if_c<sizeof(T) && BOOST_NOEXCEPT_EXPR(T(::boost::declval<T>()))>::type
-    > : public ::boost::integral_constant<bool, BOOST_NOEXCEPT_EXPR(T(::boost::declval<T>()))>
-{};
-
-template <class T>
-struct is_nothrow_move_constructible_imp{
-   BOOST_STATIC_CONSTANT(bool, value = 
-        (::boost::type_traits::ice_and<
-            ::boost::type_traits::ice_not< ::boost::is_volatile<T>::value >::value,
-            ::boost::type_traits::ice_not< ::boost::is_reference<T>::value >::value,
-            ::boost::detail::false_or_cpp11_noexcept_move_constructible<T>::value
-        >::value));
-};
-
-#else
-
-template <class T>
-struct is_nothrow_move_constructible_imp{
-    BOOST_STATIC_CONSTANT(bool, value =(
-        ::boost::type_traits::ice_and<
-            ::boost::type_traits::ice_or<
-                ::boost::has_trivial_move_constructor<T>::value,
-                ::boost::has_nothrow_copy<T>::value
-            >::value,
-            ::boost::type_traits::ice_not< ::boost::is_array<T>::value >::value
-        >::value));
-};
-
-#endif
-
-}
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_nothrow_move_constructible,T,::boost::detail::is_nothrow_move_constructible_imp<T>::value)
-
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_nothrow_move_constructible,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_nothrow_move_constructible,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_nothrow_move_constructible,void const volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_nothrow_move_constructible,void volatile,false)
-#endif
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_NOTHROW_MOVE_CONSTRUCTIBLE_HPP_INCLUDED
diff --git a/boost/type_traits/is_object.hpp b/boost/type_traits/is_object.hpp
deleted file mode 100644
index 3decbf8..0000000
--- a/boost/type_traits/is_object.hpp
+++ /dev/null
@@ -1,53 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_IS_OBJECT_HPP_INCLUDED
-#define BOOST_TT_IS_OBJECT_HPP_INCLUDED
-
-#include <boost/type_traits/is_reference.hpp>
-#include <boost/type_traits/is_void.hpp>
-#include <boost/type_traits/is_function.hpp>
-#include <boost/type_traits/detail/ice_and.hpp>
-#include <boost/type_traits/detail/ice_not.hpp>
-#include <boost/config.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-namespace detail {
-
-template <typename T>
-struct is_object_impl
-{
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-   BOOST_STATIC_CONSTANT(bool, value =
-      (::boost::type_traits::ice_and<
-         ::boost::type_traits::ice_not< ::boost::is_reference<T>::value>::value,
-         ::boost::type_traits::ice_not< ::boost::is_void<T>::value>::value,
-         ::boost::type_traits::ice_not< ::boost::is_function<T>::value>::value
-      >::value));
-#else
-   BOOST_STATIC_CONSTANT(bool, value =
-      (::boost::type_traits::ice_and<
-         ::boost::type_traits::ice_not< ::boost::is_reference<T>::value>::value,
-         ::boost::type_traits::ice_not< ::boost::is_void<T>::value>::value
-      >::value));
-#endif
-};
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_object,T,::boost::detail::is_object_impl<T>::value)
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_OBJECT_HPP_INCLUDED
diff --git a/boost/type_traits/is_pod.hpp b/boost/type_traits/is_pod.hpp
deleted file mode 100644
index b4e1733..0000000
--- a/boost/type_traits/is_pod.hpp
+++ /dev/null
@@ -1,145 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_IS_POD_HPP_INCLUDED
-#define BOOST_TT_IS_POD_HPP_INCLUDED
-
-#include <boost/type_traits/config.hpp>
-#include <boost/type_traits/is_void.hpp>
-#include <boost/type_traits/is_scalar.hpp>
-#include <boost/type_traits/detail/ice_or.hpp>
-#include <boost/type_traits/intrinsics.hpp>
-
-#include <cstddef>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-#ifndef BOOST_IS_POD
-#define BOOST_INTERNAL_IS_POD(T) false
-#else
-#define BOOST_INTERNAL_IS_POD(T) BOOST_IS_POD(T)
-#endif
-
-namespace boost {
-
-// forward declaration, needed by 'is_pod_array_helper' template below
-template< typename T > struct is_POD;
-
-namespace detail {
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-template <typename T> struct is_pod_impl
-{ 
-    BOOST_STATIC_CONSTANT(
-        bool, value =
-        (::boost::type_traits::ice_or<
-            ::boost::is_scalar<T>::value,
-            ::boost::is_void<T>::value,
-            BOOST_INTERNAL_IS_POD(T)
-         >::value));
-};
-
-#if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
-template <typename T, std::size_t sz>
-struct is_pod_impl<T[sz]>
-    : public is_pod_impl<T>
-{
-};
-#endif
-
-#else
-
-template <bool is_array = false>
-struct is_pod_helper
-{
-    template <typename T> struct result_
-    {
-        BOOST_STATIC_CONSTANT(
-            bool, value =
-            (::boost::type_traits::ice_or<
-                ::boost::is_scalar<T>::value,
-                ::boost::is_void<T>::value,
-                BOOST_INTERNAL_IS_POD(T)
-            >::value));
-    };
-};
-
-template <bool b>
-struct bool_to_yes_no_type
-{
-    typedef ::boost::type_traits::no_type type;
-};
-
-template <>
-struct bool_to_yes_no_type<true>
-{
-    typedef ::boost::type_traits::yes_type type;
-};
-
-template <typename ArrayType>
-struct is_pod_array_helper
-{
-    enum { is_pod = ::boost::is_POD<ArrayType>::value }; // MSVC workaround
-    typedef typename bool_to_yes_no_type<is_pod>::type type;
-    type instance() const;
-};
-
-template <typename T>
-is_pod_array_helper<T> is_POD_array(T*);
-
-template <>
-struct is_pod_helper<true>
-{
-    template <typename T> struct result_
-    {
-        static T& help();
-        BOOST_STATIC_CONSTANT(bool, value =
-            sizeof(is_POD_array(help()).instance()) == sizeof(::boost::type_traits::yes_type)
-            );
-    };
-};
-
-
-template <typename T> struct is_pod_impl
-{ 
-   BOOST_STATIC_CONSTANT(
-       bool, value = (
-           ::boost::detail::is_pod_helper<
-              ::boost::is_array<T>::value
-           >::template result_<T>::value
-           )
-       );
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-// the following help compilers without partial specialization support:
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,void,true)
-
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,void const,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,void volatile,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,void const volatile,true)
-#endif
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_pod,T,::boost::detail::is_pod_impl<T>::value)
-// is_POD is the old depricated name for this trait, do not use this as it may
-// be removed in future without warning!!
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_POD,T,::boost::is_pod<T>::value)
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#undef BOOST_INTERNAL_IS_POD
-
-#endif // BOOST_TT_IS_POD_HPP_INCLUDED
diff --git a/boost/type_traits/is_pointer.hpp b/boost/type_traits/is_pointer.hpp
deleted file mode 100644
index 4e29bb3..0000000
--- a/boost/type_traits/is_pointer.hpp
+++ /dev/null
@@ -1,162 +0,0 @@
-
-//  (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, 
-//      Howard Hinnant and John Maddock 2000. 
-//  (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 2001
-
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-//    Fixed is_pointer, is_reference, is_const, is_volatile, is_same, 
-//    is_member_pointer based on the Simulated Partial Specialization work 
-//    of Mat Marcus and Jesse Jones. See  http://opensource.adobe.com or 
-//    http://groups.yahoo.com/group/boost/message/5441 
-//    Some workarounds in here use ideas suggested from "Generic<Programming>: 
-//    Mappings between Types and Values" 
-//    by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html).
-
-
-#ifndef BOOST_TT_IS_POINTER_HPP_INCLUDED
-#define BOOST_TT_IS_POINTER_HPP_INCLUDED
-
-#include <boost/type_traits/is_member_pointer.hpp>
-#include <boost/type_traits/detail/ice_and.hpp>
-#include <boost/type_traits/detail/ice_not.hpp>
-#include <boost/type_traits/config.hpp>
-#if !BOOST_WORKAROUND(BOOST_MSVC,<=1300)
-#include <boost/type_traits/remove_cv.hpp>
-#endif
-
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#   include <boost/type_traits/is_reference.hpp>
-#   include <boost/type_traits/is_array.hpp>
-#   include <boost/type_traits/detail/is_function_ptr_tester.hpp>
-#   include <boost/type_traits/detail/false_result.hpp>
-#   include <boost/type_traits/detail/ice_or.hpp>
-#endif
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-#if defined( __CODEGEARC__ )
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_pointer,T,__is_pointer(T))
-#elif !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-namespace detail {
-
-template< typename T > struct is_pointer_helper
-{
-    BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-#   define TT_AUX_BOOL_TRAIT_HELPER_PARTIAL_SPEC(helper,sp,result) \
-template< typename T > struct helper<sp> \
-{ \
-    BOOST_STATIC_CONSTANT(bool, value = result); \
-}; \
-/**/
-
-TT_AUX_BOOL_TRAIT_HELPER_PARTIAL_SPEC(is_pointer_helper,T*,true)
-
-#   undef TT_AUX_BOOL_TRAIT_HELPER_PARTIAL_SPEC
-
-template< typename T >
-struct is_pointer_impl
-{
-#if BOOST_WORKAROUND(BOOST_MSVC,<=1300)
-    BOOST_STATIC_CONSTANT(bool, value =
-        (::boost::type_traits::ice_and<
-              ::boost::detail::is_pointer_helper<T>::value
-            , ::boost::type_traits::ice_not<
-                ::boost::is_member_pointer<T>::value
-                >::value
-            >::value)
-        );
-#else
-    BOOST_STATIC_CONSTANT(bool, value =
-        (::boost::type_traits::ice_and<
-        ::boost::detail::is_pointer_helper<typename remove_cv<T>::type>::value
-            , ::boost::type_traits::ice_not<
-                ::boost::is_member_pointer<T>::value
-                >::value
-            >::value)
-        );
-#endif
-};
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_pointer,T,::boost::detail::is_pointer_impl<T>::value)
-
-#if defined(__BORLANDC__) && !defined(__COMO__) && (__BORLANDC__ < 0x600)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_pointer,T&,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_pointer,T& const,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_pointer,T& volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_pointer,T& const volatile,false)
-#endif
-
-#else // no partial template specialization
-
-namespace detail {
-
-struct pointer_helper
-{
-    pointer_helper(const volatile void*);
-};
-
-yes_type BOOST_TT_DECL is_pointer_tester(pointer_helper);
-no_type BOOST_TT_DECL is_pointer_tester(...);
-
-template <bool>
-struct is_pointer_select
-    : public ::boost::type_traits::false_result
-{
-};
-
-template <>
-struct is_pointer_select<false>
-{
-    template <typename T> struct result_
-    {
-        static T& make_t();
-        BOOST_STATIC_CONSTANT(bool, value =
-                (::boost::type_traits::ice_or<
-                    (1 == sizeof(is_pointer_tester(make_t()))),
-                    (1 == sizeof(type_traits::is_function_ptr_tester(make_t())))
-                >::value));
-    };
-};
-
-template <typename T>
-struct is_pointer_impl
-    : public is_pointer_select<
-          ::boost::type_traits::ice_or<
-              ::boost::is_reference<T>::value
-            , ::boost::is_array<T>::value
-            >::value
-        >::template result_<T>
-{
-};
-
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pointer,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pointer,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pointer,void volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pointer,void const volatile,false)
-#endif
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_pointer,T,::boost::detail::is_pointer_impl<T>::value)
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_POINTER_HPP_INCLUDED
diff --git a/boost/type_traits/is_polymorphic.hpp b/boost/type_traits/is_polymorphic.hpp
deleted file mode 100644
index 8fcc69e..0000000
--- a/boost/type_traits/is_polymorphic.hpp
+++ /dev/null
@@ -1,114 +0,0 @@
-//  (C) Copyright John Maddock 2000. 
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_IS_POLYMORPHIC_HPP
-#define BOOST_TT_IS_POLYMORPHIC_HPP
-
-#include <boost/type_traits/intrinsics.hpp>
-#ifndef BOOST_IS_POLYMORPHIC
-#include <boost/type_traits/is_class.hpp>
-#include <boost/type_traits/remove_cv.hpp>
-#endif
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-#include <boost/detail/workaround.hpp>
-
-namespace boost{
-
-#ifndef BOOST_IS_POLYMORPHIC
-
-namespace detail{
-
-template <class T>
-struct is_polymorphic_imp1
-{
-# if BOOST_WORKAROUND(__MWERKS__, <= 0x2407) // CWPro7 should return false always.
-    typedef char d1, (&d2)[2];
-# else 
-   typedef typename remove_cv<T>::type ncvT;
-   struct d1 : public ncvT
-   {
-      d1();
-#  if !defined(__GNUC__) // this raises warnings with some classes, and buys nothing with GCC
-      ~d1()throw();
-#  endif 
-      char padding[256];
-   private:
-      // keep some picky compilers happy:
-      d1(const d1&);
-      d1& operator=(const d1&);
-   };
-   struct d2 : public ncvT
-   {
-      d2();
-      virtual ~d2()throw();
-#  if !defined(BOOST_MSVC) && !defined(__ICL)
-      // for some reason this messes up VC++ when T has virtual bases,
-      // probably likewise for compilers that use the same ABI:
-      struct unique{};
-      virtual void unique_name_to_boost5487629(unique*);
-#  endif
-      char padding[256];
-   private:
-      // keep some picky compilers happy:
-      d2(const d2&);
-      d2& operator=(const d2&);
-   };
-# endif 
-   BOOST_STATIC_CONSTANT(bool, value = (sizeof(d2) == sizeof(d1)));
-};
-
-template <class T>
-struct is_polymorphic_imp2
-{
-   BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template <bool is_class>
-struct is_polymorphic_selector
-{
-   template <class T>
-   struct rebind
-   {
-      typedef is_polymorphic_imp2<T> type;
-   };
-};
-
-template <>
-struct is_polymorphic_selector<true>
-{
-   template <class T>
-   struct rebind
-   {
-      typedef is_polymorphic_imp1<T> type;
-   };
-};
-
-template <class T>
-struct is_polymorphic_imp
-{
-   typedef is_polymorphic_selector< ::boost::is_class<T>::value> selector;
-   typedef typename selector::template rebind<T> binder;
-   typedef typename binder::type imp_type;
-   BOOST_STATIC_CONSTANT(bool, value = imp_type::value);
-};
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_polymorphic,T,::boost::detail::is_polymorphic_imp<T>::value)
-
-#else // BOOST_IS_POLYMORPHIC
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_polymorphic,T,BOOST_IS_POLYMORPHIC(T))
-
-#endif
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif
diff --git a/boost/type_traits/is_reference.hpp b/boost/type_traits/is_reference.hpp
deleted file mode 100644
index 49b5f9f..0000000
--- a/boost/type_traits/is_reference.hpp
+++ /dev/null
@@ -1,45 +0,0 @@
-
-//  (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, 
-//      Howard Hinnant and John Maddock 2000, 2010. 
-//  (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 2001
-
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_IS_REFERENCE_HPP_INCLUDED
-#define BOOST_TT_IS_REFERENCE_HPP_INCLUDED
-
-#include <boost/type_traits/config.hpp>
-#include <boost/type_traits/is_lvalue_reference.hpp>
-#include <boost/type_traits/is_rvalue_reference.hpp>
-#include <boost/type_traits/ice.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-namespace detail {
-
-template <typename T>
-struct is_reference_impl
-{
-   BOOST_STATIC_CONSTANT(bool, value =
-      (::boost::type_traits::ice_or<
-         ::boost::is_lvalue_reference<T>::value, ::boost::is_rvalue_reference<T>::value
-       >::value));
-};
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_reference,T,::boost::detail::is_reference_impl<T>::value)
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_REFERENCE_HPP_INCLUDED
-
diff --git a/boost/type_traits/is_rvalue_reference.hpp b/boost/type_traits/is_rvalue_reference.hpp
deleted file mode 100644
index 93cd0bf..0000000
--- a/boost/type_traits/is_rvalue_reference.hpp
+++ /dev/null
@@ -1,29 +0,0 @@
-
-//  (C) John Maddock 2010. 
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_IS_RVALUE_REFERENCE_HPP_INCLUDED
-#define BOOST_TT_IS_RVALUE_REFERENCE_HPP_INCLUDED
-
-#include <boost/type_traits/config.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_rvalue_reference,T,false)
-#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_rvalue_reference,T&&,true)
-#endif
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_REFERENCE_HPP_INCLUDED
-
diff --git a/boost/type_traits/is_same.hpp b/boost/type_traits/is_same.hpp
deleted file mode 100644
index c6afbd7..0000000
--- a/boost/type_traits/is_same.hpp
+++ /dev/null
@@ -1,103 +0,0 @@
-
-//  (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, 
-//      Howard Hinnant and John Maddock 2000. 
-//  (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 2001
-
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-//    Fixed is_pointer, is_reference, is_const, is_volatile, is_same, 
-//    is_member_pointer based on the Simulated Partial Specialization work 
-//    of Mat Marcus and Jesse Jones. See  http://opensource.adobe.com or 
-//    http://groups.yahoo.com/group/boost/message/5441 
-//    Some workarounds in here use ideas suggested from "Generic<Programming>: 
-//    Mappings between Types and Values" 
-//    by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html).
-
-
-#ifndef BOOST_TT_IS_SAME_HPP_INCLUDED
-#define BOOST_TT_IS_SAME_HPP_INCLUDED
-
-#include <boost/type_traits/config.hpp>
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#include <boost/type_traits/detail/yes_no_type.hpp>
-#include <boost/type_traits/detail/ice_and.hpp>
-#include <boost/type_traits/is_reference.hpp>
-#endif
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF2(is_same,T,U,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_1(typename T,is_same,T,T,true)
-#if BOOST_WORKAROUND(__BORLANDC__, < 0x600)
-// without this, Borland's compiler gives the wrong answer for
-// references to arrays:
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_1(typename T,is_same,T&,T&,true)
-#endif
-
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-namespace detail {
-
-#ifdef BOOST_MSVC
-// the following VC6 specific implementation is *NOT* legal
-// C++, but has the advantage that it works for incomplete
-// types.
-
-template< typename T1 >
-struct is_same_part_1
-{
-    template<typename T2>  struct part_2     { enum { value = false }; };
-    template<>             struct part_2<T1> { enum { value = true }; };
-};
-
-template< typename T1, typename T2 >
-struct is_same_impl
-{
-    enum { value = boost::detail::is_same_part_1<T1>::template part_2<T2>::value };
-};
-
-#else // generic "no-partial-specialization" version
-
-template <typename T>
-::boost::type_traits::yes_type
-BOOST_TT_DECL is_same_tester(T*, T*);
-
-::boost::type_traits::no_type
-BOOST_TT_DECL is_same_tester(...);
-
-template <typename T, typename U>
-struct is_same_impl
-{
-   static T t;
-   static U u;
-
-   BOOST_STATIC_CONSTANT(bool, value =
-      (::boost::type_traits::ice_and<
-         (sizeof(type_traits::yes_type) == sizeof(boost::detail::is_same_tester(&t,&u))),
-         (::boost::is_reference<T>::value == ::boost::is_reference<U>::value),
-         (sizeof(T) == sizeof(U))
-        >::value));
-};
-
-#endif // BOOST_MSVC
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF2(is_same,T,U,(::boost::detail::is_same_impl<T,U>::value))
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif  // BOOST_TT_IS_SAME_HPP_INCLUDED
-
diff --git a/boost/type_traits/is_scalar.hpp b/boost/type_traits/is_scalar.hpp
deleted file mode 100644
index 4af3def..0000000
--- a/boost/type_traits/is_scalar.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_IS_SCALAR_HPP_INCLUDED
-#define BOOST_TT_IS_SCALAR_HPP_INCLUDED
-
-#include <boost/type_traits/is_arithmetic.hpp>
-#include <boost/type_traits/is_enum.hpp>
-#include <boost/type_traits/is_pointer.hpp>
-#include <boost/type_traits/is_member_pointer.hpp>
-#include <boost/type_traits/detail/ice_or.hpp>
-#include <boost/config.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-namespace detail {
-
-template <typename T>
-struct is_scalar_impl
-{ 
-   BOOST_STATIC_CONSTANT(bool, value =
-      (::boost::type_traits::ice_or<
-         ::boost::is_arithmetic<T>::value,
-         ::boost::is_enum<T>::value,
-         ::boost::is_pointer<T>::value,
-         ::boost::is_member_pointer<T>::value
-      >::value));
-};
-
-// these specializations are only really needed for compilers 
-// without partial specialization support:
-template <> struct is_scalar_impl<void>{ BOOST_STATIC_CONSTANT(bool, value = false ); };
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-template <> struct is_scalar_impl<void const>{ BOOST_STATIC_CONSTANT(bool, value = false ); };
-template <> struct is_scalar_impl<void volatile>{ BOOST_STATIC_CONSTANT(bool, value = false ); };
-template <> struct is_scalar_impl<void const volatile>{ BOOST_STATIC_CONSTANT(bool, value = false ); };
-#endif
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_scalar,T,::boost::detail::is_scalar_impl<T>::value)
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_SCALAR_HPP_INCLUDED
diff --git a/boost/type_traits/is_signed.hpp b/boost/type_traits/is_signed.hpp
deleted file mode 100644
index ba7d6e9..0000000
--- a/boost/type_traits/is_signed.hpp
+++ /dev/null
@@ -1,140 +0,0 @@
-
-//  (C) Copyright John Maddock 2005.  
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-
-#ifndef BOOST_TT_IS_SIGNED_HPP_INCLUDED
-#define BOOST_TT_IS_SIGNED_HPP_INCLUDED
-
-#include <boost/type_traits/is_integral.hpp>
-#include <boost/type_traits/remove_cv.hpp>
-#include <boost/type_traits/is_enum.hpp>
-#include <boost/type_traits/detail/ice_or.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-#if !defined( __CODEGEARC__ )
-
-namespace detail{
-
-#if !(defined(__EDG_VERSION__) && __EDG_VERSION__ <= 238) && !defined(BOOST_NO_INCLASS_MEMBER_INITIALIZATION)
-
-template <class T>
-struct is_signed_values
-{
-   //
-   // Note that we cannot use BOOST_STATIC_CONSTANT here, using enum's
-   // rather than "real" static constants simply doesn't work or give
-   // the correct answer.
-   //
-   typedef typename remove_cv<T>::type no_cv_t;
-   static const no_cv_t minus_one = (static_cast<no_cv_t>(-1));
-   static const no_cv_t zero = (static_cast<no_cv_t>(0));
-};
-
-template <class T>
-struct is_signed_helper
-{
-   typedef typename remove_cv<T>::type no_cv_t;
-   BOOST_STATIC_CONSTANT(bool, value = (!(::boost::detail::is_signed_values<T>::minus_one  > boost::detail::is_signed_values<T>::zero)));
-};
-
-template <bool integral_type>
-struct is_signed_select_helper
-{
-   template <class T>
-   struct rebind
-   {
-      typedef is_signed_helper<T> type;
-   };
-};
-
-template <>
-struct is_signed_select_helper<false>
-{
-   template <class T>
-   struct rebind
-   {
-      typedef false_type type;
-   };
-};
-
-template <class T>
-struct is_signed_imp
-{
-   typedef is_signed_select_helper< 
-      ::boost::type_traits::ice_or<
-         ::boost::is_integral<T>::value,
-         ::boost::is_enum<T>::value>::value 
-   > selector;
-   typedef typename selector::template rebind<T> binder;
-   typedef typename binder::type type;
-#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
-   BOOST_STATIC_CONSTANT(bool, value = is_signed_imp<T>::type::value);
-#else
-   BOOST_STATIC_CONSTANT(bool, value = type::value);
-#endif
-};
-
-#else
-
-template <class T> struct is_signed_imp : public false_type{};
-template <> struct is_signed_imp<signed char> : public true_type{};
-template <> struct is_signed_imp<const signed char> : public true_type{};
-template <> struct is_signed_imp<volatile signed char> : public true_type{};
-template <> struct is_signed_imp<const volatile signed char> : public true_type{};
-template <> struct is_signed_imp<short> : public true_type{};
-template <> struct is_signed_imp<const short> : public true_type{};
-template <> struct is_signed_imp<volatile short> : public true_type{};
-template <> struct is_signed_imp<const volatile short> : public true_type{};
-template <> struct is_signed_imp<int> : public true_type{};
-template <> struct is_signed_imp<const int> : public true_type{};
-template <> struct is_signed_imp<volatile int> : public true_type{};
-template <> struct is_signed_imp<const volatile int> : public true_type{};
-template <> struct is_signed_imp<long> : public true_type{};
-template <> struct is_signed_imp<const long> : public true_type{};
-template <> struct is_signed_imp<volatile long> : public true_type{};
-template <> struct is_signed_imp<const volatile long> : public true_type{};
-#ifdef BOOST_HAS_LONG_LONG
-template <> struct is_signed_imp<long long> : public true_type{};
-template <> struct is_signed_imp<const long long> : public true_type{};
-template <> struct is_signed_imp<volatile long long> : public true_type{};
-template <> struct is_signed_imp<const volatile long long> : public true_type{};
-#endif
-#if defined(CHAR_MIN) && (CHAR_MIN != 0)
-template <> struct is_signed_imp<char> : public true_type{};
-template <> struct is_signed_imp<const char> : public true_type{};
-template <> struct is_signed_imp<volatile char> : public true_type{};
-template <> struct is_signed_imp<const volatile char> : public true_type{};
-#endif
-#if defined(WCHAR_MIN) && (WCHAR_MIN != 0)
-template <> struct is_signed_imp<wchar_t> : public true_type{};
-template <> struct is_signed_imp<const wchar_t> : public true_type{};
-template <> struct is_signed_imp<volatile wchar_t> : public true_type{};
-template <> struct is_signed_imp<const volatile wchar_t> : public true_type{};
-#endif
-
-#endif
-
-}
-
-#endif // !defined( __CODEGEARC__ )
-
-#if defined( __CODEGEARC__ )
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_signed,T,__is_signed(T))
-#else
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_signed,T,::boost::detail::is_signed_imp<T>::value)
-#endif
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED
diff --git a/boost/type_traits/is_stateless.hpp b/boost/type_traits/is_stateless.hpp
deleted file mode 100644
index d8d4063..0000000
--- a/boost/type_traits/is_stateless.hpp
+++ /dev/null
@@ -1,48 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_IS_STATELESS_HPP_INCLUDED
-#define BOOST_TT_IS_STATELESS_HPP_INCLUDED
-
-#include <boost/type_traits/has_trivial_constructor.hpp>
-#include <boost/type_traits/has_trivial_copy.hpp>
-#include <boost/type_traits/has_trivial_destructor.hpp>
-#include <boost/type_traits/is_class.hpp>
-#include <boost/type_traits/is_empty.hpp>
-#include <boost/type_traits/detail/ice_and.hpp>
-#include <boost/config.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-namespace detail {
-
-template <typename T>
-struct is_stateless_impl
-{
-  BOOST_STATIC_CONSTANT(bool, value = 
-    (::boost::type_traits::ice_and<
-       ::boost::has_trivial_constructor<T>::value,
-       ::boost::has_trivial_copy<T>::value,
-       ::boost::has_trivial_destructor<T>::value,
-       ::boost::is_class<T>::value,
-       ::boost::is_empty<T>::value
-     >::value));
-};
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_stateless,T,::boost::detail::is_stateless_impl<T>::value)
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_STATELESS_HPP_INCLUDED
diff --git a/boost/type_traits/is_union.hpp b/boost/type_traits/is_union.hpp
deleted file mode 100644
index 610f162..0000000
--- a/boost/type_traits/is_union.hpp
+++ /dev/null
@@ -1,57 +0,0 @@
-
-//  (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-//  Hinnant & John Maddock 2000.  
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-
-#ifndef BOOST_TT_IS_UNION_HPP_INCLUDED
-#define BOOST_TT_IS_UNION_HPP_INCLUDED
-
-#include <boost/type_traits/remove_cv.hpp>
-#include <boost/type_traits/config.hpp>
-#include <boost/type_traits/intrinsics.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-namespace detail {
-#ifndef __GNUC__
-template <typename T> struct is_union_impl
-{
-   typedef typename remove_cv<T>::type cvt;
-#ifdef BOOST_IS_UNION
-   BOOST_STATIC_CONSTANT(bool, value = BOOST_IS_UNION(cvt));
-#else
-   BOOST_STATIC_CONSTANT(bool, value = false);
-#endif
-};
-#else
-//
-// using remove_cv here generates a whole load of needless
-// warnings with gcc, since it doesn't do any good with gcc
-// in any case (at least at present), just remove it:
-//
-template <typename T> struct is_union_impl
-{
-#ifdef BOOST_IS_UNION
-   BOOST_STATIC_CONSTANT(bool, value = BOOST_IS_UNION(T));
-#else
-   BOOST_STATIC_CONSTANT(bool, value = false);
-#endif
-};
-#endif
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_union,T,::boost::detail::is_union_impl<T>::value)
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_UNION_HPP_INCLUDED
diff --git a/boost/type_traits/is_unsigned.hpp b/boost/type_traits/is_unsigned.hpp
deleted file mode 100644
index 0602838..0000000
--- a/boost/type_traits/is_unsigned.hpp
+++ /dev/null
@@ -1,135 +0,0 @@
-
-//  (C) Copyright John Maddock 2005.  
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-
-#ifndef BOOST_TT_IS_UNSIGNED_HPP_INCLUDED
-#define BOOST_TT_IS_UNSIGNED_HPP_INCLUDED
-
-#include <boost/type_traits/is_integral.hpp>
-#include <boost/type_traits/is_enum.hpp>
-#include <boost/type_traits/remove_cv.hpp>
-#include <boost/type_traits/detail/ice_or.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-#if !defined( __CODEGEARC__ )
-
-namespace detail{
-
-#if !(defined(__EDG_VERSION__) && __EDG_VERSION__ <= 238) && !defined(BOOST_NO_INCLASS_MEMBER_INITIALIZATION)
-
-template <class T>
-struct is_unsigned_values
-{
-   //
-   // Note that we cannot use BOOST_STATIC_CONSTANT here, using enum's
-   // rather than "real" static constants simply doesn't work or give
-   // the correct answer.
-   //
-   typedef typename remove_cv<T>::type no_cv_t;
-   static const no_cv_t minus_one = (static_cast<no_cv_t>(-1));
-   static const no_cv_t zero = (static_cast<no_cv_t>(0));
-};
-
-template <class T>
-struct is_ununsigned_helper
-{
-   BOOST_STATIC_CONSTANT(bool, value = (::boost::detail::is_unsigned_values<T>::minus_one > ::boost::detail::is_unsigned_values<T>::zero));
-};
-
-template <bool integral_type>
-struct is_ununsigned_select_helper
-{
-   template <class T>
-   struct rebind
-   {
-      typedef is_ununsigned_helper<T> type;
-   };
-};
-
-template <>
-struct is_ununsigned_select_helper<false>
-{
-   template <class T>
-   struct rebind
-   {
-      typedef false_type type;
-   };
-};
-
-template <class T>
-struct is_unsigned_imp
-{
-   typedef is_ununsigned_select_helper< 
-      ::boost::type_traits::ice_or<
-         ::boost::is_integral<T>::value,
-         ::boost::is_enum<T>::value>::value 
-   > selector;
-   typedef typename selector::template rebind<T> binder;
-   typedef typename binder::type type;
-   BOOST_STATIC_CONSTANT(bool, value = type::value);
-};
-
-#else
-
-template <class T> struct is_unsigned_imp : public false_type{};
-template <> struct is_unsigned_imp<unsigned char> : public true_type{};
-template <> struct is_unsigned_imp<const unsigned char> : public true_type{};
-template <> struct is_unsigned_imp<volatile unsigned char> : public true_type{};
-template <> struct is_unsigned_imp<const volatile unsigned char> : public true_type{};
-template <> struct is_unsigned_imp<unsigned short> : public true_type{};
-template <> struct is_unsigned_imp<const unsigned short> : public true_type{};
-template <> struct is_unsigned_imp<volatile unsigned short> : public true_type{};
-template <> struct is_unsigned_imp<const volatile unsigned short> : public true_type{};
-template <> struct is_unsigned_imp<unsigned int> : public true_type{};
-template <> struct is_unsigned_imp<const unsigned int> : public true_type{};
-template <> struct is_unsigned_imp<volatile unsigned int> : public true_type{};
-template <> struct is_unsigned_imp<const volatile unsigned int> : public true_type{};
-template <> struct is_unsigned_imp<unsigned long> : public true_type{};
-template <> struct is_unsigned_imp<const unsigned long> : public true_type{};
-template <> struct is_unsigned_imp<volatile unsigned long> : public true_type{};
-template <> struct is_unsigned_imp<const volatile unsigned long> : public true_type{};
-#ifdef BOOST_HAS_LONG_LONG
-template <> struct is_unsigned_imp<unsigned long long> : public true_type{};
-template <> struct is_unsigned_imp<const unsigned long long> : public true_type{};
-template <> struct is_unsigned_imp<volatile unsigned long long> : public true_type{};
-template <> struct is_unsigned_imp<const volatile unsigned long long> : public true_type{};
-#endif
-#if defined(CHAR_MIN) && (CHAR_MIN == 0)
-template <> struct is_unsigned_imp<char> : public true_type{};
-template <> struct is_unsigned_imp<const char> : public true_type{};
-template <> struct is_unsigned_imp<volatile char> : public true_type{};
-template <> struct is_unsigned_imp<const volatile char> : public true_type{};
-#endif
-#if defined(WCHAR_MIN) && (WCHAR_MIN == 0) && !defined(BOOST_NO_INTRINSIC_WCHAR_T)
-template <> struct is_unsigned_imp<wchar_t> : public true_type{};
-template <> struct is_unsigned_imp<const wchar_t> : public true_type{};
-template <> struct is_unsigned_imp<volatile wchar_t> : public true_type{};
-template <> struct is_unsigned_imp<const volatile wchar_t> : public true_type{};
-#endif
-
-#endif
-
-}
-
-#endif // !defined( __CODEGEARC__ )
-
-#if defined( __CODEGEARC__ )
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_unsigned,T,__is_unsigned(T))
-#else
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_unsigned,T,::boost::detail::is_unsigned_imp<T>::value)
-#endif
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED
diff --git a/boost/type_traits/is_virtual_base_of.hpp b/boost/type_traits/is_virtual_base_of.hpp
deleted file mode 100644
index f57cb61..0000000
--- a/boost/type_traits/is_virtual_base_of.hpp
+++ /dev/null
@@ -1,104 +0,0 @@
-//  (C) Copyright Daniel Frey and Robert Ramey 2009.
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
- 
-#ifndef BOOST_TT_IS_VIRTUAL_BASE_OF_HPP_INCLUDED
-#define BOOST_TT_IS_VIRTUAL_BASE_OF_HPP_INCLUDED
-
-#include <boost/type_traits/is_base_of.hpp>
-#include <boost/type_traits/is_same.hpp>
-#include <boost/mpl/and.hpp>
-#include <boost/mpl/not.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-namespace detail {
-
-
-#ifdef BOOST_MSVC
-#pragma warning( push )
-#pragma warning( disable : 4584 4250)
-#elif defined(__GNUC__) && (__GNUC__ >= 4)
-#pragma GCC system_header
-#endif
-
-template<typename Base, typename Derived, typename tag>
-struct is_virtual_base_of_impl
-{
-    BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template<typename Base, typename Derived>
-struct is_virtual_base_of_impl<Base, Derived, mpl::true_>
-{
-#ifdef __BORLANDC__
-    struct boost_type_traits_internal_struct_X : public virtual Derived, public virtual Base 
-    {
-       boost_type_traits_internal_struct_X();
-       boost_type_traits_internal_struct_X(const boost_type_traits_internal_struct_X&);
-       boost_type_traits_internal_struct_X& operator=(const boost_type_traits_internal_struct_X&);
-       ~boost_type_traits_internal_struct_X()throw();
-    };
-    struct boost_type_traits_internal_struct_Y : public virtual Derived 
-    {
-       boost_type_traits_internal_struct_Y();
-       boost_type_traits_internal_struct_Y(const boost_type_traits_internal_struct_Y&);
-       boost_type_traits_internal_struct_Y& operator=(const boost_type_traits_internal_struct_Y&);
-       ~boost_type_traits_internal_struct_Y()throw();
-    };
-#else
-    struct boost_type_traits_internal_struct_X : public Derived, virtual Base 
-    {
-       boost_type_traits_internal_struct_X();
-       boost_type_traits_internal_struct_X(const boost_type_traits_internal_struct_X&);
-       boost_type_traits_internal_struct_X& operator=(const boost_type_traits_internal_struct_X&);
-       ~boost_type_traits_internal_struct_X()throw();
-    };
-    struct boost_type_traits_internal_struct_Y : public Derived 
-    {
-       boost_type_traits_internal_struct_Y();
-       boost_type_traits_internal_struct_Y(const boost_type_traits_internal_struct_Y&);
-       boost_type_traits_internal_struct_Y& operator=(const boost_type_traits_internal_struct_Y&);
-       ~boost_type_traits_internal_struct_Y()throw();
-    };
-#endif
-    BOOST_STATIC_CONSTANT(bool, value = (sizeof(boost_type_traits_internal_struct_X)==sizeof(boost_type_traits_internal_struct_Y)));
-};
-
-template<typename Base, typename Derived>
-struct is_virtual_base_of_impl2
-{
-   typedef typename mpl::and_<is_base_of<Base, Derived>, mpl::not_<is_same<Base, Derived> > >::type tag_type;
-   typedef is_virtual_base_of_impl<Base, Derived, tag_type> imp;
-   BOOST_STATIC_CONSTANT(bool, value = imp::value);
-};
-
-#ifdef BOOST_MSVC
-#pragma warning( pop )
-#endif
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF2(
-      is_virtual_base_of
-       , Base
-       , Derived
-       , (::boost::detail::is_virtual_base_of_impl2<Base,Derived>::value) 
-)
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2(typename Base,typename Derived,is_virtual_base_of,Base&,Derived,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2(typename Base,typename Derived,is_virtual_base_of,Base,Derived&,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2(typename Base,typename Derived,is_virtual_base_of,Base&,Derived&,false)
-#endif
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif
diff --git a/boost/type_traits/is_void.hpp b/boost/type_traits/is_void.hpp
deleted file mode 100644
index 6f6fbff..0000000
--- a/boost/type_traits/is_void.hpp
+++ /dev/null
@@ -1,38 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_IS_VOID_HPP_INCLUDED
-#define BOOST_TT_IS_VOID_HPP_INCLUDED
-
-#include <boost/config.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-//* is a type T void - is_void<T>
-#if defined( __CODEGEARC__ )
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_void,T,__is_void(T))
-#else
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_void,T,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_void,void,true)
-
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_void,void const,true)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_void,void volatile,true)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_void,void const volatile,true)
-#endif
-
-#endif  // non-CodeGear implementation
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_VOID_HPP_INCLUDED
diff --git a/boost/type_traits/is_volatile.hpp b/boost/type_traits/is_volatile.hpp
deleted file mode 100644
index c921c9e..0000000
--- a/boost/type_traits/is_volatile.hpp
+++ /dev/null
@@ -1,152 +0,0 @@
-
-//  (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, 
-//      Howard Hinnant and John Maddock 2000. 
-//  (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 2001
-
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-//    Fixed is_pointer, is_reference, is_const, is_volatile, is_same, 
-//    is_member_pointer based on the Simulated Partial Specialization work 
-//    of Mat Marcus and Jesse Jones. See  http://opensource.adobe.com or 
-//    http://groups.yahoo.com/group/boost/message/5441 
-//    Some workarounds in here use ideas suggested from "Generic<Programming>: 
-//    Mappings between Types and Values" 
-//    by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html).
-
-
-#ifndef BOOST_TT_IS_VOLATILE_HPP_INCLUDED
-#define BOOST_TT_IS_VOLATILE_HPP_INCLUDED
-
-#include <boost/config.hpp>
-#include <boost/detail/workaround.hpp>
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#   include <boost/type_traits/detail/cv_traits_impl.hpp>
-#   if BOOST_WORKAROUND(BOOST_MSVC, < 1400)
-#       include <boost/type_traits/remove_bounds.hpp>
-#   endif
-#else
-#   include <boost/type_traits/is_reference.hpp>
-#   include <boost/type_traits/is_array.hpp>
-#   include <boost/type_traits/detail/yes_no_type.hpp>
-#   include <boost/type_traits/detail/false_result.hpp>
-#endif
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-namespace detail{
-template <class T>
-struct is_volatile_rval_filter
-{
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1400)
-   BOOST_STATIC_CONSTANT(bool, value = ::boost::detail::cv_traits_imp<typename boost::remove_bounds<T>::type*>::is_volatile);
-#else
-   BOOST_STATIC_CONSTANT(bool, value = ::boost::detail::cv_traits_imp<T*>::is_volatile);
-#endif
-};
-#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
-//
-// We can't filter out rvalue_references at the same level as
-// references or we get ambiguities from msvc:
-//
-template <class T>
-struct is_volatile_rval_filter<T&&>
-{
-   BOOST_STATIC_CONSTANT(bool, value = false);
-};
-#endif
-}
-
-#if defined( __CODEGEARC__ )
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_volatile,T,__is_volatile(T))
-#elif !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-//* is a type T declared volatile - is_volatile<T>
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_volatile,T,::boost::detail::is_volatile_rval_filter<T>::value)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_volatile,T&,false)
-
-#if  defined(BOOST_ILLEGAL_CV_REFERENCES)
-// these are illegal specialisations; cv-qualifies applied to
-// references have no effect according to [8.3.2p1],
-// C++ Builder requires them though as it treats cv-qualified
-// references as distinct types...
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_volatile,T& const,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_volatile,T& volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_volatile,T& const volatile,false)
-#endif
-
-#else
-
-namespace detail {
-
-using ::boost::type_traits::yes_type;
-using ::boost::type_traits::no_type;
-
-yes_type is_volatile_tester(void const volatile*);
-no_type is_volatile_tester(void const*);
-
-template <bool is_ref, bool array>
-struct is_volatile_helper
-    : public ::boost::type_traits::false_result
-{
-};
-
-template <>
-struct is_volatile_helper<false,false>
-{
-    template <typename T> struct result_
-    {
-        static T* t;
-        BOOST_STATIC_CONSTANT(bool, value = (
-            sizeof(boost::detail::yes_type) == sizeof(boost::detail::is_volatile_tester(t))
-            ));
-    };
-};
-
-template <>
-struct is_volatile_helper<false,true>
-{
-    template <typename T> struct result_
-    {
-        static T t;
-        BOOST_STATIC_CONSTANT(bool, value = (
-            sizeof(boost::detail::yes_type) == sizeof(boost::detail::is_volatile_tester(&t))
-            ));
-    };
-};
-
-template <typename T>
-struct is_volatile_impl
-    : public is_volatile_helper<
-          is_reference<T>::value
-        , is_array<T>::value
-        >::template result_<T>
-{
-};
-
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_volatile,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_volatile,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_volatile,void volatile,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_volatile,void const volatile,true)
-#endif
-
-} // namespace detail
-
-//* is a type T declared volatile - is_volatile<T>
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_volatile,T,::boost::detail::is_volatile_impl<T>::value)
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_VOLATILE_HPP_INCLUDED
diff --git a/boost/type_traits/make_signed.hpp b/boost/type_traits/make_signed.hpp
deleted file mode 100644
index 7deb855..0000000
--- a/boost/type_traits/make_signed.hpp
+++ /dev/null
@@ -1,153 +0,0 @@
-
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_MAKE_SIGNED_HPP_INCLUDED
-#define BOOST_TT_MAKE_SIGNED_HPP_INCLUDED
-
-#include <boost/mpl/if.hpp>
-#include <boost/type_traits/is_integral.hpp>
-#include <boost/type_traits/is_signed.hpp>
-#include <boost/type_traits/is_unsigned.hpp>
-#include <boost/type_traits/is_enum.hpp>
-#include <boost/type_traits/is_same.hpp>
-#include <boost/type_traits/remove_cv.hpp>
-#include <boost/type_traits/is_const.hpp>
-#include <boost/type_traits/is_volatile.hpp>
-#include <boost/type_traits/add_const.hpp>
-#include <boost/type_traits/add_volatile.hpp>
-#include <boost/type_traits/detail/ice_or.hpp>
-#include <boost/type_traits/detail/ice_and.hpp>
-#include <boost/type_traits/detail/ice_not.hpp>
-#include <boost/static_assert.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/type_trait_def.hpp>
-
-namespace boost {
-
-namespace detail {
-
-template <class T>
-struct make_signed_imp
-{
-   BOOST_STATIC_ASSERT(
-      (::boost::type_traits::ice_or< ::boost::is_integral<T>::value, ::boost::is_enum<T>::value>::value));
-#if !BOOST_WORKAROUND(BOOST_MSVC, <=1300)
-   BOOST_STATIC_ASSERT(
-      (::boost::type_traits::ice_not< ::boost::is_same<
-         typename remove_cv<T>::type, bool>::value>::value));
-#endif
-
-   typedef typename remove_cv<T>::type t_no_cv;
-   typedef typename mpl::if_c<
-      (::boost::type_traits::ice_and< 
-         ::boost::is_signed<T>::value,
-         ::boost::is_integral<T>::value,
-         ::boost::type_traits::ice_not< ::boost::is_same<t_no_cv, char>::value>::value,
-         ::boost::type_traits::ice_not< ::boost::is_same<t_no_cv, wchar_t>::value>::value,
-         ::boost::type_traits::ice_not< ::boost::is_same<t_no_cv, bool>::value>::value >::value),
-      T,
-      typename mpl::if_c<
-         (::boost::type_traits::ice_and< 
-            ::boost::is_integral<T>::value,
-            ::boost::type_traits::ice_not< ::boost::is_same<t_no_cv, char>::value>::value,
-            ::boost::type_traits::ice_not< ::boost::is_same<t_no_cv, wchar_t>::value>::value,
-            ::boost::type_traits::ice_not< ::boost::is_same<t_no_cv, bool>::value>::value>
-         ::value),
-         typename mpl::if_<
-            is_same<t_no_cv, unsigned char>,
-            signed char,
-            typename mpl::if_<
-               is_same<t_no_cv, unsigned short>,
-               signed short,
-               typename mpl::if_<
-                  is_same<t_no_cv, unsigned int>,
-                  int,
-                  typename mpl::if_<
-                     is_same<t_no_cv, unsigned long>,
-                     long,
-#if defined(BOOST_HAS_LONG_LONG)
-#ifdef BOOST_HAS_INT128
-                     typename mpl::if_c<
-                        sizeof(t_no_cv) == sizeof(boost::long_long_type), 
-                        boost::long_long_type, 
-                        boost::int128_type
-                     >::type
-#else
-                     boost::long_long_type
-#endif
-#elif defined(BOOST_HAS_MS_INT64)
-                     __int64
-#else
-                     long
-#endif
-                  >::type
-               >::type
-            >::type
-         >::type,
-         // Not a regular integer type:
-         typename mpl::if_c<
-            sizeof(t_no_cv) == sizeof(unsigned char),
-            signed char,
-            typename mpl::if_c<
-               sizeof(t_no_cv) == sizeof(unsigned short),
-               signed short,
-               typename mpl::if_c<
-                  sizeof(t_no_cv) == sizeof(unsigned int),
-                  int,
-                  typename mpl::if_c<
-                     sizeof(t_no_cv) == sizeof(unsigned long),
-                     long,
-#if defined(BOOST_HAS_LONG_LONG)
-#ifdef BOOST_HAS_INT128
-                     typename mpl::if_c<
-                        sizeof(t_no_cv) == sizeof(boost::long_long_type), 
-                        boost::long_long_type, 
-                        boost::int128_type
-                     >::type
-#else
-                     boost::long_long_type
-#endif
-#elif defined(BOOST_HAS_MS_INT64)
-                     __int64
-#else
-                     long
-#endif
-                  >::type
-               >::type
-            >::type
-         >::type
-      >::type
-   >::type base_integer_type;
-   
-   // Add back any const qualifier:
-   typedef typename mpl::if_<
-      is_const<T>,
-      typename add_const<base_integer_type>::type,
-      base_integer_type
-   >::type const_base_integer_type;
-   
-   // Add back any volatile qualifier:
-   typedef typename mpl::if_<
-      is_volatile<T>,
-      typename add_volatile<const_base_integer_type>::type,
-      const_base_integer_type
-   >::type type;
-};
-
-
-} // namespace detail
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(make_signed,T,typename boost::detail::make_signed_imp<T>::type)
-
-} // namespace boost
-
-#include <boost/type_traits/detail/type_trait_undef.hpp>
-
-#endif // BOOST_TT_ADD_REFERENCE_HPP_INCLUDED
-
diff --git a/boost/type_traits/make_unsigned.hpp b/boost/type_traits/make_unsigned.hpp
deleted file mode 100644
index 7e2fcdc..0000000
--- a/boost/type_traits/make_unsigned.hpp
+++ /dev/null
@@ -1,153 +0,0 @@
-
-//  (C) Copyright John Maddock 2007.
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_MAKE_UNSIGNED_HPP_INCLUDED
-#define BOOST_TT_MAKE_UNSIGNED_HPP_INCLUDED
-
-#include <boost/mpl/if.hpp>
-#include <boost/type_traits/is_integral.hpp>
-#include <boost/type_traits/is_signed.hpp>
-#include <boost/type_traits/is_unsigned.hpp>
-#include <boost/type_traits/is_enum.hpp>
-#include <boost/type_traits/is_same.hpp>
-#include <boost/type_traits/remove_cv.hpp>
-#include <boost/type_traits/is_const.hpp>
-#include <boost/type_traits/is_volatile.hpp>
-#include <boost/type_traits/add_const.hpp>
-#include <boost/type_traits/add_volatile.hpp>
-#include <boost/type_traits/detail/ice_or.hpp>
-#include <boost/type_traits/detail/ice_and.hpp>
-#include <boost/type_traits/detail/ice_not.hpp>
-#include <boost/static_assert.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/type_trait_def.hpp>
-
-namespace boost {
-
-namespace detail {
-
-template <class T>
-struct make_unsigned_imp
-{
-   BOOST_STATIC_ASSERT(
-      (::boost::type_traits::ice_or< ::boost::is_integral<T>::value, ::boost::is_enum<T>::value>::value));
-#if !BOOST_WORKAROUND(BOOST_MSVC, <=1300)
-   BOOST_STATIC_ASSERT(
-      (::boost::type_traits::ice_not< ::boost::is_same<
-         typename remove_cv<T>::type, bool>::value>::value));
-#endif
-
-   typedef typename remove_cv<T>::type t_no_cv;
-   typedef typename mpl::if_c<
-      (::boost::type_traits::ice_and< 
-         ::boost::is_unsigned<T>::value,
-         ::boost::is_integral<T>::value,
-         ::boost::type_traits::ice_not< ::boost::is_same<t_no_cv, char>::value>::value,
-         ::boost::type_traits::ice_not< ::boost::is_same<t_no_cv, wchar_t>::value>::value,
-         ::boost::type_traits::ice_not< ::boost::is_same<t_no_cv, bool>::value>::value >::value),
-      T,
-      typename mpl::if_c<
-         (::boost::type_traits::ice_and< 
-            ::boost::is_integral<T>::value,
-            ::boost::type_traits::ice_not< ::boost::is_same<t_no_cv, char>::value>::value,
-            ::boost::type_traits::ice_not< ::boost::is_same<t_no_cv, wchar_t>::value>::value,
-            ::boost::type_traits::ice_not< ::boost::is_same<t_no_cv, bool>::value>::value>
-         ::value),
-         typename mpl::if_<
-            is_same<t_no_cv, signed char>,
-            unsigned char,
-            typename mpl::if_<
-               is_same<t_no_cv, short>,
-               unsigned short,
-               typename mpl::if_<
-                  is_same<t_no_cv, int>,
-                  unsigned int,
-                  typename mpl::if_<
-                     is_same<t_no_cv, long>,
-                     unsigned long,
-#if defined(BOOST_HAS_LONG_LONG)
-#ifdef BOOST_HAS_INT128
-                     typename mpl::if_c<
-                        sizeof(t_no_cv) == sizeof(boost::ulong_long_type), 
-                        boost::ulong_long_type, 
-                        boost::uint128_type
-                     >::type
-#else
-                     boost::ulong_long_type
-#endif
-#elif defined(BOOST_HAS_MS_INT64)
-                     unsigned __int64
-#else
-                     unsigned long
-#endif
-                  >::type
-               >::type
-            >::type
-         >::type,
-         // Not a regular integer type:
-         typename mpl::if_c<
-            sizeof(t_no_cv) == sizeof(unsigned char),
-            unsigned char,
-            typename mpl::if_c<
-               sizeof(t_no_cv) == sizeof(unsigned short),
-               unsigned short,
-               typename mpl::if_c<
-                  sizeof(t_no_cv) == sizeof(unsigned int),
-                  unsigned int,
-                  typename mpl::if_c<
-                     sizeof(t_no_cv) == sizeof(unsigned long),
-                     unsigned long,
-#if defined(BOOST_HAS_LONG_LONG)
-#ifdef BOOST_HAS_INT128
-                     typename mpl::if_c<
-                        sizeof(t_no_cv) == sizeof(boost::ulong_long_type), 
-                        boost::ulong_long_type, 
-                        boost::uint128_type
-                     >::type
-#else
-                     boost::ulong_long_type
-#endif
-#elif defined(BOOST_HAS_MS_INT64)
-                     unsigned __int64
-#else
-                     unsigned long
-#endif
-                  >::type
-               >::type
-            >::type
-         >::type
-      >::type
-   >::type base_integer_type;
-   
-   // Add back any const qualifier:
-   typedef typename mpl::if_<
-      is_const<T>,
-      typename add_const<base_integer_type>::type,
-      base_integer_type
-   >::type const_base_integer_type;
-   
-   // Add back any volatile qualifier:
-   typedef typename mpl::if_<
-      is_volatile<T>,
-      typename add_volatile<const_base_integer_type>::type,
-      const_base_integer_type
-   >::type type;
-};
-
-
-} // namespace detail
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(make_unsigned,T,typename boost::detail::make_unsigned_imp<T>::type)
-
-} // namespace boost
-
-#include <boost/type_traits/detail/type_trait_undef.hpp>
-
-#endif // BOOST_TT_ADD_REFERENCE_HPP_INCLUDED
-
diff --git a/boost/type_traits/msvc/remove_all_extents.hpp b/boost/type_traits/msvc/remove_all_extents.hpp
deleted file mode 100644
index 25c0edf..0000000
--- a/boost/type_traits/msvc/remove_all_extents.hpp
+++ /dev/null
@@ -1,47 +0,0 @@
-// Copyright (C) 2004 Peder Holt
-// Use, modification and distribution is subject to the Boost Software
-// License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_TYPE_TRAITS_MSVC_REMOVE_ALL_EXTENT_HOLT_2004_0827
-#define BOOST_TYPE_TRAITS_MSVC_REMOVE_ALL_EXTENT_HOLT_2004_0827
-
-#include <boost/type_traits/msvc/typeof.hpp>
-#include <boost/type_traits/is_array.hpp>
-
-namespace boost {
-    template<typename T>
-    struct remove_all_extents;
-
-    namespace detail {
-        template<bool IsArray>
-        struct remove_all_extents_impl_typeof {
-            template<typename T,typename ID>
-            struct inner {
-                typedef T type;
-            };
-        };
-        template<>
-        struct remove_all_extents_impl_typeof<true> {
-            template<typename T,typename ID>
-            struct inner {
-                template<typename U>
-                static msvc_register_type<U,ID> test(U[]);
-                static msvc_register_type<T,ID> test(...);
-                BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( *((T*)NULL) ) ));
-                typedef typename msvc_extract_type<ID>::id2type::type reduced_type;
-                typedef typename remove_all_extents<reduced_type>::type type;
-            };
-        };
-    } //namespace detail
-
-    template<typename T>
-    struct remove_all_extents {
-        typedef typename boost::detail::remove_all_extents_impl_typeof<
-            boost::is_array<T>::value                
-        >::template inner<T,remove_all_extents<T> >::type type;
-        BOOST_MPL_AUX_LAMBDA_SUPPORT(1,remove_all_extents,T)
-    };
-} //namespace boost
-
-#endif //BOOST_TYPE_TRAITS_MSVC_REMOVE_BOUNDS_HOLT_2004_0827
-
diff --git a/boost/type_traits/msvc/remove_bounds.hpp b/boost/type_traits/msvc/remove_bounds.hpp
deleted file mode 100644
index 4b23b35..0000000
--- a/boost/type_traits/msvc/remove_bounds.hpp
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright (C) 2004 Peder Holt
-// Use, modification and distribution is subject to the Boost Software
-// License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_TYPE_TRAITS_MSVC_REMOVE_BOUNDS_HOLT_2004_0827
-#define BOOST_TYPE_TRAITS_MSVC_REMOVE_BOUNDS_HOLT_2004_0827
-
-#include <boost/type_traits/msvc/typeof.hpp>
-#include <boost/type_traits/is_array.hpp>
-
-namespace boost {
-    namespace detail {
-        template<bool IsArray>
-        struct remove_bounds_impl_typeof {
-            template<typename T,typename ID>
-            struct inner {
-                typedef T type;
-            };
-        };
-        template<>
-        struct remove_bounds_impl_typeof<true> {
-            template<typename T,typename ID>
-            struct inner {
-                template<typename U>
-                static msvc_register_type<U,ID> test(U[]);
-                static msvc_register_type<T,ID> test(...);
-                BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( *((T*)NULL) ) ));
-                typedef typename msvc_extract_type<ID>::id2type::type type;
-            };
-        };
-    } //namespace detail
-
-    template<typename T>
-    struct remove_bounds {
-        typedef typename boost::detail::remove_bounds_impl_typeof<
-            boost::is_array<T>::value                
-        >::template inner<T,remove_bounds<T> >::type type;
-        BOOST_MPL_AUX_LAMBDA_SUPPORT(1,remove_bounds,T)
-    };
-} //namespace boost
-
-#endif //BOOST_TYPE_TRAITS_MSVC_REMOVE_BOUNDS_HOLT_2004_0827
-
diff --git a/boost/type_traits/msvc/remove_const.hpp b/boost/type_traits/msvc/remove_const.hpp
deleted file mode 100644
index d370754..0000000
--- a/boost/type_traits/msvc/remove_const.hpp
+++ /dev/null
@@ -1,143 +0,0 @@
-// Copyright (C) 2004 Peder Holt
-// Use, modification and distribution is subject to the Boost Software
-// License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_TYPE_TRAITS_MSVC_REMOVE_CONST_HOLT_2004_0828
-#define BOOST_TYPE_TRAITS_MSVC_REMOVE_CONST_HOLT_2004_0828
-
-#include <boost/type_traits/msvc/typeof.hpp>
-#include <boost/type_traits/is_volatile.hpp>
-#include <boost/type_traits/is_const.hpp>
-#include <boost/type_traits/is_pointer.hpp>
-#include <boost/type_traits/is_array.hpp>
-
-namespace boost {
-    namespace detail {
-        template<bool IsPointer,bool IsArray,bool IsConst,bool IsVolatile>
-        struct remove_const_impl_typeof {
-            template<typename T,typename ID>
-            struct inner {
-                typedef T type;
-            };
-            template<typename T>
-            struct transform_type {
-                typedef T type;
-            };
-        };
-        template<> //Const
-        struct remove_const_impl_typeof<false,false,true,false> {
-            template<typename T,typename ID>
-            struct inner {
-                template<typename U>
-                static msvc_register_type<U,ID> test(U const&(*)());
-                static msvc_register_type<T,ID> test(...);
-                BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (T(*)())(NULL) ) ));
-                typedef typename msvc_extract_type<ID>::id2type::type type;
-            };
-            template<typename T>
-            struct transform_type {
-                typedef T& type;
-            };
-        };
-        template<> //CV
-        struct remove_const_impl_typeof<false,false,true,true> {
-            template<typename T,typename ID>
-            struct inner {
-                template<typename U>
-                static msvc_register_type<U volatile,ID> test(U const volatile&(*)());
-                static msvc_register_type<T,ID> test(...);
-                BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (T(*)())(NULL) ) ));
-                typedef typename msvc_extract_type<ID>::id2type::type type;
-            };
-            template<typename T>
-            struct transform_type {
-                typedef T& type;
-            };
-        };
-        template<> //Const Pointer
-        struct remove_const_impl_typeof<true,false,true,false> {
-            template<typename T,typename ID>
-            struct inner {
-                template<typename U>
-                static msvc_register_type<U,ID> test(void(*)(U const[]));
-                static msvc_register_type<T,ID> test(...);
-                BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
-                typedef typename msvc_extract_type<ID>::id2type::type type;
-            };
-            template<typename T>
-            struct transform_type {
-                typedef T type[];
-            };
-        };
-        template<> //CV Pointer
-        struct remove_const_impl_typeof<true,false,true,true> {
-            template<typename T,typename ID>
-            struct inner {
-                template<typename U>
-                static msvc_register_type<U volatile,ID> test(void(*)(U const volatile[]));
-                static msvc_register_type<T,ID> test(...);
-                BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
-                typedef typename msvc_extract_type<ID>::id2type::type type;
-            };
-            template<typename T>
-            struct transform_type {
-                typedef T type[];
-            };
-        };        
-        template<> //Const Array
-        struct remove_const_impl_typeof<false,true,true,false> {
-            template<typename T,typename ID>
-            struct inner {
-                BOOST_STATIC_CONSTANT(unsigned,value=(sizeof(T)/sizeof((*((T*)NULL))[0])));
-
-                template<typename U>
-                static msvc_register_type<U[value],ID> test(void(*)(U const[]));
-                static msvc_register_type<T,ID> test(...);
-                BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
-                typedef typename msvc_extract_type<ID>::id2type::type type;
-            };
-            template<typename T>
-            struct transform_type {
-                typedef T type;
-            };
-        };
-
-        template<> //CV Array
-        struct remove_const_impl_typeof<false,true,true,true> {
-            template<typename T,typename ID>
-            struct inner {
-                BOOST_STATIC_CONSTANT(unsigned,value=(sizeof(T)/sizeof((*((T*)NULL))[0])));
-
-                template<typename U>
-                static msvc_register_type<U volatile[value],ID> test(void(*)(U const volatile[]));
-                static msvc_register_type<T,ID> test(...);
-                BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
-                typedef typename msvc_extract_type<ID>::id2type::type type;
-            };
-            template<typename T>
-            struct transform_type {
-                typedef T type;
-            };
-        };
-
-    } //namespace detail
-
-    template<typename T>
-    struct remove_const {
-        typedef boost::detail::remove_const_impl_typeof<
-            boost::is_pointer<T>::value,
-            boost::is_array<T>::value,
-            boost::is_const<T>::value,
-            boost::is_volatile<T>::value
-        > remove_const_type;
-        typedef typename 
-            remove_const_type::template inner<
-                typename remove_const_type::template transform_type<T>::type,
-                remove_const<T>
-            >::type
-        type;
-        BOOST_MPL_AUX_LAMBDA_SUPPORT(1,remove_const,T)
-    };
-}//namespace boost
-
-#endif //BOOST_TYPE_TRAITS_MSVC_REMOVE_CONST_HOLT_2004_0828
diff --git a/boost/type_traits/msvc/remove_cv.hpp b/boost/type_traits/msvc/remove_cv.hpp
deleted file mode 100644
index 9fbf8b8..0000000
--- a/boost/type_traits/msvc/remove_cv.hpp
+++ /dev/null
@@ -1,190 +0,0 @@
-// Copyright (C) 2004 Peder Holt
-// Use, modification and distribution is subject to the Boost Software
-// License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_TYPE_TRAITS_MSVC_REMOVE_CV_HOLT_2004_0901
-#define BOOST_TYPE_TRAITS_MSVC_REMOVE_CV_HOLT_2004_0901
-
-#include <boost/type_traits/msvc/typeof.hpp>
-#include <boost/type_traits/is_volatile.hpp>
-#include <boost/type_traits/is_const.hpp>
-#include <boost/type_traits/is_pointer.hpp>
-#include <boost/type_traits/is_array.hpp>
-
-namespace boost {
-    namespace detail {
-        template<bool IsPointer,bool IsArray,bool IsConst,bool IsVolatile>
-        struct remove_cv_impl_typeof {
-            template<typename T,typename ID>
-            struct inner {
-                typedef T type;
-            };
-            template<typename T>
-            struct transform_type {
-                typedef T type;
-            };
-        };
-        template<> //Volatile
-        struct remove_cv_impl_typeof<false,false,false,true> {
-            template<typename T,typename ID>
-            struct inner {
-                template<typename U>
-                static msvc_register_type<U,ID> test(U volatile&(*)());
-                static msvc_register_type<T,ID> test(...);
-                BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (T(*)())(NULL) ) ));
-                typedef typename msvc_extract_type<ID>::id2type::type type;
-            };
-            template<typename T>
-            struct transform_type {
-                typedef T& type;
-            };
-        };
-        template<> //Const
-        struct remove_cv_impl_typeof<false,false,true,false> {
-            template<typename T,typename ID>
-            struct inner {
-                template<typename U>
-                static msvc_register_type<U,ID> test(U const&(*)());
-                static msvc_register_type<T,ID> test(...);
-                BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (T(*)())(NULL) ) ));
-                typedef typename msvc_extract_type<ID>::id2type::type type;
-            };
-            template<typename T>
-            struct transform_type {
-                typedef T& type;
-            };
-        };
-        template<> //CV
-        struct remove_cv_impl_typeof<false,false,true,true> {
-            template<typename T,typename ID>
-            struct inner {
-                template<typename U>
-                static msvc_register_type<U,ID> test(U const volatile&(*)());
-                static msvc_register_type<T,ID> test(...);
-                BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (T(*)())(NULL) ) ));
-                typedef typename msvc_extract_type<ID>::id2type::type type;
-            };
-            template<typename T>
-            struct transform_type {
-                typedef T& type;
-            };
-        };
-        template<> //Volatile Pointer
-        struct remove_cv_impl_typeof<true,false,false,true> {
-            template<typename T,typename ID>
-            struct inner {
-                template<typename U>
-                static msvc_register_type<U,ID> test(void(*)(U volatile[]));
-                static msvc_register_type<T,ID> test(...);
-                BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
-                typedef typename msvc_extract_type<ID>::id2type::type type;
-            };
-            template<typename T>
-            struct transform_type {
-                typedef T type[];
-            };
-        };
-        template<> //Const Pointer
-        struct remove_cv_impl_typeof<true,false,true,false> {
-            template<typename T,typename ID>
-            struct inner {
-                template<typename U>
-                static msvc_register_type<U,ID> test(void(*)(U const[]));
-                static msvc_register_type<T,ID> test(...);
-                BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
-                typedef typename msvc_extract_type<ID>::id2type::type type;
-            };
-            template<typename T>
-            struct transform_type {
-                typedef T type[];
-            };
-        };
-        template<> //CV Pointer
-        struct remove_cv_impl_typeof<true,false,true,true> {
-            template<typename T,typename ID>
-            struct inner {
-                template<typename U>
-                static msvc_register_type<U,ID> test(void(*)(U const volatile[]));
-                static msvc_register_type<T,ID> test(...);
-                BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
-                typedef typename msvc_extract_type<ID>::id2type::type type;
-            };
-            template<typename T>
-            struct transform_type {
-                typedef T type[];
-            };
-        };        
-        template<> //Volatile Array
-        struct remove_cv_impl_typeof<false,true,false,true> {
-            template<typename T,typename ID>
-            struct inner {
-                BOOST_STATIC_CONSTANT(unsigned,value=(sizeof(T)/sizeof((*((T*)NULL))[0])));
-
-                template<typename U>
-                static msvc_register_type<U[value],ID> test(void(*)(U volatile[]));
-                static msvc_register_type<T,ID> test(...);
-                BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
-                typedef typename msvc_extract_type<ID>::id2type::type type;
-            };
-            template<typename T>
-            struct transform_type {
-                typedef T type;
-            };
-        };
-        template<> //Const Array
-        struct remove_cv_impl_typeof<false,true,true,false> {
-            template<typename T,typename ID>
-            struct inner {
-                BOOST_STATIC_CONSTANT(unsigned,value=(sizeof(T)/sizeof((*((T*)NULL))[0])));
-
-                template<typename U>
-                static msvc_register_type<U[value],ID> test(void(*)(U const[]));
-                static msvc_register_type<T,ID> test(...);
-                BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
-                typedef typename msvc_extract_type<ID>::id2type::type type;
-            };
-            template<typename T>
-            struct transform_type {
-                typedef T type;
-            };
-        };
-
-        template<> //CV Array
-        struct remove_cv_impl_typeof<false,true,true,true> {
-            template<typename T,typename ID>
-            struct inner {
-                BOOST_STATIC_CONSTANT(unsigned,value=(sizeof(T)/sizeof((*((T*)NULL))[0])));
-
-                template<typename U>
-                static msvc_register_type<U[value],ID> test(void(*)(U const volatile[]));
-                static msvc_register_type<T,ID> test(...);
-                BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
-                typedef typename msvc_extract_type<ID>::id2type::type type;
-            };
-            template<typename T>
-            struct transform_type {
-                typedef T type;
-            };
-        };
-
-    } //namespace detail
-
-    template<typename T>
-    struct remove_cv {
-        typedef boost::detail::remove_cv_impl_typeof<
-            boost::is_pointer<T>::value,
-            boost::is_array<T>::value,
-            boost::is_const<T>::value,
-            boost::is_volatile<T>::value
-        > remove_cv_type;
-        typedef typename 
-            remove_cv_type::template inner<
-                typename remove_cv_type::template transform_type<T>::type,
-                remove_cv<T>
-            >::type
-        type;
-        BOOST_MPL_AUX_LAMBDA_SUPPORT(1,remove_cv,T)
-    };
-}//namespace boost
-
-#endif //BOOST_TYPE_TRAITS_MSVC_REMOVE_CV_HOLT_2004_0901
diff --git a/boost/type_traits/msvc/remove_extent.hpp b/boost/type_traits/msvc/remove_extent.hpp
deleted file mode 100644
index c5a59ef..0000000
--- a/boost/type_traits/msvc/remove_extent.hpp
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright (C) 2004 Peder Holt
-// Use, modification and distribution is subject to the Boost Software
-// License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_TYPE_TRAITS_MSVC_REMOVE_EXTENT_HOLT_2004_0827
-#define BOOST_TYPE_TRAITS_MSVC_REMOVE_EXTENT_HOLT_2004_0827
-
-#include <boost/type_traits/msvc/typeof.hpp>
-#include <boost/type_traits/is_array.hpp>
-
-namespace boost {
-    namespace detail {
-        template<bool IsArray>
-        struct remove_extent_impl_typeof {
-            template<typename T,typename ID>
-            struct inner {
-                typedef T type;
-            };
-        };
-        template<>
-        struct remove_extent_impl_typeof<true> {
-            template<typename T,typename ID>
-            struct inner {
-                template<typename U>
-                static msvc_register_type<U,ID> test(U[]);
-                static msvc_register_type<T,ID> test(...);
-                BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( *((T*)NULL) ) ));
-                typedef typename msvc_extract_type<ID>::id2type::type type;
-            };
-        };
-    } //namespace detail
-
-    template<typename T>
-    struct remove_extent {
-        typedef typename boost::detail::remove_extent_impl_typeof<
-            boost::is_array<T>::value                
-        >::template inner<T,remove_extent<T> >::type type;
-        BOOST_MPL_AUX_LAMBDA_SUPPORT(1,remove_extent,T)
-    };
-} //namespace boost
-
-#endif //BOOST_TYPE_TRAITS_MSVC_REMOVE_BOUNDS_HOLT_2004_0827
-
diff --git a/boost/type_traits/msvc/remove_pointer.hpp b/boost/type_traits/msvc/remove_pointer.hpp
deleted file mode 100644
index ec847f9..0000000
--- a/boost/type_traits/msvc/remove_pointer.hpp
+++ /dev/null
@@ -1,42 +0,0 @@
-// Copyright (C) 2004 Peder Holt
-// Use, modification and distribution is subject to the Boost Software
-// License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_TYPE_TRAITS_MSVC_REMOVE_POINTER_HOLT_2004_0827
-#define BOOST_TYPE_TRAITS_MSVC_REMOVE_POINTER_HOLT_2004_0827
-
-#include <boost/type_traits/msvc/typeof.hpp>
-#include <boost/type_traits/is_pointer.hpp>
-
-namespace boost {
-    namespace detail {
-        template<int IsPointer>
-        struct remove_pointer_impl_typeof {
-            template<typename T,typename ID>
-            struct inner {
-                typedef T type;
-            };
-        };
-        template<>
-        struct remove_pointer_impl_typeof<true> {
-            template<typename T,typename ID>
-            struct inner {
-                template<typename U>
-                static msvc_register_type<U,ID> test(U*);
-                static msvc_register_type<T,ID> test(...);
-                BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( *((T*)NULL) ) ));
-                typedef typename msvc_extract_type<ID>::id2type::type type;
-            };
-        };
-    } //namespace detail
-
-    template<typename T>
-    struct remove_pointer {
-        typedef typename boost::detail::remove_pointer_impl_typeof<
-            boost::is_pointer<T>::value
-        >::template inner<T,remove_pointer<T> >::type type;
-        BOOST_MPL_AUX_LAMBDA_SUPPORT(1,remove_pointer,T)
-    };
-} //namespace boost
-
-#endif //BOOST_TYPE_TRAITS_REMOVE_POINTER_HOLT_2004_0827
diff --git a/boost/type_traits/msvc/remove_reference.hpp b/boost/type_traits/msvc/remove_reference.hpp
deleted file mode 100644
index f8a77d4..0000000
--- a/boost/type_traits/msvc/remove_reference.hpp
+++ /dev/null
@@ -1,42 +0,0 @@
-// Copyright (C) 2004 Peder Holt
-// Use, modification and distribution is subject to the Boost Software
-// License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_TYPE_TRAITS_MSVC_REMOVE_REFERENCE_HOLT_2004_0827
-#define BOOST_TYPE_TRAITS_MSVC_REMOVE_REFERENCE_HOLT_2004_0827
-
-#include <boost/type_traits/msvc/typeof.hpp>
-#include <boost/type_traits/is_reference.hpp>
-
-namespace boost {
-    namespace detail {
-        template<bool IsReference>
-        struct remove_reference_impl_typeof {
-            template<typename T,typename ID>
-            struct inner {
-                typedef T type;
-            };
-        };
-        template<>
-        struct remove_reference_impl_typeof<true> {
-            template<typename T,typename ID>
-            struct inner {
-                template<typename U>
-                static msvc_register_type<U,ID> test(U&(*)());
-                static msvc_register_type<T,ID> test(...);
-                BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (T(*)())(NULL) ) ));
-                typedef typename msvc_extract_type<ID>::id2type::type type;
-            };
-        };
-    } //namespace detail
-    
-    template<typename T>
-    struct remove_reference {
-        typedef typename boost::detail::remove_reference_impl_typeof<
-            boost::is_reference<T>::value
-        >::template inner<T,remove_reference<T> >::type type;
-        BOOST_MPL_AUX_LAMBDA_SUPPORT(1,remove_reference,T)
-    };
-} //namespace boost
-
-#endif //BOOST_TYPE_TRAITS_MSVC_REMOVE_REFERENCE_HOLT_2004_0827
diff --git a/boost/type_traits/msvc/remove_volatile.hpp b/boost/type_traits/msvc/remove_volatile.hpp
deleted file mode 100644
index 6f9259c..0000000
--- a/boost/type_traits/msvc/remove_volatile.hpp
+++ /dev/null
@@ -1,143 +0,0 @@
-// Copyright (C) 2004 Peder Holt
-// Use, modification and distribution is subject to the Boost Software
-// License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_TYPE_TRAITS_MSVC_REMOVE_VOLATILE_HOLT_2004_0828
-#define BOOST_TYPE_TRAITS_MSVC_REMOVE_VOLATILE_HOLT_2004_0828
-
-#include <boost/type_traits/msvc/typeof.hpp>
-#include <boost/type_traits/is_volatile.hpp>
-#include <boost/type_traits/is_const.hpp>
-#include <boost/type_traits/is_pointer.hpp>
-#include <boost/type_traits/is_array.hpp>
-
-namespace boost {
-    namespace detail {
-        template<bool IsPointer,bool IsArray,bool IsConst,bool IsVolatile>
-        struct remove_volatile_impl_typeof {
-            template<typename T,typename ID>
-            struct inner {
-                typedef T type;
-            };
-            template<typename T>
-            struct transform_type {
-                typedef T type;
-            };
-        };
-        template<> //Volatile
-        struct remove_volatile_impl_typeof<false,false,false,true> {
-            template<typename T,typename ID>
-            struct inner {
-                template<typename U>
-                static msvc_register_type<U,ID> test(U volatile&(*)());
-                static msvc_register_type<T,ID> test(...);
-                BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (T(*)())(NULL) ) ));
-                typedef typename msvc_extract_type<ID>::id2type::type type;
-            };            
-            template<typename T>
-            struct transform_type {
-                typedef T& type;
-            };
-        };
-        template<> //CV
-        struct remove_volatile_impl_typeof<false,false,true,true> {
-            template<typename T,typename ID>
-            struct inner {
-                template<typename U>
-                static msvc_register_type<U const,ID> test(U const volatile&(*)());
-                static msvc_register_type<T,ID> test(...);
-                BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (T(*)())(NULL) ) ));
-                typedef typename msvc_extract_type<ID>::id2type::type type;
-            };
-            template<typename T>
-            struct transform_type {
-                typedef T& type;
-            };
-        };
-        template<> //Volatile Pointer
-        struct remove_volatile_impl_typeof<true,false,false,true> {
-            template<typename T,typename ID>
-            struct inner {
-                template<typename U>
-                static msvc_register_type<U,ID> test(void(*)(U volatile[]));
-                static msvc_register_type<T,ID> test(...);
-                BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
-                typedef typename msvc_extract_type<ID>::id2type::type type;
-            };
-            template<typename T>
-            struct transform_type {
-                typedef T type[];
-            };
-        };
-        template<> //CV Pointer
-        struct remove_volatile_impl_typeof<true,false,true,true> {
-            template<typename T,typename ID>
-            struct inner {
-                template<typename U>
-                static msvc_register_type<U const,ID> test(void(*)(U const volatile[]));
-                static msvc_register_type<T,ID> test(...);
-                BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
-                typedef typename msvc_extract_type<ID>::id2type::type type;
-            };
-            template<typename T>
-            struct transform_type {
-                typedef T type[];
-            };
-        };        
-        template<> //Volatile Array
-        struct remove_volatile_impl_typeof<false,true,false,true> {
-            template<typename T,typename ID>
-            struct inner {
-                BOOST_STATIC_CONSTANT(unsigned,value=(sizeof(T)/sizeof((*((T*)NULL))[0])));
-
-                template<typename U>
-                static msvc_register_type<U[value],ID> test(void(*)(U volatile[]));
-                static msvc_register_type<T,ID> test(...);
-                BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
-                typedef typename msvc_extract_type<ID>::id2type::type type;                
-            };
-            template<typename T>
-            struct transform_type {
-                typedef T type;
-            };
-        };
-
-        template<> //CV Array
-        struct remove_volatile_impl_typeof<false,true,true,true> {
-            template<typename T,typename ID>
-            struct inner {
-                BOOST_STATIC_CONSTANT(unsigned,value=(sizeof(T)/sizeof((*((T*)NULL))[0])));
-
-                template<typename U>
-                static msvc_register_type<U const[value],ID> test(void(*)(U const volatile[]));
-                static msvc_register_type<T,ID> test(...);
-                BOOST_STATIC_CONSTANT(unsigned,register_test=sizeof(test( (void(*)(T))(NULL) ) ));
-                typedef typename msvc_extract_type<ID>::id2type::type type;
-            };
-            template<typename T>
-            struct transform_type {
-                typedef T type;
-            };
-        };
-
-    } //namespace detail
-
-    template<typename T>
-    struct remove_volatile {
-        typedef boost::detail::remove_volatile_impl_typeof<
-            boost::is_pointer<T>::value,
-            boost::is_array<T>::value,
-            boost::is_const<T>::value,
-            boost::is_volatile<T>::value
-        > remove_volatile_type;
-        typedef typename 
-            remove_volatile_type::template inner<
-                typename remove_volatile_type::template transform_type<T>::type,
-                remove_volatile<T>
-            >::type
-        type;
-        BOOST_MPL_AUX_LAMBDA_SUPPORT(1,remove_volatile,T)
-    };
-}//namespace boost
-
-#endif //BOOST_TYPE_TRAITS_MSVC_REMOVE_VOLATILE_HOLT_2004_0828
diff --git a/boost/type_traits/msvc/typeof.hpp b/boost/type_traits/msvc/typeof.hpp
deleted file mode 100644
index b95785d..0000000
--- a/boost/type_traits/msvc/typeof.hpp
+++ /dev/null
@@ -1,50 +0,0 @@
-// Copyright (C) 2004 Peder Holt
-// Use, modification and distribution is subject to the Boost Software
-// License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_TYPETRAITS_MSVC_TYPEOF_HPP
-#define BOOST_TYPETRAITS_MSVC_TYPEOF_HPP
-
-#include <boost/config.hpp>
-#include <boost/detail/workaround.hpp>
-
-namespace boost { namespace detail {
-# if BOOST_WORKAROUND(BOOST_MSVC,==1300)
-        template<typename ID>
-        struct msvc_extract_type
-        {
-            template<bool>
-            struct id2type_impl;
-
-            typedef id2type_impl<true> id2type;
-        };
-
-        template<typename T, typename ID>
-        struct msvc_register_type : public msvc_extract_type<ID>
-        {
-            template<>
-            struct id2type_impl<true>  //VC7.0 specific bugfeature
-            {
-                typedef T type;
-            };
-        };
-# else 
-        template<typename ID>
-        struct msvc_extract_type
-        {
-            struct id2type;
-        };
-
-        template<typename T, typename ID>
-        struct msvc_register_type : public msvc_extract_type<ID>
-        {
-            typedef msvc_extract_type<ID> base_type;
-            struct base_type::id2type // This uses nice VC6.5 and VC7.1 bugfeature
-            {
-                typedef T type;
-            };
-        };
-# endif
-}}
-
-#endif //BOOST_TYPETRAITS_MSVC_TYPEOF_IMPL_HPP
diff --git a/boost/type_traits/promote.hpp b/boost/type_traits/promote.hpp
deleted file mode 100644
index 60f6278..0000000
--- a/boost/type_traits/promote.hpp
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright 2005 Alexander Nasonov.
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef FILE_boost_type_traits_promote_hpp_INCLUDED
-#define FILE_boost_type_traits_promote_hpp_INCLUDED
-
-#include <boost/config.hpp>
-#include <boost/type_traits/integral_promotion.hpp>
-#include <boost/type_traits/floating_point_promotion.hpp>
-
-// Should be the last #include
-#include <boost/type_traits/detail/type_trait_def.hpp>
-
-namespace boost {
-
-namespace detail {
-
-template<class T>
-struct promote_impl
-  : public integral_promotion<
-        BOOST_DEDUCED_TYPENAME floating_point_promotion<T>::type
-      >
-{
-};
-
-}
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(
-      promote
-    , T
-    , BOOST_DEDUCED_TYPENAME boost::detail::promote_impl<T>::type
-    )
-}
-
-#include <boost/type_traits/detail/type_trait_undef.hpp>
-
-#endif // #ifndef FILE_boost_type_traits_promote_hpp_INCLUDED
-
diff --git a/boost/type_traits/rank.hpp b/boost/type_traits/rank.hpp
deleted file mode 100644
index 77df41e..0000000
--- a/boost/type_traits/rank.hpp
+++ /dev/null
@@ -1,89 +0,0 @@
-
-//  (C) Copyright John Maddock 2005.  
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-
-#ifndef BOOST_TT_RANK_HPP_INCLUDED
-#define BOOST_TT_RANK_HPP_INCLUDED
-
-// should be the last #include
-#include <boost/type_traits/detail/size_t_trait_def.hpp>
-
-namespace boost {
-
-#if !defined( __CODEGEARC__ )
-
-namespace detail{
-
-template <class T, std::size_t N>
-struct rank_imp
-{
-   BOOST_STATIC_CONSTANT(std::size_t, value = N);
-};
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
-template <class T, std::size_t R, std::size_t N>
-struct rank_imp<T[R], N>
-{
-   BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::rank_imp<T, N+1>::value));
-};
-
-template <class T, std::size_t R, std::size_t N>
-struct rank_imp<T const[R], N>
-{
-   BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::rank_imp<T, N+1>::value));
-};
-
-template <class T, std::size_t R, std::size_t N>
-struct rank_imp<T volatile[R], N>
-{
-   BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::rank_imp<T, N+1>::value));
-};
-
-template <class T, std::size_t R, std::size_t N>
-struct rank_imp<T const volatile[R], N>
-{
-   BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::rank_imp<T, N+1>::value));
-};
-
-#if !BOOST_WORKAROUND(__BORLANDC__, < 0x600) && !defined(__IBMCPP__) &&  !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
-template <class T, std::size_t N>
-struct rank_imp<T[], N>
-{
-   BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::rank_imp<T, N+1>::value));
-};
-template <class T, std::size_t N>
-struct rank_imp<T const[], N>
-{
-   BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::rank_imp<T, N+1>::value));
-};
-template <class T, std::size_t N>
-struct rank_imp<T volatile[], N>
-{
-   BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::rank_imp<T, N+1>::value));
-};
-template <class T, std::size_t N>
-struct rank_imp<T const volatile[], N>
-{
-   BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::rank_imp<T, N+1>::value));
-};
-#endif
-#endif
-}
-
-#endif // !defined( __CODEGEARC__ )
-
-#if defined( __CODEGEARC__ )
-BOOST_TT_AUX_SIZE_T_TRAIT_DEF1(rank,T,__array_rank(T))
-#else
-BOOST_TT_AUX_SIZE_T_TRAIT_DEF1(rank,T,(::boost::detail::rank_imp<T,0>::value))
-#endif
-
-} // namespace boost
-
-#include <boost/type_traits/detail/size_t_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED
diff --git a/boost/type_traits/remove_all_extents.hpp b/boost/type_traits/remove_all_extents.hpp
deleted file mode 100644
index 64876e1..0000000
--- a/boost/type_traits/remove_all_extents.hpp
+++ /dev/null
@@ -1,48 +0,0 @@
-
-//  (C) Copyright John Maddock 2005.
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_REMOVE_ALL_EXTENTS_HPP_INCLUDED
-#define BOOST_TT_REMOVE_ALL_EXTENTS_HPP_INCLUDED
-
-#include <boost/config.hpp>
-#include <cstddef>
-#include <boost/detail/workaround.hpp>
-
-#if BOOST_WORKAROUND(BOOST_MSVC,<=1300)
-#include <boost/type_traits/msvc/remove_all_extents.hpp>
-#endif
-
-// should be the last #include
-#include <boost/type_traits/detail/type_trait_def.hpp>
-
-#if !BOOST_WORKAROUND(BOOST_MSVC,<=1300)
-
-namespace boost {
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_all_extents,T,T)
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_all_extents,T[N],typename boost::remove_all_extents<T>::type type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_all_extents,T const[N],typename boost::remove_all_extents<T const>::type type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_all_extents,T volatile[N],typename boost::remove_all_extents<T volatile>::type type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_all_extents,T const volatile[N],typename boost::remove_all_extents<T const volatile>::type type)
-#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) && !defined(__IBMCPP__) &&  !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_all_extents,T[],typename boost::remove_all_extents<T>::type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_all_extents,T const[],typename boost::remove_all_extents<T const>::type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_all_extents,T volatile[],typename boost::remove_all_extents<T volatile>::type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_all_extents,T const volatile[],typename boost::remove_all_extents<T const volatile>::type)
-#endif
-#endif
-
-} // namespace boost
-
-#endif
-
-#include <boost/type_traits/detail/type_trait_undef.hpp>
-
-#endif // BOOST_TT_REMOVE_BOUNDS_HPP_INCLUDED
diff --git a/boost/type_traits/remove_bounds.hpp b/boost/type_traits/remove_bounds.hpp
deleted file mode 100644
index ce12978..0000000
--- a/boost/type_traits/remove_bounds.hpp
+++ /dev/null
@@ -1,48 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_REMOVE_BOUNDS_HPP_INCLUDED
-#define BOOST_TT_REMOVE_BOUNDS_HPP_INCLUDED
-
-#include <boost/config.hpp>
-#include <cstddef>
-#include <boost/detail/workaround.hpp>
-
-#if BOOST_WORKAROUND(BOOST_MSVC,<=1300)
-#include <boost/type_traits/msvc/remove_bounds.hpp>
-#endif
-
-// should be the last #include
-#include <boost/type_traits/detail/type_trait_def.hpp>
-
-#if !BOOST_WORKAROUND(BOOST_MSVC,<=1300)
-
-namespace boost {
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_bounds,T,T)
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_bounds,T[N],T type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_bounds,T const[N],T const type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_bounds,T volatile[N],T volatile type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_bounds,T const volatile[N],T const volatile type)
-#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) && !defined(__IBMCPP__) &&  !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_bounds,T[],T)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_bounds,T const[],T const)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_bounds,T volatile[],T volatile)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_bounds,T const volatile[],T const volatile)
-#endif
-#endif
-
-} // namespace boost
-
-#endif
-
-#include <boost/type_traits/detail/type_trait_undef.hpp>
-
-#endif // BOOST_TT_REMOVE_BOUNDS_HPP_INCLUDED
diff --git a/boost/type_traits/remove_const.hpp b/boost/type_traits/remove_const.hpp
deleted file mode 100644
index 5f957e9..0000000
--- a/boost/type_traits/remove_const.hpp
+++ /dev/null
@@ -1,90 +0,0 @@
-
-//  (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-//  Hinnant & John Maddock 2000.  
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-
-#ifndef BOOST_TT_REMOVE_CONST_HPP_INCLUDED
-#define BOOST_TT_REMOVE_CONST_HPP_INCLUDED
-
-#include <boost/type_traits/is_volatile.hpp>
-#include <boost/type_traits/broken_compiler_spec.hpp>
-#include <boost/type_traits/detail/cv_traits_impl.hpp>
-#include <boost/config.hpp>
-#include <boost/detail/workaround.hpp>
-
-#include <cstddef>
-
-#if BOOST_WORKAROUND(BOOST_MSVC,<=1300)
-#include <boost/type_traits/msvc/remove_const.hpp>
-#endif
-
-// should be the last #include
-#include <boost/type_traits/detail/type_trait_def.hpp>
-
-namespace boost {
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-namespace detail {
-
-template <typename T, bool is_vol>
-struct remove_const_helper
-{
-    typedef T type;
-};
-
-template <typename T>
-struct remove_const_helper<T, true>
-{
-    typedef T volatile type;
-};
-
-
-template <typename T>
-struct remove_const_impl
-{
-    typedef typename remove_const_helper<
-          typename cv_traits_imp<T*>::unqualified_type
-        , ::boost::is_volatile<T>::value
-        >::type type;
-};
-
-#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
-//
-// We can't filter out rvalue_references at the same level as
-// references or we get ambiguities from msvc:
-//
-template <typename T>
-struct remove_const_impl<T&&>
-{
-    typedef T&& type;
-};
-#endif
-
-} // namespace detail
-
-// * convert a type T to non-const type - remove_const<T>
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_const,T,typename boost::detail::remove_const_impl<T>::type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_const,T&,T&)
-#if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_const,T const[N],T type[N])
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_const,T const volatile[N],T volatile type[N])
-#endif
-
-#elif !BOOST_WORKAROUND(BOOST_MSVC,<=1300)
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_const,T,typename boost::detail::remove_const_impl<T>::type)
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace boost
-
-#include <boost/type_traits/detail/type_trait_undef.hpp>
-
-#endif // BOOST_TT_REMOVE_CONST_HPP_INCLUDED
diff --git a/boost/type_traits/remove_cv.hpp b/boost/type_traits/remove_cv.hpp
deleted file mode 100644
index 7478c20..0000000
--- a/boost/type_traits/remove_cv.hpp
+++ /dev/null
@@ -1,84 +0,0 @@
-
-//  (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-//  Hinnant & John Maddock 2000.  
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-
-#ifndef BOOST_TT_REMOVE_CV_HPP_INCLUDED
-#define BOOST_TT_REMOVE_CV_HPP_INCLUDED
-
-#include <boost/type_traits/broken_compiler_spec.hpp>
-#include <boost/type_traits/detail/cv_traits_impl.hpp>
-#include <boost/config.hpp>
-#include <boost/detail/workaround.hpp>
-
-#include <cstddef>
-
-#if BOOST_WORKAROUND(BOOST_MSVC,<=1300)
-#include <boost/type_traits/msvc/remove_cv.hpp>
-#endif
-
-// should be the last #include
-#include <boost/type_traits/detail/type_trait_def.hpp>
-
-namespace boost {
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-namespace detail{
-
-template <class T>
-struct rvalue_ref_filter_rem_cv
-{
-   typedef typename boost::detail::cv_traits_imp<T*>::unqualified_type type;
-};
-
-#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
-//
-// We can't filter out rvalue_references at the same level as
-// references or we get ambiguities from msvc:
-//
-template <class T>
-struct rvalue_ref_filter_rem_cv<T&&>
-{
-   typedef T&& type;
-};
-#endif
-
-}
-
-
-//  convert a type T to a non-cv-qualified type - remove_cv<T>
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_cv,T,typename boost::detail::rvalue_ref_filter_rem_cv<T>::type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_cv,T&,T&)
-#if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_cv,T const[N],T type[N])
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_cv,T volatile[N],T type[N])
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_cv,T const volatile[N],T type[N])
-#endif
-
-#elif !BOOST_WORKAROUND(BOOST_MSVC,<=1300)
-
-namespace detail {
-template <typename T>
-struct remove_cv_impl
-{
-    typedef typename remove_volatile_impl< 
-          typename remove_const_impl<T>::type
-        >::type type;
-};
-}
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_cv,T,typename boost::detail::remove_cv_impl<T>::type)
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace boost
-
-#include <boost/type_traits/detail/type_trait_undef.hpp>
-
-#endif // BOOST_TT_REMOVE_CV_HPP_INCLUDED
diff --git a/boost/type_traits/remove_extent.hpp b/boost/type_traits/remove_extent.hpp
deleted file mode 100644
index b4c7d41..0000000
--- a/boost/type_traits/remove_extent.hpp
+++ /dev/null
@@ -1,48 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000-2005.
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_REMOVE_EXTENT_HPP_INCLUDED
-#define BOOST_TT_REMOVE_EXTENT_HPP_INCLUDED
-
-#include <boost/config.hpp>
-#include <boost/detail/workaround.hpp>
-#include <cstddef>
-
-#if BOOST_WORKAROUND(BOOST_MSVC,<=1300)
-#include <boost/type_traits/msvc/remove_extent.hpp>
-#endif
-
-// should be the last #include
-#include <boost/type_traits/detail/type_trait_def.hpp>
-
-#if !BOOST_WORKAROUND(BOOST_MSVC,<=1300)
-
-namespace boost {
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_extent,T,T)
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_extent,T[N],T type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_extent,T const[N],T const type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_extent,T volatile[N],T volatile type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_extent,T const volatile[N],T const volatile type)
-#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) && !defined(__IBMCPP__) &&  !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_extent,T[],T)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_extent,T const[],T const)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_extent,T volatile[],T volatile)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_extent,T const volatile[],T const volatile)
-#endif
-#endif
-
-} // namespace boost
-
-#endif
-
-#include <boost/type_traits/detail/type_trait_undef.hpp>
-
-#endif // BOOST_TT_REMOVE_BOUNDS_HPP_INCLUDED
diff --git a/boost/type_traits/remove_pointer.hpp b/boost/type_traits/remove_pointer.hpp
deleted file mode 100644
index 01253db..0000000
--- a/boost/type_traits/remove_pointer.hpp
+++ /dev/null
@@ -1,92 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_REMOVE_POINTER_HPP_INCLUDED
-#define BOOST_TT_REMOVE_POINTER_HPP_INCLUDED
-
-#include <boost/config.hpp>
-#include <boost/detail/workaround.hpp>
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#include <boost/type_traits/broken_compiler_spec.hpp>
-#endif
-
-#if BOOST_WORKAROUND(BOOST_MSVC,<=1300)
-#include <boost/type_traits/msvc/remove_pointer.hpp>
-#elif defined(BOOST_MSVC)
-#include <boost/type_traits/remove_cv.hpp>
-#include <boost/type_traits/is_pointer.hpp>
-#endif
-
-// should be the last #include
-#include <boost/type_traits/detail/type_trait_def.hpp>
-
-namespace boost {
-
-#ifdef BOOST_MSVC
-
-namespace detail{
-
-   //
-   // We need all this crazy indirection because a type such as:
-   //
-   // T (*const)(U)
-   //
-   // Does not bind to a <T*> or <T*const> partial specialization with VC10 and earlier
-   //
-   template <class T> 
-   struct remove_pointer_imp
-   {
-      typedef T type;
-   };
-
-   template <class T> 
-   struct remove_pointer_imp<T*>
-   {
-      typedef T type;
-   };
-
-   template <class T, bool b> 
-   struct remove_pointer_imp3
-   {
-      typedef typename remove_pointer_imp<typename boost::remove_cv<T>::type>::type type;
-   };
-
-   template <class T> 
-   struct remove_pointer_imp3<T, false>
-   {
-      typedef T type;
-   };
-
-   template <class T> 
-   struct remove_pointer_imp2
-   {
-      typedef typename remove_pointer_imp3<T, ::boost::is_pointer<T>::value>::type type;
-   };
-}
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_pointer,T,typename boost::detail::remove_pointer_imp2<T>::type)
-
-#elif !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_pointer,T,T)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_pointer,T*,T)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_pointer,T* const,T)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_pointer,T* volatile,T)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_pointer,T* const volatile,T)
-
-#elif !BOOST_WORKAROUND(BOOST_MSVC,<=1300)
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_pointer,T,typename boost::detail::remove_pointer_impl<T>::type)
-
-#endif
-
-} // namespace boost
-
-#include <boost/type_traits/detail/type_trait_undef.hpp>
-
-#endif // BOOST_TT_REMOVE_POINTER_HPP_INCLUDED
diff --git a/boost/type_traits/remove_reference.hpp b/boost/type_traits/remove_reference.hpp
deleted file mode 100644
index 19a55b7..0000000
--- a/boost/type_traits/remove_reference.hpp
+++ /dev/null
@@ -1,70 +0,0 @@
-
-//  (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_REMOVE_REFERENCE_HPP_INCLUDED
-#define BOOST_TT_REMOVE_REFERENCE_HPP_INCLUDED
-
-#include <boost/type_traits/broken_compiler_spec.hpp>
-#include <boost/config.hpp>
-#include <boost/detail/workaround.hpp>
-
-#if BOOST_WORKAROUND(BOOST_MSVC,<=1300)
-#include <boost/type_traits/msvc/remove_reference.hpp>
-#endif
-
-// should be the last #include
-#include <boost/type_traits/detail/type_trait_def.hpp>
-
-namespace boost {
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-namespace detail{
-//
-// We can't filter out rvalue_references at the same level as
-// references or we get ambiguities from msvc:
-//
-template <class T>
-struct remove_rvalue_ref
-{
-   typedef T type;
-};
-#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
-template <class T>
-struct remove_rvalue_ref<T&&>
-{
-   typedef T type;
-};
-#endif
-
-} // namespace detail
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_reference,T,typename boost::detail::remove_rvalue_ref<T>::type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_reference,T&,T)
-
-#if defined(BOOST_ILLEGAL_CV_REFERENCES)
-// these are illegal specialisations; cv-qualifies applied to
-// references have no effect according to [8.3.2p1],
-// C++ Builder requires them though as it treats cv-qualified
-// references as distinct types...
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_reference,T& const,T)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_reference,T& volatile,T)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_reference,T& const volatile,T)
-#endif
-
-#elif !BOOST_WORKAROUND(BOOST_MSVC,<=1300)
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_reference,T,typename boost::detail::remove_reference_impl<T>::type)
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace boost
-
-#include <boost/type_traits/detail/type_trait_undef.hpp>
-
-#endif // BOOST_TT_REMOVE_REFERENCE_HPP_INCLUDED
diff --git a/boost/type_traits/remove_volatile.hpp b/boost/type_traits/remove_volatile.hpp
deleted file mode 100644
index 98da5cf..0000000
--- a/boost/type_traits/remove_volatile.hpp
+++ /dev/null
@@ -1,88 +0,0 @@
-
-//  (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-//  Hinnant & John Maddock 2000.  
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-
-#ifndef BOOST_TT_REMOVE_VOLATILE_HPP_INCLUDED
-#define BOOST_TT_REMOVE_VOLATILE_HPP_INCLUDED
-
-#include <boost/type_traits/is_const.hpp>
-#include <boost/type_traits/broken_compiler_spec.hpp>
-#include <boost/type_traits/detail/cv_traits_impl.hpp>
-#include <boost/config.hpp>
-#include <boost/detail/workaround.hpp>
-
-#include <cstddef>
-
-#if BOOST_WORKAROUND(BOOST_MSVC,<=1300)
-#include <boost/type_traits/msvc/remove_volatile.hpp>
-#endif
-
-// should be the last #include
-#include <boost/type_traits/detail/type_trait_def.hpp>
-
-namespace boost {
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-namespace detail {
-
-template <typename T, bool is_const>
-struct remove_volatile_helper
-{
-    typedef T type;
-};
-
-template <typename T>
-struct remove_volatile_helper<T,true>
-{
-    typedef T const type;
-};
-
-template <typename T>
-struct remove_volatile_impl
-{
-    typedef typename remove_volatile_helper<
-          typename cv_traits_imp<T*>::unqualified_type
-        , ::boost::is_const<T>::value
-        >::type type;
-};
-
-//
-// We can't filter out rvalue_references at the same level as
-// references or we get ambiguities from msvc:
-//
-#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
-template <typename T>
-struct remove_volatile_impl<T&&>
-{
-    typedef T&& type;
-};
-#endif
-} // namespace detail
-
-// * convert a type T to a non-volatile type - remove_volatile<T>
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_volatile,T,typename boost::detail::remove_volatile_impl<T>::type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_volatile,T&,T&)
-#if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_volatile,T volatile[N],T type[N])
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_volatile,T const volatile[N],T const type[N])
-#endif
-
-#elif !BOOST_WORKAROUND(BOOST_MSVC,<=1300)
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_volatile,T,typename boost::detail::remove_volatile_impl<T>::type)
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace boost
-
-#include <boost/type_traits/detail/type_trait_undef.hpp>
-
-#endif // BOOST_TT_REMOVE_VOLATILE_HPP_INCLUDED
diff --git a/boost/type_traits/type_with_alignment.hpp b/boost/type_traits/type_with_alignment.hpp
deleted file mode 100644
index a86137f..0000000
--- a/boost/type_traits/type_with_alignment.hpp
+++ /dev/null
@@ -1,399 +0,0 @@
-//  (C) Copyright John Maddock 2000.
-//  Use, modification and distribution are subject to the Boost Software License,
-//  Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt).
-//
-//  See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_TYPE_WITH_ALIGNMENT_INCLUDED
-#define BOOST_TT_TYPE_WITH_ALIGNMENT_INCLUDED
-
-#include <boost/mpl/if.hpp>
-#include <boost/preprocessor/list/for_each_i.hpp>
-#include <boost/preprocessor/tuple/to_list.hpp>
-#include <boost/preprocessor/cat.hpp>
-#include <boost/preprocessor/list/transform.hpp>
-#include <boost/preprocessor/list/append.hpp>
-#include <boost/type_traits/alignment_of.hpp>
-#include <boost/type_traits/is_pod.hpp>
-#include <boost/static_assert.hpp>
-#include <boost/config.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-#include <cstddef>
-
-#ifdef BOOST_MSVC
-#   pragma warning(push)
-#   pragma warning(disable: 4121) // alignment is sensitive to packing
-#endif
-
-namespace boost {
-
-#ifndef __BORLANDC__
-
-namespace detail {
-
-class alignment_dummy;
-typedef void (*function_ptr)();
-typedef int (alignment_dummy::*member_ptr);
-typedef int (alignment_dummy::*member_function_ptr)();
-
-#ifdef BOOST_HAS_LONG_LONG
-#define BOOST_TT_ALIGNMENT_BASE_TYPES BOOST_PP_TUPLE_TO_LIST( \
-        12, ( \
-        char, short, int, long,  ::boost::long_long_type, float, double, long double \
-        , void*, function_ptr, member_ptr, member_function_ptr))
-#else
-#define BOOST_TT_ALIGNMENT_BASE_TYPES BOOST_PP_TUPLE_TO_LIST( \
-        11, ( \
-        char, short, int, long, float, double, long double \
-        , void*, function_ptr, member_ptr, member_function_ptr))
-#endif
-
-#define BOOST_TT_HAS_ONE_T(D,Data,T) boost::detail::has_one_T< T >
-
-#define BOOST_TT_ALIGNMENT_STRUCT_TYPES                         \
-        BOOST_PP_LIST_TRANSFORM(BOOST_TT_HAS_ONE_T,             \
-                                X,                              \
-                                BOOST_TT_ALIGNMENT_BASE_TYPES)
-
-#define BOOST_TT_ALIGNMENT_TYPES                                \
-        BOOST_PP_LIST_APPEND(BOOST_TT_ALIGNMENT_BASE_TYPES,     \
-                             BOOST_TT_ALIGNMENT_STRUCT_TYPES)
-
-//
-// lower_alignment_helper --
-//
-// This template gets instantiated a lot, so use partial
-// specialization when available to reduce the compiler burden.
-//
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-template <bool found = true>
-struct lower_alignment_helper_impl
-{
-    template <std::size_t, class>
-    struct apply
-    {
-        typedef char type;
-        enum { value = true };
-    };
-};
-
-template <>
-struct lower_alignment_helper_impl<false>
-{
-    template <std::size_t target, class TestType>
-    struct apply
-      : public mpl::if_c<(alignment_of<TestType>::value == target), TestType, char>
-    {
-        enum { value = (alignment_of<TestType>::value == target) };
-    };
-};
-
-template <bool found, std::size_t target, class TestType>
-struct lower_alignment_helper
-  : public lower_alignment_helper_impl<found>::template apply<target,TestType>
-{
-};
-#else
-template <bool found, std::size_t target, class TestType>
-struct lower_alignment_helper
-{
-    typedef char type;
-    enum { value = true };
-};
-
-template <std::size_t target, class TestType>
-struct lower_alignment_helper<false,target,TestType>
-{
-    enum { value = (alignment_of<TestType>::value == target) };
-    typedef typename mpl::if_c<value, TestType, char>::type type;
-};
-#endif
-
-#define BOOST_TT_CHOOSE_MIN_ALIGNMENT(R,P,I,T)                                  \
-        typename lower_alignment_helper<                                        \
-          BOOST_PP_CAT(found,I),target,T                                        \
-        >::type BOOST_PP_CAT(t,I);                                              \
-        enum {                                                                  \
-            BOOST_PP_CAT(found,BOOST_PP_INC(I))                                 \
-              = lower_alignment_helper<BOOST_PP_CAT(found,I),target,T >::value  \
-        };
-
-#define BOOST_TT_CHOOSE_T(R,P,I,T) T BOOST_PP_CAT(t,I);
-
-template <typename T>
-struct has_one_T
-{
-  T data;
-};
-
-template <std::size_t target>
-union lower_alignment
-{
-    enum { found0 = false };
-
-    BOOST_PP_LIST_FOR_EACH_I(
-          BOOST_TT_CHOOSE_MIN_ALIGNMENT
-        , ignored
-        , BOOST_TT_ALIGNMENT_TYPES
-        )
-};
-
-union max_align
-{
-    BOOST_PP_LIST_FOR_EACH_I(
-          BOOST_TT_CHOOSE_T
-        , ignored
-        , BOOST_TT_ALIGNMENT_TYPES
-        )
-};
-
-#undef BOOST_TT_ALIGNMENT_BASE_TYPES
-#undef BOOST_TT_HAS_ONE_T
-#undef BOOST_TT_ALIGNMENT_STRUCT_TYPES
-#undef BOOST_TT_ALIGNMENT_TYPES
-#undef BOOST_TT_CHOOSE_MIN_ALIGNMENT
-#undef BOOST_TT_CHOOSE_T
-
-template<std::size_t TAlign, std::size_t Align>
-struct is_aligned
-{
-    BOOST_STATIC_CONSTANT(bool,
-        value = (TAlign >= Align) & (TAlign % Align == 0)
-        );
-};
-
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::detail::max_align,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::detail::lower_alignment<1> ,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::detail::lower_alignment<2> ,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::detail::lower_alignment<4> ,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::detail::lower_alignment<8> ,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::detail::lower_alignment<10> ,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::detail::lower_alignment<16> ,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::detail::lower_alignment<32> ,true)
-#endif
-
-} // namespace detail
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-template<std::size_t Align>
-struct is_pod< ::boost::detail::lower_alignment<Align> >
-{
-        BOOST_STATIC_CONSTANT(std::size_t, value = true);
-};
-#endif
-
-// This alignment method originally due to Brian Parker, implemented by David
-// Abrahams, and then ported here by Doug Gregor.
-namespace detail{
-
-template <std::size_t Align>
-class type_with_alignment_imp
-{
-    typedef ::boost::detail::lower_alignment<Align> t1;
-    typedef typename mpl::if_c<
-          ::boost::detail::is_aligned< ::boost::alignment_of<t1>::value,Align >::value
-        , t1
-        , ::boost::detail::max_align
-        >::type align_t;
-
-    BOOST_STATIC_CONSTANT(std::size_t, found = alignment_of<align_t>::value);
-
-    BOOST_STATIC_ASSERT(found >= Align);
-    BOOST_STATIC_ASSERT(found % Align == 0);
-
- public:
-    typedef align_t type;
-};
-
-}
-
-template <std::size_t Align>
-class type_with_alignment 
-  : public ::boost::detail::type_with_alignment_imp<Align>
-{
-};
-
-#if defined(__GNUC__)
-namespace align {
-struct __attribute__((__aligned__(2))) a2 {};
-struct __attribute__((__aligned__(4))) a4 {};
-struct __attribute__((__aligned__(8))) a8 {};
-struct __attribute__((__aligned__(16))) a16 {};
-struct __attribute__((__aligned__(32))) a32 {};
-struct __attribute__((__aligned__(64))) a64 {};
-struct __attribute__((__aligned__(128))) a128 {};
-}
-
-template<> class type_with_alignment<1>  { public: typedef char type; };
-template<> class type_with_alignment<2>  { public: typedef align::a2 type; };
-template<> class type_with_alignment<4>  { public: typedef align::a4 type; };
-template<> class type_with_alignment<8>  { public: typedef align::a8 type; };
-template<> class type_with_alignment<16> { public: typedef align::a16 type; };
-template<> class type_with_alignment<32> { public: typedef align::a32 type; };
-template<> class type_with_alignment<64> { public: typedef align::a64 type; };
-template<> class type_with_alignment<128> { public: typedef align::a128 type; };
-
-namespace detail {
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a2,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a4,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a8,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a16,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a32,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a64,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a128,true)
-}
-#endif
-#if (defined(BOOST_MSVC) || (defined(BOOST_INTEL) && defined(_MSC_VER))) && _MSC_VER >= 1300
-//
-// MSVC supports types which have alignments greater than the normal
-// maximum: these are used for example in the types __m64 and __m128
-// to provide types with alignment requirements which match the SSE
-// registers.  Therefore we extend type_with_alignment<> to support
-// such types, however, we have to be careful to use a builtin type
-// whenever possible otherwise we break previously working code:
-// see http://article.gmane.org/gmane.comp.lib.boost.devel/173011
-// for an example and test case.  Thus types like a8 below will
-// be used *only* if the existing implementation can't provide a type
-// with suitable alignment.  This does mean however, that type_with_alignment<>
-// may return a type which cannot be passed through a function call
-// by value (and neither can any type containing such a type like
-// Boost.Optional).  However, this only happens when we have no choice 
-// in the matter because no other "ordinary" type is available.
-//
-namespace align {
-struct __declspec(align(8)) a8 { 
-   char m[8]; 
-   typedef a8 type;
-};
-struct __declspec(align(16)) a16 { 
-   char m[16]; 
-   typedef a16 type;
-};
-struct __declspec(align(32)) a32 { 
-   char m[32]; 
-   typedef a32 type;
-};
-struct __declspec(align(64)) a64 
-{ 
-   char m[64]; 
-   typedef a64 type;
-};
-struct __declspec(align(128)) a128 { 
-   char m[128]; 
-   typedef a128 type;
-};
-}
-
-template<> class type_with_alignment<8>  
-{ 
-   typedef mpl::if_c<
-      ::boost::alignment_of<boost::detail::max_align>::value < 8,
-      align::a8,
-      boost::detail::type_with_alignment_imp<8> >::type t1; 
-public: 
-   typedef t1::type type;
-};
-template<> class type_with_alignment<16> 
-{ 
-   typedef mpl::if_c<
-      ::boost::alignment_of<boost::detail::max_align>::value < 16,
-      align::a16,
-      boost::detail::type_with_alignment_imp<16> >::type t1; 
-public: 
-   typedef t1::type type;
-};
-template<> class type_with_alignment<32> 
-{ 
-   typedef mpl::if_c<
-      ::boost::alignment_of<boost::detail::max_align>::value < 32,
-      align::a32,
-      boost::detail::type_with_alignment_imp<32> >::type t1; 
-public: 
-   typedef t1::type type;
-};
-template<> class type_with_alignment<64> {
-   typedef mpl::if_c<
-      ::boost::alignment_of<boost::detail::max_align>::value < 64,
-      align::a64,
-      boost::detail::type_with_alignment_imp<64> >::type t1; 
-public: 
-   typedef t1::type type;
-};
-template<> class type_with_alignment<128> {
-   typedef mpl::if_c<
-      ::boost::alignment_of<boost::detail::max_align>::value < 128,
-      align::a128,
-      boost::detail::type_with_alignment_imp<128> >::type t1; 
-public: 
-   typedef t1::type type;
-};
-
-namespace detail {
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a8,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a16,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a32,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a64,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a128,true)
-}
-#endif
-
-#else
-
-//
-// Borland specific version, we have this for two reasons:
-// 1) The version above doesn't always compile (with the new test cases for example)
-// 2) Because of Borlands #pragma option we can create types with alignments that are
-//    greater that the largest aligned builtin type.
-
-namespace align{
-#pragma option push -a16
-struct a2{ short s; };
-struct a4{ int s; };
-struct a8{ double s; };
-struct a16{ long double s; };
-#pragma option pop
-}
-
-namespace detail {
-
-typedef ::boost::align::a16 max_align;
-
-//#if ! BOOST_WORKAROUND(__CODEGEARC__, BOOST_TESTED_AT(0x610))
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a2,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a4,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a8,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a16,true)
-//#endif
-}
-
-template <std::size_t N> struct type_with_alignment
-{
-   // We should never get to here, but if we do use the maximally
-   // aligned type:
-   // BOOST_STATIC_ASSERT(0);
-   typedef align::a16 type;
-};
-template <> struct type_with_alignment<1>{ typedef char type; };
-template <> struct type_with_alignment<2>{ typedef align::a2 type; };
-template <> struct type_with_alignment<4>{ typedef align::a4 type; };
-template <> struct type_with_alignment<8>{ typedef align::a8 type; };
-template <> struct type_with_alignment<16>{ typedef align::a16 type; };
-
-#endif
-
-} // namespace boost
-
-#ifdef BOOST_MSVC
-#   pragma warning(pop)
-#endif
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_TYPE_WITH_ALIGNMENT_INCLUDED
-
-
diff --git a/boost/typeof/dmc/typeof_impl.hpp b/boost/typeof/dmc/typeof_impl.hpp
deleted file mode 100644
index 2460622..0000000
--- a/boost/typeof/dmc/typeof_impl.hpp
+++ /dev/null
@@ -1,100 +0,0 @@
-// Copyright (C) 2007 Peder Holt
-
-// Use, modification and distribution is subject to the Boost Software
-// License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_TYPEOF_MSVC_TYPEOF_IMPL_HPP_INCLUDED
-# define BOOST_TYPEOF_MSVC_TYPEOF_IMPL_HPP_INCLUDED
-
-# include <boost/config.hpp>
-# include <boost/detail/workaround.hpp>
-# include <boost/mpl/int.hpp>
-
-namespace boost
-{
-    namespace type_of
-    {
-
-        template<int N> struct encode_counter : encode_counter<N - 1> {};
-        template<> struct encode_counter<0> {};
-
-        char (*encode_index(...))[1];
-
-# define BOOST_TYPEOF_INDEX(T) (sizeof(*boost::type_of::encode_index((boost::type_of::encode_counter<1000>*)0)))
-# define BOOST_TYPEOF_NEXT_INDEX(next) friend char (*encode_index(encode_counter<next>*))[next];
-
-
-        //Typeof code
-
-        template<typename ID>
-        struct msvc_extract_type
-        {
-            struct id2type;
-        };
-
-        template<typename T, typename ID>
-        struct msvc_register_type : msvc_extract_type<ID>
-        {
-            typedef msvc_extract_type<ID> base_type;
-            struct base_type::id2type // This uses nice VC6.5 and VC7.1 bugfeature, also works for Digital Mars
-            {
-                typedef T type;
-            };
-        };
-
-
-        template<int ID>
-        struct msvc_typeid_wrapper {
-            typedef typename msvc_extract_type<mpl::int_<ID> >::id2type id2type;
-            typedef typename id2type::type type;
-        };
-
-        //Tie it all together
-        template<typename T>
-        struct encode_type
-        {
-            //Get the next available compile time constants index
-            BOOST_STATIC_CONSTANT(unsigned,value=BOOST_TYPEOF_INDEX(T));
-            //Instantiate the template
-            typedef typename msvc_register_type<T,mpl::int_<value> >::id2type type;
-            //Set the next compile time constants index
-            BOOST_STATIC_CONSTANT(unsigned,next=value+1);
-            //Increment the compile time constant (only needed when extensions are not active
-            BOOST_TYPEOF_NEXT_INDEX(next);
-        };
-
-        template<class T>
-        struct sizer
-        {
-            typedef char(*type)[encode_type<T>::value];
-        };
-
-        template<typename T>
-            typename sizer<T>::type encode_start(T const&);
-
-        template<typename Organizer, typename T>
-        msvc_register_type<T,Organizer> typeof_register_type(const T&,Organizer* =0);
-
-# define BOOST_TYPEOF(expr) \
-    boost::type_of::msvc_typeid_wrapper<sizeof(*boost::type_of::encode_start(expr))>::type
-
-# define BOOST_TYPEOF_TPL(expr) typename BOOST_TYPEOF(expr)
-
-# define BOOST_TYPEOF_NESTED_TYPEDEF_TPL(name,expr) \
-    struct name {\
-        BOOST_STATIC_CONSTANT(int,_typeof_register_value=sizeof(boost::type_of::typeof_register_type<name>(expr)));\
-        typedef typename boost::type_of::msvc_extract_type<name>::id2type id2type;\
-        typedef typename id2type::type type;\
-    };
-
-# define BOOST_TYPEOF_NESTED_TYPEDEF(name,expr) \
-    struct name {\
-        BOOST_STATIC_CONSTANT(int,_typeof_register_value=sizeof(boost::type_of::typeof_register_type<name>(expr)));\
-        typedef boost::type_of::msvc_extract_type<name>::id2type id2type;\
-        typedef id2type::type type;\
-    };
-
-    }
-}
-
-#endif//BOOST_TYPEOF_MSVC_TYPEOF_IMPL_HPP_INCLUDED
diff --git a/boost/typeof/encode_decode.hpp b/boost/typeof/encode_decode.hpp
deleted file mode 100644
index 5a13fd5..0000000
--- a/boost/typeof/encode_decode.hpp
+++ /dev/null
@@ -1,61 +0,0 @@
-// Copyright (C) 2004 Arkadiy Vertleyb
-
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// boostinspect:nounnamed
-
-#ifndef BOOST_TYPEOF_ENCODE_DECODE_HPP_INCLUDED
-#define BOOST_TYPEOF_ENCODE_DECODE_HPP_INCLUDED
-
-#include <boost/mpl/deref.hpp>
-#include <boost/mpl/next.hpp>
-
-#ifndef BOOST_TYPEOF_SUPPRESS_UNNAMED_NAMESPACE
-
-#   define BOOST_TYPEOF_BEGIN_ENCODE_NS namespace { namespace boost_typeof {
-#   define BOOST_TYPEOF_END_ENCODE_NS }}
-#   define BOOST_TYPEOF_ENCODE_NS_QUALIFIER boost_typeof
-
-#else
-
-#   define BOOST_TYPEOF_BEGIN_ENCODE_NS namespace boost { namespace type_of {
-#   define BOOST_TYPEOF_END_ENCODE_NS }}
-#   define BOOST_TYPEOF_ENCODE_NS_QUALIFIER boost::type_of
-
-#   define BOOST_TYPEOF_TEXT "unnamed namespace is off"
-#   include <boost/typeof/message.hpp>
-
-#endif
-
-BOOST_TYPEOF_BEGIN_ENCODE_NS
-
-template<class V, class Type_Not_Registered_With_Typeof_System>
-struct encode_type_impl;
-
-template<class T, class Iter>
-struct decode_type_impl
-{
-    typedef int type;  // MSVC ETI workaround
-};
-
-template<class T>
-struct decode_nested_template_helper_impl;
-
-BOOST_TYPEOF_END_ENCODE_NS
-
-namespace boost { namespace type_of {
-
-    template<class V, class T>
-    struct encode_type : BOOST_TYPEOF_ENCODE_NS_QUALIFIER::encode_type_impl<V, T>
-    {};
-
-    template<class Iter>
-    struct decode_type : BOOST_TYPEOF_ENCODE_NS_QUALIFIER::decode_type_impl<
-        typename Iter::type,
-        typename Iter::next
-    >
-    {};
-}}
-
-#endif//BOOST_TYPEOF_ENCODE_DECODE_HPP_INCLUDED
diff --git a/boost/typeof/encode_decode_params.hpp b/boost/typeof/encode_decode_params.hpp
deleted file mode 100644
index 640bfdc..0000000
--- a/boost/typeof/encode_decode_params.hpp
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright (C) 2005 Arkadiy Vertleyb
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_TYPEOF_ENCODE_DECODE_PARAMS_HPP_INCLUDED
-#define BOOST_TYPEOF_ENCODE_DECODE_PARAMS_HPP_INCLUDED
-
-#include <boost/preprocessor/cat.hpp>
-#include <boost/preprocessor/repetition/repeat.hpp>
-
-// Assumes iter0 contains initial iterator
-
-#define BOOST_TYPEOF_DECODE_PARAM(z, n, text)   \
-    typedef boost::type_of::decode_type<iter##n> decode##n;     \
-    typedef typename decode##n::type p##n;      \
-    typedef typename decode##n::iter BOOST_PP_CAT(iter, BOOST_PP_INC(n));
-
-#define BOOST_TYPEOF_DECODE_PARAMS(n)\
-    BOOST_PP_REPEAT(n, BOOST_TYPEOF_DECODE_PARAM, ~)
-
-// The P0, P1, ... PN are encoded and added to V 
-
-#define BOOST_TYPEOF_ENCODE_PARAMS_BEGIN(z, n, text)\
-    typename boost::type_of::encode_type<
-
-#define BOOST_TYPEOF_ENCODE_PARAMS_END(z, n, text)\
-    , BOOST_PP_CAT(P, n)>::type
-
-#define BOOST_TYPEOF_ENCODE_PARAMS(n, ID)                   \
-    BOOST_PP_REPEAT(n, BOOST_TYPEOF_ENCODE_PARAMS_BEGIN, ~) \
-    typename boost::type_of::push_back<V, boost::mpl::size_t<ID> >::type      \
-    BOOST_PP_REPEAT(n, BOOST_TYPEOF_ENCODE_PARAMS_END, ~)
-
-#endif//BOOST_TYPEOF_ENCODE_DECODE_PARAMS_HPP_INCLUDED
diff --git a/boost/typeof/int_encoding.hpp b/boost/typeof/int_encoding.hpp
deleted file mode 100644
index 482b7f6..0000000
--- a/boost/typeof/int_encoding.hpp
+++ /dev/null
@@ -1,118 +0,0 @@
-// Copyright (C) 2004 Arkadiy Vertleyb
-// Use, modification and distribution is subject to the Boost Software
-// License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_TYPEOF_INT_ENCODING_HPP_INCLUDED
-#define BOOST_TYPEOF_INT_ENCODING_HPP_INCLUDED
-
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/size_t.hpp>
-#include <boost/config.hpp>
-
-namespace boost { namespace type_of {
-
-    template<class T> struct get_unsigned
-    {
-        typedef T type;
-    };
-    template<> struct get_unsigned<signed char>
-    {
-        typedef unsigned char type;
-    };
-    template<> struct get_unsigned<char>
-    {
-        typedef unsigned char type;
-    };
-    template<> struct get_unsigned<short>
-    {
-        typedef unsigned short type;
-    };
-    template<> struct get_unsigned<int>
-    {
-        typedef unsigned int type;
-    };
-    template<> struct get_unsigned<long>
-    {
-        typedef unsigned long type;
-    };
-
-    //////////////////////////
-
-    template<std::size_t n, bool Overflow>
-    struct pack
-    {
-        BOOST_STATIC_CONSTANT(std::size_t , value=((n + 1) * 2 + (Overflow ? 1 : 0)));
-    };
-
-    template<std::size_t m>
-    struct unpack
-    {
-        BOOST_STATIC_CONSTANT(std::size_t, value = (m / 2) - 1);
-        BOOST_STATIC_CONSTANT(std::size_t, overflow = (m % 2 == 1));
-    };
-
-    ////////////////////////////////
-
-    template<class V, std::size_t n, bool overflow = (n >= 0x3fffffff)>
-    struct encode_size_t : push_back<
-        V,
-        boost::mpl::size_t<pack<n, false>::value>
-    >
-    {};
-
-    template<class V, std::size_t n>
-    struct encode_size_t<V, n, true> : push_back<typename push_back<
-        V,
-        boost::mpl::size_t<pack<n % 0x3ffffffe, true>::value> >::type,
-        boost::mpl::size_t<n / 0x3ffffffe>
-    >
-    {};
-
-    template<class V, class T, T n>
-    struct encode_integral : encode_size_t< V, (typename get_unsigned<T>::type)n,(((typename get_unsigned<T>::type)n)>=0x3fffffff) >
-    {};
-
-    template<class V, bool b>
-    struct encode_integral<V, bool, b> : encode_size_t< V, b?1:0, false>
-    {};
-    ///////////////////////////
-
-    template<std::size_t n, class Iter, bool overflow>
-    struct decode_size_t;
-
-    template<std::size_t n, class Iter>
-    struct decode_size_t<n, Iter, false>
-    {
-        BOOST_STATIC_CONSTANT(std::size_t,value = n);
-        typedef Iter iter;
-    };
-
-    template<std::size_t n, class Iter>
-    struct decode_size_t<n, Iter, true>
-    {
-        BOOST_STATIC_CONSTANT(std::size_t,m = Iter::type::value);
-
-        BOOST_STATIC_CONSTANT(std::size_t,value = (std::size_t)m * 0x3ffffffe + n);
-        typedef typename Iter::next iter;
-    };
-
-    template<class T, class Iter>
-    struct decode_integral
-    {
-        typedef decode_integral<T,Iter> self_t;
-        BOOST_STATIC_CONSTANT(std::size_t,m = Iter::type::value);
-
-        BOOST_STATIC_CONSTANT(std::size_t,n = unpack<m>::value);
-
-        BOOST_STATIC_CONSTANT(std::size_t,overflow = unpack<m>::overflow);
-
-        typedef typename Iter::next nextpos;
-
-        static const T value = (T)(std::size_t)decode_size_t<n, nextpos, overflow>::value;
-
-        typedef typename decode_size_t<self_t::n, nextpos, self_t::overflow>::iter iter;
-    };
-
-}}//namespace
-
-#endif//BOOST_TYPEOF_INT_ENCODING_HPP_INCLUDED
diff --git a/boost/typeof/integral_template_param.hpp b/boost/typeof/integral_template_param.hpp
deleted file mode 100644
index 8543be7..0000000
--- a/boost/typeof/integral_template_param.hpp
+++ /dev/null
@@ -1,80 +0,0 @@
-// Copyright (C) 2005 Arkadiy Vertleyb
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_TYPEOF_INTEGRAL_TEMPLATE_PARAM_HPP_INCLUDED
-#define BOOST_TYPEOF_INTEGRAL_TEMPLATE_PARAM_HPP_INCLUDED
-
-#define BOOST_TYPEOF_unsigned (unsigned)
-#define BOOST_TYPEOF_signed (signed)
-
-#define char_BOOST_TYPEOF (char)
-#define short_BOOST_TYPEOF (short)
-#define int_BOOST_TYPEOF (int)
-#define long_BOOST_TYPEOF (long)
-
-#define BOOST_TYPEOF_char_BOOST_TYPEOF (char)
-#define BOOST_TYPEOF_short_BOOST_TYPEOF (short)
-#define BOOST_TYPEOF_int_BOOST_TYPEOF (int)
-#define BOOST_TYPEOF_long_BOOST_TYPEOF (long)
-#define BOOST_TYPEOF_bool_BOOST_TYPEOF (bool)
-#define BOOST_TYPEOF_unsigned_BOOST_TYPEOF (unsigned)
-#define BOOST_TYPEOF_size_t_BOOST_TYPEOF (size_t)
-
-#define BOOST_TYPEOF_MAKE_OBJ_char          BOOST_TYPEOF_INTEGRAL_PARAM(char)
-#define BOOST_TYPEOF_MAKE_OBJ_short         BOOST_TYPEOF_INTEGRAL_PARAM(short)
-#define BOOST_TYPEOF_MAKE_OBJ_int           BOOST_TYPEOF_INTEGRAL_PARAM(int)
-#define BOOST_TYPEOF_MAKE_OBJ_long          BOOST_TYPEOF_INTEGRAL_PARAM(long)
-#define BOOST_TYPEOF_MAKE_OBJ_bool          BOOST_TYPEOF_INTEGRAL_PARAM(bool)
-#define BOOST_TYPEOF_MAKE_OBJ_unsigned      BOOST_TYPEOF_INTEGRAL_PARAM(unsigned)
-#define BOOST_TYPEOF_MAKE_OBJ_size_t        BOOST_TYPEOF_INTEGRAL_PARAM(size_t)
-#define BOOST_TYPEOF_MAKE_OBJ_unsignedchar  BOOST_TYPEOF_INTEGRAL_PARAM(unsigned char)
-#define BOOST_TYPEOF_MAKE_OBJ_unsignedshort BOOST_TYPEOF_INTEGRAL_PARAM(unsigned short)
-#define BOOST_TYPEOF_MAKE_OBJ_unsignedint   BOOST_TYPEOF_INTEGRAL_PARAM(unsigned int)
-#define BOOST_TYPEOF_MAKE_OBJ_unsignedlong  BOOST_TYPEOF_INTEGRAL_PARAM(unsigned long)
-#define BOOST_TYPEOF_MAKE_OBJ_signedchar    BOOST_TYPEOF_INTEGRAL_PARAM(signed char)
-#define BOOST_TYPEOF_MAKE_OBJ_signedshort   BOOST_TYPEOF_INTEGRAL_PARAM(signed short)
-#define BOOST_TYPEOF_MAKE_OBJ_signedint     BOOST_TYPEOF_INTEGRAL_PARAM(signed int)
-#define BOOST_TYPEOF_MAKE_OBJ_signedlong    BOOST_TYPEOF_INTEGRAL_PARAM(signed long)
-#define BOOST_TYPEOF_MAKE_OBJ_integral(x)   BOOST_TYPEOF_INTEGRAL_PARAM(x)
-
-#define BOOST_TYPEOF_INTEGRAL(X) integral(X) BOOST_TYPEOF_EAT
-#define BOOST_TYPEOF_EAT_BOOST_TYPEOF
-#define BOOST_TYPEOF_integral(X) (integral(X))
-
-#define BOOST_TYPEOF_INTEGRAL_PARAM(Type)\
-    (INTEGRAL_PARAM)\
-    (Type)
-
-#define BOOST_TYPEOF_INTEGRAL_PARAM_GETTYPE(Param)\
-    BOOST_PP_SEQ_ELEM(1, Param)
-
-#define BOOST_TYPEOF_INTEGRAL_PARAM_EXPANDTYPE(Param)\
-    BOOST_TYPEOF_INTEGRAL_PARAM_GETTYPE(Param)
-
-// INTEGRAL_PARAM "virtual functions" implementation
-
-#define BOOST_TYPEOF_INTEGRAL_PARAM_ENCODE(This, n)\
-    typedef typename boost::type_of::encode_integral<\
-        BOOST_PP_CAT(V, n),\
-        BOOST_TYPEOF_INTEGRAL_PARAM_GETTYPE(This),\
-        BOOST_PP_CAT(P, n)\
-    >::type BOOST_PP_CAT(V, BOOST_PP_INC(n)); 
-
-#define BOOST_TYPEOF_INTEGRAL_PARAM_DECODE(This, n)\
-    typedef boost::type_of::decode_integral<BOOST_TYPEOF_INTEGRAL_PARAM_GETTYPE(This), BOOST_PP_CAT(iter, n)> BOOST_PP_CAT(d, n);\
-    static const BOOST_TYPEOF_INTEGRAL_PARAM_GETTYPE(This) BOOST_PP_CAT(P, n) = BOOST_PP_CAT(d, n)::value;\
-    typedef typename BOOST_PP_CAT(d, n)::iter BOOST_PP_CAT(iter, BOOST_PP_INC(n));
-
-#define BOOST_TYPEOF_INTEGRAL_PARAM_PLACEHOLDER(Param)\
-    (BOOST_TYPEOF_INTEGRAL_PARAM_GETTYPE(Param))0
-
-#define BOOST_TYPEOF_INTEGRAL_PARAM_DECLARATION_TYPE(Param)\
-    BOOST_TYPEOF_INTEGRAL_PARAM_GETTYPE(Param)
-
-#define BOOST_TYPEOF_INTEGRAL_PARAM_PLACEHOLDER_TYPES(Param, n)\
-    BOOST_PP_CAT(T,n)
-
-#define BOOST_TYPEOF_INTEGRAL_PARAM_ISTEMPLATE 0
-
-#endif//BOOST_TYPEOF_INTEGRAL_TEMPLATE_PARAM_HPP_INCLUDED
diff --git a/boost/typeof/message.hpp b/boost/typeof/message.hpp
deleted file mode 100644
index cabbb82..0000000
--- a/boost/typeof/message.hpp
+++ /dev/null
@@ -1,8 +0,0 @@
-// Copyright (C) 2005 Arkadiy Vertleyb
-// Use, modification and distribution is subject to the Boost Software
-// License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
-
-#if defined(_MSC_VER) && defined BOOST_TYPEOF_MESSAGES
-#    pragma message(BOOST_TYPEOF_TEXT)
-#endif
-#undef BOOST_TYPEOF_TEXT
diff --git a/boost/typeof/modifiers.hpp b/boost/typeof/modifiers.hpp
deleted file mode 100644
index 630d0dc..0000000
--- a/boost/typeof/modifiers.hpp
+++ /dev/null
@@ -1,121 +0,0 @@
-// Copyright (C) 2004 Arkadiy Vertleyb
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_TYPEOF_MODIFIERS_HPP_INCLUDED
-#define BOOST_TYPEOF_MODIFIERS_HPP_INCLUDED
-
-#include <boost/typeof/encode_decode.hpp>
-#include <boost/preprocessor/facilities/identity.hpp>
-
-#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
-
-// modifiers
-
-#define BOOST_TYPEOF_modifier_support(ID, Fun)\
-    template<class V, class T> struct encode_type_impl<V, Fun(T)>\
-    {\
-        typedef\
-            typename boost::type_of::encode_type<\
-            typename boost::type_of::push_back<\
-            V\
-            , boost::mpl::size_t<ID> >::type\
-            , T>::type\
-            type;\
-    };\
-    template<class Iter> struct decode_type_impl<boost::mpl::size_t<ID>, Iter>\
-    {\
-        typedef boost::type_of::decode_type<Iter> d1;\
-        typedef Fun(typename d1::type) type;\
-        typedef typename d1::iter iter;\
-    }
-
-
-#define BOOST_TYPEOF_const_fun(T) const T
-#define BOOST_TYPEOF_volatile_fun(T) volatile T
-#define BOOST_TYPEOF_volatile_const_fun(T) volatile const T
-#define BOOST_TYPEOF_pointer_fun(T) T*
-#define BOOST_TYPEOF_reference_fun(T) T&
-
-#if defined(__BORLANDC__) && (__BORLANDC__ < 0x600)
-//Borland incorrectly handles T const, T const volatile and T volatile.
-//It drops the decoration no matter what, so we need to try to handle T* const etc. without loosing the top modifier.
-#define BOOST_TYPEOF_const_pointer_fun(T) T const *
-#define BOOST_TYPEOF_const_reference_fun(T) T const &
-#define BOOST_TYPEOF_volatile_pointer_fun(T) T volatile*
-#define BOOST_TYPEOF_volatile_reference_fun(T) T volatile&
-#define BOOST_TYPEOF_volatile_const_pointer_fun(T) T volatile const *
-#define BOOST_TYPEOF_volatile_const_reference_fun(T) T volatile const &
-#endif
-
-BOOST_TYPEOF_BEGIN_ENCODE_NS
-
-BOOST_TYPEOF_modifier_support(BOOST_TYPEOF_UNIQUE_ID(), BOOST_TYPEOF_const_fun);
-BOOST_TYPEOF_modifier_support(BOOST_TYPEOF_UNIQUE_ID(), BOOST_TYPEOF_volatile_fun);
-BOOST_TYPEOF_modifier_support(BOOST_TYPEOF_UNIQUE_ID(), BOOST_TYPEOF_volatile_const_fun);
-BOOST_TYPEOF_modifier_support(BOOST_TYPEOF_UNIQUE_ID(), BOOST_TYPEOF_pointer_fun);
-BOOST_TYPEOF_modifier_support(BOOST_TYPEOF_UNIQUE_ID(), BOOST_TYPEOF_reference_fun);
-
-#if defined(__BORLANDC__) && (__BORLANDC__ < 0x600)
-BOOST_TYPEOF_modifier_support(BOOST_TYPEOF_UNIQUE_ID(), BOOST_TYPEOF_const_pointer_fun);
-BOOST_TYPEOF_modifier_support(BOOST_TYPEOF_UNIQUE_ID(), BOOST_TYPEOF_const_reference_fun);
-BOOST_TYPEOF_modifier_support(BOOST_TYPEOF_UNIQUE_ID(), BOOST_TYPEOF_volatile_pointer_fun);
-BOOST_TYPEOF_modifier_support(BOOST_TYPEOF_UNIQUE_ID(), BOOST_TYPEOF_volatile_reference_fun);
-BOOST_TYPEOF_modifier_support(BOOST_TYPEOF_UNIQUE_ID(), BOOST_TYPEOF_volatile_const_pointer_fun);
-BOOST_TYPEOF_modifier_support(BOOST_TYPEOF_UNIQUE_ID(), BOOST_TYPEOF_volatile_const_reference_fun);
-#endif
-
-BOOST_TYPEOF_END_ENCODE_NS
-
-#undef BOOST_TYPEOF_modifier_support
-#undef BOOST_TYPEOF_const_fun
-#undef BOOST_TYPEOF_volatile_fun
-#undef BOOST_TYPEOF_volatile_const_fun
-#undef BOOST_TYPEOF_pointer_fun
-#undef BOOST_TYPEOF_reference_fun
-
-#if defined(__BORLANDC__) && (__BORLANDC__ < 0x600)
-#undef BOOST_TYPEOF_const_pointer_fun
-#undef BOOST_TYPEOF_const_reference_fun
-#undef BOOST_TYPEOF_volatile_pointer_fun
-#undef BOOST_TYPEOF_volatile_reference_fun
-#undef BOOST_TYPEOF_volatile_const_pointer_fun
-#undef BOOST_TYPEOF_volatile_const_reference_fun
-#endif
-
-// arrays
-
-#define BOOST_TYPEOF_array_support(ID, Qualifier)\
-    template<class V, class T, int N>\
-    struct encode_type_impl<V, Qualifier() T[N]>\
-    {\
-        typedef\
-            typename boost::type_of::encode_type<\
-            typename boost::type_of::push_back<\
-            typename boost::type_of::push_back<\
-            V\
-            , boost::mpl::size_t<ID> >::type\
-            , boost::mpl::size_t<N> >::type\
-            , T>::type\
-        type;\
-    };\
-    template<class Iter>\
-    struct decode_type_impl<boost::mpl::size_t<ID>, Iter>\
-    {\
-        enum{n = Iter::type::value};\
-        typedef boost::type_of::decode_type<typename Iter::next> d;\
-        typedef typename d::type Qualifier() type[n];\
-        typedef typename d::iter iter;\
-    }
-
-BOOST_TYPEOF_BEGIN_ENCODE_NS
-
-BOOST_TYPEOF_array_support(BOOST_TYPEOF_UNIQUE_ID(), BOOST_PP_EMPTY);
-BOOST_TYPEOF_array_support(BOOST_TYPEOF_UNIQUE_ID(), BOOST_PP_IDENTITY(const));
-BOOST_TYPEOF_array_support(BOOST_TYPEOF_UNIQUE_ID(), BOOST_PP_IDENTITY(volatile));
-BOOST_TYPEOF_array_support(BOOST_TYPEOF_UNIQUE_ID(), BOOST_PP_IDENTITY(volatile const));
-BOOST_TYPEOF_END_ENCODE_NS
-
-#undef BOOST_TYPEOF_array_support
-
-#endif//BOOST_TYPEOF_MODIFIERS_HPP_INCLUDED
diff --git a/boost/typeof/msvc/typeof_impl.hpp b/boost/typeof/msvc/typeof_impl.hpp
deleted file mode 100644
index 74ebc70..0000000
--- a/boost/typeof/msvc/typeof_impl.hpp
+++ /dev/null
@@ -1,283 +0,0 @@
-
-// Copyright (C) 2005 Igor Chesnokov, mailto:ichesnokov at gmail.com (VC 6.5,VC 7.1 + counter code)
-// Copyright (C) 2005-2007 Peder Holt (VC 7.0 + framework)
-// Copyright (C) 2006 Steven Watanabe (VC 8.0)
-
-// Use, modification and distribution is subject to the Boost Software
-// License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_TYPEOF_MSVC_TYPEOF_IMPL_HPP_INCLUDED
-# define BOOST_TYPEOF_MSVC_TYPEOF_IMPL_HPP_INCLUDED
-
-# include <boost/config.hpp>
-# include <boost/detail/workaround.hpp>
-# include <boost/mpl/int.hpp>
-# include <boost/type_traits/is_function.hpp>
-# include <boost/utility/enable_if.hpp>
-
-# if BOOST_WORKAROUND(BOOST_MSVC,>=1310)
-#  include <typeinfo>
-# endif
-
-namespace boost
-{
-    namespace type_of
-    {
-
-        //Compile time constant code
-# if BOOST_WORKAROUND(BOOST_MSVC,>=1300) && defined(_MSC_EXTENSIONS)
-        template<int N> struct the_counter;
-
-        template<typename T,int N = 5/*for similarity*/>
-        struct encode_counter
-        {
-            __if_exists(the_counter<N + 256>)
-            {
-                BOOST_STATIC_CONSTANT(unsigned,count=(encode_counter<T,N + 257>::count));
-            }
-            __if_not_exists(the_counter<N + 256>)
-            {
-                __if_exists(the_counter<N + 64>)
-                {
-                    BOOST_STATIC_CONSTANT(unsigned,count=(encode_counter<T,N + 65>::count));
-                }
-                __if_not_exists(the_counter<N + 64>)
-                {
-                    __if_exists(the_counter<N + 16>)
-                    {
-                        BOOST_STATIC_CONSTANT(unsigned,count=(encode_counter<T,N + 17>::count));
-                    }
-                    __if_not_exists(the_counter<N + 16>)
-                    {
-                        __if_exists(the_counter<N + 4>)
-                        {
-                            BOOST_STATIC_CONSTANT(unsigned,count=(encode_counter<T,N + 5>::count));
-                        }
-                        __if_not_exists(the_counter<N + 4>)
-                        {
-                            __if_exists(the_counter<N>)
-                            {
-                                BOOST_STATIC_CONSTANT(unsigned,count=(encode_counter<T,N + 1>::count));
-                            }
-                            __if_not_exists(the_counter<N>)
-                            {
-                                BOOST_STATIC_CONSTANT(unsigned,count=N);
-                                typedef the_counter<N> type;
-                            }
-                        }
-                    }
-                }
-            }
-        };
-
-# define BOOST_TYPEOF_INDEX(T) (encode_counter<T>::count)
-# define BOOST_TYPEOF_NEXT_INDEX(next)
-# else
-        template<int N> struct encode_counter : encode_counter<N - 1> {};
-        template<> struct encode_counter<0> {};
-
-        //Need to default to a larger value than 4, as due to MSVC's ETI errors. (sizeof(int)==4)
-        char (*encode_index(...))[5];
-
-# define BOOST_TYPEOF_INDEX(T) (sizeof(*boost::type_of::encode_index((boost::type_of::encode_counter<1005>*)0)))
-# define BOOST_TYPEOF_NEXT_INDEX(next) friend char (*encode_index(encode_counter<next>*))[next];
-# endif
-
-        //Typeof code
-
-# if BOOST_WORKAROUND(BOOST_MSVC,==1300)
-        template<typename ID>
-        struct msvc_extract_type
-        {
-            template<bool>
-            struct id2type_impl;
-
-            typedef id2type_impl<true> id2type;
-        };
-
-        template<typename T, typename ID>
-        struct msvc_register_type : msvc_extract_type<ID>
-        {
-            template<>
-            struct id2type_impl<true>  //VC7.0 specific bugfeature
-            {
-                typedef T type;
-            };
-        };
-#elif BOOST_WORKAROUND(BOOST_MSVC,>=1400)
-        struct msvc_extract_type_default_param {};
-
-        template<typename ID, typename T = msvc_extract_type_default_param>
-        struct msvc_extract_type;
-
-        template<typename ID>
-        struct msvc_extract_type<ID, msvc_extract_type_default_param> {
-            template<bool>
-            struct id2type_impl;
-
-            typedef id2type_impl<true> id2type;
-        };
-
-        template<typename ID, typename T>
-        struct msvc_extract_type : msvc_extract_type<ID,msvc_extract_type_default_param>
-        {
-            template<>
-            struct id2type_impl<true>  //VC8.0 specific bugfeature
-            {
-                typedef T type;
-            };
-            template<bool>
-            struct id2type_impl;
-
-            typedef id2type_impl<true> id2type;
-        };
-
-        template<typename T, typename ID>
-        struct msvc_register_type : msvc_extract_type<ID, T>
-        {
-        };
-# else
-        template<typename ID>
-        struct msvc_extract_type
-        {
-            struct id2type;
-        };
-
-        template<typename T, typename ID>
-        struct msvc_register_type : msvc_extract_type<ID>
-        {
-            typedef msvc_extract_type<ID> base_type;
-            struct base_type::id2type // This uses nice VC6.5 and VC7.1 bugfeature
-            {
-                typedef T type;
-            };
-        };
-# endif
-// EAN: preprocess this block out on advice of Peder Holt
-// to eliminate errors in type_traits/common_type.hpp
-# if 0 //BOOST_WORKAROUND(BOOST_MSVC,==1310)
-        template<const std::type_info& ref_type_info>
-        struct msvc_typeid_wrapper {
-            typedef typename msvc_extract_type<msvc_typeid_wrapper>::id2type id2type;
-            typedef typename id2type::type wrapped_type;
-            typedef typename wrapped_type::type type;
-        };
-        //This class is used for registering the type T. encode_type<T> is mapped against typeid(encode_type<T>).
-        //msvc_typeid_wrapper<typeid(encode_type<T>)> will now have a type typedef that equals encode_type<T>.
-        template<typename T>
-        struct encode_type
-        {
-            typedef encode_type<T> input_type;
-            //Invoke registration of encode_type<T>. typeid(encode_type<T>) is now mapped to encode_type<T>. Do not use registered_type for anything.
-            //The reason for registering encode_type<T> rather than T, is that VC handles typeid(function reference) poorly. By adding another
-            //level of indirection, we solve this problem.
-            typedef typename msvc_register_type<input_type,msvc_typeid_wrapper<typeid(input_type)> >::id2type registered_type;
-            typedef T type;
-        };
-
-        template<typename T> typename disable_if<
-            typename is_function<T>::type,
-            typename encode_type<T>::input_type>::type encode_start(T const&);
-
-        template<typename T> typename enable_if<
-            typename is_function<T>::type,
-            typename encode_type<T>::input_type>::type encode_start(T&);
-
-        template<typename Organizer, typename T>
-        msvc_register_type<T,Organizer> typeof_register_type(const T&);
-
-
-# define BOOST_TYPEOF(expr) \
-    boost::type_of::msvc_typeid_wrapper<typeid(boost::type_of::encode_start(expr))>::type
-
-# define BOOST_TYPEOF_TPL(expr) typename BOOST_TYPEOF(expr)
-
-# define BOOST_TYPEOF_NESTED_TYPEDEF_TPL(name,expr) \
-struct name {\
-    enum {_typeof_register_value=sizeof(typeid(boost::type_of::typeof_register_type<name>(expr)))};\
-    typedef typename boost::type_of::msvc_extract_type<name>::id2type id2type;\
-    typedef typename id2type::type type;\
-};
-
-# define BOOST_TYPEOF_NESTED_TYPEDEF(name,expr) \
-struct name {\
-    enum {_typeof_register_value=sizeof(typeid(boost::type_of::typeof_register_type<name>(expr)))};\
-    typedef boost::type_of::msvc_extract_type<name>::id2type id2type;\
-    typedef id2type::type type;\
-};
-
-# else
-        template<int ID>
-        struct msvc_typeid_wrapper {
-            typedef typename msvc_extract_type<mpl::int_<ID> >::id2type id2type;
-            typedef typename id2type::type type;
-        };
-        //Workaround for ETI-bug for VC6 and VC7
-        template<>
-        struct msvc_typeid_wrapper<1> {
-            typedef msvc_typeid_wrapper<1> type;
-        };
-        //Workaround for ETI-bug for VC7.1
-        template<>
-        struct msvc_typeid_wrapper<4> {
-            typedef msvc_typeid_wrapper<4> type;
-        };
-
-        //Tie it all together
-        template<typename T>
-        struct encode_type
-        {
-            //Get the next available compile time constants index
-            BOOST_STATIC_CONSTANT(unsigned,value=BOOST_TYPEOF_INDEX(T));
-            //Instantiate the template
-            typedef typename msvc_register_type<T,mpl::int_<value> >::id2type type;
-            //Set the next compile time constants index
-            BOOST_STATIC_CONSTANT(unsigned,next=value+1);
-            //Increment the compile time constant (only needed when extensions are not active
-            BOOST_TYPEOF_NEXT_INDEX(next);
-        };
-
-        template<class T>
-        struct sizer
-        {
-            typedef char(*type)[encode_type<T>::value];
-        };
-# if BOOST_WORKAROUND(BOOST_MSVC,>=1310)
-        template<typename T> typename disable_if<
-            typename is_function<T>::type,
-            typename sizer<T>::type>::type encode_start(T const&);
-
-        template<typename T> typename enable_if<
-            typename is_function<T>::type,
-            typename sizer<T>::type>::type encode_start(T&);
-# else
-        template<typename T>
-            typename sizer<T>::type encode_start(T const&);
-# endif
-        template<typename Organizer, typename T>
-        msvc_register_type<T,Organizer> typeof_register_type(const T&,Organizer* =0);
-
-# define BOOST_TYPEOF(expr) \
-    boost::type_of::msvc_typeid_wrapper<sizeof(*boost::type_of::encode_start(expr))>::type
-
-# define BOOST_TYPEOF_TPL(expr) typename BOOST_TYPEOF(expr)
-
-# define BOOST_TYPEOF_NESTED_TYPEDEF_TPL(name,expr) \
-    struct name {\
-        BOOST_STATIC_CONSTANT(int,_typeof_register_value=sizeof(boost::type_of::typeof_register_type<name>(expr)));\
-        typedef typename boost::type_of::msvc_extract_type<name>::id2type id2type;\
-        typedef typename id2type::type type;\
-    };
-
-# define BOOST_TYPEOF_NESTED_TYPEDEF(name,expr) \
-    struct name {\
-        BOOST_STATIC_CONSTANT(int,_typeof_register_value=sizeof(boost::type_of::typeof_register_type<name>(expr)));\
-        typedef boost::type_of::msvc_extract_type<name>::id2type id2type;\
-        typedef id2type::type type;\
-    };
-
-#endif
-    }
-}
-
-#endif//BOOST_TYPEOF_MSVC_TYPEOF_IMPL_HPP_INCLUDED
diff --git a/boost/typeof/native.hpp b/boost/typeof/native.hpp
deleted file mode 100644
index 8197e28..0000000
--- a/boost/typeof/native.hpp
+++ /dev/null
@@ -1,60 +0,0 @@
-// Copyright (C) 2006 Arkadiy Vertleyb
-// Use, modification and distribution is subject to the Boost Software
-// License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_TYPEOF_NATIVE_HPP_INCLUDED
-#define BOOST_TYPEOF_NATIVE_HPP_INCLUDED
-
-#ifndef MSVC_TYPEOF_HACK
-
-#ifdef BOOST_NO_SFINAE
-
-namespace boost { namespace type_of {
-
-    template<class T> 
-        T& ensure_obj(const T&);
-
-}}
-
-#else
-
-#include <boost/type_traits/is_function.hpp> 
-#include <boost/utility/enable_if.hpp>
-
-namespace boost { namespace type_of {
-# ifdef BOOST_NO_SFINAE
-    template<class T> 
-    T& ensure_obj(const T&);
-# else
-    template<typename T>
-        typename enable_if<is_function<T>, T&>::type
-        ensure_obj(T&);
-
-    template<typename T>
-        typename disable_if<is_function<T>, T&>::type
-        ensure_obj(const T&);
-# endif
-}}
-
-#endif//BOOST_NO_SFINAE
-
-#define BOOST_TYPEOF(expr) BOOST_TYPEOF_KEYWORD(boost::type_of::ensure_obj(expr))
-#define BOOST_TYPEOF_TPL BOOST_TYPEOF
-
-#define BOOST_TYPEOF_NESTED_TYPEDEF_TPL(name,expr) \
-    struct name {\
-        typedef BOOST_TYPEOF_TPL(expr) type;\
-    };
-
-#define BOOST_TYPEOF_NESTED_TYPEDEF(name,expr) \
-    struct name {\
-        typedef BOOST_TYPEOF(expr) type;\
-    };
-
-#endif//MSVC_TYPEOF_HACK
-
-#define BOOST_TYPEOF_REGISTER_TYPE(x)
-#define BOOST_TYPEOF_REGISTER_TEMPLATE(x, params)
-
-#endif//BOOST_TYPEOF_NATIVE_HPP_INCLUDED
-
diff --git a/boost/typeof/pointers_data_members.hpp b/boost/typeof/pointers_data_members.hpp
deleted file mode 100644
index 2b47e97..0000000
--- a/boost/typeof/pointers_data_members.hpp
+++ /dev/null
@@ -1,38 +0,0 @@
-// Copyright (C) 2004 Arkadiy Vertleyb
-// Use, modification and distribution is subject to the Boost Software
-// License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_TYPEOF_POINTERS_DATA_MEMBERS_HPP_INCLUDED
-#define BOOST_TYPEOF_POINTERS_DATA_MEMBERS_HPP_INCLUDED
-
-#include <boost/typeof/encode_decode_params.hpp>
-#include <boost/typeof/encode_decode.hpp>
-
-#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
-
-BOOST_TYPEOF_BEGIN_ENCODE_NS
-
-enum {PTR_DATA_MEM_ID = BOOST_TYPEOF_UNIQUE_ID()};
-
-template<class V, class P0, class P1>
-struct encode_type_impl<V, P0 P1::*>
-{
-    typedef BOOST_TYPEOF_ENCODE_PARAMS(2, PTR_DATA_MEM_ID) type;
-};
-
-template<class Iter>
-struct decode_type_impl<boost::mpl::size_t<PTR_DATA_MEM_ID>, Iter>
-{
-    typedef Iter iter0;
-    BOOST_TYPEOF_DECODE_PARAMS(2)
-
-    template<class T> struct workaround{
-        typedef p0 T::* type;
-    };
-    typedef typename decode_type_impl<boost::mpl::size_t<PTR_DATA_MEM_ID>, Iter>::template workaround<p1>::type type;
-    typedef iter2 iter;
-};
-
-BOOST_TYPEOF_END_ENCODE_NS
-
-#endif//BOOST_TYPEOF_POINTERS_DATA_MEMBERS_HPP_INCLUDED
diff --git a/boost/typeof/register_functions.hpp b/boost/typeof/register_functions.hpp
deleted file mode 100644
index 407bba3..0000000
--- a/boost/typeof/register_functions.hpp
+++ /dev/null
@@ -1,50 +0,0 @@
-// Copyright (C) 2004 Arkadiy Vertleyb
-// Use, modification and distribution is subject to the Boost Software
-// License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_TYPEOF_REGISTER_FUNCTIONS_HPP_INCLUDED
-#define BOOST_TYPEOF_REGISTER_FUNCTIONS_HPP_INCLUDED
-
-#include <boost/preprocessor/repetition/enum.hpp>
-#include <boost/preprocessor/repetition/enum_params.hpp>
-#include <boost/preprocessor/repetition/enum_trailing_params.hpp>
-#include <boost/preprocessor/cat.hpp>
-#include <boost/preprocessor/inc.hpp>
-#include <boost/preprocessor/dec.hpp>
-#include <boost/preprocessor/if.hpp>
-#include <boost/preprocessor/arithmetic/add.hpp>
-#include <boost/preprocessor/iteration/iterate.hpp>
-
-#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
-
-#ifndef BOOST_TYPEOF_LIMIT_FUNCTION_ARITY
-#define BOOST_TYPEOF_LIMIT_FUNCTION_ARITY 10
-#endif
-
-enum 
-{
-    FUN_ID                          = BOOST_TYPEOF_UNIQUE_ID(),
-    FUN_PTR_ID                      = FUN_ID +  1 * BOOST_PP_INC(BOOST_TYPEOF_LIMIT_FUNCTION_ARITY),
-    FUN_REF_ID                      = FUN_ID +  2 * BOOST_PP_INC(BOOST_TYPEOF_LIMIT_FUNCTION_ARITY),
-    MEM_FUN_ID                      = FUN_ID +  3 * BOOST_PP_INC(BOOST_TYPEOF_LIMIT_FUNCTION_ARITY),
-    CONST_MEM_FUN_ID                = FUN_ID +  4 * BOOST_PP_INC(BOOST_TYPEOF_LIMIT_FUNCTION_ARITY),
-    VOLATILE_MEM_FUN_ID             = FUN_ID +  5 * BOOST_PP_INC(BOOST_TYPEOF_LIMIT_FUNCTION_ARITY),
-    VOLATILE_CONST_MEM_FUN_ID       = FUN_ID +  6 * BOOST_PP_INC(BOOST_TYPEOF_LIMIT_FUNCTION_ARITY),
-    FUN_VAR_ID                      = FUN_ID +  7 * BOOST_PP_INC(BOOST_TYPEOF_LIMIT_FUNCTION_ARITY),
-    FUN_VAR_PTR_ID                  = FUN_ID +  8 * BOOST_PP_INC(BOOST_TYPEOF_LIMIT_FUNCTION_ARITY),
-    FUN_VAR_REF_ID                  = FUN_ID +  9 * BOOST_PP_INC(BOOST_TYPEOF_LIMIT_FUNCTION_ARITY),
-    MEM_FUN_VAR_ID                  = FUN_ID + 10 * BOOST_PP_INC(BOOST_TYPEOF_LIMIT_FUNCTION_ARITY),
-    CONST_MEM_FUN_VAR_ID            = FUN_ID + 11 * BOOST_PP_INC(BOOST_TYPEOF_LIMIT_FUNCTION_ARITY),
-    VOLATILE_MEM_FUN_VAR_ID         = FUN_ID + 12 * BOOST_PP_INC(BOOST_TYPEOF_LIMIT_FUNCTION_ARITY),
-    VOLATILE_CONST_MEM_FUN_VAR_ID   = FUN_ID + 13 * BOOST_PP_INC(BOOST_TYPEOF_LIMIT_FUNCTION_ARITY)
-};
-
-BOOST_TYPEOF_BEGIN_ENCODE_NS
-
-# define BOOST_PP_ITERATION_LIMITS (0, BOOST_TYPEOF_LIMIT_FUNCTION_ARITY)
-# define BOOST_PP_FILENAME_1 <boost/typeof/register_functions_iterate.hpp>
-# include BOOST_PP_ITERATE()
-
-BOOST_TYPEOF_END_ENCODE_NS
-
-#endif//BOOST_TYPEOF_REGISTER_FUNCTIONS_HPP_INCLUDED
diff --git a/boost/typeof/register_functions_iterate.hpp b/boost/typeof/register_functions_iterate.hpp
deleted file mode 100644
index aaa43f3..0000000
--- a/boost/typeof/register_functions_iterate.hpp
+++ /dev/null
@@ -1,135 +0,0 @@
-// Copyright (C) 2004 Arkadiy Vertleyb
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#include <boost/typeof/encode_decode_params.hpp>
-
-#define n BOOST_PP_ITERATION()
-
-// function pointers
-
-template<class V, class R BOOST_PP_ENUM_TRAILING_PARAMS(n, class P)>
-struct encode_type_impl<V, R(*)(BOOST_PP_ENUM_PARAMS(n, P))>
-{
-    typedef R BOOST_PP_CAT(P, n);
-    typedef BOOST_TYPEOF_ENCODE_PARAMS(BOOST_PP_INC(n), FUN_PTR_ID + n) type;
-};
-
-template<class V, class R BOOST_PP_ENUM_TRAILING_PARAMS(n, class P)>
-struct encode_type_impl<V, R(*)(BOOST_PP_ENUM_PARAMS(n, P) ...)>
-{
-    typedef R BOOST_PP_CAT(P, n);
-    typedef BOOST_TYPEOF_ENCODE_PARAMS(BOOST_PP_INC(n), FUN_VAR_PTR_ID + n) type;
-};
-
-template<class Iter>
-struct decode_type_impl<boost::mpl::size_t<FUN_PTR_ID + n>, Iter>
-{
-    typedef Iter iter0;
-    BOOST_TYPEOF_DECODE_PARAMS(BOOST_PP_INC(n))
-    typedef BOOST_PP_CAT(p, n)(*type)(BOOST_PP_ENUM_PARAMS(n, p));
-    typedef BOOST_PP_CAT(iter, BOOST_PP_INC(n)) iter;
-};
-
-template<class Iter>
-struct decode_type_impl<boost::mpl::size_t<FUN_VAR_PTR_ID + n>, Iter>
-{
-    typedef Iter iter0;
-    BOOST_TYPEOF_DECODE_PARAMS(BOOST_PP_INC(n))
-    typedef BOOST_PP_CAT(p, n)(*type)(BOOST_PP_ENUM_PARAMS(n, p) ...);
-    typedef BOOST_PP_CAT(iter, BOOST_PP_INC(n)) iter;
-};
-
-#ifndef BOOST_TYPEOF_NO_FUNCTION_TYPES
-
-    // function references
-
-    template<class V, class R BOOST_PP_ENUM_TRAILING_PARAMS(n, class P)>
-    struct encode_type_impl<V, R(&)(BOOST_PP_ENUM_PARAMS(n, P))>
-    {
-        typedef R BOOST_PP_CAT(P, n);
-        typedef BOOST_TYPEOF_ENCODE_PARAMS(BOOST_PP_INC(n), FUN_REF_ID + n) type;
-    };
-
-    template<class V, class R BOOST_PP_ENUM_TRAILING_PARAMS(n, class P)>
-    struct encode_type_impl<V, R(&)(BOOST_PP_ENUM_PARAMS(n, P) ...)>
-    {
-        typedef R BOOST_PP_CAT(P, n);
-        typedef BOOST_TYPEOF_ENCODE_PARAMS(BOOST_PP_INC(n), FUN_VAR_REF_ID + n) type;
-    };
-
-    template<class Iter>
-    struct decode_type_impl<boost::mpl::size_t<FUN_REF_ID + n>, Iter>
-    {
-        typedef Iter iter0;
-        BOOST_TYPEOF_DECODE_PARAMS(BOOST_PP_INC(n))
-        typedef BOOST_PP_CAT(p, n)(&type)(BOOST_PP_ENUM_PARAMS(n, p));
-        typedef BOOST_PP_CAT(iter, BOOST_PP_INC(n)) iter;
-    };
-
-    template<class Iter>
-    struct decode_type_impl<boost::mpl::size_t<FUN_VAR_REF_ID + n>, Iter>
-    {
-        typedef Iter iter0;
-        BOOST_TYPEOF_DECODE_PARAMS(BOOST_PP_INC(n))
-        typedef BOOST_PP_CAT(p, n)(&type)(BOOST_PP_ENUM_PARAMS(n, p) ...);
-        typedef BOOST_PP_CAT(iter, BOOST_PP_INC(n)) iter;
-    };
-
-    // functions
-
-    template<class V, class R BOOST_PP_ENUM_TRAILING_PARAMS(n, class P)>
-    struct encode_type_impl<V, R(BOOST_PP_ENUM_PARAMS(n, P))>
-    {
-        typedef R BOOST_PP_CAT(P, n);
-        typedef BOOST_TYPEOF_ENCODE_PARAMS(BOOST_PP_INC(n), FUN_ID + n) type;
-    };
-
-    template<class V, class R BOOST_PP_ENUM_TRAILING_PARAMS(n, class P)>
-    struct encode_type_impl<V, R(BOOST_PP_ENUM_PARAMS(n, P) ...)>
-    {
-        typedef R BOOST_PP_CAT(P, n);
-        typedef BOOST_TYPEOF_ENCODE_PARAMS(BOOST_PP_INC(n), FUN_VAR_ID + n) type;
-    };
-
-    template<class Iter>
-    struct decode_type_impl<boost::mpl::size_t<FUN_ID + n>, Iter>
-    {
-        typedef Iter iter0;
-        BOOST_TYPEOF_DECODE_PARAMS(BOOST_PP_INC(n))
-        typedef BOOST_PP_CAT(p, n)(type)(BOOST_PP_ENUM_PARAMS(n, p));
-        typedef BOOST_PP_CAT(iter, BOOST_PP_INC(n)) iter;
-    };
-
-    template<class Iter>
-    struct decode_type_impl<boost::mpl::size_t<FUN_VAR_ID + n>, Iter>
-    {
-        typedef Iter iter0;
-        BOOST_TYPEOF_DECODE_PARAMS(BOOST_PP_INC(n))
-        typedef BOOST_PP_CAT(p, n)(type)(BOOST_PP_ENUM_PARAMS(n, p) ...);
-        typedef BOOST_PP_CAT(iter, BOOST_PP_INC(n)) iter;
-    };
-
-#endif//BOOST_TYPEOF_NO_FUNCTION_TYPES
-
-#ifndef BOOST_TYPEOF_NO_MEMBER_FUNCTION_TYPES
-// member functions
-
-#define BOOST_TYPEOF_qualifier
-#define BOOST_TYPEOF_id MEM_FUN_ID
-#include <boost/typeof/register_mem_functions.hpp>
-
-#define BOOST_TYPEOF_qualifier const
-#define BOOST_TYPEOF_id CONST_MEM_FUN_ID
-#include <boost/typeof/register_mem_functions.hpp>
-
-#define BOOST_TYPEOF_qualifier volatile
-#define BOOST_TYPEOF_id VOLATILE_MEM_FUN_ID
-#include <boost/typeof/register_mem_functions.hpp>
-
-#define BOOST_TYPEOF_qualifier volatile const
-#define BOOST_TYPEOF_id VOLATILE_CONST_MEM_FUN_ID
-#include <boost/typeof/register_mem_functions.hpp>
-
-#undef n
-#endif
diff --git a/boost/typeof/register_fundamental.hpp b/boost/typeof/register_fundamental.hpp
deleted file mode 100644
index 3a15888..0000000
--- a/boost/typeof/register_fundamental.hpp
+++ /dev/null
@@ -1,62 +0,0 @@
-// Copyright (C) 2004 Arkadiy Vertleyb
-// Copyright (C) 2004 Peder Holt
-// Use, modification and distribution is subject to the Boost Software
-// License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_TYPEOF_REGISTER_FUNDAMENTAL_HPP_INCLUDED
-#define BOOST_TYPEOF_REGISTER_FUNDAMENTAL_HPP_INCLUDED
-
-#include <boost/typeof/typeof.hpp>
-
-#include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
-
-BOOST_TYPEOF_REGISTER_TYPE(unsigned char)
-BOOST_TYPEOF_REGISTER_TYPE(unsigned short)
-BOOST_TYPEOF_REGISTER_TYPE(unsigned int)
-BOOST_TYPEOF_REGISTER_TYPE(unsigned long)
-
-BOOST_TYPEOF_REGISTER_TYPE(signed char)
-BOOST_TYPEOF_REGISTER_TYPE(signed short)
-BOOST_TYPEOF_REGISTER_TYPE(signed int)
-BOOST_TYPEOF_REGISTER_TYPE(signed long)
-
-BOOST_TYPEOF_REGISTER_TYPE(bool)
-BOOST_TYPEOF_REGISTER_TYPE(char)
-
-BOOST_TYPEOF_REGISTER_TYPE(float)
-BOOST_TYPEOF_REGISTER_TYPE(double)
-BOOST_TYPEOF_REGISTER_TYPE(long double)
-
-#ifndef BOOST_NO_INTRINSIC_WCHAR_T
-// If the following line fails to compile and you're using the Intel
-// compiler, see http://lists.boost.org/MailArchives/boost-users/msg06567.php,
-// and define BOOST_NO_INTRINSIC_WCHAR_T on the command line.
-BOOST_TYPEOF_REGISTER_TYPE(wchar_t)
-#endif
-
-#if (defined(BOOST_MSVC) && (BOOST_MSVC == 1200)) \
-    || (defined(BOOST_INTEL_CXX_VERSION) && defined(_MSC_VER) && (BOOST_INTEL_CXX_VERSION <= 600)) \
-    || (defined(__BORLANDC__) && (__BORLANDC__ == 0x600) && (_MSC_VER == 1200))
-BOOST_TYPEOF_REGISTER_TYPE(unsigned __int8)
-BOOST_TYPEOF_REGISTER_TYPE(__int8)
-BOOST_TYPEOF_REGISTER_TYPE(unsigned __int16)
-BOOST_TYPEOF_REGISTER_TYPE(__int16)
-BOOST_TYPEOF_REGISTER_TYPE(unsigned __int32)
-BOOST_TYPEOF_REGISTER_TYPE(__int32)
-#ifdef __BORLANDC__
-BOOST_TYPEOF_REGISTER_TYPE(unsigned __int64)
-BOOST_TYPEOF_REGISTER_TYPE(__int64)
-#endif
-#endif
-
-# if defined(BOOST_HAS_LONG_LONG)
-BOOST_TYPEOF_REGISTER_TYPE(::boost::ulong_long_type)
-BOOST_TYPEOF_REGISTER_TYPE(::boost::long_long_type)
-#elif defined(BOOST_HAS_MS_INT64)
-BOOST_TYPEOF_REGISTER_TYPE(unsigned __int64)
-BOOST_TYPEOF_REGISTER_TYPE(__int64)
-#endif
-
-BOOST_TYPEOF_REGISTER_TYPE(void)
-
-#endif//BOOST_TYPEOF_REGISTER_FUNDAMENTAL_HPP_INCLUDED
diff --git a/boost/typeof/register_mem_functions.hpp b/boost/typeof/register_mem_functions.hpp
deleted file mode 100644
index 9cf9720..0000000
--- a/boost/typeof/register_mem_functions.hpp
+++ /dev/null
@@ -1,32 +0,0 @@
-// Copyright (C) 2004 Arkadiy Vertleyb
-// Use, modification and distribution is subject to the Boost Software
-// License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
-
-#include <boost/typeof/encode_decode_params.hpp>
-
-// member functions
-
-template<class V, class T, class R BOOST_PP_ENUM_TRAILING_PARAMS(n, class P)> 
-struct encode_type_impl<V, R(T::*)(BOOST_PP_ENUM_PARAMS(n, P)) BOOST_TYPEOF_qualifier>
-{
-    typedef R BOOST_PP_CAT(P, n);
-    typedef T BOOST_PP_CAT(P, BOOST_PP_INC(n));
-    typedef BOOST_TYPEOF_ENCODE_PARAMS(BOOST_PP_ADD(n, 2), BOOST_TYPEOF_id + n) type;
-};
-
-template<class Iter>
-struct decode_type_impl<boost::mpl::size_t<BOOST_TYPEOF_id + n>, Iter>
-{
-    typedef Iter iter0;
-    BOOST_TYPEOF_DECODE_PARAMS(BOOST_PP_ADD(n, 2))
-    template<class T> struct workaround{
-        typedef BOOST_PP_CAT(p, n)(T::*type)(BOOST_PP_ENUM_PARAMS(n, p)) BOOST_TYPEOF_qualifier;
-    };
-    typedef typename workaround<BOOST_PP_CAT(p, BOOST_PP_INC(n))>::type type;
-    typedef BOOST_PP_CAT(iter, BOOST_PP_ADD(n, 2)) iter;
-};
-
-// undef parameters
-
-#undef BOOST_TYPEOF_id
-#undef BOOST_TYPEOF_qualifier
diff --git a/boost/typeof/template_encoding.hpp b/boost/typeof/template_encoding.hpp
deleted file mode 100644
index bae7e89..0000000
--- a/boost/typeof/template_encoding.hpp
+++ /dev/null
@@ -1,160 +0,0 @@
-// Copyright (C) 2004 Arkadiy Vertleyb
-// Copyright (C) 2005 Peder Holt
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_TYPEOF_TEMPLATE_ENCODING_HPP_INCLUDED
-#define BOOST_TYPEOF_TEMPLATE_ENCODING_HPP_INCLUDED
-
-#include <boost/preprocessor/cat.hpp>
-#include <boost/preprocessor/repetition/enum_trailing.hpp>
-#include <boost/preprocessor/control/iif.hpp>
-#include <boost/preprocessor/detail/is_unary.hpp>
-#include <boost/preprocessor/repetition/repeat.hpp>
-#include <boost/preprocessor/tuple/eat.hpp>
-#include <boost/preprocessor/seq/transform.hpp>
-#include <boost/preprocessor/seq/for_each_i.hpp>
-#include <boost/preprocessor/seq/cat.hpp>
-
-#include <boost/typeof/encode_decode.hpp>
-#include <boost/typeof/int_encoding.hpp>
-
-#include <boost/typeof/type_template_param.hpp>
-#include <boost/typeof/integral_template_param.hpp>
-#include <boost/typeof/template_template_param.hpp>
-
-#ifdef __BORLANDC__
-#define BOOST_TYPEOF_QUALIFY(P) self_t::P
-#else
-#define BOOST_TYPEOF_QUALIFY(P) P
-#endif
-// The template parameter description, entered by the user,
-// is converted into a polymorphic "object"
-// that is used to generate the code responsible for
-// encoding/decoding the parameter, etc.
-
-// make sure to cat the sequence first, and only then add the prefix.
-#define BOOST_TYPEOF_MAKE_OBJ(elem) BOOST_PP_CAT(\
-    BOOST_TYPEOF_MAKE_OBJ,\
-    BOOST_PP_SEQ_CAT((_) BOOST_TYPEOF_TO_SEQ(elem))\
-    )
-
-#define BOOST_TYPEOF_TO_SEQ(tokens) BOOST_TYPEOF_ ## tokens ## _BOOST_TYPEOF
-
-// BOOST_TYPEOF_REGISTER_TEMPLATE
-
-#define BOOST_TYPEOF_REGISTER_TEMPLATE_EXPLICIT_ID(Name, Params, Id)\
-    BOOST_TYPEOF_REGISTER_TEMPLATE_IMPL(\
-        Name,\
-        BOOST_TYPEOF_MAKE_OBJS(BOOST_TYPEOF_TOSEQ(Params)),\
-        BOOST_PP_SEQ_SIZE(BOOST_TYPEOF_TOSEQ(Params)),\
-        Id)
-
-#define BOOST_TYPEOF_REGISTER_TEMPLATE(Name, Params)\
-    BOOST_TYPEOF_REGISTER_TEMPLATE_EXPLICIT_ID(Name, Params, BOOST_TYPEOF_UNIQUE_ID())
-
-#define BOOST_TYPEOF_OBJECT_MAKER(s, data, elem)\
-    BOOST_TYPEOF_MAKE_OBJ(elem)
-
-#define BOOST_TYPEOF_MAKE_OBJS(Params)\
-    BOOST_PP_SEQ_TRANSFORM(BOOST_TYPEOF_OBJECT_MAKER, ~, Params)
-
-// As suggested by Paul Mensonides:
-
-#define BOOST_TYPEOF_TOSEQ(x)\
-    BOOST_PP_IIF(\
-        BOOST_PP_IS_UNARY(x),\
-        x BOOST_PP_TUPLE_EAT(3), BOOST_PP_REPEAT\
-    )(x, BOOST_TYPEOF_TOSEQ_2, ~)
-
-#define BOOST_TYPEOF_TOSEQ_2(z, n, _) (class)
-
-// BOOST_TYPEOF_VIRTUAL
-
-#define BOOST_TYPEOF_CAT_4(a, b, c, d) BOOST_TYPEOF_CAT_4_I(a, b, c, d)
-#define BOOST_TYPEOF_CAT_4_I(a, b, c, d) a ## b ## c ## d
-
-#define BOOST_TYPEOF_VIRTUAL(Fun, Obj)\
-    BOOST_TYPEOF_CAT_4(BOOST_TYPEOF_, BOOST_PP_SEQ_HEAD(Obj), _, Fun)
-
-// BOOST_TYPEOF_SEQ_ENUM[_TRAILING][_1]
-// Two versions provided due to reentrancy issue
-
-#define BOOST_TYPEOF_SEQ_EXPAND_ELEMENT(z,n,seq)\
-   BOOST_PP_SEQ_ELEM(0,seq) (z,n,BOOST_PP_SEQ_ELEM(n,BOOST_PP_SEQ_ELEM(1,seq)))
-
-#define BOOST_TYPEOF_SEQ_ENUM(seq,macro)\
-    BOOST_PP_ENUM(BOOST_PP_SEQ_SIZE(seq),BOOST_TYPEOF_SEQ_EXPAND_ELEMENT,(macro)(seq))
-
-#define BOOST_TYPEOF_SEQ_ENUM_TRAILING(seq,macro)\
-    BOOST_PP_ENUM_TRAILING(BOOST_PP_SEQ_SIZE(seq),BOOST_TYPEOF_SEQ_EXPAND_ELEMENT,(macro)(seq))
-
-#define BOOST_TYPEOF_SEQ_EXPAND_ELEMENT_1(z,n,seq)\
-    BOOST_PP_SEQ_ELEM(0,seq) (z,n,BOOST_PP_SEQ_ELEM(n,BOOST_PP_SEQ_ELEM(1,seq)))
-
-#define BOOST_TYPEOF_SEQ_ENUM_1(seq,macro)\
-    BOOST_PP_ENUM(BOOST_PP_SEQ_SIZE(seq),BOOST_TYPEOF_SEQ_EXPAND_ELEMENT_1,(macro)(seq))
-
-#define BOOST_TYPEOF_SEQ_ENUM_TRAILING_1(seq,macro)\
-    BOOST_PP_ENUM_TRAILING(BOOST_PP_SEQ_SIZE(seq),BOOST_TYPEOF_SEQ_EXPAND_ELEMENT_1,(macro)(seq))
-
-//
-
-#define BOOST_TYPEOF_PLACEHOLDER(z, n, elem)\
-    BOOST_TYPEOF_VIRTUAL(PLACEHOLDER, elem)(elem)
-
-#define BOOST_TYPEOF_PLACEHOLDER_TYPES(z, n, elem)\
-    BOOST_TYPEOF_VIRTUAL(PLACEHOLDER_TYPES, elem)(elem, n)
-
-#define BOOST_TYPEOF_REGISTER_TEMPLATE_ENCODE_PARAM(r, data, n, elem)\
-    BOOST_TYPEOF_VIRTUAL(ENCODE, elem)(elem, n)
-
-#define BOOST_TYPEOF_REGISTER_TEMPLATE_DECODE_PARAM(r, data, n, elem)\
-    BOOST_TYPEOF_VIRTUAL(DECODE, elem)(elem, n)
-
-#define BOOST_TYPEOF_REGISTER_TEMPLATE_PARAM_PAIR(z, n, elem) \
-    BOOST_TYPEOF_VIRTUAL(EXPANDTYPE, elem)(elem) BOOST_PP_CAT(P, n)
-
-#define BOOST_TYPEOF_REGISTER_DEFAULT_TEMPLATE_TYPE(Name,Params,ID)\
-    Name< BOOST_PP_ENUM_PARAMS(BOOST_PP_SEQ_SIZE(Params), P) >
-
-//Since we are creating an internal decode struct, we need to use different template names, T instead of P.
-#define BOOST_TYPEOF_REGISTER_DECODER_TYPE_PARAM_PAIR(z,n,elem) \
-    BOOST_TYPEOF_VIRTUAL(EXPANDTYPE, elem)(elem) BOOST_PP_CAT(T, n)
-
-//Default template param decoding
-
-#define BOOST_TYPEOF_TYPEDEF_DECODED_TEMPLATE_TYPE(Name,Params)\
-    typedef Name<BOOST_PP_ENUM_PARAMS(BOOST_PP_SEQ_SIZE(Params),BOOST_TYPEOF_QUALIFY(P))> type;
-
-//Branch the decoding
-#define BOOST_TYPEOF_TYPEDEF_DECODED_TYPE(Name,Params)\
-    BOOST_PP_IF(BOOST_TYPEOF_HAS_TEMPLATES(Params),\
-        BOOST_TYPEOF_TYPEDEF_DECODED_TEMPLATE_TEMPLATE_TYPE,\
-        BOOST_TYPEOF_TYPEDEF_DECODED_TEMPLATE_TYPE)(Name,Params)
-
-#define BOOST_TYPEOF_REGISTER_TEMPLATE_IMPL(Name, Params, Size, ID)\
-    BOOST_TYPEOF_BEGIN_ENCODE_NS\
-    BOOST_TYPEOF_REGISTER_TEMPLATE_TEMPLATE_IMPL(Name, Params, ID)\
-    template<class V\
-        BOOST_TYPEOF_SEQ_ENUM_TRAILING(Params, BOOST_TYPEOF_REGISTER_TEMPLATE_PARAM_PAIR)\
-    >\
-    struct encode_type_impl<V, Name<BOOST_PP_ENUM_PARAMS(Size, P)> >\
-    {\
-        typedef typename boost::type_of::push_back<V, boost::mpl::size_t<ID> >::type V0;\
-        BOOST_PP_SEQ_FOR_EACH_I(BOOST_TYPEOF_REGISTER_TEMPLATE_ENCODE_PARAM, ~, Params)\
-        typedef BOOST_PP_CAT(V, Size) type;\
-    };\
-    template<class Iter>\
-    struct decode_type_impl<boost::mpl::size_t<ID>, Iter>\
-    {\
-        typedef decode_type_impl<boost::mpl::size_t<ID>, Iter> self_t;\
-        typedef boost::mpl::size_t<ID> self_id;\
-        typedef Iter iter0;\
-        BOOST_PP_SEQ_FOR_EACH_I(BOOST_TYPEOF_REGISTER_TEMPLATE_DECODE_PARAM, ~, Params)\
-        BOOST_TYPEOF_TYPEDEF_DECODED_TYPE(Name, Params)\
-        typedef BOOST_PP_CAT(iter, Size) iter;\
-    };\
-    BOOST_TYPEOF_END_ENCODE_NS
-
-#endif//BOOST_TYPEOF_TEMPLATE_ENCODING_HPP_INCLUDED
diff --git a/boost/typeof/template_template_param.hpp b/boost/typeof/template_template_param.hpp
deleted file mode 100644
index 4d64190..0000000
--- a/boost/typeof/template_template_param.hpp
+++ /dev/null
@@ -1,149 +0,0 @@
-// Copyright (C) 2005 Peder Holt
-// Copyright (C) 2005 Arkadiy Vertleyb
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_TYPEOF_TEMPLATE_TEMPLATE_PARAM_HPP_INCLUDED
-#define BOOST_TYPEOF_TEMPLATE_TEMPLATE_PARAM_HPP_INCLUDED
-
-#include <boost/preprocessor/logical/or.hpp>
-#include <boost/preprocessor/seq/fold_left.hpp>
-#include <boost/preprocessor/seq/enum.hpp>
-
-#define BOOST_TYPEOF_MAKE_OBJ_template(x)   BOOST_TYPEOF_TEMPLATE_PARAM(x)
-#define BOOST_TYPEOF_TEMPLATE(X) template(X) BOOST_TYPEOF_EAT
-#define BOOST_TYPEOF_template(X) (template(X))
-
-#define BOOST_TYPEOF_TEMPLATE_PARAM(Params)\
-    (TEMPLATE_PARAM)\
-    (Params)
-
-#define BOOST_TYPEOF_TEMPLATE_PARAM_GETPARAMS(This)\
-    BOOST_TYPEOF_TOSEQ(BOOST_PP_SEQ_ELEM(1, This))
-
-//Encode / decode this
-#define BOOST_TYPEOF_TEMPLATE_PARAM_ENCODE(This, n)\
-   typedef typename boost::type_of::encode_template<BOOST_PP_CAT(V, n),\
-       BOOST_PP_CAT(P, n)<BOOST_TYPEOF_SEQ_ENUM(BOOST_TYPEOF_MAKE_OBJS(BOOST_TYPEOF_TEMPLATE_PARAM_GETPARAMS(This)),BOOST_TYPEOF_PLACEHOLDER) >\
-   >::type BOOST_PP_CAT(V, BOOST_PP_INC(n));
-
-#define BOOST_TYPEOF_TEMPLATE_PARAM_DECODE(This, n)\
-   typedef boost::type_of::decode_template< BOOST_PP_CAT(iter, n) > BOOST_PP_CAT(d, n);\
-   typedef typename BOOST_PP_CAT(d, n)::type BOOST_PP_CAT(P, n);\
-   typedef typename BOOST_PP_CAT(d, n)::iter BOOST_PP_CAT(iter,BOOST_PP_INC(n));
-
-// template<class, unsigned int, ...> class
-#define BOOST_TYPEOF_TEMPLATE_PARAM_EXPANDTYPE(This) \
-    template <BOOST_PP_SEQ_ENUM(BOOST_TYPEOF_TEMPLATE_PARAM_GETPARAMS(This)) > class
-
-#define BOOST_TYPEOF_TEMPLATE_PARAM_PLACEHOLDER(Param)\
-    Nested_Template_Template_Arguments_Not_Supported
-
-//'template<class,int> class' is reduced to 'class'
-#define BOOST_TYPEOF_TEMPLATE_PARAM_DECLARATION_TYPE(Param) class
-
-// T3<int, (unsigned int)0, ...>
-#define BOOST_TYPEOF_TEMPLATE_PARAM_PLACEHOLDER_TYPES(Param, n)\
-    BOOST_PP_CAT(T,n)<BOOST_TYPEOF_SEQ_ENUM_1(BOOST_TYPEOF_MAKE_OBJS(BOOST_TYPEOF_TEMPLATE_PARAM_GETPARAMS(Param)),BOOST_TYPEOF_PLACEHOLDER) >
-
-#define BOOST_TYPEOF_TEMPLATE_PARAM_ISTEMPLATE 1
-
-////////////////////////////
-// move to encode_decode?
-
-BOOST_TYPEOF_BEGIN_ENCODE_NS
-
-template<class V, class Type_Not_Registered_With_Typeof_System> struct encode_template_impl;
-template<class T, class Iter> struct decode_template_impl;
-
-BOOST_TYPEOF_END_ENCODE_NS
-
-namespace boost { namespace type_of {
-
-    template<class V, class T> struct encode_template
-        : BOOST_TYPEOF_ENCODE_NS_QUALIFIER::encode_template_impl<V, T>
-    {};
-
-    template<class Iter> struct decode_template
-        : BOOST_TYPEOF_ENCODE_NS_QUALIFIER::decode_template_impl<typename Iter::type, typename Iter::next>
-    {};
-}}
-
-////////////////////////////
-// move to template_encoding.hpp?
-
-//Template template registration
-#define BOOST_TYPEOF_REGISTER_TYPE_FOR_TEMPLATE_TEMPLATE(Name,Params,ID)\
-    template<class V\
-        BOOST_TYPEOF_SEQ_ENUM_TRAILING(Params,BOOST_TYPEOF_REGISTER_TEMPLATE_PARAM_PAIR)\
-    >\
-    struct encode_template_impl<V,Name<\
-        BOOST_PP_ENUM_PARAMS(\
-        BOOST_PP_SEQ_SIZE(Params),\
-        P)> >\
-        : boost::type_of::push_back<V, boost::mpl::size_t<ID> >\
-    {\
-    };\
-    template<class Iter> struct decode_template_impl<boost::mpl::size_t<ID>, Iter>\
-    {\
-        BOOST_PP_REPEAT(BOOST_PP_SEQ_SIZE(Params),BOOST_TYPEOF_TYPEDEF_INT_PN,_)\
-        typedef Name<BOOST_TYPEOF_SEQ_ENUM(Params,BOOST_TYPEOF_PLACEHOLDER) > type;\
-        typedef Iter iter;\
-    };
-
-#define BOOST_TYPEOF_TYPEDEF_INT_PN(z,n,Params) typedef int BOOST_PP_CAT(P,n);
-
-#ifdef __BORLANDC__
-#define BOOST_TYPEOF_DECODE_NESTED_TEMPLATE_HELPER_NAME BOOST_PP_CAT(\
-        BOOST_PP_CAT(\
-            BOOST_PP_CAT(\
-                decode_nested_template_helper,\
-                BOOST_TYPEOF_REGISTRATION_GROUP\
-            ),0x10000\
-        ),__LINE__\
-    )
-#define BOOST_TYPEOF_REGISTER_DECODE_NESTED_TEMPLATE_HELPER_IMPL(Name,Params,ID)\
-    struct BOOST_TYPEOF_DECODE_NESTED_TEMPLATE_HELPER_NAME {\
-        template<BOOST_TYPEOF_SEQ_ENUM(Params,BOOST_TYPEOF_REGISTER_DECLARE_DECODER_TYPE_PARAM_PAIR) >\
-        struct decode_params;\
-        template<BOOST_TYPEOF_SEQ_ENUM(Params,BOOST_TYPEOF_REGISTER_DECODER_TYPE_PARAM_PAIR) >\
-        struct decode_params<BOOST_TYPEOF_SEQ_ENUM(Params,BOOST_TYPEOF_PLACEHOLDER_TYPES) >\
-        {\
-            typedef Name<BOOST_PP_ENUM_PARAMS(BOOST_PP_SEQ_SIZE(Params),T)> type;\
-        };\
-    };
-//Template template param decoding
-#define BOOST_TYPEOF_TYPEDEF_DECODED_TEMPLATE_TEMPLATE_TYPE(Name,Params)\
-    typedef typename BOOST_TYPEOF_DECODE_NESTED_TEMPLATE_HELPER_NAME::decode_params<BOOST_PP_ENUM_PARAMS(BOOST_PP_SEQ_SIZE(Params),P)>::type type;
-
-#else
-#define BOOST_TYPEOF_REGISTER_DECODE_NESTED_TEMPLATE_HELPER_IMPL(Name,Params,ID)
-
-//Template template param decoding
-#define BOOST_TYPEOF_TYPEDEF_DECODED_TEMPLATE_TEMPLATE_TYPE(Name,Params)\
-    template<BOOST_TYPEOF_SEQ_ENUM(Params,BOOST_TYPEOF_REGISTER_DECLARE_DECODER_TYPE_PARAM_PAIR) >\
-    struct decode_params;\
-    template<BOOST_TYPEOF_SEQ_ENUM(Params,BOOST_TYPEOF_REGISTER_DECODER_TYPE_PARAM_PAIR) >\
-    struct decode_params<BOOST_TYPEOF_SEQ_ENUM(Params,BOOST_TYPEOF_PLACEHOLDER_TYPES) >\
-    {\
-        typedef Name<BOOST_PP_ENUM_PARAMS(BOOST_PP_SEQ_SIZE(Params),T)> type;\
-    };\
-    typedef typename decode_params<BOOST_PP_ENUM_PARAMS(BOOST_PP_SEQ_SIZE(Params),P)>::type type;
-#endif
-#define BOOST_TYPEOF_REGISTER_DECLARE_DECODER_TYPE_PARAM_PAIR(z,n,elem) \
-    BOOST_TYPEOF_VIRTUAL(DECLARATION_TYPE, elem)(elem) BOOST_PP_CAT(T, n)
-
-// BOOST_TYPEOF_HAS_TEMPLATES
-#define BOOST_TYPEOF_HAS_TEMPLATES(Params)\
-    BOOST_PP_SEQ_FOLD_LEFT(BOOST_TYPEOF_HAS_TEMPLATES_OP, 0, Params)
-
-#define BOOST_TYPEOF_HAS_TEMPLATES_OP(s, state, elem)\
-    BOOST_PP_OR(state, BOOST_TYPEOF_VIRTUAL(ISTEMPLATE, elem))
-
-//Define template template arguments
-#define BOOST_TYPEOF_REGISTER_TEMPLATE_TEMPLATE_IMPL(Name,Params,ID)\
-    BOOST_PP_IF(BOOST_TYPEOF_HAS_TEMPLATES(Params),\
-        BOOST_TYPEOF_REGISTER_DECODE_NESTED_TEMPLATE_HELPER_IMPL,\
-        BOOST_TYPEOF_REGISTER_TYPE_FOR_TEMPLATE_TEMPLATE)(Name,Params,ID)
-
-#endif //BOOST_TYPEOF_TEMPLATE_TEMPLATE_PARAM_HPP_INCLUDED
diff --git a/boost/typeof/type_encoding.hpp b/boost/typeof/type_encoding.hpp
deleted file mode 100644
index e0378c2..0000000
--- a/boost/typeof/type_encoding.hpp
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright (C) 2004 Arkadiy Vertleyb
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_TYPEOF_TYPE_ENCODING_HPP_INCLUDED
-#define BOOST_TYPEOF_TYPE_ENCODING_HPP_INCLUDED
-
-#define BOOST_TYPEOF_REGISTER_TYPE_IMPL(T, Id)                          \
-                                                                        \
-    template<class V> struct encode_type_impl<V, T >                    \
-        : boost::type_of::push_back<V, boost::mpl::size_t<Id> >         \
-    {};                                                                 \
-    template<class Iter> struct decode_type_impl<boost::mpl::size_t<Id>, Iter> \
-    {                                                                   \
-        typedef T type;                                                 \
-        typedef Iter iter;                                              \
-    };
-
-#define BOOST_TYPEOF_REGISTER_TYPE_EXPLICIT_ID(Type, Id)                \
-    BOOST_TYPEOF_BEGIN_ENCODE_NS                                        \
-    BOOST_TYPEOF_REGISTER_TYPE_IMPL(Type, Id)                           \
-    BOOST_TYPEOF_END_ENCODE_NS
-
-#define BOOST_TYPEOF_REGISTER_TYPE(Type)                                \
-    BOOST_TYPEOF_REGISTER_TYPE_EXPLICIT_ID(Type, BOOST_TYPEOF_UNIQUE_ID())
-
-#endif//BOOST_TYPEOF_TYPE_ENCODING_HPP_INCLUDED
diff --git a/boost/typeof/type_template_param.hpp b/boost/typeof/type_template_param.hpp
deleted file mode 100644
index 28a860c..0000000
--- a/boost/typeof/type_template_param.hpp
+++ /dev/null
@@ -1,37 +0,0 @@
-// Copyright (C) 2005 Arkadiy Vertleyb
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_TYPEOF_TYPE_TEMPLATE_PARAM_HPP_INCLUDED
-#define BOOST_TYPEOF_TYPE_TEMPLATE_PARAM_HPP_INCLUDED
-
-#define BOOST_TYPEOF_class_BOOST_TYPEOF (class)
-#define BOOST_TYPEOF_typename_BOOST_TYPEOF (typename)
-
-#define BOOST_TYPEOF_MAKE_OBJ_class BOOST_TYPEOF_TYPE_PARAM
-#define BOOST_TYPEOF_MAKE_OBJ_typename BOOST_TYPEOF_TYPE_PARAM
-
-#define BOOST_TYPEOF_TYPE_PARAM\
-    (TYPE_PARAM)
-
-#define BOOST_TYPEOF_TYPE_PARAM_EXPANDTYPE(Param) class
-
-// TYPE_PARAM "virtual functions" implementation
-
-#define BOOST_TYPEOF_TYPE_PARAM_ENCODE(This, n)\
-    typedef typename boost::type_of::encode_type<\
-        BOOST_PP_CAT(V, n),\
-        BOOST_PP_CAT(P, n)\
-    >::type BOOST_PP_CAT(V, BOOST_PP_INC(n)); 
-
-#define BOOST_TYPEOF_TYPE_PARAM_DECODE(This, n)\
-    typedef boost::type_of::decode_type< BOOST_PP_CAT(iter, n) > BOOST_PP_CAT(d, n);\
-    typedef typename BOOST_PP_CAT(d, n)::type BOOST_PP_CAT(P, n);\
-    typedef typename BOOST_PP_CAT(d, n)::iter BOOST_PP_CAT(iter, BOOST_PP_INC(n));
-
-#define BOOST_TYPEOF_TYPE_PARAM_PLACEHOLDER(Param) int
-#define BOOST_TYPEOF_TYPE_PARAM_DECLARATION_TYPE(Param) class
-#define BOOST_TYPEOF_TYPE_PARAM_PLACEHOLDER_TYPES(Param, n) BOOST_PP_CAT(T,n)
-#define BOOST_TYPEOF_TYPE_PARAM_ISTEMPLATE 0
-
-#endif//BOOST_TYPEOF_TYPE_TEMPLATE_PARAM_HPP_INCLUDED
diff --git a/boost/typeof/typeof.hpp b/boost/typeof/typeof.hpp
deleted file mode 100644
index 4d56964..0000000
--- a/boost/typeof/typeof.hpp
+++ /dev/null
@@ -1,218 +0,0 @@
-// Copyright (C) 2004 Arkadiy Vertleyb
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_TYPEOF_TYPEOF_HPP_INCLUDED
-#define BOOST_TYPEOF_TYPEOF_HPP_INCLUDED
-
-#if defined(BOOST_TYPEOF_COMPLIANT)
-#   define BOOST_TYPEOF_EMULATION
-#endif
-
-#if defined(BOOST_TYPEOF_EMULATION) && defined(BOOST_TYPEOF_NATIVE)
-#   error both typeof emulation and native mode requested
-#endif
-
-#if defined(__COMO__)
-#   ifdef __GNUG__
-#       ifndef BOOST_TYPEOF_EMULATION
-#           ifndef BOOST_TYPEOF_NATIVE
-#               define BOOST_TYPEOF_NATIVE
-#           endif
-#           define BOOST_TYPEOF_KEYWORD typeof
-#       endif
-#   else
-#       ifndef BOOST_TYPEOF_NATIVE
-#           ifndef BOOST_TYPEOF_EMULATION
-#               define BOOST_TYPEOF_EMULATION
-#           endif
-#       else
-#           error native typeof is not supported
-#       endif
-#   endif
-
-#elif defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC)
-#   ifdef __GNUC__
-#       ifndef BOOST_TYPEOF_EMULATION
-#           ifndef BOOST_TYPEOF_NATIVE
-#               define BOOST_TYPEOF_NATIVE
-#           endif
-#           define BOOST_TYPEOF_KEYWORD __typeof__
-#       endif
-#   else
-#       ifndef BOOST_TYPEOF_NATIVE
-#           ifndef BOOST_TYPEOF_EMULATION
-#               define BOOST_TYPEOF_EMULATION
-#           endif
-#       else
-#           error native typeof is not supported
-#       endif
-#   endif
-
-#elif defined(__GNUC__)
-#   ifndef BOOST_TYPEOF_EMULATION
-#       ifndef BOOST_TYPEOF_NATIVE
-#           define BOOST_TYPEOF_NATIVE
-#       endif
-#       define BOOST_TYPEOF_KEYWORD __typeof__
-#   endif
-
-#elif defined(__MWERKS__)
-#   if(__MWERKS__ <= 0x3003)  // 8.x
-#       ifndef BOOST_TYPEOF_EMULATION
-#           ifndef BOOST_TYPEOF_NATIVE
-#               define BOOST_TYPEOF_NATIVE
-#           endif
-#           define BOOST_TYPEOF_KEYWORD __typeof__
-#       else
-#           define BOOST_TYPEOF_EMULATION_UNSUPPORTED
-#       endif
-#   else // 9.x
-#       ifndef BOOST_TYPEOF_EMULATION
-#           ifndef BOOST_TYPEOF_NATIVE
-#               define BOOST_TYPEOF_NATIVE
-#           endif
-#           define BOOST_TYPEOF_KEYWORD __typeof__
-#       endif
-#   endif
-#elif defined __CODEGEARC__
-#   ifndef BOOST_TYPEOF_EMULATION
-#       ifndef BOOST_TYPEOF_NATIVE
-#           define BOOST_TYPEOF_EMULATION_UNSUPPORTED
-#       endif
-#   else
-#       define BOOST_TYPEOF_EMULATION_UNSUPPORTED
-#   endif
-#elif defined __BORLANDC__
-#   ifndef BOOST_TYPEOF_EMULATION
-#       ifndef BOOST_TYPEOF_NATIVE
-#           define BOOST_TYPEOF_EMULATION_UNSUPPORTED
-#       endif
-#   else
-#       define BOOST_TYPEOF_EMULATION_UNSUPPORTED
-#   endif
-#elif defined __DMC__
-#   ifndef BOOST_TYPEOF_EMULATION
-#       ifndef BOOST_TYPEOF_NATIVE
-#           define BOOST_TYPEOF_NATIVE
-#       endif
-#       include <boost/typeof/dmc/typeof_impl.hpp>
-#       define MSVC_TYPEOF_HACK
-#   endif
-#elif defined(_MSC_VER)
-#   if (_MSC_VER <= 1300)  // 6.5, 7.0
-#       ifndef BOOST_TYPEOF_EMULATION
-#           ifndef BOOST_TYPEOF_NATIVE
-#               define BOOST_TYPEOF_NATIVE
-#           endif
-#           include <boost/typeof/msvc/typeof_impl.hpp>
-#           define MSVC_TYPEOF_HACK
-#       else
-#           error typeof emulation is not supported
-#       endif
-#   elif (_MSC_VER >= 1310)  // 7.1 ->
-#       ifndef BOOST_TYPEOF_EMULATION
-#           ifndef BOOST_TYPEOF_NATIVE
-#               ifndef _MSC_EXTENSIONS
-#                   define BOOST_TYPEOF_EMULATION
-#               else
-#                   define BOOST_TYPEOF_NATIVE
-#               endif
-#           endif
-#       endif
-#       ifdef BOOST_TYPEOF_NATIVE
-#           include <boost/typeof/msvc/typeof_impl.hpp>
-#           define MSVC_TYPEOF_HACK
-#       endif
-#   endif
-#elif defined(__HP_aCC)
-#   ifndef BOOST_TYPEOF_NATIVE
-#       ifndef BOOST_TYPEOF_EMULATION
-#           define BOOST_TYPEOF_EMULATION
-#       endif
-#   else
-#       error native typeof is not supported
-#   endif
-
-#elif defined(__DECCXX)
-#   ifndef BOOST_TYPEOF_NATIVE
-#       ifndef BOOST_TYPEOF_EMULATION
-#           define BOOST_TYPEOF_EMULATION
-#       endif
-#   else
-#       error native typeof is not supported
-#   endif
-
-#elif defined(__BORLANDC__)
-#   if (__BORLANDC__ < 0x590)
-#       define BOOST_TYPEOF_NO_FUNCTION_TYPES
-#       define BOOST_TYPEOF_NO_MEMBER_FUNCTION_TYPES
-#   endif
-#   ifndef BOOST_TYPEOF_NATIVE
-#       ifndef BOOST_TYPEOF_EMULATION
-#           define BOOST_TYPEOF_EMULATION
-#       endif
-#   else
-#       error native typeof is not supported
-#   endif
-#elif defined(__SUNPRO_CC)
-#   if (__SUNPRO_CC < 0x590 )
-#     ifdef BOOST_TYPEOF_NATIVE
-#         error native typeof is not supported
-#     endif
-#     ifndef BOOST_TYPEOF_EMULATION
-#         define BOOST_TYPEOF_EMULATION
-#     endif
-#   else
-#     ifndef BOOST_TYPEOF_EMULATION
-#         ifndef BOOST_TYPEOF_NATIVE
-#             define BOOST_TYPEOF_NATIVE
-#         endif
-#         define BOOST_TYPEOF_KEYWORD __typeof__
-#     endif
-#   endif
-#else //unknown compiler
-#   ifndef BOOST_TYPEOF_NATIVE
-#       ifndef BOOST_TYPEOF_EMULATION
-#           define BOOST_TYPEOF_EMULATION
-#       endif
-#   else
-#       ifndef BOOST_TYPEOF_KEYWORD
-#           define BOOST_TYPEOF_KEYWORD typeof
-#       endif
-#   endif
-
-#endif
-
-#define BOOST_TYPEOF_UNIQUE_ID()\
-     BOOST_TYPEOF_REGISTRATION_GROUP * 0x10000 + __LINE__
-
-#define BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()\
-     <boost/typeof/incr_registration_group.hpp>
-
-#ifdef BOOST_TYPEOF_EMULATION_UNSUPPORTED
-#   include <boost/typeof/unsupported.hpp>
-#elif defined BOOST_TYPEOF_EMULATION
-#   define BOOST_TYPEOF_TEXT "using typeof emulation"
-#   include <boost/typeof/message.hpp>
-#   include <boost/typeof/typeof_impl.hpp>
-#   include <boost/typeof/type_encoding.hpp>
-#   include <boost/typeof/template_encoding.hpp>
-#   include <boost/typeof/modifiers.hpp>
-#   include <boost/typeof/pointers_data_members.hpp>
-#   include <boost/typeof/register_functions.hpp>
-#   include <boost/typeof/register_fundamental.hpp>
-
-#elif defined(BOOST_TYPEOF_NATIVE)
-#   define BOOST_TYPEOF_TEXT "using native typeof"
-#   include <boost/typeof/message.hpp>
-#   include <boost/typeof/native.hpp>
-#else
-#   error typeof configuration error
-#endif
-
-// auto
-#define BOOST_AUTO(Var, Expr) BOOST_TYPEOF(Expr) Var = Expr
-#define BOOST_AUTO_TPL(Var, Expr) BOOST_TYPEOF_TPL(Expr) Var = Expr
-
-#endif//BOOST_TYPEOF_TYPEOF_HPP_INCLUDED
diff --git a/boost/typeof/typeof_impl.hpp b/boost/typeof/typeof_impl.hpp
deleted file mode 100644
index d627b85..0000000
--- a/boost/typeof/typeof_impl.hpp
+++ /dev/null
@@ -1,186 +0,0 @@
-// Copyright (C) 2004, 2005 Arkadiy Vertleyb
-// Copyright (C) 2005 Peder Holt
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_TYPEOF_TYPEOF_IMPL_HPP_INCLUDED
-#define BOOST_TYPEOF_TYPEOF_IMPL_HPP_INCLUDED
-
-#include <boost/mpl/size_t.hpp>
-#include <boost/preprocessor/repetition/enum.hpp>
-#include <boost/typeof/encode_decode.hpp>
-#include <boost/typeof/vector.hpp>
-#include <boost/type_traits/is_function.hpp>
-#include <boost/utility/enable_if.hpp>
-
-#define BOOST_TYPEOF_VECTOR(n) BOOST_PP_CAT(boost::type_of::vector, n)
-
-#define BOOST_TYPEOF_sizer_item(z, n, _)\
-    char item ## n[V::item ## n ::value];
-
-namespace boost { namespace type_of {
-    template<class V>
-    struct sizer
-    {
-        // char item0[V::item0::value];
-        // char item1[V::item1::value];
-        // ...
-
-        BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_sizer_item, ~)
-    };
-}}
-
-#undef BOOST_TYPEOF_sizer_item
-
-//
-namespace boost { namespace type_of {
-# ifdef BOOST_NO_SFINAE
-    template<class V, class T>
-    sizer<typename encode_type<V, T>::type> encode(const T&);
-# else
-    template<class V, class T>
-    typename enable_if<
-        typename is_function<T>::type,
-        sizer<typename encode_type<V, T>::type> >::type encode(T&);
-
-    template<class V, class T>
-    typename disable_if<
-        typename is_function<T>::type,
-        sizer<typename encode_type<V, T>::type> >::type encode(const T&);
-# endif
-}}
-//
-namespace boost { namespace type_of {
-
-    template<class V>
-    struct decode_begin
-    {
-        typedef typename decode_type<typename V::begin>::type type;
-    };
-}}
-
-#define BOOST_TYPEOF_TYPEITEM(z, n, expr)\
-    boost::mpl::size_t<sizeof(boost::type_of::encode<BOOST_TYPEOF_VECTOR(0)<> >(expr).item ## n)>
-
-#define BOOST_TYPEOF_ENCODED_VECTOR(Expr)                                   \
-    BOOST_TYPEOF_VECTOR(BOOST_TYPEOF_LIMIT_SIZE)<                           \
-        BOOST_PP_ENUM(BOOST_TYPEOF_LIMIT_SIZE, BOOST_TYPEOF_TYPEITEM, Expr) \
-    >
-
-#define BOOST_TYPEOF(Expr)\
-    boost::type_of::decode_begin<BOOST_TYPEOF_ENCODED_VECTOR(Expr) >::type
-
-#define BOOST_TYPEOF_TPL typename BOOST_TYPEOF
-
-//offset_vector is used to delay the insertion of data into the vector in order to allow
-//encoding to be done in many steps
-namespace boost { namespace type_of {
-    template<typename V,typename Offset>
-    struct offset_vector {
-    };
-
-    template<class V,class Offset,class T>
-    struct push_back<boost::type_of::offset_vector<V,Offset>,T> {
-        typedef offset_vector<V,typename Offset::prior> type;
-    };
-
-    template<class V,class T>
-    struct push_back<boost::type_of::offset_vector<V,mpl::size_t<0> >,T> {
-        typedef typename push_back<V,T>::type type;
-    };
-}}
-
-#define BOOST_TYPEOF_NESTED_TYPEITEM(z, n, expr)\
-    BOOST_STATIC_CONSTANT(int,BOOST_PP_CAT(value,n) = sizeof(boost::type_of::encode<_typeof_start_vector>(expr).item ## n));\
-    typedef boost::mpl::size_t<BOOST_PP_CAT(self_t::value,n)> BOOST_PP_CAT(item,n);
-
-#ifdef __DMC__
-#define BOOST_TYPEOF_NESTED_TYPEITEM_2(z,n,expr)\
-    typedef typename _typeof_encode_fraction<iteration>::BOOST_PP_CAT(item,n) BOOST_PP_CAT(item,n);
-
-#define BOOST_TYPEOF_FRACTIONTYPE()\
-    BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE,BOOST_TYPEOF_NESTED_TYPEITEM_2,_)\
-    typedef _typeof_fraction_iter<Pos> fraction_type;
-#else
-#define BOOST_TYPEOF_FRACTIONTYPE()\
-    typedef _typeof_encode_fraction<self_t::iteration> fraction_type;
-#endif
-
-#ifdef __BORLANDC__
-namespace boost { namespace type_of {
-    template<typename Pos,typename Iter>
-    struct generic_typeof_fraction_iter {
-        typedef generic_typeof_fraction_iter<Pos,Iter> self_t;
-        static const int pos=(Pos::value);
-        static const int iteration=(pos/5);
-        static const int where=pos%5;
-        typedef typename Iter::template _apply_next<self_t::iteration>::type fraction_type;
-        typedef generic_typeof_fraction_iter<typename Pos::next,Iter> next;
-        typedef typename v_iter<fraction_type,mpl::int_<self_t::where> >::type type;
-    };
-}}
-#define BOOST_TYPEOF_NESTED_TYPEDEF_IMPL(expr) \
-        template<int _Typeof_Iteration>\
-        struct _typeof_encode_fraction {\
-            typedef _typeof_encode_fraction<_Typeof_Iteration> self_t;\
-            BOOST_STATIC_CONSTANT(int,_typeof_encode_offset = (_Typeof_Iteration*BOOST_TYPEOF_LIMIT_SIZE));\
-            typedef boost::type_of::offset_vector<BOOST_TYPEOF_VECTOR(0)<>,boost::mpl::size_t<self_t::_typeof_encode_offset> > _typeof_start_vector;\
-            BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE,BOOST_TYPEOF_NESTED_TYPEITEM,expr)\
-            template<int Next>\
-            struct _apply_next {\
-                typedef _typeof_encode_fraction<Next> type;\
-            };\
-        };\
-        template<typename Pos>\
-        struct _typeof_fraction_iter {\
-            typedef boost::type_of::generic_typeof_fraction_iter<Pos,_typeof_encode_fraction<0> > self_t;\
-            typedef typename self_t::next next;\
-            typedef typename self_t::type type;\
-        };
-#else
-#define BOOST_TYPEOF_NESTED_TYPEDEF_IMPL(expr) \
-        template<int _Typeof_Iteration>\
-        struct _typeof_encode_fraction {\
-            typedef _typeof_encode_fraction<_Typeof_Iteration> self_t;\
-            BOOST_STATIC_CONSTANT(int,_typeof_encode_offset = (_Typeof_Iteration*BOOST_TYPEOF_LIMIT_SIZE));\
-            typedef boost::type_of::offset_vector<BOOST_TYPEOF_VECTOR(0)<>,boost::mpl::size_t<self_t::_typeof_encode_offset> > _typeof_start_vector;\
-            BOOST_PP_REPEAT(BOOST_TYPEOF_LIMIT_SIZE,BOOST_TYPEOF_NESTED_TYPEITEM,expr)\
-        };\
-        template<typename Pos>\
-        struct _typeof_fraction_iter {\
-            typedef _typeof_fraction_iter<Pos> self_t;\
-            BOOST_STATIC_CONSTANT(int,pos=(Pos::value));\
-            BOOST_STATIC_CONSTANT(int,iteration=(pos/BOOST_TYPEOF_LIMIT_SIZE));\
-            BOOST_STATIC_CONSTANT(int,where=pos%BOOST_TYPEOF_LIMIT_SIZE);\
-            BOOST_TYPEOF_FRACTIONTYPE()\
-            typedef typename boost::type_of::v_iter<fraction_type,boost::mpl::int_<self_t::where> >::type type;\
-            typedef _typeof_fraction_iter<typename Pos::next> next;\
-        };
-#endif
-#ifdef __MWERKS__
-
-# define BOOST_TYPEOF_NESTED_TYPEDEF(name,expr) \
-template<typename T>\
-struct BOOST_PP_CAT(_typeof_template_,name) {\
-    BOOST_TYPEOF_NESTED_TYPEDEF_IMPL(expr)\
-    typedef typename boost::type_of::decode_type<_typeof_fraction_iter<boost::mpl::size_t<0> > >::type type;\
-};\
-typedef BOOST_PP_CAT(_typeof_template_,name)<int> name;
-
-# define BOOST_TYPEOF_NESTED_TYPEDEF_TPL(name,expr) BOOST_TYPEOF_NESTED_TYPEDEF(name,expr)
-
-#else
-# define BOOST_TYPEOF_NESTED_TYPEDEF_TPL(name,expr) \
-    struct name {\
-        BOOST_TYPEOF_NESTED_TYPEDEF_IMPL(expr)\
-        typedef typename boost::type_of::decode_type<_typeof_fraction_iter<boost::mpl::size_t<0> > >::type type;\
-    };
-
-# define BOOST_TYPEOF_NESTED_TYPEDEF(name,expr) \
-    struct name {\
-        BOOST_TYPEOF_NESTED_TYPEDEF_IMPL(expr)\
-        typedef boost::type_of::decode_type<_typeof_fraction_iter<boost::mpl::size_t<0> > >::type type;\
-    };
-#endif
-
-#endif//BOOST_TYPEOF_COMPLIANT_TYPEOF_IMPL_HPP_INCLUDED
diff --git a/boost/typeof/unsupported.hpp b/boost/typeof/unsupported.hpp
deleted file mode 100644
index 83d3a55..0000000
--- a/boost/typeof/unsupported.hpp
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright (C) 2010 Peder Holt
-// Use, modification and distribution is subject to the Boost Software
-// License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_TYPEOF_UNSUPPORTED_HPP_INCLUDED
-#define BOOST_TYPEOF_UNSUPPORTED_HPP_INCLUDED
-
-namespace boost { namespace type_of {
-    struct typeof_emulation_is_unsupported_on_this_compiler {};
-}}
-
-#define BOOST_TYPEOF(expr) boost::type_of::typeof_emulation_is_unsupported_on_this_compiler
-#define BOOST_TYPEOF_TPL BOOST_TYPEOF
-
-#define BOOST_TYPEOF_NESTED_TYPEDEF_TPL(name,expr) \
-struct name {\
-    typedef BOOST_TYPEOF_TPL(expr) type;\
-};
-
-#define BOOST_TYPEOF_NESTED_TYPEDEF(name,expr) \
-struct name {\
-    typedef BOOST_TYPEOF(expr) type;\
-};
-
-
-#define BOOST_TYPEOF_REGISTER_TYPE(x)
-#define BOOST_TYPEOF_REGISTER_TEMPLATE(x, params)
-
-#endif
\ No newline at end of file
diff --git a/boost/typeof/vector.hpp b/boost/typeof/vector.hpp
deleted file mode 100644
index 7dc8d50..0000000
--- a/boost/typeof/vector.hpp
+++ /dev/null
@@ -1,166 +0,0 @@
-// Copyright (C) 2005 Arkadiy Vertleyb
-// Copyright (C) 2005 Peder Holt
-//
-// Copyright (C) 2006 Tobias Schwinger
-//
-// Use, modification and distribution is subject to the Boost Software
-// License, Version 1.0. (http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef BOOST_TYPEOF_VECTOR_HPP_INCLUDED
-
-#include <boost/mpl/int.hpp>
-#include <boost/preprocessor/iteration/self.hpp>
-
-#ifndef BOOST_TYPEOF_LIMIT_SIZE
-#   define BOOST_TYPEOF_LIMIT_SIZE 50
-#endif
-
-//
-// To recreate the preprocessed versions of this file preprocess and run
-//
-//   $(BOOST_ROOT)/libs/typeof/tools/preprocess.pl
-//
-
-#if defined(BOOST_TYPEOF_PP_INCLUDE_EXTERNAL)
-
-#   undef BOOST_TYPEOF_PP_INCLUDE_EXTERNAL
-
-#elif !defined(BOOST_TYPEOF_PREPROCESSING_MODE) && !BOOST_PP_IS_SELFISH
-
-#   define BOOST_PP_INDIRECT_SELF <boost/typeof/vector.hpp>
-#   if   BOOST_TYPEOF_LIMIT_SIZE < 50
-#     include BOOST_PP_INCLUDE_SELF()
-#   elif BOOST_TYPEOF_LIMIT_SIZE < 100
-#     include <boost/typeof/vector50.hpp>
-#     define  BOOST_TYPEOF_PP_START_SIZE 51
-#     include BOOST_PP_INCLUDE_SELF()
-#   elif BOOST_TYPEOF_LIMIT_SIZE < 150
-#     include <boost/typeof/vector100.hpp>
-#     define  BOOST_TYPEOF_PP_START_SIZE 101
-#     include BOOST_PP_INCLUDE_SELF()
-#   elif BOOST_TYPEOF_LIMIT_SIZE < 200
-#     include <boost/typeof/vector150.hpp>
-#     define  BOOST_TYPEOF_PP_START_SIZE 151
-#     include BOOST_PP_INCLUDE_SELF()
-#   elif BOOST_TYPEOF_LIMIT_SIZE <= 250
-#     include <boost/typeof/vector200.hpp>
-#     define  BOOST_TYPEOF_PP_START_SIZE 201
-#     include BOOST_PP_INCLUDE_SELF()
-#   else
-#     error "BOOST_TYPEOF_LIMIT_SIZE too high"
-#   endif
-
-#else// defined(BOOST_TYPEOF_PREPROCESSING_MODE) || BOOST_PP_IS_SELFISH
-
-#   ifndef BOOST_TYPEOF_PP_NEXT_SIZE
-#     define BOOST_TYPEOF_PP_NEXT_SIZE BOOST_TYPEOF_LIMIT_SIZE
-#   endif
-#   ifndef BOOST_TYPEOF_PP_START_SIZE
-#     define BOOST_TYPEOF_PP_START_SIZE 0
-#   endif
-
-#   if BOOST_TYPEOF_PP_START_SIZE <= BOOST_TYPEOF_LIMIT_SIZE
-
-#     include <boost/preprocessor/enum_params.hpp>
-#     include <boost/preprocessor/repeat.hpp>
-#     include <boost/preprocessor/repeat_from_to.hpp>
-#     include <boost/preprocessor/cat.hpp>
-#     include <boost/preprocessor/inc.hpp>
-#     include <boost/preprocessor/dec.hpp>
-#     include <boost/preprocessor/comma_if.hpp>
-#     include <boost/preprocessor/iteration/local.hpp>
-#     include <boost/preprocessor/control/expr_iif.hpp>
-#     include <boost/preprocessor/logical/not.hpp>
-
-// iterator
-
-#     define BOOST_TYPEOF_spec_iter(n)\
-        template<class V>\
-        struct v_iter<V, mpl::int_<n> >\
-        {\
-            typedef typename V::item ## n type;\
-            typedef v_iter<V, mpl::int_<n + 1> > next;\
-        };
-
-namespace boost { namespace type_of {
-
-    template<class V, class Increase_BOOST_TYPEOF_LIMIT_SIZE> struct v_iter; // not defined
-#     define  BOOST_PP_LOCAL_MACRO  BOOST_TYPEOF_spec_iter
-#     define  BOOST_PP_LOCAL_LIMITS \
-        (BOOST_PP_DEC(BOOST_TYPEOF_PP_START_SIZE), \
-         BOOST_PP_DEC(BOOST_TYPEOF_LIMIT_SIZE))
-#     include BOOST_PP_LOCAL_ITERATE()
-
-}}
-
-#     undef BOOST_TYPEOF_spec_iter
-
-// vector
-
-#     define BOOST_TYPEOF_typedef_item(z, n, _)\
-        typedef P ## n item ## n;
-
-#     define BOOST_TYPEOF_typedef_fake_item(z, n, _)\
-        typedef mpl::int_<1> item ## n;
-
-#     define BOOST_TYPEOF_define_vector(n)\
-        template<BOOST_PP_ENUM_PARAMS(n, class P) BOOST_PP_EXPR_IIF(BOOST_PP_NOT(n), class T = void)>\
-        struct vector ## n\
-        {\
-            typedef v_iter<vector ## n<BOOST_PP_ENUM_PARAMS(n,P)>, boost::mpl::int_<0> > begin;\
-            BOOST_PP_REPEAT(n, BOOST_TYPEOF_typedef_item, ~)\
-            BOOST_PP_REPEAT_FROM_TO(n, BOOST_TYPEOF_PP_NEXT_SIZE, BOOST_TYPEOF_typedef_fake_item, ~)\
-        };
-
-namespace boost { namespace type_of {
-
-#     define  BOOST_PP_LOCAL_MACRO  BOOST_TYPEOF_define_vector
-#     define  BOOST_PP_LOCAL_LIMITS \
-        (BOOST_TYPEOF_PP_START_SIZE,BOOST_TYPEOF_LIMIT_SIZE)
-#     include BOOST_PP_LOCAL_ITERATE()
-
-}}
-
-#     undef BOOST_TYPEOF_typedef_item
-#     undef BOOST_TYPEOF_typedef_fake_item
-#     undef BOOST_TYPEOF_define_vector
-
-// push_back
-
-#     define BOOST_TYPEOF_spec_push_back(n)\
-        template<BOOST_PP_ENUM_PARAMS(n, class P) BOOST_PP_COMMA_IF(n) class T>\
-        struct push_back<BOOST_PP_CAT(boost::type_of::vector, n)<BOOST_PP_ENUM_PARAMS(n, P)>, T>\
-        {\
-            typedef BOOST_PP_CAT(boost::type_of::vector, BOOST_PP_INC(n))<\
-                BOOST_PP_ENUM_PARAMS(n, P) BOOST_PP_COMMA_IF(n) T\
-            > type;\
-        };
-
-namespace boost { namespace type_of {
-
-#   if   BOOST_TYPEOF_LIMIT_SIZE < 50
-    template<class V, class T> struct push_back {
-        typedef V type;
-    };
-#   endif
-    //default behaviour is to let push_back ignore T, and return the input vector.
-    //This is to let BOOST_TYPEOF_NESTED_TYPEDEF work properly with the default vector.
-#     define  BOOST_PP_LOCAL_MACRO  BOOST_TYPEOF_spec_push_back
-#     define  BOOST_PP_LOCAL_LIMITS \
-        (BOOST_PP_DEC(BOOST_TYPEOF_PP_START_SIZE), \
-         BOOST_PP_DEC(BOOST_TYPEOF_LIMIT_SIZE))
-#     include BOOST_PP_LOCAL_ITERATE()
-
-}}
-
-#     undef BOOST_TYPEOF_spec_push_back
-
-#   endif//BOOST_TYPEOF_PP_START_SIZE<=BOOST_TYPEOF_LIMIT_SIZE
-#   undef  BOOST_TYPEOF_PP_START_SIZE
-#   undef  BOOST_TYPEOF_PP_NEXT_SIZE
-
-#endif//BOOST_TYPEOF_PREPROCESSING_MODE || BOOST_PP_IS_SELFISH
-
-#define BOOST_TYPEOF_VECTOR_HPP_INCLUDED
-#endif//BOOST_TYPEOF_VECTOR_HPP_INCLUDED
-
diff --git a/boost/typeof/vector100.hpp b/boost/typeof/vector100.hpp
deleted file mode 100644
index 5c5b97f..0000000
--- a/boost/typeof/vector100.hpp
+++ /dev/null
@@ -1,321 +0,0 @@
-
-// Copyright (C) 2005 Arkadiy Vertleyb
-// Copyright (C) 2005 Peder Holt
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-// Preprocessed code, do not edit manually !
-
-
-namespace boost { namespace type_of {
-    template<class V, class Increase_BOOST_TYPEOF_LIMIT_SIZE> struct v_iter;
-        template<class V> struct v_iter<V, mpl::int_<0> > { typedef typename V::item0 type; typedef v_iter<V, mpl::int_<0 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<1> > { typedef typename V::item1 type; typedef v_iter<V, mpl::int_<1 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<2> > { typedef typename V::item2 type; typedef v_iter<V, mpl::int_<2 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<3> > { typedef typename V::item3 type; typedef v_iter<V, mpl::int_<3 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<4> > { typedef typename V::item4 type; typedef v_iter<V, mpl::int_<4 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<5> > { typedef typename V::item5 type; typedef v_iter<V, mpl::int_<5 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<6> > { typedef typename V::item6 type; typedef v_iter<V, mpl::int_<6 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<7> > { typedef typename V::item7 type; typedef v_iter<V, mpl::int_<7 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<8> > { typedef typename V::item8 type; typedef v_iter<V, mpl::int_<8 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<9> > { typedef typename V::item9 type; typedef v_iter<V, mpl::int_<9 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<10> > { typedef typename V::item10 type; typedef v_iter<V, mpl::int_<10 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<11> > { typedef typename V::item11 type; typedef v_iter<V, mpl::int_<11 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<12> > { typedef typename V::item12 type; typedef v_iter<V, mpl::int_<12 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<13> > { typedef typename V::item13 type; typedef v_iter<V, mpl::int_<13 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<14> > { typedef typename V::item14 type; typedef v_iter<V, mpl::int_<14 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<15> > { typedef typename V::item15 type; typedef v_iter<V, mpl::int_<15 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<16> > { typedef typename V::item16 type; typedef v_iter<V, mpl::int_<16 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<17> > { typedef typename V::item17 type; typedef v_iter<V, mpl::int_<17 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<18> > { typedef typename V::item18 type; typedef v_iter<V, mpl::int_<18 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<19> > { typedef typename V::item19 type; typedef v_iter<V, mpl::int_<19 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<20> > { typedef typename V::item20 type; typedef v_iter<V, mpl::int_<20 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<21> > { typedef typename V::item21 type; typedef v_iter<V, mpl::int_<21 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<22> > { typedef typename V::item22 type; typedef v_iter<V, mpl::int_<22 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<23> > { typedef typename V::item23 type; typedef v_iter<V, mpl::int_<23 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<24> > { typedef typename V::item24 type; typedef v_iter<V, mpl::int_<24 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<25> > { typedef typename V::item25 type; typedef v_iter<V, mpl::int_<25 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<26> > { typedef typename V::item26 type; typedef v_iter<V, mpl::int_<26 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<27> > { typedef typename V::item27 type; typedef v_iter<V, mpl::int_<27 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<28> > { typedef typename V::item28 type; typedef v_iter<V, mpl::int_<28 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<29> > { typedef typename V::item29 type; typedef v_iter<V, mpl::int_<29 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<30> > { typedef typename V::item30 type; typedef v_iter<V, mpl::int_<30 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<31> > { typedef typename V::item31 type; typedef v_iter<V, mpl::int_<31 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<32> > { typedef typename V::item32 type; typedef v_iter<V, mpl::int_<32 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<33> > { typedef typename V::item33 type; typedef v_iter<V, mpl::int_<33 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<34> > { typedef typename V::item34 type; typedef v_iter<V, mpl::int_<34 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<35> > { typedef typename V::item35 type; typedef v_iter<V, mpl::int_<35 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<36> > { typedef typename V::item36 type; typedef v_iter<V, mpl::int_<36 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<37> > { typedef typename V::item37 type; typedef v_iter<V, mpl::int_<37 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<38> > { typedef typename V::item38 type; typedef v_iter<V, mpl::int_<38 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<39> > { typedef typename V::item39 type; typedef v_iter<V, mpl::int_<39 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<40> > { typedef typename V::item40 type; typedef v_iter<V, mpl::int_<40 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<41> > { typedef typename V::item41 type; typedef v_iter<V, mpl::int_<41 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<42> > { typedef typename V::item42 type; typedef v_iter<V, mpl::int_<42 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<43> > { typedef typename V::item43 type; typedef v_iter<V, mpl::int_<43 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<44> > { typedef typename V::item44 type; typedef v_iter<V, mpl::int_<44 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<45> > { typedef typename V::item45 type; typedef v_iter<V, mpl::int_<45 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<46> > { typedef typename V::item46 type; typedef v_iter<V, mpl::int_<46 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<47> > { typedef typename V::item47 type; typedef v_iter<V, mpl::int_<47 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<48> > { typedef typename V::item48 type; typedef v_iter<V, mpl::int_<48 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<49> > { typedef typename V::item49 type; typedef v_iter<V, mpl::int_<49 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<50> > { typedef typename V::item50 type; typedef v_iter<V, mpl::int_<50 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<51> > { typedef typename V::item51 type; typedef v_iter<V, mpl::int_<51 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<52> > { typedef typename V::item52 type; typedef v_iter<V, mpl::int_<52 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<53> > { typedef typename V::item53 type; typedef v_iter<V, mpl::int_<53 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<54> > { typedef typename V::item54 type; typedef v_iter<V, mpl::int_<54 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<55> > { typedef typename V::item55 type; typedef v_iter<V, mpl::int_<55 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<56> > { typedef typename V::item56 type; typedef v_iter<V, mpl::int_<56 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<57> > { typedef typename V::item57 type; typedef v_iter<V, mpl::int_<57 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<58> > { typedef typename V::item58 type; typedef v_iter<V, mpl::int_<58 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<59> > { typedef typename V::item59 type; typedef v_iter<V, mpl::int_<59 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<60> > { typedef typename V::item60 type; typedef v_iter<V, mpl::int_<60 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<61> > { typedef typename V::item61 type; typedef v_iter<V, mpl::int_<61 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<62> > { typedef typename V::item62 type; typedef v_iter<V, mpl::int_<62 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<63> > { typedef typename V::item63 type; typedef v_iter<V, mpl::int_<63 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<64> > { typedef typename V::item64 type; typedef v_iter<V, mpl::int_<64 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<65> > { typedef typename V::item65 type; typedef v_iter<V, mpl::int_<65 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<66> > { typedef typename V::item66 type; typedef v_iter<V, mpl::int_<66 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<67> > { typedef typename V::item67 type; typedef v_iter<V, mpl::int_<67 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<68> > { typedef typename V::item68 type; typedef v_iter<V, mpl::int_<68 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<69> > { typedef typename V::item69 type; typedef v_iter<V, mpl::int_<69 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<70> > { typedef typename V::item70 type; typedef v_iter<V, mpl::int_<70 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<71> > { typedef typename V::item71 type; typedef v_iter<V, mpl::int_<71 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<72> > { typedef typename V::item72 type; typedef v_iter<V, mpl::int_<72 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<73> > { typedef typename V::item73 type; typedef v_iter<V, mpl::int_<73 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<74> > { typedef typename V::item74 type; typedef v_iter<V, mpl::int_<74 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<75> > { typedef typename V::item75 type; typedef v_iter<V, mpl::int_<75 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<76> > { typedef typename V::item76 type; typedef v_iter<V, mpl::int_<76 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<77> > { typedef typename V::item77 type; typedef v_iter<V, mpl::int_<77 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<78> > { typedef typename V::item78 type; typedef v_iter<V, mpl::int_<78 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<79> > { typedef typename V::item79 type; typedef v_iter<V, mpl::int_<79 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<80> > { typedef typename V::item80 type; typedef v_iter<V, mpl::int_<80 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<81> > { typedef typename V::item81 type; typedef v_iter<V, mpl::int_<81 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<82> > { typedef typename V::item82 type; typedef v_iter<V, mpl::int_<82 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<83> > { typedef typename V::item83 type; typedef v_iter<V, mpl::int_<83 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<84> > { typedef typename V::item84 type; typedef v_iter<V, mpl::int_<84 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<85> > { typedef typename V::item85 type; typedef v_iter<V, mpl::int_<85 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<86> > { typedef typename V::item86 type; typedef v_iter<V, mpl::int_<86 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<87> > { typedef typename V::item87 type; typedef v_iter<V, mpl::int_<87 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<88> > { typedef typename V::item88 type; typedef v_iter<V, mpl::int_<88 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<89> > { typedef typename V::item89 type; typedef v_iter<V, mpl::int_<89 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<90> > { typedef typename V::item90 type; typedef v_iter<V, mpl::int_<90 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<91> > { typedef typename V::item91 type; typedef v_iter<V, mpl::int_<91 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<92> > { typedef typename V::item92 type; typedef v_iter<V, mpl::int_<92 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<93> > { typedef typename V::item93 type; typedef v_iter<V, mpl::int_<93 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<94> > { typedef typename V::item94 type; typedef v_iter<V, mpl::int_<94 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<95> > { typedef typename V::item95 type; typedef v_iter<V, mpl::int_<95 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<96> > { typedef typename V::item96 type; typedef v_iter<V, mpl::int_<96 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<97> > { typedef typename V::item97 type; typedef v_iter<V, mpl::int_<97 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<98> > { typedef typename V::item98 type; typedef v_iter<V, mpl::int_<98 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<99> > { typedef typename V::item99 type; typedef v_iter<V, mpl::int_<99 + 1> > next; };
-}}
-namespace boost { namespace type_of {
-        template< class T = void> struct vector0 { typedef v_iter<vector0<>, boost::mpl::int_<0> > begin; typedef mpl::int_<1> item0; typedef mpl::int_<1> item1; typedef mpl::int_<1> item2; typedef mpl::int_<1> item3; typedef mpl::int_<1> item4; typedef mpl::int_<1> item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1 [...]
-        template< class P0 > struct vector1 { typedef v_iter<vector1< P0>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef mpl::int_<1> item1; typedef mpl::int_<1> item2; typedef mpl::int_<1> item3; typedef mpl::int_<1> item4; typedef mpl::int_<1> item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; ty [...]
-        template< class P0 , class P1 > struct vector2 { typedef v_iter<vector2< P0 , P1>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef mpl::int_<1> item2; typedef mpl::int_<1> item3; typedef mpl::int_<1> item4; typedef mpl::int_<1> item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item [...]
-        template< class P0 , class P1 , class P2 > struct vector3 { typedef v_iter<vector3< P0 , P1 , P2>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef mpl::int_<1> item3; typedef mpl::int_<1> item4; typedef mpl::int_<1> item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1 [...]
-        template< class P0 , class P1 , class P2 , class P3 > struct vector4 { typedef v_iter<vector4< P0 , P1 , P2 , P3>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef mpl::int_<1> item4; typedef mpl::int_<1> item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl:: [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 > struct vector5 { typedef v_iter<vector5< P0 , P1 , P2 , P3 , P4>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef mpl::int_<1> item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 > struct vector6 { typedef v_iter<vector6< P0 , P1 , P2 , P3 , P4 , P5>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; t [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 > struct vector7 { typedef v_iter<vector7< P0 , P1 , P2 , P3 , P4 , P5 , P6>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> ite [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 > struct vector8 { typedef v_iter<vector8< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_< [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 > struct vector9 { typedef v_iter<vector9< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl: [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 > struct vector10 { typedef v_iter<vector10< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; type [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 > struct vector11 { typedef v_iter<vector11< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef mpl::int_<1> ite [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 > struct vector12 { typedef v_iter<vector12< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typede [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 > struct vector13 { typedef v_iter<vector13< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 > struct vector14 { typedef v_iter<vector14< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 > struct vector15 { typedef v_iter<vector15< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 > struct vector16 { typedef v_iter<vector16< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 > struct vector17 { typedef v_iter<vector17< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 > struct vector18 { typedef v_iter<vector18< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 > struct vector19 { typedef v_iter<vector19< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 > struct vector20 { typedef v_iter<vector20< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 > struct vector21 { typedef v_iter<vector21< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 > struct vector22 { typedef v_iter<vector22< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 > struct vector23 { typedef v_iter<vector23< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22>, boost::mpl::int_<0> > begin; typedef  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 > struct vector24 { typedef v_iter<vector24< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23>, boost::mpl::int_<0> [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 > struct vector25 { typedef v_iter<vector25< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24>, b [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 > struct vector26 { typedef v_iter<vector26< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 > struct vector27 { typedef v_iter<vector27< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 > struct vector28 { typedef v_iter<vector28< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 > struct vector29 { typedef v_iter<vector29< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 > struct vector30 { typedef v_iter<vector30< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 > struct vector31 { typedef v_iter<vector31< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 > struct vector32 { typedef v_iter<vector32< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 > struct vector33 { typedef v_iter<vector33< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 ,  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 > struct vector34 { typedef v_iter<vector34< P0 , P1 , P2 , P3 , P4 , P5 , P6  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 > struct vector35 { typedef v_iter<vector35< P0 , P1 , P2 , P3 , P [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 > struct vector36 { typedef v_iter<vector36< P0 , P1 , [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 > struct vector37 { typedef v_iter<vector3 [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 > struct vector38 { typedef v_ [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 > struct vector39  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 > stru [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-}}
-namespace boost { namespace type_of {
-    template<class V, class T> struct push_back {
-        typedef V type;
-    };
-        template< class T> struct push_back<boost::type_of::vector0<>, T> { typedef boost::type_of::vector1< T > type; };
-        template< class P0 , class T> struct push_back<boost::type_of::vector1< P0>, T> { typedef boost::type_of::vector2< P0 , T > type; };
-        template< class P0 , class P1 , class T> struct push_back<boost::type_of::vector2< P0 , P1>, T> { typedef boost::type_of::vector3< P0 , P1 , T > type; };
-        template< class P0 , class P1 , class P2 , class T> struct push_back<boost::type_of::vector3< P0 , P1 , P2>, T> { typedef boost::type_of::vector4< P0 , P1 , P2 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class T> struct push_back<boost::type_of::vector4< P0 , P1 , P2 , P3>, T> { typedef boost::type_of::vector5< P0 , P1 , P2 , P3 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class T> struct push_back<boost::type_of::vector5< P0 , P1 , P2 , P3 , P4>, T> { typedef boost::type_of::vector6< P0 , P1 , P2 , P3 , P4 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class T> struct push_back<boost::type_of::vector6< P0 , P1 , P2 , P3 , P4 , P5>, T> { typedef boost::type_of::vector7< P0 , P1 , P2 , P3 , P4 , P5 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class T> struct push_back<boost::type_of::vector7< P0 , P1 , P2 , P3 , P4 , P5 , P6>, T> { typedef boost::type_of::vector8< P0 , P1 , P2 , P3 , P4 , P5 , P6 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class T> struct push_back<boost::type_of::vector8< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7>, T> { typedef boost::type_of::vector9< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class T> struct push_back<boost::type_of::vector9< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8>, T> { typedef boost::type_of::vector10< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class T> struct push_back<boost::type_of::vector10< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9>, T> { typedef boost::type_of::vector11< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class T> struct push_back<boost::type_of::vector11< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10>, T> { typedef boost::type_of::vector12< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class T> struct push_back<boost::type_of::vector12< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11>, T> { typedef boost::type_of::vector13< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class T> struct push_back<boost::type_of::vector13< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12>, T> { typedef boost::type_of::vector14< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class T> struct push_back<boost::type_of::vector14< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13>, T> { typedef boost::type_of::vector15< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class T> struct push_back<boost::type_of::vector15< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14>, T> { typedef boost::type_of::vector16< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class T> struct push_back<boost::type_of::vector16< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15>, T> { typedef boost::type_of::vector17< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class T> struct push_back<boost::type_of::vector17< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16>, T> { typedef boost::type_of::vector18< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class T> struct push_back<boost::type_of::vector18< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17>, T> { typedef boost::type_of::vector19< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class T> struct push_back<boost::type_of::vector19< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18>, T> { typedef boost::type_of::vector20< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class T> struct push_back<boost::type_of::vector20< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19>, T> { typedef boost::type_of::vector21< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class T> struct push_back<boost::type_of::vector21< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20>, T> { typedef boost::type_of::vector22< P0 , P1 , P2 , P3 , P4 ,  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class T> struct push_back<boost::type_of::vector22< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21>, T> { typedef boost::type_of::vector23< P0 , P1 [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class T> struct push_back<boost::type_of::vector23< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22>, T> { typedef boost::type_of: [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class T> struct push_back<boost::type_of::vector24< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23>, T> { typed [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class T> struct push_back<boost::type_of::vector25< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class T> struct push_back<boost::type_of::vector26< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class T> struct push_back<boost::type_of::vector27< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class T> struct push_back<boost::type_of::vector28< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class T> struct push_back<boost::type_of::vector29< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class T> struct push_back<boost::type_of::vector30< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class T> struct push_back<boost::type_of::vector31< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class T> struct push_back<boost::type_of::vector32< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class T> struct push_back<boost::type_of::vector33< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class T> struct push_back<boost::type_of::vector34< P0 , P1 , P2 , P3 , P4 , [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class T> struct push_back<boost::type_of::vector35< P0 , P1 , P2 [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class T> struct push_back<boost::type_of::vector36<  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class T> struct push_back<boost::type_of [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class T> struct push_back<bo [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class T> struct  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-}}
diff --git a/boost/typeof/vector150.hpp b/boost/typeof/vector150.hpp
deleted file mode 100644
index a7d7fb1..0000000
--- a/boost/typeof/vector150.hpp
+++ /dev/null
@@ -1,471 +0,0 @@
-
-// Copyright (C) 2005 Arkadiy Vertleyb
-// Copyright (C) 2005 Peder Holt
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-// Preprocessed code, do not edit manually !
-
-
-namespace boost { namespace type_of {
-    template<class V, class Increase_BOOST_TYPEOF_LIMIT_SIZE> struct v_iter;
-        template<class V> struct v_iter<V, mpl::int_<0> > { typedef typename V::item0 type; typedef v_iter<V, mpl::int_<0 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<1> > { typedef typename V::item1 type; typedef v_iter<V, mpl::int_<1 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<2> > { typedef typename V::item2 type; typedef v_iter<V, mpl::int_<2 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<3> > { typedef typename V::item3 type; typedef v_iter<V, mpl::int_<3 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<4> > { typedef typename V::item4 type; typedef v_iter<V, mpl::int_<4 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<5> > { typedef typename V::item5 type; typedef v_iter<V, mpl::int_<5 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<6> > { typedef typename V::item6 type; typedef v_iter<V, mpl::int_<6 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<7> > { typedef typename V::item7 type; typedef v_iter<V, mpl::int_<7 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<8> > { typedef typename V::item8 type; typedef v_iter<V, mpl::int_<8 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<9> > { typedef typename V::item9 type; typedef v_iter<V, mpl::int_<9 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<10> > { typedef typename V::item10 type; typedef v_iter<V, mpl::int_<10 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<11> > { typedef typename V::item11 type; typedef v_iter<V, mpl::int_<11 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<12> > { typedef typename V::item12 type; typedef v_iter<V, mpl::int_<12 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<13> > { typedef typename V::item13 type; typedef v_iter<V, mpl::int_<13 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<14> > { typedef typename V::item14 type; typedef v_iter<V, mpl::int_<14 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<15> > { typedef typename V::item15 type; typedef v_iter<V, mpl::int_<15 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<16> > { typedef typename V::item16 type; typedef v_iter<V, mpl::int_<16 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<17> > { typedef typename V::item17 type; typedef v_iter<V, mpl::int_<17 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<18> > { typedef typename V::item18 type; typedef v_iter<V, mpl::int_<18 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<19> > { typedef typename V::item19 type; typedef v_iter<V, mpl::int_<19 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<20> > { typedef typename V::item20 type; typedef v_iter<V, mpl::int_<20 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<21> > { typedef typename V::item21 type; typedef v_iter<V, mpl::int_<21 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<22> > { typedef typename V::item22 type; typedef v_iter<V, mpl::int_<22 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<23> > { typedef typename V::item23 type; typedef v_iter<V, mpl::int_<23 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<24> > { typedef typename V::item24 type; typedef v_iter<V, mpl::int_<24 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<25> > { typedef typename V::item25 type; typedef v_iter<V, mpl::int_<25 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<26> > { typedef typename V::item26 type; typedef v_iter<V, mpl::int_<26 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<27> > { typedef typename V::item27 type; typedef v_iter<V, mpl::int_<27 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<28> > { typedef typename V::item28 type; typedef v_iter<V, mpl::int_<28 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<29> > { typedef typename V::item29 type; typedef v_iter<V, mpl::int_<29 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<30> > { typedef typename V::item30 type; typedef v_iter<V, mpl::int_<30 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<31> > { typedef typename V::item31 type; typedef v_iter<V, mpl::int_<31 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<32> > { typedef typename V::item32 type; typedef v_iter<V, mpl::int_<32 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<33> > { typedef typename V::item33 type; typedef v_iter<V, mpl::int_<33 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<34> > { typedef typename V::item34 type; typedef v_iter<V, mpl::int_<34 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<35> > { typedef typename V::item35 type; typedef v_iter<V, mpl::int_<35 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<36> > { typedef typename V::item36 type; typedef v_iter<V, mpl::int_<36 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<37> > { typedef typename V::item37 type; typedef v_iter<V, mpl::int_<37 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<38> > { typedef typename V::item38 type; typedef v_iter<V, mpl::int_<38 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<39> > { typedef typename V::item39 type; typedef v_iter<V, mpl::int_<39 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<40> > { typedef typename V::item40 type; typedef v_iter<V, mpl::int_<40 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<41> > { typedef typename V::item41 type; typedef v_iter<V, mpl::int_<41 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<42> > { typedef typename V::item42 type; typedef v_iter<V, mpl::int_<42 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<43> > { typedef typename V::item43 type; typedef v_iter<V, mpl::int_<43 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<44> > { typedef typename V::item44 type; typedef v_iter<V, mpl::int_<44 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<45> > { typedef typename V::item45 type; typedef v_iter<V, mpl::int_<45 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<46> > { typedef typename V::item46 type; typedef v_iter<V, mpl::int_<46 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<47> > { typedef typename V::item47 type; typedef v_iter<V, mpl::int_<47 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<48> > { typedef typename V::item48 type; typedef v_iter<V, mpl::int_<48 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<49> > { typedef typename V::item49 type; typedef v_iter<V, mpl::int_<49 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<50> > { typedef typename V::item50 type; typedef v_iter<V, mpl::int_<50 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<51> > { typedef typename V::item51 type; typedef v_iter<V, mpl::int_<51 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<52> > { typedef typename V::item52 type; typedef v_iter<V, mpl::int_<52 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<53> > { typedef typename V::item53 type; typedef v_iter<V, mpl::int_<53 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<54> > { typedef typename V::item54 type; typedef v_iter<V, mpl::int_<54 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<55> > { typedef typename V::item55 type; typedef v_iter<V, mpl::int_<55 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<56> > { typedef typename V::item56 type; typedef v_iter<V, mpl::int_<56 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<57> > { typedef typename V::item57 type; typedef v_iter<V, mpl::int_<57 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<58> > { typedef typename V::item58 type; typedef v_iter<V, mpl::int_<58 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<59> > { typedef typename V::item59 type; typedef v_iter<V, mpl::int_<59 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<60> > { typedef typename V::item60 type; typedef v_iter<V, mpl::int_<60 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<61> > { typedef typename V::item61 type; typedef v_iter<V, mpl::int_<61 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<62> > { typedef typename V::item62 type; typedef v_iter<V, mpl::int_<62 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<63> > { typedef typename V::item63 type; typedef v_iter<V, mpl::int_<63 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<64> > { typedef typename V::item64 type; typedef v_iter<V, mpl::int_<64 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<65> > { typedef typename V::item65 type; typedef v_iter<V, mpl::int_<65 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<66> > { typedef typename V::item66 type; typedef v_iter<V, mpl::int_<66 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<67> > { typedef typename V::item67 type; typedef v_iter<V, mpl::int_<67 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<68> > { typedef typename V::item68 type; typedef v_iter<V, mpl::int_<68 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<69> > { typedef typename V::item69 type; typedef v_iter<V, mpl::int_<69 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<70> > { typedef typename V::item70 type; typedef v_iter<V, mpl::int_<70 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<71> > { typedef typename V::item71 type; typedef v_iter<V, mpl::int_<71 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<72> > { typedef typename V::item72 type; typedef v_iter<V, mpl::int_<72 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<73> > { typedef typename V::item73 type; typedef v_iter<V, mpl::int_<73 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<74> > { typedef typename V::item74 type; typedef v_iter<V, mpl::int_<74 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<75> > { typedef typename V::item75 type; typedef v_iter<V, mpl::int_<75 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<76> > { typedef typename V::item76 type; typedef v_iter<V, mpl::int_<76 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<77> > { typedef typename V::item77 type; typedef v_iter<V, mpl::int_<77 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<78> > { typedef typename V::item78 type; typedef v_iter<V, mpl::int_<78 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<79> > { typedef typename V::item79 type; typedef v_iter<V, mpl::int_<79 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<80> > { typedef typename V::item80 type; typedef v_iter<V, mpl::int_<80 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<81> > { typedef typename V::item81 type; typedef v_iter<V, mpl::int_<81 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<82> > { typedef typename V::item82 type; typedef v_iter<V, mpl::int_<82 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<83> > { typedef typename V::item83 type; typedef v_iter<V, mpl::int_<83 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<84> > { typedef typename V::item84 type; typedef v_iter<V, mpl::int_<84 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<85> > { typedef typename V::item85 type; typedef v_iter<V, mpl::int_<85 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<86> > { typedef typename V::item86 type; typedef v_iter<V, mpl::int_<86 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<87> > { typedef typename V::item87 type; typedef v_iter<V, mpl::int_<87 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<88> > { typedef typename V::item88 type; typedef v_iter<V, mpl::int_<88 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<89> > { typedef typename V::item89 type; typedef v_iter<V, mpl::int_<89 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<90> > { typedef typename V::item90 type; typedef v_iter<V, mpl::int_<90 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<91> > { typedef typename V::item91 type; typedef v_iter<V, mpl::int_<91 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<92> > { typedef typename V::item92 type; typedef v_iter<V, mpl::int_<92 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<93> > { typedef typename V::item93 type; typedef v_iter<V, mpl::int_<93 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<94> > { typedef typename V::item94 type; typedef v_iter<V, mpl::int_<94 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<95> > { typedef typename V::item95 type; typedef v_iter<V, mpl::int_<95 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<96> > { typedef typename V::item96 type; typedef v_iter<V, mpl::int_<96 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<97> > { typedef typename V::item97 type; typedef v_iter<V, mpl::int_<97 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<98> > { typedef typename V::item98 type; typedef v_iter<V, mpl::int_<98 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<99> > { typedef typename V::item99 type; typedef v_iter<V, mpl::int_<99 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<100> > { typedef typename V::item100 type; typedef v_iter<V, mpl::int_<100 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<101> > { typedef typename V::item101 type; typedef v_iter<V, mpl::int_<101 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<102> > { typedef typename V::item102 type; typedef v_iter<V, mpl::int_<102 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<103> > { typedef typename V::item103 type; typedef v_iter<V, mpl::int_<103 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<104> > { typedef typename V::item104 type; typedef v_iter<V, mpl::int_<104 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<105> > { typedef typename V::item105 type; typedef v_iter<V, mpl::int_<105 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<106> > { typedef typename V::item106 type; typedef v_iter<V, mpl::int_<106 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<107> > { typedef typename V::item107 type; typedef v_iter<V, mpl::int_<107 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<108> > { typedef typename V::item108 type; typedef v_iter<V, mpl::int_<108 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<109> > { typedef typename V::item109 type; typedef v_iter<V, mpl::int_<109 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<110> > { typedef typename V::item110 type; typedef v_iter<V, mpl::int_<110 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<111> > { typedef typename V::item111 type; typedef v_iter<V, mpl::int_<111 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<112> > { typedef typename V::item112 type; typedef v_iter<V, mpl::int_<112 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<113> > { typedef typename V::item113 type; typedef v_iter<V, mpl::int_<113 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<114> > { typedef typename V::item114 type; typedef v_iter<V, mpl::int_<114 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<115> > { typedef typename V::item115 type; typedef v_iter<V, mpl::int_<115 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<116> > { typedef typename V::item116 type; typedef v_iter<V, mpl::int_<116 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<117> > { typedef typename V::item117 type; typedef v_iter<V, mpl::int_<117 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<118> > { typedef typename V::item118 type; typedef v_iter<V, mpl::int_<118 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<119> > { typedef typename V::item119 type; typedef v_iter<V, mpl::int_<119 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<120> > { typedef typename V::item120 type; typedef v_iter<V, mpl::int_<120 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<121> > { typedef typename V::item121 type; typedef v_iter<V, mpl::int_<121 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<122> > { typedef typename V::item122 type; typedef v_iter<V, mpl::int_<122 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<123> > { typedef typename V::item123 type; typedef v_iter<V, mpl::int_<123 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<124> > { typedef typename V::item124 type; typedef v_iter<V, mpl::int_<124 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<125> > { typedef typename V::item125 type; typedef v_iter<V, mpl::int_<125 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<126> > { typedef typename V::item126 type; typedef v_iter<V, mpl::int_<126 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<127> > { typedef typename V::item127 type; typedef v_iter<V, mpl::int_<127 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<128> > { typedef typename V::item128 type; typedef v_iter<V, mpl::int_<128 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<129> > { typedef typename V::item129 type; typedef v_iter<V, mpl::int_<129 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<130> > { typedef typename V::item130 type; typedef v_iter<V, mpl::int_<130 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<131> > { typedef typename V::item131 type; typedef v_iter<V, mpl::int_<131 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<132> > { typedef typename V::item132 type; typedef v_iter<V, mpl::int_<132 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<133> > { typedef typename V::item133 type; typedef v_iter<V, mpl::int_<133 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<134> > { typedef typename V::item134 type; typedef v_iter<V, mpl::int_<134 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<135> > { typedef typename V::item135 type; typedef v_iter<V, mpl::int_<135 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<136> > { typedef typename V::item136 type; typedef v_iter<V, mpl::int_<136 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<137> > { typedef typename V::item137 type; typedef v_iter<V, mpl::int_<137 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<138> > { typedef typename V::item138 type; typedef v_iter<V, mpl::int_<138 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<139> > { typedef typename V::item139 type; typedef v_iter<V, mpl::int_<139 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<140> > { typedef typename V::item140 type; typedef v_iter<V, mpl::int_<140 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<141> > { typedef typename V::item141 type; typedef v_iter<V, mpl::int_<141 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<142> > { typedef typename V::item142 type; typedef v_iter<V, mpl::int_<142 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<143> > { typedef typename V::item143 type; typedef v_iter<V, mpl::int_<143 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<144> > { typedef typename V::item144 type; typedef v_iter<V, mpl::int_<144 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<145> > { typedef typename V::item145 type; typedef v_iter<V, mpl::int_<145 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<146> > { typedef typename V::item146 type; typedef v_iter<V, mpl::int_<146 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<147> > { typedef typename V::item147 type; typedef v_iter<V, mpl::int_<147 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<148> > { typedef typename V::item148 type; typedef v_iter<V, mpl::int_<148 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<149> > { typedef typename V::item149 type; typedef v_iter<V, mpl::int_<149 + 1> > next; };
-}}
-namespace boost { namespace type_of {
-        template< class T = void> struct vector0 { typedef v_iter<vector0<>, boost::mpl::int_<0> > begin; typedef mpl::int_<1> item0; typedef mpl::int_<1> item1; typedef mpl::int_<1> item2; typedef mpl::int_<1> item3; typedef mpl::int_<1> item4; typedef mpl::int_<1> item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1 [...]
-        template< class P0 > struct vector1 { typedef v_iter<vector1< P0>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef mpl::int_<1> item1; typedef mpl::int_<1> item2; typedef mpl::int_<1> item3; typedef mpl::int_<1> item4; typedef mpl::int_<1> item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; ty [...]
-        template< class P0 , class P1 > struct vector2 { typedef v_iter<vector2< P0 , P1>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef mpl::int_<1> item2; typedef mpl::int_<1> item3; typedef mpl::int_<1> item4; typedef mpl::int_<1> item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item [...]
-        template< class P0 , class P1 , class P2 > struct vector3 { typedef v_iter<vector3< P0 , P1 , P2>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef mpl::int_<1> item3; typedef mpl::int_<1> item4; typedef mpl::int_<1> item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1 [...]
-        template< class P0 , class P1 , class P2 , class P3 > struct vector4 { typedef v_iter<vector4< P0 , P1 , P2 , P3>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef mpl::int_<1> item4; typedef mpl::int_<1> item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl:: [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 > struct vector5 { typedef v_iter<vector5< P0 , P1 , P2 , P3 , P4>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef mpl::int_<1> item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 > struct vector6 { typedef v_iter<vector6< P0 , P1 , P2 , P3 , P4 , P5>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; t [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 > struct vector7 { typedef v_iter<vector7< P0 , P1 , P2 , P3 , P4 , P5 , P6>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> ite [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 > struct vector8 { typedef v_iter<vector8< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_< [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 > struct vector9 { typedef v_iter<vector9< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl: [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 > struct vector10 { typedef v_iter<vector10< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; type [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 > struct vector11 { typedef v_iter<vector11< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef mpl::int_<1> ite [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 > struct vector12 { typedef v_iter<vector12< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typede [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 > struct vector13 { typedef v_iter<vector13< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 > struct vector14 { typedef v_iter<vector14< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 > struct vector15 { typedef v_iter<vector15< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 > struct vector16 { typedef v_iter<vector16< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 > struct vector17 { typedef v_iter<vector17< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 > struct vector18 { typedef v_iter<vector18< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 > struct vector19 { typedef v_iter<vector19< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 > struct vector20 { typedef v_iter<vector20< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 > struct vector21 { typedef v_iter<vector21< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 > struct vector22 { typedef v_iter<vector22< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 > struct vector23 { typedef v_iter<vector23< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22>, boost::mpl::int_<0> > begin; typedef  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 > struct vector24 { typedef v_iter<vector24< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23>, boost::mpl::int_<0> [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 > struct vector25 { typedef v_iter<vector25< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24>, b [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 > struct vector26 { typedef v_iter<vector26< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 > struct vector27 { typedef v_iter<vector27< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 > struct vector28 { typedef v_iter<vector28< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 > struct vector29 { typedef v_iter<vector29< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 > struct vector30 { typedef v_iter<vector30< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 > struct vector31 { typedef v_iter<vector31< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 > struct vector32 { typedef v_iter<vector32< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 > struct vector33 { typedef v_iter<vector33< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 ,  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 > struct vector34 { typedef v_iter<vector34< P0 , P1 , P2 , P3 , P4 , P5 , P6  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 > struct vector35 { typedef v_iter<vector35< P0 , P1 , P2 , P3 , P [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 > struct vector36 { typedef v_iter<vector36< P0 , P1 , [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 > struct vector37 { typedef v_iter<vector3 [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 > struct vector38 { typedef v_ [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 > struct vector39  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 > stru [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-}}
-namespace boost { namespace type_of {
-    template<class V, class T> struct push_back {
-        typedef V type;
-    };
-        template< class T> struct push_back<boost::type_of::vector0<>, T> { typedef boost::type_of::vector1< T > type; };
-        template< class P0 , class T> struct push_back<boost::type_of::vector1< P0>, T> { typedef boost::type_of::vector2< P0 , T > type; };
-        template< class P0 , class P1 , class T> struct push_back<boost::type_of::vector2< P0 , P1>, T> { typedef boost::type_of::vector3< P0 , P1 , T > type; };
-        template< class P0 , class P1 , class P2 , class T> struct push_back<boost::type_of::vector3< P0 , P1 , P2>, T> { typedef boost::type_of::vector4< P0 , P1 , P2 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class T> struct push_back<boost::type_of::vector4< P0 , P1 , P2 , P3>, T> { typedef boost::type_of::vector5< P0 , P1 , P2 , P3 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class T> struct push_back<boost::type_of::vector5< P0 , P1 , P2 , P3 , P4>, T> { typedef boost::type_of::vector6< P0 , P1 , P2 , P3 , P4 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class T> struct push_back<boost::type_of::vector6< P0 , P1 , P2 , P3 , P4 , P5>, T> { typedef boost::type_of::vector7< P0 , P1 , P2 , P3 , P4 , P5 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class T> struct push_back<boost::type_of::vector7< P0 , P1 , P2 , P3 , P4 , P5 , P6>, T> { typedef boost::type_of::vector8< P0 , P1 , P2 , P3 , P4 , P5 , P6 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class T> struct push_back<boost::type_of::vector8< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7>, T> { typedef boost::type_of::vector9< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class T> struct push_back<boost::type_of::vector9< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8>, T> { typedef boost::type_of::vector10< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class T> struct push_back<boost::type_of::vector10< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9>, T> { typedef boost::type_of::vector11< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class T> struct push_back<boost::type_of::vector11< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10>, T> { typedef boost::type_of::vector12< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class T> struct push_back<boost::type_of::vector12< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11>, T> { typedef boost::type_of::vector13< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class T> struct push_back<boost::type_of::vector13< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12>, T> { typedef boost::type_of::vector14< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class T> struct push_back<boost::type_of::vector14< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13>, T> { typedef boost::type_of::vector15< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class T> struct push_back<boost::type_of::vector15< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14>, T> { typedef boost::type_of::vector16< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class T> struct push_back<boost::type_of::vector16< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15>, T> { typedef boost::type_of::vector17< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class T> struct push_back<boost::type_of::vector17< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16>, T> { typedef boost::type_of::vector18< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class T> struct push_back<boost::type_of::vector18< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17>, T> { typedef boost::type_of::vector19< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class T> struct push_back<boost::type_of::vector19< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18>, T> { typedef boost::type_of::vector20< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class T> struct push_back<boost::type_of::vector20< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19>, T> { typedef boost::type_of::vector21< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class T> struct push_back<boost::type_of::vector21< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20>, T> { typedef boost::type_of::vector22< P0 , P1 , P2 , P3 , P4 ,  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class T> struct push_back<boost::type_of::vector22< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21>, T> { typedef boost::type_of::vector23< P0 , P1 [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class T> struct push_back<boost::type_of::vector23< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22>, T> { typedef boost::type_of: [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class T> struct push_back<boost::type_of::vector24< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23>, T> { typed [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class T> struct push_back<boost::type_of::vector25< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class T> struct push_back<boost::type_of::vector26< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class T> struct push_back<boost::type_of::vector27< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class T> struct push_back<boost::type_of::vector28< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class T> struct push_back<boost::type_of::vector29< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class T> struct push_back<boost::type_of::vector30< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class T> struct push_back<boost::type_of::vector31< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class T> struct push_back<boost::type_of::vector32< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class T> struct push_back<boost::type_of::vector33< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class T> struct push_back<boost::type_of::vector34< P0 , P1 , P2 , P3 , P4 , [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class T> struct push_back<boost::type_of::vector35< P0 , P1 , P2 [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class T> struct push_back<boost::type_of::vector36<  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class T> struct push_back<boost::type_of [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class T> struct push_back<bo [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class T> struct  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-}}
diff --git a/boost/typeof/vector200.hpp b/boost/typeof/vector200.hpp
deleted file mode 100644
index 43860c3..0000000
--- a/boost/typeof/vector200.hpp
+++ /dev/null
@@ -1,621 +0,0 @@
-
-// Copyright (C) 2005 Arkadiy Vertleyb
-// Copyright (C) 2005 Peder Holt
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-// Preprocessed code, do not edit manually !
-
-
-namespace boost { namespace type_of {
-    template<class V, class Increase_BOOST_TYPEOF_LIMIT_SIZE> struct v_iter;
-        template<class V> struct v_iter<V, mpl::int_<0> > { typedef typename V::item0 type; typedef v_iter<V, mpl::int_<0 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<1> > { typedef typename V::item1 type; typedef v_iter<V, mpl::int_<1 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<2> > { typedef typename V::item2 type; typedef v_iter<V, mpl::int_<2 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<3> > { typedef typename V::item3 type; typedef v_iter<V, mpl::int_<3 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<4> > { typedef typename V::item4 type; typedef v_iter<V, mpl::int_<4 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<5> > { typedef typename V::item5 type; typedef v_iter<V, mpl::int_<5 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<6> > { typedef typename V::item6 type; typedef v_iter<V, mpl::int_<6 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<7> > { typedef typename V::item7 type; typedef v_iter<V, mpl::int_<7 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<8> > { typedef typename V::item8 type; typedef v_iter<V, mpl::int_<8 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<9> > { typedef typename V::item9 type; typedef v_iter<V, mpl::int_<9 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<10> > { typedef typename V::item10 type; typedef v_iter<V, mpl::int_<10 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<11> > { typedef typename V::item11 type; typedef v_iter<V, mpl::int_<11 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<12> > { typedef typename V::item12 type; typedef v_iter<V, mpl::int_<12 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<13> > { typedef typename V::item13 type; typedef v_iter<V, mpl::int_<13 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<14> > { typedef typename V::item14 type; typedef v_iter<V, mpl::int_<14 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<15> > { typedef typename V::item15 type; typedef v_iter<V, mpl::int_<15 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<16> > { typedef typename V::item16 type; typedef v_iter<V, mpl::int_<16 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<17> > { typedef typename V::item17 type; typedef v_iter<V, mpl::int_<17 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<18> > { typedef typename V::item18 type; typedef v_iter<V, mpl::int_<18 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<19> > { typedef typename V::item19 type; typedef v_iter<V, mpl::int_<19 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<20> > { typedef typename V::item20 type; typedef v_iter<V, mpl::int_<20 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<21> > { typedef typename V::item21 type; typedef v_iter<V, mpl::int_<21 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<22> > { typedef typename V::item22 type; typedef v_iter<V, mpl::int_<22 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<23> > { typedef typename V::item23 type; typedef v_iter<V, mpl::int_<23 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<24> > { typedef typename V::item24 type; typedef v_iter<V, mpl::int_<24 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<25> > { typedef typename V::item25 type; typedef v_iter<V, mpl::int_<25 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<26> > { typedef typename V::item26 type; typedef v_iter<V, mpl::int_<26 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<27> > { typedef typename V::item27 type; typedef v_iter<V, mpl::int_<27 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<28> > { typedef typename V::item28 type; typedef v_iter<V, mpl::int_<28 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<29> > { typedef typename V::item29 type; typedef v_iter<V, mpl::int_<29 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<30> > { typedef typename V::item30 type; typedef v_iter<V, mpl::int_<30 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<31> > { typedef typename V::item31 type; typedef v_iter<V, mpl::int_<31 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<32> > { typedef typename V::item32 type; typedef v_iter<V, mpl::int_<32 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<33> > { typedef typename V::item33 type; typedef v_iter<V, mpl::int_<33 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<34> > { typedef typename V::item34 type; typedef v_iter<V, mpl::int_<34 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<35> > { typedef typename V::item35 type; typedef v_iter<V, mpl::int_<35 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<36> > { typedef typename V::item36 type; typedef v_iter<V, mpl::int_<36 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<37> > { typedef typename V::item37 type; typedef v_iter<V, mpl::int_<37 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<38> > { typedef typename V::item38 type; typedef v_iter<V, mpl::int_<38 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<39> > { typedef typename V::item39 type; typedef v_iter<V, mpl::int_<39 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<40> > { typedef typename V::item40 type; typedef v_iter<V, mpl::int_<40 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<41> > { typedef typename V::item41 type; typedef v_iter<V, mpl::int_<41 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<42> > { typedef typename V::item42 type; typedef v_iter<V, mpl::int_<42 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<43> > { typedef typename V::item43 type; typedef v_iter<V, mpl::int_<43 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<44> > { typedef typename V::item44 type; typedef v_iter<V, mpl::int_<44 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<45> > { typedef typename V::item45 type; typedef v_iter<V, mpl::int_<45 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<46> > { typedef typename V::item46 type; typedef v_iter<V, mpl::int_<46 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<47> > { typedef typename V::item47 type; typedef v_iter<V, mpl::int_<47 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<48> > { typedef typename V::item48 type; typedef v_iter<V, mpl::int_<48 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<49> > { typedef typename V::item49 type; typedef v_iter<V, mpl::int_<49 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<50> > { typedef typename V::item50 type; typedef v_iter<V, mpl::int_<50 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<51> > { typedef typename V::item51 type; typedef v_iter<V, mpl::int_<51 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<52> > { typedef typename V::item52 type; typedef v_iter<V, mpl::int_<52 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<53> > { typedef typename V::item53 type; typedef v_iter<V, mpl::int_<53 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<54> > { typedef typename V::item54 type; typedef v_iter<V, mpl::int_<54 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<55> > { typedef typename V::item55 type; typedef v_iter<V, mpl::int_<55 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<56> > { typedef typename V::item56 type; typedef v_iter<V, mpl::int_<56 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<57> > { typedef typename V::item57 type; typedef v_iter<V, mpl::int_<57 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<58> > { typedef typename V::item58 type; typedef v_iter<V, mpl::int_<58 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<59> > { typedef typename V::item59 type; typedef v_iter<V, mpl::int_<59 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<60> > { typedef typename V::item60 type; typedef v_iter<V, mpl::int_<60 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<61> > { typedef typename V::item61 type; typedef v_iter<V, mpl::int_<61 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<62> > { typedef typename V::item62 type; typedef v_iter<V, mpl::int_<62 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<63> > { typedef typename V::item63 type; typedef v_iter<V, mpl::int_<63 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<64> > { typedef typename V::item64 type; typedef v_iter<V, mpl::int_<64 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<65> > { typedef typename V::item65 type; typedef v_iter<V, mpl::int_<65 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<66> > { typedef typename V::item66 type; typedef v_iter<V, mpl::int_<66 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<67> > { typedef typename V::item67 type; typedef v_iter<V, mpl::int_<67 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<68> > { typedef typename V::item68 type; typedef v_iter<V, mpl::int_<68 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<69> > { typedef typename V::item69 type; typedef v_iter<V, mpl::int_<69 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<70> > { typedef typename V::item70 type; typedef v_iter<V, mpl::int_<70 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<71> > { typedef typename V::item71 type; typedef v_iter<V, mpl::int_<71 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<72> > { typedef typename V::item72 type; typedef v_iter<V, mpl::int_<72 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<73> > { typedef typename V::item73 type; typedef v_iter<V, mpl::int_<73 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<74> > { typedef typename V::item74 type; typedef v_iter<V, mpl::int_<74 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<75> > { typedef typename V::item75 type; typedef v_iter<V, mpl::int_<75 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<76> > { typedef typename V::item76 type; typedef v_iter<V, mpl::int_<76 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<77> > { typedef typename V::item77 type; typedef v_iter<V, mpl::int_<77 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<78> > { typedef typename V::item78 type; typedef v_iter<V, mpl::int_<78 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<79> > { typedef typename V::item79 type; typedef v_iter<V, mpl::int_<79 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<80> > { typedef typename V::item80 type; typedef v_iter<V, mpl::int_<80 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<81> > { typedef typename V::item81 type; typedef v_iter<V, mpl::int_<81 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<82> > { typedef typename V::item82 type; typedef v_iter<V, mpl::int_<82 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<83> > { typedef typename V::item83 type; typedef v_iter<V, mpl::int_<83 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<84> > { typedef typename V::item84 type; typedef v_iter<V, mpl::int_<84 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<85> > { typedef typename V::item85 type; typedef v_iter<V, mpl::int_<85 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<86> > { typedef typename V::item86 type; typedef v_iter<V, mpl::int_<86 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<87> > { typedef typename V::item87 type; typedef v_iter<V, mpl::int_<87 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<88> > { typedef typename V::item88 type; typedef v_iter<V, mpl::int_<88 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<89> > { typedef typename V::item89 type; typedef v_iter<V, mpl::int_<89 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<90> > { typedef typename V::item90 type; typedef v_iter<V, mpl::int_<90 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<91> > { typedef typename V::item91 type; typedef v_iter<V, mpl::int_<91 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<92> > { typedef typename V::item92 type; typedef v_iter<V, mpl::int_<92 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<93> > { typedef typename V::item93 type; typedef v_iter<V, mpl::int_<93 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<94> > { typedef typename V::item94 type; typedef v_iter<V, mpl::int_<94 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<95> > { typedef typename V::item95 type; typedef v_iter<V, mpl::int_<95 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<96> > { typedef typename V::item96 type; typedef v_iter<V, mpl::int_<96 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<97> > { typedef typename V::item97 type; typedef v_iter<V, mpl::int_<97 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<98> > { typedef typename V::item98 type; typedef v_iter<V, mpl::int_<98 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<99> > { typedef typename V::item99 type; typedef v_iter<V, mpl::int_<99 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<100> > { typedef typename V::item100 type; typedef v_iter<V, mpl::int_<100 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<101> > { typedef typename V::item101 type; typedef v_iter<V, mpl::int_<101 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<102> > { typedef typename V::item102 type; typedef v_iter<V, mpl::int_<102 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<103> > { typedef typename V::item103 type; typedef v_iter<V, mpl::int_<103 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<104> > { typedef typename V::item104 type; typedef v_iter<V, mpl::int_<104 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<105> > { typedef typename V::item105 type; typedef v_iter<V, mpl::int_<105 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<106> > { typedef typename V::item106 type; typedef v_iter<V, mpl::int_<106 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<107> > { typedef typename V::item107 type; typedef v_iter<V, mpl::int_<107 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<108> > { typedef typename V::item108 type; typedef v_iter<V, mpl::int_<108 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<109> > { typedef typename V::item109 type; typedef v_iter<V, mpl::int_<109 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<110> > { typedef typename V::item110 type; typedef v_iter<V, mpl::int_<110 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<111> > { typedef typename V::item111 type; typedef v_iter<V, mpl::int_<111 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<112> > { typedef typename V::item112 type; typedef v_iter<V, mpl::int_<112 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<113> > { typedef typename V::item113 type; typedef v_iter<V, mpl::int_<113 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<114> > { typedef typename V::item114 type; typedef v_iter<V, mpl::int_<114 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<115> > { typedef typename V::item115 type; typedef v_iter<V, mpl::int_<115 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<116> > { typedef typename V::item116 type; typedef v_iter<V, mpl::int_<116 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<117> > { typedef typename V::item117 type; typedef v_iter<V, mpl::int_<117 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<118> > { typedef typename V::item118 type; typedef v_iter<V, mpl::int_<118 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<119> > { typedef typename V::item119 type; typedef v_iter<V, mpl::int_<119 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<120> > { typedef typename V::item120 type; typedef v_iter<V, mpl::int_<120 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<121> > { typedef typename V::item121 type; typedef v_iter<V, mpl::int_<121 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<122> > { typedef typename V::item122 type; typedef v_iter<V, mpl::int_<122 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<123> > { typedef typename V::item123 type; typedef v_iter<V, mpl::int_<123 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<124> > { typedef typename V::item124 type; typedef v_iter<V, mpl::int_<124 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<125> > { typedef typename V::item125 type; typedef v_iter<V, mpl::int_<125 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<126> > { typedef typename V::item126 type; typedef v_iter<V, mpl::int_<126 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<127> > { typedef typename V::item127 type; typedef v_iter<V, mpl::int_<127 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<128> > { typedef typename V::item128 type; typedef v_iter<V, mpl::int_<128 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<129> > { typedef typename V::item129 type; typedef v_iter<V, mpl::int_<129 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<130> > { typedef typename V::item130 type; typedef v_iter<V, mpl::int_<130 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<131> > { typedef typename V::item131 type; typedef v_iter<V, mpl::int_<131 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<132> > { typedef typename V::item132 type; typedef v_iter<V, mpl::int_<132 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<133> > { typedef typename V::item133 type; typedef v_iter<V, mpl::int_<133 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<134> > { typedef typename V::item134 type; typedef v_iter<V, mpl::int_<134 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<135> > { typedef typename V::item135 type; typedef v_iter<V, mpl::int_<135 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<136> > { typedef typename V::item136 type; typedef v_iter<V, mpl::int_<136 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<137> > { typedef typename V::item137 type; typedef v_iter<V, mpl::int_<137 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<138> > { typedef typename V::item138 type; typedef v_iter<V, mpl::int_<138 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<139> > { typedef typename V::item139 type; typedef v_iter<V, mpl::int_<139 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<140> > { typedef typename V::item140 type; typedef v_iter<V, mpl::int_<140 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<141> > { typedef typename V::item141 type; typedef v_iter<V, mpl::int_<141 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<142> > { typedef typename V::item142 type; typedef v_iter<V, mpl::int_<142 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<143> > { typedef typename V::item143 type; typedef v_iter<V, mpl::int_<143 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<144> > { typedef typename V::item144 type; typedef v_iter<V, mpl::int_<144 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<145> > { typedef typename V::item145 type; typedef v_iter<V, mpl::int_<145 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<146> > { typedef typename V::item146 type; typedef v_iter<V, mpl::int_<146 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<147> > { typedef typename V::item147 type; typedef v_iter<V, mpl::int_<147 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<148> > { typedef typename V::item148 type; typedef v_iter<V, mpl::int_<148 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<149> > { typedef typename V::item149 type; typedef v_iter<V, mpl::int_<149 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<150> > { typedef typename V::item150 type; typedef v_iter<V, mpl::int_<150 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<151> > { typedef typename V::item151 type; typedef v_iter<V, mpl::int_<151 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<152> > { typedef typename V::item152 type; typedef v_iter<V, mpl::int_<152 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<153> > { typedef typename V::item153 type; typedef v_iter<V, mpl::int_<153 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<154> > { typedef typename V::item154 type; typedef v_iter<V, mpl::int_<154 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<155> > { typedef typename V::item155 type; typedef v_iter<V, mpl::int_<155 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<156> > { typedef typename V::item156 type; typedef v_iter<V, mpl::int_<156 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<157> > { typedef typename V::item157 type; typedef v_iter<V, mpl::int_<157 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<158> > { typedef typename V::item158 type; typedef v_iter<V, mpl::int_<158 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<159> > { typedef typename V::item159 type; typedef v_iter<V, mpl::int_<159 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<160> > { typedef typename V::item160 type; typedef v_iter<V, mpl::int_<160 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<161> > { typedef typename V::item161 type; typedef v_iter<V, mpl::int_<161 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<162> > { typedef typename V::item162 type; typedef v_iter<V, mpl::int_<162 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<163> > { typedef typename V::item163 type; typedef v_iter<V, mpl::int_<163 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<164> > { typedef typename V::item164 type; typedef v_iter<V, mpl::int_<164 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<165> > { typedef typename V::item165 type; typedef v_iter<V, mpl::int_<165 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<166> > { typedef typename V::item166 type; typedef v_iter<V, mpl::int_<166 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<167> > { typedef typename V::item167 type; typedef v_iter<V, mpl::int_<167 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<168> > { typedef typename V::item168 type; typedef v_iter<V, mpl::int_<168 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<169> > { typedef typename V::item169 type; typedef v_iter<V, mpl::int_<169 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<170> > { typedef typename V::item170 type; typedef v_iter<V, mpl::int_<170 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<171> > { typedef typename V::item171 type; typedef v_iter<V, mpl::int_<171 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<172> > { typedef typename V::item172 type; typedef v_iter<V, mpl::int_<172 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<173> > { typedef typename V::item173 type; typedef v_iter<V, mpl::int_<173 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<174> > { typedef typename V::item174 type; typedef v_iter<V, mpl::int_<174 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<175> > { typedef typename V::item175 type; typedef v_iter<V, mpl::int_<175 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<176> > { typedef typename V::item176 type; typedef v_iter<V, mpl::int_<176 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<177> > { typedef typename V::item177 type; typedef v_iter<V, mpl::int_<177 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<178> > { typedef typename V::item178 type; typedef v_iter<V, mpl::int_<178 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<179> > { typedef typename V::item179 type; typedef v_iter<V, mpl::int_<179 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<180> > { typedef typename V::item180 type; typedef v_iter<V, mpl::int_<180 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<181> > { typedef typename V::item181 type; typedef v_iter<V, mpl::int_<181 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<182> > { typedef typename V::item182 type; typedef v_iter<V, mpl::int_<182 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<183> > { typedef typename V::item183 type; typedef v_iter<V, mpl::int_<183 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<184> > { typedef typename V::item184 type; typedef v_iter<V, mpl::int_<184 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<185> > { typedef typename V::item185 type; typedef v_iter<V, mpl::int_<185 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<186> > { typedef typename V::item186 type; typedef v_iter<V, mpl::int_<186 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<187> > { typedef typename V::item187 type; typedef v_iter<V, mpl::int_<187 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<188> > { typedef typename V::item188 type; typedef v_iter<V, mpl::int_<188 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<189> > { typedef typename V::item189 type; typedef v_iter<V, mpl::int_<189 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<190> > { typedef typename V::item190 type; typedef v_iter<V, mpl::int_<190 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<191> > { typedef typename V::item191 type; typedef v_iter<V, mpl::int_<191 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<192> > { typedef typename V::item192 type; typedef v_iter<V, mpl::int_<192 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<193> > { typedef typename V::item193 type; typedef v_iter<V, mpl::int_<193 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<194> > { typedef typename V::item194 type; typedef v_iter<V, mpl::int_<194 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<195> > { typedef typename V::item195 type; typedef v_iter<V, mpl::int_<195 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<196> > { typedef typename V::item196 type; typedef v_iter<V, mpl::int_<196 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<197> > { typedef typename V::item197 type; typedef v_iter<V, mpl::int_<197 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<198> > { typedef typename V::item198 type; typedef v_iter<V, mpl::int_<198 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<199> > { typedef typename V::item199 type; typedef v_iter<V, mpl::int_<199 + 1> > next; };
-}}
-namespace boost { namespace type_of {
-        template< class T = void> struct vector0 { typedef v_iter<vector0<>, boost::mpl::int_<0> > begin; typedef mpl::int_<1> item0; typedef mpl::int_<1> item1; typedef mpl::int_<1> item2; typedef mpl::int_<1> item3; typedef mpl::int_<1> item4; typedef mpl::int_<1> item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1 [...]
-        template< class P0 > struct vector1 { typedef v_iter<vector1< P0>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef mpl::int_<1> item1; typedef mpl::int_<1> item2; typedef mpl::int_<1> item3; typedef mpl::int_<1> item4; typedef mpl::int_<1> item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; ty [...]
-        template< class P0 , class P1 > struct vector2 { typedef v_iter<vector2< P0 , P1>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef mpl::int_<1> item2; typedef mpl::int_<1> item3; typedef mpl::int_<1> item4; typedef mpl::int_<1> item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item [...]
-        template< class P0 , class P1 , class P2 > struct vector3 { typedef v_iter<vector3< P0 , P1 , P2>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef mpl::int_<1> item3; typedef mpl::int_<1> item4; typedef mpl::int_<1> item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1 [...]
-        template< class P0 , class P1 , class P2 , class P3 > struct vector4 { typedef v_iter<vector4< P0 , P1 , P2 , P3>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef mpl::int_<1> item4; typedef mpl::int_<1> item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl:: [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 > struct vector5 { typedef v_iter<vector5< P0 , P1 , P2 , P3 , P4>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef mpl::int_<1> item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 > struct vector6 { typedef v_iter<vector6< P0 , P1 , P2 , P3 , P4 , P5>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; t [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 > struct vector7 { typedef v_iter<vector7< P0 , P1 , P2 , P3 , P4 , P5 , P6>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> ite [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 > struct vector8 { typedef v_iter<vector8< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_< [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 > struct vector9 { typedef v_iter<vector9< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl: [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 > struct vector10 { typedef v_iter<vector10< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; type [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 > struct vector11 { typedef v_iter<vector11< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef mpl::int_<1> ite [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 > struct vector12 { typedef v_iter<vector12< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typede [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 > struct vector13 { typedef v_iter<vector13< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 > struct vector14 { typedef v_iter<vector14< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 > struct vector15 { typedef v_iter<vector15< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 > struct vector16 { typedef v_iter<vector16< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 > struct vector17 { typedef v_iter<vector17< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 > struct vector18 { typedef v_iter<vector18< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 > struct vector19 { typedef v_iter<vector19< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 > struct vector20 { typedef v_iter<vector20< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 > struct vector21 { typedef v_iter<vector21< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 > struct vector22 { typedef v_iter<vector22< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 > struct vector23 { typedef v_iter<vector23< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22>, boost::mpl::int_<0> > begin; typedef  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 > struct vector24 { typedef v_iter<vector24< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23>, boost::mpl::int_<0> [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 > struct vector25 { typedef v_iter<vector25< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24>, b [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 > struct vector26 { typedef v_iter<vector26< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 > struct vector27 { typedef v_iter<vector27< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 > struct vector28 { typedef v_iter<vector28< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 > struct vector29 { typedef v_iter<vector29< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 > struct vector30 { typedef v_iter<vector30< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 > struct vector31 { typedef v_iter<vector31< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 > struct vector32 { typedef v_iter<vector32< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 > struct vector33 { typedef v_iter<vector33< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 ,  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 > struct vector34 { typedef v_iter<vector34< P0 , P1 , P2 , P3 , P4 , P5 , P6  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 > struct vector35 { typedef v_iter<vector35< P0 , P1 , P2 , P3 , P [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 > struct vector36 { typedef v_iter<vector36< P0 , P1 , [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 > struct vector37 { typedef v_iter<vector3 [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 > struct vector38 { typedef v_ [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 > struct vector39  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 > stru [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-}}
-namespace boost { namespace type_of {
-    template<class V, class T> struct push_back {
-        typedef V type;
-    };
-        template< class T> struct push_back<boost::type_of::vector0<>, T> { typedef boost::type_of::vector1< T > type; };
-        template< class P0 , class T> struct push_back<boost::type_of::vector1< P0>, T> { typedef boost::type_of::vector2< P0 , T > type; };
-        template< class P0 , class P1 , class T> struct push_back<boost::type_of::vector2< P0 , P1>, T> { typedef boost::type_of::vector3< P0 , P1 , T > type; };
-        template< class P0 , class P1 , class P2 , class T> struct push_back<boost::type_of::vector3< P0 , P1 , P2>, T> { typedef boost::type_of::vector4< P0 , P1 , P2 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class T> struct push_back<boost::type_of::vector4< P0 , P1 , P2 , P3>, T> { typedef boost::type_of::vector5< P0 , P1 , P2 , P3 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class T> struct push_back<boost::type_of::vector5< P0 , P1 , P2 , P3 , P4>, T> { typedef boost::type_of::vector6< P0 , P1 , P2 , P3 , P4 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class T> struct push_back<boost::type_of::vector6< P0 , P1 , P2 , P3 , P4 , P5>, T> { typedef boost::type_of::vector7< P0 , P1 , P2 , P3 , P4 , P5 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class T> struct push_back<boost::type_of::vector7< P0 , P1 , P2 , P3 , P4 , P5 , P6>, T> { typedef boost::type_of::vector8< P0 , P1 , P2 , P3 , P4 , P5 , P6 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class T> struct push_back<boost::type_of::vector8< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7>, T> { typedef boost::type_of::vector9< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class T> struct push_back<boost::type_of::vector9< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8>, T> { typedef boost::type_of::vector10< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class T> struct push_back<boost::type_of::vector10< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9>, T> { typedef boost::type_of::vector11< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class T> struct push_back<boost::type_of::vector11< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10>, T> { typedef boost::type_of::vector12< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class T> struct push_back<boost::type_of::vector12< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11>, T> { typedef boost::type_of::vector13< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class T> struct push_back<boost::type_of::vector13< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12>, T> { typedef boost::type_of::vector14< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class T> struct push_back<boost::type_of::vector14< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13>, T> { typedef boost::type_of::vector15< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class T> struct push_back<boost::type_of::vector15< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14>, T> { typedef boost::type_of::vector16< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class T> struct push_back<boost::type_of::vector16< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15>, T> { typedef boost::type_of::vector17< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class T> struct push_back<boost::type_of::vector17< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16>, T> { typedef boost::type_of::vector18< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class T> struct push_back<boost::type_of::vector18< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17>, T> { typedef boost::type_of::vector19< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class T> struct push_back<boost::type_of::vector19< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18>, T> { typedef boost::type_of::vector20< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class T> struct push_back<boost::type_of::vector20< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19>, T> { typedef boost::type_of::vector21< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class T> struct push_back<boost::type_of::vector21< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20>, T> { typedef boost::type_of::vector22< P0 , P1 , P2 , P3 , P4 ,  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class T> struct push_back<boost::type_of::vector22< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21>, T> { typedef boost::type_of::vector23< P0 , P1 [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class T> struct push_back<boost::type_of::vector23< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22>, T> { typedef boost::type_of: [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class T> struct push_back<boost::type_of::vector24< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23>, T> { typed [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class T> struct push_back<boost::type_of::vector25< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class T> struct push_back<boost::type_of::vector26< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class T> struct push_back<boost::type_of::vector27< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class T> struct push_back<boost::type_of::vector28< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class T> struct push_back<boost::type_of::vector29< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class T> struct push_back<boost::type_of::vector30< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class T> struct push_back<boost::type_of::vector31< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class T> struct push_back<boost::type_of::vector32< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class T> struct push_back<boost::type_of::vector33< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class T> struct push_back<boost::type_of::vector34< P0 , P1 , P2 , P3 , P4 , [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class T> struct push_back<boost::type_of::vector35< P0 , P1 , P2 [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class T> struct push_back<boost::type_of::vector36<  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class T> struct push_back<boost::type_of [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class T> struct push_back<bo [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class T> struct  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-}}
diff --git a/boost/typeof/vector50.hpp b/boost/typeof/vector50.hpp
deleted file mode 100644
index d3beaff..0000000
--- a/boost/typeof/vector50.hpp
+++ /dev/null
@@ -1,171 +0,0 @@
-
-// Copyright (C) 2005 Arkadiy Vertleyb
-// Copyright (C) 2005 Peder Holt
-//
-// Use modification and distribution are subject to the boost Software License,
-// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
-
-// Preprocessed code, do not edit manually !
-
-
-namespace boost { namespace type_of {
-    template<class V, class Increase_BOOST_TYPEOF_LIMIT_SIZE> struct v_iter;
-        template<class V> struct v_iter<V, mpl::int_<0> > { typedef typename V::item0 type; typedef v_iter<V, mpl::int_<0 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<1> > { typedef typename V::item1 type; typedef v_iter<V, mpl::int_<1 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<2> > { typedef typename V::item2 type; typedef v_iter<V, mpl::int_<2 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<3> > { typedef typename V::item3 type; typedef v_iter<V, mpl::int_<3 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<4> > { typedef typename V::item4 type; typedef v_iter<V, mpl::int_<4 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<5> > { typedef typename V::item5 type; typedef v_iter<V, mpl::int_<5 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<6> > { typedef typename V::item6 type; typedef v_iter<V, mpl::int_<6 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<7> > { typedef typename V::item7 type; typedef v_iter<V, mpl::int_<7 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<8> > { typedef typename V::item8 type; typedef v_iter<V, mpl::int_<8 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<9> > { typedef typename V::item9 type; typedef v_iter<V, mpl::int_<9 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<10> > { typedef typename V::item10 type; typedef v_iter<V, mpl::int_<10 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<11> > { typedef typename V::item11 type; typedef v_iter<V, mpl::int_<11 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<12> > { typedef typename V::item12 type; typedef v_iter<V, mpl::int_<12 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<13> > { typedef typename V::item13 type; typedef v_iter<V, mpl::int_<13 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<14> > { typedef typename V::item14 type; typedef v_iter<V, mpl::int_<14 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<15> > { typedef typename V::item15 type; typedef v_iter<V, mpl::int_<15 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<16> > { typedef typename V::item16 type; typedef v_iter<V, mpl::int_<16 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<17> > { typedef typename V::item17 type; typedef v_iter<V, mpl::int_<17 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<18> > { typedef typename V::item18 type; typedef v_iter<V, mpl::int_<18 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<19> > { typedef typename V::item19 type; typedef v_iter<V, mpl::int_<19 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<20> > { typedef typename V::item20 type; typedef v_iter<V, mpl::int_<20 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<21> > { typedef typename V::item21 type; typedef v_iter<V, mpl::int_<21 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<22> > { typedef typename V::item22 type; typedef v_iter<V, mpl::int_<22 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<23> > { typedef typename V::item23 type; typedef v_iter<V, mpl::int_<23 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<24> > { typedef typename V::item24 type; typedef v_iter<V, mpl::int_<24 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<25> > { typedef typename V::item25 type; typedef v_iter<V, mpl::int_<25 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<26> > { typedef typename V::item26 type; typedef v_iter<V, mpl::int_<26 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<27> > { typedef typename V::item27 type; typedef v_iter<V, mpl::int_<27 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<28> > { typedef typename V::item28 type; typedef v_iter<V, mpl::int_<28 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<29> > { typedef typename V::item29 type; typedef v_iter<V, mpl::int_<29 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<30> > { typedef typename V::item30 type; typedef v_iter<V, mpl::int_<30 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<31> > { typedef typename V::item31 type; typedef v_iter<V, mpl::int_<31 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<32> > { typedef typename V::item32 type; typedef v_iter<V, mpl::int_<32 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<33> > { typedef typename V::item33 type; typedef v_iter<V, mpl::int_<33 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<34> > { typedef typename V::item34 type; typedef v_iter<V, mpl::int_<34 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<35> > { typedef typename V::item35 type; typedef v_iter<V, mpl::int_<35 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<36> > { typedef typename V::item36 type; typedef v_iter<V, mpl::int_<36 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<37> > { typedef typename V::item37 type; typedef v_iter<V, mpl::int_<37 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<38> > { typedef typename V::item38 type; typedef v_iter<V, mpl::int_<38 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<39> > { typedef typename V::item39 type; typedef v_iter<V, mpl::int_<39 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<40> > { typedef typename V::item40 type; typedef v_iter<V, mpl::int_<40 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<41> > { typedef typename V::item41 type; typedef v_iter<V, mpl::int_<41 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<42> > { typedef typename V::item42 type; typedef v_iter<V, mpl::int_<42 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<43> > { typedef typename V::item43 type; typedef v_iter<V, mpl::int_<43 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<44> > { typedef typename V::item44 type; typedef v_iter<V, mpl::int_<44 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<45> > { typedef typename V::item45 type; typedef v_iter<V, mpl::int_<45 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<46> > { typedef typename V::item46 type; typedef v_iter<V, mpl::int_<46 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<47> > { typedef typename V::item47 type; typedef v_iter<V, mpl::int_<47 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<48> > { typedef typename V::item48 type; typedef v_iter<V, mpl::int_<48 + 1> > next; };
-        template<class V> struct v_iter<V, mpl::int_<49> > { typedef typename V::item49 type; typedef v_iter<V, mpl::int_<49 + 1> > next; };
-}}
-namespace boost { namespace type_of {
-        template< class T = void> struct vector0 { typedef v_iter<vector0<>, boost::mpl::int_<0> > begin; typedef mpl::int_<1> item0; typedef mpl::int_<1> item1; typedef mpl::int_<1> item2; typedef mpl::int_<1> item3; typedef mpl::int_<1> item4; typedef mpl::int_<1> item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1 [...]
-        template< class P0 > struct vector1 { typedef v_iter<vector1< P0>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef mpl::int_<1> item1; typedef mpl::int_<1> item2; typedef mpl::int_<1> item3; typedef mpl::int_<1> item4; typedef mpl::int_<1> item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item13; ty [...]
-        template< class P0 , class P1 > struct vector2 { typedef v_iter<vector2< P0 , P1>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef mpl::int_<1> item2; typedef mpl::int_<1> item3; typedef mpl::int_<1> item4; typedef mpl::int_<1> item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1> item [...]
-        template< class P0 , class P1 , class P2 > struct vector3 { typedef v_iter<vector3< P0 , P1 , P2>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef mpl::int_<1> item3; typedef mpl::int_<1> item4; typedef mpl::int_<1> item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl::int_<1 [...]
-        template< class P0 , class P1 , class P2 , class P3 > struct vector4 { typedef v_iter<vector4< P0 , P1 , P2 , P3>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef mpl::int_<1> item4; typedef mpl::int_<1> item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef mpl:: [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 > struct vector5 { typedef v_iter<vector5< P0 , P1 , P2 , P3 , P4>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef mpl::int_<1> item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; typedef [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 > struct vector6 { typedef v_iter<vector6< P0 , P1 , P2 , P3 , P4 , P5>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef mpl::int_<1> item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> item12; t [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 > struct vector7 { typedef v_iter<vector7< P0 , P1 , P2 , P3 , P4 , P5 , P6>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef mpl::int_<1> item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_<1> ite [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 > struct vector8 { typedef v_iter<vector8< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef mpl::int_<1> item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl::int_< [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 > struct vector9 { typedef v_iter<vector9< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef mpl::int_<1> item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; typedef mpl: [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 > struct vector10 { typedef v_iter<vector10< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef mpl::int_<1> item10; typedef mpl::int_<1> item11; type [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 > struct vector11 { typedef v_iter<vector11< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typedef mpl::int_<1> ite [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 > struct vector12 { typedef v_iter<vector12< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef P10 item10; typede [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 > struct vector13 { typedef v_iter<vector13< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef P9 item9; typedef  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 > struct vector14 { typedef v_iter<vector14< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef P8 item8; typedef  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 > struct vector15 { typedef v_iter<vector15< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef P7 item7; typedef  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 > struct vector16 { typedef v_iter<vector16< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef P6 item6; typedef  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 > struct vector17 { typedef v_iter<vector17< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef P5 item5; typedef  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 > struct vector18 { typedef v_iter<vector18< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef P4 item4; typedef  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 > struct vector19 { typedef v_iter<vector19< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef P3 item3; typedef  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 > struct vector20 { typedef v_iter<vector20< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef P2 item2; typedef  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 > struct vector21 { typedef v_iter<vector21< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef P1 item1; typedef  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 > struct vector22 { typedef v_iter<vector22< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21>, boost::mpl::int_<0> > begin; typedef P0 item0; typedef  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 > struct vector23 { typedef v_iter<vector23< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22>, boost::mpl::int_<0> > begin; typedef  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 > struct vector24 { typedef v_iter<vector24< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23>, boost::mpl::int_<0> [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 > struct vector25 { typedef v_iter<vector25< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23 , P24>, b [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 > struct vector26 { typedef v_iter<vector26< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 > struct vector27 { typedef v_iter<vector27< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 > struct vector28 { typedef v_iter<vector28< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 > struct vector29 { typedef v_iter<vector29< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 > struct vector30 { typedef v_iter<vector30< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 > struct vector31 { typedef v_iter<vector31< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 > struct vector32 { typedef v_iter<vector32< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 > struct vector33 { typedef v_iter<vector33< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 ,  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 > struct vector34 { typedef v_iter<vector34< P0 , P1 , P2 , P3 , P4 , P5 , P6  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 > struct vector35 { typedef v_iter<vector35< P0 , P1 , P2 , P3 , P [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 > struct vector36 { typedef v_iter<vector36< P0 , P1 , [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 > struct vector37 { typedef v_iter<vector3 [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 > struct vector38 { typedef v_ [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 > struct vector39  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 > stru [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-}}
-namespace boost { namespace type_of {
-    template<class V, class T> struct push_back {
-        typedef V type;
-    };
-        template< class T> struct push_back<boost::type_of::vector0<>, T> { typedef boost::type_of::vector1< T > type; };
-        template< class P0 , class T> struct push_back<boost::type_of::vector1< P0>, T> { typedef boost::type_of::vector2< P0 , T > type; };
-        template< class P0 , class P1 , class T> struct push_back<boost::type_of::vector2< P0 , P1>, T> { typedef boost::type_of::vector3< P0 , P1 , T > type; };
-        template< class P0 , class P1 , class P2 , class T> struct push_back<boost::type_of::vector3< P0 , P1 , P2>, T> { typedef boost::type_of::vector4< P0 , P1 , P2 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class T> struct push_back<boost::type_of::vector4< P0 , P1 , P2 , P3>, T> { typedef boost::type_of::vector5< P0 , P1 , P2 , P3 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class T> struct push_back<boost::type_of::vector5< P0 , P1 , P2 , P3 , P4>, T> { typedef boost::type_of::vector6< P0 , P1 , P2 , P3 , P4 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class T> struct push_back<boost::type_of::vector6< P0 , P1 , P2 , P3 , P4 , P5>, T> { typedef boost::type_of::vector7< P0 , P1 , P2 , P3 , P4 , P5 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class T> struct push_back<boost::type_of::vector7< P0 , P1 , P2 , P3 , P4 , P5 , P6>, T> { typedef boost::type_of::vector8< P0 , P1 , P2 , P3 , P4 , P5 , P6 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class T> struct push_back<boost::type_of::vector8< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7>, T> { typedef boost::type_of::vector9< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class T> struct push_back<boost::type_of::vector9< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8>, T> { typedef boost::type_of::vector10< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class T> struct push_back<boost::type_of::vector10< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9>, T> { typedef boost::type_of::vector11< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class T> struct push_back<boost::type_of::vector11< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10>, T> { typedef boost::type_of::vector12< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class T> struct push_back<boost::type_of::vector12< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11>, T> { typedef boost::type_of::vector13< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class T> struct push_back<boost::type_of::vector13< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12>, T> { typedef boost::type_of::vector14< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class T> struct push_back<boost::type_of::vector14< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13>, T> { typedef boost::type_of::vector15< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class T> struct push_back<boost::type_of::vector15< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14>, T> { typedef boost::type_of::vector16< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class T> struct push_back<boost::type_of::vector16< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15>, T> { typedef boost::type_of::vector17< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class T> struct push_back<boost::type_of::vector17< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16>, T> { typedef boost::type_of::vector18< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , T > type; };
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class T> struct push_back<boost::type_of::vector18< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17>, T> { typedef boost::type_of::vector19< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class T> struct push_back<boost::type_of::vector19< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18>, T> { typedef boost::type_of::vector20< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class T> struct push_back<boost::type_of::vector20< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19>, T> { typedef boost::type_of::vector21< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class T> struct push_back<boost::type_of::vector21< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20>, T> { typedef boost::type_of::vector22< P0 , P1 , P2 , P3 , P4 ,  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class T> struct push_back<boost::type_of::vector22< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21>, T> { typedef boost::type_of::vector23< P0 , P1 [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class T> struct push_back<boost::type_of::vector23< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22>, T> { typedef boost::type_of: [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class T> struct push_back<boost::type_of::vector24< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23>, T> { typed [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class T> struct push_back<boost::type_of::vector25< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21 , P22 , P23  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class T> struct push_back<boost::type_of::vector26< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19 , P20 , P21  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class T> struct push_back<boost::type_of::vector27< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17 , P18 , P19  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class T> struct push_back<boost::type_of::vector28< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15 , P16 , P17  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class T> struct push_back<boost::type_of::vector29< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , P15  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class T> struct push_back<boost::type_of::vector30< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class T> struct push_back<boost::type_of::vector31< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class T> struct push_back<boost::type_of::vector32< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class T> struct push_back<boost::type_of::vector33< P0 , P1 , P2 , P3 , P4 , P5 , P6 , P [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class T> struct push_back<boost::type_of::vector34< P0 , P1 , P2 , P3 , P4 , [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class T> struct push_back<boost::type_of::vector35< P0 , P1 , P2 [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class T> struct push_back<boost::type_of::vector36<  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class T> struct push_back<boost::type_of [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class T> struct push_back<bo [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class T> struct  [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-        template< class P0 , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 , class P9 , class P10 , class P11 , class P12 , class P13 , class P14 , class P15 , class P16 , class P17 , class P18 , class P19 , class P20 , class P21 , class P22 , class P23 , class P24 , class P25 , class P26 , class P27 , class P28 , class P29 , class P30 , class P31 , class P32 , class P33 , class P34 , class P35 , class P36 , class P37 , class P38 , class P39 , clas [...]
-}}
diff --git a/boost/utility/addressof.hpp b/boost/utility/addressof.hpp
deleted file mode 100644
index ecb7776..0000000
--- a/boost/utility/addressof.hpp
+++ /dev/null
@@ -1,102 +0,0 @@
-// Copyright (C) 2002 Brad King (brad.king at kitware.com)
-//                    Douglas Gregor (gregod at cs.rpi.edu)
-//
-// Copyright (C) 2002, 2008 Peter Dimov
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-// For more information, see http://www.boost.org
-
-#ifndef BOOST_UTILITY_ADDRESSOF_HPP
-# define BOOST_UTILITY_ADDRESSOF_HPP
-
-# include <boost/config.hpp>
-# include <boost/detail/workaround.hpp>
-
-namespace boost
-{
-
-namespace detail
-{
-
-template<class T> struct addr_impl_ref
-{
-    T & v_;
-
-    inline addr_impl_ref( T & v ): v_( v ) {}
-    inline operator T& () const { return v_; }
-
-private:
-    addr_impl_ref & operator=(const addr_impl_ref &);
-};
-
-template<class T> struct addressof_impl
-{
-    static inline T * f( T & v, long )
-    {
-        return reinterpret_cast<T*>(
-            &const_cast<char&>(reinterpret_cast<const volatile char &>(v)));
-    }
-
-    static inline T * f( T * v, int )
-    {
-        return v;
-    }
-};
-
-} // namespace detail
-
-template<class T> T * addressof( T & v )
-{
-#if (defined( __BORLANDC__ ) && BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT( 0x610 ) ) ) || defined( __SUNPRO_CC )
-
-    return boost::detail::addressof_impl<T>::f( v, 0 );
-
-#else
-
-    return boost::detail::addressof_impl<T>::f( boost::detail::addr_impl_ref<T>( v ), 0 );
-
-#endif
-}
-
-#if defined( __SUNPRO_CC ) && BOOST_WORKAROUND( __SUNPRO_CC, BOOST_TESTED_AT( 0x590 ) )
-
-namespace detail
-{
-
-template<class T> struct addressof_addp
-{
-    typedef T * type;
-};
-
-} // namespace detail
-
-template< class T, std::size_t N >
-typename detail::addressof_addp< T[N] >::type addressof( T (&t)[N] )
-{
-    return &t;
-}
-
-#endif
-
-// Borland doesn't like casting an array reference to a char reference
-// but these overloads work around the problem.
-#if defined( __BORLANDC__ ) && BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
-template<typename T,std::size_t N>
-T (*addressof(T (&t)[N]))[N]
-{
-   return reinterpret_cast<T(*)[N]>(&t);
-}
-
-template<typename T,std::size_t N>
-const T (*addressof(const T (&t)[N]))[N]
-{
-   return reinterpret_cast<const T(*)[N]>(&t);
-}
-#endif
-
-} // namespace boost
-
-#endif // BOOST_UTILITY_ADDRESSOF_HPP
diff --git a/boost/utility/base_from_member.hpp b/boost/utility/base_from_member.hpp
deleted file mode 100644
index e32ecb8..0000000
--- a/boost/utility/base_from_member.hpp
+++ /dev/null
@@ -1,158 +0,0 @@
-//  boost utility/base_from_member.hpp header file  --------------------------//
-
-//  Copyright 2001, 2003, 2004, 2012 Daryle Walker.  Use, modification, and
-//  distribution are subject to the Boost Software License, Version 1.0.  (See
-//  accompanying file LICENSE_1_0.txt or a copy at
-//  <http://www.boost.org/LICENSE_1_0.txt>.)
-
-//  See <http://www.boost.org/libs/utility/> for the library's home page.
-
-#ifndef BOOST_UTILITY_BASE_FROM_MEMBER_HPP
-#define BOOST_UTILITY_BASE_FROM_MEMBER_HPP
-
-#include <boost/config.hpp>
-#include <boost/preprocessor/arithmetic/inc.hpp>
-#include <boost/preprocessor/repetition/enum_binary_params.hpp>
-#include <boost/preprocessor/repetition/enum_params.hpp>
-#include <boost/preprocessor/repetition/repeat_from_to.hpp>
-#include <boost/type_traits/is_same.hpp>
-#include <boost/type_traits/remove_cv.hpp>
-#include <boost/type_traits/remove_reference.hpp>
-#include <boost/utility/enable_if.hpp>
-
-
-//  Base-from-member arity configuration macro  ------------------------------//
-
-// The following macro determines how many arguments will be in the largest
-// constructor template of base_from_member.  Constructor templates will be
-// generated from one argument to this maximum.  Code from other files can read
-// this number if they need to always match the exact maximum base_from_member
-// uses.  The maximum constructor length can be changed by overriding the
-// #defined constant.  Make sure to apply the override, if any, for all source
-// files during project compiling for consistency.
-
-// Contributed by Jonathan Turkanis
-
-#ifndef BOOST_BASE_FROM_MEMBER_MAX_ARITY
-#define BOOST_BASE_FROM_MEMBER_MAX_ARITY  10
-#endif
-
-
-//  An iteration of a constructor template for base_from_member  -------------//
-
-// A macro that should expand to:
-//     template < typename T1, ..., typename Tn >
-//     base_from_member( T1 x1, ..., Tn xn )
-//         : member( x1, ..., xn )
-//         {}
-// This macro should only persist within this file.
-
-#define BOOST_PRIVATE_CTR_DEF( z, n, data )                            \
-    template < BOOST_PP_ENUM_PARAMS(n, typename T) >                   \
-    explicit base_from_member( BOOST_PP_ENUM_BINARY_PARAMS(n, T, x) )  \
-        : member( BOOST_PP_ENUM_PARAMS(n, x) )                         \
-        {}                                                             \
-    /**/
-
-
-namespace boost
-{
-
-namespace detail
-{
-
-//  Type-unmarking class template  -------------------------------------------//
-
-// Type-trait to get the raw type, i.e. the type without top-level reference nor
-// cv-qualification, from a type expression.  Mainly for function arguments, any
-// reference part is stripped first.
-
-// Contributed by Daryle Walker
-
-template < typename T >
-struct remove_cv_ref
-{
-    typedef typename ::boost::remove_cv<typename
-     ::boost::remove_reference<T>::type>::type  type;
-
-};  // boost::detail::remove_cv_ref
-
-//  Unmarked-type comparison class template  ---------------------------------//
-
-// Type-trait to check if two type expressions have the same raw type.
-
-// Contributed by Daryle Walker, based on a work-around by Luc Danton
-
-template < typename T, typename U >
-struct is_related
-    : public ::boost::is_same<
-     typename ::boost::detail::remove_cv_ref<T>::type,
-     typename ::boost::detail::remove_cv_ref<U>::type >
-{};
-
-//  Enable-if-on-unidentical-unmarked-type class template  -------------------//
-
-// Enable-if on the first two type expressions NOT having the same raw type.
-
-// Contributed by Daryle Walker, based on a work-around by Luc Danton
-
-#ifndef BOOST_NO_CXX11_VARIADIC_TEMPLATES
-template<typename ...T>
-struct enable_if_unrelated
-    : public ::boost::enable_if_c<true>
-{};
-
-template<typename T, typename U, typename ...U2>
-struct enable_if_unrelated<T, U, U2...>
-    : public ::boost::disable_if< ::boost::detail::is_related<T, U> >
-{};
-#endif
-
-}  // namespace boost::detail
-
-
-//  Base-from-member class template  -----------------------------------------//
-
-// Helper to initialize a base object so a derived class can use this
-// object in the initialization of another base class.  Used by
-// Dietmar Kuehl from ideas by Ron Klatcho to solve the problem of a
-// base class needing to be initialized by a member.
-
-// Contributed by Daryle Walker
-
-template < typename MemberType, int UniqueID = 0 >
-class base_from_member
-{
-protected:
-    MemberType  member;
-
-#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && \
-    !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && \
-    !defined(BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS) && \
-    !(defined(__GNUC__) && (__GNUC__ == 4) && (__GNUC_MINOR__ < 4))
-    template <typename ...T, typename EnableIf = typename
-     ::boost::detail::enable_if_unrelated<base_from_member, T...>::type>
-    explicit BOOST_CONSTEXPR base_from_member( T&& ...x )
-        BOOST_NOEXCEPT_IF( BOOST_NOEXCEPT_EXPR(::new ((void*) 0) MemberType(
-         static_cast<T&&>(x)... )) )  // no std::is_nothrow_constructible...
-        : member( static_cast<T&&>(x)... )     // ...nor std::forward needed
-        {}
-#else
-    base_from_member()
-        : member()
-        {}
-
-    BOOST_PP_REPEAT_FROM_TO( 1, BOOST_PP_INC(BOOST_BASE_FROM_MEMBER_MAX_ARITY),
-     BOOST_PRIVATE_CTR_DEF, _ )
-#endif
-
-};  // boost::base_from_member
-
-}  // namespace boost
-
-
-// Undo any private macros
-#undef BOOST_PRIVATE_CTR_DEF
-
-
-#endif  // BOOST_UTILITY_BASE_FROM_MEMBER_HPP
diff --git a/boost/utility/compare_pointees.hpp b/boost/utility/compare_pointees.hpp
deleted file mode 100644
index 7e2515c..0000000
--- a/boost/utility/compare_pointees.hpp
+++ /dev/null
@@ -1,68 +0,0 @@
-// Copyright (C) 2003, Fernando Luis Cacciola Carballal.
-//
-// Use, modification, and distribution is subject to the Boost Software
-// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/optional for documentation.
-//
-// You are welcome to contact the author at:
-//  fernando_cacciola at hotmail.com
-//
-#ifndef BOOST_UTILITY_COMPARE_POINTEES_25AGO2003_HPP
-#define BOOST_UTILITY_COMPARE_POINTEES_25AGO2003_HPP
-
-#include<functional>
-
-namespace boost {
-
-// template<class OP> bool equal_pointees(OP const& x, OP const& y);
-// template<class OP> struct equal_pointees_t;
-//
-// Being OP a model of OptionalPointee (either a pointer or an optional):
-//
-// If both x and y have valid pointees, returns the result of (*x == *y)
-// If only one has a valid pointee, returns false.
-// If none have valid pointees, returns true.
-// No-throw
-template<class OptionalPointee>
-inline
-bool equal_pointees ( OptionalPointee const& x, OptionalPointee const& y )
-{
-  return (!x) != (!y) ? false : ( !x ? true : (*x) == (*y) ) ;
-}
-
-template<class OptionalPointee>
-struct equal_pointees_t : std::binary_function<OptionalPointee,OptionalPointee,bool>
-{
-  bool operator() ( OptionalPointee const& x, OptionalPointee const& y ) const
-    { return equal_pointees(x,y) ; }
-} ;
-
-// template<class OP> bool less_pointees(OP const& x, OP const& y);
-// template<class OP> struct less_pointees_t;
-//
-// Being OP a model of OptionalPointee (either a pointer or an optional):
-//
-// If y has not a valid pointee, returns false.
-// ElseIf x has not a valid pointee, returns true.
-// ElseIf both x and y have valid pointees, returns the result of (*x < *y)
-// No-throw
-template<class OptionalPointee>
-inline
-bool less_pointees ( OptionalPointee const& x, OptionalPointee const& y )
-{
-  return !y ? false : ( !x ? true : (*x) < (*y) ) ;
-}
-
-template<class OptionalPointee>
-struct less_pointees_t : std::binary_function<OptionalPointee,OptionalPointee,bool>
-{
-  bool operator() ( OptionalPointee const& x, OptionalPointee const& y ) const
-    { return less_pointees(x,y) ; }
-} ;
-
-} // namespace boost
-
-#endif
-
diff --git a/boost/utility/declval.hpp b/boost/utility/declval.hpp
deleted file mode 100644
index a4ab2c8..0000000
--- a/boost/utility/declval.hpp
+++ /dev/null
@@ -1,44 +0,0 @@
-//  declval.hpp  -------------------------------------------------------------//
-
-//  Copyright 2010 Vicente J. Botet Escriba
-
-//  Distributed under the Boost Software License, Version 1.0.
-//  See http://www.boost.org/LICENSE_1_0.txt
-
-#ifndef BOOST_UTILITY_DECLVAL_HPP
-#define BOOST_UTILITY_DECLVAL_HPP
-
-#include <boost/config.hpp>
-
-//----------------------------------------------------------------------------//
-
-#include <boost/type_traits/add_rvalue_reference.hpp>
-
-//----------------------------------------------------------------------------//
-//                                                                            //
-//                           C++03 implementation of                          //
-//                   20.2.4 Function template declval [declval]               //
-//                          Written by Vicente J. Botet Escriba               //
-//                                                                            //
-// 1 The library provides the function template declval to simplify the
-// definition of expressions which occur as unevaluated operands.
-// 2 Remarks: If this function is used, the program is ill-formed.
-// 3 Remarks: The template parameter T of declval may be an incomplete type.
-// [ Example:
-//
-// template <class To, class From>
-// decltype(static_cast<To>(declval<From>())) convert(From&&);
-//
-// declares a function template convert which only participates in overloading
-// if the type From can be explicitly converted to type To. For another example
-// see class template common_type (20.9.7.6). -end example ]
-//----------------------------------------------------------------------------//
-
-namespace boost {
-
-    template <typename T>
-    typename add_rvalue_reference<T>::type declval() BOOST_NOEXCEPT; // as unevaluated operand
-
-}  // namespace boost
-
-#endif  // BOOST_UTILITY_DECLVAL_HPP
diff --git a/boost/utility/detail/in_place_factory_prefix.hpp b/boost/utility/detail/in_place_factory_prefix.hpp
deleted file mode 100644
index afd76b5..0000000
--- a/boost/utility/detail/in_place_factory_prefix.hpp
+++ /dev/null
@@ -1,36 +0,0 @@
-// Copyright (C) 2003, Fernando Luis Cacciola Carballal.
-// Copyright (C) 2007, Tobias Schwinger.
-//
-// Use, modification, and distribution is subject to the Boost Software
-// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/optional for documentation.
-//
-// You are welcome to contact the author at:
-//  fernando_cacciola at hotmail.com
-//
-#ifndef BOOST_UTILITY_DETAIL_INPLACE_FACTORY_PREFIX_04APR2007_HPP
-#define BOOST_UTILITY_DETAIL_INPLACE_FACTORY_PREFIX_04APR2007_HPP
-
-#include <new>
-#include <cstddef>
-#include <boost/config.hpp>
-#include <boost/preprocessor/cat.hpp>
-#include <boost/preprocessor/punctuation/paren.hpp>
-#include <boost/preprocessor/iteration/iterate.hpp>
-#include <boost/preprocessor/repetition/repeat.hpp>
-#include <boost/preprocessor/repetition/enum.hpp>
-#include <boost/preprocessor/repetition/enum_params.hpp>
-#include <boost/preprocessor/repetition/enum_binary_params.hpp>
-#include <boost/preprocessor/repetition/enum_trailing_params.hpp>
-
-#define BOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_INIT(z,n,_) BOOST_PP_CAT(m_a,n) BOOST_PP_LPAREN() BOOST_PP_CAT(a,n) BOOST_PP_RPAREN()
-#define BOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_DECL(z,n,_) BOOST_PP_CAT(A,n) const& BOOST_PP_CAT(m_a,n);
-
-#define BOOST_MAX_INPLACE_FACTORY_ARITY 10
-
-#undef BOOST_UTILITY_DETAIL_INPLACE_FACTORY_SUFFIX_04APR2007_HPP
-
-#endif
-
diff --git a/boost/utility/detail/in_place_factory_suffix.hpp b/boost/utility/detail/in_place_factory_suffix.hpp
deleted file mode 100644
index 58f48c7..0000000
--- a/boost/utility/detail/in_place_factory_suffix.hpp
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (C) 2003, Fernando Luis Cacciola Carballal.
-// Copyright (C) 2007, Tobias Schwinger.
-//
-// Use, modification, and distribution is subject to the Boost Software
-// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/optional for documentation.
-//
-// You are welcome to contact the author at:
-//  fernando_cacciola at hotmail.com
-//
-#ifndef BOOST_UTILITY_DETAIL_INPLACE_FACTORY_SUFFIX_04APR2007_HPP
-#define BOOST_UTILITY_DETAIL_INPLACE_FACTORY_SUFFIX_04APR2007_HPP
-
-#undef BOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_INIT
-#undef BOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_DECL
-#undef BOOST_MAX_INPLACE_FACTORY_ARITY
-
-#undef BOOST_UTILITY_DETAIL_INPLACE_FACTORY_PREFIX_04APR2007_HPP
-
-#endif
-
diff --git a/boost/utility/detail/result_of_iterate.hpp b/boost/utility/detail/result_of_iterate.hpp
deleted file mode 100644
index 5192172..0000000
--- a/boost/utility/detail/result_of_iterate.hpp
+++ /dev/null
@@ -1,221 +0,0 @@
-// Boost result_of library
-
-//  Copyright Douglas Gregor 2004. Use, modification and
-//  distribution is subject to the Boost Software License, Version
-//  1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-
-//  Copyright Daniel Walker, Eric Niebler, Michel Morin 2008-2012.
-//  Use, modification and distribution is subject to the Boost Software
-//  License, Version 1.0. (See accompanying file LICENSE_1_0.txt or
-//  copy at http://www.boost.org/LICENSE_1_0.txt)
-
-// For more information, see http://www.boost.org/libs/utility
-#if !defined(BOOST_PP_IS_ITERATING)
-# error Boost result_of - do not include this file!
-#endif
-
-// CWPro8 requires an argument in a function type specialization
-#if BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3002)) && BOOST_PP_ITERATION() == 0
-# define BOOST_RESULT_OF_ARGS void
-#else
-# define BOOST_RESULT_OF_ARGS BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),T)
-#endif
-
-#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x551))
-template<typename F BOOST_PP_ENUM_TRAILING_PARAMS(BOOST_PP_ITERATION(),typename T)>
-struct tr1_result_of<F(BOOST_RESULT_OF_ARGS)>
-    : mpl::if_<
-          mpl::or_< is_pointer<F>, is_member_function_pointer<F> >
-        , boost::detail::tr1_result_of_impl<
-            typename remove_cv<F>::type,
-            typename remove_cv<F>::type(BOOST_RESULT_OF_ARGS),
-            (boost::detail::has_result_type<F>::value)>
-        , boost::detail::tr1_result_of_impl<
-            F,
-            F(BOOST_RESULT_OF_ARGS),
-            (boost::detail::has_result_type<F>::value)> >::type { };
-#endif
-
-#ifdef BOOST_RESULT_OF_USE_DECLTYPE
-template<typename F BOOST_PP_ENUM_TRAILING_PARAMS(BOOST_PP_ITERATION(),typename T)>
-struct result_of<F(BOOST_RESULT_OF_ARGS)>
-    : detail::cpp0x_result_of<F(BOOST_RESULT_OF_ARGS)> { };
-#endif // BOOST_RESULT_OF_USE_DECLTYPE
-
-#ifdef BOOST_RESULT_OF_USE_TR1_WITH_DECLTYPE_FALLBACK
-template<typename F BOOST_PP_ENUM_TRAILING_PARAMS(BOOST_PP_ITERATION(),typename T)>
-struct result_of<F(BOOST_RESULT_OF_ARGS)>
-    : mpl::if_<mpl::or_<detail::has_result_type<F>, detail::has_result<F> >,
-               tr1_result_of<F(BOOST_RESULT_OF_ARGS)>,
-               detail::cpp0x_result_of<F(BOOST_RESULT_OF_ARGS)> >::type { };
-#endif // BOOST_RESULT_OF_USE_TR1_WITH_DECLTYPE_FALLBACK
-
-#if defined(BOOST_RESULT_OF_USE_DECLTYPE) || defined(BOOST_RESULT_OF_USE_TR1_WITH_DECLTYPE_FALLBACK)
-
-namespace detail {
-
-template<typename F BOOST_PP_ENUM_TRAILING_PARAMS(BOOST_PP_ITERATION(),typename T)>
-struct cpp0x_result_of<F(BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),T))>
-    : mpl::if_<
-          is_member_function_pointer<F>
-        , detail::tr1_result_of_impl<
-            typename remove_cv<F>::type,
-            typename remove_cv<F>::type(BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),T)), false
-          >
-        , detail::cpp0x_result_of_impl<
-              F(BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),T))
-          >
-      >::type
-{};
-
-#ifdef BOOST_NO_SFINAE_EXPR
-
-template<typename F>
-struct BOOST_PP_CAT(result_of_callable_fun_2_, BOOST_PP_ITERATION());
-
-template<typename R BOOST_PP_ENUM_TRAILING_PARAMS(BOOST_PP_ITERATION(), typename T)>
-struct BOOST_PP_CAT(result_of_callable_fun_2_, BOOST_PP_ITERATION())<R(BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(), T))> {
-    R operator()(BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(), T)) const;
-    typedef result_of_private_type const &(*pfn_t)(...);
-    operator pfn_t() const volatile;
-};
-
-template<typename F>
-struct BOOST_PP_CAT(result_of_callable_fun_, BOOST_PP_ITERATION());
-
-template<typename F>
-struct BOOST_PP_CAT(result_of_callable_fun_, BOOST_PP_ITERATION())<F *>
-  : BOOST_PP_CAT(result_of_callable_fun_2_, BOOST_PP_ITERATION())<F>
-{};
-
-template<typename F>
-struct BOOST_PP_CAT(result_of_callable_fun_, BOOST_PP_ITERATION())<F &>
-  : BOOST_PP_CAT(result_of_callable_fun_2_, BOOST_PP_ITERATION())<F>
-{};
-
-template<typename F>
-struct BOOST_PP_CAT(result_of_select_call_wrapper_type_, BOOST_PP_ITERATION())
-  : mpl::eval_if<
-        is_class<typename remove_reference<F>::type>,
-        result_of_wrap_callable_class<F>,
-        mpl::identity<BOOST_PP_CAT(result_of_callable_fun_, BOOST_PP_ITERATION())<typename remove_cv<F>::type> >
-    >
-{};
-
-template<typename F BOOST_PP_ENUM_TRAILING_PARAMS(BOOST_PP_ITERATION(), typename T)>
-struct BOOST_PP_CAT(result_of_is_callable_, BOOST_PP_ITERATION()) {
-    typedef typename BOOST_PP_CAT(result_of_select_call_wrapper_type_, BOOST_PP_ITERATION())<F>::type wrapper_t;
-    static const bool value = (
-        sizeof(result_of_no_type) == sizeof(detail::result_of_is_private_type(
-            (boost::declval<wrapper_t>()(BOOST_PP_ENUM_BINARY_PARAMS(BOOST_PP_ITERATION(), boost::declval<T, >() BOOST_PP_INTERCEPT)), result_of_weird_type())
-        ))
-    );
-    typedef mpl::bool_<value> type;
-};
-
-template<typename F BOOST_PP_ENUM_TRAILING_PARAMS(BOOST_PP_ITERATION(),typename T)>
-struct cpp0x_result_of_impl<F(BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),T)), true>
-    : lazy_enable_if<
-          BOOST_PP_CAT(result_of_is_callable_, BOOST_PP_ITERATION())<F BOOST_PP_ENUM_TRAILING_PARAMS(BOOST_PP_ITERATION(), T)>
-        , cpp0x_result_of_impl<F(BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),T)), false>
-      >
-{};
-
-template<typename F BOOST_PP_ENUM_TRAILING_PARAMS(BOOST_PP_ITERATION(),typename T)>
-struct cpp0x_result_of_impl<F(BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),T)), false>
-{
-  typedef decltype(
-    boost::declval<F>()(
-      BOOST_PP_ENUM_BINARY_PARAMS(BOOST_PP_ITERATION(), boost::declval<T, >() BOOST_PP_INTERCEPT)
-    )
-  ) type;
-};
-
-#else // BOOST_NO_SFINAE_EXPR
-
-template<typename F BOOST_PP_ENUM_TRAILING_PARAMS(BOOST_PP_ITERATION(),typename T)>
-struct cpp0x_result_of_impl<F(BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),T)),
-                            typename result_of_always_void<decltype(
-                                boost::declval<F>()(
-                                    BOOST_PP_ENUM_BINARY_PARAMS(BOOST_PP_ITERATION(), boost::declval<T, >() BOOST_PP_INTERCEPT)
-                                )
-                            )>::type> {
-  typedef decltype(
-    boost::declval<F>()(
-      BOOST_PP_ENUM_BINARY_PARAMS(BOOST_PP_ITERATION(), boost::declval<T, >() BOOST_PP_INTERCEPT)
-    )
-  ) type;
-};
-
-#endif // BOOST_NO_SFINAE_EXPR
-
-} // namespace detail
-
-#else // defined(BOOST_RESULT_OF_USE_DECLTYPE) || defined(BOOST_RESULT_OF_USE_TR1_WITH_DECLTYPE_FALLBACK)
-
-#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x551))
-template<typename F BOOST_PP_ENUM_TRAILING_PARAMS(BOOST_PP_ITERATION(),typename T)>
-struct result_of<F(BOOST_RESULT_OF_ARGS)>
-    : tr1_result_of<F(BOOST_RESULT_OF_ARGS)> { };
-#endif
-
-#endif // defined(BOOST_RESULT_OF_USE_DECLTYPE)
-
-#undef BOOST_RESULT_OF_ARGS
-
-#if BOOST_PP_ITERATION() >= 1
-
-namespace detail {
-
-template<typename R,  typename FArgs BOOST_PP_ENUM_TRAILING_PARAMS(BOOST_PP_ITERATION(),typename T)>
-struct tr1_result_of_impl<R (*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),T)), FArgs, false>
-{
-  typedef R type;
-};
-
-template<typename R,  typename FArgs BOOST_PP_ENUM_TRAILING_PARAMS(BOOST_PP_ITERATION(),typename T)>
-struct tr1_result_of_impl<R (&)(BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),T)), FArgs, false>
-{
-  typedef R type;
-};
-
-#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x551))
-template<typename R, typename FArgs BOOST_PP_ENUM_TRAILING_PARAMS(BOOST_PP_ITERATION(),typename T)>
-struct tr1_result_of_impl<R (T0::*)
-                     (BOOST_PP_ENUM_SHIFTED_PARAMS(BOOST_PP_ITERATION(),T)),
-                 FArgs, false>
-{
-  typedef R type;
-};
-
-template<typename R, typename FArgs BOOST_PP_ENUM_TRAILING_PARAMS(BOOST_PP_ITERATION(),typename T)>
-struct tr1_result_of_impl<R (T0::*)
-                     (BOOST_PP_ENUM_SHIFTED_PARAMS(BOOST_PP_ITERATION(),T))
-                     const,
-                 FArgs, false>
-{
-  typedef R type;
-};
-
-template<typename R, typename FArgs BOOST_PP_ENUM_TRAILING_PARAMS(BOOST_PP_ITERATION(),typename T)>
-struct tr1_result_of_impl<R (T0::*)
-                     (BOOST_PP_ENUM_SHIFTED_PARAMS(BOOST_PP_ITERATION(),T))
-                     volatile,
-                 FArgs, false>
-{
-  typedef R type;
-};
-
-template<typename R, typename FArgs BOOST_PP_ENUM_TRAILING_PARAMS(BOOST_PP_ITERATION(),typename T)>
-struct tr1_result_of_impl<R (T0::*)
-                     (BOOST_PP_ENUM_SHIFTED_PARAMS(BOOST_PP_ITERATION(),T))
-                     const volatile,
-                 FArgs, false>
-{
-  typedef R type;
-};
-#endif
-
-}
-#endif
diff --git a/boost/utility/enable_if.hpp b/boost/utility/enable_if.hpp
deleted file mode 100644
index d292c6a..0000000
--- a/boost/utility/enable_if.hpp
+++ /dev/null
@@ -1,119 +0,0 @@
-// Boost enable_if library
-
-// Copyright 2003 (c) The Trustees of Indiana University.
-
-// Use, modification, and distribution is subject to the Boost Software
-// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-//    Authors: Jaakko Jarvi (jajarvi at osl.iu.edu)
-//             Jeremiah Willcock (jewillco at osl.iu.edu)
-//             Andrew Lumsdaine (lums at osl.iu.edu)
-
-
-#ifndef BOOST_UTILITY_ENABLE_IF_HPP
-#define BOOST_UTILITY_ENABLE_IF_HPP
-
-#include "boost/config.hpp"
-
-// Even the definition of enable_if causes problems on some compilers,
-// so it's macroed out for all compilers that do not support SFINAE
-
-#ifndef BOOST_NO_SFINAE
-
-namespace boost
-{
- 
-  template <bool B, class T = void>
-  struct enable_if_c {
-    typedef T type;
-  };
-
-  template <class T>
-  struct enable_if_c<false, T> {};
-
-  template <class Cond, class T = void> 
-  struct enable_if : public enable_if_c<Cond::value, T> {};
-
-  template <bool B, class T>
-  struct lazy_enable_if_c {
-    typedef typename T::type type;
-  };
-
-  template <class T>
-  struct lazy_enable_if_c<false, T> {};
-
-  template <class Cond, class T> 
-  struct lazy_enable_if : public lazy_enable_if_c<Cond::value, T> {};
-
-
-  template <bool B, class T = void>
-  struct disable_if_c {
-    typedef T type;
-  };
-
-  template <class T>
-  struct disable_if_c<true, T> {};
-
-  template <class Cond, class T = void> 
-  struct disable_if : public disable_if_c<Cond::value, T> {};
-
-  template <bool B, class T>
-  struct lazy_disable_if_c {
-    typedef typename T::type type;
-  };
-
-  template <class T>
-  struct lazy_disable_if_c<true, T> {};
-
-  template <class Cond, class T> 
-  struct lazy_disable_if : public lazy_disable_if_c<Cond::value, T> {};
-
-} // namespace boost
-
-#else
-
-namespace boost {
-
-  namespace detail { typedef void enable_if_default_T; }
-
-  template <typename T>
-  struct enable_if_does_not_work_on_this_compiler;
-
-  template <bool B, class T = detail::enable_if_default_T>
-  struct enable_if_c : enable_if_does_not_work_on_this_compiler<T>
-  { };
-
-  template <bool B, class T = detail::enable_if_default_T> 
-  struct disable_if_c : enable_if_does_not_work_on_this_compiler<T>
-  { };
-
-  template <bool B, class T = detail::enable_if_default_T> 
-  struct lazy_enable_if_c : enable_if_does_not_work_on_this_compiler<T>
-  { };
-
-  template <bool B, class T = detail::enable_if_default_T> 
-  struct lazy_disable_if_c : enable_if_does_not_work_on_this_compiler<T>
-  { };
-
-  template <class Cond, class T = detail::enable_if_default_T> 
-  struct enable_if : enable_if_does_not_work_on_this_compiler<T>
-  { };
-
-  template <class Cond, class T = detail::enable_if_default_T> 
-  struct disable_if : enable_if_does_not_work_on_this_compiler<T>
-  { };
-
-  template <class Cond, class T = detail::enable_if_default_T> 
-  struct lazy_enable_if : enable_if_does_not_work_on_this_compiler<T>
-  { };
-
-  template <class Cond, class T = detail::enable_if_default_T> 
-  struct lazy_disable_if : enable_if_does_not_work_on_this_compiler<T>
-  { };
-
-} // namespace boost
-
-#endif // BOOST_NO_SFINAE
-
-#endif
diff --git a/boost/utility/in_place_factory.hpp b/boost/utility/in_place_factory.hpp
deleted file mode 100644
index f84b003..0000000
--- a/boost/utility/in_place_factory.hpp
+++ /dev/null
@@ -1,88 +0,0 @@
-// Copyright (C) 2003, Fernando Luis Cacciola Carballal.
-// Copyright (C) 2007, Tobias Schwinger.
-//
-// Use, modification, and distribution is subject to the Boost Software
-// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/optional for documentation.
-//
-// You are welcome to contact the author at:
-//  fernando_cacciola at hotmail.com
-//
-#ifndef BOOST_UTILITY_INPLACE_FACTORY_04APR2007_HPP
-#ifndef BOOST_PP_IS_ITERATING
-
-#include <boost/utility/detail/in_place_factory_prefix.hpp>
-
-namespace boost {
-
-class in_place_factory_base {} ;
-
-#define  BOOST_PP_ITERATION_LIMITS (0, BOOST_MAX_INPLACE_FACTORY_ARITY)
-#define  BOOST_PP_FILENAME_1 <boost/utility/in_place_factory.hpp>
-#include BOOST_PP_ITERATE()
-
-} // namespace boost
-
-#include <boost/utility/detail/in_place_factory_suffix.hpp>
-
-#define BOOST_UTILITY_INPLACE_FACTORY_04APR2007_HPP
-#else
-#define N BOOST_PP_ITERATION()
-
-#if N
-template< BOOST_PP_ENUM_PARAMS(N, class A) >
-#endif
-class BOOST_PP_CAT(in_place_factory,N)
-  : 
-  public in_place_factory_base
-{
-public:
-
-  explicit BOOST_PP_CAT(in_place_factory,N)
-      ( BOOST_PP_ENUM_BINARY_PARAMS(N,A,const& a) )
-#if N > 0
-    : BOOST_PP_ENUM(N, BOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_INIT, _)
-#endif
-  {}
-
-  template<class T>
-  void* apply(void* address
-      BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(T)) const
-  {
-    return new(address) T( BOOST_PP_ENUM_PARAMS(N, m_a) );
-  }
-
-  template<class T>
-  void* apply(void* address, std::size_t n
-      BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(T)) const
-  {
-    for(char* next = address = this->BOOST_NESTED_TEMPLATE apply<T>(address);
-        !! --n;)
-      this->BOOST_NESTED_TEMPLATE apply<T>(next = next+sizeof(T));
-    return address; 
-  }
-
-  BOOST_PP_REPEAT(N, BOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_DECL, _)
-};
-
-#if N > 0
-template< BOOST_PP_ENUM_PARAMS(N, class A) >
-inline BOOST_PP_CAT(in_place_factory,N)< BOOST_PP_ENUM_PARAMS(N, A) >
-in_place( BOOST_PP_ENUM_BINARY_PARAMS(N, A, const& a) )
-{
-  return BOOST_PP_CAT(in_place_factory,N)< BOOST_PP_ENUM_PARAMS(N, A) >
-      ( BOOST_PP_ENUM_PARAMS(N, a) );
-}
-#else
-inline in_place_factory0 in_place()
-{
-  return in_place_factory0();
-}
-#endif
-
-#undef N
-#endif
-#endif
-
diff --git a/boost/utility/result_of.hpp b/boost/utility/result_of.hpp
deleted file mode 100644
index a530c3a..0000000
--- a/boost/utility/result_of.hpp
+++ /dev/null
@@ -1,207 +0,0 @@
-// Boost result_of library
-
-//  Copyright Douglas Gregor 2004. Use, modification and
-//  distribution is subject to the Boost Software License, Version
-//  1.0. (See accompanying file LICENSE_1_0.txt or copy at
-//  http://www.boost.org/LICENSE_1_0.txt)
-
-// For more information, see http://www.boost.org/libs/utility
-#ifndef BOOST_RESULT_OF_HPP
-#define BOOST_RESULT_OF_HPP
-
-#include <boost/config.hpp>
-#include <boost/preprocessor/cat.hpp>
-#include <boost/preprocessor/iteration/iterate.hpp>
-#include <boost/preprocessor/repetition/enum_params.hpp>
-#include <boost/preprocessor/repetition/enum_trailing_params.hpp>
-#include <boost/preprocessor/repetition/enum_binary_params.hpp>
-#include <boost/preprocessor/repetition/enum_shifted_params.hpp>
-#include <boost/preprocessor/facilities/intercept.hpp>
-#include <boost/detail/workaround.hpp>
-#include <boost/mpl/has_xxx.hpp>
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/mpl/or.hpp>
-#include <boost/type_traits/is_class.hpp>
-#include <boost/type_traits/is_pointer.hpp>
-#include <boost/type_traits/is_member_function_pointer.hpp>
-#include <boost/type_traits/remove_cv.hpp>
-#include <boost/type_traits/remove_reference.hpp>
-#include <boost/utility/declval.hpp>
-#include <boost/utility/enable_if.hpp>
-
-#ifndef BOOST_RESULT_OF_NUM_ARGS
-#  define BOOST_RESULT_OF_NUM_ARGS 16
-#endif
-
-// Use the decltype-based version of result_of by default if the compiler
-// supports N3276 <http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2011/n3276.pdf>.
-// The user can force the choice by defining BOOST_RESULT_OF_USE_DECLTYPE,
-// BOOST_RESULT_OF_USE_TR1, or BOOST_RESULT_OF_USE_TR1_WITH_DECLTYPE_FALLBACK but not more than one!
-#if (defined(BOOST_RESULT_OF_USE_DECLTYPE) && defined(BOOST_RESULT_OF_USE_TR1)) || \
-    (defined(BOOST_RESULT_OF_USE_DECLTYPE) && defined(BOOST_RESULT_OF_USE_TR1_WITH_DECLTYPE_FALLBACK)) || \
-    (defined(BOOST_RESULT_OF_USE_TR1) && defined(BOOST_RESULT_OF_USE_TR1_WITH_DECLTYPE_FALLBACK))
-#  error More than one of BOOST_RESULT_OF_USE_DECLTYPE, BOOST_RESULT_OF_USE_TR1 and \
-  BOOST_RESULT_OF_USE_TR1_WITH_DECLTYPE_FALLBACK cannot be defined at the same time.
-#endif
-
-#if defined(BOOST_RESULT_OF_USE_TR1_WITH_DECLTYPE_FALLBACK) && defined(BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE)
-#  error Cannot fallback to decltype if BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE is not defined.
-#endif
-
-#ifndef BOOST_RESULT_OF_USE_TR1
-#  ifndef BOOST_RESULT_OF_USE_DECLTYPE
-#    ifndef BOOST_RESULT_OF_USE_TR1_WITH_DECLTYPE_FALLBACK
-#      ifndef BOOST_NO_CXX11_DECLTYPE_N3276 // this implies !defined(BOOST_NO_CXX11_DECLTYPE)
-#        define BOOST_RESULT_OF_USE_DECLTYPE
-#      else
-#        define BOOST_RESULT_OF_USE_TR1
-#      endif
-#    endif
-#  endif
-#endif
-
-namespace boost {
-
-template<typename F> struct result_of;
-template<typename F> struct tr1_result_of; // a TR1-style implementation of result_of
-
-#if !defined(BOOST_NO_SFINAE) && !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-namespace detail {
-
-BOOST_MPL_HAS_XXX_TRAIT_DEF(result_type)
-
-BOOST_MPL_HAS_XXX_TEMPLATE_DEF(result)
-
-template<typename F, typename FArgs, bool HasResultType> struct tr1_result_of_impl;
-
-template<typename F> struct cpp0x_result_of;
-
-#ifdef BOOST_NO_SFINAE_EXPR
-
-// There doesn't seem to be any other way to turn this off such that the presence of
-// the user-defined operator,() below doesn't cause spurious warning all over the place,
-// so unconditionally turn it off.
-#if BOOST_MSVC
-#  pragma warning(disable: 4913) // user defined binary operator ',' exists but no overload could convert all operands, default built-in binary operator ',' used
-#endif
-
-struct result_of_private_type {};
-
-struct result_of_weird_type {
-  friend result_of_private_type operator,(result_of_private_type, result_of_weird_type);
-};
-
-typedef char result_of_yes_type;      // sizeof(result_of_yes_type) == 1
-typedef char (&result_of_no_type)[2]; // sizeof(result_of_no_type)  == 2
-
-template<typename T>
-result_of_no_type result_of_is_private_type(T const &);
-result_of_yes_type result_of_is_private_type(result_of_private_type);
-
-template<typename C>
-struct result_of_callable_class : C {
-    result_of_callable_class();
-    typedef result_of_private_type const &(*pfn_t)(...);
-    operator pfn_t() const volatile;
-};
-
-template<typename C>
-struct result_of_wrap_callable_class {
-  typedef result_of_callable_class<C> type;
-};
-
-template<typename C>
-struct result_of_wrap_callable_class<C const> {
-  typedef result_of_callable_class<C> const type;
-};
-
-template<typename C>
-struct result_of_wrap_callable_class<C volatile> {
-  typedef result_of_callable_class<C> volatile type;
-};
-
-template<typename C>
-struct result_of_wrap_callable_class<C const volatile> {
-  typedef result_of_callable_class<C> const volatile type;
-};
-
-template<typename C>
-struct result_of_wrap_callable_class<C &> {
-  typedef typename result_of_wrap_callable_class<C>::type &type;
-};
-
-template<typename F, bool TestCallability = true> struct cpp0x_result_of_impl;
-
-#else // BOOST_NO_SFINAE_EXPR
-
-template<typename T>
-struct result_of_always_void
-{
-  typedef void type;
-};
-
-template<typename F, typename Enable = void> struct cpp0x_result_of_impl {};
-
-#endif // BOOST_NO_SFINAE_EXPR
-
-template<typename F>
-struct result_of_void_impl
-{
-  typedef void type;
-};
-
-template<typename R>
-struct result_of_void_impl<R (*)(void)>
-{
-  typedef R type;
-};
-
-template<typename R>
-struct result_of_void_impl<R (&)(void)>
-{
-  typedef R type;
-};
-
-// Determine the return type of a function pointer or pointer to member.
-template<typename F, typename FArgs>
-struct result_of_pointer
-  : tr1_result_of_impl<typename remove_cv<F>::type, FArgs, false> { };
-
-template<typename F, typename FArgs>
-struct tr1_result_of_impl<F, FArgs, true>
-{
-  typedef typename F::result_type type;
-};
-
-template<typename FArgs>
-struct is_function_with_no_args : mpl::false_ {};
-
-template<typename F>
-struct is_function_with_no_args<F(void)> : mpl::true_ {};
-
-template<typename F, typename FArgs>
-struct result_of_nested_result : F::template result<FArgs>
-{};
-
-template<typename F, typename FArgs>
-struct tr1_result_of_impl<F, FArgs, false>
-  : mpl::if_<is_function_with_no_args<FArgs>,
-             result_of_void_impl<F>,
-             result_of_nested_result<F, FArgs> >::type
-{};
-
-} // end namespace detail
-
-#define BOOST_PP_ITERATION_PARAMS_1 (3,(0,BOOST_RESULT_OF_NUM_ARGS,<boost/utility/detail/result_of_iterate.hpp>))
-#include BOOST_PP_ITERATE()
-
-#else
-#  define BOOST_NO_RESULT_OF 1
-#endif
-
-}
-
-#endif // BOOST_RESULT_OF_HPP
diff --git a/boost/utility/swap.hpp b/boost/utility/swap.hpp
deleted file mode 100644
index 6845e79..0000000
--- a/boost/utility/swap.hpp
+++ /dev/null
@@ -1,55 +0,0 @@
-// Copyright (C) 2007, 2008 Steven Watanabe, Joseph Gauterin, Niels Dekker
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-// For more information, see http://www.boost.org
-
-
-#ifndef BOOST_UTILITY_SWAP_HPP
-#define BOOST_UTILITY_SWAP_HPP
-
-// Note: the implementation of this utility contains various workarounds:
-// - swap_impl is put outside the boost namespace, to avoid infinite
-// recursion (causing stack overflow) when swapping objects of a primitive
-// type.
-// - swap_impl has a using-directive, rather than a using-declaration,
-// because some compilers (including MSVC 7.1, Borland 5.9.3, and
-// Intel 8.1) don't do argument-dependent lookup when it has a
-// using-declaration instead.
-// - boost::swap has two template arguments, instead of one, to
-// avoid ambiguity when swapping objects of a Boost type that does
-// not have its own boost::swap overload.
-
-#include <algorithm> //for std::swap
-#include <cstddef> //for std::size_t
-
-namespace boost_swap_impl
-{
-  template<class T>
-  void swap_impl(T& left, T& right)
-  {
-    using namespace std;//use std::swap if argument dependent lookup fails
-    swap(left,right);
-  }
-
-  template<class T, std::size_t N>
-  void swap_impl(T (& left)[N], T (& right)[N])
-  {
-    for (std::size_t i = 0; i < N; ++i)
-    {
-      ::boost_swap_impl::swap_impl(left[i], right[i]);
-    }
-  }
-}
-
-namespace boost
-{
-  template<class T1, class T2>
-  void swap(T1& left, T2& right)
-  {
-    ::boost_swap_impl::swap_impl(left, right);
-  }
-}
-
-#endif
diff --git a/boost/version.hpp b/boost/version.hpp
deleted file mode 100644
index 0df7b27..0000000
--- a/boost/version.hpp
+++ /dev/null
@@ -1,32 +0,0 @@
-//  Boost version.hpp configuration header file  ------------------------------//
-
-//  (C) Copyright John maddock 1999. Distributed under the Boost
-//  Software License, Version 1.0. (See accompanying file
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-//  See http://www.boost.org/libs/config for documentation
-
-#ifndef BOOST_VERSION_HPP
-#define BOOST_VERSION_HPP
-
-//
-//  Caution, this is the only boost header that is guarenteed
-//  to change with every boost release, including this header
-//  will cause a recompile every time a new boost version is
-//  released.
-//
-//  BOOST_VERSION % 100 is the patch level
-//  BOOST_VERSION / 100 % 1000 is the minor version
-//  BOOST_VERSION / 100000 is the major version
-
-#define BOOST_VERSION 105500
-
-//
-//  BOOST_LIB_VERSION must be defined to be the same as BOOST_VERSION
-//  but as a *string* in the form "x_y[_z]" where x is the major version
-//  number, y is the minor version number, and z is the patch level if not 0.
-//  This is used by <config/auto_link.hpp> to select which library version to link to.
-
-#define BOOST_LIB_VERSION "1_55"
-
-#endif
diff --git a/debian/control b/debian/control
index f904307..5400acc 100644
--- a/debian/control
+++ b/debian/control
@@ -1,17 +1,23 @@
 Source: rsem
-Section: science
-Priority: optional
 Maintainer: Debian Med Packaging Team <debian-med-packaging at lists.alioth.debian.org>
 Uploaders: Andreas Tille <tille at debian.org>
-Build-Depends: debhelper (>= 9), zlib1g-dev, libncurses5-dev, libbam-dev
-Standards-Version: 3.9.6
+Section: science
+Priority: optional
+Build-Depends: debhelper (>= 9),
+               zlib1g-dev,
+               libncurses5-dev,
+               libbam-dev,
+               libboost1.54-dev
+Standards-Version: 3.9.5
 Vcs-Browser: http://anonscm.debian.org/gitweb/?p=debian-med/rsem.git
 Vcs-Git: git://anonscm.debian.org/debian-med/rsem.git
 Homepage: http://deweylab.biostat.wisc.edu/rsem/
 
 Package: rsem
 Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, r-base-core
+Depends: ${shlibs:Depends},
+         ${misc:Depends},
+         r-base-core
 Description: RNA-Seq by Expectation-Maximization
  RSEM is a software package for estimating gene and isoform expression
  levels from RNA-Seq data. The RSEM package provides an user-friendly
diff --git a/debian/copyright b/debian/copyright
index 8ac9582..b555903 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -1,9 +1,25 @@
 Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
 Upstream-Name: RSEM
 Source: http://deweylab.biostat.wisc.edu/rsem/src/rsem-1.2.19.tar.gz
-Exclude: sam/
+Exclude: sam/ boost/
 
 Files: *
-Copyright: © 20xx-20yy <upstream>
-License: GPL
+Copyright: *No copyright*
+License: GPL-3
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+ .
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+ .
+ You should have received a copy of the GNU General Public License
+ along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ .
+ On Debian systems, the full text of the GNU General Public
+ License version 3 can be found in the file
+ `/usr/share/common-licenses/GPL-3'.
 
diff --git a/debian/patches/fix-boost b/debian/patches/fix-boost
new file mode 100644
index 0000000..461930b
--- /dev/null
+++ b/debian/patches/fix-boost
@@ -0,0 +1,62 @@
+--- rsem.orig/Makefile
++++ rsem/Makefile
+@@ -1,6 +1,6 @@
+ CC = g++
+-CFLAGS = -Wall -c -I.
+-COFLAGS = -Wall -O3 -ffast-math -c -I.
++CFLAGS = -Wall -c -I. -I/usr/include/
++COFLAGS = -Wall -O3 -ffast-math -c -I. -I/usr/include
+ PROGRAMS = rsem-extract-reference-transcripts rsem-synthesis-reference-transcripts rsem-preref rsem-parse-alignments rsem-build-read-index rsem-run-em rsem-tbam2gbam rsem-run-gibbs rsem-calculate-credibility-intervals rsem-simulate-reads rsem-bam2wig rsem-get-unique rsem-bam2readdepth rsem-sam-validator rsem-scan-for-paired-end-reads
+ 
+ .PHONY : all ebseq clean
+@@ -59,8 +59,6 @@
+ 	$(CC) -O3 buildReadIndex.cpp -o rsem-build-read-index
+ 
+ 
+-simul.h : boost/random.hpp
+-
+ ReadReader.h : SingleRead.h SingleReadQ.h PairedEndRead.h PairedEndReadQ.h ReadIndex.h
+ 
+ SingleModel.h : utils.h my_assert.h Orientation.h LenDist.h RSPD.h Profile.h NoiseProfile.h ModelParams.h RefSeq.h Refs.h SingleRead.h SingleHit.h ReadReader.h simul.h
+@@ -77,14 +75,12 @@
+ 
+ BamWriter.h : sam_rsem_aux.h sam_rsem_cvt.h SingleHit.h PairedEndHit.h HitWrapper.h Transcript.h Transcripts.h
+ 
+-sampling.h : boost/random.hpp
+-
+ WriteResults.h : utils.h my_assert.h GroupInfo.h Transcript.h Transcripts.h RefSeq.h Refs.h Model.h SingleModel.h SingleQModel.h PairedEndModel.h PairedEndQModel.h
+ 
+ rsem-run-em : EM.o
+ 	$(CC) -o rsem-run-em EM.o /usr/lib/libbam.a -lz -lpthread
+ 
+-EM.o : utils.h my_assert.h Read.h SingleRead.h SingleReadQ.h PairedEndRead.h PairedEndReadQ.h SingleHit.h PairedEndHit.h Model.h SingleModel.h SingleQModel.h PairedEndModel.h PairedEndQModel.h Refs.h GroupInfo.h HitContainer.h ReadIndex.h ReadReader.h Orientation.h LenDist.h RSPD.h QualDist.h QProfile.h NoiseQProfile.h ModelParams.h RefSeq.h RefSeqPolicy.h PolyARules.h Profile.h NoiseProfile.h Transcript.h Transcripts.h HitWrapper.h BamWriter.h simul.h sam_rsem_aux.h sampling.h boost/ra [...]
++EM.o : utils.h my_assert.h Read.h SingleRead.h SingleReadQ.h PairedEndRead.h PairedEndReadQ.h SingleHit.h PairedEndHit.h Model.h SingleModel.h SingleQModel.h PairedEndModel.h PairedEndQModel.h Refs.h GroupInfo.h HitContainer.h ReadIndex.h ReadReader.h Orientation.h LenDist.h RSPD.h QualDist.h QProfile.h NoiseQProfile.h ModelParams.h RefSeq.h RefSeqPolicy.h PolyARules.h Profile.h NoiseProfile.h Transcript.h Transcripts.h HitWrapper.h BamWriter.h simul.h sam_rsem_aux.h sampling.h WriteRes [...]
+ 	$(CC) $(COFLAGS) EM.cpp
+ 
+ BamConverter.h : utils.h my_assert.h sam_rsem_aux.h sam_rsem_cvt.h bc_aux.h Transcript.h Transcripts.h
+@@ -104,14 +100,14 @@
+ rsem-simulate-reads : simulation.o
+ 	$(CC) -o rsem-simulate-reads simulation.o
+ 
+-simulation.o : utils.h Read.h SingleRead.h SingleReadQ.h PairedEndRead.h PairedEndReadQ.h Model.h SingleModel.h SingleQModel.h PairedEndModel.h PairedEndQModel.h Refs.h RefSeq.h GroupInfo.h Transcript.h Transcripts.h Orientation.h LenDist.h RSPD.h QualDist.h QProfile.h NoiseQProfile.h Profile.h NoiseProfile.h simul.h boost/random.hpp WriteResults.h simulation.cpp
++simulation.o : utils.h Read.h SingleRead.h SingleReadQ.h PairedEndRead.h PairedEndReadQ.h Model.h SingleModel.h SingleQModel.h PairedEndModel.h PairedEndQModel.h Refs.h RefSeq.h GroupInfo.h Transcript.h Transcripts.h Orientation.h LenDist.h RSPD.h QualDist.h QProfile.h NoiseQProfile.h Profile.h NoiseProfile.h simul.h WriteResults.h simulation.cpp
+ 	$(CC) $(COFLAGS) simulation.cpp
+ 
+ rsem-run-gibbs : Gibbs.o
+ 	$(CC) -o rsem-run-gibbs Gibbs.o -lpthread
+ 
+ #some header files are omitted
+-Gibbs.o : utils.h my_assert.h boost/random.hpp sampling.h Model.h SingleModel.h SingleQModel.h PairedEndModel.h PairedEndQModel.h RefSeq.h RefSeqPolicy.h PolyARules.h Refs.h GroupInfo.h WriteResults.h Gibbs.cpp 
++Gibbs.o : utils.h my_assert.h sampling.h Model.h SingleModel.h SingleQModel.h PairedEndModel.h PairedEndQModel.h RefSeq.h RefSeqPolicy.h PolyARules.h Refs.h GroupInfo.h WriteResults.h Gibbs.cpp 
+ 	$(CC) $(COFLAGS) Gibbs.cpp
+ 
+ Buffer.h : my_assert.h
+@@ -120,7 +116,7 @@
+ 	$(CC) -o rsem-calculate-credibility-intervals calcCI.o -lpthread
+ 
+ #some header files are omitted
+-calcCI.o : utils.h my_assert.h boost/random.hpp sampling.h Model.h SingleModel.h SingleQModel.h PairedEndModel.h PairedEndQModel.h RefSeq.h RefSeqPolicy.h PolyARules.h Refs.h GroupInfo.h WriteResults.h Buffer.h calcCI.cpp
++calcCI.o : utils.h my_assert.h sampling.h Model.h SingleModel.h SingleQModel.h PairedEndModel.h PairedEndQModel.h RefSeq.h RefSeqPolicy.h PolyARules.h Refs.h GroupInfo.h WriteResults.h Buffer.h calcCI.cpp
+ 	$(CC) $(COFLAGS) calcCI.cpp
+ 
+ rsem-get-unique : getUnique.cpp
diff --git a/debian/patches/series b/debian/patches/series
index f5f8b23..f6f726a 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,2 +1,3 @@
 ignore-sam
 fix-sam-includes
+fix-boost

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/rsem.git



More information about the debian-med-commit mailing list